@cdk_utils/iam 1.6.0 → 1.7.0

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 (462) hide show
  1. package/.jsii +8870 -7629
  2. package/lib/generated/services/a2c.js +1 -1
  3. package/lib/generated/services/a4b.js +3 -3
  4. package/lib/generated/services/access-analyzer.js +4 -4
  5. package/lib/generated/services/account-access.js +4 -4
  6. package/lib/generated/services/account.js +4 -4
  7. package/lib/generated/services/acm-pca.js +4 -4
  8. package/lib/generated/services/acm.js +4 -4
  9. package/lib/generated/services/aco-automation.js +4 -4
  10. package/lib/generated/services/action-recommendations.js +1 -1
  11. package/lib/generated/services/activate.js +1 -1
  12. package/lib/generated/services/agent-registry.js +4 -4
  13. package/lib/generated/services/agentaccess-mcp.js +2 -2
  14. package/lib/generated/services/aidevops.js +4 -4
  15. package/lib/generated/services/aiops.js +4 -4
  16. package/lib/generated/services/airflow-serverless.js +4 -4
  17. package/lib/generated/services/airflow.js +4 -4
  18. package/lib/generated/services/amplify.js +4 -4
  19. package/lib/generated/services/amplifybackend.js +3 -3
  20. package/lib/generated/services/amplifyuibuilder.js +4 -4
  21. package/lib/generated/services/aoss.js +4 -4
  22. package/lib/generated/services/apigateway.js +4 -4
  23. package/lib/generated/services/app-integrations.js +4 -4
  24. package/lib/generated/services/appconfig.js +4 -4
  25. package/lib/generated/services/appfabric.js +4 -4
  26. package/lib/generated/services/appflow.js +4 -4
  27. package/lib/generated/services/application-autoscaling.js +4 -4
  28. package/lib/generated/services/application-signals-mcp.js +3 -3
  29. package/lib/generated/services/application-signals.js +4 -4
  30. package/lib/generated/services/application-transformation.js +1 -1
  31. package/lib/generated/services/applicationinsights.js +3 -3
  32. package/lib/generated/services/appmesh-preview.js +2 -2
  33. package/lib/generated/services/appmesh.js +4 -4
  34. package/lib/generated/services/apprunner.js +4 -4
  35. package/lib/generated/services/appstream.js +4 -4
  36. package/lib/generated/services/appstudio.js +2 -2
  37. package/lib/generated/services/appsync.js +4 -4
  38. package/lib/generated/services/apptest.js +3 -3
  39. package/lib/generated/services/aps.js +4 -4
  40. package/lib/generated/services/arc-region-switch.js +4 -4
  41. package/lib/generated/services/arc-zonal-shift.js +4 -4
  42. package/lib/generated/services/arsenal.js +1 -1
  43. package/lib/generated/services/artifact.js +4 -4
  44. package/lib/generated/services/athena.js +4 -4
  45. package/lib/generated/services/auditmanager.js +4 -4
  46. package/lib/generated/services/autoscaling-plans.js +2 -2
  47. package/lib/generated/services/autoscaling.js +4 -4
  48. package/lib/generated/services/aws-external-anthropic.js +3 -3
  49. package/lib/generated/services/aws-marketplace-management.js +1 -1
  50. package/lib/generated/services/aws-marketplace.js +4 -4
  51. package/lib/generated/services/aws-portal.js +1 -1
  52. package/lib/generated/services/awsconnector.js +1 -1
  53. package/lib/generated/services/b2bi.js +4 -4
  54. package/lib/generated/services/backup-gateway.js +4 -4
  55. package/lib/generated/services/backup-search.js +4 -4
  56. package/lib/generated/services/backup-storage.js +1 -1
  57. package/lib/generated/services/backup.js +4 -4
  58. package/lib/generated/services/batch.js +4 -4
  59. package/lib/generated/services/bcm-dashboards.js +4 -4
  60. package/lib/generated/services/bcm-data-exports.js +4 -4
  61. package/lib/generated/services/bcm-pricing-calculator.js +4 -4
  62. package/lib/generated/services/bcm-recommended-actions.js +2 -2
  63. package/lib/generated/services/bedrock-agentcore.js +4 -4
  64. package/lib/generated/services/bedrock-mantle.js +3 -3
  65. package/lib/generated/services/bedrock-websearch.js +2 -2
  66. package/lib/generated/services/bedrock.d.ts +4 -0
  67. package/lib/generated/services/bedrock.js +11 -5
  68. package/lib/generated/services/billing.js +4 -4
  69. package/lib/generated/services/billingconductor.js +4 -4
  70. package/lib/generated/services/braket.js +4 -4
  71. package/lib/generated/services/budgets.js +4 -4
  72. package/lib/generated/services/bugbust.js +3 -3
  73. package/lib/generated/services/cases.js +4 -4
  74. package/lib/generated/services/cassandra.js +4 -4
  75. package/lib/generated/services/ce.js +4 -4
  76. package/lib/generated/services/chatbot.js +4 -4
  77. package/lib/generated/services/chime.js +4 -4
  78. package/lib/generated/services/cleanrooms-ml.js +4 -4
  79. package/lib/generated/services/cleanrooms.js +4 -4
  80. package/lib/generated/services/cloud9.js +4 -4
  81. package/lib/generated/services/clouddirectory.js +3 -3
  82. package/lib/generated/services/cloudformation.js +4 -4
  83. package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
  84. package/lib/generated/services/cloudfront.js +4 -4
  85. package/lib/generated/services/cloudhsm.js +4 -4
  86. package/lib/generated/services/cloudsearch.js +3 -3
  87. package/lib/generated/services/cloudshell.js +3 -3
  88. package/lib/generated/services/cloudtrail-data.js +4 -4
  89. package/lib/generated/services/cloudtrail.js +4 -4
  90. package/lib/generated/services/cloudwatch.js +4 -4
  91. package/lib/generated/services/codeartifact.js +4 -4
  92. package/lib/generated/services/codebuild.js +4 -4
  93. package/lib/generated/services/codecatalyst.js +4 -4
  94. package/lib/generated/services/codecommit.js +4 -4
  95. package/lib/generated/services/codeconnections.js +4 -4
  96. package/lib/generated/services/codedeploy-commands-secure.js +1 -1
  97. package/lib/generated/services/codedeploy.js +4 -4
  98. package/lib/generated/services/codeguru-profiler.js +4 -4
  99. package/lib/generated/services/codeguru-reviewer.js +4 -4
  100. package/lib/generated/services/codeguru-security.js +4 -4
  101. package/lib/generated/services/codeguru.js +1 -1
  102. package/lib/generated/services/codepipeline.js +4 -4
  103. package/lib/generated/services/codestar-connections.js +4 -4
  104. package/lib/generated/services/codestar-notifications.js +4 -4
  105. package/lib/generated/services/codestar.js +3 -3
  106. package/lib/generated/services/codewhisperer.js +3 -3
  107. package/lib/generated/services/cognito-identity.js +4 -4
  108. package/lib/generated/services/cognito-idp.js +4 -4
  109. package/lib/generated/services/cognito-sync.js +3 -3
  110. package/lib/generated/services/comprehend.js +4 -4
  111. package/lib/generated/services/comprehendmedical.js +3 -3
  112. package/lib/generated/services/compute-optimizer.js +3 -3
  113. package/lib/generated/services/config.js +4 -4
  114. package/lib/generated/services/connect-campaigns.js +4 -4
  115. package/lib/generated/services/connect.js +9 -6
  116. package/lib/generated/services/consoleapp.js +2 -2
  117. package/lib/generated/services/consolidatedbilling.js +1 -1
  118. package/lib/generated/services/controlcatalog.js +3 -3
  119. package/lib/generated/services/controltower.js +4 -4
  120. package/lib/generated/services/cost-optimization-hub.js +2 -2
  121. package/lib/generated/services/cur.js +4 -4
  122. package/lib/generated/services/customer-verification.js +1 -1
  123. package/lib/generated/services/databrew.js +4 -4
  124. package/lib/generated/services/dataexchange.js +11 -6
  125. package/lib/generated/services/datapipeline.js +4 -4
  126. package/lib/generated/services/datasync.js +4 -4
  127. package/lib/generated/services/datazone.js +4 -4
  128. package/lib/generated/services/dax.js +4 -4
  129. package/lib/generated/services/dbqms.js +1 -1
  130. package/lib/generated/services/deadline.js +4 -4
  131. package/lib/generated/services/detective.js +4 -4
  132. package/lib/generated/services/devicefarm.js +4 -4
  133. package/lib/generated/services/devops-guru.js +4 -4
  134. package/lib/generated/services/directconnect.js +4 -4
  135. package/lib/generated/services/discovery.js +3 -3
  136. package/lib/generated/services/dlm.js +4 -4
  137. package/lib/generated/services/dms.js +4 -4
  138. package/lib/generated/services/docdb-elastic.js +4 -4
  139. package/lib/generated/services/drs.js +4 -4
  140. package/lib/generated/services/ds-data.js +4 -4
  141. package/lib/generated/services/ds.js +4 -4
  142. package/lib/generated/services/dsql.js +4 -4
  143. package/lib/generated/services/dynamodb.js +4 -4
  144. package/lib/generated/services/ebs.js +4 -4
  145. package/lib/generated/services/ec2-instance-connect.js +4 -4
  146. package/lib/generated/services/ec2.d.ts +95 -0
  147. package/lib/generated/services/ec2.js +161 -19
  148. package/lib/generated/services/ec2messages.js +2 -2
  149. package/lib/generated/services/ecr-public.js +4 -4
  150. package/lib/generated/services/ecr.js +4 -4
  151. package/lib/generated/services/ecs-mcp.js +1 -1
  152. package/lib/generated/services/ecs.js +4 -4
  153. package/lib/generated/services/eks-auth.js +4 -4
  154. package/lib/generated/services/eks-mcp.js +1 -1
  155. package/lib/generated/services/eks.d.ts +20 -0
  156. package/lib/generated/services/eks.js +40 -5
  157. package/lib/generated/services/elasticache.js +4 -4
  158. package/lib/generated/services/elasticbeanstalk.js +4 -4
  159. package/lib/generated/services/elasticfilesystem.js +4 -4
  160. package/lib/generated/services/elasticloadbalancing.js +4 -4
  161. package/lib/generated/services/elasticmapreduce.js +4 -4
  162. package/lib/generated/services/elastictranscoder.js +2 -2
  163. package/lib/generated/services/elemental-activations.js +1 -1
  164. package/lib/generated/services/elemental-appliances-software.js +2 -2
  165. package/lib/generated/services/elemental-inference.js +4 -4
  166. package/lib/generated/services/elemental-support-cases.js +3 -3
  167. package/lib/generated/services/elemental-support-content.js +1 -1
  168. package/lib/generated/services/emr-containers.js +4 -4
  169. package/lib/generated/services/emr-serverless.js +4 -4
  170. package/lib/generated/services/entityresolution.js +4 -4
  171. package/lib/generated/services/es.js +4 -4
  172. package/lib/generated/services/events.js +4 -4
  173. package/lib/generated/services/eventsbilltoaws.js +3 -3
  174. package/lib/generated/services/evidently.js +3 -3
  175. package/lib/generated/services/evs.js +4 -4
  176. package/lib/generated/services/execute-api.js +4 -4
  177. package/lib/generated/services/finops-agent.js +1 -1
  178. package/lib/generated/services/finspace-api.js +3 -3
  179. package/lib/generated/services/finspace.js +4 -4
  180. package/lib/generated/services/firehose.js +4 -4
  181. package/lib/generated/services/fis.js +4 -4
  182. package/lib/generated/services/fms.js +4 -4
  183. package/lib/generated/services/forecast.js +4 -4
  184. package/lib/generated/services/frauddetector.js +4 -4
  185. package/lib/generated/services/freertos.js +3 -3
  186. package/lib/generated/services/freetier.js +2 -2
  187. package/lib/generated/services/fsx.js +4 -4
  188. package/lib/generated/services/gamelift.js +4 -4
  189. package/lib/generated/services/gameliftstreams.js +4 -4
  190. package/lib/generated/services/geo-maps.js +3 -3
  191. package/lib/generated/services/geo-places.js +3 -3
  192. package/lib/generated/services/geo-routes.js +3 -3
  193. package/lib/generated/services/geo.js +4 -4
  194. package/lib/generated/services/glacier.js +4 -4
  195. package/lib/generated/services/globalaccelerator.js +4 -4
  196. package/lib/generated/services/glue.js +4 -4
  197. package/lib/generated/services/grafana.js +4 -4
  198. package/lib/generated/services/greengrass.js +4 -4
  199. package/lib/generated/services/groundstation.js +4 -4
  200. package/lib/generated/services/groundtruthlabeling.js +1 -1
  201. package/lib/generated/services/guardduty.js +4 -4
  202. package/lib/generated/services/health-agent.js +4 -4
  203. package/lib/generated/services/health.js +4 -4
  204. package/lib/generated/services/healthlake.js +4 -4
  205. package/lib/generated/services/honeycode.js +2 -2
  206. package/lib/generated/services/iam.js +4 -4
  207. package/lib/generated/services/identity-sync.js +2 -2
  208. package/lib/generated/services/identitystore-auth.js +1 -1
  209. package/lib/generated/services/identitystore.js +4 -4
  210. package/lib/generated/services/imagebuilder.js +4 -4
  211. package/lib/generated/services/importexport.js +2 -2
  212. package/lib/generated/services/inspector-scan.js +2 -2
  213. package/lib/generated/services/inspector.js +2 -2
  214. package/lib/generated/services/inspector2-telemetry.js +1 -1
  215. package/lib/generated/services/inspector2.js +4 -4
  216. package/lib/generated/services/interconnect.js +4 -4
  217. package/lib/generated/services/internetmonitor.js +4 -4
  218. package/lib/generated/services/invoicing.js +4 -4
  219. package/lib/generated/services/iot-device-tester.js +1 -1
  220. package/lib/generated/services/iot.js +4 -4
  221. package/lib/generated/services/iotanalytics.js +3 -3
  222. package/lib/generated/services/iotdeviceadvisor.js +4 -4
  223. package/lib/generated/services/iotevents.js +3 -3
  224. package/lib/generated/services/iotfleethub.js +3 -3
  225. package/lib/generated/services/iotfleetwise.js +4 -4
  226. package/lib/generated/services/iotjobsdata.js +4 -4
  227. package/lib/generated/services/iotmanagedintegrations.js +4 -4
  228. package/lib/generated/services/iotsitewise.js +4 -4
  229. package/lib/generated/services/iottwinmaker.js +4 -4
  230. package/lib/generated/services/iotwireless.js +4 -4
  231. package/lib/generated/services/iq-permission.js +2 -2
  232. package/lib/generated/services/iq.js +2 -2
  233. package/lib/generated/services/ivs.js +4 -4
  234. package/lib/generated/services/ivschat.js +4 -4
  235. package/lib/generated/services/kafka-cluster.js +3 -3
  236. package/lib/generated/services/kafka.js +4 -4
  237. package/lib/generated/services/kafkaconnect.js +4 -4
  238. package/lib/generated/services/kendra-ranking.js +4 -4
  239. package/lib/generated/services/kendra.js +4 -4
  240. package/lib/generated/services/kinesis.js +4 -4
  241. package/lib/generated/services/kinesisanalytics.js +4 -4
  242. package/lib/generated/services/kinesisvideo.js +4 -4
  243. package/lib/generated/services/kms.js +4 -4
  244. package/lib/generated/services/lakeformation.js +3 -3
  245. package/lib/generated/services/lambda.js +4 -4
  246. package/lib/generated/services/launchwizard.js +4 -4
  247. package/lib/generated/services/lex.js +4 -4
  248. package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
  249. package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
  250. package/lib/generated/services/license-manager.js +4 -4
  251. package/lib/generated/services/lightsail.js +4 -4
  252. package/lib/generated/services/logs.js +4 -4
  253. package/lib/generated/services/lookoutequipment.js +4 -4
  254. package/lib/generated/services/lookoutmetrics.js +3 -3
  255. package/lib/generated/services/lookoutvision.js +3 -3
  256. package/lib/generated/services/m2.js +4 -4
  257. package/lib/generated/services/machinelearning.js +3 -3
  258. package/lib/generated/services/macie2.js +4 -4
  259. package/lib/generated/services/managedblockchain-query.js +2 -2
  260. package/lib/generated/services/managedblockchain.js +4 -4
  261. package/lib/generated/services/mapcredits.js +2 -2
  262. package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
  263. package/lib/generated/services/mechanicalturk.js +2 -2
  264. package/lib/generated/services/mediaconnect.js +4 -4
  265. package/lib/generated/services/mediaconvert.js +4 -4
  266. package/lib/generated/services/mediaimport.js +1 -1
  267. package/lib/generated/services/medialive.js +4 -4
  268. package/lib/generated/services/mediapackage-vod.js +4 -4
  269. package/lib/generated/services/mediapackage.js +4 -4
  270. package/lib/generated/services/mediapackagev2.js +4 -4
  271. package/lib/generated/services/mediastore.js +4 -4
  272. package/lib/generated/services/mediatailor.js +4 -4
  273. package/lib/generated/services/medical-imaging.js +4 -4
  274. package/lib/generated/services/memorydb.js +4 -4
  275. package/lib/generated/services/mgh.js +4 -4
  276. package/lib/generated/services/mgn.js +4 -4
  277. package/lib/generated/services/migrationhub-orchestrator.js +4 -4
  278. package/lib/generated/services/migrationhub-strategy.js +2 -2
  279. package/lib/generated/services/mobileanalytics.js +1 -1
  280. package/lib/generated/services/mobiletargeting.js +4 -4
  281. package/lib/generated/services/monitron.js +3 -3
  282. package/lib/generated/services/mpa.js +4 -4
  283. package/lib/generated/services/mq.js +4 -4
  284. package/lib/generated/services/neptune-db.js +4 -4
  285. package/lib/generated/services/neptune-graph.js +4 -4
  286. package/lib/generated/services/network-firewall.js +4 -4
  287. package/lib/generated/services/network-security-director.js +1 -1
  288. package/lib/generated/services/networkflowmonitor.js +4 -4
  289. package/lib/generated/services/networkmanager-chat.js +1 -1
  290. package/lib/generated/services/networkmanager.js +4 -4
  291. package/lib/generated/services/networkmonitor.js +4 -4
  292. package/lib/generated/services/nimble.js +3 -3
  293. package/lib/generated/services/notifications-contacts.js +4 -4
  294. package/lib/generated/services/notifications.js +4 -4
  295. package/lib/generated/services/nova-act.js +3 -3
  296. package/lib/generated/services/oam.js +4 -4
  297. package/lib/generated/services/observabilityadmin.js +4 -4
  298. package/lib/generated/services/odb.js +4 -4
  299. package/lib/generated/services/omics.js +4 -4
  300. package/lib/generated/services/one.js +3 -3
  301. package/lib/generated/services/opensearch.js +3 -3
  302. package/lib/generated/services/opsworks-cm.js +2 -2
  303. package/lib/generated/services/opsworks.js +2 -2
  304. package/lib/generated/services/organizations.js +4 -4
  305. package/lib/generated/services/osis.js +4 -4
  306. package/lib/generated/services/outposts.js +4 -4
  307. package/lib/generated/services/panorama.js +3 -3
  308. package/lib/generated/services/partnercentral-account-management.js +2 -2
  309. package/lib/generated/services/partnercentral.js +4 -4
  310. package/lib/generated/services/payment-cryptography.js +4 -4
  311. package/lib/generated/services/payments.js +3 -3
  312. package/lib/generated/services/pca-connector-ad.js +4 -4
  313. package/lib/generated/services/pca-connector-scep.js +4 -4
  314. package/lib/generated/services/pcs.js +4 -4
  315. package/lib/generated/services/personalize.js +4 -4
  316. package/lib/generated/services/pi.js +4 -4
  317. package/lib/generated/services/pipes.js +4 -4
  318. package/lib/generated/services/polly.js +3 -3
  319. package/lib/generated/services/pricing.js +2 -2
  320. package/lib/generated/services/pricingplanmanager.js +3 -3
  321. package/lib/generated/services/private-networks.js +3 -3
  322. package/lib/generated/services/profile.js +4 -4
  323. package/lib/generated/services/proton.js +4 -4
  324. package/lib/generated/services/purchase-orders.js +3 -3
  325. package/lib/generated/services/q.js +3 -3
  326. package/lib/generated/services/qapps.js +4 -4
  327. package/lib/generated/services/qbusiness.js +4 -4
  328. package/lib/generated/services/qdeveloper.js +3 -3
  329. package/lib/generated/services/qldb.js +3 -3
  330. package/lib/generated/services/quicksight.js +9 -6
  331. package/lib/generated/services/ram.js +4 -4
  332. package/lib/generated/services/rbin.js +4 -4
  333. package/lib/generated/services/rds-data.js +4 -4
  334. package/lib/generated/services/rds-db.js +2 -2
  335. package/lib/generated/services/rds.js +4 -4
  336. package/lib/generated/services/redshift-data.js +4 -4
  337. package/lib/generated/services/redshift-serverless.js +4 -4
  338. package/lib/generated/services/redshift.js +4 -4
  339. package/lib/generated/services/refactor-spaces.js +4 -4
  340. package/lib/generated/services/rekognition.js +4 -4
  341. package/lib/generated/services/repostspace.js +4 -4
  342. package/lib/generated/services/researchstudio.js +1 -1
  343. package/lib/generated/services/resiliencehub.js +4 -4
  344. package/lib/generated/services/resource-explorer-2.js +4 -4
  345. package/lib/generated/services/resource-explorer.js +1 -1
  346. package/lib/generated/services/resource-groups.js +4 -4
  347. package/lib/generated/services/rhelkb.js +1 -1
  348. package/lib/generated/services/robomaker.js +3 -3
  349. package/lib/generated/services/rolesanywhere.js +4 -4
  350. package/lib/generated/services/route53-recovery-cluster.js +4 -4
  351. package/lib/generated/services/route53-recovery-control-config.js +4 -4
  352. package/lib/generated/services/route53-recovery-readiness.js +4 -4
  353. package/lib/generated/services/route53.js +4 -4
  354. package/lib/generated/services/route53domains.js +2 -2
  355. package/lib/generated/services/route53globalresolver.js +4 -4
  356. package/lib/generated/services/route53profiles.js +4 -4
  357. package/lib/generated/services/route53resolver.js +4 -4
  358. package/lib/generated/services/rtbfabric.js +4 -4
  359. package/lib/generated/services/rum.js +4 -4
  360. package/lib/generated/services/s3-object-lambda.js +3 -3
  361. package/lib/generated/services/s3-outposts.js +4 -4
  362. package/lib/generated/services/s3.js +4 -4
  363. package/lib/generated/services/s3express.js +3 -3
  364. package/lib/generated/services/s3files.js +4 -4
  365. package/lib/generated/services/s3tables.js +4 -4
  366. package/lib/generated/services/s3vectors.js +4 -4
  367. package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
  368. package/lib/generated/services/sagemaker-geospatial.js +4 -4
  369. package/lib/generated/services/sagemaker-mlflow.js +3 -3
  370. package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
  371. package/lib/generated/services/sagemaker.js +4 -4
  372. package/lib/generated/services/savingsplans.js +4 -4
  373. package/lib/generated/services/scheduler.js +4 -4
  374. package/lib/generated/services/schemas.js +4 -4
  375. package/lib/generated/services/scn.js +4 -4
  376. package/lib/generated/services/sdb.js +3 -3
  377. package/lib/generated/services/secretsmanager.js +4 -4
  378. package/lib/generated/services/security-ir.js +4 -4
  379. package/lib/generated/services/securityagent.js +4 -4
  380. package/lib/generated/services/securityhub.js +4 -4
  381. package/lib/generated/services/securitylake.js +4 -4
  382. package/lib/generated/services/serverlessrepo.js +4 -4
  383. package/lib/generated/services/servicecatalog.js +4 -4
  384. package/lib/generated/services/servicediscovery.js +4 -4
  385. package/lib/generated/services/serviceextract.js +1 -1
  386. package/lib/generated/services/servicequotas.js +4 -4
  387. package/lib/generated/services/ses.js +4 -4
  388. package/lib/generated/services/shield.js +4 -4
  389. package/lib/generated/services/signer.js +4 -4
  390. package/lib/generated/services/signin.js +4 -4
  391. package/lib/generated/services/simspaceweaver.js +3 -3
  392. package/lib/generated/services/sms-voice.js +4 -4
  393. package/lib/generated/services/sms.js +1 -1
  394. package/lib/generated/services/snow-device-management.js +4 -4
  395. package/lib/generated/services/snowball.js +2 -2
  396. package/lib/generated/services/sns.js +4 -4
  397. package/lib/generated/services/social-messaging.js +4 -4
  398. package/lib/generated/services/sqlworkbench.js +3 -3
  399. package/lib/generated/services/sqs.js +4 -4
  400. package/lib/generated/services/ssm-contacts.js +4 -4
  401. package/lib/generated/services/ssm-guiconnect.js +2 -2
  402. package/lib/generated/services/ssm-incidents.js +4 -4
  403. package/lib/generated/services/ssm-quicksetup.js +4 -4
  404. package/lib/generated/services/ssm-sap.js +4 -4
  405. package/lib/generated/services/ssm.d.ts +20 -0
  406. package/lib/generated/services/ssm.js +39 -5
  407. package/lib/generated/services/ssmmessages.js +2 -2
  408. package/lib/generated/services/sso-directory.js +1 -1
  409. package/lib/generated/services/sso-oauth.js +3 -3
  410. package/lib/generated/services/sso.js +4 -4
  411. package/lib/generated/services/states.js +4 -4
  412. package/lib/generated/services/storagegateway.js +4 -4
  413. package/lib/generated/services/sts.js +4 -4
  414. package/lib/generated/services/support-console.js +1 -1
  415. package/lib/generated/services/support.js +2 -2
  416. package/lib/generated/services/supportapp.js +2 -2
  417. package/lib/generated/services/supportauthz.js +4 -4
  418. package/lib/generated/services/supportplans.js +1 -1
  419. package/lib/generated/services/sustainability.js +2 -2
  420. package/lib/generated/services/swf.js +4 -4
  421. package/lib/generated/services/synthetics.js +4 -4
  422. package/lib/generated/services/tag.js +2 -2
  423. package/lib/generated/services/tax.js +2 -2
  424. package/lib/generated/services/textract.js +4 -4
  425. package/lib/generated/services/thinclient.js +4 -4
  426. package/lib/generated/services/timestream-influxdb.js +4 -4
  427. package/lib/generated/services/timestream.js +4 -4
  428. package/lib/generated/services/tiros.js +1 -1
  429. package/lib/generated/services/tnb.js +4 -4
  430. package/lib/generated/services/transcribe.js +4 -4
  431. package/lib/generated/services/transfer.js +4 -4
  432. package/lib/generated/services/transform-custom.js +3 -3
  433. package/lib/generated/services/transform.js +3 -3
  434. package/lib/generated/services/translate.js +4 -4
  435. package/lib/generated/services/trustedadvisor.js +3 -3
  436. package/lib/generated/services/ts.js +3 -3
  437. package/lib/generated/services/user-subscriptions.js +2 -2
  438. package/lib/generated/services/uxc.js +2 -2
  439. package/lib/generated/services/vendor-insights.js +3 -3
  440. package/lib/generated/services/verified-access.js +1 -1
  441. package/lib/generated/services/verifiedpermissions.js +4 -4
  442. package/lib/generated/services/voiceid.js +4 -4
  443. package/lib/generated/services/vpc-lattice-svcs.js +3 -3
  444. package/lib/generated/services/vpc-lattice.js +4 -4
  445. package/lib/generated/services/vpce.js +2 -2
  446. package/lib/generated/services/waf-regional.js +4 -4
  447. package/lib/generated/services/waf.js +4 -4
  448. package/lib/generated/services/wafv2.js +4 -4
  449. package/lib/generated/services/wam.js +1 -1
  450. package/lib/generated/services/wellarchitected.js +4 -4
  451. package/lib/generated/services/wickr.js +4 -4
  452. package/lib/generated/services/wisdom.js +4 -4
  453. package/lib/generated/services/workdocs.js +3 -3
  454. package/lib/generated/services/worklink.js +3 -3
  455. package/lib/generated/services/workmail.js +4 -4
  456. package/lib/generated/services/workmailmessageflow.js +3 -3
  457. package/lib/generated/services/workspaces-instances.js +4 -4
  458. package/lib/generated/services/workspaces-web.js +4 -4
  459. package/lib/generated/services/workspaces.d.ts +4 -0
  460. package/lib/generated/services/workspaces.js +11 -5
  461. package/lib/generated/services/xray.js +4 -4
  462. package/package.json +1 -1
