@cdk_utils/iam 1.14.0 → 1.16.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 (469) hide show
  1. package/.jsii +11275 -7738
  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.d.ts +6 -0
  13. package/lib/generated/services/agent-registry.js +13 -5
  14. package/lib/generated/services/agentaccess-mcp.js +2 -2
  15. package/lib/generated/services/aidevops.js +4 -4
  16. package/lib/generated/services/aiops.js +4 -4
  17. package/lib/generated/services/airflow-serverless.js +4 -4
  18. package/lib/generated/services/airflow.js +4 -4
  19. package/lib/generated/services/amplify.js +4 -4
  20. package/lib/generated/services/amplifybackend.js +3 -3
  21. package/lib/generated/services/amplifyuibuilder.js +4 -4
  22. package/lib/generated/services/aoss.js +4 -4
  23. package/lib/generated/services/apigateway.js +4 -4
  24. package/lib/generated/services/app-integrations.js +4 -4
  25. package/lib/generated/services/appconfig.js +4 -4
  26. package/lib/generated/services/appfabric.js +4 -4
  27. package/lib/generated/services/appflow.js +4 -4
  28. package/lib/generated/services/application-autoscaling.js +4 -4
  29. package/lib/generated/services/application-signals-mcp.js +3 -3
  30. package/lib/generated/services/application-signals.js +4 -4
  31. package/lib/generated/services/application-transformation.js +1 -1
  32. package/lib/generated/services/applicationinsights.js +3 -3
  33. package/lib/generated/services/appmesh-preview.js +2 -2
  34. package/lib/generated/services/appmesh.js +4 -4
  35. package/lib/generated/services/apprunner.js +4 -4
  36. package/lib/generated/services/appstream.js +4 -4
  37. package/lib/generated/services/appstudio.js +2 -2
  38. package/lib/generated/services/appsync.js +4 -4
  39. package/lib/generated/services/apptest.js +3 -3
  40. package/lib/generated/services/aps.js +4 -4
  41. package/lib/generated/services/arc-region-switch.js +4 -4
  42. package/lib/generated/services/arc-zonal-shift.js +4 -4
  43. package/lib/generated/services/arsenal.js +1 -1
  44. package/lib/generated/services/artifact.js +4 -4
  45. package/lib/generated/services/athena.js +4 -4
  46. package/lib/generated/services/auditmanager.js +4 -4
  47. package/lib/generated/services/autoscaling-plans.js +2 -2
  48. package/lib/generated/services/autoscaling.js +4 -4
  49. package/lib/generated/services/aws-external-anthropic.js +3 -3
  50. package/lib/generated/services/aws-marketplace-management.js +1 -1
  51. package/lib/generated/services/aws-marketplace.js +4 -4
  52. package/lib/generated/services/aws-portal.js +1 -1
  53. package/lib/generated/services/awsconnector.js +1 -1
  54. package/lib/generated/services/b2bi.js +4 -4
  55. package/lib/generated/services/backup-gateway.js +4 -4
  56. package/lib/generated/services/backup-search.js +4 -4
  57. package/lib/generated/services/backup-storage.js +1 -1
  58. package/lib/generated/services/backup.js +4 -4
  59. package/lib/generated/services/batch.js +4 -4
  60. package/lib/generated/services/bcm-dashboards.js +4 -4
  61. package/lib/generated/services/bcm-data-exports.js +4 -4
  62. package/lib/generated/services/bcm-pricing-calculator.js +4 -4
  63. package/lib/generated/services/bcm-recommended-actions.js +2 -2
  64. package/lib/generated/services/bedrock-agentcore.js +4 -4
  65. package/lib/generated/services/bedrock-mantle.js +3 -3
  66. package/lib/generated/services/bedrock-websearch.js +2 -2
  67. package/lib/generated/services/bedrock.js +4 -4
  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.d.ts +2 -0
  109. package/lib/generated/services/cognito-idp.js +14 -7
  110. package/lib/generated/services/cognito-sync.js +3 -3
  111. package/lib/generated/services/comprehend.js +4 -4
  112. package/lib/generated/services/comprehendmedical.js +3 -3
  113. package/lib/generated/services/compute-optimizer.js +3 -3
  114. package/lib/generated/services/config.js +4 -4
  115. package/lib/generated/services/connect-campaigns.js +4 -4
  116. package/lib/generated/services/connect.d.ts +75 -0
  117. package/lib/generated/services/connect.js +110 -9
  118. package/lib/generated/services/consoleapp.js +2 -2
  119. package/lib/generated/services/consolidatedbilling.js +1 -1
  120. package/lib/generated/services/controlcatalog.js +3 -3
  121. package/lib/generated/services/controltower.js +4 -4
  122. package/lib/generated/services/cost-optimization-hub.js +2 -2
  123. package/lib/generated/services/cur.js +4 -4
  124. package/lib/generated/services/customer-verification.js +1 -1
  125. package/lib/generated/services/databrew.js +4 -4
  126. package/lib/generated/services/dataexchange.js +4 -4
  127. package/lib/generated/services/datapipeline.js +4 -4
  128. package/lib/generated/services/datasync.js +4 -4
  129. package/lib/generated/services/datazone.js +4 -4
  130. package/lib/generated/services/dax.js +4 -4
  131. package/lib/generated/services/dbqms.js +1 -1
  132. package/lib/generated/services/deadline.js +4 -4
  133. package/lib/generated/services/detective.js +4 -4
  134. package/lib/generated/services/devicefarm.js +4 -4
  135. package/lib/generated/services/devops-guru.js +4 -4
  136. package/lib/generated/services/directconnect.js +4 -4
  137. package/lib/generated/services/discovery.js +3 -3
  138. package/lib/generated/services/dlm.js +4 -4
  139. package/lib/generated/services/dms.js +4 -4
  140. package/lib/generated/services/docdb-elastic.js +4 -4
  141. package/lib/generated/services/drs.js +4 -4
  142. package/lib/generated/services/ds-data.js +4 -4
  143. package/lib/generated/services/ds.js +4 -4
  144. package/lib/generated/services/dsql.js +4 -4
  145. package/lib/generated/services/dynamodb.js +4 -4
  146. package/lib/generated/services/ebs.js +4 -4
  147. package/lib/generated/services/ec2-instance-connect.js +4 -4
  148. package/lib/generated/services/ec2.d.ts +103 -0
  149. package/lib/generated/services/ec2.js +179 -21
  150. package/lib/generated/services/ec2messages.js +2 -2
  151. package/lib/generated/services/ecr-public.js +4 -4
  152. package/lib/generated/services/ecr.js +4 -4
  153. package/lib/generated/services/ecs-mcp.js +1 -1
  154. package/lib/generated/services/ecs.js +4 -4
  155. package/lib/generated/services/eks-auth.js +4 -4
  156. package/lib/generated/services/eks-mcp.js +1 -1
  157. package/lib/generated/services/eks.js +4 -4
  158. package/lib/generated/services/elasticache.js +4 -4
  159. package/lib/generated/services/elasticbeanstalk.js +4 -4
  160. package/lib/generated/services/elasticfilesystem.js +4 -4
  161. package/lib/generated/services/elasticloadbalancing.js +4 -4
  162. package/lib/generated/services/elasticmapreduce.js +4 -4
  163. package/lib/generated/services/elastictranscoder.js +2 -2
  164. package/lib/generated/services/elemental-activations.js +1 -1
  165. package/lib/generated/services/elemental-appliances-software.js +2 -2
  166. package/lib/generated/services/elemental-inference.js +4 -4
  167. package/lib/generated/services/elemental-support-cases.js +3 -3
  168. package/lib/generated/services/elemental-support-content.js +1 -1
  169. package/lib/generated/services/emr-containers.js +4 -4
  170. package/lib/generated/services/emr-serverless.js +4 -4
  171. package/lib/generated/services/entityresolution.js +4 -4
  172. package/lib/generated/services/es.js +4 -4
  173. package/lib/generated/services/events.js +4 -4
  174. package/lib/generated/services/eventsbilltoaws.js +3 -3
  175. package/lib/generated/services/evidently.js +3 -3
  176. package/lib/generated/services/evs.js +4 -4
  177. package/lib/generated/services/execute-api.js +4 -4
  178. package/lib/generated/services/finops-agent.js +1 -1
  179. package/lib/generated/services/finspace-api.js +3 -3
  180. package/lib/generated/services/finspace.js +4 -4
  181. package/lib/generated/services/firehose.js +4 -4
  182. package/lib/generated/services/fis.js +4 -4
  183. package/lib/generated/services/fms.js +4 -4
  184. package/lib/generated/services/forecast.js +4 -4
  185. package/lib/generated/services/frauddetector.js +4 -4
  186. package/lib/generated/services/freertos.js +3 -3
  187. package/lib/generated/services/freetier.js +2 -2
  188. package/lib/generated/services/fsx.js +4 -4
  189. package/lib/generated/services/gamelift.js +4 -4
  190. package/lib/generated/services/gameliftstreams.js +4 -4
  191. package/lib/generated/services/geo-maps.js +3 -3
  192. package/lib/generated/services/geo-places.js +3 -3
  193. package/lib/generated/services/geo-routes.js +3 -3
  194. package/lib/generated/services/geo.js +4 -4
  195. package/lib/generated/services/glacier.js +4 -4
  196. package/lib/generated/services/globalaccelerator.js +4 -4
  197. package/lib/generated/services/glue.js +4 -4
  198. package/lib/generated/services/grafana.js +4 -4
  199. package/lib/generated/services/greengrass.js +4 -4
  200. package/lib/generated/services/groundstation.js +4 -4
  201. package/lib/generated/services/groundtruthlabeling.js +1 -1
  202. package/lib/generated/services/guardduty.d.ts +132 -0
  203. package/lib/generated/services/guardduty.js +149 -5
  204. package/lib/generated/services/health-agent.js +4 -4
  205. package/lib/generated/services/health.js +4 -4
  206. package/lib/generated/services/healthlake.js +4 -4
  207. package/lib/generated/services/honeycode.js +2 -2
  208. package/lib/generated/services/iam.js +4 -4
  209. package/lib/generated/services/identity-sync.js +2 -2
  210. package/lib/generated/services/identitystore-auth.js +1 -1
  211. package/lib/generated/services/identitystore.js +4 -4
  212. package/lib/generated/services/imagebuilder.js +9 -6
  213. package/lib/generated/services/importexport.js +2 -2
  214. package/lib/generated/services/inspector-scan.js +2 -2
  215. package/lib/generated/services/inspector.js +2 -2
  216. package/lib/generated/services/inspector2-telemetry.js +1 -1
  217. package/lib/generated/services/inspector2.js +4 -4
  218. package/lib/generated/services/interconnect.js +4 -4
  219. package/lib/generated/services/internetmonitor.js +4 -4
  220. package/lib/generated/services/invoicing.js +4 -4
  221. package/lib/generated/services/iot-device-tester.js +1 -1
  222. package/lib/generated/services/iot.js +4 -4
  223. package/lib/generated/services/iotanalytics.js +3 -3
  224. package/lib/generated/services/iotdeviceadvisor.js +4 -4
  225. package/lib/generated/services/iotevents.js +3 -3
  226. package/lib/generated/services/iotfleethub.js +3 -3
  227. package/lib/generated/services/iotfleetwise.js +4 -4
  228. package/lib/generated/services/iotjobsdata.js +4 -4
  229. package/lib/generated/services/iotmanagedintegrations.js +4 -4
  230. package/lib/generated/services/iotsitewise.js +4 -4
  231. package/lib/generated/services/iottwinmaker.js +4 -4
  232. package/lib/generated/services/iotwireless.js +4 -4
  233. package/lib/generated/services/iq-permission.js +2 -2
  234. package/lib/generated/services/iq.js +2 -2
  235. package/lib/generated/services/ivs.js +4 -4
  236. package/lib/generated/services/ivschat.js +4 -4
  237. package/lib/generated/services/kafka-cluster.js +3 -3
  238. package/lib/generated/services/kafka.js +4 -4
  239. package/lib/generated/services/kafkaconnect.d.ts +2 -0
  240. package/lib/generated/services/kafkaconnect.js +7 -5
  241. package/lib/generated/services/kendra-ranking.js +4 -4
  242. package/lib/generated/services/kendra.js +4 -4
  243. package/lib/generated/services/kinesis.d.ts +61 -0
  244. package/lib/generated/services/kinesis.js +67 -5
  245. package/lib/generated/services/kinesisanalytics.js +4 -4
  246. package/lib/generated/services/kinesisvideo.js +4 -4
  247. package/lib/generated/services/kms.js +4 -4
  248. package/lib/generated/services/lakeformation.js +3 -3
  249. package/lib/generated/services/lambda.js +4 -4
  250. package/lib/generated/services/launchwizard.js +4 -4
  251. package/lib/generated/services/lex.js +4 -4
  252. package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
  253. package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
  254. package/lib/generated/services/license-manager.js +4 -4
  255. package/lib/generated/services/lightsail.d.ts +2 -0
  256. package/lib/generated/services/lightsail.js +7 -5
  257. package/lib/generated/services/logs.js +4 -4
  258. package/lib/generated/services/lookoutequipment.js +4 -4
  259. package/lib/generated/services/lookoutmetrics.js +3 -3
  260. package/lib/generated/services/lookoutvision.js +3 -3
  261. package/lib/generated/services/m2.js +4 -4
  262. package/lib/generated/services/machinelearning.js +3 -3
  263. package/lib/generated/services/macie2.js +4 -4
  264. package/lib/generated/services/managedblockchain-query.js +2 -2
  265. package/lib/generated/services/managedblockchain.js +4 -4
  266. package/lib/generated/services/mapcredits.js +2 -2
  267. package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
  268. package/lib/generated/services/mechanicalturk.js +2 -2
  269. package/lib/generated/services/mediaconnect.js +4 -4
  270. package/lib/generated/services/mediaconvert.js +4 -4
  271. package/lib/generated/services/mediaimport.js +1 -1
  272. package/lib/generated/services/medialive.js +4 -4
  273. package/lib/generated/services/mediapackage-vod.js +4 -4
  274. package/lib/generated/services/mediapackage.js +4 -4
  275. package/lib/generated/services/mediapackagev2.js +4 -4
  276. package/lib/generated/services/mediastore.js +4 -4
  277. package/lib/generated/services/mediatailor.js +4 -4
  278. package/lib/generated/services/medical-imaging.js +4 -4
  279. package/lib/generated/services/memorydb.js +4 -4
  280. package/lib/generated/services/mgh.js +4 -4
  281. package/lib/generated/services/mgn.js +4 -4
  282. package/lib/generated/services/migrationhub-orchestrator.js +4 -4
  283. package/lib/generated/services/migrationhub-strategy.js +2 -2
  284. package/lib/generated/services/mobileanalytics.js +1 -1
  285. package/lib/generated/services/mobiletargeting.js +4 -4
  286. package/lib/generated/services/monitron.js +3 -3
  287. package/lib/generated/services/mpa.js +4 -4
  288. package/lib/generated/services/mq.js +4 -4
  289. package/lib/generated/services/neptune-db.js +4 -4
  290. package/lib/generated/services/neptune-graph.js +4 -4
  291. package/lib/generated/services/network-firewall.js +4 -4
  292. package/lib/generated/services/network-security-director.js +1 -1
  293. package/lib/generated/services/networkflowmonitor.js +4 -4
  294. package/lib/generated/services/networkmanager-chat.js +1 -1
  295. package/lib/generated/services/networkmanager.js +4 -4
  296. package/lib/generated/services/networkmonitor.js +4 -4
  297. package/lib/generated/services/nimble.js +3 -3
  298. package/lib/generated/services/notifications-contacts.js +4 -4
  299. package/lib/generated/services/notifications.js +4 -4
  300. package/lib/generated/services/nova-act.js +3 -3
  301. package/lib/generated/services/oam.js +4 -4
  302. package/lib/generated/services/observabilityadmin.js +4 -4
  303. package/lib/generated/services/odb.js +4 -4
  304. package/lib/generated/services/omics.js +4 -4
  305. package/lib/generated/services/one.js +3 -3
  306. package/lib/generated/services/opensearch.js +3 -3
  307. package/lib/generated/services/opsworks-cm.js +2 -2
  308. package/lib/generated/services/opsworks.js +2 -2
  309. package/lib/generated/services/organizations.js +4 -4
  310. package/lib/generated/services/osis.js +4 -4
  311. package/lib/generated/services/outposts.js +4 -4
  312. package/lib/generated/services/panorama.js +3 -3
  313. package/lib/generated/services/partnercentral-account-management.js +2 -2
  314. package/lib/generated/services/partnercentral.js +4 -4
  315. package/lib/generated/services/payment-cryptography.js +4 -4
  316. package/lib/generated/services/payments.js +3 -3
  317. package/lib/generated/services/pca-connector-ad.js +4 -4
  318. package/lib/generated/services/pca-connector-scep.js +4 -4
  319. package/lib/generated/services/pcs.js +4 -4
  320. package/lib/generated/services/personalize.js +4 -4
  321. package/lib/generated/services/pi.js +4 -4
  322. package/lib/generated/services/pipes.js +4 -4
  323. package/lib/generated/services/polly.js +3 -3
  324. package/lib/generated/services/pricing.js +2 -2
  325. package/lib/generated/services/pricingplanmanager.js +3 -3
  326. package/lib/generated/services/private-networks.js +3 -3
  327. package/lib/generated/services/profile.d.ts +14 -0
  328. package/lib/generated/services/profile.js +33 -5
  329. package/lib/generated/services/proton.js +4 -4
  330. package/lib/generated/services/purchase-orders.js +3 -3
  331. package/lib/generated/services/q.js +3 -3
  332. package/lib/generated/services/qapps.js +4 -4
  333. package/lib/generated/services/qbusiness.js +4 -4
  334. package/lib/generated/services/qdeveloper.js +3 -3
  335. package/lib/generated/services/qldb.js +3 -3
  336. package/lib/generated/services/quicksight.d.ts +12 -0
  337. package/lib/generated/services/quicksight.js +22 -6
  338. package/lib/generated/services/ram.js +4 -4
  339. package/lib/generated/services/rbin.js +4 -4
  340. package/lib/generated/services/rds-data.js +4 -4
  341. package/lib/generated/services/rds-db.js +2 -2
  342. package/lib/generated/services/rds.js +4 -4
  343. package/lib/generated/services/redshift-data.js +4 -4
  344. package/lib/generated/services/redshift-serverless.js +4 -4
  345. package/lib/generated/services/redshift.js +4 -4
  346. package/lib/generated/services/refactor-spaces.js +4 -4
  347. package/lib/generated/services/rekognition.js +4 -4
  348. package/lib/generated/services/repostspace.js +4 -4
  349. package/lib/generated/services/researchstudio.js +1 -1
  350. package/lib/generated/services/resiliencehub.js +4 -4
  351. package/lib/generated/services/resource-explorer-2.js +4 -4
  352. package/lib/generated/services/resource-explorer.js +1 -1
  353. package/lib/generated/services/resource-groups.js +4 -4
  354. package/lib/generated/services/rhelkb.js +1 -1
  355. package/lib/generated/services/robomaker.js +3 -3
  356. package/lib/generated/services/rolesanywhere.js +4 -4
  357. package/lib/generated/services/route53-recovery-cluster.js +4 -4
  358. package/lib/generated/services/route53-recovery-control-config.js +4 -4
  359. package/lib/generated/services/route53-recovery-readiness.js +4 -4
  360. package/lib/generated/services/route53.js +4 -4
  361. package/lib/generated/services/route53domains.js +2 -2
  362. package/lib/generated/services/route53globalresolver.js +4 -4
  363. package/lib/generated/services/route53profiles.js +4 -4
  364. package/lib/generated/services/route53resolver.js +4 -4
  365. package/lib/generated/services/rtbfabric.js +4 -4
  366. package/lib/generated/services/rum.js +4 -4
  367. package/lib/generated/services/s3-object-lambda.js +3 -3
  368. package/lib/generated/services/s3-outposts.js +4 -4
  369. package/lib/generated/services/s3.js +4 -4
  370. package/lib/generated/services/s3express.js +3 -3
  371. package/lib/generated/services/s3files.js +4 -4
  372. package/lib/generated/services/s3tables.js +4 -4
  373. package/lib/generated/services/s3vectors.js +4 -4
  374. package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
  375. package/lib/generated/services/sagemaker-geospatial.js +4 -4
  376. package/lib/generated/services/sagemaker-mlflow.js +3 -3
  377. package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
  378. package/lib/generated/services/sagemaker.js +4 -4
  379. package/lib/generated/services/savingsplans.js +4 -4
  380. package/lib/generated/services/scheduler.js +4 -4
  381. package/lib/generated/services/schemas.js +4 -4
  382. package/lib/generated/services/scn.js +4 -4
  383. package/lib/generated/services/sdb.js +3 -3
  384. package/lib/generated/services/secretsmanager.js +4 -4
  385. package/lib/generated/services/security-ir.js +4 -4
  386. package/lib/generated/services/securityagent.js +4 -4
  387. package/lib/generated/services/securityhub.js +4 -4
  388. package/lib/generated/services/securitylake.js +4 -4
  389. package/lib/generated/services/serverlessrepo.js +4 -4
  390. package/lib/generated/services/servicecatalog.js +4 -4
  391. package/lib/generated/services/servicediscovery.js +4 -4
  392. package/lib/generated/services/serviceextract.js +1 -1
  393. package/lib/generated/services/servicequotas.js +4 -4
  394. package/lib/generated/services/ses.d.ts +8 -0
  395. package/lib/generated/services/ses.js +13 -5
  396. package/lib/generated/services/shield.js +4 -4
  397. package/lib/generated/services/signer.js +4 -4
  398. package/lib/generated/services/signin.js +4 -4
  399. package/lib/generated/services/simspaceweaver.js +3 -3
  400. package/lib/generated/services/sms-voice.js +4 -4
  401. package/lib/generated/services/sms.js +1 -1
  402. package/lib/generated/services/snow-device-management.js +4 -4
  403. package/lib/generated/services/snowball.js +2 -2
  404. package/lib/generated/services/sns.js +4 -4
  405. package/lib/generated/services/social-messaging.js +4 -4
  406. package/lib/generated/services/sqlworkbench.js +3 -3
  407. package/lib/generated/services/sqs.js +4 -4
  408. package/lib/generated/services/ssm-contacts.js +4 -4
  409. package/lib/generated/services/ssm-guiconnect.js +2 -2
  410. package/lib/generated/services/ssm-incidents.js +4 -4
  411. package/lib/generated/services/ssm-quicksetup.js +4 -4
  412. package/lib/generated/services/ssm-sap.js +4 -4
  413. package/lib/generated/services/ssm.js +4 -4
  414. package/lib/generated/services/ssmmessages.js +2 -2
  415. package/lib/generated/services/sso-directory.js +1 -1
  416. package/lib/generated/services/sso-oauth.js +3 -3
  417. package/lib/generated/services/sso.js +4 -4
  418. package/lib/generated/services/states.js +4 -4
  419. package/lib/generated/services/storagegateway.js +4 -4
  420. package/lib/generated/services/sts.js +4 -4
  421. package/lib/generated/services/support-console.js +1 -1
  422. package/lib/generated/services/support.d.ts +9 -1
  423. package/lib/generated/services/support.js +25 -5
  424. package/lib/generated/services/supportapp.js +2 -2
  425. package/lib/generated/services/supportauthz.js +4 -4
  426. package/lib/generated/services/supportplans.js +1 -1
  427. package/lib/generated/services/sustainability.js +2 -2
  428. package/lib/generated/services/swf.js +4 -4
  429. package/lib/generated/services/synthetics.js +4 -4
  430. package/lib/generated/services/tag.js +2 -2
  431. package/lib/generated/services/tax.js +2 -2
  432. package/lib/generated/services/textract.js +4 -4
  433. package/lib/generated/services/thinclient.js +4 -4
  434. package/lib/generated/services/timestream-influxdb.js +4 -4
  435. package/lib/generated/services/timestream.js +4 -4
  436. package/lib/generated/services/tiros.js +1 -1
  437. package/lib/generated/services/tnb.js +4 -4
  438. package/lib/generated/services/transcribe.js +4 -4
  439. package/lib/generated/services/transfer.js +4 -4
  440. package/lib/generated/services/transform-custom.js +3 -3
  441. package/lib/generated/services/transform.js +3 -3
  442. package/lib/generated/services/translate.js +4 -4
  443. package/lib/generated/services/trustedadvisor.js +3 -3
  444. package/lib/generated/services/ts.js +3 -3
  445. package/lib/generated/services/user-subscriptions.js +2 -2
  446. package/lib/generated/services/uxc.js +2 -2
  447. package/lib/generated/services/vendor-insights.js +3 -3
  448. package/lib/generated/services/verified-access.js +1 -1
  449. package/lib/generated/services/verifiedpermissions.js +4 -4
  450. package/lib/generated/services/voiceid.js +4 -4
  451. package/lib/generated/services/vpc-lattice-svcs.js +3 -3
  452. package/lib/generated/services/vpc-lattice.js +4 -4
  453. package/lib/generated/services/vpce.js +2 -2
  454. package/lib/generated/services/waf-regional.js +4 -4
  455. package/lib/generated/services/waf.js +4 -4
  456. package/lib/generated/services/wafv2.js +4 -4
  457. package/lib/generated/services/wam.js +1 -1
  458. package/lib/generated/services/wellarchitected.js +4 -4
  459. package/lib/generated/services/wickr.js +4 -4
  460. package/lib/generated/services/wisdom.js +4 -4
  461. package/lib/generated/services/workdocs.js +3 -3
  462. package/lib/generated/services/worklink.js +3 -3
  463. package/lib/generated/services/workmail.js +4 -4
  464. package/lib/generated/services/workmailmessageflow.js +3 -3
  465. package/lib/generated/services/workspaces-instances.js +4 -4
  466. package/lib/generated/services/workspaces-web.js +4 -4
  467. package/lib/generated/services/workspaces.js +4 -4
  468. package/lib/generated/services/xray.js +4 -4
  469. package/package.json +1 -1
