@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 ImageBuilderActions {
16
16
  }
17
17
  exports.ImageBuilderActions = ImageBuilderActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- ImageBuilderActions[_a] = { fqn: "@cdk_utils/iam.imagebuilder.ImageBuilderActions", version: "1.14.0" };
19
+ ImageBuilderActions[_a] = { fqn: "@cdk_utils/iam.imagebuilder.ImageBuilderActions", version: "1.16.0" };
20
20
  /** The IAM service prefix. */
21
21
  ImageBuilderActions.SERVICE_PREFIX = "imagebuilder";
22
22
  /** [Write] imagebuilder:CancelImageCreation */
@@ -750,7 +750,7 @@ class ImageBuilderResources {
750
750
  }
751
751
  exports.ImageBuilderResources = ImageBuilderResources;
752
752
  _b = JSII_RTTI_SYMBOL_1;
753
- ImageBuilderResources[_b] = { fqn: "@cdk_utils/iam.imagebuilder.ImageBuilderResources", version: "1.14.0" };
753
+ ImageBuilderResources[_b] = { fqn: "@cdk_utils/iam.imagebuilder.ImageBuilderResources", version: "1.16.0" };
754
754
  /**
755
755
  * API operation to required IAM actions mapping for imagebuilder.
756
756
  */
@@ -758,7 +758,7 @@ class ImageBuilderOperations {
758
758
  }
759
759
  exports.ImageBuilderOperations = ImageBuilderOperations;
760
760
  _c = JSII_RTTI_SYMBOL_1;
761
- ImageBuilderOperations[_c] = { fqn: "@cdk_utils/iam.imagebuilder.ImageBuilderOperations", version: "1.14.0" };
761
+ ImageBuilderOperations[_c] = { fqn: "@cdk_utils/iam.imagebuilder.ImageBuilderOperations", version: "1.16.0" };
762
762
  /** IAM actions required for the CancelImageCreation API call. */