@@ -16,7 +16,7 @@ class ConsoleappActions {
16
16
  }
17
17
  exports.ConsoleappActions = ConsoleappActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- ConsoleappActions[_a] = { fqn: "@cdk_utils/iam.consoleapp.ConsoleappActions", version: "1.6.0" };
19
+ ConsoleappActions[_a] = { fqn: "@cdk_utils/iam.consoleapp.ConsoleappActions", version: "1.7.0" };
20
20
  /** The IAM service prefix. */
21
21
  ConsoleappActions.SERVICE_PREFIX = "consoleapp";
22
22
  /** [Read] consoleapp:GetDeviceIdentity */
@@ -73,5 +73,5 @@ class ConsoleappResources {
73
73
  }
74
74
  exports.ConsoleappResources = ConsoleappResources;
75
75
  _b = JSII_RTTI_SYMBOL_1;
76
- ConsoleappResources[_b] = { fqn: "@cdk_utils/iam.consoleapp.ConsoleappResources", version: "1.6.0" };
76
+ ConsoleappResources[_b] = { fqn: "@cdk_utils/iam.consoleapp.ConsoleappResources", version: "1.7.0" };
77
77
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZWFwcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvc2VydmljZXMvY29uc29sZWFwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdGQUFnRjtBQUNoRiw2Q0FBNkM7QUFDN0MsMERBQTBEO0FBQzFELGlEQUFpRDtBQUNqRCxvREFBb0Q7QUFDcEQsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7O0FBQTlCLDhDQXVCQzs7O0FBdEJBLDhCQUE4QjtBQUNkLGdDQUFjLEdBQUcsWUFBWSxDQUFDO0FBRTlDLDBDQUEwQztBQUMxQix5Q0FBdUIsR0FBRyw4QkFBOEIsQ0FBQztBQUN6RSw2Q0FBNkM7QUFDN0Isc0NBQW9CLEdBQUcsaUNBQWlDLENBQUM7QUFFekUsOEJBQThCO0FBQ2QsZ0NBQWMsR0FBYTtJQUMxQyxpQkFBaUIsQ0FBQyx1QkFBdUI7Q0FDekMsQ0FBQztBQUNGLCtCQUErQjtBQUNmLGlDQUFlLEdBQWEsRUFBRSxDQUFDO0FBQy9DLDhCQUE4QjtBQUNkLGdDQUFjLEdBQWE7SUFDMUMsaUJBQWlCLENBQUMsb0JBQW9CO0NBQ3RDLENBQUM7QUFDRiwrQ0FBK0M7QUFDL0IsZ0RBQThCLEdBQWEsRUFBRSxDQUFDO0FBQzlELGlDQUFpQztBQUNqQixtQ0FBaUIsR0FBYSxFQUFFLENBQUM7QUErQmxELE1BQU0sc0JBQXNCLEdBQzNCLHdIQUF3SCxDQUFDO0FBRTFIOztHQUVHO0FBQ0gsTUFBYSxtQkFBbUI7SUFDL0I7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQXVDO1FBQzVELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssZ0JBQWdCLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxXQUFXLEtBQUssQ0FBQyxRQUFRLGFBQWEsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BJLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxHQUFXO1FBQzFDLE9BQU8sc0JBQXNCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsc0JBQXNCLENBQzVCLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLFFBQVE7WUFDaEMsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsVUFBVTtTQUNwQyxDQUFDO0lBQ0gsQ0FBQzs7QUFoQ0Ysa0RBaUNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2UvY29uc29sZWFwcC5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgY29uc29sZWFwcCBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgQ29uc29sZWFwcEFjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJjb25zb2xlYXBwXCI7XG5cblx0LyoqIFtSZWFkXSBjb25zb2xlYXBwOkdldERldmljZUlkZW50aXR5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXREZXZpY2VJZGVudGl0eSA9IFwiY29uc29sZWFwcDpHZXREZXZpY2VJZGVudGl0eVwiO1xuXHQvKiogW0xpc3RdIGNvbnNvbGVhcHA6TGlzdERldmljZUlkZW50aXRpZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REZXZpY2VJZGVudGl0aWVzID0gXCJjb25zb2xlYXBwOkxpc3REZXZpY2VJZGVudGl0aWVzXCI7XG5cblx0LyoqIEFsbCByZWFkLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxSZWFkQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0Q29uc29sZWFwcEFjdGlvbnMuYWN0aW9uR2V0RGV2aWNlSWRlbnRpdHksXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0Q29uc29sZWFwcEFjdGlvbnMuTGlzdERldmljZUlkZW50aXRpZXMsXG5cdF07XG5cdC8qKiBBbGwgcGVybWlzc2lvbi1tYW5hZ2VtZW50LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxQZXJtaXNzaW9uTWFuYWdlbWVudEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBBbGwgdGFnZ2luZy1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsVGFnZ2luZ0FjdGlvbnM6IHN0cmluZ1tdID0gW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBEZXZpY2VJZGVudGl0eSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc29sZWFwcERldmljZUlkZW50aXR5QXJuUHJvcHMge1xuXHQvKiogVGhlIERldmljZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkZXZpY2VJZDogc3RyaW5nO1xuXHQvKiogVGhlIElkZW50aXR5SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGlkZW50aXR5SWQ6IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIERldmljZUlkZW50aXR5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25zb2xlYXBwRGV2aWNlSWRlbnRpdHlBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEZXZpY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRldmljZUlkOiBzdHJpbmc7XG5cdC8qKiBUaGUgSWRlbnRpdHlJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGlkZW50aXR5SWQ6IHN0cmluZztcbn1cblxuY29uc3QgRGV2aWNlSWRlbnRpdHlBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Y29uc29sZWFwcDo6KD88YWNjb3VudD5bXjpdKik6ZGV2aWNlXFwvKD88ZGV2aWNlSWQ+W146Lz9dKylcXC9pZGVudGl0eVxcLyg/PGlkZW50aXR5SWQ+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBjb25zb2xlYXBwIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbnNvbGVhcHBSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIERldmljZUlkZW50aXR5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGRldmljZUlkZW50aXR5KHByb3BzOiBDb25zb2xlYXBwRGV2aWNlSWRlbnRpdHlBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Y29uc29sZWFwcDo6JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkZXZpY2UvJHtwcm9wcy5kZXZpY2VJZH0vaWRlbnRpdHkvJHtwcm9wcy5pZGVudGl0eUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBEZXZpY2VJZGVudGl0eSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRGV2aWNlSWRlbnRpdHlBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRGV2aWNlSWRlbnRpdHlBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgRGV2aWNlSWRlbnRpdHkgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRGV2aWNlSWRlbnRpdHlBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IENvbnNvbGVhcHBEZXZpY2VJZGVudGl0eUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRGV2aWNlSWRlbnRpdHlBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRGV2aWNlSWRlbnRpdHkgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZGV2aWNlSWQ6IG1hdGNoLmdyb3VwcyEuZGV2aWNlSWQsXG5cdFx0XHRpZGVudGl0eUlkOiBtYXRjaC5ncm91cHMhLmlkZW50aXR5SWQsXG5cdFx0fTtcblx0fVxufVxuIl19
@@ -16,7 +16,7 @@ class ConsolidatedbillingActions {
16
16
  }
