@pipeline-builder/api-core 5.2.6 → 5.2.8
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/lib/constants/ai-providers.js +1 -1
- package/lib/constants/http-status.js +1 -1
- package/lib/constants/index.js +1 -1
- package/lib/constants/time.js +1 -1
- package/lib/errors/app-errors.js +1 -1
- package/lib/errors/index.js +1 -1
- package/lib/helpers/access-helpers.d.ts +19 -0
- package/lib/helpers/access-helpers.js +24 -4
- package/lib/helpers/content-disposition.js +1 -1
- package/lib/helpers/crud-helpers.js +1 -1
- package/lib/helpers/index.d.ts +1 -1
- package/lib/helpers/index.js +2 -2
- package/lib/helpers/org-hierarchy-http.js +1 -1
- package/lib/helpers/org-hierarchy.js +1 -1
- package/lib/helpers/restore-helpers.js +1 -1
- package/lib/helpers/sse-helpers.js +13 -2
- package/lib/helpers/support-calendar.js +1 -1
- package/lib/index.js +1 -1
- package/lib/middleware/ask-provenance.js +1 -1
- package/lib/middleware/assurance.js +1 -1
- package/lib/middleware/auth.js +3 -2
- package/lib/middleware/client-version.d.ts +45 -0
- package/lib/middleware/client-version.js +97 -0
- package/lib/middleware/deferred-quota-check.js +1 -1
- package/lib/middleware/ecosystem-guard.js +1 -1
- package/lib/middleware/index.d.ts +1 -0
- package/lib/middleware/index.js +2 -1
- package/lib/middleware/jwt-verify.js +1 -1
- package/lib/middleware/mongo-sanitize.js +1 -1
- package/lib/middleware/on-behalf.js +1 -1
- package/lib/middleware/permission-gates.js +1 -1
- package/lib/middleware/quota-exempt-routes.js +1 -1
- package/lib/middleware/revocation.js +1 -1
- package/lib/middleware/route-table.js +16 -1
- package/lib/middleware/service-tokens.js +1 -1
- package/lib/middleware/step-up.js +1 -1
- package/lib/middleware/system-org.d.ts +18 -5
- package/lib/middleware/system-org.js +19 -6
- package/lib/openapi/extend-zod.js +1 -1
- package/lib/openapi/index.js +1 -1
- package/lib/openapi/registry.js +1 -1
- package/lib/openapi/routes/ask-routes.js +1 -1
- package/lib/openapi/routes/billing-routes.js +1 -1
- package/lib/openapi/routes/image-registry-routes.js +1 -1
- package/lib/openapi/routes/index.js +1 -1
- package/lib/openapi/routes/message-routes.js +1 -1
- package/lib/openapi/routes/pipeline-routes.js +1 -1
- package/lib/openapi/routes/pipeline-template-routes.js +1 -1
- package/lib/openapi/routes/plugin-routes.js +1 -1
- package/lib/openapi/routes/quota-routes.js +1 -1
- package/lib/openapi/schema-registry.js +1 -1
- package/lib/routes/health.js +1 -1
- package/lib/routes/index.js +1 -1
- package/lib/services/ai-call-weight.js +1 -1
- package/lib/services/alert-delivery.js +1 -1
- package/lib/services/api-key-exchange.d.ts +4 -2
- package/lib/services/api-key-exchange.js +15 -8
- package/lib/services/audit-context.d.ts +3 -0
- package/lib/services/audit-context.js +2 -1
- package/lib/services/audit-spool.js +1 -1
- package/lib/services/cache-service.js +1 -1
- package/lib/services/circuit-breaker.js +1 -1
- package/lib/services/compliance-client.js +1 -1
- package/lib/services/compliance-event-subscriber.js +1 -1
- package/lib/services/durable-event-bus.js +1 -1
- package/lib/services/ecosystem-notify-client.d.ts +7 -1
- package/lib/services/ecosystem-notify-client.js +9 -3
- package/lib/services/entity-events.js +1 -1
- package/lib/services/env-redis.js +1 -1
- package/lib/services/http-client.js +19 -3
- package/lib/services/index.d.ts +1 -1
- package/lib/services/index.js +2 -2
- package/lib/services/jwks-cache.js +1 -1
- package/lib/services/leader-lock.js +1 -1
- package/lib/services/notification-channels.js +1 -1
- package/lib/services/org-ai-client.js +1 -1
- package/lib/services/pagerduty-inbound.js +1 -1
- package/lib/services/pagerduty.js +1 -1
- package/lib/services/quota-increment-batcher.js +1 -1
- package/lib/services/quota.js +1 -1
- package/lib/services/remote-audit-client.js +1 -1
- package/lib/services/retry-forever.js +1 -1
- package/lib/services/retry-strategy.js +1 -1
- package/lib/services/s3-client.js +1 -1
- package/lib/services/scheduler.js +1 -1
- package/lib/services/service-boot.js +1 -1
- package/lib/services/service-keys.js +2 -2
- package/lib/services/sse-ticket-store.js +1 -1
- package/lib/services/system-notification.js +1 -1
- package/lib/services/token-revocation.js +1 -1
- package/lib/services/version-vuln-policy.d.ts +11 -0
- package/lib/services/version-vuln-policy.js +33 -7
- package/lib/types/ai-catalog.js +1 -1
- package/lib/types/ask-proposals.d.ts +23 -0
- package/lib/types/ask-proposals.js +29 -1
- package/lib/types/audit-events.js +1 -1
- package/lib/types/build-catalog.d.ts +65 -0
- package/lib/types/build-catalog.js +95 -1
- package/lib/types/catalog-metadata.js +1 -1
- package/lib/types/common.js +1 -1
- package/lib/types/compliance-exemption.js +1 -1
- package/lib/types/ecosystem-notifications.d.ts +9 -0
- package/lib/types/ecosystem-notifications.js +15 -6
- package/lib/types/ecosystem.d.ts +1 -6
- package/lib/types/ecosystem.js +18 -5
- package/lib/types/error-codes.d.ts +3 -0
- package/lib/types/error-codes.js +6 -1
- package/lib/types/feature-flags.d.ts +17 -1
- package/lib/types/feature-flags.js +1 -1
- package/lib/types/http.js +1 -1
- package/lib/types/index.d.ts +3 -3
- package/lib/types/index.js +4 -4
- package/lib/types/metadata-keys.js +1 -1
- package/lib/types/permissions.d.ts +60 -13
- package/lib/types/permissions.js +63 -14
- package/lib/types/pipeline-template.js +1 -1
- package/lib/types/pipeline.js +1 -1
- package/lib/types/plugin-catalog.js +1 -1
- package/lib/types/plugin-health.js +1 -1
- package/lib/types/plugin-scan.d.ts +69 -0
- package/lib/types/plugin-scan.js +77 -1
- package/lib/types/quota-catalog.js +15 -2
- package/lib/types/quota-tiers.d.ts +27 -160
- package/lib/types/quota-tiers.js +47 -255
- package/lib/types/remote-audit-actions.d.ts +1 -1
- package/lib/types/remote-audit-actions.js +9 -1
- package/lib/types/reserved-tags.js +1 -1
- package/lib/types/tier-limits.d.ts +210 -0
- package/lib/types/tier-limits.js +254 -0
- package/lib/types/usage-projection.js +1 -1
- package/lib/types/visibility.js +1 -1
- package/lib/types/wire-vocabulary.d.ts +7 -0
- package/lib/types/wire-vocabulary.js +7 -1
- package/lib/utils/alias-resolver.js +1 -1
- package/lib/utils/api-key.js +1 -1
- package/lib/utils/audit.js +1 -1
- package/lib/utils/aws-scrub.js +1 -1
- package/lib/utils/compliance-attributes.js +1 -1
- package/lib/utils/concurrency-gate.d.ts +98 -0
- package/lib/utils/concurrency-gate.js +110 -0
- package/lib/utils/concurrency.js +1 -1
- package/lib/utils/crash-handlers.js +1 -1
- package/lib/utils/date.js +1 -1
- package/lib/utils/dsse.js +1 -1
- package/lib/utils/env.d.ts +11 -0
- package/lib/utils/env.js +14 -1
- package/lib/utils/headers.js +1 -1
- package/lib/utils/identity.js +1 -1
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.js +3 -1
- package/lib/utils/jwk.js +2 -2
- package/lib/utils/logger.js +1 -1
- package/lib/utils/metric-emitter.js +1 -1
- package/lib/utils/object.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/plugin-compliance.d.ts +9 -1
- package/lib/utils/plugin-compliance.js +1 -1
- package/lib/utils/proof-of-work.js +1 -1
- package/lib/utils/response.js +1 -1
- package/lib/utils/retention.js +1 -1
- package/lib/utils/safe-require.js +1 -1
- package/lib/utils/secret-encryption.js +1 -1
- package/lib/utils/secret-rotation.js +1 -1
- package/lib/utils/secure-compare.js +1 -1
- package/lib/utils/semver.d.ts +18 -0
- package/lib/utils/semver.js +120 -0
- package/lib/utils/sensitive-patterns.js +1 -1
- package/lib/utils/service-registry.js +1 -1
- package/lib/utils/ssrf.js +1 -1
- package/lib/validation/ai-schemas.js +1 -1
- package/lib/validation/common-schemas.js +1 -1
- package/lib/validation/dockerfile-static.js +1 -1
- package/lib/validation/index.d.ts +1 -1
- package/lib/validation/index.js +2 -2
- package/lib/validation/message-schemas.d.ts +73 -0
- package/lib/validation/message-schemas.js +63 -2
- package/lib/validation/middleware.js +1 -1
- package/lib/validation/pipeline-schemas.js +1 -1
- package/lib/validation/pipeline-template-schemas.js +1 -1
- package/lib/validation/plugin-base-images.js +1 -1
- package/lib/validation/plugin-catalog-detect.js +1 -1
- package/lib/validation/plugin-catalog-metadata.js +1 -1
- package/lib/validation/plugin-heuristics.js +1 -1
- package/lib/validation/plugin-lint.js +1 -1
- package/lib/validation/plugin-name-confusable.js +1 -1
- package/lib/validation/plugin-schemas.js +1 -1
- package/lib/validation/plugin-spec-schema.js +1 -1
- package/lib/validation/plugin-template-contract.js +1 -1
- package/package.json +11 -4
|
@@ -117,4 +117,4 @@ export const METADATA_KEY_GROUPS = (() => {
|
|
|
117
117
|
}
|
|
118
118
|
return groups;
|
|
119
119
|
})();
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEta2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9tZXRhZGF0YS1rZXlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUEwQ3RDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2xDLHlEQUF5RDtJQUN6RCxhQUFhLEVBQUUsRUFBRSxHQUFHLEVBQUUsNkNBQTZDLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7SUFDeEksa0JBQWtCLEVBQUUsRUFBRSxHQUFHLEVBQUUsaURBQWlELEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtJQUN0SixnQ0FBZ0MsRUFBRSxFQUFFLEdBQUcsRUFBRSw2REFBNkQsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0lBQzlMLHdCQUF3QixFQUFFLEVBQUUsR0FBRyxFQUFFLHNEQUFzRCxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7SUFDdkssbUJBQW1CLEVBQUUsRUFBRSxHQUFHLEVBQUUsa0RBQWtELEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtJQUN6SiwwQkFBMEIsRUFBRSxFQUFFLEdBQUcsRUFBRSx3REFBd0QsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0lBQzdLLGlDQUFpQyxFQUFFLEVBQUUsR0FBRyxFQUFFLDhEQUE4RCxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLG1DQUFtQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7SUFDak0sZUFBZSxFQUFFLEVBQUUsR0FBRyxFQUFFLDhDQUE4QyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7SUFDN0ksNkJBQTZCLEVBQUUsRUFBRSxHQUFHLEVBQUUsMERBQTBELEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsK0JBQStCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtJQUNyTCxlQUFlLEVBQUUsRUFBRSxHQUFHLEVBQUUsK0NBQStDLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUM3SSxvQ0FBb0MsRUFBRSxFQUFFLEdBQUcsRUFBRSxpRUFBaUUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxxQ0FBcUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQ3hNLHNCQUFzQixFQUFFLEVBQUUsR0FBRyxFQUFFLG9EQUFvRCxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFDaEssV0FBVyxFQUFFLEVBQUUsR0FBRyxFQUFFLDJDQUEyQyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQ2pJLG1CQUFtQixFQUFFLEVBQUUsR0FBRyxFQUFFLGtEQUFrRCxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFDdkosYUFBYSxFQUFFLEVBQUUsR0FBRyxFQUFFLDZDQUE2QyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQ3RJLGdDQUFnQyxFQUFFLEVBQUUsR0FBRyxFQUFFLDhEQUE4RCxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGtDQUFrQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFDOUwsa0JBQWtCLEVBQUUsRUFBRSxHQUFHLEVBQUUsa0RBQWtELEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUN0SixhQUFhLEVBQUUsRUFBRSxHQUFHLEVBQUUsNkNBQTZDLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFDdkksYUFBYSxFQUFFLEVBQUUsR0FBRyxFQUFFLDZDQUE2QyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQ3ZJLGFBQWEsRUFBRSxFQUFFLEdBQUcsRUFBRSxxQ0FBcUMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUMvSCxpQ0FBaUMsRUFBRSxFQUFFLEdBQUcsRUFBRSw4REFBOEQsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQy9MLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxzQ0FBc0MsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUNoSCx5QkFBeUIsRUFBRSxFQUFFLEdBQUcsRUFBRSx1REFBdUQsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBRXhLLDJEQUEyRDtJQUMzRCxXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsNENBQTRDLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFDbkksaUJBQWlCLEVBQUUsRUFBRSxHQUFHLEVBQUUsa0RBQWtELEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUNySixpQkFBaUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxrREFBa0QsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQ3JKLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSx1Q0FBdUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUNsSCxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsMENBQTBDLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFDM0gsY0FBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLHFDQUFxQyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQy9ILG9CQUFvQixFQUFFLEVBQUUsR0FBRyxFQUFFLG1EQUFtRCxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFDNUoscUJBQXFCLEVBQUUsRUFBRSxHQUFHLEVBQUUscURBQXFELEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUNoSyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsdUNBQXVDLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFDbEgsZ0JBQWdCLEVBQUUsRUFBRSxHQUFHLEVBQUUsaURBQWlELEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUNsSixPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUseUNBQXlDLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFDeEgsa0JBQWtCLEVBQUUsRUFBRSxHQUFHLEVBQUUsa0RBQWtELEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUN2Six3QkFBd0IsRUFBRSxFQUFFLEdBQUcsRUFBRSx3REFBd0QsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQ3pLLFlBQVksRUFBRSxFQUFFLEdBQUcsRUFBRSw2Q0FBNkMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUN0SSxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsc0NBQXNDLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFDekgsc0JBQXNCLEVBQUUsRUFBRSxHQUFHLEVBQUUsc0RBQXNELEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUNuSyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUseUNBQXlDLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFFeEgsbURBQW1EO0lBQ25ELHVCQUF1QixFQUFFLEVBQUUsR0FBRyxFQUFFLDhDQUE4QyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFDbkosY0FBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLHNDQUFzQyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQ3pILFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxpQ0FBaUMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUNsSCwwQkFBMEIsRUFBRSxFQUFFLEdBQUcsRUFBRSwrQ0FBK0MsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQzFKLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxtQ0FBbUMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUNoSCxzQkFBc0IsRUFBRSxFQUFFLEdBQUcsRUFBRSw2Q0FBNkMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQ2hKLDhCQUE4QixFQUFFLEVBQUUsR0FBRyxFQUFFLG9EQUFvRCxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFFdkssaUVBQWlFO0lBQ2pFLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSwrQ0FBK0MsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0lBQ3pJLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSwrQ0FBK0MsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQzFJLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxnREFBZ0QsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQzNJLFlBQVksRUFBRSxFQUFFLEdBQUcsRUFBRSxnREFBZ0QsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQzdJLGFBQWEsRUFBRSxFQUFFLEdBQUcsRUFBRSxpREFBaUQsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQ2hKLHFCQUFxQixFQUFFLEVBQUUsR0FBRyxFQUFFLHlEQUF5RCxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUN4SyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsMENBQTBDLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUV6SCx1REFBdUQ7SUFDdkQsWUFBWSxFQUFFLEVBQUUsR0FBRyxFQUFFLDBCQUEwQixFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQzdHLGNBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSwyQkFBMkIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUMxRyxrQkFBa0IsRUFBRSxFQUFFLEdBQUcsRUFBRSwrQkFBK0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUN0SCxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxnQ0FBZ0MsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUN6SCwwQkFBMEIsRUFBRSxFQUFFLEdBQUcsRUFBRSx1Q0FBdUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQzlJLHlCQUF5QixFQUFFLEVBQUUsR0FBRyxFQUFFLHFDQUFxQyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFDMUksMEJBQTBCLEVBQUUsRUFBRSxHQUFHLEVBQUUsc0NBQXNDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUM3SSxZQUFZLEVBQUUsRUFBRSxHQUFHLEVBQUUsMEJBQTBCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUNoSCxnQkFBZ0IsRUFBRSxFQUFFLEdBQUcsRUFBRSw2QkFBNkIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUNoSCxjQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsNEJBQTRCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFFM0cscURBQXFEO0lBQ3JELFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUNyRyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsMEJBQTBCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFDdEcsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLDJCQUEyQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQ3pHLFlBQVksRUFBRSxFQUFFLEdBQUcsRUFBRSwwQkFBMEIsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtJQUUxRyxvRUFBb0U7SUFDcEUsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLEVBQUUsZ0NBQWdDLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQ3hJLGtCQUFrQixFQUFFLEVBQUUsR0FBRyxFQUFFLDRDQUE0QyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUNsSixzQkFBc0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxtQ0FBbUMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0lBQ25JLG1CQUFtQixFQUFFLEVBQUUsR0FBRyxFQUFFLDZDQUE2QyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUNySixxQkFBcUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxpQ0FBaUMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBRTlILGlEQUFpRDtJQUNqRCxzQkFBc0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxpQ0FBaUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUNySSxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSw4QkFBOEIsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBRXJJLHNGQUFzRjtJQUN0Rix1QkFBdUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxvQ0FBb0MsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxpQ0FBaUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0lBQ3pKLGNBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSw0QkFBNEIsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0lBQ3pJLHVCQUF1QixFQUFFLEVBQUUsR0FBRyxFQUFFLDBDQUEwQyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLDRCQUE0QixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFDekosa0JBQWtCLEVBQUUsRUFBRSxHQUFHLEVBQUUsOEJBQThCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsbUNBQW1DLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtJQUMvSSw2RUFBNkU7SUFDN0UsMEVBQTBFO0lBQzFFLGtCQUFrQixFQUFFLEVBQUUsR0FBRyxFQUFFLHFDQUFxQyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLDBEQUEwRCxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7SUFFOUssNkVBQTZFO0lBQzdFLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSw4QkFBOEIsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0NBQ3BGLENBQUM7QUFFdEQsMkVBQTJFO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUN2QyxNQUFNLENBQUMsV0FBVyxDQUNoQixNQUFNLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUMvRSxDQUNnRyxDQUFDO0FBa0JwRzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBZ0MsQ0FBQyxHQUFHLEVBQUU7SUFDcEUsTUFBTSxNQUFNLEdBQXVCLEVBQUUsQ0FBQztJQUN0QyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQWdDLEVBQUUsQ0FBQztRQUN2RixJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxLQUFLLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBUaGUgcGlwZWxpbmUgTUVUQURBVEEgS0VZIGNhdGFsb2cg4oCUIHRoZSBzaW5nbGUgc291cmNlIG9mIHRydXRoIGZvciBib3RoXG4gKiBzaWRlcyBvZiB0aGUgcHJvZHVjdC5cbiAqXG4gKiBLZXkgZm9ybWF0OiBgYXdzOmNkazp7bmFtZXNwYWNlfTp7cHJvcGVydHl9YCAoYWxsIGxvd2VyY2FzZSkuIFRoZXNlIG1hdGNoIHRoZVxuICoga2V5cyBwcm9kdWNlZCBieSBgZ2V0Q3VzdG9tS2V5KG5hbWVzcGFjZSwgcHJvcGVydHkpYCBhbmQgbG9va2VkIHVwIGJ5XG4gKiBgYnVpbGRDb25maWdGcm9tTWV0YWRhdGFgIGluIHBpcGVsaW5lLWNvcmUuXG4gKlxuICogT25lIHRhYmxlIGRyaXZlcyBldmVyeXRoaW5nOiBgTWV0YWRhdGFLZXlzYCAodGhlIHN5bnRoLXRpbWUgY29uc3RhbnRzXG4gKiByZS1leHBvcnRlZCBieSBgQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtY29yZWApIGFuZCBgTUVUQURBVEFfS0VZX0dST1VQU2BcbiAqICh0aGUgZ3JvdXBlZCBwaWNrZXIgdGhlIHBpcGVsaW5lIGZvcm0gYnVpbGRlciByZW5kZXJzKSBhcmUgQk9USCBkZXJpdmVkIGZyb21cbiAqIGBNRVRBREFUQV9LRVlfQ0FUQUxPR2AsIHNvIGEga2V5IGNhbiBuZXZlciBleGlzdCBvbiBvbmUgc2lkZSBvbmx5LlxuICpcbiAqIFRoaXMgbW9kdWxlIGlzIGRlcGVuZGVuY3ktZnJlZSBzbyB0aGUgYnJvd3NlciBjYW4gaW1wb3J0IGl0IHRocm91Z2ggdGhlXG4gKiBgQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUvbWV0YWRhdGEta2V5c2Agc3VicGF0aC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbWV0YWRhdGEgPSB7XG4gKiAgIFtNZXRhZGF0YUtleXMuU0VMRl9NVVRBVElPTl06IHRydWUsXG4gKiAgIFtNZXRhZGF0YUtleXMuUFVCTElTSF9BU1NFVFNfSU5fUEFSQUxMRUxdOiB0cnVlXG4gKiB9O1xuICogYGBgXG4gKi9cblxuLyoqIFRoZSB2YWx1ZSBzaGFwZSBhIG1ldGFkYXRhIGtleSBhY2NlcHRzIGluIHRoZSBmb3JtIGJ1aWxkZXIuICovXG5leHBvcnQgdHlwZSBNZXRhZGF0YUtleVR5cGUgPSAnYm9vbGVhbicgfCAnc3RyaW5nJztcblxuLyoqIE9uZSBjYXRhbG9nIGVudHJ5OiB0aGUgd2lyZSBrZXkgcGx1cyBldmVyeXRoaW5nIHRoZSBwaWNrZXIgbmVlZHMgdG8gcmVuZGVyIGl0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YUtleUVudHJ5IHtcbiAgLyoqIFRoZSBgYXdzOmNkazrigKZgIGtleSB3cml0dGVuIGludG8gYSBwaXBlbGluZSdzIG1ldGFkYXRhLiAqL1xuICByZWFkb25seSBrZXk6IHN0cmluZztcbiAgLyoqIFBpY2tlciBncm91cCBoZWFkaW5nLiAqL1xuICByZWFkb25seSBjYXRlZ29yeTogc3RyaW5nO1xuICAvKiogSHVtYW4gbGFiZWwgc2hvd24gaW4gdGhlIHBpY2tlci4gKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcbiAgLyoqIFZhbHVlIGVkaXRvciB0byByZW5kZXIuICovXG4gIHJlYWRvbmx5IHR5cGU6IE1ldGFkYXRhS2V5VHlwZTtcbn1cblxuLyoqXG4gKiBFdmVyeSBzdXBwb3J0ZWQgbWV0YWRhdGEga2V5LCBrZXllZCBieSBpdHMgYE1ldGFkYXRhS2V5c2AgY29uc3RhbnQgbmFtZSBhbmRcbiAqIGxpc3RlZCBpbiBwaWNrZXIgb3JkZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVRBREFUQV9LRVlfQ0FUQUxPRyA9IHtcbiAgLy8g4pSA4pSAIENvZGVQaXBlbGluZSAobmFtZXNwYWNlOiBwaXBlbGluZXM6Y29kZXBpcGVsaW5lKSDilIDilIBcbiAgU0VMRl9NVVRBVElPTjogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6c2VsZm11dGF0aW9uJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1NlbGYgTXV0YXRpb24nLCB0eXBlOiAnYm9vbGVhbicgfSxcbiAgQ1JPU1NfQUNDT1VOVF9LRVlTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpjcm9zc2FjY291bnRrZXlzJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0Nyb3NzIEFjY291bnQgS2V5cycsIHR5cGU6ICdib29sZWFuJyB9LFxuICBET0NLRVJfRU5BQkxFRF9GT1JfU0VMRl9NVVRBVElPTjogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6ZG9ja2VyZW5hYmxlZGZvcnNlbGZtdXRhdGlvbicsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdEb2NrZXIgRW5hYmxlZCBmb3IgU2VsZiBNdXRhdGlvbicsIHR5cGU6ICdib29sZWFuJyB9LFxuICBET0NLRVJfRU5BQkxFRF9GT1JfU1lOVEg6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOmRvY2tlcmVuYWJsZWRmb3JzeW50aCcsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdEb2NrZXIgRW5hYmxlZCBmb3IgU3ludGgnLCB0eXBlOiAnYm9vbGVhbicgfSxcbiAgRU5BQkxFX0tFWV9ST1RBVElPTjogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6ZW5hYmxla2V5cm90YXRpb24nLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnRW5hYmxlIEtleSBSb3RhdGlvbicsIHR5cGU6ICdib29sZWFuJyB9LFxuICBQVUJMSVNIX0FTU0VUU19JTl9QQVJBTExFTDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6cHVibGlzaGFzc2V0c2lucGFyYWxsZWwnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnUHVibGlzaCBBc3NldHMgaW4gUGFyYWxsZWwnLCB0eXBlOiAnYm9vbGVhbicgfSxcbiAgUkVVU0VfQ1JPU1NfUkVHSU9OX1NVUFBPUlRfU1RBQ0tTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpyZXVzZWNyb3NzcmVnaW9uc3VwcG9ydHN0YWNrcycsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdSZXVzZSBDcm9zcyBSZWdpb24gU3VwcG9ydCBTdGFja3MnLCB0eXBlOiAnYm9vbGVhbicgfSxcbiAgVVNFX0NIQU5HRV9TRVRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTp1c2VjaGFuZ2VzZXRzJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1VzZSBDaGFuZ2UgU2V0cycsIHR5cGU6ICdib29sZWFuJyB9LFxuICBVU0VfUElQRUxJTkVfUk9MRV9GT1JfQUNUSU9OUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6dXNlcGlwZWxpbmVyb2xlZm9yYWN0aW9ucycsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdVc2UgUGlwZWxpbmUgUm9sZSBmb3IgQWN0aW9ucycsIHR5cGU6ICdib29sZWFuJyB9LFxuICBBUlRJRkFDVF9CVUNLRVQ6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOmFydGlmYWN0YnVja2V0JywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0FydGlmYWN0IEJ1Y2tldCcsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIEFTU0VUX1BVQkxJU0hJTkdfQ09ERV9CVUlMRF9ERUZBVUxUUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6YXNzZXRwdWJsaXNoaW5nY29kZWJ1aWxkZGVmYXVsdHMnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnQXNzZXQgUHVibGlzaGluZyBDb2RlQnVpbGQgRGVmYXVsdHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBDREtfQVNTRVRTX0NMSV9WRVJTSU9OOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpjZGthc3NldHNjbGl2ZXJzaW9uJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0NESyBBc3NldHMgQ0xJIFZlcnNpb24nLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBDTElfVkVSU0lPTjogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6Y2xpdmVyc2lvbicsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdDTEkgVmVyc2lvbicsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIENPREVfQlVJTERfREVGQVVMVFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOmNvZGVidWlsZGRlZmF1bHRzJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0NvZGVCdWlsZCBEZWZhdWx0cycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIENPREVfUElQRUxJTkU6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOmNvZGVwaXBlbGluZScsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdDb2RlUGlwZWxpbmUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBDUk9TU19SRUdJT05fUkVQTElDQVRJT05fQlVDS0VUUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6Y3Jvc3NyZWdpb25yZXBsaWNhdGlvbmJ1Y2tldHMnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnQ3Jvc3MgUmVnaW9uIFJlcGxpY2F0aW9uIEJ1Y2tldHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBET0NLRVJfQ1JFREVOVElBTFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOmRvY2tlcmNyZWRlbnRpYWxzJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0RvY2tlciBDcmVkZW50aWFscycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFBJUEVMSU5FX05BTUU6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOnBpcGVsaW5lbmFtZScsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdQaXBlbGluZSBOYW1lJywgdHlwZTogJ3N0cmluZycgfSxcbiAgUElQRUxJTkVfVFlQRTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6cGlwZWxpbmV0eXBlJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1BpcGVsaW5lIFR5cGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBQSVBFTElORV9ST0xFOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpyb2xlJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1BpcGVsaW5lIFJvbGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTRUxGX01VVEFUSU9OX0NPREVfQlVJTERfREVGQVVMVFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOnNlbGZtdXRhdGlvbmNvZGVidWlsZGRlZmF1bHRzJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1NlbGYgTXV0YXRpb24gQ29kZUJ1aWxkIERlZmF1bHRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU1lOVEg6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOnN5bnRoJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1N5bnRoJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU1lOVEhfQ09ERV9CVUlMRF9ERUZBVUxUUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6c3ludGhjb2RlYnVpbGRkZWZhdWx0cycsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdTeW50aCBDb2RlQnVpbGQgRGVmYXVsdHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuXG4gIC8vIOKUgOKUgCBDb2RlQnVpbGRTdGVwIChuYW1lc3BhY2U6IHBpcGVsaW5lczpjb2RlYnVpbGRzdGVwKSDilIDilIBcbiAgQUNUSU9OX1JPTEU6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDphY3Rpb25yb2xlJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdBY3Rpb24gUm9sZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIEFERElUSU9OQUxfSU5QVVRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6YWRkaXRpb25hbGlucHV0cycsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnQWRkaXRpb25hbCBJbnB1dHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBCVUlMRF9FTlZJUk9OTUVOVDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOmJ1aWxkZW52aXJvbm1lbnQnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ0J1aWxkIEVudmlyb25tZW50JywgdHlwZTogJ3N0cmluZycgfSxcbiAgQ0FDSEU6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDpjYWNoZScsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnQ2FjaGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBDT01NQU5EUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOmNvbW1hbmRzJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdDb21tYW5kcycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIENPREVfQlVJTERfRU5WOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6ZW52JywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdFbnZpcm9ubWVudCcsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIEVOVl9GUk9NX0NGTl9PVVRQVVRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6ZW52ZnJvbWNmbm91dHB1dHMnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ0VudiBmcm9tIENGTiBPdXRwdXRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgRklMRV9TWVNURU1fTE9DQVRJT05TOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6ZmlsZXN5c3RlbWxvY2F0aW9ucycsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnRmlsZSBTeXN0ZW0gTG9jYXRpb25zJywgdHlwZTogJ3N0cmluZycgfSxcbiAgSU5QVVQ6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDppbnB1dCcsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnSW5wdXQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBJTlNUQUxMX0NPTU1BTkRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6aW5zdGFsbGNvbW1hbmRzJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdJbnN0YWxsIENvbW1hbmRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTE9HR0lORzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOmxvZ2dpbmcnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ0xvZ2dpbmcnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBQQVJUSUFMX0JVSUxEX1NQRUM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDpwYXJ0aWFsYnVpbGRzcGVjJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdQYXJ0aWFsIEJ1aWxkIFNwZWMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBQUklNQVJZX09VVFBVVF9ESVJFQ1RPUlk6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDpwcmltYXJ5b3V0cHV0ZGlyZWN0b3J5JywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdQcmltYXJ5IE91dHB1dCBEaXJlY3RvcnknLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBQUk9KRUNUX05BTUU6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDpwcm9qZWN0bmFtZScsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnUHJvamVjdCBOYW1lJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU1RFUF9ST0xFOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6cm9sZScsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnU3RlcCBSb2xlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgUk9MRV9QT0xJQ1lfU1RBVEVNRU5UUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOnJvbGVwb2xpY3lzdGF0ZW1lbnRzJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdSb2xlIFBvbGljeSBTdGF0ZW1lbnRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgVElNRU9VVDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOnRpbWVvdXQnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ1RpbWVvdXQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuXG4gIC8vIOKUgOKUgCBTaGVsbFN0ZXAgKG5hbWVzcGFjZTogcGlwZWxpbmVzOnNoZWxsc3RlcCkg4pSA4pSAXG4gIFNIRUxMX0FERElUSU9OQUxfSU5QVVRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOnNoZWxsc3RlcDphZGRpdGlvbmFsaW5wdXRzJywgY2F0ZWdvcnk6ICdTaGVsbFN0ZXAnLCBsYWJlbDogJ0FkZGl0aW9uYWwgSW5wdXRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU0hFTExfQ09NTUFORFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6c2hlbGxzdGVwOmNvbW1hbmRzJywgY2F0ZWdvcnk6ICdTaGVsbFN0ZXAnLCBsYWJlbDogJ0NvbW1hbmRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU0hFTExfRU5WOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOnNoZWxsc3RlcDplbnYnLCBjYXRlZ29yeTogJ1NoZWxsU3RlcCcsIGxhYmVsOiAnRW52aXJvbm1lbnQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTSEVMTF9FTlZfRlJPTV9DRk5fT1VUUFVUUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpzaGVsbHN0ZXA6ZW52ZnJvbWNmbm91dHB1dHMnLCBjYXRlZ29yeTogJ1NoZWxsU3RlcCcsIGxhYmVsOiAnRW52IGZyb20gQ0ZOIE91dHB1dHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTSEVMTF9JTlBVVDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpzaGVsbHN0ZXA6aW5wdXQnLCBjYXRlZ29yeTogJ1NoZWxsU3RlcCcsIGxhYmVsOiAnSW5wdXQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTSEVMTF9JTlNUQUxMX0NPTU1BTkRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOnNoZWxsc3RlcDppbnN0YWxsY29tbWFuZHMnLCBjYXRlZ29yeTogJ1NoZWxsU3RlcCcsIGxhYmVsOiAnSW5zdGFsbCBDb21tYW5kcycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFNIRUxMX1BSSU1BUllfT1VUUFVUX0RJUkVDVE9SWTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpzaGVsbHN0ZXA6cHJpbWFyeW91dHB1dGRpcmVjdG9yeScsIGNhdGVnb3J5OiAnU2hlbGxTdGVwJywgbGFiZWw6ICdQcmltYXJ5IE91dHB1dCBEaXJlY3RvcnknLCB0eXBlOiAnc3RyaW5nJyB9LFxuXG4gIC8vIOKUgOKUgCBCdWlsZEVudmlyb25tZW50IChuYW1lc3BhY2U6IGNvZGVidWlsZDpidWlsZGVudmlyb25tZW50KSDilIDilIBcbiAgUFJJVklMRUdFRDogeyBrZXk6ICdhd3M6Y2RrOmNvZGVidWlsZDpidWlsZGVudmlyb25tZW50OnByaXZpbGVnZWQnLCBjYXRlZ29yeTogJ0J1aWxkIEVudmlyb25tZW50JywgbGFiZWw6ICdQcml2aWxlZ2VkJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIEJVSUxEX0lNQUdFOiB7IGtleTogJ2F3czpjZGs6Y29kZWJ1aWxkOmJ1aWxkZW52aXJvbm1lbnQ6YnVpbGRpbWFnZScsIGNhdGVnb3J5OiAnQnVpbGQgRW52aXJvbm1lbnQnLCBsYWJlbDogJ0J1aWxkIEltYWdlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgQ0VSVElGSUNBVEU6IHsga2V5OiAnYXdzOmNkazpjb2RlYnVpbGQ6YnVpbGRlbnZpcm9ubWVudDpjZXJ0aWZpY2F0ZScsIGNhdGVnb3J5OiAnQnVpbGQgRW52aXJvbm1lbnQnLCBsYWJlbDogJ0NlcnRpZmljYXRlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgQ09NUFVURV9UWVBFOiB7IGtleTogJ2F3czpjZGs6Y29kZWJ1aWxkOmJ1aWxkZW52aXJvbm1lbnQ6Y29tcHV0ZXR5cGUnLCBjYXRlZ29yeTogJ0J1aWxkIEVudmlyb25tZW50JywgbGFiZWw6ICdDb21wdXRlIFR5cGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBET0NLRVJfU0VSVkVSOiB7IGtleTogJ2F3czpjZGs6Y29kZWJ1aWxkOmJ1aWxkZW52aXJvbm1lbnQ6ZG9ja2Vyc2VydmVyJywgY2F0ZWdvcnk6ICdCdWlsZCBFbnZpcm9ubWVudCcsIGxhYmVsOiAnRG9ja2VyIFNlcnZlcicsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIEVOVklST05NRU5UX1ZBUklBQkxFUzogeyBrZXk6ICdhd3M6Y2RrOmNvZGVidWlsZDpidWlsZGVudmlyb25tZW50OmVudmlyb25tZW50dmFyaWFibGVzJywgY2F0ZWdvcnk6ICdCdWlsZCBFbnZpcm9ubWVudCcsIGxhYmVsOiAnRW52aXJvbm1lbnQgVmFyaWFibGVzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgRkxFRVQ6IHsga2V5OiAnYXdzOmNkazpjb2RlYnVpbGQ6YnVpbGRlbnZpcm9ubWVudDpmbGVldCcsIGNhdGVnb3J5OiAnQnVpbGQgRW52aXJvbm1lbnQnLCBsYWJlbDogJ0ZsZWV0JywgdHlwZTogJ3N0cmluZycgfSxcblxuICAvLyDilIDilIAgTmV0d29yayBjb25maWd1cmF0aW9uIChuYW1lc3BhY2U6IGVjMjpuZXR3b3JrKSDilIDilIBcbiAgTkVUV09SS19UWVBFOiB7IGtleTogJ2F3czpjZGs6ZWMyOm5ldHdvcms6dHlwZScsIGNhdGVnb3J5OiAnTmV0d29yaycsIGxhYmVsOiAnTmV0d29yayBUeXBlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19WUENfSUQ6IHsga2V5OiAnYXdzOmNkazplYzI6bmV0d29yazp2cGNpZCcsIGNhdGVnb3J5OiAnTmV0d29yaycsIGxhYmVsOiAnVlBDIElEJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19TVUJORVRfSURTOiB7IGtleTogJ2F3czpjZGs6ZWMyOm5ldHdvcms6c3VibmV0aWRzJywgY2F0ZWdvcnk6ICdOZXR3b3JrJywgbGFiZWw6ICdTdWJuZXQgSURzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19TVUJORVRfVFlQRTogeyBrZXk6ICdhd3M6Y2RrOmVjMjpuZXR3b3JrOnN1Ym5ldHR5cGUnLCBjYXRlZ29yeTogJ05ldHdvcmsnLCBsYWJlbDogJ1N1Ym5ldCBUeXBlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19BVkFJTEFCSUxJVFlfWk9ORVM6IHsga2V5OiAnYXdzOmNkazplYzI6bmV0d29yazphdmFpbGFiaWxpdHl6b25lcycsIGNhdGVnb3J5OiAnTmV0d29yaycsIGxhYmVsOiAnQXZhaWxhYmlsaXR5IFpvbmVzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19TVUJORVRfR1JPVVBfTkFNRTogeyBrZXk6ICdhd3M6Y2RrOmVjMjpuZXR3b3JrOnN1Ym5ldGdyb3VwbmFtZScsIGNhdGVnb3J5OiAnTmV0d29yaycsIGxhYmVsOiAnU3VibmV0IEdyb3VwIE5hbWUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBORVRXT1JLX1NFQ1VSSVRZX0dST1VQX0lEUzogeyBrZXk6ICdhd3M6Y2RrOmVjMjpuZXR3b3JrOnNlY3VyaXR5Z3JvdXBpZHMnLCBjYXRlZ29yeTogJ05ldHdvcmsnLCBsYWJlbDogJ1NlY3VyaXR5IEdyb3VwIElEcycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIE5FVFdPUktfVEFHUzogeyBrZXk6ICdhd3M6Y2RrOmVjMjpuZXR3b3JrOnRhZ3MnLCBjYXRlZ29yeTogJ05ldHdvcmsnLCBsYWJlbDogJ1ZQQyBMb29rdXAgVGFncycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIE5FVFdPUktfVlBDX05BTUU6IHsga2V5OiAnYXdzOmNkazplYzI6bmV0d29yazp2cGNuYW1lJywgY2F0ZWdvcnk6ICdOZXR3b3JrJywgbGFiZWw6ICdWUEMgTmFtZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIE5FVFdPUktfUkVHSU9OOiB7IGtleTogJ2F3czpjZGs6ZWMyOm5ldHdvcms6cmVnaW9uJywgY2F0ZWdvcnk6ICdOZXR3b3JrJywgbGFiZWw6ICdSZWdpb24nLCB0eXBlOiAnc3RyaW5nJyB9LFxuXG4gIC8vIOKUgOKUgCBJQU0gcm9sZSBjb25maWd1cmF0aW9uIChuYW1lc3BhY2U6IGlhbTpyb2xlKSDilIDilIBcbiAgUk9MRV9UWVBFOiB7IGtleTogJ2F3czpjZGs6aWFtOnJvbGU6dHlwZScsIGNhdGVnb3J5OiAnSUFNIFJvbGUnLCBsYWJlbDogJ1JvbGUgVHlwZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFJPTEVfQVJOOiB7IGtleTogJ2F3czpjZGs6aWFtOnJvbGU6cm9sZWFybicsIGNhdGVnb3J5OiAnSUFNIFJvbGUnLCBsYWJlbDogJ1JvbGUgQVJOJywgdHlwZTogJ3N0cmluZycgfSxcbiAgUk9MRV9OQU1FOiB7IGtleTogJ2F3czpjZGs6aWFtOnJvbGU6cm9sZW5hbWUnLCBjYXRlZ29yeTogJ0lBTSBSb2xlJywgbGFiZWw6ICdSb2xlIE5hbWUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBST0xFX01VVEFCTEU6IHsga2V5OiAnYXdzOmNkazppYW06cm9sZTptdXRhYmxlJywgY2F0ZWdvcnk6ICdJQU0gUm9sZScsIGxhYmVsOiAnTXV0YWJsZScsIHR5cGU6ICdib29sZWFuJyB9LFxuXG4gIC8vIOKUgOKUgCBTZWN1cml0eSBncm91cCBjb25maWd1cmF0aW9uIChuYW1lc3BhY2U6IGVjMjpzZWN1cml0eWdyb3VwKSDilIDilIBcbiAgU0VDVVJJVFlfR1JPVVBfVFlQRTogeyBrZXk6ICdhd3M6Y2RrOmVjMjpzZWN1cml0eWdyb3VwOnR5cGUnLCBjYXRlZ29yeTogJ1NlY3VyaXR5IEdyb3VwJywgbGFiZWw6ICdTZWN1cml0eSBHcm91cCBUeXBlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU0VDVVJJVFlfR1JPVVBfSURTOiB7IGtleTogJ2F3czpjZGs6ZWMyOnNlY3VyaXR5Z3JvdXA6c2VjdXJpdHlncm91cGlkcycsIGNhdGVnb3J5OiAnU2VjdXJpdHkgR3JvdXAnLCBsYWJlbDogJ1NlY3VyaXR5IEdyb3VwIElEcycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFNFQ1VSSVRZX0dST1VQX01VVEFCTEU6IHsga2V5OiAnYXdzOmNkazplYzI6c2VjdXJpdHlncm91cDptdXRhYmxlJywgY2F0ZWdvcnk6ICdTZWN1cml0eSBHcm91cCcsIGxhYmVsOiAnTXV0YWJsZScsIHR5cGU6ICdib29sZWFuJyB9LFxuICBTRUNVUklUWV9HUk9VUF9OQU1FOiB7IGtleTogJ2F3czpjZGs6ZWMyOnNlY3VyaXR5Z3JvdXA6c2VjdXJpdHlncm91cG5hbWUnLCBjYXRlZ29yeTogJ1NlY3VyaXR5IEdyb3VwJywgbGFiZWw6ICdTZWN1cml0eSBHcm91cCBOYW1lJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU0VDVVJJVFlfR1JPVVBfVlBDX0lEOiB7IGtleTogJ2F3czpjZGs6ZWMyOnNlY3VyaXR5Z3JvdXA6dnBjaWQnLCBjYXRlZ29yeTogJ1NlY3VyaXR5IEdyb3VwJywgbGFiZWw6ICdWUEMgSUQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuXG4gIC8vIOKUgOKUgCBOb3RpZmljYXRpb25zIChuYW1lc3BhY2U6IG5vdGlmaWNhdGlvbnMpIOKUgOKUgFxuICBOT1RJRklDQVRJT05fVE9QSUNfQVJOOiB7IGtleTogJ2F3czpjZGs6bm90aWZpY2F0aW9uczp0b3BpYzphcm4nLCBjYXRlZ29yeTogJ05vdGlmaWNhdGlvbnMnLCBsYWJlbDogJ1NOUyBUb3BpYyBBUk4nLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBOT1RJRklDQVRJT05fRVZFTlRTOiB7IGtleTogJ2F3czpjZGs6bm90aWZpY2F0aW9uczpldmVudHMnLCBjYXRlZ29yeTogJ05vdGlmaWNhdGlvbnMnLCBsYWJlbDogJ05vdGlmaWNhdGlvbiBFdmVudHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuXG4gIC8vIOKUgOKUgCBQaXBlbGluZSBvcGVyYXRpb25zIChuYW1lc3BhY2U6IG9wZXJhdGlvbnMg4oCUIGN1c3RvbSBzeW50aCBpbiBQaXBlbGluZUJ1aWxkZXIpIOKUgOKUgFxuICBFTkFCTEVfRVhFQ1VUSU9OX0VWRU5UUzogeyBrZXk6ICdhd3M6Y2RrOm9wZXJhdGlvbnM6ZXhlY3V0aW9uZXZlbnRzJywgY2F0ZWdvcnk6ICdPcGVyYXRpb25zJywgbGFiZWw6ICdFbmFibGUgZXhlY3V0aW9uIGV2ZW50IHRyYWNraW5nJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIEVOQUJMRV9NRVRSSUNTOiB7IGtleTogJ2F3czpjZGs6b3BlcmF0aW9uczptZXRyaWNzJywgY2F0ZWdvcnk6ICdPcGVyYXRpb25zJywgbGFiZWw6ICdFbmFibGUgQ2xvdWRXYXRjaCBmYWlsdXJlIGFsYXJtcycsIHR5cGU6ICdib29sZWFuJyB9LFxuICBBUlRJRkFDVF9SRVRFTlRJT05fREFZUzogeyBrZXk6ICdhd3M6Y2RrOm9wZXJhdGlvbnM6YXJ0aWZhY3RyZXRlbnRpb25kYXlzJywgY2F0ZWdvcnk6ICdPcGVyYXRpb25zJywgbGFiZWw6ICdBcnRpZmFjdCByZXRlbnRpb24gaW4gZGF5cycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFBJUEVMSU5FX1ZBUklBQkxFUzogeyBrZXk6ICdhd3M6Y2RrOm9wZXJhdGlvbnM6dmFyaWFibGVzJywgY2F0ZWdvcnk6ICdPcGVyYXRpb25zJywgbGFiZWw6ICdQaXBlbGluZSBydW50aW1lIHZhcmlhYmxlcyAoSlNPTiknLCB0eXBlOiAnc3RyaW5nJyB9LFxuICAvLyBBZGRzIGEgcmVwb3J0LW9ubHkgdmVyaWZ5IHN0ZXAgcGVyIHN0YWdlIHRoYXQgZ3JhZGVzIHRoZSBwbHVnaW4gaW1hZ2VzIHRoZVxuICAvLyBwaXBlbGluZSBpcyBhYm91dCB0byBydW4gKFBPU1QgL3BsdWdpbnMvcnVudGltZS1jaGVjaykg4oCUIG5ldmVyIGEgYmxvY2suXG4gIFJVTlRJTUVfVlVMTl9DSEVDSzogeyBrZXk6ICdhd3M6Y2RrOm9wZXJhdGlvbnM6cnVudGltZXZ1bG5jaGVjaycsIGNhdGVnb3J5OiAnT3BlcmF0aW9ucycsIGxhYmVsOiAnR3JhZGUgcGx1Z2luIGltYWdlcyBiZWZvcmUgZWFjaCBzdGFnZSBydW5zIChyZXBvcnQtb25seSknLCB0eXBlOiAnYm9vbGVhbicgfSxcblxuICAvLyDilIDilIAgRW5jcnlwdGlvbiAobmFtZXNwYWNlOiBlbmNyeXB0aW9uIOKAlCBjdXN0b20gc3ludGggaW4gUGlwZWxpbmVCdWlsZGVyKSDilIDilIBcbiAgS01TX0tFWV9BUk46IHsga2V5OiAnYXdzOmNkazplbmNyeXB0aW9uOmttc2tleWFybicsIGNhdGVnb3J5OiAnRW5jcnlwdGlvbicsIGxhYmVsOiAnQ3VzdG9tIEtNUyBrZXkgQVJOIGZvciBhcnRpZmFjdHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgTWV0YWRhdGFLZXlFbnRyeT47XG5cbi8qKiBDb25zdGFudCBuYW1lIOKGkiBgYXdzOmNkazrigKZgIGtleSwgZm9yIHR5cG8tZnJlZSBzeW50aC10aW1lIGF1dGhvcmluZy4gKi9cbmV4cG9ydCBjb25zdCBNZXRhZGF0YUtleXMgPSBPYmplY3QuZnJlZXplKFxuICBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgT2JqZWN0LmVudHJpZXMoTUVUQURBVEFfS0VZX0NBVEFMT0cpLm1hcCgoW25hbWUsIGVudHJ5XSkgPT4gW25hbWUsIGVudHJ5LmtleV0pLFxuICApLFxuKSBhcyB7IHJlYWRvbmx5IFtLIGluIGtleW9mIHR5cGVvZiBNRVRBREFUQV9LRVlfQ0FUQUxPR106ICh0eXBlb2YgTUVUQURBVEFfS0VZX0NBVEFMT0cpW0tdWydrZXknXSB9O1xuXG4vKiogQW55IHN1cHBvcnRlZCBtZXRhZGF0YSBrZXkuICovXG5leHBvcnQgdHlwZSBNZXRhZGF0YUtleSA9ICh0eXBlb2YgTWV0YWRhdGFLZXlzKVtrZXlvZiB0eXBlb2YgTWV0YWRhdGFLZXlzXTtcblxuLyoqIE9uZSBwaWNrZXIgb3B0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YUtleU9wdGlvbiB7XG4gIGtleTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiBNZXRhZGF0YUtleVR5cGU7XG59XG5cbi8qKiBPbmUgcGlja2VyIGdyb3VwLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YUtleUdyb3VwIHtcbiAgY2F0ZWdvcnk6IHN0cmluZztcbiAga2V5czogTWV0YWRhdGFLZXlPcHRpb25bXTtcbn1cblxuLyoqXG4gKiBUaGUgY2F0YWxvZyBncm91cGVkIGJ5IGNhdGVnb3J5LCBpbiBkZWNsYXJhdGlvbiBvcmRlciDigJQgd2hhdCB0aGUgcGlwZWxpbmVcbiAqIGZvcm0gYnVpbGRlcidzIG1ldGFkYXRhIHBpY2tlciByZW5kZXJzLlxuICovXG5leHBvcnQgY29uc3QgTUVUQURBVEFfS0VZX0dST1VQUzogcmVhZG9ubHkgTWV0YWRhdGFLZXlHcm91cFtdID0gKCgpID0+IHtcbiAgY29uc3QgZ3JvdXBzOiBNZXRhZGF0YUtleUdyb3VwW10gPSBbXTtcbiAgZm9yIChjb25zdCBlbnRyeSBvZiBPYmplY3QudmFsdWVzKE1FVEFEQVRBX0tFWV9DQVRBTE9HKSBhcyByZWFkb25seSBNZXRhZGF0YUtleUVudHJ5W10pIHtcbiAgICBsZXQgZ3JvdXAgPSBncm91cHMuZmluZCgoZykgPT4gZy5jYXRlZ29yeSA9PT0gZW50cnkuY2F0ZWdvcnkpO1xuICAgIGlmICghZ3JvdXApIHtcbiAgICAgIGdyb3VwID0geyBjYXRlZ29yeTogZW50cnkuY2F0ZWdvcnksIGtleXM6IFtdIH07XG4gICAgICBncm91cHMucHVzaChncm91cCk7XG4gICAgfVxuICAgIGdyb3VwLmtleXMucHVzaCh7IGtleTogZW50cnkua2V5LCBsYWJlbDogZW50cnkubGFiZWwsIHR5cGU6IGVudHJ5LnR5cGUgfSk7XG4gIH1cbiAgcmV0dXJuIGdyb3Vwcztcbn0pKCk7XG4iXX0=
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEta2V5cy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL21ldGFkYXRhLWtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQTBDdEM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDbEMseURBQXlEO0lBQ3pELGFBQWEsRUFBRSxFQUFFLEdBQUcsRUFBRSw2Q0FBNkMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtJQUN4SSxrQkFBa0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxpREFBaUQsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0lBQ3RKLGdDQUFnQyxFQUFFLEVBQUUsR0FBRyxFQUFFLDZEQUE2RCxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGtDQUFrQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7SUFDOUwsd0JBQXdCLEVBQUUsRUFBRSxHQUFHLEVBQUUsc0RBQXNELEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtJQUN2SyxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxrREFBa0QsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0lBQ3pKLDBCQUEwQixFQUFFLEVBQUUsR0FBRyxFQUFFLHdEQUF3RCxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLDRCQUE0QixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7SUFDN0ssaUNBQWlDLEVBQUUsRUFBRSxHQUFHLEVBQUUsOERBQThELEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFL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LENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQy9FLENBQ2dHLENBQUM7QUFrQnBHOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFnQyxDQUFDLEdBQUcsRUFBRTtJQUNwRSxNQUFNLE1BQU0sR0FBdUIsRUFBRSxDQUFDO0lBQ3RDLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBZ0MsRUFBRSxDQUFDO1FBQ3ZGLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLEtBQUssR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFRoZSBwaXBlbGluZSBNRVRBREFUQSBLRVkgY2F0YWxvZyDigJQgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIGJvdGhcbiAqIHNpZGVzIG9mIHRoZSBwcm9kdWN0LlxuICpcbiAqIEtleSBmb3JtYXQ6IGBhd3M6Y2RrOntuYW1lc3BhY2V9Ontwcm9wZXJ0eX1gIChhbGwgbG93ZXJjYXNlKS4gVGhlc2UgbWF0Y2ggdGhlXG4gKiBrZXlzIHByb2R1Y2VkIGJ5IGBnZXRDdXN0b21LZXkobmFtZXNwYWNlLCBwcm9wZXJ0eSlgIGFuZCBsb29rZWQgdXAgYnlcbiAqIGBidWlsZENvbmZpZ0Zyb21NZXRhZGF0YWAgaW4gcGlwZWxpbmUtY29yZS5cbiAqXG4gKiBPbmUgdGFibGUgZHJpdmVzIGV2ZXJ5dGhpbmc6IGBNZXRhZGF0YUtleXNgICh0aGUgc3ludGgtdGltZSBjb25zdGFudHNcbiAqIHJlLWV4cG9ydGVkIGJ5IGBAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1jb3JlYCkgYW5kIGBNRVRBREFUQV9LRVlfR1JPVVBTYFxuICogKHRoZSBncm91cGVkIHBpY2tlciB0aGUgcGlwZWxpbmUgZm9ybSBidWlsZGVyIHJlbmRlcnMpIGFyZSBCT1RIIGRlcml2ZWQgZnJvbVxuICogYE1FVEFEQVRBX0tFWV9DQVRBTE9HYCwgc28gYSBrZXkgY2FuIG5ldmVyIGV4aXN0IG9uIG9uZSBzaWRlIG9ubHkuXG4gKlxuICogVGhpcyBtb2R1bGUgaXMgZGVwZW5kZW5jeS1mcmVlIHNvIHRoZSBicm93c2VyIGNhbiBpbXBvcnQgaXQgdGhyb3VnaCB0aGVcbiAqIGBAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZS9tZXRhZGF0YS1rZXlzYCBzdWJwYXRoLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBtZXRhZGF0YSA9IHtcbiAqICAgW01ldGFkYXRhS2V5cy5TRUxGX01VVEFUSU9OXTogdHJ1ZSxcbiAqICAgW01ldGFkYXRhS2V5cy5QVUJMSVNIX0FTU0VUU19JTl9QQVJBTExFTF06IHRydWVcbiAqIH07XG4gKiBgYGBcbiAqL1xuXG4vKiogVGhlIHZhbHVlIHNoYXBlIGEgbWV0YWRhdGEga2V5IGFjY2VwdHMgaW4gdGhlIGZvcm0gYnVpbGRlci4gKi9cbmV4cG9ydCB0eXBlIE1ldGFkYXRhS2V5VHlwZSA9ICdib29sZWFuJyB8ICdzdHJpbmcnO1xuXG4vKiogT25lIGNhdGFsb2cgZW50cnk6IHRoZSB3aXJlIGtleSBwbHVzIGV2ZXJ5dGhpbmcgdGhlIHBpY2tlciBuZWVkcyB0byByZW5kZXIgaXQuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhS2V5RW50cnkge1xuICAvKiogVGhlIGBhd3M6Y2RrOuKApmAga2V5IHdyaXR0ZW4gaW50byBhIHBpcGVsaW5lJ3MgbWV0YWRhdGEuICovXG4gIHJlYWRvbmx5IGtleTogc3RyaW5nO1xuICAvKiogUGlja2VyIGdyb3VwIGhlYWRpbmcuICovXG4gIHJlYWRvbmx5IGNhdGVnb3J5OiBzdHJpbmc7XG4gIC8qKiBIdW1hbiBsYWJlbCBzaG93biBpbiB0aGUgcGlja2VyLiAqL1xuICByZWFkb25seSBsYWJlbDogc3RyaW5nO1xuICAvKiogVmFsdWUgZWRpdG9yIHRvIHJlbmRlci4gKi9cbiAgcmVhZG9ubHkgdHlwZTogTWV0YWRhdGFLZXlUeXBlO1xufVxuXG4vKipcbiAqIEV2ZXJ5IHN1cHBvcnRlZCBtZXRhZGF0YSBrZXksIGtleWVkIGJ5IGl0cyBgTWV0YWRhdGFLZXlzYCBjb25zdGFudCBuYW1lIGFuZFxuICogbGlzdGVkIGluIHBpY2tlciBvcmRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FVEFEQVRBX0tFWV9DQVRBTE9HID0ge1xuICAvLyDilIDilIAgQ29kZVBpcGVsaW5lIChuYW1lc3BhY2U6IHBpcGVsaW5lczpjb2RlcGlwZWxpbmUpIOKUgOKUgFxuICBTRUxGX01VVEFUSU9OOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpzZWxmbXV0YXRpb24nLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnU2VsZiBNdXRhdGlvbicsIHR5cGU6ICdib29sZWFuJyB9LFxuICBDUk9TU19BQ0NPVU5UX0tFWVM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOmNyb3NzYWNjb3VudGtleXMnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnQ3Jvc3MgQWNjb3VudCBLZXlzJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIERPQ0tFUl9FTkFCTEVEX0ZPUl9TRUxGX01VVEFUSU9OOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpkb2NrZXJlbmFibGVkZm9yc2VsZm11dGF0aW9uJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0RvY2tlciBFbmFibGVkIGZvciBTZWxmIE11dGF0aW9uJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIERPQ0tFUl9FTkFCTEVEX0ZPUl9TWU5USDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6ZG9ja2VyZW5hYmxlZGZvcnN5bnRoJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0RvY2tlciBFbmFibGVkIGZvciBTeW50aCcsIHR5cGU6ICdib29sZWFuJyB9LFxuICBFTkFCTEVfS0VZX1JPVEFUSU9OOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTplbmFibGVrZXlyb3RhdGlvbicsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdFbmFibGUgS2V5IFJvdGF0aW9uJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIFBVQkxJU0hfQVNTRVRTX0lOX1BBUkFMTEVMOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpwdWJsaXNoYXNzZXRzaW5wYXJhbGxlbCcsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdQdWJsaXNoIEFzc2V0cyBpbiBQYXJhbGxlbCcsIHR5cGU6ICdib29sZWFuJyB9LFxuICBSRVVTRV9DUk9TU19SRUdJT05fU1VQUE9SVF9TVEFDS1M6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOnJldXNlY3Jvc3NyZWdpb25zdXBwb3J0c3RhY2tzJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1JldXNlIENyb3NzIFJlZ2lvbiBTdXBwb3J0IFN0YWNrcycsIHR5cGU6ICdib29sZWFuJyB9LFxuICBVU0VfQ0hBTkdFX1NFVFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOnVzZWNoYW5nZXNldHMnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnVXNlIENoYW5nZSBTZXRzJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIFVTRV9QSVBFTElORV9ST0xFX0ZPUl9BQ1RJT05TOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTp1c2VwaXBlbGluZXJvbGVmb3JhY3Rpb25zJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1VzZSBQaXBlbGluZSBSb2xlIGZvciBBY3Rpb25zJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIEFSVElGQUNUX0JVQ0tFVDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6YXJ0aWZhY3RidWNrZXQnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnQXJ0aWZhY3QgQnVja2V0JywgdHlwZTogJ3N0cmluZycgfSxcbiAgQVNTRVRfUFVCTElTSElOR19DT0RFX0JVSUxEX0RFRkFVTFRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTphc3NldHB1Ymxpc2hpbmdjb2RlYnVpbGRkZWZhdWx0cycsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdBc3NldCBQdWJsaXNoaW5nIENvZGVCdWlsZCBEZWZhdWx0cycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIENES19BU1NFVFNfQ0xJX1ZFUlNJT046IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOmNka2Fzc2V0c2NsaXZlcnNpb24nLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnQ0RLIEFzc2V0cyBDTEkgVmVyc2lvbicsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIENMSV9WRVJTSU9OOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpjbGl2ZXJzaW9uJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0NMSSBWZXJzaW9uJywgdHlwZTogJ3N0cmluZycgfSxcbiAgQ09ERV9CVUlMRF9ERUZBVUxUUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6Y29kZWJ1aWxkZGVmYXVsdHMnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnQ29kZUJ1aWxkIERlZmF1bHRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgQ09ERV9QSVBFTElORTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6Y29kZXBpcGVsaW5lJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0NvZGVQaXBlbGluZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIENST1NTX1JFR0lPTl9SRVBMSUNBVElPTl9CVUNLRVRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpjcm9zc3JlZ2lvbnJlcGxpY2F0aW9uYnVja2V0cycsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdDcm9zcyBSZWdpb24gUmVwbGljYXRpb24gQnVja2V0cycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIERPQ0tFUl9DUkVERU5USUFMUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6ZG9ja2VyY3JlZGVudGlhbHMnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnRG9ja2VyIENyZWRlbnRpYWxzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgUElQRUxJTkVfTkFNRTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6cGlwZWxpbmVuYW1lJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1BpcGVsaW5lIE5hbWUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBQSVBFTElORV9UWVBFOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpwaXBlbGluZXR5cGUnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnUGlwZWxpbmUgVHlwZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFBJUEVMSU5FX1JPTEU6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOnJvbGUnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnUGlwZWxpbmUgUm9sZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFNFTEZfTVVUQVRJT05fQ09ERV9CVUlMRF9ERUZBVUxUUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6c2VsZm11dGF0aW9uY29kZWJ1aWxkZGVmYXVsdHMnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnU2VsZiBNdXRhdGlvbiBDb2RlQnVpbGQgRGVmYXVsdHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTWU5USDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6c3ludGgnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnU3ludGgnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTWU5USF9DT0RFX0JVSUxEX0RFRkFVTFRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpzeW50aGNvZGVidWlsZGRlZmF1bHRzJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1N5bnRoIENvZGVCdWlsZCBEZWZhdWx0cycsIHR5cGU6ICdzdHJpbmcnIH0sXG5cbiAgLy8g4pSA4pSAIENvZGVCdWlsZFN0ZXAgKG5hbWVzcGFjZTogcGlwZWxpbmVzOmNvZGVidWlsZHN0ZXApIOKUgOKUgFxuICBBQ1RJT05fUk9MRTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOmFjdGlvbnJvbGUnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ0FjdGlvbiBSb2xlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgQURESVRJT05BTF9JTlBVVFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDphZGRpdGlvbmFsaW5wdXRzJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdBZGRpdGlvbmFsIElucHV0cycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIEJVSUxEX0VOVklST05NRU5UOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6YnVpbGRlbnZpcm9ubWVudCcsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnQnVpbGQgRW52aXJvbm1lbnQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBDQUNIRTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOmNhY2hlJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdDYWNoZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIENPTU1BTkRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6Y29tbWFuZHMnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ0NvbW1hbmRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgQ09ERV9CVUlMRF9FTlY6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDplbnYnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ0Vudmlyb25tZW50JywgdHlwZTogJ3N0cmluZycgfSxcbiAgRU5WX0ZST01fQ0ZOX09VVFBVVFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDplbnZmcm9tY2Zub3V0cHV0cycsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnRW52IGZyb20gQ0ZOIE91dHB1dHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBGSUxFX1NZU1RFTV9MT0NBVElPTlM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDpmaWxlc3lzdGVtbG9jYXRpb25zJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdGaWxlIFN5c3RlbSBMb2NhdGlvbnMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBJTlBVVDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOmlucHV0JywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdJbnB1dCcsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIElOU1RBTExfQ09NTUFORFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDppbnN0YWxsY29tbWFuZHMnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ0luc3RhbGwgQ29tbWFuZHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBMT0dHSU5HOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6bG9nZ2luZycsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnTG9nZ2luZycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFBBUlRJQUxfQlVJTERfU1BFQzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOnBhcnRpYWxidWlsZHNwZWMnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ1BhcnRpYWwgQnVpbGQgU3BlYycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFBSSU1BUllfT1VUUFVUX0RJUkVDVE9SWTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOnByaW1hcnlvdXRwdXRkaXJlY3RvcnknLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ1ByaW1hcnkgT3V0cHV0IERpcmVjdG9yeScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFBST0pFQ1RfTkFNRTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOnByb2plY3RuYW1lJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdQcm9qZWN0IE5hbWUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTVEVQX1JPTEU6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDpyb2xlJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdTdGVwIFJvbGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBST0xFX1BPTElDWV9TVEFURU1FTlRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6cm9sZXBvbGljeXN0YXRlbWVudHMnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ1JvbGUgUG9saWN5IFN0YXRlbWVudHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBUSU1FT1VUOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6dGltZW91dCcsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnVGltZW91dCcsIHR5cGU6ICdzdHJpbmcnIH0sXG5cbiAgLy8g4pSA4pSAIFNoZWxsU3RlcCAobmFtZXNwYWNlOiBwaXBlbGluZXM6c2hlbGxzdGVwKSDilIDilIBcbiAgU0hFTExfQURESVRJT05BTF9JTlBVVFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6c2hlbGxzdGVwOmFkZGl0aW9uYWxpbnB1dHMnLCBjYXRlZ29yeTogJ1NoZWxsU3RlcCcsIGxhYmVsOiAnQWRkaXRpb25hbCBJbnB1dHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTSEVMTF9DT01NQU5EUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpzaGVsbHN0ZXA6Y29tbWFuZHMnLCBjYXRlZ29yeTogJ1NoZWxsU3RlcCcsIGxhYmVsOiAnQ29tbWFuZHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTSEVMTF9FTlY6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6c2hlbGxzdGVwOmVudicsIGNhdGVnb3J5OiAnU2hlbGxTdGVwJywgbGFiZWw6ICdFbnZpcm9ubWVudCcsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFNIRUxMX0VOVl9GUk9NX0NGTl9PVVRQVVRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOnNoZWxsc3RlcDplbnZmcm9tY2Zub3V0cHV0cycsIGNhdGVnb3J5OiAnU2hlbGxTdGVwJywgbGFiZWw6ICdFbnYgZnJvbSBDRk4gT3V0cHV0cycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFNIRUxMX0lOUFVUOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOnNoZWxsc3RlcDppbnB1dCcsIGNhdGVnb3J5OiAnU2hlbGxTdGVwJywgbGFiZWw6ICdJbnB1dCcsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFNIRUxMX0lOU1RBTExfQ09NTUFORFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6c2hlbGxzdGVwOmluc3RhbGxjb21tYW5kcycsIGNhdGVnb3J5OiAnU2hlbGxTdGVwJywgbGFiZWw6ICdJbnN0YWxsIENvbW1hbmRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU0hFTExfUFJJTUFSWV9PVVRQVVRfRElSRUNUT1JZOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOnNoZWxsc3RlcDpwcmltYXJ5b3V0cHV0ZGlyZWN0b3J5JywgY2F0ZWdvcnk6ICdTaGVsbFN0ZXAnLCBsYWJlbDogJ1ByaW1hcnkgT3V0cHV0IERpcmVjdG9yeScsIHR5cGU6ICdzdHJpbmcnIH0sXG5cbiAgLy8g4pSA4pSAIEJ1aWxkRW52aXJvbm1lbnQgKG5hbWVzcGFjZTogY29kZWJ1aWxkOmJ1aWxkZW52aXJvbm1lbnQpIOKUgOKUgFxuICBQUklWSUxFR0VEOiB7IGtleTogJ2F3czpjZGs6Y29kZWJ1aWxkOmJ1aWxkZW52aXJvbm1lbnQ6cHJpdmlsZWdlZCcsIGNhdGVnb3J5OiAnQnVpbGQgRW52aXJvbm1lbnQnLCBsYWJlbDogJ1ByaXZpbGVnZWQnLCB0eXBlOiAnYm9vbGVhbicgfSxcbiAgQlVJTERfSU1BR0U6IHsga2V5OiAnYXdzOmNkazpjb2RlYnVpbGQ6YnVpbGRlbnZpcm9ubWVudDpidWlsZGltYWdlJywgY2F0ZWdvcnk6ICdCdWlsZCBFbnZpcm9ubWVudCcsIGxhYmVsOiAnQnVpbGQgSW1hZ2UnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBDRVJUSUZJQ0FURTogeyBrZXk6ICdhd3M6Y2RrOmNvZGVidWlsZDpidWlsZGVudmlyb25tZW50OmNlcnRpZmljYXRlJywgY2F0ZWdvcnk6ICdCdWlsZCBFbnZpcm9ubWVudCcsIGxhYmVsOiAnQ2VydGlmaWNhdGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBDT01QVVRFX1RZUEU6IHsga2V5OiAnYXdzOmNkazpjb2RlYnVpbGQ6YnVpbGRlbnZpcm9ubWVudDpjb21wdXRldHlwZScsIGNhdGVnb3J5OiAnQnVpbGQgRW52aXJvbm1lbnQnLCBsYWJlbDogJ0NvbXB1dGUgVHlwZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIERPQ0tFUl9TRVJWRVI6IHsga2V5OiAnYXdzOmNkazpjb2RlYnVpbGQ6YnVpbGRlbnZpcm9ubWVudDpkb2NrZXJzZXJ2ZXInLCBjYXRlZ29yeTogJ0J1aWxkIEVudmlyb25tZW50JywgbGFiZWw6ICdEb2NrZXIgU2VydmVyJywgdHlwZTogJ3N0cmluZycgfSxcbiAgRU5WSVJPTk1FTlRfVkFSSUFCTEVTOiB7IGtleTogJ2F3czpjZGs6Y29kZWJ1aWxkOmJ1aWxkZW52aXJvbm1lbnQ6ZW52aXJvbm1lbnR2YXJpYWJsZXMnLCBjYXRlZ29yeTogJ0J1aWxkIEVudmlyb25tZW50JywgbGFiZWw6ICdFbnZpcm9ubWVudCBWYXJpYWJsZXMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBGTEVFVDogeyBrZXk6ICdhd3M6Y2RrOmNvZGVidWlsZDpidWlsZGVudmlyb25tZW50OmZsZWV0JywgY2F0ZWdvcnk6ICdCdWlsZCBFbnZpcm9ubWVudCcsIGxhYmVsOiAnRmxlZXQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuXG4gIC8vIOKUgOKUgCBOZXR3b3JrIGNvbmZpZ3VyYXRpb24gKG5hbWVzcGFjZTogZWMyOm5ldHdvcmspIOKUgOKUgFxuICBORVRXT1JLX1RZUEU6IHsga2V5OiAnYXdzOmNkazplYzI6bmV0d29yazp0eXBlJywgY2F0ZWdvcnk6ICdOZXR3b3JrJywgbGFiZWw6ICdOZXR3b3JrIFR5cGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBORVRXT1JLX1ZQQ19JRDogeyBrZXk6ICdhd3M6Y2RrOmVjMjpuZXR3b3JrOnZwY2lkJywgY2F0ZWdvcnk6ICdOZXR3b3JrJywgbGFiZWw6ICdWUEMgSUQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBORVRXT1JLX1NVQk5FVF9JRFM6IHsga2V5OiAnYXdzOmNkazplYzI6bmV0d29yazpzdWJuZXRpZHMnLCBjYXRlZ29yeTogJ05ldHdvcmsnLCBsYWJlbDogJ1N1Ym5ldCBJRHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBORVRXT1JLX1NVQk5FVF9UWVBFOiB7IGtleTogJ2F3czpjZGs6ZWMyOm5ldHdvcms6c3VibmV0dHlwZScsIGNhdGVnb3J5OiAnTmV0d29yaycsIGxhYmVsOiAnU3VibmV0IFR5cGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBORVRXT1JLX0FWQUlMQUJJTElUWV9aT05FUzogeyBrZXk6ICdhd3M6Y2RrOmVjMjpuZXR3b3JrOmF2YWlsYWJpbGl0eXpvbmVzJywgY2F0ZWdvcnk6ICdOZXR3b3JrJywgbGFiZWw6ICdBdmFpbGFiaWxpdHkgWm9uZXMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBORVRXT1JLX1NVQk5FVF9HUk9VUF9OQU1FOiB7IGtleTogJ2F3czpjZGs6ZWMyOm5ldHdvcms6c3VibmV0Z3JvdXBuYW1lJywgY2F0ZWdvcnk6ICdOZXR3b3JrJywgbGFiZWw6ICdTdWJuZXQgR3JvdXAgTmFtZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIE5FVFdPUktfU0VDVVJJVFlfR1JPVVBfSURTOiB7IGtleTogJ2F3czpjZGs6ZWMyOm5ldHdvcms6c2VjdXJpdHlncm91cGlkcycsIGNhdGVnb3J5OiAnTmV0d29yaycsIGxhYmVsOiAnU2VjdXJpdHkgR3JvdXAgSURzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19UQUdTOiB7IGtleTogJ2F3czpjZGs6ZWMyOm5ldHdvcms6dGFncycsIGNhdGVnb3J5OiAnTmV0d29yaycsIGxhYmVsOiAnVlBDIExvb2t1cCBUYWdzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19WUENfTkFNRTogeyBrZXk6ICdhd3M6Y2RrOmVjMjpuZXR3b3JrOnZwY25hbWUnLCBjYXRlZ29yeTogJ05ldHdvcmsnLCBsYWJlbDogJ1ZQQyBOYW1lJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19SRUdJT046IHsga2V5OiAnYXdzOmNkazplYzI6bmV0d29yazpyZWdpb24nLCBjYXRlZ29yeTogJ05ldHdvcmsnLCBsYWJlbDogJ1JlZ2lvbicsIHR5cGU6ICdzdHJpbmcnIH0sXG5cbiAgLy8g4pSA4pSAIElBTSByb2xlIGNvbmZpZ3VyYXRpb24gKG5hbWVzcGFjZTogaWFtOnJvbGUpIOKUgOKUgFxuICBST0xFX1RZUEU6IHsga2V5OiAnYXdzOmNkazppYW06cm9sZTp0eXBlJywgY2F0ZWdvcnk6ICdJQU0gUm9sZScsIGxhYmVsOiAnUm9sZSBUeXBlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgUk9MRV9BUk46IHsga2V5OiAnYXdzOmNkazppYW06cm9sZTpyb2xlYXJuJywgY2F0ZWdvcnk6ICdJQU0gUm9sZScsIGxhYmVsOiAnUm9sZSBBUk4nLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBST0xFX05BTUU6IHsga2V5OiAnYXdzOmNkazppYW06cm9sZTpyb2xlbmFtZScsIGNhdGVnb3J5OiAnSUFNIFJvbGUnLCBsYWJlbDogJ1JvbGUgTmFtZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFJPTEVfTVVUQUJMRTogeyBrZXk6ICdhd3M6Y2RrOmlhbTpyb2xlOm11dGFibGUnLCBjYXRlZ29yeTogJ0lBTSBSb2xlJywgbGFiZWw6ICdNdXRhYmxlJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG5cbiAgLy8g4pSA4pSAIFNlY3VyaXR5IGdyb3VwIGNvbmZpZ3VyYXRpb24gKG5hbWVzcGFjZTogZWMyOnNlY3VyaXR5Z3JvdXApIOKUgOKUgFxuICBTRUNVUklUWV9HUk9VUF9UWVBFOiB7IGtleTogJ2F3czpjZGs6ZWMyOnNlY3VyaXR5Z3JvdXA6dHlwZScsIGNhdGVnb3J5OiAnU2VjdXJpdHkgR3JvdXAnLCBsYWJlbDogJ1NlY3VyaXR5IEdyb3VwIFR5cGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTRUNVUklUWV9HUk9VUF9JRFM6IHsga2V5OiAnYXdzOmNkazplYzI6c2VjdXJpdHlncm91cDpzZWN1cml0eWdyb3VwaWRzJywgY2F0ZWdvcnk6ICdTZWN1cml0eSBHcm91cCcsIGxhYmVsOiAnU2VjdXJpdHkgR3JvdXAgSURzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU0VDVVJJVFlfR1JPVVBfTVVUQUJMRTogeyBrZXk6ICdhd3M6Y2RrOmVjMjpzZWN1cml0eWdyb3VwOm11dGFibGUnLCBjYXRlZ29yeTogJ1NlY3VyaXR5IEdyb3VwJywgbGFiZWw6ICdNdXRhYmxlJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIFNFQ1VSSVRZX0dST1VQX05BTUU6IHsga2V5OiAnYXdzOmNkazplYzI6c2VjdXJpdHlncm91cDpzZWN1cml0eWdyb3VwbmFtZScsIGNhdGVnb3J5OiAnU2VjdXJpdHkgR3JvdXAnLCBsYWJlbDogJ1NlY3VyaXR5IEdyb3VwIE5hbWUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTRUNVUklUWV9HUk9VUF9WUENfSUQ6IHsga2V5OiAnYXdzOmNkazplYzI6c2VjdXJpdHlncm91cDp2cGNpZCcsIGNhdGVnb3J5OiAnU2VjdXJpdHkgR3JvdXAnLCBsYWJlbDogJ1ZQQyBJRCcsIHR5cGU6ICdzdHJpbmcnIH0sXG5cbiAgLy8g4pSA4pSAIE5vdGlmaWNhdGlvbnMgKG5hbWVzcGFjZTogbm90aWZpY2F0aW9ucykg4pSA4pSAXG4gIE5PVElGSUNBVElPTl9UT1BJQ19BUk46IHsga2V5OiAnYXdzOmNkazpub3RpZmljYXRpb25zOnRvcGljOmFybicsIGNhdGVnb3J5OiAnTm90aWZpY2F0aW9ucycsIGxhYmVsOiAnU05TIFRvcGljIEFSTicsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIE5PVElGSUNBVElPTl9FVkVOVFM6IHsga2V5OiAnYXdzOmNkazpub3RpZmljYXRpb25zOmV2ZW50cycsIGNhdGVnb3J5OiAnTm90aWZpY2F0aW9ucycsIGxhYmVsOiAnTm90aWZpY2F0aW9uIEV2ZW50cycsIHR5cGU6ICdzdHJpbmcnIH0sXG5cbiAgLy8g4pSA4pSAIFBpcGVsaW5lIG9wZXJhdGlvbnMgKG5hbWVzcGFjZTogb3BlcmF0aW9ucyDigJQgY3VzdG9tIHN5bnRoIGluIFBpcGVsaW5lQnVpbGRlcikg4pSA4pSAXG4gIEVOQUJMRV9FWEVDVVRJT05fRVZFTlRTOiB7IGtleTogJ2F3czpjZGs6b3BlcmF0aW9uczpleGVjdXRpb25ldmVudHMnLCBjYXRlZ29yeTogJ09wZXJhdGlvbnMnLCBsYWJlbDogJ0VuYWJsZSBleGVjdXRpb24gZXZlbnQgdHJhY2tpbmcnLCB0eXBlOiAnYm9vbGVhbicgfSxcbiAgRU5BQkxFX01FVFJJQ1M6IHsga2V5OiAnYXdzOmNkazpvcGVyYXRpb25zOm1ldHJpY3MnLCBjYXRlZ29yeTogJ09wZXJhdGlvbnMnLCBsYWJlbDogJ0VuYWJsZSBDbG91ZFdhdGNoIGZhaWx1cmUgYWxhcm1zJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIEFSVElGQUNUX1JFVEVOVElPTl9EQVlTOiB7IGtleTogJ2F3czpjZGs6b3BlcmF0aW9uczphcnRpZmFjdHJldGVudGlvbmRheXMnLCBjYXRlZ29yeTogJ09wZXJhdGlvbnMnLCBsYWJlbDogJ0FydGlmYWN0IHJldGVudGlvbiBpbiBkYXlzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgUElQRUxJTkVfVkFSSUFCTEVTOiB7IGtleTogJ2F3czpjZGs6b3BlcmF0aW9uczp2YXJpYWJsZXMnLCBjYXRlZ29yeTogJ09wZXJhdGlvbnMnLCBsYWJlbDogJ1BpcGVsaW5lIHJ1bnRpbWUgdmFyaWFibGVzIChKU09OKScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIC8vIEFkZHMgYSByZXBvcnQtb25seSB2ZXJpZnkgc3RlcCBwZXIgc3RhZ2UgdGhhdCBncmFkZXMgdGhlIHBsdWdpbiBpbWFnZXMgdGhlXG4gIC8vIHBpcGVsaW5lIGlzIGFib3V0IHRvIHJ1biAoUE9TVCAvcGx1Z2lucy9ydW50aW1lLWNoZWNrKSDigJQgbmV2ZXIgYSBibG9jay5cbiAgUlVOVElNRV9WVUxOX0NIRUNLOiB7IGtleTogJ2F3czpjZGs6b3BlcmF0aW9uczpydW50aW1ldnVsbmNoZWNrJywgY2F0ZWdvcnk6ICdPcGVyYXRpb25zJywgbGFiZWw6ICdHcmFkZSBwbHVnaW4gaW1hZ2VzIGJlZm9yZSBlYWNoIHN0YWdlIHJ1bnMgKHJlcG9ydC1vbmx5KScsIHR5cGU6ICdib29sZWFuJyB9LFxuXG4gIC8vIOKUgOKUgCBFbmNyeXB0aW9uIChuYW1lc3BhY2U6IGVuY3J5cHRpb24g4oCUIGN1c3RvbSBzeW50aCBpbiBQaXBlbGluZUJ1aWxkZXIpIOKUgOKUgFxuICBLTVNfS0VZX0FSTjogeyBrZXk6ICdhd3M6Y2RrOmVuY3J5cHRpb246a21za2V5YXJuJywgY2F0ZWdvcnk6ICdFbmNyeXB0aW9uJywgbGFiZWw6ICdDdXN0b20gS01TIGtleSBBUk4gZm9yIGFydGlmYWN0cycsIHR5cGU6ICdzdHJpbmcnIH0sXG59IGFzIGNvbnN0IHNhdGlzZmllcyBSZWNvcmQ8c3RyaW5nLCBNZXRhZGF0YUtleUVudHJ5PjtcblxuLyoqIENvbnN0YW50IG5hbWUg4oaSIGBhd3M6Y2RrOuKApmAga2V5LCBmb3IgdHlwby1mcmVlIHN5bnRoLXRpbWUgYXV0aG9yaW5nLiAqL1xuZXhwb3J0IGNvbnN0IE1ldGFkYXRhS2V5cyA9IE9iamVjdC5mcmVlemUoXG4gIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhNRVRBREFUQV9LRVlfQ0FUQUxPRykubWFwKChbbmFtZSwgZW50cnldKSA9PiBbbmFtZSwgZW50cnkua2V5XSksXG4gICksXG4pIGFzIHsgcmVhZG9ubHkgW0sgaW4ga2V5b2YgdHlwZW9mIE1FVEFEQVRBX0tFWV9DQVRBTE9HXTogKHR5cGVvZiBNRVRBREFUQV9LRVlfQ0FUQUxPRylbS11bJ2tleSddIH07XG5cbi8qKiBBbnkgc3VwcG9ydGVkIG1ldGFkYXRhIGtleS4gKi9cbmV4cG9ydCB0eXBlIE1ldGFkYXRhS2V5ID0gKHR5cGVvZiBNZXRhZGF0YUtleXMpW2tleW9mIHR5cGVvZiBNZXRhZGF0YUtleXNdO1xuXG4vKiogT25lIHBpY2tlciBvcHRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhS2V5T3B0aW9uIHtcbiAga2V5OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHR5cGU6IE1ldGFkYXRhS2V5VHlwZTtcbn1cblxuLyoqIE9uZSBwaWNrZXIgZ3JvdXAuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhS2V5R3JvdXAge1xuICBjYXRlZ29yeTogc3RyaW5nO1xuICBrZXlzOiBNZXRhZGF0YUtleU9wdGlvbltdO1xufVxuXG4vKipcbiAqIFRoZSBjYXRhbG9nIGdyb3VwZWQgYnkgY2F0ZWdvcnksIGluIGRlY2xhcmF0aW9uIG9yZGVyIOKAlCB3aGF0IHRoZSBwaXBlbGluZVxuICogZm9ybSBidWlsZGVyJ3MgbWV0YWRhdGEgcGlja2VyIHJlbmRlcnMuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVRBREFUQV9LRVlfR1JPVVBTOiByZWFkb25seSBNZXRhZGF0YUtleUdyb3VwW10gPSAoKCkgPT4ge1xuICBjb25zdCBncm91cHM6IE1ldGFkYXRhS2V5R3JvdXBbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGVudHJ5IG9mIE9iamVjdC52YWx1ZXMoTUVUQURBVEFfS0VZX0NBVEFMT0cpIGFzIHJlYWRvbmx5IE1ldGFkYXRhS2V5RW50cnlbXSkge1xuICAgIGxldCBncm91cCA9IGdyb3Vwcy5maW5kKChnKSA9PiBnLmNhdGVnb3J5ID09PSBlbnRyeS5jYXRlZ29yeSk7XG4gICAgaWYgKCFncm91cCkge1xuICAgICAgZ3JvdXAgPSB7IGNhdGVnb3J5OiBlbnRyeS5jYXRlZ29yeSwga2V5czogW10gfTtcbiAgICAgIGdyb3Vwcy5wdXNoKGdyb3VwKTtcbiAgICB9XG4gICAgZ3JvdXAua2V5cy5wdXNoKHsga2V5OiBlbnRyeS5rZXksIGxhYmVsOiBlbnRyeS5sYWJlbCwgdHlwZTogZW50cnkudHlwZSB9KTtcbiAgfVxuICByZXR1cm4gZ3JvdXBzO1xufSkoKTtcbiJdfQ==
|
|
@@ -101,19 +101,25 @@ export declare const SUPERADMIN_ONLY_PERMISSIONS: readonly Permission[];
|
|
|
101
101
|
/**
|
|
102
102
|
* Permissions that govern the PLUGIN ECOSYSTEM and may be held only inside the
|
|
103
103
|
* system org (docs/plugin-publishing.md). Like
|
|
104
|
-
* {@link SUPERADMIN_ONLY_PERMISSIONS} they are in no member/admin/owner bundle
|
|
105
|
-
* and
|
|
106
|
-
* `sanitizePermissions`
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
104
|
+
* {@link SUPERADMIN_ONLY_PERMISSIONS} they are in no member/admin/owner bundle,
|
|
105
|
+
* and no Role authored in a TENANT may carry one: platform's
|
|
106
|
+
* `sanitizePermissions` admits them only when the author is a superadmin AND
|
|
107
|
+
* the Role is being written in the system org itself (`mayComposeSystemOrgRole`).
|
|
108
|
+
*
|
|
109
|
+
* So there are three grant paths, not one: a superadmin (implicit-all), one of
|
|
110
|
+
* the seeded system-org Roles, and a CUSTOM system-org Role a superadmin
|
|
111
|
+
* composed. The third is what makes the split between `plugins:moderate` and
|
|
112
|
+
* `publishers:verify` usable without waiting for a new seed bundle — worth
|
|
113
|
+
* knowing before reading either permission as "unreachable except via
|
|
114
|
+
* {@link ECOSYSTEM_MANAGER_PERMISSIONS}".
|
|
115
|
+
*
|
|
116
|
+
* `oncall:manage` is carried by **Platform Operator** and by no other named
|
|
117
|
+
* role. That split is deliberate rather than an oversight: paging is the
|
|
118
|
+
* vendor's own operational concern and has nothing to do with ecosystem
|
|
119
|
+
* moderation, so widening the Ecosystem Manager role to carry it would hand the
|
|
120
|
+
* pager to people hired to review plugins. It is not a placeholder — it gates
|
|
121
|
+
* two live routes (the paging posture read and the test page), unlike
|
|
122
|
+
* `registry:*`.
|
|
117
123
|
*/
|
|
118
124
|
export declare const SYSTEM_ORG_ONLY_PERMISSIONS: readonly Permission[];
|
|
119
125
|
/** Whether `permission` may be held only inside the system org. */
|
|
@@ -347,7 +353,44 @@ export interface RoleTemplate {
|
|
|
347
353
|
permissions: readonly Permission[];
|
|
348
354
|
}
|
|
349
355
|
export declare const ROLE_TEMPLATES: readonly RoleTemplate[];
|
|
356
|
+
/**
|
|
357
|
+
* Seed bundle for the built-in "Ecosystem Manager" Role — the MODERATION job.
|
|
358
|
+
*
|
|
359
|
+
* It carries `plugins:moderate` and NOT `publishers:verify`, because the two are
|
|
360
|
+
* not peers. `plugins:moderate` is the wide surface: yank a version (which
|
|
361
|
+
* breaks pipelines already running it), publish an advisory (which alarms every
|
|
362
|
+
* consumer of a listing), rewrite the auto-approval rules (which decide what
|
|
363
|
+
* publishes with no human review at all), reserve names, moderate reviews,
|
|
364
|
+
* re-sign. `publishers:verify` is three routes — suspend, unsuspend, tier — but
|
|
365
|
+
* one of them GRANTS VERIFIED STATUS, which is the badge consumers read as "this
|
|
366
|
+
* deployment vouches for the publisher".
|
|
367
|
+
*
|
|
368
|
+
* Bundling them, as this Role used to, meant everyone hired to triage the queue
|
|
369
|
+
* could also mint a Verified publisher. Three mechanisms already assume the
|
|
370
|
+
* split can bind — `requiredDecisionPermission` per request kind, the queue's
|
|
371
|
+
* per-row `can(requiredPermission)`, and the approver-shortage counts that
|
|
372
|
+
* `EcosystemEligibility` tracks SEPARATELY for each permission — and with one
|
|
373
|
+
* combined Role none of them could ever discriminate.
|
|
374
|
+
*
|
|
375
|
+
* {@link PUBLISHER_VERIFIER_PERMISSIONS} is the other half.
|
|
376
|
+
*/
|
|
350
377
|
export declare const ECOSYSTEM_MANAGER_PERMISSIONS: readonly Permission[];
|
|
378
|
+
/**
|
|
379
|
+
* Seed bundle for the built-in "Publisher Verifier" Role — the TRUST decision.
|
|
380
|
+
*
|
|
381
|
+
* The other half of the ecosystem split described on
|
|
382
|
+
* {@link ECOSYSTEM_MANAGER_PERMISSIONS}: who may award Verified, suspend a
|
|
383
|
+
* publisher and lift a suspension. Carries `plugins:read` so the holder can see
|
|
384
|
+
* what a publisher ships before vouching for them, and the same two ambient
|
|
385
|
+
* reads as its sibling.
|
|
386
|
+
*
|
|
387
|
+
* STAFF AT LEAST TWO PEOPLE. A Verified application and an unsuspend are both
|
|
388
|
+
* `needsTwoPerson`, and `conflictOfInterest` refuses the same person twice, so a
|
|
389
|
+
* single holder cannot complete either decision alone. The console's approver
|
|
390
|
+
* standing notice is what surfaces that shortage — and splitting this Role out
|
|
391
|
+
* is what finally lets that notice report a figure its sibling's does not.
|
|
392
|
+
*/
|
|
393
|
+
export declare const PUBLISHER_VERIFIER_PERMISSIONS: readonly Permission[];
|
|
351
394
|
/**
|
|
352
395
|
* Seed bundle for the built-in "Team Lead" Role — the person who reports UPWARD.
|
|
353
396
|
*
|
|
@@ -457,6 +500,10 @@ export declare const SEED_BUNDLES: {
|
|
|
457
500
|
readonly name: 'Ecosystem Manager';
|
|
458
501
|
readonly permissions: readonly Permission[];
|
|
459
502
|
};
|
|
503
|
+
readonly publisher_verifier: {
|
|
504
|
+
readonly name: 'Publisher Verifier';
|
|
505
|
+
readonly permissions: readonly Permission[];
|
|
506
|
+
};
|
|
460
507
|
readonly team_lead: {
|
|
461
508
|
readonly name: 'Team Lead';
|
|
462
509
|
readonly permissions: readonly Permission[];
|