@cdk_utils/iam 1.7.0 → 1.8.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 (458) hide show
  1. package/.jsii +1623 -1462
  2. package/lib/generated/services/a2c.js +1 -1
  3. package/lib/generated/services/a4b.js +3 -3
  4. package/lib/generated/services/access-analyzer.js +4 -4
  5. package/lib/generated/services/account-access.js +4 -4
  6. package/lib/generated/services/account.js +4 -4
  7. package/lib/generated/services/acm-pca.js +4 -4
  8. package/lib/generated/services/acm.js +4 -4
  9. package/lib/generated/services/aco-automation.js +4 -4
  10. package/lib/generated/services/action-recommendations.js +1 -1
  11. package/lib/generated/services/activate.js +1 -1
  12. package/lib/generated/services/agent-registry.js +9 -5
  13. package/lib/generated/services/agentaccess-mcp.js +2 -2
  14. package/lib/generated/services/aidevops.js +4 -4
  15. package/lib/generated/services/aiops.js +4 -4
  16. package/lib/generated/services/airflow-serverless.js +4 -4
  17. package/lib/generated/services/airflow.js +4 -4
  18. package/lib/generated/services/amplify.js +4 -4
  19. package/lib/generated/services/amplifybackend.js +3 -3
  20. package/lib/generated/services/amplifyuibuilder.js +4 -4
  21. package/lib/generated/services/aoss.js +4 -4
  22. package/lib/generated/services/apigateway.js +4 -4
  23. package/lib/generated/services/app-integrations.js +4 -4
  24. package/lib/generated/services/appconfig.js +4 -4
  25. package/lib/generated/services/appfabric.js +4 -4
  26. package/lib/generated/services/appflow.js +4 -4
  27. package/lib/generated/services/application-autoscaling.js +4 -4
  28. package/lib/generated/services/application-signals-mcp.js +3 -3
  29. package/lib/generated/services/application-signals.js +4 -4
  30. package/lib/generated/services/application-transformation.js +1 -1
  31. package/lib/generated/services/applicationinsights.js +3 -3
  32. package/lib/generated/services/appmesh-preview.js +2 -2
  33. package/lib/generated/services/appmesh.js +4 -4
  34. package/lib/generated/services/apprunner.js +4 -4
  35. package/lib/generated/services/appstream.js +4 -4
  36. package/lib/generated/services/appstudio.js +2 -2
  37. package/lib/generated/services/appsync.js +4 -4
  38. package/lib/generated/services/apptest.js +3 -3
  39. package/lib/generated/services/aps.js +4 -4
  40. package/lib/generated/services/arc-region-switch.js +4 -4
  41. package/lib/generated/services/arc-zonal-shift.js +4 -4
  42. package/lib/generated/services/arsenal.js +1 -1
  43. package/lib/generated/services/artifact.js +4 -4
  44. package/lib/generated/services/athena.js +4 -4
  45. package/lib/generated/services/auditmanager.js +4 -4
  46. package/lib/generated/services/autoscaling-plans.js +2 -2
  47. package/lib/generated/services/autoscaling.js +4 -4
  48. package/lib/generated/services/aws-external-anthropic.js +3 -3
  49. package/lib/generated/services/aws-marketplace-management.js +1 -1
  50. package/lib/generated/services/aws-marketplace.js +4 -4
  51. package/lib/generated/services/aws-portal.js +1 -1
  52. package/lib/generated/services/awsconnector.js +1 -1
  53. package/lib/generated/services/b2bi.js +4 -4
  54. package/lib/generated/services/backup-gateway.js +4 -4
  55. package/lib/generated/services/backup-search.js +4 -4
  56. package/lib/generated/services/backup-storage.js +1 -1
  57. package/lib/generated/services/backup.js +4 -4
  58. package/lib/generated/services/batch.js +4 -4
  59. package/lib/generated/services/bcm-dashboards.js +4 -4
  60. package/lib/generated/services/bcm-data-exports.js +4 -4
  61. package/lib/generated/services/bcm-pricing-calculator.js +4 -4
  62. package/lib/generated/services/bcm-recommended-actions.js +2 -2
  63. package/lib/generated/services/bedrock-agentcore.js +4 -4
  64. package/lib/generated/services/bedrock-mantle.js +3 -3
  65. package/lib/generated/services/bedrock-websearch.js +2 -2
  66. package/lib/generated/services/bedrock.js +4 -4
  67. package/lib/generated/services/billing.js +4 -4
  68. package/lib/generated/services/billingconductor.js +4 -4
  69. package/lib/generated/services/braket.js +4 -4
  70. package/lib/generated/services/budgets.js +4 -4
  71. package/lib/generated/services/bugbust.js +3 -3
  72. package/lib/generated/services/cases.js +4 -4
  73. package/lib/generated/services/cassandra.js +4 -4
  74. package/lib/generated/services/ce.js +4 -4
  75. package/lib/generated/services/chatbot.js +4 -4
  76. package/lib/generated/services/chime.js +4 -4
  77. package/lib/generated/services/cleanrooms-ml.js +4 -4
  78. package/lib/generated/services/cleanrooms.js +4 -4
  79. package/lib/generated/services/cloud9.js +4 -4
  80. package/lib/generated/services/clouddirectory.js +3 -3
  81. package/lib/generated/services/cloudformation.js +4 -4
  82. package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
  83. package/lib/generated/services/cloudfront.js +4 -4
  84. package/lib/generated/services/cloudhsm.js +4 -4
  85. package/lib/generated/services/cloudsearch.js +3 -3
  86. package/lib/generated/services/cloudshell.js +3 -3
  87. package/lib/generated/services/cloudtrail-data.js +4 -4
  88. package/lib/generated/services/cloudtrail.js +4 -4
  89. package/lib/generated/services/cloudwatch.js +4 -4
  90. package/lib/generated/services/codeartifact.js +4 -4
  91. package/lib/generated/services/codebuild.js +4 -4
  92. package/lib/generated/services/codecatalyst.js +4 -4
  93. package/lib/generated/services/codecommit.js +4 -4
  94. package/lib/generated/services/codeconnections.js +4 -4
  95. package/lib/generated/services/codedeploy-commands-secure.js +1 -1
  96. package/lib/generated/services/codedeploy.js +4 -4
  97. package/lib/generated/services/codeguru-profiler.js +4 -4
  98. package/lib/generated/services/codeguru-reviewer.js +4 -4
  99. package/lib/generated/services/codeguru-security.js +4 -4
  100. package/lib/generated/services/codeguru.js +1 -1
  101. package/lib/generated/services/codepipeline.js +4 -4
  102. package/lib/generated/services/codestar-connections.js +4 -4
  103. package/lib/generated/services/codestar-notifications.js +4 -4
  104. package/lib/generated/services/codestar.js +3 -3
  105. package/lib/generated/services/codewhisperer.js +3 -3
  106. package/lib/generated/services/cognito-identity.js +4 -4
  107. package/lib/generated/services/cognito-idp.js +4 -4
  108. package/lib/generated/services/cognito-sync.js +3 -3
  109. package/lib/generated/services/comprehend.js +4 -4
  110. package/lib/generated/services/comprehendmedical.js +3 -3
  111. package/lib/generated/services/compute-optimizer.js +3 -3
  112. package/lib/generated/services/config.js +4 -4
  113. package/lib/generated/services/connect-campaigns.js +4 -4
  114. package/lib/generated/services/connect.js +9 -6
  115. package/lib/generated/services/consoleapp.js +2 -2
  116. package/lib/generated/services/consolidatedbilling.js +1 -1
  117. package/lib/generated/services/controlcatalog.js +3 -3
  118. package/lib/generated/services/controltower.js +4 -4
  119. package/lib/generated/services/cost-optimization-hub.js +2 -2
  120. package/lib/generated/services/cur.js +4 -4
  121. package/lib/generated/services/customer-verification.js +1 -1
  122. package/lib/generated/services/databrew.js +4 -4
  123. package/lib/generated/services/dataexchange.js +4 -4
  124. package/lib/generated/services/datapipeline.js +4 -4
  125. package/lib/generated/services/datasync.js +4 -4
  126. package/lib/generated/services/datazone.js +4 -4
  127. package/lib/generated/services/dax.js +4 -4
  128. package/lib/generated/services/dbqms.js +1 -1
  129. package/lib/generated/services/deadline.js +4 -4
  130. package/lib/generated/services/detective.js +4 -4
  131. package/lib/generated/services/devicefarm.js +4 -4
  132. package/lib/generated/services/devops-guru.js +4 -4
  133. package/lib/generated/services/directconnect.js +4 -4
  134. package/lib/generated/services/discovery.js +3 -3
  135. package/lib/generated/services/dlm.js +4 -4
  136. package/lib/generated/services/dms.js +4 -4
  137. package/lib/generated/services/docdb-elastic.js +4 -4
  138. package/lib/generated/services/drs.js +4 -4
  139. package/lib/generated/services/ds-data.js +4 -4
  140. package/lib/generated/services/ds.js +4 -4
  141. package/lib/generated/services/dsql.js +4 -4
  142. package/lib/generated/services/dynamodb.js +4 -4
  143. package/lib/generated/services/ebs.js +4 -4
  144. package/lib/generated/services/ec2-instance-connect.js +4 -4
  145. package/lib/generated/services/ec2.js +4 -4
  146. package/lib/generated/services/ec2messages.js +2 -2
  147. package/lib/generated/services/ecr-public.js +4 -4
  148. package/lib/generated/services/ecr.js +4 -4
  149. package/lib/generated/services/ecs-mcp.js +1 -1
  150. package/lib/generated/services/ecs.js +4 -4
  151. package/lib/generated/services/eks-auth.js +4 -4
  152. package/lib/generated/services/eks-mcp.js +1 -1
  153. package/lib/generated/services/eks.js +4 -4
  154. package/lib/generated/services/elasticache.js +4 -4
  155. package/lib/generated/services/elasticbeanstalk.js +4 -4
  156. package/lib/generated/services/elasticfilesystem.js +4 -4
  157. package/lib/generated/services/elasticloadbalancing.js +4 -4
  158. package/lib/generated/services/elasticmapreduce.js +4 -4
  159. package/lib/generated/services/elastictranscoder.js +2 -2
  160. package/lib/generated/services/elemental-activations.js +1 -1
  161. package/lib/generated/services/elemental-appliances-software.js +2 -2
  162. package/lib/generated/services/elemental-inference.js +4 -4
  163. package/lib/generated/services/elemental-support-cases.js +3 -3
  164. package/lib/generated/services/elemental-support-content.js +1 -1
  165. package/lib/generated/services/emr-containers.js +4 -4
  166. package/lib/generated/services/emr-serverless.js +4 -4
  167. package/lib/generated/services/entityresolution.js +4 -4
  168. package/lib/generated/services/es.js +4 -4
  169. package/lib/generated/services/events.js +4 -4
  170. package/lib/generated/services/eventsbilltoaws.js +3 -3
  171. package/lib/generated/services/evidently.js +3 -3
  172. package/lib/generated/services/evs.js +4 -4
  173. package/lib/generated/services/execute-api.js +4 -4
  174. package/lib/generated/services/finops-agent.js +1 -1
  175. package/lib/generated/services/finspace-api.js +3 -3
  176. package/lib/generated/services/finspace.js +4 -4
  177. package/lib/generated/services/firehose.js +4 -4
  178. package/lib/generated/services/fis.js +4 -4
  179. package/lib/generated/services/fms.js +4 -4
  180. package/lib/generated/services/forecast.js +4 -4
  181. package/lib/generated/services/frauddetector.js +4 -4
  182. package/lib/generated/services/freertos.js +3 -3
  183. package/lib/generated/services/freetier.js +2 -2
  184. package/lib/generated/services/fsx.js +4 -4
  185. package/lib/generated/services/gamelift.js +4 -4
  186. package/lib/generated/services/gameliftstreams.js +4 -4
  187. package/lib/generated/services/geo-maps.js +3 -3
  188. package/lib/generated/services/geo-places.js +3 -3
  189. package/lib/generated/services/geo-routes.js +3 -3
  190. package/lib/generated/services/geo.js +4 -4
  191. package/lib/generated/services/glacier.js +4 -4
  192. package/lib/generated/services/globalaccelerator.js +4 -4
  193. package/lib/generated/services/glue.js +4 -4
  194. package/lib/generated/services/grafana.js +4 -4
  195. package/lib/generated/services/greengrass.js +4 -4
  196. package/lib/generated/services/groundstation.js +4 -4
  197. package/lib/generated/services/groundtruthlabeling.js +1 -1
  198. package/lib/generated/services/guardduty.js +4 -4
  199. package/lib/generated/services/health-agent.js +4 -4
  200. package/lib/generated/services/health.js +4 -4
  201. package/lib/generated/services/healthlake.js +4 -4
  202. package/lib/generated/services/honeycode.js +2 -2
  203. package/lib/generated/services/iam.js +4 -4
  204. package/lib/generated/services/identity-sync.js +2 -2
  205. package/lib/generated/services/identitystore-auth.js +1 -1
  206. package/lib/generated/services/identitystore.js +4 -4
  207. package/lib/generated/services/imagebuilder.js +4 -4
  208. package/lib/generated/services/importexport.js +2 -2
  209. package/lib/generated/services/inspector-scan.js +2 -2
  210. package/lib/generated/services/inspector.js +2 -2
  211. package/lib/generated/services/inspector2-telemetry.js +1 -1
  212. package/lib/generated/services/inspector2.js +4 -4
  213. package/lib/generated/services/interconnect.js +4 -4
  214. package/lib/generated/services/internetmonitor.js +4 -4
  215. package/lib/generated/services/invoicing.js +4 -4
  216. package/lib/generated/services/iot-device-tester.js +1 -1
  217. package/lib/generated/services/iot.js +4 -4
  218. package/lib/generated/services/iotanalytics.js +3 -3
  219. package/lib/generated/services/iotdeviceadvisor.js +4 -4
  220. package/lib/generated/services/iotevents.js +3 -3
  221. package/lib/generated/services/iotfleethub.js +3 -3
  222. package/lib/generated/services/iotfleetwise.js +4 -4
  223. package/lib/generated/services/iotjobsdata.js +4 -4
  224. package/lib/generated/services/iotmanagedintegrations.js +4 -4
  225. package/lib/generated/services/iotsitewise.js +4 -4
  226. package/lib/generated/services/iottwinmaker.js +4 -4
  227. package/lib/generated/services/iotwireless.js +4 -4
  228. package/lib/generated/services/iq-permission.js +2 -2
  229. package/lib/generated/services/iq.js +2 -2
  230. package/lib/generated/services/ivs.js +4 -4
  231. package/lib/generated/services/ivschat.js +4 -4
  232. package/lib/generated/services/kafka-cluster.js +3 -3
  233. package/lib/generated/services/kafka.js +4 -4
  234. package/lib/generated/services/kafkaconnect.js +4 -4
  235. package/lib/generated/services/kendra-ranking.js +4 -4
  236. package/lib/generated/services/kendra.js +4 -4
  237. package/lib/generated/services/kinesis.js +4 -4
  238. package/lib/generated/services/kinesisanalytics.js +4 -4
  239. package/lib/generated/services/kinesisvideo.js +4 -4
  240. package/lib/generated/services/kms.js +4 -4
  241. package/lib/generated/services/lakeformation.js +3 -3
  242. package/lib/generated/services/lambda.d.ts +16 -0
  243. package/lib/generated/services/lambda.js +38 -5
  244. package/lib/generated/services/launchwizard.js +4 -4
  245. package/lib/generated/services/lex.js +4 -4
  246. package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
  247. package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
  248. package/lib/generated/services/license-manager.js +4 -4
  249. package/lib/generated/services/lightsail.js +4 -4
  250. package/lib/generated/services/logs.js +4 -4
  251. package/lib/generated/services/lookoutequipment.js +4 -4
  252. package/lib/generated/services/lookoutmetrics.js +3 -3
  253. package/lib/generated/services/lookoutvision.js +3 -3
  254. package/lib/generated/services/m2.js +4 -4
  255. package/lib/generated/services/machinelearning.js +3 -3
  256. package/lib/generated/services/macie2.js +4 -4
  257. package/lib/generated/services/managedblockchain-query.js +2 -2
  258. package/lib/generated/services/managedblockchain.js +4 -4
  259. package/lib/generated/services/mapcredits.js +2 -2
  260. package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
  261. package/lib/generated/services/mechanicalturk.js +2 -2
  262. package/lib/generated/services/mediaconnect.js +4 -4
  263. package/lib/generated/services/mediaconvert.js +4 -4
  264. package/lib/generated/services/mediaimport.js +1 -1
  265. package/lib/generated/services/medialive.js +4 -4
  266. package/lib/generated/services/mediapackage-vod.js +4 -4
  267. package/lib/generated/services/mediapackage.js +4 -4
  268. package/lib/generated/services/mediapackagev2.js +4 -4
  269. package/lib/generated/services/mediastore.js +4 -4
  270. package/lib/generated/services/mediatailor.js +4 -4
  271. package/lib/generated/services/medical-imaging.js +4 -4
  272. package/lib/generated/services/memorydb.js +4 -4
  273. package/lib/generated/services/mgh.js +4 -4
  274. package/lib/generated/services/mgn.js +4 -4
  275. package/lib/generated/services/migrationhub-orchestrator.js +4 -4
  276. package/lib/generated/services/migrationhub-strategy.js +2 -2
  277. package/lib/generated/services/mobileanalytics.js +1 -1
  278. package/lib/generated/services/mobiletargeting.js +4 -4
  279. package/lib/generated/services/monitron.js +3 -3
  280. package/lib/generated/services/mpa.js +4 -4
  281. package/lib/generated/services/mq.js +4 -4
  282. package/lib/generated/services/neptune-db.js +4 -4
  283. package/lib/generated/services/neptune-graph.js +4 -4
  284. package/lib/generated/services/network-firewall.js +4 -4
  285. package/lib/generated/services/network-security-director.js +1 -1
  286. package/lib/generated/services/networkflowmonitor.js +4 -4
  287. package/lib/generated/services/networkmanager-chat.js +1 -1
  288. package/lib/generated/services/networkmanager.js +4 -4
  289. package/lib/generated/services/networkmonitor.js +4 -4
  290. package/lib/generated/services/nimble.js +3 -3
  291. package/lib/generated/services/notifications-contacts.js +4 -4
  292. package/lib/generated/services/notifications.js +4 -4
  293. package/lib/generated/services/nova-act.js +3 -3
  294. package/lib/generated/services/oam.js +4 -4
  295. package/lib/generated/services/observabilityadmin.js +4 -4
  296. package/lib/generated/services/odb.js +6 -5
  297. package/lib/generated/services/omics.js +4 -4
  298. package/lib/generated/services/one.js +3 -3
  299. package/lib/generated/services/opensearch.js +3 -3
  300. package/lib/generated/services/opsworks-cm.js +2 -2
  301. package/lib/generated/services/opsworks.js +2 -2
  302. package/lib/generated/services/organizations.js +4 -4
  303. package/lib/generated/services/osis.js +4 -4
  304. package/lib/generated/services/outposts.js +4 -4
  305. package/lib/generated/services/panorama.js +3 -3
  306. package/lib/generated/services/partnercentral-account-management.js +2 -2
  307. package/lib/generated/services/partnercentral.js +4 -4
  308. package/lib/generated/services/payment-cryptography.js +4 -4
  309. package/lib/generated/services/payments.js +3 -3
  310. package/lib/generated/services/pca-connector-ad.js +4 -4
  311. package/lib/generated/services/pca-connector-scep.js +4 -4
  312. package/lib/generated/services/pcs.js +4 -4
  313. package/lib/generated/services/personalize.js +4 -4
  314. package/lib/generated/services/pi.js +4 -4
  315. package/lib/generated/services/pipes.js +4 -4
  316. package/lib/generated/services/polly.js +3 -3
  317. package/lib/generated/services/pricing.js +2 -2
  318. package/lib/generated/services/pricingplanmanager.js +3 -3
  319. package/lib/generated/services/private-networks.js +3 -3
  320. package/lib/generated/services/profile.js +6 -5
  321. package/lib/generated/services/proton.js +4 -4
  322. package/lib/generated/services/purchase-orders.js +3 -3
  323. package/lib/generated/services/q.js +3 -3
  324. package/lib/generated/services/qapps.js +4 -4
  325. package/lib/generated/services/qbusiness.js +4 -4
  326. package/lib/generated/services/qdeveloper.js +3 -3
  327. package/lib/generated/services/qldb.js +3 -3
  328. package/lib/generated/services/quicksight.js +4 -4
  329. package/lib/generated/services/ram.js +4 -4
  330. package/lib/generated/services/rbin.js +4 -4
  331. package/lib/generated/services/rds-data.js +4 -4
  332. package/lib/generated/services/rds-db.js +2 -2
  333. package/lib/generated/services/rds.js +4 -4
  334. package/lib/generated/services/redshift-data.js +4 -4
  335. package/lib/generated/services/redshift-serverless.js +4 -4
  336. package/lib/generated/services/redshift.js +4 -4
  337. package/lib/generated/services/refactor-spaces.js +4 -4
  338. package/lib/generated/services/rekognition.js +4 -4
  339. package/lib/generated/services/repostspace.js +4 -4
  340. package/lib/generated/services/researchstudio.js +1 -1
  341. package/lib/generated/services/resiliencehub.js +4 -4
  342. package/lib/generated/services/resource-explorer-2.js +4 -4
  343. package/lib/generated/services/resource-explorer.js +1 -1
  344. package/lib/generated/services/resource-groups.js +4 -4
  345. package/lib/generated/services/rhelkb.js +1 -1
  346. package/lib/generated/services/robomaker.js +3 -3
  347. package/lib/generated/services/rolesanywhere.js +4 -4
  348. package/lib/generated/services/route53-recovery-cluster.js +4 -4
  349. package/lib/generated/services/route53-recovery-control-config.js +4 -4
  350. package/lib/generated/services/route53-recovery-readiness.js +4 -4
  351. package/lib/generated/services/route53.js +4 -4
  352. package/lib/generated/services/route53domains.js +2 -2
  353. package/lib/generated/services/route53globalresolver.js +4 -4
  354. package/lib/generated/services/route53profiles.js +4 -4
  355. package/lib/generated/services/route53resolver.js +4 -4
  356. package/lib/generated/services/rtbfabric.js +4 -4
  357. package/lib/generated/services/rum.js +4 -4
  358. package/lib/generated/services/s3-object-lambda.js +3 -3
  359. package/lib/generated/services/s3-outposts.js +4 -4
  360. package/lib/generated/services/s3.js +4 -4
  361. package/lib/generated/services/s3express.js +3 -3
  362. package/lib/generated/services/s3files.js +4 -4
  363. package/lib/generated/services/s3tables.js +4 -4
  364. package/lib/generated/services/s3vectors.js +4 -4
  365. package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
  366. package/lib/generated/services/sagemaker-geospatial.js +4 -4
  367. package/lib/generated/services/sagemaker-mlflow.js +3 -3
  368. package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
  369. package/lib/generated/services/sagemaker.js +4 -4
  370. package/lib/generated/services/savingsplans.js +4 -4
  371. package/lib/generated/services/scheduler.js +4 -4
  372. package/lib/generated/services/schemas.js +4 -4
  373. package/lib/generated/services/scn.js +4 -4
  374. package/lib/generated/services/sdb.js +3 -3
  375. package/lib/generated/services/secretsmanager.js +4 -4
  376. package/lib/generated/services/security-ir.js +4 -4
  377. package/lib/generated/services/securityagent.js +4 -4
  378. package/lib/generated/services/securityhub.js +4 -4
  379. package/lib/generated/services/securitylake.js +4 -4
  380. package/lib/generated/services/serverlessrepo.js +4 -4
  381. package/lib/generated/services/servicecatalog.js +4 -4
  382. package/lib/generated/services/servicediscovery.js +4 -4
  383. package/lib/generated/services/serviceextract.js +1 -1
  384. package/lib/generated/services/servicequotas.js +4 -4
  385. package/lib/generated/services/ses.js +4 -4
  386. package/lib/generated/services/shield.js +4 -4
  387. package/lib/generated/services/signer.js +4 -4
  388. package/lib/generated/services/signin.js +4 -4
  389. package/lib/generated/services/simspaceweaver.js +3 -3
  390. package/lib/generated/services/sms-voice.js +4 -4
  391. package/lib/generated/services/sms.js +1 -1
  392. package/lib/generated/services/snow-device-management.js +4 -4
  393. package/lib/generated/services/snowball.js +2 -2
  394. package/lib/generated/services/sns.js +4 -4
  395. package/lib/generated/services/social-messaging.js +4 -4
  396. package/lib/generated/services/sqlworkbench.js +3 -3
  397. package/lib/generated/services/sqs.js +4 -4
  398. package/lib/generated/services/ssm-contacts.js +4 -4
  399. package/lib/generated/services/ssm-guiconnect.js +2 -2
  400. package/lib/generated/services/ssm-incidents.js +4 -4
  401. package/lib/generated/services/ssm-quicksetup.js +4 -4
  402. package/lib/generated/services/ssm-sap.js +4 -4
  403. package/lib/generated/services/ssm.js +4 -4
  404. package/lib/generated/services/ssmmessages.js +2 -2
  405. package/lib/generated/services/sso-directory.js +1 -1
  406. package/lib/generated/services/sso-oauth.js +3 -3
  407. package/lib/generated/services/sso.js +4 -4
  408. package/lib/generated/services/states.js +4 -4
  409. package/lib/generated/services/storagegateway.js +4 -4
  410. package/lib/generated/services/sts.js +4 -4
  411. package/lib/generated/services/support-console.js +1 -1
  412. package/lib/generated/services/support.js +2 -2
  413. package/lib/generated/services/supportapp.js +2 -2
  414. package/lib/generated/services/supportauthz.js +4 -4
  415. package/lib/generated/services/supportplans.js +1 -1
  416. package/lib/generated/services/sustainability.js +2 -2
  417. package/lib/generated/services/swf.js +4 -4
  418. package/lib/generated/services/synthetics.js +4 -4
  419. package/lib/generated/services/tag.js +2 -2
  420. package/lib/generated/services/tax.js +2 -2
  421. package/lib/generated/services/textract.js +4 -4
  422. package/lib/generated/services/thinclient.js +4 -4
  423. package/lib/generated/services/timestream-influxdb.js +4 -4
  424. package/lib/generated/services/timestream.js +4 -4
  425. package/lib/generated/services/tiros.js +1 -1
  426. package/lib/generated/services/tnb.js +4 -4
  427. package/lib/generated/services/transcribe.js +4 -4
  428. package/lib/generated/services/transfer.js +4 -4
  429. package/lib/generated/services/transform-custom.js +3 -3
  430. package/lib/generated/services/transform.js +3 -3
  431. package/lib/generated/services/translate.js +4 -4
  432. package/lib/generated/services/trustedadvisor.js +3 -3
  433. package/lib/generated/services/ts.js +3 -3
  434. package/lib/generated/services/user-subscriptions.js +2 -2
  435. package/lib/generated/services/uxc.js +2 -2
  436. package/lib/generated/services/vendor-insights.js +3 -3
  437. package/lib/generated/services/verified-access.js +1 -1
  438. package/lib/generated/services/verifiedpermissions.js +4 -4
  439. package/lib/generated/services/voiceid.js +4 -4
  440. package/lib/generated/services/vpc-lattice-svcs.js +3 -3
  441. package/lib/generated/services/vpc-lattice.js +6 -17
  442. package/lib/generated/services/vpce.js +2 -2
  443. package/lib/generated/services/waf-regional.js +4 -4
  444. package/lib/generated/services/waf.js +4 -4
  445. package/lib/generated/services/wafv2.js +4 -4
  446. package/lib/generated/services/wam.js +1 -1
  447. package/lib/generated/services/wellarchitected.js +4 -4
  448. package/lib/generated/services/wickr.js +4 -4
  449. package/lib/generated/services/wisdom.js +4 -4
  450. package/lib/generated/services/workdocs.js +3 -3
  451. package/lib/generated/services/worklink.js +3 -3
  452. package/lib/generated/services/workmail.js +4 -4
  453. package/lib/generated/services/workmailmessageflow.js +3 -3
  454. package/lib/generated/services/workspaces-instances.js +4 -4
  455. package/lib/generated/services/workspaces-web.js +4 -4
  456. package/lib/generated/services/workspaces.js +4 -4
  457. package/lib/generated/services/xray.js +4 -4
  458. package/package.json +2 -2
@@ -16,7 +16,7 @@ class LambdaActions {
16
16
  }
17
17
  exports.LambdaActions = LambdaActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- LambdaActions[_a] = { fqn: "@cdk_utils/iam.lambda.LambdaActions", version: "1.7.0" };
19
+ LambdaActions[_a] = { fqn: "@cdk_utils/iam.lambda.LambdaActions", version: "1.8.0" };
20
20
  /** The IAM service prefix. */
21
21
  LambdaActions.SERVICE_PREFIX = "lambda";
22
22
  /** [PermissionManagement] lambda:AddLayerVersionPermission */
@@ -75,6 +75,8 @@ LambdaActions.DeleteMicrovmImageVersion = "lambda:DeleteMicrovmImageVersion";
75
75
  LambdaActions.DeleteNetworkConnector = "lambda:DeleteNetworkConnector";
76
76
  /** [Write] lambda:DeleteProvisionedConcurrencyConfig */
77
77
  LambdaActions.DeleteProvisionedConcurrencyConfig = "lambda:DeleteProvisionedConcurrencyConfig";
78
+ /** [PermissionManagement] lambda:DeleteResourcePolicy */
79
+ LambdaActions.DeleteResourcePolicy = "lambda:DeleteResourcePolicy";
78
80
  /** [PermissionManagement] lambda:DisableReplication */
79
81
  LambdaActions.DisableReplication = "lambda:DisableReplication";
80
82
  /** [PermissionManagement] lambda:EnableReplication */
@@ -129,6 +131,8 @@ LambdaActions.actionGetNetworkConnector = "lambda:GetNetworkConnector";
129
131
  LambdaActions.actionGetPolicy = "lambda:GetPolicy";
130
132
  /** [Read] lambda:GetProvisionedConcurrencyConfig */
131
133
  LambdaActions.actionGetProvisionedConcurrencyConfig = "lambda:GetProvisionedConcurrencyConfig";
134
+ /** [Read] lambda:GetResourcePolicy */
135
+ LambdaActions.actionGetResourcePolicy = "lambda:GetResourcePolicy";
132
136
  /** [Read] lambda:GetRuntimeManagementConfig */