17
17
  exports.ConsolidatedbillingActions = ConsolidatedbillingActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- ConsolidatedbillingActions[_a] = { fqn: "@cdk_utils/iam.consolidatedbilling.ConsolidatedbillingActions", version: "1.6.0" };
19
+ ConsolidatedbillingActions[_a] = { fqn: "@cdk_utils/iam.consolidatedbilling.ConsolidatedbillingActions", version: "1.7.0" };
20
20
  /** The IAM service prefix. */
21
21
  ConsolidatedbillingActions.SERVICE_PREFIX = "consolidatedbilling";
22
22
  /** [Read] consolidatedbilling:GetAccountBillingRole */
@@ -16,7 +16,7 @@ class ControlcatalogActions {
16
16
  }
17
17
  exports.ControlcatalogActions = ControlcatalogActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- ControlcatalogActions[_a] = { fqn: "@cdk_utils/iam.controlcatalog.ControlcatalogActions", version: "1.6.0" };
19
+ ControlcatalogActions[_a] = { fqn: "@cdk_utils/iam.controlcatalog.ControlcatalogActions", version: "1.7.0" };
20
20
  /** The IAM service prefix. */
21
21
  ControlcatalogActions.SERVICE_PREFIX = "controlcatalog";
22
22
  /** [Read] controlcatalog:GetControl */
@@ -172,7 +172,7 @@ class ControlcatalogResources {
172
172
  }
173
173
  exports.ControlcatalogResources = ControlcatalogResources;
174
174
  _b = JSII_RTTI_SYMBOL_1;
175
- ControlcatalogResources[_b] = { fqn: "@cdk_utils/iam.controlcatalog.ControlcatalogResources", version: "1.6.0" };
175
+ ControlcatalogResources[_b] = { fqn: "@cdk_utils/iam.controlcatalog.ControlcatalogResources", version: "1.7.0" };
176
176
  /**
177
177
  * API operation to required IAM actions mapping for controlcatalog.
178
178
  */
@@ -180,7 +180,7 @@ class ControlcatalogOperations {
180
180
  }
181
181
  exports.ControlcatalogOperations = ControlcatalogOperations;
182
182
  _c = JSII_RTTI_SYMBOL_1;
183
- ControlcatalogOperations[_c] = { fqn: "@cdk_utils/iam.controlcatalog.ControlcatalogOperations", version: "1.6.0" };
183
+ ControlcatalogOperations[_c] = { fqn: "@cdk_utils/iam.controlcatalog.ControlcatalogOperations", version: "1.7.0" };
184
184
  /** IAM actions required for the GetControl API call. */
