@pipeline-builder/pipeline-core 3.4.134 → 3.4.136

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.
@@ -0,0 +1,138 @@
1
+ /**
2
+ * The `PluginSpec` domain type — the shape of a plugin's declared contract as
3
+ * stored in the database and exchanged over the API.
4
+ *
5
+ * Kept in its own module, apart from the synth-time authoring types in
6
+ * `step-types.ts`, because those reference CDK types (`Construct`,
7
+ * `IFileSetProducer`, CodeBuild's `ComputeType`) while this one is pure data.
8
+ * API services consume `PluginSpec`; only the CDK entry point consumes the rest.
9
+ */
10
+ import type { ComputeType, PluginType } from '../core/pipeline-types.js';
11
+ /**
12
+ * Plugin spec defining plugin behavior and requirements.
13
+ * This is typically loaded from a plugin spec file (plugin-spec.yaml).
14
+ */
15
+ export interface PluginSpec {
16
+ /**
17
+ * Unique identifier for the plugin
18
+ * @example 'nodejs-build'
19
+ */
20
+ readonly name: string;
21
+ /**
22
+ * Human-readable description of what the plugin does
23
+ * @example 'Builds and tests Node.js applications'
24
+ */
25
+ readonly description?: string;
26
+ /**
27
+ * Keywords for plugin discovery and categorization
28
+ * @example ['nodejs', 'typescript', 'build', 'test']
29
+ */
30
+ readonly keywords?: string[];
31
+ /**
32
+ * Plugin category for AI-assisted selection and organization.
33
+ * One of: language, security, quality, testing, deploy, artifact,
34
+ * infrastructure, monitoring, notification, ai
35
+ */
36
+ readonly category?: string;
37
+ /**
38
+ * Semantic version of the plugin
39
+ * @example '1.0.0'
40
+ */
41
+ readonly version?: string;
42
+ /**
43
+ * Type of pipeline step this plugin creates
44
+ * @default PluginType.CODE_BUILD_STEP
45
+ */
46
+ readonly pluginType?: PluginType;
47
+ /**
48
+ * CodeBuild compute resource size to use
49
+ * @default ComputeType.SMALL
50
+ */
51
+ readonly computeType?: ComputeType;
52
+ /**
53
+ * Maximum execution time in minutes.
54
+ * Used as fallback when the pipeline step doesn't set timeout.
55
+ * @default 60 (AWS CodeBuild default)
56
+ */
57
+ readonly timeout?: number;
58
+ /**
59
+ * What happens when this step fails.
60
+ * - 'fail': Stop the pipeline (default)
61
+ * - 'warn': Log a warning and continue
62
+ * - 'ignore': Silently continue
63
+ * @default 'fail'
64
+ */
65
+ readonly failureBehavior?: 'fail' | 'warn' | 'ignore';
66
+ /**
67
+ * Secret requirements for this plugin.
68
+ * Declares named secrets the plugin expects at build time.
69
+ */
70
+ readonly secrets?: Array<{
71
+ name: string;
72
+ required: boolean;
73
+ description?: string;
74
+ }>;
75
+ /**
76
+ * Directory containing the primary build output artifacts
77
+ * @example 'dist'
78
+ */
79
+ readonly primaryOutputDirectory?: string;
80
+ /**
81
+ * Additional metadata that can be accessed during plugin execution
82
+ * Keys should use the format 'aws:cdk:{namespace}:{key}' (all lowercase)
83
+ */
84
+ readonly metadata?: Record<string, string | number | boolean>;
85
+ /**
86
+ * Path to Dockerfile or Dockerfile content
87
+ * Used to build the container environment for this plugin
88
+ */
89
+ readonly dockerfile?: string;
90
+ /**
91
+ * Commands to run during the install phase
92
+ * Typically used for installing dependencies
93
+ * @example ['npm ci', 'npm run build']
94
+ */
95
+ readonly installCommands?: string[];
96
+ /**
97
+ * Commands to run during the build/execution phase
98
+ * These are the main commands that perform the plugin's work
99
+ * @example ['npm test', 'npm run deploy']
100
+ */
101
+ readonly commands?: string[];
102
+ /**
103
+ * Environment variables to set in the build environment
104
+ * @example { API_URL: 'https://api.example.com', LOG_LEVEL: 'info' }
105
+ */
106
+ readonly env?: Record<string, string>;
107
+ /**
108
+ * Docker build arguments passed via --build-arg at image build time.
109
+ * Used to parameterize Dockerfile ARG values when building the plugin image.
110
+ * @example { PYTHON_VERSION: '3.12', NODE_ENV: 'production' }
111
+ */
112
+ readonly buildArgs?: Record<string, string>;
113
+ /**
114
+ * Pipeline metadata keys the plugin references via `{{ pipeline.metadata.X }}`.
115
+ * Declared as a contract — pipelines using this plugin must supply all
116
+ * listed keys unless the template uses `| default: '...'`.
117
+ * @example ['env', 'namespace', 'clusterName']
118
+ */
119
+ readonly requiredMetadata?: string[];
120
+ /**
121
+ * Pipeline vars keys the plugin references via `{{ pipeline.vars.X }}`.
122
+ * @example ['branch', 'slackChannel']
123
+ */
124
+ readonly requiredVars?: string[];
125
+ /**
126
+ * Optional type declarations for the metadata keys listed in `requiredMetadata`.
127
+ * Used at upload time to verify that coercion filters (`| number`, `| bool`,
128
+ * `| json`) match the declared type — e.g. `{{ pipeline.metadata.count | number }}`
129
+ * requires `count: 'number'` here, otherwise the plugin is rejected.
130
+ * Keys not declared default to `'string'`.
131
+ * @example { count: 'number', enabled: 'bool' }
132
+ */
133
+ readonly metadataTypes?: Record<string, 'string' | 'number' | 'bool' | 'json'>;
134
+ /**
135
+ * Optional type declarations for vars keys (same semantics as `metadataTypes`).
136
+ */
137
+ readonly varsTypes?: Record<string, 'string' | 'number' | 'bool' | 'json'>;
138
+ }
@@ -0,0 +1,4 @@
1
+ // Copyright 2026 Pipeline Builder Contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export {};
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmUvcGx1Z2luLXNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFRoZSBgUGx1Z2luU3BlY2AgZG9tYWluIHR5cGUg4oCUIHRoZSBzaGFwZSBvZiBhIHBsdWdpbidzIGRlY2xhcmVkIGNvbnRyYWN0IGFzXG4gKiBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlIGFuZCBleGNoYW5nZWQgb3ZlciB0aGUgQVBJLlxuICpcbiAqIEtlcHQgaW4gaXRzIG93biBtb2R1bGUsIGFwYXJ0IGZyb20gdGhlIHN5bnRoLXRpbWUgYXV0aG9yaW5nIHR5cGVzIGluXG4gKiBgc3RlcC10eXBlcy50c2AsIGJlY2F1c2UgdGhvc2UgcmVmZXJlbmNlIENESyB0eXBlcyAoYENvbnN0cnVjdGAsXG4gKiBgSUZpbGVTZXRQcm9kdWNlcmAsIENvZGVCdWlsZCdzIGBDb21wdXRlVHlwZWApIHdoaWxlIHRoaXMgb25lIGlzIHB1cmUgZGF0YS5cbiAqIEFQSSBzZXJ2aWNlcyBjb25zdW1lIGBQbHVnaW5TcGVjYDsgb25seSB0aGUgQ0RLIGVudHJ5IHBvaW50IGNvbnN1bWVzIHRoZSByZXN0LlxuICovXG5cbmltcG9ydCB0eXBlIHsgQ29tcHV0ZVR5cGUsIFBsdWdpblR5cGUgfSBmcm9tICcuLi9jb3JlL3BpcGVsaW5lLXR5cGVzLmpzJztcblxuLyoqXG4gKiBQbHVnaW4gc3BlYyBkZWZpbmluZyBwbHVnaW4gYmVoYXZpb3IgYW5kIHJlcXVpcmVtZW50cy5cbiAqIFRoaXMgaXMgdHlwaWNhbGx5IGxvYWRlZCBmcm9tIGEgcGx1Z2luIHNwZWMgZmlsZSAocGx1Z2luLXNwZWMueWFtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luU3BlYyB7XG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHBsdWdpblxuICAgKiBAZXhhbXBsZSAnbm9kZWpzLWJ1aWxkJ1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB3aGF0IHRoZSBwbHVnaW4gZG9lc1xuICAgKiBAZXhhbXBsZSAnQnVpbGRzIGFuZCB0ZXN0cyBOb2RlLmpzIGFwcGxpY2F0aW9ucydcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBLZXl3b3JkcyBmb3IgcGx1Z2luIGRpc2NvdmVyeSBhbmQgY2F0ZWdvcml6YXRpb25cbiAgICogQGV4YW1wbGUgWydub2RlanMnLCAndHlwZXNjcmlwdCcsICdidWlsZCcsICd0ZXN0J11cbiAgICovXG4gIHJlYWRvbmx5IGtleXdvcmRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBjYXRlZ29yeSBmb3IgQUktYXNzaXN0ZWQgc2VsZWN0aW9uIGFuZCBvcmdhbml6YXRpb24uXG4gICAqIE9uZSBvZjogbGFuZ3VhZ2UsIHNlY3VyaXR5LCBxdWFsaXR5LCB0ZXN0aW5nLCBkZXBsb3ksIGFydGlmYWN0LFxuICAgKiAgICAgICAgIGluZnJhc3RydWN0dXJlLCBtb25pdG9yaW5nLCBub3RpZmljYXRpb24sIGFpXG4gICAqL1xuICByZWFkb25seSBjYXRlZ29yeT86IHN0cmluZztcblxuICAvKipcbiAgICogU2VtYW50aWMgdmVyc2lvbiBvZiB0aGUgcGx1Z2luXG4gICAqIEBleGFtcGxlICcxLjAuMCdcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFR5cGUgb2YgcGlwZWxpbmUgc3RlcCB0aGlzIHBsdWdpbiBjcmVhdGVzXG4gICAqIEBkZWZhdWx0IFBsdWdpblR5cGUuQ09ERV9CVUlMRF9TVEVQXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5UeXBlPzogUGx1Z2luVHlwZTtcblxuICAvKipcbiAgICogQ29kZUJ1aWxkIGNvbXB1dGUgcmVzb3VyY2Ugc2l6ZSB0byB1c2VcbiAgICogQGRlZmF1bHQgQ29tcHV0ZVR5cGUuU01BTExcbiAgICovXG4gIHJlYWRvbmx5IGNvbXB1dGVUeXBlPzogQ29tcHV0ZVR5cGU7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gZXhlY3V0aW9uIHRpbWUgaW4gbWludXRlcy5cbiAgICogVXNlZCBhcyBmYWxsYmFjayB3aGVuIHRoZSBwaXBlbGluZSBzdGVwIGRvZXNuJ3Qgc2V0IHRpbWVvdXQuXG4gICAqIEBkZWZhdWx0IDYwIChBV1MgQ29kZUJ1aWxkIGRlZmF1bHQpXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGF0IGhhcHBlbnMgd2hlbiB0aGlzIHN0ZXAgZmFpbHMuXG4gICAqIC0gJ2ZhaWwnOiBTdG9wIHRoZSBwaXBlbGluZSAoZGVmYXVsdClcbiAgICogLSAnd2Fybic6IExvZyBhIHdhcm5pbmcgYW5kIGNvbnRpbnVlXG4gICAqIC0gJ2lnbm9yZSc6IFNpbGVudGx5IGNvbnRpbnVlXG4gICAqIEBkZWZhdWx0ICdmYWlsJ1xuICAgKi9cbiAgcmVhZG9ubHkgZmFpbHVyZUJlaGF2aW9yPzogJ2ZhaWwnIHwgJ3dhcm4nIHwgJ2lnbm9yZSc7XG5cbiAgLyoqXG4gICAqIFNlY3JldCByZXF1aXJlbWVudHMgZm9yIHRoaXMgcGx1Z2luLlxuICAgKiBEZWNsYXJlcyBuYW1lZCBzZWNyZXRzIHRoZSBwbHVnaW4gZXhwZWN0cyBhdCBidWlsZCB0aW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0cz86IEFycmF5PHsgbmFtZTogc3RyaW5nOyByZXF1aXJlZDogYm9vbGVhbjsgZGVzY3JpcHRpb24/OiBzdHJpbmcgfT47XG5cbiAgLyoqXG4gICAqIERpcmVjdG9yeSBjb250YWluaW5nIHRoZSBwcmltYXJ5IGJ1aWxkIG91dHB1dCBhcnRpZmFjdHNcbiAgICogQGV4YW1wbGUgJ2Rpc3QnXG4gICAqL1xuICByZWFkb25seSBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5Pzogc3RyaW5nO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBtZXRhZGF0YSB0aGF0IGNhbiBiZSBhY2Nlc3NlZCBkdXJpbmcgcGx1Z2luIGV4ZWN1dGlvblxuICAgKiBLZXlzIHNob3VsZCB1c2UgdGhlIGZvcm1hdCAnYXdzOmNkazp7bmFtZXNwYWNlfTp7a2V5fScgKGFsbCBsb3dlcmNhc2UpXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIERvY2tlcmZpbGUgb3IgRG9ja2VyZmlsZSBjb250ZW50XG4gICAqIFVzZWQgdG8gYnVpbGQgdGhlIGNvbnRhaW5lciBlbnZpcm9ubWVudCBmb3IgdGhpcyBwbHVnaW5cbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlcmZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbW1hbmRzIHRvIHJ1biBkdXJpbmcgdGhlIGluc3RhbGwgcGhhc2VcbiAgICogVHlwaWNhbGx5IHVzZWQgZm9yIGluc3RhbGxpbmcgZGVwZW5kZW5jaWVzXG4gICAqIEBleGFtcGxlIFsnbnBtIGNpJywgJ25wbSBydW4gYnVpbGQnXVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFsbENvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIENvbW1hbmRzIHRvIHJ1biBkdXJpbmcgdGhlIGJ1aWxkL2V4ZWN1dGlvbiBwaGFzZVxuICAgKiBUaGVzZSBhcmUgdGhlIG1haW4gY29tbWFuZHMgdGhhdCBwZXJmb3JtIHRoZSBwbHVnaW4ncyB3b3JrXG4gICAqIEBleGFtcGxlIFsnbnBtIHRlc3QnLCAnbnBtIHJ1biBkZXBsb3knXVxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCBpbiB0aGUgYnVpbGQgZW52aXJvbm1lbnRcbiAgICogQGV4YW1wbGUgeyBBUElfVVJMOiAnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20nLCBMT0dfTEVWRUw6ICdpbmZvJyB9XG4gICAqL1xuICByZWFkb25seSBlbnY/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBEb2NrZXIgYnVpbGQgYXJndW1lbnRzIHBhc3NlZCB2aWEgLS1idWlsZC1hcmcgYXQgaW1hZ2UgYnVpbGQgdGltZS5cbiAgICogVXNlZCB0byBwYXJhbWV0ZXJpemUgRG9ja2VyZmlsZSBBUkcgdmFsdWVzIHdoZW4gYnVpbGRpbmcgdGhlIHBsdWdpbiBpbWFnZS5cbiAgICogQGV4YW1wbGUgeyBQWVRIT05fVkVSU0lPTjogJzMuMTInLCBOT0RFX0VOVjogJ3Byb2R1Y3Rpb24nIH1cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIG1ldGFkYXRhIGtleXMgdGhlIHBsdWdpbiByZWZlcmVuY2VzIHZpYSBge3sgcGlwZWxpbmUubWV0YWRhdGEuWCB9fWAuXG4gICAqIERlY2xhcmVkIGFzIGEgY29udHJhY3Qg4oCUIHBpcGVsaW5lcyB1c2luZyB0aGlzIHBsdWdpbiBtdXN0IHN1cHBseSBhbGxcbiAgICogbGlzdGVkIGtleXMgdW5sZXNzIHRoZSB0ZW1wbGF0ZSB1c2VzIGB8IGRlZmF1bHQ6ICcuLi4nYC5cbiAgICogQGV4YW1wbGUgWydlbnYnLCAnbmFtZXNwYWNlJywgJ2NsdXN0ZXJOYW1lJ11cbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVkTWV0YWRhdGE/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUGlwZWxpbmUgdmFycyBrZXlzIHRoZSBwbHVnaW4gcmVmZXJlbmNlcyB2aWEgYHt7IHBpcGVsaW5lLnZhcnMuWCB9fWAuXG4gICAqIEBleGFtcGxlIFsnYnJhbmNoJywgJ3NsYWNrQ2hhbm5lbCddXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlZFZhcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdHlwZSBkZWNsYXJhdGlvbnMgZm9yIHRoZSBtZXRhZGF0YSBrZXlzIGxpc3RlZCBpbiBgcmVxdWlyZWRNZXRhZGF0YWAuXG4gICAqIFVzZWQgYXQgdXBsb2FkIHRpbWUgdG8gdmVyaWZ5IHRoYXQgY29lcmNpb24gZmlsdGVycyAoYHwgbnVtYmVyYCwgYHwgYm9vbGAsXG4gICAqIGB8IGpzb25gKSBtYXRjaCB0aGUgZGVjbGFyZWQgdHlwZSDigJQgZS5nLiBge3sgcGlwZWxpbmUubWV0YWRhdGEuY291bnQgfCBudW1iZXIgfX1gXG4gICAqIHJlcXVpcmVzIGBjb3VudDogJ251bWJlcidgIGhlcmUsIG90aGVyd2lzZSB0aGUgcGx1Z2luIGlzIHJlamVjdGVkLlxuICAgKiBLZXlzIG5vdCBkZWNsYXJlZCBkZWZhdWx0IHRvIGAnc3RyaW5nJ2AuXG4gICAqIEBleGFtcGxlIHsgY291bnQ6ICdudW1iZXInLCBlbmFibGVkOiAnYm9vbCcgfVxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGFUeXBlcz86IFJlY29yZDxzdHJpbmcsICdzdHJpbmcnIHwgJ251bWJlcicgfCAnYm9vbCcgfCAnanNvbic+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCB0eXBlIGRlY2xhcmF0aW9ucyBmb3IgdmFycyBrZXlzIChzYW1lIHNlbWFudGljcyBhcyBgbWV0YWRhdGFUeXBlc2ApLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFyc1R5cGVzPzogUmVjb3JkPHN0cmluZywgJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdib29sJyB8ICdqc29uJz47XG59XG4iXX0=
@@ -145,4 +145,4 @@ export class SourceBuilder {
145
145
  });
146
146
  }
