@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
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { ErrorCode } from '../types/error-codes.js';
|
|
4
|
+
import { emitCounter } from '../utils/metric-emitter.js';
|
|
5
|
+
import { sendError } from '../utils/response.js';
|
|
6
|
+
import { compareSemver, isSemver } from '../utils/semver.js';
|
|
7
|
+
/** Sent by pipeline-manager on every platform call: its own version. */
|
|
8
|
+
export const CLIENT_VERSION_HEADER = 'X-Pb-Client-Version';
|
|
9
|
+
/** Answered on every response to a versioned client while a minimum is set. */
|
|
10
|
+
export const MIN_CLIENT_VERSION_HEADER = 'X-Pb-Min-Client-Version';
|
|
11
|
+
/** Requests per CLI version — what is still in use before raising the minimum. */
|
|
12
|
+
export const CLIENT_REQUESTS_METRIC = 'pipeline_manager_requests_total';
|
|
13
|
+
/** 426s answered — raising the minimum shows as a visible spike, not silent failures. */
|
|
14
|
+
export const CLIENT_UPGRADE_REQUIRED_METRIC = 'pipeline_manager_upgrade_required_total';
|
|
15
|
+
/**
|
|
16
|
+
* A CodeBuild step (pipeline-manager forwards `X-CodeBuild-Build-Id` there) runs
|
|
17
|
+
* the CLI baked into a plugin image: it can't `--upgrade` itself, so refusing
|
|
18
|
+
* it would break every org's pipelines until their images were rebuilt.
|
|
19
|
+
* Counted (`caller="ci"`), never refused. The header is caller-set, so this is
|
|
20
|
+
* no weaker than the gate already is — a compatibility gate, NOT a security
|
|
21
|
+
* control (a CLI can omit or overstate its version; a vulnerable version is
|
|
22
|
+
* shut out by revoking tokens, never by this).
|
|
23
|
+
*/
|
|
24
|
+
export const CI_CALLER_HEADER = 'X-CodeBuild-Build-Id';
|
|
25
|
+
/** Distinct `version` label values one process will emit before folding the rest into `other`. */
|
|
26
|
+
export const MAX_VERSION_LABELS = 64;
|
|
27
|
+
const seenVersions = new Set();
|
|
28
|
+
/** `x.y.z` of a version (prerelease / build dropped). */
|
|
29
|
+
export function versionLabel(v) {
|
|
30
|
+
return v.replace(/^v/, '').split(/[-+]/, 1)[0];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The `version` label for a request. The gate runs BEFORE auth, so the header
|
|
34
|
+
* is attacker-controlled: past {@link MAX_VERSION_LABELS} distinct values a
|
|
35
|
+
* new one counts as `other`, keeping Prometheus cardinality bounded.
|
|
36
|
+
*/
|
|
37
|
+
function boundedVersionLabel(v) {
|
|
38
|
+
const label = versionLabel(v);
|
|
39
|
+
if (seenVersions.has(label))
|
|
40
|
+
return label;
|
|
41
|
+
if (seenVersions.size >= MAX_VERSION_LABELS)
|
|
42
|
+
return 'other';
|
|
43
|
+
seenVersions.add(label);
|
|
44
|
+
return label;
|
|
45
|
+
}
|
|
46
|
+
/** @internal Test-only: forget the seen version labels. */
|
|
47
|
+
export function _resetVersionLabelsForTests() {
|
|
48
|
+
seenVersions.clear();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* The CLI version a request CLAIMS (`X-Pb-Client-Version`), or undefined when
|
|
52
|
+
* absent / not a semver. Caller-set and unverified: fit for display and
|
|
53
|
+
* compatibility ("which CLI does this key still use"), never for a decision
|
|
54
|
+
* about access.
|
|
55
|
+
*/
|
|
56
|
+
export function clientVersionOf(req) {
|
|
57
|
+
const raw = req.headers?.[CLIENT_VERSION_HEADER.toLowerCase()];
|
|
58
|
+
const v = (Array.isArray(raw) ? raw[0] : raw)?.trim();
|
|
59
|
+
return v && isSemver(v) ? v : undefined;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Refuse a pipeline-manager CLI older than `PIPELINE_MANAGER_MIN_VERSION`
|
|
63
|
+
* with 426 `CLIENT_UPGRADE_REQUIRED`, so an API change surfaces as "run
|
|
64
|
+
* `pipeline-manager --upgrade`" rather than as a confusing 400 or a silently
|
|
65
|
+
* misread response.
|
|
66
|
+
*
|
|
67
|
+
* - Unset / blank minimum: nothing is refused (the default); versions are still counted.
|
|
68
|
+
* - A request WITHOUT the version header passes: browsers, other clients and
|
|
69
|
+
* CLIs released before the header existed are not identified, so they are
|
|
70
|
+
* not gated. Forward-only, by design.
|
|
71
|
+
* - A CI caller (CodeBuild) is counted but never refused — see {@link CI_CALLER_HEADER}.
|
|
72
|
+
* - A malformed header value passes too (nothing to compare), but a malformed
|
|
73
|
+
* MINIMUM throws at startup: a typo must not silently disable the gate.
|
|
74
|
+
*/
|
|
75
|
+
export function clientVersionGate(minVersion = process.env.PIPELINE_MANAGER_MIN_VERSION) {
|
|
76
|
+
const min = minVersion?.trim() || undefined;
|
|
77
|
+
if (min && !isSemver(min))
|
|
78
|
+
throw new Error(`PIPELINE_MANAGER_MIN_VERSION is not a semver version: ${min}`);
|
|
79
|
+
// Counted whether or not a minimum is set: the version mix is what an
|
|
80
|
+
// operator needs BEFORE choosing one.
|
|
81
|
+
return (req, res, next) => {
|
|
82
|
+
const sent = req.get(CLIENT_VERSION_HEADER)?.trim();
|
|
83
|
+
if (!sent || !isSemver(sent))
|
|
84
|
+
return next();
|
|
85
|
+
const version = boundedVersionLabel(sent);
|
|
86
|
+
const caller = req.get(CI_CALLER_HEADER) ? 'ci' : 'interactive';
|
|
87
|
+
emitCounter(CLIENT_REQUESTS_METRIC, { version, caller });
|
|
88
|
+
if (!min)
|
|
89
|
+
return next();
|
|
90
|
+
res.setHeader(MIN_CLIENT_VERSION_HEADER, min);
|
|
91
|
+
if (compareSemver(sent, min) >= 0 || caller === 'ci')
|
|
92
|
+
return next();
|
|
93
|
+
emitCounter(CLIENT_UPGRADE_REQUIRED_METRIC, { version, min: versionLabel(min) });
|
|
94
|
+
sendError(res, 426, `pipeline-manager ${sent} is no longer supported by this platform (minimum ${min}); run: pipeline-manager --upgrade`, ErrorCode.CLIENT_UPGRADE_REQUIRED, { minVersion: min, clientVersion: sent });
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LXZlcnNpb24uanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlL2NsaWVudC12ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFHdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCx3RUFBd0U7QUFDeEUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcscUJBQXFCLENBQUM7QUFDM0QsK0VBQStFO0FBQy9FLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLHlCQUF5QixDQUFDO0FBQ25FLGtGQUFrRjtBQUNsRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxpQ0FBaUMsQ0FBQztBQUN4RSx5RkFBeUY7QUFDekYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcseUNBQXlDLENBQUM7QUFFeEY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQztBQUV2RCxrR0FBa0c7QUFDbEcsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0FBQ3JDLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7QUFFdkMseURBQXlEO0FBQ3pELE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBUztJQUNwQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUM7QUFDbEQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLG1C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SixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB0eXBlIHsgTmV4dEZ1bmN0aW9uLCBSZXF1ZXN0LCBSZXF1ZXN0SGFuZGxlciwgUmVzcG9uc2UgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJy4uL3R5cGVzL2Vycm9yLWNvZGVzLmpzJztcbmltcG9ydCB7IGVtaXRDb3VudGVyIH0gZnJvbSAnLi4vdXRpbHMvbWV0cmljLWVtaXR0ZXIuanMnO1xuaW1wb3J0IHsgc2VuZEVycm9yIH0gZnJvbSAnLi4vdXRpbHMvcmVzcG9uc2UuanMnO1xuaW1wb3J0IHsgY29tcGFyZVNlbXZlciwgaXNTZW12ZXIgfSBmcm9tICcuLi91dGlscy9zZW12ZXIuanMnO1xuXG4vKiogU2VudCBieSBwaXBlbGluZS1tYW5hZ2VyIG9uIGV2ZXJ5IHBsYXRmb3JtIGNhbGw6IGl0cyBvd24gdmVyc2lvbi4gKi9cbmV4cG9ydCBjb25zdCBDTElFTlRfVkVSU0lPTl9IRUFERVIgPSAnWC1QYi1DbGllbnQtVmVyc2lvbic7XG4vKiogQW5zd2VyZWQgb24gZXZlcnkgcmVzcG9uc2UgdG8gYSB2ZXJzaW9uZWQgY2xpZW50IHdoaWxlIGEgbWluaW11bSBpcyBzZXQuICovXG5leHBvcnQgY29uc3QgTUlOX0NMSUVOVF9WRVJTSU9OX0hFQURFUiA9ICdYLVBiLU1pbi1DbGllbnQtVmVyc2lvbic7XG4vKiogUmVxdWVzdHMgcGVyIENMSSB2ZXJzaW9uIOKAlCB3aGF0IGlzIHN0aWxsIGluIHVzZSBiZWZvcmUgcmFpc2luZyB0aGUgbWluaW11bS4gKi9cbmV4cG9ydCBjb25zdCBDTElFTlRfUkVRVUVTVFNfTUVUUklDID0gJ3BpcGVsaW5lX21hbmFnZXJfcmVxdWVzdHNfdG90YWwnO1xuLyoqIDQyNnMgYW5zd2VyZWQg4oCUIHJhaXNpbmcgdGhlIG1pbmltdW0gc2hvd3MgYXMgYSB2aXNpYmxlIHNwaWtlLCBub3Qgc2lsZW50IGZhaWx1cmVzLiAqL1xuZXhwb3J0IGNvbnN0IENMSUVOVF9VUEdSQURFX1JFUVVJUkVEX01FVFJJQyA9ICdwaXBlbGluZV9tYW5hZ2VyX3VwZ3JhZGVfcmVxdWlyZWRfdG90YWwnO1xuXG4vKipcbiAqIEEgQ29kZUJ1aWxkIHN0ZXAgKHBpcGVsaW5lLW1hbmFnZXIgZm9yd2FyZHMgYFgtQ29kZUJ1aWxkLUJ1aWxkLUlkYCB0aGVyZSkgcnVuc1xuICogdGhlIENMSSBiYWtlZCBpbnRvIGEgcGx1Z2luIGltYWdlOiBpdCBjYW4ndCBgLS11cGdyYWRlYCBpdHNlbGYsIHNvIHJlZnVzaW5nXG4gKiBpdCB3b3VsZCBicmVhayBldmVyeSBvcmcncyBwaXBlbGluZXMgdW50aWwgdGhlaXIgaW1hZ2VzIHdlcmUgcmVidWlsdC5cbiAqIENvdW50ZWQgKGBjYWxsZXI9XCJjaVwiYCksIG5ldmVyIHJlZnVzZWQuIFRoZSBoZWFkZXIgaXMgY2FsbGVyLXNldCwgc28gdGhpcyBpc1xuICogbm8gd2Vha2VyIHRoYW4gdGhlIGdhdGUgYWxyZWFkeSBpcyDigJQgYSBjb21wYXRpYmlsaXR5IGdhdGUsIE5PVCBhIHNlY3VyaXR5XG4gKiBjb250cm9sIChhIENMSSBjYW4gb21pdCBvciBvdmVyc3RhdGUgaXRzIHZlcnNpb247IGEgdnVsbmVyYWJsZSB2ZXJzaW9uIGlzXG4gKiBzaHV0IG91dCBieSByZXZva2luZyB0b2tlbnMsIG5ldmVyIGJ5IHRoaXMpLlxuICovXG5leHBvcnQgY29uc3QgQ0lfQ0FMTEVSX0hFQURFUiA9ICdYLUNvZGVCdWlsZC1CdWlsZC1JZCc7XG5cbi8qKiBEaXN0aW5jdCBgdmVyc2lvbmAgbGFiZWwgdmFsdWVzIG9uZSBwcm9jZXNzIHdpbGwgZW1pdCBiZWZvcmUgZm9sZGluZyB0aGUgcmVzdCBpbnRvIGBvdGhlcmAuICovXG5leHBvcnQgY29uc3QgTUFYX1ZFUlNJT05fTEFCRUxTID0gNjQ7XG5jb25zdCBzZWVuVmVyc2lvbnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuLyoqIGB4LnkuemAgb2YgYSB2ZXJzaW9uIChwcmVyZWxlYXNlIC8gYnVpbGQgZHJvcHBlZCkuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyc2lvbkxhYmVsKHY6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2LnJlcGxhY2UoL152LywgJycpLnNwbGl0KC9bLStdLywgMSlbMF0hO1xufVxuXG4vKipcbiAqIFRoZSBgdmVyc2lvbmAgbGFiZWwgZm9yIGEgcmVxdWVzdC4gVGhlIGdhdGUgcnVucyBCRUZPUkUgYXV0aCwgc28gdGhlIGhlYWRlclxuICogaXMgYXR0YWNrZXItY29udHJvbGxlZDogcGFzdCB7QGxpbmsgTUFYX1ZFUlNJT05fTEFCRUxTfSBkaXN0aW5jdCB2YWx1ZXMgYVxuICogbmV3IG9uZSBjb3VudHMgYXMgYG90aGVyYCwga2VlcGluZyBQcm9tZXRoZXVzIGNhcmRpbmFsaXR5IGJvdW5kZWQuXG4gKi9cbmZ1bmN0aW9uIGJvdW5kZWRWZXJzaW9uTGFiZWwodjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbGFiZWwgPSB2ZXJzaW9uTGFiZWwodik7XG4gIGlmIChzZWVuVmVyc2lvbnMuaGFzKGxhYmVsKSkgcmV0dXJuIGxhYmVsO1xuICBpZiAoc2VlblZlcnNpb25zLnNpemUgPj0gTUFYX1ZFUlNJT05fTEFCRUxTKSByZXR1cm4gJ290aGVyJztcbiAgc2VlblZlcnNpb25zLmFkZChsYWJlbCk7XG4gIHJldHVybiBsYWJlbDtcbn1cblxuLyoqIEBpbnRlcm5hbCBUZXN0LW9ubHk6IGZvcmdldCB0aGUgc2VlbiB2ZXJzaW9uIGxhYmVscy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBfcmVzZXRWZXJzaW9uTGFiZWxzRm9yVGVzdHMoKTogdm9pZCB7XG4gIHNlZW5WZXJzaW9ucy5jbGVhcigpO1xufVxuXG4vKipcbiAqIFRoZSBDTEkgdmVyc2lvbiBhIHJlcXVlc3QgQ0xBSU1TIChgWC1QYi1DbGllbnQtVmVyc2lvbmApLCBvciB1bmRlZmluZWQgd2hlblxuICogYWJzZW50IC8gbm90IGEgc2VtdmVyLiBDYWxsZXItc2V0IGFuZCB1bnZlcmlmaWVkOiBmaXQgZm9yIGRpc3BsYXkgYW5kXG4gKiBjb21wYXRpYmlsaXR5IChcIndoaWNoIENMSSBkb2VzIHRoaXMga2V5IHN0aWxsIHVzZVwiKSwgbmV2ZXIgZm9yIGEgZGVjaXNpb25cbiAqIGFib3V0IGFjY2Vzcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsaWVudFZlcnNpb25PZihyZXE6IFBpY2s8UmVxdWVzdCwgJ2hlYWRlcnMnPik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHJhdyA9IHJlcS5oZWFkZXJzPy5bQ0xJRU5UX1ZFUlNJT05fSEVBREVSLnRvTG93ZXJDYXNlKCldO1xuICBjb25zdCB2ID0gKEFycmF5LmlzQXJyYXkocmF3KSA/IHJhd1swXSA6IHJhdyk/LnRyaW0oKTtcbiAgcmV0dXJuIHYgJiYgaXNTZW12ZXIodikgPyB2IDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJlZnVzZSBhIHBpcGVsaW5lLW1hbmFnZXIgQ0xJIG9sZGVyIHRoYW4gYFBJUEVMSU5FX01BTkFHRVJfTUlOX1ZFUlNJT05gXG4gKiB3aXRoIDQyNiBgQ0xJRU5UX1VQR1JBREVfUkVRVUlSRURgLCBzbyBhbiBBUEkgY2hhbmdlIHN1cmZhY2VzIGFzIFwicnVuXG4gKiBgcGlwZWxpbmUtbWFuYWdlciAtLXVwZ3JhZGVgXCIgcmF0aGVyIHRoYW4gYXMgYSBjb25mdXNpbmcgNDAwIG9yIGEgc2lsZW50bHlcbiAqIG1pc3JlYWQgcmVzcG9uc2UuXG4gKlxuICogLSBVbnNldCAvIGJsYW5rIG1pbmltdW06IG5vdGhpbmcgaXMgcmVmdXNlZCAodGhlIGRlZmF1bHQpOyB2ZXJzaW9ucyBhcmUgc3RpbGwgY291bnRlZC5cbiAqIC0gQSByZXF1ZXN0IFdJVEhPVVQgdGhlIHZlcnNpb24gaGVhZGVyIHBhc3NlczogYnJvd3NlcnMsIG90aGVyIGNsaWVudHMgYW5kXG4gKiAgIENMSXMgcmVsZWFzZWQgYmVmb3JlIHRoZSBoZWFkZXIgZXhpc3RlZCBhcmUgbm90IGlkZW50aWZpZWQsIHNvIHRoZXkgYXJlXG4gKiAgIG5vdCBnYXRlZC4gRm9yd2FyZC1vbmx5LCBieSBkZXNpZ24uXG4gKiAtIEEgQ0kgY2FsbGVyIChDb2RlQnVpbGQpIGlzIGNvdW50ZWQgYnV0IG5ldmVyIHJlZnVzZWQg4oCUIHNlZSB7QGxpbmsgQ0lfQ0FMTEVSX0hFQURFUn0uXG4gKiAtIEEgbWFsZm9ybWVkIGhlYWRlciB2YWx1ZSBwYXNzZXMgdG9vIChub3RoaW5nIHRvIGNvbXBhcmUpLCBidXQgYSBtYWxmb3JtZWRcbiAqICAgTUlOSU1VTSB0aHJvd3MgYXQgc3RhcnR1cDogYSB0eXBvIG11c3Qgbm90IHNpbGVudGx5IGRpc2FibGUgdGhlIGdhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGllbnRWZXJzaW9uR2F0ZShtaW5WZXJzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBwcm9jZXNzLmVudi5QSVBFTElORV9NQU5BR0VSX01JTl9WRVJTSU9OKTogUmVxdWVzdEhhbmRsZXIge1xuICBjb25zdCBtaW4gPSBtaW5WZXJzaW9uPy50cmltKCkgfHwgdW5kZWZpbmVkO1xuICBpZiAobWluICYmICFpc1NlbXZlcihtaW4pKSB0aHJvdyBuZXcgRXJyb3IoYFBJUEVMSU5FX01BTkFHRVJfTUlOX1ZFUlNJT04gaXMgbm90IGEgc2VtdmVyIHZlcnNpb246ICR7bWlufWApO1xuXG4gIC8vIENvdW50ZWQgd2hldGhlciBvciBub3QgYSBtaW5pbXVtIGlzIHNldDogdGhlIHZlcnNpb24gbWl4IGlzIHdoYXQgYW5cbiAgLy8gb3BlcmF0b3IgbmVlZHMgQkVGT1JFIGNob29zaW5nIG9uZS5cbiAgcmV0dXJuIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIG5leHQ6IE5leHRGdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IHNlbnQgPSByZXEuZ2V0KENMSUVOVF9WRVJTSU9OX0hFQURFUik/LnRyaW0oKTtcbiAgICBpZiAoIXNlbnQgfHwgIWlzU2VtdmVyKHNlbnQpKSByZXR1cm4gbmV4dCgpO1xuICAgIGNvbnN0IHZlcnNpb24gPSBib3VuZGVkVmVyc2lvbkxhYmVsKHNlbnQpO1xuICAgIGNvbnN0IGNhbGxlciA9IHJlcS5nZXQoQ0lfQ0FMTEVSX0hFQURFUikgPyAnY2knIDogJ2ludGVyYWN0aXZlJztcbiAgICBlbWl0Q291bnRlcihDTElFTlRfUkVRVUVTVFNfTUVUUklDLCB7IHZlcnNpb24sIGNhbGxlciB9KTtcbiAgICBpZiAoIW1pbikgcmV0dXJuIG5leHQoKTtcbiAgICByZXMuc2V0SGVhZGVyKE1JTl9DTElFTlRfVkVSU0lPTl9IRUFERVIsIG1pbik7XG4gICAgaWYgKGNvbXBhcmVTZW12ZXIoc2VudCwgbWluKSA+PSAwIHx8IGNhbGxlciA9PT0gJ2NpJykgcmV0dXJuIG5leHQoKTtcbiAgICBlbWl0Q291bnRlcihDTElFTlRfVVBHUkFERV9SRVFVSVJFRF9NRVRSSUMsIHsgdmVyc2lvbiwgbWluOiB2ZXJzaW9uTGFiZWwobWluKSB9KTtcbiAgICBzZW5kRXJyb3IoXG4gICAgICByZXMsXG4gICAgICA0MjYsXG4gICAgICBgcGlwZWxpbmUtbWFuYWdlciAke3NlbnR9IGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQgYnkgdGhpcyBwbGF0Zm9ybSAobWluaW11bSAke21pbn0pOyBydW46IHBpcGVsaW5lLW1hbmFnZXIgLS11cGdyYWRlYCxcbiAgICAgIEVycm9yQ29kZS5DTElFTlRfVVBHUkFERV9SRVFVSVJFRCxcbiAgICAgIHsgbWluVmVyc2lvbjogbWluLCBjbGllbnRWZXJzaW9uOiBzZW50IH0sXG4gICAgKTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -30,4 +30,4 @@ export function runDeferredQuotaCheck(req, res, next) {
|
|
|
30
30
|
delete res.locals[SLOT];
|
|
31
31
|
void check(req, res, next);
|
|
32
32
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmZXJyZWQtcXVvdGEtY2hlY2suanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlL2RlZmVycmVkLXF1b3RhLWNoZWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFJdEM7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLElBQUksR0FBRyxvQkFBb0IsQ0FBQztBQUVsQywyREFBMkQ7QUFDM0QsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEdBQWEsRUFBRSxLQUFxQjtJQUN4RSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUMzQixDQUFDO0FBRUQsa0ZBQWtGO0FBQ2xGLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxHQUFZLEVBQUUsR0FBYSxFQUFFLElBQWtCO0lBQ25GLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQStCLENBQUM7SUFDL0QsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO0lBQzFCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixLQUFLLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHR5cGUgeyBOZXh0RnVuY3Rpb24sIFJlcXVlc3QsIFJlcXVlc3RIYW5kbGVyLCBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnO1xuXG4vKipcbiAqIEEgcXVvdGEgY2hlY2sgYXJtZWQgYXQgTU9VTlQgdGltZSBhbmQgcnVuIGJ5IGByZXF1aXJlQXV0aGAgb25jZSB0aGUgY2FsbGVyIGlzXG4gKiB2ZXJpZmllZC5cbiAqXG4gKiBXaHkgZGVmZXJyZWQ6IHRoZSBhcGlDYWxscyBtZXRlciArIGNoZWNrIG1vdW50IE9OQ0UgcGVyIHNlcnZpY2UsIGFoZWFkIG9mIGl0c1xuICogd2hvbGUgdXNlciBzdXJmYWNlIChhcGktc2VydmVyIGBhcGlDYWxsc1F1b3RhYCksIGJ1dCBhdXRoZW50aWNhdGlvbiBpcyBwZXJcbiAqIHJvdXRlIOKAlCByb3V0ZXJzIG1peCBwdWJsaWMsIHVzZXIgYW5kIG1hY2hpbmUgcm91dGVzIHVuZGVyIG9uZSBwcmVmaXguIEF0IG1vdW50XG4gKiB0aW1lIHRoZXJlIGlzIG5vIHZlcmlmaWVkIG9yZyB0byBjaGVjayB5ZXQsIGFuZCBjaGVja2luZyBhIGhlYWRlci1kZXJpdmVkIG9yXG4gKiBwZWVrZWQgb25lIHdvdWxkIGhhbmQgYSBmb3JnZWQgdG9rZW4gYSB2aWN0aW0gb3JnJ3MgdXNhZ2UgaW4gdGhlIDQyOSBib2R5LiBTb1xuICogdGhlIG1vdW50IG9ubHkgQVJNUyB0aGUgY2hlY2sgaGVyZSwgYW5kIGByZXF1aXJlQXV0aGAgKGFwaS1jb3JlJ3MsIGFuZFxuICogcGxhdGZvcm0ncyBvd24pIHJ1bnMgaXQgYXQgaXRzIHNpbmdsZSBwb3N0LXZlcmlmaWNhdGlvbiBjaG9rZSBwb2ludCwgYWZ0ZXJcbiAqIHRoZSByZXF1ZXN0IGlkZW50aXR5IGhhcyBiZWVuIHJlLWRlcml2ZWQgZnJvbSB0aGUgSldULiBBIHJvdXRlIHRoYXQgbmV2ZXJcbiAqIGF1dGhlbnRpY2F0ZXMgbmV2ZXIgcnVucyBpdCDigJQgdGhlcmUgaXMgbm8gb3JnIHRvIGJpbGwuXG4gKlxuICogQXQgbW9zdCBvbmNlIHBlciByZXF1ZXN0OiBydW5uaW5nIGl0IGVtcHRpZXMgdGhlIHNsb3QsIHNvIGEgc2Vjb25kXG4gKiBgcmVxdWlyZUF1dGhgIGluIHRoZSBzYW1lIGNoYWluIGlzIGEgcGxhaW4gYG5leHQoKWAuXG4gKi9cbmNvbnN0IFNMT1QgPSAnZGVmZXJyZWRRdW90YUNoZWNrJztcblxuLyoqIEFybSBgY2hlY2tgIHRvIHJ1biBhZnRlciB0aGlzIHJlcXVlc3QgYXV0aGVudGljYXRlcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcm1EZWZlcnJlZFF1b3RhQ2hlY2socmVzOiBSZXNwb25zZSwgY2hlY2s6IFJlcXVlc3RIYW5kbGVyKTogdm9pZCB7XG4gIHJlcy5sb2NhbHNbU0xPVF0gPSBjaGVjaztcbn1cblxuLyoqIGByZXF1aXJlQXV0aGAncyBgbmV4dCgpYDogcnVuIHRoZSBhcm1lZCBxdW90YSBjaGVjaywgaWYgYW55LCB0aGVuIGNvbnRpbnVlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bkRlZmVycmVkUXVvdGFDaGVjayhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIG5leHQ6IE5leHRGdW5jdGlvbik6IHZvaWQge1xuICBjb25zdCBjaGVjayA9IHJlcy5sb2NhbHM/LltTTE9UXSBhcyBSZXF1ZXN0SGFuZGxlciB8IHVuZGVmaW5lZDtcbiAgaWYgKCFjaGVjaykgcmV0dXJuIG5leHQoKTtcbiAgZGVsZXRlIHJlcy5sb2NhbHNbU0xPVF07XG4gIHZvaWQgY2hlY2socmVxLCByZXMsIG5leHQpO1xufVxuIl19
|
|
@@ -57,4 +57,4 @@ export function requireSystemOrgPermission(...permissions) {
|
|
|
57
57
|
requireAssurance({ minAssurance: 2 }),
|
|
58
58
|
];
|
|
59
59
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNvc3lzdGVtLWd1YXJkLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWlkZGxld2FyZS9lY29zeXN0ZW0tZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQXdCdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSx5QkFBeUIsRUFBbUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpEOytFQUMrRTtBQUMvRSxNQUFNLFVBQVUsa0JBQWtCLENBQUMsR0FBWTtJQUM3QyxPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxTQUFTLGdCQUFnQixDQUFDLEdBQVksRUFBRSxHQUFhLEVBQUUsSUFBa0I7SUFDcEgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLE9BQU8sU0FBUyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsWUFBWSxFQUFFLHlCQUF5QixFQUFFLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBQ0QsSUFBSSxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO0lBQzNDLFdBQVcsQ0FBQyxnQ0FBZ0MsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2xHLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNyQyxPQUFPLFNBQVMsQ0FDZCxHQUFHLEVBQUUsVUFBVSxDQUFDLFNBQVMsRUFDekIsbUdBQW1HLEVBQ25HLFNBQVMsQ0FBQyxtQkFBbUIsQ0FDOUIsQ0FBQztBQUNKLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBRTFCOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsR0FBRyxXQUF5QjtJQUNyRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztJQUMxRyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEVBQTBFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pILENBQUM7SUFDRCxPQUFPO1FBQ0wsZ0JBQWdCO1FBQ2hCLGlCQUFpQixDQUFDLEdBQUcsV0FBVyxDQUFDO1FBQ2pDLGdCQUFnQixDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDO0tBQ2xCLENBQUM7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFRoZSBwbHVnaW4tZWNvc3lzdGVtIGdvdmVybmFuY2UgZ2F0ZSAoZG9jcy9ydW5ib29rcy9lY29zeXN0ZW0tbW9kZXJhdGlvbi5tZCkuXG4gKlxuICogT25seSB0aGUgc3lzdGVtIG9yZyBtYW5hZ2VzIG9yIGFwcHJvdmVzIHRoZSBlY29zeXN0ZW0uIEEgcm91dGUgdGhhdCBleGVyY2lzZXNcbiAqIGEgc3lzdGVtLW9yZy1vbmx5IHBlcm1pc3Npb24gKGBwbHVnaW5zOm1vZGVyYXRlYCwgYHB1Ymxpc2hlcnM6dmVyaWZ5YCkgbXVzdFxuICogdGhlcmVmb3JlIGNoZWNrIHRocmVlIHRoaW5ncywgYW5kIHtAbGluayByZXF1aXJlU3lzdGVtT3JnUGVybWlzc2lvbn0gY29tcG9zZXNcbiAqIHRoZW0gc28gbm8gcm91dGUgY2FuIGZvcmdldCBvbmU6XG4gKlxuICogIDEuIHtAbGluayByZXF1aXJlU3lzdGVtT3JnfSDigJQgdGhlIGNhbGxlcidzIEFDVElWRSBvcmcgaXMgdGhlIHN5c3RlbSBvcmcuIEFcbiAqICAgICB0b2tlbiBtaW50ZWQgaW4gYSB0ZW5hbnQgb3JnIGlzIHJlZnVzZWQgZXZlbiBmb3IgdGhlIHNhbWUgcGVyc29uIChhbmQgZXZlblxuICogICAgIGZvciBhIHN1cGVyYWRtaW46IHRoZXkgc3dpdGNoIHRvIHRoZSBzeXN0ZW0gb3JnIHRvIGFjdCBvbiB0aGUgZWNvc3lzdGVtLFxuICogICAgIHNvIGV2ZXJ5IGdvdmVybmFuY2UgZGVjaXNpb24gaXMgcmVjb3JkZWQgd2l0aCB0aGUgc3lzdGVtIG9yZydzIGlkKS5cbiAqICAyLiB0aGUgcGVybWlzc2lvbiBpdHNlbGYgKGByZXF1aXJlUGVybWlzc2lvbmAsIGFueS1vZik7XG4gKiAgMy4gYW4gTUZBLWdyYWRlIHNlc3Npb24gKGByZXF1aXJlQXNzdXJhbmNlKHsgbWluQXNzdXJhbmNlOiAyIH0pYCksIHdoaWNoIGFsc29cbiAqICAgICByZWZ1c2VzIGV2ZXJ5IG1hY2hpbmUgY3JlZGVudGlhbC5cbiAqXG4gKiBUaGUgcm91dGUtY292ZXJhZ2UgZ292ZXJuYW5jZSBjaGVjayAoYGZpbmRTeXN0ZW1PcmdHdWFyZFZpb2xhdGlvbnNgIGluXG4gKiBgdGVzdGluZy9yb3V0ZS1jb3ZlcmFnZS50c2ApIGZhaWxzIGFueSByb3V0ZSB0aGF0IGdhdGVzIG9uIGEgc3lzdGVtLW9yZy1vbmx5XG4gKiBwZXJtaXNzaW9uIHdpdGhvdXQgMSBhbmQgMywgc28gYSBoYW5kLXJvbGxlZCBjaGFpbiBjYW5ub3Qgc2xpcCB0aHJvdWdoLlxuICovXG5cbmltcG9ydCB0eXBlIHsgTmV4dEZ1bmN0aW9uLCBSZXF1ZXN0LCBSZXF1ZXN0SGFuZGxlciwgUmVzcG9uc2UgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB7IHJlcXVpcmVBc3N1cmFuY2UgfSBmcm9tICcuL2Fzc3VyYW5jZS5qcyc7XG5pbXBvcnQgeyByZWNvcmRBdXRoekRlbmlhbCwgcmVxdWlyZVBlcm1pc3Npb24gfSBmcm9tICcuL3Blcm1pc3Npb24tZ2F0ZXMuanMnO1xuaW1wb3J0IHsgdGFnUm91dGVHYXRlIH0gZnJvbSAnLi9yb3V0ZS10YWJsZS5qcyc7XG5pbXBvcnQgeyBpc1N5c3RlbU9yZ0lkIH0gZnJvbSAnLi9zeXN0ZW0tb3JnLmpzJztcbmltcG9ydCB7IEh0dHBTdGF0dXMgfSBmcm9tICcuLi9jb25zdGFudHMvaHR0cC1zdGF0dXMuanMnO1xuaW1wb3J0IHsgRXJyb3JDb2RlIH0gZnJvbSAnLi4vdHlwZXMvZXJyb3ItY29kZXMuanMnO1xuaW1wb3J0IHsgaXNTeXN0ZW1PcmdPbmx5UGVybWlzc2lvbiwgdHlwZSBQZXJtaXNzaW9uIH0gZnJvbSAnLi4vdHlwZXMvcGVybWlzc2lvbnMuanMnO1xuaW1wb3J0IHsgZW1pdENvdW50ZXIgfSBmcm9tICcuLi91dGlscy9tZXRyaWMtZW1pdHRlci5qcyc7XG5pbXBvcnQgeyBzZW5kRXJyb3IgfSBmcm9tICcuLi91dGlscy9yZXNwb25zZS5qcyc7XG5cbi8qKiBXaGV0aGVyIHRoZSByZXF1ZXN0J3MgQUNUSVZFIG9yZyAodGhlIHRva2VuJ3MgYG9yZ2FuaXphdGlvbklkYCkgaXMgdGhlIHN5c3RlbVxuICogIG9yZy4gQ29tcGFyZWQgYnkgaWQgb25seSDigJQgYW4gb3JnIG1lcmVseSBOQU1FRCBcInN5c3RlbVwiIG5ldmVyIHF1YWxpZmllcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1N5c3RlbU9yZ1JlcXVlc3QocmVxOiBSZXF1ZXN0KTogYm9vbGVhbiB7XG4gIHJldHVybiBpc1N5c3RlbU9yZ0lkKHJlcS51c2VyPy5vcmdhbml6YXRpb25JZCk7XG59XG5cbi8qKlxuICogUmVxdWlyZSB0aGF0IHRoZSBjYWxsZXIncyBhY3RpdmUgb3JnIGlzIHRoZSBzeXN0ZW0gb3JnLiBDb21wb3NlIGFmdGVyXG4gKiBgcmVxdWlyZUF1dGhgLiBSZWZ1c2FscyBhcmUgNDAzIGBTWVNURU1fT1JHX1JFUVVJUkVEYCwgY291bnRlZFxuICogKGBzeXN0ZW1fb3JnX2d1YXJkX3JlZnVzZWRfdG90YWxgKSBhbmQgYXVkaXRlZCB0aHJvdWdoIHRoZSBzaGFyZWRcbiAqIGBhdXRoei5kZW5pZWRgIHNpbmsgKGByZXF1aXJlZDogJ3N5c3RlbS1vcmcnYCkuXG4gKi9cbmV4cG9ydCBjb25zdCByZXF1aXJlU3lzdGVtT3JnID0gdGFnUm91dGVHYXRlKGZ1bmN0aW9uIHJlcXVpcmVTeXN0ZW1PcmcocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pOiB2b2lkIHtcbiAgaWYgKCFyZXEudXNlcikge1xuICAgIHJldHVybiBzZW5kRXJyb3IocmVzLCBIdHRwU3RhdHVzLlVOQVVUSE9SSVpFRCwgJ0F1dGhlbnRpY2F0aW9uIHJlcXVpcmVkJywgRXJyb3JDb2RlLlVOQVVUSE9SSVpFRCk7XG4gIH1cbiAgaWYgKGlzU3lzdGVtT3JnUmVxdWVzdChyZXEpKSByZXR1cm4gbmV4dCgpO1xuICBlbWl0Q291bnRlcignc3lzdGVtX29yZ19ndWFyZF9yZWZ1c2VkX3RvdGFsJywgeyBwcmluY2lwYWw6IHJlcS51c2VyLnByaW5jaXBhbFR5cGUgPz8gJ3Vua25vd24nIH0pO1xuICByZWNvcmRBdXRoekRlbmlhbChyZXEsICdzeXN0ZW0tb3JnJyk7XG4gIHJldHVybiBzZW5kRXJyb3IoXG4gICAgcmVzLCBIdHRwU3RhdHVzLkZPUkJJRERFTixcbiAgICAnVGhpcyBhY3Rpb24gaXMgcmVzZXJ2ZWQgZm9yIHRoZSBzeXN0ZW0gb3JnYW5pemF0aW9uIOKAlCBzd2l0Y2ggdG8gaXQgdG8gbWFuYWdlIHRoZSBwbHVnaW4gZWNvc3lzdGVtJyxcbiAgICBFcnJvckNvZGUuU1lTVEVNX09SR19SRVFVSVJFRCxcbiAgKTtcbn0sIHsga2luZDogJ3N5c3RlbU9yZycgfSk7XG5cbi8qKlxuICogVEhFIGdhdGUgZm9yIGFuIGVjb3N5c3RlbS1nb3Zlcm5hbmNlIHJvdXRlOiBzeXN0ZW0gb3JnICsgKGFueSBvZikgdGhlIGdpdmVuXG4gKiBzeXN0ZW0tb3JnLW9ubHkgcGVybWlzc2lvbihzKSArIGFuIE1GQS1ncmFkZSBodW1hbiBzZXNzaW9uLiBSZXR1cm5zIHRoZSBjaGFpblxuICogYXMgYW4gYXJyYXksIHdoaWNoIEV4cHJlc3MgZmxhdHRlbnM6XG4gKlxuICogYGBgdHNcbiAqIHJvdXRlci5wb3N0KCcvcmVxdWVzdHMvOmlkL2FwcHJvdmUnLCByZXF1aXJlQXV0aCwgcmVxdWlyZVN5c3RlbU9yZ1Blcm1pc3Npb24oJ3BsdWdpbnM6bW9kZXJhdGUnKSxcbiAqICAgcmVxdWlyZVN0ZXBVcCwgYXVkaXRlZCgncGx1Z2luLnJlcXVlc3QuYXBwcm92ZScpLCBoYW5kbGVyKTtcbiAqIGBgYFxuICpcbiAqIFRocm93cyBhdCByb3V0ZS1kZWZpbml0aW9uIHRpbWUgd2hlbiBoYW5kZWQgYSBwZXJtaXNzaW9uIHRoYXQgaXMgTk9UXG4gKiBzeXN0ZW0tb3JnLW9ubHkg4oCUIGEgdGVuYW50IHBlcm1pc3Npb24gYmVoaW5kIHRoaXMgZ2F0ZSB3b3VsZCBiZSB1bnJlYWNoYWJsZVxuICogZm9yIGV2ZXJ5IHRlbmFudCwgd2hpY2ggaXMgYWx3YXlzIGEgd2lyaW5nIG1pc3Rha2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXF1aXJlU3lzdGVtT3JnUGVybWlzc2lvbiguLi5wZXJtaXNzaW9uczogUGVybWlzc2lvbltdKTogUmVxdWVzdEhhbmRsZXJbXSB7XG4gIGlmIChwZXJtaXNzaW9ucy5sZW5ndGggPT09IDApIHRocm93IG5ldyBFcnJvcigncmVxdWlyZVN5c3RlbU9yZ1Blcm1pc3Npb24gbmVlZHMgYXQgbGVhc3Qgb25lIHBlcm1pc3Npb24nKTtcbiAgY29uc3QgdGVuYW50ID0gcGVybWlzc2lvbnMuZmlsdGVyKChwKSA9PiAhaXNTeXN0ZW1PcmdPbmx5UGVybWlzc2lvbihwKSk7XG4gIGlmICh0ZW5hbnQubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgcmVxdWlyZVN5c3RlbU9yZ1Blcm1pc3Npb24gb25seSB0YWtlcyBzeXN0ZW0tb3JnLW9ubHkgcGVybWlzc2lvbnM7IGdvdCAke3RlbmFudC5qb2luKCcsICcpfWApO1xuICB9XG4gIHJldHVybiBbXG4gICAgcmVxdWlyZVN5c3RlbU9yZyxcbiAgICByZXF1aXJlUGVybWlzc2lvbiguLi5wZXJtaXNzaW9ucyksXG4gICAgcmVxdWlyZUFzc3VyYW5jZSh7IG1pbkFzc3VyYW5jZTogMiB9KSxcbiAgXSBhcyBSZXF1ZXN0SGFuZGxlcltdO1xufVxuIl19
|
|
@@ -13,3 +13,4 @@ export { tagRouteGate, getRouteGates, audited, dynamicAuthz, buildRouteTable, is
|
|
|
13
13
|
export { armDeferredQuotaCheck, runDeferredQuotaCheck, } from './deferred-quota-check.js';
|
|
14
14
|
export { ON_BEHALF_HEADER, ON_BEHALF_CALLERS, onBehalfHeaders, onBehalfCaller, type OnBehalfSubject, } from './on-behalf.js';
|
|
15
15
|
export { QUOTA_EXEMPT_ROUTES, isQuotaExemptRoute, type QuotaExemptRoute, } from './quota-exempt-routes.js';
|
|
16
|
+
export { clientVersionGate, CLIENT_VERSION_HEADER, MIN_CLIENT_VERSION_HEADER, CI_CALLER_HEADER, clientVersionOf, } from './client-version.js';
|
package/lib/middleware/index.js
CHANGED
|
@@ -15,4 +15,5 @@ export { tagRouteGate, getRouteGates, audited, dynamicAuthz, buildRouteTable, is
|
|
|
15
15
|
export { armDeferredQuotaCheck, runDeferredQuotaCheck, } from './deferred-quota-check.js';
|
|
16
16
|
export { ON_BEHALF_HEADER, ON_BEHALF_CALLERS, onBehalfHeaders, onBehalfCaller, } from './on-behalf.js';
|
|
17
17
|
export { QUOTA_EXEMPT_ROUTES, isQuotaExemptRoute, } from './quota-exempt-routes.js';
|
|
18
|
-
|
|
18
|
+
export { clientVersionGate, CLIENT_VERSION_HEADER, MIN_CLIENT_VERSION_HEADER, CI_CALLER_HEADER, clientVersionOf, } from './client-version.js';
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUNMLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsc0JBQXNCLEdBQ3ZCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLFdBQVcsR0FDWixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLG9CQUFvQixHQUNyQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLDBCQUEwQixFQUMxQix3QkFBd0IsR0FFekIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixhQUFhLEVBQ2IsUUFBUSxFQUNSLGtCQUFrQixFQUNsQixjQUFjLEdBRWYsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsRUFDYixlQUFlLEdBQ2hCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2QixzQkFBc0IsR0FDdkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRixPQUFPLEVBQ0wsYUFBYSxFQUNiLGtCQUFrQixHQUNuQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxVQUFVLEVBQ1YsOEJBQThCLEdBQy9CLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUNMLGFBQWEsRUFFYixzQkFBc0IsR0FDdkIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUNMLFlBQVksRUFDWixhQUFhLEVBQ2IsT0FBTyxFQUNQLFlBQVksRUFDWixlQUFlLEVBQ2YsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixrQkFBa0IsR0FHbkIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHFCQUFxQixHQUN0QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixjQUFjLEdBRWYsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGtCQUFrQixHQUVuQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsZUFBZSxHQUNoQixNQUFNLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmV4cG9ydCB7XG4gIHZlcmlmeVVzZXJKd3QsXG4gIHZlcmlmeUJlYXJlclRva2VuLFxuICBoYXNWYWxpZElkZW50aXR5Q2xhaW1zLFxufSBmcm9tICcuL2p3dC12ZXJpZnkuanMnO1xuZXhwb3J0IHtcbiAgcmVxdWlyZUF1dGgsXG59IGZyb20gJy4vYXV0aC5qcyc7XG5leHBvcnQge1xuICBzZXRUb2tlblJldm9jYXRpb25TdG9yZSxcbiAgaXNBY2Nlc3NUb2tlblJldm9rZWQsXG59IGZyb20gJy4vcmV2b2NhdGlvbi5qcyc7XG5leHBvcnQge1xuICByZXF1aXJlQXNzdXJhbmNlLFxuICByZWZ1c2VXZWFrU2Vzc2lvbixcbiAgcmVmdXNlRm9yT3JnQWRtaW5Bc3N1cmFuY2UsXG4gIHJlcXVpcmVPcmdBZG1pbkFzc3VyYW5jZSxcbiAgdHlwZSBBc3N1cmFuY2VPcHRpb25zLFxufSBmcm9tICcuL2Fzc3VyYW5jZS5qcyc7XG5leHBvcnQge1xuICB1c2VySGFzUGVybWlzc2lvbixcbiAgc2V0QXV0aHpEZW5pYWxBdWRpdG9yLFxuICByZWNvcmRBdXRoekRlbmlhbCxcbiAgcmVxdWlyZVBlcm1pc3Npb24sXG4gIHJlcXVpcmVBbGxQZXJtaXNzaW9ucyxcbiAgcmVxdWlyZVBlcm1pc3Npb25PclNlcnZpY2UsXG4gIHJlcXVpcmVTZXJ2aWNlUHJpbmNpcGFsLFxuICByZXF1aXJlSW50ZXJuYWxTZXJ2aWNlLFxuICBpc1N5c3RlbUFkbWluLFxuICBoYXNTY29wZSxcbiAgcmVxdWlyZVN5c3RlbUFkbWluLFxuICByZXF1aXJlRmVhdHVyZSxcbiAgdHlwZSBBdXRoekRlbmlhbEluZm8sXG59IGZyb20gJy4vcGVybWlzc2lvbi1nYXRlcy5qcyc7XG5leHBvcnQge1xuICBpc1N5c3RlbU9yZ0lkLFxuICBTWVNURU1fT1JHX0lELFxuICBTWVNURU1fT1JHX1NMVUcsXG59IGZyb20gJy4vc3lzdGVtLW9yZy5qcyc7XG5leHBvcnQge1xuICBzZXJ2aWNlTmFtZU9mLFxuICBpc1NlcnZpY2VUb2tlbkRlbmllZCxcbiAgc2lnblNlcnZpY2VUb2tlbixcbiAgZ2V0U2VydmljZUF1dGhIZWFkZXIsXG4gIGlzU2VydmljZVByaW5jaXBhbCxcbiAgaXNTZXJ2aWNlQWNjb3VudFByaW5jaXBhbCxcbiAgaXNTZXJ2aWNlUHJpbmNpcGFsTmFtZWQsXG4gIHZlcmlmeVNlcnZpY2VQcmluY2lwYWwsXG59IGZyb20gJy4vc2VydmljZS10b2tlbnMuanMnO1xuZXhwb3J0IHsgcmVxdWlyZVN5c3RlbU9yZywgcmVxdWlyZVN5c3RlbU9yZ1Blcm1pc3Npb24gfSBmcm9tICcuL2Vjb3N5c3RlbS1ndWFyZC5qcyc7XG5leHBvcnQge1xuICBtb25nb1Nhbml0aXplLFxuICBNQVhfU0FOSVRJWkVfREVQVEgsXG59IGZyb20gJy4vbW9uZ28tc2FuaXRpemUuanMnO1xuZXhwb3J0IHtcbiAgcHJvcG9zYWJsZSxcbiAgQVNLX1BST1ZFTkFOQ0VfUkVGVVNFRF9DT1VOVEVSLFxufSBmcm9tICcuL2Fzay1wcm92ZW5hbmNlLmpzJztcbmV4cG9ydCB7XG4gIHJlcXVpcmVTdGVwVXAsXG4gIHR5cGUgU3RlcFVwTWV0aG9kLFxuICBTVFJPTkdfU1RFUF9VUF9NRVRIT0RTLFxufSBmcm9tICcuL3N0ZXAtdXAuanMnO1xuZXhwb3J0IHtcbiAgdGFnUm91dGVHYXRlLFxuICBnZXRSb3V0ZUdhdGVzLFxuICBhdWRpdGVkLFxuICBkeW5hbWljQXV0aHosXG4gIGJ1aWxkUm91dGVUYWJsZSxcbiAgaXNXcml0ZU1ldGhvZCxcbiAgc3VtbWFyaXplUm91dGVUYWJsZSxcbiAgRFlOQU1JQ19QUklOQ0lQQUxTLFxuICB0eXBlIER5bmFtaWNQcmluY2lwYWwsXG4gIHR5cGUgUm91dGVUYWJsZUVudHJ5LFxufSBmcm9tICcuL3JvdXRlLXRhYmxlLmpzJztcbmV4cG9ydCB7XG4gIGFybURlZmVycmVkUXVvdGFDaGVjayxcbiAgcnVuRGVmZXJyZWRRdW90YUNoZWNrLFxufSBmcm9tICcuL2RlZmVycmVkLXF1b3RhLWNoZWNrLmpzJztcbmV4cG9ydCB7XG4gIE9OX0JFSEFMRl9IRUFERVIsXG4gIE9OX0JFSEFMRl9DQUxMRVJTLFxuICBvbkJlaGFsZkhlYWRlcnMsXG4gIG9uQmVoYWxmQ2FsbGVyLFxuICB0eXBlIE9uQmVoYWxmU3ViamVjdCxcbn0gZnJvbSAnLi9vbi1iZWhhbGYuanMnO1xuZXhwb3J0IHtcbiAgUVVPVEFfRVhFTVBUX1JPVVRFUyxcbiAgaXNRdW90YUV4ZW1wdFJvdXRlLFxuICB0eXBlIFF1b3RhRXhlbXB0Um91dGUsXG59IGZyb20gJy4vcXVvdGEtZXhlbXB0LXJvdXRlcy5qcyc7XG5leHBvcnQge1xuICBjbGllbnRWZXJzaW9uR2F0ZSxcbiAgQ0xJRU5UX1ZFUlNJT05fSEVBREVSLFxuICBNSU5fQ0xJRU5UX1ZFUlNJT05fSEVBREVSLFxuICBDSV9DQUxMRVJfSEVBREVSLFxuICBjbGllbnRWZXJzaW9uT2YsXG59IGZyb20gJy4vY2xpZW50LXZlcnNpb24uanMnO1xuIl19
|
|
@@ -102,4 +102,4 @@ export function hasValidIdentityClaims(decoded) {
|
|
|
102
102
|
&& (decoded.aal === 1 || decoded.aal === 2)
|
|
103
103
|
&& typeof decoded.auth_time === 'number';
|
|
104
104
|
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LXZlcmlmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlL2p3dC12ZXJpZnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7O0dBR0c7QUFFSCxPQUFPLEdBQUcsTUFBTSxjQUFjLENBQUM7QUFDL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBbUIsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELDJGQUEyRjtBQUMzRixNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU87UUFDTCxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUM1RSxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxhQUFhLENBQWlCLEtBQWE7SUFDL0QsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLElBQUksTUFBTSxFQUFFLEdBQUcsS0FBSyxvQkFBb0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN4RCxNQUFNLElBQUksR0FBRyxDQUFDLGlCQUFpQixDQUFDLG1DQUFtQyxvQkFBb0Isa0JBQWtCLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxpQkFBaUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEdBQUcscUJBQXFCLEVBQUUsRUFBRSxDQUFNLENBQUM7QUFDekcsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQUMsS0FBYTtJQUNuRCxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHO1FBQUUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBRTVFLElBQUksTUFBTSxDQUFDLEdBQUcsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDM0MsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQWEsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxxQkFBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRyxJQUFJLE1BQU0sQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkMsV0FBVyxDQUFDLDhDQUE4QyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ2pGLE1BQU0sSUFBSSxHQUFHLENBQUMsaUJBQWlCLENBQUMseURBQXlELENBQUMsQ0FBQztRQUM3RixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLElBQUksTUFBTSxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN2QyxNQUFNLElBQUksR0FBRyxDQUFDLGlCQUFpQixDQUFDLGdFQUFnRSxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsT0FBNEI7SUFDakUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUM3RixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ2hGLElBQUksT0FBTyxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN4QyxPQUFPLE9BQU8sQ0FBQyxTQUFTLEtBQUssUUFBUTtlQUNoQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLEtBQUssUUFBUTtlQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQztlQUM5QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxzQkFBc0IsQ0FBQyxNQUFNLENBQUM7SUFDMUQsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1dBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1dBQ2xELENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7V0FDeEMsT0FBTyxPQUFPLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogQmVhcmVyLXRva2VuIHZlcmlmaWNhdGlvbjogdGhlIHVzZXIgY2hhaW4gKEVTMjU2IGFnYWluc3QgcGxhdGZvcm0ncyBKV0tTKSBhbmRcbiAqIHRoZSBpZGVudGl0eS1jbGFpbSBzaGFwZSBldmVyeSBnYXRlIHJlYXNvbnMgYWJvdXQuXG4gKi9cblxuaW1wb3J0IGp3dCBmcm9tICdqc29ud2VidG9rZW4nO1xuaW1wb3J0IHsgcGxhdGZvcm1Kd2tzQ2FjaGUgfSBmcm9tICcuLi9zZXJ2aWNlcy9qd2tzLWNhY2hlLmpzJztcbmltcG9ydCB7IFNFUlZJQ0VfU1VCSkVDVF9QUkVGSVgsIGlzU2VydmljZUtpZCwgdmVyaWZ5U2VydmljZUp3dCB9IGZyb20gJy4uL3NlcnZpY2VzL3NlcnZpY2Uta2V5cy5qcyc7XG5pbXBvcnQgeyBBVVRIX01FVEhPRFMsIFBSSU5DSVBBTF9UWVBFUywgVE9LRU5fVVNFUywgdHlwZSBKd3RQYXlsb2FkIH0gZnJvbSAnLi4vdHlwZXMvY29tbW9uLmpzJztcbmltcG9ydCB7IFVTRVJfVE9LRU5fQUxHT1JJVEhNLCBkZWNvZGVKd3RIZWFkZXIgfSBmcm9tICcuLi91dGlscy9qd2suanMnO1xuaW1wb3J0IHsgZW1pdENvdW50ZXIgfSBmcm9tICcuLi91dGlscy9tZXRyaWMtZW1pdHRlci5qcyc7XG4vKiogSXNzdWVyL2F1ZGllbmNlIHBpbm5pbmcsIHdoZW4gdGhlIGRlcGxveW1lbnQgY29uZmlndXJlcyB0aGVtLiBTaGFyZWQgYnkgYm90aCBjaGFpbnMuICovXG5leHBvcnQgZnVuY3Rpb24gaXNzdWVyQXVkaWVuY2VPcHRpb25zKCk6IHsgaXNzdWVyPzogc3RyaW5nOyBhdWRpZW5jZT86IHN0cmluZyB9IHtcbiAgcmV0dXJuIHtcbiAgICAuLi4ocHJvY2Vzcy5lbnYuSldUX0lTU1VFUiA/IHsgaXNzdWVyOiBwcm9jZXNzLmVudi5KV1RfSVNTVUVSIH0gOiB7fSksXG4gICAgLi4uKHByb2Nlc3MuZW52LkpXVF9BVURJRU5DRSA/IHsgYXVkaWVuY2U6IHByb2Nlc3MuZW52LkpXVF9BVURJRU5DRSB9IDoge30pLFxuICB9O1xufVxuXG4vKipcbiAqIFZlcmlmeSBhIHRva2VuIHRoYXQgc3BlYWtzIGZvciBhIFBFUlNPTiDigJQgYWNjZXNzLCBzdGVwLXVwLCBhbmQgdGhlIHRva2VuIGFuXG4gKiBvcGFxdWUgYWNjZXNzIGtleSBpcyBleGNoYW5nZWQgZm9yIOKAlCBhZ2FpbnN0IHBsYXRmb3JtJ3MgcHVibGlzaGVkIHNpZ25pbmdcbiAqIGtleXMuXG4gKlxuICogRVMyNTYgYW5kIGEgYGtpZGAgYXJlIGJvdGggbWFuZGF0b3J5OiBubyBga2lkYCBtZWFucyBubyB3YXkgdG8gcGljayB0aGUgcmlnaHRcbiAqIGtleSBhY3Jvc3MgYSByb3RhdGlvbiwgYW5kIGFueSBvdGhlciBhbGdvcml0aG0gaXMgcmVmdXNlZCBvdXRyaWdodCwgd2hpY2ggaXNcbiAqIHdoYXQgbWFrZXMgXCJubyBzZXJ2aWNlIGFjY2VwdHMgYW4gSFMyNTYgdXNlciB0b2tlblwiIGEgcHJvcGVydHkgb2YgdGhlIGNvZGVcbiAqIHJhdGhlciB0aGFuIGEgY29udmVudGlvbi4gS2V5IGxvb2t1cCBnb2VzIHRocm91Z2ggdGhlIHNoYXJlZCBKV0tTIGNhY2hlXG4gKiAoMTAtbWludXRlIHJlZnJlc2gsIG9uZSByZWZldGNoIG9uIGFuIHVua25vd24gYGtpZGAsIGJyaWVmIG5lZ2F0aXZlIGNhY2hlKS5cbiAqXG4gKiBAdGhyb3dzIHtVbmtub3duS2lkRXJyb3J9IHRoZSBrZXkgc2V0IGlzIGN1cnJlbnQgYW5kIGhhcyBubyBzdWNoIGtleSDihpIgNDAxLlxuICogQHRocm93cyB7Sndrc1VuYXZhaWxhYmxlRXJyb3J9IHRoZSBrZXkgc2V0IGNvdWxkIG5vdCBiZSBvYnRhaW5lZCDihpIgNTAzOyBhblxuICogICAgICAgICB1bnZlcmlmaWFibGUgdG9rZW4gaXMgbmV2ZXIgdHJlYXRlZCBhcyB2YWxpZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZlcmlmeVVzZXJKd3Q8VCA9IEp3dFBheWxvYWQ+KHRva2VuOiBzdHJpbmcpOiBQcm9taXNlPFQ+IHtcbiAgY29uc3QgaGVhZGVyID0gZGVjb2RlSnd0SGVhZGVyKHRva2VuKTtcbiAgaWYgKGhlYWRlcj8uYWxnICE9PSBVU0VSX1RPS0VOX0FMR09SSVRITSB8fCAhaGVhZGVyLmtpZCkge1xuICAgIHRocm93IG5ldyBqd3QuSnNvbldlYlRva2VuRXJyb3IoYFVzZXIgdG9rZW5zIG11c3QgYmUgc2lnbmVkIHdpdGggJHtVU0VSX1RPS0VOX0FMR09SSVRITX0gYW5kIGNhcnJ5IGEga2lkYCk7XG4gIH1cbiAgY29uc3Qga2V5ID0gYXdhaXQgcGxhdGZvcm1Kd2tzQ2FjaGUoKS5nZXRLZXkoaGVhZGVyLmtpZCk7XG4gIHJldHVybiBqd3QudmVyaWZ5KHRva2VuLCBrZXksIHsgYWxnb3JpdGhtczogW1VTRVJfVE9LRU5fQUxHT1JJVEhNXSwgLi4uaXNzdWVyQXVkaWVuY2VPcHRpb25zKCkgfSkgYXMgVDtcbn1cblxuLyoqXG4gKiBWZXJpZnkgQU5ZIGJlYXJlciB0b2tlbiBhbmQgcmV0dXJuIGl0cyBjbGFpbXMuXG4gKlxuICogU2luY2UgIzE0IHRoZXJlIGlzIG5vIHNoYXJlZCBzZWNyZXQgbGVmdDogQk9USCBjaGFpbnMgYXJlIEVTMjU2IHdpdGggYSBga2lkYCxcbiAqIHNvIHRoZSBkaXNwYXRjaCBpcyBieSAqKndobyBvd25zIHRoZSBga2lkYCoqIHJhdGhlciB0aGFuIGJ5IGFsZ29yaXRobSDigJQgYW5kXG4gKiBiZWNhdXNlIGEgYGtpZGAgaXMgYW4gUkZDIDc2MzggdGh1bWJwcmludCwgb3duZXJzaGlwIGlzIGEgZmFjdCBhYm91dCB0aGUga2V5LFxuICogbm90IGEgY2xhaW0gdGhlIHRva2VuIG1ha2VzIGFib3V0IGl0c2VsZjpcbiAqXG4gKiAtIGEgYGtpZGAgcHVibGlzaGVkIGluIHRoZSBwZXItc2VydmljZSBrZXkgYnVuZGxlIOKGkiBhbiBJTlRFUk5BTCBTRVJWSUNFIHRva2VuXG4gKiAgICh7QGxpbmsgc2lnblNlcnZpY2VUb2tlbn0pLCB2ZXJpZmllZCB3aXRoIHRoYXQgc2VydmljZSdzIGtleTsgaXRzIGBzdWJgIG11c3RcbiAqICAgbmFtZSB0aGUgc2FtZSBzZXJ2aWNlLCBzbyBvbmUgc2VydmljZSBjYW4gbmV2ZXIgc3BlYWsgZm9yIGFub3RoZXIuXG4gKiAtIGFueXRoaW5nIGVsc2Ug4oaSIGEgcGxhdGZvcm0tc2lnbmVkIFVTRVIgdG9rZW4sIHZlcmlmaWVkIGFnYWluc3QgcGxhdGZvcm0nc1xuICogICBwdWJsaXNoZWQgSldLUy4gQSB0b2tlbiBjbGFpbWluZyBgcHJpbmNpcGFsVHlwZTogJ3NlcnZpY2UnYCBpcyByZWZ1c2VkXG4gKiAgIGhlcmU6IGFuIGludGVybmFsIGlkZW50aXR5IG1heSBub3QgcmlkZSB0aGUgdXNlciBzaWduaW5nIGtleS5cbiAqXG4gKiBBbnl0aGluZyB0aGF0IGlzIG5vdCBFUzI1NiB3aXRoIGEgYGtpZGAgZmFpbHMgaW4gYm90aCBjaGFpbnMsIHdoaWNoIGlzIHdoYXRcbiAqIG1ha2VzIFwibm8gSFMyNTYgdG9rZW4gaXMgYWNjZXB0ZWQgYW55d2hlcmVcIiBhIHByb3BlcnR5IG9mIHRoZSBjb2RlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5QmVhcmVyVG9rZW4odG9rZW46IHN0cmluZyk6IFByb21pc2U8Snd0UGF5bG9hZD4ge1xuICBjb25zdCBoZWFkZXIgPSBkZWNvZGVKd3RIZWFkZXIodG9rZW4pO1xuICBpZiAoIWhlYWRlcj8uYWxnKSB0aHJvdyBuZXcgand0Lkpzb25XZWJUb2tlbkVycm9yKCdNYWxmb3JtZWQgdG9rZW4gaGVhZGVyJyk7XG5cbiAgaWYgKGhlYWRlci5raWQgJiYgaXNTZXJ2aWNlS2lkKGhlYWRlci5raWQpKSB7XG4gICAgY29uc3QgY2xhaW1zID0gdmVyaWZ5U2VydmljZUp3dDxKd3RQYXlsb2FkPih0b2tlbiwgeyBraWQ6IGhlYWRlci5raWQsIC4uLmlzc3VlckF1ZGllbmNlT3B0aW9ucygpIH0pO1xuICAgIGlmIChjbGFpbXMucHJpbmNpcGFsVHlwZSAhPT0gJ3NlcnZpY2UnKSB7XG4gICAgICBlbWl0Q291bnRlcignc2VydmljZV9rZXlfbm9uX3NlcnZpY2VfdG9rZW5fcmVqZWN0ZWRfdG90YWwnLCB7IGFsZzogaGVhZGVyLmFsZyB9KTtcbiAgICAgIHRocm93IG5ldyBqd3QuSnNvbldlYlRva2VuRXJyb3IoJ0Egc2VydmljZSBzaWduaW5nIGtleSBtYXkgb25seSBtaW50IGEgc2VydmljZSBwcmluY2lwYWwnKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsYWltcztcbiAgfVxuXG4gIGNvbnN0IGNsYWltcyA9IGF3YWl0IHZlcmlmeVVzZXJKd3QodG9rZW4pO1xuICBpZiAoY2xhaW1zLnByaW5jaXBhbFR5cGUgPT09ICdzZXJ2aWNlJykge1xuICAgIHRocm93IG5ldyBqd3QuSnNvbldlYlRva2VuRXJyb3IoJ1NlcnZpY2UgcHJpbmNpcGFscyBtYXkgbm90IGJlIHNpZ25lZCB3aXRoIHRoZSB1c2VyIHNpZ25pbmcga2V5Jyk7XG4gIH1cbiAgcmV0dXJuIGNsYWltcztcbn1cblxuLyoqXG4gKiBXaGV0aGVyIGEgdmVyaWZpZWQgdG9rZW4gY2FycmllcyBhIHdlbGwtZm9ybWVkIGlkZW50aXR5OiBhIGtub3duXG4gKiBgcHJpbmNpcGFsVHlwZWAgYW5kIGB0b2tlbl91c2VgLCBhbmQgdGhlIGNsYWltcyB0aGF0IGtpbmQgb2YgcHJpbmNpcGFsIG11c3RcbiAqIGhhdmUuIEZhaWxzIGNsb3NlZCDigJQgYSB0b2tlbiBtaW50ZWQgYmVmb3JlIHRoZXNlIGNsYWltcyBleGlzdGVkLCBvciBvbmUgd2l0aCBhXG4gKiBjb250cmFkaWN0b3J5IGNvbWJpbmF0aW9uLCBpcyBub3QgYW4gaWRlbnRpdHkgYW55IGdhdGUgc2hvdWxkIHJlYXNvbiBhYm91dC5cbiAqXG4gKiAtIGBzZXJ2aWNlYDogYHRva2VuX3VzZTogJ2FjY2VzcydgIGFuZCBhIGBzZXJ2aWNlOjxuYW1lPmAgc3ViamVjdCAodGhlIG5hbWVcbiAqICAgZmVlZHMgdGhlIGRlbnlsaXN0IGFuZCBhdWRpdCBhdHRyaWJ1dGlvbikuXG4gKiAtIGB1c2VyYCAvIGBzZXJ2aWNlX2FjY291bnRgOiBgYW1yYCAoa25vd24gbWV0aG9kcyksIGBhYWxgIGFuZCBgYXV0aF90aW1lYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1ZhbGlkSWRlbnRpdHlDbGFpbXMoZGVjb2RlZDogUGFydGlhbDxKd3RQYXlsb2FkPik6IGJvb2xlYW4ge1xuICBpZiAoIWRlY29kZWQucHJpbmNpcGFsVHlwZSB8fCAhUFJJTkNJUEFMX1RZUEVTLmluY2x1ZGVzKGRlY29kZWQucHJpbmNpcGFsVHlwZSkpIHJldHVybiBmYWxzZTtcbiAgaWYgKCFkZWNvZGVkLnRva2VuX3VzZSB8fCAhVE9LRU5fVVNFUy5pbmNsdWRlcyhkZWNvZGVkLnRva2VuX3VzZSkpIHJldHVybiBmYWxzZTtcbiAgaWYgKGRlY29kZWQucHJpbmNpcGFsVHlwZSA9PT0gJ3NlcnZpY2UnKSB7XG4gICAgcmV0dXJuIGRlY29kZWQudG9rZW5fdXNlID09PSAnYWNjZXNzJ1xuICAgICAgJiYgdHlwZW9mIGRlY29kZWQuc3ViID09PSAnc3RyaW5nJ1xuICAgICAgJiYgZGVjb2RlZC5zdWIuc3RhcnRzV2l0aChTRVJWSUNFX1NVQkpFQ1RfUFJFRklYKVxuICAgICAgJiYgZGVjb2RlZC5zdWIubGVuZ3RoID4gU0VSVklDRV9TVUJKRUNUX1BSRUZJWC5sZW5ndGg7XG4gIH1cbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoZGVjb2RlZC5hbXIpXG4gICAgJiYgZGVjb2RlZC5hbXIuZXZlcnkoKG0pID0+IEFVVEhfTUVUSE9EUy5pbmNsdWRlcyhtKSlcbiAgICAmJiAoZGVjb2RlZC5hYWwgPT09IDEgfHwgZGVjb2RlZC5hYWwgPT09IDIpXG4gICAgJiYgdHlwZW9mIGRlY29kZWQuYXV0aF90aW1lID09PSAnbnVtYmVyJztcbn1cblxuIl19
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LXZlcmlmeS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21pZGRsZXdhcmUvand0LXZlcmlmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7R0FHRztBQUVILE9BQU8sR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckcsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFtQixNQUFNLG9CQUFvQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsMkZBQTJGO0FBQzNGLE1BQU0sVUFBVSxxQkFBcUI7SUFDbkMsT0FBTztRQUNMLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JFLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQzVFLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FBaUIsS0FBYTtJQUMvRCxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsSUFBSSxNQUFNLEVBQUUsR0FBRyxLQUFLLG9CQUFvQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3hELE1BQU0sSUFBSSxHQUFHLENBQUMsaUJBQWlCLENBQUMsbUNBQW1DLG9CQUFvQixrQkFBa0IsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxNQUFNLGlCQUFpQixFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6RCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsR0FBRyxxQkFBcUIsRUFBRSxFQUFFLENBQU0sQ0FBQztBQUN6RyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxLQUFhO0lBQ25ELE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUc7UUFBRSxNQUFNLElBQUksR0FBRyxDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFNUUsSUFBSSxNQUFNLENBQUMsR0FBRyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMzQyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBYSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHLElBQUksTUFBTSxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QyxXQUFXLENBQUMsOENBQThDLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDakYsTUFBTSxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1FBQzdGLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsSUFBSSxNQUFNLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLENBQUMsaUJBQWlCLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxPQUE0QjtJQUNqRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzdGLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDaEYsSUFBSSxPQUFPLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sT0FBTyxDQUFDLFNBQVMsS0FBSyxRQUFRO2VBQ2hDLE9BQU8sT0FBTyxDQUFDLEdBQUcsS0FBSyxRQUFRO2VBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDO2VBQzlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQztJQUMxRCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7V0FDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7V0FDbEQsQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztXQUN4QyxPQUFPLE9BQU8sQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBCZWFyZXItdG9rZW4gdmVyaWZpY2F0aW9uOiB0aGUgdXNlciBjaGFpbiAoRVMyNTYgYWdhaW5zdCBwbGF0Zm9ybSdzIEpXS1MpIGFuZFxuICogdGhlIGlkZW50aXR5LWNsYWltIHNoYXBlIGV2ZXJ5IGdhdGUgcmVhc29ucyBhYm91dC5cbiAqL1xuXG5pbXBvcnQgand0IGZyb20gJ2pzb253ZWJ0b2tlbic7XG5pbXBvcnQgeyBwbGF0Zm9ybUp3a3NDYWNoZSB9IGZyb20gJy4uL3NlcnZpY2VzL2p3a3MtY2FjaGUuanMnO1xuaW1wb3J0IHsgU0VSVklDRV9TVUJKRUNUX1BSRUZJWCwgaXNTZXJ2aWNlS2lkLCB2ZXJpZnlTZXJ2aWNlSnd0IH0gZnJvbSAnLi4vc2VydmljZXMvc2VydmljZS1rZXlzLmpzJztcbmltcG9ydCB7IEFVVEhfTUVUSE9EUywgUFJJTkNJUEFMX1RZUEVTLCBUT0tFTl9VU0VTLCB0eXBlIEp3dFBheWxvYWQgfSBmcm9tICcuLi90eXBlcy9jb21tb24uanMnO1xuaW1wb3J0IHsgVVNFUl9UT0tFTl9BTEdPUklUSE0sIGRlY29kZUp3dEhlYWRlciB9IGZyb20gJy4uL3V0aWxzL2p3ay5qcyc7XG5pbXBvcnQgeyBlbWl0Q291bnRlciB9IGZyb20gJy4uL3V0aWxzL21ldHJpYy1lbWl0dGVyLmpzJztcbi8qKiBJc3N1ZXIvYXVkaWVuY2UgcGlubmluZywgd2hlbiB0aGUgZGVwbG95bWVudCBjb25maWd1cmVzIHRoZW0uIFNoYXJlZCBieSBib3RoIGNoYWlucy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc3N1ZXJBdWRpZW5jZU9wdGlvbnMoKTogeyBpc3N1ZXI/OiBzdHJpbmc7IGF1ZGllbmNlPzogc3RyaW5nIH0ge1xuICByZXR1cm4ge1xuICAgIC4uLihwcm9jZXNzLmVudi5KV1RfSVNTVUVSID8geyBpc3N1ZXI6IHByb2Nlc3MuZW52LkpXVF9JU1NVRVIgfSA6IHt9KSxcbiAgICAuLi4ocHJvY2Vzcy5lbnYuSldUX0FVRElFTkNFID8geyBhdWRpZW5jZTogcHJvY2Vzcy5lbnYuSldUX0FVRElFTkNFIH0gOiB7fSksXG4gIH07XG59XG5cbi8qKlxuICogVmVyaWZ5IGEgdG9rZW4gdGhhdCBzcGVha3MgZm9yIGEgUEVSU09OIOKAlCBhY2Nlc3MsIHN0ZXAtdXAsIGFuZCB0aGUgdG9rZW4gYW5cbiAqIG9wYXF1ZSBhY2Nlc3Mga2V5IGlzIGV4Y2hhbmdlZCBmb3Ig4oCUIGFnYWluc3QgcGxhdGZvcm0ncyBwdWJsaXNoZWQgc2lnbmluZ1xuICoga2V5cy5cbiAqXG4gKiBFUzI1NiBhbmQgYSBga2lkYCBhcmUgYm90aCBtYW5kYXRvcnk6IG5vIGBraWRgIG1lYW5zIG5vIHdheSB0byBwaWNrIHRoZSByaWdodFxuICoga2V5IGFjcm9zcyBhIHJvdGF0aW9uLCBhbmQgYW55IG90aGVyIGFsZ29yaXRobSBpcyByZWZ1c2VkIG91dHJpZ2h0LCB3aGljaCBpc1xuICogd2hhdCBtYWtlcyBcIm5vIHNlcnZpY2UgYWNjZXB0cyBhbiBIUzI1NiB1c2VyIHRva2VuXCIgYSBwcm9wZXJ0eSBvZiB0aGUgY29kZVxuICogcmF0aGVyIHRoYW4gYSBjb252ZW50aW9uLiBLZXkgbG9va3VwIGdvZXMgdGhyb3VnaCB0aGUgc2hhcmVkIEpXS1MgY2FjaGVcbiAqICgxMC1taW51dGUgcmVmcmVzaCwgb25lIHJlZmV0Y2ggb24gYW4gdW5rbm93biBga2lkYCwgYnJpZWYgbmVnYXRpdmUgY2FjaGUpLlxuICpcbiAqIEB0aHJvd3Mge1Vua25vd25LaWRFcnJvcn0gdGhlIGtleSBzZXQgaXMgY3VycmVudCBhbmQgaGFzIG5vIHN1Y2gga2V5IOKGkiA0MDEuXG4gKiBAdGhyb3dzIHtKd2tzVW5hdmFpbGFibGVFcnJvcn0gdGhlIGtleSBzZXQgY291bGQgbm90IGJlIG9idGFpbmVkIOKGkiA1MDM7IGFuXG4gKiAgICAgICAgIHVudmVyaWZpYWJsZSB0b2tlbiBpcyBuZXZlciB0cmVhdGVkIGFzIHZhbGlkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5VXNlckp3dDxUID0gSnd0UGF5bG9hZD4odG9rZW46IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICBjb25zdCBoZWFkZXIgPSBkZWNvZGVKd3RIZWFkZXIodG9rZW4pO1xuICBpZiAoaGVhZGVyPy5hbGcgIT09IFVTRVJfVE9LRU5fQUxHT1JJVEhNIHx8ICFoZWFkZXIua2lkKSB7XG4gICAgdGhyb3cgbmV3IGp3dC5Kc29uV2ViVG9rZW5FcnJvcihgVXNlciB0b2tlbnMgbXVzdCBiZSBzaWduZWQgd2l0aCAke1VTRVJfVE9LRU5fQUxHT1JJVEhNfSBhbmQgY2FycnkgYSBraWRgKTtcbiAgfVxuICBjb25zdCBrZXkgPSBhd2FpdCBwbGF0Zm9ybUp3a3NDYWNoZSgpLmdldEtleShoZWFkZXIua2lkKTtcbiAgcmV0dXJuIGp3dC52ZXJpZnkodG9rZW4sIGtleSwgeyBhbGdvcml0aG1zOiBbVVNFUl9UT0tFTl9BTEdPUklUSE1dLCAuLi5pc3N1ZXJBdWRpZW5jZU9wdGlvbnMoKSB9KSBhcyBUO1xufVxuXG4vKipcbiAqIFZlcmlmeSBBTlkgYmVhcmVyIHRva2VuIGFuZCByZXR1cm4gaXRzIGNsYWltcy5cbiAqXG4gKiBTaW5jZSAjMTQgdGhlcmUgaXMgbm8gc2hhcmVkIHNlY3JldCBsZWZ0OiBCT1RIIGNoYWlucyBhcmUgRVMyNTYgd2l0aCBhIGBraWRgLFxuICogc28gdGhlIGRpc3BhdGNoIGlzIGJ5ICoqd2hvIG93bnMgdGhlIGBraWRgKiogcmF0aGVyIHRoYW4gYnkgYWxnb3JpdGhtIOKAlCBhbmRcbiAqIGJlY2F1c2UgYSBga2lkYCBpcyBhbiBSRkMgNzYzOCB0aHVtYnByaW50LCBvd25lcnNoaXAgaXMgYSBmYWN0IGFib3V0IHRoZSBrZXksXG4gKiBub3QgYSBjbGFpbSB0aGUgdG9rZW4gbWFrZXMgYWJvdXQgaXRzZWxmOlxuICpcbiAqIC0gYSBga2lkYCBwdWJsaXNoZWQgaW4gdGhlIHBlci1zZXJ2aWNlIGtleSBidW5kbGUg4oaSIGFuIElOVEVSTkFMIFNFUlZJQ0UgdG9rZW5cbiAqICAgKHtAbGluayBzaWduU2VydmljZVRva2VufSksIHZlcmlmaWVkIHdpdGggdGhhdCBzZXJ2aWNlJ3Mga2V5OyBpdHMgYHN1YmAgbXVzdFxuICogICBuYW1lIHRoZSBzYW1lIHNlcnZpY2UsIHNvIG9uZSBzZXJ2aWNlIGNhbiBuZXZlciBzcGVhayBmb3IgYW5vdGhlci5cbiAqIC0gYW55dGhpbmcgZWxzZSDihpIgYSBwbGF0Zm9ybS1zaWduZWQgVVNFUiB0b2tlbiwgdmVyaWZpZWQgYWdhaW5zdCBwbGF0Zm9ybSdzXG4gKiAgIHB1Ymxpc2hlZCBKV0tTLiBBIHRva2VuIGNsYWltaW5nIGBwcmluY2lwYWxUeXBlOiAnc2VydmljZSdgIGlzIHJlZnVzZWRcbiAqICAgaGVyZTogYW4gaW50ZXJuYWwgaWRlbnRpdHkgbWF5IG5vdCByaWRlIHRoZSB1c2VyIHNpZ25pbmcga2V5LlxuICpcbiAqIEFueXRoaW5nIHRoYXQgaXMgbm90IEVTMjU2IHdpdGggYSBga2lkYCBmYWlscyBpbiBib3RoIGNoYWlucywgd2hpY2ggaXMgd2hhdFxuICogbWFrZXMgXCJubyBIUzI1NiB0b2tlbiBpcyBhY2NlcHRlZCBhbnl3aGVyZVwiIGEgcHJvcGVydHkgb2YgdGhlIGNvZGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2ZXJpZnlCZWFyZXJUb2tlbih0b2tlbjogc3RyaW5nKTogUHJvbWlzZTxKd3RQYXlsb2FkPiB7XG4gIGNvbnN0IGhlYWRlciA9IGRlY29kZUp3dEhlYWRlcih0b2tlbik7XG4gIGlmICghaGVhZGVyPy5hbGcpIHRocm93IG5ldyBqd3QuSnNvbldlYlRva2VuRXJyb3IoJ01hbGZvcm1lZCB0b2tlbiBoZWFkZXInKTtcblxuICBpZiAoaGVhZGVyLmtpZCAmJiBpc1NlcnZpY2VLaWQoaGVhZGVyLmtpZCkpIHtcbiAgICBjb25zdCBjbGFpbXMgPSB2ZXJpZnlTZXJ2aWNlSnd0PEp3dFBheWxvYWQ+KHRva2VuLCB7IGtpZDogaGVhZGVyLmtpZCwgLi4uaXNzdWVyQXVkaWVuY2VPcHRpb25zKCkgfSk7XG4gICAgaWYgKGNsYWltcy5wcmluY2lwYWxUeXBlICE9PSAnc2VydmljZScpIHtcbiAgICAgIGVtaXRDb3VudGVyKCdzZXJ2aWNlX2tleV9ub25fc2VydmljZV90b2tlbl9yZWplY3RlZF90b3RhbCcsIHsgYWxnOiBoZWFkZXIuYWxnIH0pO1xuICAgICAgdGhyb3cgbmV3IGp3dC5Kc29uV2ViVG9rZW5FcnJvcignQSBzZXJ2aWNlIHNpZ25pbmcga2V5IG1heSBvbmx5IG1pbnQgYSBzZXJ2aWNlIHByaW5jaXBhbCcpO1xuICAgIH1cbiAgICByZXR1cm4gY2xhaW1zO1xuICB9XG5cbiAgY29uc3QgY2xhaW1zID0gYXdhaXQgdmVyaWZ5VXNlckp3dCh0b2tlbik7XG4gIGlmIChjbGFpbXMucHJpbmNpcGFsVHlwZSA9PT0gJ3NlcnZpY2UnKSB7XG4gICAgdGhyb3cgbmV3IGp3dC5Kc29uV2ViVG9rZW5FcnJvcignU2VydmljZSBwcmluY2lwYWxzIG1heSBub3QgYmUgc2lnbmVkIHdpdGggdGhlIHVzZXIgc2lnbmluZyBrZXknKTtcbiAgfVxuICByZXR1cm4gY2xhaW1zO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgYSB2ZXJpZmllZCB0b2tlbiBjYXJyaWVzIGEgd2VsbC1mb3JtZWQgaWRlbnRpdHk6IGEga25vd25cbiAqIGBwcmluY2lwYWxUeXBlYCBhbmQgYHRva2VuX3VzZWAsIGFuZCB0aGUgY2xhaW1zIHRoYXQga2luZCBvZiBwcmluY2lwYWwgbXVzdFxuICogaGF2ZS4gRmFpbHMgY2xvc2VkIOKAlCBhIHRva2VuIG1pbnRlZCBiZWZvcmUgdGhlc2UgY2xhaW1zIGV4aXN0ZWQsIG9yIG9uZSB3aXRoIGFcbiAqIGNvbnRyYWRpY3RvcnkgY29tYmluYXRpb24sIGlzIG5vdCBhbiBpZGVudGl0eSBhbnkgZ2F0ZSBzaG91bGQgcmVhc29uIGFib3V0LlxuICpcbiAqIC0gYHNlcnZpY2VgOiBgdG9rZW5fdXNlOiAnYWNjZXNzJ2AgYW5kIGEgYHNlcnZpY2U6PG5hbWU+YCBzdWJqZWN0ICh0aGUgbmFtZVxuICogICBmZWVkcyB0aGUgZGVueWxpc3QgYW5kIGF1ZGl0IGF0dHJpYnV0aW9uKS5cbiAqIC0gYHVzZXJgIC8gYHNlcnZpY2VfYWNjb3VudGA6IGBhbXJgIChrbm93biBtZXRob2RzKSwgYGFhbGAgYW5kIGBhdXRoX3RpbWVgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzVmFsaWRJZGVudGl0eUNsYWltcyhkZWNvZGVkOiBQYXJ0aWFsPEp3dFBheWxvYWQ+KTogYm9vbGVhbiB7XG4gIGlmICghZGVjb2RlZC5wcmluY2lwYWxUeXBlIHx8ICFQUklOQ0lQQUxfVFlQRVMuaW5jbHVkZXMoZGVjb2RlZC5wcmluY2lwYWxUeXBlKSkgcmV0dXJuIGZhbHNlO1xuICBpZiAoIWRlY29kZWQudG9rZW5fdXNlIHx8ICFUT0tFTl9VU0VTLmluY2x1ZGVzKGRlY29kZWQudG9rZW5fdXNlKSkgcmV0dXJuIGZhbHNlO1xuICBpZiAoZGVjb2RlZC5wcmluY2lwYWxUeXBlID09PSAnc2VydmljZScpIHtcbiAgICByZXR1cm4gZGVjb2RlZC50b2tlbl91c2UgPT09ICdhY2Nlc3MnXG4gICAgICAmJiB0eXBlb2YgZGVjb2RlZC5zdWIgPT09ICdzdHJpbmcnXG4gICAgICAmJiBkZWNvZGVkLnN1Yi5zdGFydHNXaXRoKFNFUlZJQ0VfU1VCSkVDVF9QUkVGSVgpXG4gICAgICAmJiBkZWNvZGVkLnN1Yi5sZW5ndGggPiBTRVJWSUNFX1NVQkpFQ1RfUFJFRklYLmxlbmd0aDtcbiAgfVxuICByZXR1cm4gQXJyYXkuaXNBcnJheShkZWNvZGVkLmFtcilcbiAgICAmJiBkZWNvZGVkLmFtci5ldmVyeSgobSkgPT4gQVVUSF9NRVRIT0RTLmluY2x1ZGVzKG0pKVxuICAgICYmIChkZWNvZGVkLmFhbCA9PT0gMSB8fCBkZWNvZGVkLmFhbCA9PT0gMilcbiAgICAmJiB0eXBlb2YgZGVjb2RlZC5hdXRoX3RpbWUgPT09ICdudW1iZXInO1xufVxuXG4iXX0=
|
|
@@ -97,4 +97,4 @@ function sanitizeObject(obj, depth = 0) {
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ28tc2FuaXRpemUuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlL21vbmdvLXNhbml0aXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFHdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFakQsK0RBQStEO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztBQUVyQzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLG1CQUFvQixTQUFRLEtBQUs7SUFDbkMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7SUFDN0MsWUFBWSxPQUFPLEdBQUcsd0RBQXdELGtCQUFrQixFQUFFO1FBQ2hHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FBQyxHQUFZLEVBQUUsR0FBYSxFQUFFLElBQWtCLEVBQUUsRUFBRTtRQUN6RCxJQUFJLENBQUM7WUFDSCxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVE7Z0JBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2RSxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksT0FBTyxHQUFHLENBQUMsTUFBTSxLQUFLLFFBQVE7Z0JBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFpQyxDQUFDLENBQUM7WUFDeEcsSUFBSSxHQUFHLENBQUMsS0FBSyxJQUFJLE9BQU8sR0FBRyxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDL0MsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQWdDLENBQUM7Z0JBQy9DLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEIsc0VBQXNFO2dCQUN0RSxpREFBaUQ7Z0JBQ2pELElBQUksQ0FBQztvQkFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDMUcsQ0FBQztnQkFBQyxNQUFNLENBQUM7b0JBQ1AseUVBQXlFO2dCQUMzRSxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsdUVBQXVFO1lBQ3ZFLHdFQUF3RTtZQUN4RSxJQUFJLEdBQUcsWUFBWSxtQkFBbUIsRUFBRSxDQUFDO2dCQUN2QyxPQUFPLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2pGLENBQUM7WUFDRCxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQztJQUNULENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsOEVBQThFO0FBQzlFLGlGQUFpRjtBQUNqRixNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUUxRSxTQUFTLGNBQWMsQ0FBQyxHQUE0QixFQUFFLEtBQUssR0FBRyxDQUFDO0lBQzdELHdFQUF3RTtJQUN4RSx5RUFBeUU7SUFDekUsdURBQXVEO0lBQ3ZELElBQUksS0FBSyxHQUFHLGtCQUFrQixFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLG1CQUFtQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUNELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ25DLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4RSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQixTQUFTO1FBQ1gsQ0FBQztRQUNELE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDckIsSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTt3QkFBRSxjQUFjLENBQUMsSUFBK0IsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ25HLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sY0FBYyxDQUFDLENBQTRCLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHR5cGUgeyBOZXh0RnVuY3Rpb24sIFJlcXVlc3QsIFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgeyBIdHRwU3RhdHVzIH0gZnJvbSAnLi4vY29uc3RhbnRzL2h0dHAtc3RhdHVzLmpzJztcbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJy4uL3R5cGVzL2Vycm9yLWNvZGVzLmpzJztcbmltcG9ydCB7IHNlbmRFcnJvciB9IGZyb20gJy4uL3V0aWxzL3Jlc3BvbnNlLmpzJztcblxuLyoqIE1heGltdW0gbmVzdGluZyBkZXB0aCBhY2NlcHRlZCBieSB7QGxpbmsgbW9uZ29TYW5pdGl6ZX0uICovXG5leHBvcnQgY29uc3QgTUFYX1NBTklUSVpFX0RFUFRIID0gMTA7XG5cbi8qKlxuICogVGhyb3duIHdoZW4gYSByZXF1ZXN0IHBheWxvYWQgbmVzdHMgZGVlcGVyIHRoYW4ge0BsaW5rIE1BWF9TQU5JVElaRV9ERVBUSH0uXG4gKiBUaGUgbWlkZGxld2FyZSBtYXBzIHRoaXMgdG8gSFRUUCA0MDAgaW5zdGVhZCBvZiBzaWxlbnRseSB0cnVuY2F0aW5nIHRoZSB3YWxrXG4gKiAod2hpY2ggd291bGQgbGV0IG9wZXJhdG9yLXNoYXBlZCBrZXlzIGJlbG93IHRoZSBjYXAgc2xpcCB0aHJvdWdoIHVuc2FuaXRpemVkKS5cbiAqL1xuZXhwb3J0IGNsYXNzIFBheWxvYWRUb29EZWVwRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHJlYWRvbmx5IHN0YXR1c0NvZGUgPSBIdHRwU3RhdHVzLkJBRF9SRVFVRVNUO1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gYFJlcXVlc3QgcGF5bG9hZCBuZXN0aW5nIGV4Y2VlZHMgdGhlIG1heGltdW0gZGVwdGggb2YgJHtNQVhfU0FOSVRJWkVfREVQVEh9YCkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdQYXlsb2FkVG9vRGVlcEVycm9yJztcbiAgfVxufVxuXG4vKipcbiAqIE1vbmdvREIgb3BlcmF0b3ItaW5qZWN0aW9uIG1pZGRsZXdhcmUuXG4gKlxuICogUmVjdXJzaXZlbHkgc3RyaXBzIG9iamVjdCBrZXlzIHN0YXJ0aW5nIHdpdGggYCRgIChNb25nbyBvcGVyYXRvcnMgbGlrZVxuICogYCRuZWAsIGAkZ3RgLCBgJHdoZXJlYCkgYW5kIGtleXMgY29udGFpbmluZyBgLmAgKGRvdC13YWxrcykgZnJvbVxuICogYHJlcS5ib2R5YCwgYHJlcS5xdWVyeWAsIGFuZCBgcmVxLnBhcmFtc2AuIFdpdGhvdXQgdGhpcywgYSBKU09OIHJlcXVlc3RcbiAqIGxpa2UgYHtcImVtYWlsXCI6IHtcIiRuZVwiOiBudWxsfX1gIGFnYWluc3QgYSBNb25nby1iYWNrZWQgc2VydmljZSBjYW4gbWF0Y2hcbiAqIGFueSBkb2N1bWVudCDigJQgWm9kIGNhdGNoZXMgdGhlIHdyb25nICp0eXBlKiBidXQgd29uJ3QgcmVhY2ggaW50byBuZXN0ZWRcbiAqIG9iamVjdHMgdG8gc3RyaXAgb3BlcmF0b3Itc2hhcGVkIGtleXMuXG4gKlxuICogQXBwbHkgQkVGT1JFIGFueSBNb25nbyBxdWVyeSBoYW5kbGVyICh0eXBpY2FsbHkgcmlnaHQgYWZ0ZXJcbiAqIGBleHByZXNzLmpzb24oKWApLiBQb3N0Z3Jlcy1iYWNrZWQgc2VydmljZXMgZG9uJ3QgbmVlZCBpdC5cbiAqXG4gKiBgcmVxLmJvZHlgIGFuZCBgcmVxLnBhcmFtc2AgYXJlIHBsYWluIHdyaXRhYmxlIG9iamVjdHMsIHNvIHRoZXkncmUgc2FuaXRpemVkXG4gKiBpbiBwbGFjZS4gT24gRXhwcmVzcyA1IGByZXEucXVlcnlgIGlzIGEgR0VUVEVSIHRoYXQgcmUtcGFyc2VzIHRoZSBVUkwgYW5kXG4gKiByZXR1cm5zIGEgZnJlc2ggb2JqZWN0IG9uIGV2ZXJ5IGFjY2VzcyDigJQgbXV0YXRpbmcgaXQgaXMgYSBuby1vcCDigJQgc28gd2VcbiAqIHNhbml0aXplIGEgc25hcHNob3QgYW5kIHBpbiBpdCBvbnRvIHRoZSByZXF1ZXN0IGluc3RhbmNlIHdpdGhcbiAqIGBPYmplY3QuZGVmaW5lUHJvcGVydHlgLCBzaGFkb3dpbmcgdGhlIGdldHRlciBmb3IgYWxsIGRvd25zdHJlYW0gcmVhZHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb25nb1Nhbml0aXplKCkge1xuICByZXR1cm4gKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChyZXEuYm9keSAmJiB0eXBlb2YgcmVxLmJvZHkgPT09ICdvYmplY3QnKSBzYW5pdGl6ZU9iamVjdChyZXEuYm9keSk7XG4gICAgICBpZiAocmVxLnBhcmFtcyAmJiB0eXBlb2YgcmVxLnBhcmFtcyA9PT0gJ29iamVjdCcpIHNhbml0aXplT2JqZWN0KHJlcS5wYXJhbXMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pO1xuICAgICAgaWYgKHJlcS5xdWVyeSAmJiB0eXBlb2YgcmVxLnF1ZXJ5ID09PSAnb2JqZWN0Jykge1xuICAgICAgICBjb25zdCBxID0gcmVxLnF1ZXJ5IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgICBzYW5pdGl6ZU9iamVjdChxKTtcbiAgICAgICAgLy8gUGluIHRoZSBzYW5pdGl6ZWQgc25hcHNob3Qgc28gdGhlIEV4cHJlc3MgNSBnZXR0ZXIgY2FuJ3QgcmUtcGFyc2UgYVxuICAgICAgICAvLyBmcmVzaCAodW5zYW5pdGl6ZWQpIG9iamVjdCBvbiB0aGUgbmV4dCBhY2Nlc3MuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcSwgJ3F1ZXJ5JywgeyB2YWx1ZTogcSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gRXhwcmVzcyA0ICh3cml0YWJsZSBkYXRhIHByb3ApIOKAlCB0aGUgaW4tcGxhY2Ugc2FuaXRpemUgYWJvdmUgc3VmZmljZWQuXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIFJlamVjdCBvdmVyLWRlZXAgcGF5bG9hZHMgd2l0aCBhIDQwMCByYXRoZXIgdGhhbiBzaWxlbnRseSB0cnVuY2F0aW5nXG4gICAgICAvLyB0aGUgc2FuaXRpemUgd2FsayAod2hpY2ggcmlza2VkIGxlYXZpbmcgZGVlcCBvcGVyYXRvciBrZXlzIGluIHBsYWNlKS5cbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBQYXlsb2FkVG9vRGVlcEVycm9yKSB7XG4gICAgICAgIHJldHVybiBzZW5kRXJyb3IocmVzLCBlcnIuc3RhdHVzQ29kZSwgZXJyLm1lc3NhZ2UsIEVycm9yQ29kZS5WQUxJREFUSU9OX0VSUk9SKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gICAgbmV4dCgpO1xuICB9O1xufVxuXG4vLyBQcm90b3R5cGUtcG9sbHV0aW9uIGtleXMg4oCUIHRoZXNlIG5ldmVyIGJlbG9uZyBpbiBKU09OIHJlcXVlc3QgYm9kaWVzLCBhbmQgYVxuLy8gZG93bnN0cmVhbSByZWN1cnNpdmUgbWVyZ2UvYXNzaWduIG9uIHRoZSBwYXJzZWQgb2JqZWN0IGNvdWxkIG90aGVyd2lzZSB3YWxrXG4vLyBgY29uc3RydWN0b3IucHJvdG90eXBlYCB0byBpbmplY3QgTW9uZ28gb3BlcmF0b3JzIG9yIHBvbGx1dGUgT2JqZWN0LnByb3RvdHlwZS5cbmNvbnN0IEZPUkJJRERFTl9LRVlTID0gbmV3IFNldChbJ19fcHJvdG9fXycsICdjb25zdHJ1Y3RvcicsICdwcm90b3R5cGUnXSk7XG5cbmZ1bmN0aW9uIHNhbml0aXplT2JqZWN0KG9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGRlcHRoID0gMCk6IHZvaWQge1xuICAvLyBSZWplY3QgcGF0aG9sb2dpY2FsbHkgbmVzdGVkIGlucHV0IHJhdGhlciB0aGFuIHNpbGVudGx5IHJldHVybmluZyDigJQgYVxuICAvLyBzaWxlbnQgY2FwIHdvdWxkIGxlYXZlIGFueSBvcGVyYXRvci9kb3QvcHJvdG90eXBlIGtleXMgZGVlcGVyIHRoYW4gdGhlXG4gIC8vIGNhcCB1bi1zYW5pdGl6ZWQuIFRoZSBtaWRkbGV3YXJlIG1hcHMgdGhpcyB0byBhIDQwMC5cbiAgaWYgKGRlcHRoID4gTUFYX1NBTklUSVpFX0RFUFRIKSB7XG4gICAgdGhyb3cgbmV3IFBheWxvYWRUb29EZWVwRXJyb3IoKTtcbiAgfVxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvYmopKSB7XG4gICAgaWYgKGtleS5zdGFydHNXaXRoKCckJykgfHwga2V5LmluY2x1ZGVzKCcuJykgfHwgRk9SQklEREVOX0tFWVMuaGFzKGtleSkpIHtcbiAgICAgIGRlbGV0ZSBvYmpba2V5XTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCB2ID0gb2JqW2tleV07XG4gICAgaWYgKHYgJiYgdHlwZW9mIHYgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2KSkge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2Ygdikge1xuICAgICAgICAgIGlmIChpdGVtICYmIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0Jykgc2FuaXRpemVPYmplY3QoaXRlbSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgZGVwdGggKyAxKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2FuaXRpemVPYmplY3QodiBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgZGVwdGggKyAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -140,4 +140,4 @@ function verifyMarker(req) {
|
|
|
140
140
|
return reject('invalid');
|
|
141
141
|
}
|
|
142
142
|
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib24tYmVoYWxmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21pZGRsZXdhcmUvb24tYmVoYWxmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFekQsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRXpDLHNGQUFzRjtBQUN0RixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUVqRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFzQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztBQUV4RSxvRkFBb0Y7QUFDcEYsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUM7QUFFbEMsMEVBQTBFO0FBQzFFLE1BQU0sb0JBQW9CLEdBQUcsV0FBVyxDQUFDO0FBVXpDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxPQUF5QjtJQUN2RCxNQUFNLFNBQVMsR0FBRyxPQUFPLElBQUksY0FBYyxFQUFFLENBQUM7SUFDOUMsSUFBSSxDQUFDLFNBQVM7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMxQixJQUFJLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxjQUFjLENBQzFCO1lBQ0UsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixhQUFhLEVBQUUsU0FBUztZQUN4QixHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUc7WUFDbEIsY0FBYyxFQUFFLFNBQVMsQ0FBQyxjQUFjO1lBQ3hDLEdBQUcsRUFBRSxVQUFVLEVBQUU7U0FDbEIsRUFDRCxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxxQkFBcUIsRUFBRSxFQUFFLENBQ3hILENBQUM7UUFDRixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQywwREFBMEQsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pHLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGNBQWM7SUFDckIsTUFBTSxJQUFJLEdBQUcsbUJBQW1CLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDO0lBQ2xELElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNyRyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztBQUNoRSxDQUFDO0FBRUQseUZBQXlGO0FBQ3pGLE1BQU0sUUFBUSxHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRXZEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxHQUFZO0lBQ3pDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsSUFBSSxJQUFJLEtBQUssU0FBUztRQUFFLE9BQU8sSUFBSSxJQUFJLFNBQVMsQ0FBQztJQUNqRCxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0IsT0FBTyxPQUFPLElBQUksU0FBUyxDQUFDO0FBQzlCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxHQUFZO0lBQ2hDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ2hELElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDeEIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFjLEVBQVEsRUFBRTtRQUN0QyxXQUFXLENBQUMsZ0NBQWdDLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzFELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztJQUN0QixJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjO1FBQUUsT0FBTyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN6RSxJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUM3QixLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLHFCQUFxQixFQUFFLEVBQUUsQ0FDdkQsQ0FBQztRQUNGLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxvQkFBb0IsSUFBSSxNQUFNLENBQUMsYUFBYSxLQUFLLFNBQVM7WUFBRSxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RyxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7WUFBRSxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUFFLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pFLElBQUksTUFBTSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUU7WUFBRSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBPTi1CRUhBTEYgY2FsbHM6IGEgc2VydmljZSBmb3J3YXJkaW5nIHRoZSBlbmQgdXNlcidzIG93biBiZWFyZXIgdG9rZW4gdG8gYVxuICogcGVlciwgYXMgcGFydCBvZiBhIHJlcXVlc3QgdGhhdCB3YXMgQUxSRUFEWSBtZXRlcmVkIHdoZXJlIGl0IGFycml2ZWQuXG4gKlxuICogVGhlIGFzayBhZ2VudCBhY3RzIHN0cmljdGx5IGFzIHRoZSBjYWxsaW5nIHVzZXIg4oCUIGl0cyB0b29scyBmb3J3YXJkIHRoZVxuICogdXNlcidzIHRva2VuIHNvIHRoZSBwZWVyJ3MgdGVuYW5jeSwgcGVybWlzc2lvbiBhbmQgY29tcGxpYW5jZSBnYXRlcyBhcHBseSBhc1xuICogaWYgdGhlIHVzZXIgaGFkIGNhbGxlZCB0aGVtIOKAlCBhbmQgcGlwZWxpbmUncyBjb25maXJtLXBsYWNlaG9sZGVyLXBsdWdpbnMgZG9lc1xuICogdGhlIHNhbWUgYWdhaW5zdCB0aGUgcGx1Z2luIHNlcnZpY2UuIEVhY2ggb2YgdGhvc2UgaG9wcyBpcyBhIFVTRVIgcmVxdWVzdCB0b1xuICogdGhlIHBlZXIsIHNvIHRoZSBwZWVyJ3MgYGFwaUNhbGxzYCBtZXRlciBiaWxsZWQgaXQ6IG9uZSBhZ2VudCB0dXJuIHdhcyAxMC0yMFxuICogYXBpQ2FsbHMgb24gdG9wIG9mIHRoZSB0dXJuIGl0c2VsZiAod2hpY2ggaXMgbWV0ZXJlZCwgYW5kIEFJLXJlc2VydmVkKS5cbiAqXG4gKiBUaGUgbWFya2VyIHRoYXQgd2FpdmVzIHRoYXQgc2Vjb25kIGNoYXJnZSBoYXMgdG8gYmUgc29tZXRoaW5nIHRoZSBVU0VSIENBTk5PVFxuICogUFJPRFVDRSwgb3IgYW55IG1lbWJlciBjb3VsZCBzdG9wIHBheWluZyBmb3IgQVBJIGNhbGxzIGJ5IHNldHRpbmcgYSBoZWFkZXIuXG4gKiBTbyBpdCBpcyBhIFNJR05FRCBTRVJWSUNFIFRPS0VOICh0aGUgY2FsbGluZyBzZXJ2aWNlJ3Mgb3duIEVTMjU2IGtleSwgdGhlIHNhbWVcbiAqIGtleSBtYXRlcmlhbCBgcmVxdWlyZUF1dGhgIHRydXN0cyBmb3Igc2VydmljZSBwcmluY2lwYWxzKSwgY2FycmllZCBpblxuICoge0BsaW5rIE9OX0JFSEFMRl9IRUFERVJ9IGJlc2lkZSB0aGUgdXNlcidzIHVudG91Y2hlZCBgQXV0aG9yaXphdGlvbmA6XG4gKlxuICogIC0gYHR5cGU6ICdvbl9iZWhhbGYnYCDigJQgbmV2ZXIgYGFjY2Vzc2AsIHNvIHRoZSBtYXJrZXIgaXMgdXNlbGVzcyBhcyBhIGJlYXJlclxuICogICAgdG9rZW4gYW55d2hlcmUgKGByZXF1aXJlQXV0aGAgYW5kIGB2ZXJpZnlTZXJ2aWNlUHJpbmNpcGFsYCBib3RoIGRlbWFuZFxuICogICAgYHR5cGU6ICdhY2Nlc3MnYCk7XG4gKiAgLSBgb2JvYCArIGBvcmdhbml6YXRpb25JZGAg4oCUIEJPVU5EIHRvIHRoZSB1c2VyIGFuZCBvcmcgaXQgdm91Y2hlcyBmb3IsIGFuZFxuICogICAgaG9ub3VyZWQgb25seSB3aGVuIGJvdGggZXF1YWwgdGhlIHJlcXVlc3QncyB2ZXJpZmllZCBgcmVxLnVzZXJgO1xuICogIC0gdGhlIHNpZ25lciBtdXN0IGJlIG9uIHtAbGluayBPTl9CRUhBTEZfQ0FMTEVSU30g4oCUIGEgc2VydmljZSB0aGF0IGZvcndhcmRzXG4gKiAgICB1c2VyIHRva2VucyBieSBkZXNpZ24g4oCUIGFuZCBub3Qgb24gdGhlIHNlcnZpY2UtdG9rZW4gZGVueWxpc3Q7XG4gKiAgLSAxMjAgcyBUVEwsIG1pbnRlZCBwZXIgb3V0Ym91bmQgY2FsbC5cbiAqXG4gKiBXaGF0IGEgdmFsaWQgbWFya2VyIGNoYW5nZXMgaXMgbmFycm93OiB0aGUgYXBpQ2FsbHMvYXV0b21hdGlvbkNhbGxzIE1FVEVSIGFuZFxuICogQ0hFQ0sgc2tpcCB0aGUgcmVxdWVzdCAoYGNhbGxRdW90YUV4ZW1wdGlvbmApLiBUZW5hbmN5LCBwZXJtaXNzaW9ucywgYXVkaXQgYW5kXG4gKiBldmVyeSByZXNlcnZhdGlvbi1nYXRlZCBxdW90YSAoYWlDYWxscywgcGlwZWxpbmVzLCBwbHVnaW5zKSBhcHBseSBleGFjdGx5IGFzXG4gKiBiZWZvcmUg4oCUIGFuIG9uLWJlaGFsZiBgL2dlbmVyYXRlYCBzdGlsbCByZXNlcnZlcyBpdHMgb3duIGFpQ2FsbHMgc2xvdC5cbiAqL1xuXG5pbXBvcnQgeyByYW5kb21VVUlEIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB0eXBlIHsgUmVxdWVzdCB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgaXNzdWVyQXVkaWVuY2VPcHRpb25zIH0gZnJvbSAnLi9qd3QtdmVyaWZ5LmpzJztcbmltcG9ydCB7IGlzU2VydmljZVRva2VuRGVuaWVkLCBzZXJ2aWNlTmFtZU9mIH0gZnJvbSAnLi9zZXJ2aWNlLXRva2Vucy5qcyc7XG5pbXBvcnQgeyBjdXJyZW50QXVkaXRDb250ZXh0IH0gZnJvbSAnLi4vc2VydmljZXMvYXVkaXQtY29udGV4dC5qcyc7XG5pbXBvcnQgeyBpc1NlcnZpY2VLaWQsIHNpZ25TZXJ2aWNlSnd0LCB2ZXJpZnlTZXJ2aWNlSnd0IH0gZnJvbSAnLi4vc2VydmljZXMvc2VydmljZS1rZXlzLmpzJztcbmltcG9ydCB7IGRlY29kZUp3dEhlYWRlciB9IGZyb20gJy4uL3V0aWxzL2p3ay5qcyc7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIgfSBmcm9tICcuLi91dGlscy9sb2dnZXIuanMnO1xuaW1wb3J0IHsgZW1pdENvdW50ZXIgfSBmcm9tICcuLi91dGlscy9tZXRyaWMtZW1pdHRlci5qcyc7XG5cbmNvbnN0IGxvZ2dlciA9IGNyZWF0ZUxvZ2dlcignb24tYmVoYWxmJyk7XG5cbi8qKiBUaGUgaGVhZGVyIGNhcnJ5aW5nIHRoZSBzaWduZWQgb24tYmVoYWxmIG1hcmtlciAobG93ZXItY2FzZSwgYXMgTm9kZSByZWFkcyBpdCkuICovXG5leHBvcnQgY29uc3QgT05fQkVIQUxGX0hFQURFUiA9ICd4LXBiLW9uLWJlaGFsZic7XG5cbi8qKlxuICogU2VydmljZXMgd2hvc2Ugb24tYmVoYWxmIG1hcmtlciBpcyBob25vdXJlZDogdGhlIG9uZXMgdGhhdCBmb3J3YXJkIGEgdXNlcidzXG4gKiB0b2tlbiBhcyBhIG1hdHRlciBvZiBkZXNpZ24uIEEgbWFya2VyIHNpZ25lZCBieSBhbnkgb3RoZXIgc2VydmljZSDigJQgdmFsaWRcbiAqIHNpZ25hdHVyZSBvciBub3Qg4oCUIGlzIGlnbm9yZWQsIHNvIGEgY29tcHJvbWlzZWQgcGVlciB0aGF0IG5ldmVyIGZvcndhcmRzIHVzZXJcbiAqIHRva2VucyBjYW5ub3Qgc3RhcnQgd2FpdmluZyBpdHMgdGVuYW50cycgbWV0ZXJzLlxuICovXG5leHBvcnQgY29uc3QgT05fQkVIQUxGX0NBTExFUlM6IHJlYWRvbmx5IHN0cmluZ1tdID0gWydhc2snLCAncGlwZWxpbmUnXTtcblxuLyoqIE1hcmtlciBsaWZldGltZS4gTWludGVkIHBlciBvdXRib3VuZCBjYWxsLCBzbyBpdCBvbmx5IGhhcyB0byBvdXRsaXZlIG9uZSBob3AuICovXG5jb25zdCBPTl9CRUhBTEZfVFRMX1NFQ09ORFMgPSAxMjA7XG5cbi8qKiBUaGUgYHR5cGVgIGNsYWltIHRoYXQgbWFrZXMgdGhlIG1hcmtlciB1bnVzYWJsZSBhcyBhbiBhY2Nlc3MgdG9rZW4uICovXG5jb25zdCBPTl9CRUhBTEZfVE9LRU5fVFlQRSA9ICdvbl9iZWhhbGYnO1xuXG4vKiogV2hvIGEgbWFya2VyIHZvdWNoZXMgZm9yLiBEZWZhdWx0cyB0byB0aGUgYW1iaWVudCByZXF1ZXN0J3MgdmVyaWZpZWQgcHJpbmNpcGFsLiAqL1xuZXhwb3J0IGludGVyZmFjZSBPbkJlaGFsZlN1YmplY3Qge1xuICAvKiogVGhlIHVzZXIgKGBzdWJgKSB3aG9zZSB0b2tlbiByaWRlcyB0aGUgc2FtZSByZXF1ZXN0LiAqL1xuICBzdWI6IHN0cmluZztcbiAgLyoqIFRoZWlyIGFjdGl2ZSBvcmcuICovXG4gIG9yZ2FuaXphdGlvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSGVhZGVycyB0byBhZGQgYmVzaWRlIGEgZm9yd2FyZGVkIHVzZXIgYEF1dGhvcml6YXRpb25gIHNvIHRoZSBwZWVyIGRvZXMgbm90XG4gKiBiaWxsIHRoZSBob3AgYSBzZWNvbmQgdGltZS4gTWludCBwZXIgY2FsbCAodGhlIG1hcmtlciBleHBpcmVzIGluIDEyMCBzKS5cbiAqXG4gKiBUaGUgc3ViamVjdCBkZWZhdWx0cyB0byB0aGUgYW1iaWVudCBhdWRpdCBjb250ZXh0J3MgVkVSSUZJRUQgcHJpbmNpcGFsICh0aGVcbiAqIGluYm91bmQgcmVxdWVzdCB0aGlzIGNhbGwgc2VydmVzKS4gUmV0dXJucyBge31gIOKAlCB0aGUgaG9wIGlzIGJpbGxlZCBub3JtYWxseSxcbiAqIHRoZSBzYWZlIGRpcmVjdGlvbiDigJQgd2hlbiB0aGVyZSBpcyBubyB1c2VyIHByaW5jaXBhbCB0byB2b3VjaCBmb3IsIG9yIHdoZW5cbiAqIHRoaXMgcHJvY2VzcyBjYW5ub3Qgc2lnbiAobm8gc2VydmljZSBrZXkpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb25CZWhhbGZIZWFkZXJzKHN1YmplY3Q/OiBPbkJlaGFsZlN1YmplY3QpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3QgcHJpbmNpcGFsID0gc3ViamVjdCA/PyBhbWJpZW50U3ViamVjdCgpO1xuICBpZiAoIXByaW5jaXBhbCkgcmV0dXJuIHt9O1xuICB0cnkge1xuICAgIGNvbnN0IHRva2VuID0gc2lnblNlcnZpY2VKd3QoXG4gICAgICB7XG4gICAgICAgIHR5cGU6IE9OX0JFSEFMRl9UT0tFTl9UWVBFLFxuICAgICAgICBwcmluY2lwYWxUeXBlOiAnc2VydmljZScsXG4gICAgICAgIG9ibzogcHJpbmNpcGFsLnN1YixcbiAgICAgICAgb3JnYW5pemF0aW9uSWQ6IHByaW5jaXBhbC5vcmdhbml6YXRpb25JZCxcbiAgICAgICAganRpOiByYW5kb21VVUlEKCksXG4gICAgICB9LFxuICAgICAgeyBzZXJ2aWNlTmFtZTogcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FIHx8ICdhcGknLCBleHBpcmVzSW5TZWNvbmRzOiBPTl9CRUhBTEZfVFRMX1NFQ09ORFMsIC4uLmlzc3VlckF1ZGllbmNlT3B0aW9ucygpIH0sXG4gICAgKTtcbiAgICByZXR1cm4geyBbT05fQkVIQUxGX0hFQURFUl06IHRva2VuIH07XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5kZWJ1ZygnT24tYmVoYWxmIG1hcmtlciBub3QgbWludGVkOyB0aGUgcGVlciB3aWxsIG1ldGVyIHRoZSBob3AnLCB7IGVycm9yOiBTdHJpbmcoZXJyKSB9KTtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cblxuZnVuY3Rpb24gYW1iaWVudFN1YmplY3QoKTogT25CZWhhbGZTdWJqZWN0IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgdXNlciA9IGN1cnJlbnRBdWRpdENvbnRleHQoKT8ucHJpbmNpcGFsPy4oKTtcbiAgaWYgKCF1c2VyIHx8IHVzZXIucHJpbmNpcGFsVHlwZSA9PT0gJ3NlcnZpY2UnIHx8ICF1c2VyLnN1YiB8fCAhdXNlci5vcmdhbml6YXRpb25JZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgcmV0dXJuIHsgc3ViOiB1c2VyLnN1Yiwgb3JnYW5pemF0aW9uSWQ6IHVzZXIub3JnYW5pemF0aW9uSWQgfTtcbn1cblxuLyoqIE1lbW8gcGVyIHJlcXVlc3Q6IHRoZSBtZXRlciAob24gYGZpbmlzaGApIGFuZCB0aGUgY2hlY2sgKGluIHJlcXVpcmVBdXRoKSBib3RoIGFzay4gKi9cbmNvbnN0IHZlcmRpY3RzID0gbmV3IFdlYWtNYXA8UmVxdWVzdCwgc3RyaW5nIHwgbnVsbD4oKTtcblxuLyoqXG4gKiBUaGUgaW50ZXJuYWwgc2VydmljZSB0aGF0IHZvdWNoZWQgZm9yIHRoaXMgcmVxdWVzdCB3aXRoIGEgVkFMSUQgb24tYmVoYWxmXG4gKiBtYXJrZXIsIGVsc2UgYHVuZGVmaW5lZGAuIFJlcXVpcmVzIHRoZSByZXF1ZXN0IHRvIGJlIGF1dGhlbnRpY2F0ZWQgKGByZXEudXNlcmBcbiAqIHNldCBieSByZXF1aXJlQXV0aCkg4oCUIHRoZSBtYXJrZXIgaXMgb25seSBtZWFuaW5nZnVsIGFnYWluc3QgYSB2ZXJpZmllZCB1c2VyLlxuICpcbiAqIEV2ZXJ5IHJlamVjdGlvbiBvZiBhIFBSRVNFTlQgaGVhZGVyIGlzIGNvdW50ZWQgb25cbiAqIGBxdW90YV9vbl9iZWhhbGZfcmVqZWN0ZWRfdG90YWx7cmVhc29ufWA6IGEgZm9yZ2VkIGhlYWRlciBmcm9tIGEgdXNlciBsYW5kc1xuICogdGhlcmUgYXMgYGludmFsaWRgIChubyBzZXJ2aWNlIGtleSBzaWducyBpdCksIGFuZCB0aGUgcmVxdWVzdCBpcyBiaWxsZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvbkJlaGFsZkNhbGxlcihyZXE6IFJlcXVlc3QpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBtZW1vID0gdmVyZGljdHMuZ2V0KHJlcSk7XG4gIGlmIChtZW1vICE9PSB1bmRlZmluZWQpIHJldHVybiBtZW1vID8/IHVuZGVmaW5lZDtcbiAgY29uc3QgdmVyZGljdCA9IHZlcmlmeU1hcmtlcihyZXEpO1xuICB2ZXJkaWN0cy5zZXQocmVxLCB2ZXJkaWN0KTtcbiAgcmV0dXJuIHZlcmRpY3QgPz8gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlNYXJrZXIocmVxOiBSZXF1ZXN0KTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IHJhdyA9IHJlcS5oZWFkZXJzPy5bT05fQkVIQUxGX0hFQURFUl07XG4gIGNvbnN0IHRva2VuID0gQXJyYXkuaXNBcnJheShyYXcpID8gcmF3WzBdIDogcmF3O1xuICBpZiAoIXRva2VuKSByZXR1cm4gbnVsbDtcbiAgY29uc3QgcmVqZWN0ID0gKHJlYXNvbjogc3RyaW5nKTogbnVsbCA9PiB7XG4gICAgZW1pdENvdW50ZXIoJ3F1b3RhX29uX2JlaGFsZl9yZWplY3RlZF90b3RhbCcsIHsgcmVhc29uIH0pO1xuICAgIHJldHVybiBudWxsO1xuICB9O1xuICBjb25zdCB1c2VyID0gcmVxLnVzZXI7XG4gIGlmICghdXNlcj8uc3ViIHx8ICF1c2VyLm9yZ2FuaXphdGlvbklkKSByZXR1cm4gcmVqZWN0KCd1bmF1dGhlbnRpY2F0ZWQnKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBoZWFkZXIgPSBkZWNvZGVKd3RIZWFkZXIodG9rZW4pO1xuICAgIGlmICghaGVhZGVyPy5raWQgfHwgIWlzU2VydmljZUtpZChoZWFkZXIua2lkKSkgcmV0dXJuIHJlamVjdCgnaW52YWxpZCcpO1xuICAgIGNvbnN0IGNsYWltcyA9IHZlcmlmeVNlcnZpY2VKd3Q8eyB0eXBlPzogc3RyaW5nOyBwcmluY2lwYWxUeXBlPzogc3RyaW5nOyBzdWI/OiBzdHJpbmc7IG9ibz86IHN0cmluZzsgb3JnYW5pemF0aW9uSWQ/OiBzdHJpbmcgfT4oXG4gICAgICB0b2tlbiwgeyBraWQ6IGhlYWRlci5raWQsIC4uLmlzc3VlckF1ZGllbmNlT3B0aW9ucygpIH0sXG4gICAgKTtcbiAgICBpZiAoY2xhaW1zLnR5cGUgIT09IE9OX0JFSEFMRl9UT0tFTl9UWVBFIHx8IGNsYWltcy5wcmluY2lwYWxUeXBlICE9PSAnc2VydmljZScpIHJldHVybiByZWplY3QoJ2ludmFsaWQnKTtcbiAgICBjb25zdCBjYWxsZXIgPSBzZXJ2aWNlTmFtZU9mKGNsYWltcyk7XG4gICAgaWYgKCFjYWxsZXIgfHwgaXNTZXJ2aWNlVG9rZW5EZW5pZWQoY2xhaW1zKSkgcmV0dXJuIHJlamVjdCgnZGVuaWVkJyk7XG4gICAgaWYgKCFPTl9CRUhBTEZfQ0FMTEVSUy5pbmNsdWRlcyhjYWxsZXIpKSByZXR1cm4gcmVqZWN0KCdjYWxsZXInKTtcbiAgICBpZiAoY2xhaW1zLm9ibyAhPT0gdXNlci5zdWIpIHJldHVybiByZWplY3QoJ3N1YmplY3QnKTtcbiAgICBpZiAoU3RyaW5nKGNsYWltcy5vcmdhbml6YXRpb25JZCA/PyAnJykudG9Mb3dlckNhc2UoKSAhPT0gdXNlci5vcmdhbml6YXRpb25JZC50b0xvd2VyQ2FzZSgpKSByZXR1cm4gcmVqZWN0KCdvcmcnKTtcbiAgICByZXR1cm4gY2FsbGVyO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gcmVqZWN0KCdpbnZhbGlkJyk7XG4gIH1cbn1cbiJdfQ==
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib24tYmVoYWxmLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWlkZGxld2FyZS9vbi1iZWhhbGYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVwQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFekMsc0ZBQXNGO0FBQ3RGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBRWpEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQXNCLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRXhFLG9GQUFvRjtBQUNwRixNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztBQUVsQywwRUFBMEU7QUFDMUUsTUFBTSxvQkFBb0IsR0FBRyxXQUFXLENBQUM7QUFVekM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQXlCO0lBQ3ZELE1BQU0sU0FBUyxHQUFHLE9BQU8s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XG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIE9OLUJFSEFMRiBjYWxsczogYSBzZXJ2aWNlIGZvcndhcmRpbmcgdGhlIGVuZCB1c2VyJ3Mgb3duIGJlYXJlciB0b2tlbiB0byBhXG4gKiBwZWVyLCBhcyBwYXJ0IG9mIGEgcmVxdWVzdCB0aGF0IHdhcyBBTFJFQURZIG1ldGVyZWQgd2hlcmUgaXQgYXJyaXZlZC5cbiAqXG4gKiBUaGUgYXNrIGFnZW50IGFjdHMgc3RyaWN0bHkgYXMgdGhlIGNhbGxpbmcgdXNlciDigJQgaXRzIHRvb2xzIGZvcndhcmQgdGhlXG4gKiB1c2VyJ3MgdG9rZW4gc28gdGhlIHBlZXIncyB0ZW5hbmN5LCBwZXJtaXNzaW9uIGFuZCBjb21wbGlhbmNlIGdhdGVzIGFwcGx5IGFzXG4gKiBpZiB0aGUgdXNlciBoYWQgY2FsbGVkIHRoZW0g4oCUIGFuZCBwaXBlbGluZSdzIGNvbmZpcm0tcGxhY2Vob2xkZXItcGx1Z2lucyBkb2VzXG4gKiB0aGUgc2FtZSBhZ2FpbnN0IHRoZSBwbHVnaW4gc2VydmljZS4gRWFjaCBvZiB0aG9zZSBob3BzIGlzIGEgVVNFUiByZXF1ZXN0IHRvXG4gKiB0aGUgcGVlciwgc28gdGhlIHBlZXIncyBgYXBpQ2FsbHNgIG1ldGVyIGJpbGxlZCBpdDogb25lIGFnZW50IHR1cm4gd2FzIDEwLTIwXG4gKiBhcGlDYWxscyBvbiB0b3Agb2YgdGhlIHR1cm4gaXRzZWxmICh3aGljaCBpcyBtZXRlcmVkLCBhbmQgQUktcmVzZXJ2ZWQpLlxuICpcbiAqIFRoZSBtYXJrZXIgdGhhdCB3YWl2ZXMgdGhhdCBzZWNvbmQgY2hhcmdlIGhhcyB0byBiZSBzb21ldGhpbmcgdGhlIFVTRVIgQ0FOTk9UXG4gKiBQUk9EVUNFLCBvciBhbnkgbWVtYmVyIGNvdWxkIHN0b3AgcGF5aW5nIGZvciBBUEkgY2FsbHMgYnkgc2V0dGluZyBhIGhlYWRlci5cbiAqIFNvIGl0IGlzIGEgU0lHTkVEIFNFUlZJQ0UgVE9LRU4gKHRoZSBjYWxsaW5nIHNlcnZpY2UncyBvd24gRVMyNTYga2V5LCB0aGUgc2FtZVxuICoga2V5IG1hdGVyaWFsIGByZXF1aXJlQXV0aGAgdHJ1c3RzIGZvciBzZXJ2aWNlIHByaW5jaXBhbHMpLCBjYXJyaWVkIGluXG4gKiB7QGxpbmsgT05fQkVIQUxGX0hFQURFUn0gYmVzaWRlIHRoZSB1c2VyJ3MgdW50b3VjaGVkIGBBdXRob3JpemF0aW9uYDpcbiAqXG4gKiAgLSBgdHlwZTogJ29uX2JlaGFsZidgIOKAlCBuZXZlciBgYWNjZXNzYCwgc28gdGhlIG1hcmtlciBpcyB1c2VsZXNzIGFzIGEgYmVhcmVyXG4gKiAgICB0b2tlbiBhbnl3aGVyZSAoYHJlcXVpcmVBdXRoYCBhbmQgYHZlcmlmeVNlcnZpY2VQcmluY2lwYWxgIGJvdGggZGVtYW5kXG4gKiAgICBgdHlwZTogJ2FjY2VzcydgKTtcbiAqICAtIGBvYm9gICsgYG9yZ2FuaXphdGlvbklkYCDigJQgQk9VTkQgdG8gdGhlIHVzZXIgYW5kIG9yZyBpdCB2b3VjaGVzIGZvciwgYW5kXG4gKiAgICBob25vdXJlZCBvbmx5IHdoZW4gYm90aCBlcXVhbCB0aGUgcmVxdWVzdCdzIHZlcmlmaWVkIGByZXEudXNlcmA7XG4gKiAgLSB0aGUgc2lnbmVyIG11c3QgYmUgb24ge0BsaW5rIE9OX0JFSEFMRl9DQUxMRVJTfSDigJQgYSBzZXJ2aWNlIHRoYXQgZm9yd2FyZHNcbiAqICAgIHVzZXIgdG9rZW5zIGJ5IGRlc2lnbiDigJQgYW5kIG5vdCBvbiB0aGUgc2VydmljZS10b2tlbiBkZW55bGlzdDtcbiAqICAtIDEyMCBzIFRUTCwgbWludGVkIHBlciBvdXRib3VuZCBjYWxsLlxuICpcbiAqIFdoYXQgYSB2YWxpZCBtYXJrZXIgY2hhbmdlcyBpcyBuYXJyb3c6IHRoZSBhcGlDYWxscy9hdXRvbWF0aW9uQ2FsbHMgTUVURVIgYW5kXG4gKiBDSEVDSyBza2lwIHRoZSByZXF1ZXN0IChgY2FsbFF1b3RhRXhlbXB0aW9uYCkuIFRlbmFuY3ksIHBlcm1pc3Npb25zLCBhdWRpdCBhbmRcbiAqIGV2ZXJ5IHJlc2VydmF0aW9uLWdhdGVkIHF1b3RhIChhaUNhbGxzLCBwaXBlbGluZXMsIHBsdWdpbnMpIGFwcGx5IGV4YWN0bHkgYXNcbiAqIGJlZm9yZSDigJQgYW4gb24tYmVoYWxmIGAvZ2VuZXJhdGVgIHN0aWxsIHJlc2VydmVzIGl0cyBvd24gYWlDYWxscyBzbG90LlxuICovXG5cbmltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHR5cGUgeyBSZXF1ZXN0IH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgeyBpc3N1ZXJBdWRpZW5jZU9wdGlvbnMgfSBmcm9tICcuL2p3dC12ZXJpZnkuanMnO1xuaW1wb3J0IHsgaXNTZXJ2aWNlVG9rZW5EZW5pZWQsIHNlcnZpY2VOYW1lT2YgfSBmcm9tICcuL3NlcnZpY2UtdG9rZW5zLmpzJztcbmltcG9ydCB7IGN1cnJlbnRBdWRpdENvbnRleHQgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdWRpdC1jb250ZXh0LmpzJztcbmltcG9ydCB7IGlzU2VydmljZUtpZCwgc2lnblNlcnZpY2VKd3QsIHZlcmlmeVNlcnZpY2VKd3QgfSBmcm9tICcuLi9zZXJ2aWNlcy9zZXJ2aWNlLWtleXMuanMnO1xuaW1wb3J0IHsgZGVjb2RlSnd0SGVhZGVyIH0gZnJvbSAnLi4vdXRpbHMvandrLmpzJztcbmltcG9ydCB7IGNyZWF0ZUxvZ2dlciB9IGZyb20gJy4uL3V0aWxzL2xvZ2dlci5qcyc7XG5pbXBvcnQgeyBlbWl0Q291bnRlciB9IGZyb20gJy4uL3V0aWxzL21ldHJpYy1lbWl0dGVyLmpzJztcblxuY29uc3QgbG9nZ2VyID0gY3JlYXRlTG9nZ2VyKCdvbi1iZWhhbGYnKTtcblxuLyoqIFRoZSBoZWFkZXIgY2FycnlpbmcgdGhlIHNpZ25lZCBvbi1iZWhhbGYgbWFya2VyIChsb3dlci1jYXNlLCBhcyBOb2RlIHJlYWRzIGl0KS4gKi9cbmV4cG9ydCBjb25zdCBPTl9CRUhBTEZfSEVBREVSID0gJ3gtcGItb24tYmVoYWxmJztcblxuLyoqXG4gKiBTZXJ2aWNlcyB3aG9zZSBvbi1iZWhhbGYgbWFya2VyIGlzIGhvbm91cmVkOiB0aGUgb25lcyB0aGF0IGZvcndhcmQgYSB1c2VyJ3NcbiAqIHRva2VuIGFzIGEgbWF0dGVyIG9mIGRlc2lnbi4gQSBtYXJrZXIgc2lnbmVkIGJ5IGFueSBvdGhlciBzZXJ2aWNlIOKAlCB2YWxpZFxuICogc2lnbmF0dXJlIG9yIG5vdCDigJQgaXMgaWdub3JlZCwgc28gYSBjb21wcm9taXNlZCBwZWVyIHRoYXQgbmV2ZXIgZm9yd2FyZHMgdXNlclxuICogdG9rZW5zIGNhbm5vdCBzdGFydCB3YWl2aW5nIGl0cyB0ZW5hbnRzJyBtZXRlcnMuXG4gKi9cbmV4cG9ydCBjb25zdCBPTl9CRUhBTEZfQ0FMTEVSUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbJ2FzaycsICdwaXBlbGluZSddO1xuXG4vKiogTWFya2VyIGxpZmV0aW1lLiBNaW50ZWQgcGVyIG91dGJvdW5kIGNhbGwsIHNvIGl0IG9ubHkgaGFzIHRvIG91dGxpdmUgb25lIGhvcC4gKi9cbmNvbnN0IE9OX0JFSEFMRl9UVExfU0VDT05EUyA9IDEyMDtcblxuLyoqIFRoZSBgdHlwZWAgY2xhaW0gdGhhdCBtYWtlcyB0aGUgbWFya2VyIHVudXNhYmxlIGFzIGFuIGFjY2VzcyB0b2tlbi4gKi9cbmNvbnN0IE9OX0JFSEFMRl9UT0tFTl9UWVBFID0gJ29uX2JlaGFsZic7XG5cbi8qKiBXaG8gYSBtYXJrZXIgdm91Y2hlcyBmb3IuIERlZmF1bHRzIHRvIHRoZSBhbWJpZW50IHJlcXVlc3QncyB2ZXJpZmllZCBwcmluY2lwYWwuICovXG5leHBvcnQgaW50ZXJmYWNlIE9uQmVoYWxmU3ViamVjdCB7XG4gIC8qKiBUaGUgdXNlciAoYHN1YmApIHdob3NlIHRva2VuIHJpZGVzIHRoZSBzYW1lIHJlcXVlc3QuICovXG4gIHN1Yjogc3RyaW5nO1xuICAvKiogVGhlaXIgYWN0aXZlIG9yZy4gKi9cbiAgb3JnYW5pemF0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBIZWFkZXJzIHRvIGFkZCBiZXNpZGUgYSBmb3J3YXJkZWQgdXNlciBgQXV0aG9yaXphdGlvbmAgc28gdGhlIHBlZXIgZG9lcyBub3RcbiAqIGJpbGwgdGhlIGhvcCBhIHNlY29uZCB0aW1lLiBNaW50IHBlciBjYWxsICh0aGUgbWFya2VyIGV4cGlyZXMgaW4gMTIwIHMpLlxuICpcbiAqIFRoZSBzdWJqZWN0IGRlZmF1bHRzIHRvIHRoZSBhbWJpZW50IGF1ZGl0IGNvbnRleHQncyBWRVJJRklFRCBwcmluY2lwYWwgKHRoZVxuICogaW5ib3VuZCByZXF1ZXN0IHRoaXMgY2FsbCBzZXJ2ZXMpLiBSZXR1cm5zIGB7fWAg4oCUIHRoZSBob3AgaXMgYmlsbGVkIG5vcm1hbGx5LFxuICogdGhlIHNhZmUgZGlyZWN0aW9uIOKAlCB3aGVuIHRoZXJlIGlzIG5vIHVzZXIgcHJpbmNpcGFsIHRvIHZvdWNoIGZvciwgb3Igd2hlblxuICogdGhpcyBwcm9jZXNzIGNhbm5vdCBzaWduIChubyBzZXJ2aWNlIGtleSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvbkJlaGFsZkhlYWRlcnMoc3ViamVjdD86IE9uQmVoYWxmU3ViamVjdCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICBjb25zdCBwcmluY2lwYWwgPSBzdWJqZWN0ID8/IGFtYmllbnRTdWJqZWN0KCk7XG4gIGlmICghcHJpbmNpcGFsKSByZXR1cm4ge307XG4gIHRyeSB7XG4gICAgY29uc3QgdG9rZW4gPSBzaWduU2VydmljZUp3dChcbiAgICAgIHtcbiAgICAgICAgdHlwZTogT05fQkVIQUxGX1RPS0VOX1RZUEUsXG4gICAgICAgIHByaW5jaXBhbFR5cGU6ICdzZXJ2aWNlJyxcbiAgICAgICAgb2JvOiBwcmluY2lwYWwuc3ViLFxuICAgICAgICBvcmdhbml6YXRpb25JZDogcHJpbmNpcGFsLm9yZ2FuaXphdGlvbklkLFxuICAgICAgICBqdGk6IHJhbmRvbVVVSUQoKSxcbiAgICAgIH0sXG4gICAgICB7IHNlcnZpY2VOYW1lOiBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUUgfHwgJ2FwaScsIGV4cGlyZXNJblNlY29uZHM6IE9OX0JFSEFMRl9UVExfU0VDT05EUywgLi4uaXNzdWVyQXVkaWVuY2VPcHRpb25zKCkgfSxcbiAgICApO1xuICAgIHJldHVybiB7IFtPTl9CRUhBTEZfSEVBREVSXTogdG9rZW4gfTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmRlYnVnKCdPbi1iZWhhbGYgbWFya2VyIG5vdCBtaW50ZWQ7IHRoZSBwZWVyIHdpbGwgbWV0ZXIgdGhlIGhvcCcsIHsgZXJyb3I6IFN0cmluZyhlcnIpIH0pO1xuICAgIHJldHVybiB7fTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhbWJpZW50U3ViamVjdCgpOiBPbkJlaGFsZlN1YmplY3QgfCB1bmRlZmluZWQge1xuICBjb25zdCB1c2VyID0gY3VycmVudEF1ZGl0Q29udGV4dCgpPy5wcmluY2lwYWw/LigpO1xuICBpZiAoIXVzZXIgfHwgdXNlci5wcmluY2lwYWxUeXBlID09PSAnc2VydmljZScgfHwgIXVzZXIuc3ViIHx8ICF1c2VyLm9yZ2FuaXphdGlvbklkKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4geyBzdWI6IHVzZXIuc3ViLCBvcmdhbml6YXRpb25JZDogdXNlci5vcmdhbml6YXRpb25JZCB9O1xufVxuXG4vKiogTWVtbyBwZXIgcmVxdWVzdDogdGhlIG1ldGVyIChvbiBgZmluaXNoYCkgYW5kIHRoZSBjaGVjayAoaW4gcmVxdWlyZUF1dGgpIGJvdGggYXNrLiAqL1xuY29uc3QgdmVyZGljdHMgPSBuZXcgV2Vha01hcDxSZXF1ZXN0LCBzdHJpbmcgfCBudWxsPigpO1xuXG4vKipcbiAqIFRoZSBpbnRlcm5hbCBzZXJ2aWNlIHRoYXQgdm91Y2hlZCBmb3IgdGhpcyByZXF1ZXN0IHdpdGggYSBWQUxJRCBvbi1iZWhhbGZcbiAqIG1hcmtlciwgZWxzZSBgdW5kZWZpbmVkYC4gUmVxdWlyZXMgdGhlIHJlcXVlc3QgdG8gYmUgYXV0aGVudGljYXRlZCAoYHJlcS51c2VyYFxuICogc2V0IGJ5IHJlcXVpcmVBdXRoKSDigJQgdGhlIG1hcmtlciBpcyBvbmx5IG1lYW5pbmdmdWwgYWdhaW5zdCBhIHZlcmlmaWVkIHVzZXIuXG4gKlxuICogRXZlcnkgcmVqZWN0aW9uIG9mIGEgUFJFU0VOVCBoZWFkZXIgaXMgY291bnRlZCBvblxuICogYHF1b3RhX29uX2JlaGFsZl9yZWplY3RlZF90b3RhbHtyZWFzb259YDogYSBmb3JnZWQgaGVhZGVyIGZyb20gYSB1c2VyIGxhbmRzXG4gKiB0aGVyZSBhcyBgaW52YWxpZGAgKG5vIHNlcnZpY2Uga2V5IHNpZ25zIGl0KSwgYW5kIHRoZSByZXF1ZXN0IGlzIGJpbGxlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9uQmVoYWxmQ2FsbGVyKHJlcTogUmVxdWVzdCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG1lbW8gPSB2ZXJkaWN0cy5nZXQocmVxKTtcbiAgaWYgKG1lbW8gIT09IHVuZGVmaW5lZCkgcmV0dXJuIG1lbW8gPz8gdW5kZWZpbmVkO1xuICBjb25zdCB2ZXJkaWN0ID0gdmVyaWZ5TWFya2VyKHJlcSk7XG4gIHZlcmRpY3RzLnNldChyZXEsIHZlcmRpY3QpO1xuICByZXR1cm4gdmVyZGljdCA/PyB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeU1hcmtlcihyZXE6IFJlcXVlc3QpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgcmF3ID0gcmVxLmhlYWRlcnM/LltPTl9CRUhBTEZfSEVBREVSXTtcbiAgY29uc3QgdG9rZW4gPSBBcnJheS5pc0FycmF5KHJhdykgPyByYXdbMF0gOiByYXc7XG4gIGlmICghdG9rZW4pIHJldHVybiBudWxsO1xuICBjb25zdCByZWplY3QgPSAocmVhc29uOiBzdHJpbmcpOiBudWxsID0+IHtcbiAgICBlbWl0Q291bnRlcigncXVvdGFfb25fYmVoYWxmX3JlamVjdGVkX3RvdGFsJywgeyByZWFzb24gfSk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG4gIGNvbnN0IHVzZXIgPSByZXEudXNlcjtcbiAgaWYgKCF1c2VyPy5zdWIgfHwgIXVzZXIub3JnYW5pemF0aW9uSWQpIHJldHVybiByZWplY3QoJ3VuYXV0aGVudGljYXRlZCcpO1xuICB0cnkge1xuICAgIGNvbnN0IGhlYWRlciA9IGRlY29kZUp3dEhlYWRlcih0b2tlbik7XG4gICAgaWYgKCFoZWFkZXI/LmtpZCB8fCAhaXNTZXJ2aWNlS2lkKGhlYWRlci5raWQpKSByZXR1cm4gcmVqZWN0KCdpbnZhbGlkJyk7XG4gICAgY29uc3QgY2xhaW1zID0gdmVyaWZ5U2VydmljZUp3dDx7IHR5cGU/OiBzdHJpbmc7IHByaW5jaXBhbFR5cGU/OiBzdHJpbmc7IHN1Yj86IHN0cmluZzsgb2JvPzogc3RyaW5nOyBvcmdhbml6YXRpb25JZD86IHN0cmluZyB9PihcbiAgICAgIHRva2VuLCB7IGtpZDogaGVhZGVyLmtpZCwgLi4uaXNzdWVyQXVkaWVuY2VPcHRpb25zKCkgfSxcbiAgICApO1xuICAgIGlmIChjbGFpbXMudHlwZSAhPT0gT05fQkVIQUxGX1RPS0VOX1RZUEUgfHwgY2xhaW1zLnByaW5jaXBhbFR5cGUgIT09ICdzZXJ2aWNlJykgcmV0dXJuIHJlamVjdCgnaW52YWxpZCcpO1xuICAgIGNvbnN0IGNhbGxlciA9IHNlcnZpY2VOYW1lT2YoY2xhaW1zKTtcbiAgICBpZiAoIWNhbGxlciB8fCBpc1NlcnZpY2VUb2tlbkRlbmllZChjbGFpbXMpKSByZXR1cm4gcmVqZWN0KCdkZW5pZWQnKTtcbiAgICBpZiAoIU9OX0JFSEFMRl9DQUxMRVJTLmluY2x1ZGVzKGNhbGxlcikpIHJldHVybiByZWplY3QoJ2NhbGxlcicpO1xuICAgIGlmIChjbGFpbXMub2JvICE9PSB1c2VyLnN1YikgcmV0dXJuIHJlamVjdCgnc3ViamVjdCcpO1xuICAgIGlmIChTdHJpbmcoY2xhaW1zLm9yZ2FuaXphdGlvbklkID8/ICcnKS50b0xvd2VyQ2FzZSgpICE9PSB1c2VyLm9yZ2FuaXphdGlvbklkLnRvTG93ZXJDYXNlKCkpIHJldHVybiByZWplY3QoJ29yZycpO1xuICAgIHJldHVybiBjYWxsZXI7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiByZWplY3QoJ2ludmFsaWQnKTtcbiAgfVxufVxuIl19
|
|
@@ -263,4 +263,4 @@ export function requireFeature(feature) {
|
|
|
263
263
|
next();
|
|
264
264
|
}, { kind: 'feature', feature });
|
|
265
265
|
}
|
|
266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1nYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlL3Blcm1pc3Npb24tZ2F0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQVF0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUF1QixNQUFNLDhCQUE4QixDQUFDO0FBQ2xKLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFtQixhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUMvQzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEdBQVksRUFBRSxVQUFzQjtJQUNwRSxPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNsRixDQUFDO0FBOEJEOzs7Ozs7O0dBT0c7QUFDSCxJQUFJLGtCQUFpRSxDQUFDO0FBRXRFOzs7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QVMsQ0FBQyx3QkFBd0IsQ0FDbkMsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLEVBQUUsQ0FBQztBQUNULENBQUM7QUFDRCxZQUFZLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztBQUUxRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFlO0lBQzVDLE9BQU8sWUFBWSxDQUFDLENBQUMsR0FBWSxFQUFFLEdBQWEsRUFBRSxJQUFrQixFQUFRLEVBQUU7UUFDNUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1lBQUUsT0FBTztRQUVuQyxxRUFBcUU7UUFDckUsdUVBQXVFO1FBQ3ZFLHFFQUFxRTtRQUNyRSxrQkFBa0I7UUFDbEIsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJO1lBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUVsRCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDMUMsNERBQTREO1lBQzVELDJEQUEyRDtZQUMzRCxzRUFBc0U7WUFDdEUsaUJBQWlCLENBQUMsR0FBRyxFQUFFLFdBQVcsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUM3QyxPQUFPLFNBQVMsQ0FDZCxHQUFHLEVBQUUsVUFBVSxDQUFDLFNBQVMsRUFDekIsd0NBQXdDLE9BQU8sR0FBRyxFQUNsRCxTQUFTLENBQUMsd0JBQXdCLENBQ25DLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxFQUFFLENBQUM7SUFDVCxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIEF1dGhvcml6YXRpb24gZ2F0ZXMg4oCUIHBlcm1pc3Npb25zLCBzeXN0ZW0gYWRtaW4sIGZlYXR1cmVzIOKAlCBhbmQgdGhlXG4gKiBgYXV0aHouZGVuaWVkYCBhdWRpdCBzaW5rIHRoZXkgcmVwb3J0IHJlZnVzYWxzIHRvLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUmVxdWVzdCwgUmVzcG9uc2UsIE5leHRGdW5jdGlvbiB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgdGFnUm91dGVHYXRlIH0gZnJvbSAnLi9yb3V0ZS10YWJsZS5qcyc7XG5pbXBvcnQgeyBpc1NlcnZpY2VQcmluY2lwYWwsIHNlcnZpY2VOYW1lT2YgfSBmcm9tICcuL3NlcnZpY2UtdG9rZW5zLmpzJztcbmltcG9ydCB7IEh0dHBTdGF0dXMgfSBmcm9tICcuLi9jb25zdGFudHMvaHR0cC1zdGF0dXMuanMnO1xuaW1wb3J0IHsgYXVkaXRBdXRoQmxvY2ssIGN1cnJlbnRBdWRpdENvbnRleHQsIHNhbml0aXplQ29ycmVsYXRpb25JZCwgc2FuaXRpemVVc2VyQWdlbnQsIHR5cGUgQXVkaXRBdXRoQmxvY2sgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdWRpdC1jb250ZXh0LmpzJztcbmltcG9ydCB7IHNlcnZpY2VJZGVudGl0eSB9IGZyb20gJy4uL3NlcnZpY2VzL3NlcnZpY2Uta2V5cy5qcyc7XG5pbXBvcnQgeyBFcnJvckNvZGUgfSBmcm9tICcuLi90eXBlcy9lcnJvci1jb2Rlcy5qcyc7XG5pbXBvcnQgeyB0eXBlIFBlcm1pc3Npb24sIGhhc1Blcm1pc3Npb24gfSBmcm9tICcuLi90eXBlcy9wZXJtaXNzaW9ucy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIgfSBmcm9tICcuLi91dGlscy9sb2dnZXIuanMnO1xuaW1wb3J0IHsgZW1pdENvdW50ZXIgfSBmcm9tICcuLi91dGlscy9tZXRyaWMtZW1pdHRlci5qcyc7XG5pbXBvcnQgeyBzZW5kRXJyb3IgfSBmcm9tICcuLi91dGlscy9yZXNwb25zZS5qcyc7XG5cbmNvbnN0IGxvZ2dlciA9IGNyZWF0ZUxvZ2dlcignYXV0aC1taWRkbGV3YXJlJyk7XG4vKipcbiAqIFdoZXRoZXIgdGhlIHJlcXVlc3QncyB1c2VyIGhvbGRzIGBwZXJtaXNzaW9uYC4gU3VwZXJhZG1pbnMgaW1wbGljaXRseSBob2xkXG4gKiBldmVyeSBwZXJtaXNzaW9uLiBSZWFkcyB0aGUgcmVzb2x2ZWQgYHBlcm1pc3Npb25zYCBjbGFpbSAoc2V0IGF0IHRva2VuIGlzc3VlLFxuICogb3IgcmUtZGVyaXZlZCBwZXIgcmVxdWVzdCBieSB0aGUgcGxhdGZvcm0pLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlckhhc1Blcm1pc3Npb24ocmVxOiBSZXF1ZXN0LCBwZXJtaXNzaW9uOiBQZXJtaXNzaW9uKTogYm9vbGVhbiB7XG4gIHJldHVybiBoYXNQZXJtaXNzaW9uKHJlcS51c2VyPy5wZXJtaXNzaW9ucywgcGVybWlzc2lvbiwgcmVxLnVzZXI/LmlzU3VwZXJBZG1pbik7XG59XG5cbi8qKlxuICogQ29udGV4dCBwYXNzZWQgdG8gYSByZWdpc3RlcmVkIGF1dGhvcml6YXRpb24tZGVuaWFsIGF1ZGl0b3Igd2hlbiBhXG4gKiBzdGF0ZS1jaGFuZ2luZyByZXF1ZXN0IGlzIHJlamVjdGVkIGJ5IGByZXF1aXJlUGVybWlzc2lvbmAgL1xuICogYHJlcXVpcmVTeXN0ZW1BZG1pbmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aHpEZW5pYWxJbmZvIHtcbiAgLyoqIFRoZSBkZW5pZWQgdXNlcidzIGlkIChgc3ViYCksIGlmIGF1dGhlbnRpY2F0ZWQuICovXG4gIGFjdG9ySWQ/OiBzdHJpbmc7XG4gIGFjdG9yRW1haWw/OiBzdHJpbmc7XG4gIC8qKiBUaGUgdXNlcidzIGFjdGl2ZSBvcmcgYXQgZGVuaWFsIHRpbWUuICovXG4gIG9yZ0lkPzogc3RyaW5nO1xuICAvKiogSFRUUCBtZXRob2QgKyBwYXRoIG9mIHRoZSByZWplY3RlZCByZXF1ZXN0LiAqL1xuICBtZXRob2Q6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xuICAvKiogV2hhdCB3YXMgcmVxdWlyZWQ6IHRoZSBtaXNzaW5nIHBlcm1pc3Npb24ocyksIG9yICdzeXN0ZW0tYWRtaW4nLiAqL1xuICByZXF1aXJlZDogc3RyaW5nO1xuICAvKiogQ2xpZW50IGlwIChgcmVxLmlwYCwgcHJveHktcmVzb2x2ZWQpLiAqL1xuICBpcD86IHN0cmluZztcbiAgLyoqIFNhbml0aXplZCwgbGVuZ3RoLWNhcHBlZCBVc2VyLUFnZW50LiAqL1xuICB1c2VyQWdlbnQ/OiBzdHJpbmc7XG4gIC8qKiBUaGUgcmVxdWVzdCdzIGNvcnJlbGF0aW9uIGlkICh0aGUgYW1iaWVudCBhdWRpdCBjb250ZXh0J3MsIGVsc2UgYSB2YWxpZCBgWC1SZXF1ZXN0LUlkYCkuICovXG4gIHJlcXVlc3RJZD86IHN0cmluZztcbiAgLyoqIFRoZSByZWFsIHN5c2FkbWluIGJlaGluZCBhbiBpbXBlcnNvbmF0aW9uIHRva2VuLCBmcm9tIHRoZSB2ZXJpZmllZCB0b2tlbi4gKi9cbiAgaW1wZXJzb25hdG9ySWQ/OiBzdHJpbmc7XG4gIC8qKiBUaGUgY3JlZGVudGlhbCB0aGF0IHdhcyByZWZ1c2VkIChrZXkgaWQsIHNlc3Npb24sIHNjb3BlLCDigKYpIOKAlCB0aGUgYF9hdXRoYCBibG9jay4gKi9cbiAgYXV0aD86IEF1ZGl0QXV0aEJsb2NrO1xufVxuXG4vKipcbiAqIE9wdGlvbmFsIHNpbmsgZm9yIGRlbmllZC1hdXRob3JpemF0aW9uIGV2ZW50cy4gTGVmdCB1bnNldCBieSBkZWZhdWx0IHNvXG4gKiBhcGktY29yZSBzdGF5cyBkZWNvdXBsZWQgZnJvbSBhbnkgYXVkaXQgdHJhbnNwb3J0IOKAlCBhIHNlcnZpY2UgcmVnaXN0ZXJzIG9uZVxuICogYXQgYm9vdCAodHlwaWNhbGx5IGZvcndhcmRpbmcgdG8gaXRzIGBSZW1vdGVBdWRpdENsaWVudGAgYXMgYW5cbiAqIGBhdXRoei5kZW5pZWRgIGV2ZW50LCBvciwgb24gcGxhdGZvcm0sIHRvIHRoZSBsb2NhbCBgYXVkaXQoKWAgaGVscGVyKS5cbiAqIE1VU1QgYmUgYmVzdC1lZmZvcnQ6IGl0IGlzIGludm9rZWQgaW5zaWRlIHRoZSByZXF1ZXN0IHBhdGgsIHNvIGl0IG11c3QgbmV2ZXJcbiAqIHRocm93IG9yIGJsb2NrICh0aGUgZ2F0ZSB3cmFwcyB0aGUgY2FsbCBpbiB0cnkvY2F0Y2ggcmVnYXJkbGVzcykuXG4gKi9cbmxldCBhdXRoekRlbmlhbEF1ZGl0b3I6ICgoaW5mbzogQXV0aHpEZW5pYWxJbmZvKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBSZWdpc3RlciAob3IgY2xlYXIsIHdpdGggYHVuZGVmaW5lZGApIHRoZSBwcm9jZXNzLXdpZGUgYXV0aG9yaXphdGlvbi1kZW5pYWxcbiAqIGF1ZGl0b3IuIElkZW1wb3RlbnQ7IHRoZSBsYXN0IHJlZ2lzdHJhdGlvbiB3aW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0QXV0aHpEZW5pYWxBdWRpdG9yKGZuOiAoKGluZm86IEF1dGh6RGVuaWFsSW5mbykgPT4gdm9pZCkgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgYXV0aHpEZW5pYWxBdWRpdG9yID0gZm47XG59XG5cbi8qKlxuICogRW1pdCBhIGRlbmlhbCBldmVudCwgYmVzdC1lZmZvcnQuIE9ubHkgZmlyZXMgZm9yIHN0YXRlLWNoYW5naW5nIChub24tR0VULFxuICogbm9uLUhFQUQvT1BUSU9OUykgcmVxdWVzdHMg4oCUIGEgcmVqZWN0ZWQgR0VUIGlzIGxvdy1zaWduYWwgcHJvYmluZyBub2lzZSBhbmRcbiAqIHdvdWxkIGFtcGxpZnkgYXVkaXQgdm9sdW1lIHVuZGVyIGEgc2Nhbi4gTmV2ZXIgdGhyb3dzLlxuICpcbiAqIFRoZSBwZXJtaXNzaW9uIGdhdGVzIGhlcmUgY2FsbCBpdCB0aGVtc2VsdmVzLiBFeHBvcnQgaXQgZm9yIGRhdGEtZHJpdmVuIGNoZWNrc1xuICogYSByb3V0ZSBtYWtlcyBpbmxpbmUgKGNyb3NzLW9yZyBhY2Nlc3MsIHNlcnZpY2Utb25seSBlbmRwb2ludHMpLCBzbyB0aG9zZSA0MDNzXG4gKiByZWFjaCB0aGUgc2FtZSBgYXV0aHouZGVuaWVkYCB0cmFpbC4gYHJlcXVpcmVkYCBuYW1lcyB3aGF0IHdhcyBtaXNzaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVjb3JkQXV0aHpEZW5pYWwocmVxOiBSZXF1ZXN0LCByZXF1aXJlZDogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IGF1ZGl0b3IgPSBhdXRoekRlbmlhbEF1ZGl0b3I7XG4gIGlmICghYXVkaXRvcikgcmV0dXJuO1xuICBjb25zdCBtZXRob2QgPSByZXEubWV0aG9kLnRvVXBwZXJDYXNlKCk7XG4gIGlmIChtZXRob2QgPT09ICdHRVQnIHx8IG1ldGhvZCA9PT0gJ0hFQUQnIHx8IG1ldGhvZCA9PT0gJ09QVElPTlMnKSByZXR1cm47XG4gIHRyeSB7XG4gICAgYXVkaXRvcih7XG4gICAgICBhY3RvcklkOiByZXEudXNlcj8uc3ViLFxuICAgICAgYWN0b3JFbWFpbDogcmVxLnVzZXI/LmVtYWlsLFxuICAgICAgb3JnSWQ6IHJlcS51c2VyPy5vcmdhbml6YXRpb25JZCxcbiAgICAgIG1ldGhvZCxcbiAgICAgIC8vIFN0cmlwIHRoZSBxdWVyeSBzdHJpbmcg4oCUIGEgZGVuaWVkIHJlcXVlc3QgbWF5IGNhcnJ5IGEgdG9rZW4vc2VjcmV0IGFzIGFcbiAgICAgIC8vIHF1ZXJ5IHBhcmFtLCBhbmQgdGhpcyBwYXRoIGlzIHBlcnNpc3RlZCB2ZXJiYXRpbSBpbnRvIHRoZSBhdWRpdCBsb2cuXG4gICAgICBwYXRoOiAocmVxLm9yaWdpbmFsVXJsIHx8IHJlcS51cmwpLnNwbGl0KCc/JylbMF0sXG4gICAgICByZXF1aXJlZCxcbiAgICAgIGlwOiByZXEuaXAsXG4gICAgICB1c2VyQWdlbnQ6IHNhbml0aXplVXNlckFnZW50KHJlcS5oZWFkZXJzPy5bJ3VzZXItYWdlbnQnXSksXG4gICAgICByZXF1ZXN0SWQ6IGN1cnJlbnRBdWRpdENvbnRleHQoKT8ucmVxdWVzdElkID8/IHNhbml0aXplQ29ycmVsYXRpb25JZChyZXEuaGVhZGVycz8uWyd4LXJlcXVlc3QtaWQnXSksXG4gICAgICBpbXBlcnNvbmF0b3JJZDogcmVxLnVzZXI/LmltcGVyc29uYXRvcklkLFxuICAgICAgYXV0aDogYXVkaXRBdXRoQmxvY2socmVxLnVzZXIpLFxuICAgIH0pO1xuICB9IGNhdGNoIHtcbiAgICAvLyBCZXN0LWVmZm9ydCDigJQgYSBicm9rZW4gYXVkaXRvciBtdXN0IG5ldmVyIGJyZWFrIHRoZSBhdXRoIGdhdGUuXG4gIH1cbn1cblxuLyoqIFRoZSBzaGFyZWQgZ2F0ZSBwcmVhbWJsZTogYW5zd2VyIDQwMSBhbmQgcmV0dXJuIGZhbHNlIHdoZW4gdW5hdXRoZW50aWNhdGVkLiAqL1xuZnVuY3Rpb24gcmVxdWlyZVVzZXIocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogcmVxIGlzIFJlcXVlc3QgJiB7IHVzZXI6IE5vbk51bGxhYmxlPFJlcXVlc3RbJ3VzZXInXT4gfSB7XG4gIGlmIChyZXEudXNlcikgcmV0dXJuIHRydWU7XG4gIHNlbmRFcnJvcihyZXMsIEh0dHBTdGF0dXMuVU5BVVRIT1JJWkVELCAnQXV0aGVudGljYXRpb24gcmVxdWlyZWQnLCBFcnJvckNvZGUuVU5BVVRIT1JJWkVEKTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKiogQXVkaXQgKyBhbnN3ZXIgYSBwZXJtaXNzaW9uIHJlZnVzYWwgKGBtaXNzaW5nYCBkZWZhdWx0cyB0byBldmVyeSByZXF1aXJlZCBwZXJtaXNzaW9uKS4gKi9cbmZ1bmN0aW9uIGRlbnlQZXJtaXNzaW9uKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXSwgbW9kZTogJ29yJyB8ICdhbmQnLCBtaXNzaW5nOiBQZXJtaXNzaW9uW10gPSBwZXJtaXNzaW9ucyk6IHZvaWQge1xuICByZWNvcmRBdXRoekRlbmlhbChyZXEsIHBlcm1pc3Npb25zLmpvaW4oYCAke21vZGV9IGApKTtcbiAgc2VuZEVycm9yKFxuICAgIHJlcywgSHR0cFN0YXR1cy5GT1JCSURERU4sXG4gICAgYE1pc3NpbmcgcmVxdWlyZWQgcGVybWlzc2lvbjogJHttaXNzaW5nLmpvaW4oYCAke21vZGV9IGApfWAsXG4gICAgRXJyb3JDb2RlLklOU1VGRklDSUVOVF9QRVJNSVNTSU9OUyxcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXF1aXJlcyB0aGF0IHRoZSB1c2VyIGhvbGQgQVQgTEVBU1QgT05FIG9mIHRoZSBnaXZlbiBwZXJtaXNzaW9ucyAob3IgYmUgYVxuICogc3VwZXJhZG1pbikuIFVzZSBhZnRlciByZXF1aXJlQXV0aC4gTWlycm9ycyBgcmVxdWlyZVJvbGVgJ3MgYW55LW9mIHNlbWFudGljcztcbiAqIHBhc3MgYSBzaW5nbGUgcGVybWlzc2lvbiBmb3IgYSBzcGVjaWZpYyBhY3Rpb24sIG9yIHNldmVyYWwgd2hlbiBhbnkgb25lIG9mXG4gKiB0aGVtIHNob3VsZCBncmFudCBhY2Nlc3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXF1aXJlUGVybWlzc2lvbiguLi5wZXJtaXNzaW9uczogUGVybWlzc2lvbltdKSB7XG4gIHJldHVybiB0YWdSb3V0ZUdhdGUoKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKTogdm9pZCA9PiB7XG4gICAgaWYgKCFyZXF1aXJlVXNlcihyZXEsIHJlcykpIHJldHVybjtcbiAgICAvLyB1c2VySGFzUGVybWlzc2lvbiDihpIgaGFzUGVybWlzc2lvbiBhbHJlYWR5IGdyYW50cyBzdXBlcmFkbWlucyBldmVyeVxuICAgIC8vIHBlcm1pc3Npb24sIHNvIHRoaXMgc2luZ2xlIGNoZWNrIGNvdmVycyBib3RoIHRoZSBzdXBlcmFkbWluIGJ5cGFzcyBhbmRcbiAgICAvLyB0aGUgYW55LW9mIG1lbWJlcnNoaXAgdGVzdCB3aXRob3V0IHJlLWlubGluaW5nIGVpdGhlci5cbiAgICBpZiAocGVybWlzc2lvbnMuc29tZSgocCkgPT4gdXNlckhhc1Blcm1pc3Npb24ocmVxLCBwKSkpIHJldHVybiBuZXh0KCk7XG4gICAgZGVueVBlcm1pc3Npb24ocmVxLCByZXMsIHBlcm1pc3Npb25zLCAnb3InKTtcbiAgfSwgeyBraW5kOiAncGVybWlzc2lvbicsIG1vZGU6ICdhbnknLCBwZXJtaXNzaW9ucyB9KTtcbn1cblxuLyoqXG4gKiBSZXF1aXJlcyB0aGF0IHRoZSB1c2VyIGhvbGQgRVZFUlkgb25lIG9mIHRoZSBnaXZlbiBwZXJtaXNzaW9ucyAob3IgYmUgYVxuICogc3VwZXJhZG1pbikg4oCUIHRoZSBBTkQgY291bnRlcnBhcnQgdG8gYHJlcXVpcmVQZXJtaXNzaW9uYCdzIGFueS1vZi4gVXNlIGZvciBhXG4gKiBzZW5zaXRpdmUgYWN0aW9uIHRoYXQgbGVnaXRpbWF0ZWx5IGRlbWFuZHMgdHdvIGRpc3RpbmN0IGNhcGFiaWxpdGllcyBhdCBvbmNlXG4gKiAoZS5nLiBhIGNyb3NzLXN1cmZhY2Ugb3BlcmF0aW9uKSwgc28gdGhlIGd1YXJhbnRlZSBpcyBleHBsaWNpdCByYXRoZXIgdGhhblxuICogYXBwcm94aW1hdGVkIGJ5IGNoYWluaW5nIHR3byBgcmVxdWlyZVBlcm1pc3Npb25gIGdhdGVzLiBTdXBlcmFkbWlucyBieXBhc3NcbiAqICh0aGV5IGltcGxpY2l0bHkgaG9sZCBldmVyeSBwZXJtaXNzaW9uKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVBbGxQZXJtaXNzaW9ucyguLi5wZXJtaXNzaW9uczogUGVybWlzc2lvbltdKSB7XG4gIHJldHVybiB0YWdSb3V0ZUdhdGUoKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKTogdm9pZCA9PiB7XG4gICAgaWYgKCFyZXF1aXJlVXNlcihyZXEsIHJlcykpIHJldHVybjtcbiAgICBjb25zdCBtaXNzaW5nID0gcGVybWlzc2lvbnMuZmlsdGVyKChwKSA9PiAhdXNlckhhc1Blcm1pc3Npb24ocmVxLCBwKSk7XG4gICAgaWYgKG1pc3NpbmcubGVuZ3RoID09PSAwKSByZXR1cm4gbmV4dCgpO1xuICAgIGRlbnlQZXJtaXNzaW9uKHJlcSwgcmVzLCBwZXJtaXNzaW9ucywgJ2FuZCcsIG1pc3NpbmcpO1xuICB9LCB7IGtpbmQ6ICdwZXJtaXNzaW9uJywgbW9kZTogJ2FsbCcsIHBlcm1pc3Npb25zIH0pO1xufVxuXG4vKipcbiAqIExpa2Uge0BsaW5rIHJlcXVpcmVQZXJtaXNzaW9ufSAoYW55LW9mKSBidXQgQUxTTyBhZG1pdHMgYW4gaW50ZXJuYWwgc2VydmljZVxuICogcHJpbmNpcGFsIChgcHJpbmNpcGFsVHlwZTogJ3NlcnZpY2UnYCkuIEZvciBSRUFEIGVuZHBvaW50cyB0aGF0IEJPVEhcbiAqIGludGVyYWN0aXZlIHVzZXJzIOKAlCB3aG8gbXVzdCBob2xkIG9uZSBvZiB0aGUgYDpyZWFkYCBjYXBhYmlsaXRpZXMg4oCUIEFORFxuICogc2VydmljZS10by1zZXJ2aWNlIGNhbGxlcnMgbGVnaXRpbWF0ZWx5IGhpdDsgc2VydmljZSB0b2tlbnMgY2Fycnkgbm9cbiAqIHBlcm1pc3Npb24gY2xhaW1zICh0aGV5J3JlIGxlYXN0LXByaXZpbGVnZSBgcm9sZTptZW1iZXJgKSwgc28gYSBwbGFpblxuICogYHJlcXVpcmVQZXJtaXNzaW9uYCB3b3VsZCB3cm9uZ2x5IDQwMyB0aGVtLiBTdXBlcmFkbWlucyBwYXNzIHZpYVxuICogYHVzZXJIYXNQZXJtaXNzaW9uYCdzIGltcGxpY2l0LWFsbC4gVXNlIG9ubHkgd2hlcmUgYSBzZXJ2aWNlIGNhbGxlciBpcyBhIGtub3duLFxuICogaW50ZW5kZWQgY29uc3VtZXIgb2YgdGhlIHJvdXRlICh2ZXJpZnkgdGhlIGNhbGxlcnMpOyBwcmVmZXIgcGxhaW5cbiAqIGByZXF1aXJlUGVybWlzc2lvbmAgZm9yIHB1cmVseSB1c2VyLWZhY2luZyByZWFkcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVQZXJtaXNzaW9uT3JTZXJ2aWNlKC4uLnBlcm1pc3Npb25zOiBQZXJtaXNzaW9uW10pIHtcbiAgcmV0dXJuIHRhZ1JvdXRlR2F0ZSgocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pOiB2b2lkID0+IHtcbiAgICBpZiAoIXJlcXVpcmVVc2VyKHJlcSwgcmVzKSkgcmV0dXJuO1xuICAgIGlmIChpc1NlcnZpY2VQcmluY2lwYWwocmVxKSB8fCBwZXJtaXNzaW9ucy5zb21lKChwKSA9PiB1c2VySGFzUGVybWlzc2lvbihyZXEsIHApKSkgcmV0dXJuIG5leHQoKTtcbiAgICBkZW55UGVybWlzc2lvbihyZXEsIHJlcywgcGVybWlzc2lvbnMsICdvcicpO1xuICB9LCB7IGtpbmQ6ICdwZXJtaXNzaW9uJywgbW9kZTogJ2FueScsIHBlcm1pc3Npb25zLCBhbGxvd1NlcnZpY2U6IHRydWUgfSk7XG59XG5cbi8qKlxuICogR2F0ZSBhbiBlbmRwb2ludCB0byBpbnRlcm5hbCBzZXJ2aWNlLXRvLXNlcnZpY2UgY2FsbGVycyBvbmx5IChhXG4gKiBgcHJpbmNpcGFsVHlwZTogJ3NlcnZpY2UnYCBwcmluY2lwYWwgbWludGVkIHZpYSB7QGxpbmsgc2lnblNlcnZpY2VUb2tlbn0gLyBgZ2V0U2VydmljZUF1dGhIZWFkZXJgKS5cbiAqIFJlamVjdHMgYW55IHVzZXIgdG9rZW4uIEZvciBOT04tdXNlci1mYWNpbmcgZW5kcG9pbnRzIOKAlCBlbnRpdHktZXZlbnQgaW5nZXN0LFxuICogYXV0by1zdWJzY3JpYmUsIGFuZCBzaW1pbGFyIHBlZXItc2VydmljZSBob29rcyDigJQgdGhhdCBhIGJyb3dzZXIgbXVzdCBuZXZlclxuICogcmVhY2guIENvbXBvc2UgYWZ0ZXIgYHJlcXVpcmVBdXRoYCBzbyBgcmVxLnVzZXJgIGlzIHBvcHVsYXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVTZXJ2aWNlUHJpbmNpcGFsKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKTogdm9pZCB7XG4gIGlmICghaXNTZXJ2aWNlUHJpbmNpcGFsKHJlcSkpIHtcbiAgICAvLyA0MDMgKG5vdCA0MDApIOKAlCB0aGlzIGlzIGFuIGF1dGhvcml6YXRpb24gcmVmdXNhbDsgc3RhdHVzIG11c3QgbWF0Y2ggdGhlXG4gICAgLy8gSU5TVUZGSUNJRU5UX1BFUk1JU1NJT05TIGNvZGUgYW5kIHRoZSBzaWJsaW5nIGdhdGVzIChyZXF1aXJlUGVybWlzc2lvbiwgZXRjLikuXG4gICAgcmV0dXJuIHNlbmRFcnJvcihyZXMsIEh0dHBTdGF0dXMuRk9SQklEREVOLCAnSW50ZXJuYWwgc2VydmljZSBjYWxscyBvbmx5JywgRXJyb3JDb2RlLklOU1VGRklDSUVOVF9QRVJNSVNTSU9OUyk7XG4gIH1cbiAgbmV4dCgpO1xufVxudGFnUm91dGVHYXRlKHJlcXVpcmVTZXJ2aWNlUHJpbmNpcGFsLCB7IGtpbmQ6ICdzZXJ2aWNlUHJpbmNpcGFsJyB9KTtcblxuLyoqXG4gKiBUSEUgZ2F0ZSBmb3IgYW4gSU5URVJOQUwgcm91dGUg4oCUIHRoZSBvbmUgZXZlcnkgYC9pbnRlcm5hbC8qYCBwYXRoLCB0aGVcbiAqIHF1b3RhIHVzYWdlIGNvdW50ZXJzLCB0aGUgZW50aXR5LWV2ZW50IGluZ2VzdCBhbmQgdGhlIGF1ZGl0IGluZ2VzdCBnbyB0aHJvdWdoLlxuICpcbiAqIFR3byBydWxlcywgYm90aCBmYWlsLWNsb3NlZDpcbiAqXG4gKiAgMS4gKipObyB1c2VyIHRva2VuLCBldmVyLioqIE5vdCBhIG1lbWJlcidzLCBub3QgYSBzdXBlcmFkbWluJ3MsIG5vdCBhXG4gKiAgICAgc2VydmljZS1hY2NvdW50IGtleSdzLiBBbiBpbnRlcm5hbCByb3V0ZSBpcyBhIHBlZXItc2VydmljZSBBUEkgc3VyZmFjZSwgc29cbiAqICAgICBcImEgc3VmZmljaWVudGx5IHByaXZpbGVnZWQgaHVtYW5cIiBpcyBub3QgYW4gYWNjZXB0YWJsZSBjYWxsZXIg4oCUIHRoYXRcbiAqICAgICBlcXVpdmFsZW5jZSBpcyBleGFjdGx5IGhvdyBhIGJyb3dzZXItcmVhY2hhYmxlIHBhdGggYmVjb21lcyBhIHRlbmFudFxuICogICAgIGJvdW5kYXJ5IGJ1Zy4gYHJlcXVpcmVTZXJ2aWNlUHJpbmNpcGFsYCBhbHJlYWR5IHJlZnVzZWQgdXNlcnM7IHRoaXMgYWxzb1xuICogICAgIGNsb3NlcyB0aGUgYHx8IGlzU3lzdGVtQWRtaW4ocmVxKWAgZXNjYXBlIGhhdGNoZXMgdGhhdCBoYWQgZ3Jvd24gYXJvdW5kXG4gKiAgICAgdGhlIGluZGl2aWR1YWwgaW50ZXJuYWwgcm91dGVzLlxuICogIDIuICoqT25seSB0aGUgTkFNRUQgY2FsbGVycy4qKiBgY2FsbGVyc2AgbGlzdHMgdGhlIHNlcnZpY2VzIHRoYXQgbGVnaXRpbWF0ZWx5XG4gKiAgICAgY2FsbCB0aGlzIHJvdXRlLCBhbmQgdGhlIG5hbWUgaXMgY3J5cHRvZ3JhcGhpY2FsbHkgYm91bmQgdG8gdGhlIHNpZ25pbmdcbiAqICAgICBrZXkgKGBzZXJ2aWNlcy9zZXJ2aWNlLWtleXMudHNgKSwgc28gdGhpcyBpcyBhbiBpZGVudGl0eSBjaGVjayByYXRoZXIgdGhhblxuICogICAgIGEgY2xhaW0gY2hlY2suIEl0IGlzIHRoZSBzYW1lIGFsbG93LWxpc3QgdGhlIG1lc2ggcG9saWN5IG5hbWVzLCBhdCB0aGVcbiAqICAgICBsYXllciB0aGF0IGFsc28gaG9sZHMgaW4gZG9ja2VyIGNvbXBvc2UsIHdoZXJlIHRoZXJlIGlzIG5vIG1lc2ggYXQgYWxsIOKAlFxuICogICAgIHRoZSBJc3RpbyBgQXV0aG9yaXphdGlvblBvbGljeWAgaXMgZGVmZW5jZSBpbiBkZXB0aCBvbiB0b3AsIG5ldmVyIHRoZVxuICogICAgIGVuZm9yY2VtZW50LlxuICpcbiAqIENvbXBvc2UgYWZ0ZXIgYHJlcXVpcmVBdXRoYCBzbyBgcmVxLnVzZXJgIGlzIHBvcHVsYXRlZC4gUmVmdXNhbHMgYXJlIGNvdW50ZWRcbiAqIChgaW50ZXJuYWxfcm91dGVfcmVmdXNlZF90b3RhbGApIGFuZCBhdWRpdGVkIHRocm91Z2ggdGhlIHNoYXJlZCBgYXV0aHouZGVuaWVkYFxuICogc2luay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVJbnRlcm5hbFNlcnZpY2Uob3B0aW9uczogeyBjYWxsZXJzOiByZWFkb25seSBzdHJpbmdbXSB9KSB7XG4gIGNvbnN0IGFsbG93ZWQgPSBuZXcgU2V0KG9wdGlvbnMuY2FsbGVycyk7XG4gIHJldHVybiB0YWdSb3V0ZUdhdGUoKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKTogdm9pZCA9PiB7XG4gICAgY29uc3QgcmVmdXNlID0gKHJlYXNvbjogJ3VuYXV0aGVudGljYXRlZCcgfCAndXNlcl90b2tlbicgfCAnd3JvbmdfY2FsbGVyJyk6IHZvaWQgPT4ge1xuICAgICAgZW1pdENvdW50ZXIoJ2ludGVybmFsX3JvdXRlX3JlZnVzZWRfdG90YWwnLCB7XG4gICAgICAgIHNlcnZpY2U6IHNlcnZpY2VJZGVudGl0eSgpLFxuICAgICAgICByb3V0ZTogcmVxLnJvdXRlPy5wYXRoID8gYCR7cmVxLm1ldGhvZH0gJHtyZXEuYmFzZVVybH0ke3JlcS5yb3V0ZS5wYXRofWAgOiBgJHtyZXEubWV0aG9kfSAkeyhyZXEub3JpZ2luYWxVcmwgfHwgcmVxLnVybCkuc3BsaXQoJz8nKVswXX1gLFxuICAgICAgICByZWFzb24sXG4gICAgICAgIGNhbGxlcjogc2VydmljZU5hbWVPZihyZXEudXNlcikgPz8gJ25vbmUnLFxuICAgICAgfSk7XG4gICAgICByZWNvcmRBdXRoekRlbmlhbChyZXEsIGBpbnRlcm5hbC1zZXJ2aWNlICgke29wdGlvbnMuY2FsbGVycy5qb2luKCcsICcpfSlgKTtcbiAgICAgIGlmIChyZWFzb24gPT09ICd1bmF1dGhlbnRpY2F0ZWQnKSB7XG4gICAgICAgIHJldHVybiBzZW5kRXJyb3IocmVzLCBIdHRwU3RhdHVzLlVOQVVUSE9SSVpFRCwgJ0F1dGhlbnRpY2F0aW9uIHJlcXVpcmVkJywgRXJyb3JDb2RlLlVOQVVUSE9SSVpFRCk7XG4gICAgICB9XG4gICAgICBsb2dnZXIud2FybignUmVmdXNlZCBhbiBpbnRlcm5hbCByb3V0ZScsIHsgcmVhc29uLCBwYXRoOiAocmVxLm9yaWdpbmFsVXJsIHx8IHJlcS51cmwpLnNwbGl0KCc/JylbMF0sIGNhbGxlcjogc2VydmljZU5hbWVPZihyZXEudXNlcikgfSk7XG4gICAgICByZXR1cm4gc2VuZEVycm9yKHJlcywgSHR0cFN0YXR1cy5GT1JCSURERU4sICdJbnRlcm5hbCBzZXJ2aWNlIGNhbGxzIG9ubHknLCBFcnJvckNvZGUuSU5TVUZGSUNJRU5UX1BFUk1JU1NJT05TKTtcbiAgICB9O1xuXG4gICAgaWYgKCFyZXEudXNlcikgcmV0dXJuIHJlZnVzZSgndW5hdXRoZW50aWNhdGVkJyk7XG4gICAgaWYgKCFpc1NlcnZpY2VQcmluY2lwYWwocmVxKSkgcmV0dXJuIHJlZnVzZSgndXNlcl90b2tlbicpO1xuICAgIGNvbnN0IGNhbGxlciA9IHNlcnZpY2VOYW1lT2YocmVxLnVzZXIpO1xuICAgIGlmICghY2FsbGVyIHx8ICFhbGxvd2VkLmhhcyhjYWxsZXIpKSByZXR1cm4gcmVmdXNlKCd3cm9uZ19jYWxsZXInKTtcbiAgICBuZXh0KCk7XG4gIH0sIHsga2luZDogJ3NlcnZpY2VQcmluY2lwYWwnIH0sIHsga2luZDogJ2ludGVybmFsU2VydmljZScsIGNhbGxlcnM6IFsuLi5vcHRpb25zLmNhbGxlcnNdIH0pO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSByZXF1ZXN0IGlzIGZyb20gYSBzeXN0ZW0gYWRtaW4uXG4gKlxuICogQXV0aG9yaXR5IGlzIGdyYW50ZWQgc29sZWx5IGJ5IHRoZSB1c2VyLWxldmVsIGBpc1N1cGVyQWRtaW5gIGZsYWcgY2FycmllZFxuICogaW4gdGhlIEpXVCDigJQgbmV2ZXIgYnkgbWVtYmVyc2hpcCBpbiB0aGUgd2VsbC1rbm93biAnc3lzdGVtJyBvcmcsIHdoaWNoIHdvdWxkXG4gKiBjb25mbGF0ZSBhIFBpcGVsaW5lIEJ1aWxkZXIgb3BlcmF0b3Igd2l0aCBhIGN1c3RvbWVyIHRlbmFudCBhbmQgbGV0IGFueVxuICogd3JpdGUgdGhhdCBjcmVhdGVkIGEgJ3N5c3RlbSctbmFtZWQgb3JnIHF1aWV0bHkgZ3JhbnQgY3Jvc3Mtb3JnIGF1dGhvcml0eS4gVGhlIGBzeXN0ZW1gIG9yZyBzdGlsbCBleGlzdHMgYXMgYSAqY29udGVudCBob2xkZXIqIGZvciBzaGFyZWRcbiAqIHNhbXBsZSBkYXRhOyBpdCBjb25mZXJzIG5vIHByaXZpbGVnZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3lzdGVtQWRtaW4ocmVxOiBSZXF1ZXN0KTogYm9vbGVhbiB7XG4gIHJldHVybiByZXEudXNlcj8uaXNTdXBlckFkbWluID09PSB0cnVlO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdGhlIHJlcXVlc3QncyB0b2tlbiBjYXJyaWVzIGEgc3BlY2lmaWMgY2FwYWJpbGl0eSBgc2NvcGVgIChlLmcuXG4gKiBgJ3JlcG9ydGluZzppbmdlc3QnYCkuIFVzZWQgdG8gZ2F0ZSBlbmRwb2ludHMgdGhhdCBhY2NlcHQgYSBuYXJyb3cgbWFjaGluZVxuICogaWRlbnRpdHkg4oCUIGEgbm9ybWFsIGludGVyYWN0aXZlIHVzZXIgdG9rZW4gaGFzIG5vIGBzY29wZWAgYW5kIHJldHVybnMgZmFsc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNTY29wZShyZXE6IFJlcXVlc3QsIHNjb3BlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHJlcS51c2VyPy5zY29wZSA9PT0gc2NvcGU7XG59XG5cbi8qKiBSZXF1aXJlcyBhIHN5c3RlbSBhZG1pbiDigJQgZ3JhbnRlZCBzb2xlbHkgYnkgdGhlIGBpc1N1cGVyQWRtaW5gIHRva2VuIGNsYWltLlxuICogIFVzZSBhZnRlciByZXF1aXJlQXV0aC4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXF1aXJlU3lzdGVtQWRtaW4oXG4gIHJlcTogUmVxdWVzdCxcbiAgcmVzOiBSZXNwb25zZSxcbiAgbmV4dDogTmV4dEZ1bmN0aW9uLFxuKTogdm9pZCB7XG4gIGlmICghaXNTeXN0ZW1BZG1pbihyZXEpKSB7XG4gICAgcmVjb3JkQXV0aHpEZW5pYWwocmVxLCAnc3lzdGVtLWFkbWluJyk7XG4gICAgcmV0dXJuIHNlbmRFcnJvcihcbiAgICAgIHJlcywgSHR0cFN0YXR1cy5GT1JCSURERU4sXG4gICAgICAnQWNjZXNzIGRlbmllZC4gT25seSBzeXN0ZW0gYWRtaW5pc3RyYXRvcnMgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uJyxcbiAgICAgIEVycm9yQ29kZS5JTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlMsXG4gICAgKTtcbiAgfVxuICBuZXh0KCk7XG59XG50YWdSb3V0ZUdhdGUocmVxdWlyZVN5c3RlbUFkbWluLCB7IGtpbmQ6ICdzeXN0ZW1BZG1pbicgfSk7XG5cbi8qKlxuICogUmVxdWlyZSBhIHNwZWNpZmljIGZlYXR1cmUgZmxhZy4gVXNlIGFmdGVyIHJlcXVpcmVBdXRoLlxuICogQ2hlY2tzIHRoZSBgZmVhdHVyZXNgIGFycmF5IGluIHRoZSBKV1QgcGF5bG9hZCAoc2V0IGF0IHRva2VuIGlzc3VhbmNlKS5cbiAqIFN5c2FkbWlucyAoaXNTdXBlckFkbWluKSBieXBhc3Mg4oCUIHRoZXkgYWx3YXlzIGhhdmUgZXZlcnkgZmVhdHVyZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVGZWF0dXJlKGZlYXR1cmU6IHN0cmluZykge1xuICByZXR1cm4gdGFnUm91dGVHYXRlKChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIG5leHQ6IE5leHRGdW5jdGlvbik6IHZvaWQgPT4ge1xuICAgIGlmICghcmVxdWlyZVVzZXIocmVxLCByZXMpKSByZXR1cm47XG5cbiAgICAvLyBTeXNhZG1pbnMgZ2V0IGFsbCBmZWF0dXJlczsgdGhlIGBmZWF0dXJlc2AgYXJyYXkgb24gdGhlaXIgdG9rZW4gaXNcbiAgICAvLyBwb3B1bGF0ZWQgd2l0aCBldmVyeSBmbGFnIGF0IGlzc3VhbmNlIHRpbWUgYnV0IHRoZSBieXBhc3MgaGVyZSBrZWVwc1xuICAgIC8vIHRoZSBydWxlIGV4cGxpY2l0IGFuZCBzdXJ2aXZlcyBhIHRva2VuIGlzc3VlZCBiZWZvcmUgYSBuZXcgZmVhdHVyZVxuICAgIC8vIGZsYWcgd2FzIGFkZGVkLlxuICAgIGlmIChyZXEudXNlci5pc1N1cGVyQWRtaW4gPT09IHRydWUpIHJldHVybiBuZXh0KCk7XG5cbiAgICBpZiAoIXJlcS51c2VyLmZlYXR1cmVzPy5pbmNsdWRlcyhmZWF0dXJlKSkge1xuICAgICAgLy8gUm91dGUgZmVhdHVyZS1nYXRlIGRlbmlhbHMgdGhyb3VnaCB0aGUgc2FtZSBhdWRpdCBzaW5rIGFzXG4gICAgICAvLyByZXF1aXJlUGVybWlzc2lvbiAvIHJlcXVpcmVTeXN0ZW1BZG1pbiBzbyBhIHByb2JlIGZvciBhblxuICAgICAgLy8gdW5lbnRpdGxlZCBjYXBhYmlsaXR5IGxlYXZlcyBhIHRyYWlsIChzdGF0ZS1jaGFuZ2luZyBtZXRob2RzIG9ubHkpLlxuICAgICAgcmVjb3JkQXV0aHpEZW5pYWwocmVxLCBgZmVhdHVyZToke2ZlYXR1cmV9YCk7XG4gICAgICByZXR1cm4gc2VuZEVycm9yKFxuICAgICAgICByZXMsIEh0dHBTdGF0dXMuRk9SQklEREVOLFxuICAgICAgICBgVGhpcyBmZWF0dXJlIHJlcXVpcmVzIGEgaGlnaGVyIHBsYW4gKCR7ZmVhdHVyZX0pYCxcbiAgICAgICAgRXJyb3JDb2RlLklOU1VGRklDSUVOVF9QRVJNSVNTSU9OUyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbmV4dCgpO1xuICB9LCB7IGtpbmQ6ICdmZWF0dXJlJywgZmVhdHVyZSB9KTtcbn1cblxuIl19
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1nYXRlcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21pZGRsZXdhcmUvcGVybWlzc2lvbi1nYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBUXRDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQXVCLE1BQU0sOEJBQThCLENBQUM7QUFDbEosT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQW1CLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQy9DOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsR0FBWSxFQUFFLFVBQXNCO0lBQ3BFLE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQ2xGLENBQUM7QUE4QkQ7Ozs7Ozs7R0FPRztBQUNILElBQUksa0JBQWlFLENBQUM7QUFFdEU7OztHQUdHO0FBQ0gsTUFBTSxV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QUNuQyxDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksRUFBRSxDQUFDO0FBQ1QsQ0FBQztBQUNELFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0FBRTFEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQWU7SUFDNUMsT0FBTyxZQUFZLENBQUMsQ0FBQyxHQUFZLEVBQUUsR0FBYSxFQUFFLElBQWtCLEVBQVEsRUFBRTtRQUM1RSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7WUFBRSxPQUFPO1FBRW5DLHFFQUFxRTtRQUNyRSx1RUFBdUU7UUFDdkUscUVBQXFFO1FBQ3JFLGtCQUFrQjtRQUNsQixJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUk7WUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO1FBRWxELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyw0REFBNEQ7WUFDNUQsMkRBQTJEO1lBQzNELHNFQUFzRTtZQUN0RSxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsV0FBVyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLE9BQU8sU0FBUyxDQUNkLEdBQUcsRUFBRSxVQUFVLENBQUMsU0FBUyxFQUN6Qix3Q0FBd0MsT0FBTyxHQUFHLEVBQ2xELFNBQVMsQ0FBQyx3QkFBd0IsQ0FDbkMsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLEVBQUUsQ0FBQztJQUNULENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogQXV0aG9yaXphdGlvbiBnYXRlcyDigJQgcGVybWlzc2lvbnMsIHN5c3RlbSBhZG1pbiwgZmVhdHVyZXMg4oCUIGFuZCB0aGVcbiAqIGBhdXRoei5kZW5pZWRgIGF1ZGl0IHNpbmsgdGhleSByZXBvcnQgcmVmdXNhbHMgdG8uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBSZXF1ZXN0LCBSZXNwb25zZSwgTmV4dEZ1bmN0aW9uIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgeyB0YWdSb3V0ZUdhdGUgfSBmcm9tICcuL3JvdXRlLXRhYmxlLmpzJztcbmltcG9ydCB7IGlzU2VydmljZVByaW5jaXBhbCwgc2VydmljZU5hbWVPZiB9IGZyb20gJy4vc2VydmljZS10b2tlbnMuanMnO1xuaW1wb3J0IHsgSHR0cFN0YXR1cyB9IGZyb20gJy4uL2NvbnN0YW50cy9odHRwLXN0YXR1cy5qcyc7XG5pbXBvcnQgeyBhdWRpdEF1dGhCbG9jaywgY3VycmVudEF1ZGl0Q29udGV4dCwgc2FuaXRpemVDb3JyZWxhdGlvbklkLCBzYW5pdGl6ZVVzZXJBZ2VudCwgdHlwZSBBdWRpdEF1dGhCbG9jayB9IGZyb20gJy4uL3NlcnZpY2VzL2F1ZGl0LWNvbnRleHQuanMnO1xuaW1wb3J0IHsgc2VydmljZUlkZW50aXR5IH0gZnJvbSAnLi4vc2VydmljZXMvc2VydmljZS1rZXlzLmpzJztcbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJy4uL3R5cGVzL2Vycm9yLWNvZGVzLmpzJztcbmltcG9ydCB7IHR5cGUgUGVybWlzc2lvbiwgaGFzUGVybWlzc2lvbiB9IGZyb20gJy4uL3R5cGVzL3Blcm1pc3Npb25zLmpzJztcbmltcG9ydCB7IGNyZWF0ZUxvZ2dlciB9IGZyb20gJy4uL3V0aWxzL2xvZ2dlci5qcyc7XG5pbXBvcnQgeyBlbWl0Q291bnRlciB9IGZyb20gJy4uL3V0aWxzL21ldHJpYy1lbWl0dGVyLmpzJztcbmltcG9ydCB7IHNlbmRFcnJvciB9IGZyb20gJy4uL3V0aWxzL3Jlc3BvbnNlLmpzJztcblxuY29uc3QgbG9nZ2VyID0gY3JlYXRlTG9nZ2VyKCdhdXRoLW1pZGRsZXdhcmUnKTtcbi8qKlxuICogV2hldGhlciB0aGUgcmVxdWVzdCdzIHVzZXIgaG9sZHMgYHBlcm1pc3Npb25gLiBTdXBlcmFkbWlucyBpbXBsaWNpdGx5IGhvbGRcbiAqIGV2ZXJ5IHBlcm1pc3Npb24uIFJlYWRzIHRoZSByZXNvbHZlZCBgcGVybWlzc2lvbnNgIGNsYWltIChzZXQgYXQgdG9rZW4gaXNzdWUsXG4gKiBvciByZS1kZXJpdmVkIHBlciByZXF1ZXN0IGJ5IHRoZSBwbGF0Zm9ybSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VySGFzUGVybWlzc2lvbihyZXE6IFJlcXVlc3QsIHBlcm1pc3Npb246IFBlcm1pc3Npb24pOiBib29sZWFuIHtcbiAgcmV0dXJuIGhhc1Blcm1pc3Npb24ocmVxLnVzZXI/LnBlcm1pc3Npb25zLCBwZXJtaXNzaW9uLCByZXEudXNlcj8uaXNTdXBlckFkbWluKTtcbn1cblxuLyoqXG4gKiBDb250ZXh0IHBhc3NlZCB0byBhIHJlZ2lzdGVyZWQgYXV0aG9yaXphdGlvbi1kZW5pYWwgYXVkaXRvciB3aGVuIGFcbiAqIHN0YXRlLWNoYW5naW5nIHJlcXVlc3QgaXMgcmVqZWN0ZWQgYnkgYHJlcXVpcmVQZXJtaXNzaW9uYCAvXG4gKiBgcmVxdWlyZVN5c3RlbUFkbWluYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoekRlbmlhbEluZm8ge1xuICAvKiogVGhlIGRlbmllZCB1c2VyJ3MgaWQgKGBzdWJgKSwgaWYgYXV0aGVudGljYXRlZC4gKi9cbiAgYWN0b3JJZD86IHN0cmluZztcbiAgYWN0b3JFbWFpbD86IHN0cmluZztcbiAgLyoqIFRoZSB1c2VyJ3MgYWN0aXZlIG9yZyBhdCBkZW5pYWwgdGltZS4gKi9cbiAgb3JnSWQ/OiBzdHJpbmc7XG4gIC8qKiBIVFRQIG1ldGhvZCArIHBhdGggb2YgdGhlIHJlamVjdGVkIHJlcXVlc3QuICovXG4gIG1ldGhvZDogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKiBXaGF0IHdhcyByZXF1aXJlZDogdGhlIG1pc3NpbmcgcGVybWlzc2lvbihzKSwgb3IgJ3N5c3RlbS1hZG1pbicuICovXG4gIHJlcXVpcmVkOiBzdHJpbmc7XG4gIC8qKiBDbGllbnQgaXAgKGByZXEuaXBgLCBwcm94eS1yZXNvbHZlZCkuICovXG4gIGlwPzogc3RyaW5nO1xuICAvKiogU2FuaXRpemVkLCBsZW5ndGgtY2FwcGVkIFVzZXItQWdlbnQuICovXG4gIHVzZXJBZ2VudD86IHN0cmluZztcbiAgLyoqIFRoZSByZXF1ZXN0J3MgY29ycmVsYXRpb24gaWQgKHRoZSBhbWJpZW50IGF1ZGl0IGNvbnRleHQncywgZWxzZSBhIHZhbGlkIGBYLVJlcXVlc3QtSWRgKS4gKi9cbiAgcmVxdWVzdElkPzogc3RyaW5nO1xuICAvKiogVGhlIHJlYWwgc3lzYWRtaW4gYmVoaW5kIGFuIGltcGVyc29uYXRpb24gdG9rZW4sIGZyb20gdGhlIHZlcmlmaWVkIHRva2VuLiAqL1xuICBpbXBlcnNvbmF0b3JJZD86IHN0cmluZztcbiAgLyoqIFRoZSBjcmVkZW50aWFsIHRoYXQgd2FzIHJlZnVzZWQgKGtleSBpZCwgc2Vzc2lvbiwgc2NvcGUsIOKApikg4oCUIHRoZSBgX2F1dGhgIGJsb2NrLiAqL1xuICBhdXRoPzogQXVkaXRBdXRoQmxvY2s7XG59XG5cbi8qKlxuICogT3B0aW9uYWwgc2luayBmb3IgZGVuaWVkLWF1dGhvcml6YXRpb24gZXZlbnRzLiBMZWZ0IHVuc2V0IGJ5IGRlZmF1bHQgc29cbiAqIGFwaS1jb3JlIHN0YXlzIGRlY291cGxlZCBmcm9tIGFueSBhdWRpdCB0cmFuc3BvcnQg4oCUIGEgc2VydmljZSByZWdpc3RlcnMgb25lXG4gKiBhdCBib290ICh0eXBpY2FsbHkgZm9yd2FyZGluZyB0byBpdHMgYFJlbW90ZUF1ZGl0Q2xpZW50YCBhcyBhblxuICogYGF1dGh6LmRlbmllZGAgZXZlbnQsIG9yLCBvbiBwbGF0Zm9ybSwgdG8gdGhlIGxvY2FsIGBhdWRpdCgpYCBoZWxwZXIpLlxuICogTVVTVCBiZSBiZXN0LWVmZm9ydDogaXQgaXMgaW52b2tlZCBpbnNpZGUgdGhlIHJlcXVlc3QgcGF0aCwgc28gaXQgbXVzdCBuZXZlclxuICogdGhyb3cgb3IgYmxvY2sgKHRoZSBnYXRlIHdyYXBzIHRoZSBjYWxsIGluIHRyeS9jYXRjaCByZWdhcmRsZXNzKS5cbiAqL1xubGV0IGF1dGh6RGVuaWFsQXVkaXRvcjogKChpbmZvOiBBdXRoekRlbmlhbEluZm8pID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIFJlZ2lzdGVyIChvciBjbGVhciwgd2l0aCBgdW5kZWZpbmVkYCkgdGhlIHByb2Nlc3Mtd2lkZSBhdXRob3JpemF0aW9uLWRlbmlhbFxuICogYXVkaXRvci4gSWRlbXBvdGVudDsgdGhlIGxhc3QgcmVnaXN0cmF0aW9uIHdpbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRBdXRoekRlbmlhbEF1ZGl0b3IoZm46ICgoaW5mbzogQXV0aHpEZW5pYWxJbmZvKSA9PiB2b2lkKSB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICBhdXRoekRlbmlhbEF1ZGl0b3IgPSBmbjtcbn1cblxuLyoqXG4gKiBFbWl0IGEgZGVuaWFsIGV2ZW50LCBiZXN0LWVmZm9ydC4gT25seSBmaXJlcyBmb3Igc3RhdGUtY2hhbmdpbmcgKG5vbi1HRVQsXG4gKiBub24tSEVBRC9PUFRJT05TKSByZXF1ZXN0cyDigJQgYSByZWplY3RlZCBHRVQgaXMgbG93LXNpZ25hbCBwcm9iaW5nIG5vaXNlIGFuZFxuICogd291bGQgYW1wbGlmeSBhdWRpdCB2b2x1bWUgdW5kZXIgYSBzY2FuLiBOZXZlciB0aHJvd3MuXG4gKlxuICogVGhlIHBlcm1pc3Npb24gZ2F0ZXMgaGVyZSBjYWxsIGl0IHRoZW1zZWx2ZXMuIEV4cG9ydCBpdCBmb3IgZGF0YS1kcml2ZW4gY2hlY2tzXG4gKiBhIHJvdXRlIG1ha2VzIGlubGluZSAoY3Jvc3Mtb3JnIGFjY2Vzcywgc2VydmljZS1vbmx5IGVuZHBvaW50cyksIHNvIHRob3NlIDQwM3NcbiAqIHJlYWNoIHRoZSBzYW1lIGBhdXRoei5kZW5pZWRgIHRyYWlsLiBgcmVxdWlyZWRgIG5hbWVzIHdoYXQgd2FzIG1pc3NpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWNvcmRBdXRoekRlbmlhbChyZXE6IFJlcXVlc3QsIHJlcXVpcmVkOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgYXVkaXRvciA9IGF1dGh6RGVuaWFsQXVkaXRvcjtcbiAgaWYgKCFhdWRpdG9yKSByZXR1cm47XG4gIGNvbnN0IG1ldGhvZCA9IHJlcS5tZXRob2QudG9VcHBlckNhc2UoKTtcbiAgaWYgKG1ldGhvZCA9PT0gJ0dFVCcgfHwgbWV0aG9kID09PSAnSEVBRCcgfHwgbWV0aG9kID09PSAnT1BUSU9OUycpIHJldHVybjtcbiAgdHJ5IHtcbiAgICBhdWRpdG9yKHtcbiAgICAgIGFjdG9ySWQ6IHJlcS51c2VyPy5zdWIsXG4gICAgICBhY3RvckVtYWlsOiByZXEudXNlcj8uZW1haWwsXG4gICAgICBvcmdJZDogcmVxLnVzZXI/Lm9yZ2FuaXphdGlvbklkLFxuICAgICAgbWV0aG9kLFxuICAgICAgLy8gU3RyaXAgdGhlIHF1ZXJ5IHN0cmluZyDigJQgYSBkZW5pZWQgcmVxdWVzdCBtYXkgY2FycnkgYSB0b2tlbi9zZWNyZXQgYXMgYVxuICAgICAgLy8gcXVlcnkgcGFyYW0sIGFuZCB0aGlzIHBhdGggaXMgcGVyc2lzdGVkIHZlcmJhdGltIGludG8gdGhlIGF1ZGl0IGxvZy5cbiAgICAgIHBhdGg6IChyZXEub3JpZ2luYWxVcmwgfHwgcmVxLnVybCkuc3BsaXQoJz8nKVswXSxcbiAgICAgIHJlcXVpcmVkLFxuICAgICAgaXA6IHJlcS5pcCxcbiAgICAgIHVzZXJBZ2VudDogc2FuaXRpemVVc2VyQWdlbnQocmVxLmhlYWRlcnM/LlsndXNlci1hZ2VudCddKSxcbiAgICAgIHJlcXVlc3RJZDogY3VycmVudEF1ZGl0Q29udGV4dCgpPy5yZXF1ZXN0SWQgPz8gc2FuaXRpemVDb3JyZWxhdGlvbklkKHJlcS5oZWFkZXJzPy5bJ3gtcmVxdWVzdC1pZCddKSxcbiAgICAgIGltcGVyc29uYXRvcklkOiByZXEudXNlcj8uaW1wZXJzb25hdG9ySWQsXG4gICAgICBhdXRoOiBhdWRpdEF1dGhCbG9jayhyZXEudXNlciksXG4gICAgfSk7XG4gIH0gY2F0Y2gge1xuICAgIC8vIEJlc3QtZWZmb3J0IOKAlCBhIGJyb2tlbiBhdWRpdG9yIG11c3QgbmV2ZXIgYnJlYWsgdGhlIGF1dGggZ2F0ZS5cbiAgfVxufVxuXG4vKiogVGhlIHNoYXJlZCBnYXRlIHByZWFtYmxlOiBhbnN3ZXIgNDAxIGFuZCByZXR1cm4gZmFsc2Ugd2hlbiB1bmF1dGhlbnRpY2F0ZWQuICovXG5mdW5jdGlvbiByZXF1aXJlVXNlcihyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiByZXEgaXMgUmVxdWVzdCAmIHsgdXNlcjogTm9uTnVsbGFibGU8UmVxdWVzdFsndXNlciddPiB9IHtcbiAgaWYgKHJlcS51c2VyKSByZXR1cm4gdHJ1ZTtcbiAgc2VuZEVycm9yKHJlcywgSHR0cFN0YXR1cy5VTkFVVEhPUklaRUQsICdBdXRoZW50aWNhdGlvbiByZXF1aXJlZCcsIEVycm9yQ29kZS5VTkFVVEhPUklaRUQpO1xuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKiBBdWRpdCArIGFuc3dlciBhIHBlcm1pc3Npb24gcmVmdXNhbCAoYG1pc3NpbmdgIGRlZmF1bHRzIHRvIGV2ZXJ5IHJlcXVpcmVkIHBlcm1pc3Npb24pLiAqL1xuZnVuY3Rpb24gZGVueVBlcm1pc3Npb24ocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBwZXJtaXNzaW9uczogUGVybWlzc2lvbltdLCBtb2RlOiAnb3InIHwgJ2FuZCcsIG1pc3Npbmc6IFBlcm1pc3Npb25bXSA9IHBlcm1pc3Npb25zKTogdm9pZCB7XG4gIHJlY29yZEF1dGh6RGVuaWFsKHJlcSwgcGVybWlzc2lvbnMuam9pbihgICR7bW9kZX0gYCkpO1xuICBzZW5kRXJyb3IoXG4gICAgcmVzLCBIdHRwU3RhdHVzLkZPUkJJRERFTixcbiAgICBgTWlzc2luZyByZXF1aXJlZCBwZXJtaXNzaW9uOiAke21pc3Npbmcuam9pbihgICR7bW9kZX0gYCl9YCxcbiAgICBFcnJvckNvZGUuSU5TVUZGSUNJRU5UX1BFUk1JU1NJT05TLFxuICApO1xufVxuXG4vKipcbiAqIFJlcXVpcmVzIHRoYXQgdGhlIHVzZXIgaG9sZCBBVCBMRUFTVCBPTkUgb2YgdGhlIGdpdmVuIHBlcm1pc3Npb25zIChvciBiZSBhXG4gKiBzdXBlcmFkbWluKS4gVXNlIGFmdGVyIHJlcXVpcmVBdXRoLiBNaXJyb3JzIGByZXF1aXJlUm9sZWAncyBhbnktb2Ygc2VtYW50aWNzO1xuICogcGFzcyBhIHNpbmdsZSBwZXJtaXNzaW9uIGZvciBhIHNwZWNpZmljIGFjdGlvbiwgb3Igc2V2ZXJhbCB3aGVuIGFueSBvbmUgb2ZcbiAqIHRoZW0gc2hvdWxkIGdyYW50IGFjY2Vzcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVQZXJtaXNzaW9uKC4uLnBlcm1pc3Npb25zOiBQZXJtaXNzaW9uW10pIHtcbiAgcmV0dXJuIHRhZ1JvdXRlR2F0ZSgocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pOiB2b2lkID0+IHtcbiAgICBpZiAoIXJlcXVpcmVVc2VyKHJlcSwgcmVzKSkgcmV0dXJuO1xuICAgIC8vIHVzZXJIYXNQZXJtaXNzaW9uIOKGkiBoYXNQZXJtaXNzaW9uIGFscmVhZHkgZ3JhbnRzIHN1cGVyYWRtaW5zIGV2ZXJ5XG4gICAgLy8gcGVybWlzc2lvbiwgc28gdGhpcyBzaW5nbGUgY2hlY2sgY292ZXJzIGJvdGggdGhlIHN1cGVyYWRtaW4gYnlwYXNzIGFuZFxuICAgIC8vIHRoZSBhbnktb2YgbWVtYmVyc2hpcCB0ZXN0IHdpdGhvdXQgcmUtaW5saW5pbmcgZWl0aGVyLlxuICAgIGlmIChwZXJtaXNzaW9ucy5zb21lKChwKSA9PiB1c2VySGFzUGVybWlzc2lvbihyZXEsIHApKSkgcmV0dXJuIG5leHQoKTtcbiAgICBkZW55UGVybWlzc2lvbihyZXEsIHJlcywgcGVybWlzc2lvbnMsICdvcicpO1xuICB9LCB7IGtpbmQ6ICdwZXJtaXNzaW9uJywgbW9kZTogJ2FueScsIHBlcm1pc3Npb25zIH0pO1xufVxuXG4vKipcbiAqIFJlcXVpcmVzIHRoYXQgdGhlIHVzZXIgaG9sZCBFVkVSWSBvbmUgb2YgdGhlIGdpdmVuIHBlcm1pc3Npb25zIChvciBiZSBhXG4gKiBzdXBlcmFkbWluKSDigJQgdGhlIEFORCBjb3VudGVycGFydCB0byBgcmVxdWlyZVBlcm1pc3Npb25gJ3MgYW55LW9mLiBVc2UgZm9yIGFcbiAqIHNlbnNpdGl2ZSBhY3Rpb24gdGhhdCBsZWdpdGltYXRlbHkgZGVtYW5kcyB0d28gZGlzdGluY3QgY2FwYWJpbGl0aWVzIGF0IG9uY2VcbiAqIChlLmcuIGEgY3Jvc3Mtc3VyZmFjZSBvcGVyYXRpb24pLCBzbyB0aGUgZ3VhcmFudGVlIGlzIGV4cGxpY2l0IHJhdGhlciB0aGFuXG4gKiBhcHByb3hpbWF0ZWQgYnkgY2hhaW5pbmcgdHdvIGByZXF1aXJlUGVybWlzc2lvbmAgZ2F0ZXMuIFN1cGVyYWRtaW5zIGJ5cGFzc1xuICogKHRoZXkgaW1wbGljaXRseSBob2xkIGV2ZXJ5IHBlcm1pc3Npb24pLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZUFsbFBlcm1pc3Npb25zKC4uLnBlcm1pc3Npb25zOiBQZXJtaXNzaW9uW10pIHtcbiAgcmV0dXJuIHRhZ1JvdXRlR2F0ZSgocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pOiB2b2lkID0+IHtcbiAgICBpZiAoIXJlcXVpcmVVc2VyKHJlcSwgcmVzKSkgcmV0dXJuO1xuICAgIGNvbnN0IG1pc3NpbmcgPSBwZXJtaXNzaW9ucy5maWx0ZXIoKHApID0+ICF1c2VySGFzUGVybWlzc2lvbihyZXEsIHApKTtcbiAgICBpZiAobWlzc2luZy5sZW5ndGggPT09IDApIHJldHVybiBuZXh0KCk7XG4gICAgZGVueVBlcm1pc3Npb24ocmVxLCByZXMsIHBlcm1pc3Npb25zLCAnYW5kJywgbWlzc2luZyk7XG4gIH0sIHsga2luZDogJ3Blcm1pc3Npb24nLCBtb2RlOiAnYWxsJywgcGVybWlzc2lvbnMgfSk7XG59XG5cbi8qKlxuICogTGlrZSB7QGxpbmsgcmVxdWlyZVBlcm1pc3Npb259IChhbnktb2YpIGJ1dCBBTFNPIGFkbWl0cyBhbiBpbnRlcm5hbCBzZXJ2aWNlXG4gKiBwcmluY2lwYWwgKGBwcmluY2lwYWxUeXBlOiAnc2VydmljZSdgKS4gRm9yIFJFQUQgZW5kcG9pbnRzIHRoYXQgQk9USFxuICogaW50ZXJhY3RpdmUgdXNlcnMg4oCUIHdobyBtdXN0IGhvbGQgb25lIG9mIHRoZSBgOnJlYWRgIGNhcGFiaWxpdGllcyDigJQgQU5EXG4gKiBzZXJ2aWNlLXRvLXNlcnZpY2UgY2FsbGVycyBsZWdpdGltYXRlbHkgaGl0OyBzZXJ2aWNlIHRva2VucyBjYXJyeSBub1xuICogcGVybWlzc2lvbiBjbGFpbXMgKHRoZXkncmUgbGVhc3QtcHJpdmlsZWdlIGByb2xlOm1lbWJlcmApLCBzbyBhIHBsYWluXG4gKiBgcmVxdWlyZVBlcm1pc3Npb25gIHdvdWxkIHdyb25nbHkgNDAzIHRoZW0uIFN1cGVyYWRtaW5zIHBhc3MgdmlhXG4gKiBgdXNlckhhc1Blcm1pc3Npb25gJ3MgaW1wbGljaXQtYWxsLiBVc2Ugb25seSB3aGVyZSBhIHNlcnZpY2UgY2FsbGVyIGlzIGEga25vd24sXG4gKiBpbnRlbmRlZCBjb25zdW1lciBvZiB0aGUgcm91dGUgKHZlcmlmeSB0aGUgY2FsbGVycyk7IHByZWZlciBwbGFpblxuICogYHJlcXVpcmVQZXJtaXNzaW9uYCBmb3IgcHVyZWx5IHVzZXItZmFjaW5nIHJlYWRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZVBlcm1pc3Npb25PclNlcnZpY2UoLi4ucGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXSkge1xuICByZXR1cm4gdGFnUm91dGVHYXRlKChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIG5leHQ6IE5leHRGdW5jdGlvbik6IHZvaWQgPT4ge1xuICAgIGlmICghcmVxdWlyZVVzZXIocmVxLCByZXMpKSByZXR1cm47XG4gICAgaWYgKGlzU2VydmljZVByaW5jaXBhbChyZXEpIHx8IHBlcm1pc3Npb25zLnNvbWUoKHApID0+IHVzZXJIYXNQZXJtaXNzaW9uKHJlcSwgcCkpKSByZXR1cm4gbmV4dCgpO1xuICAgIGRlbnlQZXJtaXNzaW9uKHJlcSwgcmVzLCBwZXJtaXNzaW9ucywgJ29yJyk7XG4gIH0sIHsga2luZDogJ3Blcm1pc3Npb24nLCBtb2RlOiAnYW55JywgcGVybWlzc2lvbnMsIGFsbG93U2VydmljZTogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBHYXRlIGFuIGVuZHBvaW50IHRvIGludGVybmFsIHNlcnZpY2UtdG8tc2VydmljZSBjYWxsZXJzIG9ubHkgKGFcbiAqIGBwcmluY2lwYWxUeXBlOiAnc2VydmljZSdgIHByaW5jaXBhbCBtaW50ZWQgdmlhIHtAbGluayBzaWduU2VydmljZVRva2VufSAvIGBnZXRTZXJ2aWNlQXV0aEhlYWRlcmApLlxuICogUmVqZWN0cyBhbnkgdXNlciB0b2tlbi4gRm9yIE5PTi11c2VyLWZhY2luZyBlbmRwb2ludHMg4oCUIGVudGl0eS1ldmVudCBpbmdlc3QsXG4gKiBhdXRvLXN1YnNjcmliZSwgYW5kIHNpbWlsYXIgcGVlci1zZXJ2aWNlIGhvb2tzIOKAlCB0aGF0IGEgYnJvd3NlciBtdXN0IG5ldmVyXG4gKiByZWFjaC4gQ29tcG9zZSBhZnRlciBgcmVxdWlyZUF1dGhgIHNvIGByZXEudXNlcmAgaXMgcG9wdWxhdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZVNlcnZpY2VQcmluY2lwYWwocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pOiB2b2lkIHtcbiAgaWYgKCFpc1NlcnZpY2VQcmluY2lwYWwocmVxKSkge1xuICAgIC8vIDQwMyAobm90IDQwMCkg4oCUIHRoaXMgaXMgYW4gYXV0aG9yaXphdGlvbiByZWZ1c2FsOyBzdGF0dXMgbXVzdCBtYXRjaCB0aGVcbiAgICAvLyBJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlMgY29kZSBhbmQgdGhlIHNpYmxpbmcgZ2F0ZXMgKHJlcXVpcmVQZXJtaXNzaW9uLCBldGMuKS5cbiAgICByZXR1cm4gc2VuZEVycm9yKHJlcywgSHR0cFN0YXR1cy5GT1JCSURERU4sICdJbnRlcm5hbCBzZXJ2aWNlIGNhbGxzIG9ubHknLCBFcnJvckNvZGUuSU5TVUZGSUNJRU5UX1BFUk1JU1NJT05TKTtcbiAgfVxuICBuZXh0KCk7XG59XG50YWdSb3V0ZUdhdGUocmVxdWlyZVNlcnZpY2VQcmluY2lwYWwsIHsga2luZDogJ3NlcnZpY2VQcmluY2lwYWwnIH0pO1xuXG4vKipcbiAqIFRIRSBnYXRlIGZvciBhbiBJTlRFUk5BTCByb3V0ZSDigJQgdGhlIG9uZSBldmVyeSBgL2ludGVybmFsLypgIHBhdGgsIHRoZVxuICogcXVvdGEgdXNhZ2UgY291bnRlcnMsIHRoZSBlbnRpdHktZXZlbnQgaW5nZXN0IGFuZCB0aGUgYXVkaXQgaW5nZXN0IGdvIHRocm91Z2guXG4gKlxuICogVHdvIHJ1bGVzLCBib3RoIGZhaWwtY2xvc2VkOlxuICpcbiAqICAxLiAqKk5vIHVzZXIgdG9rZW4sIGV2ZXIuKiogTm90IGEgbWVtYmVyJ3MsIG5vdCBhIHN1cGVyYWRtaW4ncywgbm90IGFcbiAqICAgICBzZXJ2aWNlLWFjY291bnQga2V5J3MuIEFuIGludGVybmFsIHJvdXRlIGlzIGEgcGVlci1zZXJ2aWNlIEFQSSBzdXJmYWNlLCBzb1xuICogICAgIFwiYSBzdWZmaWNpZW50bHkgcHJpdmlsZWdlZCBodW1hblwiIGlzIG5vdCBhbiBhY2NlcHRhYmxlIGNhbGxlciDigJQgdGhhdFxuICogICAgIGVxdWl2YWxlbmNlIGlzIGV4YWN0bHkgaG93IGEgYnJvd3Nlci1yZWFjaGFibGUgcGF0aCBiZWNvbWVzIGEgdGVuYW50XG4gKiAgICAgYm91bmRhcnkgYnVnLiBgcmVxdWlyZVNlcnZpY2VQcmluY2lwYWxgIGFscmVhZHkgcmVmdXNlZCB1c2VyczsgdGhpcyBhbHNvXG4gKiAgICAgY2xvc2VzIHRoZSBgfHwgaXNTeXN0ZW1BZG1pbihyZXEpYCBlc2NhcGUgaGF0Y2hlcyB0aGF0IGhhZCBncm93biBhcm91bmRcbiAqICAgICB0aGUgaW5kaXZpZHVhbCBpbnRlcm5hbCByb3V0ZXMuXG4gKiAgMi4gKipPbmx5IHRoZSBOQU1FRCBjYWxsZXJzLioqIGBjYWxsZXJzYCBsaXN0cyB0aGUgc2VydmljZXMgdGhhdCBsZWdpdGltYXRlbHlcbiAqICAgICBjYWxsIHRoaXMgcm91dGUsIGFuZCB0aGUgbmFtZSBpcyBjcnlwdG9ncmFwaGljYWxseSBib3VuZCB0byB0aGUgc2lnbmluZ1xuICogICAgIGtleSAoYHNlcnZpY2VzL3NlcnZpY2Uta2V5cy50c2ApLCBzbyB0aGlzIGlzIGFuIGlkZW50aXR5IGNoZWNrIHJhdGhlciB0aGFuXG4gKiAgICAgYSBjbGFpbSBjaGVjay4gSXQgaXMgdGhlIHNhbWUgYWxsb3ctbGlzdCB0aGUgbWVzaCBwb2xpY3kgbmFtZXMsIGF0IHRoZVxuICogICAgIGxheWVyIHRoYXQgYWxzbyBob2xkcyBpbiBkb2NrZXIgY29tcG9zZSwgd2hlcmUgdGhlcmUgaXMgbm8gbWVzaCBhdCBhbGwg4oCUXG4gKiAgICAgdGhlIElzdGlvIGBBdXRob3JpemF0aW9uUG9saWN5YCBpcyBkZWZlbmNlIGluIGRlcHRoIG9uIHRvcCwgbmV2ZXIgdGhlXG4gKiAgICAgZW5mb3JjZW1lbnQuXG4gKlxuICogQ29tcG9zZSBhZnRlciBgcmVxdWlyZUF1dGhgIHNvIGByZXEudXNlcmAgaXMgcG9wdWxhdGVkLiBSZWZ1c2FscyBhcmUgY291bnRlZFxuICogKGBpbnRlcm5hbF9yb3V0ZV9yZWZ1c2VkX3RvdGFsYCkgYW5kIGF1ZGl0ZWQgdGhyb3VnaCB0aGUgc2hhcmVkIGBhdXRoei5kZW5pZWRgXG4gKiBzaW5rLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZUludGVybmFsU2VydmljZShvcHRpb25zOiB7IGNhbGxlcnM6IHJlYWRvbmx5IHN0cmluZ1tdIH0pIHtcbiAgY29uc3QgYWxsb3dlZCA9IG5ldyBTZXQob3B0aW9ucy5jYWxsZXJzKTtcbiAgcmV0dXJuIHRhZ1JvdXRlR2F0ZSgocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pOiB2b2lkID0+IHtcbiAgICBjb25zdCByZWZ1c2UgPSAocmVhc29uOiAndW5hdXRoZW50aWNhdGVkJyB8ICd1c2VyX3Rva2VuJyB8ICd3cm9uZ19jYWxsZXInKTogdm9pZCA9PiB7XG4gICAgICBlbWl0Q291bnRlcignaW50ZXJuYWxfcm91dGVfcmVmdXNlZF90b3RhbCcsIHtcbiAgICAgICAgc2VydmljZTogc2VydmljZUlkZW50aXR5KCksXG4gICAgICAgIHJvdXRlOiByZXEucm91dGU/LnBhdGggPyBgJHtyZXEubWV0aG9kfSAke3JlcS5iYXNlVXJsfSR7cmVxLnJvdXRlLnBhdGh9YCA6IGAke3JlcS5tZXRob2R9ICR7KHJlcS5vcmlnaW5hbFVybCB8fCByZXEudXJsKS5zcGxpdCgnPycpWzBdfWAsXG4gICAgICAgIHJlYXNvbixcbiAgICAgICAgY2FsbGVyOiBzZXJ2aWNlTmFtZU9mKHJlcS51c2VyKSA/PyAnbm9uZScsXG4gICAgICB9KTtcbiAgICAgIHJlY29yZEF1dGh6RGVuaWFsKHJlcSwgYGludGVybmFsLXNlcnZpY2UgKCR7b3B0aW9ucy5jYWxsZXJzLmpvaW4oJywgJyl9KWApO1xuICAgICAgaWYgKHJlYXNvbiA9PT0gJ3VuYXV0aGVudGljYXRlZCcpIHtcbiAgICAgICAgcmV0dXJuIHNlbmRFcnJvcihyZXMsIEh0dHBTdGF0dXMuVU5BVVRIT1JJWkVELCAnQXV0aGVudGljYXRpb24gcmVxdWlyZWQnLCBFcnJvckNvZGUuVU5BVVRIT1JJWkVEKTtcbiAgICAgIH1cbiAgICAgIGxvZ2dlci53YXJuKCdSZWZ1c2VkIGFuIGludGVybmFsIHJvdXRlJywgeyByZWFzb24sIHBhdGg6IChyZXEub3JpZ2luYWxVcmwgfHwgcmVxLnVybCkuc3BsaXQoJz8nKVswXSwgY2FsbGVyOiBzZXJ2aWNlTmFtZU9mKHJlcS51c2VyKSB9KTtcbiAgICAgIHJldHVybiBzZW5kRXJyb3IocmVzLCBIdHRwU3RhdHVzLkZPUkJJRERFTiwgJ0ludGVybmFsIHNlcnZpY2UgY2FsbHMgb25seScsIEVycm9yQ29kZS5JTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlMpO1xuICAgIH07XG5cbiAgICBpZiAoIXJlcS51c2VyKSByZXR1cm4gcmVmdXNlKCd1bmF1dGhlbnRpY2F0ZWQnKTtcbiAgICBpZiAoIWlzU2VydmljZVByaW5jaXBhbChyZXEpKSByZXR1cm4gcmVmdXNlKCd1c2VyX3Rva2VuJyk7XG4gICAgY29uc3QgY2FsbGVyID0gc2VydmljZU5hbWVPZihyZXEudXNlcik7XG4gICAgaWYgKCFjYWxsZXIgfHwgIWFsbG93ZWQuaGFzKGNhbGxlcikpIHJldHVybiByZWZ1c2UoJ3dyb25nX2NhbGxlcicpO1xuICAgIG5leHQoKTtcbiAgfSwgeyBraW5kOiAnc2VydmljZVByaW5jaXBhbCcgfSwgeyBraW5kOiAnaW50ZXJuYWxTZXJ2aWNlJywgY2FsbGVyczogWy4uLm9wdGlvbnMuY2FsbGVyc10gfSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHJlcXVlc3QgaXMgZnJvbSBhIHN5c3RlbSBhZG1pbi5cbiAqXG4gKiBBdXRob3JpdHkgaXMgZ3JhbnRlZCBzb2xlbHkgYnkgdGhlIHVzZXItbGV2ZWwgYGlzU3VwZXJBZG1pbmAgZmxhZyBjYXJyaWVkXG4gKiBpbiB0aGUgSldUIOKAlCBuZXZlciBieSBtZW1iZXJzaGlwIGluIHRoZSB3ZWxsLWtub3duICdzeXN0ZW0nIG9yZywgd2hpY2ggd291bGRcbiAqIGNvbmZsYXRlIGEgUGlwZWxpbmUgQnVpbGRlciBvcGVyYXRvciB3aXRoIGEgY3VzdG9tZXIgdGVuYW50IGFuZCBsZXQgYW55XG4gKiB3cml0ZSB0aGF0IGNyZWF0ZWQgYSAnc3lzdGVtJy1uYW1lZCBvcmcgcXVpZXRseSBncmFudCBjcm9zcy1vcmcgYXV0aG9yaXR5LiBUaGUgYHN5c3RlbWAgb3JnIHN0aWxsIGV4aXN0cyBhcyBhICpjb250ZW50IGhvbGRlciogZm9yIHNoYXJlZFxuICogc2FtcGxlIGRhdGE7IGl0IGNvbmZlcnMgbm8gcHJpdmlsZWdlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTeXN0ZW1BZG1pbihyZXE6IFJlcXVlc3QpOiBib29sZWFuIHtcbiAgcmV0dXJuIHJlcS51c2VyPy5pc1N1cGVyQWRtaW4gPT09IHRydWU7XG59XG5cbi8qKlxuICogV2hldGhlciB0aGUgcmVxdWVzdCdzIHRva2VuIGNhcnJpZXMgYSBzcGVjaWZpYyBjYXBhYmlsaXR5IGBzY29wZWAgKGUuZy5cbiAqIGAncmVwb3J0aW5nOmluZ2VzdCdgKS4gVXNlZCB0byBnYXRlIGVuZHBvaW50cyB0aGF0IGFjY2VwdCBhIG5hcnJvdyBtYWNoaW5lXG4gKiBpZGVudGl0eSDigJQgYSBub3JtYWwgaW50ZXJhY3RpdmUgdXNlciB0b2tlbiBoYXMgbm8gYHNjb3BlYCBhbmQgcmV0dXJucyBmYWxzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1Njb3BlKHJlcTogUmVxdWVzdCwgc2NvcGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gcmVxLnVzZXI/LnNjb3BlID09PSBzY29wZTtcbn1cblxuLyoqIFJlcXVpcmVzIGEgc3lzdGVtIGFkbWluIOKAlCBncmFudGVkIHNvbGVseSBieSB0aGUgYGlzU3VwZXJBZG1pbmAgdG9rZW4gY2xhaW0uXG4gKiAgVXNlIGFmdGVyIHJlcXVpcmVBdXRoLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVTeXN0ZW1BZG1pbihcbiAgcmVxOiBSZXF1ZXN0LFxuICByZXM6IFJlc3BvbnNlLFxuICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4pOiB2b2lkIHtcbiAgaWYgKCFpc1N5c3RlbUFkbWluKHJlcSkpIHtcbiAgICByZWNvcmRBdXRoekRlbmlhbChyZXEsICdzeXN0ZW0tYWRtaW4nKTtcbiAgICByZXR1cm4gc2VuZEVycm9yKFxuICAgICAgcmVzLCBIdHRwU3RhdHVzLkZPUkJJRERFTixcbiAgICAgICdBY2Nlc3MgZGVuaWVkLiBPbmx5IHN5c3RlbSBhZG1pbmlzdHJhdG9ycyBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4nLFxuICAgICAgRXJyb3JDb2RlLklOU1VGRklDSUVOVF9QRVJNSVNTSU9OUyxcbiAgICApO1xuICB9XG4gIG5leHQoKTtcbn1cbnRhZ1JvdXRlR2F0ZShyZXF1aXJlU3lzdGVtQWRtaW4sIHsga2luZDogJ3N5c3RlbUFkbWluJyB9KTtcblxuLyoqXG4gKiBSZXF1aXJlIGEgc3BlY2lmaWMgZmVhdHVyZSBmbGFnLiBVc2UgYWZ0ZXIgcmVxdWlyZUF1dGguXG4gKiBDaGVja3MgdGhlIGBmZWF0dXJlc2AgYXJyYXkgaW4gdGhlIEpXVCBwYXlsb2FkIChzZXQgYXQgdG9rZW4gaXNzdWFuY2UpLlxuICogU3lzYWRtaW5zIChpc1N1cGVyQWRtaW4pIGJ5cGFzcyDigJQgdGhleSBhbHdheXMgaGF2ZSBldmVyeSBmZWF0dXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZUZlYXR1cmUoZmVhdHVyZTogc3RyaW5nKSB7XG4gIHJldHVybiB0YWdSb3V0ZUdhdGUoKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKTogdm9pZCA9PiB7XG4gICAgaWYgKCFyZXF1aXJlVXNlcihyZXEsIHJlcykpIHJldHVybjtcblxuICAgIC8vIFN5c2FkbWlucyBnZXQgYWxsIGZlYXR1cmVzOyB0aGUgYGZlYXR1cmVzYCBhcnJheSBvbiB0aGVpciB0b2tlbiBpc1xuICAgIC8vIHBvcHVsYXRlZCB3aXRoIGV2ZXJ5IGZsYWcgYXQgaXNzdWFuY2UgdGltZSBidXQgdGhlIGJ5cGFzcyBoZXJlIGtlZXBzXG4gICAgLy8gdGhlIHJ1bGUgZXhwbGljaXQgYW5kIHN1cnZpdmVzIGEgdG9rZW4gaXNzdWVkIGJlZm9yZSBhIG5ldyBmZWF0dXJlXG4gICAgLy8gZmxhZyB3YXMgYWRkZWQuXG4gICAgaWYgKHJlcS51c2VyLmlzU3VwZXJBZG1pbiA9PT0gdHJ1ZSkgcmV0dXJuIG5leHQoKTtcblxuICAgIGlmICghcmVxLnVzZXIuZmVhdHVyZXM/LmluY2x1ZGVzKGZlYXR1cmUpKSB7XG4gICAgICAvLyBSb3V0ZSBmZWF0dXJlLWdhdGUgZGVuaWFscyB0aHJvdWdoIHRoZSBzYW1lIGF1ZGl0IHNpbmsgYXNcbiAgICAgIC8vIHJlcXVpcmVQZXJtaXNzaW9uIC8gcmVxdWlyZVN5c3RlbUFkbWluIHNvIGEgcHJvYmUgZm9yIGFuXG4gICAgICAvLyB1bmVudGl0bGVkIGNhcGFiaWxpdHkgbGVhdmVzIGEgdHJhaWwgKHN0YXRlLWNoYW5naW5nIG1ldGhvZHMgb25seSkuXG4gICAgICByZWNvcmRBdXRoekRlbmlhbChyZXEsIGBmZWF0dXJlOiR7ZmVhdHVyZX1gKTtcbiAgICAgIHJldHVybiBzZW5kRXJyb3IoXG4gICAgICAgIHJlcywgSHR0cFN0YXR1cy5GT1JCSURERU4sXG4gICAgICAgIGBUaGlzIGZlYXR1cmUgcmVxdWlyZXMgYSBoaWdoZXIgcGxhbiAoJHtmZWF0dXJlfSlgLFxuICAgICAgICBFcnJvckNvZGUuSU5TVUZGSUNJRU5UX1BFUk1JU1NJT05TLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBuZXh0KCk7XG4gIH0sIHsga2luZDogJ2ZlYXR1cmUnLCBmZWF0dXJlIH0pO1xufVxuXG4iXX0=
|
|
@@ -44,4 +44,4 @@ export function isQuotaExemptRoute(method, path) {
|
|
|
44
44
|
const m = upper === 'HEAD' ? 'GET' : upper;
|
|
45
45
|
return QUOTA_EXEMPT_ROUTES.some((r) => r.method === m && r.path.test(path));
|
|
46
46
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGEtZXhlbXB0LXJvdXRlcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21pZGRsZXdhcmUvcXVvdGEtZXhlbXB0LXJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBb0N0QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBZ0M7SUFDOUQ7UUFDRSxNQUFNLEVBQUUsS0FBSztRQUNiLElBQUksRUFBRSxtQkFBbUI7UUFDekIsTUFBTSxFQUFFLGdGQUFnRjtLQUN6RjtJQUNEO1FBQ0UsTUFBTSxFQUFFLEtBQUs7UUFDYixJQUFJLEVBQUUseUJBQXlCO1FBQy9CLE1BQU0sRUFBRSw0Q0FBNEM7S0FDckQ7SUFDRDtRQUNFLE1BQU0sRUFBRSxLQUFLO1FBQ2IsSUFBSSxFQUFFLCtDQUErQztRQUNyRCxNQUFNLEVBQUUsOEVBQThFO0tBQ3ZGO0lBQ0Q7UUFDRSxNQUFNLEVBQUUsS0FBSztRQUNiLElBQUksRUFBRSxxQ0FBcUM7UUFDM0MsTUFBTSxFQUFFLCtHQUErRztLQUN4SDtJQUNEO1FBQ0UsTUFBTSxFQUFFLEtBQUs7UUFDYixJQUFJLEVBQUUsNkJBQTZCO1FBQ25DLE1BQU0sRUFBRSwrRUFBK0U7S0FDeEY7SUFDRDtRQUNFLE1BQU0sRUFBRSxNQUFNO1FBQ2QsSUFBSSxFQUFFLHFDQUFxQztRQUMzQyxNQUFNLEVBQUUsa0ZBQWtGO0tBQzNGO0lBQ0Q7UUFDRSxNQUFNLEVBQUUsTUFBTTtRQUNkLElBQUksRUFBRSx3Q0FBd0M7UUFDOUMsTUFBTSxFQUFFLHNGQUFzRjtLQUMvRjtDQUNGLENBQUM7QUFFRiwyRkFBMkY7QUFDM0YsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQTBCLEVBQUUsSUFBWTtJQUN6RSw4REFBOEQ7SUFDOUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0MsTUFBTSxDQUFDLEdBQUcsS0FBSyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDM0MsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDOUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFRoZSByb3V0ZXMgdGhhdCBuZXZlciBzcGVuZCBgYXBpQ2FsbHNgIChvciBgYXV0b21hdGlvbkNhbGxzYCksIGZsZWV0LXdpZGUuXG4gKlxuICogRXZlcnkgc2VydmljZSBtZXRlcnMgYW5kIGdhdGVzIGl0cyBhdXRoZW50aWNhdGVkIHVzZXIgc3VyZmFjZSBvbiBgYXBpQ2FsbHNgXG4gKiAoYG1ldGVyUXVvdGFPblN1Y2Nlc3NgICsgYGNoZWNrUXVvdGFgLCBtb3VudGVkIGF0IHRoZSBhcHAtcm91dGVzIGxldmVsKS4gQSBmZXdcbiAqIHJlYWRzIGFyZSBtYWRlIEJZIFRIRSBDT05TT0xFIElUU0VMRiwgb24gZXZlcnkgcGFnZSBsb2FkIG9yIG9uIGEgdGltZXIsIG5vdCBieVxuICogYSBwZXJzb24gZG9pbmcgc29tZXRoaW5nIOKAlCBtZXRlcmluZyB0aGVtIHdvdWxkIGJ1cm4gYW4gaWRsZSB0YWIncyBvcmcgYnVkZ2V0XG4gKiBhbGwgZGF5LCBhbmQgZ2F0aW5nIHRoZW0gd291bGQgbWFrZSBhIHF1b3RhLWV4aGF1c3RlZCBvcmcncyBjb25zb2xlIHVuYWJsZSB0b1xuICogcmVuZGVyIHRoZSB2ZXJ5IGJhbm5lciB0aGF0IHNheXMgc28uIFRoaXMgbGlzdCBpcyB0aGF0IGNhcnZlLW91dCwgYW5kIGl0IGlzXG4gKiBkZWxpYmVyYXRlbHkgc2hvcnQ6IGVhY2ggZW50cnkgbmFtZXMgaXRzIGNhbGxlciBhbmQgd2h5IGl0IGlzIGZyZWUuXG4gKlxuICogT05FIGxpc3QsIHJlYWQgaW4gdGhyZWUgcGxhY2VzLCBzbyB0aGV5IGNhbm5vdCBkcmlmdDpcbiAqICAgLSBgbWV0ZXJRdW90YU9uU3VjY2Vzc2Agc2tpcHMgYSBtYXRjaGluZyByZXF1ZXN0IChubyBpbmNyZW1lbnQpO1xuICogICAtIGBjaGVja1F1b3RhYCBza2lwcyBhIG1hdGNoaW5nIHJlcXVlc3QgKG5ldmVyIDQyOXMpO1xuICogICAtIGBidWlsZFJvdXRlVGFibGVgIG1hcmtzIHRoZSByb3V0ZSBgcXVvdGEuZXhlbXB0YCwgYW5kIHRoZSBxdW90YSBjb3ZlcmFnZVxuICogICAgIGNoZWNrIChhcGktY29yZSB0ZXN0aW5nKSB0cmVhdHMgaXQgYXMgY292ZXJlZC5cbiAqXG4gKiBFYWNoIGBwYXRoYCBpcyBtYXRjaGVkIGFnYWluc3QgQk9USCB0aGUgY29uY3JldGUgcmVxdWVzdCBwYXRoXG4gKiAoYC9vcmdhbml6YXRpb24vNjRm4oCmL3NlYXQtdXNhZ2VgKSBhbmQgdGhlIHJvdXRlLXRhYmxlIHBhdHRlcm5cbiAqIChgL29yZ2FuaXphdGlvbi86aWQvc2VhdC11c2FnZWApLCBzbyBhIGA6cGFyYW1gIHNlZ21lbnQgaXMgd3JpdHRlbiBhc1xuICogYFteL10rYC4gUGF0aHMgYXJlIHNlcnZpY2UtbG9jYWwgKG5naW54IHN0cmlwcyBgL2FwaWApLlxuICpcbiAqIFRoZSBxdW90YSBzZXJ2aWNlIGl0c2VsZiBpcyBub3Qgb24gdGhlIGxpc3QgYmVjYXVzZSBpdCBtZXRlcnMgbm90aGluZzogaXRzXG4gKiByZWFkcyAoYEdFVCAvcXVvdGFzYCwgd2hpY2ggUXVvdGFCYW5uZXIgcG9sbHMgZXZlcnkgNjBzKSBuZXZlciBjb3N0IGEgY2FsbC5cbiAqIERvY3VtZW50ZWQgaW4gZG9jcy9xdW90YXMubWQgKFwiRXhlbXB0IHJvdXRlc1wiKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdW90YUV4ZW1wdFJvdXRlIHtcbiAgbWV0aG9kOiAnR0VUJyB8ICdQT1NUJztcbiAgLyoqIEFuY2hvcmVkIHBhdHRlcm4gb3ZlciB0aGUgc2VydmljZS1sb2NhbCBwYXRoLiAqL1xuICBwYXRoOiBSZWdFeHA7XG4gIC8qKiBXaG8gY2FsbHMgaXQsIGFuZCB3aHkgaXQgbXVzdCBiZSBmcmVlLiAqL1xuICByZWFzb246IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFFVT1RBX0VYRU1QVF9ST1VURVM6IHJlYWRvbmx5IFF1b3RhRXhlbXB0Um91dGVbXSA9IFtcbiAge1xuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgcGF0aDogL15cXC91c2VyXFwvcHJvZmlsZSQvLFxuICAgIHJlYXNvbjogJ1Nlc3Npb24gYm9vdHN0cmFwOiB0aGUgY29uc29sZSByZWFkcyB0aGUgc2lnbmVkLWluIHByb2ZpbGUgb24gZXZlcnkgcGFnZSBsb2FkLicsXG4gIH0sXG4gIHtcbiAgICBtZXRob2Q6ICdHRVQnLFxuICAgIHBhdGg6IC9eXFwvdXNlclxcL29yZ2FuaXphdGlvbnMkLyxcbiAgICByZWFzb246ICdUaGUgb3JnIHN3aXRjaGVyLCByZWFkIG9uIGV2ZXJ5IHBhZ2UgbG9hZC4nLFxuICB9LFxuICB7XG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICBwYXRoOiAvXlxcL29yZ2FuaXphdGlvblxcL1teL10rXFwvZmVhdHVyZS1lbnRpdGxlbWVudHMkLyxcbiAgICByZWFzb246ICdOYXZpZ2F0aW9uIGdhdGluZyAod2hpY2ggZmVhdHVyZXMgcmVuZGVyIHVubG9ja2VkKSwgcmVhZCBvbiBldmVyeSBwYWdlIGxvYWQuJyxcbiAgfSxcbiAge1xuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgcGF0aDogL15cXC9vcmdhbml6YXRpb25cXC9bXi9dK1xcL3NlYXQtdXNhZ2UkLyxcbiAgICByZWFzb246ICdCaWxsaW5nL3F1b3RhIHBhZ2UgcmVhZCBiZXNpZGUgdGhlICh1bm1ldGVyZWQpIHF1b3RhIHJlYWRzOyBhbiBleGhhdXN0ZWQgb3JnIG11c3Qgc3RpbGwgc2VlIHdoYXQgaXQgaXMgdXNpbmcuJyxcbiAgfSxcbiAge1xuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgcGF0aDogL15cXC9tZXNzYWdlc1xcL3VucmVhZFxcL2NvdW50JC8sXG4gICAgcmVhc29uOiAnVGhlIHNpZGViYXIgdW5yZWFkIGJhZGdlLCBwb2xsZWQgZXZlcnkgMzBzIHdoZW5ldmVyIHRoZSBsaXZlIGNoYW5uZWwgaXMgZG93bi4nLFxuICB9LFxuICB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgcGF0aDogL15cXC9tZXNzYWdlc1xcL25vdGlmaWNhdGlvbnNcXC90aWNrZXQkLyxcbiAgICByZWFzb246ICdTU0UgdGlja2V0IG1pbnQgZm9yIHRoZSBsaXZlIG5vdGlmaWNhdGlvbiBjaGFubmVsOyByZS1taW50ZWQgb24gZXZlcnkgcmVjb25uZWN0LicsXG4gIH0sXG4gIHtcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBwYXRoOiAvXlxcL3JlcG9ydHNcXC9leGVjdXRpb25cXC9zdHJlYW1cXC90aWNrZXQkLyxcbiAgICByZWFzb246ICdTU0UgdGlja2V0IG1pbnQgZm9yIHRoZSBsaXZlIGV4ZWN1dGlvbi1zdGF0dXMgY2hhbm5lbDsgcmUtbWludGVkIG9uIGV2ZXJ5IHJlY29ubmVjdC4nLFxuICB9LFxuXTtcblxuLyoqIFdoZXRoZXIgYG1ldGhvZGAgKyBgcGF0aGAgKGEgcmVxdWVzdCBwYXRoIG9yIGEgcm91dGUtdGFibGUgcGF0dGVybikgaXMgcXVvdGEtZXhlbXB0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUXVvdGFFeGVtcHRSb3V0ZShtZXRob2Q6IHN0cmluZyB8IHVuZGVmaW5lZCwgcGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIC8vIEhFQUQgaXMgR0VUIHdpdGhvdXQgYSBib2R5IChFeHByZXNzIGZvbGRzIGl0IHRoZSBzYW1lIHdheSkuXG4gIGNvbnN0IHVwcGVyID0gKG1ldGhvZCA/PyAnJykudG9VcHBlckNhc2UoKTtcbiAgY29uc3QgbSA9IHVwcGVyID09PSAnSEVBRCcgPyAnR0VUJyA6IHVwcGVyO1xuICByZXR1cm4gUVVPVEFfRVhFTVBUX1JPVVRFUy5zb21lKChyKSA9PiByLm1ldGhvZCA9PT0gbSAmJiByLnBhdGgudGVzdChwYXRoKSk7XG59XG4iXX0=
|