@@ -16,7 +16,7 @@ class ProfileActions {
16
16
  }
17
17
  exports.ProfileActions = ProfileActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- ProfileActions[_a] = { fqn: "@cdk_utils/iam.profile.ProfileActions", version: "1.14.0" };
19
+ ProfileActions[_a] = { fqn: "@cdk_utils/iam.profile.ProfileActions", version: "1.16.0" };
20
20
  /** The IAM service prefix. */
21
21
  ProfileActions.SERVICE_PREFIX = "profile";
22
22
  /** [Write] profile:AddProfileKey */
@@ -750,7 +750,7 @@ class ProfileResources {
750
750
  }
751
751
  exports.ProfileResources = ProfileResources;
752
752
  _b = JSII_RTTI_SYMBOL_1;
753
- ProfileResources[_b] = { fqn: "@cdk_utils/iam.profile.ProfileResources", version: "1.14.0" };
753
+ ProfileResources[_b] = { fqn: "@cdk_utils/iam.profile.ProfileResources", version: "1.16.0" };
754
754
  /**
755
755
  * API operation to required IAM actions mapping for profile.
756
756
  */
@@ -758,9 +758,13 @@ class ProfileOperations {
758
758
  }
759
759
  exports.ProfileOperations = ProfileOperations;
760
760
  _c = JSII_RTTI_SYMBOL_1;
761
- ProfileOperations[_c] = { fqn: "@cdk_utils/iam.profile.ProfileOperations", version: "1.14.0" };
761
+ ProfileOperations[_c] = { fqn: "@cdk_utils/iam.profile.ProfileOperations", version: "1.16.0" };
762
762
  /** IAM actions required for the AddProfileKey API call. */
763
763
  ProfileOperations.AddProfileKey = ["profile:AddProfileKey"];
764
+ /** IAM actions required for the AssociateStreamForSegments API call. */
765
+ ProfileOperations.AssociateStreamForSegments = [
766
+ "profile:AssociateStreamForSegments",
767
+ ];
764
768
  /** IAM actions required for the BatchGetCalculatedAttributeForProfile API call. */