185
185
  ControlcatalogOperations.opGetControl = [
186
186
  "controltower:DescribeGuardrail",
@@ -16,7 +16,7 @@ class ControltowerActions {
16
16
  }
17
17
  exports.ControltowerActions = ControltowerActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- ControltowerActions[_a] = { fqn: "@cdk_utils/iam.controltower.ControltowerActions", version: "1.6.0" };
19
+ ControltowerActions[_a] = { fqn: "@cdk_utils/iam.controltower.ControltowerActions", version: "1.7.0" };
20
20
  /** The IAM service prefix. */
21
21
  ControltowerActions.SERVICE_PREFIX = "controltower";
22
22
  /** [Write] controltower:CreateLandingZone */
@@ -351,7 +351,7 @@ class ControltowerResources {
351
351
  }
352
352
  exports.ControltowerResources = ControltowerResources;
353
353
  _b = JSII_RTTI_SYMBOL_1;
354
- ControltowerResources[_b] = { fqn: "@cdk_utils/iam.controltower.ControltowerResources", version: "1.6.0" };
354
+ ControltowerResources[_b] = { fqn: "@cdk_utils/iam.controltower.ControltowerResources", version: "1.7.0" };
355
355
  /**
356
356
  * API operation to required IAM actions mapping for controltower.
357
357
  */
@@ -359,7 +359,7 @@ class ControltowerOperations {
359
359
  }
360
360
  exports.ControltowerOperations = ControltowerOperations;
361
361
  _c = JSII_RTTI_SYMBOL_1;
362
- ControltowerOperations[_c] = { fqn: "@cdk_utils/iam.controltower.ControltowerOperations", version: "1.6.0" };
362
+ ControltowerOperations[_c] = { fqn: "@cdk_utils/iam.controltower.ControltowerOperations", version: "1.7.0" };
363
363
  /** IAM actions required for the CreateLandingZone API call. */
364
364
  ControltowerOperations.CreateLandingZone = [
365
365
  "controltower:CreateLandingZone",
@@ -516,7 +516,7 @@ class ControltowerConditions {
516
516
  }
517
517
  exports.ControltowerConditions = ControltowerConditions;
518
518
  _d = JSII_RTTI_SYMBOL_1;
519
- ControltowerConditions[_d] = { fqn: "@cdk_utils/iam.controltower.ControltowerConditions", version: "1.6.0" };
519
+ ControltowerConditions[_d] = { fqn: "@cdk_utils/iam.controltower.ControltowerConditions", version: "1.7.0" };
520
520
  /** Condition keys applicable to the CreateLandingZone action. */
521
521
  ControltowerConditions.CreateLandingZoneConditionKeys = [
522
522
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class CostOptimizationHubActions {
16
16
  }
17
17
  exports.CostOptimizationHubActions = CostOptimizationHubActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- CostOptimizationHubActions[_a] = { fqn: "@cdk_utils/iam.cost_optimization_hub.CostOptimizationHubActions", version: "1.6.0" };
19
+ CostOptimizationHubActions[_a] = { fqn: "@cdk_utils/iam.cost_optimization_hub.CostOptimizationHubActions", version: "1.7.0" };
20
20
  /** The IAM service prefix. */
21
21
  CostOptimizationHubActions.SERVICE_PREFIX = "cost-optimization-hub";
22
22
  /** [Read] cost-optimization-hub:GetPreferences */
@@ -63,7 +63,7 @@ class CostOptimizationHubOperations {
63
63
  }
64
64
  exports.CostOptimizationHubOperations = CostOptimizationHubOperations;
65
65
  _b = JSII_RTTI_SYMBOL_1;
66
- CostOptimizationHubOperations[_b] = { fqn: "@cdk_utils/iam.cost_optimization_hub.CostOptimizationHubOperations", version: "1.6.0" };
66
+ CostOptimizationHubOperations[_b] = { fqn: "@cdk_utils/iam.cost_optimization_hub.CostOptimizationHubOperations", version: "1.7.0" };
67
67
  /** IAM actions required for the GetPreferences API call. */
68
68
  CostOptimizationHubOperations.opGetPreferences = [
69
69
  "cost-optimization-hub:GetPreferences",
@@ -16,7 +16,7 @@ class CurActions {
16
16
  }
17
17
  exports.CurActions = CurActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- CurActions[_a] = { fqn: "@cdk_utils/iam.cur.CurActions", version: "1.6.0" };
19
+ CurActions[_a] = { fqn: "@cdk_utils/iam.cur.CurActions", version: "1.7.0" };
20
20
  /** The IAM service prefix. */
21
21
  CurActions.SERVICE_PREFIX = "cur";
22
22
  /** [Write] cur:DeleteReportDefinition */
@@ -104,7 +104,7 @@ class CurResources {
104
104
  }
105
105
  exports.CurResources = CurResources;
106
106
  _b = JSII_RTTI_SYMBOL_1;
107
- CurResources[_b] = { fqn: "@cdk_utils/iam.cur.CurResources", version: "1.6.0" };
107
+ CurResources[_b] = { fqn: "@cdk_utils/iam.cur.CurResources", version: "1.7.0" };
108
108
  /**
109
109
  * API operation to required IAM actions mapping for cur.
110
110
  */
@@ -112,7 +112,7 @@ class CurOperations {
112
112
  }
113
113
  exports.CurOperations = CurOperations;
114
114
  _c = JSII_RTTI_SYMBOL_1;
115
- CurOperations[_c] = { fqn: "@cdk_utils/iam.cur.CurOperations", version: "1.6.0" };
115
+ CurOperations[_c] = { fqn: "@cdk_utils/iam.cur.CurOperations", version: "1.7.0" };
116
116
  /** IAM actions required for the DeleteReportDefinition API call. */
117
117
  CurOperations.DeleteReportDefinition = [
118
118
  "cur:DeleteReportDefinition",
@@ -161,7 +161,7 @@ class CurConditions {
161
161
  }
162
162
  exports.CurConditions = CurConditions;
163
163
  _d = JSII_RTTI_SYMBOL_1;
164
- CurConditions[_d] = { fqn: "@cdk_utils/iam.cur.CurConditions", version: "1.6.0" };
164
+ CurConditions[_d] = { fqn: "@cdk_utils/iam.cur.CurConditions", version: "1.7.0" };
165
165
  /** Condition keys applicable to the ListTagsForResource action. */
166
166
  CurConditions.ListTagsForResourceConditionKeys = [
167
167
  "aws:ResourceTag/${TagKey}",
@@ -16,7 +16,7 @@ class CustomerVerificationActions {
16
16
  }
17
17
  exports.CustomerVerificationActions = CustomerVerificationActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- CustomerVerificationActions[_a] = { fqn: "@cdk_utils/iam.customer_verification.CustomerVerificationActions", version: "1.6.0" };
19
+ CustomerVerificationActions[_a] = { fqn: "@cdk_utils/iam.customer_verification.CustomerVerificationActions", version: "1.7.0" };
20
20
  /** The IAM service prefix. */
21
21
  CustomerVerificationActions.SERVICE_PREFIX = "customer-verification";
22
22
  /** [Write] customer-verification:CreateCustomerVerificationDetails */
@@ -16,7 +16,7 @@ class DatabrewActions {
16
16
  }
17
17
  exports.DatabrewActions = DatabrewActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- DatabrewActions[_a] = { fqn: "@cdk_utils/iam.databrew.DatabrewActions", version: "1.6.0" };
19
+ DatabrewActions[_a] = { fqn: "@cdk_utils/iam.databrew.DatabrewActions", version: "1.7.0" };
20
20
  /** The IAM service prefix. */
21
21
  DatabrewActions.SERVICE_PREFIX = "databrew";
22
22
  /** [Write] databrew:BatchDeleteRecipeVersion */
@@ -345,7 +345,7 @@ class DatabrewResources {
345
345
  }
346
346
  exports.DatabrewResources = DatabrewResources;
347
347
  _b = JSII_RTTI_SYMBOL_1;
348
- DatabrewResources[_b] = { fqn: "@cdk_utils/iam.databrew.DatabrewResources", version: "1.6.0" };
348
+ DatabrewResources[_b] = { fqn: "@cdk_utils/iam.databrew.DatabrewResources", version: "1.7.0" };
349
349
  /**
350
350
  * API operation to required IAM actions mapping for databrew.
351
351
  */
@@ -353,7 +353,7 @@ class DatabrewOperations {
353
353
  }
354
354
  exports.DatabrewOperations = DatabrewOperations;
355
355
  _c = JSII_RTTI_SYMBOL_1;
356
- DatabrewOperations[_c] = { fqn: "@cdk_utils/iam.databrew.DatabrewOperations", version: "1.6.0" };
356
+ DatabrewOperations[_c] = { fqn: "@cdk_utils/iam.databrew.DatabrewOperations", version: "1.7.0" };
357
357
  /** IAM actions required for the BatchDeleteRecipeVersion API call. */
358
358
  DatabrewOperations.BatchDeleteRecipeVersion = [
359
359
  "databrew:BatchDeleteRecipeVersion",
@@ -512,7 +512,7 @@ class DatabrewConditions {
512
512
  }
513
513
  exports.DatabrewConditions = DatabrewConditions;
514
514
  _d = JSII_RTTI_SYMBOL_1;
515
- DatabrewConditions[_d] = { fqn: "@cdk_utils/iam.databrew.DatabrewConditions", version: "1.6.0" };
515
+ DatabrewConditions[_d] = { fqn: "@cdk_utils/iam.databrew.DatabrewConditions", version: "1.7.0" };
516
516
  /** Condition keys applicable to the CreateDataset action. */
517
517
  DatabrewConditions.CreateDatasetConditionKeys = [
518
518
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class DataexchangeActions {
16
16
  }
17
17
  exports.DataexchangeActions = DataexchangeActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- DataexchangeActions[_a] = { fqn: "@cdk_utils/iam.dataexchange.DataexchangeActions", version: "1.6.0" };
19
+ DataexchangeActions[_a] = { fqn: "@cdk_utils/iam.dataexchange.DataexchangeActions", version: "1.7.0" };
20
20
  /** The IAM service prefix. */
21
21
  DataexchangeActions.SERVICE_PREFIX = "dataexchange";
22
22
  /** [Write] dataexchange:AcceptDataGrant */
@@ -427,7 +427,7 @@ class DataexchangeResources {
427
427
  }
428
428
  exports.DataexchangeResources = DataexchangeResources;
429
429
  _b = JSII_RTTI_SYMBOL_1;
430
- DataexchangeResources[_b] = { fqn: "@cdk_utils/iam.dataexchange.DataexchangeResources", version: "1.6.0" };
430
+ DataexchangeResources[_b] = { fqn: "@cdk_utils/iam.dataexchange.DataexchangeResources", version: "1.7.0" };
431
431
  /**
432
432
  * API operation to required IAM actions mapping for dataexchange.
433
433
  */
@@ -435,7 +435,7 @@ class DataexchangeOperations {
435
435
  }
436
436
  exports.DataexchangeOperations = DataexchangeOperations;
437
437
  _c = JSII_RTTI_SYMBOL_1;
438
- DataexchangeOperations[_c] = { fqn: "@cdk_utils/iam.dataexchange.DataexchangeOperations", version: "1.6.0" };
438
+ DataexchangeOperations[_c] = { fqn: "@cdk_utils/iam.dataexchange.DataexchangeOperations", version: "1.7.0" };
439
439
  /** IAM actions required for the AcceptDataGrant API call. */
440
440
  DataexchangeOperations.AcceptDataGrant = [
441
441
  "dataexchange:AcceptDataGrant",
@@ -475,7 +475,12 @@ DataexchangeOperations.CreateRevision = [
475
475
  /** IAM actions required for the DeleteAsset API call. */
476
476
  DataexchangeOperations.DeleteAsset = ["dataexchange:DeleteAsset"];
477
477
  /** IAM actions required for the DeleteDataGrant API call. */
478
- DataexchangeOperations.DeleteDataGrant = ["dataexchange:DeleteDataGrant"];
478
+ DataexchangeOperations.DeleteDataGrant = [
479
+ "dataexchange:CreateJob",
480
+ "dataexchange:DeleteDataGrant",
481
+ "dataexchange:DeleteDataSet",
482
+ "dataexchange:StartJob",
483
+ ];
479
484
  /** IAM actions required for the DeleteDataSet API call. */
480
485
  DataexchangeOperations.DeleteDataSet = ["dataexchange:DeleteDataSet"];
481
486
  /** IAM actions required for the DeleteEventAction API call. */
@@ -597,7 +602,7 @@ class DataexchangeConditions {
597
602
  }
598
603
  exports.DataexchangeConditions = DataexchangeConditions;
599
604
  _d = JSII_RTTI_SYMBOL_1;
600
- DataexchangeConditions[_d] = { fqn: "@cdk_utils/iam.dataexchange.DataexchangeConditions", version: "1.6.0" };
605
+ DataexchangeConditions[_d] = { fqn: "@cdk_utils/iam.dataexchange.DataexchangeConditions", version: "1.7.0" };
601
606
  /** Condition keys applicable to the CreateAsset action. */
602
607
  DataexchangeConditions.CreateAssetConditionKeys = [
603
608
  "aws:RequestTag/${TagKey}",
@@ -645,4 +650,4 @@ DataexchangeConditions.AWS_RESOURCE_TAG = "aws:ResourceTag/${TagKey}";
645
650
  DataexchangeConditions.AWS_TAG_KEYS = "aws:TagKeys";
646
651
  /** Condition key: dataexchange:JobType (String) */
647
652
  DataexchangeConditions.JOB_TYPE = "dataexchange:JobType";
648
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWV4Y2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9kYXRhZXhjaGFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCxtREFBbUQ7QUFDbkQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsbUJBQW1COztBQUFoQyxrREE4SUM7OztBQTdJQSw4QkFBOEI7QUFDZCxrQ0FBYyxHQUFHLGNBQWMsQ0FBQztBQUVoRCwyQ0FBMkM7QUFDM0IsbUNBQWUsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSxxQ0FBcUM7QUFDckIsNkJBQVMsR0FBRyx3QkFBd0IsQ0FBQztBQUNyRCx1Q0FBdUM7QUFDdkIsK0JBQVcsR0FBRywwQkFBMEIsQ0FBQztBQUN6RCwyQ0FBMkM7QUFDM0IsbUNBQWUsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSx5Q0FBeUM7QUFDekIsaUNBQWEsR0FBRyw0QkFBNEIsQ0FBQztBQUM3RCw2Q0FBNkM7QUFDN0IscUNBQWlCLEdBQUcsZ0NBQWdDLENBQUM7QUFDckUscUNBQXFDO0FBQ3JCLDZCQUFTLEdBQUcsd0JBQXdCLENBQUM7QUFDckQsMENBQTBDO0FBQzFCLGtDQUFjLEdBQUcsNkJBQTZCLENBQUM7QUFDL0QsdUNBQXVDO0FBQ3ZCLCtCQUFXLEdBQUcsMEJBQTBCLENBQUM7QUFDekQsMkNBQTJDO0FBQzNCLG1DQUFlLEdBQUcsOEJBQThCLENBQUM7QUFDakUseUNBQXlDO0FBQ3pCLGlDQUFhLEdBQUcsNEJBQTRCLENBQUM7QUFDN0QsNkNBQTZDO0FBQzdCLHFDQUFpQixHQUFHLGdDQUFnQyxDQUFDO0FBQ3JFLDBDQUEwQztBQUMxQixrQ0FBYyxHQUFHLDZCQUE2QixDQUFDO0FBQy9ELG1DQUFtQztBQUNuQixrQ0FBYyxHQUFHLHVCQUF1QixDQUFDO0FBQ3pE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PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2UvZGF0YWV4Y2hhbmdlLmpzb25cbi8vIFJ1biBgbnB4IHByb2plbiBnZW5lcmF0ZS1jb25zdGFudHNgIHRvIHJlZ2VuZXJhdGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSUFNIGFjdGlvbiBjb25zdGFudHMgZm9yIHRoZSBkYXRhZXhjaGFuZ2Ugc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFleGNoYW5nZUFjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJkYXRhZXhjaGFuZ2VcIjtcblxuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6QWNjZXB0RGF0YUdyYW50ICovXG5cdHN0YXRpYyByZWFkb25seSBBY2NlcHREYXRhR3JhbnQgPSBcImRhdGFleGNoYW5nZTpBY2NlcHREYXRhR3JhbnRcIjtcblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOkNhbmNlbEpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsSm9iID0gXCJkYXRhZXhjaGFuZ2U6Q2FuY2VsSm9iXCI7XG5cdC8qKiBbV3JpdGVdIGRhdGFleGNoYW5nZTpDcmVhdGVBc3NldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQXNzZXQgPSBcImRhdGFleGNoYW5nZTpDcmVhdGVBc3NldFwiO1xuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6Q3JlYXRlRGF0YUdyYW50ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhR3JhbnQgPSBcImRhdGFleGNoYW5nZTpDcmVhdGVEYXRhR3JhbnRcIjtcblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOkNyZWF0ZURhdGFTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFTZXQgPSBcImRhdGFleGNoYW5nZTpDcmVhdGVEYXRhU2V0XCI7XG5cdC8qKiBbV3JpdGVdIGRhdGFleGNoYW5nZTpDcmVhdGVFdmVudEFjdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXZlbnRBY3Rpb24gPSBcImRhdGFleGNoYW5nZTpDcmVhdGVFdmVudEFjdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6Q3JlYXRlSm9iICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVKb2IgPSBcImRhdGFleGNoYW5nZTpDcmVhdGVKb2JcIjtcblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOkNyZWF0ZVJldmlzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZXZpc2lvbiA9IFwiZGF0YWV4Y2hhbmdlOkNyZWF0ZVJldmlzaW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRhdGFleGNoYW5nZTpEZWxldGVBc3NldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQXNzZXQgPSBcImRhdGFleGNoYW5nZTpEZWxldGVBc3NldFwiO1xuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6RGVsZXRlRGF0YUdyYW50ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEYXRhR3JhbnQgPSBcImRhdGFleGNoYW5nZTpEZWxldGVEYXRhR3JhbnRcIjtcblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOkRlbGV0ZURhdGFTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURhdGFTZXQgPSBcImRhdGFleGNoYW5nZTpEZWxldGVEYXRhU2V0XCI7XG5cdC8qKiBbV3JpdGVdIGRhdGFleGNoYW5nZTpEZWxldGVFdmVudEFjdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRXZlbnRBY3Rpb24gPSBcImRhdGFleGNoYW5nZTpEZWxldGVFdmVudEFjdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6RGVsZXRlUmV2aXNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJldmlzaW9uID0gXCJkYXRhZXhjaGFuZ2U6RGVsZXRlUmV2aXNpb25cIjtcblx0LyoqIFtSZWFkXSBkYXRhZXhjaGFuZ2U6R2V0QXNzZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFzc2V0ID0gXCJkYXRhZXhjaGFuZ2U6R2V0QXNzZXRcIjtcblx0LyoqIFtSZWFkXSBkYXRhZXhjaGFuZ2U6R2V0RGF0YUdyYW50ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXREYXRhR3JhbnQgPSBcImRhdGFleGNoYW5nZTpHZXREYXRhR3JhbnRcIjtcblx0LyoqIFtSZWFkXSBkYXRhZXhjaGFuZ2U6R2V0RGF0YVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RGF0YVNldCA9IFwiZGF0YWV4Y2hhbmdlOkdldERhdGFTZXRcIjtcblx0LyoqIFtSZWFkXSBkYXRhZXhjaGFuZ2U6R2V0RXZlbnRBY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEV2ZW50QWN0aW9uID0gXCJkYXRhZXhjaGFuZ2U6R2V0RXZlbnRBY3Rpb25cIjtcblx0LyoqIFtSZWFkXSBkYXRhZXhjaGFuZ2U6R2V0Sm9iICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRKb2IgPSBcImRhdGFleGNoYW5nZTpHZXRKb2JcIjtcblx0LyoqIFtSZWFkXSBkYXRhZXhjaGFuZ2U6R2V0UmVjZWl2ZWREYXRhR3JhbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlY2VpdmVkRGF0YUdyYW50ID1cblx0XHRcImRhdGFleGNoYW5nZTpHZXRSZWNlaXZlZERhdGFHcmFudFwiO1xuXHQvKiogW1JlYWRdIGRhdGFleGNoYW5nZTpHZXRSZXZpc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmV2aXNpb24gPSBcImRhdGFleGNoYW5nZTpHZXRSZXZpc2lvblwiO1xuXHQvKiogW0xpc3RdIGRhdGFleGNoYW5nZTpMaXN0RGF0YUdyYW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFHcmFudHMgPSBcImRhdGFleGNoYW5nZTpMaXN0RGF0YUdyYW50c1wiO1xuXHQvKiogW0xpc3RdIGRhdGFleGNoYW5nZTpMaXN0RGF0YVNldFJldmlzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFTZXRSZXZpc2lvbnMgPSBcImRhdGFleGNoYW5nZTpMaXN0RGF0YVNldFJldmlzaW9uc1wiO1xuXHQvKiogW0xpc3RdIGRhdGFleGNoYW5nZTpMaXN0RGF0YVNldHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REYXRhU2V0cyA9IFwiZGF0YWV4Y2hhbmdlOkxpc3REYXRhU2V0c1wiO1xuXHQvKiogW0xpc3RdIGRhdGFleGNoYW5nZTpMaXN0RXZlbnRBY3Rpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXZlbnRBY3Rpb25zID0gXCJkYXRhZXhjaGFuZ2U6TGlzdEV2ZW50QWN0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGRhdGFleGNoYW5nZTpMaXN0Sm9icyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEpvYnMgPSBcImRhdGFleGNoYW5nZTpMaXN0Sm9ic1wiO1xuXHQvKiogW0xpc3RdIGRhdGFleGNoYW5nZTpMaXN0UmVjZWl2ZWREYXRhR3JhbnRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjZWl2ZWREYXRhR3JhbnRzID1cblx0XHRcImRhdGFleGNoYW5nZTpMaXN0UmVjZWl2ZWREYXRhR3JhbnRzXCI7XG5cdC8qKiBbTGlzdF0gZGF0YWV4Y2hhbmdlOkxpc3RSZXZpc2lvbkFzc2V0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJldmlzaW9uQXNzZXRzID0gXCJkYXRhZXhjaGFuZ2U6TGlzdFJldmlzaW9uQXNzZXRzXCI7XG5cdC8qKiBbTGlzdF0gZGF0YWV4Y2hhbmdlOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcImRhdGFleGNoYW5nZTpMaXN0VGFnc0ZvclJlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGRhdGFleGNoYW5nZTpQdWJsaXNoRGF0YVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHVibGlzaERhdGFTZXQgPSBcImRhdGFleGNoYW5nZTpQdWJsaXNoRGF0YVNldFwiO1xuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6UHVibGlzaFRvRGF0YUdyYW50ICovXG5cdHN0YXRpYyByZWFkb25seSBQdWJsaXNoVG9EYXRhR3JhbnQgPSBcImRhdGFleGNoYW5nZTpQdWJsaXNoVG9EYXRhR3JhbnRcIjtcblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOlJldm9rZVJldmlzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBSZXZva2VSZXZpc2lvbiA9IFwiZGF0YWV4Y2hhbmdlOlJldm9rZVJldmlzaW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRhdGFleGNoYW5nZTpTZW5kQXBpQXNzZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRBcGlBc3NldCA9IFwiZGF0YWV4Y2hhbmdlOlNlbmRBcGlBc3NldFwiO1xuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6U2VuZERhdGFTZXROb3RpZmljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmREYXRhU2V0Tm90aWZpY2F0aW9uID1cblx0XHRcImRhdGFleGNoYW5nZTpTZW5kRGF0YVNldE5vdGlmaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6U3RhcnRKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0Sm9iID0gXCJkYXRhZXhjaGFuZ2U6U3RhcnRKb2JcIjtcblx0LyoqIFtUYWdnaW5nXSBkYXRhZXhjaGFuZ2U6VGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlID0gXCJkYXRhZXhjaGFuZ2U6VGFnUmVzb3VyY2VcIjtcblx0LyoqIFtUYWdnaW5nXSBkYXRhZXhjaGFuZ2U6VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwiZGF0YWV4Y2hhbmdlOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOlVwZGF0ZUFzc2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBc3NldCA9IFwiZGF0YWV4Y2hhbmdlOlVwZGF0ZUFzc2V0XCI7XG5cdC8qKiBbV3JpdGVdIGRhdGFleGNoYW5nZTpVcGRhdGVEYXRhU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVEYXRhU2V0ID0gXCJkYXRhZXhjaGFuZ2U6VXBkYXRlRGF0YVNldFwiO1xuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6VXBkYXRlRXZlbnRBY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV2ZW50QWN0aW9uID0gXCJkYXRhZXhjaGFuZ2U6VXBkYXRlRXZlbnRBY3Rpb25cIjtcblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOlVwZGF0ZVJldmlzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXZpc2lvbiA9IFwiZGF0YWV4Y2hhbmdlOlVwZGF0ZVJldmlzaW9uXCI7XG5cblx0LyoqIEFsbCByZWFkLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxSZWFkQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5hY3Rpb25HZXRBc3NldCxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLmFjdGlvbkdldERhdGFHcmFudCxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLmFjdGlvbkdldERhdGFTZXQsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5hY3Rpb25HZXRFdmVudEFjdGlvbixcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLmFjdGlvbkdldEpvYixcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLmFjdGlvbkdldFJlY2VpdmVkRGF0YUdyYW50LFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuYWN0aW9uR2V0UmV2aXNpb24sXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5BY2NlcHREYXRhR3JhbnQsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5DYW5jZWxKb2IsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5DcmVhdGVBc3NldCxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLkNyZWF0ZURhdGFHcmFudCxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLkNyZWF0ZURhdGFTZXQsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5DcmVhdGVFdmVudEFjdGlvbixcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLkNyZWF0ZUpvYixcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLkNyZWF0ZVJldmlzaW9uLFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuRGVsZXRlQXNzZXQsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5EZWxldGVEYXRhR3JhbnQsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5EZWxldGVEYXRhU2V0LFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuRGVsZXRlRXZlbnRBY3Rpb24sXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5EZWxldGVSZXZpc2lvbixcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLlB1Ymxpc2hEYXRhU2V0LFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuUHVibGlzaFRvRGF0YUdyYW50LFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuUmV2b2tlUmV2aXNpb24sXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5TZW5kQXBpQXNzZXQsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5TZW5kRGF0YVNldE5vdGlmaWNhdGlvbixcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLlN0YXJ0Sm9iLFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuVXBkYXRlQXNzZXQsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5VcGRhdGVEYXRhU2V0LFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuVXBkYXRlRXZlbnRBY3Rpb24sXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5VcGRhdGVSZXZpc2lvbixcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5MaXN0RGF0YUdyYW50cyxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLkxpc3REYXRhU2V0UmV2aXNpb25zLFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuTGlzdERhdGFTZXRzLFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuTGlzdEV2ZW50QWN0aW9ucyxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLkxpc3RKb2JzLFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuTGlzdFJlY2VpdmVkRGF0YUdyYW50cyxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLkxpc3RSZXZpc2lvbkFzc2V0cyxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdF07XG5cdC8qKiBBbGwgcGVybWlzc2lvbi1tYW5hZ2VtZW50LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxQZXJtaXNzaW9uTWFuYWdlbWVudEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBBbGwgdGFnZ2luZy1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsVGFnZ2luZ0FjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuVGFnUmVzb3VyY2UsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgYXNzZXRzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZXhjaGFuZ2VBc3NldHNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGF0YVNldElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkYXRhU2V0SWQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXZpc2lvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXZpc2lvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgQXNzZXRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgYXNzZXRJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGFzc2V0cyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWV4Y2hhbmdlQXNzZXRzQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEYXRhU2V0SWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkYXRhU2V0SWQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXZpc2lvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmV2aXNpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIEFzc2V0SWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBhc3NldElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBkYXRhLWdyYW50cyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWV4Y2hhbmdlRGF0YUdyYW50c0FyblByb3BzIHtcblx0LyoqIFRoZSBEYXRhR3JhbnRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGF0YUdyYW50SWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkYXRhLWdyYW50cyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWV4Y2hhbmdlRGF0YUdyYW50c0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRGF0YUdyYW50SWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkYXRhR3JhbnRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZGF0YS1zZXRzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZXhjaGFuZ2VEYXRhU2V0c0FyblByb3BzIHtcblx0LyoqIFRoZSBEYXRhU2V0SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRhdGFTZXRJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGRhdGEtc2V0cyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWV4Y2hhbmdlRGF0YVNldHNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERhdGFTZXRJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRhdGFTZXRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZW50aXRsZWQtYXNzZXRzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZXhjaGFuZ2VFbnRpdGxlZEFzc2V0c0FyblByb3BzIHtcblx0LyoqIFRoZSBEYXRhU2V0SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRhdGFTZXRJZDogc3RyaW5nO1xuXHQvKiogVGhlIFJldmlzaW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJldmlzaW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBBc3NldElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBhc3NldElkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZW50aXRsZWQtYXNzZXRzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZXhjaGFuZ2VFbnRpdGxlZEFzc2V0c0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRGF0YVNldElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGF0YVNldElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmV2aXNpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJldmlzaW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBBc3NldElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYXNzZXRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZW50aXRsZWQtZGF0YS1zZXRzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZXhjaGFuZ2VFbnRpdGxlZERhdGFTZXRzQXJuUHJvcHMge1xuXHQvKiogVGhlIERhdGFTZXRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGF0YVNldElkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZW50aXRsZWQtZGF0YS1zZXRzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZXhjaGFuZ2VFbnRpdGxlZERhdGFTZXRzQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEYXRhU2V0SWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkYXRhU2V0SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGVudGl0bGVkLXJldmlzaW9ucyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWV4Y2hhbmdlRW50aXRsZWRSZXZpc2lvbnNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGF0YVNldElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkYXRhU2V0SWQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXZpc2lvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXZpc2lvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZW50aXRsZWQtcmV2aXNpb25zIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZXhjaGFuZ2VFbnRpdGxlZFJldmlzaW9uc0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRGF0YVNldElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGF0YVNldElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmV2aXNpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJldmlzaW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGV2ZW50LWFjdGlvbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFleGNoYW5nZUV2ZW50QWN0aW9uc0FyblByb3BzIHtcblx0LyoqIFRoZSBFdmVudEFjdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBldmVudEFjdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZXZlbnQtYWN0aW9ucyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWV4Y2hhbmdlRXZlbnRBY3Rpb25zQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBFdmVudEFjdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZXZlbnRBY3Rpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgam9icyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWV4Y2hhbmdlSm9ic0FyblByb3BzIHtcblx0LyoqIFRoZSBKb2JJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgam9iSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBqb2JzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZXhjaGFuZ2VKb2JzQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBKb2JJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGpvYklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSByZXZpc2lvbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFleGNoYW5nZVJldmlzaW9uc0FyblByb3BzIHtcblx0LyoqIFRoZSBEYXRhU2V0SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRhdGFTZXRJZDogc3RyaW5nO1xuXHQvKiogVGhlIFJldmlzaW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJldmlzaW9uSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSByZXZpc2lvbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFleGNoYW5nZVJldmlzaW9uc0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRGF0YVNldElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGF0YVNldElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmV2aXNpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJldmlzaW9uSWQ6IHN0cmluZztcbn1cblxuY29uc3QgQXNzZXRzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRhdGFleGNoYW5nZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRhdGEtc2V0c1xcLyg/PGRhdGFTZXRJZD5bXjovP10rKVxcL3JldmlzaW9uc1xcLyg/PHJldmlzaW9uSWQ+W146Lz9dKylcXC9hc3NldHNcXC8oPzxhc3NldElkPlteOi8/XSspJC87XG5jb25zdCBEYXRhR3JhbnRzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRhdGFleGNoYW5nZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRhdGEtZ3JhbnRzXFwvKD88ZGF0YUdyYW50SWQ+W146Lz9dKykkLztcbmNvbnN0IERhdGFTZXRzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRhdGFleGNoYW5nZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRhdGEtc2V0c1xcLyg/PGRhdGFTZXRJZD5bXjovP10rKSQvO1xuY29uc3QgRW50aXRsZWRBc3NldHNBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZGF0YWV4Y2hhbmdlOig/PHJlZ2lvbj5bXjpdKik6OmRhdGEtc2V0c1xcLyg/PGRhdGFTZXRJZD5bXjovP10rKVxcL3JldmlzaW9uc1xcLyg/PHJldmlzaW9uSWQ+W146Lz9dKylcXC9hc3NldHNcXC8oPzxhc3NldElkPlteOi8/XSspJC87XG5jb25zdCBFbnRpdGxlZERhdGFTZXRzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRhdGFleGNoYW5nZTooPzxyZWdpb24+W146XSopOjpkYXRhLXNldHNcXC8oPzxkYXRhU2V0SWQ+W146Lz9dKykkLztcbmNvbnN0IEVudGl0bGVkUmV2aXNpb25zQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRhdGFleGNoYW5nZTooPzxyZWdpb24+W146XSopOjpkYXRhLXNldHNcXC8oPzxkYXRhU2V0SWQ+W146Lz9dKylcXC9yZXZpc2lvbnNcXC8oPzxyZXZpc2lvbklkPlteOi8/XSspJC87XG5jb25zdCBFdmVudEFjdGlvbnNBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZGF0YWV4Y2hhbmdlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZXZlbnQtYWN0aW9uc1xcLyg/PGV2ZW50QWN0aW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IEpvYnNBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZGF0YWV4Y2hhbmdlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6am9ic1xcLyg/PGpvYklkPlteOi8/XSspJC87XG5jb25zdCBSZXZpc2lvbnNBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZGF0YWV4Y2hhbmdlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGF0YS1zZXRzXFwvKD88ZGF0YVNldElkPlteOi8/XSspXFwvcmV2aXNpb25zXFwvKD88cmV2aXNpb25JZD5bXjovP10rKSQvO1xuXG4vKipcbiAqIEFSTiBidWlsZGVycywgdmFsaWRhdG9ycywgYW5kIHBhcnNlcnMgZm9yIGRhdGFleGNoYW5nZSByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhZXhjaGFuZ2VSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGFzc2V0cyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBhc3NldHMocHJvcHM6IERhdGFleGNoYW5nZUFzc2V0c0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkYXRhZXhjaGFuZ2U6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZGF0YS1zZXRzLyR7cHJvcHMuZGF0YVNldElkfS9yZXZpc2lvbnMvJHtwcm9wcy5yZXZpc2lvbklkfS9hc3NldHMvJHtwcm9wcy5hc3NldElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhc3NldHMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEFzc2V0c0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBBc3NldHNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgYXNzZXRzIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUFzc2V0c0Fybihhcm46IHN0cmluZyk6IERhdGFleGNoYW5nZUFzc2V0c0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQXNzZXRzQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFzc2V0cyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkYXRhU2V0SWQ6IG1hdGNoLmdyb3VwcyEuZGF0YVNldElkLFxuXHRcdFx0cmV2aXNpb25JZDogbWF0Y2guZ3JvdXBzIS5yZXZpc2lvbklkLFxuXHRcdFx0YXNzZXRJZDogbWF0Y2guZ3JvdXBzIS5hc3NldElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRhdGEtZ3JhbnRzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGRhdGFHcmFudHMocHJvcHM6IERhdGFleGNoYW5nZURhdGFHcmFudHNBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZGF0YWV4Y2hhbmdlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRhdGEtZ3JhbnRzLyR7cHJvcHMuZGF0YUdyYW50SWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRhdGEtZ3JhbnRzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREYXRhR3JhbnRzQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERhdGFHcmFudHNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZGF0YS1ncmFudHMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRGF0YUdyYW50c0Fybihhcm46IHN0cmluZyk6IERhdGFleGNoYW5nZURhdGFHcmFudHNBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IERhdGFHcmFudHNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGF0YS1ncmFudHMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZGF0YUdyYW50SWQ6IG1hdGNoLmdyb3VwcyEuZGF0YUdyYW50SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZGF0YS1zZXRzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGRhdGFTZXRzKHByb3BzOiBEYXRhZXhjaGFuZ2VEYXRhU2V0c0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkYXRhZXhjaGFuZ2U6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZGF0YS1zZXRzLyR7cHJvcHMuZGF0YVNldElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBkYXRhLXNldHMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERhdGFTZXRzQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERhdGFTZXRzQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGRhdGEtc2V0cyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEYXRhU2V0c0Fybihhcm46IHN0cmluZyk6IERhdGFleGNoYW5nZURhdGFTZXRzQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEYXRhU2V0c0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkYXRhLXNldHMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZGF0YVNldElkOiBtYXRjaC5ncm91cHMhLmRhdGFTZXRJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBlbnRpdGxlZC1hc3NldHMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZW50aXRsZWRBc3NldHMocHJvcHM6IERhdGFleGNoYW5nZUVudGl0bGVkQXNzZXRzQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmRhdGFleGNoYW5nZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06OmRhdGEtc2V0cy8ke3Byb3BzLmRhdGFTZXRJZH0vcmV2aXNpb25zLyR7cHJvcHMucmV2aXNpb25JZH0vYXNzZXRzLyR7cHJvcHMuYXNzZXRJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZW50aXRsZWQtYXNzZXRzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRFbnRpdGxlZEFzc2V0c0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBFbnRpdGxlZEFzc2V0c0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBlbnRpdGxlZC1hc3NldHMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRW50aXRsZWRBc3NldHNBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IERhdGFleGNoYW5nZUVudGl0bGVkQXNzZXRzQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBFbnRpdGxlZEFzc2V0c0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBlbnRpdGxlZC1hc3NldHMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZGF0YVNldElkOiBtYXRjaC5ncm91cHMhLmRhdGFTZXRJZCxcblx0XHRcdHJldmlzaW9uSWQ6IG1hdGNoLmdyb3VwcyEucmV2aXNpb25JZCxcblx0XHRcdGFzc2V0SWQ6IG1hdGNoLmdyb3VwcyEuYXNzZXRJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBlbnRpdGxlZC1kYXRhLXNldHMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZW50aXRsZWREYXRhU2V0cyhwcm9wczogRGF0YWV4Y2hhbmdlRW50aXRsZWREYXRhU2V0c0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkYXRhZXhjaGFuZ2U6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OjpkYXRhLXNldHMvJHtwcm9wcy5kYXRhU2V0SWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGVudGl0bGVkLWRhdGEtc2V0cyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRW50aXRsZWREYXRhU2V0c0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBFbnRpdGxlZERhdGFTZXRzQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGVudGl0bGVkLWRhdGEtc2V0cyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VFbnRpdGxlZERhdGFTZXRzQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBEYXRhZXhjaGFuZ2VFbnRpdGxlZERhdGFTZXRzQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBFbnRpdGxlZERhdGFTZXRzQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGVudGl0bGVkLWRhdGEtc2V0cyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkYXRhU2V0SWQ6IG1hdGNoLmdyb3VwcyEuZGF0YVNldElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGVudGl0bGVkLXJldmlzaW9ucyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBlbnRpdGxlZFJldmlzaW9ucyhcblx0XHRwcm9wczogRGF0YWV4Y2hhbmdlRW50aXRsZWRSZXZpc2lvbnNBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkYXRhZXhjaGFuZ2U6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OjpkYXRhLXNldHMvJHtwcm9wcy5kYXRhU2V0SWR9L3JldmlzaW9ucy8ke3Byb3BzLnJldmlzaW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGVudGl0bGVkLXJldmlzaW9ucyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRW50aXRsZWRSZXZpc2lvbnNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRW50aXRsZWRSZXZpc2lvbnNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZW50aXRsZWQtcmV2aXNpb25zIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUVudGl0bGVkUmV2aXNpb25zQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBEYXRhZXhjaGFuZ2VFbnRpdGxlZFJldmlzaW9uc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRW50aXRsZWRSZXZpc2lvbnNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZW50aXRsZWQtcmV2aXNpb25zIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRhdGFTZXRJZDogbWF0Y2guZ3JvdXBzIS5kYXRhU2V0SWQsXG5cdFx0XHRyZXZpc2lvbklkOiBtYXRjaC5ncm91cHMhLnJldmlzaW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZXZlbnQtYWN0aW9ucyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBldmVudEFjdGlvbnMocHJvcHM6IERhdGFleGNoYW5nZUV2ZW50QWN0aW9uc0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkYXRhZXhjaGFuZ2U6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZXZlbnQtYWN0aW9ucy8ke3Byb3BzLmV2ZW50QWN0aW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGV2ZW50LWFjdGlvbnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEV2ZW50QWN0aW9uc0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBFdmVudEFjdGlvbnNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZXZlbnQtYWN0aW9ucyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VFdmVudEFjdGlvbnNBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IERhdGFleGNoYW5nZUV2ZW50QWN0aW9uc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRXZlbnRBY3Rpb25zQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGV2ZW50LWFjdGlvbnMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZXZlbnRBY3Rpb25JZDogbWF0Y2guZ3JvdXBzIS5ldmVudEFjdGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGpvYnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgam9icyhwcm9wczogRGF0YWV4Y2hhbmdlSm9ic0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkYXRhZXhjaGFuZ2U6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06am9icy8ke3Byb3BzLmpvYklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBqb2JzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRKb2JzQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEpvYnNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgam9icyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VKb2JzQXJuKGFybjogc3RyaW5nKTogRGF0YWV4Y2hhbmdlSm9ic0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSm9ic0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBqb2JzIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGpvYklkOiBtYXRjaC5ncm91cHMhLmpvYklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHJldmlzaW9ucyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyByZXZpc2lvbnMocHJvcHM6IERhdGFleGNoYW5nZVJldmlzaW9uc0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkYXRhZXhjaGFuZ2U6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZGF0YS1zZXRzLyR7cHJvcHMuZGF0YVNldElkfS9yZXZpc2lvbnMvJHtwcm9wcy5yZXZpc2lvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSByZXZpc2lvbnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJldmlzaW9uc0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZXZpc2lvbnNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgcmV2aXNpb25zIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVJldmlzaW9uc0Fybihhcm46IHN0cmluZyk6IERhdGFleGNoYW5nZVJldmlzaW9uc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmV2aXNpb25zQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJldmlzaW9ucyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkYXRhU2V0SWQ6IG1hdGNoLmdyb3VwcyEuZGF0YVNldElkLFxuXHRcdFx0cmV2aXNpb25JZDogbWF0Y2guZ3JvdXBzIS5yZXZpc2lvbklkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGRhdGFleGNoYW5nZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFleGNoYW5nZU9wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBY2NlcHREYXRhR3JhbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBY2NlcHREYXRhR3JhbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZGF0YWV4Y2hhbmdlOkFjY2VwdERhdGFHcmFudFwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlN1YnNjcmliZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDYW5jZWxKb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxKb2I6IHN0cmluZ1tdID0gW1wiZGF0YWV4Y2hhbmdlOkNhbmNlbEpvYlwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRGF0YUdyYW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YUdyYW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImRhdGFleGNoYW5nZTpDcmVhdGVEYXRhR3JhbnRcIixcblx0XHRcImRhdGFleGNoYW5nZTpDcmVhdGVKb2JcIixcblx0XHRcImRhdGFleGNoYW5nZTpQdWJsaXNoRGF0YVNldFwiLFxuXHRcdFwiZGF0YWV4Y2hhbmdlOlB1Ymxpc2hUb0RhdGFHcmFudFwiLFxuXHRcdFwiZGF0YWV4Y2hhbmdlOlN0YXJ0Sm9iXCIsXG5cdFx0XCJkYXRhZXhjaGFuZ2U6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRGF0YVNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZGF0YWV4Y2hhbmdlOkNyZWF0ZURhdGFTZXRcIixcblx0XHRcImRhdGFleGNoYW5nZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVFdmVudEFjdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV2ZW50QWN0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRhdGFleGNoYW5nZTpDcmVhdGVFdmVudEFjdGlvblwiLFxuXHRcdFwiZGF0YWV4Y2hhbmdlOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUpvYjogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6Q3JlYXRlSm9iXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUmV2aXNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZXZpc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6Q3JlYXRlUmV2aXNpb25cIixcblx0XHRcImRhdGFleGNoYW5nZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVBc3NldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUFzc2V0OiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpEZWxldGVBc3NldFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRGF0YUdyYW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGF0YUdyYW50OiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpEZWxldGVEYXRhR3JhbnRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZURhdGFTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEYXRhU2V0OiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpEZWxldGVEYXRhU2V0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVFdmVudEFjdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV2ZW50QWN0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRhdGFleGNoYW5nZTpEZWxldGVFdmVudEFjdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZXZpc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJldmlzaW9uOiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpEZWxldGVSZXZpc2lvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0QXNzZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEFzc2V0OiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpHZXRBc3NldFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RGF0YUdyYW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXREYXRhR3JhbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZGF0YWV4Y2hhbmdlOkdldERhdGFHcmFudFwiLFxuXHRcdFwiZGF0YWV4Y2hhbmdlOkdldERhdGFTZXRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RGF0YVNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RGF0YVNldDogc3RyaW5nW10gPSBbXCJkYXRhZXhjaGFuZ2U6R2V0RGF0YVNldFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RXZlbnRBY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEV2ZW50QWN0aW9uOiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpHZXRFdmVudEFjdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Sm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRKb2I6IHN0cmluZ1tdID0gW1wiZGF0YWV4Y2hhbmdlOkdldEpvYlwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjZWl2ZWREYXRhR3JhbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlY2VpdmVkRGF0YUdyYW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImRhdGFleGNoYW5nZTpHZXREYXRhU2V0XCIsXG5cdFx0XCJkYXRhZXhjaGFuZ2U6R2V0UmVjZWl2ZWREYXRhR3JhbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmV2aXNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJldmlzaW9uOiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpHZXRSZXZpc2lvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERhdGFHcmFudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YUdyYW50czogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6TGlzdERhdGFHcmFudHNcIixcblx0XHRcImRhdGFleGNoYW5nZTpMaXN0RGF0YVNldHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERhdGFTZXRSZXZpc2lvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YVNldFJldmlzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6TGlzdERhdGFTZXRSZXZpc2lvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERhdGFTZXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFTZXRzOiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpMaXN0RGF0YVNldHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RFdmVudEFjdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXZlbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImRhdGFleGNoYW5nZTpMaXN0RXZlbnRBY3Rpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RKb2JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEpvYnM6IHN0cmluZ1tdID0gW1wiZGF0YWV4Y2hhbmdlOkxpc3RKb2JzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UmVjZWl2ZWREYXRhR3JhbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY2VpdmVkRGF0YUdyYW50czogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6TGlzdERhdGFTZXRzXCIsXG5cdFx0XCJkYXRhZXhjaGFuZ2U6TGlzdFJlY2VpdmVkRGF0YUdyYW50c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UmV2aXNpb25Bc3NldHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmV2aXNpb25Bc3NldHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZGF0YWV4Y2hhbmdlOkxpc3RSZXZpc2lvbkFzc2V0c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZXZva2VSZXZpc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJldm9rZVJldmlzaW9uOiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpSZXZva2VSZXZpc2lvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU2VuZEFwaUFzc2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZEFwaUFzc2V0OiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpTZW5kQXBpQXNzZXRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFNlbmREYXRhU2V0Tm90aWZpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZERhdGFTZXROb3RpZmljYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZGF0YWV4Y2hhbmdlOlNlbmREYXRhU2V0Tm90aWZpY2F0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0Sm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRKb2I6IHN0cmluZ1tdID0gW1xuXHRcdFwiZGF0YWV4Y2hhbmdlOkNyZWF0ZUFzc2V0XCIsXG5cdFx0XCJkYXRhZXhjaGFuZ2U6U3RhcnRKb2JcIixcblx0XHRcImRhdGFleGNoYW5nZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiZGF0YWV4Y2hhbmdlOlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUFzc2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQXNzZXQ6IHN0cmluZ1tdID0gW1wiZGF0YWV4Y2hhbmdlOlVwZGF0ZUFzc2V0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVEYXRhU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRGF0YVNldDogc3RyaW5nW10gPSBbXCJkYXRhZXhjaGFuZ2U6VXBkYXRlRGF0YVNldFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRXZlbnRBY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVFdmVudEFjdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6VXBkYXRlRXZlbnRBY3Rpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmV2aXNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXZpc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6UHVibGlzaERhdGFTZXRcIixcblx0XHRcImRhdGFleGNoYW5nZTpQdWJsaXNoVG9EYXRhR3JhbnRcIixcblx0XHRcImRhdGFleGNoYW5nZTpVcGRhdGVSZXZpc2lvblwiLFxuXHRdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3IgZGF0YWV4Y2hhbmdlLlxuICovXG5leHBvcnQgY2xhc3MgRGF0YWV4Y2hhbmdlQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVBc3NldCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBc3NldENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRGF0YUdyYW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFHcmFudENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRGF0YVNldCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhU2V0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVFdmVudEFjdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFdmVudEFjdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlSm9iIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUpvYkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1wiZGF0YWV4Y2hhbmdlOkpvYlR5cGVcIl07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVSZXZpc2lvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZXZpc2lvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgUHVibGlzaFRvRGF0YUdyYW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1Ymxpc2hUb0RhdGFHcmFudENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVudGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1wiYXdzOlRhZ0tleXNcIl07XG5cblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFUVVFU1RfVEFHID0gXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVNPVVJDRV9UQUcgPSBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1RBR19LRVlTID0gXCJhd3M6VGFnS2V5c1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZGF0YWV4Y2hhbmdlOkpvYlR5cGUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEpPQl9UWVBFID0gXCJkYXRhZXhjaGFuZ2U6Sm9iVHlwZVwiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBkYXRhZXhjaGFuZ2U6Sm9iVHlwZWAuXG5cdCAqL1xuXHRzdGF0aWMgam9iVHlwZSh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImRhdGFleGNoYW5nZTpKb2JUeXBlXCI6IHZhbHVlIH0gfTtcblx0fVxufVxuIl19
653
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWV4Y2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9kYXRhZXhjaGFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCxtREFBbUQ7QUFDbkQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsbUJBQW1COztBQUFoQyxrREE4SUM7OztBQTdJQSw4QkFBOEI7QUFDZCxrQ0FBYyxHQUFHLGNBQWMsQ0FBQztBQUVoRCwyQ0FBMkM7QUFDM0IsbUNBQWUsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSxxQ0FBcUM7QUFDckIsNkJBQVMsR0FBRyx3QkFBd0IsQ0FBQztBQUNyRCx1Q0FBdUM7QUFDdkIsK0JBQVcsR0FBRywwQkFBMEIsQ0FBQztBQUN6RCwyQ0FBMkM7QUFDM0IsbUNBQWUsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSx5Q0FBeUM7QUFDekIsaUNBQWEsR0FBRyw0QkFBNEIsQ0FBQztBQUM3RCw2Q0FBNkM7QUFDN0IscUNBQWlCLEdBQUcsZ0NBQWdDLENBQUM7QUFDckUscUNBQXFDO0FBQ3JCLDZCQUFTLEdBQUcsd0JBQXdCLENBQUM7QUFDckQsMENBQTBDO0FBQzFCLGtDQUFjLEdBQUcsNkJBQTZCLENBQUM7QUFDL0QsdUNBQXVDO0FBQ3ZCLCtCQUFXLEdBQUcsMEJBQTBCLENBQUM7QUFDekQsMkNBQTJDO0FBQzNCLG1DQUFlLEdBQUcsOEJBQThCLENBQUM7QUFDakUseUNBQXlDO0FBQ3pCLGlDQUFhLEdBQUcsNEJBQTRCLENBQUM7QUFDN0QsNkNBQTZDO0FBQzdCLHFDQUFpQixHQUFHLGdDQUFnQyxDQUFDO0FBQ3JFLDBDQUEwQztBQUMxQixrQ0FBYyxHQUFHLDZCQUE2QixDQUFDO0FBQy9ELG1DQUFtQztBQUNuQixrQ0FBYyxHQUFHLHVCQUF1QixDQUFDO0FBQ3pE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ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL2RhdGFleGNoYW5nZS5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgZGF0YWV4Y2hhbmdlIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhZXhjaGFuZ2VBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwiZGF0YWV4Y2hhbmdlXCI7XG5cblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOkFjY2VwdERhdGFHcmFudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWNjZXB0RGF0YUdyYW50ID0gXCJkYXRhZXhjaGFuZ2U6QWNjZXB0RGF0YUdyYW50XCI7XG5cdC8qKiBbV3JpdGVdIGRhdGFleGNoYW5nZTpDYW5jZWxKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbEpvYiA9IFwiZGF0YWV4Y2hhbmdlOkNhbmNlbEpvYlwiO1xuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6Q3JlYXRlQXNzZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUFzc2V0ID0gXCJkYXRhZXhjaGFuZ2U6Q3JlYXRlQXNzZXRcIjtcblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOkNyZWF0ZURhdGFHcmFudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YUdyYW50ID0gXCJkYXRhZXhjaGFuZ2U6Q3JlYXRlRGF0YUdyYW50XCI7XG5cdC8qKiBbV3JpdGVdIGRhdGFleGNoYW5nZTpDcmVhdGVEYXRhU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhU2V0ID0gXCJkYXRhZXhjaGFuZ2U6Q3JlYXRlRGF0YVNldFwiO1xuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6Q3JlYXRlRXZlbnRBY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV2ZW50QWN0aW9uID0gXCJkYXRhZXhjaGFuZ2U6Q3JlYXRlRXZlbnRBY3Rpb25cIjtcblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOkNyZWF0ZUpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSm9iID0gXCJkYXRhZXhjaGFuZ2U6Q3JlYXRlSm9iXCI7XG5cdC8qKiBbV3JpdGVdIGRhdGFleGNoYW5nZTpDcmVhdGVSZXZpc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmV2aXNpb24gPSBcImRhdGFleGNoYW5nZTpDcmVhdGVSZXZpc2lvblwiO1xuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6RGVsZXRlQXNzZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUFzc2V0ID0gXCJkYXRhZXhjaGFuZ2U6RGVsZXRlQXNzZXRcIjtcblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOkRlbGV0ZURhdGFHcmFudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGF0YUdyYW50ID0gXCJkYXRhZXhjaGFuZ2U6RGVsZXRlRGF0YUdyYW50XCI7XG5cdC8qKiBbV3JpdGVdIGRhdGFleGNoYW5nZTpEZWxldGVEYXRhU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEYXRhU2V0ID0gXCJkYXRhZXhjaGFuZ2U6RGVsZXRlRGF0YVNldFwiO1xuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6RGVsZXRlRXZlbnRBY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV2ZW50QWN0aW9uID0gXCJkYXRhZXhjaGFuZ2U6RGVsZXRlRXZlbnRBY3Rpb25cIjtcblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOkRlbGV0ZVJldmlzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXZpc2lvbiA9IFwiZGF0YWV4Y2hhbmdlOkRlbGV0ZVJldmlzaW9uXCI7XG5cdC8qKiBbUmVhZF0gZGF0YWV4Y2hhbmdlOkdldEFzc2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBc3NldCA9IFwiZGF0YWV4Y2hhbmdlOkdldEFzc2V0XCI7XG5cdC8qKiBbUmVhZF0gZGF0YWV4Y2hhbmdlOkdldERhdGFHcmFudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RGF0YUdyYW50ID0gXCJkYXRhZXhjaGFuZ2U6R2V0RGF0YUdyYW50XCI7XG5cdC8qKiBbUmVhZF0gZGF0YWV4Y2hhbmdlOkdldERhdGFTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERhdGFTZXQgPSBcImRhdGFleGNoYW5nZTpHZXREYXRhU2V0XCI7XG5cdC8qKiBbUmVhZF0gZGF0YWV4Y2hhbmdlOkdldEV2ZW50QWN0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRFdmVudEFjdGlvbiA9IFwiZGF0YWV4Y2hhbmdlOkdldEV2ZW50QWN0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZGF0YWV4Y2hhbmdlOkdldEpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Sm9iID0gXCJkYXRhZXhjaGFuZ2U6R2V0Sm9iXCI7XG5cdC8qKiBbUmVhZF0gZGF0YWV4Y2hhbmdlOkdldFJlY2VpdmVkRGF0YUdyYW50ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZWNlaXZlZERhdGFHcmFudCA9XG5cdFx0XCJkYXRhZXhjaGFuZ2U6R2V0UmVjZWl2ZWREYXRhR3JhbnRcIjtcblx0LyoqIFtSZWFkXSBkYXRhZXhjaGFuZ2U6R2V0UmV2aXNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJldmlzaW9uID0gXCJkYXRhZXhjaGFuZ2U6R2V0UmV2aXNpb25cIjtcblx0LyoqIFtMaXN0XSBkYXRhZXhjaGFuZ2U6TGlzdERhdGFHcmFudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REYXRhR3JhbnRzID0gXCJkYXRhZXhjaGFuZ2U6TGlzdERhdGFHcmFudHNcIjtcblx0LyoqIFtMaXN0XSBkYXRhZXhjaGFuZ2U6TGlzdERhdGFTZXRSZXZpc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REYXRhU2V0UmV2aXNpb25zID0gXCJkYXRhZXhjaGFuZ2U6TGlzdERhdGFTZXRSZXZpc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBkYXRhZXhjaGFuZ2U6TGlzdERhdGFTZXRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YVNldHMgPSBcImRhdGFleGNoYW5nZTpMaXN0RGF0YVNldHNcIjtcblx0LyoqIFtMaXN0XSBkYXRhZXhjaGFuZ2U6TGlzdEV2ZW50QWN0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV2ZW50QWN0aW9ucyA9IFwiZGF0YWV4Y2hhbmdlOkxpc3RFdmVudEFjdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBkYXRhZXhjaGFuZ2U6TGlzdEpvYnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RKb2JzID0gXCJkYXRhZXhjaGFuZ2U6TGlzdEpvYnNcIjtcblx0LyoqIFtMaXN0XSBkYXRhZXhjaGFuZ2U6TGlzdFJlY2VpdmVkRGF0YUdyYW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY2VpdmVkRGF0YUdyYW50cyA9XG5cdFx0XCJkYXRhZXhjaGFuZ2U6TGlzdFJlY2VpdmVkRGF0YUdyYW50c1wiO1xuXHQvKiogW0xpc3RdIGRhdGFleGNoYW5nZTpMaXN0UmV2aXNpb25Bc3NldHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZXZpc2lvbkFzc2V0cyA9IFwiZGF0YWV4Y2hhbmdlOkxpc3RSZXZpc2lvbkFzc2V0c1wiO1xuXHQvKiogW0xpc3RdIGRhdGFleGNoYW5nZTpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJkYXRhZXhjaGFuZ2U6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6UHVibGlzaERhdGFTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1Ymxpc2hEYXRhU2V0ID0gXCJkYXRhZXhjaGFuZ2U6UHVibGlzaERhdGFTZXRcIjtcblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOlB1Ymxpc2hUb0RhdGFHcmFudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHVibGlzaFRvRGF0YUdyYW50ID0gXCJkYXRhZXhjaGFuZ2U6UHVibGlzaFRvRGF0YUdyYW50XCI7XG5cdC8qKiBbV3JpdGVdIGRhdGFleGNoYW5nZTpSZXZva2VSZXZpc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmV2b2tlUmV2aXNpb24gPSBcImRhdGFleGNoYW5nZTpSZXZva2VSZXZpc2lvblwiO1xuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6U2VuZEFwaUFzc2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQXBpQXNzZXQgPSBcImRhdGFleGNoYW5nZTpTZW5kQXBpQXNzZXRcIjtcblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOlNlbmREYXRhU2V0Tm90aWZpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kRGF0YVNldE5vdGlmaWNhdGlvbiA9XG5cdFx0XCJkYXRhZXhjaGFuZ2U6U2VuZERhdGFTZXROb3RpZmljYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOlN0YXJ0Sm9iICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydEpvYiA9IFwiZGF0YWV4Y2hhbmdlOlN0YXJ0Sm9iXCI7XG5cdC8qKiBbVGFnZ2luZ10gZGF0YWV4Y2hhbmdlOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwiZGF0YWV4Y2hhbmdlOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbVGFnZ2luZ10gZGF0YWV4Y2hhbmdlOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcImRhdGFleGNoYW5nZTpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGRhdGFleGNoYW5nZTpVcGRhdGVBc3NldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQXNzZXQgPSBcImRhdGFleGNoYW5nZTpVcGRhdGVBc3NldFwiO1xuXHQvKiogW1dyaXRlXSBkYXRhZXhjaGFuZ2U6VXBkYXRlRGF0YVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRGF0YVNldCA9IFwiZGF0YWV4Y2hhbmdlOlVwZGF0ZURhdGFTZXRcIjtcblx0LyoqIFtXcml0ZV0gZGF0YWV4Y2hhbmdlOlVwZGF0ZUV2ZW50QWN0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVFdmVudEFjdGlvbiA9IFwiZGF0YWV4Y2hhbmdlOlVwZGF0ZUV2ZW50QWN0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRhdGFleGNoYW5nZTpVcGRhdGVSZXZpc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmV2aXNpb24gPSBcImRhdGFleGNoYW5nZTpVcGRhdGVSZXZpc2lvblwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuYWN0aW9uR2V0QXNzZXQsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5hY3Rpb25HZXREYXRhR3JhbnQsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5hY3Rpb25HZXREYXRhU2V0LFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuYWN0aW9uR2V0RXZlbnRBY3Rpb24sXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5hY3Rpb25HZXRKb2IsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5hY3Rpb25HZXRSZWNlaXZlZERhdGFHcmFudCxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLmFjdGlvbkdldFJldmlzaW9uLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuQWNjZXB0RGF0YUdyYW50LFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuQ2FuY2VsSm9iLFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuQ3JlYXRlQXNzZXQsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5DcmVhdGVEYXRhR3JhbnQsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5DcmVhdGVEYXRhU2V0LFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuQ3JlYXRlRXZlbnRBY3Rpb24sXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5DcmVhdGVKb2IsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5DcmVhdGVSZXZpc2lvbixcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLkRlbGV0ZUFzc2V0LFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuRGVsZXRlRGF0YUdyYW50LFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuRGVsZXRlRGF0YVNldCxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLkRlbGV0ZUV2ZW50QWN0aW9uLFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuRGVsZXRlUmV2aXNpb24sXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5QdWJsaXNoRGF0YVNldCxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLlB1Ymxpc2hUb0RhdGFHcmFudCxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLlJldm9rZVJldmlzaW9uLFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuU2VuZEFwaUFzc2V0LFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuU2VuZERhdGFTZXROb3RpZmljYXRpb24sXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5TdGFydEpvYixcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLlVwZGF0ZUFzc2V0LFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuVXBkYXRlRGF0YVNldCxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLlVwZGF0ZUV2ZW50QWN0aW9uLFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuVXBkYXRlUmV2aXNpb24sXG5cdF07XG5cdC8qKiBBbGwgbGlzdC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsTGlzdEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuTGlzdERhdGFHcmFudHMsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5MaXN0RGF0YVNldFJldmlzaW9ucyxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLkxpc3REYXRhU2V0cyxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLkxpc3RFdmVudEFjdGlvbnMsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5MaXN0Sm9icyxcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLkxpc3RSZWNlaXZlZERhdGFHcmFudHMsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5MaXN0UmV2aXNpb25Bc3NldHMsXG5cdFx0RGF0YWV4Y2hhbmdlQWN0aW9ucy5MaXN0VGFnc0ZvclJlc291cmNlLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHREYXRhZXhjaGFuZ2VBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdERhdGFleGNoYW5nZUFjdGlvbnMuVW50YWdSZXNvdXJjZSxcblx0XTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGFzc2V0cyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWV4Y2hhbmdlQXNzZXRzQXJuUHJvcHMge1xuXHQvKiogVGhlIERhdGFTZXRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGF0YVNldElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmV2aXNpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmV2aXNpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIEFzc2V0SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGFzc2V0SWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBhc3NldHMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFleGNoYW5nZUFzc2V0c0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRGF0YVNldElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGF0YVNldElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmV2aXNpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJldmlzaW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBBc3NldElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYXNzZXRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZGF0YS1ncmFudHMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFleGNoYW5nZURhdGFHcmFudHNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGF0YUdyYW50SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRhdGFHcmFudElkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZGF0YS1ncmFudHMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFleGNoYW5nZURhdGFHcmFudHNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERhdGFHcmFudElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGF0YUdyYW50SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGRhdGEtc2V0cyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWV4Y2hhbmdlRGF0YVNldHNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGF0YVNldElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkYXRhU2V0SWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkYXRhLXNldHMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFleGNoYW5nZURhdGFTZXRzQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEYXRhU2V0SWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkYXRhU2V0SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGVudGl0bGVkLWFzc2V0cyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWV4Y2hhbmdlRW50aXRsZWRBc3NldHNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGF0YVNldElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkYXRhU2V0SWQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXZpc2lvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXZpc2lvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgQXNzZXRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgYXNzZXRJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGVudGl0bGVkLWFzc2V0cyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWV4Y2hhbmdlRW50aXRsZWRBc3NldHNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERhdGFTZXRJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRhdGFTZXRJZDogc3RyaW5nO1xuXHQvKiogVGhlIFJldmlzaW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXZpc2lvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgQXNzZXRJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGFzc2V0SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGVudGl0bGVkLWRhdGEtc2V0cyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWV4Y2hhbmdlRW50aXRsZWREYXRhU2V0c0FyblByb3BzIHtcblx0LyoqIFRoZSBEYXRhU2V0SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRhdGFTZXRJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGVudGl0bGVkLWRhdGEtc2V0cyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWV4Y2hhbmdlRW50aXRsZWREYXRhU2V0c0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRGF0YVNldElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGF0YVNldElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBlbnRpdGxlZC1yZXZpc2lvbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFleGNoYW5nZUVudGl0bGVkUmV2aXNpb25zQXJuUHJvcHMge1xuXHQvKiogVGhlIERhdGFTZXRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGF0YVNldElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmV2aXNpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmV2aXNpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGVudGl0bGVkLXJldmlzaW9ucyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWV4Y2hhbmdlRW50aXRsZWRSZXZpc2lvbnNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERhdGFTZXRJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRhdGFTZXRJZDogc3RyaW5nO1xuXHQvKiogVGhlIFJldmlzaW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXZpc2lvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBldmVudC1hY3Rpb25zIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZXhjaGFuZ2VFdmVudEFjdGlvbnNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRXZlbnRBY3Rpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZXZlbnRBY3Rpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGV2ZW50LWFjdGlvbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFleGNoYW5nZUV2ZW50QWN0aW9uc0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRXZlbnRBY3Rpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGV2ZW50QWN0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGpvYnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFleGNoYW5nZUpvYnNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgSm9iSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGpvYklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgam9icyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWV4Y2hhbmdlSm9ic0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgSm9iSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBqb2JJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgcmV2aXNpb25zIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZXhjaGFuZ2VSZXZpc2lvbnNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGF0YVNldElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkYXRhU2V0SWQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXZpc2lvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXZpc2lvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgcmV2aXNpb25zIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZXhjaGFuZ2VSZXZpc2lvbnNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERhdGFTZXRJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRhdGFTZXRJZDogc3RyaW5nO1xuXHQvKiogVGhlIFJldmlzaW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXZpc2lvbklkOiBzdHJpbmc7XG59XG5cbmNvbnN0IEFzc2V0c0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkYXRhZXhjaGFuZ2U6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkYXRhLXNldHNcXC8oPzxkYXRhU2V0SWQ+W146Lz9dKylcXC9yZXZpc2lvbnNcXC8oPzxyZXZpc2lvbklkPlteOi8/XSspXFwvYXNzZXRzXFwvKD88YXNzZXRJZD5bXjovP10rKSQvO1xuY29uc3QgRGF0YUdyYW50c0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkYXRhZXhjaGFuZ2U6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkYXRhLWdyYW50c1xcLyg/PGRhdGFHcmFudElkPlteOi8/XSspJC87XG5jb25zdCBEYXRhU2V0c0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkYXRhZXhjaGFuZ2U6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkYXRhLXNldHNcXC8oPzxkYXRhU2V0SWQ+W146Lz9dKykkLztcbmNvbnN0IEVudGl0bGVkQXNzZXRzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRhdGFleGNoYW5nZTooPzxyZWdpb24+W146XSopOjpkYXRhLXNldHNcXC8oPzxkYXRhU2V0SWQ+W146Lz9dKylcXC9yZXZpc2lvbnNcXC8oPzxyZXZpc2lvbklkPlteOi8/XSspXFwvYXNzZXRzXFwvKD88YXNzZXRJZD5bXjovP10rKSQvO1xuY29uc3QgRW50aXRsZWREYXRhU2V0c0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkYXRhZXhjaGFuZ2U6KD88cmVnaW9uPlteOl0qKTo6ZGF0YS1zZXRzXFwvKD88ZGF0YVNldElkPlteOi8/XSspJC87XG5jb25zdCBFbnRpdGxlZFJldmlzaW9uc0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkYXRhZXhjaGFuZ2U6KD88cmVnaW9uPlteOl0qKTo6ZGF0YS1zZXRzXFwvKD88ZGF0YVNldElkPlteOi8/XSspXFwvcmV2aXNpb25zXFwvKD88cmV2aXNpb25JZD5bXjovP10rKSQvO1xuY29uc3QgRXZlbnRBY3Rpb25zQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRhdGFleGNoYW5nZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmV2ZW50LWFjdGlvbnNcXC8oPzxldmVudEFjdGlvbklkPlteOi8/XSspJC87XG5jb25zdCBKb2JzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRhdGFleGNoYW5nZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmpvYnNcXC8oPzxqb2JJZD5bXjovP10rKSQvO1xuY29uc3QgUmV2aXNpb25zQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRhdGFleGNoYW5nZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRhdGEtc2V0c1xcLyg/PGRhdGFTZXRJZD5bXjovP10rKVxcL3JldmlzaW9uc1xcLyg/PHJldmlzaW9uSWQ+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBkYXRhZXhjaGFuZ2UgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgRGF0YWV4Y2hhbmdlUmVzb3VyY2VzIHtcblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBhc3NldHMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgYXNzZXRzKHByb3BzOiBEYXRhZXhjaGFuZ2VBc3NldHNBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZGF0YWV4Y2hhbmdlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRhdGEtc2V0cy8ke3Byb3BzLmRhdGFTZXRJZH0vcmV2aXNpb25zLyR7cHJvcHMucmV2aXNpb25JZH0vYXNzZXRzLyR7cHJvcHMuYXNzZXRJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgYXNzZXRzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRBc3NldHNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQXNzZXRzQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGFzc2V0cyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VBc3NldHNBcm4oYXJuOiBzdHJpbmcpOiBEYXRhZXhjaGFuZ2VBc3NldHNBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEFzc2V0c0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhc3NldHMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZGF0YVNldElkOiBtYXRjaC5ncm91cHMhLmRhdGFTZXRJZCxcblx0XHRcdHJldmlzaW9uSWQ6IG1hdGNoLmdyb3VwcyEucmV2aXNpb25JZCxcblx0XHRcdGFzc2V0SWQ6IG1hdGNoLmdyb3VwcyEuYXNzZXRJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBkYXRhLWdyYW50cyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkYXRhR3JhbnRzKHByb3BzOiBEYXRhZXhjaGFuZ2VEYXRhR3JhbnRzQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmRhdGFleGNoYW5nZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkYXRhLWdyYW50cy8ke3Byb3BzLmRhdGFHcmFudElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBkYXRhLWdyYW50cyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRGF0YUdyYW50c0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBEYXRhR3JhbnRzQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGRhdGEtZ3JhbnRzIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURhdGFHcmFudHNBcm4oYXJuOiBzdHJpbmcpOiBEYXRhZXhjaGFuZ2VEYXRhR3JhbnRzQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEYXRhR3JhbnRzQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRhdGEtZ3JhbnRzIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRhdGFHcmFudElkOiBtYXRjaC5ncm91cHMhLmRhdGFHcmFudElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRhdGEtc2V0cyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkYXRhU2V0cyhwcm9wczogRGF0YWV4Y2hhbmdlRGF0YVNldHNBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZGF0YWV4Y2hhbmdlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRhdGEtc2V0cy8ke3Byb3BzLmRhdGFTZXRJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZGF0YS1zZXRzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREYXRhU2V0c0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBEYXRhU2V0c0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkYXRhLXNldHMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRGF0YVNldHNBcm4oYXJuOiBzdHJpbmcpOiBEYXRhZXhjaGFuZ2VEYXRhU2V0c0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRGF0YVNldHNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGF0YS1zZXRzIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRhdGFTZXRJZDogbWF0Y2guZ3JvdXBzIS5kYXRhU2V0SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZW50aXRsZWQtYXNzZXRzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGVudGl0bGVkQXNzZXRzKHByb3BzOiBEYXRhZXhjaGFuZ2VFbnRpdGxlZEFzc2V0c0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkYXRhZXhjaGFuZ2U6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OjpkYXRhLXNldHMvJHtwcm9wcy5kYXRhU2V0SWR9L3JldmlzaW9ucy8ke3Byb3BzLnJldmlzaW9uSWR9L2Fzc2V0cy8ke3Byb3BzLmFzc2V0SWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGVudGl0bGVkLWFzc2V0cyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRW50aXRsZWRBc3NldHNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRW50aXRsZWRBc3NldHNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZW50aXRsZWQtYXNzZXRzIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUVudGl0bGVkQXNzZXRzQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBEYXRhZXhjaGFuZ2VFbnRpdGxlZEFzc2V0c0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRW50aXRsZWRBc3NldHNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZW50aXRsZWQtYXNzZXRzIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRhdGFTZXRJZDogbWF0Y2guZ3JvdXBzIS5kYXRhU2V0SWQsXG5cdFx0XHRyZXZpc2lvbklkOiBtYXRjaC5ncm91cHMhLnJldmlzaW9uSWQsXG5cdFx0XHRhc3NldElkOiBtYXRjaC5ncm91cHMhLmFzc2V0SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZW50aXRsZWQtZGF0YS1zZXRzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGVudGl0bGVkRGF0YVNldHMocHJvcHM6IERhdGFleGNoYW5nZUVudGl0bGVkRGF0YVNldHNBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZGF0YWV4Y2hhbmdlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifTo6ZGF0YS1zZXRzLyR7cHJvcHMuZGF0YVNldElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBlbnRpdGxlZC1kYXRhLXNldHMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEVudGl0bGVkRGF0YVNldHNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRW50aXRsZWREYXRhU2V0c0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBlbnRpdGxlZC1kYXRhLXNldHMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRW50aXRsZWREYXRhU2V0c0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRGF0YWV4Y2hhbmdlRW50aXRsZWREYXRhU2V0c0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRW50aXRsZWREYXRhU2V0c0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBlbnRpdGxlZC1kYXRhLXNldHMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZGF0YVNldElkOiBtYXRjaC5ncm91cHMhLmRhdGFTZXRJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBlbnRpdGxlZC1yZXZpc2lvbnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZW50aXRsZWRSZXZpc2lvbnMoXG5cdFx0cHJvcHM6IERhdGFleGNoYW5nZUVudGl0bGVkUmV2aXNpb25zQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZGF0YWV4Y2hhbmdlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifTo6ZGF0YS1zZXRzLyR7cHJvcHMuZGF0YVNldElkfS9yZXZpc2lvbnMvJHtwcm9wcy5yZXZpc2lvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBlbnRpdGxlZC1yZXZpc2lvbnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEVudGl0bGVkUmV2aXNpb25zQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEVudGl0bGVkUmV2aXNpb25zQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGVudGl0bGVkLXJldmlzaW9ucyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VFbnRpdGxlZFJldmlzaW9uc0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRGF0YWV4Y2hhbmdlRW50aXRsZWRSZXZpc2lvbnNBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEVudGl0bGVkUmV2aXNpb25zQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGVudGl0bGVkLXJldmlzaW9ucyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkYXRhU2V0SWQ6IG1hdGNoLmdyb3VwcyEuZGF0YVNldElkLFxuXHRcdFx0cmV2aXNpb25JZDogbWF0Y2guZ3JvdXBzIS5yZXZpc2lvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGV2ZW50LWFjdGlvbnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZXZlbnRBY3Rpb25zKHByb3BzOiBEYXRhZXhjaGFuZ2VFdmVudEFjdGlvbnNBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZGF0YWV4Y2hhbmdlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmV2ZW50LWFjdGlvbnMvJHtwcm9wcy5ldmVudEFjdGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBldmVudC1hY3Rpb25zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRFdmVudEFjdGlvbnNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRXZlbnRBY3Rpb25zQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGV2ZW50LWFjdGlvbnMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRXZlbnRBY3Rpb25zQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBEYXRhZXhjaGFuZ2VFdmVudEFjdGlvbnNBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEV2ZW50QWN0aW9uc0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBldmVudC1hY3Rpb25zIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGV2ZW50QWN0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuZXZlbnRBY3Rpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBqb2JzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGpvYnMocHJvcHM6IERhdGFleGNoYW5nZUpvYnNBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZGF0YWV4Y2hhbmdlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmpvYnMvJHtwcm9wcy5qb2JJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgam9icyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkSm9ic0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBKb2JzQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGpvYnMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlSm9ic0Fybihhcm46IHN0cmluZyk6IERhdGFleGNoYW5nZUpvYnNBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEpvYnNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgam9icyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRqb2JJZDogbWF0Y2guZ3JvdXBzIS5qb2JJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSByZXZpc2lvbnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcmV2aXNpb25zKHByb3BzOiBEYXRhZXhjaGFuZ2VSZXZpc2lvbnNBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZGF0YWV4Y2hhbmdlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRhdGEtc2V0cy8ke3Byb3BzLmRhdGFTZXRJZH0vcmV2aXNpb25zLyR7cHJvcHMucmV2aXNpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgcmV2aXNpb25zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRSZXZpc2lvbnNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gUmV2aXNpb25zQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHJldmlzaW9ucyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VSZXZpc2lvbnNBcm4oYXJuOiBzdHJpbmcpOiBEYXRhZXhjaGFuZ2VSZXZpc2lvbnNBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJldmlzaW9uc0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZXZpc2lvbnMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZGF0YVNldElkOiBtYXRjaC5ncm91cHMhLmRhdGFTZXRJZCxcblx0XHRcdHJldmlzaW9uSWQ6IG1hdGNoLmdyb3VwcyEucmV2aXNpb25JZCxcblx0XHR9O1xuXHR9XG59XG5cbi8qKlxuICogQVBJIG9wZXJhdGlvbiB0byByZXF1aXJlZCBJQU0gYWN0aW9ucyBtYXBwaW5nIGZvciBkYXRhZXhjaGFuZ2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhZXhjaGFuZ2VPcGVyYXRpb25zIHtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQWNjZXB0RGF0YUdyYW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWNjZXB0RGF0YUdyYW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImRhdGFleGNoYW5nZTpBY2NlcHREYXRhR3JhbnRcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpTdWJzY3JpYmVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ2FuY2VsSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsSm9iOiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpDYW5jZWxKb2JcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZURhdGFHcmFudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFHcmFudDogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6Q3JlYXRlRGF0YUdyYW50XCIsXG5cdFx0XCJkYXRhZXhjaGFuZ2U6Q3JlYXRlSm9iXCIsXG5cdFx0XCJkYXRhZXhjaGFuZ2U6UHVibGlzaERhdGFTZXRcIixcblx0XHRcImRhdGFleGNoYW5nZTpQdWJsaXNoVG9EYXRhR3JhbnRcIixcblx0XHRcImRhdGFleGNoYW5nZTpTdGFydEpvYlwiLFxuXHRcdFwiZGF0YWV4Y2hhbmdlOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZURhdGFTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhU2V0OiBzdHJpbmdbXSA9IFtcblx0XHRcImRhdGFleGNoYW5nZTpDcmVhdGVEYXRhU2V0XCIsXG5cdFx0XCJkYXRhZXhjaGFuZ2U6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRXZlbnRBY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFdmVudEFjdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6Q3JlYXRlRXZlbnRBY3Rpb25cIixcblx0XHRcImRhdGFleGNoYW5nZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVKb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVKb2I6IHN0cmluZ1tdID0gW1xuXHRcdFwiZGF0YWV4Y2hhbmdlOkNyZWF0ZUpvYlwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVJldmlzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmV2aXNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZGF0YWV4Y2hhbmdlOkNyZWF0ZVJldmlzaW9uXCIsXG5cdFx0XCJkYXRhZXhjaGFuZ2U6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQXNzZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVBc3NldDogc3RyaW5nW10gPSBbXCJkYXRhZXhjaGFuZ2U6RGVsZXRlQXNzZXRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZURhdGFHcmFudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURhdGFHcmFudDogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6Q3JlYXRlSm9iXCIsXG5cdFx0XCJkYXRhZXhjaGFuZ2U6RGVsZXRlRGF0YUdyYW50XCIsXG5cdFx0XCJkYXRhZXhjaGFuZ2U6RGVsZXRlRGF0YVNldFwiLFxuXHRcdFwiZGF0YWV4Y2hhbmdlOlN0YXJ0Sm9iXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZURhdGFTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEYXRhU2V0OiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpEZWxldGVEYXRhU2V0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVFdmVudEFjdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV2ZW50QWN0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRhdGFleGNoYW5nZTpEZWxldGVFdmVudEFjdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZXZpc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJldmlzaW9uOiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpEZWxldGVSZXZpc2lvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0QXNzZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEFzc2V0OiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpHZXRBc3NldFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RGF0YUdyYW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXREYXRhR3JhbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZGF0YWV4Y2hhbmdlOkdldERhdGFHcmFudFwiLFxuXHRcdFwiZGF0YWV4Y2hhbmdlOkdldERhdGFTZXRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RGF0YVNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RGF0YVNldDogc3RyaW5nW10gPSBbXCJkYXRhZXhjaGFuZ2U6R2V0RGF0YVNldFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RXZlbnRBY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEV2ZW50QWN0aW9uOiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpHZXRFdmVudEFjdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Sm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRKb2I6IHN0cmluZ1tdID0gW1wiZGF0YWV4Y2hhbmdlOkdldEpvYlwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjZWl2ZWREYXRhR3JhbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlY2VpdmVkRGF0YUdyYW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImRhdGFleGNoYW5nZTpHZXREYXRhU2V0XCIsXG5cdFx0XCJkYXRhZXhjaGFuZ2U6R2V0UmVjZWl2ZWREYXRhR3JhbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmV2aXNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJldmlzaW9uOiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpHZXRSZXZpc2lvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERhdGFHcmFudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YUdyYW50czogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6TGlzdERhdGFHcmFudHNcIixcblx0XHRcImRhdGFleGNoYW5nZTpMaXN0RGF0YVNldHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERhdGFTZXRSZXZpc2lvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YVNldFJldmlzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6TGlzdERhdGFTZXRSZXZpc2lvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERhdGFTZXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFTZXRzOiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpMaXN0RGF0YVNldHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RFdmVudEFjdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXZlbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImRhdGFleGNoYW5nZTpMaXN0RXZlbnRBY3Rpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RKb2JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEpvYnM6IHN0cmluZ1tdID0gW1wiZGF0YWV4Y2hhbmdlOkxpc3RKb2JzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UmVjZWl2ZWREYXRhR3JhbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY2VpdmVkRGF0YUdyYW50czogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6TGlzdERhdGFTZXRzXCIsXG5cdFx0XCJkYXRhZXhjaGFuZ2U6TGlzdFJlY2VpdmVkRGF0YUdyYW50c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UmV2aXNpb25Bc3NldHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmV2aXNpb25Bc3NldHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZGF0YWV4Y2hhbmdlOkxpc3RSZXZpc2lvbkFzc2V0c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZXZva2VSZXZpc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJldm9rZVJldmlzaW9uOiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpSZXZva2VSZXZpc2lvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU2VuZEFwaUFzc2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZEFwaUFzc2V0OiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpTZW5kQXBpQXNzZXRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFNlbmREYXRhU2V0Tm90aWZpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZERhdGFTZXROb3RpZmljYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZGF0YWV4Y2hhbmdlOlNlbmREYXRhU2V0Tm90aWZpY2F0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0Sm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRKb2I6IHN0cmluZ1tdID0gW1xuXHRcdFwiZGF0YWV4Y2hhbmdlOkNyZWF0ZUFzc2V0XCIsXG5cdFx0XCJkYXRhZXhjaGFuZ2U6U3RhcnRKb2JcIixcblx0XHRcImRhdGFleGNoYW5nZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImRhdGFleGNoYW5nZTpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiZGF0YWV4Y2hhbmdlOlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUFzc2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQXNzZXQ6IHN0cmluZ1tdID0gW1wiZGF0YWV4Y2hhbmdlOlVwZGF0ZUFzc2V0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVEYXRhU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRGF0YVNldDogc3RyaW5nW10gPSBbXCJkYXRhZXhjaGFuZ2U6VXBkYXRlRGF0YVNldFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRXZlbnRBY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVFdmVudEFjdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6VXBkYXRlRXZlbnRBY3Rpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmV2aXNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXZpc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkYXRhZXhjaGFuZ2U6UHVibGlzaERhdGFTZXRcIixcblx0XHRcImRhdGFleGNoYW5nZTpQdWJsaXNoVG9EYXRhR3JhbnRcIixcblx0XHRcImRhdGFleGNoYW5nZTpVcGRhdGVSZXZpc2lvblwiLFxuXHRdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3IgZGF0YWV4Y2hhbmdlLlxuICovXG5leHBvcnQgY2xhc3MgRGF0YWV4Y2hhbmdlQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVBc3NldCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBc3NldENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRGF0YUdyYW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFHcmFudENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRGF0YVNldCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhU2V0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVFdmVudEFjdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFdmVudEFjdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlSm9iIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUpvYkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1wiZGF0YWV4Y2hhbmdlOkpvYlR5cGVcIl07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVSZXZpc2lvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZXZpc2lvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgUHVibGlzaFRvRGF0YUdyYW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1Ymxpc2hUb0RhdGFHcmFudENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVudGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1wiYXdzOlRhZ0tleXNcIl07XG5cblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFUVVFU1RfVEFHID0gXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVNPVVJDRV9UQUcgPSBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1RBR19LRVlTID0gXCJhd3M6VGFnS2V5c1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZGF0YWV4Y2hhbmdlOkpvYlR5cGUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEpPQl9UWVBFID0gXCJkYXRhZXhjaGFuZ2U6Sm9iVHlwZVwiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBkYXRhZXhjaGFuZ2U6Sm9iVHlwZWAuXG5cdCAqL1xuXHRzdGF0aWMgam9iVHlwZSh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImRhdGFleGNoYW5nZTpKb2JUeXBlXCI6IHZhbHVlIH0gfTtcblx0fVxufVxuIl19
@@ -16,7 +16,7 @@ class DatapipelineActions {
16
16
  }
17
17
  exports.DatapipelineActions = DatapipelineActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- DatapipelineActions[_a] = { fqn: "@cdk_utils/iam.datapipeline.DatapipelineActions", version: "1.6.0" };
19
+ DatapipelineActions[_a] = { fqn: "@cdk_utils/iam.datapipeline.DatapipelineActions", version: "1.7.0" };
20
20
  /** The IAM service prefix. */
21
21
  DatapipelineActions.SERVICE_PREFIX = "datapipeline";
22
22
  /** [Write] datapipeline:ActivatePipeline */
@@ -132,7 +132,7 @@ class DatapipelineResources {
132
132
  }
133
133
  exports.DatapipelineResources = DatapipelineResources;
134
134
  _b = JSII_RTTI_SYMBOL_1;
135
- DatapipelineResources[_b] = { fqn: "@cdk_utils/iam.datapipeline.DatapipelineResources", version: "1.6.0" };
135
+ DatapipelineResources[_b] = { fqn: "@cdk_utils/iam.datapipeline.DatapipelineResources", version: "1.7.0" };
136
136
  /**
137
137
  * API operation to required IAM actions mapping for datapipeline.
138
138
  */
@@ -140,7 +140,7 @@ class DatapipelineOperations {
140
140
  }
141
141
  exports.DatapipelineOperations = DatapipelineOperations;
142
142
  _c = JSII_RTTI_SYMBOL_1;
143
- DatapipelineOperations[_c] = { fqn: "@cdk_utils/iam.datapipeline.DatapipelineOperations", version: "1.6.0" };
143
+ DatapipelineOperations[_c] = { fqn: "@cdk_utils/iam.datapipeline.DatapipelineOperations", version: "1.7.0" };
144
144
  /** IAM actions required for the ActivatePipeline API call. */
145
145
  DatapipelineOperations.ActivatePipeline = [
146
146
  "datapipeline:ActivatePipeline",
@@ -250,7 +250,7 @@ class DatapipelineConditions {
250
250
  }
251
251
  exports.DatapipelineConditions = DatapipelineConditions;
252
252
  _d = JSII_RTTI_SYMBOL_1;
253
- DatapipelineConditions[_d] = { fqn: "@cdk_utils/iam.datapipeline.DatapipelineConditions", version: "1.6.0" };
253
+ DatapipelineConditions[_d] = { fqn: "@cdk_utils/iam.datapipeline.DatapipelineConditions", version: "1.7.0" };
254
254
  /** Condition keys applicable to the ActivatePipeline action. */
255
255
  DatapipelineConditions.ActivatePipelineConditionKeys = [
256
256
  "datapipeline:PipelineCreator",