147
147
  }
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmUvc291cmNlLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUd2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQW1CLE1BQU0sMkJBQTJCLENBQUM7QUFFekUsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFM0Msc0ZBQXNGO0FBQ3RGLE1BQU0sbUJBQW1CLEdBQUcsa0NBQWtDLENBQUM7QUFDL0QsNERBQTREO0FBQzVELE1BQU0sMEJBQTBCLEdBQUcsaUJBQWlCLENBQUM7QUFFckQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBRUwsS0FBSztJQUNMLE1BQU07SUFGekIsWUFDbUIsS0FBZ0IsRUFDaEIsTUFBNkI7cUJBRDdCLEtBQUs7c0JBQ0wsTUFBTTtJQUN0QixDQUFDO0lBRUo7O09BRUc7SUFDSCxN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Q0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBSTtTQUNsRyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgY3JlYXRlTG9nZ2VyIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHsgU2VjcmV0VmFsdWUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVjb21taXQnO1xuaW1wb3J0IHsgQ29kZUNvbW1pdFRyaWdnZXIsIEdpdEh1YlRyaWdnZXIsIFMzVHJpZ2dlciB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmUtYWN0aW9ucyc7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQ29kZVBpcGVsaW5lU291cmNlIH0gZnJvbSAnYXdzLWNkay1saWIvcGlwZWxpbmVzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBQaXBlbGluZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL3BpcGVsaW5lLWNvbmZpZ3VyYXRpb24uanMnO1xuaW1wb3J0IHR5cGUgeyBHaXRIdWJPcHRpb25zIH0gZnJvbSAnLi9zb3VyY2UtdHlwZXMuanMnO1xuaW1wb3J0IHsgVW5pcXVlSWQgfSBmcm9tICcuLi9jb3JlL2lkLWdlbmVyYXRvci5qcyc7XG5pbXBvcnQgeyB1bndyYXBTZWNyZXQgfSBmcm9tICcuLi9jb3JlL3BpcGVsaW5lLWhlbHBlcnMuanMnO1xuaW1wb3J0IHsgVHJpZ2dlclR5cGUsIHR5cGUgU291cmNlVHlwZSB9IGZyb20gJy4uL2NvcmUvcGlwZWxpbmUtdHlwZXMuanMnO1xuXG5jb25zdCBsb2cgPSBjcmVhdGVMb2dnZXIoJ3NvdXJjZS1idWlsZGVyJyk7XG5cbi8qKiBBIFNlY3JldHMgTWFuYWdlciBBUk4gKGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOi4uLmAsIGluY2wuIHBhcnRpdGlvbiB2YXJpYW50cykuICovXG5jb25zdCBTRUNSRVRTX01BTkFHRVJfQVJOID0gL15hcm46YXdzW2Etei1dKjpzZWNyZXRzbWFuYWdlcjovaTtcbi8qKiBBIGBzZWNyZXRzbWFuYWdlcjo8c2VjcmV0LW5hbWU+YCBzaG9ydGhhbmQgcmVmZXJlbmNlLiAqL1xuY29uc3QgU0VDUkVUU19NQU5BR0VSX1JFRl9QUkVGSVggPSAnc2VjcmV0c21hbmFnZXI6JztcblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBhcHByb3ByaWF0ZSBDb2RlUGlwZWxpbmVTb3VyY2UgYmFzZWQgb24gdGhlIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogU3VwcG9ydHMgUzMsIEdpdEh1YiwgQ29kZVN0YXIgY29ubmVjdGlvbiwgYW5kIENvZGVDb21taXQgc291cmNlcy5cbiAqXG4gKiAqKk5vdGUgb24gU0NIRURVTEUgdHJpZ2dlcnM6KiogU2NoZWR1bGVkIHBpcGVsaW5lcyByZXF1aXJlIGFuIEV2ZW50QnJpZGdlIHJ1bGVcbiAqIHRoYXQgc3RhcnRzIHRoZSBwaXBlbGluZSBvbiBhIGNyb24gc2NoZWR1bGUuIFRoZSBzb3VyY2UgdHJpZ2dlciBpcyBzZXQgdG8gTk9ORVxuICogKG5vIHBvbGxpbmcvd2ViaG9vaykuIFRoZSBFdmVudEJyaWRnZSBydWxlIG11c3QgYmUgY3JlYXRlZCBzZXBhcmF0ZWx5IGFzIGFcbiAqIHBpcGVsaW5lLWxldmVsIGNvbnN0cnVjdCwgbm90IGF0IHRoZSBzb3VyY2UgbGV2ZWwuIFRoZSBgc2NoZWR1bGVgIGZpZWxkIG9uXG4gKiBzb3VyY2Ugb3B0aW9ucyBjYXB0dXJlcyB0aGUgY3JvbiBleHByZXNzaW9uIGZvciBBUEkvZnJvbnRlbmQgdXNlLiBUaGUgYWN0dWFsXG4gKiBFdmVudEJyaWRnZSBydWxlIGNyZWF0aW9uIGlzIGltcGxlbWVudGVkIGluIGBQaXBlbGluZUJ1aWxkZXJgICh0aGVcbiAqIGBTY2hlZHVsZVJ1bGVgIGBldmVudHMuUnVsZWAgdGFyZ2V0aW5nIHRoZSBwaXBlbGluZSksIG5vdCBhdCB0aGUgc291cmNlIGxldmVsLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzb3VyY2VCdWlsZGVyID0gbmV3IFNvdXJjZUJ1aWxkZXIodGhpcywgY29uZmlnKTtcbiAqIGNvbnN0IHNvdXJjZSA9IHNvdXJjZUJ1aWxkZXIuY3JlYXRlKHVuaXF1ZUlkKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU291cmNlQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogUGlwZWxpbmVDb25maWd1cmF0aW9uLFxuICApIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIGFwcHJvcHJpYXRlIENvZGVQaXBlbGluZVNvdXJjZSBiYXNlZCBvbiBzb3VyY2UgdHlwZVxuICAgKi9cbiAgY3JlYXRlKGlkOiBVbmlxdWVJZCk6IENvZGVQaXBlbGluZVNvdXJjZSB7XG4gICAgc3dpdGNoICh0aGlzLmNvbmZpZy5zb3VyY2UudHlwZSkge1xuICAgICAgY2FzZSAnczMnOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVTM1NvdXJjZShpZCk7XG4gICAgICBjYXNlICdnaXRodWInOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVHaXRIdWJTb3VyY2UoKTtcbiAgICAgIGNhc2UgJ2NvZGVzdGFyJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29kZVN0YXJTb3VyY2UoKTtcbiAgICAgIGNhc2UgJ2NvZGVjb21taXQnOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVDb2RlQ29tbWl0U291cmNlKGlkKTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgX2V4aGF1c3RpdmU6IG5ldmVyID0gdGhpcy5jb25maWcuc291cmNlO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHNvdXJjZSB0eXBlOiAkeyhfZXhoYXVzdGl2ZSBhcyBTb3VyY2VUeXBlKS50eXBlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIFMzIHNvdXJjZSBmb3IgdGhlIHBpcGVsaW5lXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVMzU291cmNlKGlkOiBVbmlxdWVJZCk6IENvZGVQaXBlbGluZVNvdXJjZSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldFMzT3B0aW9ucygpO1xuXG4gICAgY29uc3QgYnVja2V0ID0gQnVja2V0LmZyb21CdWNrZXROYW1lKFxuICAgICAgdGhpcy5zY29wZSxcbiAgICAgIGlkLmdlbmVyYXRlKCdzb3VyY2U6YnVja2V0JyksXG4gICAgICBvcHRpb25zLmJ1Y2tldE5hbWUsXG4gICAgKTtcblxuICAgIGNvbnN0IHRyaWdnZXIgPVxuICAgICAgb3B0aW9ucy50cmlnZ2VyID09PSBUcmlnZ2VyVHlwZS5BVVRPID8gUzNUcmlnZ2VyLkVWRU5UUyA6IFMzVHJpZ2dlci5OT05FO1xuXG4gICAgcmV0dXJuIENvZGVQaXBlbGluZVNvdXJjZS5zMyhidWNrZXQsIG9wdGlvbnMub2JqZWN0S2V5LCB7IHRyaWdnZXIgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEdpdEh1YiBzb3VyY2UgZm9yIHRoZSBwaXBlbGluZVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVHaXRIdWJTb3VyY2UoKTogQ29kZVBpcGVsaW5lU291cmNlIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb25maWcuZ2V0R2l0SHViT3B0aW9ucygpO1xuXG4gICAgcmV0dXJuIENvZGVQaXBlbGluZVNvdXJjZS5naXRIdWIob3B0aW9ucy5yZXBvLCBvcHRpb25zLmJyYW5jaCwge1xuICAgICAgdHJpZ2dlcjogb3B0aW9ucy50cmlnZ2VyID09PSBUcmlnZ2VyVHlwZS5BVVRPID8gR2l0SHViVHJpZ2dlci5QT0xMIDogR2l0SHViVHJpZ2dlci5OT05FLFxuICAgICAgYXV0aGVudGljYXRpb246IHRoaXMucmVzb2x2ZUdpdEh1YkF1dGhlbnRpY2F0aW9uKG9wdGlvbnMpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgdGhlIEdpdEh1YiBhdXRoZW50aWNhdGlvbiB0b2tlbiBpbnRvIGEge0BsaW5rIFNlY3JldFZhbHVlfSB3aXRob3V0XG4gICAqIGxlYWtpbmcgdGhlIHRva2VuIHZhbHVlIGludG8gdGhlIHN5bnRoZXNpemVkIHRlbXBsYXRlLlxuICAgKlxuICAgKiAtIGB1bmRlZmluZWRgIHRva2VuIOKGkiBubyBhdXRoZW50aWNhdGlvbiAoQ0RLIGRlZmF1bHQpLlxuICAgKiAtIEEgYFNlY3JldFZhbHVlYCDihpIgcGFzc2VkIHRocm91Z2ggKGFscmVhZHkgYSByZWZlcmVuY2UsIG5ldmVyIHBsYWludGV4dCkuXG4gICAqIC0gQSBTZWNyZXRzIE1hbmFnZXIgQVJOIG9yIGBzZWNyZXRzbWFuYWdlcjo8bmFtZT5gIHN0cmluZyDihpIgcmVzb2x2ZWQgdmlhXG4gICAqICAgYFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyYCwgc28gb25seSB0aGUgcmVmZXJlbmNlIGxhbmRzIGluIHRoZSB0ZW1wbGF0ZS5cbiAgICogLSBBIGdlbnVpbmUgcmF3IHBsYWludGV4dCB0b2tlbiDihpIgcmVqZWN0ZWQgYnkgZGVmYXVsdCAoaXQgd291bGQgYmUgYmFrZWQgYXNcbiAgICogICBwbGFpbnRleHQgaW50byBDbG91ZEZvcm1hdGlvbi9DREsgY29udGV4dCkuIE9ubHkgd2hlblxuICAgKiAgIGBhbGxvd1BsYWluVGV4dFRva2VuYCBpcyBleHBsaWNpdGx5IHNldCBpcyBpdCBlbWJlZGRlZCB2aWFcbiAgICogICBgU2VjcmV0VmFsdWUudW5zYWZlUGxhaW5UZXh0YCwgYW5kIGEgbG91ZCB3YXJuaW5nIGlzIGVtaXR0ZWQuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVHaXRIdWJBdXRoZW50aWNhdGlvbihvcHRpb25zOiBHaXRIdWJPcHRpb25zKTogU2VjcmV0VmFsdWUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHRva2VuID0gb3B0aW9ucy50b2tlbjtcbiAgICBpZiAodG9rZW4gPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIC8vIEEgU2VjcmV0VmFsdWUgaXMgYWxyZWFkeSBhIHJlZmVyZW5jZSAoZS5nLiBTZWNyZXRzIE1hbmFnZXIpIOKAlCBuZXZlciBwbGFpbnRleHQuXG4gICAgaWYgKHR5cGVvZiB0b2tlbiAhPT0gJ3N0cmluZycpIHJldHVybiB0b2tlbjtcblxuICAgIC8vIEEgc3RyaW5nIHRoYXQgbmFtZXMgYSBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IGlzIHJlc29sdmVkIHRvIGEgcmVmZXJlbmNlIHNvXG4gICAgLy8gb25seSB0aGUgcG9pbnRlciDigJQgbm90IHRoZSB0b2tlbiDigJQgaXMgd3JpdHRlbiB0byB0aGUgdGVtcGxhdGUgLyBDREsgY29udGV4dC5cbiAgICBpZiAoU0VDUkVUU19NQU5BR0VSX0FSTi50ZXN0KHRva2VuKSkge1xuICAgICAgcmV0dXJuIFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyKHRva2VuKTtcbiAgICB9XG4gICAgaWYgKHRva2VuLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChTRUNSRVRTX01BTkFHRVJfUkVGX1BSRUZJWCkpIHtcbiAgICAgIHJldHVybiBTZWNyZXRWYWx1ZS5zZWNyZXRzTWFuYWdlcih0b2tlbi5zbGljZShTRUNSRVRTX01BTkFHRVJfUkVGX1BSRUZJWC5sZW5ndGgpKTtcbiAgICB9XG5cbiAgICAvLyBHZW51aW5lIHJhdyBwbGFpbnRleHQgdG9rZW4g4oCUIHRoaXMgaXMgdGhlIGV4cG9zdXJlLiBSZWplY3QgYnkgZGVmYXVsdCBhbmRcbiAgICAvLyBwb2ludCB0aGUgY2FsbGVyIGF0IGEgc2VjcmV0IHJlZmVyZW5jZSBvciBhIENvZGVTdGFyIGNvbm5lY3Rpb24uXG4gICAgaWYgKCFvcHRpb25zLmFsbG93UGxhaW5UZXh0VG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0dpdEh1YiBzb3VyY2UgYHRva2VuYCBpcyBhIHJhdyBwbGFpbnRleHQgdmFsdWUsIHdoaWNoIHdvdWxkIGJlIGJha2VkIGludG8gdGhlICcgK1xuICAgICAgICAnc3ludGhlc2l6ZWQgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgKGFuZCBDREsgY29udGV4dCAvIHN0YWNrIHN0YXRlKS4gUHJvdmlkZSBhICcgK1xuICAgICAgICAnU2VjcmV0cyBNYW5hZ2VyIHJlZmVyZW5jZSBpbnN0ZWFkIOKAlCBhbiBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjouLi5gIEFSTiwgYSAnICtcbiAgICAgICAgJ2BzZWNyZXRzbWFuYWdlcjo8c2VjcmV0LW5hbWU+YCBzdHJpbmcsIG9yIGEgYFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyKC4uLilgIOKAlCBvciAnICtcbiAgICAgICAgJ3ByZWZlciBhIENvZGVTdGFyIGNvbm5lY3Rpb24gKGB0eXBlOiBcImNvZGVzdGFyXCJgKS4gVG8gaW50ZW50aW9uYWxseSBlbWJlZCB0aGUgdG9rZW4gJyArXG4gICAgICAgICdpbiBwbGFpbnRleHQsIHNldCBgYWxsb3dQbGFpblRleHRUb2tlbjogdHJ1ZWAuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbG9nLndhcm4oXG4gICAgICAnR2l0SHViIHNvdXJjZSBgdG9rZW5gIGlzIGJlaW5nIGVtYmVkZGVkIGFzIFBMQUlOVEVYVCBpbiB0aGUgc3ludGhlc2l6ZWQgQ2xvdWRGb3JtYXRpb24gJyArXG4gICAgICAndGVtcGxhdGUgYmVjYXVzZSBgYWxsb3dQbGFpblRleHRUb2tlbmAgaXMgc2V0LiBBbnlvbmUgd2l0aCB0ZW1wbGF0ZSwgQ0RLIGNvbnRleHQsIG9yICcgK1xuICAgICAgJ3N0YWNrIHN0YXRlIGFjY2VzcyBjYW4gcmVhZCB0aGlzIHRva2VuLiBVc2UgYSBTZWNyZXRzIE1hbmFnZXIgcmVmZXJlbmNlIG9yIGEgQ29kZVN0YXIgJyArXG4gICAgICAnY29ubmVjdGlvbiBpbnN0ZWFkLicsXG4gICAgKTtcbiAgICByZXR1cm4gU2VjcmV0VmFsdWUudW5zYWZlUGxhaW5UZXh0KHRva2VuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ29kZVN0YXIgY29ubmVjdGlvbiBzb3VyY2UgZm9yIHRoZSBwaXBlbGluZVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVDb2RlU3RhclNvdXJjZSgpOiBDb2RlUGlwZWxpbmVTb3VyY2Uge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbmZpZy5nZXRDb2RlU3Rhck9wdGlvbnMoKTtcblxuICAgIHJldHVybiBDb2RlUGlwZWxpbmVTb3VyY2UuY29ubmVjdGlvbihvcHRpb25zLnJlcG8sIG9wdGlvbnMuYnJhbmNoLCB7XG4gICAgICBjb25uZWN0aW9uQXJuOiB1bndyYXBTZWNyZXQob3B0aW9ucy5jb25uZWN0aW9uQXJuKSxcbiAgICAgIHRyaWdnZXJPblB1c2g6IG9wdGlvbnMudHJpZ2dlciA9PT0gVHJpZ2dlclR5cGUuQVVUTyxcbiAgICAgIGNvZGVCdWlsZENsb25lT3V0cHV0OiBvcHRpb25zLmNvZGVCdWlsZENsb25lT3V0cHV0LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDb2RlQ29tbWl0IHNvdXJjZSBmb3IgdGhlIHBpcGVsaW5lXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUNvZGVDb21taXRTb3VyY2UoaWQ6IFVuaXF1ZUlkKTogQ29kZVBpcGVsaW5lU291cmNlIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29kZUNvbW1pdE9wdGlvbnMoKTtcblxuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBSZXBvc2l0b3J5LmZyb21SZXBvc2l0b3J5TmFtZShcbiAgICAgIHRoaXMuc2NvcGUsXG4gICAgICBpZC5nZW5lcmF0ZSgnc291cmNlOnJlcG8nKSxcbiAgICAgIG9wdGlvbnMucmVwb3NpdG9yeU5hbWUsXG4gICAgKTtcblxuICAgIHJldHVybiBDb2RlUGlwZWxpbmVTb3VyY2UuY29kZUNvbW1pdChyZXBvc2l0b3J5LCBvcHRpb25zLmJyYW5jaCA/PyAnbWFpbicsIHtcbiAgICAgIHRyaWdnZXI6IG9wdGlvbnMudHJpZ2dlciA9PT0gVHJpZ2dlclR5cGUuQVVUTyA/IENvZGVDb21taXRUcmlnZ2VyLkVWRU5UUyA6IENvZGVDb21taXRUcmlnZ2VyLk5PTkUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmUvc291cmNlLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUd2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV4RCxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUUzQyxzRkFBc0Y7QUFDdEYsTUFBTSxtQkFBbUIsR0FBRyxrQ0FBa0MsQ0FBQztBQUMvRCw0REFBNEQ7QUFDNUQsTUFBTSwwQkFBMEIsR0FBRyxpQkFBaUIsQ0FBQztBQUVyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFFTCxLQUFLO0lBQ0wsTUFBTTtJQUZ6QixZQUNtQixLQUFnQixFQUNoQixNQUE2QjtxQkFEN0IsS0FBSztzQkFDTCxNQUFNO0lBQ3RCLENBQUM7SUFFSjs7T0FFRztJQUNILE1B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QUFDLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJO1NBQ2xHLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyBTZWNyZXRWYWx1ZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWNvbW1pdCc7XG5pbXBvcnQgeyBDb2RlQ29tbWl0VHJpZ2dlciwgR2l0SHViVHJpZ2dlciwgUzNUcmlnZ2VyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZS1hY3Rpb25zJztcbmltcG9ydCB7IEJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBDb2RlUGlwZWxpbmVTb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9waXBlbGluZXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IFBpcGVsaW5lQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vcGlwZWxpbmUtY29uZmlndXJhdGlvbi5qcyc7XG5pbXBvcnQgdHlwZSB7IEdpdEh1Yk9wdGlvbnMsIFNvdXJjZVR5cGUgfSBmcm9tICcuL3NvdXJjZS10eXBlcy5qcyc7XG5pbXBvcnQgeyBVbmlxdWVJZCB9IGZyb20gJy4uL2NvcmUvaWQtZ2VuZXJhdG9yLmpzJztcbmltcG9ydCB7IHVud3JhcFNlY3JldCB9IGZyb20gJy4uL2NvcmUvcGlwZWxpbmUtaGVscGVycy5qcyc7XG5pbXBvcnQgeyBUcmlnZ2VyVHlwZSB9IGZyb20gJy4uL2NvcmUvcGlwZWxpbmUtdHlwZXMuanMnO1xuXG5jb25zdCBsb2cgPSBjcmVhdGVMb2dnZXIoJ3NvdXJjZS1idWlsZGVyJyk7XG5cbi8qKiBBIFNlY3JldHMgTWFuYWdlciBBUk4gKGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOi4uLmAsIGluY2wuIHBhcnRpdGlvbiB2YXJpYW50cykuICovXG5jb25zdCBTRUNSRVRTX01BTkFHRVJfQVJOID0gL15hcm46YXdzW2Etei1dKjpzZWNyZXRzbWFuYWdlcjovaTtcbi8qKiBBIGBzZWNyZXRzbWFuYWdlcjo8c2VjcmV0LW5hbWU+YCBzaG9ydGhhbmQgcmVmZXJlbmNlLiAqL1xuY29uc3QgU0VDUkVUU19NQU5BR0VSX1JFRl9QUkVGSVggPSAnc2VjcmV0c21hbmFnZXI6JztcblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBhcHByb3ByaWF0ZSBDb2RlUGlwZWxpbmVTb3VyY2UgYmFzZWQgb24gdGhlIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogU3VwcG9ydHMgUzMsIEdpdEh1YiwgQ29kZVN0YXIgY29ubmVjdGlvbiwgYW5kIENvZGVDb21taXQgc291cmNlcy5cbiAqXG4gKiAqKk5vdGUgb24gU0NIRURVTEUgdHJpZ2dlcnM6KiogU2NoZWR1bGVkIHBpcGVsaW5lcyByZXF1aXJlIGFuIEV2ZW50QnJpZGdlIHJ1bGVcbiAqIHRoYXQgc3RhcnRzIHRoZSBwaXBlbGluZSBvbiBhIGNyb24gc2NoZWR1bGUuIFRoZSBzb3VyY2UgdHJpZ2dlciBpcyBzZXQgdG8gTk9ORVxuICogKG5vIHBvbGxpbmcvd2ViaG9vaykuIFRoZSBFdmVudEJyaWRnZSBydWxlIG11c3QgYmUgY3JlYXRlZCBzZXBhcmF0ZWx5IGFzIGFcbiAqIHBpcGVsaW5lLWxldmVsIGNvbnN0cnVjdCwgbm90IGF0IHRoZSBzb3VyY2UgbGV2ZWwuIFRoZSBgc2NoZWR1bGVgIGZpZWxkIG9uXG4gKiBzb3VyY2Ugb3B0aW9ucyBjYXB0dXJlcyB0aGUgY3JvbiBleHByZXNzaW9uIGZvciBBUEkvZnJvbnRlbmQgdXNlLiBUaGUgYWN0dWFsXG4gKiBFdmVudEJyaWRnZSBydWxlIGNyZWF0aW9uIGlzIGltcGxlbWVudGVkIGluIGBQaXBlbGluZUJ1aWxkZXJgICh0aGVcbiAqIGBTY2hlZHVsZVJ1bGVgIGBldmVudHMuUnVsZWAgdGFyZ2V0aW5nIHRoZSBwaXBlbGluZSksIG5vdCBhdCB0aGUgc291cmNlIGxldmVsLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzb3VyY2VCdWlsZGVyID0gbmV3IFNvdXJjZUJ1aWxkZXIodGhpcywgY29uZmlnKTtcbiAqIGNvbnN0IHNvdXJjZSA9IHNvdXJjZUJ1aWxkZXIuY3JlYXRlKHVuaXF1ZUlkKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU291cmNlQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogUGlwZWxpbmVDb25maWd1cmF0aW9uLFxuICApIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIGFwcHJvcHJpYXRlIENvZGVQaXBlbGluZVNvdXJjZSBiYXNlZCBvbiBzb3VyY2UgdHlwZVxuICAgKi9cbiAgY3JlYXRlKGlkOiBVbmlxdWVJZCk6IENvZGVQaXBlbGluZVNvdXJjZSB7XG4gICAgc3dpdGNoICh0aGlzLmNvbmZpZy5zb3VyY2UudHlwZSkge1xuICAgICAgY2FzZSAnczMnOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVTM1NvdXJjZShpZCk7XG4gICAgICBjYXNlICdnaXRodWInOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVHaXRIdWJTb3VyY2UoKTtcbiAgICAgIGNhc2UgJ2NvZGVzdGFyJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29kZVN0YXJTb3VyY2UoKTtcbiAgICAgIGNhc2UgJ2NvZGVjb21taXQnOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVDb2RlQ29tbWl0U291cmNlKGlkKTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgX2V4aGF1c3RpdmU6IG5ldmVyID0gdGhpcy5jb25maWcuc291cmNlO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHNvdXJjZSB0eXBlOiAkeyhfZXhoYXVzdGl2ZSBhcyBTb3VyY2VUeXBlKS50eXBlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIFMzIHNvdXJjZSBmb3IgdGhlIHBpcGVsaW5lXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVMzU291cmNlKGlkOiBVbmlxdWVJZCk6IENvZGVQaXBlbGluZVNvdXJjZSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldFMzT3B0aW9ucygpO1xuXG4gICAgY29uc3QgYnVja2V0ID0gQnVja2V0LmZyb21CdWNrZXROYW1lKFxuICAgICAgdGhpcy5zY29wZSxcbiAgICAgIGlkLmdlbmVyYXRlKCdzb3VyY2U6YnVja2V0JyksXG4gICAgICBvcHRpb25zLmJ1Y2tldE5hbWUsXG4gICAgKTtcblxuICAgIGNvbnN0IHRyaWdnZXIgPVxuICAgICAgb3B0aW9ucy50cmlnZ2VyID09PSBUcmlnZ2VyVHlwZS5BVVRPID8gUzNUcmlnZ2VyLkVWRU5UUyA6IFMzVHJpZ2dlci5OT05FO1xuXG4gICAgcmV0dXJuIENvZGVQaXBlbGluZVNvdXJjZS5zMyhidWNrZXQsIG9wdGlvbnMub2JqZWN0S2V5LCB7IHRyaWdnZXIgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEdpdEh1YiBzb3VyY2UgZm9yIHRoZSBwaXBlbGluZVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVHaXRIdWJTb3VyY2UoKTogQ29kZVBpcGVsaW5lU291cmNlIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb25maWcuZ2V0R2l0SHViT3B0aW9ucygpO1xuXG4gICAgcmV0dXJuIENvZGVQaXBlbGluZVNvdXJjZS5naXRIdWIob3B0aW9ucy5yZXBvLCBvcHRpb25zLmJyYW5jaCwge1xuICAgICAgdHJpZ2dlcjogb3B0aW9ucy50cmlnZ2VyID09PSBUcmlnZ2VyVHlwZS5BVVRPID8gR2l0SHViVHJpZ2dlci5QT0xMIDogR2l0SHViVHJpZ2dlci5OT05FLFxuICAgICAgYXV0aGVudGljYXRpb246IHRoaXMucmVzb2x2ZUdpdEh1YkF1dGhlbnRpY2F0aW9uKG9wdGlvbnMpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgdGhlIEdpdEh1YiBhdXRoZW50aWNhdGlvbiB0b2tlbiBpbnRvIGEge0BsaW5rIFNlY3JldFZhbHVlfSB3aXRob3V0XG4gICAqIGxlYWtpbmcgdGhlIHRva2VuIHZhbHVlIGludG8gdGhlIHN5bnRoZXNpemVkIHRlbXBsYXRlLlxuICAgKlxuICAgKiAtIGB1bmRlZmluZWRgIHRva2VuIOKGkiBubyBhdXRoZW50aWNhdGlvbiAoQ0RLIGRlZmF1bHQpLlxuICAgKiAtIEEgYFNlY3JldFZhbHVlYCDihpIgcGFzc2VkIHRocm91Z2ggKGFscmVhZHkgYSByZWZlcmVuY2UsIG5ldmVyIHBsYWludGV4dCkuXG4gICAqIC0gQSBTZWNyZXRzIE1hbmFnZXIgQVJOIG9yIGBzZWNyZXRzbWFuYWdlcjo8bmFtZT5gIHN0cmluZyDihpIgcmVzb2x2ZWQgdmlhXG4gICAqICAgYFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyYCwgc28gb25seSB0aGUgcmVmZXJlbmNlIGxhbmRzIGluIHRoZSB0ZW1wbGF0ZS5cbiAgICogLSBBIGdlbnVpbmUgcmF3IHBsYWludGV4dCB0b2tlbiDihpIgcmVqZWN0ZWQgYnkgZGVmYXVsdCAoaXQgd291bGQgYmUgYmFrZWQgYXNcbiAgICogICBwbGFpbnRleHQgaW50byBDbG91ZEZvcm1hdGlvbi9DREsgY29udGV4dCkuIE9ubHkgd2hlblxuICAgKiAgIGBhbGxvd1BsYWluVGV4dFRva2VuYCBpcyBleHBsaWNpdGx5IHNldCBpcyBpdCBlbWJlZGRlZCB2aWFcbiAgICogICBgU2VjcmV0VmFsdWUudW5zYWZlUGxhaW5UZXh0YCwgYW5kIGEgbG91ZCB3YXJuaW5nIGlzIGVtaXR0ZWQuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVHaXRIdWJBdXRoZW50aWNhdGlvbihvcHRpb25zOiBHaXRIdWJPcHRpb25zKTogU2VjcmV0VmFsdWUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHRva2VuID0gb3B0aW9ucy50b2tlbjtcbiAgICBpZiAodG9rZW4gPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIC8vIEEgU2VjcmV0VmFsdWUgaXMgYWxyZWFkeSBhIHJlZmVyZW5jZSAoZS5nLiBTZWNyZXRzIE1hbmFnZXIpIOKAlCBuZXZlciBwbGFpbnRleHQuXG4gICAgaWYgKHR5cGVvZiB0b2tlbiAhPT0gJ3N0cmluZycpIHJldHVybiB0b2tlbjtcblxuICAgIC8vIEEgc3RyaW5nIHRoYXQgbmFtZXMgYSBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IGlzIHJlc29sdmVkIHRvIGEgcmVmZXJlbmNlIHNvXG4gICAgLy8gb25seSB0aGUgcG9pbnRlciDigJQgbm90IHRoZSB0b2tlbiDigJQgaXMgd3JpdHRlbiB0byB0aGUgdGVtcGxhdGUgLyBDREsgY29udGV4dC5cbiAgICBpZiAoU0VDUkVUU19NQU5BR0VSX0FSTi50ZXN0KHRva2VuKSkge1xuICAgICAgcmV0dXJuIFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyKHRva2VuKTtcbiAgICB9XG4gICAgaWYgKHRva2VuLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChTRUNSRVRTX01BTkFHRVJfUkVGX1BSRUZJWCkpIHtcbiAgICAgIHJldHVybiBTZWNyZXRWYWx1ZS5zZWNyZXRzTWFuYWdlcih0b2tlbi5zbGljZShTRUNSRVRTX01BTkFHRVJfUkVGX1BSRUZJWC5sZW5ndGgpKTtcbiAgICB9XG5cbiAgICAvLyBHZW51aW5lIHJhdyBwbGFpbnRleHQgdG9rZW4g4oCUIHRoaXMgaXMgdGhlIGV4cG9zdXJlLiBSZWplY3QgYnkgZGVmYXVsdCBhbmRcbiAgICAvLyBwb2ludCB0aGUgY2FsbGVyIGF0IGEgc2VjcmV0IHJlZmVyZW5jZSBvciBhIENvZGVTdGFyIGNvbm5lY3Rpb24uXG4gICAgaWYgKCFvcHRpb25zLmFsbG93UGxhaW5UZXh0VG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0dpdEh1YiBzb3VyY2UgYHRva2VuYCBpcyBhIHJhdyBwbGFpbnRleHQgdmFsdWUsIHdoaWNoIHdvdWxkIGJlIGJha2VkIGludG8gdGhlICcgK1xuICAgICAgICAnc3ludGhlc2l6ZWQgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgKGFuZCBDREsgY29udGV4dCAvIHN0YWNrIHN0YXRlKS4gUHJvdmlkZSBhICcgK1xuICAgICAgICAnU2VjcmV0cyBNYW5hZ2VyIHJlZmVyZW5jZSBpbnN0ZWFkIOKAlCBhbiBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjouLi5gIEFSTiwgYSAnICtcbiAgICAgICAgJ2BzZWNyZXRzbWFuYWdlcjo8c2VjcmV0LW5hbWU+YCBzdHJpbmcsIG9yIGEgYFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyKC4uLilgIOKAlCBvciAnICtcbiAgICAgICAgJ3ByZWZlciBhIENvZGVTdGFyIGNvbm5lY3Rpb24gKGB0eXBlOiBcImNvZGVzdGFyXCJgKS4gVG8gaW50ZW50aW9uYWxseSBlbWJlZCB0aGUgdG9rZW4gJyArXG4gICAgICAgICdpbiBwbGFpbnRleHQsIHNldCBgYWxsb3dQbGFpblRleHRUb2tlbjogdHJ1ZWAuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbG9nLndhcm4oXG4gICAgICAnR2l0SHViIHNvdXJjZSBgdG9rZW5gIGlzIGJlaW5nIGVtYmVkZGVkIGFzIFBMQUlOVEVYVCBpbiB0aGUgc3ludGhlc2l6ZWQgQ2xvdWRGb3JtYXRpb24gJyArXG4gICAgICAndGVtcGxhdGUgYmVjYXVzZSBgYWxsb3dQbGFpblRleHRUb2tlbmAgaXMgc2V0LiBBbnlvbmUgd2l0aCB0ZW1wbGF0ZSwgQ0RLIGNvbnRleHQsIG9yICcgK1xuICAgICAgJ3N0YWNrIHN0YXRlIGFjY2VzcyBjYW4gcmVhZCB0aGlzIHRva2VuLiBVc2UgYSBTZWNyZXRzIE1hbmFnZXIgcmVmZXJlbmNlIG9yIGEgQ29kZVN0YXIgJyArXG4gICAgICAnY29ubmVjdGlvbiBpbnN0ZWFkLicsXG4gICAgKTtcbiAgICByZXR1cm4gU2VjcmV0VmFsdWUudW5zYWZlUGxhaW5UZXh0KHRva2VuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ29kZVN0YXIgY29ubmVjdGlvbiBzb3VyY2UgZm9yIHRoZSBwaXBlbGluZVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVDb2RlU3RhclNvdXJjZSgpOiBDb2RlUGlwZWxpbmVTb3VyY2Uge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbmZpZy5nZXRDb2RlU3Rhck9wdGlvbnMoKTtcblxuICAgIHJldHVybiBDb2RlUGlwZWxpbmVTb3VyY2UuY29ubmVjdGlvbihvcHRpb25zLnJlcG8sIG9wdGlvbnMuYnJhbmNoLCB7XG4gICAgICBjb25uZWN0aW9uQXJuOiB1bndyYXBTZWNyZXQob3B0aW9ucy5jb25uZWN0aW9uQXJuKSxcbiAgICAgIHRyaWdnZXJPblB1c2g6IG9wdGlvbnMudHJpZ2dlciA9PT0gVHJpZ2dlclR5cGUuQVVUTyxcbiAgICAgIGNvZGVCdWlsZENsb25lT3V0cHV0OiBvcHRpb25zLmNvZGVCdWlsZENsb25lT3V0cHV0LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDb2RlQ29tbWl0IHNvdXJjZSBmb3IgdGhlIHBpcGVsaW5lXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUNvZGVDb21taXRTb3VyY2UoaWQ6IFVuaXF1ZUlkKTogQ29kZVBpcGVsaW5lU291cmNlIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29kZUNvbW1pdE9wdGlvbnMoKTtcblxuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBSZXBvc2l0b3J5LmZyb21SZXBvc2l0b3J5TmFtZShcbiAgICAgIHRoaXMuc2NvcGUsXG4gICAgICBpZC5nZW5lcmF0ZSgnc291cmNlOnJlcG8nKSxcbiAgICAgIG9wdGlvbnMucmVwb3NpdG9yeU5hbWUsXG4gICAgKTtcblxuICAgIHJldHVybiBDb2RlUGlwZWxpbmVTb3VyY2UuY29kZUNvbW1pdChyZXBvc2l0b3J5LCBvcHRpb25zLmJyYW5jaCA/PyAnbWFpbicsIHtcbiAgICAgIHRyaWdnZXI6IG9wdGlvbnMudHJpZ2dlciA9PT0gVHJpZ2dlclR5cGUuQVVUTyA/IENvZGVDb21taXRUcmlnZ2VyLkVWRU5UUyA6IENvZGVDb21taXRUcmlnZ2VyLk5PTkUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -209,3 +209,13 @@ export interface CodeCommitOptions {
209
209
  */
210
210
  readonly trigger?: TriggerType;
211
211
  }