133
137
  LambdaActions.actionGetRuntimeManagementConfig = "lambda:GetRuntimeManagementConfig";
134
138
  /** [Write] lambda:InvokeAsync */
@@ -201,6 +205,8 @@ LambdaActions.PutFunctionRecursionConfig = "lambda:PutFunctionRecursionConfig";
201
205
  LambdaActions.PutFunctionScalingConfig = "lambda:PutFunctionScalingConfig";
202
206
  /** [Write] lambda:PutProvisionedConcurrencyConfig */
203
207
  LambdaActions.PutProvisionedConcurrencyConfig = "lambda:PutProvisionedConcurrencyConfig";
208
+ /** [PermissionManagement] lambda:PutResourcePolicy */
209
+ LambdaActions.PutResourcePolicy = "lambda:PutResourcePolicy";
204
210
  /** [Write] lambda:PutRuntimeManagementConfig */
205
211
  LambdaActions.PutRuntimeManagementConfig = "lambda:PutRuntimeManagementConfig";
206
212
  /** [PermissionManagement] lambda:RemoveLayerVersionPermission */
@@ -278,6 +284,7 @@ LambdaActions.AllReadActions = [
278
284
  LambdaActions.actionGetNetworkConnector,
279
285
  LambdaActions.actionGetPolicy,
280
286
  LambdaActions.actionGetProvisionedConcurrencyConfig,
287
+ LambdaActions.actionGetResourcePolicy,
281
288
  LambdaActions.actionGetRuntimeManagementConfig,
282
289
  LambdaActions.ListTags,
283
290
  ];
