@cdk_utils/iam 1.4.0 → 1.6.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.
- package/.jsii +2919 -1363
- package/lib/generated/services/a2c.js +1 -1
- package/lib/generated/services/a4b.js +3 -3
- package/lib/generated/services/access-analyzer.js +4 -4
- package/lib/generated/services/account-access.js +4 -4
- package/lib/generated/services/account.js +4 -4
- package/lib/generated/services/acm-pca.js +4 -4
- package/lib/generated/services/acm.js +4 -4
- package/lib/generated/services/aco-automation.js +4 -4
- package/lib/generated/services/action-recommendations.js +1 -1
- package/lib/generated/services/activate.js +1 -1
- package/lib/generated/services/agent-registry.js +4 -4
- package/lib/generated/services/agentaccess-mcp.js +2 -2
- package/lib/generated/services/aidevops.js +4 -4
- package/lib/generated/services/aiops.js +4 -4
- package/lib/generated/services/airflow-serverless.js +4 -4
- package/lib/generated/services/airflow.js +4 -4
- package/lib/generated/services/amplify.js +4 -4
- package/lib/generated/services/amplifybackend.js +3 -3
- package/lib/generated/services/amplifyuibuilder.js +4 -4
- package/lib/generated/services/aoss.js +4 -4
- package/lib/generated/services/apigateway.js +4 -4
- package/lib/generated/services/app-integrations.js +4 -4
- package/lib/generated/services/appconfig.js +4 -4
- package/lib/generated/services/appfabric.js +4 -4
- package/lib/generated/services/appflow.js +4 -4
- package/lib/generated/services/application-autoscaling.js +4 -4
- package/lib/generated/services/application-signals-mcp.js +3 -3
- package/lib/generated/services/application-signals.js +4 -4
- package/lib/generated/services/application-transformation.js +1 -1
- package/lib/generated/services/applicationinsights.js +3 -3
- package/lib/generated/services/appmesh-preview.js +2 -2
- package/lib/generated/services/appmesh.js +4 -4
- package/lib/generated/services/apprunner.js +4 -4
- package/lib/generated/services/appstream.js +4 -4
- package/lib/generated/services/appstudio.js +2 -2
- package/lib/generated/services/appsync.js +4 -4
- package/lib/generated/services/apptest.js +3 -3
- package/lib/generated/services/aps.js +4 -4
- package/lib/generated/services/arc-region-switch.js +4 -4
- package/lib/generated/services/arc-zonal-shift.js +4 -4
- package/lib/generated/services/arsenal.js +1 -1
- package/lib/generated/services/artifact.js +4 -4
- package/lib/generated/services/athena.js +4 -4
- package/lib/generated/services/auditmanager.js +4 -4
- package/lib/generated/services/autoscaling-plans.js +2 -2
- package/lib/generated/services/autoscaling.js +4 -4
- package/lib/generated/services/aws-external-anthropic.js +3 -3
- package/lib/generated/services/aws-marketplace-management.js +1 -1
- package/lib/generated/services/aws-marketplace.d.ts +4 -0
- package/lib/generated/services/aws-marketplace.js +13 -5
- package/lib/generated/services/aws-portal.js +1 -1
- package/lib/generated/services/awsconnector.js +1 -1
- package/lib/generated/services/b2bi.js +4 -4
- package/lib/generated/services/backup-gateway.js +4 -4
- package/lib/generated/services/backup-search.js +4 -4
- package/lib/generated/services/backup-storage.js +1 -1
- package/lib/generated/services/backup.js +4 -4
- package/lib/generated/services/batch.js +4 -4
- package/lib/generated/services/bcm-dashboards.js +4 -4
- package/lib/generated/services/bcm-data-exports.js +4 -4
- package/lib/generated/services/bcm-pricing-calculator.js +4 -4
- package/lib/generated/services/bcm-recommended-actions.js +2 -2
- package/lib/generated/services/bedrock-agentcore.js +4 -4
- package/lib/generated/services/bedrock-mantle.js +3 -3
- package/lib/generated/services/bedrock-websearch.js +2 -2
- package/lib/generated/services/bedrock.js +4 -4
- package/lib/generated/services/billing.js +4 -4
- package/lib/generated/services/billingconductor.js +4 -4
- package/lib/generated/services/braket.js +4 -4
- package/lib/generated/services/budgets.js +4 -4
- package/lib/generated/services/bugbust.js +3 -3
- package/lib/generated/services/cases.js +4 -4
- package/lib/generated/services/cassandra.js +4 -4
- package/lib/generated/services/ce.js +4 -4
- package/lib/generated/services/chatbot.js +4 -4
- package/lib/generated/services/chime.js +4 -4
- package/lib/generated/services/cleanrooms-ml.js +4 -4
- package/lib/generated/services/cleanrooms.js +4 -4
- package/lib/generated/services/cloud9.js +4 -4
- package/lib/generated/services/clouddirectory.js +3 -3
- package/lib/generated/services/cloudformation.js +4 -4
- package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
- package/lib/generated/services/cloudfront.js +4 -4
- package/lib/generated/services/cloudhsm.js +4 -4
- package/lib/generated/services/cloudsearch.js +3 -3
- package/lib/generated/services/cloudshell.js +3 -3
- package/lib/generated/services/cloudtrail-data.js +4 -4
- package/lib/generated/services/cloudtrail.js +4 -4
- package/lib/generated/services/cloudwatch.js +4 -4
- package/lib/generated/services/codeartifact.js +4 -4
- package/lib/generated/services/codebuild.js +4 -4
- package/lib/generated/services/codecatalyst.js +4 -4
- package/lib/generated/services/codecommit.js +4 -4
- package/lib/generated/services/codeconnections.js +4 -4
- package/lib/generated/services/codedeploy-commands-secure.js +1 -1
- package/lib/generated/services/codedeploy.js +4 -4
- package/lib/generated/services/codeguru-profiler.js +4 -4
- package/lib/generated/services/codeguru-reviewer.js +4 -4
- package/lib/generated/services/codeguru-security.js +4 -4
- package/lib/generated/services/codeguru.js +1 -1
- package/lib/generated/services/codepipeline.js +4 -4
- package/lib/generated/services/codestar-connections.js +4 -4
- package/lib/generated/services/codestar-notifications.js +6 -5
- package/lib/generated/services/codestar.js +3 -3
- package/lib/generated/services/codewhisperer.js +3 -3
- package/lib/generated/services/cognito-identity.js +4 -4
- package/lib/generated/services/cognito-idp.js +4 -4
- package/lib/generated/services/cognito-sync.js +3 -3
- package/lib/generated/services/comprehend.js +4 -4
- package/lib/generated/services/comprehendmedical.js +3 -3
- package/lib/generated/services/compute-optimizer.js +3 -3
- package/lib/generated/services/config.js +4 -4
- package/lib/generated/services/connect-campaigns.js +4 -4
- package/lib/generated/services/connect.d.ts +10 -0
- package/lib/generated/services/connect.js +15 -5
- package/lib/generated/services/consoleapp.js +2 -2
- package/lib/generated/services/consolidatedbilling.js +1 -1
- package/lib/generated/services/controlcatalog.js +3 -3
- package/lib/generated/services/controltower.js +4 -4
- package/lib/generated/services/cost-optimization-hub.js +2 -2
- package/lib/generated/services/cur.js +4 -4
- package/lib/generated/services/customer-verification.js +1 -1
- package/lib/generated/services/databrew.js +4 -4
- package/lib/generated/services/dataexchange.js +4 -4
- package/lib/generated/services/datapipeline.js +4 -4
- package/lib/generated/services/datasync.js +4 -4
- package/lib/generated/services/datazone.js +4 -4
- package/lib/generated/services/dax.js +4 -4
- package/lib/generated/services/dbqms.js +1 -1
- package/lib/generated/services/deadline.js +4 -4
- package/lib/generated/services/detective.js +4 -4
- package/lib/generated/services/devicefarm.js +4 -4
- package/lib/generated/services/devops-guru.js +4 -4
- package/lib/generated/services/directconnect.js +4 -4
- package/lib/generated/services/discovery.js +3 -3
- package/lib/generated/services/dlm.js +4 -4
- package/lib/generated/services/dms.js +4 -4
- package/lib/generated/services/docdb-elastic.js +4 -4
- package/lib/generated/services/drs.d.ts +162 -0
- package/lib/generated/services/drs.js +191 -5
- package/lib/generated/services/ds-data.js +4 -4
- package/lib/generated/services/ds.js +4 -4
- package/lib/generated/services/dsql.js +4 -4
- package/lib/generated/services/dynamodb.js +4 -4
- package/lib/generated/services/ebs.js +4 -4
- package/lib/generated/services/ec2-instance-connect.js +4 -4
- package/lib/generated/services/ec2.js +4 -4
- package/lib/generated/services/ec2messages.js +2 -2
- package/lib/generated/services/ecr-public.js +4 -4
- package/lib/generated/services/ecr.js +4 -4
- package/lib/generated/services/ecs-mcp.js +1 -1
- package/lib/generated/services/ecs.js +4 -4
- package/lib/generated/services/eks-auth.js +4 -4
- package/lib/generated/services/eks-mcp.js +1 -1
- package/lib/generated/services/eks.js +4 -4
- package/lib/generated/services/elasticache.js +4 -4
- package/lib/generated/services/elasticbeanstalk.js +4 -4
- package/lib/generated/services/elasticfilesystem.js +4 -4
- package/lib/generated/services/elasticloadbalancing.js +4 -4
- package/lib/generated/services/elasticmapreduce.js +4 -4
- package/lib/generated/services/elastictranscoder.js +2 -2
- package/lib/generated/services/elemental-activations.js +1 -1
- package/lib/generated/services/elemental-appliances-software.js +2 -2
- package/lib/generated/services/elemental-inference.js +4 -4
- package/lib/generated/services/elemental-support-cases.js +3 -3
- package/lib/generated/services/elemental-support-content.js +1 -1
- package/lib/generated/services/emr-containers.js +4 -4
- package/lib/generated/services/emr-serverless.js +4 -4
- package/lib/generated/services/entityresolution.js +4 -4
- package/lib/generated/services/es.js +4 -4
- package/lib/generated/services/events.js +4 -4
- package/lib/generated/services/eventsbilltoaws.js +3 -3
- package/lib/generated/services/evidently.js +3 -3
- package/lib/generated/services/evs.js +4 -4
- package/lib/generated/services/execute-api.js +4 -4
- package/lib/generated/services/finops-agent.js +1 -1
- package/lib/generated/services/finspace-api.js +3 -3
- package/lib/generated/services/finspace.js +4 -4
- package/lib/generated/services/firehose.js +4 -4
- package/lib/generated/services/fis.js +4 -4
- package/lib/generated/services/fms.js +4 -4
- package/lib/generated/services/forecast.js +4 -4
- package/lib/generated/services/frauddetector.js +4 -4
- package/lib/generated/services/freertos.js +3 -3
- package/lib/generated/services/freetier.js +2 -2
- package/lib/generated/services/fsx.js +4 -4
- package/lib/generated/services/gamelift.js +4 -4
- package/lib/generated/services/gameliftstreams.js +4 -4
- package/lib/generated/services/geo-maps.js +3 -3
- package/lib/generated/services/geo-places.js +3 -3
- package/lib/generated/services/geo-routes.js +3 -3
- package/lib/generated/services/geo.js +4 -4
- package/lib/generated/services/glacier.js +4 -4
- package/lib/generated/services/globalaccelerator.js +4 -4
- package/lib/generated/services/glue.js +4 -4
- package/lib/generated/services/grafana.js +4 -4
- package/lib/generated/services/greengrass.js +6 -9
- package/lib/generated/services/groundstation.js +4 -4
- package/lib/generated/services/groundtruthlabeling.js +1 -1
- package/lib/generated/services/guardduty.js +4 -4
- package/lib/generated/services/health-agent.js +4 -4
- package/lib/generated/services/health.js +4 -4
- package/lib/generated/services/healthlake.d.ts +4 -0
- package/lib/generated/services/healthlake.js +11 -5
- package/lib/generated/services/honeycode.js +2 -2
- package/lib/generated/services/iam.js +4 -4
- package/lib/generated/services/identity-sync.js +2 -2
- package/lib/generated/services/identitystore-auth.js +1 -1
- package/lib/generated/services/identitystore.js +4 -4
- package/lib/generated/services/imagebuilder.js +4 -4
- package/lib/generated/services/importexport.js +2 -2
- package/lib/generated/services/inspector-scan.js +2 -2
- package/lib/generated/services/inspector.js +2 -2
- package/lib/generated/services/inspector2-telemetry.js +1 -1
- package/lib/generated/services/inspector2.js +4 -4
- package/lib/generated/services/interconnect.js +4 -4
- package/lib/generated/services/internetmonitor.js +4 -4
- package/lib/generated/services/invoicing.js +4 -4
- package/lib/generated/services/iot-device-tester.js +1 -1
- package/lib/generated/services/iot.js +4 -4
- package/lib/generated/services/iotanalytics.js +3 -3
- package/lib/generated/services/iotdeviceadvisor.js +4 -4
- package/lib/generated/services/iotevents.js +3 -3
- package/lib/generated/services/iotfleethub.js +3 -3
- package/lib/generated/services/iotfleetwise.js +4 -4
- package/lib/generated/services/iotjobsdata.js +4 -4
- package/lib/generated/services/iotmanagedintegrations.js +4 -4
- package/lib/generated/services/iotsitewise.js +4 -4
- package/lib/generated/services/iottwinmaker.js +4 -4
- package/lib/generated/services/iotwireless.js +4 -4
- package/lib/generated/services/iq-permission.js +2 -2
- package/lib/generated/services/iq.js +2 -2
- package/lib/generated/services/ivs.js +4 -4
- package/lib/generated/services/ivschat.js +4 -4
- package/lib/generated/services/kafka-cluster.js +3 -3
- package/lib/generated/services/kafka.js +4 -4
- package/lib/generated/services/kafkaconnect.js +4 -4
- package/lib/generated/services/kendra-ranking.js +4 -4
- package/lib/generated/services/kendra.js +4 -4
- package/lib/generated/services/kinesis.js +4 -4
- package/lib/generated/services/kinesisanalytics.js +4 -4
- package/lib/generated/services/kinesisvideo.js +4 -4
- package/lib/generated/services/kms.js +4 -4
- package/lib/generated/services/lakeformation.js +3 -3
- package/lib/generated/services/lambda.js +4 -4
- package/lib/generated/services/launchwizard.js +4 -4
- package/lib/generated/services/lex.js +4 -4
- package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
- package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
- package/lib/generated/services/license-manager.js +4 -4
- package/lib/generated/services/lightsail.js +4 -4
- package/lib/generated/services/logs.js +4 -4
- package/lib/generated/services/lookoutequipment.js +4 -4
- package/lib/generated/services/lookoutmetrics.js +3 -3
- package/lib/generated/services/lookoutvision.js +3 -3
- package/lib/generated/services/m2.js +4 -4
- package/lib/generated/services/machinelearning.js +3 -3
- package/lib/generated/services/macie2.js +4 -4
- package/lib/generated/services/managedblockchain-query.js +2 -2
- package/lib/generated/services/managedblockchain.js +4 -4
- package/lib/generated/services/mapcredits.js +2 -2
- package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
- package/lib/generated/services/mechanicalturk.js +2 -2
- package/lib/generated/services/mediaconnect.js +4 -4
- package/lib/generated/services/mediaconvert.js +4 -4
- package/lib/generated/services/mediaimport.js +1 -1
- package/lib/generated/services/medialive.js +4 -4
- package/lib/generated/services/mediapackage-vod.js +4 -4
- package/lib/generated/services/mediapackage.js +4 -4
- package/lib/generated/services/mediapackagev2.js +4 -4
- package/lib/generated/services/mediastore.js +4 -4
- package/lib/generated/services/mediatailor.js +4 -4
- package/lib/generated/services/medical-imaging.js +4 -4
- package/lib/generated/services/memorydb.js +4 -4
- package/lib/generated/services/mgh.js +4 -4
- package/lib/generated/services/mgn.js +4 -4
- package/lib/generated/services/migrationhub-orchestrator.js +4 -4
- package/lib/generated/services/migrationhub-strategy.js +2 -2
- package/lib/generated/services/mobileanalytics.js +1 -1
- package/lib/generated/services/mobiletargeting.js +4 -4
- package/lib/generated/services/monitron.js +3 -3
- package/lib/generated/services/mpa.js +4 -4
- package/lib/generated/services/mq.js +4 -4
- package/lib/generated/services/neptune-db.js +4 -4
- package/lib/generated/services/neptune-graph.js +4 -4
- package/lib/generated/services/network-firewall.js +4 -4
- package/lib/generated/services/network-security-director.js +1 -1
- package/lib/generated/services/networkflowmonitor.js +4 -4
- package/lib/generated/services/networkmanager-chat.js +1 -1
- package/lib/generated/services/networkmanager.js +4 -4
- package/lib/generated/services/networkmonitor.js +4 -4
- package/lib/generated/services/nimble.js +3 -3
- package/lib/generated/services/notifications-contacts.js +4 -4
- package/lib/generated/services/notifications.js +4 -4
- package/lib/generated/services/nova-act.js +3 -3
- package/lib/generated/services/oam.js +4 -4
- package/lib/generated/services/observabilityadmin.js +4 -4
- package/lib/generated/services/odb.js +4 -4
- package/lib/generated/services/omics.js +4 -4
- package/lib/generated/services/one.js +3 -3
- package/lib/generated/services/opensearch.js +3 -3
- package/lib/generated/services/opsworks-cm.js +2 -2
- package/lib/generated/services/opsworks.js +2 -2
- package/lib/generated/services/organizations.js +4 -4
- package/lib/generated/services/osis.js +4 -4
- package/lib/generated/services/outposts.d.ts +4 -0
- package/lib/generated/services/outposts.js +13 -5
- package/lib/generated/services/panorama.js +3 -3
- package/lib/generated/services/partnercentral-account-management.js +2 -2
- package/lib/generated/services/partnercentral.js +4 -4
- package/lib/generated/services/payment-cryptography.js +4 -4
- package/lib/generated/services/payments.js +3 -3
- package/lib/generated/services/pca-connector-ad.js +4 -4
- package/lib/generated/services/pca-connector-scep.js +4 -4
- package/lib/generated/services/pcs.js +4 -4
- package/lib/generated/services/personalize.js +5 -6
- package/lib/generated/services/pi.js +4 -4
- package/lib/generated/services/pipes.js +4 -4
- package/lib/generated/services/polly.js +3 -3
- package/lib/generated/services/pricing.js +2 -2
- package/lib/generated/services/pricingplanmanager.js +3 -3
- package/lib/generated/services/private-networks.js +3 -3
- package/lib/generated/services/profile.js +4 -4
- package/lib/generated/services/proton.js +4 -4
- package/lib/generated/services/purchase-orders.js +3 -3
- package/lib/generated/services/q.js +3 -3
- package/lib/generated/services/qapps.js +4 -4
- package/lib/generated/services/qbusiness.js +4 -4
- package/lib/generated/services/qdeveloper.js +3 -3
- package/lib/generated/services/qldb.js +3 -3
- package/lib/generated/services/quicksight.js +4 -4
- package/lib/generated/services/ram.js +4 -4
- package/lib/generated/services/rbin.js +4 -4
- package/lib/generated/services/rds-data.js +4 -4
- package/lib/generated/services/rds-db.js +2 -2
- package/lib/generated/services/rds.js +4 -4
- package/lib/generated/services/redshift-data.js +4 -4
- package/lib/generated/services/redshift-serverless.js +4 -4
- package/lib/generated/services/redshift.js +4 -4
- package/lib/generated/services/refactor-spaces.js +4 -4
- package/lib/generated/services/rekognition.js +4 -4
- package/lib/generated/services/repostspace.js +4 -4
- package/lib/generated/services/researchstudio.js +1 -1
- package/lib/generated/services/resiliencehub.js +4 -4
- package/lib/generated/services/resource-explorer-2.js +4 -4
- package/lib/generated/services/resource-explorer.js +1 -1
- package/lib/generated/services/resource-groups.js +4 -4
- package/lib/generated/services/rhelkb.js +1 -1
- package/lib/generated/services/robomaker.js +3 -3
- package/lib/generated/services/rolesanywhere.js +4 -4
- package/lib/generated/services/route53-recovery-cluster.js +4 -4
- package/lib/generated/services/route53-recovery-control-config.js +4 -4
- package/lib/generated/services/route53-recovery-readiness.js +4 -4
- package/lib/generated/services/route53.js +4 -4
- package/lib/generated/services/route53domains.js +2 -2
- package/lib/generated/services/route53globalresolver.js +4 -4
- package/lib/generated/services/route53profiles.js +4 -4
- package/lib/generated/services/route53resolver.js +4 -4
- package/lib/generated/services/rtbfabric.js +4 -4
- package/lib/generated/services/rum.js +4 -4
- package/lib/generated/services/s3-object-lambda.js +3 -3
- package/lib/generated/services/s3-outposts.js +4 -4
- package/lib/generated/services/s3.js +4 -4
- package/lib/generated/services/s3express.js +3 -3
- package/lib/generated/services/s3files.js +4 -4
- package/lib/generated/services/s3tables.js +4 -4
- package/lib/generated/services/s3vectors.js +4 -4
- package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
- package/lib/generated/services/sagemaker-geospatial.js +4 -4
- package/lib/generated/services/sagemaker-mlflow.js +3 -3
- package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
- package/lib/generated/services/sagemaker.js +4 -4
- package/lib/generated/services/savingsplans.js +4 -4
- package/lib/generated/services/scheduler.js +4 -4
- package/lib/generated/services/schemas.js +4 -4
- package/lib/generated/services/scn.js +4 -4
- package/lib/generated/services/sdb.js +3 -3
- package/lib/generated/services/secretsmanager.js +4 -4
- package/lib/generated/services/security-ir.js +4 -4
- package/lib/generated/services/securityagent.js +4 -4
- package/lib/generated/services/securityhub.js +4 -4
- package/lib/generated/services/securitylake.js +4 -4
- package/lib/generated/services/serverlessrepo.js +4 -4
- package/lib/generated/services/servicecatalog.js +4 -4
- package/lib/generated/services/servicediscovery.js +4 -4
- package/lib/generated/services/serviceextract.js +1 -1
- package/lib/generated/services/servicequotas.js +4 -4
- package/lib/generated/services/ses.js +4 -4
- package/lib/generated/services/shield.js +4 -4
- package/lib/generated/services/signer.js +4 -4
- package/lib/generated/services/signin.js +4 -4
- package/lib/generated/services/simspaceweaver.js +3 -3
- package/lib/generated/services/sms-voice.js +4 -4
- package/lib/generated/services/sms.js +1 -1
- package/lib/generated/services/snow-device-management.js +4 -4
- package/lib/generated/services/snowball.js +2 -2
- package/lib/generated/services/sns.js +4 -4
- package/lib/generated/services/social-messaging.js +4 -4
- package/lib/generated/services/sqlworkbench.js +3 -3
- package/lib/generated/services/sqs.js +4 -4
- package/lib/generated/services/ssm-contacts.js +4 -4
- package/lib/generated/services/ssm-guiconnect.js +2 -2
- package/lib/generated/services/ssm-incidents.js +4 -4
- package/lib/generated/services/ssm-quicksetup.js +4 -4
- package/lib/generated/services/ssm-sap.js +4 -4
- package/lib/generated/services/ssm.js +4 -4
- package/lib/generated/services/ssmmessages.js +2 -2
- package/lib/generated/services/sso-directory.js +1 -1
- package/lib/generated/services/sso-oauth.js +3 -3
- package/lib/generated/services/sso.js +4 -4
- package/lib/generated/services/states.js +4 -4
- package/lib/generated/services/storagegateway.js +4 -4
- package/lib/generated/services/sts.js +4 -4
- package/lib/generated/services/support-console.js +1 -1
- package/lib/generated/services/support.js +2 -2
- package/lib/generated/services/supportapp.js +2 -2
- package/lib/generated/services/supportauthz.js +4 -4
- package/lib/generated/services/supportplans.js +1 -1
- package/lib/generated/services/sustainability.js +2 -2
- package/lib/generated/services/swf.js +4 -4
- package/lib/generated/services/synthetics.js +4 -4
- package/lib/generated/services/tag.js +2 -2
- package/lib/generated/services/tax.js +2 -2
- package/lib/generated/services/textract.js +4 -4
- package/lib/generated/services/thinclient.js +4 -4
- package/lib/generated/services/timestream-influxdb.js +4 -4
- package/lib/generated/services/timestream.js +4 -4
- package/lib/generated/services/tiros.js +1 -1
- package/lib/generated/services/tnb.js +4 -4
- package/lib/generated/services/transcribe.js +4 -4
- package/lib/generated/services/transfer.js +4 -4
- package/lib/generated/services/transform-custom.js +3 -3
- package/lib/generated/services/transform.js +3 -3
- package/lib/generated/services/translate.js +4 -4
- package/lib/generated/services/trustedadvisor.js +3 -3
- package/lib/generated/services/ts.js +3 -3
- package/lib/generated/services/user-subscriptions.js +2 -2
- package/lib/generated/services/uxc.js +2 -2
- package/lib/generated/services/vendor-insights.js +3 -3
- package/lib/generated/services/verified-access.js +1 -1
- package/lib/generated/services/verifiedpermissions.js +4 -4
- package/lib/generated/services/voiceid.js +4 -4
- package/lib/generated/services/vpc-lattice-svcs.js +3 -3
- package/lib/generated/services/vpc-lattice.js +4 -4
- package/lib/generated/services/vpce.js +2 -2
- package/lib/generated/services/waf-regional.js +4 -4
- package/lib/generated/services/waf.js +4 -4
- package/lib/generated/services/wafv2.js +4 -4
- package/lib/generated/services/wam.js +1 -1
- package/lib/generated/services/wellarchitected.js +4 -4
- package/lib/generated/services/wickr.js +4 -4
- package/lib/generated/services/wisdom.js +4 -4
- package/lib/generated/services/workdocs.js +3 -3
- package/lib/generated/services/worklink.js +3 -3
- package/lib/generated/services/workmail.js +4 -4
- package/lib/generated/services/workmailmessageflow.js +3 -3
- package/lib/generated/services/workspaces-instances.js +4 -4
- package/lib/generated/services/workspaces-web.js +4 -4
- package/lib/generated/services/workspaces.js +4 -4
- package/lib/generated/services/xray.js +4 -4
- package/package.json +1 -1
|
@@ -16,7 +16,7 @@ class DRSActions {
|
|
|
16
16
|
}
|
|
17
17
|
exports.DRSActions = DRSActions;
|
|
18
18
|
_a = JSII_RTTI_SYMBOL_1;
|
|
19
|
-
DRSActions[_a] = { fqn: "@cdk_utils/iam.drs.DRSActions", version: "1.
|
|
19
|
+
DRSActions[_a] = { fqn: "@cdk_utils/iam.drs.DRSActions", version: "1.6.0" };
|
|
20
20
|
/** The IAM service prefix. */
|
|
21
21
|
DRSActions.SERVICE_PREFIX = "drs";
|
|
22
22
|
/** [Write] drs:AssociateFailbackClientToRecoveryInstanceForDrs */
|
|
@@ -27,6 +27,8 @@ DRSActions.AssociateSourceNetworkStack = "drs:AssociateSourceNetworkStack";
|
|
|
27
27
|
DRSActions.BatchCreateVolumeSnapshotGroupForDrs = "drs:BatchCreateVolumeSnapshotGroupForDrs";
|
|
28
28
|
/** [Write] drs:BatchDeleteSnapshotRequestForDrs */
|
|
29
29
|
DRSActions.BatchDeleteSnapshotRequestForDrs = "drs:BatchDeleteSnapshotRequestForDrs";
|
|
30
|
+
/** [Write] drs:CancelRecoveryPlanExecution */
|
|
31
|
+
DRSActions.CancelRecoveryPlanExecution = "drs:CancelRecoveryPlanExecution";
|
|
30
32
|
/** [Write] drs:CreateConvertedSnapshotForDrs */
|
|
31
33
|
DRSActions.CreateConvertedSnapshotForDrs = "drs:CreateConvertedSnapshotForDrs";
|
|
32
34
|
/** [Write] drs:CreateExtendedSourceServer */
|
|
@@ -35,6 +37,10 @@ DRSActions.CreateExtendedSourceServer = "drs:CreateExtendedSourceServer";
|
|
|
35
37
|
DRSActions.CreateLaunchConfigurationTemplate = "drs:CreateLaunchConfigurationTemplate";
|
|
36
38
|
/** [Write] drs:CreateRecoveryInstanceForDrs */
|
|
37
39
|
DRSActions.CreateRecoveryInstanceForDrs = "drs:CreateRecoveryInstanceForDrs";
|
|
40
|
+
/** [Write] drs:CreateRecoveryPlan */
|
|
41
|
+
DRSActions.CreateRecoveryPlan = "drs:CreateRecoveryPlan";
|
|
42
|
+
/** [Write] drs:CreateRecoveryPlanStep */
|
|
43
|
+
DRSActions.CreateRecoveryPlanStep = "drs:CreateRecoveryPlanStep";
|
|
38
44
|
/** [Write] drs:CreateReplicationConfigurationTemplate */
|
|
39
45
|
DRSActions.CreateReplicationConfigurationTemplate = "drs:CreateReplicationConfigurationTemplate";
|
|
40
46
|
/** [Write] drs:CreateSourceNetwork */
|
|
@@ -49,6 +55,12 @@ DRSActions.DeleteLaunchAction = "drs:DeleteLaunchAction";
|
|
|
49
55
|
DRSActions.DeleteLaunchConfigurationTemplate = "drs:DeleteLaunchConfigurationTemplate";
|
|
50
56
|
/** [Write] drs:DeleteRecoveryInstance */
|
|
51
57
|
DRSActions.DeleteRecoveryInstance = "drs:DeleteRecoveryInstance";
|
|
58
|
+
/** [Write] drs:DeleteRecoveryPlan */
|
|
59
|
+
DRSActions.DeleteRecoveryPlan = "drs:DeleteRecoveryPlan";
|
|
60
|
+
/** [Write] drs:DeleteRecoveryPlanExecution */
|
|
61
|
+
DRSActions.DeleteRecoveryPlanExecution = "drs:DeleteRecoveryPlanExecution";
|
|
62
|
+
/** [Write] drs:DeleteRecoveryPlanStep */
|
|
63
|
+
DRSActions.DeleteRecoveryPlanStep = "drs:DeleteRecoveryPlanStep";
|
|
52
64
|
/** [Write] drs:DeleteReplicationConfigurationTemplate */
|
|
53
65
|
DRSActions.DeleteReplicationConfigurationTemplate = "drs:DeleteReplicationConfigurationTemplate";
|
|
54
66
|
/** [Write] drs:DeleteSourceNetwork */
|
|
@@ -103,6 +115,14 @@ DRSActions.actionGetFailbackLaunchRequestedForDrs = "drs:GetFailbackLaunchReques
|
|
|
103
115
|
DRSActions.actionGetFailbackReplicationConfiguration = "drs:GetFailbackReplicationConfiguration";
|
|
104
116
|
/** [Read] drs:GetLaunchConfiguration */
|
|
105
117
|
DRSActions.actionGetLaunchConfiguration = "drs:GetLaunchConfiguration";
|
|
118
|
+
/** [Read] drs:GetRecoveryPlan */
|
|
119
|
+
DRSActions.actionGetRecoveryPlan = "drs:GetRecoveryPlan";
|
|
120
|
+
/** [Read] drs:GetRecoveryPlanExecution */
|
|
121
|
+
DRSActions.actionGetRecoveryPlanExecution = "drs:GetRecoveryPlanExecution";
|
|
122
|
+
/** [Read] drs:GetRecoveryPlanExecutionStep */
|
|
123
|
+
DRSActions.actionGetRecoveryPlanExecutionStep = "drs:GetRecoveryPlanExecutionStep";
|
|
124
|
+
/** [Read] drs:GetRecoveryPlanStep */
|
|
125
|
+
DRSActions.actionGetRecoveryPlanStep = "drs:GetRecoveryPlanStep";
|
|
106
126
|
/** [Read] drs:GetReplicationConfiguration */
|
|
107
127
|
DRSActions.actionGetReplicationConfiguration = "drs:GetReplicationConfiguration";
|
|
108
128
|
/** [Read] drs:GetSuggestedFailbackClientDeviceMappingForDrs */
|
|
@@ -115,6 +135,14 @@ DRSActions.IssueAgentCertificateForDrs = "drs:IssueAgentCertificateForDrs";
|
|
|
115
135
|
DRSActions.ListExtensibleSourceServers = "drs:ListExtensibleSourceServers";
|
|
116
136
|
/** [Read] drs:ListLaunchActions */
|
|
117
137
|
DRSActions.ListLaunchActions = "drs:ListLaunchActions";
|
|
138
|
+
/** [Read] drs:ListRecoveryPlanExecutionSteps */
|
|
139
|
+
DRSActions.ListRecoveryPlanExecutionSteps = "drs:ListRecoveryPlanExecutionSteps";
|
|
140
|
+
/** [Read] drs:ListRecoveryPlanExecutions */
|
|
141
|
+
DRSActions.ListRecoveryPlanExecutions = "drs:ListRecoveryPlanExecutions";
|
|
142
|
+
/** [Read] drs:ListRecoveryPlanSteps */
|
|
143
|
+
DRSActions.ListRecoveryPlanSteps = "drs:ListRecoveryPlanSteps";
|
|
144
|
+
/** [Read] drs:ListRecoveryPlans */
|
|
145
|
+
DRSActions.ListRecoveryPlans = "drs:ListRecoveryPlans";
|
|
118
146
|
/** [Read] drs:ListStagingAccounts */
|
|
119
147
|
DRSActions.ListStagingAccounts = "drs:ListStagingAccounts";
|
|
120
148
|
/** [Read] drs:ListTagsForResource */
|
|
@@ -135,8 +163,12 @@ DRSActions.NotifyReplicationServerAuthenticationForDrs = "drs:NotifyReplicationS
|
|
|
135
163
|
DRSActions.NotifyVolumeEventForDrs = "drs:NotifyVolumeEventForDrs";
|
|
136
164
|
/** [Write] drs:PutLaunchAction */
|
|
137
165
|
DRSActions.PutLaunchAction = "drs:PutLaunchAction";
|
|
166
|
+
/** [Write] drs:ReorderRecoveryPlanSteps */
|
|
167
|
+
DRSActions.ReorderRecoveryPlanSteps = "drs:ReorderRecoveryPlanSteps";
|
|
138
168
|
/** [Write] drs:RetryDataReplication */
|
|
139
169
|
DRSActions.RetryDataReplication = "drs:RetryDataReplication";
|
|
170
|
+
/** [Write] drs:RetryRecoveryPlanExecutionStep */
|
|
171
|
+
DRSActions.RetryRecoveryPlanExecutionStep = "drs:RetryRecoveryPlanExecutionStep";
|
|
140
172
|
/** [Write] drs:ReverseReplication */
|
|
141
173
|
DRSActions.ReverseReplication = "drs:ReverseReplication";
|
|
142
174
|
/** [Write] drs:SendAgentLogsForDrs */
|
|
@@ -155,6 +187,8 @@ DRSActions.SendVolumeStatsForDrs = "drs:SendVolumeStatsForDrs";
|
|
|
155
187
|
DRSActions.StartFailbackLaunch = "drs:StartFailbackLaunch";
|
|
156
188
|
/** [Write] drs:StartRecovery */
|
|
157
189
|
DRSActions.StartRecovery = "drs:StartRecovery";
|
|
190
|
+
/** [Write] drs:StartRecoveryPlanExecution */
|
|
191
|
+
DRSActions.StartRecoveryPlanExecution = "drs:StartRecoveryPlanExecution";
|
|
158
192
|
/** [Write] drs:StartReplication */
|
|
159
193
|
DRSActions.StartReplication = "drs:StartReplication";
|
|
160
194
|
/** [Write] drs:StartSourceNetworkRecovery */
|
|
@@ -193,6 +227,12 @@ DRSActions.UpdateFailbackReplicationConfiguration = "drs:UpdateFailbackReplicati
|
|
|
193
227
|
DRSActions.UpdateLaunchConfiguration = "drs:UpdateLaunchConfiguration";
|
|
194
228
|
/** [Write] drs:UpdateLaunchConfigurationTemplate */
|
|
195
229
|
DRSActions.UpdateLaunchConfigurationTemplate = "drs:UpdateLaunchConfigurationTemplate";
|
|
230
|
+
/** [Write] drs:UpdateRecoveryPlan */
|
|
231
|
+
DRSActions.UpdateRecoveryPlan = "drs:UpdateRecoveryPlan";
|
|
232
|
+
/** [Write] drs:UpdateRecoveryPlanExecutionStep */
|
|
233
|
+
DRSActions.UpdateRecoveryPlanExecutionStep = "drs:UpdateRecoveryPlanExecutionStep";
|
|
234
|
+
/** [Write] drs:UpdateRecoveryPlanStep */
|
|
235
|
+
DRSActions.UpdateRecoveryPlanStep = "drs:UpdateRecoveryPlanStep";
|
|
196
236
|
/** [Write] drs:UpdateReplicationCertificateForDrs */
|
|
197
237
|
DRSActions.UpdateReplicationCertificateForDrs = "drs:UpdateReplicationCertificateForDrs";
|
|
198
238
|
/** [Write] drs:UpdateReplicationConfiguration */
|
|
@@ -222,10 +262,18 @@ DRSActions.AllReadActions = [
|
|
|
222
262
|
DRSActions.actionGetFailbackLaunchRequestedForDrs,
|
|
223
263
|
DRSActions.actionGetFailbackReplicationConfiguration,
|
|
224
264
|
DRSActions.actionGetLaunchConfiguration,
|
|
265
|
+
DRSActions.actionGetRecoveryPlan,
|
|
266
|
+
DRSActions.actionGetRecoveryPlanExecution,
|
|
267
|
+
DRSActions.actionGetRecoveryPlanExecutionStep,
|
|
268
|
+
DRSActions.actionGetRecoveryPlanStep,
|
|
225
269
|
DRSActions.actionGetReplicationConfiguration,
|
|
226
270
|
DRSActions.actionGetSuggestedFailbackClientDeviceMappingForDrs,
|
|
227
271
|
DRSActions.ListExtensibleSourceServers,
|
|
228
272
|
DRSActions.ListLaunchActions,
|
|
273
|
+
DRSActions.ListRecoveryPlanExecutionSteps,
|
|
274
|
+
DRSActions.ListRecoveryPlanExecutions,
|
|
275
|
+
DRSActions.ListRecoveryPlanSteps,
|
|
276
|
+
DRSActions.ListRecoveryPlans,
|
|
229
277
|
DRSActions.ListStagingAccounts,
|
|
230
278
|
DRSActions.ListTagsForResource,
|
|
231
279
|
];
|
|
@@ -235,10 +283,13 @@ DRSActions.AllWriteActions = [
|
|
|
235
283
|
DRSActions.AssociateSourceNetworkStack,
|
|
236
284
|
DRSActions.BatchCreateVolumeSnapshotGroupForDrs,
|
|
237
285
|
DRSActions.BatchDeleteSnapshotRequestForDrs,
|
|
286
|
+
DRSActions.CancelRecoveryPlanExecution,
|
|
238
287
|
DRSActions.CreateConvertedSnapshotForDrs,
|
|
239
288
|
DRSActions.CreateExtendedSourceServer,
|
|
240
289
|
DRSActions.CreateLaunchConfigurationTemplate,
|
|
241
290
|
DRSActions.CreateRecoveryInstanceForDrs,
|
|
291
|
+
DRSActions.CreateRecoveryPlan,
|
|
292
|
+
DRSActions.CreateRecoveryPlanStep,
|
|
242
293
|
DRSActions.CreateReplicationConfigurationTemplate,
|
|
243
294
|
DRSActions.CreateSourceNetwork,
|
|
244
295
|
DRSActions.CreateSourceServerForDrs,
|
|
@@ -246,6 +297,9 @@ DRSActions.AllWriteActions = [
|
|
|
246
297
|
DRSActions.DeleteLaunchAction,
|
|
247
298
|
DRSActions.DeleteLaunchConfigurationTemplate,
|
|
248
299
|
DRSActions.DeleteRecoveryInstance,
|
|
300
|
+
DRSActions.DeleteRecoveryPlan,
|
|
301
|
+
DRSActions.DeleteRecoveryPlanExecution,
|
|
302
|
+
DRSActions.DeleteRecoveryPlanStep,
|
|
249
303
|
DRSActions.DeleteReplicationConfigurationTemplate,
|
|
250
304
|
DRSActions.DeleteSourceNetwork,
|
|
251
305
|
DRSActions.DeleteSourceServer,
|
|
@@ -262,7 +316,9 @@ DRSActions.AllWriteActions = [
|
|
|
262
316
|
DRSActions.NotifyReplicationServerAuthenticationForDrs,
|
|
263
317
|
DRSActions.NotifyVolumeEventForDrs,
|
|
264
318
|
DRSActions.PutLaunchAction,
|
|
319
|
+
DRSActions.ReorderRecoveryPlanSteps,
|
|
265
320
|
DRSActions.RetryDataReplication,
|
|
321
|
+
DRSActions.RetryRecoveryPlanExecutionStep,
|
|
266
322
|
DRSActions.ReverseReplication,
|
|
267
323
|
DRSActions.SendAgentLogsForDrs,
|
|
268
324
|
DRSActions.SendAgentMetricsForDrs,
|
|
@@ -272,6 +328,7 @@ DRSActions.AllWriteActions = [
|
|
|
272
328
|
DRSActions.SendVolumeStatsForDrs,
|
|
273
329
|
DRSActions.StartFailbackLaunch,
|
|
274
330
|
DRSActions.StartRecovery,
|
|
331
|
+
DRSActions.StartRecoveryPlanExecution,
|
|
275
332
|
DRSActions.StartReplication,
|
|
276
333
|
DRSActions.StartSourceNetworkRecovery,
|
|
277
334
|
DRSActions.StartSourceNetworkReplication,
|
|
@@ -289,6 +346,9 @@ DRSActions.AllWriteActions = [
|
|
|
289
346
|
DRSActions.UpdateFailbackReplicationConfiguration,
|
|
290
347
|
DRSActions.UpdateLaunchConfiguration,
|
|
291
348
|
DRSActions.UpdateLaunchConfigurationTemplate,
|
|
349
|
+
DRSActions.UpdateRecoveryPlan,
|
|
350
|
+
DRSActions.UpdateRecoveryPlanExecutionStep,
|
|
351
|
+
DRSActions.UpdateRecoveryPlanStep,
|
|
292
352
|
DRSActions.UpdateReplicationCertificateForDrs,
|
|
293
353
|
DRSActions.UpdateReplicationConfiguration,
|
|
294
354
|
DRSActions.UpdateReplicationConfigurationTemplate,
|
|
@@ -305,6 +365,8 @@ DRSActions.AllTaggingActions = [
|
|
|
305
365
|
const JobResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):job\/(?<jobId>[^:/?]+)$/;
|
|
306
366
|
const LaunchConfigurationTemplateResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):launch-configuration-template\/(?<launchConfigurationTemplateId>[^:/?]+)$/;
|
|
307
367
|
const RecoveryInstanceResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):recovery-instance\/(?<recoveryInstanceId>[^:/?]+)$/;
|
|
368
|
+
const RecoveryPlanExecutionResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):recovery-plan-execution\/(?<recoveryPlanExecutionId>[^:/?]+)$/;
|
|
369
|
+
const RecoveryPlanResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):recovery-plan\/(?<recoveryPlanId>[^:/?]+)$/;
|
|
308
370
|
const ReplicationConfigurationTemplateResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):replication-configuration-template\/(?<replicationConfigurationTemplateId>[^:/?]+)$/;
|
|
309
371
|
const SourceNetworkResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):source-network\/(?<sourceNetworkId>[^:/?]+)$/;
|
|
310
372
|
const SourceServerResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):source-server\/(?<sourceServerId>[^:/?]+)$/;
|
|
@@ -396,6 +458,62 @@ class DRSResources {
|
|
|
396
458
|
recoveryInstanceId: match.groups.recoveryInstanceId,
|
|
397
459
|
};
|
|
398
460
|
}
|
|
461
|
+
/**
|
|
462
|
+
* Builds an ARN for the RecoveryPlanExecutionResource resource.
|
|
463
|
+
*/
|
|
464
|
+
static recoveryPlanExecutionResource(props) {
|
|
465
|
+
return `arn:${props.partition ?? "aws"}:drs:${props.region ?? "*"}:${props.account ?? "*"}:recovery-plan-execution/${props.recoveryPlanExecutionId}`;
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Validates whether a string is a valid ARN for the RecoveryPlanExecutionResource resource.
|
|
469
|
+
*/
|
|
470
|
+
static isValidRecoveryPlanExecutionResourceArn(arn) {
|
|
471
|
+
return RecoveryPlanExecutionResourceArnRegex.test(arn);
|
|
472
|
+
}
|
|
473
|
+
/**
|
|
474
|
+
* Parses a RecoveryPlanExecutionResource ARN into its components.
|
|
475
|
+
* @throws Error if the ARN does not match the expected format.
|
|
476
|
+
*/
|
|
477
|
+
static parseRecoveryPlanExecutionResourceArn(arn) {
|
|
478
|
+
const match = RecoveryPlanExecutionResourceArnRegex.exec(arn);
|
|
479
|
+
if (!match?.groups) {
|
|
480
|
+
throw new Error(`Invalid RecoveryPlanExecutionResource ARN: ${arn}`);
|
|
481
|
+
}
|
|
482
|
+
return {
|
|
483
|
+
partition: match.groups.partition,
|
|
484
|
+
region: match.groups.region,
|
|
485
|
+
account: match.groups.account,
|
|
486
|
+
recoveryPlanExecutionId: match.groups.recoveryPlanExecutionId,
|
|
487
|
+
};
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Builds an ARN for the RecoveryPlanResource resource.
|
|
491
|
+
*/
|
|
492
|
+
static recoveryPlanResource(props) {
|
|
493
|
+
return `arn:${props.partition ?? "aws"}:drs:${props.region ?? "*"}:${props.account ?? "*"}:recovery-plan/${props.recoveryPlanId}`;
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Validates whether a string is a valid ARN for the RecoveryPlanResource resource.
|
|
497
|
+
*/
|
|
498
|
+
static isValidRecoveryPlanResourceArn(arn) {
|
|
499
|
+
return RecoveryPlanResourceArnRegex.test(arn);
|
|
500
|
+
}
|
|
501
|
+
/**
|
|
502
|
+
* Parses a RecoveryPlanResource ARN into its components.
|
|
503
|
+
* @throws Error if the ARN does not match the expected format.
|
|
504
|
+
*/
|
|
505
|
+
static parseRecoveryPlanResourceArn(arn) {
|
|
506
|
+
const match = RecoveryPlanResourceArnRegex.exec(arn);
|
|
507
|
+
if (!match?.groups) {
|
|
508
|
+
throw new Error(`Invalid RecoveryPlanResource ARN: ${arn}`);
|
|
509
|
+
}
|
|
510
|
+
return {
|
|
511
|
+
partition: match.groups.partition,
|
|
512
|
+
region: match.groups.region,
|
|
513
|
+
account: match.groups.account,
|
|
514
|
+
recoveryPlanId: match.groups.recoveryPlanId,
|
|
515
|
+
};
|
|
516
|
+
}
|
|
399
517
|
/**
|
|
400
518
|
* Builds an ARN for the ReplicationConfigurationTemplateResource resource.
|
|
401
519
|
*/
|
|
@@ -483,7 +601,7 @@ class DRSResources {
|
|
|
483
601
|
}
|
|
484
602
|
exports.DRSResources = DRSResources;
|
|
485
603
|
_b = JSII_RTTI_SYMBOL_1;
|
|
486
|
-
DRSResources[_b] = { fqn: "@cdk_utils/iam.drs.DRSResources", version: "1.
|
|
604
|
+
DRSResources[_b] = { fqn: "@cdk_utils/iam.drs.DRSResources", version: "1.6.0" };
|
|
487
605
|
/**
|
|
488
606
|
* API operation to required IAM actions mapping for drs.
|
|
489
607
|
*/
|
|
@@ -491,11 +609,13 @@ class DRSOperations {
|
|
|
491
609
|
}
|
|
492
610
|
exports.DRSOperations = DRSOperations;
|
|
493
611
|
_c = JSII_RTTI_SYMBOL_1;
|
|
494
|
-
DRSOperations[_c] = { fqn: "@cdk_utils/iam.drs.DRSOperations", version: "1.
|
|
612
|
+
DRSOperations[_c] = { fqn: "@cdk_utils/iam.drs.DRSOperations", version: "1.6.0" };
|
|
495
613
|
/** IAM actions required for the AssociateSourceNetworkStack API call. */
|
|
496
614
|
DRSOperations.AssociateSourceNetworkStack = [
|
|
497
615
|
"drs:AssociateSourceNetworkStack",
|
|
498
616
|
];
|
|
617
|
+
/** IAM actions required for the CancelRecoveryPlanExecution API call. */
|
|
618
|
+
DRSOperations.CancelRecoveryPlanExecution = [];
|
|
499
619
|
/** IAM actions required for the CreateExtendedSourceServer API call. */
|
|
500
620
|
DRSOperations.CreateExtendedSourceServer = [
|
|
501
621
|
"drs:CreateExtendedSourceServer",
|
|
@@ -506,6 +626,12 @@ DRSOperations.CreateLaunchConfigurationTemplate = [
|
|
|
506
626
|
"drs:CreateLaunchConfigurationTemplate",
|
|
507
627
|
"drs:TagResource",
|
|
508
628
|
];
|
|
629
|
+
/** IAM actions required for the CreateRecoveryPlan API call. */
|
|
630
|
+
DRSOperations.CreateRecoveryPlan = ["drs:CreateRecoveryPlan"];
|
|
631
|
+
/** IAM actions required for the CreateRecoveryPlanStep API call. */
|
|
632
|
+
DRSOperations.CreateRecoveryPlanStep = [
|
|
633
|
+
"drs:CreateRecoveryPlanStep",
|
|
634
|
+
];
|
|
509
635
|
/** IAM actions required for the CreateReplicationConfigurationTemplate API call. */
|
|
510
636
|
DRSOperations.CreateReplicationConfigurationTemplate = [
|
|
511
637
|
"drs:CreateReplicationConfigurationTemplate",
|
|
@@ -528,6 +654,14 @@ DRSOperations.DeleteLaunchConfigurationTemplate = [
|
|
|
528
654
|
DRSOperations.DeleteRecoveryInstance = [
|
|
529
655
|
"drs:DeleteRecoveryInstance",
|
|
530
656
|
];
|
|
657
|
+
/** IAM actions required for the DeleteRecoveryPlan API call. */
|
|
658
|
+
DRSOperations.DeleteRecoveryPlan = ["drs:DeleteRecoveryPlan"];
|
|
659
|
+
/** IAM actions required for the DeleteRecoveryPlanExecution API call. */
|
|
660
|
+
DRSOperations.DeleteRecoveryPlanExecution = [];
|
|
661
|
+
/** IAM actions required for the DeleteRecoveryPlanStep API call. */
|
|
662
|
+
DRSOperations.DeleteRecoveryPlanStep = [
|
|
663
|
+
"drs:DeleteRecoveryPlanStep",
|
|
664
|
+
];
|
|
531
665
|
/** IAM actions required for the DeleteReplicationConfigurationTemplate API call. */
|
|
532
666
|
DRSOperations.DeleteReplicationConfigurationTemplate = [
|
|
533
667
|
"drs:DeleteReplicationConfigurationTemplate",
|
|
@@ -584,6 +718,16 @@ DRSOperations.opGetFailbackReplicationConfiguration = [
|
|
|
584
718
|
DRSOperations.opGetLaunchConfiguration = [
|
|
585
719
|
"drs:GetLaunchConfiguration",
|
|
586
720
|
];
|
|
721
|
+
/** IAM actions required for the GetRecoveryPlan API call. */
|
|
722
|
+
DRSOperations.opGetRecoveryPlan = ["drs:GetRecoveryPlan"];
|
|
723
|
+
/** IAM actions required for the GetRecoveryPlanExecution API call. */
|
|
724
|
+
DRSOperations.opGetRecoveryPlanExecution = [
|
|
725
|
+
"drs:GetRecoveryPlanExecution",
|
|
726
|
+
];
|
|
727
|
+
/** IAM actions required for the GetRecoveryPlanExecutionStep API call. */
|
|
728
|
+
DRSOperations.opGetRecoveryPlanExecutionStep = [];
|
|
729
|
+
/** IAM actions required for the GetRecoveryPlanStep API call. */
|
|
730
|
+
DRSOperations.opGetRecoveryPlanStep = ["drs:GetRecoveryPlanStep"];
|
|
587
731
|
/** IAM actions required for the GetReplicationConfiguration API call. */
|
|
588
732
|
DRSOperations.opGetReplicationConfiguration = [
|
|
589
733
|
"drs:GetReplicationConfiguration",
|
|
@@ -596,14 +740,32 @@ DRSOperations.ListExtensibleSourceServers = [
|
|
|
596
740
|
];
|
|
597
741
|
/** IAM actions required for the ListLaunchActions API call. */
|
|
598
742
|
DRSOperations.ListLaunchActions = ["drs:ListLaunchActions"];
|
|
743
|
+
/** IAM actions required for the ListRecoveryPlanExecutionSteps API call. */
|
|
744
|
+
DRSOperations.ListRecoveryPlanExecutionSteps = [];
|
|
745
|
+
/** IAM actions required for the ListRecoveryPlanExecutions API call. */
|
|
746
|
+
DRSOperations.ListRecoveryPlanExecutions = [
|
|
747
|
+
"drs:ListRecoveryPlanExecutions",
|
|
748
|
+
];
|
|
749
|
+
/** IAM actions required for the ListRecoveryPlanSteps API call. */
|
|
750
|
+
DRSOperations.ListRecoveryPlanSteps = [
|
|
751
|
+
"drs:ListRecoveryPlanSteps",
|
|
752
|
+
];
|
|
753
|
+
/** IAM actions required for the ListRecoveryPlans API call. */
|
|
754
|
+
DRSOperations.ListRecoveryPlans = ["drs:ListRecoveryPlans"];
|
|
599
755
|
/** IAM actions required for the ListStagingAccounts API call. */
|
|
600
756
|
DRSOperations.ListStagingAccounts = ["drs:ListStagingAccounts"];
|
|
601
757
|
/** IAM actions required for the ListTagsForResource API call. */
|
|
602
758
|
DRSOperations.ListTagsForResource = ["drs:ListTagsForResource"];
|
|
603
759
|
/** IAM actions required for the PutLaunchAction API call. */
|
|
604
760
|
DRSOperations.PutLaunchAction = ["drs:PutLaunchAction"];
|
|
761
|
+
/** IAM actions required for the ReorderRecoveryPlanSteps API call. */
|
|
762
|
+
DRSOperations.ReorderRecoveryPlanSteps = [
|
|
763
|
+
"drs:ReorderRecoveryPlanSteps",
|
|
764
|
+
];
|
|
605
765
|
/** IAM actions required for the RetryDataReplication API call. */
|
|
606
766
|
DRSOperations.RetryDataReplication = ["drs:RetryDataReplication"];
|
|
767
|
+
/** IAM actions required for the RetryRecoveryPlanExecutionStep API call. */
|
|
768
|
+
DRSOperations.RetryRecoveryPlanExecutionStep = [];
|
|
607
769
|
/** IAM actions required for the ReverseReplication API call. */
|
|
608
770
|
DRSOperations.ReverseReplication = ["drs:ReverseReplication"];
|
|
609
771
|
/** IAM actions required for the StartFailbackLaunch API call. */
|
|
@@ -613,6 +775,10 @@ DRSOperations.StartRecovery = [
|
|
|
613
775
|
"drs:StartRecovery",
|
|
614
776
|
"drs:TagResource",
|
|
615
777
|
];
|
|
778
|
+
/** IAM actions required for the StartRecoveryPlanExecution API call. */
|
|
779
|
+
DRSOperations.StartRecoveryPlanExecution = [
|
|
780
|
+
"drs:StartRecoveryPlanExecution",
|
|
781
|
+
];
|
|
616
782
|
/** IAM actions required for the StartReplication API call. */
|
|
617
783
|
DRSOperations.StartReplication = ["drs:StartReplication"];
|
|
618
784
|
/** IAM actions required for the StartSourceNetworkRecovery API call. */
|
|
@@ -652,6 +818,16 @@ DRSOperations.UpdateLaunchConfiguration = [
|
|
|
652
818
|
DRSOperations.UpdateLaunchConfigurationTemplate = [
|
|
653
819
|
"drs:UpdateLaunchConfigurationTemplate",
|
|
654
820
|
];
|
|
821
|
+
/** IAM actions required for the UpdateRecoveryPlan API call. */
|
|
822
|
+
DRSOperations.UpdateRecoveryPlan = ["drs:UpdateRecoveryPlan"];
|
|
823
|
+
/** IAM actions required for the UpdateRecoveryPlanExecutionStep API call. */
|
|
824
|
+
DRSOperations.UpdateRecoveryPlanExecutionStep = [
|
|
825
|
+
"drs:UpdateRecoveryPlanExecutionStep",
|
|
826
|
+
];
|
|
827
|
+
/** IAM actions required for the UpdateRecoveryPlanStep API call. */
|
|
828
|
+
DRSOperations.UpdateRecoveryPlanStep = [
|
|
829
|
+
"drs:UpdateRecoveryPlanStep",
|
|
830
|
+
];
|
|
655
831
|
/** IAM actions required for the UpdateReplicationConfiguration API call. */
|
|
656
832
|
DRSOperations.UpdateReplicationConfiguration = [
|
|
657
833
|
"drs:UpdateReplicationConfiguration",
|
|
@@ -697,7 +873,7 @@ class DRSConditions {
|
|
|
697
873
|
}
|
|
698
874
|
exports.DRSConditions = DRSConditions;
|
|
699
875
|
_d = JSII_RTTI_SYMBOL_1;
|
|
700
|
-
DRSConditions[_d] = { fqn: "@cdk_utils/iam.drs.DRSConditions", version: "1.
|
|
876
|
+
DRSConditions[_d] = { fqn: "@cdk_utils/iam.drs.DRSConditions", version: "1.6.0" };
|
|
701
877
|
/** Condition keys applicable to the AssociateSourceNetworkStack action. */
|
|
702
878
|
DRSConditions.AssociateSourceNetworkStackConditionKeys = [
|
|
703
879
|
"aws:RequestTag/${TagKey}",
|
|
@@ -723,6 +899,11 @@ DRSConditions.CreateRecoveryInstanceForDrsConditionKeys = [
|
|
|
723
899
|
"aws:RequestTag/${TagKey}",
|
|
724
900
|
"aws:TagKeys",
|
|
725
901
|
];
|
|
902
|
+
/** Condition keys applicable to the CreateRecoveryPlan action. */
|
|
903
|
+
DRSConditions.CreateRecoveryPlanConditionKeys = [
|
|
904
|
+
"aws:RequestTag/${TagKey}",
|
|
905
|
+
"aws:TagKeys",
|
|
906
|
+
];
|
|
726
907
|
/** Condition keys applicable to the CreateReplicationConfigurationTemplate action. */
|
|
727
908
|
DRSConditions.CreateReplicationConfigurationTemplateConditionKeys = ["aws:RequestTag/${TagKey}", "aws:TagKeys"];
|
|
728
909
|
/** Condition keys applicable to the CreateSourceNetwork action. */
|
|
@@ -755,6 +936,11 @@ DRSConditions.StartRecoveryConditionKeys = [
|
|
|
755
936
|
"aws:RequestTag/${TagKey}",
|
|
756
937
|
"aws:TagKeys",
|
|
757
938
|
];
|
|
939
|
+
/** Condition keys applicable to the StartRecoveryPlanExecution action. */
|
|
940
|
+
DRSConditions.StartRecoveryPlanExecutionConditionKeys = [
|
|
941
|
+
"aws:RequestTag/${TagKey}",
|
|
942
|
+
"aws:TagKeys",
|
|
943
|
+
];
|
|
758
944
|
/** Condition keys applicable to the StartSourceNetworkRecovery action. */
|
|
759
945
|
DRSConditions.StartSourceNetworkRecoveryConditionKeys = [
|
|
760
946
|
"aws:RequestTag/${TagKey}",
|
|
@@ -783,4 +969,4 @@ DRSConditions.AWS_TAG_KEYS = "aws:TagKeys";
|
|
|
783
969
|
DRSConditions.CREATE_ACTION = "drs:CreateAction";
|
|
784
970
|
/** Condition key: drs:EC2InstanceARN (ARN) */
|
|
785
971
|
DRSConditions.EC2_INSTANCE_ARN = "drs:EC2InstanceARN";
|
|
786
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9kcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCwwQ0FBMEM7QUFDMUMsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsVUFBVTs7QUFBdkIsZ0NBK1VDOzs7QUE5VUEsOEJBQThCO0FBQ2QseUJBQWMsR0FBRyxLQUFLLENBQUM7QUFFdkMsa0VBQWtFO0FBQ2xELDBEQUErQyxHQUM5RCxxREFBcUQsQ0FBQztBQUN2RCw4Q0FBOEM7QUFDOUIsc0NBQTJCLEdBQzFDLGlDQUFpQyxDQUFDO0FBQ25DLHVEQUF1RDtBQUN2QywrQ0FBb0MsR0FDbkQsMENBQTBDLENBQUM7QUFDNUMsbURBQW1EO0FBQ25DLDJDQUFnQyxHQUMvQyxzQ0FBc0MsQ0FBQztBQUN4QyxnREFBZ0Q7QUFDaEMsd0NBQTZCLEdBQzVDLG1DQUFtQyxDQUFDO0FBQ3JDLDZDQUE2QztBQUM3QixxQ0FBMEIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM5RSxvREFBb0Q7QUFDcEMsNENBQWlDLEdBQ2hELHVDQUF1QyxDQUFDO0FBQ3pDLCtDQUErQztBQUMvQix1Q0FBNEIsR0FDM0Msa0NBQWtDLENBQUM7QUFDcEMseURBQXlEO0FBQ3pDLGlEQUFzQyxHQUNyRCw0Q0FBNEMsQ0FBQztBQUM5QyxzQ0FBc0M7QUFDdEIsOEJBQW1CLEdBQUcseUJBQXlCLENBQUM7QUFDaEUsMkNBQTJDO0FBQzNCLG1DQUF3QixHQUFHLDhCQUE4QixDQUFDO0FBQzFFLDRCQUE0QjtBQUNaLG9CQUFTLEdBQUcsZUFBZSxDQUFDO0FBQzVDLHFDQUFxQztBQUNyQiw2QkFBa0IsR0FBRyx3QkFBd0IsQ0FBQztBQUM5RCxvREFBb0Q7QUFDcEMsNENBQWlDLEdBQ2hELHVDQUF1QyxDQUFDO0FBQ3pDLHlD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REFBdUQ7QUFDdkMsNkJBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCx3REFBd0Q7QUFDeEMsOEJBQWdCLEdBQUcsMkJBQTJCLENBQUM7QUFDL0QsaURBQWlEO0FBQ2pDLDBCQUFZLEdBQUcsYUFBYSxDQUFDO0FBQzdDLCtDQUErQztBQUMvQiwyQkFBYSxHQUFHLGtCQUFrQixDQUFDO0FBQ25ELDhDQUE4QztBQUM5Qiw4QkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL2Rycy5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgZHJzIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBEUlNBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwiZHJzXCI7XG5cblx0LyoqIFtXcml0ZV0gZHJzOkFzc29jaWF0ZUZhaWxiYWNrQ2xpZW50VG9SZWNvdmVyeUluc3RhbmNlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVGYWlsYmFja0NsaWVudFRvUmVjb3ZlcnlJbnN0YW5jZUZvckRycyA9XG5cdFx0XCJkcnM6QXNzb2NpYXRlRmFpbGJhY2tDbGllbnRUb1JlY292ZXJ5SW5zdGFuY2VGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFjayAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrID1cblx0XHRcImRyczpBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2tcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkJhdGNoQ3JlYXRlVm9sdW1lU25hcHNob3RHcm91cEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQmF0Y2hDcmVhdGVWb2x1bWVTbmFwc2hvdEdyb3VwRm9yRHJzID1cblx0XHRcImRyczpCYXRjaENyZWF0ZVZvbHVtZVNuYXBzaG90R3JvdXBGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkJhdGNoRGVsZXRlU25hcHNob3RSZXF1ZXN0Rm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaERlbGV0ZVNuYXBzaG90UmVxdWVzdEZvckRycyA9XG5cdFx0XCJkcnM6QmF0Y2hEZWxldGVTbmFwc2hvdFJlcXVlc3RGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZUNvbnZlcnRlZFNuYXBzaG90Rm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb252ZXJ0ZWRTbmFwc2hvdEZvckRycyA9XG5cdFx0XCJkcnM6Q3JlYXRlQ29udmVydGVkU25hcHNob3RGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlciA9IFwiZHJzOkNyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSA9XG5cdFx0XCJkcnM6Q3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzID1cblx0XHRcImRyczpDcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgPVxuXHRcdFwiZHJzOkNyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVTb3VyY2VOZXR3b3JrICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb3VyY2VOZXR3b3JrID0gXCJkcnM6Q3JlYXRlU291cmNlTmV0d29ya1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Q3JlYXRlU291cmNlU2VydmVyRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnMgPSBcImRyczpDcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZUpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSm9iID0gXCJkcnM6RGVsZXRlSm9iXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVMYXVuY2hBY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUxhdW5jaEFjdGlvbiA9IFwiZHJzOkRlbGV0ZUxhdW5jaEFjdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgPVxuXHRcdFwiZHJzOkRlbGV0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlUmVjb3ZlcnlJbnN0YW5jZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVjb3ZlcnlJbnN0YW5jZSA9IFwiZHJzOkRlbGV0ZVJlY292ZXJ5SW5zdGFuY2VcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSA9XG5cdFx0XCJkcnM6RGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZVNvdXJjZU5ldHdvcmsgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvdXJjZU5ldHdvcmsgPSBcImRyczpEZWxldGVTb3VyY2VOZXR3b3JrXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVTb3VyY2VTZXJ2ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvdXJjZVNlcnZlciA9IFwiZHJzOkRlbGV0ZVNvdXJjZVNlcnZlclwiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZUpvYkxvZ0l0ZW1zICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUpvYkxvZ0l0ZW1zID0gXCJkcnM6RGVzY3JpYmVKb2JMb2dJdGVtc1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZUpvYnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlSm9icyA9IFwiZHJzOkRlc2NyaWJlSm9ic1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlcyA9XG5cdFx0XCJkcnM6RGVzY3JpYmVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXMgPSBcImRyczpEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlUmVjb3ZlcnlTbmFwc2hvdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUmVjb3ZlcnlTbmFwc2hvdHMgPSBcImRyczpEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlcyA9XG5cdFx0XCJkcnM6RGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVSZXBsaWNhdGlvblNlcnZlckFzc29jaWF0aW9uc0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVSZXBsaWNhdGlvblNlcnZlckFzc29jaWF0aW9uc0ZvckRycyA9XG5cdFx0XCJkcnM6RGVzY3JpYmVSZXBsaWNhdGlvblNlcnZlckFzc29jaWF0aW9uc0ZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZVNuYXBzaG90UmVxdWVzdHNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU25hcHNob3RSZXF1ZXN0c0ZvckRycyA9XG5cdFx0XCJkcnM6RGVzY3JpYmVTbmFwc2hvdFJlcXVlc3RzRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlU291cmNlTmV0d29ya3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU291cmNlTmV0d29ya3MgPSBcImRyczpEZXNjcmliZVNvdXJjZU5ldHdvcmtzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlU291cmNlU2VydmVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTb3VyY2VTZXJ2ZXJzID0gXCJkcnM6RGVzY3JpYmVTb3VyY2VTZXJ2ZXJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEaXNjb25uZWN0UmVjb3ZlcnlJbnN0YW5jZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2UgPSBcImRyczpEaXNjb25uZWN0UmVjb3ZlcnlJbnN0YW5jZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGlzY29ubmVjdFNvdXJjZVNlcnZlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzY29ubmVjdFNvdXJjZVNlcnZlciA9IFwiZHJzOkRpc2Nvbm5lY3RTb3VyY2VTZXJ2ZXJcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlID1cblx0XHRcImRyczpFeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGVcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0QWdlbnRDb21tYW5kRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ2VudENvbW1hbmRGb3JEcnMgPSBcImRyczpHZXRBZ2VudENvbW1hbmRGb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0QWdlbnRDb25maXJtZWRSZXN1bWVJbmZvRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ2VudENvbmZpcm1lZFJlc3VtZUluZm9Gb3JEcnMgPVxuXHRcdFwiZHJzOkdldEFnZW50Q29uZmlybWVkUmVzdW1lSW5mb0ZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRBZ2VudEluc3RhbGxhdGlvbkFzc2V0c0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRJbnN0YWxsYXRpb25Bc3NldHNGb3JEcnMgPVxuXHRcdFwiZHJzOkdldEFnZW50SW5zdGFsbGF0aW9uQXNzZXRzRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEFnZW50UmVwbGljYXRpb25JbmZvRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ2VudFJlcGxpY2F0aW9uSW5mb0ZvckRycyA9XG5cdFx0XCJkcnM6R2V0QWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0QWdlbnRSdW50aW1lQ29uZmlndXJhdGlvbkZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRSdW50aW1lQ29uZmlndXJhdGlvbkZvckRycyA9XG5cdFx0XCJkcnM6R2V0QWdlbnRSdW50aW1lQ29uZmlndXJhdGlvbkZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRBZ2VudFNuYXBzaG90Q3JlZGl0c0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRTbmFwc2hvdENyZWRpdHNGb3JEcnMgPVxuXHRcdFwiZHJzOkdldEFnZW50U25hcHNob3RDcmVkaXRzRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldENoYW5uZWxDb21tYW5kc0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q2hhbm5lbENvbW1hbmRzRm9yRHJzID1cblx0XHRcImRyczpHZXRDaGFubmVsQ29tbWFuZHNGb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0RmFpbGJhY2tDb21tYW5kRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRGYWlsYmFja0NvbW1hbmRGb3JEcnMgPVxuXHRcdFwiZHJzOkdldEZhaWxiYWNrQ29tbWFuZEZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRGYWlsYmFja0xhdW5jaFJlcXVlc3RlZEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RmFpbGJhY2tMYXVuY2hSZXF1ZXN0ZWRGb3JEcnMgPVxuXHRcdFwiZHJzOkdldEZhaWxiYWNrTGF1bmNoUmVxdWVzdGVkRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJkcnM6R2V0RmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0TGF1bmNoQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TGF1bmNoQ29uZmlndXJhdGlvbiA9IFwiZHJzOkdldExhdW5jaENvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0UmVwbGljYXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZHJzOkdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRTdWdnZXN0ZWRGYWlsYmFja0NsaWVudERldmljZU1hcHBpbmdGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFN1Z2dlc3RlZEZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRycyA9XG5cdFx0XCJkcnM6R2V0U3VnZ2VzdGVkRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpJbml0aWFsaXplU2VydmljZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW5pdGlhbGl6ZVNlcnZpY2UgPSBcImRyczpJbml0aWFsaXplU2VydmljZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6SXNzdWVBZ2VudENlcnRpZmljYXRlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBJc3N1ZUFnZW50Q2VydGlmaWNhdGVGb3JEcnMgPVxuXHRcdFwiZHJzOklzc3VlQWdlbnRDZXJ0aWZpY2F0ZUZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpMaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFeHRlbnNpYmxlU291cmNlU2VydmVycyA9XG5cdFx0XCJkcnM6TGlzdEV4dGVuc2libGVTb3VyY2VTZXJ2ZXJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkxpc3RMYXVuY2hBY3Rpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TGF1bmNoQWN0aW9ucyA9IFwiZHJzOkxpc3RMYXVuY2hBY3Rpb25zXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkxpc3RTdGFnaW5nQWNjb3VudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdGFnaW5nQWNjb3VudHMgPSBcImRyczpMaXN0U3RhZ2luZ0FjY291bnRzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcImRyczpMaXN0VGFnc0ZvclJlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpOb3RpZnlBZ2VudEF1dGhlbnRpY2F0aW9uRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBOb3RpZnlBZ2VudEF1dGhlbnRpY2F0aW9uRm9yRHJzID1cblx0XHRcImRyczpOb3RpZnlBZ2VudEF1dGhlbnRpY2F0aW9uRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpOb3RpZnlBZ2VudENvbm5lY3RlZEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTm90aWZ5QWdlbnRDb25uZWN0ZWRGb3JEcnMgPSBcImRyczpOb3RpZnlBZ2VudENvbm5lY3RlZEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5QWdlbnREaXNjb25uZWN0ZWRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE5vdGlmeUFnZW50RGlzY29ubmVjdGVkRm9yRHJzID1cblx0XHRcImRyczpOb3RpZnlBZ2VudERpc2Nvbm5lY3RlZEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5QWdlbnRSZXBsaWNhdGlvblByb2dyZXNzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBOb3RpZnlBZ2VudFJlcGxpY2F0aW9uUHJvZ3Jlc3NGb3JEcnMgPVxuXHRcdFwiZHJzOk5vdGlmeUFnZW50UmVwbGljYXRpb25Qcm9ncmVzc0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5Q29uc2lzdGVuY3lBdHRhaW5lZEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTm90aWZ5Q29uc2lzdGVuY3lBdHRhaW5lZEZvckRycyA9XG5cdFx0XCJkcnM6Tm90aWZ5Q29uc2lzdGVuY3lBdHRhaW5lZEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5UmVwbGljYXRpb25TZXJ2ZXJBdXRoZW50aWNhdGlvbkZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTm90aWZ5UmVwbGljYXRpb25TZXJ2ZXJBdXRoZW50aWNhdGlvbkZvckRycyA9XG5cdFx0XCJkcnM6Tm90aWZ5UmVwbGljYXRpb25TZXJ2ZXJBdXRoZW50aWNhdGlvbkZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5Vm9sdW1lRXZlbnRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE5vdGlmeVZvbHVtZUV2ZW50Rm9yRHJzID0gXCJkcnM6Tm90aWZ5Vm9sdW1lRXZlbnRGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlB1dExhdW5jaEFjdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0TGF1bmNoQWN0aW9uID0gXCJkcnM6UHV0TGF1bmNoQWN0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpSZXRyeURhdGFSZXBsaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmV0cnlEYXRhUmVwbGljYXRpb24gPSBcImRyczpSZXRyeURhdGFSZXBsaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6UmV2ZXJzZVJlcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBSZXZlcnNlUmVwbGljYXRpb24gPSBcImRyczpSZXZlcnNlUmVwbGljYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlNlbmRBZ2VudExvZ3NGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRBZ2VudExvZ3NGb3JEcnMgPSBcImRyczpTZW5kQWdlbnRMb2dzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTZW5kQWdlbnRNZXRyaWNzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQWdlbnRNZXRyaWNzRm9yRHJzID0gXCJkcnM6U2VuZEFnZW50TWV0cmljc0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6U2VuZENoYW5uZWxDb21tYW5kUmVzdWx0Rm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQ2hhbm5lbENvbW1hbmRSZXN1bHRGb3JEcnMgPVxuXHRcdFwiZHJzOlNlbmRDaGFubmVsQ29tbWFuZFJlc3VsdEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6U2VuZENsaWVudExvZ3NGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRDbGllbnRMb2dzRm9yRHJzID0gXCJkcnM6U2VuZENsaWVudExvZ3NGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlNlbmRDbGllbnRNZXRyaWNzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQ2xpZW50TWV0cmljc0ZvckRycyA9IFwiZHJzOlNlbmRDbGllbnRNZXRyaWNzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTZW5kVm9sdW1lU3RhdHNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRWb2x1bWVTdGF0c0ZvckRycyA9IFwiZHJzOlNlbmRWb2x1bWVTdGF0c0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RhcnRGYWlsYmFja0xhdW5jaCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRGYWlsYmFja0xhdW5jaCA9IFwiZHJzOlN0YXJ0RmFpbGJhY2tMYXVuY2hcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0YXJ0UmVjb3ZlcnkgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVjb3ZlcnkgPSBcImRyczpTdGFydFJlY292ZXJ5XCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdGFydFJlcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlcGxpY2F0aW9uID0gXCJkcnM6U3RhcnRSZXBsaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnkgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U291cmNlTmV0d29ya1JlY292ZXJ5ID0gXCJkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnlcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0YXJ0U291cmNlTmV0d29ya1JlcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiA9XG5cdFx0XCJkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVwbGljYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0b3BGYWlsYmFjayAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcEZhaWxiYWNrID0gXCJkcnM6U3RvcEZhaWxiYWNrXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdG9wUmVwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BSZXBsaWNhdGlvbiA9IFwiZHJzOlN0b3BSZXBsaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiA9XG5cdFx0XCJkcnM6U3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvblwiO1xuXHQvKiogW1RhZ2dpbmddIGRyczpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcImRyczpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlcm1pbmF0ZVJlY292ZXJ5SW5zdGFuY2VzID0gXCJkcnM6VGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXNcIjtcblx0LyoqIFtUYWdnaW5nXSBkcnM6VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwiZHJzOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZUFnZW50QmFja2xvZ0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWdlbnRCYWNrbG9nRm9yRHJzID0gXCJkcnM6VXBkYXRlQWdlbnRCYWNrbG9nRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudFJlcGxpY2F0aW9uSW5mb0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnMgPVxuXHRcdFwiZHJzOlVwZGF0ZUFnZW50UmVwbGljYXRpb25JbmZvRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudFNvdXJjZVByb3BlcnRpZXNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFnZW50U291cmNlUHJvcGVydGllc0ZvckRycyA9XG5cdFx0XCJkcnM6VXBkYXRlQWdlbnRTb3VyY2VQcm9wZXJ0aWVzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVGYWlsYmFja0NsaWVudERldmljZU1hcHBpbmdGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRycyA9XG5cdFx0XCJkcnM6VXBkYXRlRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVGYWlsYmFja0NsaWVudExhc3RTZWVuRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGYWlsYmFja0NsaWVudExhc3RTZWVuRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVGYWlsYmFja0NsaWVudExhc3RTZWVuRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZHJzOlVwZGF0ZUZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uID0gXCJkcnM6VXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgPVxuXHRcdFwiZHJzOlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlUmVwbGljYXRpb25DZXJ0aWZpY2F0ZUZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVwbGljYXRpb25DZXJ0aWZpY2F0ZUZvckRycyA9XG5cdFx0XCJkcnM6VXBkYXRlUmVwbGljYXRpb25DZXJ0aWZpY2F0ZUZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZHJzOlVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlID1cblx0XHRcImRyczpVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVKb2JMb2dJdGVtcyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlSm9icyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlcyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXMsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZVJlY292ZXJ5U25hcHNob3RzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXMsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZVJlcGxpY2F0aW9uU2VydmVyQXNzb2NpYXRpb25zRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVTbmFwc2hvdFJlcXVlc3RzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVTb3VyY2VOZXR3b3Jrcyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlU291cmNlU2VydmVycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEFnZW50Q29tbWFuZEZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEFnZW50Q29uZmlybWVkUmVzdW1lSW5mb0ZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEFnZW50SW5zdGFsbGF0aW9uQXNzZXRzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0QWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRBZ2VudFJ1bnRpbWVDb25maWd1cmF0aW9uRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0QWdlbnRTbmFwc2hvdENyZWRpdHNGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRDaGFubmVsQ29tbWFuZHNGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRGYWlsYmFja0NvbW1hbmRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRGYWlsYmFja0xhdW5jaFJlcXVlc3RlZEZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0TGF1bmNoQ29uZmlndXJhdGlvbixcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbixcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldFN1Z2dlc3RlZEZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRycyxcblx0XHREUlNBY3Rpb25zLkxpc3RFeHRlbnNpYmxlU291cmNlU2VydmVycyxcblx0XHREUlNBY3Rpb25zLkxpc3RMYXVuY2hBY3Rpb25zLFxuXHRcdERSU0FjdGlvbnMuTGlzdFN0YWdpbmdBY2NvdW50cyxcblx0XHREUlNBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0RFJTQWN0aW9ucy5Bc3NvY2lhdGVGYWlsYmFja0NsaWVudFRvUmVjb3ZlcnlJbnN0YW5jZUZvckRycyxcblx0XHREUlNBY3Rpb25zLkFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFjayxcblx0XHREUlNBY3Rpb25zLkJhdGNoQ3JlYXRlVm9sdW1lU25hcHNob3RHcm91cEZvckRycyxcblx0XHREUlNBY3Rpb25zLkJhdGNoRGVsZXRlU25hcHNob3RSZXF1ZXN0Rm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuQ3JlYXRlQ29udmVydGVkU25hcHNob3RGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlcixcblx0XHREUlNBY3Rpb25zLkNyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XHREUlNBY3Rpb25zLkNyZWF0ZVJlY292ZXJ5SW5zdGFuY2VGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XHREUlNBY3Rpb25zLkNyZWF0ZVNvdXJjZU5ldHdvcmssXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVKb2IsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVMYXVuY2hBY3Rpb24sXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVSZWNvdmVyeUluc3RhbmNlLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVTb3VyY2VOZXR3b3JrLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlU291cmNlU2VydmVyLFxuXHRcdERSU0FjdGlvbnMuRGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2UsXG5cdFx0RFJTQWN0aW9ucy5EaXNjb25uZWN0U291cmNlU2VydmVyLFxuXHRcdERSU0FjdGlvbnMuRXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlLFxuXHRcdERSU0FjdGlvbnMuSW5pdGlhbGl6ZVNlcnZpY2UsXG5cdFx0RFJTQWN0aW9ucy5Jc3N1ZUFnZW50Q2VydGlmaWNhdGVGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Ob3RpZnlBZ2VudEF1dGhlbnRpY2F0aW9uRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuTm90aWZ5QWdlbnRDb25uZWN0ZWRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Ob3RpZnlBZ2VudERpc2Nvbm5lY3RlZEZvckRycyxcblx0XHREUlNBY3Rpb25zLk5vdGlmeUFnZW50UmVwbGljYXRpb25Qcm9ncmVzc0ZvckRycyxcblx0XHREUlNBY3Rpb25zLk5vdGlmeUNvbnNpc3RlbmN5QXR0YWluZWRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Ob3RpZnlSZXBsaWNhdGlvblNlcnZlckF1dGhlbnRpY2F0aW9uRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuTm90aWZ5Vm9sdW1lRXZlbnRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5QdXRMYXVuY2hBY3Rpb24sXG5cdFx0RFJTQWN0aW9ucy5SZXRyeURhdGFSZXBsaWNhdGlvbixcblx0XHREUlNBY3Rpb25zLlJldmVyc2VSZXBsaWNhdGlvbixcblx0XHREUlNBY3Rpb25zLlNlbmRBZ2VudExvZ3NGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5TZW5kQWdlbnRNZXRyaWNzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuU2VuZENoYW5uZWxDb21tYW5kUmVzdWx0Rm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuU2VuZENsaWVudExvZ3NGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5TZW5kQ2xpZW50TWV0cmljc0ZvckRycyxcblx0XHREUlNBY3Rpb25zLlNlbmRWb2x1bWVTdGF0c0ZvckRycyxcblx0XHREUlNBY3Rpb25zLlN0YXJ0RmFpbGJhY2tMYXVuY2gsXG5cdFx0RFJTQWN0aW9ucy5TdGFydFJlY292ZXJ5LFxuXHRcdERSU0FjdGlvbnMuU3RhcnRSZXBsaWNhdGlvbixcblx0XHREUlNBY3Rpb25zLlN0YXJ0U291cmNlTmV0d29ya1JlY292ZXJ5LFxuXHRcdERSU0FjdGlvbnMuU3RhcnRTb3VyY2VOZXR3b3JrUmVwbGljYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5TdG9wRmFpbGJhY2ssXG5cdFx0RFJTQWN0aW9ucy5TdG9wUmVwbGljYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5TdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uLFxuXHRcdERSU0FjdGlvbnMuVGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVBZ2VudEJhY2tsb2dGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlQWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlQWdlbnRTb3VyY2VQcm9wZXJ0aWVzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlRmFpbGJhY2tDbGllbnRMYXN0U2VlbkZvckRycyxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvbixcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZVJlcGxpY2F0aW9uQ2VydGlmaWNhdGVGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCBwZXJtaXNzaW9uLW1hbmFnZW1lbnQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFBlcm1pc3Npb25NYW5hZ2VtZW50QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0RFJTQWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHREUlNBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBKb2JSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTSm9iUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgSm9iSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGpvYklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgSm9iUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU0pvYlJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBKb2JJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGpvYklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU0xhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBSZWNvdmVyeUluc3RhbmNlSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlY292ZXJ5SW5zdGFuY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZWNvdmVyeUluc3RhbmNlSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZWNvdmVyeUluc3RhbmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBTb3VyY2VOZXR3b3JrUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1NvdXJjZU5ldHdvcmtSZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBTb3VyY2VOZXR3b3JrSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNvdXJjZU5ldHdvcmtJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFNvdXJjZU5ldHdvcmtSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTU291cmNlTmV0d29ya1Jlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBTb3VyY2VOZXR3b3JrSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzb3VyY2VOZXR3b3JrSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFNvdXJjZVNlcnZlclJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBTb3VyY2VTZXJ2ZXJJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc291cmNlU2VydmVySWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBTb3VyY2VTZXJ2ZXJSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTU291cmNlU2VydmVyUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFNvdXJjZVNlcnZlcklEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc291cmNlU2VydmVySWQ6IHN0cmluZztcbn1cblxuY29uc3QgSm9iUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZHJzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6am9iXFwvKD88am9iSWQ+W146Lz9dKykkLztcbmNvbnN0IExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRyczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmxhdW5jaC1jb25maWd1cmF0aW9uLXRlbXBsYXRlXFwvKD88bGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSWQ+W146Lz9dKykkLztcbmNvbnN0IFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpyZWNvdmVyeS1pbnN0YW5jZVxcLyg/PHJlY292ZXJ5SW5zdGFuY2VJZD5bXjovP10rKSQvO1xuY29uc3QgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpyZXBsaWNhdGlvbi1jb25maWd1cmF0aW9uLXRlbXBsYXRlXFwvKD88cmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVJZD5bXjovP10rKSQvO1xuY29uc3QgU291cmNlTmV0d29ya1Jlc291cmNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRyczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnNvdXJjZS1uZXR3b3JrXFwvKD88c291cmNlTmV0d29ya0lkPlteOi8/XSspJC87XG5jb25zdCBTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpzb3VyY2Utc2VydmVyXFwvKD88c291cmNlU2VydmVySWQ+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBkcnMgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgRFJTUmVzb3VyY2VzIHtcblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBKb2JSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBqb2JSZXNvdXJjZShwcm9wczogRFJTSm9iUmVzb3VyY2VBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmpvYi8ke3Byb3BzLmpvYklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBKb2JSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkSm9iUmVzb3VyY2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSm9iUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgSm9iUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlSm9iUmVzb3VyY2VBcm4oYXJuOiBzdHJpbmcpOiBEUlNKb2JSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSm9iUmVzb3VyY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgSm9iUmVzb3VyY2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0am9iSWQ6IG1hdGNoLmdyb3VwcyEuam9iSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgbGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UoXG5cdFx0cHJvcHM6IERSU0xhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmxhdW5jaC1jb25maWd1cmF0aW9uLXRlbXBsYXRlLyR7cHJvcHMubGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFxuXHRcdFx0XHRgSW52YWxpZCBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk46ICR7YXJufWAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRsYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJZDpcblx0XHRcdFx0bWF0Y2guZ3JvdXBzIS5sYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlKFxuXHRcdHByb3BzOiBEUlNSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkcnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06cmVjb3ZlcnktaW5zdGFuY2UvJHtwcm9wcy5yZWNvdmVyeUluc3RhbmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBEUlNSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVjb3ZlcnlJbnN0YW5jZUlkOiBtYXRjaC5ncm91cHMhLnJlY292ZXJ5SW5zdGFuY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UoXG5cdFx0cHJvcHM6IERSU1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkcnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06cmVwbGljYXRpb24tY29uZmlndXJhdGlvbi10ZW1wbGF0ZS8ke3Byb3BzLnJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0YEludmFsaWQgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk46ICR7YXJufWAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOlxuXHRcdFx0XHRtYXRjaC5ncm91cHMhLnJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgU291cmNlTmV0d29ya1Jlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHNvdXJjZU5ldHdvcmtSZXNvdXJjZShcblx0XHRwcm9wczogRFJTU291cmNlTmV0d29ya1Jlc291cmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnNvdXJjZS1uZXR3b3JrLyR7cHJvcHMuc291cmNlTmV0d29ya0lkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBTb3VyY2VOZXR3b3JrUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFNvdXJjZU5ldHdvcmtSZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgU291cmNlTmV0d29ya1Jlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVNvdXJjZU5ldHdvcmtSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTU291cmNlTmV0d29ya1Jlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgU291cmNlTmV0d29ya1Jlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNvdXJjZU5ldHdvcmtJZDogbWF0Y2guZ3JvdXBzIS5zb3VyY2VOZXR3b3JrSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgU291cmNlU2VydmVyUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgc291cmNlU2VydmVyUmVzb3VyY2UocHJvcHM6IERSU1NvdXJjZVNlcnZlclJlc291cmNlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmRyczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzb3VyY2Utc2VydmVyLyR7cHJvcHMuc291cmNlU2VydmVySWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFNvdXJjZVNlcnZlclJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBTb3VyY2VTZXJ2ZXJSZXNvdXJjZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTU291cmNlU2VydmVyUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFNvdXJjZVNlcnZlclJlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFNvdXJjZVNlcnZlclJlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNvdXJjZVNlcnZlcklkOiBtYXRjaC5ncm91cHMhLnNvdXJjZVNlcnZlcklkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGRycy5cbiAqL1xuZXhwb3J0IGNsYXNzIERSU09wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2sgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2s6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFja1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpDcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlclwiLFxuXHRcdFwiZHJzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6Q3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlXCIsXG5cdFx0XCJkcnM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6Q3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVTb3VyY2VOZXR3b3JrIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU291cmNlTmV0d29yazogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6Q3JlYXRlU291cmNlTmV0d29ya1wiLFxuXHRcdFwiZHJzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUpvYjogc3RyaW5nW10gPSBbXCJkcnM6RGVsZXRlSm9iXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVMYXVuY2hBY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVMYXVuY2hBY3Rpb246IHN0cmluZ1tdID0gW1wiZHJzOkRlbGV0ZUxhdW5jaEFjdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVjb3ZlcnlJbnN0YW5jZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY292ZXJ5SW5zdGFuY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlbGV0ZVJlY292ZXJ5SW5zdGFuY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlU291cmNlTmV0d29yayBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvdXJjZU5ldHdvcms6IHN0cmluZ1tdID0gW1wiZHJzOkRlbGV0ZVNvdXJjZU5ldHdvcmtcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVNvdXJjZVNlcnZlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvdXJjZVNlcnZlcjogc3RyaW5nW10gPSBbXCJkcnM6RGVsZXRlU291cmNlU2VydmVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUpvYkxvZ0l0ZW1zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVKb2JMb2dJdGVtczogc3RyaW5nW10gPSBbXCJkcnM6RGVzY3JpYmVKb2JMb2dJdGVtc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVKb2JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVKb2JzOiBzdHJpbmdbXSA9IFtcImRyczpEZXNjcmliZUpvYnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVzY3JpYmVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUmVjb3ZlcnlTbmFwc2hvdHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlU291cmNlTmV0d29ya3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVNvdXJjZU5ldHdvcmtzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZXNjcmliZVNvdXJjZU5ldHdvcmtzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlU291cmNlU2VydmVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU291cmNlU2VydmVyczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVzY3JpYmVTb3VyY2VTZXJ2ZXJzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Nvbm5lY3RSZWNvdmVyeUluc3RhbmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRpc2Nvbm5lY3RSZWNvdmVyeUluc3RhbmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Nvbm5lY3RTb3VyY2VTZXJ2ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNjb25uZWN0U291cmNlU2VydmVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEaXNjb25uZWN0U291cmNlU2VydmVyXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6R2V0RmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TGF1bmNoQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TGF1bmNoQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6R2V0TGF1bmNoQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6R2V0UmVwbGljYXRpb25Db25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEluaXRpYWxpemVTZXJ2aWNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW5pdGlhbGl6ZVNlcnZpY2U6IHN0cmluZ1tdID0gW1wiZHJzOkluaXRpYWxpemVTZXJ2aWNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkxpc3RFeHRlbnNpYmxlU291cmNlU2VydmVyc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0TGF1bmNoQWN0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMYXVuY2hBY3Rpb25zOiBzdHJpbmdbXSA9IFtcImRyczpMaXN0TGF1bmNoQWN0aW9uc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFN0YWdpbmdBY2NvdW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdGFnaW5nQWNjb3VudHM6IHN0cmluZ1tdID0gW1wiZHJzOkxpc3RTdGFnaW5nQWNjb3VudHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcImRyczpMaXN0VGFnc0ZvclJlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRMYXVuY2hBY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRMYXVuY2hBY3Rpb246IHN0cmluZ1tdID0gW1wiZHJzOlB1dExhdW5jaEFjdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmV0cnlEYXRhUmVwbGljYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZXRyeURhdGFSZXBsaWNhdGlvbjogc3RyaW5nW10gPSBbXCJkcnM6UmV0cnlEYXRhUmVwbGljYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJldmVyc2VSZXBsaWNhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJldmVyc2VSZXBsaWNhdGlvbjogc3RyaW5nW10gPSBbXCJkcnM6UmV2ZXJzZVJlcGxpY2F0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydEZhaWxiYWNrTGF1bmNoIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRGYWlsYmFja0xhdW5jaDogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRSZWNvdmVyeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVjb3Zlcnk6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlN0YXJ0UmVjb3ZlcnlcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFJlcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZXBsaWNhdGlvbjogc3RyaW5nW10gPSBbXCJkcnM6U3RhcnRSZXBsaWNhdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFNvdXJjZU5ldHdvcmtSZWNvdmVyeTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnlcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U291cmNlTmV0d29ya1JlcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpTdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wRmFpbGJhY2sgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wRmFpbGJhY2s6IHN0cmluZ1tdID0gW1wiZHJzOlN0b3BGYWlsYmFja1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFJlcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFJlcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcImRyczpTdG9wUmVwbGljYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BTb3VyY2VOZXR3b3JrUmVwbGljYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpTdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiZHJzOlRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlcm1pbmF0ZVJlY292ZXJ5SW5zdGFuY2VzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVbnRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJkcnM6VW50YWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6VXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6VXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGRycy5cbiAqL1xuZXhwb3J0IGNsYXNzIERSU0NvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFja0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ29udmVydGVkU25hcHNob3RGb3JEcnMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29udmVydGVkU25hcHNob3RGb3JEcnNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY292ZXJ5SW5zdGFuY2VGb3JEcnNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPVxuXHRcdFtcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLCBcImF3czpUYWdLZXlzXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlU291cmNlTmV0d29yayBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb3VyY2VOZXR3b3JrQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU291cmNlU2VydmVyRm9yRHJzQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBFeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBSZXZlcnNlUmVwbGljYXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmV2ZXJzZVJlcGxpY2F0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTdGFydEZhaWxiYWNrTGF1bmNoIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0RmFpbGJhY2tMYXVuY2hDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0UmVjb3ZlcnkgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZWNvdmVyeUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnkgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnlDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJkcnM6Q3JlYXRlQWN0aW9uXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlcyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBkcnM6Q3JlYXRlQWN0aW9uIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDUkVBVEVfQUNUSU9OID0gXCJkcnM6Q3JlYXRlQWN0aW9uXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBkcnM6RUMySW5zdGFuY2VBUk4gKEFSTikgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVDMl9JTlNUQU5DRV9BUk4gPSBcImRyczpFQzJJbnN0YW5jZUFSTlwiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBkcnM6Q3JlYXRlQWN0aW9uYC5cblx0ICovXG5cdHN0YXRpYyBjcmVhdGVBY3Rpb24odmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJkcnM6Q3JlYXRlQWN0aW9uXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBkcnM6RUMySW5zdGFuY2VBUk5gLlxuXHQgKi9cblx0c3RhdGljIGVjMkluc3RhbmNlQVJOKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgQXJuRXF1YWxzOiB7IFwiZHJzOkVDMkluc3RhbmNlQVJOXCI6IHZhbHVlIH0gfTtcblx0fVxufVxuIl19
|
|
972
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9kcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCwwQ0FBMEM7QUFDMUMsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsVUFBVTs7QUFBdkIsZ0NBa1pDOzs7QUFqWkEsOEJBQThCO0FBQ2QseUJBQWMsR0FBRyxLQUFLLENBQUM7QUFFdkMsa0VBQWtFO0FBQ2xELDBEQUErQyxHQUM5RCxxREFBcUQsQ0FBQztBQUN2RCw4Q0FBOEM7QUFDOUIsc0NBQTJCLEdBQzFDLGlDQUFpQyxDQUFDO0FBQ25DLHVEQUF1RDtBQUN2QywrQ0FBb0MsR0FDbkQsMENBQTBDLENBQUM7QUFDNUMsbURBQW1EO0FBQ25DLDJDQUFnQyxHQUMvQyxzQ0FBc0MsQ0FBQztBQUN4Qyw4Q0FBOEM7QUFDOUIsc0NBQTJCLEdBQzFDLGlDQUFpQyxDQUFDO0FBQ25DLGdEQUFnRDtBQUNoQyx3Q0FBNkIsR0FDNUMsbUNBQW1DLENBQUM7QUFDckMsNkNBQTZDO0FBQzdCLHFDQUEwQixHQUFHLGdDQUFnQyxDQUFDO0FBQzlFLG9EQUFvRDtBQUNwQyw0Q0FBaUMsR0FDaEQsdUNBQXVDLENBQUM7QUFDekMsK0NBQStDO0FBQy9CLHVDQUE0QixHQUMzQyxrQ0FBa0MsQ0FBQztBQUNwQyxxQ0FBcUM7QUFDckIsNkJBQWtCLEdBQUcsd0JBQXdCLENBQUM7QUFDOUQseUNBQXlDO0FBQ3pCLGlDQUFzQixHQUFHLDRCQUE0QixDQUFDO0FBQ3RFLHlEQUF5RDtBQUN6QyxpREFBc0MsR0FDckQsNENBQTRDLENBQUM7QUFDOUMsc0NBQXNDO0FBQ3RCLDhCQUFtQixHQUFHLHlCQUF5QixDQUFDO0FBQ2hFLDJDQUEyQztBQUMzQixtQ0FBd0IsR0FBRyw4QkFBOEIsQ0FBQztBQUMx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QUNGLDBFQUEwRTtBQUMxRCxxREFBdUMsR0FBYTtJQUNuRSwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiwwRUFBMEU7QUFDMUQscURBQXVDLEdBQWE7SUFDbkUsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsMkRBQTJEO0FBQzNDLHNDQUF3QixHQUFhO0lBQ3BELDBCQUEwQjtJQUMxQixhQUFhO0lBQ2Isa0JBQWtCO0NBQ2xCLENBQUM7QUFDRiwwRUFBMEU7QUFDMUQscURBQXVDLEdBQWE7SUFDbkUsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsNkRBQTZEO0FBQzdDLHdDQUEwQixHQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7QUFFdkUsdURBQXVEO0FBQ3ZDLDZCQUFlLEdBQUcsMEJBQTBCLENBQUM7QUFDN0Qsd0RBQXdEO0FBQ3hDLDhCQUFnQixHQUFHLDJCQUEyQixDQUFDO0FBQy9ELGlEQUFpRDtBQUNqQywwQkFBWSxHQUFHLGFBQWEsQ0FBQztBQUM3QywrQ0FBK0M7QUFDL0IsMkJBQWEsR0FBRyxrQkFBa0IsQ0FBQztBQUNuRCw4Q0FBOEM7QUFDOUIsOEJBQWdCLEdBQUcsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUTy1HRU5FUkFURUQgRklMRSDigJQgRE8gTk9UIEVESVQgTUFOVUFMTFlcbi8vIEdlbmVyYXRlZCBmcm9tIEFXUyBTZXJ2aWNlIEF1dGhvcml6YXRpb24gUmVmZXJlbmNlIGRhdGFcbi8vIFNvdXJjZTogZGF0YS9zZXJ2aWNlLXJlZmVyZW5jZS9kcnMuanNvblxuLy8gUnVuIGBucHggcHJvamVuIGdlbmVyYXRlLWNvbnN0YW50c2AgdG8gcmVnZW5lcmF0ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJQU0gYWN0aW9uIGNvbnN0YW50cyBmb3IgdGhlIGRycyBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgRFJTQWN0aW9ucyB7XG5cdC8qKiBUaGUgSUFNIHNlcnZpY2UgcHJlZml4LiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9QUkVGSVggPSBcImRyc1wiO1xuXG5cdC8qKiBbV3JpdGVdIGRyczpBc3NvY2lhdGVGYWlsYmFja0NsaWVudFRvUmVjb3ZlcnlJbnN0YW5jZUZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlRmFpbGJhY2tDbGllbnRUb1JlY292ZXJ5SW5zdGFuY2VGb3JEcnMgPVxuXHRcdFwiZHJzOkFzc29jaWF0ZUZhaWxiYWNrQ2xpZW50VG9SZWNvdmVyeUluc3RhbmNlRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2sgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFjayA9XG5cdFx0XCJkcnM6QXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpCYXRjaENyZWF0ZVZvbHVtZVNuYXBzaG90R3JvdXBGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IEJhdGNoQ3JlYXRlVm9sdW1lU25hcHNob3RHcm91cEZvckRycyA9XG5cdFx0XCJkcnM6QmF0Y2hDcmVhdGVWb2x1bWVTbmFwc2hvdEdyb3VwRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpCYXRjaERlbGV0ZVNuYXBzaG90UmVxdWVzdEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQmF0Y2hEZWxldGVTbmFwc2hvdFJlcXVlc3RGb3JEcnMgPVxuXHRcdFwiZHJzOkJhdGNoRGVsZXRlU25hcHNob3RSZXF1ZXN0Rm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDYW5jZWxSZWNvdmVyeVBsYW5FeGVjdXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiA9XG5cdFx0XCJkcnM6Q2FuY2VsUmVjb3ZlcnlQbGFuRXhlY3V0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVDb252ZXJ0ZWRTbmFwc2hvdEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29udmVydGVkU25hcHNob3RGb3JEcnMgPVxuXHRcdFwiZHJzOkNyZWF0ZUNvbnZlcnRlZFNuYXBzaG90Rm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXh0ZW5kZWRTb3VyY2VTZXJ2ZXIgPSBcImRyczpDcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlclwiO1xuXHQvKiogW1dyaXRlXSBkcnM6Q3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgPVxuXHRcdFwiZHJzOkNyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6Q3JlYXRlUmVjb3ZlcnlJbnN0YW5jZUZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVjb3ZlcnlJbnN0YW5jZUZvckRycyA9XG5cdFx0XCJkcnM6Q3JlYXRlUmVjb3ZlcnlJbnN0YW5jZUZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Q3JlYXRlUmVjb3ZlcnlQbGFuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvdmVyeVBsYW4gPSBcImRyczpDcmVhdGVSZWNvdmVyeVBsYW5cIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZVJlY292ZXJ5UGxhblN0ZXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY292ZXJ5UGxhblN0ZXAgPSBcImRyczpDcmVhdGVSZWNvdmVyeVBsYW5TdGVwXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgPVxuXHRcdFwiZHJzOkNyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVTb3VyY2VOZXR3b3JrICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb3VyY2VOZXR3b3JrID0gXCJkcnM6Q3JlYXRlU291cmNlTmV0d29ya1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Q3JlYXRlU291cmNlU2VydmVyRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnMgPSBcImRyczpDcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZUpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSm9iID0gXCJkcnM6RGVsZXRlSm9iXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVMYXVuY2hBY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUxhdW5jaEFjdGlvbiA9IFwiZHJzOkRlbGV0ZUxhdW5jaEFjdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgPVxuXHRcdFwiZHJzOkRlbGV0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlUmVjb3ZlcnlJbnN0YW5jZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVjb3ZlcnlJbnN0YW5jZSA9IFwiZHJzOkRlbGV0ZVJlY292ZXJ5SW5zdGFuY2VcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZVJlY292ZXJ5UGxhbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVjb3ZlcnlQbGFuID0gXCJkcnM6RGVsZXRlUmVjb3ZlcnlQbGFuXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVSZWNvdmVyeVBsYW5FeGVjdXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvbiA9XG5cdFx0XCJkcnM6RGVsZXRlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVSZWNvdmVyeVBsYW5TdGVwICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZWNvdmVyeVBsYW5TdGVwID0gXCJkcnM6RGVsZXRlUmVjb3ZlcnlQbGFuU3RlcFwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlID1cblx0XHRcImRyczpEZWxldGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlU291cmNlTmV0d29yayAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU291cmNlTmV0d29yayA9IFwiZHJzOkRlbGV0ZVNvdXJjZU5ldHdvcmtcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZVNvdXJjZVNlcnZlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU291cmNlU2VydmVyID0gXCJkcnM6RGVsZXRlU291cmNlU2VydmVyXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlSm9iTG9nSXRlbXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlSm9iTG9nSXRlbXMgPSBcImRyczpEZXNjcmliZUpvYkxvZ0l0ZW1zXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlSm9icyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVKb2JzID0gXCJkcnM6RGVzY3JpYmVKb2JzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVzID1cblx0XHRcImRyczpEZXNjcmliZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZXNcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVSZWNvdmVyeUluc3RhbmNlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVSZWNvdmVyeUluc3RhbmNlcyA9IFwiZHJzOkRlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXNcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVSZWNvdmVyeVNuYXBzaG90cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVSZWNvdmVyeVNuYXBzaG90cyA9IFwiZHJzOkRlc2NyaWJlUmVjb3ZlcnlTbmFwc2hvdHNcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzID1cblx0XHRcImRyczpEZXNjcmliZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlc1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZVJlcGxpY2F0aW9uU2VydmVyQXNzb2NpYXRpb25zRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlcGxpY2F0aW9uU2VydmVyQXNzb2NpYXRpb25zRm9yRHJzID1cblx0XHRcImRyczpEZXNjcmliZVJlcGxpY2F0aW9uU2VydmVyQXNzb2NpYXRpb25zRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlU25hcHNob3RSZXF1ZXN0c0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTbmFwc2hvdFJlcXVlc3RzRm9yRHJzID1cblx0XHRcImRyczpEZXNjcmliZVNuYXBzaG90UmVxdWVzdHNGb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVTb3VyY2VOZXR3b3JrcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTb3VyY2VOZXR3b3JrcyA9IFwiZHJzOkRlc2NyaWJlU291cmNlTmV0d29ya3NcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVTb3VyY2VTZXJ2ZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVNvdXJjZVNlcnZlcnMgPSBcImRyczpEZXNjcmliZVNvdXJjZVNlcnZlcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRpc2Nvbm5lY3RSZWNvdmVyeUluc3RhbmNlICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNjb25uZWN0UmVjb3ZlcnlJbnN0YW5jZSA9IFwiZHJzOkRpc2Nvbm5lY3RSZWNvdmVyeUluc3RhbmNlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEaXNjb25uZWN0U291cmNlU2VydmVyICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNjb25uZWN0U291cmNlU2VydmVyID0gXCJkcnM6RGlzY29ubmVjdFNvdXJjZVNlcnZlclwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBFeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGUgPVxuXHRcdFwiZHJzOkV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZVwiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRBZ2VudENvbW1hbmRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFnZW50Q29tbWFuZEZvckRycyA9IFwiZHJzOkdldEFnZW50Q29tbWFuZEZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRBZ2VudENvbmZpcm1lZFJlc3VtZUluZm9Gb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFnZW50Q29uZmlybWVkUmVzdW1lSW5mb0ZvckRycyA9XG5cdFx0XCJkcnM6R2V0QWdlbnRDb25maXJtZWRSZXN1bWVJbmZvRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEFnZW50SW5zdGFsbGF0aW9uQXNzZXRzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ2VudEluc3RhbGxhdGlvbkFzc2V0c0ZvckRycyA9XG5cdFx0XCJkcnM6R2V0QWdlbnRJbnN0YWxsYXRpb25Bc3NldHNGb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0QWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFnZW50UmVwbGljYXRpb25JbmZvRm9yRHJzID1cblx0XHRcImRyczpHZXRBZ2VudFJlcGxpY2F0aW9uSW5mb0ZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRBZ2VudFJ1bnRpbWVDb25maWd1cmF0aW9uRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ2VudFJ1bnRpbWVDb25maWd1cmF0aW9uRm9yRHJzID1cblx0XHRcImRyczpHZXRBZ2VudFJ1bnRpbWVDb25maWd1cmF0aW9uRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEFnZW50U25hcHNob3RDcmVkaXRzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ2VudFNuYXBzaG90Q3JlZGl0c0ZvckRycyA9XG5cdFx0XCJkcnM6R2V0QWdlbnRTbmFwc2hvdENyZWRpdHNGb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0Q2hhbm5lbENvbW1hbmRzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDaGFubmVsQ29tbWFuZHNGb3JEcnMgPVxuXHRcdFwiZHJzOkdldENoYW5uZWxDb21tYW5kc0ZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRGYWlsYmFja0NvbW1hbmRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEZhaWxiYWNrQ29tbWFuZEZvckRycyA9XG5cdFx0XCJkcnM6R2V0RmFpbGJhY2tDb21tYW5kRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEZhaWxiYWNrTGF1bmNoUmVxdWVzdGVkRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRGYWlsYmFja0xhdW5jaFJlcXVlc3RlZEZvckRycyA9XG5cdFx0XCJkcnM6R2V0RmFpbGJhY2tMYXVuY2hSZXF1ZXN0ZWRGb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0RmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uID1cblx0XHRcImRyczpHZXRGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRMYXVuY2hDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRMYXVuY2hDb25maWd1cmF0aW9uID0gXCJkcnM6R2V0TGF1bmNoQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRSZWNvdmVyeVBsYW4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlY292ZXJ5UGxhbiA9IFwiZHJzOkdldFJlY292ZXJ5UGxhblwiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRSZWNvdmVyeVBsYW5FeGVjdXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiA9XG5cdFx0XCJkcnM6R2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAgPVxuXHRcdFwiZHJzOkdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXBcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0UmVjb3ZlcnlQbGFuU3RlcCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVjb3ZlcnlQbGFuU3RlcCA9IFwiZHJzOkdldFJlY292ZXJ5UGxhblN0ZXBcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0UmVwbGljYXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZHJzOkdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRTdWdnZXN0ZWRGYWlsYmFja0NsaWVudERldmljZU1hcHBpbmdGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFN1Z2dlc3RlZEZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRycyA9XG5cdFx0XCJkcnM6R2V0U3VnZ2VzdGVkRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpJbml0aWFsaXplU2VydmljZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW5pdGlhbGl6ZVNlcnZpY2UgPSBcImRyczpJbml0aWFsaXplU2VydmljZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6SXNzdWVBZ2VudENlcnRpZmljYXRlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBJc3N1ZUFnZW50Q2VydGlmaWNhdGVGb3JEcnMgPVxuXHRcdFwiZHJzOklzc3VlQWdlbnRDZXJ0aWZpY2F0ZUZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpMaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFeHRlbnNpYmxlU291cmNlU2VydmVycyA9XG5cdFx0XCJkcnM6TGlzdEV4dGVuc2libGVTb3VyY2VTZXJ2ZXJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkxpc3RMYXVuY2hBY3Rpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TGF1bmNoQWN0aW9ucyA9IFwiZHJzOkxpc3RMYXVuY2hBY3Rpb25zXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkxpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXBzID1cblx0XHRcImRyczpMaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcHNcIjtcblx0LyoqIFtSZWFkXSBkcnM6TGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25zID0gXCJkcnM6TGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvbnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6TGlzdFJlY292ZXJ5UGxhblN0ZXBzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb3ZlcnlQbGFuU3RlcHMgPSBcImRyczpMaXN0UmVjb3ZlcnlQbGFuU3RlcHNcIjtcblx0LyoqIFtSZWFkXSBkcnM6TGlzdFJlY292ZXJ5UGxhbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvdmVyeVBsYW5zID0gXCJkcnM6TGlzdFJlY292ZXJ5UGxhbnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6TGlzdFN0YWdpbmdBY2NvdW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN0YWdpbmdBY2NvdW50cyA9IFwiZHJzOkxpc3RTdGFnaW5nQWNjb3VudHNcIjtcblx0LyoqIFtSZWFkXSBkcnM6TGlzdFRhZ3NGb3JSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZSA9IFwiZHJzOkxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gZHJzOk5vdGlmeUFnZW50QXV0aGVudGljYXRpb25Gb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE5vdGlmeUFnZW50QXV0aGVudGljYXRpb25Gb3JEcnMgPVxuXHRcdFwiZHJzOk5vdGlmeUFnZW50QXV0aGVudGljYXRpb25Gb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOk5vdGlmeUFnZW50Q29ubmVjdGVkRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBOb3RpZnlBZ2VudENvbm5lY3RlZEZvckRycyA9IFwiZHJzOk5vdGlmeUFnZW50Q29ubmVjdGVkRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpOb3RpZnlBZ2VudERpc2Nvbm5lY3RlZEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTm90aWZ5QWdlbnREaXNjb25uZWN0ZWRGb3JEcnMgPVxuXHRcdFwiZHJzOk5vdGlmeUFnZW50RGlzY29ubmVjdGVkRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpOb3RpZnlBZ2VudFJlcGxpY2F0aW9uUHJvZ3Jlc3NGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE5vdGlmeUFnZW50UmVwbGljYXRpb25Qcm9ncmVzc0ZvckRycyA9XG5cdFx0XCJkcnM6Tm90aWZ5QWdlbnRSZXBsaWNhdGlvblByb2dyZXNzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpOb3RpZnlDb25zaXN0ZW5jeUF0dGFpbmVkRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBOb3RpZnlDb25zaXN0ZW5jeUF0dGFpbmVkRm9yRHJzID1cblx0XHRcImRyczpOb3RpZnlDb25zaXN0ZW5jeUF0dGFpbmVkRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpOb3RpZnlSZXBsaWNhdGlvblNlcnZlckF1dGhlbnRpY2F0aW9uRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBOb3RpZnlSZXBsaWNhdGlvblNlcnZlckF1dGhlbnRpY2F0aW9uRm9yRHJzID1cblx0XHRcImRyczpOb3RpZnlSZXBsaWNhdGlvblNlcnZlckF1dGhlbnRpY2F0aW9uRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpOb3RpZnlWb2x1bWVFdmVudEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTm90aWZ5Vm9sdW1lRXZlbnRGb3JEcnMgPSBcImRyczpOb3RpZnlWb2x1bWVFdmVudEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6UHV0TGF1bmNoQWN0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRMYXVuY2hBY3Rpb24gPSBcImRyczpQdXRMYXVuY2hBY3Rpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlJlb3JkZXJSZWNvdmVyeVBsYW5TdGVwcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVvcmRlclJlY292ZXJ5UGxhblN0ZXBzID0gXCJkcnM6UmVvcmRlclJlY292ZXJ5UGxhblN0ZXBzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpSZXRyeURhdGFSZXBsaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmV0cnlEYXRhUmVwbGljYXRpb24gPSBcImRyczpSZXRyeURhdGFSZXBsaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6UmV0cnlSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwICovXG5cdHN0YXRpYyByZWFkb25seSBSZXRyeVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAgPVxuXHRcdFwiZHJzOlJldHJ5UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcFwiO1xuXHQvKiogW1dyaXRlXSBkcnM6UmV2ZXJzZVJlcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBSZXZlcnNlUmVwbGljYXRpb24gPSBcImRyczpSZXZlcnNlUmVwbGljYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlNlbmRBZ2VudExvZ3NGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRBZ2VudExvZ3NGb3JEcnMgPSBcImRyczpTZW5kQWdlbnRMb2dzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTZW5kQWdlbnRNZXRyaWNzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQWdlbnRNZXRyaWNzRm9yRHJzID0gXCJkcnM6U2VuZEFnZW50TWV0cmljc0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6U2VuZENoYW5uZWxDb21tYW5kUmVzdWx0Rm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQ2hhbm5lbENvbW1hbmRSZXN1bHRGb3JEcnMgPVxuXHRcdFwiZHJzOlNlbmRDaGFubmVsQ29tbWFuZFJlc3VsdEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6U2VuZENsaWVudExvZ3NGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRDbGllbnRMb2dzRm9yRHJzID0gXCJkcnM6U2VuZENsaWVudExvZ3NGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlNlbmRDbGllbnRNZXRyaWNzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQ2xpZW50TWV0cmljc0ZvckRycyA9IFwiZHJzOlNlbmRDbGllbnRNZXRyaWNzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTZW5kVm9sdW1lU3RhdHNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRWb2x1bWVTdGF0c0ZvckRycyA9IFwiZHJzOlNlbmRWb2x1bWVTdGF0c0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RhcnRGYWlsYmFja0xhdW5jaCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRGYWlsYmFja0xhdW5jaCA9IFwiZHJzOlN0YXJ0RmFpbGJhY2tMYXVuY2hcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0YXJ0UmVjb3ZlcnkgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVjb3ZlcnkgPSBcImRyczpTdGFydFJlY292ZXJ5XCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdGFydFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZWNvdmVyeVBsYW5FeGVjdXRpb24gPSBcImRyczpTdGFydFJlY292ZXJ5UGxhbkV4ZWN1dGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RhcnRSZXBsaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZXBsaWNhdGlvbiA9IFwiZHJzOlN0YXJ0UmVwbGljYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0YXJ0U291cmNlTmV0d29ya1JlY292ZXJ5ICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFNvdXJjZU5ldHdvcmtSZWNvdmVyeSA9IFwiZHJzOlN0YXJ0U291cmNlTmV0d29ya1JlY292ZXJ5XCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRTb3VyY2VOZXR3b3JrUmVwbGljYXRpb24gPVxuXHRcdFwiZHJzOlN0YXJ0U291cmNlTmV0d29ya1JlcGxpY2F0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdG9wRmFpbGJhY2sgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BGYWlsYmFjayA9IFwiZHJzOlN0b3BGYWlsYmFja1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RvcFJlcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wUmVwbGljYXRpb24gPSBcImRyczpTdG9wUmVwbGljYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0b3BTb3VyY2VOZXR3b3JrUmVwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BTb3VyY2VOZXR3b3JrUmVwbGljYXRpb24gPVxuXHRcdFwiZHJzOlN0b3BTb3VyY2VOZXR3b3JrUmVwbGljYXRpb25cIjtcblx0LyoqIFtUYWdnaW5nXSBkcnM6VGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlID0gXCJkcnM6VGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlRlcm1pbmF0ZVJlY292ZXJ5SW5zdGFuY2VzICovXG5cdHN0YXRpYyByZWFkb25seSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlcyA9IFwiZHJzOlRlcm1pbmF0ZVJlY292ZXJ5SW5zdGFuY2VzXCI7XG5cdC8qKiBbVGFnZ2luZ10gZHJzOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcImRyczpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudEJhY2tsb2dGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFnZW50QmFja2xvZ0ZvckRycyA9IFwiZHJzOlVwZGF0ZUFnZW50QmFja2xvZ0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlQWdlbnRDb252ZXJzaW9uSW5mb0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWdlbnRDb252ZXJzaW9uSW5mb0ZvckRycyA9XG5cdFx0XCJkcnM6VXBkYXRlQWdlbnRDb252ZXJzaW9uSW5mb0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlQWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFnZW50UmVwbGljYXRpb25JbmZvRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVBZ2VudFJlcGxpY2F0aW9uSW5mb0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlQWdlbnRSZXBsaWNhdGlvblByb2Nlc3NTdGF0ZUZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWdlbnRSZXBsaWNhdGlvblByb2Nlc3NTdGF0ZUZvckRycyA9XG5cdFx0XCJkcnM6VXBkYXRlQWdlbnRSZXBsaWNhdGlvblByb2Nlc3NTdGF0ZUZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlQWdlbnRTb3VyY2VQcm9wZXJ0aWVzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZ2VudFNvdXJjZVByb3BlcnRpZXNGb3JEcnMgPVxuXHRcdFwiZHJzOlVwZGF0ZUFnZW50U291cmNlUHJvcGVydGllc0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGYWlsYmFja0NsaWVudERldmljZU1hcHBpbmdGb3JEcnMgPVxuXHRcdFwiZHJzOlVwZGF0ZUZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlRmFpbGJhY2tDbGllbnRMYXN0U2VlbkZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRmFpbGJhY2tDbGllbnRMYXN0U2VlbkZvckRycyA9XG5cdFx0XCJkcnM6VXBkYXRlRmFpbGJhY2tDbGllbnRMYXN0U2VlbkZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uID1cblx0XHRcImRyczpVcGRhdGVGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvbiA9IFwiZHJzOlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlID1cblx0XHRcImRyczpVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZVJlY292ZXJ5UGxhbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVjb3ZlcnlQbGFuID0gXCJkcnM6VXBkYXRlUmVjb3ZlcnlQbGFuXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwID1cblx0XHRcImRyczpVcGRhdGVSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVSZWNvdmVyeVBsYW5TdGVwICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZWNvdmVyeVBsYW5TdGVwID0gXCJkcnM6VXBkYXRlUmVjb3ZlcnlQbGFuU3RlcFwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlUmVwbGljYXRpb25DZXJ0aWZpY2F0ZUZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVwbGljYXRpb25DZXJ0aWZpY2F0ZUZvckRycyA9XG5cdFx0XCJkcnM6VXBkYXRlUmVwbGljYXRpb25DZXJ0aWZpY2F0ZUZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZHJzOlVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlID1cblx0XHRcImRyczpVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVKb2JMb2dJdGVtcyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlSm9icyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlcyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXMsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZVJlY292ZXJ5U25hcHNob3RzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXMsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZVJlcGxpY2F0aW9uU2VydmVyQXNzb2NpYXRpb25zRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVTbmFwc2hvdFJlcXVlc3RzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVTb3VyY2VOZXR3b3Jrcyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlU291cmNlU2VydmVycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEFnZW50Q29tbWFuZEZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEFnZW50Q29uZmlybWVkUmVzdW1lSW5mb0ZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEFnZW50SW5zdGFsbGF0aW9uQXNzZXRzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0QWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRBZ2VudFJ1bnRpbWVDb25maWd1cmF0aW9uRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0QWdlbnRTbmFwc2hvdENyZWRpdHNGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRDaGFubmVsQ29tbWFuZHNGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRGYWlsYmFja0NvbW1hbmRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRGYWlsYmFja0xhdW5jaFJlcXVlc3RlZEZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0TGF1bmNoQ29uZmlndXJhdGlvbixcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldFJlY292ZXJ5UGxhbixcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvbixcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRSZWNvdmVyeVBsYW5TdGVwLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0UmVwbGljYXRpb25Db25maWd1cmF0aW9uLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0U3VnZ2VzdGVkRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuTGlzdEV4dGVuc2libGVTb3VyY2VTZXJ2ZXJzLFxuXHRcdERSU0FjdGlvbnMuTGlzdExhdW5jaEFjdGlvbnMsXG5cdFx0RFJTQWN0aW9ucy5MaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcHMsXG5cdFx0RFJTQWN0aW9ucy5MaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9ucyxcblx0XHREUlNBY3Rpb25zLkxpc3RSZWNvdmVyeVBsYW5TdGVwcyxcblx0XHREUlNBY3Rpb25zLkxpc3RSZWNvdmVyeVBsYW5zLFxuXHRcdERSU0FjdGlvbnMuTGlzdFN0YWdpbmdBY2NvdW50cyxcblx0XHREUlNBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0RFJTQWN0aW9ucy5Bc3NvY2lhdGVGYWlsYmFja0NsaWVudFRvUmVjb3ZlcnlJbnN0YW5jZUZvckRycyxcblx0XHREUlNBY3Rpb25zLkFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFjayxcblx0XHREUlNBY3Rpb25zLkJhdGNoQ3JlYXRlVm9sdW1lU25hcHNob3RHcm91cEZvckRycyxcblx0XHREUlNBY3Rpb25zLkJhdGNoRGVsZXRlU25hcHNob3RSZXF1ZXN0Rm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuQ2FuY2VsUmVjb3ZlcnlQbGFuRXhlY3V0aW9uLFxuXHRcdERSU0FjdGlvbnMuQ3JlYXRlQ29udmVydGVkU25hcHNob3RGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlcixcblx0XHREUlNBY3Rpb25zLkNyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XHREUlNBY3Rpb25zLkNyZWF0ZVJlY292ZXJ5SW5zdGFuY2VGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVSZWNvdmVyeVBsYW4sXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVSZWNvdmVyeVBsYW5TdGVwLFxuXHRcdERSU0FjdGlvbnMuQ3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUsXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVTb3VyY2VOZXR3b3JrLFxuXHRcdERSU0FjdGlvbnMuQ3JlYXRlU291cmNlU2VydmVyRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlSm9iLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlTGF1bmNoQWN0aW9uLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlUmVjb3ZlcnlJbnN0YW5jZSxcblx0XHREUlNBY3Rpb25zLkRlbGV0ZVJlY292ZXJ5UGxhbixcblx0XHREUlNBY3Rpb25zLkRlbGV0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvbixcblx0XHREUlNBY3Rpb25zLkRlbGV0ZVJlY292ZXJ5UGxhblN0ZXAsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XHREUlNBY3Rpb25zLkRlbGV0ZVNvdXJjZU5ldHdvcmssXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVTb3VyY2VTZXJ2ZXIsXG5cdFx0RFJTQWN0aW9ucy5EaXNjb25uZWN0UmVjb3ZlcnlJbnN0YW5jZSxcblx0XHREUlNBY3Rpb25zLkRpc2Nvbm5lY3RTb3VyY2VTZXJ2ZXIsXG5cdFx0RFJTQWN0aW9ucy5FeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGUsXG5cdFx0RFJTQWN0aW9ucy5Jbml0aWFsaXplU2VydmljZSxcblx0XHREUlNBY3Rpb25zLklzc3VlQWdlbnRDZXJ0aWZpY2F0ZUZvckRycyxcblx0XHREUlNBY3Rpb25zLk5vdGlmeUFnZW50QXV0aGVudGljYXRpb25Gb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Ob3RpZnlBZ2VudENvbm5lY3RlZEZvckRycyxcblx0XHREUlNBY3Rpb25zLk5vdGlmeUFnZW50RGlzY29ubmVjdGVkRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuTm90aWZ5QWdlbnRSZXBsaWNhdGlvblByb2dyZXNzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuTm90aWZ5Q29uc2lzdGVuY3lBdHRhaW5lZEZvckRycyxcblx0XHREUlNBY3Rpb25zLk5vdGlmeVJlcGxpY2F0aW9uU2VydmVyQXV0aGVudGljYXRpb25Gb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Ob3RpZnlWb2x1bWVFdmVudEZvckRycyxcblx0XHREUlNBY3Rpb25zLlB1dExhdW5jaEFjdGlvbixcblx0XHREUlNBY3Rpb25zLlJlb3JkZXJSZWNvdmVyeVBsYW5TdGVwcyxcblx0XHREUlNBY3Rpb25zLlJldHJ5RGF0YVJlcGxpY2F0aW9uLFxuXHRcdERSU0FjdGlvbnMuUmV0cnlSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwLFxuXHRcdERSU0FjdGlvbnMuUmV2ZXJzZVJlcGxpY2F0aW9uLFxuXHRcdERSU0FjdGlvbnMuU2VuZEFnZW50TG9nc0ZvckRycyxcblx0XHREUlNBY3Rpb25zLlNlbmRBZ2VudE1ldHJpY3NGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5TZW5kQ2hhbm5lbENvbW1hbmRSZXN1bHRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5TZW5kQ2xpZW50TG9nc0ZvckRycyxcblx0XHREUlNBY3Rpb25zLlNlbmRDbGllbnRNZXRyaWNzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuU2VuZFZvbHVtZVN0YXRzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuU3RhcnRGYWlsYmFja0xhdW5jaCxcblx0XHREUlNBY3Rpb25zLlN0YXJ0UmVjb3ZlcnksXG5cdFx0RFJTQWN0aW9ucy5TdGFydFJlY292ZXJ5UGxhbkV4ZWN1dGlvbixcblx0XHREUlNBY3Rpb25zLlN0YXJ0UmVwbGljYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5TdGFydFNvdXJjZU5ldHdvcmtSZWNvdmVyeSxcblx0XHREUlNBY3Rpb25zLlN0YXJ0U291cmNlTmV0d29ya1JlcGxpY2F0aW9uLFxuXHRcdERSU0FjdGlvbnMuU3RvcEZhaWxiYWNrLFxuXHRcdERSU0FjdGlvbnMuU3RvcFJlcGxpY2F0aW9uLFxuXHRcdERSU0FjdGlvbnMuU3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbixcblx0XHREUlNBY3Rpb25zLlRlcm1pbmF0ZVJlY292ZXJ5SW5zdGFuY2VzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlQWdlbnRCYWNrbG9nRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlQWdlbnRDb252ZXJzaW9uSW5mb0ZvckRycyxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUFnZW50UmVwbGljYXRpb25JbmZvRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlQWdlbnRSZXBsaWNhdGlvblByb2Nlc3NTdGF0ZUZvckRycyxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUFnZW50U291cmNlUHJvcGVydGllc0ZvckRycyxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRycyxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUZhaWxiYWNrQ2xpZW50TGFzdFNlZW5Gb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbixcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVSZWNvdmVyeVBsYW4sXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlUmVjb3ZlcnlQbGFuU3RlcCxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZVJlcGxpY2F0aW9uQ2VydGlmaWNhdGVGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCBwZXJtaXNzaW9uLW1hbmFnZW1lbnQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFBlcm1pc3Npb25NYW5hZ2VtZW50QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0RFJTQWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHREUlNBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBKb2JSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTSm9iUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgSm9iSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGpvYklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgSm9iUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU0pvYlJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBKb2JJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGpvYklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU0xhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBSZWNvdmVyeUluc3RhbmNlSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlY292ZXJ5SW5zdGFuY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZWNvdmVyeUluc3RhbmNlSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZWNvdmVyeUluc3RhbmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBSZWNvdmVyeVBsYW5FeGVjdXRpb25JRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVjb3ZlcnlQbGFuRXhlY3V0aW9uSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlY292ZXJ5UGxhbkV4ZWN1dGlvbklEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVjb3ZlcnlQbGFuRXhlY3V0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFJlY292ZXJ5UGxhblJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNSZWNvdmVyeVBsYW5SZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBSZWNvdmVyeVBsYW5JRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVjb3ZlcnlQbGFuSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBSZWNvdmVyeVBsYW5SZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTUmVjb3ZlcnlQbGFuUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlY292ZXJ5UGxhbklEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVjb3ZlcnlQbGFuSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBTb3VyY2VOZXR3b3JrUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1NvdXJjZU5ldHdvcmtSZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBTb3VyY2VOZXR3b3JrSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNvdXJjZU5ldHdvcmtJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFNvdXJjZU5ldHdvcmtSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTU291cmNlTmV0d29ya1Jlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBTb3VyY2VOZXR3b3JrSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzb3VyY2VOZXR3b3JrSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFNvdXJjZVNlcnZlclJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBTb3VyY2VTZXJ2ZXJJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc291cmNlU2VydmVySWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBTb3VyY2VTZXJ2ZXJSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTU291cmNlU2VydmVyUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFNvdXJjZVNlcnZlcklEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc291cmNlU2VydmVySWQ6IHN0cmluZztcbn1cblxuY29uc3QgSm9iUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZHJzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6am9iXFwvKD88am9iSWQ+W146Lz9dKykkLztcbmNvbnN0IExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRyczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmxhdW5jaC1jb25maWd1cmF0aW9uLXRlbXBsYXRlXFwvKD88bGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSWQ+W146Lz9dKykkLztcbmNvbnN0IFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpyZWNvdmVyeS1pbnN0YW5jZVxcLyg/PHJlY292ZXJ5SW5zdGFuY2VJZD5bXjovP10rKSQvO1xuY29uc3QgUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZHJzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6cmVjb3ZlcnktcGxhbi1leGVjdXRpb25cXC8oPzxyZWNvdmVyeVBsYW5FeGVjdXRpb25JZD5bXjovP10rKSQvO1xuY29uc3QgUmVjb3ZlcnlQbGFuUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZHJzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6cmVjb3ZlcnktcGxhblxcLyg/PHJlY292ZXJ5UGxhbklkPlteOi8/XSspJC87XG5jb25zdCBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRyczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnJlcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24tdGVtcGxhdGVcXC8oPzxyZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkPlteOi8/XSspJC87XG5jb25zdCBTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZHJzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6c291cmNlLW5ldHdvcmtcXC8oPzxzb3VyY2VOZXR3b3JrSWQ+W146Lz9dKykkLztcbmNvbnN0IFNvdXJjZVNlcnZlclJlc291cmNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRyczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnNvdXJjZS1zZXJ2ZXJcXC8oPzxzb3VyY2VTZXJ2ZXJJZD5bXjovP10rKSQvO1xuXG4vKipcbiAqIEFSTiBidWlsZGVycywgdmFsaWRhdG9ycywgYW5kIHBhcnNlcnMgZm9yIGRycyByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEUlNSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIEpvYlJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGpvYlJlc291cmNlKHByb3BzOiBEUlNKb2JSZXNvdXJjZUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkcnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06am9iLyR7cHJvcHMuam9iSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIEpvYlJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRKb2JSZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBKb2JSZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBKb2JSZXNvdXJjZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VKb2JSZXNvdXJjZUFybihhcm46IHN0cmluZyk6IERSU0pvYlJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBKb2JSZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBKb2JSZXNvdXJjZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRqb2JJZDogbWF0Y2guZ3JvdXBzIS5qb2JJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBsYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZShcblx0XHRwcm9wczogRFJTTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkcnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06bGF1bmNoLWNvbmZpZ3VyYXRpb24tdGVtcGxhdGUvJHtwcm9wcy5sYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBEUlNMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXG5cdFx0XHRcdGBJbnZhbGlkIExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIEFSTjogJHthcm59YCxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOlxuXHRcdFx0XHRtYXRjaC5ncm91cHMhLmxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyByZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UoXG5cdFx0cHJvcHM6IERSU1JlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmRyczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpyZWNvdmVyeS1pbnN0YW5jZS8ke3Byb3BzLnJlY292ZXJ5SW5zdGFuY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IERSU1JlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZWNvdmVyeUluc3RhbmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVjb3ZlcnlJbnN0YW5jZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIFJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlKFxuXHRcdHByb3BzOiBEUlNSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmRyczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpyZWNvdmVyeS1wbGFuLWV4ZWN1dGlvbi8ke3Byb3BzLnJlY292ZXJ5UGxhbkV4ZWN1dGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IERSU1JlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZWNvdmVyeVBsYW5FeGVjdXRpb25JZDogbWF0Y2guZ3JvdXBzIS5yZWNvdmVyeVBsYW5FeGVjdXRpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBSZWNvdmVyeVBsYW5SZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyByZWNvdmVyeVBsYW5SZXNvdXJjZShwcm9wczogRFJTUmVjb3ZlcnlQbGFuUmVzb3VyY2VBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnJlY292ZXJ5LXBsYW4vJHtwcm9wcy5yZWNvdmVyeVBsYW5JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgUmVjb3ZlcnlQbGFuUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJlY292ZXJ5UGxhblJlc291cmNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJlY292ZXJ5UGxhblJlc291cmNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIFJlY292ZXJ5UGxhblJlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVJlY292ZXJ5UGxhblJlc291cmNlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBEUlNSZWNvdmVyeVBsYW5SZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVjb3ZlcnlQbGFuUmVzb3VyY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgUmVjb3ZlcnlQbGFuUmVzb3VyY2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVjb3ZlcnlQbGFuSWQ6IG1hdGNoLmdyb3VwcyEucmVjb3ZlcnlQbGFuSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyByZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlKFxuXHRcdHByb3BzOiBEUlNSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnJlcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24tdGVtcGxhdGUvJHtwcm9wcy5yZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IERSU1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXG5cdFx0XHRcdGBJbnZhbGlkIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOOiAke2Fybn1gLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVJZDpcblx0XHRcdFx0bWF0Y2guZ3JvdXBzIS5yZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIFNvdXJjZU5ldHdvcmtSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzb3VyY2VOZXR3b3JrUmVzb3VyY2UoXG5cdFx0cHJvcHM6IERSU1NvdXJjZU5ldHdvcmtSZXNvdXJjZUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmRyczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzb3VyY2UtbmV0d29yay8ke3Byb3BzLnNvdXJjZU5ldHdvcmtJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgU291cmNlTmV0d29ya1Jlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gU291cmNlTmV0d29ya1Jlc291cmNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIFNvdXJjZU5ldHdvcmtSZXNvdXJjZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IERSU1NvdXJjZU5ldHdvcmtSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gU291cmNlTmV0d29ya1Jlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFNvdXJjZU5ldHdvcmtSZXNvdXJjZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzb3VyY2VOZXR3b3JrSWQ6IG1hdGNoLmdyb3VwcyEuc291cmNlTmV0d29ya0lkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIFNvdXJjZVNlcnZlclJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHNvdXJjZVNlcnZlclJlc291cmNlKHByb3BzOiBEUlNTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkcnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06c291cmNlLXNlcnZlci8ke3Byb3BzLnNvdXJjZVNlcnZlcklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBTb3VyY2VTZXJ2ZXJSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU291cmNlU2VydmVyUmVzb3VyY2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gU291cmNlU2VydmVyUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgU291cmNlU2VydmVyUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlU291cmNlU2VydmVyUmVzb3VyY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IERSU1NvdXJjZVNlcnZlclJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBTb3VyY2VTZXJ2ZXJSZXNvdXJjZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzb3VyY2VTZXJ2ZXJJZDogbWF0Y2guZ3JvdXBzIS5zb3VyY2VTZXJ2ZXJJZCxcblx0XHR9O1xuXHR9XG59XG5cbi8qKlxuICogQVBJIG9wZXJhdGlvbiB0byByZXF1aXJlZCBJQU0gYWN0aW9ucyBtYXBwaW5nIGZvciBkcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEUlNPcGVyYXRpb25zIHtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2tcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ2FuY2VsUmVjb3ZlcnlQbGFuRXhlY3V0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsUmVjb3ZlcnlQbGFuRXhlY3V0aW9uOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpDcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlclwiLFxuXHRcdFwiZHJzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6Q3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlXCIsXG5cdFx0XCJkcnM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUmVjb3ZlcnlQbGFuIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVjb3ZlcnlQbGFuOiBzdHJpbmdbXSA9IFtcImRyczpDcmVhdGVSZWNvdmVyeVBsYW5cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVJlY292ZXJ5UGxhblN0ZXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvdmVyeVBsYW5TdGVwOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpDcmVhdGVSZWNvdmVyeVBsYW5TdGVwXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkNyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlXCIsXG5cdFx0XCJkcnM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlU291cmNlTmV0d29yayBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNvdXJjZU5ldHdvcms6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkNyZWF0ZVNvdXJjZU5ldHdvcmtcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVKb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVKb2I6IHN0cmluZ1tdID0gW1wiZHJzOkRlbGV0ZUpvYlwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTGF1bmNoQWN0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTGF1bmNoQWN0aW9uOiBzdHJpbmdbXSA9IFtcImRyczpEZWxldGVMYXVuY2hBY3Rpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVJlY292ZXJ5SW5zdGFuY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZWNvdmVyeUluc3RhbmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZWxldGVSZWNvdmVyeUluc3RhbmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVJlY292ZXJ5UGxhbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY292ZXJ5UGxhbjogc3RyaW5nW10gPSBbXCJkcnM6RGVsZXRlUmVjb3ZlcnlQbGFuXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZWNvdmVyeVBsYW5FeGVjdXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZWNvdmVyeVBsYW5FeGVjdXRpb246IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVJlY292ZXJ5UGxhblN0ZXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZWNvdmVyeVBsYW5TdGVwOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZWxldGVSZWNvdmVyeVBsYW5TdGVwXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlbGV0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVNvdXJjZU5ldHdvcmsgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTb3VyY2VOZXR3b3JrOiBzdHJpbmdbXSA9IFtcImRyczpEZWxldGVTb3VyY2VOZXR3b3JrXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVTb3VyY2VTZXJ2ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTb3VyY2VTZXJ2ZXI6IHN0cmluZ1tdID0gW1wiZHJzOkRlbGV0ZVNvdXJjZVNlcnZlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVKb2JMb2dJdGVtcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlSm9iTG9nSXRlbXM6IHN0cmluZ1tdID0gW1wiZHJzOkRlc2NyaWJlSm9iTG9nSXRlbXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlSm9icyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlSm9iczogc3RyaW5nW10gPSBbXCJkcnM6RGVzY3JpYmVKb2JzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVSZWNvdmVyeUluc3RhbmNlczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVzY3JpYmVSZWNvdmVyeUluc3RhbmNlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVSZWNvdmVyeVNuYXBzaG90czogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVzY3JpYmVSZWNvdmVyeVNuYXBzaG90c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZXNjcmliZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVNvdXJjZU5ldHdvcmtzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTb3VyY2VOZXR3b3Jrczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVzY3JpYmVTb3VyY2VOZXR3b3Jrc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVNvdXJjZVNlcnZlcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVNvdXJjZVNlcnZlcnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlc2NyaWJlU291cmNlU2VydmVyc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEaXNjb25uZWN0UmVjb3ZlcnlJbnN0YW5jZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Nvbm5lY3RSZWNvdmVyeUluc3RhbmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEaXNjb25uZWN0UmVjb3ZlcnlJbnN0YW5jZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEaXNjb25uZWN0U291cmNlU2VydmVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzY29ubmVjdFNvdXJjZVNlcnZlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGlzY29ubmVjdFNvdXJjZVNlcnZlclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBFeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBFeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkdldEZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldExhdW5jaENvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldExhdW5jaENvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkdldExhdW5jaENvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjb3ZlcnlQbGFuIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZWNvdmVyeVBsYW46IHN0cmluZ1tdID0gW1wiZHJzOkdldFJlY292ZXJ5UGxhblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZWNvdmVyeVBsYW5FeGVjdXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZWNvdmVyeVBsYW5TdGVwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZWNvdmVyeVBsYW5TdGVwOiBzdHJpbmdbXSA9IFtcImRyczpHZXRSZWNvdmVyeVBsYW5TdGVwXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6R2V0UmVwbGljYXRpb25Db25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEluaXRpYWxpemVTZXJ2aWNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW5pdGlhbGl6ZVNlcnZpY2U6IHN0cmluZ1tdID0gW1wiZHJzOkluaXRpYWxpemVTZXJ2aWNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkxpc3RFeHRlbnNpYmxlU291cmNlU2VydmVyc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0TGF1bmNoQWN0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMYXVuY2hBY3Rpb25zOiBzdHJpbmdbXSA9IFtcImRyczpMaXN0TGF1bmNoQWN0aW9uc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXBzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXBzOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpMaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UmVjb3ZlcnlQbGFuU3RlcHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb3ZlcnlQbGFuU3RlcHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkxpc3RSZWNvdmVyeVBsYW5TdGVwc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UmVjb3ZlcnlQbGFucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvdmVyeVBsYW5zOiBzdHJpbmdbXSA9IFtcImRyczpMaXN0UmVjb3ZlcnlQbGFuc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFN0YWdpbmdBY2NvdW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdGFnaW5nQWNjb3VudHM6IHN0cmluZ1tdID0gW1wiZHJzOkxpc3RTdGFnaW5nQWNjb3VudHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcImRyczpMaXN0VGFnc0ZvclJlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRMYXVuY2hBY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRMYXVuY2hBY3Rpb246IHN0cmluZ1tdID0gW1wiZHJzOlB1dExhdW5jaEFjdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmVvcmRlclJlY292ZXJ5UGxhblN0ZXBzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVvcmRlclJlY292ZXJ5UGxhblN0ZXBzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpSZW9yZGVyUmVjb3ZlcnlQbGFuU3RlcHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmV0cnlEYXRhUmVwbGljYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZXRyeURhdGFSZXBsaWNhdGlvbjogc3RyaW5nW10gPSBbXCJkcnM6UmV0cnlEYXRhUmVwbGljYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJldHJ5UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJldHJ5UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcDogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmV2ZXJzZVJlcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmV2ZXJzZVJlcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcImRyczpSZXZlcnNlUmVwbGljYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0RmFpbGJhY2tMYXVuY2ggQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydEZhaWxiYWNrTGF1bmNoOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFJlY292ZXJ5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZWNvdmVyeTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6U3RhcnRSZWNvdmVyeVwiLFxuXHRcdFwiZHJzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZWNvdmVyeVBsYW5FeGVjdXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlN0YXJ0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0UmVwbGljYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcImRyczpTdGFydFJlcGxpY2F0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFNvdXJjZU5ldHdvcmtSZWNvdmVyeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U291cmNlTmV0d29ya1JlY292ZXJ5OiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpTdGFydFNvdXJjZU5ldHdvcmtSZWNvdmVyeVwiLFxuXHRcdFwiZHJzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0U291cmNlTmV0d29ya1JlcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRTb3VyY2VOZXR3b3JrUmVwbGljYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlN0YXJ0U291cmNlTmV0d29ya1JlcGxpY2F0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BGYWlsYmFjayBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BGYWlsYmFjazogc3RyaW5nW10gPSBbXCJkcnM6U3RvcEZhaWxiYWNrXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wUmVwbGljYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wUmVwbGljYXRpb246IHN0cmluZ1tdID0gW1wiZHJzOlN0b3BSZXBsaWNhdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BTb3VyY2VOZXR3b3JrUmVwbGljYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlN0b3BTb3VyY2VOZXR3b3JrUmVwbGljYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJkcnM6VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRlcm1pbmF0ZVJlY292ZXJ5SW5zdGFuY2VzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlRlcm1pbmF0ZVJlY292ZXJ5SW5zdGFuY2VzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImRyczpVbnRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpVcGRhdGVGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6VXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVSZWNvdmVyeVBsYW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZWNvdmVyeVBsYW46IHN0cmluZ1tdID0gW1wiZHJzOlVwZGF0ZVJlY292ZXJ5UGxhblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXA6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlVwZGF0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXBcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVjb3ZlcnlQbGFuU3RlcCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlY292ZXJ5UGxhblN0ZXA6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlVwZGF0ZVJlY292ZXJ5UGxhblN0ZXBcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6VXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGRycy5cbiAqL1xuZXhwb3J0IGNsYXNzIERSU0NvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFja0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ29udmVydGVkU25hcHNob3RGb3JEcnMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29udmVydGVkU25hcHNob3RGb3JEcnNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY292ZXJ5SW5zdGFuY2VGb3JEcnNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVJlY292ZXJ5UGxhbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvdmVyeVBsYW5Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPVxuXHRcdFtcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLCBcImF3czpUYWdLZXlzXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlU291cmNlTmV0d29yayBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb3VyY2VOZXR3b3JrQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU291cmNlU2VydmVyRm9yRHJzQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBFeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBSZXZlcnNlUmVwbGljYXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmV2ZXJzZVJlcGxpY2F0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTdGFydEZhaWxiYWNrTGF1bmNoIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0RmFpbGJhY2tMYXVuY2hDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0UmVjb3ZlcnkgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZWNvdmVyeUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRSZWNvdmVyeVBsYW5FeGVjdXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZWNvdmVyeVBsYW5FeGVjdXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0U291cmNlTmV0d29ya1JlY292ZXJ5IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U291cmNlTmV0d29ya1JlY292ZXJ5Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUYWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRcdFwiZHJzOkNyZWF0ZUFjdGlvblwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVudGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1wiYXdzOlRhZ0tleXNcIl07XG5cblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFUVVFU1RfVEFHID0gXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVNPVVJDRV9UQUcgPSBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1RBR19LRVlTID0gXCJhd3M6VGFnS2V5c1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZHJzOkNyZWF0ZUFjdGlvbiAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ1JFQVRFX0FDVElPTiA9IFwiZHJzOkNyZWF0ZUFjdGlvblwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZHJzOkVDMkluc3RhbmNlQVJOIChBUk4pICovXG5cdHN0YXRpYyByZWFkb25seSBFQzJfSU5TVEFOQ0VfQVJOID0gXCJkcnM6RUMySW5zdGFuY2VBUk5cIjtcblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXF1ZXN0VGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXNvdXJjZVRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpUYWdLZXlzYC5cblx0ICovXG5cdHN0YXRpYyB0YWdLZXlzKHZhbHVlczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImF3czpUYWdLZXlzXCI6IHZhbHVlcyB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZHJzOkNyZWF0ZUFjdGlvbmAuXG5cdCAqL1xuXHRzdGF0aWMgY3JlYXRlQWN0aW9uKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZHJzOkNyZWF0ZUFjdGlvblwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZHJzOkVDMkluc3RhbmNlQVJOYC5cblx0ICovXG5cdHN0YXRpYyBlYzJJbnN0YW5jZUFSTih2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IEFybkVxdWFsczogeyBcImRyczpFQzJJbnN0YW5jZUFSTlwiOiB2YWx1ZSB9IH07XG5cdH1cbn1cbiJdfQ==
|