212
+ /**
213
+ * Union type of all supported pipeline source types
214
+ *
215
+ * Supported sources:
216
+ * - S3SourceConfig: Source code from S3 bucket
217
+ * - GitHubSourceConfig: Source code from GitHub repository
218
+ * - CodeStarSourceConfig: Source code via CodeStar connection (GitHub, Bitbucket, GitLab)
219
+ * - CodeCommitSourceConfig: Source code from AWS CodeCommit repository
220
+ */
221
+ export type SourceType = S3SourceConfig | GitHubSourceConfig | CodeStarSourceConfig | CodeCommitSourceConfig;
@@ -1,4 +1,4 @@
1
1
  // Copyright 2026 Pipeline Builder Contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  export {};
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BpcGVsaW5lL3NvdXJjZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB0eXBlIHsgU2VjcmV0VmFsdWUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IFRyaWdnZXJUeXBlIH0gZnJvbSAnLi4vY29yZS9waXBlbGluZS10eXBlcy5qcyc7XG5cbi8qKlxuICogUzMgc291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIENvZGVQaXBlbGluZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzb3VyY2U6IFMzU291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnczMnLFxuICogICBvcHRpb25zOiB7XG4gKiAgICAgYnVja2V0TmFtZTogJ215LXNvdXJjZS1idWNrZXQnLFxuICogICAgIG9iamVjdEtleTogJ3NvdXJjZS56aXAnLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFMzU291cmNlQ29uZmlnIHtcbiAgcmVhZG9ubHkgdHlwZTogJ3MzJztcbiAgcmVhZG9ubHkgb3B0aW9uczogUzNPcHRpb25zO1xufVxuXG4vKipcbiAqIEdpdEh1YiBzb3VyY2UgY29uZmlndXJhdGlvbiBmb3IgQ29kZVBpcGVsaW5lXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNvdXJjZTogR2l0SHViU291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnZ2l0aHViJyxcbiAqICAgb3B0aW9uczoge1xuICogICAgIHJlcG86ICdvd25lci9yZXBvc2l0b3J5JyxcbiAqICAgICBicmFuY2g6ICdtYWluJyxcbiAqICAgICB0cmlnZ2VyOiBUcmlnZ2VyVHlwZS5BVVRPXG4gKiAgIH1cbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRIdWJTb3VyY2VDb25maWcge1xuICByZWFkb25seSB0eXBlOiAnZ2l0aHViJztcbiAgcmVhZG9ubHkgb3B0aW9uczogR2l0SHViT3B0aW9ucztcbn1cblxuLyoqXG4gKiBDb2RlU3RhciBjb25uZWN0aW9uIHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciBDb2RlUGlwZWxpbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc291cmNlOiBDb2RlU3RhclNvdXJjZUNvbmZpZyA9IHtcbiAqICAgdHlwZTogJ2NvZGVzdGFyJyxcbiAqICAgb3B0aW9uczoge1xuICogICAgIHJlcG86ICdvd25lci9yZXBvc2l0b3J5JyxcbiAqICAgICBicmFuY2g6ICdtYWluJyxcbiAqICAgICBjb25uZWN0aW9uQXJuOiAnYXJuOmF3czpjb2Rlc3Rhci1jb25uZWN0aW9uczouLi4nLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdGFyU291cmNlQ29uZmlnIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2NvZGVzdGFyJztcbiAgcmVhZG9ubHkgb3B0aW9uczogQ29kZVN0YXJPcHRpb25zO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgUzMgcGlwZWxpbmUgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNPcHRpb25zIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIFMzIGJ1Y2tldCBjb250YWluaW5nIHRoZSBzb3VyY2UgY29kZVxuICAgKiBAZXhhbXBsZSAnbXktcGlwZWxpbmUtc291cmNlLWJ1Y2tldCdcbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogT2JqZWN0IGtleSAocGF0aCkgdG8gdGhlIHNvdXJjZSBhcmNoaXZlIHdpdGhpbiB0aGUgYnVja2V0XG4gICAqIEBkZWZhdWx0ICdzb3VyY2UuemlwJ1xuICAgKi9cbiAgcmVhZG9ubHkgb2JqZWN0S2V5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQaXBlbGluZSB0cmlnZ2VyIGJlaGF2aW9yXG4gICAqIEBkZWZhdWx0IFRyaWdnZXJUeXBlLk5PTkVcbiAgICovXG4gIHJlYWRvbmx5IHRyaWdnZXI/OiBUcmlnZ2VyVHlwZTtcblxuICAvKipcbiAgICogQ3JvbiBleHByZXNzaW9uIGZvciBzY2hlZHVsZWQgdHJpZ2dlciAoZS5nLiwgJ2Nyb24oMCAwICogKiA/ICopJyBmb3IgZGFpbHkpLlxuICAgKiBPbmx5IHVzZWQgd2hlbiB0cmlnZ2VyIGlzIFNDSEVEVUxFLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBHaXRIdWIgcGlwZWxpbmUgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0SHViT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBHaXRIdWIgcmVwb3NpdG9yeSBpbiB0aGUgZm9ybWF0IFwib3duZXIvcmVwb1wiXG4gICAqIEBleGFtcGxlICdteW9yZy9teXJlcG8nXG4gICAqL1xuICByZWFkb25seSByZXBvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCB0byB0cmFja1xuICAgKiBAZGVmYXVsdCAnbWFpbidcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIGF1dGhlbnRpY2F0aW9uIHRva2VuLlxuICAgKlxuICAgKiBQcmVmZXIgYSBTZWNyZXRzIE1hbmFnZXIgcmVmZXJlbmNlIHNvIHRoZSB0b2tlbiB2YWx1ZSBuZXZlciBsYW5kcyBpbiB0aGVcbiAgICogc3ludGhlc2l6ZWQgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgLyBDREsgY29udGV4dC4gQWNjZXB0ZWQgZm9ybXM6XG4gICAqICAgLSBhIGBTZWNyZXRWYWx1ZWAgKGUuZy4gYFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyKC4uLilgKSxcbiAgICogICAtIGEgU2VjcmV0cyBNYW5hZ2VyIEFSTiBzdHJpbmcgKGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOi4uLmApLFxuICAgKiAgIC0gYSBgc2VjcmV0c21hbmFnZXI6PHNlY3JldC1uYW1lPmAgc2hvcnRoYW5kIHN0cmluZy5cbiAgICpcbiAgICogQSBnZW51aW5lIHJhdyBwbGFpbnRleHQgdG9rZW4gKGUuZy4gYSBgZ2hwXy4uLmAgUEFUKSBpcyByZWplY3RlZCBieSBkZWZhdWx0LFxuICAgKiBiZWNhdXNlIGJha2luZyBpdCBpbiB3b3VsZCBleHBvc2UgaXQgdG8gYW55b25lIHdpdGggdGVtcGxhdGUvc3RhdGUgYWNjZXNzIOKAlFxuICAgKiBzZXQge0BsaW5rIGFsbG93UGxhaW5UZXh0VG9rZW59IHRvIGludGVudGlvbmFsbHkgZW1iZWQgaXQuXG4gICAqXG4gICAqIElmIG5vdCBwcm92aWRlZCwgdXNlcyBkZWZhdWx0IEdpdEh1YiBhdXRoZW50aWNhdGlvbi4gQ29uc2lkZXIgYSBDb2RlU3RhclxuICAgKiBjb25uZWN0aW9uIChgdHlwZTogJ2NvZGVzdGFyJ2ApIGFzIHRoZSBtb2Rlcm4sIGNyZWRlbnRpYWwtZnJlZSBwYXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9rZW4/OiBTZWNyZXRWYWx1ZSB8IHN0cmluZztcblxuICAvKipcbiAgICogT3B0LWluIGVzY2FwZSBoYXRjaCB0byBlbWJlZCBhIHJhdyBwbGFpbnRleHQge0BsaW5rIHRva2VufSBkaXJlY3RseSBpbiB0aGVcbiAgICogc3ludGhlc2l6ZWQgdGVtcGxhdGUuIEluc2VjdXJlIOKAlCB0aGUgdG9rZW4gYmVjb21lcyByZWFkYWJsZSBieSBhbnlvbmUgd2l0aFxuICAgKiB0ZW1wbGF0ZSwgQ0RLIGNvbnRleHQsIG9yIHN0YWNrIHN0YXRlIGFjY2Vzcy4gTGVhdmUgdW5zZXQgKGRlZmF1bHQpIHRvIGZvcmNlXG4gICAqIGEgU2VjcmV0cyBNYW5hZ2VyIHJlZmVyZW5jZSBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dQbGFpblRleHRUb2tlbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIHRyaWdnZXIgYmVoYXZpb3JcbiAgICogQGRlZmF1bHQgVHJpZ2dlclR5cGUuTk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcj86IFRyaWdnZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBDcm9uIGV4cHJlc3Npb24gZm9yIHNjaGVkdWxlZCB0cmlnZ2VyIChlLmcuLCAnY3JvbigwIDAgKiAqID8gKiknIGZvciBkYWlseSkuXG4gICAqIE9ubHkgdXNlZCB3aGVuIHRyaWdnZXIgaXMgU0NIRURVTEUuXG4gICAqL1xuICByZWFkb25seSBzY2hlZHVsZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIENvZGVTdGFyIGNvbm5lY3Rpb24gcGlwZWxpbmUgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0YXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFJlcG9zaXRvcnkgaWRlbnRpZmllciBpbiB0aGUgZm9ybWF0IFwib3duZXIvcmVwb1wiXG4gICAqIEBleGFtcGxlICdteW9yZy9teXJlcG8nXG4gICAqL1xuICByZWFkb25seSByZXBvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCB0byB0cmFja1xuICAgKiBAZGVmYXVsdCAnbWFpbidcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogQVJOIG9mIHRoZSBDb2RlU3RhciBjb25uZWN0aW9uIHRvIHVzZVxuICAgKiBDYW4gYmUgYSBzdHJpbmcgQVJOIG9yIFNlY3JldFZhbHVlXG4gICAqIEBleGFtcGxlICdhcm46YXdzOmNvZGVzdGFyLWNvbm5lY3Rpb25zOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y29ubmVjdGlvbi9hYmMxMjMnXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uQXJuOiBTZWNyZXRWYWx1ZSB8IHN0cmluZztcblxuICAvKipcbiAgICogUGlwZWxpbmUgdHJpZ2dlciBiZWhhdmlvclxuICAgKiBAZGVmYXVsdCBUcmlnZ2VyVHlwZS5OT05FXG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyPzogVHJpZ2dlclR5cGU7XG5cbiAgLyoqXG4gICAqIENyb24gZXhwcmVzc2lvbiBmb3Igc2NoZWR1bGVkIHRyaWdnZXIgKGUuZy4sICdjcm9uKDAgMCAqICogPyAqKScgZm9yIGRhaWx5KS5cbiAgICogT25seSB1c2VkIHdoZW4gdHJpZ2dlciBpcyBTQ0hFRFVMRS5cbiAgICovXG4gIHJlYWRvbmx5IHNjaGVkdWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBmdWxsIGNsb25lIGNhcGFiaWxpdHkgaW4gQ29kZUJ1aWxkXG4gICAqIFdoZW4gdHJ1ZSwgQ29kZUJ1aWxkIGNhbiBwZXJmb3JtIGdpdCBvcGVyYXRpb25zIG9uIHRoZSBmdWxsIHJlcG9zaXRvcnlcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNvZGVCdWlsZENsb25lT3V0cHV0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb2RlQ29tbWl0IHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciBDb2RlUGlwZWxpbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc291cmNlOiBDb2RlQ29tbWl0U291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnY29kZWNvbW1pdCcsXG4gKiAgIG9wdGlvbnM6IHtcbiAqICAgICByZXBvc2l0b3J5TmFtZTogJ215LXJlcG8nLFxuICogICAgIGJyYW5jaDogJ21haW4nLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVDb21taXRTb3VyY2VDb25maWcge1xuICByZWFkb25seSB0eXBlOiAnY29kZWNvbW1pdCc7XG4gIHJlYWRvbmx5IG9wdGlvbnM6IENvZGVDb21taXRPcHRpb25zO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgQ29kZUNvbW1pdCBwaXBlbGluZSBzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQ29tbWl0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBDb2RlQ29tbWl0IHJlcG9zaXRvcnlcbiAgICogQGV4YW1wbGUgJ215LXJlcG8nXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCcmFuY2ggdG8gdHJhY2tcbiAgICogQGRlZmF1bHQgJ21haW4nXG4gICAqL1xuICByZWFkb25seSBicmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIHRyaWdnZXIgYmVoYXZpb3JcbiAgICogQGRlZmF1bHQgVHJpZ2dlclR5cGUuTk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcj86IFRyaWdnZXJUeXBlO1xufVxuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BpcGVsaW5lL3NvdXJjZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB0eXBlIHsgU2VjcmV0VmFsdWUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IFRyaWdnZXJUeXBlIH0gZnJvbSAnLi4vY29yZS9waXBlbGluZS10eXBlcy5qcyc7XG5cbi8qKlxuICogUzMgc291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIENvZGVQaXBlbGluZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzb3VyY2U6IFMzU291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnczMnLFxuICogICBvcHRpb25zOiB7XG4gKiAgICAgYnVja2V0TmFtZTogJ215LXNvdXJjZS1idWNrZXQnLFxuICogICAgIG9iamVjdEtleTogJ3NvdXJjZS56aXAnLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFMzU291cmNlQ29uZmlnIHtcbiAgcmVhZG9ubHkgdHlwZTogJ3MzJztcbiAgcmVhZG9ubHkgb3B0aW9uczogUzNPcHRpb25zO1xufVxuXG4vKipcbiAqIEdpdEh1YiBzb3VyY2UgY29uZmlndXJhdGlvbiBmb3IgQ29kZVBpcGVsaW5lXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNvdXJjZTogR2l0SHViU291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnZ2l0aHViJyxcbiAqICAgb3B0aW9uczoge1xuICogICAgIHJlcG86ICdvd25lci9yZXBvc2l0b3J5JyxcbiAqICAgICBicmFuY2g6ICdtYWluJyxcbiAqICAgICB0cmlnZ2VyOiBUcmlnZ2VyVHlwZS5BVVRPXG4gKiAgIH1cbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRIdWJTb3VyY2VDb25maWcge1xuICByZWFkb25seSB0eXBlOiAnZ2l0aHViJztcbiAgcmVhZG9ubHkgb3B0aW9uczogR2l0SHViT3B0aW9ucztcbn1cblxuLyoqXG4gKiBDb2RlU3RhciBjb25uZWN0aW9uIHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciBDb2RlUGlwZWxpbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc291cmNlOiBDb2RlU3RhclNvdXJjZUNvbmZpZyA9IHtcbiAqICAgdHlwZTogJ2NvZGVzdGFyJyxcbiAqICAgb3B0aW9uczoge1xuICogICAgIHJlcG86ICdvd25lci9yZXBvc2l0b3J5JyxcbiAqICAgICBicmFuY2g6ICdtYWluJyxcbiAqICAgICBjb25uZWN0aW9uQXJuOiAnYXJuOmF3czpjb2Rlc3Rhci1jb25uZWN0aW9uczouLi4nLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdGFyU291cmNlQ29uZmlnIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2NvZGVzdGFyJztcbiAgcmVhZG9ubHkgb3B0aW9uczogQ29kZVN0YXJPcHRpb25zO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgUzMgcGlwZWxpbmUgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNPcHRpb25zIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIFMzIGJ1Y2tldCBjb250YWluaW5nIHRoZSBzb3VyY2UgY29kZVxuICAgKiBAZXhhbXBsZSAnbXktcGlwZWxpbmUtc291cmNlLWJ1Y2tldCdcbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogT2JqZWN0IGtleSAocGF0aCkgdG8gdGhlIHNvdXJjZSBhcmNoaXZlIHdpdGhpbiB0aGUgYnVja2V0XG4gICAqIEBkZWZhdWx0ICdzb3VyY2UuemlwJ1xuICAgKi9cbiAgcmVhZG9ubHkgb2JqZWN0S2V5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQaXBlbGluZSB0cmlnZ2VyIGJlaGF2aW9yXG4gICAqIEBkZWZhdWx0IFRyaWdnZXJUeXBlLk5PTkVcbiAgICovXG4gIHJlYWRvbmx5IHRyaWdnZXI/OiBUcmlnZ2VyVHlwZTtcblxuICAvKipcbiAgICogQ3JvbiBleHByZXNzaW9uIGZvciBzY2hlZHVsZWQgdHJpZ2dlciAoZS5nLiwgJ2Nyb24oMCAwICogKiA/ICopJyBmb3IgZGFpbHkpLlxuICAgKiBPbmx5IHVzZWQgd2hlbiB0cmlnZ2VyIGlzIFNDSEVEVUxFLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBHaXRIdWIgcGlwZWxpbmUgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0SHViT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBHaXRIdWIgcmVwb3NpdG9yeSBpbiB0aGUgZm9ybWF0IFwib3duZXIvcmVwb1wiXG4gICAqIEBleGFtcGxlICdteW9yZy9teXJlcG8nXG4gICAqL1xuICByZWFkb25seSByZXBvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCB0byB0cmFja1xuICAgKiBAZGVmYXVsdCAnbWFpbidcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIGF1dGhlbnRpY2F0aW9uIHRva2VuLlxuICAgKlxuICAgKiBQcmVmZXIgYSBTZWNyZXRzIE1hbmFnZXIgcmVmZXJlbmNlIHNvIHRoZSB0b2tlbiB2YWx1ZSBuZXZlciBsYW5kcyBpbiB0aGVcbiAgICogc3ludGhlc2l6ZWQgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgLyBDREsgY29udGV4dC4gQWNjZXB0ZWQgZm9ybXM6XG4gICAqICAgLSBhIGBTZWNyZXRWYWx1ZWAgKGUuZy4gYFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyKC4uLilgKSxcbiAgICogICAtIGEgU2VjcmV0cyBNYW5hZ2VyIEFSTiBzdHJpbmcgKGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOi4uLmApLFxuICAgKiAgIC0gYSBgc2VjcmV0c21hbmFnZXI6PHNlY3JldC1uYW1lPmAgc2hvcnRoYW5kIHN0cmluZy5cbiAgICpcbiAgICogQSBnZW51aW5lIHJhdyBwbGFpbnRleHQgdG9rZW4gKGUuZy4gYSBgZ2hwXy4uLmAgUEFUKSBpcyByZWplY3RlZCBieSBkZWZhdWx0LFxuICAgKiBiZWNhdXNlIGJha2luZyBpdCBpbiB3b3VsZCBleHBvc2UgaXQgdG8gYW55b25lIHdpdGggdGVtcGxhdGUvc3RhdGUgYWNjZXNzIOKAlFxuICAgKiBzZXQge0BsaW5rIGFsbG93UGxhaW5UZXh0VG9rZW59IHRvIGludGVudGlvbmFsbHkgZW1iZWQgaXQuXG4gICAqXG4gICAqIElmIG5vdCBwcm92aWRlZCwgdXNlcyBkZWZhdWx0IEdpdEh1YiBhdXRoZW50aWNhdGlvbi4gQ29uc2lkZXIgYSBDb2RlU3RhclxuICAgKiBjb25uZWN0aW9uIChgdHlwZTogJ2NvZGVzdGFyJ2ApIGFzIHRoZSBtb2Rlcm4sIGNyZWRlbnRpYWwtZnJlZSBwYXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9rZW4/OiBTZWNyZXRWYWx1ZSB8IHN0cmluZztcblxuICAvKipcbiAgICogT3B0LWluIGVzY2FwZSBoYXRjaCB0byBlbWJlZCBhIHJhdyBwbGFpbnRleHQge0BsaW5rIHRva2VufSBkaXJlY3RseSBpbiB0aGVcbiAgICogc3ludGhlc2l6ZWQgdGVtcGxhdGUuIEluc2VjdXJlIOKAlCB0aGUgdG9rZW4gYmVjb21lcyByZWFkYWJsZSBieSBhbnlvbmUgd2l0aFxuICAgKiB0ZW1wbGF0ZSwgQ0RLIGNvbnRleHQsIG9yIHN0YWNrIHN0YXRlIGFjY2Vzcy4gTGVhdmUgdW5zZXQgKGRlZmF1bHQpIHRvIGZvcmNlXG4gICAqIGEgU2VjcmV0cyBNYW5hZ2VyIHJlZmVyZW5jZSBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dQbGFpblRleHRUb2tlbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIHRyaWdnZXIgYmVoYXZpb3JcbiAgICogQGRlZmF1bHQgVHJpZ2dlclR5cGUuTk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcj86IFRyaWdnZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBDcm9uIGV4cHJlc3Npb24gZm9yIHNjaGVkdWxlZCB0cmlnZ2VyIChlLmcuLCAnY3JvbigwIDAgKiAqID8gKiknIGZvciBkYWlseSkuXG4gICAqIE9ubHkgdXNlZCB3aGVuIHRyaWdnZXIgaXMgU0NIRURVTEUuXG4gICAqL1xuICByZWFkb25seSBzY2hlZHVsZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIENvZGVTdGFyIGNvbm5lY3Rpb24gcGlwZWxpbmUgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0YXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFJlcG9zaXRvcnkgaWRlbnRpZmllciBpbiB0aGUgZm9ybWF0IFwib3duZXIvcmVwb1wiXG4gICAqIEBleGFtcGxlICdteW9yZy9teXJlcG8nXG4gICAqL1xuICByZWFkb25seSByZXBvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCB0byB0cmFja1xuICAgKiBAZGVmYXVsdCAnbWFpbidcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogQVJOIG9mIHRoZSBDb2RlU3RhciBjb25uZWN0aW9uIHRvIHVzZVxuICAgKiBDYW4gYmUgYSBzdHJpbmcgQVJOIG9yIFNlY3JldFZhbHVlXG4gICAqIEBleGFtcGxlICdhcm46YXdzOmNvZGVzdGFyLWNvbm5lY3Rpb25zOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y29ubmVjdGlvbi9hYmMxMjMnXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uQXJuOiBTZWNyZXRWYWx1ZSB8IHN0cmluZztcblxuICAvKipcbiAgICogUGlwZWxpbmUgdHJpZ2dlciBiZWhhdmlvclxuICAgKiBAZGVmYXVsdCBUcmlnZ2VyVHlwZS5OT05FXG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyPzogVHJpZ2dlclR5cGU7XG5cbiAgLyoqXG4gICAqIENyb24gZXhwcmVzc2lvbiBmb3Igc2NoZWR1bGVkIHRyaWdnZXIgKGUuZy4sICdjcm9uKDAgMCAqICogPyAqKScgZm9yIGRhaWx5KS5cbiAgICogT25seSB1c2VkIHdoZW4gdHJpZ2dlciBpcyBTQ0hFRFVMRS5cbiAgICovXG4gIHJlYWRvbmx5IHNjaGVkdWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBmdWxsIGNsb25lIGNhcGFiaWxpdHkgaW4gQ29kZUJ1aWxkXG4gICAqIFdoZW4gdHJ1ZSwgQ29kZUJ1aWxkIGNhbiBwZXJmb3JtIGdpdCBvcGVyYXRpb25zIG9uIHRoZSBmdWxsIHJlcG9zaXRvcnlcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNvZGVCdWlsZENsb25lT3V0cHV0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb2RlQ29tbWl0IHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciBDb2RlUGlwZWxpbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc291cmNlOiBDb2RlQ29tbWl0U291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnY29kZWNvbW1pdCcsXG4gKiAgIG9wdGlvbnM6IHtcbiAqICAgICByZXBvc2l0b3J5TmFtZTogJ215LXJlcG8nLFxuICogICAgIGJyYW5jaDogJ21haW4nLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVDb21taXRTb3VyY2VDb25maWcge1xuICByZWFkb25seSB0eXBlOiAnY29kZWNvbW1pdCc7XG4gIHJlYWRvbmx5IG9wdGlvbnM6IENvZGVDb21taXRPcHRpb25zO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgQ29kZUNvbW1pdCBwaXBlbGluZSBzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQ29tbWl0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBDb2RlQ29tbWl0IHJlcG9zaXRvcnlcbiAgICogQGV4YW1wbGUgJ215LXJlcG8nXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCcmFuY2ggdG8gdHJhY2tcbiAgICogQGRlZmF1bHQgJ21haW4nXG4gICAqL1xuICByZWFkb25seSBicmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIHRyaWdnZXIgYmVoYXZpb3JcbiAgICogQGRlZmF1bHQgVHJpZ2dlclR5cGUuTk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcj86IFRyaWdnZXJUeXBlO1xufVxuXG4vKipcbiAqIFVuaW9uIHR5cGUgb2YgYWxsIHN1cHBvcnRlZCBwaXBlbGluZSBzb3VyY2UgdHlwZXNcbiAqXG4gKiBTdXBwb3J0ZWQgc291cmNlczpcbiAqIC0gUzNTb3VyY2VDb25maWc6IFNvdXJjZSBjb2RlIGZyb20gUzMgYnVja2V0XG4gKiAtIEdpdEh1YlNvdXJjZUNvbmZpZzogU291cmNlIGNvZGUgZnJvbSBHaXRIdWIgcmVwb3NpdG9yeVxuICogLSBDb2RlU3RhclNvdXJjZUNvbmZpZzogU291cmNlIGNvZGUgdmlhIENvZGVTdGFyIGNvbm5lY3Rpb24gKEdpdEh1YiwgQml0YnVja2V0LCBHaXRMYWIpXG4gKiAtIENvZGVDb21taXRTb3VyY2VDb25maWc6IFNvdXJjZSBjb2RlIGZyb20gQVdTIENvZGVDb21taXQgcmVwb3NpdG9yeVxuICovXG5leHBvcnQgdHlwZSBTb3VyY2VUeXBlID0gUzNTb3VyY2VDb25maWcgfCBHaXRIdWJTb3VyY2VDb25maWcgfCBDb2RlU3RhclNvdXJjZUNvbmZpZyB8IENvZGVDb21taXRTb3VyY2VDb25maWc7XG4iXX0=
@@ -4,7 +4,8 @@ import { CodePipeline } from 'aws-cdk-lib/pipelines';
4
4
  import { Construct } from 'constructs';
