@cdk_utils/iam 1.9.0 → 1.11.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 +2247 -2011
- 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.d.ts +12 -0
- package/lib/generated/services/agent-registry.js +22 -5
- package/lib/generated/services/agentaccess-mcp.js +2 -2
- package/lib/generated/services/aidevops.d.ts +2 -0
- package/lib/generated/services/aidevops.js +7 -5
- 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.d.ts +6 -0
- package/lib/generated/services/autoscaling.js +20 -5
- 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.js +4 -4
- 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.d.ts +4 -0
- package/lib/generated/services/batch.js +14 -5
- 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 +4 -4
- 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.js +4 -4
- 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.d.ts +4 -0
- package/lib/generated/services/customer-verification.js +8 -2
- 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.js +13 -18
- 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.d.ts +2 -0
- package/lib/generated/services/elemental-inference.js +7 -5
- 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 +4 -4
- 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.js +4 -4
- package/lib/generated/services/honeycode.js +2 -2
- package/lib/generated/services/iam.d.ts +2 -0
- package/lib/generated/services/iam.js +7 -5
- 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.js +4 -4
- 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 +6 -5
- 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.d.ts +2 -10
- package/lib/generated/services/quicksight.js +8 -20
- 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 PersonalizeActions {
|
|
|
16
16
|
}
|
|
17
17
|
exports.PersonalizeActions = PersonalizeActions;
|
|
18
18
|
_a = JSII_RTTI_SYMBOL_1;
|
|
19
|
-
PersonalizeActions[_a] = { fqn: "@cdk_utils/iam.personalize.PersonalizeActions", version: "1.
|
|
19
|
+
PersonalizeActions[_a] = { fqn: "@cdk_utils/iam.personalize.PersonalizeActions", version: "1.11.0" };
|
|
20
20
|
/** The IAM service prefix. */
|
|
21
21
|
PersonalizeActions.SERVICE_PREFIX = "personalize";
|
|
22
22
|
/** [Write] personalize:CreateBatchInferenceJob */
|
|
@@ -811,7 +811,7 @@ class PersonalizeResources {
|
|
|
811
811
|
}
|
|
812
812
|
exports.PersonalizeResources = PersonalizeResources;
|
|
813
813
|
_b = JSII_RTTI_SYMBOL_1;
|
|
814
|
-
PersonalizeResources[_b] = { fqn: "@cdk_utils/iam.personalize.PersonalizeResources", version: "1.
|
|
814
|
+
PersonalizeResources[_b] = { fqn: "@cdk_utils/iam.personalize.PersonalizeResources", version: "1.11.0" };
|
|
815
815
|
/**
|
|
816
816
|
* API operation to required IAM actions mapping for personalize.
|
|
817
817
|
*/
|
|
@@ -819,7 +819,7 @@ class PersonalizeOperations {
|
|
|
819
819
|
}
|
|
820
820
|
exports.PersonalizeOperations = PersonalizeOperations;
|
|
821
821
|
_c = JSII_RTTI_SYMBOL_1;
|
|
822
|
-
PersonalizeOperations[_c] = { fqn: "@cdk_utils/iam.personalize.PersonalizeOperations", version: "1.
|
|
822
|
+
PersonalizeOperations[_c] = { fqn: "@cdk_utils/iam.personalize.PersonalizeOperations", version: "1.11.0" };
|
|
823
823
|
/** IAM actions required for the CreateBatchInferenceJob API call. */
|
|
824
824
|
PersonalizeOperations.CreateBatchInferenceJob = [
|
|
825
825
|
"personalize:CreateBatchInferenceJob",
|
|
@@ -841,6 +841,7 @@ PersonalizeOperations.CreateCampaign = [
|
|
|
841
841
|
PersonalizeOperations.CreateDataDeletionJob = [
|
|
842
842
|
"personalize:CreateDataDeletionJob",
|
|
843
843
|
"iam:PassRole",
|
|
844
|
+
"personalize:TagResource",
|
|
844
845
|
];
|
|
845
846
|
/** IAM actions required for the CreateDataset API call. */
|
|
846
847
|
PersonalizeOperations.CreateDataset = [
|
|
@@ -1121,7 +1122,7 @@ class PersonalizeConditions {
|
|
|
1121
1122
|
}
|
|
1122
1123
|
exports.PersonalizeConditions = PersonalizeConditions;
|
|
1123
1124
|
_d = JSII_RTTI_SYMBOL_1;
|
|
1124
|
-
PersonalizeConditions[_d] = { fqn: "@cdk_utils/iam.personalize.PersonalizeConditions", version: "1.
|
|
1125
|
+
PersonalizeConditions[_d] = { fqn: "@cdk_utils/iam.personalize.PersonalizeConditions", version: "1.11.0" };
|
|
1125
1126
|
/** Condition keys applicable to the CreateBatchInferenceJob action. */
|
|
1126
1127
|
PersonalizeConditions.CreateBatchInferenceJobConditionKeys = [
|
|
1127
1128
|
"aws:RequestTag/${TagKey}",
|
|
@@ -1200,4 +1201,4 @@ PersonalizeConditions.AWS_REQUEST_TAG = "aws:RequestTag/${TagKey}";
|
|
|
1200
1201
|
PersonalizeConditions.AWS_RESOURCE_TAG = "aws:ResourceTag/${TagKey}";
|
|
1201
1202
|
/** Condition key: aws:TagKeys (ArrayOfString) */
|
|
1202
1203
|
PersonalizeConditions.AWS_TAG_KEYS = "aws:TagKeys";
|
|
1203
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uYWxpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL3NlcnZpY2VzL3BlcnNvbmFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0ZBQWdGO0FBQ2hGLDZDQUE2QztBQUM3QywwREFBMEQ7QUFDMUQsa0RBQWtEO0FBQ2xELG9EQUFvRDtBQUNwRCxnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDSCxNQUFhLGtCQUFrQjs7QUFBL0IsZ0RBNlJDOzs7QUE1UkEsOEJBQThCO0FBQ2QsaUNBQWMsR0FBRyxhQUFhLENBQUM7QUFFL0Msa0RBQWtEO0FBQ2xDLDBDQUF1QixHQUN0QyxxQ0FBcUMsQ0FBQztBQUN2QyxnREFBZ0Q7QUFDaEMsd0NBQXFCLEdBQUcsbUNBQW1DLENBQUM7QUFDNUUseUNBQXlDO0FBQ3pCLGlDQUFjLEdBQUcsNEJBQTRCLENBQUM7QUFDOUQsZ0RBQWdEO0FBQ2hDLHdDQUFxQixHQUFHLG1DQUFtQyxDQUFDO0FBQzVFLGdEQUFnRDtBQUNoQyx3Q0FBcUIsR0FBRyxtQ0FBbUMsQ0FBQztBQUM1RSx3Q0FBd0M7QUFDeEIsZ0NBQWEsR0FBRywyQkFBMkIsQ0FBQztBQUM1RCxpREFBaUQ7QUFDakMseUNBQXNCLEdBQUcsb0NBQW9DLENBQUM7QUFDOUUsNkNBQTZDO0FBQzdCLHFDQUFrQixHQUFHLGdDQUFnQyxDQUFDO0FBQ3RFLGlEQUFpRDtBQUNqQyx5Q0FBc0IsR0FBRyxvQ0FBb0MsQ0FBQztBQUM5RSw2Q0FBNkM7QUFDN0IscUNBQWtCLEdBQUcsZ0NBQWdDLENBQUM7QUFDdEUsdUNBQXVDO0FBQ3ZCLCtCQUFZLEdBQUcsMEJBQTBCLENBQUM7QUFDMUQsa0RBQWtEO0FBQ2xDLDBDQUF1QixHQUN0QyxxQ0FBcUMsQ0FBQztBQUN2Qyw0Q0FBNEM7QUFDNUIsb0NBQWlCLEdBQUcsK0JBQStCLENBQUM7QUFDcEUsdUNBQXVDO0FBQ3ZCLCtCQUFZLEdBQUcsMEJBQTBCLENB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SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRixzRUFBc0U7QUFDdEQseURBQW1DLEdBQWE7SUFDL0QsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0Ysa0VBQWtFO0FBQ2xELHFEQUErQixHQUFhO0lBQzNELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDREQUE0RDtBQUM1QywrQ0FBeUIsR0FBYTtJQUNyRCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRixpRUFBaUU7QUFDakQsb0RBQThCLEdBQWE7SUFDMUQsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsOERBQThEO0FBQzlDLGlEQUEyQixHQUFhO0lBQ3ZELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLHFFQUFxRTtBQUNyRCx3REFBa0MsR0FBYTtJQUM5RCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiwyREFBMkQ7QUFDM0MsOENBQXdCLEdBQWE7SUFDcEQsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsNkRBQTZEO0FBQzdDLGdEQUEwQixHQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7QUFFdkUsdURBQXVEO0FBQ3ZDLHFDQUFlLEdBQUcsMEJBQTBCLENBQUM7QUFDN0Qsd0RBQXdEO0FBQ3hDLHNDQUFnQixHQUFHLDJCQUEyQixDQUFDO0FBQy9ELGlEQUFpRDtBQUNqQyxrQ0FBWSxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL3BlcnNvbmFsaXplLmpzb25cbi8vIFJ1biBgbnB4IHByb2plbiBnZW5lcmF0ZS1jb25zdGFudHNgIHRvIHJlZ2VuZXJhdGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSUFNIGFjdGlvbiBjb25zdGFudHMgZm9yIHRoZSBwZXJzb25hbGl6ZSBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgUGVyc29uYWxpemVBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwicGVyc29uYWxpemVcIjtcblxuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpDcmVhdGVCYXRjaEluZmVyZW5jZUpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQmF0Y2hJbmZlcmVuY2VKb2IgPVxuXHRcdFwicGVyc29uYWxpemU6Q3JlYXRlQmF0Y2hJbmZlcmVuY2VKb2JcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6Q3JlYXRlQmF0Y2hTZWdtZW50Sm9iICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVCYXRjaFNlZ21lbnRKb2IgPSBcInBlcnNvbmFsaXplOkNyZWF0ZUJhdGNoU2VnbWVudEpvYlwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpDcmVhdGVDYW1wYWlnbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2FtcGFpZ24gPSBcInBlcnNvbmFsaXplOkNyZWF0ZUNhbXBhaWduXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkNyZWF0ZURhdGFEZWxldGlvbkpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YURlbGV0aW9uSm9iID0gXCJwZXJzb25hbGl6ZTpDcmVhdGVEYXRhRGVsZXRpb25Kb2JcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6Q3JlYXRlRGF0YUluc2lnaHRzSm9iICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhSW5zaWdodHNKb2IgPSBcInBlcnNvbmFsaXplOkNyZWF0ZURhdGFJbnNpZ2h0c0pvYlwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpDcmVhdGVEYXRhc2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhc2V0ID0gXCJwZXJzb25hbGl6ZTpDcmVhdGVEYXRhc2V0XCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkNyZWF0ZURhdGFzZXRFeHBvcnRKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFzZXRFeHBvcnRKb2IgPSBcInBlcnNvbmFsaXplOkNyZWF0ZURhdGFzZXRFeHBvcnRKb2JcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6Q3JlYXRlRGF0YXNldEdyb3VwICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhc2V0R3JvdXAgPSBcInBlcnNvbmFsaXplOkNyZWF0ZURhdGFzZXRHcm91cFwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpDcmVhdGVEYXRhc2V0SW1wb3J0Sm9iICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhc2V0SW1wb3J0Sm9iID0gXCJwZXJzb25hbGl6ZTpDcmVhdGVEYXRhc2V0SW1wb3J0Sm9iXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkNyZWF0ZUV2ZW50VHJhY2tlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXZlbnRUcmFja2VyID0gXCJwZXJzb25hbGl6ZTpDcmVhdGVFdmVudFRyYWNrZXJcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6Q3JlYXRlRmlsdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVGaWx0ZXIgPSBcInBlcnNvbmFsaXplOkNyZWF0ZUZpbHRlclwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpDcmVhdGVNZXRyaWNBdHRyaWJ1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTWV0cmljQXR0cmlidXRpb24gPVxuXHRcdFwicGVyc29uYWxpemU6Q3JlYXRlTWV0cmljQXR0cmlidXRpb25cIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6Q3JlYXRlUmVjb21tZW5kZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY29tbWVuZGVyID0gXCJwZXJzb25hbGl6ZTpDcmVhdGVSZWNvbW1lbmRlclwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpDcmVhdGVTY2hlbWEgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNjaGVtYSA9IFwicGVyc29uYWxpemU6Q3JlYXRlU2NoZW1hXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkNyZWF0ZVNvbHV0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb2x1dGlvbiA9IFwicGVyc29uYWxpemU6Q3JlYXRlU29sdXRpb25cIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6Q3JlYXRlU29sdXRpb25WZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb2x1dGlvblZlcnNpb24gPSBcInBlcnNvbmFsaXplOkNyZWF0ZVNvbHV0aW9uVmVyc2lvblwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpEZWxldGVDYW1wYWlnbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2FtcGFpZ24gPSBcInBlcnNvbmFsaXplOkRlbGV0ZUNhbXBhaWduXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkRlbGV0ZURhdGFzZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURhdGFzZXQgPSBcInBlcnNvbmFsaXplOkRlbGV0ZURhdGFzZXRcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6RGVsZXRlRGF0YXNldEdyb3VwICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEYXRhc2V0R3JvdXAgPSBcInBlcnNvbmFsaXplOkRlbGV0ZURhdGFzZXRHcm91cFwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpEZWxldGVFdmVudFRyYWNrZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV2ZW50VHJhY2tlciA9IFwicGVyc29uYWxpemU6RGVsZXRlRXZlbnRUcmFja2VyXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkRlbGV0ZUZpbHRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRmlsdGVyID0gXCJwZXJzb25hbGl6ZTpEZWxldGVGaWx0ZXJcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6RGVsZXRlTWV0cmljQXR0cmlidXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZU1ldHJpY0F0dHJpYnV0aW9uID1cblx0XHRcInBlcnNvbmFsaXplOkRlbGV0ZU1ldHJpY0F0dHJpYnV0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkRlbGV0ZVJlY29tbWVuZGVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZWNvbW1lbmRlciA9IFwicGVyc29uYWxpemU6RGVsZXRlUmVjb21tZW5kZXJcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6RGVsZXRlU2NoZW1hICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTY2hlbWEgPSBcInBlcnNvbmFsaXplOkRlbGV0ZVNjaGVtYVwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpEZWxldGVTb2x1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU29sdXRpb24gPSBcInBlcnNvbmFsaXplOkRlbGV0ZVNvbHV0aW9uXCI7XG5cdC8qKiBbUmVhZF0gcGVyc29uYWxpemU6RGVzY3JpYmVBbGdvcml0aG0gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQWxnb3JpdGhtID0gXCJwZXJzb25hbGl6ZTpEZXNjcmliZUFsZ29yaXRobVwiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkRlc2NyaWJlQmF0Y2hJbmZlcmVuY2VKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQmF0Y2hJbmZlcmVuY2VKb2IgPVxuXHRcdFwicGVyc29uYWxpemU6RGVzY3JpYmVCYXRjaEluZmVyZW5jZUpvYlwiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkRlc2NyaWJlQmF0Y2hTZWdtZW50Sm9iICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUJhdGNoU2VnbWVudEpvYiA9XG5cdFx0XCJwZXJzb25hbGl6ZTpEZXNjcmliZUJhdGNoU2VnbWVudEpvYlwiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkRlc2NyaWJlQ2FtcGFpZ24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ2FtcGFpZ24gPSBcInBlcnNvbmFsaXplOkRlc2NyaWJlQ2FtcGFpZ25cIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpEZXNjcmliZURhdGFEZWxldGlvbkpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVEYXRhRGVsZXRpb25Kb2IgPVxuXHRcdFwicGVyc29uYWxpemU6RGVzY3JpYmVEYXRhRGVsZXRpb25Kb2JcIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpEZXNjcmliZURhdGFJbnNpZ2h0c0pvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVEYXRhSW5zaWdodHNKb2IgPVxuXHRcdFwicGVyc29uYWxpemU6RGVzY3JpYmVEYXRhSW5zaWdodHNKb2JcIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpEZXNjcmliZURhdGFzZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRGF0YXNldCA9IFwicGVyc29uYWxpemU6RGVzY3JpYmVEYXRhc2V0XCI7XG5cdC8qKiBbUmVhZF0gcGVyc29uYWxpemU6RGVzY3JpYmVEYXRhc2V0RXhwb3J0Sm9iICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZURhdGFzZXRFeHBvcnRKb2IgPVxuXHRcdFwicGVyc29uYWxpemU6RGVzY3JpYmVEYXRhc2V0RXhwb3J0Sm9iXCI7XG5cdC8qKiBbUmVhZF0gcGVyc29uYWxpemU6RGVzY3JpYmVEYXRhc2V0R3JvdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRGF0YXNldEdyb3VwID0gXCJwZXJzb25hbGl6ZTpEZXNjcmliZURhdGFzZXRHcm91cFwiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkRlc2NyaWJlRGF0YXNldEltcG9ydEpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVEYXRhc2V0SW1wb3J0Sm9iID1cblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlRGF0YXNldEltcG9ydEpvYlwiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkRlc2NyaWJlRXZlbnRUcmFja2VyICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUV2ZW50VHJhY2tlciA9IFwicGVyc29uYWxpemU6RGVzY3JpYmVFdmVudFRyYWNrZXJcIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpEZXNjcmliZUZlYXR1cmVUcmFuc2Zvcm1hdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVGZWF0dXJlVHJhbnNmb3JtYXRpb24gPVxuXHRcdFwicGVyc29uYWxpemU6RGVzY3JpYmVGZWF0dXJlVHJhbnNmb3JtYXRpb25cIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpEZXNjcmliZUZpbHRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVGaWx0ZXIgPSBcInBlcnNvbmFsaXplOkRlc2NyaWJlRmlsdGVyXCI7XG5cdC8qKiBbUmVhZF0gcGVyc29uYWxpemU6RGVzY3JpYmVNZXRyaWNBdHRyaWJ1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVNZXRyaWNBdHRyaWJ1dGlvbiA9XG5cdFx0XCJwZXJzb25hbGl6ZTpEZXNjcmliZU1ldHJpY0F0dHJpYnV0aW9uXCI7XG5cdC8qKiBbUmVhZF0gcGVyc29uYWxpemU6RGVzY3JpYmVSZWNpcGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUmVjaXBlID0gXCJwZXJzb25hbGl6ZTpEZXNjcmliZVJlY2lwZVwiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkRlc2NyaWJlUmVjb21tZW5kZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUmVjb21tZW5kZXIgPSBcInBlcnNvbmFsaXplOkRlc2NyaWJlUmVjb21tZW5kZXJcIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpEZXNjcmliZVNjaGVtYSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTY2hlbWEgPSBcInBlcnNvbmFsaXplOkRlc2NyaWJlU2NoZW1hXCI7XG5cdC8qKiBbUmVhZF0gcGVyc29uYWxpemU6RGVzY3JpYmVTb2x1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTb2x1dGlvbiA9IFwicGVyc29uYWxpemU6RGVzY3JpYmVTb2x1dGlvblwiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkRlc2NyaWJlU29sdXRpb25WZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVNvbHV0aW9uVmVyc2lvbiA9XG5cdFx0XCJwZXJzb25hbGl6ZTpEZXNjcmliZVNvbHV0aW9uVmVyc2lvblwiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkdldEFjdGlvblJlY29tbWVuZGF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWN0aW9uUmVjb21tZW5kYXRpb25zID1cblx0XHRcInBlcnNvbmFsaXplOkdldEFjdGlvblJlY29tbWVuZGF0aW9uc1wiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkdldERhdGFJbnNpZ2h0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RGF0YUluc2lnaHRzID0gXCJwZXJzb25hbGl6ZTpHZXREYXRhSW5zaWdodHNcIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpHZXRQZXJzb25hbGl6ZWRSYW5raW5nICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRQZXJzb25hbGl6ZWRSYW5raW5nID1cblx0XHRcInBlcnNvbmFsaXplOkdldFBlcnNvbmFsaXplZFJhbmtpbmdcIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpHZXRSZWNvbW1lbmRhdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlY29tbWVuZGF0aW9ucyA9IFwicGVyc29uYWxpemU6R2V0UmVjb21tZW5kYXRpb25zXCI7XG5cdC8qKiBbUmVhZF0gcGVyc29uYWxpemU6R2V0U29sdXRpb25NZXRyaWNzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRTb2x1dGlvbk1ldHJpY3MgPSBcInBlcnNvbmFsaXplOkdldFNvbHV0aW9uTWV0cmljc1wiO1xuXHQvKiogW0xpc3RdIHBlcnNvbmFsaXplOkxpc3RCYXRjaEluZmVyZW5jZUpvYnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RCYXRjaEluZmVyZW5jZUpvYnMgPSBcInBlcnNvbmFsaXplOkxpc3RCYXRjaEluZmVyZW5jZUpvYnNcIjtcblx0LyoqIFtMaXN0XSBwZXJzb25hbGl6ZTpMaXN0QmF0Y2hTZWdtZW50Sm9icyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEJhdGNoU2VnbWVudEpvYnMgPSBcInBlcnNvbmFsaXplOkxpc3RCYXRjaFNlZ21lbnRKb2JzXCI7XG5cdC8qKiBbTGlzdF0gcGVyc29uYWxpemU6TGlzdENhbXBhaWducyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENhbXBhaWducyA9IFwicGVyc29uYWxpemU6TGlzdENhbXBhaWduc1wiO1xuXHQvKiogW0xpc3RdIHBlcnNvbmFsaXplOkxpc3REYXRhRGVsZXRpb25Kb2JzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YURlbGV0aW9uSm9icyA9IFwicGVyc29uYWxpemU6TGlzdERhdGFEZWxldGlvbkpvYnNcIjtcblx0LyoqIFtMaXN0XSBwZXJzb25hbGl6ZTpMaXN0RGF0YUluc2lnaHRzSm9icyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFJbnNpZ2h0c0pvYnMgPSBcInBlcnNvbmFsaXplOkxpc3REYXRhSW5zaWdodHNKb2JzXCI7XG5cdC8qKiBbTGlzdF0gcGVyc29uYWxpemU6TGlzdERhdGFzZXRFeHBvcnRKb2JzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YXNldEV4cG9ydEpvYnMgPSBcInBlcnNvbmFsaXplOkxpc3REYXRhc2V0RXhwb3J0Sm9ic1wiO1xuXHQvKiogW0xpc3RdIHBlcnNvbmFsaXplOkxpc3REYXRhc2V0R3JvdXBzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YXNldEdyb3VwcyA9IFwicGVyc29uYWxpemU6TGlzdERhdGFzZXRHcm91cHNcIjtcblx0LyoqIFtMaXN0XSBwZXJzb25hbGl6ZTpMaXN0RGF0YXNldEltcG9ydEpvYnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REYXRhc2V0SW1wb3J0Sm9icyA9IFwicGVyc29uYWxpemU6TGlzdERhdGFzZXRJbXBvcnRKb2JzXCI7XG5cdC8qKiBbTGlzdF0gcGVyc29uYWxpemU6TGlzdERhdGFzZXRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YXNldHMgPSBcInBlcnNvbmFsaXplOkxpc3REYXRhc2V0c1wiO1xuXHQvKiogW0xpc3RdIHBlcnNvbmFsaXplOkxpc3RFdmVudFRyYWNrZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXZlbnRUcmFja2VycyA9IFwicGVyc29uYWxpemU6TGlzdEV2ZW50VHJhY2tlcnNcIjtcblx0LyoqIFtMaXN0XSBwZXJzb25hbGl6ZTpMaXN0RmlsdGVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZpbHRlcnMgPSBcInBlcnNvbmFsaXplOkxpc3RGaWx0ZXJzXCI7XG5cdC8qKiBbTGlzdF0gcGVyc29uYWxpemU6TGlzdE1ldHJpY0F0dHJpYnV0aW9uTWV0cmljcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1ldHJpY0F0dHJpYnV0aW9uTWV0cmljcyA9XG5cdFx0XCJwZXJzb25hbGl6ZTpMaXN0TWV0cmljQXR0cmlidXRpb25NZXRyaWNzXCI7XG5cdC8qKiBbTGlzdF0gcGVyc29uYWxpemU6TGlzdE1ldHJpY0F0dHJpYnV0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1ldHJpY0F0dHJpYnV0aW9ucyA9IFwicGVyc29uYWxpemU6TGlzdE1ldHJpY0F0dHJpYnV0aW9uc1wiO1xuXHQvKiogW0xpc3RdIHBlcnNvbmFsaXplOkxpc3RSZWNpcGVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjaXBlcyA9IFwicGVyc29uYWxpemU6TGlzdFJlY2lwZXNcIjtcblx0LyoqIFtMaXN0XSBwZXJzb25hbGl6ZTpMaXN0UmVjb21tZW5kZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb21tZW5kZXJzID0gXCJwZXJzb25hbGl6ZTpMaXN0UmVjb21tZW5kZXJzXCI7XG5cdC8qKiBbTGlzdF0gcGVyc29uYWxpemU6TGlzdFNjaGVtYXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTY2hlbWFzID0gXCJwZXJzb25hbGl6ZTpMaXN0U2NoZW1hc1wiO1xuXHQvKiogW0xpc3RdIHBlcnNvbmFsaXplOkxpc3RTb2x1dGlvblZlcnNpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U29sdXRpb25WZXJzaW9ucyA9IFwicGVyc29uYWxpemU6TGlzdFNvbHV0aW9uVmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBwZXJzb25hbGl6ZTpMaXN0U29sdXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U29sdXRpb25zID0gXCJwZXJzb25hbGl6ZTpMaXN0U29sdXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gcGVyc29uYWxpemU6TGlzdFRhZ3NGb3JSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZSA9IFwicGVyc29uYWxpemU6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpQdXRBY3Rpb25JbnRlcmFjdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEFjdGlvbkludGVyYWN0aW9ucyA9IFwicGVyc29uYWxpemU6UHV0QWN0aW9uSW50ZXJhY3Rpb25zXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOlB1dEFjdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEFjdGlvbnMgPSBcInBlcnNvbmFsaXplOlB1dEFjdGlvbnNcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6UHV0RXZlbnRzICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRFdmVudHMgPSBcInBlcnNvbmFsaXplOlB1dEV2ZW50c1wiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpQdXRJdGVtcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0SXRlbXMgPSBcInBlcnNvbmFsaXplOlB1dEl0ZW1zXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOlB1dFVzZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRVc2VycyA9IFwicGVyc29uYWxpemU6UHV0VXNlcnNcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6U3RhcnRSZWNvbW1lbmRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZWNvbW1lbmRlciA9IFwicGVyc29uYWxpemU6U3RhcnRSZWNvbW1lbmRlclwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpTdG9wUmVjb21tZW5kZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BSZWNvbW1lbmRlciA9IFwicGVyc29uYWxpemU6U3RvcFJlY29tbWVuZGVyXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOlN0b3BTb2x1dGlvblZlcnNpb25DcmVhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFNvbHV0aW9uVmVyc2lvbkNyZWF0aW9uID1cblx0XHRcInBlcnNvbmFsaXplOlN0b3BTb2x1dGlvblZlcnNpb25DcmVhdGlvblwiO1xuXHQvKiogW1RhZ2dpbmddIHBlcnNvbmFsaXplOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwicGVyc29uYWxpemU6VGFnUmVzb3VyY2VcIjtcblx0LyoqIFtUYWdnaW5nXSBwZXJzb25hbGl6ZTpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJwZXJzb25hbGl6ZTpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOlVwZGF0ZUNhbXBhaWduICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDYW1wYWlnbiA9IFwicGVyc29uYWxpemU6VXBkYXRlQ2FtcGFpZ25cIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6VXBkYXRlRGF0YXNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRGF0YXNldCA9IFwicGVyc29uYWxpemU6VXBkYXRlRGF0YXNldFwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpVcGRhdGVNZXRyaWNBdHRyaWJ1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTWV0cmljQXR0cmlidXRpb24gPVxuXHRcdFwicGVyc29uYWxpemU6VXBkYXRlTWV0cmljQXR0cmlidXRpb25cIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6VXBkYXRlUmVjb21tZW5kZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlY29tbWVuZGVyID0gXCJwZXJzb25hbGl6ZTpVcGRhdGVSZWNvbW1lbmRlclwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpVcGRhdGVTb2x1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU29sdXRpb24gPSBcInBlcnNvbmFsaXplOlVwZGF0ZVNvbHV0aW9uXCI7XG5cblx0LyoqIEFsbCByZWFkLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxSZWFkQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlc2NyaWJlQWxnb3JpdGhtLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZXNjcmliZUJhdGNoSW5mZXJlbmNlSm9iLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZXNjcmliZUJhdGNoU2VnbWVudEpvYixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVzY3JpYmVDYW1wYWlnbixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVzY3JpYmVEYXRhRGVsZXRpb25Kb2IsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlc2NyaWJlRGF0YUluc2lnaHRzSm9iLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZXNjcmliZURhdGFzZXQsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlc2NyaWJlRGF0YXNldEV4cG9ydEpvYixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVzY3JpYmVEYXRhc2V0R3JvdXAsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlc2NyaWJlRGF0YXNldEltcG9ydEpvYixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVzY3JpYmVFdmVudFRyYWNrZXIsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlc2NyaWJlRmVhdHVyZVRyYW5zZm9ybWF0aW9uLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZXNjcmliZUZpbHRlcixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVzY3JpYmVNZXRyaWNBdHRyaWJ1dGlvbixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVzY3JpYmVSZWNpcGUsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlc2NyaWJlUmVjb21tZW5kZXIsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlc2NyaWJlU2NoZW1hLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZXNjcmliZVNvbHV0aW9uLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZXNjcmliZVNvbHV0aW9uVmVyc2lvbixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuYWN0aW9uR2V0QWN0aW9uUmVjb21tZW5kYXRpb25zLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5hY3Rpb25HZXREYXRhSW5zaWdodHMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLmFjdGlvbkdldFBlcnNvbmFsaXplZFJhbmtpbmcsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLmFjdGlvbkdldFJlY29tbWVuZGF0aW9ucyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuYWN0aW9uR2V0U29sdXRpb25NZXRyaWNzLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5DcmVhdGVCYXRjaEluZmVyZW5jZUpvYixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuQ3JlYXRlQmF0Y2hTZWdtZW50Sm9iLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5DcmVhdGVDYW1wYWlnbixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuQ3JlYXRlRGF0YURlbGV0aW9uSm9iLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5DcmVhdGVEYXRhSW5zaWdodHNKb2IsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkNyZWF0ZURhdGFzZXQsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkNyZWF0ZURhdGFzZXRFeHBvcnRKb2IsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkNyZWF0ZURhdGFzZXRHcm91cCxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuQ3JlYXRlRGF0YXNldEltcG9ydEpvYixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuQ3JlYXRlRXZlbnRUcmFja2VyLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5DcmVhdGVGaWx0ZXIsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkNyZWF0ZU1ldHJpY0F0dHJpYnV0aW9uLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5DcmVhdGVSZWNvbW1lbmRlcixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuQ3JlYXRlU2NoZW1hLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5DcmVhdGVTb2x1dGlvbixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuQ3JlYXRlU29sdXRpb25WZXJzaW9uLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZWxldGVDYW1wYWlnbixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVsZXRlRGF0YXNldCxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVsZXRlRGF0YXNldEdyb3VwLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZWxldGVFdmVudFRyYWNrZXIsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlbGV0ZUZpbHRlcixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVsZXRlTWV0cmljQXR0cmlidXRpb24sXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlbGV0ZVJlY29tbWVuZGVyLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZWxldGVTY2hlbWEsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlbGV0ZVNvbHV0aW9uLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5QdXRBY3Rpb25JbnRlcmFjdGlvbnMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLlB1dEFjdGlvbnMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLlB1dEV2ZW50cyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuUHV0SXRlbXMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLlB1dFVzZXJzLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5TdGFydFJlY29tbWVuZGVyLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5TdG9wUmVjb21tZW5kZXIsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLlN0b3BTb2x1dGlvblZlcnNpb25DcmVhdGlvbixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuVXBkYXRlQ2FtcGFpZ24sXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLlVwZGF0ZURhdGFzZXQsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLlVwZGF0ZU1ldHJpY0F0dHJpYnV0aW9uLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5VcGRhdGVSZWNvbW1lbmRlcixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuVXBkYXRlU29sdXRpb24sXG5cdF07XG5cdC8qKiBBbGwgbGlzdC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsTGlzdEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5MaXN0QmF0Y2hJbmZlcmVuY2VKb2JzLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5MaXN0QmF0Y2hTZWdtZW50Sm9icyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuTGlzdENhbXBhaWducyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuTGlzdERhdGFEZWxldGlvbkpvYnMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkxpc3REYXRhSW5zaWdodHNKb2JzLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5MaXN0RGF0YXNldEV4cG9ydEpvYnMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkxpc3REYXRhc2V0R3JvdXBzLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5MaXN0RGF0YXNldEltcG9ydEpvYnMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkxpc3REYXRhc2V0cyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuTGlzdEV2ZW50VHJhY2tlcnMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkxpc3RGaWx0ZXJzLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5MaXN0TWV0cmljQXR0cmlidXRpb25NZXRyaWNzLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5MaXN0TWV0cmljQXR0cmlidXRpb25zLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5MaXN0UmVjaXBlcyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuTGlzdFJlY29tbWVuZGVycyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuTGlzdFNjaGVtYXMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkxpc3RTb2x1dGlvblZlcnNpb25zLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5MaXN0U29sdXRpb25zLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5MaXN0VGFnc0ZvclJlc291cmNlLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuVGFnUmVzb3VyY2UsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBhbGdvcml0aG0gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplQWxnb3JpdGhtQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBhbGdvcml0aG0gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplQWxnb3JpdGhtQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgYmF0Y2hJbmZlcmVuY2VKb2IgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplQmF0Y2hJbmZlcmVuY2VKb2JBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGJhdGNoSW5mZXJlbmNlSm9iIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZUJhdGNoSW5mZXJlbmNlSm9iQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgYmF0Y2hTZWdtZW50Sm9iIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZUJhdGNoU2VnbWVudEpvYkFyblByb3BzIHtcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgYmF0Y2hTZWdtZW50Sm9iIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZUJhdGNoU2VnbWVudEpvYkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGNhbXBhaWduIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZUNhbXBhaWduQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjYW1wYWlnbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVDYW1wYWlnbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGRhdGFEZWxldGlvbkpvYiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVEYXRhRGVsZXRpb25Kb2JBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGRhdGFEZWxldGlvbkpvYiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVEYXRhRGVsZXRpb25Kb2JBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBkYXRhSW5zaWdodHNKb2IgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplRGF0YUluc2lnaHRzSm9iQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkYXRhSW5zaWdodHNKb2IgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplRGF0YUluc2lnaHRzSm9iQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZGF0YXNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVEYXRhc2V0QXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkYXRhc2V0IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZURhdGFzZXRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBkYXRhc2V0RXhwb3J0Sm9iIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZURhdGFzZXRFeHBvcnRKb2JBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGRhdGFzZXRFeHBvcnRKb2IgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplRGF0YXNldEV4cG9ydEpvYkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGRhdGFzZXRHcm91cCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVEYXRhc2V0R3JvdXBBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGRhdGFzZXRHcm91cCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVEYXRhc2V0R3JvdXBBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBkYXRhc2V0SW1wb3J0Sm9iIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZURhdGFzZXRJbXBvcnRKb2JBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGRhdGFzZXRJbXBvcnRKb2IgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplRGF0YXNldEltcG9ydEpvYkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGV2ZW50VHJhY2tlciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVFdmVudFRyYWNrZXJBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGV2ZW50VHJhY2tlciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVFdmVudFRyYWNrZXJBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBmZWF0dXJlVHJhbnNmb3JtYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplRmVhdHVyZVRyYW5zZm9ybWF0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBmZWF0dXJlVHJhbnNmb3JtYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplRmVhdHVyZVRyYW5zZm9ybWF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZmlsdGVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZUZpbHRlckFyblByb3BzIHtcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZmlsdGVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZUZpbHRlckFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIG1ldHJpY0F0dHJpYnV0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZU1ldHJpY0F0dHJpYnV0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBtZXRyaWNBdHRyaWJ1dGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVNZXRyaWNBdHRyaWJ1dGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHJlY2lwZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVSZWNpcGVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHJlY2lwZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVSZWNpcGVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSByZWNvbW1lbmRlciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVSZWNvbW1lbmRlckFyblByb3BzIHtcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgcmVjb21tZW5kZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplUmVjb21tZW5kZXJBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBzY2hlbWEgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplU2NoZW1hQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBzY2hlbWEgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplU2NoZW1hQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgc29sdXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplU29sdXRpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHNvbHV0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZVNvbHV0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG5jb25zdCBBbGdvcml0aG1Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cGVyc29uYWxpemU6OjphbGdvcml0aG1cXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBCYXRjaEluZmVyZW5jZUpvYkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwZXJzb25hbGl6ZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmJhdGNoLWluZmVyZW5jZS1qb2JcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBCYXRjaFNlZ21lbnRKb2JBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cGVyc29uYWxpemU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpiYXRjaC1zZWdtZW50LWpvYlxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IENhbXBhaWduQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnBlcnNvbmFsaXplOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y2FtcGFpZ25cXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBEYXRhRGVsZXRpb25Kb2JBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cGVyc29uYWxpemU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkYXRhLWRlbGV0aW9uLWpvYlxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IERhdGFJbnNpZ2h0c0pvYkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwZXJzb25hbGl6ZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRhdGEtaW5zaWdodHMtam9iXFwvKD88cmVzb3VyY2VJZD5bXjovP10rKSQvO1xuY29uc3QgRGF0YXNldEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwZXJzb25hbGl6ZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRhdGFzZXRcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBEYXRhc2V0RXhwb3J0Sm9iQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnBlcnNvbmFsaXplOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGF0YXNldC1leHBvcnQtam9iXFwvKD88cmVzb3VyY2VJZD5bXjovP10rKSQvO1xuY29uc3QgRGF0YXNldEdyb3VwQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnBlcnNvbmFsaXplOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGF0YXNldC1ncm91cFxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IERhdGFzZXRJbXBvcnRKb2JBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cGVyc29uYWxpemU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkYXRhc2V0LWltcG9ydC1qb2JcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBFdmVudFRyYWNrZXJBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cGVyc29uYWxpemU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpldmVudC10cmFja2VyXFwvKD88cmVzb3VyY2VJZD5bXjovP10rKSQvO1xuY29uc3QgRmVhdHVyZVRyYW5zZm9ybWF0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnBlcnNvbmFsaXplOjo6ZmVhdHVyZS10cmFuc2Zvcm1hdGlvblxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IEZpbHRlckFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwZXJzb25hbGl6ZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmZpbHRlclxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IE1ldHJpY0F0dHJpYnV0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnBlcnNvbmFsaXplOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6bWV0cmljLWF0dHJpYnV0aW9uXFwvKD88cmVzb3VyY2VJZD5bXjovP10rKSQvO1xuY29uc3QgUmVjaXBlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnBlcnNvbmFsaXplOjo6cmVjaXBlXFwvKD88cmVzb3VyY2VJZD5bXjovP10rKSQvO1xuY29uc3QgUmVjb21tZW5kZXJBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cGVyc29uYWxpemU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpyZWNvbW1lbmRlclxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IFNjaGVtYUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwZXJzb25hbGl6ZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnNjaGVtYVxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IFNvbHV0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnBlcnNvbmFsaXplOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6c29sdXRpb25cXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3IgcGVyc29uYWxpemUgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgUGVyc29uYWxpemVSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGFsZ29yaXRobSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBhbGdvcml0aG0ocHJvcHM6IFBlcnNvbmFsaXplQWxnb3JpdGhtQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnBlcnNvbmFsaXplOjo6YWxnb3JpdGhtLyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgYWxnb3JpdGhtIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRBbGdvcml0aG1Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQWxnb3JpdGhtQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGFsZ29yaXRobSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VBbGdvcml0aG1Bcm4oYXJuOiBzdHJpbmcpOiBQZXJzb25hbGl6ZUFsZ29yaXRobUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQWxnb3JpdGhtQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFsZ29yaXRobSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgYmF0Y2hJbmZlcmVuY2VKb2IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgYmF0Y2hJbmZlcmVuY2VKb2IoXG5cdFx0cHJvcHM6IFBlcnNvbmFsaXplQmF0Y2hJbmZlcmVuY2VKb2JBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwZXJzb25hbGl6ZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpiYXRjaC1pbmZlcmVuY2Utam9iLyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgYmF0Y2hJbmZlcmVuY2VKb2IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEJhdGNoSW5mZXJlbmNlSm9iQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEJhdGNoSW5mZXJlbmNlSm9iQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGJhdGNoSW5mZXJlbmNlSm9iIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUJhdGNoSW5mZXJlbmNlSm9iQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBQZXJzb25hbGl6ZUJhdGNoSW5mZXJlbmNlSm9iQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBCYXRjaEluZmVyZW5jZUpvYkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBiYXRjaEluZmVyZW5jZUpvYiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgYmF0Y2hTZWdtZW50Sm9iIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGJhdGNoU2VnbWVudEpvYihwcm9wczogUGVyc29uYWxpemVCYXRjaFNlZ21lbnRKb2JBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06cGVyc29uYWxpemU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06YmF0Y2gtc2VnbWVudC1qb2IvJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBiYXRjaFNlZ21lbnRKb2IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEJhdGNoU2VnbWVudEpvYkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBCYXRjaFNlZ21lbnRKb2JBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgYmF0Y2hTZWdtZW50Sm9iIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUJhdGNoU2VnbWVudEpvYkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogUGVyc29uYWxpemVCYXRjaFNlZ21lbnRKb2JBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEJhdGNoU2VnbWVudEpvYkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBiYXRjaFNlZ21lbnRKb2IgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNhbXBhaWduIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNhbXBhaWduKHByb3BzOiBQZXJzb25hbGl6ZUNhbXBhaWduQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnBlcnNvbmFsaXplOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNhbXBhaWduLyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY2FtcGFpZ24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENhbXBhaWduQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENhbXBhaWduQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNhbXBhaWduIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNhbXBhaWduQXJuKGFybjogc3RyaW5nKTogUGVyc29uYWxpemVDYW1wYWlnbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ2FtcGFpZ25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2FtcGFpZ24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRhdGFEZWxldGlvbkpvYiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkYXRhRGVsZXRpb25Kb2IocHJvcHM6IFBlcnNvbmFsaXplRGF0YURlbGV0aW9uSm9iQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnBlcnNvbmFsaXplOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRhdGEtZGVsZXRpb24tam9iLyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZGF0YURlbGV0aW9uSm9iIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREYXRhRGVsZXRpb25Kb2JBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRGF0YURlbGV0aW9uSm9iQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGRhdGFEZWxldGlvbkpvYiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEYXRhRGVsZXRpb25Kb2JBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFBlcnNvbmFsaXplRGF0YURlbGV0aW9uSm9iQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEYXRhRGVsZXRpb25Kb2JBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGF0YURlbGV0aW9uSm9iIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBkYXRhSW5zaWdodHNKb2IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGF0YUluc2lnaHRzSm9iKHByb3BzOiBQZXJzb25hbGl6ZURhdGFJbnNpZ2h0c0pvYkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwZXJzb25hbGl6ZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkYXRhLWluc2lnaHRzLWpvYi8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRhdGFJbnNpZ2h0c0pvYiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRGF0YUluc2lnaHRzSm9iQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERhdGFJbnNpZ2h0c0pvYkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkYXRhSW5zaWdodHNKb2IgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRGF0YUluc2lnaHRzSm9iQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBQZXJzb25hbGl6ZURhdGFJbnNpZ2h0c0pvYkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRGF0YUluc2lnaHRzSm9iQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRhdGFJbnNpZ2h0c0pvYiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZGF0YXNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkYXRhc2V0KHByb3BzOiBQZXJzb25hbGl6ZURhdGFzZXRBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06cGVyc29uYWxpemU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZGF0YXNldC8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRhdGFzZXQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERhdGFzZXRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRGF0YXNldEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkYXRhc2V0IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURhdGFzZXRBcm4oYXJuOiBzdHJpbmcpOiBQZXJzb25hbGl6ZURhdGFzZXRBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IERhdGFzZXRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGF0YXNldCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZGF0YXNldEV4cG9ydEpvYiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkYXRhc2V0RXhwb3J0Sm9iKHByb3BzOiBQZXJzb25hbGl6ZURhdGFzZXRFeHBvcnRKb2JBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06cGVyc29uYWxpemU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZGF0YXNldC1leHBvcnQtam9iLyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZGF0YXNldEV4cG9ydEpvYiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRGF0YXNldEV4cG9ydEpvYkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBEYXRhc2V0RXhwb3J0Sm9iQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGRhdGFzZXRFeHBvcnRKb2IgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRGF0YXNldEV4cG9ydEpvYkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogUGVyc29uYWxpemVEYXRhc2V0RXhwb3J0Sm9iQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEYXRhc2V0RXhwb3J0Sm9iQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRhdGFzZXRFeHBvcnRKb2IgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRhdGFzZXRHcm91cCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkYXRhc2V0R3JvdXAocHJvcHM6IFBlcnNvbmFsaXplRGF0YXNldEdyb3VwQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnBlcnNvbmFsaXplOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRhdGFzZXQtZ3JvdXAvJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBkYXRhc2V0R3JvdXAgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERhdGFzZXRHcm91cEFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBEYXRhc2V0R3JvdXBBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZGF0YXNldEdyb3VwIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURhdGFzZXRHcm91cEFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogUGVyc29uYWxpemVEYXRhc2V0R3JvdXBBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IERhdGFzZXRHcm91cEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkYXRhc2V0R3JvdXAgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRhdGFzZXRJbXBvcnRKb2IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGF0YXNldEltcG9ydEpvYihwcm9wczogUGVyc29uYWxpemVEYXRhc2V0SW1wb3J0Sm9iQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnBlcnNvbmFsaXplOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRhdGFzZXQtaW1wb3J0LWpvYi8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRhdGFzZXRJbXBvcnRKb2IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERhdGFzZXRJbXBvcnRKb2JBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRGF0YXNldEltcG9ydEpvYkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkYXRhc2V0SW1wb3J0Sm9iIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURhdGFzZXRJbXBvcnRKb2JBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFBlcnNvbmFsaXplRGF0YXNldEltcG9ydEpvYkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRGF0YXNldEltcG9ydEpvYkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkYXRhc2V0SW1wb3J0Sm9iIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBldmVudFRyYWNrZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZXZlbnRUcmFja2VyKHByb3BzOiBQZXJzb25hbGl6ZUV2ZW50VHJhY2tlckFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwZXJzb25hbGl6ZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpldmVudC10cmFja2VyLyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZXZlbnRUcmFja2VyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRFdmVudFRyYWNrZXJBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRXZlbnRUcmFja2VyQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGV2ZW50VHJhY2tlciBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VFdmVudFRyYWNrZXJBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFBlcnNvbmFsaXplRXZlbnRUcmFja2VyQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBFdmVudFRyYWNrZXJBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZXZlbnRUcmFja2VyIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBmZWF0dXJlVHJhbnNmb3JtYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZmVhdHVyZVRyYW5zZm9ybWF0aW9uKFxuXHRcdHByb3BzOiBQZXJzb25hbGl6ZUZlYXR1cmVUcmFuc2Zvcm1hdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnBlcnNvbmFsaXplOjo6ZmVhdHVyZS10cmFuc2Zvcm1hdGlvbi8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGZlYXR1cmVUcmFuc2Zvcm1hdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRmVhdHVyZVRyYW5zZm9ybWF0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEZlYXR1cmVUcmFuc2Zvcm1hdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBmZWF0dXJlVHJhbnNmb3JtYXRpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRmVhdHVyZVRyYW5zZm9ybWF0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBQZXJzb25hbGl6ZUZlYXR1cmVUcmFuc2Zvcm1hdGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRmVhdHVyZVRyYW5zZm9ybWF0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGZlYXR1cmVUcmFuc2Zvcm1hdGlvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZmlsdGVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGZpbHRlcihwcm9wczogUGVyc29uYWxpemVGaWx0ZXJBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06cGVyc29uYWxpemU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZmlsdGVyLyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZmlsdGVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRGaWx0ZXJBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRmlsdGVyQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGZpbHRlciBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VGaWx0ZXJBcm4oYXJuOiBzdHJpbmcpOiBQZXJzb25hbGl6ZUZpbHRlckFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRmlsdGVyQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGZpbHRlciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgbWV0cmljQXR0cmlidXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgbWV0cmljQXR0cmlidXRpb24oXG5cdFx0cHJvcHM6IFBlcnNvbmFsaXplTWV0cmljQXR0cmlidXRpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwZXJzb25hbGl6ZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTptZXRyaWMtYXR0cmlidXRpb24vJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBtZXRyaWNBdHRyaWJ1dGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkTWV0cmljQXR0cmlidXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTWV0cmljQXR0cmlidXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgbWV0cmljQXR0cmlidXRpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlTWV0cmljQXR0cmlidXRpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFBlcnNvbmFsaXplTWV0cmljQXR0cmlidXRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IE1ldHJpY0F0dHJpYnV0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG1ldHJpY0F0dHJpYnV0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSByZWNpcGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcmVjaXBlKHByb3BzOiBQZXJzb25hbGl6ZVJlY2lwZUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwZXJzb25hbGl6ZTo6OnJlY2lwZS8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHJlY2lwZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUmVjaXBlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJlY2lwZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSByZWNpcGUgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVjaXBlQXJuKGFybjogc3RyaW5nKTogUGVyc29uYWxpemVSZWNpcGVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJlY2lwZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZWNpcGUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHJlY29tbWVuZGVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHJlY29tbWVuZGVyKHByb3BzOiBQZXJzb25hbGl6ZVJlY29tbWVuZGVyQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnBlcnNvbmFsaXplOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnJlY29tbWVuZGVyLyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgcmVjb21tZW5kZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJlY29tbWVuZGVyQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJlY29tbWVuZGVyQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHJlY29tbWVuZGVyIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVJlY29tbWVuZGVyQXJuKGFybjogc3RyaW5nKTogUGVyc29uYWxpemVSZWNvbW1lbmRlckFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVjb21tZW5kZXJBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVjb21tZW5kZXIgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHNjaGVtYSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzY2hlbWEocHJvcHM6IFBlcnNvbmFsaXplU2NoZW1hQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnBlcnNvbmFsaXplOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnNjaGVtYS8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHNjaGVtYSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU2NoZW1hQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFNjaGVtYUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBzY2hlbWEgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlU2NoZW1hQXJuKGFybjogc3RyaW5nKTogUGVyc29uYWxpemVTY2hlbWFBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFNjaGVtYUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzY2hlbWEgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHNvbHV0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHNvbHV0aW9uKHByb3BzOiBQZXJzb25hbGl6ZVNvbHV0aW9uQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnBlcnNvbmFsaXplOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnNvbHV0aW9uLyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgc29sdXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFNvbHV0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFNvbHV0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHNvbHV0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVNvbHV0aW9uQXJuKGFybjogc3RyaW5nKTogUGVyc29uYWxpemVTb2x1dGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gU29sdXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc29sdXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIHBlcnNvbmFsaXplLlxuICovXG5leHBvcnQgY2xhc3MgUGVyc29uYWxpemVPcGVyYXRpb25zIHtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQmF0Y2hJbmZlcmVuY2VKb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVCYXRjaEluZmVyZW5jZUpvYjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpDcmVhdGVCYXRjaEluZmVyZW5jZUpvYlwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJwZXJzb25hbGl6ZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVCYXRjaFNlZ21lbnRKb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVCYXRjaFNlZ21lbnRKb2I6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6Q3JlYXRlQmF0Y2hTZWdtZW50Sm9iXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcInBlcnNvbmFsaXplOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNhbXBhaWduIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2FtcGFpZ246IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6Q3JlYXRlQ2FtcGFpZ25cIixcblx0XHRcInBlcnNvbmFsaXplOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZURhdGFEZWxldGlvbkpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFEZWxldGlvbkpvYjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpDcmVhdGVEYXRhRGVsZXRpb25Kb2JcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVEYXRhc2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldDogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpDcmVhdGVEYXRhc2V0XCIsXG5cdFx0XCJwZXJzb25hbGl6ZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVEYXRhc2V0RXhwb3J0Sm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldEV4cG9ydEpvYjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpDcmVhdGVEYXRhc2V0RXhwb3J0Sm9iXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcInBlcnNvbmFsaXplOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZURhdGFzZXRHcm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFzZXRHcm91cDogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpDcmVhdGVEYXRhc2V0R3JvdXBcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwicGVyc29uYWxpemU6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRGF0YXNldEltcG9ydEpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFzZXRJbXBvcnRKb2I6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6Q3JlYXRlRGF0YXNldEltcG9ydEpvYlwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJwZXJzb25hbGl6ZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVFdmVudFRyYWNrZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFdmVudFRyYWNrZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6Q3JlYXRlRXZlbnRUcmFja2VyXCIsXG5cdFx0XCJwZXJzb25hbGl6ZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVGaWx0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVGaWx0ZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6Q3JlYXRlRmlsdGVyXCIsXG5cdFx0XCJwZXJzb25hbGl6ZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVNZXRyaWNBdHRyaWJ1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU1ldHJpY0F0dHJpYnV0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkNyZWF0ZU1ldHJpY0F0dHJpYnV0aW9uXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUmVjb21tZW5kZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvbW1lbmRlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpDcmVhdGVSZWNvbW1lbmRlclwiLFxuXHRcdFwicGVyc29uYWxpemU6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlU2NoZW1hIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU2NoZW1hOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOkNyZWF0ZVNjaGVtYVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlU29sdXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb2x1dGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpDcmVhdGVTb2x1dGlvblwiLFxuXHRcdFwicGVyc29uYWxpemU6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlU29sdXRpb25WZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU29sdXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkNyZWF0ZVNvbHV0aW9uVmVyc2lvblwiLFxuXHRcdFwicGVyc29uYWxpemU6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ2FtcGFpZ24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDYW1wYWlnbjogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpEZWxldGVDYW1wYWlnblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRGF0YXNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURhdGFzZXQ6IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6RGVsZXRlRGF0YXNldFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRGF0YXNldEdyb3VwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGF0YXNldEdyb3VwOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkRlbGV0ZURhdGFzZXRHcm91cFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVFdmVudFRyYWNrZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFdmVudFRyYWNrZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6RGVsZXRlRXZlbnRUcmFja2VyXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUZpbHRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUZpbHRlcjogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpEZWxldGVGaWx0ZXJcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZU1ldHJpY0F0dHJpYnV0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTWV0cmljQXR0cmlidXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6RGVsZXRlTWV0cmljQXR0cmlidXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVjb21tZW5kZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZWNvbW1lbmRlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpEZWxldGVSZWNvbW1lbmRlclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVTY2hlbWEgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTY2hlbWE6IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6RGVsZXRlU2NoZW1hXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVTb2x1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvbHV0aW9uOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOkRlbGV0ZVNvbHV0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUFsZ29yaXRobSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQWxnb3JpdGhtOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlQWxnb3JpdGhtXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQmF0Y2hJbmZlcmVuY2VKb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUJhdGNoSW5mZXJlbmNlSm9iOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlQmF0Y2hJbmZlcmVuY2VKb2JcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVCYXRjaFNlZ21lbnRKb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUJhdGNoU2VnbWVudEpvYjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpEZXNjcmliZUJhdGNoU2VnbWVudEpvYlwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUNhbXBhaWduIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDYW1wYWlnbjogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpEZXNjcmliZUNhbXBhaWduXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZURhdGFEZWxldGlvbkpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRGF0YURlbGV0aW9uSm9iOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlRGF0YURlbGV0aW9uSm9iXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlRGF0YXNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRGF0YXNldDogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpEZXNjcmliZURhdGFzZXRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlRGF0YXNldEV4cG9ydEpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRGF0YXNldEV4cG9ydEpvYjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpEZXNjcmliZURhdGFzZXRFeHBvcnRKb2JcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVEYXRhc2V0R3JvdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZURhdGFzZXRHcm91cDogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpEZXNjcmliZURhdGFzZXRHcm91cFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZURhdGFzZXRJbXBvcnRKb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZURhdGFzZXRJbXBvcnRKb2I6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6RGVzY3JpYmVEYXRhc2V0SW1wb3J0Sm9iXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlRXZlbnRUcmFja2VyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVFdmVudFRyYWNrZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6RGVzY3JpYmVFdmVudFRyYWNrZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVGZWF0dXJlVHJhbnNmb3JtYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUZlYXR1cmVUcmFuc2Zvcm1hdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpEZXNjcmliZUZlYXR1cmVUcmFuc2Zvcm1hdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUZpbHRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRmlsdGVyOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOkRlc2NyaWJlRmlsdGVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZU1ldHJpY0F0dHJpYnV0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVNZXRyaWNBdHRyaWJ1dGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpEZXNjcmliZU1ldHJpY0F0dHJpYnV0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUmVjaXBlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVSZWNpcGU6IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6RGVzY3JpYmVSZWNpcGVcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUmVjb21tZW5kZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY29tbWVuZGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlUmVjb21tZW5kZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVTY2hlbWEgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVNjaGVtYTogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpEZXNjcmliZVNjaGVtYVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVTb2x1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU29sdXRpb246IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6RGVzY3JpYmVTb2x1dGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVTb2x1dGlvblZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVNvbHV0aW9uVmVyc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpEZXNjcmliZVNvbHV0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRBY3Rpb25SZWNvbW1lbmRhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEFjdGlvblJlY29tbWVuZGF0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpHZXRBY3Rpb25SZWNvbW1lbmRhdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UGVyc29uYWxpemVkUmFua2luZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UGVyc29uYWxpemVkUmFua2luZzogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpHZXRQZXJzb25hbGl6ZWRSYW5raW5nXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJlY29tbWVuZGF0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVjb21tZW5kYXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkdldFJlY29tbWVuZGF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRTb2x1dGlvbk1ldHJpY3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFNvbHV0aW9uTWV0cmljczogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpHZXRTb2x1dGlvbk1ldHJpY3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEJhdGNoSW5mZXJlbmNlSm9icyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RCYXRjaEluZmVyZW5jZUpvYnM6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6TGlzdEJhdGNoSW5mZXJlbmNlSm9ic1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QmF0Y2hTZWdtZW50Sm9icyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RCYXRjaFNlZ21lbnRKb2JzOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkxpc3RCYXRjaFNlZ21lbnRKb2JzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDYW1wYWlnbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2FtcGFpZ25zOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOkxpc3RDYW1wYWlnbnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3REYXRhRGVsZXRpb25Kb2JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFEZWxldGlvbkpvYnM6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6TGlzdERhdGFEZWxldGlvbkpvYnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERhdGFzZXRFeHBvcnRKb2JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFzZXRFeHBvcnRKb2JzOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkxpc3REYXRhc2V0RXhwb3J0Sm9ic1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RGF0YXNldEdyb3VwcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REYXRhc2V0R3JvdXBzOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkxpc3REYXRhc2V0R3JvdXBzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3REYXRhc2V0SW1wb3J0Sm9icyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REYXRhc2V0SW1wb3J0Sm9iczogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpMaXN0RGF0YXNldEltcG9ydEpvYnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERhdGFzZXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFzZXRzOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOkxpc3REYXRhc2V0c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEV2ZW50VHJhY2tlcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXZlbnRUcmFja2Vyczogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpMaXN0RXZlbnRUcmFja2Vyc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RmlsdGVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGaWx0ZXJzOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOkxpc3RGaWx0ZXJzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0TWV0cmljQXR0cmlidXRpb25NZXRyaWNzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1ldHJpY0F0dHJpYnV0aW9uTWV0cmljczogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpMaXN0TWV0cmljQXR0cmlidXRpb25NZXRyaWNzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNZXRyaWNBdHRyaWJ1dGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWV0cmljQXR0cmlidXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkxpc3RNZXRyaWNBdHRyaWJ1dGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY2lwZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjaXBlczogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpMaXN0UmVjaXBlc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY29tbWVuZGVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvbW1lbmRlcnM6IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6TGlzdFJlY29tbWVuZGVyc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFNjaGVtYXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U2NoZW1hczogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpMaXN0U2NoZW1hc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFNvbHV0aW9uVmVyc2lvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U29sdXRpb25WZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpMaXN0U29sdXRpb25WZXJzaW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U29sdXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFNvbHV0aW9uczogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpMaXN0U29sdXRpb25zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpMaXN0VGFnc0ZvclJlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dEFjdGlvbkludGVyYWN0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEFjdGlvbkludGVyYWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpQdXRBY3Rpb25JbnRlcmFjdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0QWN0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEFjdGlvbnM6IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6UHV0QWN0aW9uc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0RXZlbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RXZlbnRzOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOlB1dEV2ZW50c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0SXRlbXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRJdGVtczogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpQdXRJdGVtc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0VXNlcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRVc2Vyczogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpQdXRVc2Vyc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRSZWNvbW1lbmRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVjb21tZW5kZXI6IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6U3RhcnRSZWNvbW1lbmRlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFJlY29tbWVuZGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFJlY29tbWVuZGVyOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOlN0b3BSZWNvbW1lbmRlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFNvbHV0aW9uVmVyc2lvbkNyZWF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFNvbHV0aW9uVmVyc2lvbkNyZWF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOlN0b3BTb2x1dGlvblZlcnNpb25DcmVhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOlRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVbnRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpVbnRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVDYW1wYWlnbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNhbXBhaWduOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOlVwZGF0ZUNhbXBhaWduXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVEYXRhc2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRGF0YXNldDogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpVcGRhdGVEYXRhc2V0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVNZXRyaWNBdHRyaWJ1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1ldHJpY0F0dHJpYnV0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwicGVyc29uYWxpemU6VXBkYXRlTWV0cmljQXR0cmlidXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVjb21tZW5kZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZWNvbW1lbmRlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpVcGRhdGVSZWNvbW1lbmRlclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVTb2x1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVNvbHV0aW9uOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOlVwZGF0ZVNvbHV0aW9uXCJdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3IgcGVyc29uYWxpemUuXG4gKi9cbmV4cG9ydCBjbGFzcyBQZXJzb25hbGl6ZUNvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQmF0Y2hJbmZlcmVuY2VKb2IgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQmF0Y2hJbmZlcmVuY2VKb2JDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUJhdGNoU2VnbWVudEpvYiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVCYXRjaFNlZ21lbnRKb2JDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUNhbXBhaWduIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNhbXBhaWduQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVEYXRhRGVsZXRpb25Kb2IgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YURlbGV0aW9uSm9iQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVEYXRhc2V0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFzZXRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZURhdGFzZXRFeHBvcnRKb2IgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldEV4cG9ydEpvYkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRGF0YXNldEdyb3VwIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFzZXRHcm91cENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRGF0YXNldEltcG9ydEpvYiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhc2V0SW1wb3J0Sm9iQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVFdmVudFRyYWNrZXIgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXZlbnRUcmFja2VyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVGaWx0ZXIgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRmlsdGVyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVSZWNvbW1lbmRlciBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvbW1lbmRlckNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlU29sdXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU29sdXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVNvbHV0aW9uVmVyc2lvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb2x1dGlvblZlcnNpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVbnRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcImF3czpUYWdLZXlzXCJdO1xuXG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVFVRVNUX1RBRyA9IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVTT1VSQ0VfVEFHID0gXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6VGFnS2V5cyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19UQUdfS0VZUyA9IFwiYXdzOlRhZ0tleXNcIjtcblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXF1ZXN0VGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXNvdXJjZVRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpUYWdLZXlzYC5cblx0ICovXG5cdHN0YXRpYyB0YWdLZXlzKHZhbHVlczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImF3czpUYWdLZXlzXCI6IHZhbHVlcyB9IH07XG5cdH1cbn1cbiJdfQ==
|
|
1204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uYWxpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL3NlcnZpY2VzL3BlcnNvbmFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0ZBQWdGO0FBQ2hGLDZDQUE2QztBQUM3QywwREFBMEQ7QUFDMUQsa0RBQWtEO0FBQ2xELG9EQUFvRDtBQUNwRCxnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDSCxNQUFhLGtCQUFrQjs7QUFBL0IsZ0RBNlJDOzs7QUE1UkEsOEJBQThCO0FBQ2QsaUNBQWMsR0FBRyxhQUFhLENBQUM7QUFFL0Msa0RBQWtEO0FBQ2xDLDBDQUF1QixHQUN0QyxxQ0FBcUMsQ0FBQztBQUN2QyxnREFBZ0Q7QUFDaEMsd0NBQXFCLEdBQUcsbUNBQW1DLENBQUM7QUFDNUUseUNBQXlDO0FBQ3pCLGlDQUFjLEdBQUcsNEJBQTRCLENBQUM7QUFDOUQsZ0RBQWdEO0FBQ2hDLHdDQUFxQixHQUFHLG1DQUFtQyxDQUFDO0FBQzVFLGdEQUFnRDtBQUNoQyx3Q0FBcUIsR0FBRyxtQ0FBbUMsQ0FBQztBQUM1RSx3Q0FBd0M7QUFDeEIsZ0NBQWEsR0FBRywyQkFBMkIsQ0FBQztBQUM1RCxpREFBaUQ7QUFDakMseUNBQXNCLEdBQUcsb0NBQW9DLENBQUM7QUFDOUUsNkNBQTZDO0FBQzdCLHFDQUFrQixHQUFHLGdDQUFnQyxDQUFDO0FBQ3RFLGlEQUFpRDtBQUNqQyx5Q0FBc0IsR0FBRyxvQ0FBb0MsQ0FBQztBQUM5RSw2Q0FBNkM7QUFDN0IscUNBQWtCLEdBQUcsZ0NBQWdDLENBQUM7QUFDdEUsdUNBQXVDO0FBQ3ZCLCtCQUFZLEdBQUcsMEJBQTBCLENBQUM7QUFDMUQsa0RBQWtEO0FBQ2xDLDBDQUF1QixHQUN0QyxxQ0FBcUMsQ0FBQztBQUN2Qyw0Q0FBNEM7QUFDNUIsb0NBQWlCLEdBQUcsK0JBQStCLENBQUM7QUFDcEUsdUNBQXVDO0FBQ3ZCLCtCQUFZLEdBQUcsMEJBQTBCLENB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SUFDM0QsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELHlEQUFtQyxHQUFhO0lBQy9ELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLGtFQUFrRTtBQUNsRCxxREFBK0IsR0FBYTtJQUMzRCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiw0REFBNEQ7QUFDNUMsK0NBQXlCLEdBQWE7SUFDckQsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsaUVBQWlFO0FBQ2pELG9EQUE4QixHQUFhO0lBQzFELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDhEQUE4RDtBQUM5QyxpREFBMkIsR0FBYTtJQUN2RCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRixxRUFBcUU7QUFDckQsd0RBQWtDLEdBQWE7SUFDOUQsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsMkRBQTJEO0FBQzNDLDhDQUF3QixHQUFhO0lBQ3BELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDZEQUE2RDtBQUM3QyxnREFBMEIsR0FBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBRXZFLHVEQUF1RDtBQUN2QyxxQ0FBZSxHQUFHLDBCQUEwQixDQUFDO0FBQzdELHdEQUF3RDtBQUN4QyxzQ0FBZ0IsR0FBRywyQkFBMkIsQ0FBQztBQUMvRCxpREFBaUQ7QUFDakMsa0NBQVksR0FBRyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUTy1HRU5FUkFURUQgRklMRSDigJQgRE8gTk9UIEVESVQgTUFOVUFMTFlcbi8vIEdlbmVyYXRlZCBmcm9tIEFXUyBTZXJ2aWNlIEF1dGhvcml6YXRpb24gUmVmZXJlbmNlIGRhdGFcbi8vIFNvdXJjZTogZGF0YS9zZXJ2aWNlLXJlZmVyZW5jZS9wZXJzb25hbGl6ZS5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgcGVyc29uYWxpemUgc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFBlcnNvbmFsaXplQWN0aW9ucyB7XG5cdC8qKiBUaGUgSUFNIHNlcnZpY2UgcHJlZml4LiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9QUkVGSVggPSBcInBlcnNvbmFsaXplXCI7XG5cblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6Q3JlYXRlQmF0Y2hJbmZlcmVuY2VKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUJhdGNoSW5mZXJlbmNlSm9iID1cblx0XHRcInBlcnNvbmFsaXplOkNyZWF0ZUJhdGNoSW5mZXJlbmNlSm9iXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkNyZWF0ZUJhdGNoU2VnbWVudEpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQmF0Y2hTZWdtZW50Sm9iID0gXCJwZXJzb25hbGl6ZTpDcmVhdGVCYXRjaFNlZ21lbnRKb2JcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6Q3JlYXRlQ2FtcGFpZ24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNhbXBhaWduID0gXCJwZXJzb25hbGl6ZTpDcmVhdGVDYW1wYWlnblwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpDcmVhdGVEYXRhRGVsZXRpb25Kb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFEZWxldGlvbkpvYiA9IFwicGVyc29uYWxpemU6Q3JlYXRlRGF0YURlbGV0aW9uSm9iXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkNyZWF0ZURhdGFJbnNpZ2h0c0pvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YUluc2lnaHRzSm9iID0gXCJwZXJzb25hbGl6ZTpDcmVhdGVEYXRhSW5zaWdodHNKb2JcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6Q3JlYXRlRGF0YXNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldCA9IFwicGVyc29uYWxpemU6Q3JlYXRlRGF0YXNldFwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpDcmVhdGVEYXRhc2V0RXhwb3J0Sm9iICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhc2V0RXhwb3J0Sm9iID0gXCJwZXJzb25hbGl6ZTpDcmVhdGVEYXRhc2V0RXhwb3J0Sm9iXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkNyZWF0ZURhdGFzZXRHcm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldEdyb3VwID0gXCJwZXJzb25hbGl6ZTpDcmVhdGVEYXRhc2V0R3JvdXBcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6Q3JlYXRlRGF0YXNldEltcG9ydEpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldEltcG9ydEpvYiA9IFwicGVyc29uYWxpemU6Q3JlYXRlRGF0YXNldEltcG9ydEpvYlwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpDcmVhdGVFdmVudFRyYWNrZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV2ZW50VHJhY2tlciA9IFwicGVyc29uYWxpemU6Q3JlYXRlRXZlbnRUcmFja2VyXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkNyZWF0ZUZpbHRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRmlsdGVyID0gXCJwZXJzb25hbGl6ZTpDcmVhdGVGaWx0ZXJcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6Q3JlYXRlTWV0cmljQXR0cmlidXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU1ldHJpY0F0dHJpYnV0aW9uID1cblx0XHRcInBlcnNvbmFsaXplOkNyZWF0ZU1ldHJpY0F0dHJpYnV0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkNyZWF0ZVJlY29tbWVuZGVyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvbW1lbmRlciA9IFwicGVyc29uYWxpemU6Q3JlYXRlUmVjb21tZW5kZXJcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6Q3JlYXRlU2NoZW1hICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTY2hlbWEgPSBcInBlcnNvbmFsaXplOkNyZWF0ZVNjaGVtYVwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpDcmVhdGVTb2x1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU29sdXRpb24gPSBcInBlcnNvbmFsaXplOkNyZWF0ZVNvbHV0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkNyZWF0ZVNvbHV0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU29sdXRpb25WZXJzaW9uID0gXCJwZXJzb25hbGl6ZTpDcmVhdGVTb2x1dGlvblZlcnNpb25cIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6RGVsZXRlQ2FtcGFpZ24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNhbXBhaWduID0gXCJwZXJzb25hbGl6ZTpEZWxldGVDYW1wYWlnblwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpEZWxldGVEYXRhc2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEYXRhc2V0ID0gXCJwZXJzb25hbGl6ZTpEZWxldGVEYXRhc2V0XCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkRlbGV0ZURhdGFzZXRHcm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGF0YXNldEdyb3VwID0gXCJwZXJzb25hbGl6ZTpEZWxldGVEYXRhc2V0R3JvdXBcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6RGVsZXRlRXZlbnRUcmFja2VyICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFdmVudFRyYWNrZXIgPSBcInBlcnNvbmFsaXplOkRlbGV0ZUV2ZW50VHJhY2tlclwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpEZWxldGVGaWx0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUZpbHRlciA9IFwicGVyc29uYWxpemU6RGVsZXRlRmlsdGVyXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkRlbGV0ZU1ldHJpY0F0dHJpYnV0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVNZXRyaWNBdHRyaWJ1dGlvbiA9XG5cdFx0XCJwZXJzb25hbGl6ZTpEZWxldGVNZXRyaWNBdHRyaWJ1dGlvblwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpEZWxldGVSZWNvbW1lbmRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVjb21tZW5kZXIgPSBcInBlcnNvbmFsaXplOkRlbGV0ZVJlY29tbWVuZGVyXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOkRlbGV0ZVNjaGVtYSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU2NoZW1hID0gXCJwZXJzb25hbGl6ZTpEZWxldGVTY2hlbWFcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6RGVsZXRlU29sdXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvbHV0aW9uID0gXCJwZXJzb25hbGl6ZTpEZWxldGVTb2x1dGlvblwiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkRlc2NyaWJlQWxnb3JpdGhtICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFsZ29yaXRobSA9IFwicGVyc29uYWxpemU6RGVzY3JpYmVBbGdvcml0aG1cIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpEZXNjcmliZUJhdGNoSW5mZXJlbmNlSm9iICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUJhdGNoSW5mZXJlbmNlSm9iID1cblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlQmF0Y2hJbmZlcmVuY2VKb2JcIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpEZXNjcmliZUJhdGNoU2VnbWVudEpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVCYXRjaFNlZ21lbnRKb2IgPVxuXHRcdFwicGVyc29uYWxpemU6RGVzY3JpYmVCYXRjaFNlZ21lbnRKb2JcIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpEZXNjcmliZUNhbXBhaWduICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNhbXBhaWduID0gXCJwZXJzb25hbGl6ZTpEZXNjcmliZUNhbXBhaWduXCI7XG5cdC8qKiBbUmVhZF0gcGVyc29uYWxpemU6RGVzY3JpYmVEYXRhRGVsZXRpb25Kb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRGF0YURlbGV0aW9uSm9iID1cblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlRGF0YURlbGV0aW9uSm9iXCI7XG5cdC8qKiBbUmVhZF0gcGVyc29uYWxpemU6RGVzY3JpYmVEYXRhSW5zaWdodHNKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRGF0YUluc2lnaHRzSm9iID1cblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlRGF0YUluc2lnaHRzSm9iXCI7XG5cdC8qKiBbUmVhZF0gcGVyc29uYWxpemU6RGVzY3JpYmVEYXRhc2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZURhdGFzZXQgPSBcInBlcnNvbmFsaXplOkRlc2NyaWJlRGF0YXNldFwiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkRlc2NyaWJlRGF0YXNldEV4cG9ydEpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVEYXRhc2V0RXhwb3J0Sm9iID1cblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlRGF0YXNldEV4cG9ydEpvYlwiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkRlc2NyaWJlRGF0YXNldEdyb3VwICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZURhdGFzZXRHcm91cCA9IFwicGVyc29uYWxpemU6RGVzY3JpYmVEYXRhc2V0R3JvdXBcIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpEZXNjcmliZURhdGFzZXRJbXBvcnRKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRGF0YXNldEltcG9ydEpvYiA9XG5cdFx0XCJwZXJzb25hbGl6ZTpEZXNjcmliZURhdGFzZXRJbXBvcnRKb2JcIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpEZXNjcmliZUV2ZW50VHJhY2tlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVFdmVudFRyYWNrZXIgPSBcInBlcnNvbmFsaXplOkRlc2NyaWJlRXZlbnRUcmFja2VyXCI7XG5cdC8qKiBbUmVhZF0gcGVyc29uYWxpemU6RGVzY3JpYmVGZWF0dXJlVHJhbnNmb3JtYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRmVhdHVyZVRyYW5zZm9ybWF0aW9uID1cblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlRmVhdHVyZVRyYW5zZm9ybWF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gcGVyc29uYWxpemU6RGVzY3JpYmVGaWx0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRmlsdGVyID0gXCJwZXJzb25hbGl6ZTpEZXNjcmliZUZpbHRlclwiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkRlc2NyaWJlTWV0cmljQXR0cmlidXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTWV0cmljQXR0cmlidXRpb24gPVxuXHRcdFwicGVyc29uYWxpemU6RGVzY3JpYmVNZXRyaWNBdHRyaWJ1dGlvblwiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkRlc2NyaWJlUmVjaXBlICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY2lwZSA9IFwicGVyc29uYWxpemU6RGVzY3JpYmVSZWNpcGVcIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpEZXNjcmliZVJlY29tbWVuZGVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY29tbWVuZGVyID0gXCJwZXJzb25hbGl6ZTpEZXNjcmliZVJlY29tbWVuZGVyXCI7XG5cdC8qKiBbUmVhZF0gcGVyc29uYWxpemU6RGVzY3JpYmVTY2hlbWEgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU2NoZW1hID0gXCJwZXJzb25hbGl6ZTpEZXNjcmliZVNjaGVtYVwiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkRlc2NyaWJlU29sdXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU29sdXRpb24gPSBcInBlcnNvbmFsaXplOkRlc2NyaWJlU29sdXRpb25cIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpEZXNjcmliZVNvbHV0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTb2x1dGlvblZlcnNpb24gPVxuXHRcdFwicGVyc29uYWxpemU6RGVzY3JpYmVTb2x1dGlvblZlcnNpb25cIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpHZXRBY3Rpb25SZWNvbW1lbmRhdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFjdGlvblJlY29tbWVuZGF0aW9ucyA9XG5cdFx0XCJwZXJzb25hbGl6ZTpHZXRBY3Rpb25SZWNvbW1lbmRhdGlvbnNcIjtcblx0LyoqIFtSZWFkXSBwZXJzb25hbGl6ZTpHZXREYXRhSW5zaWdodHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERhdGFJbnNpZ2h0cyA9IFwicGVyc29uYWxpemU6R2V0RGF0YUluc2lnaHRzXCI7XG5cdC8qKiBbUmVhZF0gcGVyc29uYWxpemU6R2V0UGVyc29uYWxpemVkUmFua2luZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UGVyc29uYWxpemVkUmFua2luZyA9XG5cdFx0XCJwZXJzb25hbGl6ZTpHZXRQZXJzb25hbGl6ZWRSYW5raW5nXCI7XG5cdC8qKiBbUmVhZF0gcGVyc29uYWxpemU6R2V0UmVjb21tZW5kYXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZWNvbW1lbmRhdGlvbnMgPSBcInBlcnNvbmFsaXplOkdldFJlY29tbWVuZGF0aW9uc1wiO1xuXHQvKiogW1JlYWRdIHBlcnNvbmFsaXplOkdldFNvbHV0aW9uTWV0cmljcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U29sdXRpb25NZXRyaWNzID0gXCJwZXJzb25hbGl6ZTpHZXRTb2x1dGlvbk1ldHJpY3NcIjtcblx0LyoqIFtMaXN0XSBwZXJzb25hbGl6ZTpMaXN0QmF0Y2hJbmZlcmVuY2VKb2JzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QmF0Y2hJbmZlcmVuY2VKb2JzID0gXCJwZXJzb25hbGl6ZTpMaXN0QmF0Y2hJbmZlcmVuY2VKb2JzXCI7XG5cdC8qKiBbTGlzdF0gcGVyc29uYWxpemU6TGlzdEJhdGNoU2VnbWVudEpvYnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RCYXRjaFNlZ21lbnRKb2JzID0gXCJwZXJzb25hbGl6ZTpMaXN0QmF0Y2hTZWdtZW50Sm9ic1wiO1xuXHQvKiogW0xpc3RdIHBlcnNvbmFsaXplOkxpc3RDYW1wYWlnbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDYW1wYWlnbnMgPSBcInBlcnNvbmFsaXplOkxpc3RDYW1wYWlnbnNcIjtcblx0LyoqIFtMaXN0XSBwZXJzb25hbGl6ZTpMaXN0RGF0YURlbGV0aW9uSm9icyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFEZWxldGlvbkpvYnMgPSBcInBlcnNvbmFsaXplOkxpc3REYXRhRGVsZXRpb25Kb2JzXCI7XG5cdC8qKiBbTGlzdF0gcGVyc29uYWxpemU6TGlzdERhdGFJbnNpZ2h0c0pvYnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REYXRhSW5zaWdodHNKb2JzID0gXCJwZXJzb25hbGl6ZTpMaXN0RGF0YUluc2lnaHRzSm9ic1wiO1xuXHQvKiogW0xpc3RdIHBlcnNvbmFsaXplOkxpc3REYXRhc2V0RXhwb3J0Sm9icyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFzZXRFeHBvcnRKb2JzID0gXCJwZXJzb25hbGl6ZTpMaXN0RGF0YXNldEV4cG9ydEpvYnNcIjtcblx0LyoqIFtMaXN0XSBwZXJzb25hbGl6ZTpMaXN0RGF0YXNldEdyb3VwcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFzZXRHcm91cHMgPSBcInBlcnNvbmFsaXplOkxpc3REYXRhc2V0R3JvdXBzXCI7XG5cdC8qKiBbTGlzdF0gcGVyc29uYWxpemU6TGlzdERhdGFzZXRJbXBvcnRKb2JzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YXNldEltcG9ydEpvYnMgPSBcInBlcnNvbmFsaXplOkxpc3REYXRhc2V0SW1wb3J0Sm9ic1wiO1xuXHQvKiogW0xpc3RdIHBlcnNvbmFsaXplOkxpc3REYXRhc2V0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFzZXRzID0gXCJwZXJzb25hbGl6ZTpMaXN0RGF0YXNldHNcIjtcblx0LyoqIFtMaXN0XSBwZXJzb25hbGl6ZTpMaXN0RXZlbnRUcmFja2VycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV2ZW50VHJhY2tlcnMgPSBcInBlcnNvbmFsaXplOkxpc3RFdmVudFRyYWNrZXJzXCI7XG5cdC8qKiBbTGlzdF0gcGVyc29uYWxpemU6TGlzdEZpbHRlcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGaWx0ZXJzID0gXCJwZXJzb25hbGl6ZTpMaXN0RmlsdGVyc1wiO1xuXHQvKiogW0xpc3RdIHBlcnNvbmFsaXplOkxpc3RNZXRyaWNBdHRyaWJ1dGlvbk1ldHJpY3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNZXRyaWNBdHRyaWJ1dGlvbk1ldHJpY3MgPVxuXHRcdFwicGVyc29uYWxpemU6TGlzdE1ldHJpY0F0dHJpYnV0aW9uTWV0cmljc1wiO1xuXHQvKiogW0xpc3RdIHBlcnNvbmFsaXplOkxpc3RNZXRyaWNBdHRyaWJ1dGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNZXRyaWNBdHRyaWJ1dGlvbnMgPSBcInBlcnNvbmFsaXplOkxpc3RNZXRyaWNBdHRyaWJ1dGlvbnNcIjtcblx0LyoqIFtMaXN0XSBwZXJzb25hbGl6ZTpMaXN0UmVjaXBlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY2lwZXMgPSBcInBlcnNvbmFsaXplOkxpc3RSZWNpcGVzXCI7XG5cdC8qKiBbTGlzdF0gcGVyc29uYWxpemU6TGlzdFJlY29tbWVuZGVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY29tbWVuZGVycyA9IFwicGVyc29uYWxpemU6TGlzdFJlY29tbWVuZGVyc1wiO1xuXHQvKiogW0xpc3RdIHBlcnNvbmFsaXplOkxpc3RTY2hlbWFzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U2NoZW1hcyA9IFwicGVyc29uYWxpemU6TGlzdFNjaGVtYXNcIjtcblx0LyoqIFtMaXN0XSBwZXJzb25hbGl6ZTpMaXN0U29sdXRpb25WZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFNvbHV0aW9uVmVyc2lvbnMgPSBcInBlcnNvbmFsaXplOkxpc3RTb2x1dGlvblZlcnNpb25zXCI7XG5cdC8qKiBbTGlzdF0gcGVyc29uYWxpemU6TGlzdFNvbHV0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFNvbHV0aW9ucyA9IFwicGVyc29uYWxpemU6TGlzdFNvbHV0aW9uc1wiO1xuXHQvKiogW0xpc3RdIHBlcnNvbmFsaXplOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcInBlcnNvbmFsaXplOkxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6UHV0QWN0aW9uSW50ZXJhY3Rpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRBY3Rpb25JbnRlcmFjdGlvbnMgPSBcInBlcnNvbmFsaXplOlB1dEFjdGlvbkludGVyYWN0aW9uc1wiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpQdXRBY3Rpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRBY3Rpb25zID0gXCJwZXJzb25hbGl6ZTpQdXRBY3Rpb25zXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOlB1dEV2ZW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RXZlbnRzID0gXCJwZXJzb25hbGl6ZTpQdXRFdmVudHNcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6UHV0SXRlbXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEl0ZW1zID0gXCJwZXJzb25hbGl6ZTpQdXRJdGVtc1wiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpQdXRVc2VycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0VXNlcnMgPSBcInBlcnNvbmFsaXplOlB1dFVzZXJzXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOlN0YXJ0UmVjb21tZW5kZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVjb21tZW5kZXIgPSBcInBlcnNvbmFsaXplOlN0YXJ0UmVjb21tZW5kZXJcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6U3RvcFJlY29tbWVuZGVyICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wUmVjb21tZW5kZXIgPSBcInBlcnNvbmFsaXplOlN0b3BSZWNvbW1lbmRlclwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpTdG9wU29sdXRpb25WZXJzaW9uQ3JlYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BTb2x1dGlvblZlcnNpb25DcmVhdGlvbiA9XG5cdFx0XCJwZXJzb25hbGl6ZTpTdG9wU29sdXRpb25WZXJzaW9uQ3JlYXRpb25cIjtcblx0LyoqIFtUYWdnaW5nXSBwZXJzb25hbGl6ZTpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcInBlcnNvbmFsaXplOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbVGFnZ2luZ10gcGVyc29uYWxpemU6VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwicGVyc29uYWxpemU6VW50YWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBwZXJzb25hbGl6ZTpVcGRhdGVDYW1wYWlnbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2FtcGFpZ24gPSBcInBlcnNvbmFsaXplOlVwZGF0ZUNhbXBhaWduXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOlVwZGF0ZURhdGFzZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZURhdGFzZXQgPSBcInBlcnNvbmFsaXplOlVwZGF0ZURhdGFzZXRcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6VXBkYXRlTWV0cmljQXR0cmlidXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1ldHJpY0F0dHJpYnV0aW9uID1cblx0XHRcInBlcnNvbmFsaXplOlVwZGF0ZU1ldHJpY0F0dHJpYnV0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIHBlcnNvbmFsaXplOlVwZGF0ZVJlY29tbWVuZGVyICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZWNvbW1lbmRlciA9IFwicGVyc29uYWxpemU6VXBkYXRlUmVjb21tZW5kZXJcIjtcblx0LyoqIFtXcml0ZV0gcGVyc29uYWxpemU6VXBkYXRlU29sdXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVNvbHV0aW9uID0gXCJwZXJzb25hbGl6ZTpVcGRhdGVTb2x1dGlvblwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZXNjcmliZUFsZ29yaXRobSxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVzY3JpYmVCYXRjaEluZmVyZW5jZUpvYixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVzY3JpYmVCYXRjaFNlZ21lbnRKb2IsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlc2NyaWJlQ2FtcGFpZ24sXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlc2NyaWJlRGF0YURlbGV0aW9uSm9iLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZXNjcmliZURhdGFJbnNpZ2h0c0pvYixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVzY3JpYmVEYXRhc2V0LFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZXNjcmliZURhdGFzZXRFeHBvcnRKb2IsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlc2NyaWJlRGF0YXNldEdyb3VwLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZXNjcmliZURhdGFzZXRJbXBvcnRKb2IsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlc2NyaWJlRXZlbnRUcmFja2VyLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZXNjcmliZUZlYXR1cmVUcmFuc2Zvcm1hdGlvbixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVzY3JpYmVGaWx0ZXIsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlc2NyaWJlTWV0cmljQXR0cmlidXRpb24sXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlc2NyaWJlUmVjaXBlLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZXNjcmliZVJlY29tbWVuZGVyLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZXNjcmliZVNjaGVtYSxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVzY3JpYmVTb2x1dGlvbixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVzY3JpYmVTb2x1dGlvblZlcnNpb24sXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLmFjdGlvbkdldEFjdGlvblJlY29tbWVuZGF0aW9ucyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuYWN0aW9uR2V0RGF0YUluc2lnaHRzLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5hY3Rpb25HZXRQZXJzb25hbGl6ZWRSYW5raW5nLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5hY3Rpb25HZXRSZWNvbW1lbmRhdGlvbnMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLmFjdGlvbkdldFNvbHV0aW9uTWV0cmljcyxcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuQ3JlYXRlQmF0Y2hJbmZlcmVuY2VKb2IsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkNyZWF0ZUJhdGNoU2VnbWVudEpvYixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuQ3JlYXRlQ2FtcGFpZ24sXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkNyZWF0ZURhdGFEZWxldGlvbkpvYixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuQ3JlYXRlRGF0YUluc2lnaHRzSm9iLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5DcmVhdGVEYXRhc2V0LFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5DcmVhdGVEYXRhc2V0RXhwb3J0Sm9iLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5DcmVhdGVEYXRhc2V0R3JvdXAsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkNyZWF0ZURhdGFzZXRJbXBvcnRKb2IsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkNyZWF0ZUV2ZW50VHJhY2tlcixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuQ3JlYXRlRmlsdGVyLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5DcmVhdGVNZXRyaWNBdHRyaWJ1dGlvbixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuQ3JlYXRlUmVjb21tZW5kZXIsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkNyZWF0ZVNjaGVtYSxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuQ3JlYXRlU29sdXRpb24sXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkNyZWF0ZVNvbHV0aW9uVmVyc2lvbixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVsZXRlQ2FtcGFpZ24sXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlbGV0ZURhdGFzZXQsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlbGV0ZURhdGFzZXRHcm91cCxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVsZXRlRXZlbnRUcmFja2VyLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZWxldGVGaWx0ZXIsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkRlbGV0ZU1ldHJpY0F0dHJpYnV0aW9uLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZWxldGVSZWNvbW1lbmRlcixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuRGVsZXRlU2NoZW1hLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5EZWxldGVTb2x1dGlvbixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuUHV0QWN0aW9uSW50ZXJhY3Rpb25zLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5QdXRBY3Rpb25zLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5QdXRFdmVudHMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLlB1dEl0ZW1zLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5QdXRVc2Vycyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuU3RhcnRSZWNvbW1lbmRlcixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuU3RvcFJlY29tbWVuZGVyLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5TdG9wU29sdXRpb25WZXJzaW9uQ3JlYXRpb24sXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLlVwZGF0ZUNhbXBhaWduLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5VcGRhdGVEYXRhc2V0LFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5VcGRhdGVNZXRyaWNBdHRyaWJ1dGlvbixcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuVXBkYXRlUmVjb21tZW5kZXIsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLlVwZGF0ZVNvbHV0aW9uLFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuTGlzdEJhdGNoSW5mZXJlbmNlSm9icyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuTGlzdEJhdGNoU2VnbWVudEpvYnMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkxpc3RDYW1wYWlnbnMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkxpc3REYXRhRGVsZXRpb25Kb2JzLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5MaXN0RGF0YUluc2lnaHRzSm9icyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuTGlzdERhdGFzZXRFeHBvcnRKb2JzLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5MaXN0RGF0YXNldEdyb3Vwcyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuTGlzdERhdGFzZXRJbXBvcnRKb2JzLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5MaXN0RGF0YXNldHMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkxpc3RFdmVudFRyYWNrZXJzLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5MaXN0RmlsdGVycyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuTGlzdE1ldHJpY0F0dHJpYnV0aW9uTWV0cmljcyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuTGlzdE1ldHJpY0F0dHJpYnV0aW9ucyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuTGlzdFJlY2lwZXMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkxpc3RSZWNvbW1lbmRlcnMsXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLkxpc3RTY2hlbWFzLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5MaXN0U29sdXRpb25WZXJzaW9ucyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuTGlzdFNvbHV0aW9ucyxcblx0XHRQZXJzb25hbGl6ZUFjdGlvbnMuTGlzdFRhZ3NGb3JSZXNvdXJjZSxcblx0XTtcblx0LyoqIEFsbCBwZXJtaXNzaW9uLW1hbmFnZW1lbnQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFBlcm1pc3Npb25NYW5hZ2VtZW50QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0UGVyc29uYWxpemVBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdFBlcnNvbmFsaXplQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgYWxnb3JpdGhtIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZUFsZ29yaXRobUFyblByb3BzIHtcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgYWxnb3JpdGhtIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZUFsZ29yaXRobUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGJhdGNoSW5mZXJlbmNlSm9iIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZUJhdGNoSW5mZXJlbmNlSm9iQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBiYXRjaEluZmVyZW5jZUpvYiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVCYXRjaEluZmVyZW5jZUpvYkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGJhdGNoU2VnbWVudEpvYiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVCYXRjaFNlZ21lbnRKb2JBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGJhdGNoU2VnbWVudEpvYiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVCYXRjaFNlZ21lbnRKb2JBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjYW1wYWlnbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVDYW1wYWlnbkFyblByb3BzIHtcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY2FtcGFpZ24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplQ2FtcGFpZ25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBkYXRhRGVsZXRpb25Kb2IgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplRGF0YURlbGV0aW9uSm9iQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkYXRhRGVsZXRpb25Kb2IgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplRGF0YURlbGV0aW9uSm9iQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZGF0YUluc2lnaHRzSm9iIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZURhdGFJbnNpZ2h0c0pvYkFyblByb3BzIHtcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZGF0YUluc2lnaHRzSm9iIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZURhdGFJbnNpZ2h0c0pvYkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGRhdGFzZXQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplRGF0YXNldEFyblByb3BzIHtcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZGF0YXNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVEYXRhc2V0QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZGF0YXNldEV4cG9ydEpvYiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVEYXRhc2V0RXhwb3J0Sm9iQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkYXRhc2V0RXhwb3J0Sm9iIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZURhdGFzZXRFeHBvcnRKb2JBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBkYXRhc2V0R3JvdXAgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplRGF0YXNldEdyb3VwQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkYXRhc2V0R3JvdXAgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplRGF0YXNldEdyb3VwQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZGF0YXNldEltcG9ydEpvYiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVEYXRhc2V0SW1wb3J0Sm9iQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkYXRhc2V0SW1wb3J0Sm9iIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZURhdGFzZXRJbXBvcnRKb2JBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBldmVudFRyYWNrZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplRXZlbnRUcmFja2VyQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBldmVudFRyYWNrZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplRXZlbnRUcmFja2VyQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZmVhdHVyZVRyYW5zZm9ybWF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZUZlYXR1cmVUcmFuc2Zvcm1hdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZmVhdHVyZVRyYW5zZm9ybWF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZUZlYXR1cmVUcmFuc2Zvcm1hdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGZpbHRlciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVGaWx0ZXJBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGZpbHRlciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVGaWx0ZXJBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBtZXRyaWNBdHRyaWJ1dGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVNZXRyaWNBdHRyaWJ1dGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgbWV0cmljQXR0cmlidXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplTWV0cmljQXR0cmlidXRpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSByZWNpcGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplUmVjaXBlQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSByZWNpcGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplUmVjaXBlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgcmVjb21tZW5kZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFsaXplUmVjb21tZW5kZXJBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHJlY29tbWVuZGVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZVJlY29tbWVuZGVyQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgc2NoZW1hIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZVNjaGVtYUFyblByb3BzIHtcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgc2NoZW1hIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZVNjaGVtYUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHNvbHV0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hbGl6ZVNvbHV0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBzb2x1dGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYWxpemVTb2x1dGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuY29uc3QgQWxnb3JpdGhtQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnBlcnNvbmFsaXplOjo6YWxnb3JpdGhtXFwvKD88cmVzb3VyY2VJZD5bXjovP10rKSQvO1xuY29uc3QgQmF0Y2hJbmZlcmVuY2VKb2JBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cGVyc29uYWxpemU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpiYXRjaC1pbmZlcmVuY2Utam9iXFwvKD88cmVzb3VyY2VJZD5bXjovP10rKSQvO1xuY29uc3QgQmF0Y2hTZWdtZW50Sm9iQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnBlcnNvbmFsaXplOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6YmF0Y2gtc2VnbWVudC1qb2JcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBDYW1wYWlnbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwZXJzb25hbGl6ZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmNhbXBhaWduXFwvKD88cmVzb3VyY2VJZD5bXjovP10rKSQvO1xuY29uc3QgRGF0YURlbGV0aW9uSm9iQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnBlcnNvbmFsaXplOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGF0YS1kZWxldGlvbi1qb2JcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBEYXRhSW5zaWdodHNKb2JBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cGVyc29uYWxpemU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkYXRhLWluc2lnaHRzLWpvYlxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IERhdGFzZXRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cGVyc29uYWxpemU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkYXRhc2V0XFwvKD88cmVzb3VyY2VJZD5bXjovP10rKSQvO1xuY29uc3QgRGF0YXNldEV4cG9ydEpvYkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwZXJzb25hbGl6ZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRhdGFzZXQtZXhwb3J0LWpvYlxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IERhdGFzZXRHcm91cEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwZXJzb25hbGl6ZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRhdGFzZXQtZ3JvdXBcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBEYXRhc2V0SW1wb3J0Sm9iQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnBlcnNvbmFsaXplOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGF0YXNldC1pbXBvcnQtam9iXFwvKD88cmVzb3VyY2VJZD5bXjovP10rKSQvO1xuY29uc3QgRXZlbnRUcmFja2VyQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnBlcnNvbmFsaXplOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZXZlbnQtdHJhY2tlclxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IEZlYXR1cmVUcmFuc2Zvcm1hdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwZXJzb25hbGl6ZTo6OmZlYXR1cmUtdHJhbnNmb3JtYXRpb25cXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBGaWx0ZXJBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cGVyc29uYWxpemU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpmaWx0ZXJcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBNZXRyaWNBdHRyaWJ1dGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwZXJzb25hbGl6ZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOm1ldHJpYy1hdHRyaWJ1dGlvblxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IFJlY2lwZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwZXJzb25hbGl6ZTo6OnJlY2lwZVxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IFJlY29tbWVuZGVyQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOnBlcnNvbmFsaXplOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6cmVjb21tZW5kZXJcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBTY2hlbWFBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6cGVyc29uYWxpemU6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpzY2hlbWFcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBTb2x1dGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpwZXJzb25hbGl6ZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnNvbHV0aW9uXFwvKD88cmVzb3VyY2VJZD5bXjovP10rKSQvO1xuXG4vKipcbiAqIEFSTiBidWlsZGVycywgdmFsaWRhdG9ycywgYW5kIHBhcnNlcnMgZm9yIHBlcnNvbmFsaXplIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFBlcnNvbmFsaXplUmVzb3VyY2VzIHtcblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBhbGdvcml0aG0gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgYWxnb3JpdGhtKHByb3BzOiBQZXJzb25hbGl6ZUFsZ29yaXRobUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwZXJzb25hbGl6ZTo6OmFsZ29yaXRobS8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGFsZ29yaXRobSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQWxnb3JpdGhtQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEFsZ29yaXRobUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBhbGdvcml0aG0gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQWxnb3JpdGhtQXJuKGFybjogc3RyaW5nKTogUGVyc29uYWxpemVBbGdvcml0aG1Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEFsZ29yaXRobUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhbGdvcml0aG0gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGJhdGNoSW5mZXJlbmNlSm9iIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGJhdGNoSW5mZXJlbmNlSm9iKFxuXHRcdHByb3BzOiBQZXJzb25hbGl6ZUJhdGNoSW5mZXJlbmNlSm9iQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06cGVyc29uYWxpemU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06YmF0Y2gtaW5mZXJlbmNlLWpvYi8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGJhdGNoSW5mZXJlbmNlSm9iIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRCYXRjaEluZmVyZW5jZUpvYkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBCYXRjaEluZmVyZW5jZUpvYkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBiYXRjaEluZmVyZW5jZUpvYiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VCYXRjaEluZmVyZW5jZUpvYkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogUGVyc29uYWxpemVCYXRjaEluZmVyZW5jZUpvYkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQmF0Y2hJbmZlcmVuY2VKb2JBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYmF0Y2hJbmZlcmVuY2VKb2IgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGJhdGNoU2VnbWVudEpvYiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBiYXRjaFNlZ21lbnRKb2IocHJvcHM6IFBlcnNvbmFsaXplQmF0Y2hTZWdtZW50Sm9iQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnBlcnNvbmFsaXplOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmJhdGNoLXNlZ21lbnQtam9iLyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgYmF0Y2hTZWdtZW50Sm9iIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRCYXRjaFNlZ21lbnRKb2JBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQmF0Y2hTZWdtZW50Sm9iQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGJhdGNoU2VnbWVudEpvYiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VCYXRjaFNlZ21lbnRKb2JBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFBlcnNvbmFsaXplQmF0Y2hTZWdtZW50Sm9iQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBCYXRjaFNlZ21lbnRKb2JBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYmF0Y2hTZWdtZW50Sm9iIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBjYW1wYWlnbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjYW1wYWlnbihwcm9wczogUGVyc29uYWxpemVDYW1wYWlnbkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwZXJzb25hbGl6ZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjYW1wYWlnbi8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGNhbXBhaWduIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDYW1wYWlnbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDYW1wYWlnbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjYW1wYWlnbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDYW1wYWlnbkFybihhcm46IHN0cmluZyk6IFBlcnNvbmFsaXplQ2FtcGFpZ25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENhbXBhaWduQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNhbXBhaWduIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBkYXRhRGVsZXRpb25Kb2IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGF0YURlbGV0aW9uSm9iKHByb3BzOiBQZXJzb25hbGl6ZURhdGFEZWxldGlvbkpvYkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwZXJzb25hbGl6ZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkYXRhLWRlbGV0aW9uLWpvYi8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRhdGFEZWxldGlvbkpvYiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRGF0YURlbGV0aW9uSm9iQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERhdGFEZWxldGlvbkpvYkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkYXRhRGVsZXRpb25Kb2IgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRGF0YURlbGV0aW9uSm9iQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBQZXJzb25hbGl6ZURhdGFEZWxldGlvbkpvYkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRGF0YURlbGV0aW9uSm9iQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRhdGFEZWxldGlvbkpvYiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZGF0YUluc2lnaHRzSm9iIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGRhdGFJbnNpZ2h0c0pvYihwcm9wczogUGVyc29uYWxpemVEYXRhSW5zaWdodHNKb2JBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06cGVyc29uYWxpemU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZGF0YS1pbnNpZ2h0cy1qb2IvJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBkYXRhSW5zaWdodHNKb2IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERhdGFJbnNpZ2h0c0pvYkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBEYXRhSW5zaWdodHNKb2JBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZGF0YUluc2lnaHRzSm9iIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURhdGFJbnNpZ2h0c0pvYkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogUGVyc29uYWxpemVEYXRhSW5zaWdodHNKb2JBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IERhdGFJbnNpZ2h0c0pvYkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkYXRhSW5zaWdodHNKb2IgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRhdGFzZXQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGF0YXNldChwcm9wczogUGVyc29uYWxpemVEYXRhc2V0QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnBlcnNvbmFsaXplOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRhdGFzZXQvJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBkYXRhc2V0IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREYXRhc2V0QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERhdGFzZXRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZGF0YXNldCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEYXRhc2V0QXJuKGFybjogc3RyaW5nKTogUGVyc29uYWxpemVEYXRhc2V0QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEYXRhc2V0QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRhdGFzZXQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRhdGFzZXRFeHBvcnRKb2IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGF0YXNldEV4cG9ydEpvYihwcm9wczogUGVyc29uYWxpemVEYXRhc2V0RXhwb3J0Sm9iQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnBlcnNvbmFsaXplOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRhdGFzZXQtZXhwb3J0LWpvYi8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRhdGFzZXRFeHBvcnRKb2IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERhdGFzZXRFeHBvcnRKb2JBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRGF0YXNldEV4cG9ydEpvYkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkYXRhc2V0RXhwb3J0Sm9iIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURhdGFzZXRFeHBvcnRKb2JBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFBlcnNvbmFsaXplRGF0YXNldEV4cG9ydEpvYkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRGF0YXNldEV4cG9ydEpvYkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkYXRhc2V0RXhwb3J0Sm9iIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBkYXRhc2V0R3JvdXAgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGF0YXNldEdyb3VwKHByb3BzOiBQZXJzb25hbGl6ZURhdGFzZXRHcm91cEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwZXJzb25hbGl6ZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkYXRhc2V0LWdyb3VwLyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZGF0YXNldEdyb3VwIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREYXRhc2V0R3JvdXBBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRGF0YXNldEdyb3VwQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGRhdGFzZXRHcm91cCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEYXRhc2V0R3JvdXBBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFBlcnNvbmFsaXplRGF0YXNldEdyb3VwQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEYXRhc2V0R3JvdXBBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGF0YXNldEdyb3VwIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBkYXRhc2V0SW1wb3J0Sm9iIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGRhdGFzZXRJbXBvcnRKb2IocHJvcHM6IFBlcnNvbmFsaXplRGF0YXNldEltcG9ydEpvYkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwZXJzb25hbGl6ZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkYXRhc2V0LWltcG9ydC1qb2IvJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBkYXRhc2V0SW1wb3J0Sm9iIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREYXRhc2V0SW1wb3J0Sm9iQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERhdGFzZXRJbXBvcnRKb2JBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZGF0YXNldEltcG9ydEpvYiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEYXRhc2V0SW1wb3J0Sm9iQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBQZXJzb25hbGl6ZURhdGFzZXRJbXBvcnRKb2JBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IERhdGFzZXRJbXBvcnRKb2JBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGF0YXNldEltcG9ydEpvYiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZXZlbnRUcmFja2VyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGV2ZW50VHJhY2tlcihwcm9wczogUGVyc29uYWxpemVFdmVudFRyYWNrZXJBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06cGVyc29uYWxpemU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZXZlbnQtdHJhY2tlci8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGV2ZW50VHJhY2tlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRXZlbnRUcmFja2VyQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEV2ZW50VHJhY2tlckFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBldmVudFRyYWNrZXIgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRXZlbnRUcmFja2VyQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBQZXJzb25hbGl6ZUV2ZW50VHJhY2tlckFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRXZlbnRUcmFja2VyQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGV2ZW50VHJhY2tlciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZmVhdHVyZVRyYW5zZm9ybWF0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGZlYXR1cmVUcmFuc2Zvcm1hdGlvbihcblx0XHRwcm9wczogUGVyc29uYWxpemVGZWF0dXJlVHJhbnNmb3JtYXRpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwZXJzb25hbGl6ZTo6OmZlYXR1cmUtdHJhbnNmb3JtYXRpb24vJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBmZWF0dXJlVHJhbnNmb3JtYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEZlYXR1cmVUcmFuc2Zvcm1hdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBGZWF0dXJlVHJhbnNmb3JtYXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZmVhdHVyZVRyYW5zZm9ybWF0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUZlYXR1cmVUcmFuc2Zvcm1hdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogUGVyc29uYWxpemVGZWF0dXJlVHJhbnNmb3JtYXRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEZlYXR1cmVUcmFuc2Zvcm1hdGlvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBmZWF0dXJlVHJhbnNmb3JtYXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGZpbHRlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBmaWx0ZXIocHJvcHM6IFBlcnNvbmFsaXplRmlsdGVyQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OnBlcnNvbmFsaXplOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmZpbHRlci8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGZpbHRlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRmlsdGVyQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEZpbHRlckFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBmaWx0ZXIgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRmlsdGVyQXJuKGFybjogc3RyaW5nKTogUGVyc29uYWxpemVGaWx0ZXJBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEZpbHRlckFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBmaWx0ZXIgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIG1ldHJpY0F0dHJpYnV0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIG1ldHJpY0F0dHJpYnV0aW9uKFxuXHRcdHByb3BzOiBQZXJzb25hbGl6ZU1ldHJpY0F0dHJpYnV0aW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06cGVyc29uYWxpemU6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06bWV0cmljLWF0dHJpYnV0aW9uLyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgbWV0cmljQXR0cmlidXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZE1ldHJpY0F0dHJpYnV0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE1ldHJpY0F0dHJpYnV0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIG1ldHJpY0F0dHJpYnV0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZU1ldHJpY0F0dHJpYnV0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBQZXJzb25hbGl6ZU1ldHJpY0F0dHJpYnV0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBNZXRyaWNBdHRyaWJ1dGlvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBtZXRyaWNBdHRyaWJ1dGlvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgcmVjaXBlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHJlY2lwZShwcm9wczogUGVyc29uYWxpemVSZWNpcGVBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06cGVyc29uYWxpemU6OjpyZWNpcGUvJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSByZWNpcGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJlY2lwZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZWNpcGVBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgcmVjaXBlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVJlY2lwZUFybihhcm46IHN0cmluZyk6IFBlcnNvbmFsaXplUmVjaXBlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBSZWNpcGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVjaXBlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSByZWNvbW1lbmRlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyByZWNvbW1lbmRlcihwcm9wczogUGVyc29uYWxpemVSZWNvbW1lbmRlckFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwZXJzb25hbGl6ZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpyZWNvbW1lbmRlci8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHJlY29tbWVuZGVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRSZWNvbW1lbmRlckFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZWNvbW1lbmRlckFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSByZWNvbW1lbmRlciBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VSZWNvbW1lbmRlckFybihhcm46IHN0cmluZyk6IFBlcnNvbmFsaXplUmVjb21tZW5kZXJBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJlY29tbWVuZGVyQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJlY29tbWVuZGVyIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBzY2hlbWEgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgc2NoZW1hKHByb3BzOiBQZXJzb25hbGl6ZVNjaGVtYUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwZXJzb25hbGl6ZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzY2hlbWEvJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBzY2hlbWEgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFNjaGVtYUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTY2hlbWFBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgc2NoZW1hIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVNjaGVtYUFybihhcm46IHN0cmluZyk6IFBlcnNvbmFsaXplU2NoZW1hQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTY2hlbWFBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc2NoZW1hIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBzb2x1dGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzb2x1dGlvbihwcm9wczogUGVyc29uYWxpemVTb2x1dGlvbkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpwZXJzb25hbGl6ZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzb2x1dGlvbi8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHNvbHV0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRTb2x1dGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTb2x1dGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBzb2x1dGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VTb2x1dGlvbkFybihhcm46IHN0cmluZyk6IFBlcnNvbmFsaXplU29sdXRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFNvbHV0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNvbHV0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG59XG5cbi8qKlxuICogQVBJIG9wZXJhdGlvbiB0byByZXF1aXJlZCBJQU0gYWN0aW9ucyBtYXBwaW5nIGZvciBwZXJzb25hbGl6ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFBlcnNvbmFsaXplT3BlcmF0aW9ucyB7XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUJhdGNoSW5mZXJlbmNlSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQmF0Y2hJbmZlcmVuY2VKb2I6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6Q3JlYXRlQmF0Y2hJbmZlcmVuY2VKb2JcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwicGVyc29uYWxpemU6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQmF0Y2hTZWdtZW50Sm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQmF0Y2hTZWdtZW50Sm9iOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkNyZWF0ZUJhdGNoU2VnbWVudEpvYlwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJwZXJzb25hbGl6ZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDYW1wYWlnbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNhbXBhaWduOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkNyZWF0ZUNhbXBhaWduXCIsXG5cdFx0XCJwZXJzb25hbGl6ZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVEYXRhRGVsZXRpb25Kb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhRGVsZXRpb25Kb2I6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6Q3JlYXRlRGF0YURlbGV0aW9uSm9iXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcInBlcnNvbmFsaXplOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZURhdGFzZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhc2V0OiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkNyZWF0ZURhdGFzZXRcIixcblx0XHRcInBlcnNvbmFsaXplOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZURhdGFzZXRFeHBvcnRKb2IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhc2V0RXhwb3J0Sm9iOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkNyZWF0ZURhdGFzZXRFeHBvcnRKb2JcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwicGVyc29uYWxpemU6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRGF0YXNldEdyb3VwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldEdyb3VwOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkNyZWF0ZURhdGFzZXRHcm91cFwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJwZXJzb25hbGl6ZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVEYXRhc2V0SW1wb3J0Sm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldEltcG9ydEpvYjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpDcmVhdGVEYXRhc2V0SW1wb3J0Sm9iXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcInBlcnNvbmFsaXplOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUV2ZW50VHJhY2tlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV2ZW50VHJhY2tlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpDcmVhdGVFdmVudFRyYWNrZXJcIixcblx0XHRcInBlcnNvbmFsaXplOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUZpbHRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUZpbHRlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpDcmVhdGVGaWx0ZXJcIixcblx0XHRcInBlcnNvbmFsaXplOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZU1ldHJpY0F0dHJpYnV0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTWV0cmljQXR0cmlidXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6Q3JlYXRlTWV0cmljQXR0cmlidXRpb25cIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVSZWNvbW1lbmRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY29tbWVuZGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkNyZWF0ZVJlY29tbWVuZGVyXCIsXG5cdFx0XCJwZXJzb25hbGl6ZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVTY2hlbWEgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTY2hlbWE6IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6Q3JlYXRlU2NoZW1hXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVTb2x1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNvbHV0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkNyZWF0ZVNvbHV0aW9uXCIsXG5cdFx0XCJwZXJzb25hbGl6ZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVTb2x1dGlvblZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb2x1dGlvblZlcnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6Q3JlYXRlU29sdXRpb25WZXJzaW9uXCIsXG5cdFx0XCJwZXJzb25hbGl6ZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVDYW1wYWlnbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNhbXBhaWduOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOkRlbGV0ZUNhbXBhaWduXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVEYXRhc2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGF0YXNldDogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpEZWxldGVEYXRhc2V0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVEYXRhc2V0R3JvdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEYXRhc2V0R3JvdXA6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6RGVsZXRlRGF0YXNldEdyb3VwXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUV2ZW50VHJhY2tlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV2ZW50VHJhY2tlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpEZWxldGVFdmVudFRyYWNrZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRmlsdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRmlsdGVyOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOkRlbGV0ZUZpbHRlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTWV0cmljQXR0cmlidXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVNZXRyaWNBdHRyaWJ1dGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpEZWxldGVNZXRyaWNBdHRyaWJ1dGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZWNvbW1lbmRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY29tbWVuZGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkRlbGV0ZVJlY29tbWVuZGVyXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVNjaGVtYSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNjaGVtYTogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpEZWxldGVTY2hlbWFcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVNvbHV0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU29sdXRpb246IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6RGVsZXRlU29sdXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQWxnb3JpdGhtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVBbGdvcml0aG06IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6RGVzY3JpYmVBbGdvcml0aG1cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVCYXRjaEluZmVyZW5jZUpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQmF0Y2hJbmZlcmVuY2VKb2I6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6RGVzY3JpYmVCYXRjaEluZmVyZW5jZUpvYlwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUJhdGNoU2VnbWVudEpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQmF0Y2hTZWdtZW50Sm9iOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlQmF0Y2hTZWdtZW50Sm9iXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQ2FtcGFpZ24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNhbXBhaWduOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOkRlc2NyaWJlQ2FtcGFpZ25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlRGF0YURlbGV0aW9uSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVEYXRhRGVsZXRpb25Kb2I6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6RGVzY3JpYmVEYXRhRGVsZXRpb25Kb2JcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVEYXRhc2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVEYXRhc2V0OiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOkRlc2NyaWJlRGF0YXNldFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVEYXRhc2V0RXhwb3J0Sm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVEYXRhc2V0RXhwb3J0Sm9iOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlRGF0YXNldEV4cG9ydEpvYlwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZURhdGFzZXRHcm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRGF0YXNldEdyb3VwOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlRGF0YXNldEdyb3VwXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlRGF0YXNldEltcG9ydEpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRGF0YXNldEltcG9ydEpvYjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpEZXNjcmliZURhdGFzZXRJbXBvcnRKb2JcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVFdmVudFRyYWNrZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUV2ZW50VHJhY2tlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpEZXNjcmliZUV2ZW50VHJhY2tlclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUZlYXR1cmVUcmFuc2Zvcm1hdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRmVhdHVyZVRyYW5zZm9ybWF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlRmVhdHVyZVRyYW5zZm9ybWF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlRmlsdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVGaWx0ZXI6IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6RGVzY3JpYmVGaWx0ZXJcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlTWV0cmljQXR0cmlidXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZU1ldHJpY0F0dHJpYnV0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlTWV0cmljQXR0cmlidXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVSZWNpcGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY2lwZTogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpEZXNjcmliZVJlY2lwZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVSZWNvbW1lbmRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUmVjb21tZW5kZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6RGVzY3JpYmVSZWNvbW1lbmRlclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVNjaGVtYSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU2NoZW1hOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOkRlc2NyaWJlU2NoZW1hXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVNvbHV0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTb2x1dGlvbjogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpEZXNjcmliZVNvbHV0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVNvbHV0aW9uVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU29sdXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkRlc2NyaWJlU29sdXRpb25WZXJzaW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEFjdGlvblJlY29tbWVuZGF0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0QWN0aW9uUmVjb21tZW5kYXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkdldEFjdGlvblJlY29tbWVuZGF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRQZXJzb25hbGl6ZWRSYW5raW5nIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRQZXJzb25hbGl6ZWRSYW5raW5nOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkdldFBlcnNvbmFsaXplZFJhbmtpbmdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjb21tZW5kYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZWNvbW1lbmRhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6R2V0UmVjb21tZW5kYXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFNvbHV0aW9uTWV0cmljcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0U29sdXRpb25NZXRyaWNzOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkdldFNvbHV0aW9uTWV0cmljc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QmF0Y2hJbmZlcmVuY2VKb2JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEJhdGNoSW5mZXJlbmNlSm9iczogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpMaXN0QmF0Y2hJbmZlcmVuY2VKb2JzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RCYXRjaFNlZ21lbnRKb2JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEJhdGNoU2VnbWVudEpvYnM6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6TGlzdEJhdGNoU2VnbWVudEpvYnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENhbXBhaWducyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDYW1wYWlnbnM6IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6TGlzdENhbXBhaWduc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERhdGFEZWxldGlvbkpvYnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YURlbGV0aW9uSm9iczogc3RyaW5nW10gPSBbXG5cdFx0XCJwZXJzb25hbGl6ZTpMaXN0RGF0YURlbGV0aW9uSm9ic1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RGF0YXNldEV4cG9ydEpvYnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YXNldEV4cG9ydEpvYnM6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6TGlzdERhdGFzZXRFeHBvcnRKb2JzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3REYXRhc2V0R3JvdXBzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFzZXRHcm91cHM6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6TGlzdERhdGFzZXRHcm91cHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERhdGFzZXRJbXBvcnRKb2JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFzZXRJbXBvcnRKb2JzOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkxpc3REYXRhc2V0SW1wb3J0Sm9ic1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RGF0YXNldHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YXNldHM6IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6TGlzdERhdGFzZXRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RXZlbnRUcmFja2VycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFdmVudFRyYWNrZXJzOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkxpc3RFdmVudFRyYWNrZXJzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RGaWx0ZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZpbHRlcnM6IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6TGlzdEZpbHRlcnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNZXRyaWNBdHRyaWJ1dGlvbk1ldHJpY3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWV0cmljQXR0cmlidXRpb25NZXRyaWNzOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkxpc3RNZXRyaWNBdHRyaWJ1dGlvbk1ldHJpY3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdE1ldHJpY0F0dHJpYnV0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNZXRyaWNBdHRyaWJ1dGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6TGlzdE1ldHJpY0F0dHJpYnV0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UmVjaXBlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNpcGVzOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOkxpc3RSZWNpcGVzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UmVjb21tZW5kZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY29tbWVuZGVyczogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpMaXN0UmVjb21tZW5kZXJzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U2NoZW1hcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTY2hlbWFzOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOkxpc3RTY2hlbWFzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U29sdXRpb25WZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTb2x1dGlvblZlcnNpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkxpc3RTb2x1dGlvblZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTb2x1dGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U29sdXRpb25zOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOkxpc3RTb2x1dGlvbnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOkxpc3RUYWdzRm9yUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0QWN0aW9uSW50ZXJhY3Rpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0QWN0aW9uSW50ZXJhY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOlB1dEFjdGlvbkludGVyYWN0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRBY3Rpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0QWN0aW9uczogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpQdXRBY3Rpb25zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRFdmVudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRFdmVudHM6IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6UHV0RXZlbnRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRJdGVtcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEl0ZW1zOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOlB1dEl0ZW1zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRVc2VycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dFVzZXJzOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOlB1dFVzZXJzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFJlY29tbWVuZGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZWNvbW1lbmRlcjogc3RyaW5nW10gPSBbXCJwZXJzb25hbGl6ZTpTdGFydFJlY29tbWVuZGVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wUmVjb21tZW5kZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wUmVjb21tZW5kZXI6IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6U3RvcFJlY29tbWVuZGVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wU29sdXRpb25WZXJzaW9uQ3JlYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wU29sdXRpb25WZXJzaW9uQ3JlYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwicGVyc29uYWxpemU6U3RvcFNvbHV0aW9uVmVyc2lvbkNyZWF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNhbXBhaWduIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2FtcGFpZ246IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6VXBkYXRlQ2FtcGFpZ25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZURhdGFzZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVEYXRhc2V0OiBzdHJpbmdbXSA9IFtcInBlcnNvbmFsaXplOlVwZGF0ZURhdGFzZXRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZU1ldHJpY0F0dHJpYnV0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTWV0cmljQXR0cmlidXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJwZXJzb25hbGl6ZTpVcGRhdGVNZXRyaWNBdHRyaWJ1dGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVSZWNvbW1lbmRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlY29tbWVuZGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcInBlcnNvbmFsaXplOlVwZGF0ZVJlY29tbWVuZGVyXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVNvbHV0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU29sdXRpb246IHN0cmluZ1tdID0gW1wicGVyc29uYWxpemU6VXBkYXRlU29sdXRpb25cIl07XG59XG5cbi8qKlxuICogQ29uZGl0aW9uIGtleSBjb25zdGFudHMgYW5kIGJ1aWxkZXJzIGZvciBwZXJzb25hbGl6ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFBlcnNvbmFsaXplQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVCYXRjaEluZmVyZW5jZUpvYiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVCYXRjaEluZmVyZW5jZUpvYkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQmF0Y2hTZWdtZW50Sm9iIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUJhdGNoU2VnbWVudEpvYkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ2FtcGFpZ24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2FtcGFpZ25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZURhdGFEZWxldGlvbkpvYiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhRGVsZXRpb25Kb2JDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZURhdGFzZXQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRGF0YXNldEV4cG9ydEpvYiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhc2V0RXhwb3J0Sm9iQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVEYXRhc2V0R3JvdXAgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldEdyb3VwQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVEYXRhc2V0SW1wb3J0Sm9iIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFzZXRJbXBvcnRKb2JDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUV2ZW50VHJhY2tlciBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFdmVudFRyYWNrZXJDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUZpbHRlciBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVGaWx0ZXJDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVJlY29tbWVuZGVyIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY29tbWVuZGVyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVTb2x1dGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb2x1dGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlU29sdXRpb25WZXJzaW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNvbHV0aW9uVmVyc2lvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVudGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1wiYXdzOlRhZ0tleXNcIl07XG5cblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFUVVFU1RfVEFHID0gXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVNPVVJDRV9UQUcgPSBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1RBR19LRVlTID0gXCJhd3M6VGFnS2V5c1wiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxufVxuIl19
|