763
763
  ImageBuilderOperations.CancelImageCreation = [
764
764
  "imagebuilder:CancelImageCreation",
@@ -929,7 +929,10 @@ ImageBuilderOperations.opGetWorkflowStepExecution = [
929
929
  "imagebuilder:GetWorkflowStepExecution",
930
930
  ];
931
931
  /** IAM actions required for the ImportComponent API call. */
932
- ImageBuilderOperations.ImportComponent = [];
932
+ ImageBuilderOperations.ImportComponent = [
933
+ "imagebuilder:ImportComponent",
934
+ "imagebuilder:TagResource",
935
+ ];
933
936
  /** IAM actions required for the ImportDiskImage API call. */
934
937
  ImageBuilderOperations.ImportDiskImage = [
935
938
  "imagebuilder:GetInfrastructureConfiguration",
@@ -1148,7 +1151,7 @@ class ImageBuilderConditions {
1148
1151
  }
1149
1152
  exports.ImageBuilderConditions = ImageBuilderConditions;
1150
1153
  _d = JSII_RTTI_SYMBOL_1;
1151
- ImageBuilderConditions[_d] = { fqn: "@cdk_utils/iam.imagebuilder.ImageBuilderConditions", version: "1.14.0" };
1154
+ ImageBuilderConditions[_d] = { fqn: "@cdk_utils/iam.imagebuilder.ImageBuilderConditions", version: "1.16.0" };
1152
1155
  /** Condition keys applicable to the CreateComponent action. */
1153
1156
  ImageBuilderConditions.CreateComponentConditionKeys = [
1154
1157
  "aws:RequestTag/${TagKey}",
@@ -1258,4 +1261,4 @@ ImageBuilderConditions.EC2_METADATA_HTTP_TOKENS = "imagebuilder:Ec2MetadataHttpT
1258
1261
  ImageBuilderConditions.LIFECYCLE_POLICY_RESOURCE_TYPE = "imagebuilder:LifecyclePolicyResourceType";
1259
1262
  /** Condition key: imagebuilder:StatusTopicArn (ARN) */
1260
1263
  ImageBuilderConditions.STATUS_TOPIC_ARN = "imagebuilder:StatusTopicArn";
1261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VidWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9pbWFnZWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCxtREFBbUQ7QUFDbkQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsbUJBQW1COztBQUFoQyxrREEwUkM7OztBQXpSQSw4QkFBOEI7QUFDZCxrQ0FBYyxHQUFHLGNBQWMsQ0FBQztBQUVoRCwrQ0FBK0M7QUFDL0IsdUNBQW1CLEdBQUcsa0NBQWtDLENBQUM7QUFDekUsb0RBQW9EO0FBQ3BDLDRDQUF3QixHQUN2Qyx1Q0FBdUMsQ0FBQztBQUN6QywyQ0FBMkM7QUFDM0IsbUNBQWUsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSxpREFBaUQ7QUFDakMseUNBQXFCLEdBQUcsb0NBQW9DLENBQUM7QUFDN0UsMkRBQTJEO0FBQzNDLG1EQUErQixHQUM5Qyw4Q0FBOEMsQ0FBQztBQUNoRCx1Q0FBdUM7QUFDdkIsK0JBQVcsR0FBRywwQkFBMEIsQ0FBQztBQUN6RCwrQ0FBK0M7QUFDL0IsdUNBQW1CLEdBQUcsa0NBQWtDLENBQUM7QUFDekUsNkNBQTZDO0FBQzdCLHFDQUFpQixHQUFHLGdDQUFnQyxDQUFDO0FBQ3JFLDZEQUE2RDtBQUM3QyxxREFBaUMsR0FDaEQsZ0RBQWdELENBQUM7QUFDbEQsaURBQWlEO0FBQ2pDLHlDQUFxQixHQUFHLG9DQUFvQyxDQUFDO0FBQzdFLDBDQUEwQztBQUMxQixrQ0FBYyxHQUFHLDZCQUE2QixDQUFDO0FBQy9ELDJDQUEyQztBQUMzQixtQ0FBZSxHQUFHLDhCQUE4QixDQUFDO0FBQ2pFLGlEQUFpRDtBQUNqQyx5Q0FBcUIsR0FBRyxvQ0FBb0MsQ0FBQztBQUM3RSwyREFBMkQ7QUFDM0MsbURBQStCLEdBQzlDLDhDQUE4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MkNBQTJDO0lBQzNDLHFDQUFxQztJQUNyQyxvQ0FBb0M7SUFDcEMsNkJBQTZCO0NBQzdCLENBQUM7QUFDRixxRUFBcUU7QUFDckQseURBQWtDLEdBQWE7SUFDOUQsMENBQTBDO0NBQzFDLENBQUM7QUFFRix1REFBdUQ7QUFDdkMsc0NBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCx3REFBd0Q7QUFDeEMsdUNBQWdCLEdBQUcsMkJBQTJCLENBQUM7QUFDL0QsaURBQWlEO0FBQ2pDLG1DQUFZLEdBQUcsYUFBYSxDQUFDO0FBQzdDLHdFQUF3RTtBQUN4RCwyQ0FBb0IsR0FDbkMsMkNBQTJDLENBQUM7QUFDN0MseUVBQXlFO0FBQ3pELGdEQUF5QixHQUN4QyxxQ0FBcUMsQ0FBQztBQUN2QyxpRUFBaUU7QUFDakQsK0NBQXdCLEdBQ3ZDLG9DQUFvQyxDQUFDO0FBQ3RDLHVFQUF1RTtBQUN2RCxxREFBOEIsR0FDN0MsMENBQTBDLENBQUM7QUFDNUMsdURBQXVEO0FBQ3ZDLHVDQUFnQixHQUFHLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2UvaW1hZ2VidWlsZGVyLmpzb25cbi8vIFJ1biBgbnB4IHByb2plbiBnZW5lcmF0ZS1jb25zdGFudHNgIHRvIHJlZ2VuZXJhdGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSUFNIGFjdGlvbiBjb25zdGFudHMgZm9yIHRoZSBpbWFnZWJ1aWxkZXIgc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEltYWdlQnVpbGRlckFjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJpbWFnZWJ1aWxkZXJcIjtcblxuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6Q2FuY2VsSW1hZ2VDcmVhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsSW1hZ2VDcmVhdGlvbiA9IFwiaW1hZ2VidWlsZGVyOkNhbmNlbEltYWdlQ3JlYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOkNhbmNlbExpZmVjeWNsZUV4ZWN1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsTGlmZWN5Y2xlRXhlY3V0aW9uID1cblx0XHRcImltYWdlYnVpbGRlcjpDYW5jZWxMaWZlY3ljbGVFeGVjdXRpb25cIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOkNyZWF0ZUNvbXBvbmVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29tcG9uZW50ID0gXCJpbWFnZWJ1aWxkZXI6Q3JlYXRlQ29tcG9uZW50XCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpDcmVhdGVDb250YWluZXJSZWNpcGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbnRhaW5lclJlY2lwZSA9IFwiaW1hZ2VidWlsZGVyOkNyZWF0ZUNvbnRhaW5lclJlY2lwZVwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6Q3JlYXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q3JlYXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6Q3JlYXRlSW1hZ2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUltYWdlID0gXCJpbWFnZWJ1aWxkZXI6Q3JlYXRlSW1hZ2VcIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOkNyZWF0ZUltYWdlUGlwZWxpbmUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUltYWdlUGlwZWxpbmUgPSBcImltYWdlYnVpbGRlcjpDcmVhdGVJbWFnZVBpcGVsaW5lXCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpDcmVhdGVJbWFnZVJlY2lwZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSW1hZ2VSZWNpcGUgPSBcImltYWdlYnVpbGRlcjpDcmVhdGVJbWFnZVJlY2lwZVwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6Q3JlYXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkNyZWF0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6Q3JlYXRlTGlmZWN5Y2xlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVMaWZlY3ljbGVQb2xpY3kgPSBcImltYWdlYnVpbGRlcjpDcmVhdGVMaWZlY3ljbGVQb2xpY3lcIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOkNyZWF0ZVdvcmtmbG93ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVXb3JrZmxvdyA9IFwiaW1hZ2VidWlsZGVyOkNyZWF0ZVdvcmtmbG93XCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpEZWxldGVDb21wb25lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNvbXBvbmVudCA9IFwiaW1hZ2VidWlsZGVyOkRlbGV0ZUNvbXBvbmVudFwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6RGVsZXRlQ29udGFpbmVyUmVjaXBlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb250YWluZXJSZWNpcGUgPSBcImltYWdlYnVpbGRlcjpEZWxldGVDb250YWluZXJSZWNpcGVcIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOkRlbGV0ZURpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkRlbGV0ZURpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOkRlbGV0ZUltYWdlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVJbWFnZSA9IFwiaW1hZ2VidWlsZGVyOkRlbGV0ZUltYWdlXCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpEZWxldGVJbWFnZVBpcGVsaW5lICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVJbWFnZVBpcGVsaW5lID0gXCJpbWFnZWJ1aWxkZXI6RGVsZXRlSW1hZ2VQaXBlbGluZVwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6RGVsZXRlSW1hZ2VSZWNpcGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUltYWdlUmVjaXBlID0gXCJpbWFnZWJ1aWxkZXI6RGVsZXRlSW1hZ2VSZWNpcGVcIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOkRlbGV0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uID1cblx0XHRcImltYWdlYnVpbGRlcjpEZWxldGVJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOkRlbGV0ZUxpZmVjeWNsZVBvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTGlmZWN5Y2xlUG9saWN5ID0gXCJpbWFnZWJ1aWxkZXI6RGVsZXRlTGlmZWN5Y2xlUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpEZWxldGVXb3JrZmxvdyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlV29ya2Zsb3cgPSBcImltYWdlYnVpbGRlcjpEZWxldGVXb3JrZmxvd1wiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6RGlzdHJpYnV0ZUltYWdlICovXG5cdHN0YXRpYyByZWFkb25seSBEaXN0cmlidXRlSW1hZ2UgPSBcImltYWdlYnVpbGRlcjpEaXN0cmlidXRlSW1hZ2VcIjtcblx0LyoqIFtSZWFkXSBpbWFnZWJ1aWxkZXI6R2V0Q29tcG9uZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDb21wb25lbnQgPSBcImltYWdlYnVpbGRlcjpHZXRDb21wb25lbnRcIjtcblx0LyoqIFtSZWFkXSBpbWFnZWJ1aWxkZXI6R2V0Q29tcG9uZW50UG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDb21wb25lbnRQb2xpY3kgPSBcImltYWdlYnVpbGRlcjpHZXRDb21wb25lbnRQb2xpY3lcIjtcblx0LyoqIFtSZWFkXSBpbWFnZWJ1aWxkZXI6R2V0Q29udGFpbmVyUmVjaXBlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDb250YWluZXJSZWNpcGUgPSBcImltYWdlYnVpbGRlcjpHZXRDb250YWluZXJSZWNpcGVcIjtcblx0LyoqIFtSZWFkXSBpbWFnZWJ1aWxkZXI6R2V0Q29udGFpbmVyUmVjaXBlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDb250YWluZXJSZWNpcGVQb2xpY3kgPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldENvbnRhaW5lclJlY2lwZVBvbGljeVwiO1xuXHQvKiogW1JlYWRdIGltYWdlYnVpbGRlcjpHZXREaXN0cmlidXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXREaXN0cmlidXRpb25Db25maWd1cmF0aW9uID1cblx0XHRcImltYWdlYnVpbGRlcjpHZXREaXN0cmlidXRpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gaW1hZ2VidWlsZGVyOkdldEltYWdlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRJbWFnZSA9IFwiaW1hZ2VidWlsZGVyOkdldEltYWdlXCI7XG5cdC8qKiBbUmVhZF0gaW1hZ2VidWlsZGVyOkdldEltYWdlUGlwZWxpbmUgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEltYWdlUGlwZWxpbmUgPSBcImltYWdlYnVpbGRlcjpHZXRJbWFnZVBpcGVsaW5lXCI7XG5cdC8qKiBbUmVhZF0gaW1hZ2VidWlsZGVyOkdldEltYWdlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRJbWFnZVBvbGljeSA9IFwiaW1hZ2VidWlsZGVyOkdldEltYWdlUG9saWN5XCI7XG5cdC8qKiBbUmVhZF0gaW1hZ2VidWlsZGVyOkdldEltYWdlUmVjaXBlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRJbWFnZVJlY2lwZSA9IFwiaW1hZ2VidWlsZGVyOkdldEltYWdlUmVjaXBlXCI7XG5cdC8qKiBbUmVhZF0gaW1hZ2VidWlsZGVyOkdldEltYWdlUmVjaXBlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRJbWFnZVJlY2lwZVBvbGljeSA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0SW1hZ2VSZWNpcGVQb2xpY3lcIjtcblx0LyoqIFtSZWFkXSBpbWFnZWJ1aWxkZXI6R2V0SW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldEluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1JlYWRdIGltYWdlYnVpbGRlcjpHZXRMaWZlY3ljbGVFeGVjdXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldExpZmVjeWNsZUV4ZWN1dGlvbiA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0TGlmZWN5Y2xlRXhlY3V0aW9uXCI7XG5cdC8qKiBbUmVhZF0gaW1hZ2VidWlsZGVyOkdldExpZmVjeWNsZVBvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TGlmZWN5Y2xlUG9saWN5ID0gXCJpbWFnZWJ1aWxkZXI6R2V0TGlmZWN5Y2xlUG9saWN5XCI7XG5cdC8qKiBbUmVhZF0gaW1hZ2VidWlsZGVyOkdldE1hcmtldHBsYWNlUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE1hcmtldHBsYWNlUmVzb3VyY2UgPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldE1hcmtldHBsYWNlUmVzb3VyY2VcIjtcblx0LyoqIFtSZWFkXSBpbWFnZWJ1aWxkZXI6R2V0V29ya2Zsb3cgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFdvcmtmbG93ID0gXCJpbWFnZWJ1aWxkZXI6R2V0V29ya2Zsb3dcIjtcblx0LyoqIFtSZWFkXSBpbWFnZWJ1aWxkZXI6R2V0V29ya2Zsb3dFeGVjdXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFdvcmtmbG93RXhlY3V0aW9uID1cblx0XHRcImltYWdlYnVpbGRlcjpHZXRXb3JrZmxvd0V4ZWN1dGlvblwiO1xuXHQvKiogW1JlYWRdIGltYWdlYnVpbGRlcjpHZXRXb3JrZmxvd1N0ZXBFeGVjdXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFdvcmtmbG93U3RlcEV4ZWN1dGlvbiA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0V29ya2Zsb3dTdGVwRXhlY3V0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpJbXBvcnRDb21wb25lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IEltcG9ydENvbXBvbmVudCA9IFwiaW1hZ2VidWlsZGVyOkltcG9ydENvbXBvbmVudFwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6SW1wb3J0RGlza0ltYWdlICovXG5cdHN0YXRpYyByZWFkb25seSBJbXBvcnREaXNrSW1hZ2UgPSBcImltYWdlYnVpbGRlcjpJbXBvcnREaXNrSW1hZ2VcIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOkltcG9ydFZtSW1hZ2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IEltcG9ydFZtSW1hZ2UgPSBcImltYWdlYnVpbGRlcjpJbXBvcnRWbUltYWdlXCI7XG5cdC8qKiBbTGlzdF0gaW1hZ2VidWlsZGVyOkxpc3RDb21wb25lbnRCdWlsZFZlcnNpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29tcG9uZW50QnVpbGRWZXJzaW9ucyA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdENvbXBvbmVudEJ1aWxkVmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBpbWFnZWJ1aWxkZXI6TGlzdENvbXBvbmVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb21wb25lbnRzID0gXCJpbWFnZWJ1aWxkZXI6TGlzdENvbXBvbmVudHNcIjtcblx0LyoqIFtMaXN0XSBpbWFnZWJ1aWxkZXI6TGlzdENvbnRhaW5lclJlY2lwZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb250YWluZXJSZWNpcGVzID0gXCJpbWFnZWJ1aWxkZXI6TGlzdENvbnRhaW5lclJlY2lwZXNcIjtcblx0LyoqIFtMaXN0XSBpbWFnZWJ1aWxkZXI6TGlzdERpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbnMgPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3REaXN0cmlidXRpb25Db25maWd1cmF0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGltYWdlYnVpbGRlcjpMaXN0SW1hZ2VCdWlsZFZlcnNpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW1hZ2VCdWlsZFZlcnNpb25zID1cblx0XHRcImltYWdlYnVpbGRlcjpMaXN0SW1hZ2VCdWlsZFZlcnNpb25zXCI7XG5cdC8qKiBbTGlzdF0gaW1hZ2VidWlsZGVyOkxpc3RJbWFnZVBhY2thZ2VzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW1hZ2VQYWNrYWdlcyA9IFwiaW1hZ2VidWlsZGVyOkxpc3RJbWFnZVBhY2thZ2VzXCI7XG5cdC8qKiBbTGlzdF0gaW1hZ2VidWlsZGVyOkxpc3RJbWFnZVBpcGVsaW5lSW1hZ2VzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW1hZ2VQaXBlbGluZUltYWdlcyA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdEltYWdlUGlwZWxpbmVJbWFnZXNcIjtcblx0LyoqIFtMaXN0XSBpbWFnZWJ1aWxkZXI6TGlzdEltYWdlUGlwZWxpbmVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW1hZ2VQaXBlbGluZXMgPSBcImltYWdlYnVpbGRlcjpMaXN0SW1hZ2VQaXBlbGluZXNcIjtcblx0LyoqIFtMaXN0XSBpbWFnZWJ1aWxkZXI6TGlzdEltYWdlUmVjaXBlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEltYWdlUmVjaXBlcyA9IFwiaW1hZ2VidWlsZGVyOkxpc3RJbWFnZVJlY2lwZXNcIjtcblx0LyoqIFtMaXN0XSBpbWFnZWJ1aWxkZXI6TGlzdEltYWdlU2NhbkZpbmRpbmdBZ2dyZWdhdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbWFnZVNjYW5GaW5kaW5nQWdncmVnYXRpb25zID1cblx0XHRcImltYWdlYnVpbGRlcjpMaXN0SW1hZ2VTY2FuRmluZGluZ0FnZ3JlZ2F0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGltYWdlYnVpbGRlcjpMaXN0SW1hZ2VTY2FuRmluZGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbWFnZVNjYW5GaW5kaW5ncyA9IFwiaW1hZ2VidWlsZGVyOkxpc3RJbWFnZVNjYW5GaW5kaW5nc1wiO1xuXHQvKiogW0xpc3RdIGltYWdlYnVpbGRlcjpMaXN0SW1hZ2VzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW1hZ2VzID0gXCJpbWFnZWJ1aWxkZXI6TGlzdEltYWdlc1wiO1xuXHQvKiogW0xpc3RdIGltYWdlYnVpbGRlcjpMaXN0SW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbnMgPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gaW1hZ2VidWlsZGVyOkxpc3RMaWZlY3ljbGVFeGVjdXRpb25SZXNvdXJjZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMaWZlY3ljbGVFeGVjdXRpb25SZXNvdXJjZXMgPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RMaWZlY3ljbGVFeGVjdXRpb25SZXNvdXJjZXNcIjtcblx0LyoqIFtMaXN0XSBpbWFnZWJ1aWxkZXI6TGlzdExpZmVjeWNsZUV4ZWN1dGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMaWZlY3ljbGVFeGVjdXRpb25zID1cblx0XHRcImltYWdlYnVpbGRlcjpMaXN0TGlmZWN5Y2xlRXhlY3V0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGltYWdlYnVpbGRlcjpMaXN0TGlmZWN5Y2xlUG9saWNpZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMaWZlY3ljbGVQb2xpY2llcyA9IFwiaW1hZ2VidWlsZGVyOkxpc3RMaWZlY3ljbGVQb2xpY2llc1wiO1xuXHQvKiogW1JlYWRdIGltYWdlYnVpbGRlcjpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJpbWFnZWJ1aWxkZXI6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW0xpc3RdIGltYWdlYnVpbGRlcjpMaXN0V2FpdGluZ1dvcmtmbG93U3RlcHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RXYWl0aW5nV29ya2Zsb3dTdGVwcyA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdFdhaXRpbmdXb3JrZmxvd1N0ZXBzXCI7XG5cdC8qKiBbTGlzdF0gaW1hZ2VidWlsZGVyOkxpc3RXb3JrZmxvd0J1aWxkVmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RXb3JrZmxvd0J1aWxkVmVyc2lvbnMgPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RXb3JrZmxvd0J1aWxkVmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBpbWFnZWJ1aWxkZXI6TGlzdFdvcmtmbG93RXhlY3V0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFdvcmtmbG93RXhlY3V0aW9ucyA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdFdvcmtmbG93RXhlY3V0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGltYWdlYnVpbGRlcjpMaXN0V29ya2Zsb3dTdGVwRXhlY3V0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFdvcmtmbG93U3RlcEV4ZWN1dGlvbnMgPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RXb3JrZmxvd1N0ZXBFeGVjdXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gaW1hZ2VidWlsZGVyOkxpc3RXb3JrZmxvd3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RXb3JrZmxvd3MgPSBcImltYWdlYnVpbGRlcjpMaXN0V29ya2Zsb3dzXCI7XG5cdC8qKiBbUGVybWlzc2lvbk1hbmFnZW1lbnRdIGltYWdlYnVpbGRlcjpQdXRDb21wb25lbnRQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dENvbXBvbmVudFBvbGljeSA9IFwiaW1hZ2VidWlsZGVyOlB1dENvbXBvbmVudFBvbGljeVwiO1xuXHQvKiogW1Blcm1pc3Npb25NYW5hZ2VtZW50XSBpbWFnZWJ1aWxkZXI6UHV0Q29udGFpbmVyUmVjaXBlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRDb250YWluZXJSZWNpcGVQb2xpY3kgPVxuXHRcdFwiaW1hZ2VidWlsZGVyOlB1dENvbnRhaW5lclJlY2lwZVBvbGljeVwiO1xuXHQvKiogW1Blcm1pc3Npb25NYW5hZ2VtZW50XSBpbWFnZWJ1aWxkZXI6UHV0SW1hZ2VQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEltYWdlUG9saWN5ID0gXCJpbWFnZWJ1aWxkZXI6UHV0SW1hZ2VQb2xpY3lcIjtcblx0LyoqIFtQZXJtaXNzaW9uTWFuYWdlbWVudF0gaW1hZ2VidWlsZGVyOlB1dEltYWdlUmVjaXBlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRJbWFnZVJlY2lwZVBvbGljeSA9IFwiaW1hZ2VidWlsZGVyOlB1dEltYWdlUmVjaXBlUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpSZXRyeUltYWdlICovXG5cdHN0YXRpYyByZWFkb25seSBSZXRyeUltYWdlID0gXCJpbWFnZWJ1aWxkZXI6UmV0cnlJbWFnZVwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6U2VuZFdvcmtmbG93U3RlcEFjdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZFdvcmtmbG93U3RlcEFjdGlvbiA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6U2VuZFdvcmtmbG93U3RlcEFjdGlvblwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6U3RhcnRJbWFnZVBpcGVsaW5lRXhlY3V0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydEltYWdlUGlwZWxpbmVFeGVjdXRpb24gPVxuXHRcdFwiaW1hZ2VidWlsZGVyOlN0YXJ0SW1hZ2VQaXBlbGluZUV4ZWN1dGlvblwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6U3RhcnRSZXNvdXJjZVN0YXRlVXBkYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlc291cmNlU3RhdGVVcGRhdGUgPVxuXHRcdFwiaW1hZ2VidWlsZGVyOlN0YXJ0UmVzb3VyY2VTdGF0ZVVwZGF0ZVwiO1xuXHQvKiogW1RhZ2dpbmddIGltYWdlYnVpbGRlcjpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcImltYWdlYnVpbGRlcjpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1RhZ2dpbmddIGltYWdlYnVpbGRlcjpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJpbWFnZWJ1aWxkZXI6VW50YWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6VXBkYXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6VXBkYXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6VXBkYXRlSW1hZ2VQaXBlbGluZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlSW1hZ2VQaXBlbGluZSA9IFwiaW1hZ2VidWlsZGVyOlVwZGF0ZUltYWdlUGlwZWxpbmVcIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOlVwZGF0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uID1cblx0XHRcImltYWdlYnVpbGRlcjpVcGRhdGVJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOlVwZGF0ZUxpZmVjeWNsZVBvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTGlmZWN5Y2xlUG9saWN5ID0gXCJpbWFnZWJ1aWxkZXI6VXBkYXRlTGlmZWN5Y2xlUG9saWN5XCI7XG5cblx0LyoqIEFsbCByZWFkLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxSZWFkQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5hY3Rpb25HZXRDb21wb25lbnQsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5hY3Rpb25HZXRDb21wb25lbnRQb2xpY3ksXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5hY3Rpb25HZXRDb250YWluZXJSZWNpcGUsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5hY3Rpb25HZXRDb250YWluZXJSZWNpcGVQb2xpY3ksXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5hY3Rpb25HZXREaXN0cmlidXRpb25Db25maWd1cmF0aW9uLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuYWN0aW9uR2V0SW1hZ2UsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5hY3Rpb25HZXRJbWFnZVBpcGVsaW5lLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuYWN0aW9uR2V0SW1hZ2VQb2xpY3ksXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5hY3Rpb25HZXRJbWFnZVJlY2lwZSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLmFjdGlvbkdldEltYWdlUmVjaXBlUG9saWN5LFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuYWN0aW9uR2V0SW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuYWN0aW9uR2V0TGlmZWN5Y2xlRXhlY3V0aW9uLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuYWN0aW9uR2V0TGlmZWN5Y2xlUG9saWN5LFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuYWN0aW9uR2V0TWFya2V0cGxhY2VSZXNvdXJjZSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLmFjdGlvbkdldFdvcmtmbG93LFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuYWN0aW9uR2V0V29ya2Zsb3dFeGVjdXRpb24sXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5hY3Rpb25HZXRXb3JrZmxvd1N0ZXBFeGVjdXRpb24sXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5MaXN0VGFnc0ZvclJlc291cmNlLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuQ2FuY2VsSW1hZ2VDcmVhdGlvbixcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkNhbmNlbExpZmVjeWNsZUV4ZWN1dGlvbixcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkNyZWF0ZUNvbXBvbmVudCxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkNyZWF0ZUNvbnRhaW5lclJlY2lwZSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkNyZWF0ZURpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24sXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5DcmVhdGVJbWFnZSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkNyZWF0ZUltYWdlUGlwZWxpbmUsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5DcmVhdGVJbWFnZVJlY2lwZSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkNyZWF0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbixcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkNyZWF0ZUxpZmVjeWNsZVBvbGljeSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkNyZWF0ZVdvcmtmbG93LFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuRGVsZXRlQ29tcG9uZW50LFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuRGVsZXRlQ29udGFpbmVyUmVjaXBlLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuRGVsZXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbixcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkRlbGV0ZUltYWdlLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuRGVsZXRlSW1hZ2VQaXBlbGluZSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkRlbGV0ZUltYWdlUmVjaXBlLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuRGVsZXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuRGVsZXRlTGlmZWN5Y2xlUG9saWN5LFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuRGVsZXRlV29ya2Zsb3csXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5EaXN0cmlidXRlSW1hZ2UsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5JbXBvcnRDb21wb25lbnQsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5JbXBvcnREaXNrSW1hZ2UsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5JbXBvcnRWbUltYWdlLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuUmV0cnlJbWFnZSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLlNlbmRXb3JrZmxvd1N0ZXBBY3Rpb24sXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5TdGFydEltYWdlUGlwZWxpbmVFeGVjdXRpb24sXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5TdGFydFJlc291cmNlU3RhdGVVcGRhdGUsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5VcGRhdGVEaXN0cmlidXRpb25Db25maWd1cmF0aW9uLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuVXBkYXRlSW1hZ2VQaXBlbGluZSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLlVwZGF0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbixcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLlVwZGF0ZUxpZmVjeWNsZVBvbGljeSxcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5MaXN0Q29tcG9uZW50QnVpbGRWZXJzaW9ucyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RDb21wb25lbnRzLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuTGlzdENvbnRhaW5lclJlY2lwZXMsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5MaXN0RGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbnMsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5MaXN0SW1hZ2VCdWlsZFZlcnNpb25zLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuTGlzdEltYWdlUGFja2FnZXMsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5MaXN0SW1hZ2VQaXBlbGluZUltYWdlcyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RJbWFnZVBpcGVsaW5lcyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RJbWFnZVJlY2lwZXMsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5MaXN0SW1hZ2VTY2FuRmluZGluZ0FnZ3JlZ2F0aW9ucyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RJbWFnZVNjYW5GaW5kaW5ncyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RJbWFnZXMsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5MaXN0SW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9ucyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RMaWZlY3ljbGVFeGVjdXRpb25SZXNvdXJjZXMsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5MaXN0TGlmZWN5Y2xlRXhlY3V0aW9ucyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RMaWZlY3ljbGVQb2xpY2llcyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RXYWl0aW5nV29ya2Zsb3dTdGVwcyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RXb3JrZmxvd0J1aWxkVmVyc2lvbnMsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5MaXN0V29ya2Zsb3dFeGVjdXRpb25zLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuTGlzdFdvcmtmbG93U3RlcEV4ZWN1dGlvbnMsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5MaXN0V29ya2Zsb3dzLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLlB1dENvbXBvbmVudFBvbGljeSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLlB1dENvbnRhaW5lclJlY2lwZVBvbGljeSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLlB1dEltYWdlUG9saWN5LFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuUHV0SW1hZ2VSZWNpcGVQb2xpY3ksXG5cdF07XG5cdC8qKiBBbGwgdGFnZ2luZy1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsVGFnZ2luZ0FjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuVGFnUmVzb3VyY2UsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgYWxsQ29tcG9uZW50QnVpbGRWZXJzaW9ucyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyQWxsQ29tcG9uZW50QnVpbGRWZXJzaW9uc0FyblByb3BzIHtcblx0LyoqIFRoZSBDb21wb25lbnROYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29tcG9uZW50VmVyc2lvbiBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29tcG9uZW50VmVyc2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGFsbENvbXBvbmVudEJ1aWxkVmVyc2lvbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlckFsbENvbXBvbmVudEJ1aWxkVmVyc2lvbnNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENvbXBvbmVudE5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29tcG9uZW50VmVyc2lvbiBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbXBvbmVudFZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGFsbEltYWdlQnVpbGRWZXJzaW9ucyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyQWxsSW1hZ2VCdWlsZFZlcnNpb25zQXJuUHJvcHMge1xuXHQvKiogVGhlIEltYWdlTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgaW1hZ2VOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgSW1hZ2VWZXJzaW9uIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpbWFnZVZlcnNpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBhbGxJbWFnZUJ1aWxkVmVyc2lvbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlckFsbEltYWdlQnVpbGRWZXJzaW9uc0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgSW1hZ2VOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaW1hZ2VOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgSW1hZ2VWZXJzaW9uIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaW1hZ2VWZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBhbGxXb3JrZmxvd0J1aWxkVmVyc2lvbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlckFsbFdvcmtmbG93QnVpbGRWZXJzaW9uc0FyblByb3BzIHtcblx0LyoqIFRoZSBXb3JrZmxvd1R5cGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHdvcmtmbG93VHlwZTogc3RyaW5nO1xuXHQvKiogVGhlIFdvcmtmbG93TmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgd29ya2Zsb3dOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgV29ya2Zsb3dWZXJzaW9uIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB3b3JrZmxvd1ZlcnNpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBhbGxXb3JrZmxvd0J1aWxkVmVyc2lvbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlckFsbFdvcmtmbG93QnVpbGRWZXJzaW9uc0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgV29ya2Zsb3dUeXBlIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgd29ya2Zsb3dUeXBlOiBzdHJpbmc7XG5cdC8qKiBUaGUgV29ya2Zsb3dOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgd29ya2Zsb3dOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgV29ya2Zsb3dWZXJzaW9uIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgd29ya2Zsb3dWZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjb21wb25lbnQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlckNvbXBvbmVudEFyblByb3BzIHtcblx0LyoqIFRoZSBDb21wb25lbnROYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29tcG9uZW50VmVyc2lvbiBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29tcG9uZW50VmVyc2lvbjogc3RyaW5nO1xuXHQvKiogVGhlIENvbXBvbmVudEJ1aWxkVmVyc2lvbiBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29tcG9uZW50QnVpbGRWZXJzaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY29tcG9uZW50IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJDb21wb25lbnRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENvbXBvbmVudE5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29tcG9uZW50VmVyc2lvbiBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbXBvbmVudFZlcnNpb246IHN0cmluZztcblx0LyoqIFRoZSBDb21wb25lbnRCdWlsZFZlcnNpb24gY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb21wb25lbnRCdWlsZFZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGNvbnRhaW5lclJlY2lwZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyQ29udGFpbmVyUmVjaXBlQXJuUHJvcHMge1xuXHQvKiogVGhlIENvbnRhaW5lclJlY2lwZU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvbnRhaW5lclJlY2lwZU5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb250YWluZXJSZWNpcGVWZXJzaW9uIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb250YWluZXJSZWNpcGVWZXJzaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY29udGFpbmVyUmVjaXBlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJDb250YWluZXJSZWNpcGVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENvbnRhaW5lclJlY2lwZU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb250YWluZXJSZWNpcGVOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29udGFpbmVyUmVjaXBlVmVyc2lvbiBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbnRhaW5lclJlY2lwZVZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlckRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25OYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkaXN0cmlidXRpb25Db25maWd1cmF0aW9uTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgaW1hZ2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlckltYWdlQXJuUHJvcHMge1xuXHQvKiogVGhlIEltYWdlTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgaW1hZ2VOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgSW1hZ2VWZXJzaW9uIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpbWFnZVZlcnNpb246IHN0cmluZztcblx0LyoqIFRoZSBJbWFnZUJ1aWxkVmVyc2lvbiBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgaW1hZ2VCdWlsZFZlcnNpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBpbWFnZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVySW1hZ2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEltYWdlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGltYWdlTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIEltYWdlVmVyc2lvbiBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGltYWdlVmVyc2lvbjogc3RyaW5nO1xuXHQvKiogVGhlIEltYWdlQnVpbGRWZXJzaW9uIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaW1hZ2VCdWlsZFZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGltYWdlUGlwZWxpbmUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlckltYWdlUGlwZWxpbmVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgSW1hZ2VQaXBlbGluZU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGltYWdlUGlwZWxpbmVOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgaW1hZ2VQaXBlbGluZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVySW1hZ2VQaXBlbGluZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgSW1hZ2VQaXBlbGluZU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBpbWFnZVBpcGVsaW5lTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgaW1hZ2VSZWNpcGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlckltYWdlUmVjaXBlQXJuUHJvcHMge1xuXHQvKiogVGhlIEltYWdlUmVjaXBlTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgaW1hZ2VSZWNpcGVOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgSW1hZ2VSZWNpcGVWZXJzaW9uIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpbWFnZVJlY2lwZVZlcnNpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBpbWFnZVJlY2lwZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVySW1hZ2VSZWNpcGVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEltYWdlUmVjaXBlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGltYWdlUmVjaXBlTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIEltYWdlUmVjaXBlVmVyc2lvbiBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGltYWdlUmVjaXBlVmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgaW1hZ2VWZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJJbWFnZVZlcnNpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgSW1hZ2VOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpbWFnZU5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBJbWFnZVZlcnNpb24gY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGltYWdlVmVyc2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGltYWdlVmVyc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVySW1hZ2VWZXJzaW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBJbWFnZU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBpbWFnZU5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBJbWFnZVZlcnNpb24gY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBpbWFnZVZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVySW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBpbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlckluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGxpZmVjeWNsZUV4ZWN1dGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyTGlmZWN5Y2xlRXhlY3V0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIExpZmVjeWNsZUV4ZWN1dGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBsaWZlY3ljbGVFeGVjdXRpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGxpZmVjeWNsZUV4ZWN1dGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyTGlmZWN5Y2xlRXhlY3V0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBMaWZlY3ljbGVFeGVjdXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGxpZmVjeWNsZUV4ZWN1dGlvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBsaWZlY3ljbGVQb2xpY3kgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlckxpZmVjeWNsZVBvbGljeUFyblByb3BzIHtcblx0LyoqIFRoZSBMaWZlY3ljbGVQb2xpY3lOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBsaWZlY3ljbGVQb2xpY3lOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgbGlmZWN5Y2xlUG9saWN5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJMaWZlY3ljbGVQb2xpY3lBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIExpZmVjeWNsZVBvbGljeU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBsaWZlY3ljbGVQb2xpY3lOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSB3b3JrZmxvdyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyV29ya2Zsb3dBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgV29ya2Zsb3dUeXBlIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB3b3JrZmxvd1R5cGU6IHN0cmluZztcblx0LyoqIFRoZSBXb3JrZmxvd05hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHdvcmtmbG93TmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFdvcmtmbG93VmVyc2lvbiBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgd29ya2Zsb3dWZXJzaW9uOiBzdHJpbmc7XG5cdC8qKiBUaGUgV29ya2Zsb3dCdWlsZFZlcnNpb24gY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHdvcmtmbG93QnVpbGRWZXJzaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgd29ya2Zsb3cgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlcldvcmtmbG93QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBXb3JrZmxvd1R5cGUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB3b3JrZmxvd1R5cGU6IHN0cmluZztcblx0LyoqIFRoZSBXb3JrZmxvd05hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcblx0LyoqIFRoZSBXb3JrZmxvd1ZlcnNpb24gY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB3b3JrZmxvd1ZlcnNpb246IHN0cmluZztcblx0LyoqIFRoZSBXb3JrZmxvd0J1aWxkVmVyc2lvbiBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHdvcmtmbG93QnVpbGRWZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSB3b3JrZmxvd0V4ZWN1dGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyV29ya2Zsb3dFeGVjdXRpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgV29ya2Zsb3dFeGVjdXRpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgd29ya2Zsb3dFeGVjdXRpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHdvcmtmbG93RXhlY3V0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJXb3JrZmxvd0V4ZWN1dGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgV29ya2Zsb3dFeGVjdXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHdvcmtmbG93RXhlY3V0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHdvcmtmbG93U3RlcEV4ZWN1dGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyV29ya2Zsb3dTdGVwRXhlY3V0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIFdvcmtmbG93U3RlcEV4ZWN1dGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB3b3JrZmxvd1N0ZXBFeGVjdXRpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHdvcmtmbG93U3RlcEV4ZWN1dGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyV29ya2Zsb3dTdGVwRXhlY3V0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBXb3JrZmxvd1N0ZXBFeGVjdXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHdvcmtmbG93U3RlcEV4ZWN1dGlvbklkOiBzdHJpbmc7XG59XG5cbmNvbnN0IEFsbENvbXBvbmVudEJ1aWxkVmVyc2lvbnNBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6aW1hZ2VidWlsZGVyOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y29tcG9uZW50XFwvKD88Y29tcG9uZW50TmFtZT5bXjovP10rKVxcLyg/PGNvbXBvbmVudFZlcnNpb24+W146Lz9dKylcXC8uKiQvO1xuY29uc3QgQWxsSW1hZ2VCdWlsZFZlcnNpb25zQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmltYWdlYnVpbGRlcjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmltYWdlXFwvKD88aW1hZ2VOYW1lPlteOi8/XSspXFwvKD88aW1hZ2VWZXJzaW9uPlteOi8/XSspXFwvLiokLztcbmNvbnN0IEFsbFdvcmtmbG93QnVpbGRWZXJzaW9uc0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTppbWFnZWJ1aWxkZXI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTp3b3JrZmxvd1xcLyg/PHdvcmtmbG93VHlwZT5bXjovP10rKVxcLyg/PHdvcmtmbG93TmFtZT5bXjovP10rKVxcLyg/PHdvcmtmbG93VmVyc2lvbj5bXjovP10rKVxcLy4qJC87XG5jb25zdCBDb21wb25lbnRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6aW1hZ2VidWlsZGVyOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y29tcG9uZW50XFwvKD88Y29tcG9uZW50TmFtZT5bXjovP10rKVxcLyg/PGNvbXBvbmVudFZlcnNpb24+W146Lz9dKylcXC8oPzxjb21wb25lbnRCdWlsZFZlcnNpb24+W146Lz9dKykkLztcbmNvbnN0IENvbnRhaW5lclJlY2lwZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTppbWFnZWJ1aWxkZXI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjb250YWluZXItcmVjaXBlXFwvKD88Y29udGFpbmVyUmVjaXBlTmFtZT5bXjovP10rKVxcLyg/PGNvbnRhaW5lclJlY2lwZVZlcnNpb24+W146Lz9dKykkLztcbmNvbnN0IERpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6aW1hZ2VidWlsZGVyOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGlzdHJpYnV0aW9uLWNvbmZpZ3VyYXRpb25cXC8oPzxkaXN0cmlidXRpb25Db25maWd1cmF0aW9uTmFtZT5bXjovP10rKSQvO1xuY29uc3QgSW1hZ2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6aW1hZ2VidWlsZGVyOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6aW1hZ2VcXC8oPzxpbWFnZU5hbWU+W146Lz9dKylcXC8oPzxpbWFnZVZlcnNpb24+W146Lz9dKylcXC8oPzxpbWFnZUJ1aWxkVmVyc2lvbj5bXjovP10rKSQvO1xuY29uc3QgSW1hZ2VQaXBlbGluZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTppbWFnZWJ1aWxkZXI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTppbWFnZS1waXBlbGluZVxcLyg/PGltYWdlUGlwZWxpbmVOYW1lPlteOi8/XSspJC87XG5jb25zdCBJbWFnZVJlY2lwZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTppbWFnZWJ1aWxkZXI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTppbWFnZS1yZWNpcGVcXC8oPzxpbWFnZVJlY2lwZU5hbWU+W146Lz9dKylcXC8oPzxpbWFnZVJlY2lwZVZlcnNpb24+W146Lz9dKykkLztcbmNvbnN0IEltYWdlVmVyc2lvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTppbWFnZWJ1aWxkZXI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTppbWFnZVxcLyg/PGltYWdlTmFtZT5bXjovP10rKVxcLyg/PGltYWdlVmVyc2lvbj5bXjovP10rKSQvO1xuY29uc3QgSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmltYWdlYnVpbGRlcjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmluZnJhc3RydWN0dXJlLWNvbmZpZ3VyYXRpb25cXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBMaWZlY3ljbGVFeGVjdXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6aW1hZ2VidWlsZGVyOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6bGlmZWN5Y2xlLWV4ZWN1dGlvblxcLyg/PGxpZmVjeWNsZUV4ZWN1dGlvbklkPlteOi8/XSspJC87XG5jb25zdCBMaWZlY3ljbGVQb2xpY3lBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6aW1hZ2VidWlsZGVyOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6bGlmZWN5Y2xlLXBvbGljeVxcLyg/PGxpZmVjeWNsZVBvbGljeU5hbWU+W146Lz9dKykkLztcbmNvbnN0IFdvcmtmbG93QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmltYWdlYnVpbGRlcjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOndvcmtmbG93XFwvKD88d29ya2Zsb3dUeXBlPlteOi8/XSspXFwvKD88d29ya2Zsb3dOYW1lPlteOi8/XSspXFwvKD88d29ya2Zsb3dWZXJzaW9uPlteOi8/XSspXFwvKD88d29ya2Zsb3dCdWlsZFZlcnNpb24+W146Lz9dKykkLztcbmNvbnN0IFdvcmtmbG93RXhlY3V0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmltYWdlYnVpbGRlcjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOndvcmtmbG93LWV4ZWN1dGlvblxcLyg/PHdvcmtmbG93RXhlY3V0aW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IFdvcmtmbG93U3RlcEV4ZWN1dGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTppbWFnZWJ1aWxkZXI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTp3b3JrZmxvdy1zdGVwLWV4ZWN1dGlvblxcLyg/PHdvcmtmbG93U3RlcEV4ZWN1dGlvbklkPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3IgaW1hZ2VidWlsZGVyIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEltYWdlQnVpbGRlclJlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgYWxsQ29tcG9uZW50QnVpbGRWZXJzaW9ucyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBhbGxDb21wb25lbnRCdWlsZFZlcnNpb25zKFxuXHRcdHByb3BzOiBJbWFnZUJ1aWxkZXJBbGxDb21wb25lbnRCdWlsZFZlcnNpb25zQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06aW1hZ2VidWlsZGVyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNvbXBvbmVudC8ke3Byb3BzLmNvbXBvbmVudE5hbWV9LyR7cHJvcHMuY29tcG9uZW50VmVyc2lvbn0vKmA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhbGxDb21wb25lbnRCdWlsZFZlcnNpb25zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRBbGxDb21wb25lbnRCdWlsZFZlcnNpb25zQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEFsbENvbXBvbmVudEJ1aWxkVmVyc2lvbnNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgYWxsQ29tcG9uZW50QnVpbGRWZXJzaW9ucyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VBbGxDb21wb25lbnRCdWlsZFZlcnNpb25zQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBJbWFnZUJ1aWxkZXJBbGxDb21wb25lbnRCdWlsZFZlcnNpb25zQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBbGxDb21wb25lbnRCdWlsZFZlcnNpb25zQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFsbENvbXBvbmVudEJ1aWxkVmVyc2lvbnMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29tcG9uZW50TmFtZTogbWF0Y2guZ3JvdXBzIS5jb21wb25lbnROYW1lLFxuXHRcdFx0Y29tcG9uZW50VmVyc2lvbjogbWF0Y2guZ3JvdXBzIS5jb21wb25lbnRWZXJzaW9uLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGFsbEltYWdlQnVpbGRWZXJzaW9ucyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBhbGxJbWFnZUJ1aWxkVmVyc2lvbnMoXG5cdFx0cHJvcHM6IEltYWdlQnVpbGRlckFsbEltYWdlQnVpbGRWZXJzaW9uc0FyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmltYWdlYnVpbGRlcjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTppbWFnZS8ke3Byb3BzLmltYWdlTmFtZX0vJHtwcm9wcy5pbWFnZVZlcnNpb259LypgO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgYWxsSW1hZ2VCdWlsZFZlcnNpb25zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRBbGxJbWFnZUJ1aWxkVmVyc2lvbnNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQWxsSW1hZ2VCdWlsZFZlcnNpb25zQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGFsbEltYWdlQnVpbGRWZXJzaW9ucyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VBbGxJbWFnZUJ1aWxkVmVyc2lvbnNBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEltYWdlQnVpbGRlckFsbEltYWdlQnVpbGRWZXJzaW9uc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQWxsSW1hZ2VCdWlsZFZlcnNpb25zQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFsbEltYWdlQnVpbGRWZXJzaW9ucyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRpbWFnZU5hbWU6IG1hdGNoLmdyb3VwcyEuaW1hZ2VOYW1lLFxuXHRcdFx0aW1hZ2VWZXJzaW9uOiBtYXRjaC5ncm91cHMhLmltYWdlVmVyc2lvbixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBhbGxXb3JrZmxvd0J1aWxkVmVyc2lvbnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgYWxsV29ya2Zsb3dCdWlsZFZlcnNpb25zKFxuXHRcdHByb3BzOiBJbWFnZUJ1aWxkZXJBbGxXb3JrZmxvd0J1aWxkVmVyc2lvbnNBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTppbWFnZWJ1aWxkZXI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06d29ya2Zsb3cvJHtwcm9wcy53b3JrZmxvd1R5cGV9LyR7cHJvcHMud29ya2Zsb3dOYW1lfS8ke3Byb3BzLndvcmtmbG93VmVyc2lvbn0vKmA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhbGxXb3JrZmxvd0J1aWxkVmVyc2lvbnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEFsbFdvcmtmbG93QnVpbGRWZXJzaW9uc0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBBbGxXb3JrZmxvd0J1aWxkVmVyc2lvbnNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgYWxsV29ya2Zsb3dCdWlsZFZlcnNpb25zIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUFsbFdvcmtmbG93QnVpbGRWZXJzaW9uc0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogSW1hZ2VCdWlsZGVyQWxsV29ya2Zsb3dCdWlsZFZlcnNpb25zQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBbGxXb3JrZmxvd0J1aWxkVmVyc2lvbnNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYWxsV29ya2Zsb3dCdWlsZFZlcnNpb25zIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHdvcmtmbG93VHlwZTogbWF0Y2guZ3JvdXBzIS53b3JrZmxvd1R5cGUsXG5cdFx0XHR3b3JrZmxvd05hbWU6IG1hdGNoLmdyb3VwcyEud29ya2Zsb3dOYW1lLFxuXHRcdFx0d29ya2Zsb3dWZXJzaW9uOiBtYXRjaC5ncm91cHMhLndvcmtmbG93VmVyc2lvbixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBjb21wb25lbnQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29tcG9uZW50KHByb3BzOiBJbWFnZUJ1aWxkZXJDb21wb25lbnRBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06aW1hZ2VidWlsZGVyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNvbXBvbmVudC8ke3Byb3BzLmNvbXBvbmVudE5hbWV9LyR7cHJvcHMuY29tcG9uZW50VmVyc2lvbn0vJHtwcm9wcy5jb21wb25lbnRCdWlsZFZlcnNpb259YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGNvbXBvbmVudCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ29tcG9uZW50QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbXBvbmVudEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjb21wb25lbnQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ29tcG9uZW50QXJuKGFybjogc3RyaW5nKTogSW1hZ2VCdWlsZGVyQ29tcG9uZW50QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb21wb25lbnRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29tcG9uZW50IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNvbXBvbmVudE5hbWU6IG1hdGNoLmdyb3VwcyEuY29tcG9uZW50TmFtZSxcblx0XHRcdGNvbXBvbmVudFZlcnNpb246IG1hdGNoLmdyb3VwcyEuY29tcG9uZW50VmVyc2lvbixcblx0XHRcdGNvbXBvbmVudEJ1aWxkVmVyc2lvbjogbWF0Y2guZ3JvdXBzIS5jb21wb25lbnRCdWlsZFZlcnNpb24sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY29udGFpbmVyUmVjaXBlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvbnRhaW5lclJlY2lwZShwcm9wczogSW1hZ2VCdWlsZGVyQ29udGFpbmVyUmVjaXBlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmltYWdlYnVpbGRlcjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjb250YWluZXItcmVjaXBlLyR7cHJvcHMuY29udGFpbmVyUmVjaXBlTmFtZX0vJHtwcm9wcy5jb250YWluZXJSZWNpcGVWZXJzaW9ufWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjb250YWluZXJSZWNpcGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvbnRhaW5lclJlY2lwZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDb250YWluZXJSZWNpcGVBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY29udGFpbmVyUmVjaXBlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbnRhaW5lclJlY2lwZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogSW1hZ2VCdWlsZGVyQ29udGFpbmVyUmVjaXBlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb250YWluZXJSZWNpcGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29udGFpbmVyUmVjaXBlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNvbnRhaW5lclJlY2lwZU5hbWU6IG1hdGNoLmdyb3VwcyEuY29udGFpbmVyUmVjaXBlTmFtZSxcblx0XHRcdGNvbnRhaW5lclJlY2lwZVZlcnNpb246IG1hdGNoLmdyb3VwcyEuY29udGFpbmVyUmVjaXBlVmVyc2lvbixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBkaXN0cmlidXRpb25Db25maWd1cmF0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24oXG5cdFx0cHJvcHM6IEltYWdlQnVpbGRlckRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTppbWFnZWJ1aWxkZXI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZGlzdHJpYnV0aW9uLWNvbmZpZ3VyYXRpb24vJHtwcm9wcy5kaXN0cmlidXRpb25Db25maWd1cmF0aW9uTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBEaXN0cmlidXRpb25Db25maWd1cmF0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogSW1hZ2VCdWlsZGVyRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkaXN0cmlidXRpb25Db25maWd1cmF0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25OYW1lOlxuXHRcdFx0XHRtYXRjaC5ncm91cHMhLmRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25OYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGltYWdlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGltYWdlKHByb3BzOiBJbWFnZUJ1aWxkZXJJbWFnZUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTppbWFnZWJ1aWxkZXI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06aW1hZ2UvJHtwcm9wcy5pbWFnZU5hbWV9LyR7cHJvcHMuaW1hZ2VWZXJzaW9ufS8ke3Byb3BzLmltYWdlQnVpbGRWZXJzaW9ufWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBpbWFnZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkSW1hZ2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSW1hZ2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgaW1hZ2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlSW1hZ2VBcm4oYXJuOiBzdHJpbmcpOiBJbWFnZUJ1aWxkZXJJbWFnZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSW1hZ2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaW1hZ2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0aW1hZ2VOYW1lOiBtYXRjaC5ncm91cHMhLmltYWdlTmFtZSxcblx0XHRcdGltYWdlVmVyc2lvbjogbWF0Y2guZ3JvdXBzIS5pbWFnZVZlcnNpb24sXG5cdFx0XHRpbWFnZUJ1aWxkVmVyc2lvbjogbWF0Y2guZ3JvdXBzIS5pbWFnZUJ1aWxkVmVyc2lvbixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBpbWFnZVBpcGVsaW5lIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGltYWdlUGlwZWxpbmUocHJvcHM6IEltYWdlQnVpbGRlckltYWdlUGlwZWxpbmVBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06aW1hZ2VidWlsZGVyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmltYWdlLXBpcGVsaW5lLyR7cHJvcHMuaW1hZ2VQaXBlbGluZU5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGltYWdlUGlwZWxpbmUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEltYWdlUGlwZWxpbmVBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSW1hZ2VQaXBlbGluZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBpbWFnZVBpcGVsaW5lIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUltYWdlUGlwZWxpbmVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEltYWdlQnVpbGRlckltYWdlUGlwZWxpbmVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEltYWdlUGlwZWxpbmVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaW1hZ2VQaXBlbGluZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRpbWFnZVBpcGVsaW5lTmFtZTogbWF0Y2guZ3JvdXBzIS5pbWFnZVBpcGVsaW5lTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBpbWFnZVJlY2lwZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpbWFnZVJlY2lwZShwcm9wczogSW1hZ2VCdWlsZGVySW1hZ2VSZWNpcGVBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06aW1hZ2VidWlsZGVyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmltYWdlLXJlY2lwZS8ke3Byb3BzLmltYWdlUmVjaXBlTmFtZX0vJHtwcm9wcy5pbWFnZVJlY2lwZVZlcnNpb259YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGltYWdlUmVjaXBlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRJbWFnZVJlY2lwZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBJbWFnZVJlY2lwZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBpbWFnZVJlY2lwZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VJbWFnZVJlY2lwZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogSW1hZ2VCdWlsZGVySW1hZ2VSZWNpcGVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEltYWdlUmVjaXBlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGltYWdlUmVjaXBlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGltYWdlUmVjaXBlTmFtZTogbWF0Y2guZ3JvdXBzIS5pbWFnZVJlY2lwZU5hbWUsXG5cdFx0XHRpbWFnZVJlY2lwZVZlcnNpb246IG1hdGNoLmdyb3VwcyEuaW1hZ2VSZWNpcGVWZXJzaW9uLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGltYWdlVmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpbWFnZVZlcnNpb24ocHJvcHM6IEltYWdlQnVpbGRlckltYWdlVmVyc2lvbkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTppbWFnZWJ1aWxkZXI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06aW1hZ2UvJHtwcm9wcy5pbWFnZU5hbWV9LyR7cHJvcHMuaW1hZ2VWZXJzaW9ufWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBpbWFnZVZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEltYWdlVmVyc2lvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBJbWFnZVZlcnNpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgaW1hZ2VWZXJzaW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUltYWdlVmVyc2lvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogSW1hZ2VCdWlsZGVySW1hZ2VWZXJzaW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBJbWFnZVZlcnNpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaW1hZ2VWZXJzaW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGltYWdlTmFtZTogbWF0Y2guZ3JvdXBzIS5pbWFnZU5hbWUsXG5cdFx0XHRpbWFnZVZlcnNpb246IG1hdGNoLmdyb3VwcyEuaW1hZ2VWZXJzaW9uLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24oXG5cdFx0cHJvcHM6IEltYWdlQnVpbGRlckluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmltYWdlYnVpbGRlcjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTppbmZyYXN0cnVjdHVyZS1jb25maWd1cmF0aW9uLyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgaW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEltYWdlQnVpbGRlckluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgbGlmZWN5Y2xlRXhlY3V0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGxpZmVjeWNsZUV4ZWN1dGlvbihcblx0XHRwcm9wczogSW1hZ2VCdWlsZGVyTGlmZWN5Y2xlRXhlY3V0aW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06aW1hZ2VidWlsZGVyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmxpZmVjeWNsZS1leGVjdXRpb24vJHtwcm9wcy5saWZlY3ljbGVFeGVjdXRpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgbGlmZWN5Y2xlRXhlY3V0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRMaWZlY3ljbGVFeGVjdXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTGlmZWN5Y2xlRXhlY3V0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGxpZmVjeWNsZUV4ZWN1dGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VMaWZlY3ljbGVFeGVjdXRpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEltYWdlQnVpbGRlckxpZmVjeWNsZUV4ZWN1dGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gTGlmZWN5Y2xlRXhlY3V0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGxpZmVjeWNsZUV4ZWN1dGlvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRsaWZlY3ljbGVFeGVjdXRpb25JZDogbWF0Y2guZ3JvdXBzIS5saWZlY3ljbGVFeGVjdXRpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBsaWZlY3ljbGVQb2xpY3kgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgbGlmZWN5Y2xlUG9saWN5KHByb3BzOiBJbWFnZUJ1aWxkZXJMaWZlY3ljbGVQb2xpY3lBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06aW1hZ2VidWlsZGVyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmxpZmVjeWNsZS1wb2xpY3kvJHtwcm9wcy5saWZlY3ljbGVQb2xpY3lOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBsaWZlY3ljbGVQb2xpY3kgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZExpZmVjeWNsZVBvbGljeUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBMaWZlY3ljbGVQb2xpY3lBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgbGlmZWN5Y2xlUG9saWN5IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUxpZmVjeWNsZVBvbGljeUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogSW1hZ2VCdWlsZGVyTGlmZWN5Y2xlUG9saWN5QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBMaWZlY3ljbGVQb2xpY3lBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbGlmZWN5Y2xlUG9saWN5IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGxpZmVjeWNsZVBvbGljeU5hbWU6IG1hdGNoLmdyb3VwcyEubGlmZWN5Y2xlUG9saWN5TmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB3b3JrZmxvdyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB3b3JrZmxvdyhwcm9wczogSW1hZ2VCdWlsZGVyV29ya2Zsb3dBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06aW1hZ2VidWlsZGVyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OndvcmtmbG93LyR7cHJvcHMud29ya2Zsb3dUeXBlfS8ke3Byb3BzLndvcmtmbG93TmFtZX0vJHtwcm9wcy53b3JrZmxvd1ZlcnNpb259LyR7cHJvcHMud29ya2Zsb3dCdWlsZFZlcnNpb259YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHdvcmtmbG93IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRXb3JrZmxvd0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBXb3JrZmxvd0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSB3b3JrZmxvdyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VXb3JrZmxvd0Fybihhcm46IHN0cmluZyk6IEltYWdlQnVpbGRlcldvcmtmbG93QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBXb3JrZmxvd0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB3b3JrZmxvdyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHR3b3JrZmxvd1R5cGU6IG1hdGNoLmdyb3VwcyEud29ya2Zsb3dUeXBlLFxuXHRcdFx0d29ya2Zsb3dOYW1lOiBtYXRjaC5ncm91cHMhLndvcmtmbG93TmFtZSxcblx0XHRcdHdvcmtmbG93VmVyc2lvbjogbWF0Y2guZ3JvdXBzIS53b3JrZmxvd1ZlcnNpb24sXG5cdFx0XHR3b3JrZmxvd0J1aWxkVmVyc2lvbjogbWF0Y2guZ3JvdXBzIS53b3JrZmxvd0J1aWxkVmVyc2lvbixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB3b3JrZmxvd0V4ZWN1dGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB3b3JrZmxvd0V4ZWN1dGlvbihcblx0XHRwcm9wczogSW1hZ2VCdWlsZGVyV29ya2Zsb3dFeGVjdXRpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTppbWFnZWJ1aWxkZXI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06d29ya2Zsb3ctZXhlY3V0aW9uLyR7cHJvcHMud29ya2Zsb3dFeGVjdXRpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgd29ya2Zsb3dFeGVjdXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFdvcmtmbG93RXhlY3V0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFdvcmtmbG93RXhlY3V0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHdvcmtmbG93RXhlY3V0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVdvcmtmbG93RXhlY3V0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBJbWFnZUJ1aWxkZXJXb3JrZmxvd0V4ZWN1dGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gV29ya2Zsb3dFeGVjdXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgd29ya2Zsb3dFeGVjdXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0d29ya2Zsb3dFeGVjdXRpb25JZDogbWF0Y2guZ3JvdXBzIS53b3JrZmxvd0V4ZWN1dGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHdvcmtmbG93U3RlcEV4ZWN1dGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB3b3JrZmxvd1N0ZXBFeGVjdXRpb24oXG5cdFx0cHJvcHM6IEltYWdlQnVpbGRlcldvcmtmbG93U3RlcEV4ZWN1dGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmltYWdlYnVpbGRlcjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTp3b3JrZmxvdy1zdGVwLWV4ZWN1dGlvbi8ke3Byb3BzLndvcmtmbG93U3RlcEV4ZWN1dGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSB3b3JrZmxvd1N0ZXBFeGVjdXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFdvcmtmbG93U3RlcEV4ZWN1dGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBXb3JrZmxvd1N0ZXBFeGVjdXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgd29ya2Zsb3dTdGVwRXhlY3V0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVdvcmtmbG93U3RlcEV4ZWN1dGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogSW1hZ2VCdWlsZGVyV29ya2Zsb3dTdGVwRXhlY3V0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBXb3JrZmxvd1N0ZXBFeGVjdXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgd29ya2Zsb3dTdGVwRXhlY3V0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHdvcmtmbG93U3RlcEV4ZWN1dGlvbklkOiBtYXRjaC5ncm91cHMhLndvcmtmbG93U3RlcEV4ZWN1dGlvbklkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGltYWdlYnVpbGRlci5cbiAqL1xuZXhwb3J0IGNsYXNzIEltYWdlQnVpbGRlck9wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDYW5jZWxJbWFnZUNyZWF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsSW1hZ2VDcmVhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q2FuY2VsSW1hZ2VDcmVhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDYW5jZWxMaWZlY3ljbGVFeGVjdXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxMaWZlY3ljbGVFeGVjdXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkNhbmNlbExpZmVjeWNsZUV4ZWN1dGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDb21wb25lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb21wb25lbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkNyZWF0ZUNvbXBvbmVudFwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNvbnRhaW5lclJlY2lwZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbnRhaW5lclJlY2lwZTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q3JlYXRlQ29udGFpbmVyUmVjaXBlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0Q29tcG9uZW50XCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0SW1hZ2VcIixcblx0XHRcImltYWdlYnVpbGRlcjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVEaXN0cmlidXRpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q3JlYXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlSW1hZ2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVJbWFnZTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q3JlYXRlSW1hZ2VcIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXRDb250YWluZXJSZWNpcGVcIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXREaXN0cmlidXRpb25Db25maWd1cmF0aW9uXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0SW1hZ2VSZWNpcGVcIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXRJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25cIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXRXb3JrZmxvd1wiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlSW1hZ2VQaXBlbGluZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUltYWdlUGlwZWxpbmU6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkNyZWF0ZUltYWdlUGlwZWxpbmVcIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXRDb250YWluZXJSZWNpcGVcIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXREaXN0cmlidXRpb25Db25maWd1cmF0aW9uXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0SW1hZ2VSZWNpcGVcIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXRJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25cIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXRXb3JrZmxvd1wiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlSW1hZ2VSZWNpcGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVJbWFnZVJlY2lwZTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q3JlYXRlSW1hZ2VSZWNpcGVcIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXRDb21wb25lbnRcIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXRJbWFnZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q3JlYXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uXCIsXG5cdFx0XCJpYW06R2V0SW5zdGFuY2VQcm9maWxlXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImltYWdlYnVpbGRlcjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVMaWZlY3ljbGVQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVMaWZlY3ljbGVQb2xpY3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkNyZWF0ZUxpZmVjeWNsZVBvbGljeVwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlV29ya2Zsb3cgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVXb3JrZmxvdzogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q3JlYXRlV29ya2Zsb3dcIixcblx0XHRcImltYWdlYnVpbGRlcjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVDb21wb25lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb21wb25lbnQ6IHN0cmluZ1tdID0gW1wiaW1hZ2VidWlsZGVyOkRlbGV0ZUNvbXBvbmVudFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ29udGFpbmVyUmVjaXBlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ29udGFpbmVyUmVjaXBlOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpEZWxldGVDb250YWluZXJSZWNpcGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkRlbGV0ZURpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlSW1hZ2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVJbWFnZTogc3RyaW5nW10gPSBbXCJpbWFnZWJ1aWxkZXI6RGVsZXRlSW1hZ2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUltYWdlUGlwZWxpbmUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVJbWFnZVBpcGVsaW5lOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpEZWxldGVJbWFnZVBpcGVsaW5lXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUltYWdlUmVjaXBlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSW1hZ2VSZWNpcGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkRlbGV0ZUltYWdlUmVjaXBlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6RGVsZXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUxpZmVjeWNsZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUxpZmVjeWNsZVBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6RGVsZXRlTGlmZWN5Y2xlUG9saWN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVdvcmtmbG93IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlV29ya2Zsb3c6IHN0cmluZ1tdID0gW1wiaW1hZ2VidWlsZGVyOkRlbGV0ZVdvcmtmbG93XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEaXN0cmlidXRlSW1hZ2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXN0cmlidXRlSW1hZ2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkRpc3RyaWJ1dGVJbWFnZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldERpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXRJbWFnZVwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q29tcG9uZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDb21wb25lbnQ6IHN0cmluZ1tdID0gW1wiaW1hZ2VidWlsZGVyOkdldENvbXBvbmVudFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q29tcG9uZW50UG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDb21wb25lbnRQb2xpY3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkdldENvbXBvbmVudFBvbGljeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDb250YWluZXJSZWNpcGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENvbnRhaW5lclJlY2lwZTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0Q29udGFpbmVyUmVjaXBlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvbnRhaW5lclJlY2lwZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q29udGFpbmVyUmVjaXBlUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpHZXRDb250YWluZXJSZWNpcGVQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0RGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRJbWFnZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0SW1hZ2U6IHN0cmluZ1tdID0gW1wiaW1hZ2VidWlsZGVyOkdldEltYWdlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRJbWFnZVBpcGVsaW5lIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRJbWFnZVBpcGVsaW5lOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpHZXRJbWFnZVBpcGVsaW5lXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEltYWdlUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRJbWFnZVBvbGljeTogc3RyaW5nW10gPSBbXCJpbWFnZWJ1aWxkZXI6R2V0SW1hZ2VQb2xpY3lcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEltYWdlUmVjaXBlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRJbWFnZVJlY2lwZTogc3RyaW5nW10gPSBbXCJpbWFnZWJ1aWxkZXI6R2V0SW1hZ2VSZWNpcGVcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEltYWdlUmVjaXBlUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRJbWFnZVJlY2lwZVBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0SW1hZ2VSZWNpcGVQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkdldEluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRMaWZlY3ljbGVFeGVjdXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldExpZmVjeWNsZUV4ZWN1dGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0TGlmZWN5Y2xlRXhlY3V0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldExpZmVjeWNsZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TGlmZWN5Y2xlUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpHZXRMaWZlY3ljbGVQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TWFya2V0cGxhY2VSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TWFya2V0cGxhY2VSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0TWFya2V0cGxhY2VSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRXb3JrZmxvdyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0V29ya2Zsb3c6IHN0cmluZ1tdID0gW1wiaW1hZ2VidWlsZGVyOkdldFdvcmtmbG93XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRXb3JrZmxvd0V4ZWN1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0V29ya2Zsb3dFeGVjdXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkdldFdvcmtmbG93RXhlY3V0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFdvcmtmbG93U3RlcEV4ZWN1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0V29ya2Zsb3dTdGVwRXhlY3V0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpHZXRXb3JrZmxvd1N0ZXBFeGVjdXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgSW1wb3J0Q29tcG9uZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW1wb3J0Q29tcG9uZW50OiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbXBvcnREaXNrSW1hZ2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBJbXBvcnREaXNrSW1hZ2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkdldEluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvblwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkltcG9ydERpc2tJbWFnZVwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgSW1wb3J0Vm1JbWFnZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEltcG9ydFZtSW1hZ2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkltcG9ydFZtSW1hZ2VcIixcblx0XHRcImltYWdlYnVpbGRlcjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q29tcG9uZW50QnVpbGRWZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb21wb25lbnRCdWlsZFZlcnNpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpMaXN0Q29tcG9uZW50QnVpbGRWZXJzaW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q29tcG9uZW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb21wb25lbnRzOiBzdHJpbmdbXSA9IFtcImltYWdlYnVpbGRlcjpMaXN0Q29tcG9uZW50c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENvbnRhaW5lclJlY2lwZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29udGFpbmVyUmVjaXBlczogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdENvbnRhaW5lclJlY2lwZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpMaXN0RGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEltYWdlQnVpbGRWZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbWFnZUJ1aWxkVmVyc2lvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RJbWFnZUJ1aWxkVmVyc2lvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEltYWdlUGFja2FnZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW1hZ2VQYWNrYWdlczogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdEltYWdlUGFja2FnZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEltYWdlUGlwZWxpbmVJbWFnZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW1hZ2VQaXBlbGluZUltYWdlczogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdEltYWdlUGlwZWxpbmVJbWFnZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEltYWdlUGlwZWxpbmVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEltYWdlUGlwZWxpbmVzOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpMaXN0SW1hZ2VQaXBlbGluZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEltYWdlUmVjaXBlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbWFnZVJlY2lwZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RJbWFnZVJlY2lwZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEltYWdlU2NhbkZpbmRpbmdBZ2dyZWdhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW1hZ2VTY2FuRmluZGluZ0FnZ3JlZ2F0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdEltYWdlU2NhbkZpbmRpbmdBZ2dyZWdhdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEltYWdlU2NhbkZpbmRpbmdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEltYWdlU2NhbkZpbmRpbmdzOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpMaXN0SW1hZ2VTY2FuRmluZGluZ3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEltYWdlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbWFnZXM6IHN0cmluZ1tdID0gW1wiaW1hZ2VidWlsZGVyOkxpc3RJbWFnZXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RMaWZlY3ljbGVFeGVjdXRpb25SZXNvdXJjZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TGlmZWN5Y2xlRXhlY3V0aW9uUmVzb3VyY2VzOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpMaXN0TGlmZWN5Y2xlRXhlY3V0aW9uUmVzb3VyY2VzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RMaWZlY3ljbGVFeGVjdXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdExpZmVjeWNsZUV4ZWN1dGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RMaWZlY3ljbGVFeGVjdXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RMaWZlY3ljbGVQb2xpY2llcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMaWZlY3ljbGVQb2xpY2llczogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdExpZmVjeWNsZVBvbGljaWVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpMaXN0VGFnc0ZvclJlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RXYWl0aW5nV29ya2Zsb3dTdGVwcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RXYWl0aW5nV29ya2Zsb3dTdGVwczogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdFdhaXRpbmdXb3JrZmxvd1N0ZXBzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RXb3JrZmxvd0J1aWxkVmVyc2lvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0V29ya2Zsb3dCdWlsZFZlcnNpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpMaXN0V29ya2Zsb3dCdWlsZFZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RXb3JrZmxvd0V4ZWN1dGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0V29ya2Zsb3dFeGVjdXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpMaXN0V29ya2Zsb3dFeGVjdXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RXb3JrZmxvd1N0ZXBFeGVjdXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFdvcmtmbG93U3RlcEV4ZWN1dGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RXb3JrZmxvd1N0ZXBFeGVjdXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RXb3JrZmxvd3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0V29ya2Zsb3dzOiBzdHJpbmdbXSA9IFtcImltYWdlYnVpbGRlcjpMaXN0V29ya2Zsb3dzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRDb21wb25lbnRQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRDb21wb25lbnRQb2xpY3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOlB1dENvbXBvbmVudFBvbGljeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRDb250YWluZXJSZWNpcGVQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRDb250YWluZXJSZWNpcGVQb2xpY3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOlB1dENvbnRhaW5lclJlY2lwZVBvbGljeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRJbWFnZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEltYWdlUG9saWN5OiBzdHJpbmdbXSA9IFtcImltYWdlYnVpbGRlcjpQdXRJbWFnZVBvbGljeVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0SW1hZ2VSZWNpcGVQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRJbWFnZVJlY2lwZVBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6UHV0SW1hZ2VSZWNpcGVQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmV0cnlJbWFnZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJldHJ5SW1hZ2U6IHN0cmluZ1tdID0gW1wiaW1hZ2VidWlsZGVyOlJldHJ5SW1hZ2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFNlbmRXb3JrZmxvd1N0ZXBBY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kV29ya2Zsb3dTdGVwQWN0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpTZW5kV29ya2Zsb3dTdGVwQWN0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0SW1hZ2VQaXBlbGluZUV4ZWN1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0SW1hZ2VQaXBlbGluZUV4ZWN1dGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6U3RhcnRJbWFnZVBpcGVsaW5lRXhlY3V0aW9uXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRSZXNvdXJjZVN0YXRlVXBkYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZXNvdXJjZVN0YXRlVXBkYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOlN0YXJ0UmVzb3VyY2VTdGF0ZVVwZGF0ZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImltYWdlYnVpbGRlcjpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiaW1hZ2VidWlsZGVyOlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZURpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVEaXN0cmlidXRpb25Db25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOlVwZGF0ZURpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlSW1hZ2VQaXBlbGluZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUltYWdlUGlwZWxpbmU6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkdldENvbnRhaW5lclJlY2lwZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldERpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXRJbWFnZVJlY2lwZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldEluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvblwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldFdvcmtmbG93XCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImltYWdlYnVpbGRlcjpUYWdSZXNvdXJjZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOlVwZGF0ZUltYWdlUGlwZWxpbmVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImlhbTpHZXRJbnN0YW5jZVByb2ZpbGVcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOlVwZGF0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVMaWZlY3ljbGVQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVMaWZlY3ljbGVQb2xpY3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6VXBkYXRlTGlmZWN5Y2xlUG9saWN5XCIsXG5cdF07XG59XG5cbi8qKlxuICogQ29uZGl0aW9uIGtleSBjb25zdGFudHMgYW5kIGJ1aWxkZXJzIGZvciBpbWFnZWJ1aWxkZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbWFnZUJ1aWxkZXJDb25kaXRpb25zIHtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUNvbXBvbmVudCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb21wb25lbnRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUNvbnRhaW5lclJlY2lwZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb250YWluZXJSZWNpcGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZURpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlSW1hZ2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSW1hZ2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUltYWdlUGlwZWxpbmUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSW1hZ2VQaXBlbGluZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlSW1hZ2VSZWNpcGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSW1hZ2VSZWNpcGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcImltYWdlYnVpbGRlcjpDcmVhdGVkUmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q3JlYXRlZFJlc291cmNlVGFnS2V5c1wiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkVjMk1ldGFkYXRhSHR0cFRva2Vuc1wiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOlN0YXR1c1RvcGljQXJuXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVMaWZlY3ljbGVQb2xpY3kgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTGlmZWN5Y2xlUG9saWN5Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVXb3JrZmxvdyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVXb3JrZmxvd0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgRGlzdHJpYnV0ZUltYWdlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc3RyaWJ1dGVJbWFnZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgSW1wb3J0Q29tcG9uZW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEltcG9ydENvbXBvbmVudENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgSW1wb3J0RGlza0ltYWdlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEltcG9ydERpc2tJbWFnZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgSW1wb3J0Vm1JbWFnZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBJbXBvcnRWbUltYWdlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTdGFydEltYWdlUGlwZWxpbmVFeGVjdXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRJbWFnZVBpcGVsaW5lRXhlY3V0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUYWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpDcmVhdGVkUmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q3JlYXRlZFJlc291cmNlVGFnS2V5c1wiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkVjMk1ldGFkYXRhSHR0cFRva2Vuc1wiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOlN0YXR1c1RvcGljQXJuXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVMaWZlY3ljbGVQb2xpY3kgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTGlmZWN5Y2xlUG9saWN5Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlXCIsXG5cdF07XG5cblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFUVVFU1RfVEFHID0gXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVNPVVJDRV9UQUcgPSBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1RBR19LRVlTID0gXCJhd3M6VGFnS2V5c1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogaW1hZ2VidWlsZGVyOkNyZWF0ZWRSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IENSRUFURURfUkVTT1VSQ0VfVEFHID1cblx0XHRcImltYWdlYnVpbGRlcjpDcmVhdGVkUmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBpbWFnZWJ1aWxkZXI6Q3JlYXRlZFJlc291cmNlVGFnS2V5cyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IENSRUFURURfUkVTT1VSQ0VfVEFHX0tFWVMgPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkNyZWF0ZWRSZXNvdXJjZVRhZ0tleXNcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGltYWdlYnVpbGRlcjpFYzJNZXRhZGF0YUh0dHBUb2tlbnMgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVDMl9NRVRBREFUQV9IVFRQX1RPS0VOUyA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6RWMyTWV0YWRhdGFIdHRwVG9rZW5zXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBpbWFnZWJ1aWxkZXI6TGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBMSUZFQ1lDTEVfUE9MSUNZX1JFU09VUkNFX1RZUEUgPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkxpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogaW1hZ2VidWlsZGVyOlN0YXR1c1RvcGljQXJuIChBUk4pICovXG5cdHN0YXRpYyByZWFkb25seSBTVEFUVVNfVE9QSUNfQVJOID0gXCJpbWFnZWJ1aWxkZXI6U3RhdHVzVG9waWNBcm5cIjtcblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXF1ZXN0VGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXNvdXJjZVRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpUYWdLZXlzYC5cblx0ICovXG5cdHN0YXRpYyB0YWdLZXlzKHZhbHVlczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImF3czpUYWdLZXlzXCI6IHZhbHVlcyB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgaW1hZ2VidWlsZGVyOkNyZWF0ZWRSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIGNyZWF0ZWRSZXNvdXJjZVRhZyhcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFN0cmluZ0VxdWFsczogeyBcImltYWdlYnVpbGRlcjpDcmVhdGVkUmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBpbWFnZWJ1aWxkZXI6Q3JlYXRlZFJlc291cmNlVGFnS2V5c2AuXG5cdCAqL1xuXHRzdGF0aWMgY3JlYXRlZFJlc291cmNlVGFnS2V5cyhcblx0XHR2YWx1ZXM6IHN0cmluZ1tdLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0XCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHtcblx0XHRcdFx0XCJpbWFnZWJ1aWxkZXI6Q3JlYXRlZFJlc291cmNlVGFnS2V5c1wiOiB2YWx1ZXMsXG5cdFx0XHR9LFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgaW1hZ2VidWlsZGVyOkVjMk1ldGFkYXRhSHR0cFRva2Vuc2AuXG5cdCAqL1xuXHRzdGF0aWMgZWMyTWV0YWRhdGFIdHRwVG9rZW5zKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJpbWFnZWJ1aWxkZXI6RWMyTWV0YWRhdGFIdHRwVG9rZW5zXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBpbWFnZWJ1aWxkZXI6TGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlYC5cblx0ICovXG5cdHN0YXRpYyBsaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7XG5cdFx0XHRTdHJpbmdFcXVhbHM6IHsgXCJpbWFnZWJ1aWxkZXI6TGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlXCI6IHZhbHVlIH0sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBpbWFnZWJ1aWxkZXI6U3RhdHVzVG9waWNBcm5gLlxuXHQgKi9cblx0c3RhdGljIHN0YXR1c1RvcGljQVJOKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgQXJuRXF1YWxzOiB7IFwiaW1hZ2VidWlsZGVyOlN0YXR1c1RvcGljQXJuXCI6IHZhbHVlIH0gfTtcblx0fVxufVxuIl19
1264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VidWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9pbWFnZWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCxtREFBbUQ7QUFDbkQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsbUJBQW1COztBQUFoQyxrREEwUkM7OztBQXpSQSw4QkFBOEI7QUFDZCxrQ0FBYyxHQUFHLGNBQWMsQ0FBQztBQUVoRCwrQ0FBK0M7QUFDL0IsdUNBQW1CLEdBQUcsa0NBQWtDLENBQUM7QUFDekUsb0RBQW9EO0FBQ3BDLDRDQUF3QixHQUN2Qyx1Q0FBdUMsQ0FBQztBQUN6QywyQ0FBMkM7QUFDM0IsbUNBQWUsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSxpREFBaUQ7QUFDakMseUNBQXFCLEdBQUcsb0NBQW9DLENBQUM7QUFDN0UsMkRBQTJEO0FBQzNDLG1EQUErQixHQUM5Qyw4Q0FBOEMsQ0FBQztBQUNoRCx1Q0FBdUM7QUFDdkIsK0JBQVcsR0FBRywwQkFBMEIsQ0FBQztBQUN6RCwrQ0FBK0M7QUFDL0IsdUNBQW1CLEdBQUcsa0NBQWtDLENBQUM7QUFDekUsNkNBQTZDO0FBQzdCLHFDQUFpQixHQUFHLGdDQUFnQyxDQUFDO0FBQ3JFLDZEQUE2RDtBQUM3QyxxREFBaUMsR0FDaEQsZ0RBQWdELENBQUM7QUFDbEQsaURBQWlEO0FBQ2pDLHlDQUFxQixHQUFHLG9DQUFvQyxDQUFDO0FBQzdFLDBDQUEwQztBQUMxQixrQ0FBYyxHQUFHLDZCQUE2QixDQUFDO0FBQy9ELDJDQUEyQztBQUMzQixtQ0FBZSxHQUFHLDhCQUE4QixDQUFDO0FBQ2pFLGlEQUFpRDtBQUNqQyx5Q0FBcUIsR0FBRyxvQ0FBb0MsQ0FBQztBQUM3RSwyREFBMkQ7QUFDM0MsbURBQStCLEdBQzlDLDhDQUE4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RjtBQUNqRSxxRUFBOEMsR0FBYTtJQUMxRSwyQ0FBMkM7SUFDM0MscUNBQXFDO0lBQ3JDLG9DQUFvQztJQUNwQyw2QkFBNkI7Q0FDN0IsQ0FBQztBQUNGLHFFQUFxRTtBQUNyRCx5REFBa0MsR0FBYTtJQUM5RCwwQ0FBMEM7Q0FDMUMsQ0FBQztBQUVGLHVEQUF1RDtBQUN2QyxzQ0FBZSxHQUFHLDBCQUEwQixDQUFDO0FBQzdELHdEQUF3RDtBQUN4Qyx1Q0FBZ0IsR0FBRywyQkFBMkIsQ0FBQztBQUMvRCxpREFBaUQ7QUFDakMsbUNBQVksR0FBRyxhQUFhLENBQUM7QUFDN0Msd0VBQXdFO0FBQ3hELDJDQUFvQixHQUNuQywyQ0FBMkMsQ0FBQztBQUM3Qyx5RUFBeUU7QUFDekQsZ0RBQXlCLEdBQ3hDLHFDQUFxQyxDQUFDO0FBQ3ZDLGlFQUFpRTtBQUNqRCwrQ0FBd0IsR0FDdkMsb0NBQW9DLENBQUM7QUFDdEMsdUVBQXVFO0FBQ3ZELHFEQUE4QixHQUM3QywwQ0FBMEMsQ0FBQztBQUM1Qyx1REFBdUQ7QUFDdkMsdUNBQWdCLEdBQUcsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUTy1HRU5FUkFURUQgRklMRSDigJQgRE8gTk9UIEVESVQgTUFOVUFMTFlcbi8vIEdlbmVyYXRlZCBmcm9tIEFXUyBTZXJ2aWNlIEF1dGhvcml6YXRpb24gUmVmZXJlbmNlIGRhdGFcbi8vIFNvdXJjZTogZGF0YS9zZXJ2aWNlLXJlZmVyZW5jZS9pbWFnZWJ1aWxkZXIuanNvblxuLy8gUnVuIGBucHggcHJvamVuIGdlbmVyYXRlLWNvbnN0YW50c2AgdG8gcmVnZW5lcmF0ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJQU0gYWN0aW9uIGNvbnN0YW50cyBmb3IgdGhlIGltYWdlYnVpbGRlciBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgSW1hZ2VCdWlsZGVyQWN0aW9ucyB7XG5cdC8qKiBUaGUgSUFNIHNlcnZpY2UgcHJlZml4LiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9QUkVGSVggPSBcImltYWdlYnVpbGRlclwiO1xuXG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpDYW5jZWxJbWFnZUNyZWF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxJbWFnZUNyZWF0aW9uID0gXCJpbWFnZWJ1aWxkZXI6Q2FuY2VsSW1hZ2VDcmVhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6Q2FuY2VsTGlmZWN5Y2xlRXhlY3V0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxMaWZlY3ljbGVFeGVjdXRpb24gPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkNhbmNlbExpZmVjeWNsZUV4ZWN1dGlvblwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6Q3JlYXRlQ29tcG9uZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb21wb25lbnQgPSBcImltYWdlYnVpbGRlcjpDcmVhdGVDb21wb25lbnRcIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOkNyZWF0ZUNvbnRhaW5lclJlY2lwZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29udGFpbmVyUmVjaXBlID0gXCJpbWFnZWJ1aWxkZXI6Q3JlYXRlQ29udGFpbmVyUmVjaXBlXCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpDcmVhdGVEaXN0cmlidXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEaXN0cmlidXRpb25Db25maWd1cmF0aW9uID1cblx0XHRcImltYWdlYnVpbGRlcjpDcmVhdGVEaXN0cmlidXRpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpDcmVhdGVJbWFnZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSW1hZ2UgPSBcImltYWdlYnVpbGRlcjpDcmVhdGVJbWFnZVwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6Q3JlYXRlSW1hZ2VQaXBlbGluZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSW1hZ2VQaXBlbGluZSA9IFwiaW1hZ2VidWlsZGVyOkNyZWF0ZUltYWdlUGlwZWxpbmVcIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOkNyZWF0ZUltYWdlUmVjaXBlICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVJbWFnZVJlY2lwZSA9IFwiaW1hZ2VidWlsZGVyOkNyZWF0ZUltYWdlUmVjaXBlXCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpDcmVhdGVJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q3JlYXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpDcmVhdGVMaWZlY3ljbGVQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUxpZmVjeWNsZVBvbGljeSA9IFwiaW1hZ2VidWlsZGVyOkNyZWF0ZUxpZmVjeWNsZVBvbGljeVwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6Q3JlYXRlV29ya2Zsb3cgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVdvcmtmbG93ID0gXCJpbWFnZWJ1aWxkZXI6Q3JlYXRlV29ya2Zsb3dcIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOkRlbGV0ZUNvbXBvbmVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ29tcG9uZW50ID0gXCJpbWFnZWJ1aWxkZXI6RGVsZXRlQ29tcG9uZW50XCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpEZWxldGVDb250YWluZXJSZWNpcGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNvbnRhaW5lclJlY2lwZSA9IFwiaW1hZ2VidWlsZGVyOkRlbGV0ZUNvbnRhaW5lclJlY2lwZVwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6RGVsZXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6RGVsZXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6RGVsZXRlSW1hZ2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUltYWdlID0gXCJpbWFnZWJ1aWxkZXI6RGVsZXRlSW1hZ2VcIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOkRlbGV0ZUltYWdlUGlwZWxpbmUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUltYWdlUGlwZWxpbmUgPSBcImltYWdlYnVpbGRlcjpEZWxldGVJbWFnZVBpcGVsaW5lXCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpEZWxldGVJbWFnZVJlY2lwZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSW1hZ2VSZWNpcGUgPSBcImltYWdlYnVpbGRlcjpEZWxldGVJbWFnZVJlY2lwZVwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6RGVsZXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkRlbGV0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6RGVsZXRlTGlmZWN5Y2xlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVMaWZlY3ljbGVQb2xpY3kgPSBcImltYWdlYnVpbGRlcjpEZWxldGVMaWZlY3ljbGVQb2xpY3lcIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOkRlbGV0ZVdvcmtmbG93ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVXb3JrZmxvdyA9IFwiaW1hZ2VidWlsZGVyOkRlbGV0ZVdvcmtmbG93XCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpEaXN0cmlidXRlSW1hZ2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc3RyaWJ1dGVJbWFnZSA9IFwiaW1hZ2VidWlsZGVyOkRpc3RyaWJ1dGVJbWFnZVwiO1xuXHQvKiogW1JlYWRdIGltYWdlYnVpbGRlcjpHZXRDb21wb25lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvbXBvbmVudCA9IFwiaW1hZ2VidWlsZGVyOkdldENvbXBvbmVudFwiO1xuXHQvKiogW1JlYWRdIGltYWdlYnVpbGRlcjpHZXRDb21wb25lbnRQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvbXBvbmVudFBvbGljeSA9IFwiaW1hZ2VidWlsZGVyOkdldENvbXBvbmVudFBvbGljeVwiO1xuXHQvKiogW1JlYWRdIGltYWdlYnVpbGRlcjpHZXRDb250YWluZXJSZWNpcGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvbnRhaW5lclJlY2lwZSA9IFwiaW1hZ2VidWlsZGVyOkdldENvbnRhaW5lclJlY2lwZVwiO1xuXHQvKiogW1JlYWRdIGltYWdlYnVpbGRlcjpHZXRDb250YWluZXJSZWNpcGVQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvbnRhaW5lclJlY2lwZVBvbGljeSA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0Q29udGFpbmVyUmVjaXBlUG9saWN5XCI7XG5cdC8qKiBbUmVhZF0gaW1hZ2VidWlsZGVyOkdldERpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldERpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBpbWFnZWJ1aWxkZXI6R2V0SW1hZ2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEltYWdlID0gXCJpbWFnZWJ1aWxkZXI6R2V0SW1hZ2VcIjtcblx0LyoqIFtSZWFkXSBpbWFnZWJ1aWxkZXI6R2V0SW1hZ2VQaXBlbGluZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SW1hZ2VQaXBlbGluZSA9IFwiaW1hZ2VidWlsZGVyOkdldEltYWdlUGlwZWxpbmVcIjtcblx0LyoqIFtSZWFkXSBpbWFnZWJ1aWxkZXI6R2V0SW1hZ2VQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEltYWdlUG9saWN5ID0gXCJpbWFnZWJ1aWxkZXI6R2V0SW1hZ2VQb2xpY3lcIjtcblx0LyoqIFtSZWFkXSBpbWFnZWJ1aWxkZXI6R2V0SW1hZ2VSZWNpcGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEltYWdlUmVjaXBlID0gXCJpbWFnZWJ1aWxkZXI6R2V0SW1hZ2VSZWNpcGVcIjtcblx0LyoqIFtSZWFkXSBpbWFnZWJ1aWxkZXI6R2V0SW1hZ2VSZWNpcGVQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEltYWdlUmVjaXBlUG9saWN5ID1cblx0XHRcImltYWdlYnVpbGRlcjpHZXRJbWFnZVJlY2lwZVBvbGljeVwiO1xuXHQvKiogW1JlYWRdIGltYWdlYnVpbGRlcjpHZXRJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0SW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gaW1hZ2VidWlsZGVyOkdldExpZmVjeWNsZUV4ZWN1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TGlmZWN5Y2xlRXhlY3V0aW9uID1cblx0XHRcImltYWdlYnVpbGRlcjpHZXRMaWZlY3ljbGVFeGVjdXRpb25cIjtcblx0LyoqIFtSZWFkXSBpbWFnZWJ1aWxkZXI6R2V0TGlmZWN5Y2xlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRMaWZlY3ljbGVQb2xpY3kgPSBcImltYWdlYnVpbGRlcjpHZXRMaWZlY3ljbGVQb2xpY3lcIjtcblx0LyoqIFtSZWFkXSBpbWFnZWJ1aWxkZXI6R2V0TWFya2V0cGxhY2VSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TWFya2V0cGxhY2VSZXNvdXJjZSA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0TWFya2V0cGxhY2VSZXNvdXJjZVwiO1xuXHQvKiogW1JlYWRdIGltYWdlYnVpbGRlcjpHZXRXb3JrZmxvdyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0V29ya2Zsb3cgPSBcImltYWdlYnVpbGRlcjpHZXRXb3JrZmxvd1wiO1xuXHQvKiogW1JlYWRdIGltYWdlYnVpbGRlcjpHZXRXb3JrZmxvd0V4ZWN1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0V29ya2Zsb3dFeGVjdXRpb24gPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldFdvcmtmbG93RXhlY3V0aW9uXCI7XG5cdC8qKiBbUmVhZF0gaW1hZ2VidWlsZGVyOkdldFdvcmtmbG93U3RlcEV4ZWN1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0V29ya2Zsb3dTdGVwRXhlY3V0aW9uID1cblx0XHRcImltYWdlYnVpbGRlcjpHZXRXb3JrZmxvd1N0ZXBFeGVjdXRpb25cIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOkltcG9ydENvbXBvbmVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW1wb3J0Q29tcG9uZW50ID0gXCJpbWFnZWJ1aWxkZXI6SW1wb3J0Q29tcG9uZW50XCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpJbXBvcnREaXNrSW1hZ2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IEltcG9ydERpc2tJbWFnZSA9IFwiaW1hZ2VidWlsZGVyOkltcG9ydERpc2tJbWFnZVwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6SW1wb3J0Vm1JbWFnZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW1wb3J0Vm1JbWFnZSA9IFwiaW1hZ2VidWlsZGVyOkltcG9ydFZtSW1hZ2VcIjtcblx0LyoqIFtMaXN0XSBpbWFnZWJ1aWxkZXI6TGlzdENvbXBvbmVudEJ1aWxkVmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb21wb25lbnRCdWlsZFZlcnNpb25zID1cblx0XHRcImltYWdlYnVpbGRlcjpMaXN0Q29tcG9uZW50QnVpbGRWZXJzaW9uc1wiO1xuXHQvKiogW0xpc3RdIGltYWdlYnVpbGRlcjpMaXN0Q29tcG9uZW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbXBvbmVudHMgPSBcImltYWdlYnVpbGRlcjpMaXN0Q29tcG9uZW50c1wiO1xuXHQvKiogW0xpc3RdIGltYWdlYnVpbGRlcjpMaXN0Q29udGFpbmVyUmVjaXBlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbnRhaW5lclJlY2lwZXMgPSBcImltYWdlYnVpbGRlcjpMaXN0Q29udGFpbmVyUmVjaXBlc1wiO1xuXHQvKiogW0xpc3RdIGltYWdlYnVpbGRlcjpMaXN0RGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REaXN0cmlidXRpb25Db25maWd1cmF0aW9ucyA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdERpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gaW1hZ2VidWlsZGVyOkxpc3RJbWFnZUJ1aWxkVmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbWFnZUJ1aWxkVmVyc2lvbnMgPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RJbWFnZUJ1aWxkVmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBpbWFnZWJ1aWxkZXI6TGlzdEltYWdlUGFja2FnZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbWFnZVBhY2thZ2VzID0gXCJpbWFnZWJ1aWxkZXI6TGlzdEltYWdlUGFja2FnZXNcIjtcblx0LyoqIFtMaXN0XSBpbWFnZWJ1aWxkZXI6TGlzdEltYWdlUGlwZWxpbmVJbWFnZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbWFnZVBpcGVsaW5lSW1hZ2VzID1cblx0XHRcImltYWdlYnVpbGRlcjpMaXN0SW1hZ2VQaXBlbGluZUltYWdlc1wiO1xuXHQvKiogW0xpc3RdIGltYWdlYnVpbGRlcjpMaXN0SW1hZ2VQaXBlbGluZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbWFnZVBpcGVsaW5lcyA9IFwiaW1hZ2VidWlsZGVyOkxpc3RJbWFnZVBpcGVsaW5lc1wiO1xuXHQvKiogW0xpc3RdIGltYWdlYnVpbGRlcjpMaXN0SW1hZ2VSZWNpcGVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW1hZ2VSZWNpcGVzID0gXCJpbWFnZWJ1aWxkZXI6TGlzdEltYWdlUmVjaXBlc1wiO1xuXHQvKiogW0xpc3RdIGltYWdlYnVpbGRlcjpMaXN0SW1hZ2VTY2FuRmluZGluZ0FnZ3JlZ2F0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEltYWdlU2NhbkZpbmRpbmdBZ2dyZWdhdGlvbnMgPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RJbWFnZVNjYW5GaW5kaW5nQWdncmVnYXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gaW1hZ2VidWlsZGVyOkxpc3RJbWFnZVNjYW5GaW5kaW5ncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEltYWdlU2NhbkZpbmRpbmdzID0gXCJpbWFnZWJ1aWxkZXI6TGlzdEltYWdlU2NhbkZpbmRpbmdzXCI7XG5cdC8qKiBbTGlzdF0gaW1hZ2VidWlsZGVyOkxpc3RJbWFnZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbWFnZXMgPSBcImltYWdlYnVpbGRlcjpMaXN0SW1hZ2VzXCI7XG5cdC8qKiBbTGlzdF0gaW1hZ2VidWlsZGVyOkxpc3RJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9ucyA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdEluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBpbWFnZWJ1aWxkZXI6TGlzdExpZmVjeWNsZUV4ZWN1dGlvblJlc291cmNlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdExpZmVjeWNsZUV4ZWN1dGlvblJlc291cmNlcyA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdExpZmVjeWNsZUV4ZWN1dGlvblJlc291cmNlc1wiO1xuXHQvKiogW0xpc3RdIGltYWdlYnVpbGRlcjpMaXN0TGlmZWN5Y2xlRXhlY3V0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdExpZmVjeWNsZUV4ZWN1dGlvbnMgPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RMaWZlY3ljbGVFeGVjdXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gaW1hZ2VidWlsZGVyOkxpc3RMaWZlY3ljbGVQb2xpY2llcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdExpZmVjeWNsZVBvbGljaWVzID0gXCJpbWFnZWJ1aWxkZXI6TGlzdExpZmVjeWNsZVBvbGljaWVzXCI7XG5cdC8qKiBbUmVhZF0gaW1hZ2VidWlsZGVyOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcImltYWdlYnVpbGRlcjpMaXN0VGFnc0ZvclJlc291cmNlXCI7XG5cdC8qKiBbTGlzdF0gaW1hZ2VidWlsZGVyOkxpc3RXYWl0aW5nV29ya2Zsb3dTdGVwcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFdhaXRpbmdXb3JrZmxvd1N0ZXBzID1cblx0XHRcImltYWdlYnVpbGRlcjpMaXN0V2FpdGluZ1dvcmtmbG93U3RlcHNcIjtcblx0LyoqIFtMaXN0XSBpbWFnZWJ1aWxkZXI6TGlzdFdvcmtmbG93QnVpbGRWZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFdvcmtmbG93QnVpbGRWZXJzaW9ucyA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdFdvcmtmbG93QnVpbGRWZXJzaW9uc1wiO1xuXHQvKiogW0xpc3RdIGltYWdlYnVpbGRlcjpMaXN0V29ya2Zsb3dFeGVjdXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0V29ya2Zsb3dFeGVjdXRpb25zID1cblx0XHRcImltYWdlYnVpbGRlcjpMaXN0V29ya2Zsb3dFeGVjdXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gaW1hZ2VidWlsZGVyOkxpc3RXb3JrZmxvd1N0ZXBFeGVjdXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0V29ya2Zsb3dTdGVwRXhlY3V0aW9ucyA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdFdvcmtmbG93U3RlcEV4ZWN1dGlvbnNcIjtcblx0LyoqIFtMaXN0XSBpbWFnZWJ1aWxkZXI6TGlzdFdvcmtmbG93cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFdvcmtmbG93cyA9IFwiaW1hZ2VidWlsZGVyOkxpc3RXb3JrZmxvd3NcIjtcblx0LyoqIFtQZXJtaXNzaW9uTWFuYWdlbWVudF0gaW1hZ2VidWlsZGVyOlB1dENvbXBvbmVudFBvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0Q29tcG9uZW50UG9saWN5ID0gXCJpbWFnZWJ1aWxkZXI6UHV0Q29tcG9uZW50UG9saWN5XCI7XG5cdC8qKiBbUGVybWlzc2lvbk1hbmFnZW1lbnRdIGltYWdlYnVpbGRlcjpQdXRDb250YWluZXJSZWNpcGVQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dENvbnRhaW5lclJlY2lwZVBvbGljeSA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6UHV0Q29udGFpbmVyUmVjaXBlUG9saWN5XCI7XG5cdC8qKiBbUGVybWlzc2lvbk1hbmFnZW1lbnRdIGltYWdlYnVpbGRlcjpQdXRJbWFnZVBvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0SW1hZ2VQb2xpY3kgPSBcImltYWdlYnVpbGRlcjpQdXRJbWFnZVBvbGljeVwiO1xuXHQvKiogW1Blcm1pc3Npb25NYW5hZ2VtZW50XSBpbWFnZWJ1aWxkZXI6UHV0SW1hZ2VSZWNpcGVQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEltYWdlUmVjaXBlUG9saWN5ID0gXCJpbWFnZWJ1aWxkZXI6UHV0SW1hZ2VSZWNpcGVQb2xpY3lcIjtcblx0LyoqIFtXcml0ZV0gaW1hZ2VidWlsZGVyOlJldHJ5SW1hZ2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJldHJ5SW1hZ2UgPSBcImltYWdlYnVpbGRlcjpSZXRyeUltYWdlXCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpTZW5kV29ya2Zsb3dTdGVwQWN0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kV29ya2Zsb3dTdGVwQWN0aW9uID1cblx0XHRcImltYWdlYnVpbGRlcjpTZW5kV29ya2Zsb3dTdGVwQWN0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpTdGFydEltYWdlUGlwZWxpbmVFeGVjdXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0SW1hZ2VQaXBlbGluZUV4ZWN1dGlvbiA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6U3RhcnRJbWFnZVBpcGVsaW5lRXhlY3V0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpTdGFydFJlc291cmNlU3RhdGVVcGRhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVzb3VyY2VTdGF0ZVVwZGF0ZSA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6U3RhcnRSZXNvdXJjZVN0YXRlVXBkYXRlXCI7XG5cdC8qKiBbVGFnZ2luZ10gaW1hZ2VidWlsZGVyOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwiaW1hZ2VidWlsZGVyOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbVGFnZ2luZ10gaW1hZ2VidWlsZGVyOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcImltYWdlYnVpbGRlcjpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpVcGRhdGVEaXN0cmlidXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVEaXN0cmlidXRpb25Db25maWd1cmF0aW9uID1cblx0XHRcImltYWdlYnVpbGRlcjpVcGRhdGVEaXN0cmlidXRpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGltYWdlYnVpbGRlcjpVcGRhdGVJbWFnZVBpcGVsaW5lICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVJbWFnZVBpcGVsaW5lID0gXCJpbWFnZWJ1aWxkZXI6VXBkYXRlSW1hZ2VQaXBlbGluZVwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6VXBkYXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiaW1hZ2VidWlsZGVyOlVwZGF0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBpbWFnZWJ1aWxkZXI6VXBkYXRlTGlmZWN5Y2xlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVMaWZlY3ljbGVQb2xpY3kgPSBcImltYWdlYnVpbGRlcjpVcGRhdGVMaWZlY3ljbGVQb2xpY3lcIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLmFjdGlvbkdldENvbXBvbmVudCxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLmFjdGlvbkdldENvbXBvbmVudFBvbGljeSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLmFjdGlvbkdldENvbnRhaW5lclJlY2lwZSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLmFjdGlvbkdldENvbnRhaW5lclJlY2lwZVBvbGljeSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLmFjdGlvbkdldERpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24sXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5hY3Rpb25HZXRJbWFnZSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLmFjdGlvbkdldEltYWdlUGlwZWxpbmUsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5hY3Rpb25HZXRJbWFnZVBvbGljeSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLmFjdGlvbkdldEltYWdlUmVjaXBlLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuYWN0aW9uR2V0SW1hZ2VSZWNpcGVQb2xpY3ksXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5hY3Rpb25HZXRJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24sXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5hY3Rpb25HZXRMaWZlY3ljbGVFeGVjdXRpb24sXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5hY3Rpb25HZXRMaWZlY3ljbGVQb2xpY3ksXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5hY3Rpb25HZXRNYXJrZXRwbGFjZVJlc291cmNlLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuYWN0aW9uR2V0V29ya2Zsb3csXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5hY3Rpb25HZXRXb3JrZmxvd0V4ZWN1dGlvbixcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLmFjdGlvbkdldFdvcmtmbG93U3RlcEV4ZWN1dGlvbixcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5DYW5jZWxJbWFnZUNyZWF0aW9uLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuQ2FuY2VsTGlmZWN5Y2xlRXhlY3V0aW9uLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuQ3JlYXRlQ29tcG9uZW50LFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuQ3JlYXRlQ29udGFpbmVyUmVjaXBlLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuQ3JlYXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbixcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkNyZWF0ZUltYWdlLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuQ3JlYXRlSW1hZ2VQaXBlbGluZSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkNyZWF0ZUltYWdlUmVjaXBlLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuQ3JlYXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuQ3JlYXRlTGlmZWN5Y2xlUG9saWN5LFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuQ3JlYXRlV29ya2Zsb3csXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5EZWxldGVDb21wb25lbnQsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5EZWxldGVDb250YWluZXJSZWNpcGUsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5EZWxldGVEaXN0cmlidXRpb25Db25maWd1cmF0aW9uLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuRGVsZXRlSW1hZ2UsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5EZWxldGVJbWFnZVBpcGVsaW5lLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuRGVsZXRlSW1hZ2VSZWNpcGUsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5EZWxldGVJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24sXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5EZWxldGVMaWZlY3ljbGVQb2xpY3ksXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5EZWxldGVXb3JrZmxvdyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkRpc3RyaWJ1dGVJbWFnZSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkltcG9ydENvbXBvbmVudCxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkltcG9ydERpc2tJbWFnZSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkltcG9ydFZtSW1hZ2UsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5SZXRyeUltYWdlLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuU2VuZFdvcmtmbG93U3RlcEFjdGlvbixcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLlN0YXJ0SW1hZ2VQaXBlbGluZUV4ZWN1dGlvbixcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLlN0YXJ0UmVzb3VyY2VTdGF0ZVVwZGF0ZSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLlVwZGF0ZURpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24sXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5VcGRhdGVJbWFnZVBpcGVsaW5lLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuVXBkYXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuVXBkYXRlTGlmZWN5Y2xlUG9saWN5LFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RDb21wb25lbnRCdWlsZFZlcnNpb25zLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuTGlzdENvbXBvbmVudHMsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5MaXN0Q29udGFpbmVyUmVjaXBlcyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3REaXN0cmlidXRpb25Db25maWd1cmF0aW9ucyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RJbWFnZUJ1aWxkVmVyc2lvbnMsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5MaXN0SW1hZ2VQYWNrYWdlcyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RJbWFnZVBpcGVsaW5lSW1hZ2VzLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuTGlzdEltYWdlUGlwZWxpbmVzLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuTGlzdEltYWdlUmVjaXBlcyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RJbWFnZVNjYW5GaW5kaW5nQWdncmVnYXRpb25zLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuTGlzdEltYWdlU2NhbkZpbmRpbmdzLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuTGlzdEltYWdlcyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25zLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuTGlzdExpZmVjeWNsZUV4ZWN1dGlvblJlc291cmNlcyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RMaWZlY3ljbGVFeGVjdXRpb25zLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuTGlzdExpZmVjeWNsZVBvbGljaWVzLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuTGlzdFdhaXRpbmdXb3JrZmxvd1N0ZXBzLFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuTGlzdFdvcmtmbG93QnVpbGRWZXJzaW9ucyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RXb3JrZmxvd0V4ZWN1dGlvbnMsXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5MaXN0V29ya2Zsb3dTdGVwRXhlY3V0aW9ucyxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLkxpc3RXb3JrZmxvd3MsXG5cdF07XG5cdC8qKiBBbGwgcGVybWlzc2lvbi1tYW5hZ2VtZW50LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxQZXJtaXNzaW9uTWFuYWdlbWVudEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuUHV0Q29tcG9uZW50UG9saWN5LFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuUHV0Q29udGFpbmVyUmVjaXBlUG9saWN5LFxuXHRcdEltYWdlQnVpbGRlckFjdGlvbnMuUHV0SW1hZ2VQb2xpY3ksXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5QdXRJbWFnZVJlY2lwZVBvbGljeSxcblx0XTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0SW1hZ2VCdWlsZGVyQWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHRJbWFnZUJ1aWxkZXJBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBhbGxDb21wb25lbnRCdWlsZFZlcnNpb25zIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJBbGxDb21wb25lbnRCdWlsZFZlcnNpb25zQXJuUHJvcHMge1xuXHQvKiogVGhlIENvbXBvbmVudE5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvbXBvbmVudE5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb21wb25lbnRWZXJzaW9uIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb21wb25lbnRWZXJzaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgYWxsQ29tcG9uZW50QnVpbGRWZXJzaW9ucyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyQWxsQ29tcG9uZW50QnVpbGRWZXJzaW9uc0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29tcG9uZW50TmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbXBvbmVudE5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb21wb25lbnRWZXJzaW9uIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29tcG9uZW50VmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgYWxsSW1hZ2VCdWlsZFZlcnNpb25zIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJBbGxJbWFnZUJ1aWxkVmVyc2lvbnNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgSW1hZ2VOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpbWFnZU5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBJbWFnZVZlcnNpb24gY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGltYWdlVmVyc2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGFsbEltYWdlQnVpbGRWZXJzaW9ucyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyQWxsSW1hZ2VCdWlsZFZlcnNpb25zQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBJbWFnZU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBpbWFnZU5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBJbWFnZVZlcnNpb24gY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBpbWFnZVZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGFsbFdvcmtmbG93QnVpbGRWZXJzaW9ucyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyQWxsV29ya2Zsb3dCdWlsZFZlcnNpb25zQXJuUHJvcHMge1xuXHQvKiogVGhlIFdvcmtmbG93VHlwZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgd29ya2Zsb3dUeXBlOiBzdHJpbmc7XG5cdC8qKiBUaGUgV29ya2Zsb3dOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcblx0LyoqIFRoZSBXb3JrZmxvd1ZlcnNpb24gY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHdvcmtmbG93VmVyc2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGFsbFdvcmtmbG93QnVpbGRWZXJzaW9ucyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyQWxsV29ya2Zsb3dCdWlsZFZlcnNpb25zQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBXb3JrZmxvd1R5cGUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB3b3JrZmxvd1R5cGU6IHN0cmluZztcblx0LyoqIFRoZSBXb3JrZmxvd05hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcblx0LyoqIFRoZSBXb3JrZmxvd1ZlcnNpb24gY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB3b3JrZmxvd1ZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGNvbXBvbmVudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyQ29tcG9uZW50QXJuUHJvcHMge1xuXHQvKiogVGhlIENvbXBvbmVudE5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvbXBvbmVudE5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb21wb25lbnRWZXJzaW9uIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb21wb25lbnRWZXJzaW9uOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29tcG9uZW50QnVpbGRWZXJzaW9uIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb21wb25lbnRCdWlsZFZlcnNpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjb21wb25lbnQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlckNvbXBvbmVudEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29tcG9uZW50TmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbXBvbmVudE5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb21wb25lbnRWZXJzaW9uIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29tcG9uZW50VmVyc2lvbjogc3RyaW5nO1xuXHQvKiogVGhlIENvbXBvbmVudEJ1aWxkVmVyc2lvbiBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbXBvbmVudEJ1aWxkVmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29udGFpbmVyUmVjaXBlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJDb250YWluZXJSZWNpcGVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ29udGFpbmVyUmVjaXBlTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29udGFpbmVyUmVjaXBlTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbnRhaW5lclJlY2lwZVZlcnNpb24gY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvbnRhaW5lclJlY2lwZVZlcnNpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjb250YWluZXJSZWNpcGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlckNvbnRhaW5lclJlY2lwZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29udGFpbmVyUmVjaXBlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbnRhaW5lclJlY2lwZU5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb250YWluZXJSZWNpcGVWZXJzaW9uIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29udGFpbmVyUmVjaXBlVmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBEaXN0cmlidXRpb25Db25maWd1cmF0aW9uTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbk5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkaXN0cmlidXRpb25Db25maWd1cmF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJEaXN0cmlidXRpb25Db25maWd1cmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEaXN0cmlidXRpb25Db25maWd1cmF0aW9uTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25OYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBpbWFnZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVySW1hZ2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgSW1hZ2VOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpbWFnZU5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBJbWFnZVZlcnNpb24gY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGltYWdlVmVyc2lvbjogc3RyaW5nO1xuXHQvKiogVGhlIEltYWdlQnVpbGRWZXJzaW9uIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpbWFnZUJ1aWxkVmVyc2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGltYWdlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJJbWFnZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgSW1hZ2VOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaW1hZ2VOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgSW1hZ2VWZXJzaW9uIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaW1hZ2VWZXJzaW9uOiBzdHJpbmc7XG5cdC8qKiBUaGUgSW1hZ2VCdWlsZFZlcnNpb24gY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBpbWFnZUJ1aWxkVmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgaW1hZ2VQaXBlbGluZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVySW1hZ2VQaXBlbGluZUFyblByb3BzIHtcblx0LyoqIFRoZSBJbWFnZVBpcGVsaW5lTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgaW1hZ2VQaXBlbGluZU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBpbWFnZVBpcGVsaW5lIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJJbWFnZVBpcGVsaW5lQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBJbWFnZVBpcGVsaW5lTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGltYWdlUGlwZWxpbmVOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBpbWFnZVJlY2lwZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVySW1hZ2VSZWNpcGVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgSW1hZ2VSZWNpcGVOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpbWFnZVJlY2lwZU5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBJbWFnZVJlY2lwZVZlcnNpb24gY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGltYWdlUmVjaXBlVmVyc2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGltYWdlUmVjaXBlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJJbWFnZVJlY2lwZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgSW1hZ2VSZWNpcGVOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaW1hZ2VSZWNpcGVOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgSW1hZ2VSZWNpcGVWZXJzaW9uIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaW1hZ2VSZWNpcGVWZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBpbWFnZVZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlckltYWdlVmVyc2lvbkFyblByb3BzIHtcblx0LyoqIFRoZSBJbWFnZU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGltYWdlTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIEltYWdlVmVyc2lvbiBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgaW1hZ2VWZXJzaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgaW1hZ2VWZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJJbWFnZVZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEltYWdlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGltYWdlTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIEltYWdlVmVyc2lvbiBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGltYWdlVmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgaW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVySW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgbGlmZWN5Y2xlRXhlY3V0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJMaWZlY3ljbGVFeGVjdXRpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgTGlmZWN5Y2xlRXhlY3V0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGxpZmVjeWNsZUV4ZWN1dGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgbGlmZWN5Y2xlRXhlY3V0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJMaWZlY3ljbGVFeGVjdXRpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIExpZmVjeWNsZUV4ZWN1dGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbGlmZWN5Y2xlRXhlY3V0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGxpZmVjeWNsZVBvbGljeSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyTGlmZWN5Y2xlUG9saWN5QXJuUHJvcHMge1xuXHQvKiogVGhlIExpZmVjeWNsZVBvbGljeU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGxpZmVjeWNsZVBvbGljeU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBsaWZlY3ljbGVQb2xpY3kgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlckxpZmVjeWNsZVBvbGljeUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgTGlmZWN5Y2xlUG9saWN5TmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGxpZmVjeWNsZVBvbGljeU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHdvcmtmbG93IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJXb3JrZmxvd0FyblByb3BzIHtcblx0LyoqIFRoZSBXb3JrZmxvd1R5cGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHdvcmtmbG93VHlwZTogc3RyaW5nO1xuXHQvKiogVGhlIFdvcmtmbG93TmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgd29ya2Zsb3dOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgV29ya2Zsb3dWZXJzaW9uIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB3b3JrZmxvd1ZlcnNpb246IHN0cmluZztcblx0LyoqIFRoZSBXb3JrZmxvd0J1aWxkVmVyc2lvbiBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgd29ya2Zsb3dCdWlsZFZlcnNpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSB3b3JrZmxvdyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VCdWlsZGVyV29ya2Zsb3dBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFdvcmtmbG93VHlwZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHdvcmtmbG93VHlwZTogc3RyaW5nO1xuXHQvKiogVGhlIFdvcmtmbG93TmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHdvcmtmbG93TmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFdvcmtmbG93VmVyc2lvbiBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHdvcmtmbG93VmVyc2lvbjogc3RyaW5nO1xuXHQvKiogVGhlIFdvcmtmbG93QnVpbGRWZXJzaW9uIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgd29ya2Zsb3dCdWlsZFZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHdvcmtmbG93RXhlY3V0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJXb3JrZmxvd0V4ZWN1dGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBXb3JrZmxvd0V4ZWN1dGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB3b3JrZmxvd0V4ZWN1dGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgd29ya2Zsb3dFeGVjdXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQnVpbGRlcldvcmtmbG93RXhlY3V0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBXb3JrZmxvd0V4ZWN1dGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgd29ya2Zsb3dFeGVjdXRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgd29ya2Zsb3dTdGVwRXhlY3V0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJXb3JrZmxvd1N0ZXBFeGVjdXRpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgV29ya2Zsb3dTdGVwRXhlY3V0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHdvcmtmbG93U3RlcEV4ZWN1dGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgd29ya2Zsb3dTdGVwRXhlY3V0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUJ1aWxkZXJXb3JrZmxvd1N0ZXBFeGVjdXRpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFdvcmtmbG93U3RlcEV4ZWN1dGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgd29ya2Zsb3dTdGVwRXhlY3V0aW9uSWQ6IHN0cmluZztcbn1cblxuY29uc3QgQWxsQ29tcG9uZW50QnVpbGRWZXJzaW9uc0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTppbWFnZWJ1aWxkZXI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjb21wb25lbnRcXC8oPzxjb21wb25lbnROYW1lPlteOi8/XSspXFwvKD88Y29tcG9uZW50VmVyc2lvbj5bXjovP10rKVxcLy4qJC87XG5jb25zdCBBbGxJbWFnZUJ1aWxkVmVyc2lvbnNBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6aW1hZ2VidWlsZGVyOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6aW1hZ2VcXC8oPzxpbWFnZU5hbWU+W146Lz9dKylcXC8oPzxpbWFnZVZlcnNpb24+W146Lz9dKylcXC8uKiQvO1xuY29uc3QgQWxsV29ya2Zsb3dCdWlsZFZlcnNpb25zQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmltYWdlYnVpbGRlcjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOndvcmtmbG93XFwvKD88d29ya2Zsb3dUeXBlPlteOi8/XSspXFwvKD88d29ya2Zsb3dOYW1lPlteOi8/XSspXFwvKD88d29ya2Zsb3dWZXJzaW9uPlteOi8/XSspXFwvLiokLztcbmNvbnN0IENvbXBvbmVudEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTppbWFnZWJ1aWxkZXI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjb21wb25lbnRcXC8oPzxjb21wb25lbnROYW1lPlteOi8/XSspXFwvKD88Y29tcG9uZW50VmVyc2lvbj5bXjovP10rKVxcLyg/PGNvbXBvbmVudEJ1aWxkVmVyc2lvbj5bXjovP10rKSQvO1xuY29uc3QgQ29udGFpbmVyUmVjaXBlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmltYWdlYnVpbGRlcjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmNvbnRhaW5lci1yZWNpcGVcXC8oPzxjb250YWluZXJSZWNpcGVOYW1lPlteOi8/XSspXFwvKD88Y29udGFpbmVyUmVjaXBlVmVyc2lvbj5bXjovP10rKSQvO1xuY29uc3QgRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTppbWFnZWJ1aWxkZXI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkaXN0cmlidXRpb24tY29uZmlndXJhdGlvblxcLyg/PGRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25OYW1lPlteOi8/XSspJC87XG5jb25zdCBJbWFnZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTppbWFnZWJ1aWxkZXI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTppbWFnZVxcLyg/PGltYWdlTmFtZT5bXjovP10rKVxcLyg/PGltYWdlVmVyc2lvbj5bXjovP10rKVxcLyg/PGltYWdlQnVpbGRWZXJzaW9uPlteOi8/XSspJC87XG5jb25zdCBJbWFnZVBpcGVsaW5lQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmltYWdlYnVpbGRlcjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmltYWdlLXBpcGVsaW5lXFwvKD88aW1hZ2VQaXBlbGluZU5hbWU+W146Lz9dKykkLztcbmNvbnN0IEltYWdlUmVjaXBlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmltYWdlYnVpbGRlcjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmltYWdlLXJlY2lwZVxcLyg/PGltYWdlUmVjaXBlTmFtZT5bXjovP10rKVxcLyg/PGltYWdlUmVjaXBlVmVyc2lvbj5bXjovP10rKSQvO1xuY29uc3QgSW1hZ2VWZXJzaW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmltYWdlYnVpbGRlcjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmltYWdlXFwvKD88aW1hZ2VOYW1lPlteOi8/XSspXFwvKD88aW1hZ2VWZXJzaW9uPlteOi8/XSspJC87XG5jb25zdCBJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6aW1hZ2VidWlsZGVyOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6aW5mcmFzdHJ1Y3R1cmUtY29uZmlndXJhdGlvblxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IExpZmVjeWNsZUV4ZWN1dGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTppbWFnZWJ1aWxkZXI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpsaWZlY3ljbGUtZXhlY3V0aW9uXFwvKD88bGlmZWN5Y2xlRXhlY3V0aW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IExpZmVjeWNsZVBvbGljeUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTppbWFnZWJ1aWxkZXI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpsaWZlY3ljbGUtcG9saWN5XFwvKD88bGlmZWN5Y2xlUG9saWN5TmFtZT5bXjovP10rKSQvO1xuY29uc3QgV29ya2Zsb3dBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6aW1hZ2VidWlsZGVyOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6d29ya2Zsb3dcXC8oPzx3b3JrZmxvd1R5cGU+W146Lz9dKylcXC8oPzx3b3JrZmxvd05hbWU+W146Lz9dKylcXC8oPzx3b3JrZmxvd1ZlcnNpb24+W146Lz9dKylcXC8oPzx3b3JrZmxvd0J1aWxkVmVyc2lvbj5bXjovP10rKSQvO1xuY29uc3QgV29ya2Zsb3dFeGVjdXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6aW1hZ2VidWlsZGVyOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6d29ya2Zsb3ctZXhlY3V0aW9uXFwvKD88d29ya2Zsb3dFeGVjdXRpb25JZD5bXjovP10rKSQvO1xuY29uc3QgV29ya2Zsb3dTdGVwRXhlY3V0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmltYWdlYnVpbGRlcjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOndvcmtmbG93LXN0ZXAtZXhlY3V0aW9uXFwvKD88d29ya2Zsb3dTdGVwRXhlY3V0aW9uSWQ+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBpbWFnZWJ1aWxkZXIgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgSW1hZ2VCdWlsZGVyUmVzb3VyY2VzIHtcblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBhbGxDb21wb25lbnRCdWlsZFZlcnNpb25zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGFsbENvbXBvbmVudEJ1aWxkVmVyc2lvbnMoXG5cdFx0cHJvcHM6IEltYWdlQnVpbGRlckFsbENvbXBvbmVudEJ1aWxkVmVyc2lvbnNBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTppbWFnZWJ1aWxkZXI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06Y29tcG9uZW50LyR7cHJvcHMuY29tcG9uZW50TmFtZX0vJHtwcm9wcy5jb21wb25lbnRWZXJzaW9ufS8qYDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGFsbENvbXBvbmVudEJ1aWxkVmVyc2lvbnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEFsbENvbXBvbmVudEJ1aWxkVmVyc2lvbnNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQWxsQ29tcG9uZW50QnVpbGRWZXJzaW9uc0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBhbGxDb21wb25lbnRCdWlsZFZlcnNpb25zIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUFsbENvbXBvbmVudEJ1aWxkVmVyc2lvbnNBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEltYWdlQnVpbGRlckFsbENvbXBvbmVudEJ1aWxkVmVyc2lvbnNBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEFsbENvbXBvbmVudEJ1aWxkVmVyc2lvbnNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYWxsQ29tcG9uZW50QnVpbGRWZXJzaW9ucyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjb21wb25lbnROYW1lOiBtYXRjaC5ncm91cHMhLmNvbXBvbmVudE5hbWUsXG5cdFx0XHRjb21wb25lbnRWZXJzaW9uOiBtYXRjaC5ncm91cHMhLmNvbXBvbmVudFZlcnNpb24sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgYWxsSW1hZ2VCdWlsZFZlcnNpb25zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGFsbEltYWdlQnVpbGRWZXJzaW9ucyhcblx0XHRwcm9wczogSW1hZ2VCdWlsZGVyQWxsSW1hZ2VCdWlsZFZlcnNpb25zQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06aW1hZ2VidWlsZGVyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmltYWdlLyR7cHJvcHMuaW1hZ2VOYW1lfS8ke3Byb3BzLmltYWdlVmVyc2lvbn0vKmA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhbGxJbWFnZUJ1aWxkVmVyc2lvbnMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEFsbEltYWdlQnVpbGRWZXJzaW9uc0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBBbGxJbWFnZUJ1aWxkVmVyc2lvbnNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgYWxsSW1hZ2VCdWlsZFZlcnNpb25zIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUFsbEltYWdlQnVpbGRWZXJzaW9uc0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogSW1hZ2VCdWlsZGVyQWxsSW1hZ2VCdWlsZFZlcnNpb25zQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBbGxJbWFnZUJ1aWxkVmVyc2lvbnNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYWxsSW1hZ2VCdWlsZFZlcnNpb25zIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGltYWdlTmFtZTogbWF0Y2guZ3JvdXBzIS5pbWFnZU5hbWUsXG5cdFx0XHRpbWFnZVZlcnNpb246IG1hdGNoLmdyb3VwcyEuaW1hZ2VWZXJzaW9uLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGFsbFdvcmtmbG93QnVpbGRWZXJzaW9ucyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBhbGxXb3JrZmxvd0J1aWxkVmVyc2lvbnMoXG5cdFx0cHJvcHM6IEltYWdlQnVpbGRlckFsbFdvcmtmbG93QnVpbGRWZXJzaW9uc0FyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmltYWdlYnVpbGRlcjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTp3b3JrZmxvdy8ke3Byb3BzLndvcmtmbG93VHlwZX0vJHtwcm9wcy53b3JrZmxvd05hbWV9LyR7cHJvcHMud29ya2Zsb3dWZXJzaW9ufS8qYDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGFsbFdvcmtmbG93QnVpbGRWZXJzaW9ucyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQWxsV29ya2Zsb3dCdWlsZFZlcnNpb25zQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEFsbFdvcmtmbG93QnVpbGRWZXJzaW9uc0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBhbGxXb3JrZmxvd0J1aWxkVmVyc2lvbnMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQWxsV29ya2Zsb3dCdWlsZFZlcnNpb25zQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBJbWFnZUJ1aWxkZXJBbGxXb3JrZmxvd0J1aWxkVmVyc2lvbnNBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEFsbFdvcmtmbG93QnVpbGRWZXJzaW9uc0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhbGxXb3JrZmxvd0J1aWxkVmVyc2lvbnMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0d29ya2Zsb3dUeXBlOiBtYXRjaC5ncm91cHMhLndvcmtmbG93VHlwZSxcblx0XHRcdHdvcmtmbG93TmFtZTogbWF0Y2guZ3JvdXBzIS53b3JrZmxvd05hbWUsXG5cdFx0XHR3b3JrZmxvd1ZlcnNpb246IG1hdGNoLmdyb3VwcyEud29ya2Zsb3dWZXJzaW9uLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvbXBvbmVudCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjb21wb25lbnQocHJvcHM6IEltYWdlQnVpbGRlckNvbXBvbmVudEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTppbWFnZWJ1aWxkZXI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06Y29tcG9uZW50LyR7cHJvcHMuY29tcG9uZW50TmFtZX0vJHtwcm9wcy5jb21wb25lbnRWZXJzaW9ufS8ke3Byb3BzLmNvbXBvbmVudEJ1aWxkVmVyc2lvbn1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29tcG9uZW50IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb21wb25lbnRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29tcG9uZW50QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvbXBvbmVudCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb21wb25lbnRBcm4oYXJuOiBzdHJpbmcpOiBJbWFnZUJ1aWxkZXJDb21wb25lbnRBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvbXBvbmVudEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb21wb25lbnQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29tcG9uZW50TmFtZTogbWF0Y2guZ3JvdXBzIS5jb21wb25lbnROYW1lLFxuXHRcdFx0Y29tcG9uZW50VmVyc2lvbjogbWF0Y2guZ3JvdXBzIS5jb21wb25lbnRWZXJzaW9uLFxuXHRcdFx0Y29tcG9uZW50QnVpbGRWZXJzaW9uOiBtYXRjaC5ncm91cHMhLmNvbXBvbmVudEJ1aWxkVmVyc2lvbixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBjb250YWluZXJSZWNpcGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29udGFpbmVyUmVjaXBlKHByb3BzOiBJbWFnZUJ1aWxkZXJDb250YWluZXJSZWNpcGVBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06aW1hZ2VidWlsZGVyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNvbnRhaW5lci1yZWNpcGUvJHtwcm9wcy5jb250YWluZXJSZWNpcGVOYW1lfS8ke3Byb3BzLmNvbnRhaW5lclJlY2lwZVZlcnNpb259YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGNvbnRhaW5lclJlY2lwZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ29udGFpbmVyUmVjaXBlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbnRhaW5lclJlY2lwZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjb250YWluZXJSZWNpcGUgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ29udGFpbmVyUmVjaXBlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBJbWFnZUJ1aWxkZXJDb250YWluZXJSZWNpcGVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvbnRhaW5lclJlY2lwZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb250YWluZXJSZWNpcGUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29udGFpbmVyUmVjaXBlTmFtZTogbWF0Y2guZ3JvdXBzIS5jb250YWluZXJSZWNpcGVOYW1lLFxuXHRcdFx0Y29udGFpbmVyUmVjaXBlVmVyc2lvbjogbWF0Y2guZ3JvdXBzIS5jb250YWluZXJSZWNpcGVWZXJzaW9uLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbihcblx0XHRwcm9wczogSW1hZ2VCdWlsZGVyRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmltYWdlYnVpbGRlcjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkaXN0cmlidXRpb24tY29uZmlndXJhdGlvbi8ke3Byb3BzLmRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25OYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBkaXN0cmlidXRpb25Db25maWd1cmF0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREaXN0cmlidXRpb25Db25maWd1cmF0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEaXN0cmlidXRpb25Db25maWd1cmF0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBJbWFnZUJ1aWxkZXJEaXN0cmlidXRpb25Db25maWd1cmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEaXN0cmlidXRpb25Db25maWd1cmF0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbk5hbWU6XG5cdFx0XHRcdG1hdGNoLmdyb3VwcyEuZGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbk5hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgaW1hZ2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaW1hZ2UocHJvcHM6IEltYWdlQnVpbGRlckltYWdlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmltYWdlYnVpbGRlcjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTppbWFnZS8ke3Byb3BzLmltYWdlTmFtZX0vJHtwcm9wcy5pbWFnZVZlcnNpb259LyR7cHJvcHMuaW1hZ2VCdWlsZFZlcnNpb259YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGltYWdlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRJbWFnZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBJbWFnZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBpbWFnZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VJbWFnZUFybihhcm46IHN0cmluZyk6IEltYWdlQnVpbGRlckltYWdlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBJbWFnZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBpbWFnZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRpbWFnZU5hbWU6IG1hdGNoLmdyb3VwcyEuaW1hZ2VOYW1lLFxuXHRcdFx0aW1hZ2VWZXJzaW9uOiBtYXRjaC5ncm91cHMhLmltYWdlVmVyc2lvbixcblx0XHRcdGltYWdlQnVpbGRWZXJzaW9uOiBtYXRjaC5ncm91cHMhLmltYWdlQnVpbGRWZXJzaW9uLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGltYWdlUGlwZWxpbmUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaW1hZ2VQaXBlbGluZShwcm9wczogSW1hZ2VCdWlsZGVySW1hZ2VQaXBlbGluZUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTppbWFnZWJ1aWxkZXI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06aW1hZ2UtcGlwZWxpbmUvJHtwcm9wcy5pbWFnZVBpcGVsaW5lTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgaW1hZ2VQaXBlbGluZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkSW1hZ2VQaXBlbGluZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBJbWFnZVBpcGVsaW5lQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGltYWdlUGlwZWxpbmUgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlSW1hZ2VQaXBlbGluZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogSW1hZ2VCdWlsZGVySW1hZ2VQaXBlbGluZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSW1hZ2VQaXBlbGluZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBpbWFnZVBpcGVsaW5lIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGltYWdlUGlwZWxpbmVOYW1lOiBtYXRjaC5ncm91cHMhLmltYWdlUGlwZWxpbmVOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGltYWdlUmVjaXBlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGltYWdlUmVjaXBlKHByb3BzOiBJbWFnZUJ1aWxkZXJJbWFnZVJlY2lwZUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTppbWFnZWJ1aWxkZXI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06aW1hZ2UtcmVjaXBlLyR7cHJvcHMuaW1hZ2VSZWNpcGVOYW1lfS8ke3Byb3BzLmltYWdlUmVjaXBlVmVyc2lvbn1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgaW1hZ2VSZWNpcGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEltYWdlUmVjaXBlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEltYWdlUmVjaXBlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGltYWdlUmVjaXBlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUltYWdlUmVjaXBlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBJbWFnZUJ1aWxkZXJJbWFnZVJlY2lwZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSW1hZ2VSZWNpcGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaW1hZ2VSZWNpcGUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0aW1hZ2VSZWNpcGVOYW1lOiBtYXRjaC5ncm91cHMhLmltYWdlUmVjaXBlTmFtZSxcblx0XHRcdGltYWdlUmVjaXBlVmVyc2lvbjogbWF0Y2guZ3JvdXBzIS5pbWFnZVJlY2lwZVZlcnNpb24sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgaW1hZ2VWZXJzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGltYWdlVmVyc2lvbihwcm9wczogSW1hZ2VCdWlsZGVySW1hZ2VWZXJzaW9uQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmltYWdlYnVpbGRlcjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTppbWFnZS8ke3Byb3BzLmltYWdlTmFtZX0vJHtwcm9wcy5pbWFnZVZlcnNpb259YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGltYWdlVmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkSW1hZ2VWZXJzaW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEltYWdlVmVyc2lvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBpbWFnZVZlcnNpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlSW1hZ2VWZXJzaW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBJbWFnZUJ1aWxkZXJJbWFnZVZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEltYWdlVmVyc2lvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBpbWFnZVZlcnNpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0aW1hZ2VOYW1lOiBtYXRjaC5ncm91cHMhLmltYWdlTmFtZSxcblx0XHRcdGltYWdlVmVyc2lvbjogbWF0Y2guZ3JvdXBzIS5pbWFnZVZlcnNpb24sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgaW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbihcblx0XHRwcm9wczogSW1hZ2VCdWlsZGVySW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06aW1hZ2VidWlsZGVyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmluZnJhc3RydWN0dXJlLWNvbmZpZ3VyYXRpb24vJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBpbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgaW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogSW1hZ2VCdWlsZGVySW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBsaWZlY3ljbGVFeGVjdXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgbGlmZWN5Y2xlRXhlY3V0aW9uKFxuXHRcdHByb3BzOiBJbWFnZUJ1aWxkZXJMaWZlY3ljbGVFeGVjdXRpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTppbWFnZWJ1aWxkZXI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06bGlmZWN5Y2xlLWV4ZWN1dGlvbi8ke3Byb3BzLmxpZmVjeWNsZUV4ZWN1dGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBsaWZlY3ljbGVFeGVjdXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZExpZmVjeWNsZUV4ZWN1dGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBMaWZlY3ljbGVFeGVjdXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgbGlmZWN5Y2xlRXhlY3V0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUxpZmVjeWNsZUV4ZWN1dGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogSW1hZ2VCdWlsZGVyTGlmZWN5Y2xlRXhlY3V0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBMaWZlY3ljbGVFeGVjdXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbGlmZWN5Y2xlRXhlY3V0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGxpZmVjeWNsZUV4ZWN1dGlvbklkOiBtYXRjaC5ncm91cHMhLmxpZmVjeWNsZUV4ZWN1dGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGxpZmVjeWNsZVBvbGljeSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBsaWZlY3ljbGVQb2xpY3kocHJvcHM6IEltYWdlQnVpbGRlckxpZmVjeWNsZVBvbGljeUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTppbWFnZWJ1aWxkZXI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06bGlmZWN5Y2xlLXBvbGljeS8ke3Byb3BzLmxpZmVjeWNsZVBvbGljeU5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGxpZmVjeWNsZVBvbGljeSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkTGlmZWN5Y2xlUG9saWN5QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIExpZmVjeWNsZVBvbGljeUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBsaWZlY3ljbGVQb2xpY3kgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlTGlmZWN5Y2xlUG9saWN5QXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBJbWFnZUJ1aWxkZXJMaWZlY3ljbGVQb2xpY3lBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IExpZmVjeWNsZVBvbGljeUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBsaWZlY3ljbGVQb2xpY3kgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0bGlmZWN5Y2xlUG9saWN5TmFtZTogbWF0Y2guZ3JvdXBzIS5saWZlY3ljbGVQb2xpY3lOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHdvcmtmbG93IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHdvcmtmbG93KHByb3BzOiBJbWFnZUJ1aWxkZXJXb3JrZmxvd0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTppbWFnZWJ1aWxkZXI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06d29ya2Zsb3cvJHtwcm9wcy53b3JrZmxvd1R5cGV9LyR7cHJvcHMud29ya2Zsb3dOYW1lfS8ke3Byb3BzLndvcmtmbG93VmVyc2lvbn0vJHtwcm9wcy53b3JrZmxvd0J1aWxkVmVyc2lvbn1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgd29ya2Zsb3cgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFdvcmtmbG93QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFdvcmtmbG93QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHdvcmtmbG93IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVdvcmtmbG93QXJuKGFybjogc3RyaW5nKTogSW1hZ2VCdWlsZGVyV29ya2Zsb3dBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFdvcmtmbG93QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHdvcmtmbG93IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHdvcmtmbG93VHlwZTogbWF0Y2guZ3JvdXBzIS53b3JrZmxvd1R5cGUsXG5cdFx0XHR3b3JrZmxvd05hbWU6IG1hdGNoLmdyb3VwcyEud29ya2Zsb3dOYW1lLFxuXHRcdFx0d29ya2Zsb3dWZXJzaW9uOiBtYXRjaC5ncm91cHMhLndvcmtmbG93VmVyc2lvbixcblx0XHRcdHdvcmtmbG93QnVpbGRWZXJzaW9uOiBtYXRjaC5ncm91cHMhLndvcmtmbG93QnVpbGRWZXJzaW9uLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHdvcmtmbG93RXhlY3V0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHdvcmtmbG93RXhlY3V0aW9uKFxuXHRcdHByb3BzOiBJbWFnZUJ1aWxkZXJXb3JrZmxvd0V4ZWN1dGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmltYWdlYnVpbGRlcjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTp3b3JrZmxvdy1leGVjdXRpb24vJHtwcm9wcy53b3JrZmxvd0V4ZWN1dGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSB3b3JrZmxvd0V4ZWN1dGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkV29ya2Zsb3dFeGVjdXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gV29ya2Zsb3dFeGVjdXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgd29ya2Zsb3dFeGVjdXRpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlV29ya2Zsb3dFeGVjdXRpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEltYWdlQnVpbGRlcldvcmtmbG93RXhlY3V0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBXb3JrZmxvd0V4ZWN1dGlvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB3b3JrZmxvd0V4ZWN1dGlvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHR3b3JrZmxvd0V4ZWN1dGlvbklkOiBtYXRjaC5ncm91cHMhLndvcmtmbG93RXhlY3V0aW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgd29ya2Zsb3dTdGVwRXhlY3V0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHdvcmtmbG93U3RlcEV4ZWN1dGlvbihcblx0XHRwcm9wczogSW1hZ2VCdWlsZGVyV29ya2Zsb3dTdGVwRXhlY3V0aW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06aW1hZ2VidWlsZGVyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OndvcmtmbG93LXN0ZXAtZXhlY3V0aW9uLyR7cHJvcHMud29ya2Zsb3dTdGVwRXhlY3V0aW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHdvcmtmbG93U3RlcEV4ZWN1dGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkV29ya2Zsb3dTdGVwRXhlY3V0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFdvcmtmbG93U3RlcEV4ZWN1dGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSB3b3JrZmxvd1N0ZXBFeGVjdXRpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlV29ya2Zsb3dTdGVwRXhlY3V0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBJbWFnZUJ1aWxkZXJXb3JrZmxvd1N0ZXBFeGVjdXRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFdvcmtmbG93U3RlcEV4ZWN1dGlvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB3b3JrZmxvd1N0ZXBFeGVjdXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0d29ya2Zsb3dTdGVwRXhlY3V0aW9uSWQ6IG1hdGNoLmdyb3VwcyEud29ya2Zsb3dTdGVwRXhlY3V0aW9uSWQsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3IgaW1hZ2VidWlsZGVyLlxuICovXG5leHBvcnQgY2xhc3MgSW1hZ2VCdWlsZGVyT3BlcmF0aW9ucyB7XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENhbmNlbEltYWdlQ3JlYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxJbWFnZUNyZWF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpDYW5jZWxJbWFnZUNyZWF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENhbmNlbExpZmVjeWNsZUV4ZWN1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbExpZmVjeWNsZUV4ZWN1dGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q2FuY2VsTGlmZWN5Y2xlRXhlY3V0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNvbXBvbmVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbXBvbmVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q3JlYXRlQ29tcG9uZW50XCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ29udGFpbmVyUmVjaXBlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29udGFpbmVyUmVjaXBlOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpDcmVhdGVDb250YWluZXJSZWNpcGVcIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXRDb21wb25lbnRcIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXRJbWFnZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZURpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEaXN0cmlidXRpb25Db25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpDcmVhdGVEaXN0cmlidXRpb25Db25maWd1cmF0aW9uXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImltYWdlYnVpbGRlcjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVJbWFnZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUltYWdlOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpDcmVhdGVJbWFnZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldENvbnRhaW5lclJlY2lwZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldERpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXRJbWFnZVJlY2lwZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldEluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvblwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldFdvcmtmbG93XCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImltYWdlYnVpbGRlcjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVJbWFnZVBpcGVsaW5lIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSW1hZ2VQaXBlbGluZTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q3JlYXRlSW1hZ2VQaXBlbGluZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldENvbnRhaW5lclJlY2lwZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldERpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XHRcImltYWdlYnVpbGRlcjpHZXRJbWFnZVJlY2lwZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldEluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvblwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldFdvcmtmbG93XCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImltYWdlYnVpbGRlcjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVJbWFnZVJlY2lwZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUltYWdlUmVjaXBlOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpDcmVhdGVJbWFnZVJlY2lwZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldENvbXBvbmVudFwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldEltYWdlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpDcmVhdGVJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25cIixcblx0XHRcImlhbTpHZXRJbnN0YW5jZVByb2ZpbGVcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUxpZmVjeWNsZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUxpZmVjeWNsZVBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q3JlYXRlTGlmZWN5Y2xlUG9saWN5XCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImltYWdlYnVpbGRlcjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVXb3JrZmxvdyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVdvcmtmbG93OiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpDcmVhdGVXb3JrZmxvd1wiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUNvbXBvbmVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNvbXBvbmVudDogc3RyaW5nW10gPSBbXCJpbWFnZWJ1aWxkZXI6RGVsZXRlQ29tcG9uZW50XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVDb250YWluZXJSZWNpcGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb250YWluZXJSZWNpcGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkRlbGV0ZUNvbnRhaW5lclJlY2lwZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVEaXN0cmlidXRpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6RGVsZXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVJbWFnZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUltYWdlOiBzdHJpbmdbXSA9IFtcImltYWdlYnVpbGRlcjpEZWxldGVJbWFnZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlSW1hZ2VQaXBlbGluZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUltYWdlUGlwZWxpbmU6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkRlbGV0ZUltYWdlUGlwZWxpbmVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlSW1hZ2VSZWNpcGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVJbWFnZVJlY2lwZTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6RGVsZXRlSW1hZ2VSZWNpcGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpEZWxldGVJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTGlmZWN5Y2xlUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTGlmZWN5Y2xlUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpEZWxldGVMaWZlY3ljbGVQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlV29ya2Zsb3cgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVXb3JrZmxvdzogc3RyaW5nW10gPSBbXCJpbWFnZWJ1aWxkZXI6RGVsZXRlV29ya2Zsb3dcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc3RyaWJ1dGVJbWFnZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc3RyaWJ1dGVJbWFnZTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6RGlzdHJpYnV0ZUltYWdlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0RGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldEltYWdlXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImltYWdlYnVpbGRlcjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDb21wb25lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENvbXBvbmVudDogc3RyaW5nW10gPSBbXCJpbWFnZWJ1aWxkZXI6R2V0Q29tcG9uZW50XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDb21wb25lbnRQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENvbXBvbmVudFBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0Q29tcG9uZW50UG9saWN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvbnRhaW5lclJlY2lwZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q29udGFpbmVyUmVjaXBlOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpHZXRDb250YWluZXJSZWNpcGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q29udGFpbmVyUmVjaXBlUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDb250YWluZXJSZWNpcGVQb2xpY3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkdldENvbnRhaW5lclJlY2lwZVBvbGljeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXREaXN0cmlidXRpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXREaXN0cmlidXRpb25Db25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpHZXREaXN0cmlidXRpb25Db25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEltYWdlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRJbWFnZTogc3RyaW5nW10gPSBbXCJpbWFnZWJ1aWxkZXI6R2V0SW1hZ2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEltYWdlUGlwZWxpbmUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEltYWdlUGlwZWxpbmU6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkdldEltYWdlUGlwZWxpbmVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SW1hZ2VQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEltYWdlUG9saWN5OiBzdHJpbmdbXSA9IFtcImltYWdlYnVpbGRlcjpHZXRJbWFnZVBvbGljeVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SW1hZ2VSZWNpcGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEltYWdlUmVjaXBlOiBzdHJpbmdbXSA9IFtcImltYWdlYnVpbGRlcjpHZXRJbWFnZVJlY2lwZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SW1hZ2VSZWNpcGVQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEltYWdlUmVjaXBlUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpHZXRJbWFnZVJlY2lwZVBvbGljeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0SW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldExpZmVjeWNsZUV4ZWN1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TGlmZWN5Y2xlRXhlY3V0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpHZXRMaWZlY3ljbGVFeGVjdXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TGlmZWN5Y2xlUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRMaWZlY3ljbGVQb2xpY3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkdldExpZmVjeWNsZVBvbGljeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRNYXJrZXRwbGFjZVJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRNYXJrZXRwbGFjZVJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpHZXRNYXJrZXRwbGFjZVJlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFdvcmtmbG93IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRXb3JrZmxvdzogc3RyaW5nW10gPSBbXCJpbWFnZWJ1aWxkZXI6R2V0V29ya2Zsb3dcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFdvcmtmbG93RXhlY3V0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRXb3JrZmxvd0V4ZWN1dGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0V29ya2Zsb3dFeGVjdXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0V29ya2Zsb3dTdGVwRXhlY3V0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRXb3JrZmxvd1N0ZXBFeGVjdXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkdldFdvcmtmbG93U3RlcEV4ZWN1dGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbXBvcnRDb21wb25lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBJbXBvcnRDb21wb25lbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkltcG9ydENvbXBvbmVudFwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEltcG9ydERpc2tJbWFnZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEltcG9ydERpc2tJbWFnZTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0SW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6SW1wb3J0RGlza0ltYWdlXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImltYWdlYnVpbGRlcjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbXBvcnRWbUltYWdlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW1wb3J0Vm1JbWFnZTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6SW1wb3J0Vm1JbWFnZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDb21wb25lbnRCdWlsZFZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbXBvbmVudEJ1aWxkVmVyc2lvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RDb21wb25lbnRCdWlsZFZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDb21wb25lbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbXBvbmVudHM6IHN0cmluZ1tdID0gW1wiaW1hZ2VidWlsZGVyOkxpc3RDb21wb25lbnRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q29udGFpbmVyUmVjaXBlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb250YWluZXJSZWNpcGVzOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpMaXN0Q29udGFpbmVyUmVjaXBlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3REaXN0cmlidXRpb25Db25maWd1cmF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SW1hZ2VCdWlsZFZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEltYWdlQnVpbGRWZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdEltYWdlQnVpbGRWZXJzaW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SW1hZ2VQYWNrYWdlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbWFnZVBhY2thZ2VzOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpMaXN0SW1hZ2VQYWNrYWdlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SW1hZ2VQaXBlbGluZUltYWdlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbWFnZVBpcGVsaW5lSW1hZ2VzOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpMaXN0SW1hZ2VQaXBlbGluZUltYWdlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SW1hZ2VQaXBlbGluZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW1hZ2VQaXBlbGluZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RJbWFnZVBpcGVsaW5lc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SW1hZ2VSZWNpcGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEltYWdlUmVjaXBlczogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdEltYWdlUmVjaXBlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SW1hZ2VTY2FuRmluZGluZ0FnZ3JlZ2F0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbWFnZVNjYW5GaW5kaW5nQWdncmVnYXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpMaXN0SW1hZ2VTY2FuRmluZGluZ0FnZ3JlZ2F0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SW1hZ2VTY2FuRmluZGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW1hZ2VTY2FuRmluZGluZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RJbWFnZVNjYW5GaW5kaW5nc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SW1hZ2VzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEltYWdlczogc3RyaW5nW10gPSBbXCJpbWFnZWJ1aWxkZXI6TGlzdEltYWdlc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdEluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdExpZmVjeWNsZUV4ZWN1dGlvblJlc291cmNlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMaWZlY3ljbGVFeGVjdXRpb25SZXNvdXJjZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RMaWZlY3ljbGVFeGVjdXRpb25SZXNvdXJjZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdExpZmVjeWNsZUV4ZWN1dGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TGlmZWN5Y2xlRXhlY3V0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdExpZmVjeWNsZUV4ZWN1dGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdExpZmVjeWNsZVBvbGljaWVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdExpZmVjeWNsZVBvbGljaWVzOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpMaXN0TGlmZWN5Y2xlUG9saWNpZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRhZ3NGb3JSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RUYWdzRm9yUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFdhaXRpbmdXb3JrZmxvd1N0ZXBzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFdhaXRpbmdXb3JrZmxvd1N0ZXBzOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpMaXN0V2FpdGluZ1dvcmtmbG93U3RlcHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFdvcmtmbG93QnVpbGRWZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RXb3JrZmxvd0J1aWxkVmVyc2lvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RXb3JrZmxvd0J1aWxkVmVyc2lvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFdvcmtmbG93RXhlY3V0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RXb3JrZmxvd0V4ZWN1dGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkxpc3RXb3JrZmxvd0V4ZWN1dGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFdvcmtmbG93U3RlcEV4ZWN1dGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0V29ya2Zsb3dTdGVwRXhlY3V0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlzdFdvcmtmbG93U3RlcEV4ZWN1dGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFdvcmtmbG93cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RXb3JrZmxvd3M6IHN0cmluZ1tdID0gW1wiaW1hZ2VidWlsZGVyOkxpc3RXb3JrZmxvd3NcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dENvbXBvbmVudFBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dENvbXBvbmVudFBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6UHV0Q29tcG9uZW50UG9saWN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dENvbnRhaW5lclJlY2lwZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dENvbnRhaW5lclJlY2lwZVBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6UHV0Q29udGFpbmVyUmVjaXBlUG9saWN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dEltYWdlUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0SW1hZ2VQb2xpY3k6IHN0cmluZ1tdID0gW1wiaW1hZ2VidWlsZGVyOlB1dEltYWdlUG9saWN5XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRJbWFnZVJlY2lwZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEltYWdlUmVjaXBlUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpQdXRJbWFnZVJlY2lwZVBvbGljeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZXRyeUltYWdlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmV0cnlJbWFnZTogc3RyaW5nW10gPSBbXCJpbWFnZWJ1aWxkZXI6UmV0cnlJbWFnZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU2VuZFdvcmtmbG93U3RlcEFjdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRXb3JrZmxvd1N0ZXBBY3Rpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOlNlbmRXb3JrZmxvd1N0ZXBBY3Rpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRJbWFnZVBpcGVsaW5lRXhlY3V0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRJbWFnZVBpcGVsaW5lRXhlY3V0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpTdGFydEltYWdlUGlwZWxpbmVFeGVjdXRpb25cIixcblx0XHRcImltYWdlYnVpbGRlcjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFJlc291cmNlU3RhdGVVcGRhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlc291cmNlU3RhdGVVcGRhdGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6U3RhcnRSZXNvdXJjZVN0YXRlVXBkYXRlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiaW1hZ2VidWlsZGVyOlRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVbnRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJpbWFnZWJ1aWxkZXI6VW50YWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZURpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6VXBkYXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVJbWFnZVBpcGVsaW5lIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlSW1hZ2VQaXBlbGluZTogc3RyaW5nW10gPSBbXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0Q29udGFpbmVyUmVjaXBlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0RGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkdldEltYWdlUmVjaXBlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0SW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6R2V0V29ya2Zsb3dcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOlRhZ1Jlc291cmNlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6VXBkYXRlSW1hZ2VQaXBlbGluZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOkdldEluc3RhbmNlUHJvZmlsZVwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6VXBkYXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUxpZmVjeWNsZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUxpZmVjeWNsZVBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImltYWdlYnVpbGRlcjpVcGRhdGVMaWZlY3ljbGVQb2xpY3lcIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGltYWdlYnVpbGRlci5cbiAqL1xuZXhwb3J0IGNsYXNzIEltYWdlQnVpbGRlckNvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ29tcG9uZW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbXBvbmVudENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ29udGFpbmVyUmVjaXBlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbnRhaW5lclJlY2lwZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEaXN0cmlidXRpb25Db25maWd1cmF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVJbWFnZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVJbWFnZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlSW1hZ2VQaXBlbGluZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVJbWFnZVBpcGVsaW5lQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVJbWFnZVJlY2lwZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVJbWFnZVJlY2lwZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRcdFwiaW1hZ2VidWlsZGVyOkNyZWF0ZWRSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XHRcImltYWdlYnVpbGRlcjpDcmVhdGVkUmVzb3VyY2VUYWdLZXlzXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6RWMyTWV0YWRhdGFIdHRwVG9rZW5zXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6U3RhdHVzVG9waWNBcm5cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUxpZmVjeWNsZVBvbGljeSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVMaWZlY3ljbGVQb2xpY3lDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcImltYWdlYnVpbGRlcjpMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVdvcmtmbG93IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVdvcmtmbG93Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBEaXN0cmlidXRlSW1hZ2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzdHJpYnV0ZUltYWdlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBJbXBvcnRDb21wb25lbnQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW1wb3J0Q29tcG9uZW50Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBJbXBvcnREaXNrSW1hZ2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW1wb3J0RGlza0ltYWdlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBJbXBvcnRWbUltYWdlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEltcG9ydFZtSW1hZ2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0SW1hZ2VQaXBlbGluZUV4ZWN1dGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydEltYWdlUGlwZWxpbmVFeGVjdXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVbnRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcImF3czpUYWdLZXlzXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiaW1hZ2VidWlsZGVyOkNyZWF0ZWRSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XHRcImltYWdlYnVpbGRlcjpDcmVhdGVkUmVzb3VyY2VUYWdLZXlzXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6RWMyTWV0YWRhdGFIdHRwVG9rZW5zXCIsXG5cdFx0XCJpbWFnZWJ1aWxkZXI6U3RhdHVzVG9waWNBcm5cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZUxpZmVjeWNsZVBvbGljeSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVMaWZlY3ljbGVQb2xpY3lDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImltYWdlYnVpbGRlcjpMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGVcIixcblx0XTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBpbWFnZWJ1aWxkZXI6Q3JlYXRlZFJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ1JFQVRFRF9SRVNPVVJDRV9UQUcgPVxuXHRcdFwiaW1hZ2VidWlsZGVyOkNyZWF0ZWRSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGltYWdlYnVpbGRlcjpDcmVhdGVkUmVzb3VyY2VUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ1JFQVRFRF9SRVNPVVJDRV9UQUdfS0VZUyA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6Q3JlYXRlZFJlc291cmNlVGFnS2V5c1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogaW1hZ2VidWlsZGVyOkVjMk1ldGFkYXRhSHR0cFRva2VucyAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRUMyX01FVEFEQVRBX0hUVFBfVE9LRU5TID1cblx0XHRcImltYWdlYnVpbGRlcjpFYzJNZXRhZGF0YUh0dHBUb2tlbnNcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGltYWdlYnVpbGRlcjpMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IExJRkVDWUNMRV9QT0xJQ1lfUkVTT1VSQ0VfVFlQRSA9XG5cdFx0XCJpbWFnZWJ1aWxkZXI6TGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBpbWFnZWJ1aWxkZXI6U3RhdHVzVG9waWNBcm4gKEFSTikgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNUQVRVU19UT1BJQ19BUk4gPSBcImltYWdlYnVpbGRlcjpTdGF0dXNUb3BpY0FyblwiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBpbWFnZWJ1aWxkZXI6Q3JlYXRlZFJlc291cmNlVGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgY3JlYXRlZFJlc291cmNlVGFnKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0U3RyaW5nRXF1YWxzOiB7IFwiaW1hZ2VidWlsZGVyOkNyZWF0ZWRSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGltYWdlYnVpbGRlcjpDcmVhdGVkUmVzb3VyY2VUYWdLZXlzYC5cblx0ICovXG5cdHN0YXRpYyBjcmVhdGVkUmVzb3VyY2VUYWdLZXlzKFxuXHRcdHZhbHVlczogc3RyaW5nW10sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7XG5cdFx0XHRcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjoge1xuXHRcdFx0XHRcImltYWdlYnVpbGRlcjpDcmVhdGVkUmVzb3VyY2VUYWdLZXlzXCI6IHZhbHVlcyxcblx0XHRcdH0sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBpbWFnZWJ1aWxkZXI6RWMyTWV0YWRhdGFIdHRwVG9rZW5zYC5cblx0ICovXG5cdHN0YXRpYyBlYzJNZXRhZGF0YUh0dHBUb2tlbnMoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImltYWdlYnVpbGRlcjpFYzJNZXRhZGF0YUh0dHBUb2tlbnNcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGltYWdlYnVpbGRlcjpMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGVgLlxuXHQgKi9cblx0c3RhdGljIGxpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZShcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFN0cmluZ0VxdWFsczogeyBcImltYWdlYnVpbGRlcjpMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGVcIjogdmFsdWUgfSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGltYWdlYnVpbGRlcjpTdGF0dXNUb3BpY0FybmAuXG5cdCAqL1xuXHRzdGF0aWMgc3RhdHVzVG9waWNBUk4odmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBBcm5FcXVhbHM6IHsgXCJpbWFnZWJ1aWxkZXI6U3RhdHVzVG9waWNBcm5cIjogdmFsdWUgfSB9O1xuXHR9XG59XG4iXX0=