5
5
  import { PluginLookup } from './plugin-lookup.js';
6
6
  import { UniqueId } from '../core/id-generator.js';
7
- import { createCodeBuildStep, merge, resolveFailureBehavior } from '../core/pipeline-helpers.js';
7
+ import { merge, resolveFailureBehavior } from '../core/metadata-helpers.js';
8
+ import { createCodeBuildStep } from '../core/pipeline-helpers.js';
8
9
  /**
9
10
  * Builds and adds pipeline stages (waves) to a CodePipeline.
10
11
  *
@@ -125,4 +126,4 @@ export class StageBuilder {
125
126
  }
126
127
  }
127
128
  }
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waXBlbGluZS9zdGFnZS1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFHdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2xELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFvQ2pHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBQ04sS0FBSyxDQUFZO0lBQ2pCLFlBQVksQ0FBZTtJQUMzQixRQUFRLENBQVc7SUFDbkIsY0FBYyxDQUFlO0lBQzdCLGtCQUFrQixDQUFrQjtJQUNwQyxlQUFlLENBQW1CO0lBQ2xDLEtBQUssQ0FBVTtJQUNmLGFBQWEsQ0FBMEI7SUFFeEQsWUFBWSxLQUF3QjtRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDM0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztRQUNuRCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxL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O0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLFFBQXNCLEVBQUUsTUFBc0I7UUFDdEQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB0eXBlIHsgQ29tcHV0ZVR5cGUgYXMgQ2RrQ29tcHV0ZVR5cGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkJztcbmltcG9ydCB7IENvZGVQaXBlbGluZSB9IGZyb20gJ2F3cy1jZGstbGliL3BpcGVsaW5lcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IFBsdWdpbkxvb2t1cCB9IGZyb20gJy4vcGx1Z2luLWxvb2t1cC5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0YWdlT3B0aW9ucyB9IGZyb20gJy4vc3RlcC10eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEFydGlmYWN0TWFuYWdlciB9IGZyb20gJy4uL2NvcmUvYXJ0aWZhY3QtbWFuYWdlci5qcyc7XG5pbXBvcnQgeyBVbmlxdWVJZCB9IGZyb20gJy4uL2NvcmUvaWQtZ2VuZXJhdG9yLmpzJztcbmltcG9ydCB7IGNyZWF0ZUNvZGVCdWlsZFN0ZXAsIG1lcmdlLCByZXNvbHZlRmFpbHVyZUJlaGF2aW9yIH0gZnJvbSAnLi4vY29yZS9waXBlbGluZS1oZWxwZXJzLmpzJztcbmltcG9ydCB0eXBlIHsgTWV0YURhdGFUeXBlIH0gZnJvbSAnLi4vY29yZS9waXBlbGluZS10eXBlcy5qcyc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgU3RhZ2VCdWlsZGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VCdWlsZGVyUHJvcHMge1xuICAvKiogQ0RLIGNvbnN0cnVjdCBzY29wZSBmb3IgY3JlYXRpbmcgY2hpbGQgY29uc3RydWN0cyAqL1xuICByZWFkb25seSBzY29wZTogQ29uc3RydWN0O1xuXG4gIC8qKiBQbHVnaW4gbG9va3VwIHNlcnZpY2UgZm9yIHJlc29sdmluZyBwbHVnaW4gcmVmZXJlbmNlcyB0byBDREsgY29uc3RydWN0cyAqL1xuICByZWFkb25seSBwbHVnaW5Mb29rdXA6IFBsdWdpbkxvb2t1cDtcblxuICAvKiogVW5pcXVlIElEIGdlbmVyYXRvciBmb3IgY3JlYXRpbmcgZGV0ZXJtaW5pc3RpYyBjb25zdHJ1Y3QgSURzICovXG4gIHJlYWRvbmx5IHVuaXF1ZUlkOiBVbmlxdWVJZDtcblxuICAvKiogR2xvYmFsIG1ldGFkYXRhIGluaGVyaXRlZCBieSBhbGwgc3RhZ2Ugc3RlcHMgKi9cbiAgcmVhZG9ubHkgZ2xvYmFsTWV0YWRhdGE6IE1ldGFEYXRhVHlwZTtcblxuICAvKiogRGVmYXVsdCBDb2RlQnVpbGQgY29tcHV0ZSB0eXBlIGZvciBzdGVwcyB0aGF0IGRvbid0IHNwZWNpZnkgb25lICovXG4gIHJlYWRvbmx5IGRlZmF1bHRDb21wdXRlVHlwZT86IENka0NvbXB1dGVUeXBlO1xuXG4gIC8qKiBBcnRpZmFjdCBtYW5hZ2VyIGZvciByZXNvbHZpbmcgaW5wdXQgYXJ0aWZhY3Qga2V5cyB0byBGaWxlU2V0cyAqL1xuICByZWFkb25seSBhcnRpZmFjdE1hbmFnZXI/OiBBcnRpZmFjdE1hbmFnZXI7XG5cbiAgLyoqIFRlbmFudCBpZGVudGlmaWVyIGZvciByZXNvbHZpbmcgcGVyLW9yZyBzZWNyZXRzIGZyb20gQVdTIFNlY3JldHMgTWFuYWdlciAqL1xuICByZWFkb25seSBvcmdJZD86IHN0cmluZztcblxuICAvKipcbiAgICogUGlwZWxpbmUtbGV2ZWwgc2NvcGUgdXNlZCB0byByZXNvbHZlIGB7eyBwaXBlbGluZS4qIH19YCB0ZW1wbGF0ZSB0b2tlbnNcbiAgICogaW5zaWRlIHBsdWdpbiBzcGVjcy4gUmVxdWlyZWQg4oCUIHBhc3NlZCB0aHJvdWdoIHRvIGBjcmVhdGVDb2RlQnVpbGRTdGVwYFxuICAgKiBvbiBldmVyeSBzdGVwLlxuICAgKi9cbiAgcmVhZG9ubHkgcGlwZWxpbmVTY29wZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogQnVpbGRzIGFuZCBhZGRzIHBpcGVsaW5lIHN0YWdlcyAod2F2ZXMpIHRvIGEgQ29kZVBpcGVsaW5lLlxuICpcbiAqIEVhY2ggc3RhZ2UgaXMgcmVzb2x2ZWQgZnJvbSBoaWdoLWxldmVsIGNvbmZpZ3VyYXRpb24gKHBsdWdpbiBuYW1lcylcbiAqIGludG8gQ0RLIENvZGVCdWlsZCBzdGVwcyB2aWEgUGx1Z2luTG9va3VwLCB0aGVuIGFkZGVkIGFzIGEgd2F2ZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc3RhZ2VCdWlsZGVyID0gbmV3IFN0YWdlQnVpbGRlcih7XG4gKiAgIHNjb3BlOiB0aGlzLFxuICogICBwbHVnaW5Mb29rdXAsXG4gKiAgIHVuaXF1ZUlkLFxuICogICBnbG9iYWxNZXRhZGF0YTogbWVyZ2VkTWV0YWRhdGEsXG4gKiB9KTtcbiAqIHN0YWdlQnVpbGRlci5hZGRTdGFnZShwaXBlbGluZSwge1xuICogICBzdGFnZU5hbWU6ICdJbnRlZ3JhdGlvbiBUZXN0cycsXG4gKiAgIGFsaWFzOiAnaW50ZWdyYXRpb24nLFxuICogICBzdGVwczogW1xuICogICAgIHsgcGx1Z2luOiB7IG5hbWU6ICdqZXN0LWludGVncmF0aW9uJyB9IH0sXG4gKiAgICAgeyBwbHVnaW46IHsgbmFtZTogJ2UyZS10ZXN0cycsIGFsaWFzOiAnY3lwcmVzcycgfSB9LFxuICogICBdLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWdlQnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdDtcbiAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5Mb29rdXA6IFBsdWdpbkxvb2t1cDtcbiAgcHJpdmF0ZSByZWFkb25seSB1bmlxdWVJZDogVW5pcXVlSWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ2xvYmFsTWV0YWRhdGE6IE1ldGFEYXRhVHlwZTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0Q29tcHV0ZVR5cGU/OiBDZGtDb21wdXRlVHlwZTtcbiAgcHJpdmF0ZSByZWFkb25seSBhcnRpZmFjdE1hbmFnZXI/OiBBcnRpZmFjdE1hbmFnZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3JnSWQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGlwZWxpbmVTY29wZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFN0YWdlQnVpbGRlclByb3BzKSB7XG4gICAgdGhpcy5zY29wZSA9IHByb3BzLnNjb3BlO1xuICAgIHRoaXMucGx1Z2luTG9va3VwID0gcHJvcHMucGx1Z2luTG9va3VwO1xuICAgIHRoaXMudW5pcXVlSWQgPSBwcm9wcy51bmlxdWVJZDtcbiAgICB0aGlzLmdsb2JhbE1ldGFkYXRhID0gcHJvcHMuZ2xvYmFsTWV0YWRhdGE7XG4gICAgdGhpcy5kZWZhdWx0Q29tcHV0ZVR5cGUgPSBwcm9wcy5kZWZhdWx0Q29tcHV0ZVR5cGU7XG4gICAgdGhpcy5hcnRpZmFjdE1hbmFnZXIgPSBwcm9wcy5hcnRpZmFjdE1hbmFnZXI7XG4gICAgdGhpcy5vcmdJZCA9IHByb3BzLm9yZ0lkO1xuICAgIHRoaXMucGlwZWxpbmVTY29wZSA9IHByb3BzLnBpcGVsaW5lU2NvcGU7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgYSBzdGFnZSdzIHBsdWdpbi1iYXNlZCBzdGVwIGNvbmZpZ3MgaW50byBDb2RlQnVpbGQgc3RlcHNcbiAgICogYW5kIGFkZHMgdGhlbSBhcyBhIHdhdmUgdG8gdGhlIHBpcGVsaW5lLlxuICAgKi9cbiAgYWRkU3RhZ2UocGlwZWxpbmU6IENvZGVQaXBlbGluZSwgc3RhZ2U6IFN0YWdlT3B0aW9ucyk6IHZvaWQge1xuICAgIGNvbnN0IHN0YWdlQWxpYXMgPSBzdGFnZS5hbGlhcyA/PyBgJHtzdGFnZS5zdGFnZU5hbWV9LWFsaWFzYDtcblxuICAgIGNvbnN0IHByZVN0ZXBzID0gc3RhZ2Uuc3RlcHNcbiAgICAgIC5maWx0ZXIocyA9PiAocy5wb3NpdGlvbiA/PyAncHJlJykgPT09ICdwcmUnKVxuICAgICAgLm1hcChzID0+IHRoaXMucmVzb2x2ZVN0ZXAocywgc3RhZ2Uuc3RhZ2VOYW1lLCBzdGFnZUFsaWFzKSk7XG4gICAgY29uc3QgcG9zdFN0ZXBzID0gc3RhZ2Uuc3RlcHNcbiAgICAgIC5maWx0ZXIocyA9PiBzLnBvc2l0aW9uID09PSAncG9zdCcpXG4gICAgICAubWFwKHMgPT4gdGhpcy5yZXNvbHZlU3RlcChzLCBzdGFnZS5zdGFnZU5hbWUsIHN0YWdlQWxpYXMpKTtcblxuICAgIHBpcGVsaW5lLmFkZFdhdmUoc3RhZ2VBbGlhcywge1xuICAgICAgLi4uKHByZVN0ZXBzLmxlbmd0aCA+IDAgJiYgeyBwcmU6IHByZVN0ZXBzIH0pLFxuICAgICAgLi4uKHBvc3RTdGVwcy5sZW5ndGggPiAwICYmIHsgcG9zdDogcG9zdFN0ZXBzIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlU3RlcChzdGVwQ29uZmlnOiBTdGFnZU9wdGlvbnNbJ3N0ZXBzJ11bbnVtYmVyXSwgc3RhZ2VOYW1lOiBzdHJpbmcsIHN0YWdlQWxpYXM6IHN0cmluZykge1xuICAgIGNvbnN0IHBsdWdpbiA9IHRoaXMucGx1Z2luTG9va3VwLnBsdWdpbihzdGVwQ29uZmlnLnBsdWdpbik7XG4gICAgLy8gUGVyLXN0ZXAgcGx1Z2luIGNvbmZpZyBsaXZlcyBvbiB0aGUgcGx1Z2luIHJlZmVyZW5jZSAoYHBsdWdpbi5tZXRhZGF0YWAg4oCUXG4gICAgLy8gZS5nLiBKQVZBX1ZFUlNJT04vS09UTElOX1ZFUlNJT04vY29tcHV0ZXR5cGUgb3ZlcnJpZGVzKS4gcGx1Z2luTG9va3VwLnBsdWdpbigpXG4gICAgLy8gcmV0dXJucyB0aGUgcmVzb2x2ZWQgQ0FUQUxPRyBwbHVnaW4gYW5kIGRyb3BzIHRoZSByZWZlcmVuY2UgbWV0YWRhdGEgaW4gdGhlXG4gICAgLy8gcHJlLXJlc29sdmVkIHBhdGgsIHNvIG1lcmdlIGl0IGhlcmUgdG9vIOKAlCBvdGhlcndpc2UgcGVyLXN0ZXAgb3ZlcnJpZGVzIGFyZVxuICAgIC8vIHNpbGVudGx5IGlnbm9yZWQgYW5kIHRoZSBidWlsZCBmYWxscyBiYWNrIHRvIHBsdWdpbiBkZWZhdWx0cy5cbiAgICAvLyBPcmRlciAobGFzdCB3aW5zKTogZ2xvYmFsIDwgcGx1Z2luLXJlZiBtZXRhZGF0YSA8IHN0ZXAtbGV2ZWwgbWV0YWRhdGEuXG4gICAgY29uc3Qgc3RlcE1ldGFkYXRhID0gbWVyZ2UodGhpcy5nbG9iYWxNZXRhZGF0YSwgc3RlcENvbmZpZy5wbHVnaW4ubWV0YWRhdGEgPz8ge30sIHN0ZXBDb25maWcubWV0YWRhdGEgPz8ge30pO1xuICAgIGNvbnN0IHBsdWdpbkFsaWFzID0gc3RlcENvbmZpZy5wbHVnaW4uYWxpYXMgPz8gc3RlcENvbmZpZy5wbHVnaW4ubmFtZTtcblxuICAgIGlmIChzdGVwQ29uZmlnLmlucHV0QXJ0aWZhY3QgJiYgIXRoaXMuYXJ0aWZhY3RNYW5hZ2VyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBTdGVwIFwiJHtwbHVnaW5BbGlhc31cIiByZXF1aXJlcyBpbnB1dEFydGlmYWN0IGJ1dCBubyBhcnRpZmFjdE1hbmFnZXIgaXMgY29uZmlndXJlZC5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHN0ZXBDb25maWcuYWRkaXRpb25hbElucHV0QXJ0aWZhY3RzPy5sZW5ndGggJiYgIXRoaXMuYXJ0aWZhY3RNYW5hZ2VyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBTdGVwIFwiJHtwbHVnaW5BbGlhc31cIiByZXF1aXJlcyBhZGRpdGlvbmFsSW5wdXRBcnRpZmFjdHMgYnV0IG5vIGFydGlmYWN0TWFuYWdlciBpcyBjb25maWd1cmVkLmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGlucHV0ID0gc3RlcENvbmZpZy5pbnB1dEFydGlmYWN0ICYmIHRoaXMuYXJ0aWZhY3RNYW5hZ2VyXG4gICAgICA/IHRoaXMuYXJ0aWZhY3RNYW5hZ2VyLmdldE91dHB1dChzdGVwQ29uZmlnLmlucHV0QXJ0aWZhY3QpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGFkZGl0aW9uYWxJbnB1dHMgPSBzdGVwQ29uZmlnLmFkZGl0aW9uYWxJbnB1dEFydGlmYWN0cz8ubGVuZ3RoICYmIHRoaXMuYXJ0aWZhY3RNYW5hZ2VyXG4gICAgICA/IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgc3RlcENvbmZpZy5hZGRpdGlvbmFsSW5wdXRBcnRpZmFjdHMubWFwKCh7IGFydGlmYWN0LCBkaXJlY3RvcnkgfSkgPT4gW1xuICAgICAgICAgIGRpcmVjdG9yeSB8fCBhcnRpZmFjdC5vdXRwdXREaXJlY3RvcnksXG4gICAgICAgICAgdGhpcy5hcnRpZmFjdE1hbmFnZXIhLmdldE91dHB1dChhcnRpZmFjdCksXG4gICAgICAgIF0pLFxuICAgICAgKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gY3JlYXRlQ29kZUJ1aWxkU3RlcCh7XG4gICAgICBpZDogdGhpcy51bmlxdWVJZC5nZW5lcmF0ZShgc3RhZ2U6JHtzdGFnZUFsaWFzfToke3BsdWdpbkFsaWFzfWApLFxuICAgICAgdW5pcXVlSWQ6IHRoaXMudW5pcXVlSWQsXG4gICAgICBwbHVnaW4sXG4gICAgICBtZXRhZGF0YTogc3RlcE1ldGFkYXRhLFxuICAgICAgbmV0d29yazogc3RlcENvbmZpZy5uZXR3b3JrLFxuICAgICAgc2NvcGU6IHRoaXMuc2NvcGUsXG4gICAgICBkZWZhdWx0Q29tcHV0ZVR5cGU6IHRoaXMuZGVmYXVsdENvbXB1dGVUeXBlLFxuICAgICAgaW5wdXQsXG4gICAgICBhZGRpdGlvbmFsSW5wdXRzLFxuICAgICAgYXJ0aWZhY3RNYW5hZ2VyOiB0aGlzLmFydGlmYWN0TWFuYWdlcixcbiAgICAgIHN0YWdlTmFtZSxcbiAgICAgIHN0YWdlQWxpYXMsXG4gICAgICBwbHVnaW5BbGlhcyxcbiAgICAgIHByZUluc3RhbGxDb21tYW5kczogc3RlcENvbmZpZy5wcmVJbnN0YWxsQ29tbWFuZHMsXG4gICAgICBwb3N0SW5zdGFsbENvbW1hbmRzOiBzdGVwQ29uZmlnLnBvc3RJbnN0YWxsQ29tbWFuZHMsXG4gICAgICBwcmVDb21tYW5kczogc3RlcENvbmZpZy5wcmVDb21tYW5kcyxcbiAgICAgIHBvc3RDb21tYW5kczogc3RlcENvbmZpZy5wb3N0Q29tbWFuZHMsXG4gICAgICBlbnY6IHN0ZXBDb25maWcuZW52LFxuICAgICAgdGltZW91dDogc3RlcENvbmZpZy50aW1lb3V0ID8/IHBsdWdpbi50aW1lb3V0ID8/IHVuZGVmaW5lZCxcbiAgICAgIC8vIEEgc2Nhbi9zZWN1cml0eS1jYXRlZ29yeSBwbHVnaW4gY2FuIG5ldmVyIGJlIGRvd25ncmFkZWQgZnJvbSAnZmFpbCcg4oCUIHNlZSByZXNvbHZlRmFpbHVyZUJlaGF2aW9yLlxuICAgICAgZmFpbHVyZUJlaGF2aW9yOiByZXNvbHZlRmFpbHVyZUJlaGF2aW9yKHBsdWdpbi5jYXRlZ29yeSwgc3RlcENvbmZpZy5mYWlsdXJlQmVoYXZpb3IgPz8gcGx1Z2luLmZhaWx1cmVCZWhhdmlvciksXG4gICAgICBvcmdJZDogdGhpcy5vcmdJZCxcbiAgICAgIHBpcGVsaW5lU2NvcGU6IHRoaXMucGlwZWxpbmVTY29wZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhbmQgYWRkcyBtdWx0aXBsZSBzdGFnZXMgYXMgd2F2ZXMgdG8gdGhlIHBpcGVsaW5lLCBpbiBvcmRlci5cbiAgICovXG4gIGFkZFN0YWdlcyhwaXBlbGluZTogQ29kZVBpcGVsaW5lLCBzdGFnZXM6IFN0YWdlT3B0aW9uc1tdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBzdGFnZSBvZiBzdGFnZXMpIHtcbiAgICAgIHRoaXMuYWRkU3RhZ2UocGlwZWxpbmUsIHN0YWdlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waXBlbGluZS9zdGFnZS1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFHdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2xELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFvQ2xFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBQ04sS0FBSyxDQUFZO0lBQ2pCLFlBQVksQ0FBZTtJQUMzQixRQUFRLENBQVc7SUFDbkIsY0FBYyxDQUFlO0lBQzdCLGtCQUFrQixDQUFrQjtJQUNwQyxlQUFlLENBQW1CO0lBQ2xDLEtBQUssQ0FBVTtJQUNmLGFBQWEsQ0FBMEI7SUFFeEQsWUFBWSxLQUF3QjtRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDM0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztRQUNuRCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFl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QUUsSUFBSSxDQUFDLGFBQWE7U0FDbEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLFFBQXNCLEVBQUUsTUFBc0I7UUFDdEQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB0eXBlIHsgQ29tcHV0ZVR5cGUgYXMgQ2RrQ29tcHV0ZVR5cGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkJztcbmltcG9ydCB7IENvZGVQaXBlbGluZSB9IGZyb20gJ2F3cy1jZGstbGliL3BpcGVsaW5lcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IFBsdWdpbkxvb2t1cCB9IGZyb20gJy4vcGx1Z2luLWxvb2t1cC5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0YWdlT3B0aW9ucyB9IGZyb20gJy4vc3RlcC10eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEFydGlmYWN0TWFuYWdlciB9IGZyb20gJy4uL2NvcmUvYXJ0aWZhY3QtbWFuYWdlci5qcyc7XG5pbXBvcnQgeyBVbmlxdWVJZCB9IGZyb20gJy4uL2NvcmUvaWQtZ2VuZXJhdG9yLmpzJztcbmltcG9ydCB7IG1lcmdlLCByZXNvbHZlRmFpbHVyZUJlaGF2aW9yIH0gZnJvbSAnLi4vY29yZS9tZXRhZGF0YS1oZWxwZXJzLmpzJztcbmltcG9ydCB7IGNyZWF0ZUNvZGVCdWlsZFN0ZXAgfSBmcm9tICcuLi9jb3JlL3BpcGVsaW5lLWhlbHBlcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBNZXRhRGF0YVR5cGUgfSBmcm9tICcuLi9jb3JlL3BpcGVsaW5lLXR5cGVzLmpzJztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBTdGFnZUJ1aWxkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFnZUJ1aWxkZXJQcm9wcyB7XG4gIC8qKiBDREsgY29uc3RydWN0IHNjb3BlIGZvciBjcmVhdGluZyBjaGlsZCBjb25zdHJ1Y3RzICovXG4gIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG5cbiAgLyoqIFBsdWdpbiBsb29rdXAgc2VydmljZSBmb3IgcmVzb2x2aW5nIHBsdWdpbiByZWZlcmVuY2VzIHRvIENESyBjb25zdHJ1Y3RzICovXG4gIHJlYWRvbmx5IHBsdWdpbkxvb2t1cDogUGx1Z2luTG9va3VwO1xuXG4gIC8qKiBVbmlxdWUgSUQgZ2VuZXJhdG9yIGZvciBjcmVhdGluZyBkZXRlcm1pbmlzdGljIGNvbnN0cnVjdCBJRHMgKi9cbiAgcmVhZG9ubHkgdW5pcXVlSWQ6IFVuaXF1ZUlkO1xuXG4gIC8qKiBHbG9iYWwgbWV0YWRhdGEgaW5oZXJpdGVkIGJ5IGFsbCBzdGFnZSBzdGVwcyAqL1xuICByZWFkb25seSBnbG9iYWxNZXRhZGF0YTogTWV0YURhdGFUeXBlO1xuXG4gIC8qKiBEZWZhdWx0IENvZGVCdWlsZCBjb21wdXRlIHR5cGUgZm9yIHN0ZXBzIHRoYXQgZG9uJ3Qgc3BlY2lmeSBvbmUgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbXB1dGVUeXBlPzogQ2RrQ29tcHV0ZVR5cGU7XG5cbiAgLyoqIEFydGlmYWN0IG1hbmFnZXIgZm9yIHJlc29sdmluZyBpbnB1dCBhcnRpZmFjdCBrZXlzIHRvIEZpbGVTZXRzICovXG4gIHJlYWRvbmx5IGFydGlmYWN0TWFuYWdlcj86IEFydGlmYWN0TWFuYWdlcjtcblxuICAvKiogVGVuYW50IGlkZW50aWZpZXIgZm9yIHJlc29sdmluZyBwZXItb3JnIHNlY3JldHMgZnJvbSBBV1MgU2VjcmV0cyBNYW5hZ2VyICovXG4gIHJlYWRvbmx5IG9yZ0lkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQaXBlbGluZS1sZXZlbCBzY29wZSB1c2VkIHRvIHJlc29sdmUgYHt7IHBpcGVsaW5lLiogfX1gIHRlbXBsYXRlIHRva2Vuc1xuICAgKiBpbnNpZGUgcGx1Z2luIHNwZWNzLiBSZXF1aXJlZCDigJQgcGFzc2VkIHRocm91Z2ggdG8gYGNyZWF0ZUNvZGVCdWlsZFN0ZXBgXG4gICAqIG9uIGV2ZXJ5IHN0ZXAuXG4gICAqL1xuICByZWFkb25seSBwaXBlbGluZVNjb3BlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYW5kIGFkZHMgcGlwZWxpbmUgc3RhZ2VzICh3YXZlcykgdG8gYSBDb2RlUGlwZWxpbmUuXG4gKlxuICogRWFjaCBzdGFnZSBpcyByZXNvbHZlZCBmcm9tIGhpZ2gtbGV2ZWwgY29uZmlndXJhdGlvbiAocGx1Z2luIG5hbWVzKVxuICogaW50byBDREsgQ29kZUJ1aWxkIHN0ZXBzIHZpYSBQbHVnaW5Mb29rdXAsIHRoZW4gYWRkZWQgYXMgYSB3YXZlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzdGFnZUJ1aWxkZXIgPSBuZXcgU3RhZ2VCdWlsZGVyKHtcbiAqICAgc2NvcGU6IHRoaXMsXG4gKiAgIHBsdWdpbkxvb2t1cCxcbiAqICAgdW5pcXVlSWQsXG4gKiAgIGdsb2JhbE1ldGFkYXRhOiBtZXJnZWRNZXRhZGF0YSxcbiAqIH0pO1xuICogc3RhZ2VCdWlsZGVyLmFkZFN0YWdlKHBpcGVsaW5lLCB7XG4gKiAgIHN0YWdlTmFtZTogJ0ludGVncmF0aW9uIFRlc3RzJyxcbiAqICAgYWxpYXM6ICdpbnRlZ3JhdGlvbicsXG4gKiAgIHN0ZXBzOiBbXG4gKiAgICAgeyBwbHVnaW46IHsgbmFtZTogJ2plc3QtaW50ZWdyYXRpb24nIH0gfSxcbiAqICAgICB7IHBsdWdpbjogeyBuYW1lOiAnZTJlLXRlc3RzJywgYWxpYXM6ICdjeXByZXNzJyB9IH0sXG4gKiAgIF0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU3RhZ2VCdWlsZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzY29wZTogQ29uc3RydWN0O1xuICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpbkxvb2t1cDogUGx1Z2luTG9va3VwO1xuICBwcml2YXRlIHJlYWRvbmx5IHVuaXF1ZUlkOiBVbmlxdWVJZDtcbiAgcHJpdmF0ZSByZWFkb25seSBnbG9iYWxNZXRhZGF0YTogTWV0YURhdGFUeXBlO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRDb21wdXRlVHlwZT86IENka0NvbXB1dGVUeXBlO1xuICBwcml2YXRlIHJlYWRvbmx5IGFydGlmYWN0TWFuYWdlcj86IEFydGlmYWN0TWFuYWdlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBvcmdJZD86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBwaXBlbGluZVNjb3BlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogU3RhZ2VCdWlsZGVyUHJvcHMpIHtcbiAgICB0aGlzLnNjb3BlID0gcHJvcHMuc2NvcGU7XG4gICAgdGhpcy5wbHVnaW5Mb29rdXAgPSBwcm9wcy5wbHVnaW5Mb29rdXA7XG4gICAgdGhpcy51bmlxdWVJZCA9IHByb3BzLnVuaXF1ZUlkO1xuICAgIHRoaXMuZ2xvYmFsTWV0YWRhdGEgPSBwcm9wcy5nbG9iYWxNZXRhZGF0YTtcbiAgICB0aGlzLmRlZmF1bHRDb21wdXRlVHlwZSA9IHByb3BzLmRlZmF1bHRDb21wdXRlVHlwZTtcbiAgICB0aGlzLmFydGlmYWN0TWFuYWdlciA9IHByb3BzLmFydGlmYWN0TWFuYWdlcjtcbiAgICB0aGlzLm9yZ0lkID0gcHJvcHMub3JnSWQ7XG4gICAgdGhpcy5waXBlbGluZVNjb3BlID0gcHJvcHMucGlwZWxpbmVTY29wZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhIHN0YWdlJ3MgcGx1Z2luLWJhc2VkIHN0ZXAgY29uZmlncyBpbnRvIENvZGVCdWlsZCBzdGVwc1xuICAgKiBhbmQgYWRkcyB0aGVtIGFzIGEgd2F2ZSB0byB0aGUgcGlwZWxpbmUuXG4gICAqL1xuICBhZGRTdGFnZShwaXBlbGluZTogQ29kZVBpcGVsaW5lLCBzdGFnZTogU3RhZ2VPcHRpb25zKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhZ2VBbGlhcyA9IHN0YWdlLmFsaWFzID8/IGAke3N0YWdlLnN0YWdlTmFtZX0tYWxpYXNgO1xuXG4gICAgY29uc3QgcHJlU3RlcHMgPSBzdGFnZS5zdGVwc1xuICAgICAgLmZpbHRlcihzID0+IChzLnBvc2l0aW9uID8/ICdwcmUnKSA9PT0gJ3ByZScpXG4gICAgICAubWFwKHMgPT4gdGhpcy5yZXNvbHZlU3RlcChzLCBzdGFnZS5zdGFnZU5hbWUsIHN0YWdlQWxpYXMpKTtcbiAgICBjb25zdCBwb3N0U3RlcHMgPSBzdGFnZS5zdGVwc1xuICAgICAgLmZpbHRlcihzID0+IHMucG9zaXRpb24gPT09ICdwb3N0JylcbiAgICAgIC5tYXAocyA9PiB0aGlzLnJlc29sdmVTdGVwKHMsIHN0YWdlLnN0YWdlTmFtZSwgc3RhZ2VBbGlhcykpO1xuXG4gICAgcGlwZWxpbmUuYWRkV2F2ZShzdGFnZUFsaWFzLCB7XG4gICAgICAuLi4ocHJlU3RlcHMubGVuZ3RoID4gMCAmJiB7IHByZTogcHJlU3RlcHMgfSksXG4gICAgICAuLi4ocG9zdFN0ZXBzLmxlbmd0aCA+IDAgJiYgeyBwb3N0OiBwb3N0U3RlcHMgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVTdGVwKHN0ZXBDb25maWc6IFN0YWdlT3B0aW9uc1snc3RlcHMnXVtudW1iZXJdLCBzdGFnZU5hbWU6IHN0cmluZywgc3RhZ2VBbGlhczogc3RyaW5nKSB7XG4gICAgY29uc3QgcGx1Z2luID0gdGhpcy5wbHVnaW5Mb29rdXAucGx1Z2luKHN0ZXBDb25maWcucGx1Z2luKTtcbiAgICAvLyBQZXItc3RlcCBwbHVnaW4gY29uZmlnIGxpdmVzIG9uIHRoZSBwbHVnaW4gcmVmZXJlbmNlIChgcGx1Z2luLm1ldGFkYXRhYCDigJRcbiAgICAvLyBlLmcuIEpBVkFfVkVSU0lPTi9LT1RMSU5fVkVSU0lPTi9jb21wdXRldHlwZSBvdmVycmlkZXMpLiBwbHVnaW5Mb29rdXAucGx1Z2luKClcbiAgICAvLyByZXR1cm5zIHRoZSByZXNvbHZlZCBDQVRBTE9HIHBsdWdpbiBhbmQgZHJvcHMgdGhlIHJlZmVyZW5jZSBtZXRhZGF0YSBpbiB0aGVcbiAgICAvLyBwcmUtcmVzb2x2ZWQgcGF0aCwgc28gbWVyZ2UgaXQgaGVyZSB0b28g4oCUIG90aGVyd2lzZSBwZXItc3RlcCBvdmVycmlkZXMgYXJlXG4gICAgLy8gc2lsZW50bHkgaWdub3JlZCBhbmQgdGhlIGJ1aWxkIGZhbGxzIGJhY2sgdG8gcGx1Z2luIGRlZmF1bHRzLlxuICAgIC8vIE9yZGVyIChsYXN0IHdpbnMpOiBnbG9iYWwgPCBwbHVnaW4tcmVmIG1ldGFkYXRhIDwgc3RlcC1sZXZlbCBtZXRhZGF0YS5cbiAgICBjb25zdCBzdGVwTWV0YWRhdGEgPSBtZXJnZSh0aGlzLmdsb2JhbE1ldGFkYXRhLCBzdGVwQ29uZmlnLnBsdWdpbi5tZXRhZGF0YSA/PyB7fSwgc3RlcENvbmZpZy5tZXRhZGF0YSA/PyB7fSk7XG4gICAgY29uc3QgcGx1Z2luQWxpYXMgPSBzdGVwQ29uZmlnLnBsdWdpbi5hbGlhcyA/PyBzdGVwQ29uZmlnLnBsdWdpbi5uYW1lO1xuXG4gICAgaWYgKHN0ZXBDb25maWcuaW5wdXRBcnRpZmFjdCAmJiAhdGhpcy5hcnRpZmFjdE1hbmFnZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFN0ZXAgXCIke3BsdWdpbkFsaWFzfVwiIHJlcXVpcmVzIGlucHV0QXJ0aWZhY3QgYnV0IG5vIGFydGlmYWN0TWFuYWdlciBpcyBjb25maWd1cmVkLmAsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoc3RlcENvbmZpZy5hZGRpdGlvbmFsSW5wdXRBcnRpZmFjdHM/Lmxlbmd0aCAmJiAhdGhpcy5hcnRpZmFjdE1hbmFnZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFN0ZXAgXCIke3BsdWdpbkFsaWFzfVwiIHJlcXVpcmVzIGFkZGl0aW9uYWxJbnB1dEFydGlmYWN0cyBidXQgbm8gYXJ0aWZhY3RNYW5hZ2VyIGlzIGNvbmZpZ3VyZWQuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgaW5wdXQgPSBzdGVwQ29uZmlnLmlucHV0QXJ0aWZhY3QgJiYgdGhpcy5hcnRpZmFjdE1hbmFnZXJcbiAgICAgID8gdGhpcy5hcnRpZmFjdE1hbmFnZXIuZ2V0T3V0cHV0KHN0ZXBDb25maWcuaW5wdXRBcnRpZmFjdClcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgYWRkaXRpb25hbElucHV0cyA9IHN0ZXBDb25maWcuYWRkaXRpb25hbElucHV0QXJ0aWZhY3RzPy5sZW5ndGggJiYgdGhpcy5hcnRpZmFjdE1hbmFnZXJcbiAgICAgID8gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICBzdGVwQ29uZmlnLmFkZGl0aW9uYWxJbnB1dEFydGlmYWN0cy5tYXAoKHsgYXJ0aWZhY3QsIGRpcmVjdG9yeSB9KSA9PiBbXG4gICAgICAgICAgZGlyZWN0b3J5IHx8IGFydGlmYWN0Lm91dHB1dERpcmVjdG9yeSxcbiAgICAgICAgICB0aGlzLmFydGlmYWN0TWFuYWdlciEuZ2V0T3V0cHV0KGFydGlmYWN0KSxcbiAgICAgICAgXSksXG4gICAgICApXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBjcmVhdGVDb2RlQnVpbGRTdGVwKHtcbiAgICAgIGlkOiB0aGlzLnVuaXF1ZUlkLmdlbmVyYXRlKGBzdGFnZToke3N0YWdlQWxpYXN9OiR7cGx1Z2luQWxpYXN9YCksXG4gICAgICB1bmlxdWVJZDogdGhpcy51bmlxdWVJZCxcbiAgICAgIHBsdWdpbixcbiAgICAgIG1ldGFkYXRhOiBzdGVwTWV0YWRhdGEsXG4gICAgICBuZXR3b3JrOiBzdGVwQ29uZmlnLm5ldHdvcmssXG4gICAgICBzY29wZTogdGhpcy5zY29wZSxcbiAgICAgIGRlZmF1bHRDb21wdXRlVHlwZTogdGhpcy5kZWZhdWx0Q29tcHV0ZVR5cGUsXG4gICAgICBpbnB1dCxcbiAgICAgIGFkZGl0aW9uYWxJbnB1dHMsXG4gICAgICBhcnRpZmFjdE1hbmFnZXI6IHRoaXMuYXJ0aWZhY3RNYW5hZ2VyLFxuICAgICAgc3RhZ2VOYW1lLFxuICAgICAgc3RhZ2VBbGlhcyxcbiAgICAgIHBsdWdpbkFsaWFzLFxuICAgICAgcHJlSW5zdGFsbENvbW1hbmRzOiBzdGVwQ29uZmlnLnByZUluc3RhbGxDb21tYW5kcyxcbiAgICAgIHBvc3RJbnN0YWxsQ29tbWFuZHM6IHN0ZXBDb25maWcucG9zdEluc3RhbGxDb21tYW5kcyxcbiAgICAgIHByZUNvbW1hbmRzOiBzdGVwQ29uZmlnLnByZUNvbW1hbmRzLFxuICAgICAgcG9zdENvbW1hbmRzOiBzdGVwQ29uZmlnLnBvc3RDb21tYW5kcyxcbiAgICAgIGVudjogc3RlcENvbmZpZy5lbnYsXG4gICAgICB0aW1lb3V0OiBzdGVwQ29uZmlnLnRpbWVvdXQgPz8gcGx1Z2luLnRpbWVvdXQgPz8gdW5kZWZpbmVkLFxuICAgICAgLy8gQSBzY2FuL3NlY3VyaXR5LWNhdGVnb3J5IHBsdWdpbiBjYW4gbmV2ZXIgYmUgZG93bmdyYWRlZCBmcm9tICdmYWlsJyDigJQgc2VlIHJlc29sdmVGYWlsdXJlQmVoYXZpb3IuXG4gICAgICBmYWlsdXJlQmVoYXZpb3I6IHJlc29sdmVGYWlsdXJlQmVoYXZpb3IocGx1Z2luLmNhdGVnb3J5LCBzdGVwQ29uZmlnLmZhaWx1cmVCZWhhdmlvciA/PyBwbHVnaW4uZmFpbHVyZUJlaGF2aW9yKSxcbiAgICAgIG9yZ0lkOiB0aGlzLm9yZ0lkLFxuICAgICAgcGlwZWxpbmVTY29wZTogdGhpcy5waXBlbGluZVNjb3BlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIGFuZCBhZGRzIG11bHRpcGxlIHN0YWdlcyBhcyB3YXZlcyB0byB0aGUgcGlwZWxpbmUsIGluIG9yZGVyLlxuICAgKi9cbiAgYWRkU3RhZ2VzKHBpcGVsaW5lOiBDb2RlUGlwZWxpbmUsIHN0YWdlczogU3RhZ2VPcHRpb25zW10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIHN0YWdlcykge1xuICAgICAgdGhpcy5hZGRTdGFnZShwaXBlbGluZSwgc3RhZ2UpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -2,10 +2,11 @@ import type { PluginFilter, Plugin } from '@pipeline-builder/pipeline-data';
2
2
  import type { ComputeType as CdkComputeType } from 'aws-cdk-lib/aws-codebuild';
3
3
  import type { IFileSetProducer } from 'aws-cdk-lib/pipelines';
4
4
  import type { Construct } from 'constructs';
5
+ import type { SourceType } from './source-types.js';
5
6
  import type { ArtifactKey, ArtifactManager } from '../core/artifact-manager.js';
6
7
  import type { UniqueId } from '../core/id-generator.js';
7
8
  import type { NetworkConfig } from '../core/network-types.js';
8
- import type { ComputeType, PluginType, MetaDataType, SourceType } from '../core/pipeline-types.js';
9
+ import type { MetaDataType } from '../core/pipeline-types.js';
9
10
  /**
10
11
  * Options for selecting and configuring a plugin
11
12
  */