765
769
  ProfileOperations.BatchGetCalculatedAttributeForProfile = [
766
770
  "profile:BatchGetCalculatedAttributeForProfile",
@@ -873,12 +877,20 @@ ProfileOperations.DeleteRecommenderSchema = [
873
877
  ProfileOperations.DeleteSegmentDefinition = [
874
878
  "profile:DeleteSegmentDefinition",
875
879
  ];
880
+ /** IAM actions required for the DeleteSegmentSubscription API call. */
881
+ ProfileOperations.DeleteSegmentSubscription = [
882
+ "profile:DeleteSegmentSubscription",
883
+ ];
876
884
  /** IAM actions required for the DeleteWorkflow API call. */
877
885
  ProfileOperations.DeleteWorkflow = ["profile:DeleteWorkflow"];
878
886
  /** IAM actions required for the DetectProfileObjectType API call. */
879
887
  ProfileOperations.DetectProfileObjectType = [
880
888
  "profile:DetectProfileObjectType",
881
889
  ];
890
+ /** IAM actions required for the DisassociateStreamForSegments API call. */
891
+ ProfileOperations.DisassociateStreamForSegments = [
892
+ "profile:DisassociateStreamForSegments",
893
+ ];
882
894
  /** IAM actions required for the GetAutoMergingPreview API call. */
883
895
  ProfileOperations.opGetAutoMergingPreview = [
884
896
  "profile:GetAutoMergingPreview",
@@ -957,10 +969,18 @@ ProfileOperations.opGetSegmentMembership = [
957
969
  ProfileOperations.opGetSegmentSnapshot = [
958
970
  "profile:GetSegmentSnapshot",
959
971
  ];
972
+ /** IAM actions required for the GetSegmentSubscription API call. */
973
+ ProfileOperations.opGetSegmentSubscription = [
974
+ "profile:GetSegmentSubscription",
975
+ ];
960
976
  /** IAM actions required for the GetSimilarProfiles API call. */
961
977
  ProfileOperations.opGetSimilarProfiles = [
962
978
  "profile:GetSimilarProfiles",
963
979
  ];
980
+ /** IAM actions required for the GetStreamForSegments API call. */
981
+ ProfileOperations.opGetStreamForSegments = [
982
+ "profile:GetStreamForSegments",
983
+ ];
964
984
  /** IAM actions required for the GetUploadJob API call. */
965
985
  ProfileOperations.opGetUploadJob = ["profile:GetUploadJob"];
966
986
  /** IAM actions required for the GetUploadJobPath API call. */
@@ -1047,6 +1067,10 @@ ProfileOperations.ListRuleBasedMatches = [
1047
1067
  ProfileOperations.ListSegmentDefinitions = [
1048
1068
  "profile:ListSegmentDefinitions",
1049
1069
  ];
1070
+ /** IAM actions required for the ListSegmentSubscriptionEvents API call. */
1071
+ ProfileOperations.ListSegmentSubscriptionEvents = [
1072
+ "profile:ListSegmentSubscriptionEvents",
1073
+ ];
1050
1074
  /** IAM actions required for the ListTagsForResource API call. */
1051
1075
  ProfileOperations.ListTagsForResource = [
1052
1076
  "profile:ListTagsForResource",
@@ -1074,6 +1098,10 @@ ProfileOperations.PutProfileObjectType = [
1074
1098
  "profile:PutProfileObjectType",
1075
1099
  "profile:TagResource",
1076
1100
  ];
1101
+ /** IAM actions required for the PutSegmentSubscription API call. */
1102
+ ProfileOperations.PutSegmentSubscription = [
1103
+ "profile:PutSegmentSubscription",
1104
+ ];
1077
1105
  /** IAM actions required for the SearchProfiles API call. */
1078
1106
  ProfileOperations.SearchProfiles = ["profile:SearchProfiles"];
1079
1107
  /** IAM actions required for the StartRecommender API call. */
@@ -1127,7 +1155,7 @@ class ProfileConditions {
1127
1155
  }
1128
1156
  exports.ProfileConditions = ProfileConditions;
1129
1157
  _d = JSII_RTTI_SYMBOL_1;
1130
- ProfileConditions[_d] = { fqn: "@cdk_utils/iam.profile.ProfileConditions", version: "1.14.0" };
1158
+ ProfileConditions[_d] = { fqn: "@cdk_utils/iam.profile.ProfileConditions", version: "1.16.0" };
1131
1159
  /** Condition keys applicable to the CreateRecommenderFilter action. */
1132
1160
  ProfileConditions.CreateRecommenderFilterConditionKeys = [
1133
1161
  "aws:RequestTag/${TagKey}",
@@ -1151,4 +1179,4 @@ ProfileConditions.AWS_REQUEST_TAG = "aws:RequestTag/${TagKey}";
1151
1179
  ProfileConditions.AWS_RESOURCE_TAG = "aws:ResourceTag/${TagKey}";
1152
1180
  /** Condition key: aws:TagKeys (ArrayOfString) */
1153
1181
  ProfileConditions.AWS_TAG_KEYS = "aws:TagKeys";
1154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvc2VydmljZXMvcHJvZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdGQUFnRjtBQUNoRiw2Q0FBNkM7QUFDN0MsMERBQTBEO0FBQzFELDhDQUE4QztBQUM5QyxvREFBb0Q7QUFDcEQsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ0gsTUFBYSxjQUFjOztBQUEzQix3Q0EwWUM7OztBQXpZQSw4QkFBOEI7QUFDZCw2QkFBYyxHQUFHLFNBQVMsQ0FBQztBQUUzQyxvQ0FBb0M7QUFDcEIsNEJBQWEsR0FBRyx1QkFBdUIsQ0FBQztBQUN4RCxpREFBaUQ7QUFDakMseUNBQTBCLEdBQ3pDLG9DQUFvQyxDQUFDO0FBQ3RDLDJEQUEyRDtBQUMzQyxvREFBcUMsR0FDcEQsK0NBQStDLENBQUM7QUFDakQscUNBQXFDO0FBQ3JCLDhCQUFlLEdBQUcseUJBQXlCLENBQUM7QUFDNUQsMERBQTBEO0FBQzFDLGtEQUFtQyxHQUNsRCw2Q0FBNkMsQ0FBQztBQUMvQyxtQ0FBbUM7QUFDbkIsMkJBQVksR0FBRyxzQkFBc0IsQ0FBQztBQUN0RCx5Q0FBeUM7QUFDekIsaUNBQWtCLEdBQUcsNEJBQTRCLENBQUM7QUFDbEUsd0NBQXdDO0FBQ3hCLGdDQUFpQixHQUFHLDJCQUEyQixDQUFDO0FBQ2hFLHlDQUF5QztBQUN6QixpQ0FBa0IsR0FBRyw0QkFBNEIsQ0FBQztBQUNsRSxnREFBZ0Q7QUFDaEMsd0NBQXlCLEdBQ3hDLG1DQUFtQyxDQUFDO0FBQ3JDLG9DQUFvQztBQUNwQiw0QkFBYSxHQUFHLHVCQUF1QixDQUFDO0FBQ3hELHdDQUF3QztBQUN4QixnQ0FBaUIsR0FBRywyQkFBMkIsQ0FBQztBQUNoRSw4Q0FBOEM7QUFDOUIsc0NBQXVCLEdBQUcsaUNBQWlDLENBQUM7QUFDNUUsOENBQThDO0FBQzlCLHNDQUF1QixHQUFHLGlDQUFpQyxDQUFDO0FBQzVF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LyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUTy1HRU5FUkFURUQgRklMRSDigJQgRE8gTk9UIEVESVQgTUFOVUFMTFlcbi8vIEdlbmVyYXRlZCBmcm9tIEFXUyBTZXJ2aWNlIEF1dGhvcml6YXRpb24gUmVmZXJlbmNlIGRhdGFcbi8vIFNvdXJjZTogZGF0YS9zZXJ2aWNlLXJlZmVyZW5jZS9wcm9maWxlLmpzb25cbi8vIFJ1biBgbnB4IHByb2plbiBnZW5lcmF0ZS1jb25zdGFudHNgIHRvIHJlZ2VuZXJhdGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSUFNIGFjdGlvbiBjb25zdGFudHMgZm9yIHRoZSBwcm9maWxlIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9maWxlQWN0aW9ucyB7XG5cdC8qKiBUaGUgSUFNIHNlcnZpY2UgcHJlZml4LiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9QUkVGSVggPSBcInByb2ZpbGVcIjtcblxuXHQvKiogW1dyaXRlXSBwcm9maWxlOkFkZFByb2ZpbGVLZXkgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFkZFByb2ZpbGVLZXkgPSBcInByb2ZpbGU6QWRkUHJvZmlsZUtleVwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkFzc29jaWF0ZVN0cmVhbUZvclNlZ21lbnRzICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVTdHJlYW1Gb3JTZWdtZW50cyA9XG5cdFx0XCJwcm9maWxlOkFzc29jaWF0ZVN0cmVhbUZvclNlZ21lbnRzXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpCYXRjaEdldENhbGN1bGF0ZWRBdHRyaWJ1dGVGb3JQcm9maWxlICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaEdldENhbGN1bGF0ZWRBdHRyaWJ1dGVGb3JQcm9maWxlID1cblx0XHRcInByb2ZpbGU6QmF0Y2hHZXRDYWxjdWxhdGVkQXR0cmlidXRlRm9yUHJvZmlsZVwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6QmF0Y2hHZXRQcm9maWxlICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaEdldFByb2ZpbGUgPSBcInByb2ZpbGU6QmF0Y2hHZXRQcm9maWxlXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6Q3JlYXRlQ2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uID1cblx0XHRcInByb2ZpbGU6Q3JlYXRlQ2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpDcmVhdGVEb21haW4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURvbWFpbiA9IFwicHJvZmlsZTpDcmVhdGVEb21haW5cIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpDcmVhdGVEb21haW5MYXlvdXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURvbWFpbkxheW91dCA9IFwicHJvZmlsZTpDcmVhdGVEb21haW5MYXlvdXRcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpDcmVhdGVFdmVudFN0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXZlbnRTdHJlYW0gPSBcInByb2ZpbGU6Q3JlYXRlRXZlbnRTdHJlYW1cIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpDcmVhdGVFdmVudFRyaWdnZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV2ZW50VHJpZ2dlciA9IFwicHJvZmlsZTpDcmVhdGVFdmVudFRyaWdnZXJcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpDcmVhdGVJbnRlZ3JhdGlvbldvcmtmbG93ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVJbnRlZ3JhdGlvbldvcmtmbG93ID1cblx0XHRcInByb2ZpbGU6Q3JlYXRlSW50ZWdyYXRpb25Xb3JrZmxvd1wiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVByb2ZpbGUgPSBcInByb2ZpbGU6Q3JlYXRlUHJvZmlsZVwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVJlY29tbWVuZGVyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvbW1lbmRlciA9IFwicHJvZmlsZTpDcmVhdGVSZWNvbW1lbmRlclwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVJlY29tbWVuZGVyRmlsdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvbW1lbmRlckZpbHRlciA9IFwicHJvZmlsZTpDcmVhdGVSZWNvbW1lbmRlckZpbHRlclwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVJlY29tbWVuZGVyU2NoZW1hICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvbW1lbmRlclNjaGVtYSA9IFwicHJvZmlsZTpDcmVhdGVSZWNvbW1lbmRlclNjaGVtYVwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVNlZ21lbnREZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTZWdtZW50RGVmaW5pdGlvbiA9IFwicHJvZmlsZTpDcmVhdGVTZWdtZW50RGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVNlZ21lbnRFc3RpbWF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU2VnbWVudEVzdGltYXRlID0gXCJwcm9maWxlOkNyZWF0ZVNlZ21lbnRFc3RpbWF0ZVwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVNlZ21lbnRTbmFwc2hvdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU2VnbWVudFNuYXBzaG90ID0gXCJwcm9maWxlOkNyZWF0ZVNlZ21lbnRTbmFwc2hvdFwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVNuYXBzaG90ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTbmFwc2hvdCA9IFwicHJvZmlsZTpDcmVhdGVTbmFwc2hvdFwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVVwbG9hZEpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVXBsb2FkSm9iID0gXCJwcm9maWxlOkNyZWF0ZVVwbG9hZEpvYlwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkRlbGV0ZUNhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbiA9XG5cdFx0XCJwcm9maWxlOkRlbGV0ZUNhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlRG9tYWluICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEb21haW4gPSBcInByb2ZpbGU6RGVsZXRlRG9tYWluXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlRG9tYWluTGF5b3V0ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEb21haW5MYXlvdXQgPSBcInByb2ZpbGU6RGVsZXRlRG9tYWluTGF5b3V0XCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlRG9tYWluT2JqZWN0VHlwZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRG9tYWluT2JqZWN0VHlwZSA9IFwicHJvZmlsZTpEZWxldGVEb21haW5PYmplY3RUeXBlXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlRXZlbnRTdHJlYW0gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV2ZW50U3RyZWFtID0gXCJwcm9maWxlOkRlbGV0ZUV2ZW50U3RyZWFtXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlRXZlbnRUcmlnZ2VyICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFdmVudFRyaWdnZXIgPSBcInByb2ZpbGU6RGVsZXRlRXZlbnRUcmlnZ2VyXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlSW50ZWdyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUludGVncmF0aW9uID0gXCJwcm9maWxlOkRlbGV0ZUludGVncmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlUHJvZmlsZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUHJvZmlsZSA9IFwicHJvZmlsZTpEZWxldGVQcm9maWxlXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlUHJvZmlsZUtleSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUHJvZmlsZUtleSA9IFwicHJvZmlsZTpEZWxldGVQcm9maWxlS2V5XCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlUHJvZmlsZU9iamVjdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUHJvZmlsZU9iamVjdCA9IFwicHJvZmlsZTpEZWxldGVQcm9maWxlT2JqZWN0XCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlUHJvZmlsZU9iamVjdFR5cGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVByb2ZpbGVPYmplY3RUeXBlID0gXCJwcm9maWxlOkRlbGV0ZVByb2ZpbGVPYmplY3RUeXBlXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlUmVjb21tZW5kZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY29tbWVuZGVyID0gXCJwcm9maWxlOkRlbGV0ZVJlY29tbWVuZGVyXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlUmVjb21tZW5kZXJGaWx0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY29tbWVuZGVyRmlsdGVyID0gXCJwcm9maWxlOkRlbGV0ZVJlY29tbWVuZGVyRmlsdGVyXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlUmVjb21tZW5kZXJTY2hlbWEgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY29tbWVuZGVyU2NoZW1hID0gXCJwcm9maWxlOkRlbGV0ZVJlY29tbWVuZGVyU2NoZW1hXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlU2VnbWVudERlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNlZ21lbnREZWZpbml0aW9uID0gXCJwcm9maWxlOkRlbGV0ZVNlZ21lbnREZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlU2VnbWVudFN1YnNjcmlwdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU2VnbWVudFN1YnNjcmlwdGlvbiA9XG5cdFx0XCJwcm9maWxlOkRlbGV0ZVNlZ21lbnRTdWJzY3JpcHRpb25cIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpEZWxldGVXb3JrZmxvdyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlV29ya2Zsb3cgPSBcInByb2ZpbGU6RGVsZXRlV29ya2Zsb3dcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkRldGVjdFByb2ZpbGVPYmplY3RUeXBlICovXG5cdHN0YXRpYyByZWFkb25seSBEZXRlY3RQcm9maWxlT2JqZWN0VHlwZSA9IFwicHJvZmlsZTpEZXRlY3RQcm9maWxlT2JqZWN0VHlwZVwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkRpc2Fzc29jaWF0ZVN0cmVhbUZvclNlZ21lbnRzICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVTdHJlYW1Gb3JTZWdtZW50cyA9XG5cdFx0XCJwcm9maWxlOkRpc2Fzc29jaWF0ZVN0cmVhbUZvclNlZ21lbnRzXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRBdXRvTWVyZ2luZ1ByZXZpZXcgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEF1dG9NZXJnaW5nUHJldmlldyA9IFwicHJvZmlsZTpHZXRBdXRvTWVyZ2luZ1ByZXZpZXdcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldENhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbiA9XG5cdFx0XCJwcm9maWxlOkdldENhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRDYWxjdWxhdGVkQXR0cmlidXRlRm9yUHJvZmlsZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q2FsY3VsYXRlZEF0dHJpYnV0ZUZvclByb2ZpbGUgPVxuXHRcdFwicHJvZmlsZTpHZXRDYWxjdWxhdGVkQXR0cmlidXRlRm9yUHJvZmlsZVwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0RG9tYWluICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXREb21haW4gPSBcInByb2ZpbGU6R2V0RG9tYWluXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXREb21haW5MYXlvdXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERvbWFpbkxheW91dCA9IFwicHJvZmlsZTpHZXREb21haW5MYXlvdXRcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldERvbWFpbk9iamVjdFR5cGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERvbWFpbk9iamVjdFR5cGUgPSBcInByb2ZpbGU6R2V0RG9tYWluT2JqZWN0VHlwZVwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0RXZlbnRTdHJlYW0gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEV2ZW50U3RyZWFtID0gXCJwcm9maWxlOkdldEV2ZW50U3RyZWFtXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRFdmVudFRyaWdnZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEV2ZW50VHJpZ2dlciA9IFwicHJvZmlsZTpHZXRFdmVudFRyaWdnZXJcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldElkZW50aXR5UmVzb2x1dGlvbkpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SWRlbnRpdHlSZXNvbHV0aW9uSm9iID1cblx0XHRcInByb2ZpbGU6R2V0SWRlbnRpdHlSZXNvbHV0aW9uSm9iXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SW50ZWdyYXRpb24gPSBcInByb2ZpbGU6R2V0SW50ZWdyYXRpb25cIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkdldE1hdGNoZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE1hdGNoZXMgPSBcInByb2ZpbGU6R2V0TWF0Y2hlc1wiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0T2JqZWN0VHlwZUF0dHJpYnV0ZVN0YXRpc3RpY3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE9iamVjdFR5cGVBdHRyaWJ1dGVTdGF0aXN0aWNzID1cblx0XHRcInByb2ZpbGU6R2V0T2JqZWN0VHlwZUF0dHJpYnV0ZVN0YXRpc3RpY3NcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFByb2ZpbGVIaXN0b3J5UmVjb3JkICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRQcm9maWxlSGlzdG9yeVJlY29yZCA9XG5cdFx0XCJwcm9maWxlOkdldFByb2ZpbGVIaXN0b3J5UmVjb3JkXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRQcm9maWxlSW5zaWdodHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFByb2ZpbGVJbnNpZ2h0cyA9IFwicHJvZmlsZTpHZXRQcm9maWxlSW5zaWdodHNcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFByb2ZpbGVPYmplY3RUeXBlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRQcm9maWxlT2JqZWN0VHlwZSA9IFwicHJvZmlsZTpHZXRQcm9maWxlT2JqZWN0VHlwZVwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZSA9XG5cdFx0XCJwcm9maWxlOkdldFByb2ZpbGVPYmplY3RUeXBlVGVtcGxhdGVcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFByb2ZpbGVSZWNvbW1lbmRhdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFByb2ZpbGVSZWNvbW1lbmRhdGlvbnMgPVxuXHRcdFwicHJvZmlsZTpHZXRQcm9maWxlUmVjb21tZW5kYXRpb25zXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRSZWNvbW1lbmRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVjb21tZW5kZXIgPSBcInByb2ZpbGU6R2V0UmVjb21tZW5kZXJcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFJlY29tbWVuZGVyRmlsdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZWNvbW1lbmRlckZpbHRlciA9IFwicHJvZmlsZTpHZXRSZWNvbW1lbmRlckZpbHRlclwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0UmVjb21tZW5kZXJTY2hlbWEgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlY29tbWVuZGVyU2NoZW1hID0gXCJwcm9maWxlOkdldFJlY29tbWVuZGVyU2NoZW1hXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRTZWdtZW50RGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U2VnbWVudERlZmluaXRpb24gPSBcInByb2ZpbGU6R2V0U2VnbWVudERlZmluaXRpb25cIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFNlZ21lbnRFc3RpbWF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U2VnbWVudEVzdGltYXRlID0gXCJwcm9maWxlOkdldFNlZ21lbnRFc3RpbWF0ZVwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0U2VnbWVudE1lbWJlcnNoaXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFNlZ21lbnRNZW1iZXJzaGlwID0gXCJwcm9maWxlOkdldFNlZ21lbnRNZW1iZXJzaGlwXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRTZWdtZW50U25hcHNob3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFNlZ21lbnRTbmFwc2hvdCA9IFwicHJvZmlsZTpHZXRTZWdtZW50U25hcHNob3RcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFNlZ21lbnRTdWJzY3JpcHRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFNlZ21lbnRTdWJzY3JpcHRpb24gPVxuXHRcdFwicHJvZmlsZTpHZXRTZWdtZW50U3Vic2NyaXB0aW9uXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpHZXRTaW1pbGFyUHJvZmlsZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFNpbWlsYXJQcm9maWxlcyA9IFwicHJvZmlsZTpHZXRTaW1pbGFyUHJvZmlsZXNcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFNuYXBzaG90ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRTbmFwc2hvdCA9IFwicHJvZmlsZTpHZXRTbmFwc2hvdFwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0U3RyZWFtRm9yU2VnbWVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFN0cmVhbUZvclNlZ21lbnRzID0gXCJwcm9maWxlOkdldFN0cmVhbUZvclNlZ21lbnRzXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRVcGxvYWRKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFVwbG9hZEpvYiA9IFwicHJvZmlsZTpHZXRVcGxvYWRKb2JcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFVwbG9hZEpvYlBhdGggKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFVwbG9hZEpvYlBhdGggPSBcInByb2ZpbGU6R2V0VXBsb2FkSm9iUGF0aFwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0V29ya2Zsb3cgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFdvcmtmbG93ID0gXCJwcm9maWxlOkdldFdvcmtmbG93XCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRXb3JrZmxvd1N0ZXBzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRXb3JrZmxvd1N0ZXBzID0gXCJwcm9maWxlOkdldFdvcmtmbG93U3RlcHNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3RBY2NvdW50SW50ZWdyYXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QWNjb3VudEludGVncmF0aW9ucyA9IFwicHJvZmlsZTpMaXN0QWNjb3VudEludGVncmF0aW9uc1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdENhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9ucyA9XG5cdFx0XCJwcm9maWxlOkxpc3RDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3RDYWxjdWxhdGVkQXR0cmlidXRlc0ZvclByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDYWxjdWxhdGVkQXR0cmlidXRlc0ZvclByb2ZpbGUgPVxuXHRcdFwicHJvZmlsZTpMaXN0Q2FsY3VsYXRlZEF0dHJpYnV0ZXNGb3JQcm9maWxlXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0RG9tYWluTGF5b3V0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERvbWFpbkxheW91dHMgPSBcInByb2ZpbGU6TGlzdERvbWFpbkxheW91dHNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3REb21haW5PYmplY3RUeXBlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERvbWFpbk9iamVjdFR5cGVzID0gXCJwcm9maWxlOkxpc3REb21haW5PYmplY3RUeXBlc1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdERvbWFpbk9iamVjdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REb21haW5PYmplY3RzID0gXCJwcm9maWxlOkxpc3REb21haW5PYmplY3RzXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0RG9tYWlucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERvbWFpbnMgPSBcInByb2ZpbGU6TGlzdERvbWFpbnNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3RFdmVudFN0cmVhbXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFdmVudFN0cmVhbXMgPSBcInByb2ZpbGU6TGlzdEV2ZW50U3RyZWFtc1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdEV2ZW50VHJpZ2dlcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFdmVudFRyaWdnZXJzID0gXCJwcm9maWxlOkxpc3RFdmVudFRyaWdnZXJzXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0SWRlbnRpdHlSZXNvbHV0aW9uSm9icyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdElkZW50aXR5UmVzb2x1dGlvbkpvYnMgPVxuXHRcdFwicHJvZmlsZTpMaXN0SWRlbnRpdHlSZXNvbHV0aW9uSm9ic1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdEludGVncmF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEludGVncmF0aW9ucyA9IFwicHJvZmlsZTpMaXN0SW50ZWdyYXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZVZhbHVlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE9iamVjdFR5cGVBdHRyaWJ1dGVWYWx1ZXMgPVxuXHRcdFwicHJvZmlsZTpMaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZVZhbHVlc1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdE9iamVjdFR5cGVBdHRyaWJ1dGVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZXMgPSBcInByb2ZpbGU6TGlzdE9iamVjdFR5cGVBdHRyaWJ1dGVzXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0UHJvZmlsZUF0dHJpYnV0ZVZhbHVlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFByb2ZpbGVBdHRyaWJ1dGVWYWx1ZXMgPVxuXHRcdFwicHJvZmlsZTpMaXN0UHJvZmlsZUF0dHJpYnV0ZVZhbHVlc1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdFByb2ZpbGVIaXN0b3J5UmVjb3JkcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFByb2ZpbGVIaXN0b3J5UmVjb3JkcyA9XG5cdFx0XCJwcm9maWxlOkxpc3RQcm9maWxlSGlzdG9yeVJlY29yZHNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3RQcm9maWxlT2JqZWN0VHlwZVRlbXBsYXRlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFByb2ZpbGVPYmplY3RUeXBlVGVtcGxhdGVzID1cblx0XHRcInByb2ZpbGU6TGlzdFByb2ZpbGVPYmplY3RUeXBlVGVtcGxhdGVzXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0UHJvZmlsZU9iamVjdFR5cGVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UHJvZmlsZU9iamVjdFR5cGVzID0gXCJwcm9maWxlOkxpc3RQcm9maWxlT2JqZWN0VHlwZXNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3RQcm9maWxlT2JqZWN0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFByb2ZpbGVPYmplY3RzID0gXCJwcm9maWxlOkxpc3RQcm9maWxlT2JqZWN0c1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdFJlY29tbWVuZGVyRmlsdGVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY29tbWVuZGVyRmlsdGVycyA9IFwicHJvZmlsZTpMaXN0UmVjb21tZW5kZXJGaWx0ZXJzXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0UmVjb21tZW5kZXJSZWNpcGVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb21tZW5kZXJSZWNpcGVzID0gXCJwcm9maWxlOkxpc3RSZWNvbW1lbmRlclJlY2lwZXNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3RSZWNvbW1lbmRlclNjaGVtYXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvbW1lbmRlclNjaGVtYXMgPSBcInByb2ZpbGU6TGlzdFJlY29tbWVuZGVyU2NoZW1hc1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdFJlY29tbWVuZGVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY29tbWVuZGVycyA9IFwicHJvZmlsZTpMaXN0UmVjb21tZW5kZXJzXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0UnVsZUJhc2VkTWF0Y2hlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJ1bGVCYXNlZE1hdGNoZXMgPSBcInByb2ZpbGU6TGlzdFJ1bGVCYXNlZE1hdGNoZXNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3RTZWdtZW50RGVmaW5pdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTZWdtZW50RGVmaW5pdGlvbnMgPSBcInByb2ZpbGU6TGlzdFNlZ21lbnREZWZpbml0aW9uc1wiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6TGlzdFNlZ21lbnRTdWJzY3JpcHRpb25FdmVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTZWdtZW50U3Vic2NyaXB0aW9uRXZlbnRzID1cblx0XHRcInByb2ZpbGU6TGlzdFNlZ21lbnRTdWJzY3JpcHRpb25FdmVudHNcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcInByb2ZpbGU6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdFVwbG9hZEpvYnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RVcGxvYWRKb2JzID0gXCJwcm9maWxlOkxpc3RVcGxvYWRKb2JzXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0V29ya2Zsb3dzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0V29ya2Zsb3dzID0gXCJwcm9maWxlOkxpc3RXb3JrZmxvd3NcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpNZXJnZVByb2ZpbGVzICovXG5cdHN0YXRpYyByZWFkb25seSBNZXJnZVByb2ZpbGVzID0gXCJwcm9maWxlOk1lcmdlUHJvZmlsZXNcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpQdXREb21haW5PYmplY3RUeXBlICovXG5cdHN0YXRpYyByZWFkb25seSBQdXREb21haW5PYmplY3RUeXBlID0gXCJwcm9maWxlOlB1dERvbWFpbk9iamVjdFR5cGVcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpQdXRJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0SW50ZWdyYXRpb24gPSBcInByb2ZpbGU6UHV0SW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpQdXRQcm9maWxlT2JqZWN0ICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRQcm9maWxlT2JqZWN0ID0gXCJwcm9maWxlOlB1dFByb2ZpbGVPYmplY3RcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpQdXRQcm9maWxlT2JqZWN0VHlwZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UHJvZmlsZU9iamVjdFR5cGUgPSBcInByb2ZpbGU6UHV0UHJvZmlsZU9iamVjdFR5cGVcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpQdXRTZWdtZW50U3Vic2NyaXB0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRTZWdtZW50U3Vic2NyaXB0aW9uID0gXCJwcm9maWxlOlB1dFNlZ21lbnRTdWJzY3JpcHRpb25cIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOlNlYXJjaFByb2ZpbGVzICovXG5cdHN0YXRpYyByZWFkb25seSBTZWFyY2hQcm9maWxlcyA9IFwicHJvZmlsZTpTZWFyY2hQcm9maWxlc1wiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlN0YXJ0UmVjb21tZW5kZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVjb21tZW5kZXIgPSBcInByb2ZpbGU6U3RhcnRSZWNvbW1lbmRlclwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlN0YXJ0VXBsb2FkSm9iICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFVwbG9hZEpvYiA9IFwicHJvZmlsZTpTdGFydFVwbG9hZEpvYlwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlN0b3BSZWNvbW1lbmRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFJlY29tbWVuZGVyID0gXCJwcm9maWxlOlN0b3BSZWNvbW1lbmRlclwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlN0b3BVcGxvYWRKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BVcGxvYWRKb2IgPSBcInByb2ZpbGU6U3RvcFVwbG9hZEpvYlwiO1xuXHQvKiogW1RhZ2dpbmddIHByb2ZpbGU6VGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlID0gXCJwcm9maWxlOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbVGFnZ2luZ10gcHJvZmlsZTpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJwcm9maWxlOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpVcGRhdGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb24gPVxuXHRcdFwicHJvZmlsZTpVcGRhdGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlVwZGF0ZURvbWFpbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRG9tYWluID0gXCJwcm9maWxlOlVwZGF0ZURvbWFpblwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlVwZGF0ZURvbWFpbkxheW91dCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRG9tYWluTGF5b3V0ID0gXCJwcm9maWxlOlVwZGF0ZURvbWFpbkxheW91dFwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlVwZGF0ZUV2ZW50VHJpZ2dlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXZlbnRUcmlnZ2VyID0gXCJwcm9maWxlOlVwZGF0ZUV2ZW50VHJpZ2dlclwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlVwZGF0ZVByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVByb2ZpbGUgPSBcInByb2ZpbGU6VXBkYXRlUHJvZmlsZVwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlVwZGF0ZVJlY29tbWVuZGVyICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZWNvbW1lbmRlciA9IFwicHJvZmlsZTpVcGRhdGVSZWNvbW1lbmRlclwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFByb2ZpbGVBY3Rpb25zLkJhdGNoR2V0Q2FsY3VsYXRlZEF0dHJpYnV0ZUZvclByb2ZpbGUsXG5cdFx0UHJvZmlsZUFjdGlvbnMuQmF0Y2hHZXRQcm9maWxlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkRldGVjdFByb2ZpbGVPYmplY3RUeXBlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldEF1dG9NZXJnaW5nUHJldmlldyxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRDYWxjdWxhdGVkQXR0cmlidXRlRm9yUHJvZmlsZSxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXREb21haW4sXG5cdFx0UHJvZmlsZUFjdGlvbnMuYWN0aW9uR2V0RG9tYWluTGF5b3V0LFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldERvbWFpbk9iamVjdFR5cGUsXG5cdFx0UHJvZmlsZUFjdGlvbnMuYWN0aW9uR2V0RXZlbnRTdHJlYW0sXG5cdFx0UHJvZmlsZUFjdGlvbnMuYWN0aW9uR2V0RXZlbnRUcmlnZ2VyLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldElkZW50aXR5UmVzb2x1dGlvbkpvYixcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRJbnRlZ3JhdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRPYmplY3RUeXBlQXR0cmlidXRlU3RhdGlzdGljcyxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRQcm9maWxlSGlzdG9yeVJlY29yZCxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRQcm9maWxlSW5zaWdodHMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuYWN0aW9uR2V0UHJvZmlsZU9iamVjdFR5cGUsXG5cdFx0UHJvZmlsZUFjdGlvbnMuYWN0aW9uR2V0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZSxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRQcm9maWxlUmVjb21tZW5kYXRpb25zLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldFJlY29tbWVuZGVyLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldFJlY29tbWVuZGVyRmlsdGVyLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldFJlY29tbWVuZGVyU2NoZW1hLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldFNlZ21lbnREZWZpbml0aW9uLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldFNlZ21lbnRFc3RpbWF0ZSxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRTZWdtZW50TWVtYmVyc2hpcCxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRTZWdtZW50U25hcHNob3QsXG5cdFx0UHJvZmlsZUFjdGlvbnMuYWN0aW9uR2V0U2VnbWVudFN1YnNjcmlwdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRTbmFwc2hvdCxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRTdHJlYW1Gb3JTZWdtZW50cyxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRVcGxvYWRKb2IsXG5cdFx0UHJvZmlsZUFjdGlvbnMuYWN0aW9uR2V0VXBsb2FkSm9iUGF0aCxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRXb3JrZmxvdyxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRXb3JrZmxvd1N0ZXBzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3RTZWdtZW50U3Vic2NyaXB0aW9uRXZlbnRzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdFx0UHJvZmlsZUFjdGlvbnMuU2VhcmNoUHJvZmlsZXMsXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0UHJvZmlsZUFjdGlvbnMuQWRkUHJvZmlsZUtleSxcblx0XHRQcm9maWxlQWN0aW9ucy5Bc3NvY2lhdGVTdHJlYW1Gb3JTZWdtZW50cyxcblx0XHRQcm9maWxlQWN0aW9ucy5DcmVhdGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5DcmVhdGVEb21haW4sXG5cdFx0UHJvZmlsZUFjdGlvbnMuQ3JlYXRlRG9tYWluTGF5b3V0LFxuXHRcdFByb2ZpbGVBY3Rpb25zLkNyZWF0ZUV2ZW50U3RyZWFtLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkNyZWF0ZUV2ZW50VHJpZ2dlcixcblx0XHRQcm9maWxlQWN0aW9ucy5DcmVhdGVJbnRlZ3JhdGlvbldvcmtmbG93LFxuXHRcdFByb2ZpbGVBY3Rpb25zLkNyZWF0ZVByb2ZpbGUsXG5cdFx0UHJvZmlsZUFjdGlvbnMuQ3JlYXRlUmVjb21tZW5kZXIsXG5cdFx0UHJvZmlsZUFjdGlvbnMuQ3JlYXRlUmVjb21tZW5kZXJGaWx0ZXIsXG5cdFx0UHJvZmlsZUFjdGlvbnMuQ3JlYXRlUmVjb21tZW5kZXJTY2hlbWEsXG5cdFx0UHJvZmlsZUFjdGlvbnMuQ3JlYXRlU2VnbWVudERlZmluaXRpb24sXG5cdFx0UHJvZmlsZUFjdGlvbnMuQ3JlYXRlU2VnbWVudEVzdGltYXRlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkNyZWF0ZVNlZ21lbnRTbmFwc2hvdCxcblx0XHRQcm9maWxlQWN0aW9ucy5DcmVhdGVTbmFwc2hvdCxcblx0XHRQcm9maWxlQWN0aW9ucy5DcmVhdGVVcGxvYWRKb2IsXG5cdFx0UHJvZmlsZUFjdGlvbnMuRGVsZXRlQ2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb24sXG5cdFx0UHJvZmlsZUFjdGlvbnMuRGVsZXRlRG9tYWluLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkRlbGV0ZURvbWFpbkxheW91dCxcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVEb21haW5PYmplY3RUeXBlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkRlbGV0ZUV2ZW50U3RyZWFtLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkRlbGV0ZUV2ZW50VHJpZ2dlcixcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVJbnRlZ3JhdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVQcm9maWxlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkRlbGV0ZVByb2ZpbGVLZXksXG5cdFx0UHJvZmlsZUFjdGlvbnMuRGVsZXRlUHJvZmlsZU9iamVjdCxcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVQcm9maWxlT2JqZWN0VHlwZSxcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVSZWNvbW1lbmRlcixcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVSZWNvbW1lbmRlckZpbHRlcixcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVSZWNvbW1lbmRlclNjaGVtYSxcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVTZWdtZW50RGVmaW5pdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVTZWdtZW50U3Vic2NyaXB0aW9uLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkRlbGV0ZVdvcmtmbG93LFxuXHRcdFByb2ZpbGVBY3Rpb25zLkRpc2Fzc29jaWF0ZVN0cmVhbUZvclNlZ21lbnRzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLk1lcmdlUHJvZmlsZXMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuUHV0RG9tYWluT2JqZWN0VHlwZSxcblx0XHRQcm9maWxlQWN0aW9ucy5QdXRJbnRlZ3JhdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5QdXRQcm9maWxlT2JqZWN0LFxuXHRcdFByb2ZpbGVBY3Rpb25zLlB1dFByb2ZpbGVPYmplY3RUeXBlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLlB1dFNlZ21lbnRTdWJzY3JpcHRpb24sXG5cdFx0UHJvZmlsZUFjdGlvbnMuU3RhcnRSZWNvbW1lbmRlcixcblx0XHRQcm9maWxlQWN0aW9ucy5TdGFydFVwbG9hZEpvYixcblx0XHRQcm9maWxlQWN0aW9ucy5TdG9wUmVjb21tZW5kZXIsXG5cdFx0UHJvZmlsZUFjdGlvbnMuU3RvcFVwbG9hZEpvYixcblx0XHRQcm9maWxlQWN0aW9ucy5VcGRhdGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5VcGRhdGVEb21haW4sXG5cdFx0UHJvZmlsZUFjdGlvbnMuVXBkYXRlRG9tYWluTGF5b3V0LFxuXHRcdFByb2ZpbGVBY3Rpb25zLlVwZGF0ZUV2ZW50VHJpZ2dlcixcblx0XHRQcm9maWxlQWN0aW9ucy5VcGRhdGVQcm9maWxlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLlVwZGF0ZVJlY29tbWVuZGVyLFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRNYXRjaGVzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldFNpbWlsYXJQcm9maWxlcyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0QWNjb3VudEludGVncmF0aW9ucyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0Q2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb25zLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3RDYWxjdWxhdGVkQXR0cmlidXRlc0ZvclByb2ZpbGUsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdERvbWFpbkxheW91dHMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdERvbWFpbk9iamVjdFR5cGVzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3REb21haW5PYmplY3RzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3REb21haW5zLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3RFdmVudFN0cmVhbXMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdEV2ZW50VHJpZ2dlcnMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdElkZW50aXR5UmVzb2x1dGlvbkpvYnMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdEludGVncmF0aW9ucyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZVZhbHVlcyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZXMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdFByb2ZpbGVBdHRyaWJ1dGVWYWx1ZXMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdFByb2ZpbGVIaXN0b3J5UmVjb3Jkcyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZXMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdFByb2ZpbGVPYmplY3RUeXBlcyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0UHJvZmlsZU9iamVjdHMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdFJlY29tbWVuZGVyRmlsdGVycyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0UmVjb21tZW5kZXJSZWNpcGVzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3RSZWNvbW1lbmRlclNjaGVtYXMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdFJlY29tbWVuZGVycyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0UnVsZUJhc2VkTWF0Y2hlcyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0U2VnbWVudERlZmluaXRpb25zLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3RVcGxvYWRKb2JzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3RXb3JrZmxvd3MsXG5cdF07XG5cdC8qKiBBbGwgcGVybWlzc2lvbi1tYW5hZ2VtZW50LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxQZXJtaXNzaW9uTWFuYWdlbWVudEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBBbGwgdGFnZ2luZy1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsVGFnZ2luZ0FjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFByb2ZpbGVBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjYWxjdWxhdGVkLWF0dHJpYnV0ZXMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVDYWxjdWxhdGVkQXR0cmlidXRlc0FyblByb3BzIHtcblx0LyoqIFRoZSBEb21haW5OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2FsY3VsYXRlZEF0dHJpYnV0ZU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhbGN1bGF0ZWRBdHRyaWJ1dGVOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY2FsY3VsYXRlZC1hdHRyaWJ1dGVzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlQ2FsY3VsYXRlZEF0dHJpYnV0ZXNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2FsY3VsYXRlZEF0dHJpYnV0ZU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjYWxjdWxhdGVkQXR0cmlidXRlTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZG9tYWluLW9iamVjdC10eXBlcyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZURvbWFpbk9iamVjdFR5cGVzQXJuUHJvcHMge1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBPYmplY3RUeXBlTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgb2JqZWN0VHlwZU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkb21haW4tb2JqZWN0LXR5cGVzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlRG9tYWluT2JqZWN0VHlwZXNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgT2JqZWN0VHlwZU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBvYmplY3RUeXBlTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZG9tYWlucyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZURvbWFpbnNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRG9tYWluTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGRvbWFpbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVEb21haW5zQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEb21haW5OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZXZlbnQtc3RyZWFtcyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZUV2ZW50U3RyZWFtc0FyblByb3BzIHtcblx0LyoqIFRoZSBEb21haW5OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgRXZlbnRTdHJlYW1OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBldmVudFN0cmVhbU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBldmVudC1zdHJlYW1zIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlRXZlbnRTdHJlYW1zQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEb21haW5OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIEV2ZW50U3RyZWFtTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGV2ZW50U3RyZWFtTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZXZlbnQtdHJpZ2dlcnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVFdmVudFRyaWdnZXJzQXJuUHJvcHMge1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBFdmVudFRyaWdnZXJOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBldmVudFRyaWdnZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZXZlbnQtdHJpZ2dlcnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVFdmVudFRyaWdnZXJzQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEb21haW5OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIEV2ZW50VHJpZ2dlck5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBldmVudFRyaWdnZXJOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBpbnRlZ3JhdGlvbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVJbnRlZ3JhdGlvbnNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRG9tYWluTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVyaSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdXJpOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgaW50ZWdyYXRpb25zIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlSW50ZWdyYXRpb25zQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEb21haW5OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVyaSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHVyaTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgbGF5b3V0cyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZUxheW91dHNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRG9tYWluTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIExheW91dERlZmluaXRpb25OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBsYXlvdXREZWZpbml0aW9uTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGxheW91dHMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVMYXlvdXRzQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEb21haW5OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIExheW91dERlZmluaXRpb25OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbGF5b3V0RGVmaW5pdGlvbk5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIG9iamVjdC10eXBlcyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZU9iamVjdFR5cGVzQXJuUHJvcHMge1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBPYmplY3RUeXBlTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgb2JqZWN0VHlwZU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBvYmplY3QtdHlwZXMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVPYmplY3RUeXBlc0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRG9tYWluTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBPYmplY3RUeXBlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IG9iamVjdFR5cGVOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSByZWNvbW1lbmRlci1maWx0ZXJzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlUmVjb21tZW5kZXJGaWx0ZXJzQXJuUHJvcHMge1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBSZWNvbW1lbmRlckZpbHRlck5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlY29tbWVuZGVyRmlsdGVyTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHJlY29tbWVuZGVyLWZpbHRlcnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVSZWNvbW1lbmRlckZpbHRlcnNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVjb21tZW5kZXJGaWx0ZXJOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVjb21tZW5kZXJGaWx0ZXJOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSByZWNvbW1lbmRlci1zY2hlbWFzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlUmVjb21tZW5kZXJTY2hlbWFzQXJuUHJvcHMge1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBSZWNvbW1lbmRlclNjaGVtYU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlY29tbWVuZGVyU2NoZW1hTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHJlY29tbWVuZGVyLXNjaGVtYXMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVSZWNvbW1lbmRlclNjaGVtYXNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVjb21tZW5kZXJTY2hlbWFOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVjb21tZW5kZXJTY2hlbWFOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSByZWNvbW1lbmRlcnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVSZWNvbW1lbmRlcnNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRG9tYWluTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFJlY29tbWVuZGVyVHlwZU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlY29tbWVuZGVyVHlwZU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSByZWNvbW1lbmRlcnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVSZWNvbW1lbmRlcnNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVjb21tZW5kZXJUeXBlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlY29tbWVuZGVyVHlwZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHNlZ21lbnQtZGVmaW5pdGlvbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVTZWdtZW50RGVmaW5pdGlvbnNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRG9tYWluTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFNlZ21lbnREZWZpbml0aW9uTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc2VnbWVudERlZmluaXRpb25OYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgc2VnbWVudC1kZWZpbml0aW9ucyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZVNlZ21lbnREZWZpbml0aW9uc0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRG9tYWluTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBTZWdtZW50RGVmaW5pdGlvbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzZWdtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZztcbn1cblxuY29uc3QgQ2FsY3VsYXRlZEF0dHJpYnV0ZXNBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cHJvZmlsZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRvbWFpbnNcXC8oPzxkb21haW5OYW1lPlteOi8/XSspXFwvY2FsY3VsYXRlZC1hdHRyaWJ1dGVzXFwvKD88Y2FsY3VsYXRlZEF0dHJpYnV0ZU5hbWU+W146Lz9dKykkLztcbmNvbnN0IERvbWFpbk9iamVjdFR5cGVzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnByb2ZpbGU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkb21haW5zXFwvKD88ZG9tYWluTmFtZT5bXjovP10rKVxcL2RvbWFpbi1vYmplY3QtdHlwZXNcXC8oPzxvYmplY3RUeXBlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgRG9tYWluc0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwcm9maWxlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZG9tYWluc1xcLyg/PGRvbWFpbk5hbWU+W146Lz9dKykkLztcbmNvbnN0IEV2ZW50U3RyZWFtc0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwcm9maWxlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZG9tYWluc1xcLyg/PGRvbWFpbk5hbWU+W146Lz9dKylcXC9ldmVudC1zdHJlYW1zXFwvKD88ZXZlbnRTdHJlYW1OYW1lPlteOi8/XSspJC87XG5jb25zdCBFdmVudFRyaWdnZXJzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnByb2ZpbGU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkb21haW5zXFwvKD88ZG9tYWluTmFtZT5bXjovP10rKVxcL2V2ZW50LXRyaWdnZXJzXFwvKD88ZXZlbnRUcmlnZ2VyTmFtZT5bXjovP10rKSQvO1xuY29uc3QgSW50ZWdyYXRpb25zQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnByb2ZpbGU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkb21haW5zXFwvKD88ZG9tYWluTmFtZT5bXjovP10rKVxcL2ludGVncmF0aW9uc1xcLyg/PHVyaT5bXjovP10rKSQvO1xuY29uc3QgTGF5b3V0c0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwcm9maWxlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZG9tYWluc1xcLyg/PGRvbWFpbk5hbWU+W146Lz9dKylcXC9sYXlvdXRzXFwvKD88bGF5b3V0RGVmaW5pdGlvbk5hbWU+W146Lz9dKykkLztcbmNvbnN0IE9iamVjdFR5cGVzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnByb2ZpbGU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkb21haW5zXFwvKD88ZG9tYWluTmFtZT5bXjovP10rKVxcL29iamVjdC10eXBlc1xcLyg/PG9iamVjdFR5cGVOYW1lPlteOi8/XSspJC87XG5jb25zdCBSZWNvbW1lbmRlckZpbHRlcnNBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cHJvZmlsZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRvbWFpbnNcXC8oPzxkb21haW5OYW1lPlteOi8/XSspXFwvcmVjb21tZW5kZXItZmlsdGVyc1xcLyg/PHJlY29tbWVuZGVyRmlsdGVyTmFtZT5bXjovP10rKSQvO1xuY29uc3QgUmVjb21tZW5kZXJTY2hlbWFzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnByb2ZpbGU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkb21haW5zXFwvKD88ZG9tYWluTmFtZT5bXjovP10rKVxcL3JlY29tbWVuZGVyLXNjaGVtYXNcXC8oPzxyZWNvbW1lbmRlclNjaGVtYU5hbWU+W146Lz9dKykkLztcbmNvbnN0IFJlY29tbWVuZGVyc0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwcm9maWxlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZG9tYWluc1xcLyg/PGRvbWFpbk5hbWU+W146Lz9dKylcXC9yZWNvbW1lbmRlcnNcXC8oPzxyZWNvbW1lbmRlclR5cGVOYW1lPlteOi8/XSspJC87XG5jb25zdCBTZWdtZW50RGVmaW5pdGlvbnNBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cHJvZmlsZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRvbWFpbnNcXC8oPzxkb21haW5OYW1lPlteOi8/XSspXFwvc2VnbWVudC1kZWZpbml0aW9uc1xcLyg/PHNlZ21lbnREZWZpbml0aW9uTmFtZT5bXjovP10rKSQvO1xuXG4vKipcbiAqIEFSTiBidWlsZGVycywgdmFsaWRhdG9ycywgYW5kIHBhcnNlcnMgZm9yIHByb2ZpbGUgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgUHJvZmlsZVJlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY2FsY3VsYXRlZC1hdHRyaWJ1dGVzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNhbGN1bGF0ZWRBdHRyaWJ1dGVzKFxuXHRcdHByb3BzOiBQcm9maWxlQ2FsY3VsYXRlZEF0dHJpYnV0ZXNBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwcm9maWxlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRvbWFpbnMvJHtwcm9wcy5kb21haW5OYW1lfS9jYWxjdWxhdGVkLWF0dHJpYnV0ZXMvJHtwcm9wcy5jYWxjdWxhdGVkQXR0cmlidXRlTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY2FsY3VsYXRlZC1hdHRyaWJ1dGVzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDYWxjdWxhdGVkQXR0cmlidXRlc0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDYWxjdWxhdGVkQXR0cmlidXRlc0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjYWxjdWxhdGVkLWF0dHJpYnV0ZXMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ2FsY3VsYXRlZEF0dHJpYnV0ZXNBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFByb2ZpbGVDYWxjdWxhdGVkQXR0cmlidXRlc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ2FsY3VsYXRlZEF0dHJpYnV0ZXNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2FsY3VsYXRlZC1hdHRyaWJ1dGVzIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRvbWFpbk5hbWU6IG1hdGNoLmdyb3VwcyEuZG9tYWluTmFtZSxcblx0XHRcdGNhbGN1bGF0ZWRBdHRyaWJ1dGVOYW1lOiBtYXRjaC5ncm91cHMhLmNhbGN1bGF0ZWRBdHRyaWJ1dGVOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRvbWFpbi1vYmplY3QtdHlwZXMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZG9tYWluT2JqZWN0VHlwZXMocHJvcHM6IFByb2ZpbGVEb21haW5PYmplY3RUeXBlc0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwcm9maWxlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRvbWFpbnMvJHtwcm9wcy5kb21haW5OYW1lfS9kb21haW4tb2JqZWN0LXR5cGVzLyR7cHJvcHMub2JqZWN0VHlwZU5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRvbWFpbi1vYmplY3QtdHlwZXMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERvbWFpbk9iamVjdFR5cGVzQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERvbWFpbk9iamVjdFR5cGVzQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGRvbWFpbi1vYmplY3QtdHlwZXMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRG9tYWluT2JqZWN0VHlwZXNBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFByb2ZpbGVEb21haW5PYmplY3RUeXBlc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRG9tYWluT2JqZWN0VHlwZXNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZG9tYWluLW9iamVjdC10eXBlcyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkb21haW5OYW1lOiBtYXRjaC5ncm91cHMhLmRvbWFpbk5hbWUsXG5cdFx0XHRvYmplY3RUeXBlTmFtZTogbWF0Y2guZ3JvdXBzIS5vYmplY3RUeXBlTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBkb21haW5zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGRvbWFpbnMocHJvcHM6IFByb2ZpbGVEb21haW5zQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnByb2ZpbGU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZG9tYWlucy8ke3Byb3BzLmRvbWFpbk5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRvbWFpbnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERvbWFpbnNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRG9tYWluc0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkb21haW5zIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURvbWFpbnNBcm4oYXJuOiBzdHJpbmcpOiBQcm9maWxlRG9tYWluc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRG9tYWluc0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkb21haW5zIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRvbWFpbk5hbWU6IG1hdGNoLmdyb3VwcyEuZG9tYWluTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBldmVudC1zdHJlYW1zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGV2ZW50U3RyZWFtcyhwcm9wczogUHJvZmlsZUV2ZW50U3RyZWFtc0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwcm9maWxlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRvbWFpbnMvJHtwcm9wcy5kb21haW5OYW1lfS9ldmVudC1zdHJlYW1zLyR7cHJvcHMuZXZlbnRTdHJlYW1OYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBldmVudC1zdHJlYW1zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRFdmVudFN0cmVhbXNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRXZlbnRTdHJlYW1zQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGV2ZW50LXN0cmVhbXMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRXZlbnRTdHJlYW1zQXJuKGFybjogc3RyaW5nKTogUHJvZmlsZUV2ZW50U3RyZWFtc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRXZlbnRTdHJlYW1zQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGV2ZW50LXN0cmVhbXMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZG9tYWluTmFtZTogbWF0Y2guZ3JvdXBzIS5kb21haW5OYW1lLFxuXHRcdFx0ZXZlbnRTdHJlYW1OYW1lOiBtYXRjaC5ncm91cHMhLmV2ZW50U3RyZWFtTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBldmVudC10cmlnZ2VycyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBldmVudFRyaWdnZXJzKHByb3BzOiBQcm9maWxlRXZlbnRUcmlnZ2Vyc0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwcm9maWxlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRvbWFpbnMvJHtwcm9wcy5kb21haW5OYW1lfS9ldmVudC10cmlnZ2Vycy8ke3Byb3BzLmV2ZW50VHJpZ2dlck5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGV2ZW50LXRyaWdnZXJzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRFdmVudFRyaWdnZXJzQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEV2ZW50VHJpZ2dlcnNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZXZlbnQtdHJpZ2dlcnMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRXZlbnRUcmlnZ2Vyc0Fybihhcm46IHN0cmluZyk6IFByb2ZpbGVFdmVudFRyaWdnZXJzQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBFdmVudFRyaWdnZXJzQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGV2ZW50LXRyaWdnZXJzIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRvbWFpbk5hbWU6IG1hdGNoLmdyb3VwcyEuZG9tYWluTmFtZSxcblx0XHRcdGV2ZW50VHJpZ2dlck5hbWU6IG1hdGNoLmdyb3VwcyEuZXZlbnRUcmlnZ2VyTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBpbnRlZ3JhdGlvbnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaW50ZWdyYXRpb25zKHByb3BzOiBQcm9maWxlSW50ZWdyYXRpb25zQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnByb2ZpbGU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZG9tYWlucy8ke3Byb3BzLmRvbWFpbk5hbWV9L2ludGVncmF0aW9ucy8ke3Byb3BzLnVyaX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgaW50ZWdyYXRpb25zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRJbnRlZ3JhdGlvbnNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSW50ZWdyYXRpb25zQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGludGVncmF0aW9ucyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VJbnRlZ3JhdGlvbnNBcm4oYXJuOiBzdHJpbmcpOiBQcm9maWxlSW50ZWdyYXRpb25zQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBJbnRlZ3JhdGlvbnNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaW50ZWdyYXRpb25zIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRvbWFpbk5hbWU6IG1hdGNoLmdyb3VwcyEuZG9tYWluTmFtZSxcblx0XHRcdHVyaTogbWF0Y2guZ3JvdXBzIS51cmksXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgbGF5b3V0cyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBsYXlvdXRzKHByb3BzOiBQcm9maWxlTGF5b3V0c0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwcm9maWxlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRvbWFpbnMvJHtwcm9wcy5kb21haW5OYW1lfS9sYXlvdXRzLyR7cHJvcHMubGF5b3V0RGVmaW5pdGlvbk5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGxheW91dHMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZExheW91dHNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTGF5b3V0c0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBsYXlvdXRzIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUxheW91dHNBcm4oYXJuOiBzdHJpbmcpOiBQcm9maWxlTGF5b3V0c0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gTGF5b3V0c0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBsYXlvdXRzIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRvbWFpbk5hbWU6IG1hdGNoLmdyb3VwcyEuZG9tYWluTmFtZSxcblx0XHRcdGxheW91dERlZmluaXRpb25OYW1lOiBtYXRjaC5ncm91cHMhLmxheW91dERlZmluaXRpb25OYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIG9iamVjdC10eXBlcyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBvYmplY3RUeXBlcyhwcm9wczogUHJvZmlsZU9iamVjdFR5cGVzQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnByb2ZpbGU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZG9tYWlucy8ke3Byb3BzLmRvbWFpbk5hbWV9L29iamVjdC10eXBlcy8ke3Byb3BzLm9iamVjdFR5cGVOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBvYmplY3QtdHlwZXMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZE9iamVjdFR5cGVzQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE9iamVjdFR5cGVzQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIG9iamVjdC10eXBlcyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VPYmplY3RUeXBlc0Fybihhcm46IHN0cmluZyk6IFByb2ZpbGVPYmplY3RUeXBlc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gT2JqZWN0VHlwZXNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgb2JqZWN0LXR5cGVzIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRvbWFpbk5hbWU6IG1hdGNoLmdyb3VwcyEuZG9tYWluTmFtZSxcblx0XHRcdG9iamVjdFR5cGVOYW1lOiBtYXRjaC5ncm91cHMhLm9iamVjdFR5cGVOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHJlY29tbWVuZGVyLWZpbHRlcnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcmVjb21tZW5kZXJGaWx0ZXJzKHByb3BzOiBQcm9maWxlUmVjb21tZW5kZXJGaWx0ZXJzQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnByb2ZpbGU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZG9tYWlucy8ke3Byb3BzLmRvbWFpbk5hbWV9L3JlY29tbWVuZGVyLWZpbHRlcnMvJHtwcm9wcy5yZWNvbW1lbmRlckZpbHRlck5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHJlY29tbWVuZGVyLWZpbHRlcnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJlY29tbWVuZGVyRmlsdGVyc0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZWNvbW1lbmRlckZpbHRlcnNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgcmVjb21tZW5kZXItZmlsdGVycyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VSZWNvbW1lbmRlckZpbHRlcnNBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFByb2ZpbGVSZWNvbW1lbmRlckZpbHRlcnNBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJlY29tbWVuZGVyRmlsdGVyc0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZWNvbW1lbmRlci1maWx0ZXJzIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRvbWFpbk5hbWU6IG1hdGNoLmdyb3VwcyEuZG9tYWluTmFtZSxcblx0XHRcdHJlY29tbWVuZGVyRmlsdGVyTmFtZTogbWF0Y2guZ3JvdXBzIS5yZWNvbW1lbmRlckZpbHRlck5hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgcmVjb21tZW5kZXItc2NoZW1hcyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyByZWNvbW1lbmRlclNjaGVtYXMocHJvcHM6IFByb2ZpbGVSZWNvbW1lbmRlclNjaGVtYXNBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06cHJvZmlsZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkb21haW5zLyR7cHJvcHMuZG9tYWluTmFtZX0vcmVjb21tZW5kZXItc2NoZW1hcy8ke3Byb3BzLnJlY29tbWVuZGVyU2NoZW1hTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgcmVjb21tZW5kZXItc2NoZW1hcyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUmVjb21tZW5kZXJTY2hlbWFzQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJlY29tbWVuZGVyU2NoZW1hc0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSByZWNvbW1lbmRlci1zY2hlbWFzIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVJlY29tbWVuZGVyU2NoZW1hc0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogUHJvZmlsZVJlY29tbWVuZGVyU2NoZW1hc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVjb21tZW5kZXJTY2hlbWFzQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJlY29tbWVuZGVyLXNjaGVtYXMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZG9tYWluTmFtZTogbWF0Y2guZ3JvdXBzIS5kb21haW5OYW1lLFxuXHRcdFx0cmVjb21tZW5kZXJTY2hlbWFOYW1lOiBtYXRjaC5ncm91cHMhLnJlY29tbWVuZGVyU2NoZW1hTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSByZWNvbW1lbmRlcnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcmVjb21tZW5kZXJzKHByb3BzOiBQcm9maWxlUmVjb21tZW5kZXJzQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnByb2ZpbGU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZG9tYWlucy8ke3Byb3BzLmRvbWFpbk5hbWV9L3JlY29tbWVuZGVycy8ke3Byb3BzLnJlY29tbWVuZGVyVHlwZU5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHJlY29tbWVuZGVycyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUmVjb21tZW5kZXJzQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJlY29tbWVuZGVyc0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSByZWNvbW1lbmRlcnMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVjb21tZW5kZXJzQXJuKGFybjogc3RyaW5nKTogUHJvZmlsZVJlY29tbWVuZGVyc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVjb21tZW5kZXJzQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJlY29tbWVuZGVycyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkb21haW5OYW1lOiBtYXRjaC5ncm91cHMhLmRvbWFpbk5hbWUsXG5cdFx0XHRyZWNvbW1lbmRlclR5cGVOYW1lOiBtYXRjaC5ncm91cHMhLnJlY29tbWVuZGVyVHlwZU5hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgc2VnbWVudC1kZWZpbml0aW9ucyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzZWdtZW50RGVmaW5pdGlvbnMocHJvcHM6IFByb2ZpbGVTZWdtZW50RGVmaW5pdGlvbnNBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06cHJvZmlsZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkb21haW5zLyR7cHJvcHMuZG9tYWluTmFtZX0vc2VnbWVudC1kZWZpbml0aW9ucy8ke3Byb3BzLnNlZ21lbnREZWZpbml0aW9uTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgc2VnbWVudC1kZWZpbml0aW9ucyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU2VnbWVudERlZmluaXRpb25zQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFNlZ21lbnREZWZpbml0aW9uc0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBzZWdtZW50LWRlZmluaXRpb25zIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVNlZ21lbnREZWZpbml0aW9uc0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogUHJvZmlsZVNlZ21lbnREZWZpbml0aW9uc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gU2VnbWVudERlZmluaXRpb25zQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNlZ21lbnQtZGVmaW5pdGlvbnMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZG9tYWluTmFtZTogbWF0Y2guZ3JvdXBzIS5kb21haW5OYW1lLFxuXHRcdFx0c2VnbWVudERlZmluaXRpb25OYW1lOiBtYXRjaC5ncm91cHMhLnNlZ21lbnREZWZpbml0aW9uTmFtZSxcblx0XHR9O1xuXHR9XG59XG5cbi8qKlxuICogQVBJIG9wZXJhdGlvbiB0byByZXF1aXJlZCBJQU0gYWN0aW9ucyBtYXBwaW5nIGZvciBwcm9maWxlLlxuICovXG5leHBvcnQgY2xhc3MgUHJvZmlsZU9wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBZGRQcm9maWxlS2V5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWRkUHJvZmlsZUtleTogc3RyaW5nW10gPSBbXCJwcm9maWxlOkFkZFByb2ZpbGVLZXlcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEJhdGNoR2V0Q2FsY3VsYXRlZEF0dHJpYnV0ZUZvclByb2ZpbGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaEdldENhbGN1bGF0ZWRBdHRyaWJ1dGVGb3JQcm9maWxlOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6QmF0Y2hHZXRDYWxjdWxhdGVkQXR0cmlidXRlRm9yUHJvZmlsZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBCYXRjaEdldFByb2ZpbGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaEdldFByb2ZpbGU6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpCYXRjaEdldFByb2ZpbGVcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEJhdGNoUHV0UHJvZmlsZU9iamVjdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEJhdGNoUHV0UHJvZmlsZU9iamVjdDogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkNyZWF0ZUNhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uXCIsXG5cdFx0XCJwcm9maWxlOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZURvbWFpbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURvbWFpbjogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkNyZWF0ZURvbWFpblwiLFxuXHRcdFwicHJvZmlsZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVEb21haW5MYXlvdXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEb21haW5MYXlvdXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpDcmVhdGVEb21haW5MYXlvdXRcIixcblx0XHRcInByb2ZpbGU6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRXZlbnRTdHJlYW0gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFdmVudFN0cmVhbTogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkNyZWF0ZUV2ZW50U3RyZWFtXCIsXG5cdFx0XCJwcm9maWxlOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUV2ZW50VHJpZ2dlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV2ZW50VHJpZ2dlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkNyZWF0ZUV2ZW50VHJpZ2dlclwiLFxuXHRcdFwicHJvZmlsZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVJbnRlZ3JhdGlvbldvcmtmbG93IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSW50ZWdyYXRpb25Xb3JrZmxvdzogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkNyZWF0ZUludGVncmF0aW9uV29ya2Zsb3dcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVQcm9maWxlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUHJvZmlsZTogc3RyaW5nW10gPSBbXCJwcm9maWxlOkNyZWF0ZVByb2ZpbGVcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVJlY29tbWVuZGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVjb21tZW5kZXI6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpDcmVhdGVSZWNvbW1lbmRlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUmVjb21tZW5kZXJGaWx0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvbW1lbmRlckZpbHRlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkNyZWF0ZVJlY29tbWVuZGVyRmlsdGVyXCIsXG5cdFx0XCJwcm9maWxlOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVJlY29tbWVuZGVyU2NoZW1hIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVjb21tZW5kZXJTY2hlbWE6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpDcmVhdGVSZWNvbW1lbmRlclNjaGVtYVwiLFxuXHRcdFwicHJvZmlsZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVTZWdtZW50RGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNlZ21lbnREZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6Q3JlYXRlU2VnbWVudERlZmluaXRpb25cIixcblx0XHRcInByb2ZpbGU6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlU2VnbWVudEVzdGltYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU2VnbWVudEVzdGltYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6Q3JlYXRlU2VnbWVudEVzdGltYXRlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVNlZ21lbnRTbmFwc2hvdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNlZ21lbnRTbmFwc2hvdDogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkNyZWF0ZVNlZ21lbnRTbmFwc2hvdFwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVVwbG9hZEpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVVwbG9hZEpvYjogc3RyaW5nW10gPSBbXCJwcm9maWxlOkNyZWF0ZVVwbG9hZEpvYlwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkRlbGV0ZUNhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZURvbWFpbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURvbWFpbjogc3RyaW5nW10gPSBbXCJwcm9maWxlOkRlbGV0ZURvbWFpblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRG9tYWluTGF5b3V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRG9tYWluTGF5b3V0OiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6RGVsZXRlRG9tYWluTGF5b3V0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVEb21haW5PYmplY3RUeXBlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRG9tYWluT2JqZWN0VHlwZTogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkRlbGV0ZURvbWFpbk9iamVjdFR5cGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRXZlbnRTdHJlYW0gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFdmVudFN0cmVhbTogc3RyaW5nW10gPSBbXCJwcm9maWxlOkRlbGV0ZUV2ZW50U3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVFdmVudFRyaWdnZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFdmVudFRyaWdnZXI6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpEZWxldGVFdmVudFRyaWdnZXJcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUludGVncmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSW50ZWdyYXRpb246IHN0cmluZ1tdID0gW1wicHJvZmlsZTpEZWxldGVJbnRlZ3JhdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVByb2ZpbGU6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpEZWxldGVQcm9maWxlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVQcm9maWxlS2V5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUHJvZmlsZUtleTogc3RyaW5nW10gPSBbXCJwcm9maWxlOkRlbGV0ZVByb2ZpbGVLZXlcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVByb2ZpbGVPYmplY3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVQcm9maWxlT2JqZWN0OiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6RGVsZXRlUHJvZmlsZU9iamVjdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVQcm9maWxlT2JqZWN0VHlwZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVByb2ZpbGVPYmplY3RUeXBlOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6RGVsZXRlUHJvZmlsZU9iamVjdFR5cGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVjb21tZW5kZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZWNvbW1lbmRlcjogc3RyaW5nW10gPSBbXCJwcm9maWxlOkRlbGV0ZVJlY29tbWVuZGVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZWNvbW1lbmRlckZpbHRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY29tbWVuZGVyRmlsdGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6RGVsZXRlUmVjb21tZW5kZXJGaWx0ZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVjb21tZW5kZXJTY2hlbWEgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZWNvbW1lbmRlclNjaGVtYTogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkRlbGV0ZVJlY29tbWVuZGVyU2NoZW1hXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVNlZ21lbnREZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU2VnbWVudERlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpEZWxldGVTZWdtZW50RGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVXb3JrZmxvdyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVdvcmtmbG93OiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6RGVsZXRlV29ya2Zsb3dcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERldGVjdFByb2ZpbGVPYmplY3RUeXBlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGV0ZWN0UHJvZmlsZU9iamVjdFR5cGU6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpEZXRlY3RQcm9maWxlT2JqZWN0VHlwZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRBdXRvTWVyZ2luZ1ByZXZpZXcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEF1dG9NZXJnaW5nUHJldmlldzogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkdldEF1dG9NZXJnaW5nUHJldmlld1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDYWxjdWxhdGVkQXR0cmlidXRlRm9yUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q2FsY3VsYXRlZEF0dHJpYnV0ZUZvclByb2ZpbGU6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRDYWxjdWxhdGVkQXR0cmlidXRlRm9yUHJvZmlsZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXREb21haW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldERvbWFpbjogc3RyaW5nW10gPSBbXCJwcm9maWxlOkdldERvbWFpblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RG9tYWluTGF5b3V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXREb21haW5MYXlvdXQ6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpHZXREb21haW5MYXlvdXRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldERvbWFpbk9iamVjdFR5cGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldERvbWFpbk9iamVjdFR5cGU6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXREb21haW5PYmplY3RUeXBlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEV2ZW50U3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRFdmVudFN0cmVhbTogc3RyaW5nW10gPSBbXCJwcm9maWxlOkdldEV2ZW50U3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRFdmVudFRyaWdnZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEV2ZW50VHJpZ2dlcjogc3RyaW5nW10gPSBbXCJwcm9maWxlOkdldEV2ZW50VHJpZ2dlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SWRlbnRpdHlSZXNvbHV0aW9uSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRJZGVudGl0eVJlc29sdXRpb25Kb2I6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRJZGVudGl0eVJlc29sdXRpb25Kb2JcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SW50ZWdyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEludGVncmF0aW9uOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6R2V0SW50ZWdyYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldE1hdGNoZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE1hdGNoZXM6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpHZXRNYXRjaGVzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRPYmplY3RUeXBlQXR0cmlidXRlU3RhdGlzdGljcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0T2JqZWN0VHlwZUF0dHJpYnV0ZVN0YXRpc3RpY3M6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRPYmplY3RUeXBlQXR0cmlidXRlU3RhdGlzdGljc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRQcm9maWxlSGlzdG9yeVJlY29yZCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UHJvZmlsZUhpc3RvcnlSZWNvcmQ6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRQcm9maWxlSGlzdG9yeVJlY29yZFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRQcm9maWxlT2JqZWN0VHlwZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UHJvZmlsZU9iamVjdFR5cGU6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRQcm9maWxlT2JqZWN0VHlwZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRQcm9maWxlT2JqZWN0VHlwZVRlbXBsYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRQcm9maWxlT2JqZWN0VHlwZVRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6R2V0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRQcm9maWxlUmVjb21tZW5kYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRQcm9maWxlUmVjb21tZW5kYXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6R2V0UHJvZmlsZVJlY29tbWVuZGF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZWNvbW1lbmRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVjb21tZW5kZXI6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpHZXRSZWNvbW1lbmRlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjb21tZW5kZXJGaWx0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlY29tbWVuZGVyRmlsdGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6R2V0UmVjb21tZW5kZXJGaWx0ZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjb21tZW5kZXJTY2hlbWEgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlY29tbWVuZGVyU2NoZW1hOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6R2V0UmVjb21tZW5kZXJTY2hlbWFcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U2VnbWVudERlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFNlZ21lbnREZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6R2V0U2VnbWVudERlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U2VnbWVudEVzdGltYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRTZWdtZW50RXN0aW1hdGU6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRTZWdtZW50RXN0aW1hdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U2VnbWVudE1lbWJlcnNoaXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFNlZ21lbnRNZW1iZXJzaGlwOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6R2V0U2VnbWVudE1lbWJlcnNoaXBcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U2VnbWVudFNuYXBzaG90IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRTZWdtZW50U25hcHNob3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRTZWdtZW50U25hcHNob3RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U2ltaWxhclByb2ZpbGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRTaW1pbGFyUHJvZmlsZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRTaW1pbGFyUHJvZmlsZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0VXBsb2FkSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRVcGxvYWRKb2I6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpHZXRVcGxvYWRKb2JcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFVwbG9hZEpvYlBhdGggQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFVwbG9hZEpvYlBhdGg6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpHZXRVcGxvYWRKb2JQYXRoXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRXb3JrZmxvdyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0V29ya2Zsb3c6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpHZXRXb3JrZmxvd1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0V29ya2Zsb3dTdGVwcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0V29ya2Zsb3dTdGVwczogc3RyaW5nW10gPSBbXCJwcm9maWxlOkdldFdvcmtmbG93U3RlcHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBY2NvdW50SW50ZWdyYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFjY291bnRJbnRlZ3JhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0QWNjb3VudEludGVncmF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkxpc3RDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENhbGN1bGF0ZWRBdHRyaWJ1dGVzRm9yUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDYWxjdWxhdGVkQXR0cmlidXRlc0ZvclByb2ZpbGU6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0Q2FsY3VsYXRlZEF0dHJpYnV0ZXNGb3JQcm9maWxlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3REb21haW5MYXlvdXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERvbWFpbkxheW91dHM6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpMaXN0RG9tYWluTGF5b3V0c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERvbWFpbk9iamVjdFR5cGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERvbWFpbk9iamVjdFR5cGVzOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6TGlzdERvbWFpbk9iamVjdFR5cGVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3REb21haW5zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERvbWFpbnM6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpMaXN0RG9tYWluc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEV2ZW50U3RyZWFtcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFdmVudFN0cmVhbXM6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpMaXN0RXZlbnRTdHJlYW1zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RXZlbnRUcmlnZ2VycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFdmVudFRyaWdnZXJzOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6TGlzdEV2ZW50VHJpZ2dlcnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RJZGVudGl0eVJlc29sdXRpb25Kb2JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdElkZW50aXR5UmVzb2x1dGlvbkpvYnM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0SWRlbnRpdHlSZXNvbHV0aW9uSm9ic1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SW50ZWdyYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEludGVncmF0aW9uczogc3RyaW5nW10gPSBbXCJwcm9maWxlOkxpc3RJbnRlZ3JhdGlvbnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RPYmplY3RUeXBlQXR0cmlidXRlVmFsdWVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE9iamVjdFR5cGVBdHRyaWJ1dGVWYWx1ZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZVZhbHVlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFByb2ZpbGVBdHRyaWJ1dGVWYWx1ZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UHJvZmlsZUF0dHJpYnV0ZVZhbHVlczogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkxpc3RQcm9maWxlQXR0cmlidXRlVmFsdWVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RQcm9maWxlSGlzdG9yeVJlY29yZHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UHJvZmlsZUhpc3RvcnlSZWNvcmRzOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6TGlzdFByb2ZpbGVIaXN0b3J5UmVjb3Jkc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFByb2ZpbGVPYmplY3RUeXBlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RQcm9maWxlT2JqZWN0VHlwZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0UHJvZmlsZU9iamVjdFR5cGVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RQcm9maWxlT2JqZWN0cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RQcm9maWxlT2JqZWN0czogc3RyaW5nW10gPSBbXCJwcm9maWxlOkxpc3RQcm9maWxlT2JqZWN0c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY29tbWVuZGVyRmlsdGVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvbW1lbmRlckZpbHRlcnM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0UmVjb21tZW5kZXJGaWx0ZXJzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RSZWNvbW1lbmRlclJlY2lwZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb21tZW5kZXJSZWNpcGVzOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6TGlzdFJlY29tbWVuZGVyUmVjaXBlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UmVjb21tZW5kZXJTY2hlbWFzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY29tbWVuZGVyU2NoZW1hczogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkxpc3RSZWNvbW1lbmRlclNjaGVtYXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY29tbWVuZGVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvbW1lbmRlcnM6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpMaXN0UmVjb21tZW5kZXJzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UnVsZUJhc2VkTWF0Y2hlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSdWxlQmFzZWRNYXRjaGVzOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6TGlzdFJ1bGVCYXNlZE1hdGNoZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFNlZ21lbnREZWZpbml0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTZWdtZW50RGVmaW5pdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0U2VnbWVudERlZmluaXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VXBsb2FkSm9icyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RVcGxvYWRKb2JzOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6TGlzdFVwbG9hZEpvYnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RXb3JrZmxvd3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0V29ya2Zsb3dzOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6TGlzdFdvcmtmbG93c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTWVyZ2VQcm9maWxlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IE1lcmdlUHJvZmlsZXM6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpNZXJnZVByb2ZpbGVzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXREb21haW5PYmplY3RUeXBlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RG9tYWluT2JqZWN0VHlwZTogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOlB1dERvbWFpbk9iamVjdFR5cGVcIixcblx0XHRcInByb2ZpbGU6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0SW50ZWdyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRJbnRlZ3JhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOlB1dEludGVncmF0aW9uXCIsXG5cdFx0XCJwcm9maWxlOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dFByb2ZpbGVPYmplY3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRQcm9maWxlT2JqZWN0OiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6UHV0UHJvZmlsZU9iamVjdFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0UHJvZmlsZU9iamVjdFR5cGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRQcm9maWxlT2JqZWN0VHlwZTogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOlB1dFByb2ZpbGVPYmplY3RUeXBlXCIsXG5cdFx0XCJwcm9maWxlOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFNlYXJjaFByb2ZpbGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VhcmNoUHJvZmlsZXM6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpTZWFyY2hQcm9maWxlc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRSZWNvbW1lbmRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVjb21tZW5kZXI6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpTdGFydFJlY29tbWVuZGVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFVwbG9hZEpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VXBsb2FkSm9iOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6U3RhcnRVcGxvYWRKb2JcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BSZWNvbW1lbmRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BSZWNvbW1lbmRlcjogc3RyaW5nW10gPSBbXCJwcm9maWxlOlN0b3BSZWNvbW1lbmRlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFVwbG9hZEpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BVcGxvYWRKb2I6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpTdG9wVXBsb2FkSm9iXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6VW50YWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQ2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOlVwZGF0ZUNhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZURvbWFpbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZURvbWFpbjogc3RyaW5nW10gPSBbXCJwcm9maWxlOlVwZGF0ZURvbWFpblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRG9tYWluTGF5b3V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRG9tYWluTGF5b3V0OiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6VXBkYXRlRG9tYWluTGF5b3V0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVFdmVudFRyaWdnZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVFdmVudFRyaWdnZXI6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpVcGRhdGVFdmVudFRyaWdnZXJcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVByb2ZpbGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVQcm9maWxlOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6VXBkYXRlUHJvZmlsZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVjb21tZW5kZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZWNvbW1lbmRlcjogc3RyaW5nW10gPSBbXCJwcm9maWxlOlVwZGF0ZVJlY29tbWVuZGVyXCJdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3IgcHJvZmlsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb2ZpbGVDb25kaXRpb25zIHtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVJlY29tbWVuZGVyRmlsdGVyIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY29tbWVuZGVyRmlsdGVyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVSZWNvbW1lbmRlclNjaGVtYSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvbW1lbmRlclNjaGVtYUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVudGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1wiYXdzOlRhZ0tleXNcIl07XG5cblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFUVVFU1RfVEFHID0gXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVNPVVJDRV9UQUcgPSBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1RBR19LRVlTID0gXCJhd3M6VGFnS2V5c1wiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxufVxuIl19
1182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvc2VydmljZXMvcHJvZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdGQUFnRjtBQUNoRiw2Q0FBNkM7QUFDN0MsMERBQTBEO0FBQzFELDhDQUE4QztBQUM5QyxvREFBb0Q7QUFDcEQsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ0gsTUFBYSxjQUFjOztBQUEzQix3Q0EwWUM7OztBQXpZQSw4QkFBOEI7QUFDZCw2QkFBYyxHQUFHLFNBQVMsQ0FBQztBQUUzQyxvQ0FBb0M7QUFDcEIsNEJBQWEsR0FBRyx1QkFBdUIsQ0FBQztBQUN4RCxpREFBaUQ7QUFDakMseUNBQTBCLEdBQ3pDLG9DQUFvQyxDQUFDO0FBQ3RDLDJEQUEyRDtBQUMzQyxvREFBcUMsR0FDcEQsK0NBQStDLENBQUM7QUFDakQscUNBQXFDO0FBQ3JCLDhCQUFlLEdBQUcseUJBQXlCLENBQUM7QUFDNUQsMERBQTBEO0FBQzFDLGtEQUFtQyxHQUNsRCw2Q0FBNkMsQ0FBQztBQUMvQyxtQ0FBbUM7QUFDbkIsMkJBQVksR0FBRyxzQkFBc0IsQ0FBQztBQUN0RCx5Q0FBeUM7QUFDekIsaUNBQWtCLEdBQUcsNEJBQTRCLENBQUM7QUFDbEUsd0NBQXdDO0FBQ3hCLGdDQUFpQixHQUFHLDJCQUEyQixDQUFDO0FBQ2hFLHlDQUF5QztBQUN6QixpQ0FBa0IsR0FBRyw0QkFBNEIsQ0FBQztBQUNsRSxnREFBZ0Q7QUFDaEMsd0NBQXlCLEdBQ3hDLG1DQUFtQyxDQUFDO0FBQ3JDLG9DQUFvQztBQUNwQiw0QkFBYSxHQUFHLHVCQUF1QixDQUFDO0FBQ3hELHdDQUF3QztBQUN4QixnQ0FBaUIsR0FBRywyQkFBMkIsQ0FBQztBQUNoRSw4Q0FBOEM7QUFDOUIsc0NBQXVCLEdBQUcsaUNBQWlDLENBQUM7QUFDNUUsOENBQThDO0FBQzlCLHNDQUF1QixHQUFHLGlDQUFpQyxDQUFDO0FBQzVF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RTtBQUN2RCxzREFBb0MsR0FBYTtJQUNoRSwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRix1RUFBdUU7QUFDdkQsc0RBQW9DLEdBQWE7SUFDaEUsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsMkRBQTJEO0FBQzNDLDBDQUF3QixHQUFhO0lBQ3BELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDZEQUE2RDtBQUM3Qyw0Q0FBMEIsR0FBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBRXZFLHVEQUF1RDtBQUN2QyxpQ0FBZSxHQUFHLDBCQUEwQixDQUFDO0FBQzdELHdEQUF3RDtBQUN4QyxrQ0FBZ0IsR0FBRywyQkFBMkIsQ0FBQztBQUMvRCxpREFBaUQ7QUFDakMsOEJBQVksR0FBRyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUTy1HRU5FUkFURUQgRklMRSDigJQgRE8gTk9UIEVESVQgTUFOVUFMTFlcbi8vIEdlbmVyYXRlZCBmcm9tIEFXUyBTZXJ2aWNlIEF1dGhvcml6YXRpb24gUmVmZXJlbmNlIGRhdGFcbi8vIFNvdXJjZTogZGF0YS9zZXJ2aWNlLXJlZmVyZW5jZS9wcm9maWxlLmpzb25cbi8vIFJ1biBgbnB4IHByb2plbiBnZW5lcmF0ZS1jb25zdGFudHNgIHRvIHJlZ2VuZXJhdGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSUFNIGFjdGlvbiBjb25zdGFudHMgZm9yIHRoZSBwcm9maWxlIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9maWxlQWN0aW9ucyB7XG5cdC8qKiBUaGUgSUFNIHNlcnZpY2UgcHJlZml4LiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9QUkVGSVggPSBcInByb2ZpbGVcIjtcblxuXHQvKiogW1dyaXRlXSBwcm9maWxlOkFkZFByb2ZpbGVLZXkgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFkZFByb2ZpbGVLZXkgPSBcInByb2ZpbGU6QWRkUHJvZmlsZUtleVwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkFzc29jaWF0ZVN0cmVhbUZvclNlZ21lbnRzICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVTdHJlYW1Gb3JTZWdtZW50cyA9XG5cdFx0XCJwcm9maWxlOkFzc29jaWF0ZVN0cmVhbUZvclNlZ21lbnRzXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpCYXRjaEdldENhbGN1bGF0ZWRBdHRyaWJ1dGVGb3JQcm9maWxlICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaEdldENhbGN1bGF0ZWRBdHRyaWJ1dGVGb3JQcm9maWxlID1cblx0XHRcInByb2ZpbGU6QmF0Y2hHZXRDYWxjdWxhdGVkQXR0cmlidXRlRm9yUHJvZmlsZVwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6QmF0Y2hHZXRQcm9maWxlICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaEdldFByb2ZpbGUgPSBcInByb2ZpbGU6QmF0Y2hHZXRQcm9maWxlXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6Q3JlYXRlQ2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uID1cblx0XHRcInByb2ZpbGU6Q3JlYXRlQ2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb25cIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpDcmVhdGVEb21haW4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURvbWFpbiA9IFwicHJvZmlsZTpDcmVhdGVEb21haW5cIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpDcmVhdGVEb21haW5MYXlvdXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURvbWFpbkxheW91dCA9IFwicHJvZmlsZTpDcmVhdGVEb21haW5MYXlvdXRcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpDcmVhdGVFdmVudFN0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXZlbnRTdHJlYW0gPSBcInByb2ZpbGU6Q3JlYXRlRXZlbnRTdHJlYW1cIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpDcmVhdGVFdmVudFRyaWdnZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV2ZW50VHJpZ2dlciA9IFwicHJvZmlsZTpDcmVhdGVFdmVudFRyaWdnZXJcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpDcmVhdGVJbnRlZ3JhdGlvbldvcmtmbG93ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVJbnRlZ3JhdGlvbldvcmtmbG93ID1cblx0XHRcInByb2ZpbGU6Q3JlYXRlSW50ZWdyYXRpb25Xb3JrZmxvd1wiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVByb2ZpbGUgPSBcInByb2ZpbGU6Q3JlYXRlUHJvZmlsZVwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVJlY29tbWVuZGVyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvbW1lbmRlciA9IFwicHJvZmlsZTpDcmVhdGVSZWNvbW1lbmRlclwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVJlY29tbWVuZGVyRmlsdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvbW1lbmRlckZpbHRlciA9IFwicHJvZmlsZTpDcmVhdGVSZWNvbW1lbmRlckZpbHRlclwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVJlY29tbWVuZGVyU2NoZW1hICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvbW1lbmRlclNjaGVtYSA9IFwicHJvZmlsZTpDcmVhdGVSZWNvbW1lbmRlclNjaGVtYVwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVNlZ21lbnREZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTZWdtZW50RGVmaW5pdGlvbiA9IFwicHJvZmlsZTpDcmVhdGVTZWdtZW50RGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVNlZ21lbnRFc3RpbWF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU2VnbWVudEVzdGltYXRlID0gXCJwcm9maWxlOkNyZWF0ZVNlZ21lbnRFc3RpbWF0ZVwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVNlZ21lbnRTbmFwc2hvdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU2VnbWVudFNuYXBzaG90ID0gXCJwcm9maWxlOkNyZWF0ZVNlZ21lbnRTbmFwc2hvdFwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVNuYXBzaG90ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTbmFwc2hvdCA9IFwicHJvZmlsZTpDcmVhdGVTbmFwc2hvdFwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkNyZWF0ZVVwbG9hZEpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVXBsb2FkSm9iID0gXCJwcm9maWxlOkNyZWF0ZVVwbG9hZEpvYlwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkRlbGV0ZUNhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbiA9XG5cdFx0XCJwcm9maWxlOkRlbGV0ZUNhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlRG9tYWluICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEb21haW4gPSBcInByb2ZpbGU6RGVsZXRlRG9tYWluXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlRG9tYWluTGF5b3V0ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEb21haW5MYXlvdXQgPSBcInByb2ZpbGU6RGVsZXRlRG9tYWluTGF5b3V0XCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlRG9tYWluT2JqZWN0VHlwZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRG9tYWluT2JqZWN0VHlwZSA9IFwicHJvZmlsZTpEZWxldGVEb21haW5PYmplY3RUeXBlXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlRXZlbnRTdHJlYW0gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV2ZW50U3RyZWFtID0gXCJwcm9maWxlOkRlbGV0ZUV2ZW50U3RyZWFtXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlRXZlbnRUcmlnZ2VyICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFdmVudFRyaWdnZXIgPSBcInByb2ZpbGU6RGVsZXRlRXZlbnRUcmlnZ2VyXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlSW50ZWdyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUludGVncmF0aW9uID0gXCJwcm9maWxlOkRlbGV0ZUludGVncmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlUHJvZmlsZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUHJvZmlsZSA9IFwicHJvZmlsZTpEZWxldGVQcm9maWxlXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlUHJvZmlsZUtleSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUHJvZmlsZUtleSA9IFwicHJvZmlsZTpEZWxldGVQcm9maWxlS2V5XCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlUHJvZmlsZU9iamVjdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUHJvZmlsZU9iamVjdCA9IFwicHJvZmlsZTpEZWxldGVQcm9maWxlT2JqZWN0XCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlUHJvZmlsZU9iamVjdFR5cGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVByb2ZpbGVPYmplY3RUeXBlID0gXCJwcm9maWxlOkRlbGV0ZVByb2ZpbGVPYmplY3RUeXBlXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlUmVjb21tZW5kZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY29tbWVuZGVyID0gXCJwcm9maWxlOkRlbGV0ZVJlY29tbWVuZGVyXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlUmVjb21tZW5kZXJGaWx0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY29tbWVuZGVyRmlsdGVyID0gXCJwcm9maWxlOkRlbGV0ZVJlY29tbWVuZGVyRmlsdGVyXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlUmVjb21tZW5kZXJTY2hlbWEgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY29tbWVuZGVyU2NoZW1hID0gXCJwcm9maWxlOkRlbGV0ZVJlY29tbWVuZGVyU2NoZW1hXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlU2VnbWVudERlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNlZ21lbnREZWZpbml0aW9uID0gXCJwcm9maWxlOkRlbGV0ZVNlZ21lbnREZWZpbml0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIHByb2ZpbGU6RGVsZXRlU2VnbWVudFN1YnNjcmlwdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU2VnbWVudFN1YnNjcmlwdGlvbiA9XG5cdFx0XCJwcm9maWxlOkRlbGV0ZVNlZ21lbnRTdWJzY3JpcHRpb25cIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpEZWxldGVXb3JrZmxvdyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlV29ya2Zsb3cgPSBcInByb2ZpbGU6RGVsZXRlV29ya2Zsb3dcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkRldGVjdFByb2ZpbGVPYmplY3RUeXBlICovXG5cdHN0YXRpYyByZWFkb25seSBEZXRlY3RQcm9maWxlT2JqZWN0VHlwZSA9IFwicHJvZmlsZTpEZXRlY3RQcm9maWxlT2JqZWN0VHlwZVwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOkRpc2Fzc29jaWF0ZVN0cmVhbUZvclNlZ21lbnRzICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVTdHJlYW1Gb3JTZWdtZW50cyA9XG5cdFx0XCJwcm9maWxlOkRpc2Fzc29jaWF0ZVN0cmVhbUZvclNlZ21lbnRzXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRBdXRvTWVyZ2luZ1ByZXZpZXcgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEF1dG9NZXJnaW5nUHJldmlldyA9IFwicHJvZmlsZTpHZXRBdXRvTWVyZ2luZ1ByZXZpZXdcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldENhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbiA9XG5cdFx0XCJwcm9maWxlOkdldENhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRDYWxjdWxhdGVkQXR0cmlidXRlRm9yUHJvZmlsZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q2FsY3VsYXRlZEF0dHJpYnV0ZUZvclByb2ZpbGUgPVxuXHRcdFwicHJvZmlsZTpHZXRDYWxjdWxhdGVkQXR0cmlidXRlRm9yUHJvZmlsZVwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0RG9tYWluICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXREb21haW4gPSBcInByb2ZpbGU6R2V0RG9tYWluXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXREb21haW5MYXlvdXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERvbWFpbkxheW91dCA9IFwicHJvZmlsZTpHZXREb21haW5MYXlvdXRcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldERvbWFpbk9iamVjdFR5cGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERvbWFpbk9iamVjdFR5cGUgPSBcInByb2ZpbGU6R2V0RG9tYWluT2JqZWN0VHlwZVwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0RXZlbnRTdHJlYW0gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEV2ZW50U3RyZWFtID0gXCJwcm9maWxlOkdldEV2ZW50U3RyZWFtXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRFdmVudFRyaWdnZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEV2ZW50VHJpZ2dlciA9IFwicHJvZmlsZTpHZXRFdmVudFRyaWdnZXJcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldElkZW50aXR5UmVzb2x1dGlvbkpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SWRlbnRpdHlSZXNvbHV0aW9uSm9iID1cblx0XHRcInByb2ZpbGU6R2V0SWRlbnRpdHlSZXNvbHV0aW9uSm9iXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SW50ZWdyYXRpb24gPSBcInByb2ZpbGU6R2V0SW50ZWdyYXRpb25cIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkdldE1hdGNoZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE1hdGNoZXMgPSBcInByb2ZpbGU6R2V0TWF0Y2hlc1wiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0T2JqZWN0VHlwZUF0dHJpYnV0ZVN0YXRpc3RpY3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE9iamVjdFR5cGVBdHRyaWJ1dGVTdGF0aXN0aWNzID1cblx0XHRcInByb2ZpbGU6R2V0T2JqZWN0VHlwZUF0dHJpYnV0ZVN0YXRpc3RpY3NcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFByb2ZpbGVIaXN0b3J5UmVjb3JkICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRQcm9maWxlSGlzdG9yeVJlY29yZCA9XG5cdFx0XCJwcm9maWxlOkdldFByb2ZpbGVIaXN0b3J5UmVjb3JkXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRQcm9maWxlSW5zaWdodHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFByb2ZpbGVJbnNpZ2h0cyA9IFwicHJvZmlsZTpHZXRQcm9maWxlSW5zaWdodHNcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFByb2ZpbGVPYmplY3RUeXBlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRQcm9maWxlT2JqZWN0VHlwZSA9IFwicHJvZmlsZTpHZXRQcm9maWxlT2JqZWN0VHlwZVwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZSA9XG5cdFx0XCJwcm9maWxlOkdldFByb2ZpbGVPYmplY3RUeXBlVGVtcGxhdGVcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFByb2ZpbGVSZWNvbW1lbmRhdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFByb2ZpbGVSZWNvbW1lbmRhdGlvbnMgPVxuXHRcdFwicHJvZmlsZTpHZXRQcm9maWxlUmVjb21tZW5kYXRpb25zXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRSZWNvbW1lbmRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVjb21tZW5kZXIgPSBcInByb2ZpbGU6R2V0UmVjb21tZW5kZXJcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFJlY29tbWVuZGVyRmlsdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZWNvbW1lbmRlckZpbHRlciA9IFwicHJvZmlsZTpHZXRSZWNvbW1lbmRlckZpbHRlclwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0UmVjb21tZW5kZXJTY2hlbWEgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlY29tbWVuZGVyU2NoZW1hID0gXCJwcm9maWxlOkdldFJlY29tbWVuZGVyU2NoZW1hXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRTZWdtZW50RGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U2VnbWVudERlZmluaXRpb24gPSBcInByb2ZpbGU6R2V0U2VnbWVudERlZmluaXRpb25cIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFNlZ21lbnRFc3RpbWF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U2VnbWVudEVzdGltYXRlID0gXCJwcm9maWxlOkdldFNlZ21lbnRFc3RpbWF0ZVwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0U2VnbWVudE1lbWJlcnNoaXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFNlZ21lbnRNZW1iZXJzaGlwID0gXCJwcm9maWxlOkdldFNlZ21lbnRNZW1iZXJzaGlwXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRTZWdtZW50U25hcHNob3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFNlZ21lbnRTbmFwc2hvdCA9IFwicHJvZmlsZTpHZXRTZWdtZW50U25hcHNob3RcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFNlZ21lbnRTdWJzY3JpcHRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFNlZ21lbnRTdWJzY3JpcHRpb24gPVxuXHRcdFwicHJvZmlsZTpHZXRTZWdtZW50U3Vic2NyaXB0aW9uXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpHZXRTaW1pbGFyUHJvZmlsZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFNpbWlsYXJQcm9maWxlcyA9IFwicHJvZmlsZTpHZXRTaW1pbGFyUHJvZmlsZXNcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFNuYXBzaG90ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRTbmFwc2hvdCA9IFwicHJvZmlsZTpHZXRTbmFwc2hvdFwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0U3RyZWFtRm9yU2VnbWVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFN0cmVhbUZvclNlZ21lbnRzID0gXCJwcm9maWxlOkdldFN0cmVhbUZvclNlZ21lbnRzXCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRVcGxvYWRKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFVwbG9hZEpvYiA9IFwicHJvZmlsZTpHZXRVcGxvYWRKb2JcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkdldFVwbG9hZEpvYlBhdGggKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFVwbG9hZEpvYlBhdGggPSBcInByb2ZpbGU6R2V0VXBsb2FkSm9iUGF0aFwiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6R2V0V29ya2Zsb3cgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFdvcmtmbG93ID0gXCJwcm9maWxlOkdldFdvcmtmbG93XCI7XG5cdC8qKiBbUmVhZF0gcHJvZmlsZTpHZXRXb3JrZmxvd1N0ZXBzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRXb3JrZmxvd1N0ZXBzID0gXCJwcm9maWxlOkdldFdvcmtmbG93U3RlcHNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3RBY2NvdW50SW50ZWdyYXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QWNjb3VudEludGVncmF0aW9ucyA9IFwicHJvZmlsZTpMaXN0QWNjb3VudEludGVncmF0aW9uc1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdENhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9ucyA9XG5cdFx0XCJwcm9maWxlOkxpc3RDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3RDYWxjdWxhdGVkQXR0cmlidXRlc0ZvclByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDYWxjdWxhdGVkQXR0cmlidXRlc0ZvclByb2ZpbGUgPVxuXHRcdFwicHJvZmlsZTpMaXN0Q2FsY3VsYXRlZEF0dHJpYnV0ZXNGb3JQcm9maWxlXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0RG9tYWluTGF5b3V0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERvbWFpbkxheW91dHMgPSBcInByb2ZpbGU6TGlzdERvbWFpbkxheW91dHNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3REb21haW5PYmplY3RUeXBlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERvbWFpbk9iamVjdFR5cGVzID0gXCJwcm9maWxlOkxpc3REb21haW5PYmplY3RUeXBlc1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdERvbWFpbk9iamVjdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REb21haW5PYmplY3RzID0gXCJwcm9maWxlOkxpc3REb21haW5PYmplY3RzXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0RG9tYWlucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERvbWFpbnMgPSBcInByb2ZpbGU6TGlzdERvbWFpbnNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3RFdmVudFN0cmVhbXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFdmVudFN0cmVhbXMgPSBcInByb2ZpbGU6TGlzdEV2ZW50U3RyZWFtc1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdEV2ZW50VHJpZ2dlcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFdmVudFRyaWdnZXJzID0gXCJwcm9maWxlOkxpc3RFdmVudFRyaWdnZXJzXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0SWRlbnRpdHlSZXNvbHV0aW9uSm9icyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdElkZW50aXR5UmVzb2x1dGlvbkpvYnMgPVxuXHRcdFwicHJvZmlsZTpMaXN0SWRlbnRpdHlSZXNvbHV0aW9uSm9ic1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdEludGVncmF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEludGVncmF0aW9ucyA9IFwicHJvZmlsZTpMaXN0SW50ZWdyYXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZVZhbHVlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE9iamVjdFR5cGVBdHRyaWJ1dGVWYWx1ZXMgPVxuXHRcdFwicHJvZmlsZTpMaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZVZhbHVlc1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdE9iamVjdFR5cGVBdHRyaWJ1dGVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZXMgPSBcInByb2ZpbGU6TGlzdE9iamVjdFR5cGVBdHRyaWJ1dGVzXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0UHJvZmlsZUF0dHJpYnV0ZVZhbHVlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFByb2ZpbGVBdHRyaWJ1dGVWYWx1ZXMgPVxuXHRcdFwicHJvZmlsZTpMaXN0UHJvZmlsZUF0dHJpYnV0ZVZhbHVlc1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdFByb2ZpbGVIaXN0b3J5UmVjb3JkcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFByb2ZpbGVIaXN0b3J5UmVjb3JkcyA9XG5cdFx0XCJwcm9maWxlOkxpc3RQcm9maWxlSGlzdG9yeVJlY29yZHNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3RQcm9maWxlT2JqZWN0VHlwZVRlbXBsYXRlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFByb2ZpbGVPYmplY3RUeXBlVGVtcGxhdGVzID1cblx0XHRcInByb2ZpbGU6TGlzdFByb2ZpbGVPYmplY3RUeXBlVGVtcGxhdGVzXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0UHJvZmlsZU9iamVjdFR5cGVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UHJvZmlsZU9iamVjdFR5cGVzID0gXCJwcm9maWxlOkxpc3RQcm9maWxlT2JqZWN0VHlwZXNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3RQcm9maWxlT2JqZWN0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFByb2ZpbGVPYmplY3RzID0gXCJwcm9maWxlOkxpc3RQcm9maWxlT2JqZWN0c1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdFJlY29tbWVuZGVyRmlsdGVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY29tbWVuZGVyRmlsdGVycyA9IFwicHJvZmlsZTpMaXN0UmVjb21tZW5kZXJGaWx0ZXJzXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0UmVjb21tZW5kZXJSZWNpcGVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb21tZW5kZXJSZWNpcGVzID0gXCJwcm9maWxlOkxpc3RSZWNvbW1lbmRlclJlY2lwZXNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3RSZWNvbW1lbmRlclNjaGVtYXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvbW1lbmRlclNjaGVtYXMgPSBcInByb2ZpbGU6TGlzdFJlY29tbWVuZGVyU2NoZW1hc1wiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdFJlY29tbWVuZGVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY29tbWVuZGVycyA9IFwicHJvZmlsZTpMaXN0UmVjb21tZW5kZXJzXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0UnVsZUJhc2VkTWF0Y2hlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJ1bGVCYXNlZE1hdGNoZXMgPSBcInByb2ZpbGU6TGlzdFJ1bGVCYXNlZE1hdGNoZXNcIjtcblx0LyoqIFtMaXN0XSBwcm9maWxlOkxpc3RTZWdtZW50RGVmaW5pdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTZWdtZW50RGVmaW5pdGlvbnMgPSBcInByb2ZpbGU6TGlzdFNlZ21lbnREZWZpbml0aW9uc1wiO1xuXHQvKiogW1JlYWRdIHByb2ZpbGU6TGlzdFNlZ21lbnRTdWJzY3JpcHRpb25FdmVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTZWdtZW50U3Vic2NyaXB0aW9uRXZlbnRzID1cblx0XHRcInByb2ZpbGU6TGlzdFNlZ21lbnRTdWJzY3JpcHRpb25FdmVudHNcIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcInByb2ZpbGU6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW0xpc3RdIHByb2ZpbGU6TGlzdFVwbG9hZEpvYnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RVcGxvYWRKb2JzID0gXCJwcm9maWxlOkxpc3RVcGxvYWRKb2JzXCI7XG5cdC8qKiBbTGlzdF0gcHJvZmlsZTpMaXN0V29ya2Zsb3dzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0V29ya2Zsb3dzID0gXCJwcm9maWxlOkxpc3RXb3JrZmxvd3NcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpNZXJnZVByb2ZpbGVzICovXG5cdHN0YXRpYyByZWFkb25seSBNZXJnZVByb2ZpbGVzID0gXCJwcm9maWxlOk1lcmdlUHJvZmlsZXNcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpQdXREb21haW5PYmplY3RUeXBlICovXG5cdHN0YXRpYyByZWFkb25seSBQdXREb21haW5PYmplY3RUeXBlID0gXCJwcm9maWxlOlB1dERvbWFpbk9iamVjdFR5cGVcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpQdXRJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0SW50ZWdyYXRpb24gPSBcInByb2ZpbGU6UHV0SW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpQdXRQcm9maWxlT2JqZWN0ICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRQcm9maWxlT2JqZWN0ID0gXCJwcm9maWxlOlB1dFByb2ZpbGVPYmplY3RcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpQdXRQcm9maWxlT2JqZWN0VHlwZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UHJvZmlsZU9iamVjdFR5cGUgPSBcInByb2ZpbGU6UHV0UHJvZmlsZU9iamVjdFR5cGVcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpQdXRTZWdtZW50U3Vic2NyaXB0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRTZWdtZW50U3Vic2NyaXB0aW9uID0gXCJwcm9maWxlOlB1dFNlZ21lbnRTdWJzY3JpcHRpb25cIjtcblx0LyoqIFtSZWFkXSBwcm9maWxlOlNlYXJjaFByb2ZpbGVzICovXG5cdHN0YXRpYyByZWFkb25seSBTZWFyY2hQcm9maWxlcyA9IFwicHJvZmlsZTpTZWFyY2hQcm9maWxlc1wiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlN0YXJ0UmVjb21tZW5kZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVjb21tZW5kZXIgPSBcInByb2ZpbGU6U3RhcnRSZWNvbW1lbmRlclwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlN0YXJ0VXBsb2FkSm9iICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFVwbG9hZEpvYiA9IFwicHJvZmlsZTpTdGFydFVwbG9hZEpvYlwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlN0b3BSZWNvbW1lbmRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFJlY29tbWVuZGVyID0gXCJwcm9maWxlOlN0b3BSZWNvbW1lbmRlclwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlN0b3BVcGxvYWRKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BVcGxvYWRKb2IgPSBcInByb2ZpbGU6U3RvcFVwbG9hZEpvYlwiO1xuXHQvKiogW1RhZ2dpbmddIHByb2ZpbGU6VGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlID0gXCJwcm9maWxlOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbVGFnZ2luZ10gcHJvZmlsZTpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJwcm9maWxlOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gcHJvZmlsZTpVcGRhdGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb24gPVxuXHRcdFwicHJvZmlsZTpVcGRhdGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlVwZGF0ZURvbWFpbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRG9tYWluID0gXCJwcm9maWxlOlVwZGF0ZURvbWFpblwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlVwZGF0ZURvbWFpbkxheW91dCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRG9tYWluTGF5b3V0ID0gXCJwcm9maWxlOlVwZGF0ZURvbWFpbkxheW91dFwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlVwZGF0ZUV2ZW50VHJpZ2dlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXZlbnRUcmlnZ2VyID0gXCJwcm9maWxlOlVwZGF0ZUV2ZW50VHJpZ2dlclwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlVwZGF0ZVByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVByb2ZpbGUgPSBcInByb2ZpbGU6VXBkYXRlUHJvZmlsZVwiO1xuXHQvKiogW1dyaXRlXSBwcm9maWxlOlVwZGF0ZVJlY29tbWVuZGVyICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZWNvbW1lbmRlciA9IFwicHJvZmlsZTpVcGRhdGVSZWNvbW1lbmRlclwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFByb2ZpbGVBY3Rpb25zLkJhdGNoR2V0Q2FsY3VsYXRlZEF0dHJpYnV0ZUZvclByb2ZpbGUsXG5cdFx0UHJvZmlsZUFjdGlvbnMuQmF0Y2hHZXRQcm9maWxlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkRldGVjdFByb2ZpbGVPYmplY3RUeXBlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldEF1dG9NZXJnaW5nUHJldmlldyxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRDYWxjdWxhdGVkQXR0cmlidXRlRm9yUHJvZmlsZSxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXREb21haW4sXG5cdFx0UHJvZmlsZUFjdGlvbnMuYWN0aW9uR2V0RG9tYWluTGF5b3V0LFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldERvbWFpbk9iamVjdFR5cGUsXG5cdFx0UHJvZmlsZUFjdGlvbnMuYWN0aW9uR2V0RXZlbnRTdHJlYW0sXG5cdFx0UHJvZmlsZUFjdGlvbnMuYWN0aW9uR2V0RXZlbnRUcmlnZ2VyLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldElkZW50aXR5UmVzb2x1dGlvbkpvYixcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRJbnRlZ3JhdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRPYmplY3RUeXBlQXR0cmlidXRlU3RhdGlzdGljcyxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRQcm9maWxlSGlzdG9yeVJlY29yZCxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRQcm9maWxlSW5zaWdodHMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuYWN0aW9uR2V0UHJvZmlsZU9iamVjdFR5cGUsXG5cdFx0UHJvZmlsZUFjdGlvbnMuYWN0aW9uR2V0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZSxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRQcm9maWxlUmVjb21tZW5kYXRpb25zLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldFJlY29tbWVuZGVyLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldFJlY29tbWVuZGVyRmlsdGVyLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldFJlY29tbWVuZGVyU2NoZW1hLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldFNlZ21lbnREZWZpbml0aW9uLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldFNlZ21lbnRFc3RpbWF0ZSxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRTZWdtZW50TWVtYmVyc2hpcCxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRTZWdtZW50U25hcHNob3QsXG5cdFx0UHJvZmlsZUFjdGlvbnMuYWN0aW9uR2V0U2VnbWVudFN1YnNjcmlwdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRTbmFwc2hvdCxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRTdHJlYW1Gb3JTZWdtZW50cyxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRVcGxvYWRKb2IsXG5cdFx0UHJvZmlsZUFjdGlvbnMuYWN0aW9uR2V0VXBsb2FkSm9iUGF0aCxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRXb3JrZmxvdyxcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRXb3JrZmxvd1N0ZXBzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3RTZWdtZW50U3Vic2NyaXB0aW9uRXZlbnRzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdFx0UHJvZmlsZUFjdGlvbnMuU2VhcmNoUHJvZmlsZXMsXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0UHJvZmlsZUFjdGlvbnMuQWRkUHJvZmlsZUtleSxcblx0XHRQcm9maWxlQWN0aW9ucy5Bc3NvY2lhdGVTdHJlYW1Gb3JTZWdtZW50cyxcblx0XHRQcm9maWxlQWN0aW9ucy5DcmVhdGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5DcmVhdGVEb21haW4sXG5cdFx0UHJvZmlsZUFjdGlvbnMuQ3JlYXRlRG9tYWluTGF5b3V0LFxuXHRcdFByb2ZpbGVBY3Rpb25zLkNyZWF0ZUV2ZW50U3RyZWFtLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkNyZWF0ZUV2ZW50VHJpZ2dlcixcblx0XHRQcm9maWxlQWN0aW9ucy5DcmVhdGVJbnRlZ3JhdGlvbldvcmtmbG93LFxuXHRcdFByb2ZpbGVBY3Rpb25zLkNyZWF0ZVByb2ZpbGUsXG5cdFx0UHJvZmlsZUFjdGlvbnMuQ3JlYXRlUmVjb21tZW5kZXIsXG5cdFx0UHJvZmlsZUFjdGlvbnMuQ3JlYXRlUmVjb21tZW5kZXJGaWx0ZXIsXG5cdFx0UHJvZmlsZUFjdGlvbnMuQ3JlYXRlUmVjb21tZW5kZXJTY2hlbWEsXG5cdFx0UHJvZmlsZUFjdGlvbnMuQ3JlYXRlU2VnbWVudERlZmluaXRpb24sXG5cdFx0UHJvZmlsZUFjdGlvbnMuQ3JlYXRlU2VnbWVudEVzdGltYXRlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkNyZWF0ZVNlZ21lbnRTbmFwc2hvdCxcblx0XHRQcm9maWxlQWN0aW9ucy5DcmVhdGVTbmFwc2hvdCxcblx0XHRQcm9maWxlQWN0aW9ucy5DcmVhdGVVcGxvYWRKb2IsXG5cdFx0UHJvZmlsZUFjdGlvbnMuRGVsZXRlQ2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb24sXG5cdFx0UHJvZmlsZUFjdGlvbnMuRGVsZXRlRG9tYWluLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkRlbGV0ZURvbWFpbkxheW91dCxcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVEb21haW5PYmplY3RUeXBlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkRlbGV0ZUV2ZW50U3RyZWFtLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkRlbGV0ZUV2ZW50VHJpZ2dlcixcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVJbnRlZ3JhdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVQcm9maWxlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkRlbGV0ZVByb2ZpbGVLZXksXG5cdFx0UHJvZmlsZUFjdGlvbnMuRGVsZXRlUHJvZmlsZU9iamVjdCxcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVQcm9maWxlT2JqZWN0VHlwZSxcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVSZWNvbW1lbmRlcixcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVSZWNvbW1lbmRlckZpbHRlcixcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVSZWNvbW1lbmRlclNjaGVtYSxcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVTZWdtZW50RGVmaW5pdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5EZWxldGVTZWdtZW50U3Vic2NyaXB0aW9uLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkRlbGV0ZVdvcmtmbG93LFxuXHRcdFByb2ZpbGVBY3Rpb25zLkRpc2Fzc29jaWF0ZVN0cmVhbUZvclNlZ21lbnRzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLk1lcmdlUHJvZmlsZXMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuUHV0RG9tYWluT2JqZWN0VHlwZSxcblx0XHRQcm9maWxlQWN0aW9ucy5QdXRJbnRlZ3JhdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5QdXRQcm9maWxlT2JqZWN0LFxuXHRcdFByb2ZpbGVBY3Rpb25zLlB1dFByb2ZpbGVPYmplY3RUeXBlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLlB1dFNlZ21lbnRTdWJzY3JpcHRpb24sXG5cdFx0UHJvZmlsZUFjdGlvbnMuU3RhcnRSZWNvbW1lbmRlcixcblx0XHRQcm9maWxlQWN0aW9ucy5TdGFydFVwbG9hZEpvYixcblx0XHRQcm9maWxlQWN0aW9ucy5TdG9wUmVjb21tZW5kZXIsXG5cdFx0UHJvZmlsZUFjdGlvbnMuU3RvcFVwbG9hZEpvYixcblx0XHRQcm9maWxlQWN0aW9ucy5VcGRhdGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbixcblx0XHRQcm9maWxlQWN0aW9ucy5VcGRhdGVEb21haW4sXG5cdFx0UHJvZmlsZUFjdGlvbnMuVXBkYXRlRG9tYWluTGF5b3V0LFxuXHRcdFByb2ZpbGVBY3Rpb25zLlVwZGF0ZUV2ZW50VHJpZ2dlcixcblx0XHRQcm9maWxlQWN0aW9ucy5VcGRhdGVQcm9maWxlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLlVwZGF0ZVJlY29tbWVuZGVyLFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRQcm9maWxlQWN0aW9ucy5hY3Rpb25HZXRNYXRjaGVzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLmFjdGlvbkdldFNpbWlsYXJQcm9maWxlcyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0QWNjb3VudEludGVncmF0aW9ucyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0Q2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb25zLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3RDYWxjdWxhdGVkQXR0cmlidXRlc0ZvclByb2ZpbGUsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdERvbWFpbkxheW91dHMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdERvbWFpbk9iamVjdFR5cGVzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3REb21haW5PYmplY3RzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3REb21haW5zLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3RFdmVudFN0cmVhbXMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdEV2ZW50VHJpZ2dlcnMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdElkZW50aXR5UmVzb2x1dGlvbkpvYnMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdEludGVncmF0aW9ucyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZVZhbHVlcyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZXMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdFByb2ZpbGVBdHRyaWJ1dGVWYWx1ZXMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdFByb2ZpbGVIaXN0b3J5UmVjb3Jkcyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZXMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdFByb2ZpbGVPYmplY3RUeXBlcyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0UHJvZmlsZU9iamVjdHMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdFJlY29tbWVuZGVyRmlsdGVycyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0UmVjb21tZW5kZXJSZWNpcGVzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3RSZWNvbW1lbmRlclNjaGVtYXMsXG5cdFx0UHJvZmlsZUFjdGlvbnMuTGlzdFJlY29tbWVuZGVycyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0UnVsZUJhc2VkTWF0Y2hlcyxcblx0XHRQcm9maWxlQWN0aW9ucy5MaXN0U2VnbWVudERlZmluaXRpb25zLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3RVcGxvYWRKb2JzLFxuXHRcdFByb2ZpbGVBY3Rpb25zLkxpc3RXb3JrZmxvd3MsXG5cdF07XG5cdC8qKiBBbGwgcGVybWlzc2lvbi1tYW5hZ2VtZW50LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxQZXJtaXNzaW9uTWFuYWdlbWVudEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBBbGwgdGFnZ2luZy1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsVGFnZ2luZ0FjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFByb2ZpbGVBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdFByb2ZpbGVBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjYWxjdWxhdGVkLWF0dHJpYnV0ZXMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVDYWxjdWxhdGVkQXR0cmlidXRlc0FyblByb3BzIHtcblx0LyoqIFRoZSBEb21haW5OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2FsY3VsYXRlZEF0dHJpYnV0ZU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhbGN1bGF0ZWRBdHRyaWJ1dGVOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY2FsY3VsYXRlZC1hdHRyaWJ1dGVzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlQ2FsY3VsYXRlZEF0dHJpYnV0ZXNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2FsY3VsYXRlZEF0dHJpYnV0ZU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjYWxjdWxhdGVkQXR0cmlidXRlTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZG9tYWluLW9iamVjdC10eXBlcyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZURvbWFpbk9iamVjdFR5cGVzQXJuUHJvcHMge1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBPYmplY3RUeXBlTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgb2JqZWN0VHlwZU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkb21haW4tb2JqZWN0LXR5cGVzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlRG9tYWluT2JqZWN0VHlwZXNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgT2JqZWN0VHlwZU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBvYmplY3RUeXBlTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZG9tYWlucyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZURvbWFpbnNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRG9tYWluTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGRvbWFpbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVEb21haW5zQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEb21haW5OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZXZlbnQtc3RyZWFtcyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZUV2ZW50U3RyZWFtc0FyblByb3BzIHtcblx0LyoqIFRoZSBEb21haW5OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgRXZlbnRTdHJlYW1OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBldmVudFN0cmVhbU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBldmVudC1zdHJlYW1zIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlRXZlbnRTdHJlYW1zQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEb21haW5OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIEV2ZW50U3RyZWFtTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGV2ZW50U3RyZWFtTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZXZlbnQtdHJpZ2dlcnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVFdmVudFRyaWdnZXJzQXJuUHJvcHMge1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBFdmVudFRyaWdnZXJOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBldmVudFRyaWdnZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZXZlbnQtdHJpZ2dlcnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVFdmVudFRyaWdnZXJzQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEb21haW5OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIEV2ZW50VHJpZ2dlck5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBldmVudFRyaWdnZXJOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBpbnRlZ3JhdGlvbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVJbnRlZ3JhdGlvbnNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRG9tYWluTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVyaSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdXJpOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgaW50ZWdyYXRpb25zIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlSW50ZWdyYXRpb25zQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEb21haW5OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFVyaSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHVyaTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgbGF5b3V0cyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZUxheW91dHNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRG9tYWluTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIExheW91dERlZmluaXRpb25OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBsYXlvdXREZWZpbml0aW9uTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGxheW91dHMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVMYXlvdXRzQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEb21haW5OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIExheW91dERlZmluaXRpb25OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbGF5b3V0RGVmaW5pdGlvbk5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIG9iamVjdC10eXBlcyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZU9iamVjdFR5cGVzQXJuUHJvcHMge1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBPYmplY3RUeXBlTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgb2JqZWN0VHlwZU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBvYmplY3QtdHlwZXMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVPYmplY3RUeXBlc0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRG9tYWluTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBPYmplY3RUeXBlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IG9iamVjdFR5cGVOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSByZWNvbW1lbmRlci1maWx0ZXJzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlUmVjb21tZW5kZXJGaWx0ZXJzQXJuUHJvcHMge1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBSZWNvbW1lbmRlckZpbHRlck5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlY29tbWVuZGVyRmlsdGVyTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHJlY29tbWVuZGVyLWZpbHRlcnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVSZWNvbW1lbmRlckZpbHRlcnNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVjb21tZW5kZXJGaWx0ZXJOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVjb21tZW5kZXJGaWx0ZXJOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSByZWNvbW1lbmRlci1zY2hlbWFzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlUmVjb21tZW5kZXJTY2hlbWFzQXJuUHJvcHMge1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBSZWNvbW1lbmRlclNjaGVtYU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlY29tbWVuZGVyU2NoZW1hTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHJlY29tbWVuZGVyLXNjaGVtYXMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVSZWNvbW1lbmRlclNjaGVtYXNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVjb21tZW5kZXJTY2hlbWFOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVjb21tZW5kZXJTY2hlbWFOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSByZWNvbW1lbmRlcnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVSZWNvbW1lbmRlcnNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRG9tYWluTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFJlY29tbWVuZGVyVHlwZU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlY29tbWVuZGVyVHlwZU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSByZWNvbW1lbmRlcnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVSZWNvbW1lbmRlcnNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERvbWFpbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVjb21tZW5kZXJUeXBlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlY29tbWVuZGVyVHlwZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHNlZ21lbnQtZGVmaW5pdGlvbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVTZWdtZW50RGVmaW5pdGlvbnNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRG9tYWluTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFNlZ21lbnREZWZpbml0aW9uTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc2VnbWVudERlZmluaXRpb25OYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgc2VnbWVudC1kZWZpbml0aW9ucyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZVNlZ21lbnREZWZpbml0aW9uc0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRG9tYWluTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBTZWdtZW50RGVmaW5pdGlvbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzZWdtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZztcbn1cblxuY29uc3QgQ2FsY3VsYXRlZEF0dHJpYnV0ZXNBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cHJvZmlsZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRvbWFpbnNcXC8oPzxkb21haW5OYW1lPlteOi8/XSspXFwvY2FsY3VsYXRlZC1hdHRyaWJ1dGVzXFwvKD88Y2FsY3VsYXRlZEF0dHJpYnV0ZU5hbWU+W146Lz9dKykkLztcbmNvbnN0IERvbWFpbk9iamVjdFR5cGVzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnByb2ZpbGU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkb21haW5zXFwvKD88ZG9tYWluTmFtZT5bXjovP10rKVxcL2RvbWFpbi1vYmplY3QtdHlwZXNcXC8oPzxvYmplY3RUeXBlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgRG9tYWluc0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwcm9maWxlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZG9tYWluc1xcLyg/PGRvbWFpbk5hbWU+W146Lz9dKykkLztcbmNvbnN0IEV2ZW50U3RyZWFtc0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwcm9maWxlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZG9tYWluc1xcLyg/PGRvbWFpbk5hbWU+W146Lz9dKylcXC9ldmVudC1zdHJlYW1zXFwvKD88ZXZlbnRTdHJlYW1OYW1lPlteOi8/XSspJC87XG5jb25zdCBFdmVudFRyaWdnZXJzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnByb2ZpbGU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkb21haW5zXFwvKD88ZG9tYWluTmFtZT5bXjovP10rKVxcL2V2ZW50LXRyaWdnZXJzXFwvKD88ZXZlbnRUcmlnZ2VyTmFtZT5bXjovP10rKSQvO1xuY29uc3QgSW50ZWdyYXRpb25zQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnByb2ZpbGU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkb21haW5zXFwvKD88ZG9tYWluTmFtZT5bXjovP10rKVxcL2ludGVncmF0aW9uc1xcLyg/PHVyaT5bXjovP10rKSQvO1xuY29uc3QgTGF5b3V0c0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwcm9maWxlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZG9tYWluc1xcLyg/PGRvbWFpbk5hbWU+W146Lz9dKylcXC9sYXlvdXRzXFwvKD88bGF5b3V0RGVmaW5pdGlvbk5hbWU+W146Lz9dKykkLztcbmNvbnN0IE9iamVjdFR5cGVzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnByb2ZpbGU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkb21haW5zXFwvKD88ZG9tYWluTmFtZT5bXjovP10rKVxcL29iamVjdC10eXBlc1xcLyg/PG9iamVjdFR5cGVOYW1lPlteOi8/XSspJC87XG5jb25zdCBSZWNvbW1lbmRlckZpbHRlcnNBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cHJvZmlsZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRvbWFpbnNcXC8oPzxkb21haW5OYW1lPlteOi8/XSspXFwvcmVjb21tZW5kZXItZmlsdGVyc1xcLyg/PHJlY29tbWVuZGVyRmlsdGVyTmFtZT5bXjovP10rKSQvO1xuY29uc3QgUmVjb21tZW5kZXJTY2hlbWFzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnByb2ZpbGU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkb21haW5zXFwvKD88ZG9tYWluTmFtZT5bXjovP10rKVxcL3JlY29tbWVuZGVyLXNjaGVtYXNcXC8oPzxyZWNvbW1lbmRlclNjaGVtYU5hbWU+W146Lz9dKykkLztcbmNvbnN0IFJlY29tbWVuZGVyc0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwcm9maWxlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZG9tYWluc1xcLyg/PGRvbWFpbk5hbWU+W146Lz9dKylcXC9yZWNvbW1lbmRlcnNcXC8oPzxyZWNvbW1lbmRlclR5cGVOYW1lPlteOi8/XSspJC87XG5jb25zdCBTZWdtZW50RGVmaW5pdGlvbnNBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cHJvZmlsZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRvbWFpbnNcXC8oPzxkb21haW5OYW1lPlteOi8/XSspXFwvc2VnbWVudC1kZWZpbml0aW9uc1xcLyg/PHNlZ21lbnREZWZpbml0aW9uTmFtZT5bXjovP10rKSQvO1xuXG4vKipcbiAqIEFSTiBidWlsZGVycywgdmFsaWRhdG9ycywgYW5kIHBhcnNlcnMgZm9yIHByb2ZpbGUgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgUHJvZmlsZVJlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY2FsY3VsYXRlZC1hdHRyaWJ1dGVzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNhbGN1bGF0ZWRBdHRyaWJ1dGVzKFxuXHRcdHByb3BzOiBQcm9maWxlQ2FsY3VsYXRlZEF0dHJpYnV0ZXNBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwcm9maWxlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRvbWFpbnMvJHtwcm9wcy5kb21haW5OYW1lfS9jYWxjdWxhdGVkLWF0dHJpYnV0ZXMvJHtwcm9wcy5jYWxjdWxhdGVkQXR0cmlidXRlTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY2FsY3VsYXRlZC1hdHRyaWJ1dGVzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDYWxjdWxhdGVkQXR0cmlidXRlc0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDYWxjdWxhdGVkQXR0cmlidXRlc0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjYWxjdWxhdGVkLWF0dHJpYnV0ZXMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ2FsY3VsYXRlZEF0dHJpYnV0ZXNBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFByb2ZpbGVDYWxjdWxhdGVkQXR0cmlidXRlc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ2FsY3VsYXRlZEF0dHJpYnV0ZXNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2FsY3VsYXRlZC1hdHRyaWJ1dGVzIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRvbWFpbk5hbWU6IG1hdGNoLmdyb3VwcyEuZG9tYWluTmFtZSxcblx0XHRcdGNhbGN1bGF0ZWRBdHRyaWJ1dGVOYW1lOiBtYXRjaC5ncm91cHMhLmNhbGN1bGF0ZWRBdHRyaWJ1dGVOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRvbWFpbi1vYmplY3QtdHlwZXMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZG9tYWluT2JqZWN0VHlwZXMocHJvcHM6IFByb2ZpbGVEb21haW5PYmplY3RUeXBlc0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwcm9maWxlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRvbWFpbnMvJHtwcm9wcy5kb21haW5OYW1lfS9kb21haW4tb2JqZWN0LXR5cGVzLyR7cHJvcHMub2JqZWN0VHlwZU5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRvbWFpbi1vYmplY3QtdHlwZXMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERvbWFpbk9iamVjdFR5cGVzQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERvbWFpbk9iamVjdFR5cGVzQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGRvbWFpbi1vYmplY3QtdHlwZXMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRG9tYWluT2JqZWN0VHlwZXNBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFByb2ZpbGVEb21haW5PYmplY3RUeXBlc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRG9tYWluT2JqZWN0VHlwZXNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZG9tYWluLW9iamVjdC10eXBlcyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkb21haW5OYW1lOiBtYXRjaC5ncm91cHMhLmRvbWFpbk5hbWUsXG5cdFx0XHRvYmplY3RUeXBlTmFtZTogbWF0Y2guZ3JvdXBzIS5vYmplY3RUeXBlTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBkb21haW5zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGRvbWFpbnMocHJvcHM6IFByb2ZpbGVEb21haW5zQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnByb2ZpbGU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZG9tYWlucy8ke3Byb3BzLmRvbWFpbk5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRvbWFpbnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERvbWFpbnNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRG9tYWluc0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkb21haW5zIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURvbWFpbnNBcm4oYXJuOiBzdHJpbmcpOiBQcm9maWxlRG9tYWluc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRG9tYWluc0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkb21haW5zIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRvbWFpbk5hbWU6IG1hdGNoLmdyb3VwcyEuZG9tYWluTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBldmVudC1zdHJlYW1zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGV2ZW50U3RyZWFtcyhwcm9wczogUHJvZmlsZUV2ZW50U3RyZWFtc0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwcm9maWxlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRvbWFpbnMvJHtwcm9wcy5kb21haW5OYW1lfS9ldmVudC1zdHJlYW1zLyR7cHJvcHMuZXZlbnRTdHJlYW1OYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBldmVudC1zdHJlYW1zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRFdmVudFN0cmVhbXNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRXZlbnRTdHJlYW1zQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGV2ZW50LXN0cmVhbXMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRXZlbnRTdHJlYW1zQXJuKGFybjogc3RyaW5nKTogUHJvZmlsZUV2ZW50U3RyZWFtc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRXZlbnRTdHJlYW1zQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGV2ZW50LXN0cmVhbXMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZG9tYWluTmFtZTogbWF0Y2guZ3JvdXBzIS5kb21haW5OYW1lLFxuXHRcdFx0ZXZlbnRTdHJlYW1OYW1lOiBtYXRjaC5ncm91cHMhLmV2ZW50U3RyZWFtTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBldmVudC10cmlnZ2VycyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBldmVudFRyaWdnZXJzKHByb3BzOiBQcm9maWxlRXZlbnRUcmlnZ2Vyc0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwcm9maWxlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRvbWFpbnMvJHtwcm9wcy5kb21haW5OYW1lfS9ldmVudC10cmlnZ2Vycy8ke3Byb3BzLmV2ZW50VHJpZ2dlck5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGV2ZW50LXRyaWdnZXJzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRFdmVudFRyaWdnZXJzQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEV2ZW50VHJpZ2dlcnNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZXZlbnQtdHJpZ2dlcnMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRXZlbnRUcmlnZ2Vyc0Fybihhcm46IHN0cmluZyk6IFByb2ZpbGVFdmVudFRyaWdnZXJzQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBFdmVudFRyaWdnZXJzQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGV2ZW50LXRyaWdnZXJzIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRvbWFpbk5hbWU6IG1hdGNoLmdyb3VwcyEuZG9tYWluTmFtZSxcblx0XHRcdGV2ZW50VHJpZ2dlck5hbWU6IG1hdGNoLmdyb3VwcyEuZXZlbnRUcmlnZ2VyTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBpbnRlZ3JhdGlvbnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaW50ZWdyYXRpb25zKHByb3BzOiBQcm9maWxlSW50ZWdyYXRpb25zQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnByb2ZpbGU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZG9tYWlucy8ke3Byb3BzLmRvbWFpbk5hbWV9L2ludGVncmF0aW9ucy8ke3Byb3BzLnVyaX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgaW50ZWdyYXRpb25zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRJbnRlZ3JhdGlvbnNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSW50ZWdyYXRpb25zQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGludGVncmF0aW9ucyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VJbnRlZ3JhdGlvbnNBcm4oYXJuOiBzdHJpbmcpOiBQcm9maWxlSW50ZWdyYXRpb25zQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBJbnRlZ3JhdGlvbnNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaW50ZWdyYXRpb25zIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRvbWFpbk5hbWU6IG1hdGNoLmdyb3VwcyEuZG9tYWluTmFtZSxcblx0XHRcdHVyaTogbWF0Y2guZ3JvdXBzIS51cmksXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgbGF5b3V0cyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBsYXlvdXRzKHByb3BzOiBQcm9maWxlTGF5b3V0c0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwcm9maWxlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRvbWFpbnMvJHtwcm9wcy5kb21haW5OYW1lfS9sYXlvdXRzLyR7cHJvcHMubGF5b3V0RGVmaW5pdGlvbk5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGxheW91dHMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZExheW91dHNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTGF5b3V0c0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBsYXlvdXRzIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUxheW91dHNBcm4oYXJuOiBzdHJpbmcpOiBQcm9maWxlTGF5b3V0c0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gTGF5b3V0c0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBsYXlvdXRzIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRvbWFpbk5hbWU6IG1hdGNoLmdyb3VwcyEuZG9tYWluTmFtZSxcblx0XHRcdGxheW91dERlZmluaXRpb25OYW1lOiBtYXRjaC5ncm91cHMhLmxheW91dERlZmluaXRpb25OYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIG9iamVjdC10eXBlcyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBvYmplY3RUeXBlcyhwcm9wczogUHJvZmlsZU9iamVjdFR5cGVzQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnByb2ZpbGU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZG9tYWlucy8ke3Byb3BzLmRvbWFpbk5hbWV9L29iamVjdC10eXBlcy8ke3Byb3BzLm9iamVjdFR5cGVOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBvYmplY3QtdHlwZXMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZE9iamVjdFR5cGVzQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE9iamVjdFR5cGVzQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIG9iamVjdC10eXBlcyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VPYmplY3RUeXBlc0Fybihhcm46IHN0cmluZyk6IFByb2ZpbGVPYmplY3RUeXBlc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gT2JqZWN0VHlwZXNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgb2JqZWN0LXR5cGVzIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRvbWFpbk5hbWU6IG1hdGNoLmdyb3VwcyEuZG9tYWluTmFtZSxcblx0XHRcdG9iamVjdFR5cGVOYW1lOiBtYXRjaC5ncm91cHMhLm9iamVjdFR5cGVOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHJlY29tbWVuZGVyLWZpbHRlcnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcmVjb21tZW5kZXJGaWx0ZXJzKHByb3BzOiBQcm9maWxlUmVjb21tZW5kZXJGaWx0ZXJzQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnByb2ZpbGU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZG9tYWlucy8ke3Byb3BzLmRvbWFpbk5hbWV9L3JlY29tbWVuZGVyLWZpbHRlcnMvJHtwcm9wcy5yZWNvbW1lbmRlckZpbHRlck5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHJlY29tbWVuZGVyLWZpbHRlcnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJlY29tbWVuZGVyRmlsdGVyc0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZWNvbW1lbmRlckZpbHRlcnNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgcmVjb21tZW5kZXItZmlsdGVycyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VSZWNvbW1lbmRlckZpbHRlcnNBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFByb2ZpbGVSZWNvbW1lbmRlckZpbHRlcnNBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJlY29tbWVuZGVyRmlsdGVyc0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZWNvbW1lbmRlci1maWx0ZXJzIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRvbWFpbk5hbWU6IG1hdGNoLmdyb3VwcyEuZG9tYWluTmFtZSxcblx0XHRcdHJlY29tbWVuZGVyRmlsdGVyTmFtZTogbWF0Y2guZ3JvdXBzIS5yZWNvbW1lbmRlckZpbHRlck5hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgcmVjb21tZW5kZXItc2NoZW1hcyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyByZWNvbW1lbmRlclNjaGVtYXMocHJvcHM6IFByb2ZpbGVSZWNvbW1lbmRlclNjaGVtYXNBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06cHJvZmlsZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkb21haW5zLyR7cHJvcHMuZG9tYWluTmFtZX0vcmVjb21tZW5kZXItc2NoZW1hcy8ke3Byb3BzLnJlY29tbWVuZGVyU2NoZW1hTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgcmVjb21tZW5kZXItc2NoZW1hcyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUmVjb21tZW5kZXJTY2hlbWFzQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJlY29tbWVuZGVyU2NoZW1hc0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSByZWNvbW1lbmRlci1zY2hlbWFzIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVJlY29tbWVuZGVyU2NoZW1hc0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogUHJvZmlsZVJlY29tbWVuZGVyU2NoZW1hc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVjb21tZW5kZXJTY2hlbWFzQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJlY29tbWVuZGVyLXNjaGVtYXMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZG9tYWluTmFtZTogbWF0Y2guZ3JvdXBzIS5kb21haW5OYW1lLFxuXHRcdFx0cmVjb21tZW5kZXJTY2hlbWFOYW1lOiBtYXRjaC5ncm91cHMhLnJlY29tbWVuZGVyU2NoZW1hTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSByZWNvbW1lbmRlcnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcmVjb21tZW5kZXJzKHByb3BzOiBQcm9maWxlUmVjb21tZW5kZXJzQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnByb2ZpbGU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZG9tYWlucy8ke3Byb3BzLmRvbWFpbk5hbWV9L3JlY29tbWVuZGVycy8ke3Byb3BzLnJlY29tbWVuZGVyVHlwZU5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHJlY29tbWVuZGVycyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUmVjb21tZW5kZXJzQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJlY29tbWVuZGVyc0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSByZWNvbW1lbmRlcnMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVjb21tZW5kZXJzQXJuKGFybjogc3RyaW5nKTogUHJvZmlsZVJlY29tbWVuZGVyc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVjb21tZW5kZXJzQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJlY29tbWVuZGVycyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkb21haW5OYW1lOiBtYXRjaC5ncm91cHMhLmRvbWFpbk5hbWUsXG5cdFx0XHRyZWNvbW1lbmRlclR5cGVOYW1lOiBtYXRjaC5ncm91cHMhLnJlY29tbWVuZGVyVHlwZU5hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgc2VnbWVudC1kZWZpbml0aW9ucyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzZWdtZW50RGVmaW5pdGlvbnMocHJvcHM6IFByb2ZpbGVTZWdtZW50RGVmaW5pdGlvbnNBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06cHJvZmlsZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkb21haW5zLyR7cHJvcHMuZG9tYWluTmFtZX0vc2VnbWVudC1kZWZpbml0aW9ucy8ke3Byb3BzLnNlZ21lbnREZWZpbml0aW9uTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgc2VnbWVudC1kZWZpbml0aW9ucyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU2VnbWVudERlZmluaXRpb25zQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFNlZ21lbnREZWZpbml0aW9uc0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBzZWdtZW50LWRlZmluaXRpb25zIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVNlZ21lbnREZWZpbml0aW9uc0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogUHJvZmlsZVNlZ21lbnREZWZpbml0aW9uc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gU2VnbWVudERlZmluaXRpb25zQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNlZ21lbnQtZGVmaW5pdGlvbnMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZG9tYWluTmFtZTogbWF0Y2guZ3JvdXBzIS5kb21haW5OYW1lLFxuXHRcdFx0c2VnbWVudERlZmluaXRpb25OYW1lOiBtYXRjaC5ncm91cHMhLnNlZ21lbnREZWZpbml0aW9uTmFtZSxcblx0XHR9O1xuXHR9XG59XG5cbi8qKlxuICogQVBJIG9wZXJhdGlvbiB0byByZXF1aXJlZCBJQU0gYWN0aW9ucyBtYXBwaW5nIGZvciBwcm9maWxlLlxuICovXG5leHBvcnQgY2xhc3MgUHJvZmlsZU9wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBZGRQcm9maWxlS2V5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWRkUHJvZmlsZUtleTogc3RyaW5nW10gPSBbXCJwcm9maWxlOkFkZFByb2ZpbGVLZXlcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEFzc29jaWF0ZVN0cmVhbUZvclNlZ21lbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlU3RyZWFtRm9yU2VnbWVudHM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpBc3NvY2lhdGVTdHJlYW1Gb3JTZWdtZW50c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBCYXRjaEdldENhbGN1bGF0ZWRBdHRyaWJ1dGVGb3JQcm9maWxlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQmF0Y2hHZXRDYWxjdWxhdGVkQXR0cmlidXRlRm9yUHJvZmlsZTogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkJhdGNoR2V0Q2FsY3VsYXRlZEF0dHJpYnV0ZUZvclByb2ZpbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQmF0Y2hHZXRQcm9maWxlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQmF0Y2hHZXRQcm9maWxlOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6QmF0Y2hHZXRQcm9maWxlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBCYXRjaFB1dFByb2ZpbGVPYmplY3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaFB1dFByb2ZpbGVPYmplY3Q6IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpDcmVhdGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvblwiLFxuXHRcdFwicHJvZmlsZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVEb21haW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEb21haW46IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpDcmVhdGVEb21haW5cIixcblx0XHRcInByb2ZpbGU6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRG9tYWluTGF5b3V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRG9tYWluTGF5b3V0OiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6Q3JlYXRlRG9tYWluTGF5b3V0XCIsXG5cdFx0XCJwcm9maWxlOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUV2ZW50U3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXZlbnRTdHJlYW06IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpDcmVhdGVFdmVudFN0cmVhbVwiLFxuXHRcdFwicHJvZmlsZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVFdmVudFRyaWdnZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFdmVudFRyaWdnZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpDcmVhdGVFdmVudFRyaWdnZXJcIixcblx0XHRcInByb2ZpbGU6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlSW50ZWdyYXRpb25Xb3JrZmxvdyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUludGVncmF0aW9uV29ya2Zsb3c6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpDcmVhdGVJbnRlZ3JhdGlvbldvcmtmbG93XCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVByb2ZpbGU6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpDcmVhdGVQcm9maWxlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVSZWNvbW1lbmRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY29tbWVuZGVyOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6Q3JlYXRlUmVjb21tZW5kZXJcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVJlY29tbWVuZGVyRmlsdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVjb21tZW5kZXJGaWx0ZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpDcmVhdGVSZWNvbW1lbmRlckZpbHRlclwiLFxuXHRcdFwicHJvZmlsZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVSZWNvbW1lbmRlclNjaGVtYSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY29tbWVuZGVyU2NoZW1hOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6Q3JlYXRlUmVjb21tZW5kZXJTY2hlbWFcIixcblx0XHRcInByb2ZpbGU6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlU2VnbWVudERlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTZWdtZW50RGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkNyZWF0ZVNlZ21lbnREZWZpbml0aW9uXCIsXG5cdFx0XCJwcm9maWxlOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVNlZ21lbnRFc3RpbWF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNlZ21lbnRFc3RpbWF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkNyZWF0ZVNlZ21lbnRFc3RpbWF0ZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVTZWdtZW50U25hcHNob3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTZWdtZW50U25hcHNob3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpDcmVhdGVTZWdtZW50U25hcHNob3RcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVVcGxvYWRKb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVVcGxvYWRKb2I6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpDcmVhdGVVcGxvYWRKb2JcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUNhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpEZWxldGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVEb21haW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEb21haW46IHN0cmluZ1tdID0gW1wicHJvZmlsZTpEZWxldGVEb21haW5cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZURvbWFpbkxheW91dCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURvbWFpbkxheW91dDogc3RyaW5nW10gPSBbXCJwcm9maWxlOkRlbGV0ZURvbWFpbkxheW91dFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRG9tYWluT2JqZWN0VHlwZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURvbWFpbk9iamVjdFR5cGU6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpEZWxldGVEb21haW5PYmplY3RUeXBlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUV2ZW50U3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRXZlbnRTdHJlYW06IHN0cmluZ1tdID0gW1wicHJvZmlsZTpEZWxldGVFdmVudFN0cmVhbVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRXZlbnRUcmlnZ2VyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRXZlbnRUcmlnZ2VyOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6RGVsZXRlRXZlbnRUcmlnZ2VyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVJbnRlZ3JhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUludGVncmF0aW9uOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6RGVsZXRlSW50ZWdyYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVByb2ZpbGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVQcm9maWxlOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6RGVsZXRlUHJvZmlsZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUHJvZmlsZUtleSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVByb2ZpbGVLZXk6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpEZWxldGVQcm9maWxlS2V5XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVQcm9maWxlT2JqZWN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUHJvZmlsZU9iamVjdDogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkRlbGV0ZVByb2ZpbGVPYmplY3RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUHJvZmlsZU9iamVjdFR5cGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVQcm9maWxlT2JqZWN0VHlwZTogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkRlbGV0ZVByb2ZpbGVPYmplY3RUeXBlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVJlY29tbWVuZGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVjb21tZW5kZXI6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpEZWxldGVSZWNvbW1lbmRlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVjb21tZW5kZXJGaWx0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZWNvbW1lbmRlckZpbHRlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkRlbGV0ZVJlY29tbWVuZGVyRmlsdGVyXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVJlY29tbWVuZGVyU2NoZW1hIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVjb21tZW5kZXJTY2hlbWE6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpEZWxldGVSZWNvbW1lbmRlclNjaGVtYVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVTZWdtZW50RGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNlZ21lbnREZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6RGVsZXRlU2VnbWVudERlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlU2VnbWVudFN1YnNjcmlwdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNlZ21lbnRTdWJzY3JpcHRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpEZWxldGVTZWdtZW50U3Vic2NyaXB0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVdvcmtmbG93IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlV29ya2Zsb3c6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpEZWxldGVXb3JrZmxvd1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGV0ZWN0UHJvZmlsZU9iamVjdFR5cGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXRlY3RQcm9maWxlT2JqZWN0VHlwZTogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkRldGVjdFByb2ZpbGVPYmplY3RUeXBlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Fzc29jaWF0ZVN0cmVhbUZvclNlZ21lbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlU3RyZWFtRm9yU2VnbWVudHM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpEaXNhc3NvY2lhdGVTdHJlYW1Gb3JTZWdtZW50c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRBdXRvTWVyZ2luZ1ByZXZpZXcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEF1dG9NZXJnaW5nUHJldmlldzogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkdldEF1dG9NZXJnaW5nUHJldmlld1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDYWxjdWxhdGVkQXR0cmlidXRlRm9yUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q2FsY3VsYXRlZEF0dHJpYnV0ZUZvclByb2ZpbGU6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRDYWxjdWxhdGVkQXR0cmlidXRlRm9yUHJvZmlsZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXREb21haW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldERvbWFpbjogc3RyaW5nW10gPSBbXCJwcm9maWxlOkdldERvbWFpblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RG9tYWluTGF5b3V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXREb21haW5MYXlvdXQ6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpHZXREb21haW5MYXlvdXRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldERvbWFpbk9iamVjdFR5cGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldERvbWFpbk9iamVjdFR5cGU6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXREb21haW5PYmplY3RUeXBlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEV2ZW50U3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRFdmVudFN0cmVhbTogc3RyaW5nW10gPSBbXCJwcm9maWxlOkdldEV2ZW50U3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRFdmVudFRyaWdnZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEV2ZW50VHJpZ2dlcjogc3RyaW5nW10gPSBbXCJwcm9maWxlOkdldEV2ZW50VHJpZ2dlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SWRlbnRpdHlSZXNvbHV0aW9uSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRJZGVudGl0eVJlc29sdXRpb25Kb2I6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRJZGVudGl0eVJlc29sdXRpb25Kb2JcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SW50ZWdyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEludGVncmF0aW9uOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6R2V0SW50ZWdyYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldE1hdGNoZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE1hdGNoZXM6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpHZXRNYXRjaGVzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRPYmplY3RUeXBlQXR0cmlidXRlU3RhdGlzdGljcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0T2JqZWN0VHlwZUF0dHJpYnV0ZVN0YXRpc3RpY3M6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRPYmplY3RUeXBlQXR0cmlidXRlU3RhdGlzdGljc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRQcm9maWxlSGlzdG9yeVJlY29yZCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UHJvZmlsZUhpc3RvcnlSZWNvcmQ6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRQcm9maWxlSGlzdG9yeVJlY29yZFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRQcm9maWxlT2JqZWN0VHlwZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UHJvZmlsZU9iamVjdFR5cGU6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRQcm9maWxlT2JqZWN0VHlwZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRQcm9maWxlT2JqZWN0VHlwZVRlbXBsYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRQcm9maWxlT2JqZWN0VHlwZVRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6R2V0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRQcm9maWxlUmVjb21tZW5kYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRQcm9maWxlUmVjb21tZW5kYXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6R2V0UHJvZmlsZVJlY29tbWVuZGF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZWNvbW1lbmRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVjb21tZW5kZXI6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpHZXRSZWNvbW1lbmRlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjb21tZW5kZXJGaWx0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlY29tbWVuZGVyRmlsdGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6R2V0UmVjb21tZW5kZXJGaWx0ZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjb21tZW5kZXJTY2hlbWEgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlY29tbWVuZGVyU2NoZW1hOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6R2V0UmVjb21tZW5kZXJTY2hlbWFcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U2VnbWVudERlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFNlZ21lbnREZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6R2V0U2VnbWVudERlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U2VnbWVudEVzdGltYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRTZWdtZW50RXN0aW1hdGU6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRTZWdtZW50RXN0aW1hdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U2VnbWVudE1lbWJlcnNoaXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFNlZ21lbnRNZW1iZXJzaGlwOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6R2V0U2VnbWVudE1lbWJlcnNoaXBcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U2VnbWVudFNuYXBzaG90IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRTZWdtZW50U25hcHNob3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRTZWdtZW50U25hcHNob3RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U2VnbWVudFN1YnNjcmlwdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0U2VnbWVudFN1YnNjcmlwdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkdldFNlZ21lbnRTdWJzY3JpcHRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U2ltaWxhclByb2ZpbGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRTaW1pbGFyUHJvZmlsZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpHZXRTaW1pbGFyUHJvZmlsZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U3RyZWFtRm9yU2VnbWVudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFN0cmVhbUZvclNlZ21lbnRzOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6R2V0U3RyZWFtRm9yU2VnbWVudHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0VXBsb2FkSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRVcGxvYWRKb2I6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpHZXRVcGxvYWRKb2JcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFVwbG9hZEpvYlBhdGggQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFVwbG9hZEpvYlBhdGg6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpHZXRVcGxvYWRKb2JQYXRoXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRXb3JrZmxvdyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0V29ya2Zsb3c6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpHZXRXb3JrZmxvd1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0V29ya2Zsb3dTdGVwcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0V29ya2Zsb3dTdGVwczogc3RyaW5nW10gPSBbXCJwcm9maWxlOkdldFdvcmtmbG93U3RlcHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBY2NvdW50SW50ZWdyYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFjY291bnRJbnRlZ3JhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0QWNjb3VudEludGVncmF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkxpc3RDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENhbGN1bGF0ZWRBdHRyaWJ1dGVzRm9yUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDYWxjdWxhdGVkQXR0cmlidXRlc0ZvclByb2ZpbGU6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0Q2FsY3VsYXRlZEF0dHJpYnV0ZXNGb3JQcm9maWxlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3REb21haW5MYXlvdXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERvbWFpbkxheW91dHM6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpMaXN0RG9tYWluTGF5b3V0c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERvbWFpbk9iamVjdFR5cGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERvbWFpbk9iamVjdFR5cGVzOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6TGlzdERvbWFpbk9iamVjdFR5cGVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3REb21haW5zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERvbWFpbnM6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpMaXN0RG9tYWluc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEV2ZW50U3RyZWFtcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFdmVudFN0cmVhbXM6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpMaXN0RXZlbnRTdHJlYW1zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RXZlbnRUcmlnZ2VycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFdmVudFRyaWdnZXJzOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6TGlzdEV2ZW50VHJpZ2dlcnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RJZGVudGl0eVJlc29sdXRpb25Kb2JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdElkZW50aXR5UmVzb2x1dGlvbkpvYnM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0SWRlbnRpdHlSZXNvbHV0aW9uSm9ic1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SW50ZWdyYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEludGVncmF0aW9uczogc3RyaW5nW10gPSBbXCJwcm9maWxlOkxpc3RJbnRlZ3JhdGlvbnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RPYmplY3RUeXBlQXR0cmlidXRlVmFsdWVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE9iamVjdFR5cGVBdHRyaWJ1dGVWYWx1ZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZVZhbHVlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0T2JqZWN0VHlwZUF0dHJpYnV0ZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFByb2ZpbGVBdHRyaWJ1dGVWYWx1ZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UHJvZmlsZUF0dHJpYnV0ZVZhbHVlczogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkxpc3RQcm9maWxlQXR0cmlidXRlVmFsdWVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RQcm9maWxlSGlzdG9yeVJlY29yZHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UHJvZmlsZUhpc3RvcnlSZWNvcmRzOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6TGlzdFByb2ZpbGVIaXN0b3J5UmVjb3Jkc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0UHJvZmlsZU9iamVjdFR5cGVUZW1wbGF0ZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFByb2ZpbGVPYmplY3RUeXBlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RQcm9maWxlT2JqZWN0VHlwZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0UHJvZmlsZU9iamVjdFR5cGVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RQcm9maWxlT2JqZWN0cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RQcm9maWxlT2JqZWN0czogc3RyaW5nW10gPSBbXCJwcm9maWxlOkxpc3RQcm9maWxlT2JqZWN0c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY29tbWVuZGVyRmlsdGVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvbW1lbmRlckZpbHRlcnM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0UmVjb21tZW5kZXJGaWx0ZXJzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RSZWNvbW1lbmRlclJlY2lwZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb21tZW5kZXJSZWNpcGVzOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6TGlzdFJlY29tbWVuZGVyUmVjaXBlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UmVjb21tZW5kZXJTY2hlbWFzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY29tbWVuZGVyU2NoZW1hczogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkxpc3RSZWNvbW1lbmRlclNjaGVtYXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY29tbWVuZGVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvbW1lbmRlcnM6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpMaXN0UmVjb21tZW5kZXJzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UnVsZUJhc2VkTWF0Y2hlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSdWxlQmFzZWRNYXRjaGVzOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6TGlzdFJ1bGVCYXNlZE1hdGNoZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFNlZ21lbnREZWZpbml0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTZWdtZW50RGVmaW5pdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0U2VnbWVudERlZmluaXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTZWdtZW50U3Vic2NyaXB0aW9uRXZlbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFNlZ21lbnRTdWJzY3JpcHRpb25FdmVudHM6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpMaXN0U2VnbWVudFN1YnNjcmlwdGlvbkV2ZW50c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOkxpc3RUYWdzRm9yUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFVwbG9hZEpvYnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VXBsb2FkSm9iczogc3RyaW5nW10gPSBbXCJwcm9maWxlOkxpc3RVcGxvYWRKb2JzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0V29ya2Zsb3dzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFdvcmtmbG93czogc3RyaW5nW10gPSBbXCJwcm9maWxlOkxpc3RXb3JrZmxvd3NcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIE1lcmdlUHJvZmlsZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBNZXJnZVByb2ZpbGVzOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6TWVyZ2VQcm9maWxlc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0RG9tYWluT2JqZWN0VHlwZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dERvbWFpbk9iamVjdFR5cGU6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpQdXREb21haW5PYmplY3RUeXBlXCIsXG5cdFx0XCJwcm9maWxlOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dEludGVncmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0SW50ZWdyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpQdXRJbnRlZ3JhdGlvblwiLFxuXHRcdFwicHJvZmlsZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRQcm9maWxlT2JqZWN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UHJvZmlsZU9iamVjdDogc3RyaW5nW10gPSBbXCJwcm9maWxlOlB1dFByb2ZpbGVPYmplY3RcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dFByb2ZpbGVPYmplY3RUeXBlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UHJvZmlsZU9iamVjdFR5cGU6IHN0cmluZ1tdID0gW1xuXHRcdFwicHJvZmlsZTpQdXRQcm9maWxlT2JqZWN0VHlwZVwiLFxuXHRcdFwicHJvZmlsZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRTZWdtZW50U3Vic2NyaXB0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0U2VnbWVudFN1YnNjcmlwdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJwcm9maWxlOlB1dFNlZ21lbnRTdWJzY3JpcHRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU2VhcmNoUHJvZmlsZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTZWFyY2hQcm9maWxlczogc3RyaW5nW10gPSBbXCJwcm9maWxlOlNlYXJjaFByb2ZpbGVzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFJlY29tbWVuZGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZWNvbW1lbmRlcjogc3RyaW5nW10gPSBbXCJwcm9maWxlOlN0YXJ0UmVjb21tZW5kZXJcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0VXBsb2FkSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRVcGxvYWRKb2I6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpTdGFydFVwbG9hZEpvYlwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFJlY29tbWVuZGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFJlY29tbWVuZGVyOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6U3RvcFJlY29tbWVuZGVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wVXBsb2FkSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFVwbG9hZEpvYjogc3RyaW5nW10gPSBbXCJwcm9maWxlOlN0b3BVcGxvYWRKb2JcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpVbnRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVDYWxjdWxhdGVkQXR0cmlidXRlRGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNhbGN1bGF0ZWRBdHRyaWJ1dGVEZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcInByb2ZpbGU6VXBkYXRlQ2FsY3VsYXRlZEF0dHJpYnV0ZURlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRG9tYWluIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRG9tYWluOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6VXBkYXRlRG9tYWluXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVEb21haW5MYXlvdXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVEb21haW5MYXlvdXQ6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpVcGRhdGVEb21haW5MYXlvdXRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUV2ZW50VHJpZ2dlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV2ZW50VHJpZ2dlcjogc3RyaW5nW10gPSBbXCJwcm9maWxlOlVwZGF0ZUV2ZW50VHJpZ2dlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVByb2ZpbGU6IHN0cmluZ1tdID0gW1wicHJvZmlsZTpVcGRhdGVQcm9maWxlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVSZWNvbW1lbmRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlY29tbWVuZGVyOiBzdHJpbmdbXSA9IFtcInByb2ZpbGU6VXBkYXRlUmVjb21tZW5kZXJcIl07XG59XG5cbi8qKlxuICogQ29uZGl0aW9uIGtleSBjb25zdGFudHMgYW5kIGJ1aWxkZXJzIGZvciBwcm9maWxlLlxuICovXG5leHBvcnQgY2xhc3MgUHJvZmlsZUNvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUmVjb21tZW5kZXJGaWx0ZXIgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVjb21tZW5kZXJGaWx0ZXJDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVJlY29tbWVuZGVyU2NoZW1hIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY29tbWVuZGVyU2NoZW1hQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUYWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVxdWVzdFRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVzb3VyY2VUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6VGFnS2V5c2AuXG5cdCAqL1xuXHRzdGF0aWMgdGFnS2V5cyh2YWx1ZXM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJhd3M6VGFnS2V5c1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG59XG4iXX0=