@@ -372,8 +379,10 @@ LambdaActions.AllListActions = [
372
379
  LambdaActions.AllPermissionManagementActions = [
373
380
  LambdaActions.AddLayerVersionPermission,
374
381
  LambdaActions.AddPermission,
382
+ LambdaActions.DeleteResourcePolicy,
375
383
  LambdaActions.DisableReplication,
376
384
  LambdaActions.EnableReplication,
385
+ LambdaActions.PutResourcePolicy,
377
386
  LambdaActions.RemoveLayerVersionPermission,
378
387
  LambdaActions.RemovePermission,
379
388
  ];
@@ -714,7 +723,7 @@ class LambdaResources {
714
723
  }
715
724
  exports.LambdaResources = LambdaResources;
716
725
  _b = JSII_RTTI_SYMBOL_1;
717
- LambdaResources[_b] = { fqn: "@cdk_utils/iam.lambda.LambdaResources", version: "1.7.0" };
726
+ LambdaResources[_b] = { fqn: "@cdk_utils/iam.lambda.LambdaResources", version: "1.8.0" };
718
727
  /**
719
728
  * API operation to required IAM actions mapping for lambda.
720
729
  */
@@ -722,7 +731,7 @@ class LambdaOperations {
722
731
  }
723
732
  exports.LambdaOperations = LambdaOperations;
724
733
  _c = JSII_RTTI_SYMBOL_1;
725
- LambdaOperations[_c] = { fqn: "@cdk_utils/iam.lambda.LambdaOperations", version: "1.7.0" };
734
+ LambdaOperations[_c] = { fqn: "@cdk_utils/iam.lambda.LambdaOperations", version: "1.8.0" };
726
735
  /** IAM actions required for the AddEventSource API call. */
727
736
  LambdaOperations.AddEventSource = ["iam:PassRole"];
728
737
  /** IAM actions required for the AddLayerVersionPermission API call. */
@@ -834,6 +843,11 @@ LambdaOperations.DeleteNetworkConnector = [
834
843
  LambdaOperations.DeleteProvisionedConcurrencyConfig = [
835
844
  "lambda:DeleteProvisionedConcurrencyConfig",
836
845
  ];
846
+ /** IAM actions required for the DeleteResourcePolicy API call. */
847
+ LambdaOperations.DeleteResourcePolicy = [
848
+ "lambda:DeleteResourcePolicy",
849
+ "lambda:RemovePermission",
850
+ ];
837
851
  /** IAM actions required for the GetAccountSettings API call. */
838
852
  LambdaOperations.opGetAccountSettings = [
839
853
  "lambda:GetAccountSettings",
@@ -929,6 +943,11 @@ LambdaOperations.opGetPolicy = ["lambda:GetPolicy"];
929
943
  LambdaOperations.opGetProvisionedConcurrencyConfig = [
930
944
  "lambda:GetProvisionedConcurrencyConfig",
931
945
  ];
946
+ /** IAM actions required for the GetResourcePolicy API call. */
947
+ LambdaOperations.opGetResourcePolicy = [
948
+ "lambda:GetPolicy",
949
+ "lambda:GetResourcePolicy",
950
+ ];
932
951
  /** IAM actions required for the GetRuntimeManagementConfig API call. */
933
952
  LambdaOperations.opGetRuntimeManagementConfig = [
934
953
  "lambda:GetRuntimeManagementConfig",
@@ -1047,6 +1066,12 @@ LambdaOperations.PutFunctionScalingConfig = [
1047
1066
  LambdaOperations.PutProvisionedConcurrencyConfig = [
1048
1067
  "lambda:PutProvisionedConcurrencyConfig",
1049
1068
  ];
1069
+ /** IAM actions required for the PutResourcePolicy API call. */
1070
+ LambdaOperations.PutResourcePolicy = [
1071
+ "lambda:AddPermission",
1072
+ "lambda:PutResourcePolicy",
1073
+ "lambda:RemovePermission",
1074
+ ];
1050
1075
  /** IAM actions required for the PutRuntimeManagementConfig API call. */
1051
1076
  LambdaOperations.PutRuntimeManagementConfig = [
1052
1077
  "lambda:PutRuntimeManagementConfig",
@@ -1232,7 +1257,7 @@ class LambdaConditions {
1232
1257
  }
1233
1258
  exports.LambdaConditions = LambdaConditions;
1234
1259
  _d = JSII_RTTI_SYMBOL_1;
1235
- LambdaConditions[_d] = { fqn: "@cdk_utils/iam.lambda.LambdaConditions", version: "1.7.0" };
1260
+ LambdaConditions[_d] = { fqn: "@cdk_utils/iam.lambda.LambdaConditions", version: "1.8.0" };
1236
1261
  /** Condition keys applicable to the AddPermission action. */
1237
1262
  LambdaConditions.AddPermissionConditionKeys = [
1238
1263
  "lambda:FunctionUrlAuthType",
@@ -1292,6 +1317,10 @@ LambdaConditions.DeleteFunctionUrlConfigConditionKeys = [
1292
1317
  "lambda:FunctionArn",
1293
1318
  "lambda:FunctionUrlAuthType",
1294
1319
  ];
1320
+ /** Condition keys applicable to the DeleteResourcePolicy action. */
1321
+ LambdaConditions.DeleteResourcePolicyConditionKeys = [
1322
+ "lambda:Principal",
1323
+ ];
1295
1324
  /** Condition keys applicable to the GetEventSourceMapping action. */
1296
1325
  LambdaConditions.actionGetEventSourceMappingConditionKeys = [
1297
1326
  "lambda:FunctionArn",
@@ -1320,6 +1349,10 @@ LambdaConditions.ListFunctionUrlConfigsConditionKeys = [
1320
1349
  LambdaConditions.PutFunctionCodeSigningConfigConditionKeys = [
1321
1350
  "lambda:CodeSigningConfigArn",
1322
1351
  ];
1352
+ /** Condition keys applicable to the PutResourcePolicy action. */
1353
+ LambdaConditions.PutResourcePolicyConditionKeys = [
1354
+ "lambda:Principal",
1355
+ ];
1323
1356
  /** Condition keys applicable to the RemovePermission action. */
1324
1357
  LambdaConditions.RemovePermissionConditionKeys = [
1325
1358
  "lambda:FunctionUrlAuthType",
@@ -1376,4 +1409,4 @@ LambdaConditions.SOURCE_FUNCTION_ARN = "lambda:SourceFunctionArn";
1376
1409
  LambdaConditions.SUBNET_IDS = "lambda:SubnetIds";
1377
1410
  /** Condition key: lambda:VpcIds (String) */
1378
1411
  LambdaConditions.VPC_IDS = "lambda:VpcIds";
1379
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9sYW1iZGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCw2Q0FBNkM7QUFDN0Msb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsYUFBYTs7QUFBMUIsc0NBc1pDOzs7QUFyWkEsOEJBQThCO0FBQ2QsNEJBQWMsR0FBRyxRQUFRLENBQUM7QUFFMUMsOERBQThEO0FBQzlDLHVDQUF5QixHQUN4QyxrQ0FBa0MsQ0FBQztBQUNwQyxrREFBa0Q7QUFDbEMsMkJBQWEsR0FBRyxzQkFBc0IsQ0FBQztBQUN2RCxnREFBZ0Q7QUFDaEMsd0NBQTBCLEdBQ3pDLG1DQUFtQyxDQUFDO0FBQ3JDLG9DQUFvQztBQUNwQiw0QkFBYyxHQUFHLHVCQUF1QixDQUFDO0FBQ3pELGlDQUFpQztBQUNqQix5QkFBVyxHQUFHLG9CQUFvQixDQUFDO0FBQ25ELDRDQUE0QztBQUM1QixvQ0FBc0IsR0FBRywrQkFBK0IsQ0FBQztBQUN6RSw2Q0FBNkM7QUFDN0IscUNBQXVCLEdBQUcsZ0NBQWdDLENBQUM7QUFDM0UsOENBQThDO0FBQzlCLHNDQUF3QixHQUFHLGlDQUFpQyxDQUFDO0FBQzdFLG9DQUFvQztBQUNwQiw0QkFBYyxHQUFHLHVCQUF1QixDQUFDO0FBQ3pELDZDQUE2QztBQUM3QixxQ0FBdUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUMzRSw0Q0FBNEM7QUFDNUIsb0NBQXNCLEdBQUcsK0JBQStCLENBQUM7QUFDekUsd0NBQXdDO0FBQ3hCLGdDQUFrQixHQUFHLDJCQUEyQixDQUFDO0FBQ2pFLGlEQUFpRDtBQUNqQyx5Q0FBMkIsR0FDMUMsb0NBQW9DLENBQUM7QUFDdEMsNENBQTRDO0FBQzVCLG9DQUFzQixHQUFHLCtCQUErQixDQUFDO0FBQ3pFLGlDQUFpQztBQUNqQix5QkFBVyxHQUFHLG9CQUFvQixDQUFDO0FBQ25ELDRDQUE0QztBQUM1QixvQ0FBc0IsR0FBRywrQkFBK0IsQ0FBQztBQUN6RSw2Q0FBNkM7QUFDN0IscUNBQXVCLEdBQUcsZ0NBQWdDLENBQUM7QUFDM0UsOENBQThDO0FBQzlCLHNDQUF3QixHQUFHLGlDQUFpQyxDQUFDO0FBQzdFLG9DQUFvQztBQUNwQiw0QkFBYyxHQUFHLHVCQUF1QixDQUFDO0FBQ3pELHFEQUFxRDtBQUNyQyw2Q0FBK0IsR0FDOUMsd0NBQXdDLENBQUM7QUFDMUMsK0NBQStDO0FBQy9CLHVDQUF5QixHQUN4QyxrQ0FBa0MsQ0FBQztBQUNwQyxxREFBcUQ7QUFDckMsNkNBQStCLEdBQzlDLHdDQUF3QyxDQUFDO0FBQzFDLDZDQUE2QztBQUM3QixxQ0FBdUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUMzRSx3Q0FBd0M7QUFDeEIsZ0NBQWtCLEdBQUcsMkJBQTJCLENBQUM7QUFDakUsd0NBQXdDO0FBQ3hCLGdDQUFrQixHQUFHLDJCQUEyQixDQUFDO0FBQ2pFLCtDQUErQztBQUMvQix1Q0FBeUIsR0FDeEMsa0NBQWtDLENBQUM7QUFDcEMsNENBQTRDO0FBQzVCLG9DQUFzQixHQUFHLCtCQUErQixDQUFDO0FBQ3pFLHdEQUF3RDtBQUN4QyxnREFBa0MsR0FDakQsMkNBQTJDLENBQUM7QUFDN0MsdURBQXVEO0FBQ3ZDLGdDQUFrQixHQUFHLDJCQUEyQixDQUFDO0FBQ2pFLHNEQUFzRDtBQUN0QywrQkFBaUIsR0FBRywwQkFBMEIsQ0FBQztBQUMvRCx1Q0FBdUM7QUFDdkIsc0NBQXdCLEdBQUcsMkJBQTJCLENBQUM7QUFDdkUsNkJBQTZCO0FBQ2IsNEJBQWMsR0FBRyxpQkFBaUIsQ0FBQztBQUNuRCx3Q0FBd0M7QUFDeEIsdUNBQXlCLEdBQUcsNEJBQTRCLENBQUM7QUFDekUseUNBQXlDO0FBQ3pCLHdDQUEwQixHQUFHLDZCQUE2QixDQUFDO0FBQzNFLHdDQUF3QztBQUN4Qix1Q0FBeUIsR0FBRyw0QkFBNEIsQ0FBQztBQUN6RSwrQ0FBK0M7QUFDL0IsOENBQWdDLEdBQy9DLG1DQUFtQyxDQUFDO0FBQ3JDLDZDQUE2QztBQUM3Qiw0Q0FBOEIsR0FDN0MsaUNBQWlDLENBQUM7QUFDbkMsMENBQTBDO0FBQzFCLHlDQUEyQixHQUFHLDhCQUE4QixDQUFDO0FBQzdFLGdDQUFnQztBQUNoQiwrQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQztBQUN6RCxpREFBaUQ7QUFDakMsZ0RBQWtDLEdBQ2pELHFDQUFxQyxDQUFDO0FBQ3ZDLDJDQUEyQztBQUMzQiwwQ0FBNEIsR0FDM0MsK0JBQStCLENBQUM7QUFDakMsNkNBQTZDO0FBQzdCLDRDQUE4QixHQUM3QyxpQ0FBaUMsQ0FBQztBQUNuQyxpREFBaUQ7QUFDakMsZ0RBQWtDLEdBQ2pELHFDQUFxQyxDQUFDO0FBQ3ZDLCtDQUErQztBQUMvQiw4Q0FBZ0MsR0FDL0MsbUNBQW1DLENBQUM7QUFDckMsNkNBQTZDO0FBQzdCLDRDQUE4QixHQUM3QyxpQ0FBaUMsQ0FBQztBQUNuQyx5Q0FBeUM7QUFDekIsd0NBQTBCLEdBQUcsNkJBQTZCLENBQUM7QUFDM0Usb0NBQW9DO0FBQ3BCLG1DQUFxQixHQUFHLHdCQUF3QixDQUFDO0FBQ2pFLDBDQUEwQztBQUMxQix5Q0FBMkIsR0FBRyw4QkFBOEIsQ0FBQztBQUM3RSwrQkFBK0I7QUFDZiw4QkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN2RCxvQ0FBb0M7QUFDcEIsbUNBQXFCLEdBQUcsd0JBQXdCLENBQUM7QUFDakUseUNBQXlDO0FBQ3pCLHdDQUEwQixHQUFHLDZCQUE2QixDQUFDO0FBQzNFLDJDQUEyQztBQUMzQiwwQ0FBNEIsR0FDM0MsK0JBQStCLENBQUM7QUFDakMsd0NBQXdDO0FBQ3hCLHVDQUF5QixHQUFHLDRCQUE0QixDQUFDO0FBQ3pFLDhCQUE4QjtBQUNkLDZCQUFlLEdBQUcsa0JBQWtCLENBQUM7QUFDckQsb0RBQW9EO0FBQ3BDLG1EQUFxQyxHQUNwRCx3Q0FBd0MsQ0FBQztBQUMxQywrQ0FBK0M7QUFDL0IsOENBQWdDLEdBQy9DLG1DQUFtQyxDQUFDO0FBQ3JDLGlDQUFpQztBQUNqQix5QkFBVyxHQUFHLG9CQUFvQixDQUFDO0FBQ25ELG9DQUFvQztBQUNwQiw0QkFBYyxHQUFHLHVCQUF1QixDQUFDO0FBQ3pELHVDQUF1QztBQUN2QiwrQkFBaUIsR0FBRywwQkFBMEIsQ0FBQztBQUMvRCxnQ0FBZ0M7QUFDaEIseUJBQVcsR0FBRyxvQkFBb0IsQ0FBQztBQUNuRCwwQ0FBMEM7QUFDMUIsbUNBQXFCLEdBQUcsOEJBQThCLENBQUM7QUFDdkUsMkNBQTJDO0FBQzNCLG9DQUFzQixHQUFHLCtCQUErQixDQUFDO0FBQ3pFLG9EQUFvRDtBQUNwQyw2Q0FBK0IsR0FDOUMsd0NBQXdDLENBQUM7QUFDMUMsNENBQTRDO0FBQzVCLHFDQUF1QixHQUFHLGdDQUFnQyxDQUFDO0FBQzNFLG1EQUFtRDtBQUNuQyw0Q0FBOEIsR0FDN0MsdUNBQXVDLENBQUM7QUFDekMsMkNBQTJDO0FBQzNCLG9DQUFzQixHQUFHLCtCQUErQixDQUFDO0FBQ3pFLDJEQUEyRDtBQUMzQyxvREFBc0MsR0FDckQsK0NBQStDLENBQUM7QUFDakQsa0NBQWtDO0FBQ2xCLDJCQUFhLEdBQUcsc0JBQXNCLENBQUM7QUFDdkQscURBQXFEO0FBQ3JDLDhDQUFnQyxHQUMvQyx5Q0FBeUMsQ0FBQztBQUMzQyxzQ0FBc0M7QUFDdEIsK0JBQWlCLEdBQUcsMEJBQTBCLENBQUM7QUFDL0QsK0JBQStCO0FBQ2Ysd0JBQVUsR0FBRyxtQkFBbUIsQ0FBQztBQUNqRCxvREFBb0Q7QUFDcEMsNkNBQStCLEdBQzlDLHdDQUF3QyxDQUFDO0FBQzFDLDZDQUE2QztBQUM3QixzQ0FBd0IsR0FBRyxpQ0FBaUMsQ0FBQztBQUM3RSwyQ0FBMkM7QUFDM0Isb0NBQXNCLEdBQUcsK0JBQStCLENBQUM7QUFDekUsNkNBQTZDO0FBQzdCLHNDQUF3QixHQUFHLGlDQUFpQyxDQUFDO0FBQzdFLHNDQUFzQztBQUN0QiwrQkFBaUIsR0FBRywwQkFBMEIsQ0FBQztBQUMvRCxpQ0FBaUM7QUFDakIsMEJBQVksR0FBRyxxQkFBcUIsQ0FBQztBQUNyRCwwQ0FBMEM7QUFDMUIsbUNBQXFCLEdBQUcsOEJBQThCLENBQUM7QUFDdkUsc0RBQXNEO0FBQ3RDLCtDQUFpQyxHQUNoRCwwQ0FBMEMsQ0FBQztBQUM1Qyw2QkFBNkI7QUFDYixzQkFBUSxHQUFHLGlCQUFpQixDQUFDO0FBQzdDLDJDQUEyQztBQUMzQixvQ0FBc0IsR0FBRywrQkFBK0IsQ0FBQztBQUN6RSwwQ0FBMEM7QUFDMUIsa0NBQW9CLEdBQUcsNkJBQTZCLENBQUM7QUFDckUsMENBQTBDO0FBQzFCLGtDQUFvQixHQUFHLDZCQUE2QixDQUFDO0FBQ3JFLHlDQUF5QztBQUN6QixpQ0FBbUIsR0FBRyw0QkFBNEIsQ0FBQztBQUNuRSxvQ0FBb0M7QUFDcEIsNEJBQWMsR0FBRyx1QkFBdUIsQ0FBQztBQUN6RCxrREFBa0Q7QUFDbEMsMENBQTRCLEdBQzNDLHFDQUFxQyxDQUFDO0FBQ3ZDLDRDQUE0QztBQUM1QixvQ0FBc0IsR0FBRywrQkFBK0IsQ0FBQztBQUN6RSxrREFBa0Q7QUFDbEMsMENBQTRCLEdBQzNDLHFDQUFxQyxDQUFDO0FBQ3ZDLGdEQUFnRDtBQUNoQyx3Q0FBMEIsR0FDekMsbUNBQW1DLENBQUM7QUFDckMsOENBQThDO0FBQzlCLHNDQUF3QixHQUFHLGlDQUFpQyxDQUFDO0FBQzdFLHFEQUFxRDtBQUNyQyw2Q0FBK0IsR0FDOUMsd0NBQXdDLENBQUM7QUFDMUMsZ0RBQWdEO0FBQ2hDLHdDQUEwQixHQUN6QyxtQ0FBbUMsQ0FBQztBQUNyQyxpRUFBaUU7QUFDakQsMENBQTRCLEdBQzNDLHFDQUFxQyxDQUFDO0FBQ3ZDLHFEQUFxRDtBQUNyQyw4QkFBZ0IsR0FBRyx5QkFBeUIsQ0FBQztBQUM3RCxtQ0FBbUM7QUFDbkIsMkJBQWEsR0FBRyxzQkFBc0IsQ0FBQztBQUN2RCxnQ0FBZ0M7QUFDaEIsd0JBQVUsR0FBRyxtQkFBbUIsQ0FBQztBQUNqRCx5REFBeUQ7QUFDekMsaURBQW1DLEdBQ2xELDRDQUE0QyxDQUFDO0FBQzlDLDJEQUEyRDtBQUMzQyxtREFBcUMsR0FDcEQsOENBQThDLENBQUM7QUFDaEQseURBQXlEO0FBQ3pDLGlEQUFtQyxHQUNsRCw0Q0FBNEMsQ0FBQztBQUM5QywwQ0FBMEM7QUFDMUIsa0NBQW9CLEdBQUcsNkJBQTZCLENBQUM7QUFDckUsb0NBQW9DO0FBQ3BCLDRCQUFjLEdBQUcsdUJBQXVCLENBQUM7QUFDekQsbUNBQW1DO0FBQ25CLHlCQUFXLEdBQUcsb0JBQW9CLENBQUM7QUFDbkQsc0NBQXNDO0FBQ3RCLDhCQUFnQixHQUFHLHlCQUF5QixDQUFDO0FBQzdELHFDQUFxQztBQUNyQiwyQkFBYSxHQUFHLHNCQUFzQixDQUFDO0FBQ3ZELGlDQUFpQztBQUNqQix5QkFBVyxHQUFHLG9CQUFvQixDQUFDO0FBQ25ELDRDQUE0QztBQUM1QixvQ0FBc0IsR0FBRywrQkFBK0IsQ0FBQztBQUN6RSw2Q0FBNkM7QUFDN0IscUNBQXVCLEdBQUcsZ0NBQWdDLENBQUM7QUFDM0UsOENBQThDO0FBQzlCLHNDQUF3QixHQUFHLGlDQUFpQyxDQUFDO0FBQzdFLHdDQUF3QztBQUN4QixnQ0FBa0IsR0FBRywyQkFBMkIsQ0FBQztBQUNqRSxxREFBcUQ7QUFDckMsNkNBQStCLEdBQzlDLHdDQUF3QyxDQUFDO0FBQzFDLGlEQUFpRDtBQUNqQyx5Q0FBMkIsR0FDMUMsb0NBQW9DLENBQUM7QUFDdEMscURBQXFEO0FBQ3JDLDZDQUErQixHQUM5Qyx3Q0FBd0MsQ0FBQztBQUMxQyw2Q0FBNkM7QUFDN0IscUNBQXVCLEdBQUcsZ0NBQWdDLENBQUM7QUFDM0Usd0NBQXdDO0FBQ3hCLGdDQUFrQixHQUFHLDJCQUEyQixDQUFDO0FBQ2pFLCtDQUErQztBQUMvQix1Q0FBeUIsR0FDeEMsa0NBQWtDLENBQUM7QUFDcEMsNENBQTRDO0FBQzVCLG9DQUFzQixHQUFHLCtCQUErQixDQUFDO0FBRXpFLDhCQUE4QjtBQUNkLDRCQUFjLEdBQWE7SUFDMUMsYUFBYSxDQUFDLHdCQUF3QjtJQUN0QyxhQUFhLENBQUMsY0FBYztJQUM1QixhQUFhLENBQUMseUJBQXlCO0lBQ3ZDLGFBQWEsQ0FBQywwQkFBMEI7SUFDeEMsYUFBYSxDQUFDLHlCQUF5QjtJQUN2QyxhQUFhLENBQUMsZ0NBQWdDO0lBQzlDLGFBQWEsQ0FBQyw4QkFBOEI7SUFDNUMsYUFBYSxDQUFDLDJCQUEyQjtJQUN6QyxhQUFhLENBQUMsaUJBQWlCO0lBQy9CLGFBQWEsQ0FBQyxrQ0FBa0M7SUFDaEQsYUFBYSxDQUFDLDRCQUE0QjtJQUMxQyxhQUFhLENBQUMsOEJBQThCO0lBQzVDLGFBQWEsQ0FBQyxrQ0FBa0M7SUFDaEQsYUFBYSxDQUFDLGdDQUFnQztJQUM5QyxhQUFhLENBQUMsOEJBQThCO0lBQzVDLGFBQWEsQ0FBQywwQkFBMEI7SUFDeEMsYUFBYSxDQUFDLHFCQUFxQjtJQUNuQyxhQUFhLENBQUMsMkJBQTJCO0lBQ3pDLGFBQWEsQ0FBQyxnQkFBZ0I7SUFDOUIsYUFBYSxDQUFDLHFCQUFxQjtJQUNuQyxhQUFhLENBQUMsMEJBQTBCO0lBQ3hDLGFBQWEsQ0FBQyw0QkFBNEI7SUFDMUMsYUFBYSxDQUFDLHlCQUF5QjtJQUN2QyxhQUFhLENBQUMsZUFBZTtJQUM3QixhQUFhLENBQUMscUNBQXFDO0lBQ25ELGFBQWEsQ0FBQyxnQ0FBZ0M7SUFDOUMsYUFBYSxDQUFDLFFBQVE7Q0FDdEIsQ0FBQztBQUNGLCtCQUErQjtBQUNmLDZCQUFlLEdBQWE7SUFDM0MsYUFBYSxDQUFDLDBCQUEwQjtJQUN4QyxhQUFhLENBQUMsY0FBYztJQUM1QixhQUFhLENBQUMsV0FBVztJQUN6QixhQUFhLENBQUMsc0JBQXNCO0lBQ3BDLGFBQWEsQ0FBQyx1QkFBdUI7SUFDckMsYUFBYSxDQUFDLHdCQUF3QjtJQUN0QyxhQUFhLENBQUMsY0FBYztJQUM1QixhQUFhLENBQUMsdUJBQXVCO0lBQ3JDLGFBQWEsQ0FBQyxzQkFBc0I7SUFDcEMsYUFBYSxDQUFDLGtCQUFrQjtJQUNoQyxhQUFhLENBQUMsMkJBQTJCO0lBQ3pDLGFBQWEsQ0FBQyxzQkFBc0I7SUFDcEMsYUFBYSxDQUFDLFdBQVc7SUFDekIsYUFBYSxDQUFDLHNCQUFzQjtJQUNwQyxhQUFhLENBQUMsdUJBQXVCO0lBQ3JDLGFBQWEsQ0FBQyx3QkFBd0I7SUFDdEMsYUFBYSxDQUFDLGNBQWM7SUFDNUIsYUFBYSxDQUFDLCtCQUErQjtJQUM3QyxhQUFhLENBQUMseUJBQXlCO0lBQ3ZDLGFBQWEsQ0FBQywrQkFBK0I7SUFDN0MsYUFBYSxDQUFDLHVCQUF1QjtJQUNyQyxhQUFhLENBQUMsa0JBQWtCO0lBQ2hDLGFBQWEsQ0FBQyxrQkFBa0I7SUFDaEMsYUFBYSxDQUFDLHlCQUF5QjtJQUN2QyxhQUFhLENBQUMsc0JBQXNCO0lBQ3BDLGFBQWEsQ0FBQyxrQ0FBa0M7SUFDaEQsYUFBYSxDQUFDLFdBQVc7SUFDekIsYUFBYSxDQUFDLGNBQWM7SUFDNUIsYUFBYSxDQUFDLGlCQUFpQjtJQUMvQixhQUFhLENBQUMsb0JBQW9CO0lBQ2xDLGFBQWEsQ0FBQyxvQkFBb0I7SUFDbEMsYUFBYSxDQUFDLG1CQUFtQjtJQUNqQyxhQUFhLENBQUMsY0FBYztJQUM1QixhQUFhLENBQUMsNEJBQTRCO0lBQzFDLGFBQWEsQ0FBQyxzQkFBc0I7SUFDcEMsYUFBYSxDQUFDLDRCQUE0QjtJQUMxQyxhQUFhLENBQUMsMEJBQTBCO0lBQ3hDLGFBQWEsQ0FBQyx3QkFBd0I7SUFDdEMsYUFBYSxDQUFDLCtCQUErQjtJQUM3QyxhQUFhLENBQUMsMEJBQTBCO0lBQ3hDLGFBQWEsQ0FBQyxhQUFhO0lBQzNCLGFBQWEsQ0FBQyxVQUFVO0lBQ3hCLGFBQWEsQ0FBQyxtQ0FBbUM7SUFDakQsYUFBYSxDQUFDLHFDQUFxQztJQUNuRCxhQUFhLENBQUMsbUNBQW1DO0lBQ2pELGFBQWEsQ0FBQyxvQkFBb0I7SUFDbEMsYUFBYSxDQUFDLGNBQWM7SUFDNUIsYUFBYSxDQUFDLGdCQUFnQjtJQUM5QixhQUFhLENBQUMsV0FBVztJQUN6QixhQUFhLENBQUMsc0JBQXNCO0lBQ3BDLGFBQWEsQ0FBQyx1QkFBdUI7SUFDckMsYUFBYSxDQUFDLHdCQUF3QjtJQUN0QyxhQUFhLENBQUMsa0JBQWtCO0lBQ2hDLGFBQWEsQ0FBQywrQkFBK0I7SUFDN0MsYUFBYSxDQUFDLDJCQUEyQjtJQUN6QyxhQUFhLENBQUMsK0JBQStCO0lBQzdDLGFBQWEsQ0FBQyx1QkFBdUI7SUFDckMsYUFBYSxDQUFDLGtCQUFrQjtJQUNoQyxhQUFhLENBQUMseUJBQXlCO0lBQ3ZDLGFBQWEsQ0FBQyxzQkFBc0I7Q0FDcEMsQ0FBQztBQUNGLDhCQUE4QjtBQUNkLDRCQUFjLEdBQWE7SUFDMUMsYUFBYSxDQUFDLFdBQVc7SUFDekIsYUFBYSxDQUFDLHFCQUFxQjtJQUNuQyxhQUFhLENBQUMsc0JBQXNCO0lBQ3BDLGFBQWEsQ0FBQywrQkFBK0I7SUFDN0MsYUFBYSxDQUFDLHVCQUF1QjtJQUNyQyxhQUFhLENBQUMsOEJBQThCO0lBQzVDLGFBQWEsQ0FBQyxzQkFBc0I7SUFDcEMsYUFBYSxDQUFDLHNDQUFzQztJQUNwRCxhQUFhLENBQUMsYUFBYTtJQUMzQixhQUFhLENBQUMsZ0NBQWdDO0lBQzlDLGFBQWEsQ0FBQyxpQkFBaUI7SUFDL0IsYUFBYSxDQUFDLFVBQVU7SUFDeEIsYUFBYSxDQUFDLCtCQUErQjtJQUM3QyxhQUFhLENBQUMsd0JBQXdCO0lBQ3RDLGFBQWEsQ0FBQyxzQkFBc0I7SUFDcEMsYUFBYSxDQUFDLHdCQUF3QjtJQUN0QyxhQUFhLENBQUMsaUJBQWlCO0lBQy9CLGFBQWEsQ0FBQyxZQUFZO0lBQzFCLGFBQWEsQ0FBQyxxQkFBcUI7SUFDbkMsYUFBYSxDQUFDLGlDQUFpQztJQUMvQyxhQUFhLENBQUMsc0JBQXNCO0NBQ3BDLENBQUM7QUFDRiwrQ0FBK0M7QUFDL0IsNENBQThCLEdBQWE7SUFDMUQsYUFBYSxDQUFDLHlCQUF5QjtJQUN2QyxhQUFhLENBQUMsYUFBYTtJQUMzQixhQUFhLENBQUMsa0JBQWtCO0lBQ2hDLGFBQWEsQ0FBQyxpQkFBaUI7SUFDL0IsYUFBYSxDQUFDLDRCQUE0QjtJQUMxQyxhQUFhLENBQUMsZ0JBQWdCO0NBQzlCLENBQUM7QUFDRixpQ0FBaUM7QUFDakIsK0JBQWlCLEdBQWE7SUFDN0MsYUFBYSxDQUFDLFdBQVc7SUFDekIsYUFBYSxDQUFDLGFBQWE7Q0FDM0IsQ0FBQztBQStVSCxNQUFNLHdCQUF3QixHQUM3Qix3SEFBd0gsQ0FBQztBQUMxSCxNQUFNLHlCQUF5QixHQUM5Qix5SEFBeUgsQ0FBQztBQUMzSCxNQUFNLHdCQUF3QixHQUM3QixrTUFBa00sQ0FBQztBQUNwTSxNQUFNLDBCQUEwQixHQUMvQiwyR0FBMkcsQ0FBQztBQUM3RyxNQUFNLGdCQUFnQixHQUNyQix1R0FBdUcsQ0FBQztBQUN6RyxNQUFNLHFCQUFxQixHQUMxQix5SEFBeUgsQ0FBQztBQUMzSCxNQUFNLHVCQUF1QixHQUM1QiwySEFBMkgsQ0FBQztBQUM3SCxNQUFNLGFBQWEsR0FDbEIsaUdBQWlHLENBQUM7QUFDbkcsTUFBTSxvQkFBb0IsR0FDekIsMEhBQTBILENBQUM7QUFDNUgsTUFBTSxvQkFBb0IsR0FDekIsZ0hBQWdILENBQUM7QUFDbEgsTUFBTSx3QkFBd0IsR0FDN0Isc0hBQXNILENBQUM7QUFFeEg7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFDM0I7O09BRUc7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBcUM7UUFDNUQsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxXQUFXLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxzQkFBc0IsS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEosQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUFDLEdBQVc7UUFDNUMsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FDOUIsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixvQkFBb0IsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLG9CQUFvQjtTQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQXNDO1FBQzlELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssV0FBVyxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsd0JBQXdCLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQ2pKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxHQUFXO1FBQzdDLE9BQU8seUJBQXlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMseUJBQXlCLENBQy9CLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzVELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxtQkFBbUI7U0FDdEQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFxQztRQUM1RCxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLFdBQVcsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLGFBQWEsS0FBSyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsT0FBTyxzQkFBc0IsS0FBSyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOU0sQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUFDLEdBQVc7UUFDNUMsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FDOUIsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxZQUFZO1lBQ3hDLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLE9BQU87WUFDOUIsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsYUFBYTtZQUMxQyxXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxXQUFXO1NBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBdUM7UUFDaEUsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxXQUFXLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyx5QkFBeUIsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25JLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxHQUFXO1FBQzlDLE9BQU8sMEJBQTBCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsMEJBQTBCLENBQ2hDLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsSUFBSTtTQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUE2QjtRQUM1QyxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLFdBQVcsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLGFBQWEsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9ILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFXO1FBQ3BDLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBVztRQUNsQyxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsWUFBWTtTQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFrQztRQUN0RCxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLFdBQVcsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLGFBQWEsS0FBSyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUksQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHVCQUF1QixDQUFDLEdBQVc7UUFDekMsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFXO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxZQUFZO1lBQ3hDLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLEtBQUs7U0FDMUIsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBb0M7UUFDMUQsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxXQUFXLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxhQUFhLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2hKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxHQUFXO1FBQzNDLE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsdUJBQXVCLENBQzdCLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsWUFBWTtZQUN4QyxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxPQUFPO1NBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQTBCO1FBQ3RDLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssV0FBVyxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsVUFBVSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDekgsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFXO1FBQ2pDLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFXO1FBQy9CLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsU0FBUztTQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFpQztRQUNwRCxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLFdBQVcsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLFVBQVUsS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0ksQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHNCQUFzQixDQUFDLEdBQVc7UUFDeEMsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFXO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxTQUFTO1lBQ2xDLFlBQVksRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLFlBQVk7U0FDeEMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBaUM7UUFDcEQsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxXQUFXLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxrQkFBa0IsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDeEksQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHNCQUFzQixDQUFDLEdBQVc7UUFDeEMsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFXO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLGdCQUFnQjtTQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQXFDO1FBQzVELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssV0FBVyxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsc0JBQXNCLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlJLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxHQUFXO1FBQzVDLE9BQU8sd0JBQXdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsd0JBQXdCLENBQzlCLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0Isa0JBQWtCLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxrQkFBa0I7U0FDcEQsQ0FBQztJQUNILENBQUM7O0FBdFdGLDBDQXVXQzs7O0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGdCQUFnQjs7QUFBN0IsNENBaWFDOzs7QUFoYUEsNERBQTREO0FBQzVDLCtCQUFjLEdBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUM1RCx1RUFBdUU7QUFDdkQsMENBQXlCLEdBQWE7SUFDckQsa0NBQWtDO0NBQ2xDLENBQUM7QUFDRiwyREFBMkQ7QUFDM0MsOEJBQWEsR0FBYSxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDbkUsd0VBQXdFO0FBQ3hELDJDQUEwQixHQUFhO0lBQ3RELG1DQUFtQztDQUNuQyxDQUFDO0FBQ0YseURBQXlEO0FBQ3pDLDRCQUFXLEdBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBQy9ELG9FQUFvRTtBQUNwRCx1Q0FBc0IsR0FBYTtJQUNsRCwrQkFBK0I7SUFDL0IsY0FBYztJQUNkLG9CQUFvQjtDQUNwQixDQUFDO0FBQ0YscUVBQXFFO0FBQ3JELHdDQUF1QixHQUFhO0lBQ25ELGdDQUFnQztJQUNoQyxvQkFBb0I7Q0FDcEIsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCx5Q0FBd0IsR0FBYTtJQUNwRCxpQ0FBaUM7SUFDakMsb0JBQW9CO0NBQ3BCLENBQUM7QUFDRiw0REFBNEQ7QUFDNUMsK0JBQWMsR0FBYTtJQUMxQyx1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLDZCQUE2QjtJQUM3QixjQUFjO0lBQ2Qsb0JBQW9CO0NBQ3BCLENBQUM7QUFDRixxRUFBcUU7QUFDckQsd0NBQXVCLEdBQWE7SUFDbkQsZ0NBQWdDO0NBQ2hDLENBQUM7QUFDRixvRUFBb0U7QUFDcEQsdUNBQXNCLEdBQWE7SUFDbEQsK0JBQStCO0NBQy9CLENBQUM7QUFDRixnRUFBZ0U7QUFDaEQsbUNBQWtCLEdBQWE7SUFDOUMsMkJBQTJCO0lBQzNCLDZCQUE2QjtJQUM3QixjQUFjO0lBQ2Qsb0JBQW9CO0NBQ3BCLENBQUM7QUFDRix5RUFBeUU7QUFDekQsNENBQTJCLEdBQWE7SUFDdkQsb0NBQW9DO0NBQ3BDLENBQUM7QUFDRixvRUFBb0U7QUFDcEQsdUNBQXNCLEdBQWE7SUFDbEQsK0JBQStCO0lBQy9CLGNBQWM7SUFDZCxvQkFBb0I7Q0FDcEIsQ0FBQztBQUNGLHlEQUF5RDtBQUN6Qyw0QkFBVyxHQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUMvRCxvRUFBb0U7QUFDcEQsdUNBQXNCLEdBQWE7SUFDbEQsK0JBQStCO0NBQy9CLENBQUM7QUFDRixxRUFBcUU7QUFDckQsd0NBQXVCLEdBQWE7SUFDbkQsZ0NBQWdDO0NBQ2hDLENBQUM7QUFDRixzRUFBc0U7QUFDdEQseUNBQXdCLEdBQWE7SUFDcEQsaUNBQWlDO0NBQ2pDLENBQUM7QUFDRiw0REFBNEQ7QUFDNUMsK0JBQWMsR0FBYSxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDckUsNkVBQTZFO0FBQzdELGdEQUErQixHQUFhO0lBQzNELHdDQUF3QztDQUN4QyxDQUFDO0FBQ0YsdUVBQXVFO0FBQ3ZELDBDQUF5QixHQUFhO0lBQ3JELGtDQUFrQztDQUNsQyxDQUFDO0FBQ0YsNkVBQTZFO0FBQzdELGdEQUErQixHQUFhO0lBQzNELHdDQUF3QztDQUN4QyxDQUFDO0FBQ0YscUVBQXFFO0FBQ3JELHdDQUF1QixHQUFhO0lBQ25ELGdDQUFnQztDQUNoQyxDQUFDO0FBQ0YsZ0VBQWdFO0FBQ2hELG1DQUFrQixHQUFhLENBQUMsMkJBQTJCLENBQUMsQ0FBQztBQUM3RSxnRUFBZ0U7QUFDaEQsbUNBQWtCLEdBQWEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQzdFLHVFQUF1RTtBQUN2RCwwQ0FBeUIsR0FBYTtJQUNyRCxrQ0FBa0M7Q0FDbEMsQ0FBQztBQUNGLG9FQUFvRTtBQUNwRCx1Q0FBc0IsR0FBYTtJQUNsRCwrQkFBK0I7Q0FDL0IsQ0FBQztBQUNGLGdGQUFnRjtBQUNoRSxtREFBa0MsR0FBYTtJQUM5RCwyQ0FBMkM7Q0FDM0MsQ0FBQztBQUNGLGdFQUFnRTtBQUNoRCxxQ0FBb0IsR0FBYTtJQUNoRCwyQkFBMkI7Q0FDM0IsQ0FBQztBQUNGLHNEQUFzRDtBQUN0QywyQkFBVSxHQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUMzRCxpRUFBaUU7QUFDakQsc0NBQXFCLEdBQWE7SUFDakQsNEJBQTRCO0NBQzVCLENBQUM7QUFDRixrRUFBa0U7QUFDbEQsdUNBQXNCLEdBQWE7SUFDbEQsNkJBQTZCO0NBQzdCLENBQUM7QUFDRixpRUFBaUU7QUFDakQsc0NBQXFCLEdBQWE7SUFDakQsNEJBQTRCO0NBQzVCLENBQUM7QUFDRix3RUFBd0U7QUFDeEQsNkNBQTRCLEdBQWE7SUFDeEQsbUNBQW1DO0NBQ25DLENBQUM7QUFDRixzRUFBc0U7QUFDdEQsMkNBQTBCLEdBQWE7SUFDdEQsaUNBQWlDO0NBQ2pDLENBQUM7QUFDRiw0REFBNEQ7QUFDNUMsaUNBQWdCLEdBQWEsRUFBRSxDQUFDO0FBQ2hELG1FQUFtRTtBQUNuRCx3Q0FBdUIsR0FBYTtJQUNuRCw4QkFBOEI7Q0FDOUIsQ0FBQztBQUNGLHlEQUF5RDtBQUN6Qyw4QkFBYSxHQUFhO0lBQ3pDLG9CQUFvQjtJQUNwQixpQkFBaUI7Q0FDakIsQ0FBQztBQUNGLDBFQUEwRTtBQUMxRCwrQ0FBOEIsR0FBYTtJQUMxRCxxQ0FBcUM7Q0FDckMsQ0FBQztBQUNGLG9FQUFvRTtBQUNwRCx5Q0FBd0IsR0FBYTtJQUNwRCwrQkFBK0I7Q0FDL0IsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCwyQ0FBMEIsR0FBYTtJQUN0RCxpQ0FBaUM7Q0FDakMsQ0FBQztBQUNGLDBFQUEwRTtBQUMxRCwrQ0FBOEIsR0FBYTtJQUMxRCxxQ0FBcUM7Q0FDckMsQ0FBQztBQUNGLHdFQUF3RTtBQUN4RCw2Q0FBNEIsR0FBYTtJQUN4RCxtQ0FBbUM7Q0FDbkMsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCwyQ0FBMEIsR0FBYTtJQUN0RCxpQ0FBaUM7Q0FDakMsQ0FBQztBQUNGLGtFQUFrRTtBQUNsRCx1Q0FBc0IsR0FBYTtJQUNsRCw2QkFBNkI7Q0FDN0IsQ0FBQztBQUNGLDZEQUE2RDtBQUM3QyxrQ0FBaUIsR0FBYSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDekUsa0VBQWtFO0FBQ2xELHVDQUFzQixHQUFhLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUM5RSxtRUFBbUU7QUFDbkQsd0NBQXVCLEdBQWE7SUFDbkQsOEJBQThCO0NBQzlCLENBQUM7QUFDRix3REFBd0Q7QUFDeEMsNkJBQVksR0FBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDL0QsNkRBQTZEO0FBQzdDLGtDQUFpQixHQUFhLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUN6RSxrRUFBa0U7QUFDbEQsdUNBQXNCLEdBQWE7SUFDbEQsNkJBQTZCO0NBQzdCLENBQUM7QUFDRixvRUFBb0U7QUFDcEQseUNBQXdCLEdBQWE7SUFDcEQsK0JBQStCO0NBQy9CLENBQUM7QUFDRixpRUFBaUU7QUFDakQsc0NBQXFCLEdBQWE7SUFDakQsNEJBQTRCO0NBQzVCLENBQUM7QUFDRix1REFBdUQ7QUFDdkMsNEJBQVcsR0FBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDN0QsNkVBQTZFO0FBQzdELGtEQUFpQyxHQUFhO0lBQzdELHdDQUF3QztDQUN4QyxDQUFDO0FBQ0Ysd0VBQXdFO0FBQ3hELDZDQUE0QixHQUFhO0lBQ3hELG1DQUFtQztDQUNuQyxDQUFDO0FBQ0Ysb0RBQW9EO0FBQ3BDLHVCQUFNLEdBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQzdELHlEQUF5RDtBQUN6Qyw0QkFBVyxHQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUMvRCxzRUFBc0U7QUFDdEQseUNBQXdCLEdBQWE7SUFDcEQsdUJBQXVCO0NBQ3ZCLENBQUM7QUFDRix5REFBeUQ7QUFDekMsNEJBQVcsR0FBYSxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFDL0QsbUVBQW1FO0FBQ25ELHNDQUFxQixHQUFhO0lBQ2pELDhCQUE4QjtDQUM5QixDQUFDO0FBQ0Ysb0VBQW9FO0FBQ3BELHVDQUFzQixHQUFhO0lBQ2xELCtCQUErQjtDQUMvQixDQUFDO0FBQ0YsNkVBQTZFO0FBQzdELGdEQUErQixHQUFhO0lBQzNELHdDQUF3QztDQUN4QyxDQUFDO0FBQ0YscUVBQXFFO0FBQ3JELHdDQUF1QixHQUFhO0lBQ25ELGdDQUFnQztDQUNoQyxDQUFDO0FBQ0YsOERBQThEO0FBQzlDLGlDQUFnQixHQUFhLEVBQUUsQ0FBQztBQUNoRCw0RUFBNEU7QUFDNUQsK0NBQThCLEdBQWE7SUFDMUQsdUNBQXVDO0NBQ3ZDLENBQUM7QUFDRixvRUFBb0U7QUFDcEQsdUNBQXNCLEdBQWE7SUFDbEQsK0JBQStCO0NBQy9CLENBQUM7QUFDRixvRkFBb0Y7QUFDcEUsdURBQXNDLEdBQWE7SUFDbEUsK0NBQStDO0NBQy9DLENBQUM7QUFDRiwyREFBMkQ7QUFDM0MsOEJBQWEsR0FBYSxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDbkUsOEVBQThFO0FBQzlELGlEQUFnQyxHQUFhO0lBQzVELHlDQUF5QztDQUN6QyxDQUFDO0FBQ0YsK0RBQStEO0FBQy9DLGtDQUFpQixHQUFhLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUMzRSx3REFBd0Q7QUFDeEMsMkJBQVUsR0FBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDN0QsNkVBQTZFO0FBQzdELGdEQUErQixHQUFhO0lBQzNELHdDQUF3QztDQUN4QyxDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELHlDQUF3QixHQUFhO0lBQ3BELGlDQUFpQztDQUNqQyxDQUFDO0FBQ0Ysb0VBQW9FO0FBQ3BELHVDQUFzQixHQUFhO0lBQ2xELCtCQUErQjtDQUMvQixDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELHlDQUF3QixHQUFhO0lBQ3BELGlDQUFpQztDQUNqQyxDQUFDO0FBQ0YsK0RBQStEO0FBQy9DLGtDQUFpQixHQUFhLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUMzRSwwREFBMEQ7QUFDMUMsNkJBQVksR0FBYSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFDakUsbUVBQW1FO0FBQ25ELHNDQUFxQixHQUFhO0lBQ2pELDhCQUE4QjtDQUM5QixDQUFDO0FBQ0YsK0VBQStFO0FBQy9ELGtEQUFpQyxHQUFhO0lBQzdELDBDQUEwQztDQUMxQyxDQUFDO0FBQ0Ysc0RBQXNEO0FBQ3RDLHlCQUFRLEdBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3pELG9FQUFvRTtBQUNwRCx1Q0FBc0IsR0FBYTtJQUNsRCwrQkFBK0I7Q0FDL0IsQ0FBQztBQUNGLGlFQUFpRTtBQUNqRCxvQ0FBbUIsR0FBYTtJQUMvQyw0QkFBNEI7Q0FDNUIsQ0FBQztBQUNGLDREQUE0RDtBQUM1QywrQkFBYyxHQUFhLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNyRSwwRUFBMEU7QUFDMUQsNkNBQTRCLEdBQWE7SUFDeEQscUNBQXFDO0NBQ3JDLENBQUM7QUFDRixvRUFBb0U7QUFDcEQsdUNBQXNCLEdBQWE7SUFDbEQsK0JBQStCO0NBQy9CLENBQUM7QUFDRiwwRUFBMEU7QUFDMUQsNkNBQTRCLEdBQWE7SUFDeEQscUNBQXFDO0NBQ3JDLENBQUM7QUFDRix3RUFBd0U7QUFDeEQsMkNBQTBCLEdBQWE7SUFDdEQsbUNBQW1DO0NBQ25DLENBQUM7QUFDRixzRUFBc0U7QUFDdEQseUNBQXdCLEdBQWE7SUFDcEQsaUNBQWlDO0NBQ2pDLENBQUM7QUFDRiw2RUFBNkU7QUFDN0QsZ0RBQStCLEdBQWE7SUFDM0Qsd0NBQXdDO0NBQ3hDLENBQUM7QUFDRix3RUFBd0U7QUFDeEQsMkNBQTBCLEdBQWE7SUFDdEQsbUNBQW1DO0NBQ25DLENBQUM7QUFDRiwrREFBK0Q7QUFDL0Msa0NBQWlCLEdBQWEsRUFBRSxDQUFDO0FBQ2pELDBFQUEwRTtBQUMxRCw2Q0FBNEIsR0FBYTtJQUN4RCxxQ0FBcUM7Q0FDckMsQ0FBQztBQUNGLDhEQUE4RDtBQUM5QyxpQ0FBZ0IsR0FBYSxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFDekUsMkRBQTJEO0FBQzNDLDhCQUFhLEdBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ25FLHdEQUF3RDtBQUN4QywyQkFBVSxHQUFhO0lBQ3RDLDZCQUE2QjtJQUM3QixjQUFjO0lBQ2QsbUJBQW1CO0NBQ25CLENBQUM7QUFDRixpRkFBaUY7QUFDakUsb0RBQW1DLEdBQWE7SUFDL0QsNENBQTRDO0NBQzVDLENBQUM7QUFDRixtRkFBbUY7QUFDbkUsc0RBQXFDLEdBQWE7SUFDakUsOENBQThDO0NBQzlDLENBQUM7QUFDRixpRkFBaUY7QUFDakUsb0RBQW1DLEdBQWE7SUFDL0QsNENBQTRDO0NBQzVDLENBQUM7QUFDRixrRUFBa0U7QUFDbEQscUNBQW9CLEdBQWE7SUFDaEQsNkJBQTZCO0NBQzdCLENBQUM7QUFDRiw0REFBNEQ7QUFDNUMsK0JBQWMsR0FBYSxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDckUseURBQXlEO0FBQ3pDLDRCQUFXLEdBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBQy9ELDhEQUE4RDtBQUM5QyxpQ0FBZ0IsR0FBYSxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFDekUsMkRBQTJEO0FBQzNDLDhCQUFhLEdBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ25FLHlEQUF5RDtBQUN6Qyw0QkFBVyxHQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUMvRCxvRUFBb0U7QUFDcEQsdUNBQXNCLEdBQWE7SUFDbEQsK0JBQStCO0NBQy9CLENBQUM7QUFDRixxRUFBcUU7QUFDckQsd0NBQXVCLEdBQWE7SUFDbkQsZ0NBQWdDO0NBQ2hDLENBQUM7QUFDRixzRUFBc0U7QUFDdEQseUNBQXdCLEdBQWE7SUFDcEQsaUNBQWlDO0NBQ2pDLENBQUM7QUFDRixnRUFBZ0U7QUFDaEQsbUNBQWtCLEdBQWEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQzdFLHlFQUF5RTtBQUN6RCw0Q0FBMkIsR0FBYTtJQUN2RCx3QkFBd0I7SUFDeEIsNkJBQTZCO0lBQzdCLGNBQWM7SUFDZCxvQ0FBb0M7Q0FDcEMsQ0FBQztBQUNGLDZFQUE2RTtBQUM3RCxnREFBK0IsR0FBYTtJQUMzRCx3Q0FBd0M7Q0FDeEMsQ0FBQztBQUNGLHFFQUFxRTtBQUNyRCx3Q0FBdUIsR0FBYTtJQUNuRCxnQ0FBZ0M7Q0FDaEMsQ0FBQztBQUNGLGdFQUFnRTtBQUNoRCxtQ0FBa0IsR0FBYTtJQUM5Qyw2QkFBNkI7SUFDN0IsY0FBYztJQUNkLDJCQUEyQjtDQUMzQixDQUFDO0FBQ0YsdUVBQXVFO0FBQ3ZELDBDQUF5QixHQUFhO0lBQ3JELGtDQUFrQztDQUNsQyxDQUFDO0FBQ0Ysb0VBQW9FO0FBQ3BELHVDQUFzQixHQUFhO0lBQ2xELGNBQWM7SUFDZCwrQkFBK0I7Q0FDL0IsQ0FBQztBQUNGLDREQUE0RDtBQUM1QywrQkFBYyxHQUFhLEVBQUUsQ0FBQztBQUcvQzs7R0FFRztBQUNILE1BQWEsZ0JBQWdCO0lBa0o1Qjs7T0FFRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBYTtRQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQWE7UUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFnQjtRQUM5QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsb0JBQW9CLENBQzFCLEtBQWE7UUFFYixPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsNkJBQTZCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQ3RCLEtBQWE7UUFFYixPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQWE7UUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUN6QixLQUFhO1FBRWIsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLDRCQUE0QixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDbEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHFCQUFxQixDQUMzQixLQUFjO1FBRWQsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLDhCQUE4QixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFnQjtRQUM1QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQWE7UUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUN0QixNQUFnQjtRQUVoQixPQUFPO1lBQ04sMkJBQTJCLEVBQUUsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLEVBQUU7U0FDbEUsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FDdkIsS0FBYTtRQUViLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBZ0I7UUFDaEMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQWE7UUFDMUIsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO0lBQ3JELENBQUM7O0FBaFFGLDRDQWlRQzs7O0FBaFFBLDZEQUE2RDtBQUM3QywyQ0FBMEIsR0FBYTtJQUN0RCw0QkFBNEI7SUFDNUIsa0JBQWtCO0NBQ2xCLENBQUM7QUFDRixzRUFBc0U7QUFDdEQsb0RBQW1DLEdBQWE7SUFDL0QsMEJBQTBCO0lBQzFCLGFBQWE7SUFDYix5QkFBeUI7SUFDekIsa0JBQWtCO0NBQ2xCLENBQUM7QUFDRix1RUFBdUU7QUFDdkQscURBQW9DLEdBQWE7SUFDaEUsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0Ysd0VBQXdFO0FBQ3hELHNEQUFxQyxHQUFhO0lBQ2pFLDBCQUEwQjtJQUMxQixhQUFhO0lBQ2Isb0JBQW9CO0NBQ3BCLENBQUM7QUFDRiw4REFBOEQ7QUFDOUMsNENBQTJCLEdBQWE7SUFDdkQsMEJBQTBCO0lBQzFCLGFBQWE7SUFDYiw2QkFBNkI7SUFDN0IsY0FBYztJQUNkLHlCQUF5QjtJQUN6QixrQkFBa0I7SUFDbEIsZUFBZTtDQUNmLENBQUM7QUFDRix1RUFBdUU7QUFDdkQscURBQW9DLEdBQWE7SUFDaEUsb0JBQW9CO0lBQ3BCLDRCQUE0QjtDQUM1QixDQUFDO0FBQ0Ysa0VBQWtFO0FBQ2xELGdEQUErQixHQUFhO0lBQzNELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCxvREFBbUMsR0FBYTtJQUMvRCwwQkFBMEI7SUFDMUIsYUFBYTtJQUNiLHlCQUF5QjtJQUN6QixrQkFBa0I7Q0FDbEIsQ0FBQztBQUNGLHdFQUF3RTtBQUN4RCxzREFBcUMsR0FBYTtJQUNqRSxvQkFBb0I7Q0FDcEIsQ0FBQztBQUNGLHVFQUF1RTtBQUN2RCxxREFBb0MsR0FBYTtJQUNoRSxvQkFBb0I7SUFDcEIsNEJBQTRCO0NBQzVCLENBQUM7QUFDRixxRUFBcUU7QUFDckQseURBQXdDLEdBQWE7SUFDcEUsb0JBQW9CO0NBQ3BCLENBQUM7QUFDRixvRUFBb0U7QUFDcEQsd0RBQXVDLEdBQWE7SUFDbkUsb0JBQW9CO0lBQ3BCLDRCQUE0QjtDQUM1QixDQUFDO0FBQ0YsOERBQThEO0FBQzlDLDRDQUEyQixHQUFhO0lBQ3ZELHlCQUF5QjtJQUN6Qiw4QkFBOEI7Q0FDOUIsQ0FBQztBQUNGLGlFQUFpRTtBQUNqRCwrQ0FBOEIsR0FBYTtJQUMxRCx5QkFBeUI7SUFDekIsb0JBQW9CO0lBQ3BCLDRCQUE0QjtDQUM1QixDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELG9EQUFtQyxHQUFhO0lBQy9ELDRCQUE0QjtDQUM1QixDQUFDO0FBQ0YsNEVBQTRFO0FBQzVELDBEQUF5QyxHQUFhO0lBQ3JFLDZCQUE2QjtDQUM3QixDQUFDO0FBQ0YsZ0VBQWdFO0FBQ2hELDhDQUE2QixHQUFhO0lBQ3pELDRCQUE0QjtJQUM1QixrQkFBa0I7Q0FDbEIsQ0FBQztBQUNGLDJEQUEyRDtBQUMzQyx5Q0FBd0IsR0FBYTtJQUNwRCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiw2REFBNkQ7QUFDN0MsMkNBQTBCLEdBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN2RSx3RUFBd0U7QUFDeEQsc0RBQXFDLEdBQWE7SUFDakUsb0JBQW9CO0NBQ3BCLENBQUM7QUFDRiwyRUFBMkU7QUFDM0QseURBQXdDLEdBQWE7SUFDcEUsY0FBYztJQUNkLHlCQUF5QjtJQUN6QixrQkFBa0I7SUFDbEIsZUFBZTtDQUNmLENBQUM7QUFDRix1RUFBdUU7QUFDdkQscURBQW9DLEdBQWE7SUFDaEUsb0JBQW9CO0lBQ3BCLDRCQUE0QjtDQUM1QixDQUFDO0FBRUYsdURBQXVEO0FBQ3ZDLGdDQUFlLEdBQUcsMEJBQTBCLENBQUM7QUFDN0Qsd0RBQXdEO0FBQ3hDLGlDQUFnQixHQUFHLDJCQUEyQixDQUFDO0FBQy9ELGlEQUFpRDtBQUNqQyw2QkFBWSxHQUFHLGFBQWEsQ0FBQztBQUM3Qyx1REFBdUQ7QUFDdkMsd0NBQXVCLEdBQUcsNkJBQTZCLENBQUM7QUFDeEUsc0RBQXNEO0FBQ3RDLG1DQUFrQixHQUFHLHlCQUF5QixDQUFDO0FBQy9ELDhDQUE4QztBQUM5Qiw2QkFBWSxHQUFHLG9CQUFvQixDQUFDO0FBQ3BELHlEQUF5RDtBQUN6Qyx1Q0FBc0IsR0FBRyw0QkFBNEIsQ0FBQztBQUN0RSx5REFBeUQ7QUFDekMseUNBQXdCLEdBQUcsOEJBQThCLENBQUM7QUFDMUUsa0RBQWtEO0FBQ2xDLHNCQUFLLEdBQUcsY0FBYyxDQUFDO0FBQ3ZDLCtDQUErQztBQUMvQiwwQkFBUyxHQUFHLGtCQUFrQixDQUFDO0FBQy9DLDZEQUE2RDtBQUM3QyxtQ0FBa0IsR0FBRyx5QkFBeUIsQ0FBQztBQUMvRCxvREFBb0Q7QUFDcEMsb0NBQW1CLEdBQUcsMEJBQTBCLENBQUM7QUFDakUsc0RBQXNEO0FBQ3RDLDJCQUFVLEdBQUcsa0JBQWtCLENBQUM7QUFDaEQsNENBQTRDO0FBQzVCLHdCQUFPLEdBQUcsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2UvbGFtYmRhLmpzb25cbi8vIFJ1biBgbnB4IHByb2plbiBnZW5lcmF0ZS1jb25zdGFudHNgIHRvIHJlZ2VuZXJhdGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSUFNIGFjdGlvbiBjb25zdGFudHMgZm9yIHRoZSBsYW1iZGEgc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIExhbWJkYUFjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJsYW1iZGFcIjtcblxuXHQvKiogW1Blcm1pc3Npb25NYW5hZ2VtZW50XSBsYW1iZGE6QWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbiA9XG5cdFx0XCJsYW1iZGE6QWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvblwiO1xuXHQvKiogW1Blcm1pc3Npb25NYW5hZ2VtZW50XSBsYW1iZGE6QWRkUGVybWlzc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWRkUGVybWlzc2lvbiA9IFwibGFtYmRhOkFkZFBlcm1pc3Npb25cIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkNoZWNrcG9pbnREdXJhYmxlRXhlY3V0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDaGVja3BvaW50RHVyYWJsZUV4ZWN1dGlvbiA9XG5cdFx0XCJsYW1iZGE6Q2hlY2twb2ludER1cmFibGVFeGVjdXRpb25cIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkNvbm5lY3RNaWNyb3ZtICovXG5cdHN0YXRpYyByZWFkb25seSBDb25uZWN0TWljcm92bSA9IFwibGFtYmRhOkNvbm5lY3RNaWNyb3ZtXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpDcmVhdGVBbGlhcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQWxpYXMgPSBcImxhbWJkYTpDcmVhdGVBbGlhc1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6Q3JlYXRlQ2FwYWNpdHlQcm92aWRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2FwYWNpdHlQcm92aWRlciA9IFwibGFtYmRhOkNyZWF0ZUNhcGFjaXR5UHJvdmlkZXJcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkNyZWF0ZUNvZGVTaWduaW5nQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZyA9IFwibGFtYmRhOkNyZWF0ZUNvZGVTaWduaW5nQ29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmcgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV2ZW50U291cmNlTWFwcGluZyA9IFwibGFtYmRhOkNyZWF0ZUV2ZW50U291cmNlTWFwcGluZ1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6Q3JlYXRlRnVuY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUZ1bmN0aW9uID0gXCJsYW1iZGE6Q3JlYXRlRnVuY3Rpb25cIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkNyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVGdW5jdGlvblVybENvbmZpZyA9IFwibGFtYmRhOkNyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpDcmVhdGVNaWNyb3ZtQXV0aFRva2VuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVNaWNyb3ZtQXV0aFRva2VuID0gXCJsYW1iZGE6Q3JlYXRlTWljcm92bUF1dGhUb2tlblwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6Q3JlYXRlTWljcm92bUltYWdlICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVNaWNyb3ZtSW1hZ2UgPSBcImxhbWJkYTpDcmVhdGVNaWNyb3ZtSW1hZ2VcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkNyZWF0ZU1pY3Jvdm1TaGVsbEF1dGhUb2tlbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTWljcm92bVNoZWxsQXV0aFRva2VuID1cblx0XHRcImxhbWJkYTpDcmVhdGVNaWNyb3ZtU2hlbGxBdXRoVG9rZW5cIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkNyZWF0ZU5ldHdvcmtDb25uZWN0b3IgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU5ldHdvcmtDb25uZWN0b3IgPSBcImxhbWJkYTpDcmVhdGVOZXR3b3JrQ29ubmVjdG9yXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpEZWxldGVBbGlhcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQWxpYXMgPSBcImxhbWJkYTpEZWxldGVBbGlhc1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6RGVsZXRlQ2FwYWNpdHlQcm92aWRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2FwYWNpdHlQcm92aWRlciA9IFwibGFtYmRhOkRlbGV0ZUNhcGFjaXR5UHJvdmlkZXJcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkRlbGV0ZUNvZGVTaWduaW5nQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZyA9IFwibGFtYmRhOkRlbGV0ZUNvZGVTaWduaW5nQ29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpEZWxldGVFdmVudFNvdXJjZU1hcHBpbmcgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV2ZW50U291cmNlTWFwcGluZyA9IFwibGFtYmRhOkRlbGV0ZUV2ZW50U291cmNlTWFwcGluZ1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6RGVsZXRlRnVuY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUZ1bmN0aW9uID0gXCJsYW1iZGE6RGVsZXRlRnVuY3Rpb25cIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkRlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcgPVxuXHRcdFwibGFtYmRhOkRlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkRlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3kgPVxuXHRcdFwibGFtYmRhOkRlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkRlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgPVxuXHRcdFwibGFtYmRhOkRlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkRlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvblVybENvbmZpZyA9IFwibGFtYmRhOkRlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpEZWxldGVMYXllclZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUxheWVyVmVyc2lvbiA9IFwibGFtYmRhOkRlbGV0ZUxheWVyVmVyc2lvblwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6RGVsZXRlTWljcm92bUltYWdlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVNaWNyb3ZtSW1hZ2UgPSBcImxhbWJkYTpEZWxldGVNaWNyb3ZtSW1hZ2VcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkRlbGV0ZU1pY3Jvdm1JbWFnZVZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZU1pY3Jvdm1JbWFnZVZlcnNpb24gPVxuXHRcdFwibGFtYmRhOkRlbGV0ZU1pY3Jvdm1JbWFnZVZlcnNpb25cIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkRlbGV0ZU5ldHdvcmtDb25uZWN0b3IgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZU5ldHdvcmtDb25uZWN0b3IgPSBcImxhbWJkYTpEZWxldGVOZXR3b3JrQ29ubmVjdG9yXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnID1cblx0XHRcImxhbWJkYTpEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnXCI7XG5cdC8qKiBbUGVybWlzc2lvbk1hbmFnZW1lbnRdIGxhbWJkYTpEaXNhYmxlUmVwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2FibGVSZXBsaWNhdGlvbiA9IFwibGFtYmRhOkRpc2FibGVSZXBsaWNhdGlvblwiO1xuXHQvKiogW1Blcm1pc3Npb25NYW5hZ2VtZW50XSBsYW1iZGE6RW5hYmxlUmVwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IEVuYWJsZVJlcGxpY2F0aW9uID0gXCJsYW1iZGE6RW5hYmxlUmVwbGljYXRpb25cIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0QWNjb3VudFNldHRpbmdzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBY2NvdW50U2V0dGluZ3MgPSBcImxhbWJkYTpHZXRBY2NvdW50U2V0dGluZ3NcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0QWxpYXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFsaWFzID0gXCJsYW1iZGE6R2V0QWxpYXNcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0Q2FwYWNpdHlQcm92aWRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q2FwYWNpdHlQcm92aWRlciA9IFwibGFtYmRhOkdldENhcGFjaXR5UHJvdmlkZXJcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0Q29kZVNpZ25pbmdDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvZGVTaWduaW5nQ29uZmlnID0gXCJsYW1iZGE6R2V0Q29kZVNpZ25pbmdDb25maWdcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0RHVyYWJsZUV4ZWN1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RHVyYWJsZUV4ZWN1dGlvbiA9IFwibGFtYmRhOkdldER1cmFibGVFeGVjdXRpb25cIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnkgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5ID1cblx0XHRcImxhbWJkYTpHZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeVwiO1xuXHQvKiogW1JlYWRdIGxhbWJkYTpHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldER1cmFibGVFeGVjdXRpb25TdGF0ZSA9XG5cdFx0XCJsYW1iZGE6R2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlXCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldEV2ZW50U291cmNlTWFwcGluZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RXZlbnRTb3VyY2VNYXBwaW5nID0gXCJsYW1iZGE6R2V0RXZlbnRTb3VyY2VNYXBwaW5nXCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldEZ1bmN0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRGdW5jdGlvbiA9IFwibGFtYmRhOkdldEZ1bmN0aW9uXCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcgPVxuXHRcdFwibGFtYmRhOkdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0RnVuY3Rpb25Db25jdXJyZW5jeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RnVuY3Rpb25Db25jdXJyZW5jeSA9XG5cdFx0XCJsYW1iZGE6R2V0RnVuY3Rpb25Db25jdXJyZW5jeVwiO1xuXHQvKiogW1JlYWRdIGxhbWJkYTpHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJsYW1iZGE6R2V0RnVuY3Rpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgPVxuXHRcdFwibGFtYmRhOkdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnID1cblx0XHRcImxhbWJkYTpHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1wiO1xuXHQvKiogW1JlYWRdIGxhbWJkYTpHZXRGdW5jdGlvblNjYWxpbmdDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZyA9XG5cdFx0XCJsYW1iZGE6R2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnXCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldEZ1bmN0aW9uVXJsQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRGdW5jdGlvblVybENvbmZpZyA9IFwibGFtYmRhOkdldEZ1bmN0aW9uVXJsQ29uZmlnXCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldExheWVyVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TGF5ZXJWZXJzaW9uID0gXCJsYW1iZGE6R2V0TGF5ZXJWZXJzaW9uXCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldExheWVyVmVyc2lvblBvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TGF5ZXJWZXJzaW9uUG9saWN5ID0gXCJsYW1iZGE6R2V0TGF5ZXJWZXJzaW9uUG9saWN5XCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldE1pY3Jvdm0gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE1pY3Jvdm0gPSBcImxhbWJkYTpHZXRNaWNyb3ZtXCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldE1pY3Jvdm1JbWFnZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TWljcm92bUltYWdlID0gXCJsYW1iZGE6R2V0TWljcm92bUltYWdlXCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldE1pY3Jvdm1JbWFnZUJ1aWxkICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRNaWNyb3ZtSW1hZ2VCdWlsZCA9IFwibGFtYmRhOkdldE1pY3Jvdm1JbWFnZUJ1aWxkXCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldE1pY3Jvdm1JbWFnZVZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE1pY3Jvdm1JbWFnZVZlcnNpb24gPVxuXHRcdFwibGFtYmRhOkdldE1pY3Jvdm1JbWFnZVZlcnNpb25cIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0TmV0d29ya0Nvbm5lY3RvciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TmV0d29ya0Nvbm5lY3RvciA9IFwibGFtYmRhOkdldE5ldHdvcmtDb25uZWN0b3JcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0UG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRQb2xpY3kgPSBcImxhbWJkYTpHZXRQb2xpY3lcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyA9XG5cdFx0XCJsYW1iZGE6R2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1wiO1xuXHQvKiogW1JlYWRdIGxhbWJkYTpHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWcgPVxuXHRcdFwibGFtYmRhOkdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpJbnZva2VBc3luYyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW52b2tlQXN5bmMgPSBcImxhbWJkYTpJbnZva2VBc3luY1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6SW52b2tlRnVuY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IEludm9rZUZ1bmN0aW9uID0gXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25cIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkludm9rZUZ1bmN0aW9uVXJsICovXG5cdHN0YXRpYyByZWFkb25seSBJbnZva2VGdW5jdGlvblVybCA9IFwibGFtYmRhOkludm9rZUZ1bmN0aW9uVXJsXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3RBbGlhc2VzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QWxpYXNlcyA9IFwibGFtYmRhOkxpc3RBbGlhc2VzXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3RDYXBhY2l0eVByb3ZpZGVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENhcGFjaXR5UHJvdmlkZXJzID0gXCJsYW1iZGE6TGlzdENhcGFjaXR5UHJvdmlkZXJzXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3RDb2RlU2lnbmluZ0NvbmZpZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb2RlU2lnbmluZ0NvbmZpZ3MgPSBcImxhbWJkYTpMaXN0Q29kZVNpZ25pbmdDb25maWdzXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb24gPVxuXHRcdFwibGFtYmRhOkxpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb25cIjtcblx0LyoqIFtMaXN0XSBsYW1iZGE6TGlzdEV2ZW50U291cmNlTWFwcGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFdmVudFNvdXJjZU1hcHBpbmdzID0gXCJsYW1iZGE6TGlzdEV2ZW50U291cmNlTWFwcGluZ3NcIjtcblx0LyoqIFtMaXN0XSBsYW1iZGE6TGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3MgPVxuXHRcdFwibGFtYmRhOkxpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc1wiO1xuXHQvKiogW0xpc3RdIGxhbWJkYTpMaXN0RnVuY3Rpb25VcmxDb25maWdzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RnVuY3Rpb25VcmxDb25maWdzID0gXCJsYW1iZGE6TGlzdEZ1bmN0aW9uVXJsQ29uZmlnc1wiO1xuXHQvKiogW0xpc3RdIGxhbWJkYTpMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXIgPVxuXHRcdFwibGFtYmRhOkxpc3RGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3RGdW5jdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGdW5jdGlvbnMgPSBcImxhbWJkYTpMaXN0RnVuY3Rpb25zXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZyA9XG5cdFx0XCJsYW1iZGE6TGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWdcIjtcblx0LyoqIFtMaXN0XSBsYW1iZGE6TGlzdExheWVyVmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMYXllclZlcnNpb25zID0gXCJsYW1iZGE6TGlzdExheWVyVmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBsYW1iZGE6TGlzdExheWVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdExheWVycyA9IFwibGFtYmRhOkxpc3RMYXllcnNcIjtcblx0LyoqIFtMaXN0XSBsYW1iZGE6TGlzdE1hbmFnZWRNaWNyb3ZtSW1hZ2VWZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1hbmFnZWRNaWNyb3ZtSW1hZ2VWZXJzaW9ucyA9XG5cdFx0XCJsYW1iZGE6TGlzdE1hbmFnZWRNaWNyb3ZtSW1hZ2VWZXJzaW9uc1wiO1xuXHQvKiogW0xpc3RdIGxhbWJkYTpMaXN0TWFuYWdlZE1pY3Jvdm1JbWFnZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNYW5hZ2VkTWljcm92bUltYWdlcyA9IFwibGFtYmRhOkxpc3RNYW5hZ2VkTWljcm92bUltYWdlc1wiO1xuXHQvKiogW0xpc3RdIGxhbWJkYTpMaXN0TWljcm92bUltYWdlQnVpbGRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWljcm92bUltYWdlQnVpbGRzID0gXCJsYW1iZGE6TGlzdE1pY3Jvdm1JbWFnZUJ1aWxkc1wiO1xuXHQvKiogW0xpc3RdIGxhbWJkYTpMaXN0TWljcm92bUltYWdlVmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNaWNyb3ZtSW1hZ2VWZXJzaW9ucyA9IFwibGFtYmRhOkxpc3RNaWNyb3ZtSW1hZ2VWZXJzaW9uc1wiO1xuXHQvKiogW0xpc3RdIGxhbWJkYTpMaXN0TWljcm92bUltYWdlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1pY3Jvdm1JbWFnZXMgPSBcImxhbWJkYTpMaXN0TWljcm92bUltYWdlc1wiO1xuXHQvKiogW0xpc3RdIGxhbWJkYTpMaXN0TWljcm92bXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNaWNyb3ZtcyA9IFwibGFtYmRhOkxpc3RNaWNyb3Ztc1wiO1xuXHQvKiogW0xpc3RdIGxhbWJkYTpMaXN0TmV0d29ya0Nvbm5lY3RvcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3ROZXR3b3JrQ29ubmVjdG9ycyA9IFwibGFtYmRhOkxpc3ROZXR3b3JrQ29ubmVjdG9yc1wiO1xuXHQvKiogW0xpc3RdIGxhbWJkYTpMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlncyA9XG5cdFx0XCJsYW1iZGE6TGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzXCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkxpc3RUYWdzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFncyA9IFwibGFtYmRhOkxpc3RUYWdzXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3RWZXJzaW9uc0J5RnVuY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RWZXJzaW9uc0J5RnVuY3Rpb24gPSBcImxhbWJkYTpMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpQYXNzQ2FwYWNpdHlQcm92aWRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUGFzc0NhcGFjaXR5UHJvdmlkZXIgPSBcImxhbWJkYTpQYXNzQ2FwYWNpdHlQcm92aWRlclwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6UGFzc05ldHdvcmtDb25uZWN0b3IgKi9cblx0c3RhdGljIHJlYWRvbmx5IFBhc3NOZXR3b3JrQ29ubmVjdG9yID0gXCJsYW1iZGE6UGFzc05ldHdvcmtDb25uZWN0b3JcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlB1Ymxpc2hMYXllclZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1Ymxpc2hMYXllclZlcnNpb24gPSBcImxhbWJkYTpQdWJsaXNoTGF5ZXJWZXJzaW9uXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpQdWJsaXNoVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHVibGlzaFZlcnNpb24gPSBcImxhbWJkYTpQdWJsaXNoVmVyc2lvblwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6UHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZyA9XG5cdFx0XCJsYW1iZGE6UHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6UHV0RnVuY3Rpb25Db25jdXJyZW5jeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RnVuY3Rpb25Db25jdXJyZW5jeSA9IFwibGFtYmRhOlB1dEZ1bmN0aW9uQ29uY3VycmVuY3lcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgPVxuXHRcdFwibGFtYmRhOlB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZyA9XG5cdFx0XCJsYW1iZGE6UHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWdcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RnVuY3Rpb25TY2FsaW5nQ29uZmlnID0gXCJsYW1iZGE6UHV0RnVuY3Rpb25TY2FsaW5nQ29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnID1cblx0XHRcImxhbWJkYTpQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWcgPVxuXHRcdFwibGFtYmRhOlB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnXCI7XG5cdC8qKiBbUGVybWlzc2lvbk1hbmFnZW1lbnRdIGxhbWJkYTpSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uID1cblx0XHRcImxhbWJkYTpSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uXCI7XG5cdC8qKiBbUGVybWlzc2lvbk1hbmFnZW1lbnRdIGxhbWJkYTpSZW1vdmVQZXJtaXNzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBSZW1vdmVQZXJtaXNzaW9uID0gXCJsYW1iZGE6UmVtb3ZlUGVybWlzc2lvblwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6UmVzdW1lTWljcm92bSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVzdW1lTWljcm92bSA9IFwibGFtYmRhOlJlc3VtZU1pY3Jvdm1cIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlJ1bk1pY3Jvdm0gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJ1bk1pY3Jvdm0gPSBcImxhbWJkYTpSdW5NaWNyb3ZtXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmUgPVxuXHRcdFwibGFtYmRhOlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tGYWlsdXJlXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0ICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0ID1cblx0XHRcImxhbWJkYTpTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0XCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2VzcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3MgPVxuXHRcdFwibGFtYmRhOlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tTdWNjZXNzXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpTdG9wRHVyYWJsZUV4ZWN1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcER1cmFibGVFeGVjdXRpb24gPSBcImxhbWJkYTpTdG9wRHVyYWJsZUV4ZWN1dGlvblwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6U3VzcGVuZE1pY3Jvdm0gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1c3BlbmRNaWNyb3ZtID0gXCJsYW1iZGE6U3VzcGVuZE1pY3Jvdm1cIjtcblx0LyoqIFtUYWdnaW5nXSBsYW1iZGE6VGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlID0gXCJsYW1iZGE6VGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlRlcm1pbmF0ZU1pY3Jvdm0gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlcm1pbmF0ZU1pY3Jvdm0gPSBcImxhbWJkYTpUZXJtaW5hdGVNaWNyb3ZtXCI7XG5cdC8qKiBbVGFnZ2luZ10gbGFtYmRhOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcImxhbWJkYTpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpVcGRhdGVBbGlhcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWxpYXMgPSBcImxhbWJkYTpVcGRhdGVBbGlhc1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6VXBkYXRlQ2FwYWNpdHlQcm92aWRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2FwYWNpdHlQcm92aWRlciA9IFwibGFtYmRhOlVwZGF0ZUNhcGFjaXR5UHJvdmlkZXJcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZyA9IFwibGFtYmRhOlVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmcgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZyA9IFwibGFtYmRhOlVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6VXBkYXRlRnVuY3Rpb25Db2RlICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGdW5jdGlvbkNvZGUgPSBcImxhbWJkYTpVcGRhdGVGdW5jdGlvbkNvZGVcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlVwZGF0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcgPVxuXHRcdFwibGFtYmRhOlVwZGF0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uID1cblx0XHRcImxhbWJkYTpVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgPVxuXHRcdFwibGFtYmRhOlVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGdW5jdGlvblVybENvbmZpZyA9IFwibGFtYmRhOlVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpVcGRhdGVNaWNyb3ZtSW1hZ2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1pY3Jvdm1JbWFnZSA9IFwibGFtYmRhOlVwZGF0ZU1pY3Jvdm1JbWFnZVwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6VXBkYXRlTWljcm92bUltYWdlVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTWljcm92bUltYWdlVmVyc2lvbiA9XG5cdFx0XCJsYW1iZGE6VXBkYXRlTWljcm92bUltYWdlVmVyc2lvblwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6VXBkYXRlTmV0d29ya0Nvbm5lY3RvciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTmV0d29ya0Nvbm5lY3RvciA9IFwibGFtYmRhOlVwZGF0ZU5ldHdvcmtDb25uZWN0b3JcIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldEFjY291bnRTZXR0aW5ncyxcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldEFsaWFzLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0Q2FwYWNpdHlQcm92aWRlcixcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldENvZGVTaWduaW5nQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0RHVyYWJsZUV4ZWN1dGlvbixcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5LFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0RXZlbnRTb3VyY2VNYXBwaW5nLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0RnVuY3Rpb24sXG5cdFx0TGFtYmRhQWN0aW9ucy5hY3Rpb25HZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0RnVuY3Rpb25Db25jdXJyZW5jeSxcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbixcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcsXG5cdFx0TGFtYmRhQWN0aW9ucy5hY3Rpb25HZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldEZ1bmN0aW9uVXJsQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0TGF5ZXJWZXJzaW9uLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0TGF5ZXJWZXJzaW9uUG9saWN5LFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0TWljcm92bSxcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldE1pY3Jvdm1JbWFnZSxcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldE1pY3Jvdm1JbWFnZUJ1aWxkLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0TWljcm92bUltYWdlVmVyc2lvbixcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldE5ldHdvcmtDb25uZWN0b3IsXG5cdFx0TGFtYmRhQWN0aW9ucy5hY3Rpb25HZXRQb2xpY3ksXG5cdFx0TGFtYmRhQWN0aW9ucy5hY3Rpb25HZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWcsXG5cdFx0TGFtYmRhQWN0aW9ucy5MaXN0VGFncyxcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRMYW1iZGFBY3Rpb25zLkNoZWNrcG9pbnREdXJhYmxlRXhlY3V0aW9uLFxuXHRcdExhbWJkYUFjdGlvbnMuQ29ubmVjdE1pY3Jvdm0sXG5cdFx0TGFtYmRhQWN0aW9ucy5DcmVhdGVBbGlhcyxcblx0XHRMYW1iZGFBY3Rpb25zLkNyZWF0ZUNhcGFjaXR5UHJvdmlkZXIsXG5cdFx0TGFtYmRhQWN0aW9ucy5DcmVhdGVDb2RlU2lnbmluZ0NvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLkNyZWF0ZUV2ZW50U291cmNlTWFwcGluZyxcblx0XHRMYW1iZGFBY3Rpb25zLkNyZWF0ZUZ1bmN0aW9uLFxuXHRcdExhbWJkYUFjdGlvbnMuQ3JlYXRlRnVuY3Rpb25VcmxDb25maWcsXG5cdFx0TGFtYmRhQWN0aW9ucy5DcmVhdGVNaWNyb3ZtQXV0aFRva2VuLFxuXHRcdExhbWJkYUFjdGlvbnMuQ3JlYXRlTWljcm92bUltYWdlLFxuXHRcdExhbWJkYUFjdGlvbnMuQ3JlYXRlTWljcm92bVNoZWxsQXV0aFRva2VuLFxuXHRcdExhbWJkYUFjdGlvbnMuQ3JlYXRlTmV0d29ya0Nvbm5lY3Rvcixcblx0XHRMYW1iZGFBY3Rpb25zLkRlbGV0ZUFsaWFzLFxuXHRcdExhbWJkYUFjdGlvbnMuRGVsZXRlQ2FwYWNpdHlQcm92aWRlcixcblx0XHRMYW1iZGFBY3Rpb25zLkRlbGV0ZUNvZGVTaWduaW5nQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nLFxuXHRcdExhbWJkYUFjdGlvbnMuRGVsZXRlRnVuY3Rpb24sXG5cdFx0TGFtYmRhQWN0aW9ucy5EZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeSxcblx0XHRMYW1iZGFBY3Rpb25zLkRlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcsXG5cdFx0TGFtYmRhQWN0aW9ucy5EZWxldGVGdW5jdGlvblVybENvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLkRlbGV0ZUxheWVyVmVyc2lvbixcblx0XHRMYW1iZGFBY3Rpb25zLkRlbGV0ZU1pY3Jvdm1JbWFnZSxcblx0XHRMYW1iZGFBY3Rpb25zLkRlbGV0ZU1pY3Jvdm1JbWFnZVZlcnNpb24sXG5cdFx0TGFtYmRhQWN0aW9ucy5EZWxldGVOZXR3b3JrQ29ubmVjdG9yLFxuXHRcdExhbWJkYUFjdGlvbnMuRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLkludm9rZUFzeW5jLFxuXHRcdExhbWJkYUFjdGlvbnMuSW52b2tlRnVuY3Rpb24sXG5cdFx0TGFtYmRhQWN0aW9ucy5JbnZva2VGdW5jdGlvblVybCxcblx0XHRMYW1iZGFBY3Rpb25zLlBhc3NDYXBhY2l0eVByb3ZpZGVyLFxuXHRcdExhbWJkYUFjdGlvbnMuUGFzc05ldHdvcmtDb25uZWN0b3IsXG5cdFx0TGFtYmRhQWN0aW9ucy5QdWJsaXNoTGF5ZXJWZXJzaW9uLFxuXHRcdExhbWJkYUFjdGlvbnMuUHVibGlzaFZlcnNpb24sXG5cdFx0TGFtYmRhQWN0aW9ucy5QdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuUHV0RnVuY3Rpb25Db25jdXJyZW5jeSxcblx0XHRMYW1iZGFBY3Rpb25zLlB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcsXG5cdFx0TGFtYmRhQWN0aW9ucy5QdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLlB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLlB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcsXG5cdFx0TGFtYmRhQWN0aW9ucy5QdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLlJlc3VtZU1pY3Jvdm0sXG5cdFx0TGFtYmRhQWN0aW9ucy5SdW5NaWNyb3ZtLFxuXHRcdExhbWJkYUFjdGlvbnMuU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmUsXG5cdFx0TGFtYmRhQWN0aW9ucy5TZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0LFxuXHRcdExhbWJkYUFjdGlvbnMuU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3MsXG5cdFx0TGFtYmRhQWN0aW9ucy5TdG9wRHVyYWJsZUV4ZWN1dGlvbixcblx0XHRMYW1iZGFBY3Rpb25zLlN1c3BlbmRNaWNyb3ZtLFxuXHRcdExhbWJkYUFjdGlvbnMuVGVybWluYXRlTWljcm92bSxcblx0XHRMYW1iZGFBY3Rpb25zLlVwZGF0ZUFsaWFzLFxuXHRcdExhbWJkYUFjdGlvbnMuVXBkYXRlQ2FwYWNpdHlQcm92aWRlcixcblx0XHRMYW1iZGFBY3Rpb25zLlVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nLFxuXHRcdExhbWJkYUFjdGlvbnMuVXBkYXRlRnVuY3Rpb25Db2RlLFxuXHRcdExhbWJkYUFjdGlvbnMuVXBkYXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbixcblx0XHRMYW1iZGFBY3Rpb25zLlVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcsXG5cdFx0TGFtYmRhQWN0aW9ucy5VcGRhdGVGdW5jdGlvblVybENvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLlVwZGF0ZU1pY3Jvdm1JbWFnZSxcblx0XHRMYW1iZGFBY3Rpb25zLlVwZGF0ZU1pY3Jvdm1JbWFnZVZlcnNpb24sXG5cdFx0TGFtYmRhQWN0aW9ucy5VcGRhdGVOZXR3b3JrQ29ubmVjdG9yLFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3RBbGlhc2VzLFxuXHRcdExhbWJkYUFjdGlvbnMuTGlzdENhcGFjaXR5UHJvdmlkZXJzLFxuXHRcdExhbWJkYUFjdGlvbnMuTGlzdENvZGVTaWduaW5nQ29uZmlncyxcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb24sXG5cdFx0TGFtYmRhQWN0aW9ucy5MaXN0RXZlbnRTb3VyY2VNYXBwaW5ncyxcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlncyxcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3RGdW5jdGlvblVybENvbmZpZ3MsXG5cdFx0TGFtYmRhQWN0aW9ucy5MaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlcixcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3RGdW5jdGlvbnMsXG5cdFx0TGFtYmRhQWN0aW9ucy5MaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3RMYXllclZlcnNpb25zLFxuXHRcdExhbWJkYUFjdGlvbnMuTGlzdExheWVycyxcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3RNYW5hZ2VkTWljcm92bUltYWdlVmVyc2lvbnMsXG5cdFx0TGFtYmRhQWN0aW9ucy5MaXN0TWFuYWdlZE1pY3Jvdm1JbWFnZXMsXG5cdFx0TGFtYmRhQWN0aW9ucy5MaXN0TWljcm92bUltYWdlQnVpbGRzLFxuXHRcdExhbWJkYUFjdGlvbnMuTGlzdE1pY3Jvdm1JbWFnZVZlcnNpb25zLFxuXHRcdExhbWJkYUFjdGlvbnMuTGlzdE1pY3Jvdm1JbWFnZXMsXG5cdFx0TGFtYmRhQWN0aW9ucy5MaXN0TWljcm92bXMsXG5cdFx0TGFtYmRhQWN0aW9ucy5MaXN0TmV0d29ya0Nvbm5lY3RvcnMsXG5cdFx0TGFtYmRhQWN0aW9ucy5MaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3MsXG5cdFx0TGFtYmRhQWN0aW9ucy5MaXN0VmVyc2lvbnNCeUZ1bmN0aW9uLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRMYW1iZGFBY3Rpb25zLkFkZExheWVyVmVyc2lvblBlcm1pc3Npb24sXG5cdFx0TGFtYmRhQWN0aW9ucy5BZGRQZXJtaXNzaW9uLFxuXHRcdExhbWJkYUFjdGlvbnMuRGlzYWJsZVJlcGxpY2F0aW9uLFxuXHRcdExhbWJkYUFjdGlvbnMuRW5hYmxlUmVwbGljYXRpb24sXG5cdFx0TGFtYmRhQWN0aW9ucy5SZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uLFxuXHRcdExhbWJkYUFjdGlvbnMuUmVtb3ZlUGVybWlzc2lvbixcblx0XTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0TGFtYmRhQWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHRMYW1iZGFBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjYXBhY2l0eVByb3ZpZGVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFDYXBhY2l0eVByb3ZpZGVyQXJuUHJvcHMge1xuXHQvKiogVGhlIENhcGFjaXR5UHJvdmlkZXJOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjYXBhY2l0eVByb3ZpZGVyTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNhcGFjaXR5UHJvdmlkZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUNhcGFjaXR5UHJvdmlkZXJBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENhcGFjaXR5UHJvdmlkZXJOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2FwYWNpdHlQcm92aWRlck5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGNvZGUgc2lnbmluZyBjb25maWcgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUNvZGVTaWduaW5nQ29uZmlnQXJuUHJvcHMge1xuXHQvKiogVGhlIENvZGVTaWduaW5nQ29uZmlnSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvZGVTaWduaW5nQ29uZmlnSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjb2RlIHNpZ25pbmcgY29uZmlnIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFDb2RlU2lnbmluZ0NvbmZpZ0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29kZVNpZ25pbmdDb25maWdJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvZGVTaWduaW5nQ29uZmlnSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGR1cmFibGUgZXhlY3V0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFEdXJhYmxlRXhlY3V0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIEZ1bmN0aW9uTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbiBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXHQvKiogVGhlIEV4ZWN1dGlvbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGV4ZWN1dGlvbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBFeGVjdXRpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZXhlY3V0aW9uSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkdXJhYmxlIGV4ZWN1dGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRHVyYWJsZUV4ZWN1dGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRnVuY3Rpb25OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbiBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblx0LyoqIFRoZSBFeGVjdXRpb25OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZXhlY3V0aW9uTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIEV4ZWN1dGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZXhlY3V0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGV2ZW50U291cmNlTWFwcGluZyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRXZlbnRTb3VyY2VNYXBwaW5nQXJuUHJvcHMge1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBldmVudFNvdXJjZU1hcHBpbmcgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUV2ZW50U291cmNlTWFwcGluZ0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGZ1bmN0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFGdW5jdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBGdW5jdGlvbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGZ1bmN0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFGdW5jdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRnVuY3Rpb25OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBmdW5jdGlvbiBhbGlhcyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRnVuY3Rpb25BbGlhc0FyblByb3BzIHtcblx0LyoqIFRoZSBGdW5jdGlvbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIEFsaWFzIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBhbGlhczogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGZ1bmN0aW9uIGFsaWFzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFGdW5jdGlvbkFsaWFzQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBGdW5jdGlvbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBmdW5jdGlvbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBBbGlhcyBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGFsaWFzOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBmdW5jdGlvbiB2ZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFGdW5jdGlvblZlcnNpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRnVuY3Rpb25OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBmdW5jdGlvbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBWZXJzaW9uIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZnVuY3Rpb24gdmVyc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRnVuY3Rpb25WZXJzaW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBGdW5jdGlvbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBmdW5jdGlvbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBWZXJzaW9uIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgbGF5ZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUxheWVyQXJuUHJvcHMge1xuXHQvKiogVGhlIExheWVyTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbGF5ZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgbGF5ZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUxheWVyQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBMYXllck5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBsYXllck5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGxheWVyVmVyc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhTGF5ZXJWZXJzaW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIExheWVyTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbGF5ZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgTGF5ZXJWZXJzaW9uIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBsYXllclZlcnNpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBsYXllclZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUxheWVyVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgTGF5ZXJOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbGF5ZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgTGF5ZXJWZXJzaW9uIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbGF5ZXJWZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBtaWNyb3ZtSW1hZ2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYU1pY3Jvdm1JbWFnZUFyblByb3BzIHtcblx0LyoqIFRoZSBNaWNyb3ZtSW1hZ2VOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBtaWNyb3ZtSW1hZ2VOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgbWljcm92bUltYWdlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFNaWNyb3ZtSW1hZ2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIE1pY3Jvdm1JbWFnZU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBtaWNyb3ZtSW1hZ2VOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBuZXR3b3JrQ29ubmVjdG9yIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFOZXR3b3JrQ29ubmVjdG9yQXJuUHJvcHMge1xuXHQvKiogVGhlIE5ldHdvcmtDb25uZWN0b3JJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbmV0d29ya0Nvbm5lY3RvcklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgbmV0d29ya0Nvbm5lY3RvciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhTmV0d29ya0Nvbm5lY3RvckFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgTmV0d29ya0Nvbm5lY3RvcklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbmV0d29ya0Nvbm5lY3RvcklkOiBzdHJpbmc7XG59XG5cbmNvbnN0IENhcGFjaXR5UHJvdmlkZXJBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6bGFtYmRhOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y2FwYWNpdHktcHJvdmlkZXI6KD88Y2FwYWNpdHlQcm92aWRlck5hbWU+W146Lz9dKykkLztcbmNvbnN0IENvZGVTaWduaW5nQ29uZmlnQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmxhbWJkYTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmNvZGUtc2lnbmluZy1jb25maWc6KD88Y29kZVNpZ25pbmdDb25maWdJZD5bXjovP10rKSQvO1xuY29uc3QgRHVyYWJsZUV4ZWN1dGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpsYW1iZGE6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpmdW5jdGlvbjooPzxmdW5jdGlvbk5hbWU+W146Lz9dKyk6KD88dmVyc2lvbj5bXjovP10rKVxcL2R1cmFibGUtZXhlY3V0aW9uXFwvKD88ZXhlY3V0aW9uTmFtZT5bXjovP10rKVxcLyg/PGV4ZWN1dGlvbklkPlteOi8/XSspJC87XG5jb25zdCBFdmVudFNvdXJjZU1hcHBpbmdBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6bGFtYmRhOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZXZlbnQtc291cmNlLW1hcHBpbmc6KD88dXVpZD5bXjovP10rKSQvO1xuY29uc3QgRnVuY3Rpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6bGFtYmRhOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZnVuY3Rpb246KD88ZnVuY3Rpb25OYW1lPlteOi8/XSspJC87XG5jb25zdCBGdW5jdGlvbkFsaWFzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmxhbWJkYTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmZ1bmN0aW9uOig/PGZ1bmN0aW9uTmFtZT5bXjovP10rKTooPzxhbGlhcz5bXjovP10rKSQvO1xuY29uc3QgRnVuY3Rpb25WZXJzaW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmxhbWJkYTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmZ1bmN0aW9uOig/PGZ1bmN0aW9uTmFtZT5bXjovP10rKTooPzx2ZXJzaW9uPlteOi8/XSspJC87XG5jb25zdCBMYXllckFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpsYW1iZGE6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpsYXllcjooPzxsYXllck5hbWU+W146Lz9dKykkLztcbmNvbnN0IExheWVyVmVyc2lvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpsYW1iZGE6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpsYXllcjooPzxsYXllck5hbWU+W146Lz9dKyk6KD88bGF5ZXJWZXJzaW9uPlteOi8/XSspJC87XG5jb25zdCBNaWNyb3ZtSW1hZ2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6bGFtYmRhOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6bWljcm92bS1pbWFnZTooPzxtaWNyb3ZtSW1hZ2VOYW1lPlteOi8/XSspJC87XG5jb25zdCBOZXR3b3JrQ29ubmVjdG9yQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmxhbWJkYTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOm5ldHdvcmstY29ubmVjdG9yOig/PG5ldHdvcmtDb25uZWN0b3JJZD5bXjovP10rKSQvO1xuXG4vKipcbiAqIEFSTiBidWlsZGVycywgdmFsaWRhdG9ycywgYW5kIHBhcnNlcnMgZm9yIGxhbWJkYSByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBMYW1iZGFSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNhcGFjaXR5UHJvdmlkZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY2FwYWNpdHlQcm92aWRlcihwcm9wczogTGFtYmRhQ2FwYWNpdHlQcm92aWRlckFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpsYW1iZGE6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06Y2FwYWNpdHktcHJvdmlkZXI6JHtwcm9wcy5jYXBhY2l0eVByb3ZpZGVyTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY2FwYWNpdHlQcm92aWRlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ2FwYWNpdHlQcm92aWRlckFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDYXBhY2l0eVByb3ZpZGVyQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNhcGFjaXR5UHJvdmlkZXIgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ2FwYWNpdHlQcm92aWRlckFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogTGFtYmRhQ2FwYWNpdHlQcm92aWRlckFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ2FwYWNpdHlQcm92aWRlckFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjYXBhY2l0eVByb3ZpZGVyIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNhcGFjaXR5UHJvdmlkZXJOYW1lOiBtYXRjaC5ncm91cHMhLmNhcGFjaXR5UHJvdmlkZXJOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvZGUgc2lnbmluZyBjb25maWcgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29kZVNpZ25pbmdDb25maWcocHJvcHM6IExhbWJkYUNvZGVTaWduaW5nQ29uZmlnQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmxhbWJkYToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjb2RlLXNpZ25pbmctY29uZmlnOiR7cHJvcHMuY29kZVNpZ25pbmdDb25maWdJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29kZSBzaWduaW5nIGNvbmZpZyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ29kZVNpZ25pbmdDb25maWdBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29kZVNpZ25pbmdDb25maWdBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY29kZSBzaWduaW5nIGNvbmZpZyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb2RlU2lnbmluZ0NvbmZpZ0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogTGFtYmRhQ29kZVNpZ25pbmdDb25maWdBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvZGVTaWduaW5nQ29uZmlnQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvZGUgc2lnbmluZyBjb25maWcgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29kZVNpZ25pbmdDb25maWdJZDogbWF0Y2guZ3JvdXBzIS5jb2RlU2lnbmluZ0NvbmZpZ0lkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGR1cmFibGUgZXhlY3V0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGR1cmFibGVFeGVjdXRpb24ocHJvcHM6IExhbWJkYUR1cmFibGVFeGVjdXRpb25Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06bGFtYmRhOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmZ1bmN0aW9uOiR7cHJvcHMuZnVuY3Rpb25OYW1lfToke3Byb3BzLnZlcnNpb259L2R1cmFibGUtZXhlY3V0aW9uLyR7cHJvcHMuZXhlY3V0aW9uTmFtZX0vJHtwcm9wcy5leGVjdXRpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZHVyYWJsZSBleGVjdXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZER1cmFibGVFeGVjdXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRHVyYWJsZUV4ZWN1dGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkdXJhYmxlIGV4ZWN1dGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEdXJhYmxlRXhlY3V0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBMYW1iZGFEdXJhYmxlRXhlY3V0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEdXJhYmxlRXhlY3V0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGR1cmFibGUgZXhlY3V0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGZ1bmN0aW9uTmFtZTogbWF0Y2guZ3JvdXBzIS5mdW5jdGlvbk5hbWUsXG5cdFx0XHR2ZXJzaW9uOiBtYXRjaC5ncm91cHMhLnZlcnNpb24sXG5cdFx0XHRleGVjdXRpb25OYW1lOiBtYXRjaC5ncm91cHMhLmV4ZWN1dGlvbk5hbWUsXG5cdFx0XHRleGVjdXRpb25JZDogbWF0Y2guZ3JvdXBzIS5leGVjdXRpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBldmVudFNvdXJjZU1hcHBpbmcgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZXZlbnRTb3VyY2VNYXBwaW5nKHByb3BzOiBMYW1iZGFFdmVudFNvdXJjZU1hcHBpbmdBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06bGFtYmRhOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmV2ZW50LXNvdXJjZS1tYXBwaW5nOiR7cHJvcHMudXVpZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZXZlbnRTb3VyY2VNYXBwaW5nIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRFdmVudFNvdXJjZU1hcHBpbmdBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRXZlbnRTb3VyY2VNYXBwaW5nQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGV2ZW50U291cmNlTWFwcGluZyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VFdmVudFNvdXJjZU1hcHBpbmdBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IExhbWJkYUV2ZW50U291cmNlTWFwcGluZ0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRXZlbnRTb3VyY2VNYXBwaW5nQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGV2ZW50U291cmNlTWFwcGluZyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHR1dWlkOiBtYXRjaC5ncm91cHMhLnV1aWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZnVuY3Rpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZnVuY3Rpb24ocHJvcHM6IExhbWJkYUZ1bmN0aW9uQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmxhbWJkYToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpmdW5jdGlvbjoke3Byb3BzLmZ1bmN0aW9uTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZnVuY3Rpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEZ1bmN0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEZ1bmN0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGZ1bmN0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUZ1bmN0aW9uQXJuKGFybjogc3RyaW5nKTogTGFtYmRhRnVuY3Rpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEZ1bmN0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGZ1bmN0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGZ1bmN0aW9uTmFtZTogbWF0Y2guZ3JvdXBzIS5mdW5jdGlvbk5hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZnVuY3Rpb24gYWxpYXMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZnVuY3Rpb25BbGlhcyhwcm9wczogTGFtYmRhRnVuY3Rpb25BbGlhc0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpsYW1iZGE6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZnVuY3Rpb246JHtwcm9wcy5mdW5jdGlvbk5hbWV9OiR7cHJvcHMuYWxpYXN9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGZ1bmN0aW9uIGFsaWFzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRGdW5jdGlvbkFsaWFzQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEZ1bmN0aW9uQWxpYXNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZnVuY3Rpb24gYWxpYXMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRnVuY3Rpb25BbGlhc0Fybihhcm46IHN0cmluZyk6IExhbWJkYUZ1bmN0aW9uQWxpYXNBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEZ1bmN0aW9uQWxpYXNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZnVuY3Rpb24gYWxpYXMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZnVuY3Rpb25OYW1lOiBtYXRjaC5ncm91cHMhLmZ1bmN0aW9uTmFtZSxcblx0XHRcdGFsaWFzOiBtYXRjaC5ncm91cHMhLmFsaWFzLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGZ1bmN0aW9uIHZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZnVuY3Rpb25WZXJzaW9uKHByb3BzOiBMYW1iZGFGdW5jdGlvblZlcnNpb25Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06bGFtYmRhOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmZ1bmN0aW9uOiR7cHJvcHMuZnVuY3Rpb25OYW1lfToke3Byb3BzLnZlcnNpb259YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGZ1bmN0aW9uIHZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEZ1bmN0aW9uVmVyc2lvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBGdW5jdGlvblZlcnNpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZnVuY3Rpb24gdmVyc2lvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VGdW5jdGlvblZlcnNpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IExhbWJkYUZ1bmN0aW9uVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRnVuY3Rpb25WZXJzaW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGZ1bmN0aW9uIHZlcnNpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZnVuY3Rpb25OYW1lOiBtYXRjaC5ncm91cHMhLmZ1bmN0aW9uTmFtZSxcblx0XHRcdHZlcnNpb246IG1hdGNoLmdyb3VwcyEudmVyc2lvbixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBsYXllciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBsYXllcihwcm9wczogTGFtYmRhTGF5ZXJBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06bGFtYmRhOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmxheWVyOiR7cHJvcHMubGF5ZXJOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBsYXllciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkTGF5ZXJBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTGF5ZXJBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgbGF5ZXIgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlTGF5ZXJBcm4oYXJuOiBzdHJpbmcpOiBMYW1iZGFMYXllckFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gTGF5ZXJBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbGF5ZXIgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0bGF5ZXJOYW1lOiBtYXRjaC5ncm91cHMhLmxheWVyTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBsYXllclZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgbGF5ZXJWZXJzaW9uKHByb3BzOiBMYW1iZGFMYXllclZlcnNpb25Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06bGFtYmRhOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmxheWVyOiR7cHJvcHMubGF5ZXJOYW1lfToke3Byb3BzLmxheWVyVmVyc2lvbn1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgbGF5ZXJWZXJzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRMYXllclZlcnNpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTGF5ZXJWZXJzaW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGxheWVyVmVyc2lvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VMYXllclZlcnNpb25Bcm4oYXJuOiBzdHJpbmcpOiBMYW1iZGFMYXllclZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IExheWVyVmVyc2lvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBsYXllclZlcnNpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0bGF5ZXJOYW1lOiBtYXRjaC5ncm91cHMhLmxheWVyTmFtZSxcblx0XHRcdGxheWVyVmVyc2lvbjogbWF0Y2guZ3JvdXBzIS5sYXllclZlcnNpb24sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgbWljcm92bUltYWdlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIG1pY3Jvdm1JbWFnZShwcm9wczogTGFtYmRhTWljcm92bUltYWdlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmxhbWJkYToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTptaWNyb3ZtLWltYWdlOiR7cHJvcHMubWljcm92bUltYWdlTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgbWljcm92bUltYWdlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRNaWNyb3ZtSW1hZ2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTWljcm92bUltYWdlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIG1pY3Jvdm1JbWFnZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VNaWNyb3ZtSW1hZ2VBcm4oYXJuOiBzdHJpbmcpOiBMYW1iZGFNaWNyb3ZtSW1hZ2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IE1pY3Jvdm1JbWFnZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBtaWNyb3ZtSW1hZ2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0bWljcm92bUltYWdlTmFtZTogbWF0Y2guZ3JvdXBzIS5taWNyb3ZtSW1hZ2VOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIG5ldHdvcmtDb25uZWN0b3IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgbmV0d29ya0Nvbm5lY3Rvcihwcm9wczogTGFtYmRhTmV0d29ya0Nvbm5lY3RvckFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpsYW1iZGE6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06bmV0d29yay1jb25uZWN0b3I6JHtwcm9wcy5uZXR3b3JrQ29ubmVjdG9ySWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIG5ldHdvcmtDb25uZWN0b3IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZE5ldHdvcmtDb25uZWN0b3JBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTmV0d29ya0Nvbm5lY3RvckFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBuZXR3b3JrQ29ubmVjdG9yIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZU5ldHdvcmtDb25uZWN0b3JBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IExhbWJkYU5ldHdvcmtDb25uZWN0b3JBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IE5ldHdvcmtDb25uZWN0b3JBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbmV0d29ya0Nvbm5lY3RvciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRuZXR3b3JrQ29ubmVjdG9ySWQ6IG1hdGNoLmdyb3VwcyEubmV0d29ya0Nvbm5lY3RvcklkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGxhbWJkYS5cbiAqL1xuZXhwb3J0IGNsYXNzIExhbWJkYU9wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBZGRFdmVudFNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFkZEV2ZW50U291cmNlOiBzdHJpbmdbXSA9IFtcImlhbTpQYXNzUm9sZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFkZExheWVyVmVyc2lvblBlcm1pc3Npb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkFkZExheWVyVmVyc2lvblBlcm1pc3Npb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQWRkUGVybWlzc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFkZFBlcm1pc3Npb246IHN0cmluZ1tdID0gW1wibGFtYmRhOkFkZFBlcm1pc3Npb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENoZWNrcG9pbnREdXJhYmxlRXhlY3V0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkNoZWNrcG9pbnREdXJhYmxlRXhlY3V0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUFsaWFzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQWxpYXM6IHN0cmluZ1tdID0gW1wibGFtYmRhOkNyZWF0ZUFsaWFzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDYXBhY2l0eVByb3ZpZGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2FwYWNpdHlQcm92aWRlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6Q3JlYXRlQ2FwYWNpdHlQcm92aWRlclwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJsYW1iZGE6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ29kZVNpZ25pbmdDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6Q3JlYXRlQ29kZVNpZ25pbmdDb25maWdcIixcblx0XHRcImxhbWJkYTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkNyZWF0ZUV2ZW50U291cmNlTWFwcGluZ1wiLFxuXHRcdFwibGFtYmRhOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUZ1bmN0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRnVuY3Rpb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkNyZWF0ZUZ1bmN0aW9uXCIsXG5cdFx0XCJsYW1iZGE6R2V0TGF5ZXJWZXJzaW9uXCIsXG5cdFx0XCJsYW1iZGE6UGFzc0NhcGFjaXR5UHJvdmlkZXJcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwibGFtYmRhOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkNyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZU1pY3Jvdm1BdXRoVG9rZW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVNaWNyb3ZtQXV0aFRva2VuOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpDcmVhdGVNaWNyb3ZtQXV0aFRva2VuXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZU1pY3Jvdm1JbWFnZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU1pY3Jvdm1JbWFnZTogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6Q3JlYXRlTWljcm92bUltYWdlXCIsXG5cdFx0XCJsYW1iZGE6UGFzc05ldHdvcmtDb25uZWN0b3JcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwibGFtYmRhOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZU1pY3Jvdm1TaGVsbEF1dGhUb2tlbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU1pY3Jvdm1TaGVsbEF1dGhUb2tlbjogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6Q3JlYXRlTWljcm92bVNoZWxsQXV0aFRva2VuXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZU5ldHdvcmtDb25uZWN0b3IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVOZXR3b3JrQ29ubmVjdG9yOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpDcmVhdGVOZXR3b3JrQ29ubmVjdG9yXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImxhbWJkYTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVBbGlhcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUFsaWFzOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpEZWxldGVBbGlhc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ2FwYWNpdHlQcm92aWRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNhcGFjaXR5UHJvdmlkZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkRlbGV0ZUNhcGFjaXR5UHJvdmlkZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ29kZVNpZ25pbmdDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6RGVsZXRlQ29kZVNpZ25pbmdDb25maWdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRnVuY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvbjogc3RyaW5nW10gPSBbXCJsYW1iZGE6RGVsZXRlRnVuY3Rpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRnVuY3Rpb25VcmxDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkRlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUxheWVyVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUxheWVyVmVyc2lvbjogc3RyaW5nW10gPSBbXCJsYW1iZGE6RGVsZXRlTGF5ZXJWZXJzaW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVNaWNyb3ZtSW1hZ2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVNaWNyb3ZtSW1hZ2U6IHN0cmluZ1tdID0gW1wibGFtYmRhOkRlbGV0ZU1pY3Jvdm1JbWFnZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTWljcm92bUltYWdlVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZU1pY3Jvdm1JbWFnZVZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkRlbGV0ZU1pY3Jvdm1JbWFnZVZlcnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTmV0d29ya0Nvbm5lY3RvciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZU5ldHdvcmtDb25uZWN0b3I6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkRlbGV0ZU5ldHdvcmtDb25uZWN0b3JcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkRlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0QWNjb3VudFNldHRpbmdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRBY2NvdW50U2V0dGluZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldEFjY291bnRTZXR0aW5nc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRBbGlhcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0QWxpYXM6IHN0cmluZ1tdID0gW1wibGFtYmRhOkdldEFsaWFzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDYXBhY2l0eVByb3ZpZGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDYXBhY2l0eVByb3ZpZGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpHZXRDYXBhY2l0eVByb3ZpZGVyXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvZGVTaWduaW5nQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDb2RlU2lnbmluZ0NvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6R2V0Q29kZVNpZ25pbmdDb25maWdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RHVyYWJsZUV4ZWN1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RHVyYWJsZUV4ZWN1dGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6R2V0RHVyYWJsZUV4ZWN1dGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3Rvcnk6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldER1cmFibGVFeGVjdXRpb25TdGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RXZlbnRTb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEV2ZW50U291cmNlOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRFdmVudFNvdXJjZU1hcHBpbmcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEV2ZW50U291cmNlTWFwcGluZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6R2V0RXZlbnRTb3VyY2VNYXBwaW5nXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEZ1bmN0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRGdW5jdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6R2V0RnVuY3Rpb25cIixcblx0XHRcImxhbWJkYTpMaXN0VGFnc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEZ1bmN0aW9uQ29uY3VycmVuY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEZ1bmN0aW9uQ29uY3VycmVuY3k6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldEZ1bmN0aW9uQ29uY3VycmVuY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldEZ1bmN0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6R2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRGdW5jdGlvblNjYWxpbmdDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRGdW5jdGlvblVybENvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RnVuY3Rpb25VcmxDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldEZ1bmN0aW9uVXJsQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldExheWVyVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TGF5ZXJWZXJzaW9uOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpHZXRMYXllclZlcnNpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldExheWVyVmVyc2lvbkJ5QXJuIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRMYXllclZlcnNpb25CeUFybjogc3RyaW5nW10gPSBbXCJsYW1iZGE6R2V0TGF5ZXJWZXJzaW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRMYXllclZlcnNpb25Qb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldExheWVyVmVyc2lvblBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6R2V0TGF5ZXJWZXJzaW9uUG9saWN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldE1pY3Jvdm0gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE1pY3Jvdm06IHN0cmluZ1tdID0gW1wibGFtYmRhOkdldE1pY3Jvdm1cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldE1pY3Jvdm1JbWFnZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TWljcm92bUltYWdlOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpHZXRNaWNyb3ZtSW1hZ2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldE1pY3Jvdm1JbWFnZUJ1aWxkIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRNaWNyb3ZtSW1hZ2VCdWlsZDogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6R2V0TWljcm92bUltYWdlQnVpbGRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TWljcm92bUltYWdlVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TWljcm92bUltYWdlVmVyc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6R2V0TWljcm92bUltYWdlVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXROZXR3b3JrQ29ubmVjdG9yIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXROZXR3b3JrQ29ubmVjdG9yOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpHZXROZXR3b3JrQ29ubmVjdG9yXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UG9saWN5OiBzdHJpbmdbXSA9IFtcImxhbWJkYTpHZXRQb2xpY3lcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbnZva2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBJbnZva2U6IHN0cmluZ1tdID0gW1wibGFtYmRhOkludm9rZUZ1bmN0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbnZva2VBc3luYyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEludm9rZUFzeW5jOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpJbnZva2VBc3luY1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpJbnZva2VGdW5jdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QWxpYXNlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBbGlhc2VzOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpMaXN0QWxpYXNlc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENhcGFjaXR5UHJvdmlkZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENhcGFjaXR5UHJvdmlkZXJzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0Q2FwYWNpdHlQcm92aWRlcnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENvZGVTaWduaW5nQ29uZmlncyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb2RlU2lnbmluZ0NvbmZpZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkxpc3RDb2RlU2lnbmluZ0NvbmZpZ3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkxpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEV2ZW50U291cmNlTWFwcGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nczogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6TGlzdEV2ZW50U291cmNlTWFwcGluZ3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEV2ZW50U291cmNlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFdmVudFNvdXJjZXM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlncyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnczogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6TGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RGdW5jdGlvblVybENvbmZpZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RnVuY3Rpb25VcmxDb25maWdzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0RnVuY3Rpb25VcmxDb25maWdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkxpc3RGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RGdW5jdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RnVuY3Rpb25zOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpMaXN0RnVuY3Rpb25zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0TGF5ZXJWZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMYXllclZlcnNpb25zOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpMaXN0TGF5ZXJWZXJzaW9uc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdExheWVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMYXllcnM6IHN0cmluZ1tdID0gW1wibGFtYmRhOkxpc3RMYXllcnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNYW5hZ2VkTWljcm92bUltYWdlVmVyc2lvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWFuYWdlZE1pY3Jvdm1JbWFnZVZlcnNpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0TWFuYWdlZE1pY3Jvdm1JbWFnZVZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNYW5hZ2VkTWljcm92bUltYWdlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNYW5hZ2VkTWljcm92bUltYWdlczogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6TGlzdE1hbmFnZWRNaWNyb3ZtSW1hZ2VzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNaWNyb3ZtSW1hZ2VCdWlsZHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWljcm92bUltYWdlQnVpbGRzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0TWljcm92bUltYWdlQnVpbGRzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNaWNyb3ZtSW1hZ2VWZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNaWNyb3ZtSW1hZ2VWZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6TGlzdE1pY3Jvdm1JbWFnZVZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNaWNyb3ZtSW1hZ2VzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1pY3Jvdm1JbWFnZXM6IHN0cmluZ1tdID0gW1wibGFtYmRhOkxpc3RNaWNyb3ZtSW1hZ2VzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0TWljcm92bXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWljcm92bXM6IHN0cmluZ1tdID0gW1wibGFtYmRhOkxpc3RNaWNyb3Ztc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdE5ldHdvcmtDb25uZWN0b3JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE5ldHdvcmtDb25uZWN0b3JzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0TmV0d29ya0Nvbm5lY3RvcnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRhZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnczogc3RyaW5nW10gPSBbXCJsYW1iZGE6TGlzdFRhZ3NcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RWZXJzaW9uc0J5RnVuY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1Ymxpc2hMYXllclZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdWJsaXNoTGF5ZXJWZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpQdWJsaXNoTGF5ZXJWZXJzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1Ymxpc2hWZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHVibGlzaFZlcnNpb246IHN0cmluZ1tdID0gW1wibGFtYmRhOlB1Ymxpc2hWZXJzaW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6UHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RnVuY3Rpb25Db25jdXJyZW5jeTogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6UHV0RnVuY3Rpb25Db25jdXJyZW5jeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6UHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRGdW5jdGlvblNjYWxpbmdDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRGdW5jdGlvblNjYWxpbmdDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOlB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6UHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZW1vdmVFdmVudFNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlbW92ZUV2ZW50U291cmNlOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6UmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZW1vdmVQZXJtaXNzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVtb3ZlUGVybWlzc2lvbjogc3RyaW5nW10gPSBbXCJsYW1iZGE6UmVtb3ZlUGVybWlzc2lvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmVzdW1lTWljcm92bSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlc3VtZU1pY3Jvdm06IHN0cmluZ1tdID0gW1wibGFtYmRhOlJlc3VtZU1pY3Jvdm1cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJ1bk1pY3Jvdm0gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSdW5NaWNyb3ZtOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpQYXNzTmV0d29ya0Nvbm5lY3RvclwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJsYW1iZGE6UnVuTWljcm92bVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tGYWlsdXJlOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0hlYXJ0YmVhdDogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6U2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0hlYXJ0YmVhdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2VzcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tTdWNjZXNzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wRHVyYWJsZUV4ZWN1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BEdXJhYmxlRXhlY3V0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpTdG9wRHVyYWJsZUV4ZWN1dGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdXNwZW5kTWljcm92bSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1c3BlbmRNaWNyb3ZtOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpTdXNwZW5kTWljcm92bVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJsYW1iZGE6VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRlcm1pbmF0ZU1pY3Jvdm0gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBUZXJtaW5hdGVNaWNyb3ZtOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpUZXJtaW5hdGVNaWNyb3ZtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVbnRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJsYW1iZGE6VW50YWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQWxpYXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBbGlhczogc3RyaW5nW10gPSBbXCJsYW1iZGE6VXBkYXRlQWxpYXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNhcGFjaXR5UHJvdmlkZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDYXBhY2l0eVByb3ZpZGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpVcGRhdGVDYXBhY2l0eVByb3ZpZGVyXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ29kZVNpZ25pbmdDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOlVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6VXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUZ1bmN0aW9uQ29kZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZ1bmN0aW9uQ29kZTogc3RyaW5nW10gPSBbXCJsYW1iZGE6VXBkYXRlRnVuY3Rpb25Db2RlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldExheWVyVmVyc2lvblwiLFxuXHRcdFwibGFtYmRhOlBhc3NDYXBhY2l0eVByb3ZpZGVyXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImxhbWJkYTpVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOlVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRnVuY3Rpb25VcmxDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGdW5jdGlvblVybENvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6VXBkYXRlRnVuY3Rpb25VcmxDb25maWdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTWljcm92bUltYWdlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTWljcm92bUltYWdlOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpQYXNzTmV0d29ya0Nvbm5lY3RvclwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJsYW1iZGE6VXBkYXRlTWljcm92bUltYWdlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZU1pY3Jvdm1JbWFnZVZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVNaWNyb3ZtSW1hZ2VWZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpVcGRhdGVNaWNyb3ZtSW1hZ2VWZXJzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZU5ldHdvcmtDb25uZWN0b3IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVOZXR3b3JrQ29ubmVjdG9yOiBzdHJpbmdbXSA9IFtcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwibGFtYmRhOlVwZGF0ZU5ldHdvcmtDb25uZWN0b3JcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBsb2FkRnVuY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGxvYWRGdW5jdGlvbjogc3RyaW5nW10gPSBbXTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGxhbWJkYS5cbiAqL1xuZXhwb3J0IGNsYXNzIExhbWJkYUNvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQWRkUGVybWlzc2lvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBBZGRQZXJtaXNzaW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6RnVuY3Rpb25VcmxBdXRoVHlwZVwiLFxuXHRcdFwibGFtYmRhOlByaW5jaXBhbFwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ2FwYWNpdHlQcm92aWRlciBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDYXBhY2l0eVByb3ZpZGVyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJsYW1iZGE6U2VjdXJpdHlHcm91cElkc1wiLFxuXHRcdFwibGFtYmRhOlN1Ym5ldElkc1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ29kZVNpZ25pbmdDb25maWcgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcImxhbWJkYTpGdW5jdGlvbkFyblwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRnVuY3Rpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRnVuY3Rpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcImxhbWJkYTpDb2RlU2lnbmluZ0NvbmZpZ0FyblwiLFxuXHRcdFwibGFtYmRhOkxheWVyXCIsXG5cdFx0XCJsYW1iZGE6U2VjdXJpdHlHcm91cElkc1wiLFxuXHRcdFwibGFtYmRhOlN1Ym5ldElkc1wiLFxuXHRcdFwibGFtYmRhOlZwY0lkc1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWcgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpGdW5jdGlvbkFyblwiLFxuXHRcdFwibGFtYmRhOkZ1bmN0aW9uVXJsQXV0aFR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZU1pY3Jvdm1JbWFnZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVNaWNyb3ZtSW1hZ2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZU5ldHdvcmtDb25uZWN0b3IgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTmV0d29ya0Nvbm5lY3RvckNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRcdFwibGFtYmRhOlNlY3VyaXR5R3JvdXBJZHNcIixcblx0XHRcImxhbWJkYTpTdWJuZXRJZHNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpGdW5jdGlvbkFyblwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgRGVsZXRlRnVuY3Rpb25VcmxDb25maWcgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpGdW5jdGlvbkFyblwiLFxuXHRcdFwibGFtYmRhOkZ1bmN0aW9uVXJsQXV0aFR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldEV2ZW50U291cmNlTWFwcGluZyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRFdmVudFNvdXJjZU1hcHBpbmdDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpGdW5jdGlvbkFyblwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgR2V0RnVuY3Rpb25VcmxDb25maWcgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RnVuY3Rpb25VcmxDb25maWdDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpGdW5jdGlvbkFyblwiLFxuXHRcdFwibGFtYmRhOkZ1bmN0aW9uVXJsQXV0aFR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEludm9rZUZ1bmN0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEludm9rZUZ1bmN0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6RXZlbnRTb3VyY2VUb2tlblwiLFxuXHRcdFwibGFtYmRhOkludm9rZWRWaWFGdW5jdGlvblVybFwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgSW52b2tlRnVuY3Rpb25VcmwgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW52b2tlRnVuY3Rpb25VcmxDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpFdmVudFNvdXJjZVRva2VuXCIsXG5cdFx0XCJsYW1iZGE6RnVuY3Rpb25Bcm5cIixcblx0XHRcImxhbWJkYTpGdW5jdGlvblVybEF1dGhUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBMaXN0RnVuY3Rpb25VcmxDb25maWdzIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGdW5jdGlvblVybENvbmZpZ3NDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpGdW5jdGlvblVybEF1dGhUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpDb2RlU2lnbmluZ0NvbmZpZ0FyblwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgUmVtb3ZlUGVybWlzc2lvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBSZW1vdmVQZXJtaXNzaW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6RnVuY3Rpb25VcmxBdXRoVHlwZVwiLFxuXHRcdFwibGFtYmRhOlByaW5jaXBhbFwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVudGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1wiYXdzOlRhZ0tleXNcIl07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmcgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6RnVuY3Rpb25Bcm5cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMYXllclwiLFxuXHRcdFwibGFtYmRhOlNlY3VyaXR5R3JvdXBJZHNcIixcblx0XHRcImxhbWJkYTpTdWJuZXRJZHNcIixcblx0XHRcImxhbWJkYTpWcGNJZHNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6RnVuY3Rpb25Bcm5cIixcblx0XHRcImxhbWJkYTpGdW5jdGlvblVybEF1dGhUeXBlXCIsXG5cdF07XG5cblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFUVVFU1RfVEFHID0gXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVNPVVJDRV9UQUcgPSBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1RBR19LRVlTID0gXCJhd3M6VGFnS2V5c1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogbGFtYmRhOkNvZGVTaWduaW5nQ29uZmlnQXJuIChBUk4pICovXG5cdHN0YXRpYyByZWFkb25seSBDT0RFX1NJR05JTkdfQ09ORklHX0FSTiA9IFwibGFtYmRhOkNvZGVTaWduaW5nQ29uZmlnQXJuXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBsYW1iZGE6RXZlbnRTb3VyY2VUb2tlbiAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRVZFTlRfU09VUkNFX1RPS0VOID0gXCJsYW1iZGE6RXZlbnRTb3VyY2VUb2tlblwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogbGFtYmRhOkZ1bmN0aW9uQXJuIChBUk4pICovXG5cdHN0YXRpYyByZWFkb25seSBGVU5DVElPTl9BUk4gPSBcImxhbWJkYTpGdW5jdGlvbkFyblwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogbGFtYmRhOkZ1bmN0aW9uVXJsQXV0aFR5cGUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEZVTkNUSU9OX1VSTF9BVVRIX1RZUEUgPSBcImxhbWJkYTpGdW5jdGlvblVybEF1dGhUeXBlXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBsYW1iZGE6SW52b2tlZFZpYUZ1bmN0aW9uVXJsIChCb29sKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSU5WT0tFRF9WSUFfRlVOQ1RJT05fVVJMID0gXCJsYW1iZGE6SW52b2tlZFZpYUZ1bmN0aW9uVXJsXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBsYW1iZGE6TGF5ZXIgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBMQVlFUiA9IFwibGFtYmRhOkxheWVyXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBsYW1iZGE6UHJpbmNpcGFsIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBQUklOQ0lQQUwgPSBcImxhbWJkYTpQcmluY2lwYWxcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGxhbWJkYTpTZWN1cml0eUdyb3VwSWRzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0VDVVJJVFlfR1JPVVBfSURTID0gXCJsYW1iZGE6U2VjdXJpdHlHcm91cElkc1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogbGFtYmRhOlNvdXJjZUZ1bmN0aW9uQXJuIChBUk4pICovXG5cdHN0YXRpYyByZWFkb25seSBTT1VSQ0VfRlVOQ1RJT05fQVJOID0gXCJsYW1iZGE6U291cmNlRnVuY3Rpb25Bcm5cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGxhbWJkYTpTdWJuZXRJZHMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBTVUJORVRfSURTID0gXCJsYW1iZGE6U3VibmV0SWRzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBsYW1iZGE6VnBjSWRzIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBWUENfSURTID0gXCJsYW1iZGE6VnBjSWRzXCI7XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVxdWVzdFRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVzb3VyY2VUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6VGFnS2V5c2AuXG5cdCAqL1xuXHRzdGF0aWMgdGFnS2V5cyh2YWx1ZXM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJhd3M6VGFnS2V5c1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGxhbWJkYTpDb2RlU2lnbmluZ0NvbmZpZ0FybmAuXG5cdCAqL1xuXHRzdGF0aWMgY29kZVNpZ25pbmdDb25maWdBUk4oXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IEFybkVxdWFsczogeyBcImxhbWJkYTpDb2RlU2lnbmluZ0NvbmZpZ0FyblwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgbGFtYmRhOkV2ZW50U291cmNlVG9rZW5gLlxuXHQgKi9cblx0c3RhdGljIGV2ZW50U291cmNlVG9rZW4oXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImxhbWJkYTpFdmVudFNvdXJjZVRva2VuXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBsYW1iZGE6RnVuY3Rpb25Bcm5gLlxuXHQgKi9cblx0c3RhdGljIGZ1bmN0aW9uQVJOKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgQXJuRXF1YWxzOiB7IFwibGFtYmRhOkZ1bmN0aW9uQXJuXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBsYW1iZGE6RnVuY3Rpb25VcmxBdXRoVHlwZWAuXG5cdCAqL1xuXHRzdGF0aWMgZnVuY3Rpb25VUkxBdXRoVHlwZShcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwibGFtYmRhOkZ1bmN0aW9uVXJsQXV0aFR5cGVcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGxhbWJkYTpJbnZva2VkVmlhRnVuY3Rpb25VcmxgLlxuXHQgKi9cblx0c3RhdGljIGludm9rZWRWaWFGdW5jdGlvblVSTChcblx0XHR2YWx1ZTogYm9vbGVhbixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4geyBCb29sOiB7IFwibGFtYmRhOkludm9rZWRWaWFGdW5jdGlvblVybFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgbGFtYmRhOkxheWVyYC5cblx0ICovXG5cdHN0YXRpYyBsYXllcih2YWx1ZXM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJsYW1iZGE6TGF5ZXJcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBsYW1iZGE6UHJpbmNpcGFsYC5cblx0ICovXG5cdHN0YXRpYyBwcmluY2lwYWwodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJsYW1iZGE6UHJpbmNpcGFsXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBsYW1iZGE6U2VjdXJpdHlHcm91cElkc2AuXG5cdCAqL1xuXHRzdGF0aWMgc2VjdXJpdHlHcm91cElkcyhcblx0XHR2YWx1ZXM6IHN0cmluZ1tdLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0XCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJsYW1iZGE6U2VjdXJpdHlHcm91cElkc1wiOiB2YWx1ZXMgfSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGxhbWJkYTpTb3VyY2VGdW5jdGlvbkFybmAuXG5cdCAqL1xuXHRzdGF0aWMgc291cmNlRnVuY3Rpb25BUk4oXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IEFybkVxdWFsczogeyBcImxhbWJkYTpTb3VyY2VGdW5jdGlvbkFyblwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgbGFtYmRhOlN1Ym5ldElkc2AuXG5cdCAqL1xuXHRzdGF0aWMgc3VibmV0SWRzKHZhbHVlczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImxhbWJkYTpTdWJuZXRJZHNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBsYW1iZGE6VnBjSWRzYC5cblx0ICovXG5cdHN0YXRpYyB2cGNJZHModmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJsYW1iZGE6VnBjSWRzXCI6IHZhbHVlIH0gfTtcblx0fVxufVxuIl19
1412
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9sYW1iZGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCw2Q0FBNkM7QUFDN0Msb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsYUFBYTs7QUFBMUIsc0NBK1pDOzs7QUE5WkEsOEJBQThCO0FBQ2QsNEJBQWMsR0FBRyxRQUFRLENBQUM7QUFFMUMsOERBQThEO0FBQzlDLHVDQUF5QixHQUN4QyxrQ0FBa0MsQ0FBQztBQUNwQyxrREFBa0Q7QUFDbEMsMkJBQWEsR0FBRyxzQkFBc0IsQ0FBQztBQUN2RCxnREFBZ0Q7QUFDaEMsd0NBQTBCLEdBQ3pDLG1DQUFtQyxDQUFDO0FBQ3JDLG9DQUFvQztBQUNwQiw0QkFBYyxHQUFHLHVCQUF1QixDQUFDO0FBQ3pELGlDQUFpQztBQUNqQix5QkFBVyxHQUFHLG9CQUFvQixDQUFDO0FBQ25ELDRDQUE0QztBQUM1QixvQ0FBc0IsR0FBRywrQkFBK0IsQ0FBQztBQUN6RSw2Q0FBNkM7QUFDN0IscUNBQXVCLEdBQUcsZ0NBQWdDLENBQUM7QUFDM0UsOENBQThDO0FBQzlCLHNDQUF3QixHQUFHLGlDQUFpQyxDQUFDO0FBQzdFLG9DQUFvQztBQUNwQiw0QkFBYyxHQUFHLHVCQUF1QixDQUFDO0FBQ3pELDZDQUE2QztBQUM3QixxQ0FBdUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUMzRSw0Q0FBNEM7QUFDNUIsb0NBQXNCLEdBQUcsK0JBQStCLENBQUM7QUFDekUsd0NBQXdDO0FBQ3hCLGdDQUFrQixHQUFHLDJCQUEyQixDQUFDO0FBQ2pFLGlEQUFpRDtBQUNqQyx5Q0FBMkIsR0FDMUMsb0NBQW9DLENBQUM7QUFDdEMsNENBQTRDO0FBQzVCLG9DQUFzQixHQUFHLCtCQUErQixDQUFDO0FBQ3pFLGlD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eURBQXlEO0FBQ3pDLHlDQUF3QixHQUFHLDhCQUE4QixDQUFDO0FBQzFFLGtEQUFrRDtBQUNsQyxzQkFBSyxHQUFHLGNBQWMsQ0FBQztBQUN2QywrQ0FBK0M7QUFDL0IsMEJBQVMsR0FBRyxrQkFBa0IsQ0FBQztBQUMvQyw2REFBNkQ7QUFDN0MsbUNBQWtCLEdBQUcseUJBQXlCLENBQUM7QUFDL0Qsb0RBQW9EO0FBQ3BDLG9DQUFtQixHQUFHLDBCQUEwQixDQUFDO0FBQ2pFLHNEQUFzRDtBQUN0QywyQkFBVSxHQUFHLGtCQUFrQixDQUFDO0FBQ2hELDRDQUE0QztBQUM1Qix3QkFBTyxHQUFHLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL2xhbWJkYS5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgbGFtYmRhIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBMYW1iZGFBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwibGFtYmRhXCI7XG5cblx0LyoqIFtQZXJtaXNzaW9uTWFuYWdlbWVudF0gbGFtYmRhOkFkZExheWVyVmVyc2lvblBlcm1pc3Npb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFkZExheWVyVmVyc2lvblBlcm1pc3Npb24gPVxuXHRcdFwibGFtYmRhOkFkZExheWVyVmVyc2lvblBlcm1pc3Npb25cIjtcblx0LyoqIFtQZXJtaXNzaW9uTWFuYWdlbWVudF0gbGFtYmRhOkFkZFBlcm1pc3Npb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFkZFBlcm1pc3Npb24gPSBcImxhbWJkYTpBZGRQZXJtaXNzaW9uXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpDaGVja3BvaW50RHVyYWJsZUV4ZWN1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb24gPVxuXHRcdFwibGFtYmRhOkNoZWNrcG9pbnREdXJhYmxlRXhlY3V0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpDb25uZWN0TWljcm92bSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ29ubmVjdE1pY3Jvdm0gPSBcImxhbWJkYTpDb25uZWN0TWljcm92bVwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6Q3JlYXRlQWxpYXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUFsaWFzID0gXCJsYW1iZGE6Q3JlYXRlQWxpYXNcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkNyZWF0ZUNhcGFjaXR5UHJvdmlkZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNhcGFjaXR5UHJvdmlkZXIgPSBcImxhbWJkYTpDcmVhdGVDYXBhY2l0eVByb3ZpZGVyXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29kZVNpZ25pbmdDb25maWcgPSBcImxhbWJkYTpDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6Q3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmcgPSBcImxhbWJkYTpDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkNyZWF0ZUZ1bmN0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVGdW5jdGlvbiA9IFwibGFtYmRhOkNyZWF0ZUZ1bmN0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpDcmVhdGVGdW5jdGlvblVybENvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWcgPSBcImxhbWJkYTpDcmVhdGVGdW5jdGlvblVybENvbmZpZ1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6Q3JlYXRlTWljcm92bUF1dGhUb2tlbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTWljcm92bUF1dGhUb2tlbiA9IFwibGFtYmRhOkNyZWF0ZU1pY3Jvdm1BdXRoVG9rZW5cIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkNyZWF0ZU1pY3Jvdm1JbWFnZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTWljcm92bUltYWdlID0gXCJsYW1iZGE6Q3JlYXRlTWljcm92bUltYWdlXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpDcmVhdGVNaWNyb3ZtU2hlbGxBdXRoVG9rZW4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU1pY3Jvdm1TaGVsbEF1dGhUb2tlbiA9XG5cdFx0XCJsYW1iZGE6Q3JlYXRlTWljcm92bVNoZWxsQXV0aFRva2VuXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpDcmVhdGVOZXR3b3JrQ29ubmVjdG9yICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVOZXR3b3JrQ29ubmVjdG9yID0gXCJsYW1iZGE6Q3JlYXRlTmV0d29ya0Nvbm5lY3RvclwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6RGVsZXRlQWxpYXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUFsaWFzID0gXCJsYW1iZGE6RGVsZXRlQWxpYXNcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkRlbGV0ZUNhcGFjaXR5UHJvdmlkZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNhcGFjaXR5UHJvdmlkZXIgPSBcImxhbWJkYTpEZWxldGVDYXBhY2l0eVByb3ZpZGVyXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpEZWxldGVDb2RlU2lnbmluZ0NvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ29kZVNpZ25pbmdDb25maWcgPSBcImxhbWJkYTpEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6RGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmcgPSBcImxhbWJkYTpEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkRlbGV0ZUZ1bmN0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvbiA9IFwibGFtYmRhOkRlbGV0ZUZ1bmN0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnID1cblx0XHRcImxhbWJkYTpEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5ID1cblx0XHRcImxhbWJkYTpEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5XCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnID1cblx0XHRcImxhbWJkYTpEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpEZWxldGVGdW5jdGlvblVybENvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRnVuY3Rpb25VcmxDb25maWcgPSBcImxhbWJkYTpEZWxldGVGdW5jdGlvblVybENvbmZpZ1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6RGVsZXRlTGF5ZXJWZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVMYXllclZlcnNpb24gPSBcImxhbWJkYTpEZWxldGVMYXllclZlcnNpb25cIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkRlbGV0ZU1pY3Jvdm1JbWFnZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTWljcm92bUltYWdlID0gXCJsYW1iZGE6RGVsZXRlTWljcm92bUltYWdlXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpEZWxldGVNaWNyb3ZtSW1hZ2VWZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVNaWNyb3ZtSW1hZ2VWZXJzaW9uID1cblx0XHRcImxhbWJkYTpEZWxldGVNaWNyb3ZtSW1hZ2VWZXJzaW9uXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpEZWxldGVOZXR3b3JrQ29ubmVjdG9yICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVOZXR3b3JrQ29ubmVjdG9yID0gXCJsYW1iZGE6RGVsZXRlTmV0d29ya0Nvbm5lY3RvclwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6RGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyA9XG5cdFx0XCJsYW1iZGE6RGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1wiO1xuXHQvKiogW1Blcm1pc3Npb25NYW5hZ2VtZW50XSBsYW1iZGE6RGVsZXRlUmVzb3VyY2VQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlc291cmNlUG9saWN5ID0gXCJsYW1iZGE6RGVsZXRlUmVzb3VyY2VQb2xpY3lcIjtcblx0LyoqIFtQZXJtaXNzaW9uTWFuYWdlbWVudF0gbGFtYmRhOkRpc2FibGVSZXBsaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYWJsZVJlcGxpY2F0aW9uID0gXCJsYW1iZGE6RGlzYWJsZVJlcGxpY2F0aW9uXCI7XG5cdC8qKiBbUGVybWlzc2lvbk1hbmFnZW1lbnRdIGxhbWJkYTpFbmFibGVSZXBsaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRW5hYmxlUmVwbGljYXRpb24gPSBcImxhbWJkYTpFbmFibGVSZXBsaWNhdGlvblwiO1xuXHQvKiogW1JlYWRdIGxhbWJkYTpHZXRBY2NvdW50U2V0dGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFjY291bnRTZXR0aW5ncyA9IFwibGFtYmRhOkdldEFjY291bnRTZXR0aW5nc1wiO1xuXHQvKiogW1JlYWRdIGxhbWJkYTpHZXRBbGlhcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWxpYXMgPSBcImxhbWJkYTpHZXRBbGlhc1wiO1xuXHQvKiogW1JlYWRdIGxhbWJkYTpHZXRDYXBhY2l0eVByb3ZpZGVyICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDYXBhY2l0eVByb3ZpZGVyID0gXCJsYW1iZGE6R2V0Q2FwYWNpdHlQcm92aWRlclwiO1xuXHQvKiogW1JlYWRdIGxhbWJkYTpHZXRDb2RlU2lnbmluZ0NvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q29kZVNpZ25pbmdDb25maWcgPSBcImxhbWJkYTpHZXRDb2RlU2lnbmluZ0NvbmZpZ1wiO1xuXHQvKiogW1JlYWRdIGxhbWJkYTpHZXREdXJhYmxlRXhlY3V0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXREdXJhYmxlRXhlY3V0aW9uID0gXCJsYW1iZGE6R2V0RHVyYWJsZUV4ZWN1dGlvblwiO1xuXHQvKiogW1JlYWRdIGxhbWJkYTpHZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnkgPVxuXHRcdFwibGFtYmRhOkdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5XCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldER1cmFibGVFeGVjdXRpb25TdGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlID1cblx0XHRcImxhbWJkYTpHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0RXZlbnRTb3VyY2VNYXBwaW5nICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRFdmVudFNvdXJjZU1hcHBpbmcgPSBcImxhbWJkYTpHZXRFdmVudFNvdXJjZU1hcHBpbmdcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0RnVuY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEZ1bmN0aW9uID0gXCJsYW1iZGE6R2V0RnVuY3Rpb25cIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZyA9XG5cdFx0XCJsYW1iZGE6R2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1wiO1xuXHQvKiogW1JlYWRdIGxhbWJkYTpHZXRGdW5jdGlvbkNvbmN1cnJlbmN5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRGdW5jdGlvbkNvbmN1cnJlbmN5ID1cblx0XHRcImxhbWJkYTpHZXRGdW5jdGlvbkNvbmN1cnJlbmN5XCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uID1cblx0XHRcImxhbWJkYTpHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyA9XG5cdFx0XCJsYW1iZGE6R2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1wiO1xuXHQvKiogW1JlYWRdIGxhbWJkYTpHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWcgPVxuXHRcdFwibGFtYmRhOkdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnXCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnID1cblx0XHRcImxhbWJkYTpHZXRGdW5jdGlvblNjYWxpbmdDb25maWdcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0RnVuY3Rpb25VcmxDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEZ1bmN0aW9uVXJsQ29uZmlnID0gXCJsYW1iZGE6R2V0RnVuY3Rpb25VcmxDb25maWdcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0TGF5ZXJWZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRMYXllclZlcnNpb24gPSBcImxhbWJkYTpHZXRMYXllclZlcnNpb25cIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0TGF5ZXJWZXJzaW9uUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRMYXllclZlcnNpb25Qb2xpY3kgPSBcImxhbWJkYTpHZXRMYXllclZlcnNpb25Qb2xpY3lcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0TWljcm92bSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TWljcm92bSA9IFwibGFtYmRhOkdldE1pY3Jvdm1cIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0TWljcm92bUltYWdlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRNaWNyb3ZtSW1hZ2UgPSBcImxhbWJkYTpHZXRNaWNyb3ZtSW1hZ2VcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0TWljcm92bUltYWdlQnVpbGQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE1pY3Jvdm1JbWFnZUJ1aWxkID0gXCJsYW1iZGE6R2V0TWljcm92bUltYWdlQnVpbGRcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6R2V0TWljcm92bUltYWdlVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TWljcm92bUltYWdlVmVyc2lvbiA9XG5cdFx0XCJsYW1iZGE6R2V0TWljcm92bUltYWdlVmVyc2lvblwiO1xuXHQvKiogW1JlYWRdIGxhbWJkYTpHZXROZXR3b3JrQ29ubmVjdG9yICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXROZXR3b3JrQ29ubmVjdG9yID0gXCJsYW1iZGE6R2V0TmV0d29ya0Nvbm5lY3RvclwiO1xuXHQvKiogW1JlYWRdIGxhbWJkYTpHZXRQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFBvbGljeSA9IFwibGFtYmRhOkdldFBvbGljeVwiO1xuXHQvKiogW1JlYWRdIGxhbWJkYTpHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnID1cblx0XHRcImxhbWJkYTpHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnXCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldFJlc291cmNlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXNvdXJjZVBvbGljeSA9IFwibGFtYmRhOkdldFJlc291cmNlUG9saWN5XCI7XG5cdC8qKiBbUmVhZF0gbGFtYmRhOkdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZyA9XG5cdFx0XCJsYW1iZGE6R2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOkludm9rZUFzeW5jICovXG5cdHN0YXRpYyByZWFkb25seSBJbnZva2VBc3luYyA9IFwibGFtYmRhOkludm9rZUFzeW5jXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpJbnZva2VGdW5jdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW52b2tlRnVuY3Rpb24gPSBcImxhbWJkYTpJbnZva2VGdW5jdGlvblwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6SW52b2tlRnVuY3Rpb25VcmwgKi9cblx0c3RhdGljIHJlYWRvbmx5IEludm9rZUZ1bmN0aW9uVXJsID0gXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25VcmxcIjtcblx0LyoqIFtMaXN0XSBsYW1iZGE6TGlzdEFsaWFzZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBbGlhc2VzID0gXCJsYW1iZGE6TGlzdEFsaWFzZXNcIjtcblx0LyoqIFtMaXN0XSBsYW1iZGE6TGlzdENhcGFjaXR5UHJvdmlkZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2FwYWNpdHlQcm92aWRlcnMgPSBcImxhbWJkYTpMaXN0Q2FwYWNpdHlQcm92aWRlcnNcIjtcblx0LyoqIFtMaXN0XSBsYW1iZGE6TGlzdENvZGVTaWduaW5nQ29uZmlncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvZGVTaWduaW5nQ29uZmlncyA9IFwibGFtYmRhOkxpc3RDb2RlU2lnbmluZ0NvbmZpZ3NcIjtcblx0LyoqIFtMaXN0XSBsYW1iZGE6TGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvbiA9XG5cdFx0XCJsYW1iZGE6TGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvblwiO1xuXHQvKiogW0xpc3RdIGxhbWJkYTpMaXN0RXZlbnRTb3VyY2VNYXBwaW5ncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV2ZW50U291cmNlTWFwcGluZ3MgPSBcImxhbWJkYTpMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc1wiO1xuXHQvKiogW0xpc3RdIGxhbWJkYTpMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlncyA9XG5cdFx0XCJsYW1iZGE6TGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3RGdW5jdGlvblVybENvbmZpZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGdW5jdGlvblVybENvbmZpZ3MgPSBcImxhbWJkYTpMaXN0RnVuY3Rpb25VcmxDb25maWdzXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3RGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlciA9XG5cdFx0XCJsYW1iZGE6TGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJcIjtcblx0LyoqIFtMaXN0XSBsYW1iZGE6TGlzdEZ1bmN0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZ1bmN0aW9ucyA9IFwibGFtYmRhOkxpc3RGdW5jdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBsYW1iZGE6TGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnID1cblx0XHRcImxhbWJkYTpMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ1wiO1xuXHQvKiogW0xpc3RdIGxhbWJkYTpMaXN0TGF5ZXJWZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdExheWVyVmVyc2lvbnMgPSBcImxhbWJkYTpMaXN0TGF5ZXJWZXJzaW9uc1wiO1xuXHQvKiogW0xpc3RdIGxhbWJkYTpMaXN0TGF5ZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TGF5ZXJzID0gXCJsYW1iZGE6TGlzdExheWVyc1wiO1xuXHQvKiogW0xpc3RdIGxhbWJkYTpMaXN0TWFuYWdlZE1pY3Jvdm1JbWFnZVZlcnNpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWFuYWdlZE1pY3Jvdm1JbWFnZVZlcnNpb25zID1cblx0XHRcImxhbWJkYTpMaXN0TWFuYWdlZE1pY3Jvdm1JbWFnZVZlcnNpb25zXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3RNYW5hZ2VkTWljcm92bUltYWdlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1hbmFnZWRNaWNyb3ZtSW1hZ2VzID0gXCJsYW1iZGE6TGlzdE1hbmFnZWRNaWNyb3ZtSW1hZ2VzXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3RNaWNyb3ZtSW1hZ2VCdWlsZHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNaWNyb3ZtSW1hZ2VCdWlsZHMgPSBcImxhbWJkYTpMaXN0TWljcm92bUltYWdlQnVpbGRzXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3RNaWNyb3ZtSW1hZ2VWZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1pY3Jvdm1JbWFnZVZlcnNpb25zID0gXCJsYW1iZGE6TGlzdE1pY3Jvdm1JbWFnZVZlcnNpb25zXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3RNaWNyb3ZtSW1hZ2VzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWljcm92bUltYWdlcyA9IFwibGFtYmRhOkxpc3RNaWNyb3ZtSW1hZ2VzXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3RNaWNyb3ZtcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1pY3Jvdm1zID0gXCJsYW1iZGE6TGlzdE1pY3Jvdm1zXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3ROZXR3b3JrQ29ubmVjdG9ycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE5ldHdvcmtDb25uZWN0b3JzID0gXCJsYW1iZGE6TGlzdE5ldHdvcmtDb25uZWN0b3JzXCI7XG5cdC8qKiBbTGlzdF0gbGFtYmRhOkxpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzID1cblx0XHRcImxhbWJkYTpMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NcIjtcblx0LyoqIFtSZWFkXSBsYW1iZGE6TGlzdFRhZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzID0gXCJsYW1iZGE6TGlzdFRhZ3NcIjtcblx0LyoqIFtMaXN0XSBsYW1iZGE6TGlzdFZlcnNpb25zQnlGdW5jdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFZlcnNpb25zQnlGdW5jdGlvbiA9IFwibGFtYmRhOkxpc3RWZXJzaW9uc0J5RnVuY3Rpb25cIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlBhc3NDYXBhY2l0eVByb3ZpZGVyICovXG5cdHN0YXRpYyByZWFkb25seSBQYXNzQ2FwYWNpdHlQcm92aWRlciA9IFwibGFtYmRhOlBhc3NDYXBhY2l0eVByb3ZpZGVyXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpQYXNzTmV0d29ya0Nvbm5lY3RvciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUGFzc05ldHdvcmtDb25uZWN0b3IgPSBcImxhbWJkYTpQYXNzTmV0d29ya0Nvbm5lY3RvclwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6UHVibGlzaExheWVyVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHVibGlzaExheWVyVmVyc2lvbiA9IFwibGFtYmRhOlB1Ymxpc2hMYXllclZlcnNpb25cIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlB1Ymxpc2hWZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBQdWJsaXNoVmVyc2lvbiA9IFwibGFtYmRhOlB1Ymxpc2hWZXJzaW9uXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnID1cblx0XHRcImxhbWJkYTpQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpQdXRGdW5jdGlvbkNvbmN1cnJlbmN5ICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5ID0gXCJsYW1iZGE6UHV0RnVuY3Rpb25Db25jdXJyZW5jeVwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6UHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyA9XG5cdFx0XCJsYW1iZGE6UHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6UHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnID1cblx0XHRcImxhbWJkYTpQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6UHV0RnVuY3Rpb25TY2FsaW5nQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRGdW5jdGlvblNjYWxpbmdDb25maWcgPSBcImxhbWJkYTpQdXRGdW5jdGlvblNjYWxpbmdDb25maWdcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcgPVxuXHRcdFwibGFtYmRhOlB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdcIjtcblx0LyoqIFtQZXJtaXNzaW9uTWFuYWdlbWVudF0gbGFtYmRhOlB1dFJlc291cmNlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZXNvdXJjZVBvbGljeSA9IFwibGFtYmRhOlB1dFJlc291cmNlUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWcgPVxuXHRcdFwibGFtYmRhOlB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnXCI7XG5cdC8qKiBbUGVybWlzc2lvbk1hbmFnZW1lbnRdIGxhbWJkYTpSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uID1cblx0XHRcImxhbWJkYTpSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uXCI7XG5cdC8qKiBbUGVybWlzc2lvbk1hbmFnZW1lbnRdIGxhbWJkYTpSZW1vdmVQZXJtaXNzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBSZW1vdmVQZXJtaXNzaW9uID0gXCJsYW1iZGE6UmVtb3ZlUGVybWlzc2lvblwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6UmVzdW1lTWljcm92bSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVzdW1lTWljcm92bSA9IFwibGFtYmRhOlJlc3VtZU1pY3Jvdm1cIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlJ1bk1pY3Jvdm0gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJ1bk1pY3Jvdm0gPSBcImxhbWJkYTpSdW5NaWNyb3ZtXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmUgPVxuXHRcdFwibGFtYmRhOlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tGYWlsdXJlXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0ICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0ID1cblx0XHRcImxhbWJkYTpTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0XCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2VzcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3MgPVxuXHRcdFwibGFtYmRhOlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tTdWNjZXNzXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpTdG9wRHVyYWJsZUV4ZWN1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcER1cmFibGVFeGVjdXRpb24gPSBcImxhbWJkYTpTdG9wRHVyYWJsZUV4ZWN1dGlvblwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6U3VzcGVuZE1pY3Jvdm0gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1c3BlbmRNaWNyb3ZtID0gXCJsYW1iZGE6U3VzcGVuZE1pY3Jvdm1cIjtcblx0LyoqIFtUYWdnaW5nXSBsYW1iZGE6VGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlID0gXCJsYW1iZGE6VGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlRlcm1pbmF0ZU1pY3Jvdm0gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlcm1pbmF0ZU1pY3Jvdm0gPSBcImxhbWJkYTpUZXJtaW5hdGVNaWNyb3ZtXCI7XG5cdC8qKiBbVGFnZ2luZ10gbGFtYmRhOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcImxhbWJkYTpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpVcGRhdGVBbGlhcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWxpYXMgPSBcImxhbWJkYTpVcGRhdGVBbGlhc1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6VXBkYXRlQ2FwYWNpdHlQcm92aWRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2FwYWNpdHlQcm92aWRlciA9IFwibGFtYmRhOlVwZGF0ZUNhcGFjaXR5UHJvdmlkZXJcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZyA9IFwibGFtYmRhOlVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmcgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZyA9IFwibGFtYmRhOlVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ1wiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6VXBkYXRlRnVuY3Rpb25Db2RlICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGdW5jdGlvbkNvZGUgPSBcImxhbWJkYTpVcGRhdGVGdW5jdGlvbkNvZGVcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlVwZGF0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcgPVxuXHRcdFwibGFtYmRhOlVwZGF0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uID1cblx0XHRcImxhbWJkYTpVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgPVxuXHRcdFwibGFtYmRhOlVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdcIjtcblx0LyoqIFtXcml0ZV0gbGFtYmRhOlVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGdW5jdGlvblVybENvbmZpZyA9IFwibGFtYmRhOlVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGxhbWJkYTpVcGRhdGVNaWNyb3ZtSW1hZ2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1pY3Jvdm1JbWFnZSA9IFwibGFtYmRhOlVwZGF0ZU1pY3Jvdm1JbWFnZVwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6VXBkYXRlTWljcm92bUltYWdlVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTWljcm92bUltYWdlVmVyc2lvbiA9XG5cdFx0XCJsYW1iZGE6VXBkYXRlTWljcm92bUltYWdlVmVyc2lvblwiO1xuXHQvKiogW1dyaXRlXSBsYW1iZGE6VXBkYXRlTmV0d29ya0Nvbm5lY3RvciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTmV0d29ya0Nvbm5lY3RvciA9IFwibGFtYmRhOlVwZGF0ZU5ldHdvcmtDb25uZWN0b3JcIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldEFjY291bnRTZXR0aW5ncyxcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldEFsaWFzLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0Q2FwYWNpdHlQcm92aWRlcixcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldENvZGVTaWduaW5nQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0RHVyYWJsZUV4ZWN1dGlvbixcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5LFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0RXZlbnRTb3VyY2VNYXBwaW5nLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0RnVuY3Rpb24sXG5cdFx0TGFtYmRhQWN0aW9ucy5hY3Rpb25HZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0RnVuY3Rpb25Db25jdXJyZW5jeSxcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbixcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcsXG5cdFx0TGFtYmRhQWN0aW9ucy5hY3Rpb25HZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldEZ1bmN0aW9uVXJsQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0TGF5ZXJWZXJzaW9uLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0TGF5ZXJWZXJzaW9uUG9saWN5LFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0TWljcm92bSxcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldE1pY3Jvdm1JbWFnZSxcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldE1pY3Jvdm1JbWFnZUJ1aWxkLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0TWljcm92bUltYWdlVmVyc2lvbixcblx0XHRMYW1iZGFBY3Rpb25zLmFjdGlvbkdldE5ldHdvcmtDb25uZWN0b3IsXG5cdFx0TGFtYmRhQWN0aW9ucy5hY3Rpb25HZXRQb2xpY3ksXG5cdFx0TGFtYmRhQWN0aW9ucy5hY3Rpb25HZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuYWN0aW9uR2V0UmVzb3VyY2VQb2xpY3ksXG5cdFx0TGFtYmRhQWN0aW9ucy5hY3Rpb25HZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3RUYWdzLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdExhbWJkYUFjdGlvbnMuQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb24sXG5cdFx0TGFtYmRhQWN0aW9ucy5Db25uZWN0TWljcm92bSxcblx0XHRMYW1iZGFBY3Rpb25zLkNyZWF0ZUFsaWFzLFxuXHRcdExhbWJkYUFjdGlvbnMuQ3JlYXRlQ2FwYWNpdHlQcm92aWRlcixcblx0XHRMYW1iZGFBY3Rpb25zLkNyZWF0ZUNvZGVTaWduaW5nQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nLFxuXHRcdExhbWJkYUFjdGlvbnMuQ3JlYXRlRnVuY3Rpb24sXG5cdFx0TGFtYmRhQWN0aW9ucy5DcmVhdGVGdW5jdGlvblVybENvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLkNyZWF0ZU1pY3Jvdm1BdXRoVG9rZW4sXG5cdFx0TGFtYmRhQWN0aW9ucy5DcmVhdGVNaWNyb3ZtSW1hZ2UsXG5cdFx0TGFtYmRhQWN0aW9ucy5DcmVhdGVNaWNyb3ZtU2hlbGxBdXRoVG9rZW4sXG5cdFx0TGFtYmRhQWN0aW9ucy5DcmVhdGVOZXR3b3JrQ29ubmVjdG9yLFxuXHRcdExhbWJkYUFjdGlvbnMuRGVsZXRlQWxpYXMsXG5cdFx0TGFtYmRhQWN0aW9ucy5EZWxldGVDYXBhY2l0eVByb3ZpZGVyLFxuXHRcdExhbWJkYUFjdGlvbnMuRGVsZXRlQ29kZVNpZ25pbmdDb25maWcsXG5cdFx0TGFtYmRhQWN0aW9ucy5EZWxldGVFdmVudFNvdXJjZU1hcHBpbmcsXG5cdFx0TGFtYmRhQWN0aW9ucy5EZWxldGVGdW5jdGlvbixcblx0XHRMYW1iZGFBY3Rpb25zLkRlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcsXG5cdFx0TGFtYmRhQWN0aW9ucy5EZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5LFxuXHRcdExhbWJkYUFjdGlvbnMuRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLkRlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuRGVsZXRlTGF5ZXJWZXJzaW9uLFxuXHRcdExhbWJkYUFjdGlvbnMuRGVsZXRlTWljcm92bUltYWdlLFxuXHRcdExhbWJkYUFjdGlvbnMuRGVsZXRlTWljcm92bUltYWdlVmVyc2lvbixcblx0XHRMYW1iZGFBY3Rpb25zLkRlbGV0ZU5ldHdvcmtDb25uZWN0b3IsXG5cdFx0TGFtYmRhQWN0aW9ucy5EZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuSW52b2tlQXN5bmMsXG5cdFx0TGFtYmRhQWN0aW9ucy5JbnZva2VGdW5jdGlvbixcblx0XHRMYW1iZGFBY3Rpb25zLkludm9rZUZ1bmN0aW9uVXJsLFxuXHRcdExhbWJkYUFjdGlvbnMuUGFzc0NhcGFjaXR5UHJvdmlkZXIsXG5cdFx0TGFtYmRhQWN0aW9ucy5QYXNzTmV0d29ya0Nvbm5lY3Rvcixcblx0XHRMYW1iZGFBY3Rpb25zLlB1Ymxpc2hMYXllclZlcnNpb24sXG5cdFx0TGFtYmRhQWN0aW9ucy5QdWJsaXNoVmVyc2lvbixcblx0XHRMYW1iZGFBY3Rpb25zLlB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcsXG5cdFx0TGFtYmRhQWN0aW9ucy5QdXRGdW5jdGlvbkNvbmN1cnJlbmN5LFxuXHRcdExhbWJkYUFjdGlvbnMuUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLlB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuUHV0RnVuY3Rpb25TY2FsaW5nQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLlB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuUmVzdW1lTWljcm92bSxcblx0XHRMYW1iZGFBY3Rpb25zLlJ1bk1pY3Jvdm0sXG5cdFx0TGFtYmRhQWN0aW9ucy5TZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZSxcblx0XHRMYW1iZGFBY3Rpb25zLlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tIZWFydGJlYXQsXG5cdFx0TGFtYmRhQWN0aW9ucy5TZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzcyxcblx0XHRMYW1iZGFBY3Rpb25zLlN0b3BEdXJhYmxlRXhlY3V0aW9uLFxuXHRcdExhbWJkYUFjdGlvbnMuU3VzcGVuZE1pY3Jvdm0sXG5cdFx0TGFtYmRhQWN0aW9ucy5UZXJtaW5hdGVNaWNyb3ZtLFxuXHRcdExhbWJkYUFjdGlvbnMuVXBkYXRlQWxpYXMsXG5cdFx0TGFtYmRhQWN0aW9ucy5VcGRhdGVDYXBhY2l0eVByb3ZpZGVyLFxuXHRcdExhbWJkYUFjdGlvbnMuVXBkYXRlQ29kZVNpZ25pbmdDb25maWcsXG5cdFx0TGFtYmRhQWN0aW9ucy5VcGRhdGVFdmVudFNvdXJjZU1hcHBpbmcsXG5cdFx0TGFtYmRhQWN0aW9ucy5VcGRhdGVGdW5jdGlvbkNvZGUsXG5cdFx0TGFtYmRhQWN0aW9ucy5VcGRhdGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uLFxuXHRcdExhbWJkYUFjdGlvbnMuVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyxcblx0XHRMYW1iZGFBY3Rpb25zLlVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuVXBkYXRlTWljcm92bUltYWdlLFxuXHRcdExhbWJkYUFjdGlvbnMuVXBkYXRlTWljcm92bUltYWdlVmVyc2lvbixcblx0XHRMYW1iZGFBY3Rpb25zLlVwZGF0ZU5ldHdvcmtDb25uZWN0b3IsXG5cdF07XG5cdC8qKiBBbGwgbGlzdC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsTGlzdEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdExhbWJkYUFjdGlvbnMuTGlzdEFsaWFzZXMsXG5cdFx0TGFtYmRhQWN0aW9ucy5MaXN0Q2FwYWNpdHlQcm92aWRlcnMsXG5cdFx0TGFtYmRhQWN0aW9ucy5MaXN0Q29kZVNpZ25pbmdDb25maWdzLFxuXHRcdExhbWJkYUFjdGlvbnMuTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvbixcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3RFdmVudFNvdXJjZU1hcHBpbmdzLFxuXHRcdExhbWJkYUFjdGlvbnMuTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzLFxuXHRcdExhbWJkYUFjdGlvbnMuTGlzdEZ1bmN0aW9uVXJsQ29uZmlncyxcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3RGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyLFxuXHRcdExhbWJkYUFjdGlvbnMuTGlzdEZ1bmN0aW9ucyxcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnLFxuXHRcdExhbWJkYUFjdGlvbnMuTGlzdExheWVyVmVyc2lvbnMsXG5cdFx0TGFtYmRhQWN0aW9ucy5MaXN0TGF5ZXJzLFxuXHRcdExhbWJkYUFjdGlvbnMuTGlzdE1hbmFnZWRNaWNyb3ZtSW1hZ2VWZXJzaW9ucyxcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3RNYW5hZ2VkTWljcm92bUltYWdlcyxcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3RNaWNyb3ZtSW1hZ2VCdWlsZHMsXG5cdFx0TGFtYmRhQWN0aW9ucy5MaXN0TWljcm92bUltYWdlVmVyc2lvbnMsXG5cdFx0TGFtYmRhQWN0aW9ucy5MaXN0TWljcm92bUltYWdlcyxcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3RNaWNyb3Ztcyxcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3ROZXR3b3JrQ29ubmVjdG9ycyxcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlncyxcblx0XHRMYW1iZGFBY3Rpb25zLkxpc3RWZXJzaW9uc0J5RnVuY3Rpb24sXG5cdF07XG5cdC8qKiBBbGwgcGVybWlzc2lvbi1tYW5hZ2VtZW50LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxQZXJtaXNzaW9uTWFuYWdlbWVudEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdExhbWJkYUFjdGlvbnMuQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbixcblx0XHRMYW1iZGFBY3Rpb25zLkFkZFBlcm1pc3Npb24sXG5cdFx0TGFtYmRhQWN0aW9ucy5EZWxldGVSZXNvdXJjZVBvbGljeSxcblx0XHRMYW1iZGFBY3Rpb25zLkRpc2FibGVSZXBsaWNhdGlvbixcblx0XHRMYW1iZGFBY3Rpb25zLkVuYWJsZVJlcGxpY2F0aW9uLFxuXHRcdExhbWJkYUFjdGlvbnMuUHV0UmVzb3VyY2VQb2xpY3ksXG5cdFx0TGFtYmRhQWN0aW9ucy5SZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uLFxuXHRcdExhbWJkYUFjdGlvbnMuUmVtb3ZlUGVybWlzc2lvbixcblx0XTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0TGFtYmRhQWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHRMYW1iZGFBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjYXBhY2l0eVByb3ZpZGVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFDYXBhY2l0eVByb3ZpZGVyQXJuUHJvcHMge1xuXHQvKiogVGhlIENhcGFjaXR5UHJvdmlkZXJOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjYXBhY2l0eVByb3ZpZGVyTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNhcGFjaXR5UHJvdmlkZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUNhcGFjaXR5UHJvdmlkZXJBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENhcGFjaXR5UHJvdmlkZXJOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2FwYWNpdHlQcm92aWRlck5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGNvZGUgc2lnbmluZyBjb25maWcgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUNvZGVTaWduaW5nQ29uZmlnQXJuUHJvcHMge1xuXHQvKiogVGhlIENvZGVTaWduaW5nQ29uZmlnSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvZGVTaWduaW5nQ29uZmlnSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjb2RlIHNpZ25pbmcgY29uZmlnIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFDb2RlU2lnbmluZ0NvbmZpZ0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29kZVNpZ25pbmdDb25maWdJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvZGVTaWduaW5nQ29uZmlnSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGR1cmFibGUgZXhlY3V0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFEdXJhYmxlRXhlY3V0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIEZ1bmN0aW9uTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbiBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXHQvKiogVGhlIEV4ZWN1dGlvbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGV4ZWN1dGlvbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBFeGVjdXRpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZXhlY3V0aW9uSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkdXJhYmxlIGV4ZWN1dGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRHVyYWJsZUV4ZWN1dGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRnVuY3Rpb25OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgVmVyc2lvbiBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblx0LyoqIFRoZSBFeGVjdXRpb25OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZXhlY3V0aW9uTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIEV4ZWN1dGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZXhlY3V0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGV2ZW50U291cmNlTWFwcGluZyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRXZlbnRTb3VyY2VNYXBwaW5nQXJuUHJvcHMge1xuXHQvKiogVGhlIFVVSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBldmVudFNvdXJjZU1hcHBpbmcgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUV2ZW50U291cmNlTWFwcGluZ0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgVVVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHV1aWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGZ1bmN0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFGdW5jdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBGdW5jdGlvbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGZ1bmN0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFGdW5jdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRnVuY3Rpb25OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBmdW5jdGlvbiBhbGlhcyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRnVuY3Rpb25BbGlhc0FyblByb3BzIHtcblx0LyoqIFRoZSBGdW5jdGlvbk5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIEFsaWFzIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBhbGlhczogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGZ1bmN0aW9uIGFsaWFzIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFGdW5jdGlvbkFsaWFzQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBGdW5jdGlvbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBmdW5jdGlvbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBBbGlhcyBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGFsaWFzOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBmdW5jdGlvbiB2ZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFGdW5jdGlvblZlcnNpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRnVuY3Rpb25OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBmdW5jdGlvbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBWZXJzaW9uIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZnVuY3Rpb24gdmVyc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRnVuY3Rpb25WZXJzaW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBGdW5jdGlvbk5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBmdW5jdGlvbk5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBWZXJzaW9uIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgbGF5ZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUxheWVyQXJuUHJvcHMge1xuXHQvKiogVGhlIExheWVyTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbGF5ZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgbGF5ZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUxheWVyQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBMYXllck5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBsYXllck5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGxheWVyVmVyc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhTGF5ZXJWZXJzaW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIExheWVyTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbGF5ZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgTGF5ZXJWZXJzaW9uIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBsYXllclZlcnNpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBsYXllclZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUxheWVyVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgTGF5ZXJOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbGF5ZXJOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgTGF5ZXJWZXJzaW9uIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbGF5ZXJWZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBtaWNyb3ZtSW1hZ2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYU1pY3Jvdm1JbWFnZUFyblByb3BzIHtcblx0LyoqIFRoZSBNaWNyb3ZtSW1hZ2VOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBtaWNyb3ZtSW1hZ2VOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgbWljcm92bUltYWdlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFNaWNyb3ZtSW1hZ2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIE1pY3Jvdm1JbWFnZU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBtaWNyb3ZtSW1hZ2VOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBuZXR3b3JrQ29ubmVjdG9yIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFOZXR3b3JrQ29ubmVjdG9yQXJuUHJvcHMge1xuXHQvKiogVGhlIE5ldHdvcmtDb25uZWN0b3JJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbmV0d29ya0Nvbm5lY3RvcklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgbmV0d29ya0Nvbm5lY3RvciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhTmV0d29ya0Nvbm5lY3RvckFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgTmV0d29ya0Nvbm5lY3RvcklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbmV0d29ya0Nvbm5lY3RvcklkOiBzdHJpbmc7XG59XG5cbmNvbnN0IENhcGFjaXR5UHJvdmlkZXJBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6bGFtYmRhOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y2FwYWNpdHktcHJvdmlkZXI6KD88Y2FwYWNpdHlQcm92aWRlck5hbWU+W146Lz9dKykkLztcbmNvbnN0IENvZGVTaWduaW5nQ29uZmlnQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmxhbWJkYTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmNvZGUtc2lnbmluZy1jb25maWc6KD88Y29kZVNpZ25pbmdDb25maWdJZD5bXjovP10rKSQvO1xuY29uc3QgRHVyYWJsZUV4ZWN1dGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpsYW1iZGE6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpmdW5jdGlvbjooPzxmdW5jdGlvbk5hbWU+W146Lz9dKyk6KD88dmVyc2lvbj5bXjovP10rKVxcL2R1cmFibGUtZXhlY3V0aW9uXFwvKD88ZXhlY3V0aW9uTmFtZT5bXjovP10rKVxcLyg/PGV4ZWN1dGlvbklkPlteOi8/XSspJC87XG5jb25zdCBFdmVudFNvdXJjZU1hcHBpbmdBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6bGFtYmRhOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZXZlbnQtc291cmNlLW1hcHBpbmc6KD88dXVpZD5bXjovP10rKSQvO1xuY29uc3QgRnVuY3Rpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6bGFtYmRhOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZnVuY3Rpb246KD88ZnVuY3Rpb25OYW1lPlteOi8/XSspJC87XG5jb25zdCBGdW5jdGlvbkFsaWFzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmxhbWJkYTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmZ1bmN0aW9uOig/PGZ1bmN0aW9uTmFtZT5bXjovP10rKTooPzxhbGlhcz5bXjovP10rKSQvO1xuY29uc3QgRnVuY3Rpb25WZXJzaW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmxhbWJkYTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmZ1bmN0aW9uOig/PGZ1bmN0aW9uTmFtZT5bXjovP10rKTooPzx2ZXJzaW9uPlteOi8/XSspJC87XG5jb25zdCBMYXllckFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpsYW1iZGE6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpsYXllcjooPzxsYXllck5hbWU+W146Lz9dKykkLztcbmNvbnN0IExheWVyVmVyc2lvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpsYW1iZGE6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpsYXllcjooPzxsYXllck5hbWU+W146Lz9dKyk6KD88bGF5ZXJWZXJzaW9uPlteOi8/XSspJC87XG5jb25zdCBNaWNyb3ZtSW1hZ2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6bGFtYmRhOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6bWljcm92bS1pbWFnZTooPzxtaWNyb3ZtSW1hZ2VOYW1lPlteOi8/XSspJC87XG5jb25zdCBOZXR3b3JrQ29ubmVjdG9yQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmxhbWJkYTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOm5ldHdvcmstY29ubmVjdG9yOig/PG5ldHdvcmtDb25uZWN0b3JJZD5bXjovP10rKSQvO1xuXG4vKipcbiAqIEFSTiBidWlsZGVycywgdmFsaWRhdG9ycywgYW5kIHBhcnNlcnMgZm9yIGxhbWJkYSByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBMYW1iZGFSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNhcGFjaXR5UHJvdmlkZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY2FwYWNpdHlQcm92aWRlcihwcm9wczogTGFtYmRhQ2FwYWNpdHlQcm92aWRlckFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpsYW1iZGE6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06Y2FwYWNpdHktcHJvdmlkZXI6JHtwcm9wcy5jYXBhY2l0eVByb3ZpZGVyTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY2FwYWNpdHlQcm92aWRlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ2FwYWNpdHlQcm92aWRlckFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDYXBhY2l0eVByb3ZpZGVyQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNhcGFjaXR5UHJvdmlkZXIgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ2FwYWNpdHlQcm92aWRlckFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogTGFtYmRhQ2FwYWNpdHlQcm92aWRlckFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ2FwYWNpdHlQcm92aWRlckFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjYXBhY2l0eVByb3ZpZGVyIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNhcGFjaXR5UHJvdmlkZXJOYW1lOiBtYXRjaC5ncm91cHMhLmNhcGFjaXR5UHJvdmlkZXJOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvZGUgc2lnbmluZyBjb25maWcgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29kZVNpZ25pbmdDb25maWcocHJvcHM6IExhbWJkYUNvZGVTaWduaW5nQ29uZmlnQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmxhbWJkYToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjb2RlLXNpZ25pbmctY29uZmlnOiR7cHJvcHMuY29kZVNpZ25pbmdDb25maWdJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29kZSBzaWduaW5nIGNvbmZpZyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ29kZVNpZ25pbmdDb25maWdBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29kZVNpZ25pbmdDb25maWdBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY29kZSBzaWduaW5nIGNvbmZpZyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb2RlU2lnbmluZ0NvbmZpZ0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogTGFtYmRhQ29kZVNpZ25pbmdDb25maWdBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvZGVTaWduaW5nQ29uZmlnQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvZGUgc2lnbmluZyBjb25maWcgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29kZVNpZ25pbmdDb25maWdJZDogbWF0Y2guZ3JvdXBzIS5jb2RlU2lnbmluZ0NvbmZpZ0lkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGR1cmFibGUgZXhlY3V0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGR1cmFibGVFeGVjdXRpb24ocHJvcHM6IExhbWJkYUR1cmFibGVFeGVjdXRpb25Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06bGFtYmRhOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmZ1bmN0aW9uOiR7cHJvcHMuZnVuY3Rpb25OYW1lfToke3Byb3BzLnZlcnNpb259L2R1cmFibGUtZXhlY3V0aW9uLyR7cHJvcHMuZXhlY3V0aW9uTmFtZX0vJHtwcm9wcy5leGVjdXRpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZHVyYWJsZSBleGVjdXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZER1cmFibGVFeGVjdXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRHVyYWJsZUV4ZWN1dGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkdXJhYmxlIGV4ZWN1dGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEdXJhYmxlRXhlY3V0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBMYW1iZGFEdXJhYmxlRXhlY3V0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEdXJhYmxlRXhlY3V0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGR1cmFibGUgZXhlY3V0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGZ1bmN0aW9uTmFtZTogbWF0Y2guZ3JvdXBzIS5mdW5jdGlvbk5hbWUsXG5cdFx0XHR2ZXJzaW9uOiBtYXRjaC5ncm91cHMhLnZlcnNpb24sXG5cdFx0XHRleGVjdXRpb25OYW1lOiBtYXRjaC5ncm91cHMhLmV4ZWN1dGlvbk5hbWUsXG5cdFx0XHRleGVjdXRpb25JZDogbWF0Y2guZ3JvdXBzIS5leGVjdXRpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBldmVudFNvdXJjZU1hcHBpbmcgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZXZlbnRTb3VyY2VNYXBwaW5nKHByb3BzOiBMYW1iZGFFdmVudFNvdXJjZU1hcHBpbmdBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06bGFtYmRhOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmV2ZW50LXNvdXJjZS1tYXBwaW5nOiR7cHJvcHMudXVpZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZXZlbnRTb3VyY2VNYXBwaW5nIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRFdmVudFNvdXJjZU1hcHBpbmdBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRXZlbnRTb3VyY2VNYXBwaW5nQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGV2ZW50U291cmNlTWFwcGluZyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VFdmVudFNvdXJjZU1hcHBpbmdBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IExhbWJkYUV2ZW50U291cmNlTWFwcGluZ0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRXZlbnRTb3VyY2VNYXBwaW5nQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGV2ZW50U291cmNlTWFwcGluZyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHR1dWlkOiBtYXRjaC5ncm91cHMhLnV1aWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZnVuY3Rpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZnVuY3Rpb24ocHJvcHM6IExhbWJkYUZ1bmN0aW9uQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmxhbWJkYToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpmdW5jdGlvbjoke3Byb3BzLmZ1bmN0aW9uTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZnVuY3Rpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEZ1bmN0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEZ1bmN0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGZ1bmN0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUZ1bmN0aW9uQXJuKGFybjogc3RyaW5nKTogTGFtYmRhRnVuY3Rpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEZ1bmN0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGZ1bmN0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGZ1bmN0aW9uTmFtZTogbWF0Y2guZ3JvdXBzIS5mdW5jdGlvbk5hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZnVuY3Rpb24gYWxpYXMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZnVuY3Rpb25BbGlhcyhwcm9wczogTGFtYmRhRnVuY3Rpb25BbGlhc0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpsYW1iZGE6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZnVuY3Rpb246JHtwcm9wcy5mdW5jdGlvbk5hbWV9OiR7cHJvcHMuYWxpYXN9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGZ1bmN0aW9uIGFsaWFzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRGdW5jdGlvbkFsaWFzQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEZ1bmN0aW9uQWxpYXNBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZnVuY3Rpb24gYWxpYXMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRnVuY3Rpb25BbGlhc0Fybihhcm46IHN0cmluZyk6IExhbWJkYUZ1bmN0aW9uQWxpYXNBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEZ1bmN0aW9uQWxpYXNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZnVuY3Rpb24gYWxpYXMgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZnVuY3Rpb25OYW1lOiBtYXRjaC5ncm91cHMhLmZ1bmN0aW9uTmFtZSxcblx0XHRcdGFsaWFzOiBtYXRjaC5ncm91cHMhLmFsaWFzLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGZ1bmN0aW9uIHZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZnVuY3Rpb25WZXJzaW9uKHByb3BzOiBMYW1iZGFGdW5jdGlvblZlcnNpb25Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06bGFtYmRhOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmZ1bmN0aW9uOiR7cHJvcHMuZnVuY3Rpb25OYW1lfToke3Byb3BzLnZlcnNpb259YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGZ1bmN0aW9uIHZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEZ1bmN0aW9uVmVyc2lvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBGdW5jdGlvblZlcnNpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZnVuY3Rpb24gdmVyc2lvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VGdW5jdGlvblZlcnNpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IExhbWJkYUZ1bmN0aW9uVmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRnVuY3Rpb25WZXJzaW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGZ1bmN0aW9uIHZlcnNpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZnVuY3Rpb25OYW1lOiBtYXRjaC5ncm91cHMhLmZ1bmN0aW9uTmFtZSxcblx0XHRcdHZlcnNpb246IG1hdGNoLmdyb3VwcyEudmVyc2lvbixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBsYXllciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBsYXllcihwcm9wczogTGFtYmRhTGF5ZXJBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06bGFtYmRhOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmxheWVyOiR7cHJvcHMubGF5ZXJOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBsYXllciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkTGF5ZXJBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTGF5ZXJBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgbGF5ZXIgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlTGF5ZXJBcm4oYXJuOiBzdHJpbmcpOiBMYW1iZGFMYXllckFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gTGF5ZXJBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbGF5ZXIgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0bGF5ZXJOYW1lOiBtYXRjaC5ncm91cHMhLmxheWVyTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBsYXllclZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgbGF5ZXJWZXJzaW9uKHByb3BzOiBMYW1iZGFMYXllclZlcnNpb25Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06bGFtYmRhOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmxheWVyOiR7cHJvcHMubGF5ZXJOYW1lfToke3Byb3BzLmxheWVyVmVyc2lvbn1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgbGF5ZXJWZXJzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRMYXllclZlcnNpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTGF5ZXJWZXJzaW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGxheWVyVmVyc2lvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VMYXllclZlcnNpb25Bcm4oYXJuOiBzdHJpbmcpOiBMYW1iZGFMYXllclZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IExheWVyVmVyc2lvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBsYXllclZlcnNpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0bGF5ZXJOYW1lOiBtYXRjaC5ncm91cHMhLmxheWVyTmFtZSxcblx0XHRcdGxheWVyVmVyc2lvbjogbWF0Y2guZ3JvdXBzIS5sYXllclZlcnNpb24sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgbWljcm92bUltYWdlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIG1pY3Jvdm1JbWFnZShwcm9wczogTGFtYmRhTWljcm92bUltYWdlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmxhbWJkYToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTptaWNyb3ZtLWltYWdlOiR7cHJvcHMubWljcm92bUltYWdlTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgbWljcm92bUltYWdlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRNaWNyb3ZtSW1hZ2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTWljcm92bUltYWdlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIG1pY3Jvdm1JbWFnZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VNaWNyb3ZtSW1hZ2VBcm4oYXJuOiBzdHJpbmcpOiBMYW1iZGFNaWNyb3ZtSW1hZ2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IE1pY3Jvdm1JbWFnZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBtaWNyb3ZtSW1hZ2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0bWljcm92bUltYWdlTmFtZTogbWF0Y2guZ3JvdXBzIS5taWNyb3ZtSW1hZ2VOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIG5ldHdvcmtDb25uZWN0b3IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgbmV0d29ya0Nvbm5lY3Rvcihwcm9wczogTGFtYmRhTmV0d29ya0Nvbm5lY3RvckFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpsYW1iZGE6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06bmV0d29yay1jb25uZWN0b3I6JHtwcm9wcy5uZXR3b3JrQ29ubmVjdG9ySWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIG5ldHdvcmtDb25uZWN0b3IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZE5ldHdvcmtDb25uZWN0b3JBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTmV0d29ya0Nvbm5lY3RvckFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBuZXR3b3JrQ29ubmVjdG9yIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZU5ldHdvcmtDb25uZWN0b3JBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IExhbWJkYU5ldHdvcmtDb25uZWN0b3JBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IE5ldHdvcmtDb25uZWN0b3JBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbmV0d29ya0Nvbm5lY3RvciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRuZXR3b3JrQ29ubmVjdG9ySWQ6IG1hdGNoLmdyb3VwcyEubmV0d29ya0Nvbm5lY3RvcklkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGxhbWJkYS5cbiAqL1xuZXhwb3J0IGNsYXNzIExhbWJkYU9wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBZGRFdmVudFNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFkZEV2ZW50U291cmNlOiBzdHJpbmdbXSA9IFtcImlhbTpQYXNzUm9sZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFkZExheWVyVmVyc2lvblBlcm1pc3Npb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkFkZExheWVyVmVyc2lvblBlcm1pc3Npb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQWRkUGVybWlzc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFkZFBlcm1pc3Npb246IHN0cmluZ1tdID0gW1wibGFtYmRhOkFkZFBlcm1pc3Npb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENoZWNrcG9pbnREdXJhYmxlRXhlY3V0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkNoZWNrcG9pbnREdXJhYmxlRXhlY3V0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUFsaWFzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQWxpYXM6IHN0cmluZ1tdID0gW1wibGFtYmRhOkNyZWF0ZUFsaWFzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDYXBhY2l0eVByb3ZpZGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2FwYWNpdHlQcm92aWRlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6Q3JlYXRlQ2FwYWNpdHlQcm92aWRlclwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJsYW1iZGE6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ29kZVNpZ25pbmdDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6Q3JlYXRlQ29kZVNpZ25pbmdDb25maWdcIixcblx0XHRcImxhbWJkYTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkNyZWF0ZUV2ZW50U291cmNlTWFwcGluZ1wiLFxuXHRcdFwibGFtYmRhOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUZ1bmN0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRnVuY3Rpb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkNyZWF0ZUZ1bmN0aW9uXCIsXG5cdFx0XCJsYW1iZGE6R2V0TGF5ZXJWZXJzaW9uXCIsXG5cdFx0XCJsYW1iZGE6UGFzc0NhcGFjaXR5UHJvdmlkZXJcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwibGFtYmRhOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkNyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZU1pY3Jvdm1BdXRoVG9rZW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVNaWNyb3ZtQXV0aFRva2VuOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpDcmVhdGVNaWNyb3ZtQXV0aFRva2VuXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZU1pY3Jvdm1JbWFnZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU1pY3Jvdm1JbWFnZTogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6Q3JlYXRlTWljcm92bUltYWdlXCIsXG5cdFx0XCJsYW1iZGE6UGFzc05ldHdvcmtDb25uZWN0b3JcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwibGFtYmRhOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZU1pY3Jvdm1TaGVsbEF1dGhUb2tlbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU1pY3Jvdm1TaGVsbEF1dGhUb2tlbjogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6Q3JlYXRlTWljcm92bVNoZWxsQXV0aFRva2VuXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZU5ldHdvcmtDb25uZWN0b3IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVOZXR3b3JrQ29ubmVjdG9yOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpDcmVhdGVOZXR3b3JrQ29ubmVjdG9yXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImxhbWJkYTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVBbGlhcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUFsaWFzOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpEZWxldGVBbGlhc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ2FwYWNpdHlQcm92aWRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNhcGFjaXR5UHJvdmlkZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkRlbGV0ZUNhcGFjaXR5UHJvdmlkZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ29kZVNpZ25pbmdDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6RGVsZXRlQ29kZVNpZ25pbmdDb25maWdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRnVuY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvbjogc3RyaW5nW10gPSBbXCJsYW1iZGE6RGVsZXRlRnVuY3Rpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRnVuY3Rpb25VcmxDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkRlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUxheWVyVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUxheWVyVmVyc2lvbjogc3RyaW5nW10gPSBbXCJsYW1iZGE6RGVsZXRlTGF5ZXJWZXJzaW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVNaWNyb3ZtSW1hZ2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVNaWNyb3ZtSW1hZ2U6IHN0cmluZ1tdID0gW1wibGFtYmRhOkRlbGV0ZU1pY3Jvdm1JbWFnZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTWljcm92bUltYWdlVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZU1pY3Jvdm1JbWFnZVZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkRlbGV0ZU1pY3Jvdm1JbWFnZVZlcnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTmV0d29ya0Nvbm5lY3RvciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZU5ldHdvcmtDb25uZWN0b3I6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkRlbGV0ZU5ldHdvcmtDb25uZWN0b3JcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkRlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVzb3VyY2VQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXNvdXJjZVBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6RGVsZXRlUmVzb3VyY2VQb2xpY3lcIixcblx0XHRcImxhbWJkYTpSZW1vdmVQZXJtaXNzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEFjY291bnRTZXR0aW5ncyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0QWNjb3VudFNldHRpbmdzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpHZXRBY2NvdW50U2V0dGluZ3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0QWxpYXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEFsaWFzOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpHZXRBbGlhc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q2FwYWNpdHlQcm92aWRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q2FwYWNpdHlQcm92aWRlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6R2V0Q2FwYWNpdHlQcm92aWRlclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDb2RlU2lnbmluZ0NvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q29kZVNpZ25pbmdDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldENvZGVTaWduaW5nQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldER1cmFibGVFeGVjdXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldER1cmFibGVFeGVjdXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldER1cmFibGVFeGVjdXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5OiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpHZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldER1cmFibGVFeGVjdXRpb25TdGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6R2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEV2ZW50U291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRFdmVudFNvdXJjZTogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RXZlbnRTb3VyY2VNYXBwaW5nIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRFdmVudFNvdXJjZU1hcHBpbmc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldEV2ZW50U291cmNlTWFwcGluZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRGdW5jdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RnVuY3Rpb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldEZ1bmN0aW9uXCIsXG5cdFx0XCJsYW1iZGE6TGlzdFRhZ3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6R2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRGdW5jdGlvbkNvbmN1cnJlbmN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpHZXRGdW5jdGlvbkNvbmN1cnJlbmN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6R2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpHZXRGdW5jdGlvblNjYWxpbmdDb25maWdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RnVuY3Rpb25VcmxDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEZ1bmN0aW9uVXJsQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpHZXRGdW5jdGlvblVybENvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRMYXllclZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldExheWVyVmVyc2lvbjogc3RyaW5nW10gPSBbXCJsYW1iZGE6R2V0TGF5ZXJWZXJzaW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRMYXllclZlcnNpb25CeUFybiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TGF5ZXJWZXJzaW9uQnlBcm46IHN0cmluZ1tdID0gW1wibGFtYmRhOkdldExheWVyVmVyc2lvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TGF5ZXJWZXJzaW9uUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRMYXllclZlcnNpb25Qb2xpY3k6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldExheWVyVmVyc2lvblBvbGljeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRNaWNyb3ZtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRNaWNyb3ZtOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpHZXRNaWNyb3ZtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRNaWNyb3ZtSW1hZ2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE1pY3Jvdm1JbWFnZTogc3RyaW5nW10gPSBbXCJsYW1iZGE6R2V0TWljcm92bUltYWdlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRNaWNyb3ZtSW1hZ2VCdWlsZCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TWljcm92bUltYWdlQnVpbGQ6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldE1pY3Jvdm1JbWFnZUJ1aWxkXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldE1pY3Jvdm1JbWFnZVZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE1pY3Jvdm1JbWFnZVZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkdldE1pY3Jvdm1JbWFnZVZlcnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TmV0d29ya0Nvbm5lY3RvciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TmV0d29ya0Nvbm5lY3Rvcjogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6R2V0TmV0d29ya0Nvbm5lY3RvclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFBvbGljeTogc3RyaW5nW10gPSBbXCJsYW1iZGE6R2V0UG9saWN5XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJlc291cmNlUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZXNvdXJjZVBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6R2V0UG9saWN5XCIsXG5cdFx0XCJsYW1iZGE6R2V0UmVzb3VyY2VQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbnZva2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBJbnZva2U6IHN0cmluZ1tdID0gW1wibGFtYmRhOkludm9rZUZ1bmN0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbnZva2VBc3luYyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEludm9rZUFzeW5jOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpJbnZva2VBc3luY1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpJbnZva2VGdW5jdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QWxpYXNlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBbGlhc2VzOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpMaXN0QWxpYXNlc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENhcGFjaXR5UHJvdmlkZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENhcGFjaXR5UHJvdmlkZXJzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0Q2FwYWNpdHlQcm92aWRlcnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENvZGVTaWduaW5nQ29uZmlncyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb2RlU2lnbmluZ0NvbmZpZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkxpc3RDb2RlU2lnbmluZ0NvbmZpZ3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkxpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEV2ZW50U291cmNlTWFwcGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nczogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6TGlzdEV2ZW50U291cmNlTWFwcGluZ3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEV2ZW50U291cmNlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFdmVudFNvdXJjZXM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlncyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnczogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6TGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RGdW5jdGlvblVybENvbmZpZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RnVuY3Rpb25VcmxDb25maWdzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0RnVuY3Rpb25VcmxDb25maWdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkxpc3RGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RGdW5jdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RnVuY3Rpb25zOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpMaXN0RnVuY3Rpb25zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0TGF5ZXJWZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMYXllclZlcnNpb25zOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpMaXN0TGF5ZXJWZXJzaW9uc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdExheWVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMYXllcnM6IHN0cmluZ1tdID0gW1wibGFtYmRhOkxpc3RMYXllcnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNYW5hZ2VkTWljcm92bUltYWdlVmVyc2lvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWFuYWdlZE1pY3Jvdm1JbWFnZVZlcnNpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0TWFuYWdlZE1pY3Jvdm1JbWFnZVZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNYW5hZ2VkTWljcm92bUltYWdlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNYW5hZ2VkTWljcm92bUltYWdlczogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6TGlzdE1hbmFnZWRNaWNyb3ZtSW1hZ2VzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNaWNyb3ZtSW1hZ2VCdWlsZHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWljcm92bUltYWdlQnVpbGRzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0TWljcm92bUltYWdlQnVpbGRzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNaWNyb3ZtSW1hZ2VWZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNaWNyb3ZtSW1hZ2VWZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6TGlzdE1pY3Jvdm1JbWFnZVZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNaWNyb3ZtSW1hZ2VzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1pY3Jvdm1JbWFnZXM6IHN0cmluZ1tdID0gW1wibGFtYmRhOkxpc3RNaWNyb3ZtSW1hZ2VzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0TWljcm92bXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWljcm92bXM6IHN0cmluZ1tdID0gW1wibGFtYmRhOkxpc3RNaWNyb3Ztc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdE5ldHdvcmtDb25uZWN0b3JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE5ldHdvcmtDb25uZWN0b3JzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0TmV0d29ya0Nvbm5lY3RvcnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRhZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnczogc3RyaW5nW10gPSBbXCJsYW1iZGE6TGlzdFRhZ3NcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RWZXJzaW9uc0J5RnVuY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1Ymxpc2hMYXllclZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdWJsaXNoTGF5ZXJWZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpQdWJsaXNoTGF5ZXJWZXJzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1Ymxpc2hWZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHVibGlzaFZlcnNpb246IHN0cmluZ1tdID0gW1wibGFtYmRhOlB1Ymxpc2hWZXJzaW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6UHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RnVuY3Rpb25Db25jdXJyZW5jeTogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6UHV0RnVuY3Rpb25Db25jdXJyZW5jeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6UHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRGdW5jdGlvblNjYWxpbmdDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRGdW5jdGlvblNjYWxpbmdDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOlB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6UHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRSZXNvdXJjZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dFJlc291cmNlUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpBZGRQZXJtaXNzaW9uXCIsXG5cdFx0XCJsYW1iZGE6UHV0UmVzb3VyY2VQb2xpY3lcIixcblx0XHRcImxhbWJkYTpSZW1vdmVQZXJtaXNzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOlB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlbW92ZUV2ZW50U291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVtb3ZlRXZlbnRTb3VyY2U6IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlbW92ZVBlcm1pc3Npb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZW1vdmVQZXJtaXNzaW9uOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpSZW1vdmVQZXJtaXNzaW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZXN1bWVNaWNyb3ZtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVzdW1lTWljcm92bTogc3RyaW5nW10gPSBbXCJsYW1iZGE6UmVzdW1lTWljcm92bVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUnVuTWljcm92bSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJ1bk1pY3Jvdm06IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOlBhc3NOZXR3b3JrQ29ubmVjdG9yXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImxhbWJkYTpSdW5NaWNyb3ZtXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tGYWlsdXJlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmU6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tGYWlsdXJlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tIZWFydGJlYXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0OiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tTdWNjZXNzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3M6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tTdWNjZXNzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BEdXJhYmxlRXhlY3V0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcER1cmFibGVFeGVjdXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOlN0b3BEdXJhYmxlRXhlY3V0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN1c3BlbmRNaWNyb3ZtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3VzcGVuZE1pY3Jvdm06IHN0cmluZ1tdID0gW1wibGFtYmRhOlN1c3BlbmRNaWNyb3ZtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVGVybWluYXRlTWljcm92bSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlcm1pbmF0ZU1pY3Jvdm06IHN0cmluZ1tdID0gW1wibGFtYmRhOlRlcm1pbmF0ZU1pY3Jvdm1cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpVbnRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVBbGlhcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFsaWFzOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpVcGRhdGVBbGlhc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQ2FwYWNpdHlQcm92aWRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNhcGFjaXR5UHJvdmlkZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOlVwZGF0ZUNhcGFjaXR5UHJvdmlkZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQ29kZVNpZ25pbmdDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6VXBkYXRlQ29kZVNpZ25pbmdDb25maWdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRnVuY3Rpb25Db2RlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRnVuY3Rpb25Db2RlOiBzdHJpbmdbXSA9IFtcImxhbWJkYTpVcGRhdGVGdW5jdGlvbkNvZGVcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6R2V0TGF5ZXJWZXJzaW9uXCIsXG5cdFx0XCJsYW1iZGE6UGFzc0NhcGFjaXR5UHJvdmlkZXJcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwibGFtYmRhOlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6VXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVGdW5jdGlvblVybENvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpVcGRhdGVGdW5jdGlvblVybENvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVNaWNyb3ZtSW1hZ2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVNaWNyb3ZtSW1hZ2U6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOlBhc3NOZXR3b3JrQ29ubmVjdG9yXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImxhbWJkYTpVcGRhdGVNaWNyb3ZtSW1hZ2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTWljcm92bUltYWdlVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1pY3Jvdm1JbWFnZVZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOlVwZGF0ZU1pY3Jvdm1JbWFnZVZlcnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTmV0d29ya0Nvbm5lY3RvciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU5ldHdvcmtDb25uZWN0b3I6IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJsYW1iZGE6VXBkYXRlTmV0d29ya0Nvbm5lY3RvclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGxvYWRGdW5jdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwbG9hZEZ1bmN0aW9uOiBzdHJpbmdbXSA9IFtdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3IgbGFtYmRhLlxuICovXG5leHBvcnQgY2xhc3MgTGFtYmRhQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBBZGRQZXJtaXNzaW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFkZFBlcm1pc3Npb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpGdW5jdGlvblVybEF1dGhUeXBlXCIsXG5cdFx0XCJsYW1iZGE6UHJpbmNpcGFsXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVDYXBhY2l0eVByb3ZpZGVyIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNhcGFjaXR5UHJvdmlkZXJDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcImxhbWJkYTpTZWN1cml0eUdyb3VwSWRzXCIsXG5cdFx0XCJsYW1iZGE6U3VibmV0SWRzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRcdFwibGFtYmRhOkZ1bmN0aW9uQXJuXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVGdW5jdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVGdW5jdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRcdFwibGFtYmRhOkNvZGVTaWduaW5nQ29uZmlnQXJuXCIsXG5cdFx0XCJsYW1iZGE6TGF5ZXJcIixcblx0XHRcImxhbWJkYTpTZWN1cml0eUdyb3VwSWRzXCIsXG5cdFx0XCJsYW1iZGE6U3VibmV0SWRzXCIsXG5cdFx0XCJsYW1iZGE6VnBjSWRzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVGdW5jdGlvblVybENvbmZpZyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkZ1bmN0aW9uQXJuXCIsXG5cdFx0XCJsYW1iZGE6RnVuY3Rpb25VcmxBdXRoVHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlTWljcm92bUltYWdlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU1pY3Jvdm1JbWFnZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlTmV0d29ya0Nvbm5lY3RvciBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVOZXR3b3JrQ29ubmVjdG9yQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJsYW1iZGE6U2VjdXJpdHlHcm91cElkc1wiLFxuXHRcdFwibGFtYmRhOlN1Ym5ldElkc1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkZ1bmN0aW9uQXJuXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBEZWxldGVGdW5jdGlvblVybENvbmZpZyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkZ1bmN0aW9uQXJuXCIsXG5cdFx0XCJsYW1iZGE6RnVuY3Rpb25VcmxBdXRoVHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgRGVsZXRlUmVzb3VyY2VQb2xpY3kgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpQcmluY2lwYWxcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldEV2ZW50U291cmNlTWFwcGluZyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRFdmVudFNvdXJjZU1hcHBpbmdDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpGdW5jdGlvbkFyblwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgR2V0RnVuY3Rpb25VcmxDb25maWcgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RnVuY3Rpb25VcmxDb25maWdDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpGdW5jdGlvbkFyblwiLFxuXHRcdFwibGFtYmRhOkZ1bmN0aW9uVXJsQXV0aFR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEludm9rZUZ1bmN0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEludm9rZUZ1bmN0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6RXZlbnRTb3VyY2VUb2tlblwiLFxuXHRcdFwibGFtYmRhOkludm9rZWRWaWFGdW5jdGlvblVybFwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgSW52b2tlRnVuY3Rpb25VcmwgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW52b2tlRnVuY3Rpb25VcmxDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpFdmVudFNvdXJjZVRva2VuXCIsXG5cdFx0XCJsYW1iZGE6RnVuY3Rpb25Bcm5cIixcblx0XHRcImxhbWJkYTpGdW5jdGlvblVybEF1dGhUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBMaXN0RnVuY3Rpb25VcmxDb25maWdzIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGdW5jdGlvblVybENvbmZpZ3NDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpGdW5jdGlvblVybEF1dGhUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpDb2RlU2lnbmluZ0NvbmZpZ0FyblwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgUHV0UmVzb3VyY2VQb2xpY3kgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVzb3VyY2VQb2xpY3lDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImxhbWJkYTpQcmluY2lwYWxcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFJlbW92ZVBlcm1pc3Npb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVtb3ZlUGVybWlzc2lvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkZ1bmN0aW9uVXJsQXV0aFR5cGVcIixcblx0XHRcImxhbWJkYTpQcmluY2lwYWxcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVbnRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcImF3czpUYWdLZXlzXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkZ1bmN0aW9uQXJuXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJsYW1iZGE6TGF5ZXJcIixcblx0XHRcImxhbWJkYTpTZWN1cml0eUdyb3VwSWRzXCIsXG5cdFx0XCJsYW1iZGE6U3VibmV0SWRzXCIsXG5cdFx0XCJsYW1iZGE6VnBjSWRzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVGdW5jdGlvblVybENvbmZpZyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwibGFtYmRhOkZ1bmN0aW9uQXJuXCIsXG5cdFx0XCJsYW1iZGE6RnVuY3Rpb25VcmxBdXRoVHlwZVwiLFxuXHRdO1xuXG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVFVRVNUX1RBRyA9IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVTT1VSQ0VfVEFHID0gXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6VGFnS2V5cyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19UQUdfS0VZUyA9IFwiYXdzOlRhZ0tleXNcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGxhbWJkYTpDb2RlU2lnbmluZ0NvbmZpZ0FybiAoQVJOKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ09ERV9TSUdOSU5HX0NPTkZJR19BUk4gPSBcImxhbWJkYTpDb2RlU2lnbmluZ0NvbmZpZ0FyblwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogbGFtYmRhOkV2ZW50U291cmNlVG9rZW4gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVWRU5UX1NPVVJDRV9UT0tFTiA9IFwibGFtYmRhOkV2ZW50U291cmNlVG9rZW5cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGxhbWJkYTpGdW5jdGlvbkFybiAoQVJOKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRlVOQ1RJT05fQVJOID0gXCJsYW1iZGE6RnVuY3Rpb25Bcm5cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGxhbWJkYTpGdW5jdGlvblVybEF1dGhUeXBlIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBGVU5DVElPTl9VUkxfQVVUSF9UWVBFID0gXCJsYW1iZGE6RnVuY3Rpb25VcmxBdXRoVHlwZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogbGFtYmRhOkludm9rZWRWaWFGdW5jdGlvblVybCAoQm9vbCkgKi9cblx0c3RhdGljIHJlYWRvbmx5IElOVk9LRURfVklBX0ZVTkNUSU9OX1VSTCA9IFwibGFtYmRhOkludm9rZWRWaWFGdW5jdGlvblVybFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogbGFtYmRhOkxheWVyIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTEFZRVIgPSBcImxhbWJkYTpMYXllclwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogbGFtYmRhOlByaW5jaXBhbCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUFJJTkNJUEFMID0gXCJsYW1iZGE6UHJpbmNpcGFsXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBsYW1iZGE6U2VjdXJpdHlHcm91cElkcyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFQ1VSSVRZX0dST1VQX0lEUyA9IFwibGFtYmRhOlNlY3VyaXR5R3JvdXBJZHNcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGxhbWJkYTpTb3VyY2VGdW5jdGlvbkFybiAoQVJOKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU09VUkNFX0ZVTkNUSU9OX0FSTiA9IFwibGFtYmRhOlNvdXJjZUZ1bmN0aW9uQXJuXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBsYW1iZGE6U3VibmV0SWRzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU1VCTkVUX0lEUyA9IFwibGFtYmRhOlN1Ym5ldElkc1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogbGFtYmRhOlZwY0lkcyAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVlBDX0lEUyA9IFwibGFtYmRhOlZwY0lkc1wiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBsYW1iZGE6Q29kZVNpZ25pbmdDb25maWdBcm5gLlxuXHQgKi9cblx0c3RhdGljIGNvZGVTaWduaW5nQ29uZmlnQVJOKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBBcm5FcXVhbHM6IHsgXCJsYW1iZGE6Q29kZVNpZ25pbmdDb25maWdBcm5cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGxhbWJkYTpFdmVudFNvdXJjZVRva2VuYC5cblx0ICovXG5cdHN0YXRpYyBldmVudFNvdXJjZVRva2VuKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJsYW1iZGE6RXZlbnRTb3VyY2VUb2tlblwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgbGFtYmRhOkZ1bmN0aW9uQXJuYC5cblx0ICovXG5cdHN0YXRpYyBmdW5jdGlvbkFSTih2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IEFybkVxdWFsczogeyBcImxhbWJkYTpGdW5jdGlvbkFyblwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgbGFtYmRhOkZ1bmN0aW9uVXJsQXV0aFR5cGVgLlxuXHQgKi9cblx0c3RhdGljIGZ1bmN0aW9uVVJMQXV0aFR5cGUoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImxhbWJkYTpGdW5jdGlvblVybEF1dGhUeXBlXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBsYW1iZGE6SW52b2tlZFZpYUZ1bmN0aW9uVXJsYC5cblx0ICovXG5cdHN0YXRpYyBpbnZva2VkVmlhRnVuY3Rpb25VUkwoXG5cdFx0dmFsdWU6IGJvb2xlYW4sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHsgQm9vbDogeyBcImxhbWJkYTpJbnZva2VkVmlhRnVuY3Rpb25VcmxcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGxhbWJkYTpMYXllcmAuXG5cdCAqL1xuXHRzdGF0aWMgbGF5ZXIodmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwibGFtYmRhOkxheWVyXCI6IHZhbHVlcyB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgbGFtYmRhOlByaW5jaXBhbGAuXG5cdCAqL1xuXHRzdGF0aWMgcHJpbmNpcGFsKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwibGFtYmRhOlByaW5jaXBhbFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgbGFtYmRhOlNlY3VyaXR5R3JvdXBJZHNgLlxuXHQgKi9cblx0c3RhdGljIHNlY3VyaXR5R3JvdXBJZHMoXG5cdFx0dmFsdWVzOiBzdHJpbmdbXSxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwibGFtYmRhOlNlY3VyaXR5R3JvdXBJZHNcIjogdmFsdWVzIH0sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBsYW1iZGE6U291cmNlRnVuY3Rpb25Bcm5gLlxuXHQgKi9cblx0c3RhdGljIHNvdXJjZUZ1bmN0aW9uQVJOKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBBcm5FcXVhbHM6IHsgXCJsYW1iZGE6U291cmNlRnVuY3Rpb25Bcm5cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGxhbWJkYTpTdWJuZXRJZHNgLlxuXHQgKi9cblx0c3RhdGljIHN1Ym5ldElkcyh2YWx1ZXM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJsYW1iZGE6U3VibmV0SWRzXCI6IHZhbHVlcyB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgbGFtYmRhOlZwY0lkc2AuXG5cdCAqL1xuXHRzdGF0aWMgdnBjSWRzKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwibGFtYmRhOlZwY0lkc1wiOiB2YWx1ZSB9IH07XG5cdH1cbn1cbiJdfQ==