@@ -56,134 +57,6 @@ export interface SynthOptions extends StepCustomization {
56
57
  */
57
58
  readonly network?: NetworkConfig;
58
59
  }
59
- /**
60
- * Plugin spec defining plugin behavior and requirements.
61
- * This is typically loaded from a plugin spec file (plugin-spec.yaml).
62
- */
63
- export interface PluginSpec {
64
- /**
65
- * Unique identifier for the plugin
66
- * @example 'nodejs-build'
67
- */
68
- readonly name: string;
69
- /**
70
- * Human-readable description of what the plugin does
71
- * @example 'Builds and tests Node.js applications'
72
- */
73
- readonly description?: string;
74
- /**
75
- * Keywords for plugin discovery and categorization
76
- * @example ['nodejs', 'typescript', 'build', 'test']
77
- */
78
- readonly keywords?: string[];
79
- /**
80
- * Plugin category for AI-assisted selection and organization.
81
- * One of: language, security, quality, testing, deploy, artifact,
82
- * infrastructure, monitoring, notification, ai
83
- */
84
- readonly category?: string;
85
- /**
86
- * Semantic version of the plugin
87
- * @example '1.0.0'
88
- */
89
- readonly version?: string;
90
- /**
91
- * Type of pipeline step this plugin creates
92
- * @default PluginType.CODE_BUILD_STEP
93
- */
94
- readonly pluginType?: PluginType;
95
- /**
96
- * CodeBuild compute resource size to use
97
- * @default ComputeType.SMALL
98
- */
99
- readonly computeType?: ComputeType;
100
- /**
101
- * Maximum execution time in minutes.
102
- * Used as fallback when the pipeline step doesn't set timeout.
103
- * @default 60 (AWS CodeBuild default)
104
- */
105
- readonly timeout?: number;
106
- /**
107
- * What happens when this step fails.
108
- * - 'fail': Stop the pipeline (default)
109
- * - 'warn': Log a warning and continue
110
- * - 'ignore': Silently continue
111
- * @default 'fail'
112
- */
113
- readonly failureBehavior?: 'fail' | 'warn' | 'ignore';
114
- /**
115
- * Secret requirements for this plugin.
116
- * Declares named secrets the plugin expects at build time.
117
- */
118
- readonly secrets?: Array<{
119
- name: string;
120
- required: boolean;
121
- description?: string;
122
- }>;
123
- /**
124
- * Directory containing the primary build output artifacts
125
- * @example 'dist'
126
- */
127
- readonly primaryOutputDirectory?: string;
128
- /**
129
- * Additional metadata that can be accessed during plugin execution
130
- * Keys should use the format 'aws:cdk:{namespace}:{key}' (all lowercase)
131
- */
132
- readonly metadata?: Record<string, string | number | boolean>;
133
- /**
134
- * Path to Dockerfile or Dockerfile content
135
- * Used to build the container environment for this plugin
136
- */
137
- readonly dockerfile?: string;
138
- /**
139
- * Commands to run during the install phase
140
- * Typically used for installing dependencies
141
- * @example ['npm ci', 'npm run build']
142
- */
143
- readonly installCommands?: string[];
144
- /**
145
- * Commands to run during the build/execution phase
146
- * These are the main commands that perform the plugin's work
147
- * @example ['npm test', 'npm run deploy']
148
- */
149
- readonly commands?: string[];
150
- /**
151
- * Environment variables to set in the build environment
152
- * @example { API_URL: 'https://api.example.com', LOG_LEVEL: 'info' }
153
- */
154
- readonly env?: Record<string, string>;
155
- /**
156
- * Docker build arguments passed via --build-arg at image build time.
157
- * Used to parameterize Dockerfile ARG values when building the plugin image.
158
- * @example { PYTHON_VERSION: '3.12', NODE_ENV: 'production' }
159
- */
160
- readonly buildArgs?: Record<string, string>;
161
- /**
162
- * Pipeline metadata keys the plugin references via `{{ pipeline.metadata.X }}`.
163
- * Declared as a contract — pipelines using this plugin must supply all
164
- * listed keys unless the template uses `| default: '...'`.
165
- * @example ['env', 'namespace', 'clusterName']
166
- */
167
- readonly requiredMetadata?: string[];
168
- /**
169
- * Pipeline vars keys the plugin references via `{{ pipeline.vars.X }}`.
170
- * @example ['branch', 'slackChannel']
171
- */
172
- readonly requiredVars?: string[];
173
- /**
174
- * Optional type declarations for the metadata keys listed in `requiredMetadata`.
175
- * Used at upload time to verify that coercion filters (`| number`, `| bool`,
176
- * `| json`) match the declared type — e.g. `{{ pipeline.metadata.count | number }}`
177
- * requires `count: 'number'` here, otherwise the plugin is rejected.
178
- * Keys not declared default to `'string'`.
179
- * @example { count: 'number', enabled: 'bool' }
180
- */
181
- readonly metadataTypes?: Record<string, 'string' | 'number' | 'bool' | 'json'>;
182
- /**
183
- * Optional type declarations for vars keys (same semantics as `metadataTypes`).
184
- */
185
- readonly varsTypes?: Record<string, 'string' | 'number' | 'bool' | 'json'>;
186
- }
187
60
  /**
188
61
  * Per-step customization options for commands and environment variables.
189
62
  * Custom commands are injected before/after the plugin's commands.
@@ -1,4 +1,4 @@
1
1
  // Copyright 2026 Pipeline Builder Contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  export {};
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waXBlbGluZS9zdGVwLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHR5cGUgeyBQbHVnaW5GaWx0ZXIsIFBsdWdpbiB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWRhdGEnO1xuaW1wb3J0IHR5cGUgeyBDb21wdXRlVHlwZSBhcyBDZGtDb21wdXRlVHlwZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlYnVpbGQnO1xuaW1wb3J0IHR5cGUgeyBJRmlsZVNldFByb2R1Y2VyIH0gZnJvbSAnYXdzLWNkay1saWIvcGlwZWxpbmVzJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IEFydGlmYWN0S2V5LCBBcnRpZmFjdE1hbmFnZXIgfSBmcm9tICcuLi9jb3JlL2FydGlmYWN0LW1hbmFnZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBVbmlxdWVJZCB9IGZyb20gJy4uL2NvcmUvaWQtZ2VuZXJhdG9yLmpzJztcbmltcG9ydCB0eXBlIHsgTmV0d29ya0NvbmZpZyB9IGZyb20gJy4uL2NvcmUvbmV0d29yay10eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IENvbXB1dGVUeXBlLCBQbHVnaW5UeXBlLCBNZXRhRGF0YVR5cGUsIFNvdXJjZVR5cGUgfSBmcm9tICcuLi9jb3JlL3BpcGVsaW5lLXR5cGVzLmpzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBzZWxlY3RpbmcgYW5kIGNvbmZpZ3VyaW5nIGEgcGx1Z2luXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBwbHVnaW4gdG8gdXNlXG4gICAqIE11c3QgbWF0Y2ggYSByZWdpc3RlcmVkIHBsdWdpbiBpbiB0aGUgZGF0YWJhc2VcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgYWxpYXMgZm9yIHRoZSBwbHVnaW4gaW5zdGFuY2VcbiAgICogVXNlZnVsIHdoZW4gdXNpbmcgdGhlIHNhbWUgcGx1Z2luIG11bHRpcGxlIHRpbWVzIHdpdGggZGlmZmVyZW50IGNvbmZpZ3VyYXRpb25zXG4gICAqL1xuICByZWFkb25seSBhbGlhcz86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgZmlsdGVyIGNyaXRlcmlhIGZvciBwbHVnaW4gc2VsZWN0aW9uXG4gICAqIENhbiBiZSB1c2VkIHRvIHNlbGVjdCBzcGVjaWZpYyBwbHVnaW4gdmVyc2lvbnMgb3IgdmFyaWFudHNcbiAgICovXG4gIHJlYWRvbmx5IGZpbHRlcj86IFBsdWdpbkZpbHRlcjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBtZXRhZGF0YSB0byBtZXJnZSB3aXRoIHBsdWdpbidzIGRlZmF1bHQgbWV0YWRhdGFcbiAgICogVGhpcyBtZXRhZGF0YSB3aWxsIGJlIGF2YWlsYWJsZSB0byB0aGUgcGx1Z2luIGR1cmluZyBleGVjdXRpb25cbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogTWV0YURhdGFUeXBlO1xufVxuXG4vKipcbiAqIFN5bnRoZXNpcyBzdGVwIGNvbmZpZ3VyYXRpb24gY29tYmluaW5nIHNvdXJjZSBhbmQgcGx1Z2luLlxuICogRXh0ZW5kcyBTdGVwQ3VzdG9taXphdGlvbiB0byBzdXBwb3J0IGluamVjdGluZyBjdXN0b20gY29tbWFuZHMgYW5kIGVudiB2YXJzXG4gKiBpbnRvIHRoZSBzeW50aCBDb2RlQnVpbGQgc3RlcCAoc2FtZSBob29rcyBhdmFpbGFibGUgYXMgc3RhZ2Ugc3RlcHMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN5bnRoT3B0aW9ucyBleHRlbmRzIFN0ZXBDdXN0b21pemF0aW9uIHtcbiAgLyoqXG4gICAqIFNvdXJjZSBjb25maWd1cmF0aW9uIChTMywgR2l0SHViLCBvciBDb2RlU3RhcilcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZTogU291cmNlVHlwZTtcblxuICAvKipcbiAgICogUGx1Z2luIHRvIHVzZSBmb3Igc3ludGhlc2lzXG4gICAqL1xuICByZWFkb25seSBwbHVnaW46IFBsdWdpbk9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgbWV0YWRhdGEgZm9yIHRoZSBzeW50aGVzaXMgc3RlcFxuICAgKiBUaGlzIHdpbGwgYmUgbWVyZ2VkIHdpdGggZ2xvYmFsIG1ldGFkYXRhIGFuZCBwbHVnaW4gbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogTWV0YURhdGFUeXBlO1xuXG4gIC8qKlxuICAgKiBTdGVwLWxldmVsIG5ldHdvcmsgY29uZmlndXJhdGlvbiBhcHBsaWVkIG9ubHkgdG8gdGhlIHN5bnRoIENvZGVCdWlsZCBzdGVwLlxuICAgKiBPdmVycmlkZXMgdGhlIHBpcGVsaW5lLWxldmVsIGBkZWZhdWx0cy5uZXR3b3JrYCB3aGVuIGJvdGggYXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29yaz86IE5ldHdvcmtDb25maWc7XG59XG5cbi8qKlxuICogUGx1Z2luIHNwZWMgZGVmaW5pbmcgcGx1Z2luIGJlaGF2aW9yIGFuZCByZXF1aXJlbWVudHMuXG4gKiBUaGlzIGlzIHR5cGljYWxseSBsb2FkZWQgZnJvbSBhIHBsdWdpbiBzcGVjIGZpbGUgKHBsdWdpbi1zcGVjLnlhbWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblNwZWMge1xuICAvKipcbiAgICogVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBwbHVnaW5cbiAgICogQGV4YW1wbGUgJ25vZGVqcy1idWlsZCdcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gb2Ygd2hhdCB0aGUgcGx1Z2luIGRvZXNcbiAgICogQGV4YW1wbGUgJ0J1aWxkcyBhbmQgdGVzdHMgTm9kZS5qcyBhcHBsaWNhdGlvbnMnXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogS2V5d29yZHMgZm9yIHBsdWdpbiBkaXNjb3ZlcnkgYW5kIGNhdGVnb3JpemF0aW9uXG4gICAqIEBleGFtcGxlIFsnbm9kZWpzJywgJ3R5cGVzY3JpcHQnLCAnYnVpbGQnLCAndGVzdCddXG4gICAqL1xuICByZWFkb25seSBrZXl3b3Jkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gY2F0ZWdvcnkgZm9yIEFJLWFzc2lzdGVkIHNlbGVjdGlvbiBhbmQgb3JnYW5pemF0aW9uLlxuICAgKiBPbmUgb2Y6IGxhbmd1YWdlLCBzZWN1cml0eSwgcXVhbGl0eSwgdGVzdGluZywgZGVwbG95LCBhcnRpZmFjdCxcbiAgICogICAgICAgICBpbmZyYXN0cnVjdHVyZSwgbW9uaXRvcmluZywgbm90aWZpY2F0aW9uLCBhaVxuICAgKi9cbiAgcmVhZG9ubHkgY2F0ZWdvcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNlbWFudGljIHZlcnNpb24gb2YgdGhlIHBsdWdpblxuICAgKiBAZXhhbXBsZSAnMS4wLjAnXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUeXBlIG9mIHBpcGVsaW5lIHN0ZXAgdGhpcyBwbHVnaW4gY3JlYXRlc1xuICAgKiBAZGVmYXVsdCBQbHVnaW5UeXBlLkNPREVfQlVJTERfU1RFUFxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luVHlwZT86IFBsdWdpblR5cGU7XG5cbiAgLyoqXG4gICAqIENvZGVCdWlsZCBjb21wdXRlIHJlc291cmNlIHNpemUgdG8gdXNlXG4gICAqIEBkZWZhdWx0IENvbXB1dGVUeXBlLlNNQUxMXG4gICAqL1xuICByZWFkb25seSBjb21wdXRlVHlwZT86IENvbXB1dGVUeXBlO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIGV4ZWN1dGlvbiB0aW1lIGluIG1pbnV0ZXMuXG4gICAqIFVzZWQgYXMgZmFsbGJhY2sgd2hlbiB0aGUgcGlwZWxpbmUgc3RlcCBkb2Vzbid0IHNldCB0aW1lb3V0LlxuICAgKiBAZGVmYXVsdCA2MCAoQVdTIENvZGVCdWlsZCBkZWZhdWx0KVxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hhdCBoYXBwZW5zIHdoZW4gdGhpcyBzdGVwIGZhaWxzLlxuICAgKiAtICdmYWlsJzogU3RvcCB0aGUgcGlwZWxpbmUgKGRlZmF1bHQpXG4gICAqIC0gJ3dhcm4nOiBMb2cgYSB3YXJuaW5nIGFuZCBjb250aW51ZVxuICAgKiAtICdpZ25vcmUnOiBTaWxlbnRseSBjb250aW51ZVxuICAgKiBAZGVmYXVsdCAnZmFpbCdcbiAgICovXG4gIHJlYWRvbmx5IGZhaWx1cmVCZWhhdmlvcj86ICdmYWlsJyB8ICd3YXJuJyB8ICdpZ25vcmUnO1xuXG4gIC8qKlxuICAgKiBTZWNyZXQgcmVxdWlyZW1lbnRzIGZvciB0aGlzIHBsdWdpbi5cbiAgICogRGVjbGFyZXMgbmFtZWQgc2VjcmV0cyB0aGUgcGx1Z2luIGV4cGVjdHMgYXQgYnVpbGQgdGltZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHM/OiBBcnJheTx7IG5hbWU6IHN0cmluZzsgcmVxdWlyZWQ6IGJvb2xlYW47IGRlc2NyaXB0aW9uPzogc3RyaW5nIH0+O1xuXG4gIC8qKlxuICAgKiBEaXJlY3RvcnkgY29udGFpbmluZyB0aGUgcHJpbWFyeSBidWlsZCBvdXRwdXQgYXJ0aWZhY3RzXG4gICAqIEBleGFtcGxlICdkaXN0J1xuICAgKi9cbiAgcmVhZG9ubHkgcHJpbWFyeU91dHB1dERpcmVjdG9yeT86IHN0cmluZztcbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgbWV0YWRhdGEgdGhhdCBjYW4gYmUgYWNjZXNzZWQgZHVyaW5nIHBsdWdpbiBleGVjdXRpb25cbiAgICogS2V5cyBzaG91bGQgdXNlIHRoZSBmb3JtYXQgJ2F3czpjZGs6e25hbWVzcGFjZX06e2tleX0nIChhbGwgbG93ZXJjYXNlKVxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPjtcblxuICAvKipcbiAgICogUGF0aCB0byBEb2NrZXJmaWxlIG9yIERvY2tlcmZpbGUgY29udGVudFxuICAgKiBVc2VkIHRvIGJ1aWxkIHRoZSBjb250YWluZXIgZW52aXJvbm1lbnQgZm9yIHRoaXMgcGx1Z2luXG4gICAqL1xuICByZWFkb25seSBkb2NrZXJmaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb21tYW5kcyB0byBydW4gZHVyaW5nIHRoZSBpbnN0YWxsIHBoYXNlXG4gICAqIFR5cGljYWxseSB1c2VkIGZvciBpbnN0YWxsaW5nIGRlcGVuZGVuY2llc1xuICAgKiBAZXhhbXBsZSBbJ25wbSBjaScsICducG0gcnVuIGJ1aWxkJ11cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbGxDb21tYW5kcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBDb21tYW5kcyB0byBydW4gZHVyaW5nIHRoZSBidWlsZC9leGVjdXRpb24gcGhhc2VcbiAgICogVGhlc2UgYXJlIHRoZSBtYWluIGNvbW1hbmRzIHRoYXQgcGVyZm9ybSB0aGUgcGx1Z2luJ3Mgd29ya1xuICAgKiBAZXhhbXBsZSBbJ25wbSB0ZXN0JywgJ25wbSBydW4gZGVwbG95J11cbiAgICovXG4gIHJlYWRvbmx5IGNvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEVudmlyb25tZW50IHZhcmlhYmxlcyB0byBzZXQgaW4gdGhlIGJ1aWxkIGVudmlyb25tZW50XG4gICAqIEBleGFtcGxlIHsgQVBJX1VSTDogJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tJywgTE9HX0xFVkVMOiAnaW5mbycgfVxuICAgKi9cbiAgcmVhZG9ubHkgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogRG9ja2VyIGJ1aWxkIGFyZ3VtZW50cyBwYXNzZWQgdmlhIC0tYnVpbGQtYXJnIGF0IGltYWdlIGJ1aWxkIHRpbWUuXG4gICAqIFVzZWQgdG8gcGFyYW1ldGVyaXplIERvY2tlcmZpbGUgQVJHIHZhbHVlcyB3aGVuIGJ1aWxkaW5nIHRoZSBwbHVnaW4gaW1hZ2UuXG4gICAqIEBleGFtcGxlIHsgUFlUSE9OX1ZFUlNJT046ICczLjEyJywgTk9ERV9FTlY6ICdwcm9kdWN0aW9uJyB9XG4gICAqL1xuICByZWFkb25seSBidWlsZEFyZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBQaXBlbGluZSBtZXRhZGF0YSBrZXlzIHRoZSBwbHVnaW4gcmVmZXJlbmNlcyB2aWEgYHt7IHBpcGVsaW5lLm1ldGFkYXRhLlggfX1gLlxuICAgKiBEZWNsYXJlZCBhcyBhIGNvbnRyYWN0IOKAlCBwaXBlbGluZXMgdXNpbmcgdGhpcyBwbHVnaW4gbXVzdCBzdXBwbHkgYWxsXG4gICAqIGxpc3RlZCBrZXlzIHVubGVzcyB0aGUgdGVtcGxhdGUgdXNlcyBgfCBkZWZhdWx0OiAnLi4uJ2AuXG4gICAqIEBleGFtcGxlIFsnZW52JywgJ25hbWVzcGFjZScsICdjbHVzdGVyTmFtZSddXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlZE1ldGFkYXRhPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIHZhcnMga2V5cyB0aGUgcGx1Z2luIHJlZmVyZW5jZXMgdmlhIGB7eyBwaXBlbGluZS52YXJzLlggfX1gLlxuICAgKiBAZXhhbXBsZSBbJ2JyYW5jaCcsICdzbGFja0NoYW5uZWwnXVxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZWRWYXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHR5cGUgZGVjbGFyYXRpb25zIGZvciB0aGUgbWV0YWRhdGEga2V5cyBsaXN0ZWQgaW4gYHJlcXVpcmVkTWV0YWRhdGFgLlxuICAgKiBVc2VkIGF0IHVwbG9hZCB0aW1lIHRvIHZlcmlmeSB0aGF0IGNvZXJjaW9uIGZpbHRlcnMgKGB8IG51bWJlcmAsIGB8IGJvb2xgLFxuICAgKiBgfCBqc29uYCkgbWF0Y2ggdGhlIGRlY2xhcmVkIHR5cGUg4oCUIGUuZy4gYHt7IHBpcGVsaW5lLm1ldGFkYXRhLmNvdW50IHwgbnVtYmVyIH19YFxuICAgKiByZXF1aXJlcyBgY291bnQ6ICdudW1iZXInYCBoZXJlLCBvdGhlcndpc2UgdGhlIHBsdWdpbiBpcyByZWplY3RlZC5cbiAgICogS2V5cyBub3QgZGVjbGFyZWQgZGVmYXVsdCB0byBgJ3N0cmluZydgLlxuICAgKiBAZXhhbXBsZSB7IGNvdW50OiAnbnVtYmVyJywgZW5hYmxlZDogJ2Jvb2wnIH1cbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhVHlwZXM/OiBSZWNvcmQ8c3RyaW5nLCAnc3RyaW5nJyB8ICdudW1iZXInIHwgJ2Jvb2wnIHwgJ2pzb24nPjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdHlwZSBkZWNsYXJhdGlvbnMgZm9yIHZhcnMga2V5cyAoc2FtZSBzZW1hbnRpY3MgYXMgYG1ldGFkYXRhVHlwZXNgKS5cbiAgICovXG4gIHJlYWRvbmx5IHZhcnNUeXBlcz86IFJlY29yZDxzdHJpbmcsICdzdHJpbmcnIHwgJ251bWJlcicgfCAnYm9vbCcgfCAnanNvbic+O1xufVxuXG4vKipcbiAqIFBlci1zdGVwIGN1c3RvbWl6YXRpb24gb3B0aW9ucyBmb3IgY29tbWFuZHMgYW5kIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAqIEN1c3RvbSBjb21tYW5kcyBhcmUgaW5qZWN0ZWQgYmVmb3JlL2FmdGVyIHRoZSBwbHVnaW4ncyBjb21tYW5kcy5cbiAqIEN1c3RvbSBlbnYgdmFycyBhcmUgbWVyZ2VkIG9uIHRvcCBvZiB0aGUgcGx1Z2luJ3MgZGVmYXVsdHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcEN1c3RvbWl6YXRpb24ge1xuICAvKiogQ29tbWFuZHMgdG8gcnVuIGJlZm9yZSB0aGUgcGx1Z2luJ3MgaW5zdGFsbCBjb21tYW5kcyAqL1xuICByZWFkb25seSBwcmVJbnN0YWxsQ29tbWFuZHM/OiBzdHJpbmdbXTtcblxuICAvKiogQ29tbWFuZHMgdG8gcnVuIGFmdGVyIHRoZSBwbHVnaW4ncyBpbnN0YWxsIGNvbW1hbmRzICovXG4gIHJlYWRvbmx5IHBvc3RJbnN0YWxsQ29tbWFuZHM/OiBzdHJpbmdbXTtcblxuICAvKiogQ29tbWFuZHMgdG8gcnVuIGJlZm9yZSB0aGUgcGx1Z2luJ3MgYnVpbGQgY29tbWFuZHMgKi9cbiAgcmVhZG9ubHkgcHJlQ29tbWFuZHM/OiBzdHJpbmdbXTtcblxuICAvKiogQ29tbWFuZHMgdG8gcnVuIGFmdGVyIHRoZSBwbHVnaW4ncyBidWlsZCBjb21tYW5kcyAqL1xuICByZWFkb25seSBwb3N0Q29tbWFuZHM/OiBzdHJpbmdbXTtcblxuICAvKiogQ3VzdG9tIGVudmlyb25tZW50IHZhcmlhYmxlcyBtZXJnZWQgb24gdG9wIG9mIHRoZSBwbHVnaW4ncyBlbnYgKi9cbiAgcmVhZG9ubHkgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBBbiBhZGRpdGlvbmFsIGlucHV0IGFydGlmYWN0IHdpdGggYW4gb3B0aW9uYWwgbW91bnQgZGlyZWN0b3J5LlxuICogV2hlbiBkaXJlY3RvcnkgaXMgb21pdHRlZCwgZGVmYXVsdHMgdG8gdGhlIGFydGlmYWN0J3Mgb3V0cHV0RGlyZWN0b3J5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFkZGl0aW9uYWxJbnB1dEFydGlmYWN0Q29uZmlnIHtcbiAgLyoqIEFydGlmYWN0IGtleSBpZGVudGlmeWluZyB0aGUgc291cmNlIHN0ZXAncyBvdXRwdXQgKi9cbiAgcmVhZG9ubHkgYXJ0aWZhY3Q6IEFydGlmYWN0S2V5O1xuXG4gIC8qKiBEaXJlY3RvcnkgdG8gbW91bnQgdGhlIGlucHV0IGF0LiBEZWZhdWx0cyB0byBhcnRpZmFjdC5vdXRwdXREaXJlY3Rvcnkgd2hlbiBvbWl0dGVkLiAqL1xuICByZWFkb25seSBkaXJlY3Rvcnk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgYSBzaW5nbGUgc3RlcCB3aXRoaW4gYSBwaXBlbGluZSBzdGFnZS5cbiAqIFVzZXMgUGx1Z2luT3B0aW9ucyBmb3IgbmFtZS1iYXNlZCBwbHVnaW4gc2VsZWN0aW9uIChyZXNvbHZlZCBhdCBidWlsZCB0aW1lKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFnZVN0ZXBPcHRpb25zIGV4dGVuZHMgU3RlcEN1c3RvbWl6YXRpb24ge1xuICAvKiogUGx1Z2luIHRvIHVzZSBmb3IgdGhpcyBzdGVwICovXG4gIHJlYWRvbmx5IHBsdWdpbjogUGx1Z2luT3B0aW9ucztcblxuICAvKiogU3RlcC1sZXZlbCBtZXRhZGF0YSBtZXJnZWQgd2l0aCBzdGFnZSBhbmQgZ2xvYmFsIG1ldGFkYXRhICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogTWV0YURhdGFUeXBlO1xuXG4gIC8qKiBPcHRpb25hbCBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgc3RlcCdzIENvZGVCdWlsZCBhY3Rpb24gKi9cbiAgcmVhZG9ubHkgbmV0d29yaz86IE5ldHdvcmtDb25maWc7XG5cbiAgLyoqXG4gICAqIENvZGVCdWlsZCB0aW1lb3V0IGluIG1pbnV0ZXMuXG4gICAqIEBkZWZhdWx0IDYwIChBV1MgQ29kZUJ1aWxkIGRlZmF1bHQpXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbiBvZiB0aGlzIHN0ZXAgd2l0aGluIHRoZSBwaXBlbGluZSB3YXZlLlxuICAgKiAtICdwcmUnOiBSdW5zIGJlZm9yZSB0aGUgc3RhZ2UgZGVwbG95bWVudCAoZGVmYXVsdClcbiAgICogLSAncG9zdCc6IFJ1bnMgYWZ0ZXIgdGhlIHN0YWdlIGRlcGxveW1lbnRcbiAgICogQGRlZmF1bHQgJ3ByZSdcbiAgICovXG4gIHJlYWRvbmx5IHBvc2l0aW9uPzogJ3ByZScgfCAncG9zdCc7XG5cbiAgLyoqIEFydGlmYWN0IGtleSBmb3IgdGhpcyBzdGVwJ3MgcHJpbWFyeSBpbnB1dCAocmVzb2x2ZWQgdmlhIEFydGlmYWN0TWFuYWdlcikgKi9cbiAgcmVhZG9ubHkgaW5wdXRBcnRpZmFjdD86IEFydGlmYWN0S2V5O1xuXG4gIC8qKiBBZGRpdGlvbmFsIGlucHV0IGFydGlmYWN0cyBmb3IgdGhpcyBzdGVwLiBFYWNoIGVudHJ5IHNwZWNpZmllcyBhbiBhcnRpZmFjdCBhbmQgYW4gb3B0aW9uYWwgbW91bnQgZGlyZWN0b3J5LiAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsSW5wdXRBcnRpZmFjdHM/OiBBZGRpdGlvbmFsSW5wdXRBcnRpZmFjdENvbmZpZ1tdO1xuXG4gIC8qKiBPdmVycmlkZSB0aGUgcGx1Z2luJ3MgZmFpbHVyZSBiZWhhdmlvciBmb3IgdGhpcyBzdGVwLiAqL1xuICByZWFkb25seSBmYWlsdXJlQmVoYXZpb3I/OiAnZmFpbCcgfCAnd2FybicgfCAnaWdub3JlJztcbn1cblxuLyoqXG4gKiBBIHBpcGVsaW5lIHN0YWdlIGNvbnRhaW5pbmcgb25lIG9yIG1vcmUgYnVpbGQgc3RlcHMuXG4gKiBFYWNoIHN0YWdlIG1hcHMgdG8gYSBDREsgUGlwZWxpbmUgd2F2ZSwgd2l0aCBzdGVwcyBleGVjdXRpbmcgd2l0aGluIHRoZSB3YXZlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlT3B0aW9ucyB7XG4gIC8qKiBEaXNwbGF5IG5hbWUgZm9yIHRoaXMgc3RhZ2UgKi9cbiAgcmVhZG9ubHkgc3RhZ2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqIE9wdGlvbmFsIGFsaWFzIHVzZWQgZm9yIHdhdmUvY29uc3RydWN0IElEIGdlbmVyYXRpb24uIERlZmF1bHRzIHRvIHN0YWdlTmFtZS4gKi9cbiAgcmVhZG9ubHkgYWxpYXM/OiBzdHJpbmc7XG5cbiAgLyoqIEJ1aWxkIHN0ZXBzIHRvIGV4ZWN1dGUgd2l0aGluIHRoaXMgc3RhZ2UgKi9cbiAgcmVhZG9ubHkgc3RlcHM6IFN0YWdlU3RlcE9wdGlvbnNbXTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjcmVhdGluZyBhIENvZGVCdWlsZCBzdGVwIGluIHRoZSBwaXBlbGluZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVCdWlsZFN0ZXBPcHRpb25zIGV4dGVuZHMgU3RlcEN1c3RvbWl6YXRpb24ge1xuICAvKipcbiAgICogVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgQ29kZUJ1aWxkIHN0ZXBcbiAgICogU2hvdWxkIGJlIGRlc2NyaXB0aXZlIGFuZCB1bmlxdWUgd2l0aGluIHRoZSBwaXBlbGluZVxuICAgKiBAZXhhbXBsZSAnbXktb3JnLW15LXByb2plY3Qtc3ludGgnXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVbmlxdWVJZCBpbnN0YW5jZSBmb3IgZ2VuZXJhdGluZyB1bmlxdWUgY29uc3RydWN0IElEc1xuICAgKiBVc2VkIGZvciBuZXR3b3JrIHJlc291cmNlIGxvb2t1cHMgKFZQQywgc3VibmV0cywgc2VjdXJpdHkgZ3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgdW5pcXVlSWQ6IFVuaXF1ZUlkO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gY29uZmlndXJhdGlvbiBmcm9tIHRoZSBkYXRhYmFzZVxuICAgKiBDb250YWlucyBhbGwgdGhlIHBsdWdpbidzIHNwZWMgZGF0YSBhbmQgcnVudGltZSBpbmZvcm1hdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luOiBQbHVnaW47XG5cbiAgLyoqXG4gICAqIENESyBzY29wZSB1c2VkIHRvIGNyZWF0ZSBjb25zdHJ1Y3RzIChWUEMvc3VibmV0L3NlY3VyaXR5LWdyb3VwIGxvb2t1cHMpLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdDtcblxuICAvKipcbiAgICogSW5wdXQgc291cmNlIGZvciB0aGlzIHN0ZXBcbiAgICogVHlwaWNhbGx5IHRoZSBvdXRwdXQgZnJvbSBhIHByZXZpb3VzIHN0ZXAgb3IgdGhlIHBpcGVsaW5lIHNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXQ/OiBJRmlsZVNldFByb2R1Y2VyO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIG1ldGFkYXRhIHRvIG1lcmdlIHdpdGggcGx1Z2luIG1ldGFkYXRhXG4gICAqIFdpbGwgb3ZlcnJpZGUgY29uZmxpY3Rpbmcga2V5cyBmcm9tIHBsdWdpbiBtZXRhZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiBNZXRhRGF0YVR5cGU7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5ldHdvcmsgY29uZmlndXJhdGlvbiBmb3IgdGhlIENvZGVCdWlsZCBzdGVwLlxuICAgKiBXaGVuIHByb3ZpZGVkLCByZXNvbHZlcyBWUEMsIHN1Ym5ldCBzZWxlY3Rpb24sIGFuZCBzZWN1cml0eSBncm91cHNcbiAgICogc28gdGhlIGJ1aWxkIHJ1bnMgaW5zaWRlIHRoZSBzcGVjaWZpZWQgbmV0d29yay5cbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcms/OiBOZXR3b3JrQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBGYWxsYmFjayBDb2RlQnVpbGQgY29tcHV0ZSB0eXBlIHdoZW4gdGhlIHBsdWdpbiBkb2Vzbid0IHNwZWNpZnkgb25lLlxuICAgKiBAZGVmYXVsdCBDb21wdXRlVHlwZS5TTUFMTFxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbXB1dGVUeXBlPzogQ2RrQ29tcHV0ZVR5cGU7XG5cbiAgLyoqXG4gICAqIENvZGVCdWlsZCB0aW1lb3V0IGluIG1pbnV0ZXMuXG4gICAqIEBkZWZhdWx0IDYwIChBV1MgQ29kZUJ1aWxkIGRlZmF1bHQpXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0PzogbnVtYmVyO1xuXG4gIC8qKiBBZGRpdGlvbmFsIGlucHV0cyBtYXBwZWQgYnkgZGlyZWN0b3J5IHBhdGggKHJlc29sdmVkIEZpbGVTZXRzKSAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsSW5wdXRzPzogUmVjb3JkPHN0cmluZywgSUZpbGVTZXRQcm9kdWNlcj47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFydGlmYWN0IG1hbmFnZXIgZm9yIHRyYWNraW5nIGJ1aWxkIG91dHB1dHNcbiAgICogV2hlbiBwcm92aWRlZCBhbmQgcHJpbWFyeU91dHB1dERpcmVjdG9yeSBpcyBzZXQsIHRoZSBzdGVwIHdpbGwgYmUgcmVnaXN0ZXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgYXJ0aWZhY3RNYW5hZ2VyPzogQXJ0aWZhY3RNYW5hZ2VyO1xuXG4gIC8qKlxuICAgKiBTdGFnZSBuYW1lIGZvciBhcnRpZmFjdCBrZXkgZ2VuZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2VOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdGFnZSBhbGlhcyBmb3IgYXJ0aWZhY3Qga2V5IGdlbmVyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YWdlQWxpYXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBhbGlhcyBmb3IgYXJ0aWZhY3Qga2V5IGdlbmVyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbkFsaWFzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGYWlsdXJlIGJlaGF2aW9yIGZvciB0aGlzIHN0ZXAncyBidWlsZCBjb21tYW5kcy5cbiAgICogQXBwbGllZCBhdCBzaGVsbCBsZXZlbDogJ2ZhaWwnID0gZGVmYXVsdCwgJ3dhcm4nID0gbG9nICsgY29udGludWUsICdpZ25vcmUnID0gfHwgdHJ1ZS5cbiAgICovXG4gIHJlYWRvbmx5IGZhaWx1cmVCZWhhdmlvcj86ICdmYWlsJyB8ICd3YXJuJyB8ICdpZ25vcmUnO1xuXG4gIC8qKiBUZW5hbnQgaWRlbnRpZmllciBmb3IgcmVzb2x2aW5nIHBlci1vcmcgc2VjcmV0cyBmcm9tIEFXUyBTZWNyZXRzIE1hbmFnZXIgKi9cbiAgcmVhZG9ubHkgb3JnSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lLWxldmVsIGNvbmZpZyB1c2VkIGFzIHRoZSBgcGlwZWxpbmUuKmAgc2NvcGUgd2hlbiByZXNvbHZpbmdcbiAgICogdGVtcGxhdGUgdG9rZW5zIGluc2lkZSBwbHVnaW4gc3BlY3MuIFJlcXVpcmVkIOKAlCBldmVyeSBge3sgcGlwZWxpbmUuKiB9fWBcbiAgICogcmVmZXJlbmNlIGluIGEgcGx1Z2luIHNwZWMgaXMgZXZhbHVhdGVkIGFnYWluc3QgdGhpcyBvYmplY3QgYXQgc3ludGggdGltZS5cbiAgICpcbiAgICogQ2FsbGVycyBjb25zdHJ1Y3RpbmcgYSBzdGVwIGRpcmVjdGx5IG11c3QgcHJvdmlkZSB0aGUgcGlwZWxpbmUgaWRlbnRpdHlcbiAgICogKyBtZXRhZGF0YSArIHZhcnMgc28gdGVtcGxhdGUgcmVzb2x1dGlvbiBpcyBuZXZlciBzaWxlbnRseSBza2lwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGlwZWxpbmVTY29wZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waXBlbGluZS9zdGVwLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHR5cGUgeyBQbHVnaW5GaWx0ZXIsIFBsdWdpbiB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWRhdGEnO1xuaW1wb3J0IHR5cGUgeyBDb21wdXRlVHlwZSBhcyBDZGtDb21wdXRlVHlwZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlYnVpbGQnO1xuaW1wb3J0IHR5cGUgeyBJRmlsZVNldFByb2R1Y2VyIH0gZnJvbSAnYXdzLWNkay1saWIvcGlwZWxpbmVzJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IFNvdXJjZVR5cGUgfSBmcm9tICcuL3NvdXJjZS10eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEFydGlmYWN0S2V5LCBBcnRpZmFjdE1hbmFnZXIgfSBmcm9tICcuLi9jb3JlL2FydGlmYWN0LW1hbmFnZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBVbmlxdWVJZCB9IGZyb20gJy4uL2NvcmUvaWQtZ2VuZXJhdG9yLmpzJztcbmltcG9ydCB0eXBlIHsgTmV0d29ya0NvbmZpZyB9IGZyb20gJy4uL2NvcmUvbmV0d29yay10eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IE1ldGFEYXRhVHlwZSB9IGZyb20gJy4uL2NvcmUvcGlwZWxpbmUtdHlwZXMuanMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHNlbGVjdGluZyBhbmQgY29uZmlndXJpbmcgYSBwbHVnaW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHBsdWdpbiB0byB1c2VcbiAgICogTXVzdCBtYXRjaCBhIHJlZ2lzdGVyZWQgcGx1Z2luIGluIHRoZSBkYXRhYmFzZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBhbGlhcyBmb3IgdGhlIHBsdWdpbiBpbnN0YW5jZVxuICAgKiBVc2VmdWwgd2hlbiB1c2luZyB0aGUgc2FtZSBwbHVnaW4gbXVsdGlwbGUgdGltZXMgd2l0aCBkaWZmZXJlbnQgY29uZmlndXJhdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGFsaWFzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBmaWx0ZXIgY3JpdGVyaWEgZm9yIHBsdWdpbiBzZWxlY3Rpb25cbiAgICogQ2FuIGJlIHVzZWQgdG8gc2VsZWN0IHNwZWNpZmljIHBsdWdpbiB2ZXJzaW9ucyBvciB2YXJpYW50c1xuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyPzogUGx1Z2luRmlsdGVyO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIG1ldGFkYXRhIHRvIG1lcmdlIHdpdGggcGx1Z2luJ3MgZGVmYXVsdCBtZXRhZGF0YVxuICAgKiBUaGlzIG1ldGFkYXRhIHdpbGwgYmUgYXZhaWxhYmxlIHRvIHRoZSBwbHVnaW4gZHVyaW5nIGV4ZWN1dGlvblxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiBNZXRhRGF0YVR5cGU7XG59XG5cbi8qKlxuICogU3ludGhlc2lzIHN0ZXAgY29uZmlndXJhdGlvbiBjb21iaW5pbmcgc291cmNlIGFuZCBwbHVnaW4uXG4gKiBFeHRlbmRzIFN0ZXBDdXN0b21pemF0aW9uIHRvIHN1cHBvcnQgaW5qZWN0aW5nIGN1c3RvbSBjb21tYW5kcyBhbmQgZW52IHZhcnNcbiAqIGludG8gdGhlIHN5bnRoIENvZGVCdWlsZCBzdGVwIChzYW1lIGhvb2tzIGF2YWlsYWJsZSBhcyBzdGFnZSBzdGVwcykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3ludGhPcHRpb25zIGV4dGVuZHMgU3RlcEN1c3RvbWl6YXRpb24ge1xuICAvKipcbiAgICogU291cmNlIGNvbmZpZ3VyYXRpb24gKFMzLCBHaXRIdWIsIG9yIENvZGVTdGFyKVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlOiBTb3VyY2VUeXBlO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gdG8gdXNlIGZvciBzeW50aGVzaXNcbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbjogUGx1Z2luT3B0aW9ucztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBtZXRhZGF0YSBmb3IgdGhlIHN5bnRoZXNpcyBzdGVwXG4gICAqIFRoaXMgd2lsbCBiZSBtZXJnZWQgd2l0aCBnbG9iYWwgbWV0YWRhdGEgYW5kIHBsdWdpbiBtZXRhZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiBNZXRhRGF0YVR5cGU7XG5cbiAgLyoqXG4gICAqIFN0ZXAtbGV2ZWwgbmV0d29yayBjb25maWd1cmF0aW9uIGFwcGxpZWQgb25seSB0byB0aGUgc3ludGggQ29kZUJ1aWxkIHN0ZXAuXG4gICAqIE92ZXJyaWRlcyB0aGUgcGlwZWxpbmUtbGV2ZWwgYGRlZmF1bHRzLm5ldHdvcmtgIHdoZW4gYm90aCBhcmUgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrPzogTmV0d29ya0NvbmZpZztcbn1cblxuLyoqXG4gKiBQZXItc3RlcCBjdXN0b21pemF0aW9uIG9wdGlvbnMgZm9yIGNvbW1hbmRzIGFuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gKiBDdXN0b20gY29tbWFuZHMgYXJlIGluamVjdGVkIGJlZm9yZS9hZnRlciB0aGUgcGx1Z2luJ3MgY29tbWFuZHMuXG4gKiBDdXN0b20gZW52IHZhcnMgYXJlIG1lcmdlZCBvbiB0b3Agb2YgdGhlIHBsdWdpbidzIGRlZmF1bHRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBDdXN0b21pemF0aW9uIHtcbiAgLyoqIENvbW1hbmRzIHRvIHJ1biBiZWZvcmUgdGhlIHBsdWdpbidzIGluc3RhbGwgY29tbWFuZHMgKi9cbiAgcmVhZG9ubHkgcHJlSW5zdGFsbENvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqIENvbW1hbmRzIHRvIHJ1biBhZnRlciB0aGUgcGx1Z2luJ3MgaW5zdGFsbCBjb21tYW5kcyAqL1xuICByZWFkb25seSBwb3N0SW5zdGFsbENvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqIENvbW1hbmRzIHRvIHJ1biBiZWZvcmUgdGhlIHBsdWdpbidzIGJ1aWxkIGNvbW1hbmRzICovXG4gIHJlYWRvbmx5IHByZUNvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqIENvbW1hbmRzIHRvIHJ1biBhZnRlciB0aGUgcGx1Z2luJ3MgYnVpbGQgY29tbWFuZHMgKi9cbiAgcmVhZG9ubHkgcG9zdENvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqIEN1c3RvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgbWVyZ2VkIG9uIHRvcCBvZiB0aGUgcGx1Z2luJ3MgZW52ICovXG4gIHJlYWRvbmx5IGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogQW4gYWRkaXRpb25hbCBpbnB1dCBhcnRpZmFjdCB3aXRoIGFuIG9wdGlvbmFsIG1vdW50IGRpcmVjdG9yeS5cbiAqIFdoZW4gZGlyZWN0b3J5IGlzIG9taXR0ZWQsIGRlZmF1bHRzIHRvIHRoZSBhcnRpZmFjdCdzIG91dHB1dERpcmVjdG9yeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRpdGlvbmFsSW5wdXRBcnRpZmFjdENvbmZpZyB7XG4gIC8qKiBBcnRpZmFjdCBrZXkgaWRlbnRpZnlpbmcgdGhlIHNvdXJjZSBzdGVwJ3Mgb3V0cHV0ICovXG4gIHJlYWRvbmx5IGFydGlmYWN0OiBBcnRpZmFjdEtleTtcblxuICAvKiogRGlyZWN0b3J5IHRvIG1vdW50IHRoZSBpbnB1dCBhdC4gRGVmYXVsdHMgdG8gYXJ0aWZhY3Qub3V0cHV0RGlyZWN0b3J5IHdoZW4gb21pdHRlZC4gKi9cbiAgcmVhZG9ubHkgZGlyZWN0b3J5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGEgc2luZ2xlIHN0ZXAgd2l0aGluIGEgcGlwZWxpbmUgc3RhZ2UuXG4gKiBVc2VzIFBsdWdpbk9wdGlvbnMgZm9yIG5hbWUtYmFzZWQgcGx1Z2luIHNlbGVjdGlvbiAocmVzb2x2ZWQgYXQgYnVpbGQgdGltZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VTdGVwT3B0aW9ucyBleHRlbmRzIFN0ZXBDdXN0b21pemF0aW9uIHtcbiAgLyoqIFBsdWdpbiB0byB1c2UgZm9yIHRoaXMgc3RlcCAqL1xuICByZWFkb25seSBwbHVnaW46IFBsdWdpbk9wdGlvbnM7XG5cbiAgLyoqIFN0ZXAtbGV2ZWwgbWV0YWRhdGEgbWVyZ2VkIHdpdGggc3RhZ2UgYW5kIGdsb2JhbCBtZXRhZGF0YSAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IE1ldGFEYXRhVHlwZTtcblxuICAvKiogT3B0aW9uYWwgbmV0d29yayBjb25maWd1cmF0aW9uIGZvciB0aGlzIHN0ZXAncyBDb2RlQnVpbGQgYWN0aW9uICovXG4gIHJlYWRvbmx5IG5ldHdvcms/OiBOZXR3b3JrQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBDb2RlQnVpbGQgdGltZW91dCBpbiBtaW51dGVzLlxuICAgKiBAZGVmYXVsdCA2MCAoQVdTIENvZGVCdWlsZCBkZWZhdWx0KVxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IG51bWJlcjtcblxuICAvKipcbiAgICogUG9zaXRpb24gb2YgdGhpcyBzdGVwIHdpdGhpbiB0aGUgcGlwZWxpbmUgd2F2ZS5cbiAgICogLSAncHJlJzogUnVucyBiZWZvcmUgdGhlIHN0YWdlIGRlcGxveW1lbnQgKGRlZmF1bHQpXG4gICAqIC0gJ3Bvc3QnOiBSdW5zIGFmdGVyIHRoZSBzdGFnZSBkZXBsb3ltZW50XG4gICAqIEBkZWZhdWx0ICdwcmUnXG4gICAqL1xuICByZWFkb25seSBwb3NpdGlvbj86ICdwcmUnIHwgJ3Bvc3QnO1xuXG4gIC8qKiBBcnRpZmFjdCBrZXkgZm9yIHRoaXMgc3RlcCdzIHByaW1hcnkgaW5wdXQgKHJlc29sdmVkIHZpYSBBcnRpZmFjdE1hbmFnZXIpICovXG4gIHJlYWRvbmx5IGlucHV0QXJ0aWZhY3Q/OiBBcnRpZmFjdEtleTtcblxuICAvKiogQWRkaXRpb25hbCBpbnB1dCBhcnRpZmFjdHMgZm9yIHRoaXMgc3RlcC4gRWFjaCBlbnRyeSBzcGVjaWZpZXMgYW4gYXJ0aWZhY3QgYW5kIGFuIG9wdGlvbmFsIG1vdW50IGRpcmVjdG9yeS4gKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbElucHV0QXJ0aWZhY3RzPzogQWRkaXRpb25hbElucHV0QXJ0aWZhY3RDb25maWdbXTtcblxuICAvKiogT3ZlcnJpZGUgdGhlIHBsdWdpbidzIGZhaWx1cmUgYmVoYXZpb3IgZm9yIHRoaXMgc3RlcC4gKi9cbiAgcmVhZG9ubHkgZmFpbHVyZUJlaGF2aW9yPzogJ2ZhaWwnIHwgJ3dhcm4nIHwgJ2lnbm9yZSc7XG59XG5cbi8qKlxuICogQSBwaXBlbGluZSBzdGFnZSBjb250YWluaW5nIG9uZSBvciBtb3JlIGJ1aWxkIHN0ZXBzLlxuICogRWFjaCBzdGFnZSBtYXBzIHRvIGEgQ0RLIFBpcGVsaW5lIHdhdmUsIHdpdGggc3RlcHMgZXhlY3V0aW5nIHdpdGhpbiB0aGUgd2F2ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFnZU9wdGlvbnMge1xuICAvKiogRGlzcGxheSBuYW1lIGZvciB0aGlzIHN0YWdlICovXG4gIHJlYWRvbmx5IHN0YWdlTmFtZTogc3RyaW5nO1xuXG4gIC8qKiBPcHRpb25hbCBhbGlhcyB1c2VkIGZvciB3YXZlL2NvbnN0cnVjdCBJRCBnZW5lcmF0aW9uLiBEZWZhdWx0cyB0byBzdGFnZU5hbWUuICovXG4gIHJlYWRvbmx5IGFsaWFzPzogc3RyaW5nO1xuXG4gIC8qKiBCdWlsZCBzdGVwcyB0byBleGVjdXRlIHdpdGhpbiB0aGlzIHN0YWdlICovXG4gIHJlYWRvbmx5IHN0ZXBzOiBTdGFnZVN0ZXBPcHRpb25zW107XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY3JlYXRpbmcgYSBDb2RlQnVpbGQgc3RlcCBpbiB0aGUgcGlwZWxpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQnVpbGRTdGVwT3B0aW9ucyBleHRlbmRzIFN0ZXBDdXN0b21pemF0aW9uIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIENvZGVCdWlsZCBzdGVwXG4gICAqIFNob3VsZCBiZSBkZXNjcmlwdGl2ZSBhbmQgdW5pcXVlIHdpdGhpbiB0aGUgcGlwZWxpbmVcbiAgICogQGV4YW1wbGUgJ215LW9yZy1teS1wcm9qZWN0LXN5bnRoJ1xuICAgKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVW5pcXVlSWQgaW5zdGFuY2UgZm9yIGdlbmVyYXRpbmcgdW5pcXVlIGNvbnN0cnVjdCBJRHNcbiAgICogVXNlZCBmb3IgbmV0d29yayByZXNvdXJjZSBsb29rdXBzIChWUEMsIHN1Ym5ldHMsIHNlY3VyaXR5IGdyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IHVuaXF1ZUlkOiBVbmlxdWVJZDtcblxuICAvKipcbiAgICogUGx1Z2luIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgZGF0YWJhc2VcbiAgICogQ29udGFpbnMgYWxsIHRoZSBwbHVnaW4ncyBzcGVjIGRhdGEgYW5kIHJ1bnRpbWUgaW5mb3JtYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbjogUGx1Z2luO1xuXG4gIC8qKlxuICAgKiBDREsgc2NvcGUgdXNlZCB0byBjcmVhdGUgY29uc3RydWN0cyAoVlBDL3N1Ym5ldC9zZWN1cml0eS1ncm91cCBsb29rdXBzKS5cbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG5cbiAgLyoqXG4gICAqIElucHV0IHNvdXJjZSBmb3IgdGhpcyBzdGVwXG4gICAqIFR5cGljYWxseSB0aGUgb3V0cHV0IGZyb20gYSBwcmV2aW91cyBzdGVwIG9yIHRoZSBwaXBlbGluZSBzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IGlucHV0PzogSUZpbGVTZXRQcm9kdWNlcjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBtZXRhZGF0YSB0byBtZXJnZSB3aXRoIHBsdWdpbiBtZXRhZGF0YVxuICAgKiBXaWxsIG92ZXJyaWRlIGNvbmZsaWN0aW5nIGtleXMgZnJvbSBwbHVnaW4gbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogTWV0YURhdGFUeXBlO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBDb2RlQnVpbGQgc3RlcC5cbiAgICogV2hlbiBwcm92aWRlZCwgcmVzb2x2ZXMgVlBDLCBzdWJuZXQgc2VsZWN0aW9uLCBhbmQgc2VjdXJpdHkgZ3JvdXBzXG4gICAqIHNvIHRoZSBidWlsZCBydW5zIGluc2lkZSB0aGUgc3BlY2lmaWVkIG5ldHdvcmsuXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrPzogTmV0d29ya0NvbmZpZztcblxuICAvKipcbiAgICogRmFsbGJhY2sgQ29kZUJ1aWxkIGNvbXB1dGUgdHlwZSB3aGVuIHRoZSBwbHVnaW4gZG9lc24ndCBzcGVjaWZ5IG9uZS5cbiAgICogQGRlZmF1bHQgQ29tcHV0ZVR5cGUuU01BTExcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRDb21wdXRlVHlwZT86IENka0NvbXB1dGVUeXBlO1xuXG4gIC8qKlxuICAgKiBDb2RlQnVpbGQgdGltZW91dCBpbiBtaW51dGVzLlxuICAgKiBAZGVmYXVsdCA2MCAoQVdTIENvZGVCdWlsZCBkZWZhdWx0KVxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IG51bWJlcjtcblxuICAvKiogQWRkaXRpb25hbCBpbnB1dHMgbWFwcGVkIGJ5IGRpcmVjdG9yeSBwYXRoIChyZXNvbHZlZCBGaWxlU2V0cykgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbElucHV0cz86IFJlY29yZDxzdHJpbmcsIElGaWxlU2V0UHJvZHVjZXI+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBhcnRpZmFjdCBtYW5hZ2VyIGZvciB0cmFja2luZyBidWlsZCBvdXRwdXRzXG4gICAqIFdoZW4gcHJvdmlkZWQgYW5kIHByaW1hcnlPdXRwdXREaXJlY3RvcnkgaXMgc2V0LCB0aGUgc3RlcCB3aWxsIGJlIHJlZ2lzdGVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGFydGlmYWN0TWFuYWdlcj86IEFydGlmYWN0TWFuYWdlcjtcblxuICAvKipcbiAgICogU3RhZ2UgbmFtZSBmb3IgYXJ0aWZhY3Qga2V5IGdlbmVyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YWdlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogU3RhZ2UgYWxpYXMgZm9yIGFydGlmYWN0IGtleSBnZW5lcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBzdGFnZUFsaWFzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gYWxpYXMgZm9yIGFydGlmYWN0IGtleSBnZW5lcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5BbGlhcz86IHN0cmluZztcblxuICAvKipcbiAgICogRmFpbHVyZSBiZWhhdmlvciBmb3IgdGhpcyBzdGVwJ3MgYnVpbGQgY29tbWFuZHMuXG4gICAqIEFwcGxpZWQgYXQgc2hlbGwgbGV2ZWw6ICdmYWlsJyA9IGRlZmF1bHQsICd3YXJuJyA9IGxvZyArIGNvbnRpbnVlLCAnaWdub3JlJyA9IHx8IHRydWUuXG4gICAqL1xuICByZWFkb25seSBmYWlsdXJlQmVoYXZpb3I/OiAnZmFpbCcgfCAnd2FybicgfCAnaWdub3JlJztcblxuICAvKiogVGVuYW50IGlkZW50aWZpZXIgZm9yIHJlc29sdmluZyBwZXItb3JnIHNlY3JldHMgZnJvbSBBV1MgU2VjcmV0cyBNYW5hZ2VyICovXG4gIHJlYWRvbmx5IG9yZ0lkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQaXBlbGluZS1sZXZlbCBjb25maWcgdXNlZCBhcyB0aGUgYHBpcGVsaW5lLipgIHNjb3BlIHdoZW4gcmVzb2x2aW5nXG4gICAqIHRlbXBsYXRlIHRva2VucyBpbnNpZGUgcGx1Z2luIHNwZWNzLiBSZXF1aXJlZCDigJQgZXZlcnkgYHt7IHBpcGVsaW5lLiogfX1gXG4gICAqIHJlZmVyZW5jZSBpbiBhIHBsdWdpbiBzcGVjIGlzIGV2YWx1YXRlZCBhZ2FpbnN0IHRoaXMgb2JqZWN0IGF0IHN5bnRoIHRpbWUuXG4gICAqXG4gICAqIENhbGxlcnMgY29uc3RydWN0aW5nIGEgc3RlcCBkaXJlY3RseSBtdXN0IHByb3ZpZGUgdGhlIHBpcGVsaW5lIGlkZW50aXR5XG4gICAqICsgbWV0YWRhdGEgKyB2YXJzIHNvIHRlbXBsYXRlIHJlc29sdXRpb24gaXMgbmV2ZXIgc2lsZW50bHkgc2tpcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IHBpcGVsaW5lU2NvcGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuIl19