@bluedynamics/cdk8s-plone 0.1.30 → 0.1.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +242 -51
- package/API.md +181 -0
- package/documentation/sources/how-to/deploy-with-vinyl-cache.md +49 -0
- package/documentation/sources/reference/configuration-options.md +23 -0
- package/lib/httpcache.js +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/plone.js +1 -1
- package/lib/vinylcache.d.ts +75 -0
- package/lib/vinylcache.js +32 -3
- package/package.json +1 -1
package/lib/vinylcache.js
CHANGED
|
@@ -47,6 +47,28 @@ class PloneVinylCache extends constructs_1.Construct {
|
|
|
47
47
|
default:
|
|
48
48
|
directorType = vinyl_bluedynamics_eu_1.VinylCacheSpecDirectorType.SHARD;
|
|
49
49
|
}
|
|
50
|
+
// Shard director tuning: only honored by the operator when director type is "shard".
|
|
51
|
+
// Emit the shard block only for shard directors so manifests stay minimal.
|
|
52
|
+
let shardSpec;
|
|
53
|
+
if (directorType === vinyl_bluedynamics_eu_1.VinylCacheSpecDirectorType.SHARD &&
|
|
54
|
+
(options.shardBy || options.shardHealthy || options.shardRampup || options.shardReplicas !== undefined)) {
|
|
55
|
+
let shardBy;
|
|
56
|
+
if (options.shardBy === 'URL')
|
|
57
|
+
shardBy = vinyl_bluedynamics_eu_1.VinylCacheSpecDirectorShardBy.URL;
|
|
58
|
+
else if (options.shardBy === 'HASH')
|
|
59
|
+
shardBy = vinyl_bluedynamics_eu_1.VinylCacheSpecDirectorShardBy.HASH;
|
|
60
|
+
let shardHealthy;
|
|
61
|
+
if (options.shardHealthy === 'ALL')
|
|
62
|
+
shardHealthy = vinyl_bluedynamics_eu_1.VinylCacheSpecDirectorShardHealthy.ALL;
|
|
63
|
+
else if (options.shardHealthy === 'CHOSEN')
|
|
64
|
+
shardHealthy = vinyl_bluedynamics_eu_1.VinylCacheSpecDirectorShardHealthy.CHOSEN;
|
|
65
|
+
shardSpec = {
|
|
66
|
+
by: shardBy,
|
|
67
|
+
healthy: shardHealthy,
|
|
68
|
+
rampup: options.shardRampup,
|
|
69
|
+
replicas: options.shardReplicas,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
50
72
|
// Load default VCL snippets
|
|
51
73
|
const vclRecv = options.vclRecvSnippet ??
|
|
52
74
|
fs.readFileSync(path.join(__dirname, 'config', 'plone-vinyl-recv.vcl'), 'utf8');
|
|
@@ -97,12 +119,19 @@ class PloneVinylCache extends constructs_1.Construct {
|
|
|
97
119
|
});
|
|
98
120
|
}
|
|
99
121
|
}
|
|
122
|
+
const storage = options.storage?.map(s => ({
|
|
123
|
+
name: s.name,
|
|
124
|
+
type: s.type === 'file' ? vinyl_bluedynamics_eu_1.VinylCacheSpecStorageType.FILE : vinyl_bluedynamics_eu_1.VinylCacheSpecStorageType.MALLOC,
|
|
125
|
+
size: s.size !== undefined ? vinyl_bluedynamics_eu_1.VinylCacheSpecStorageSize.fromString(s.size) : undefined,
|
|
126
|
+
path: s.path,
|
|
127
|
+
}));
|
|
100
128
|
const vinylCache = new vinyl_bluedynamics_eu_1.VinylCache(this, 'vinylcache', {
|
|
101
129
|
spec: {
|
|
102
130
|
replicas,
|
|
103
131
|
image: options.image ?? 'varnish:7.6',
|
|
104
132
|
backends,
|
|
105
|
-
director: { type: directorType },
|
|
133
|
+
director: { type: directorType, shard: shardSpec },
|
|
134
|
+
storage,
|
|
106
135
|
vcl: {
|
|
107
136
|
snippets: {
|
|
108
137
|
vclRecv: vclRecv,
|
|
@@ -157,5 +186,5 @@ class PloneVinylCache extends constructs_1.Construct {
|
|
|
157
186
|
}
|
|
158
187
|
exports.PloneVinylCache = PloneVinylCache;
|
|
159
188
|
_a = JSII_RTTI_SYMBOL_1;
|
|
160
|
-
PloneVinylCache[_a] = { fqn: "@bluedynamics/cdk8s-plone.PloneVinylCache", version: "0.1.
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlueWxjYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92aW55bGNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3QixpQ0FBOEI7QUFDOUIsMkNBQXVDO0FBQ3ZDLDJFQUt5QztBQXdSekM7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsc0JBQVM7SUFPNUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxPQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDO1FBQ2xELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO1FBRS9DLDZCQUE2QjtRQUM3QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQztRQUNoRCxJQUFJLFlBQXdDLENBQUM7UUFDN0MsUUFBUSxXQUFXLEVBQUUsQ0FBQztZQUNwQixLQUFLLGFBQWE7Z0JBQ2hCLFlBQVksR0FBRyxrREFBMEIsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDakUsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxZQUFZLEdBQUcsa0RBQTBCLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULFlBQVksR0FBRyxrREFBMEIsQ0FBQyxJQUFJLENBQUM7Z0JBQy9DLE1BQU07WUFDUjtnQkFDRSxZQUFZLEdBQUcsa0RBQTBCLENBQUMsS0FBSyxDQUFDO1FBQ3BELENBQUM7UUFFRCw0QkFBNEI7UUFDNUIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGNBQWM7WUFDcEMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRixNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyx5QkFBeUI7WUFDMUQsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsa0NBQWtDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5RixxQ0FBcUM7UUFDckMsTUFBTSxRQUFRLEdBWVQ7WUFDSDtnQkFDRSxJQUFJLEVBQUUsZUFBZTtnQkFDckIsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3RELElBQUksRUFBRSxJQUFJO2dCQUNWLEtBQUssRUFBRTtvQkFDTCxHQUFHLEVBQUUsS0FBSztvQkFDVixRQUFRLEVBQUUsSUFBSTtvQkFDZCxPQUFPLEVBQUUsSUFBSTtvQkFDYixNQUFNLEVBQUUsRUFBRTtvQkFDVixTQUFTLEVBQUUsQ0FBQztpQkFDYjthQUNGO1NBQ0YsQ0FBQztRQUVGLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3RDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ1osSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUU7Z0JBQ3ZELElBQUksRUFBRSxJQUFJO2dCQUNWLEtBQUssRUFBRTtvQkFDTCxHQUFHLEVBQUUsR0FBRztvQkFDUixRQUFRLEVBQUUsSUFBSTtvQkFDZCxPQUFPLEVBQUUsSUFBSTtvQkFDYixNQUFNLEVBQUUsRUFBRTtvQkFDVixTQUFTLEVBQUUsQ0FBQztpQkFDYjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQixLQUFLLE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDdkMsUUFBUSxDQUFDLElBQUksQ0FBQztvQkFDWixJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUk7b0JBQ2IsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxXQUFXLEVBQUU7b0JBQ3BDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSTtvQkFDYixLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ2hCLEdBQUcsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxHQUFHO3dCQUN4QixRQUFRLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSTt3QkFDbkMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUk7d0JBQ2pDLE1BQU0sRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFO3dCQUM3QixTQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksQ0FBQztxQkFDbkMsQ0FBQyxDQUFDLENBQUMsU0FBUztpQkFDZCxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksa0NBQVUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQ3BELElBQUksRUFBRTtnQkFDSixRQUFRO2dCQUNSLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLGFBQWE7Z0JBQ3JDLFFBQVE7Z0JBQ1IsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtnQkFDaEMsR0FBRyxFQUFFO29CQUNILFFBQVEsRUFBRTt3QkFDUixPQUFPLEVBQUUsT0FBTzt3QkFDaEIsa0JBQWtCLEVBQUUsa0JBQWtCO3dCQUN0QyxVQUFVLEVBQUUsT0FBTyxDQUFDLGlCQUFpQjt3QkFDckMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxhQUFhO3dCQUM3QixPQUFPLEVBQUUsT0FBTyxDQUFDLGNBQWM7d0JBQy9CLE9BQU8sRUFBRSxPQUFPLENBQUMsY0FBYzt3QkFDL0IsT0FBTyxFQUFFLE9BQU8sQ0FBQyxjQUFjO3dCQUMvQixRQUFRLEVBQUUsT0FBTyxDQUFDLGVBQWU7d0JBQ2pDLFFBQVEsRUFBRSxPQUFPLENBQUMsZUFBZTt3QkFDakMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxjQUFjO3dCQUMvQixPQUFPLEVBQUUsT0FBTyxDQUFDLGNBQWM7d0JBQy9CLE9BQU8sRUFBRSxPQUFPLENBQUMsY0FBYzt3QkFDL0IsZUFBZSxFQUFFLE9BQU8sQ0FBQyxzQkFBc0I7d0JBQy9DLGVBQWUsRUFBRSxPQUFPLENBQUMsc0JBQXNCO3FCQUNoRDtpQkFDRjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsUUFBUSxFQUFFO3dCQUNSLEdBQUcsRUFBRSx1REFBK0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUM7d0JBQzdFLE1BQU0sRUFBRSx1REFBK0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUM7cUJBQ3JGO29CQUNELE1BQU0sRUFBRTt3QkFDTixHQUFHLEVBQUUscURBQTZCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDO3dCQUN6RSxNQUFNLEVBQUUscURBQTZCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDO3FCQUNqRjtpQkFDRjtnQkFDRCxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztvQkFDM0IsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtvQkFDeEIsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtvQkFDdEIsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtpQkFDeEIsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDYixVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztvQkFDdkIsT0FBTyxFQUFFLElBQUk7b0JBQ2IsY0FBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtpQkFDbEMsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDYixHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE1BQU0sSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUMzRCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUMxQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUc7d0JBQ1YsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO3dCQUNwQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7d0JBQ2QsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNO3FCQUNqQixDQUFDLENBQUM7b0JBQ0gsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO2lCQUNuQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQ2Q7U0FDRixDQUFDLENBQUM7UUFFSCwrRUFBK0U7UUFDL0UsSUFBSSxDQUFDLHFCQUFxQixHQUFHLGFBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7QUExSkgsMENBMkpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IE5hbWVzIH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge1xuICBWaW55bENhY2hlLFxuICBWaW55bENhY2hlU3BlY0RpcmVjdG9yVHlwZSxcbiAgVmlueWxDYWNoZVNwZWNSZXNvdXJjZXNMaW1pdHMsXG4gIFZpbnlsQ2FjaGVTcGVjUmVzb3VyY2VzUmVxdWVzdHMsXG59IGZyb20gJy4vaW1wb3J0cy92aW55bC5ibHVlZHluYW1pY3MuZXUnO1xuaW1wb3J0IHsgUGxvbmUgfSBmcm9tICcuL3Bsb25lJztcblxuLyoqXG4gKiBIZWFsdGggcHJvYmUgY29uZmlndXJhdGlvbiBmb3IgYSBWaW55bENhY2hlIGJhY2tlbmQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlueWxDYWNoZUJhY2tlbmRQcm9iZSB7XG4gIC8qKlxuICAgKiBVUkwgdG8gcHJvYmUuXG4gICAqIEBkZWZhdWx0ICcvJ1xuICAgKi9cbiAgcmVhZG9ubHkgdXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgb2Z0ZW4gdG8gcHJvYmUgdGhlIGJhY2tlbmQuXG4gICAqIEBkZWZhdWx0ICc1cydcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIHRpbWUgdG8gd2FpdCBmb3IgYSBwcm9iZSByZXNwb25zZS5cbiAgICogQGRlZmF1bHQgJzJzJ1xuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IHN0cmluZztcblxuICAvKipcbiAgICogTnVtYmVyIG9mIG1vc3QgcmVjZW50IHByb2JlcyB0byBjb25zaWRlci5cbiAgICogQGRlZmF1bHQgMTBcbiAgICovXG4gIHJlYWRvbmx5IHdpbmRvdz86IG51bWJlcjtcblxuICAvKipcbiAgICogTWluaW11bSBzdWNjZXNzZnVsIHByb2JlcyB3aXRoaW4gd2luZG93IGZvciBoZWFsdGh5IHN0YXR1cy5cbiAgICogQGRlZmF1bHQgOFxuICAgKi9cbiAgcmVhZG9ubHkgdGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBFeHBlY3RlZCBIVFRQIHJlc3BvbnNlIHN0YXR1cyBjb2RlLlxuICAgKiBAZGVmYXVsdCAyMDBcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVjdGVkUmVzcG9uc2U/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQW4gYWRkaXRpb25hbCBiYWNrZW5kIGZvciB0aGUgVmlueWxDYWNoZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaW55bENhY2hlQmFja2VuZCB7XG4gIC8qKlxuICAgKiBWQ0wgaWRlbnRpZmllciBmb3IgdGhpcyBiYWNrZW5kLiBNdXN0IG1hdGNoIF5bYS16QS1aXVthLXpBLVowLTlfXSokLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBLdWJlcm5ldGVzIFNlcnZpY2UgbmFtZSB0byB1c2UgYXMgYmFja2VuZC5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBvcnQgdG8gdXNlIGZvciB0aGlzIGJhY2tlbmQuXG4gICAqL1xuICByZWFkb25seSBwb3J0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEhlYWx0aCBwcm9iZSBjb25maWd1cmF0aW9uLlxuICAgKiBAZGVmYXVsdCAtIG5vIHByb2JlXG4gICAqL1xuICByZWFkb25seSBwcm9iZT86IFZpbnlsQ2FjaGVCYWNrZW5kUHJvYmU7XG5cbiAgLyoqXG4gICAqIFJlbGF0aXZlIHdlaWdodCBmb3IgdGhlIGRpcmVjdG9yLiAwIG1lYW5zIHN0YW5kYnkuXG4gICAqIEBkZWZhdWx0IC0gb3BlcmF0b3IgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgd2VpZ2h0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgS3ViZXJuZXRlcyB0b2xlcmF0aW9uIGZvciB0aGUgVmFybmlzaCBwb2RzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpbnlsQ2FjaGVUb2xlcmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSB0YWludCBrZXkgdG8gdG9sZXJhdGUuXG4gICAqL1xuICByZWFkb25seSBrZXk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9wZXJhdG9yIChFcXVhbCBvciBFeGlzdHMpLlxuICAgKiBAZGVmYXVsdCAnRXF1YWwnXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRvcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRhaW50IHZhbHVlIHRvIG1hdGNoICh3aGVuIG9wZXJhdG9yIGlzIEVxdWFsKS5cbiAgICogQGRlZmF1bHQgLSBubyB2YWx1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWludCBlZmZlY3QgdG8gdG9sZXJhdGUgKE5vU2NoZWR1bGUsIFByZWZlck5vU2NoZWR1bGUsIE5vRXhlY3V0ZSkuXG4gICAqIEBkZWZhdWx0IC0gdG9sZXJhdGUgYWxsIGVmZmVjdHNcbiAgICovXG4gIHJlYWRvbmx5IGVmZmVjdD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIFBsb25lVmlueWxDYWNoZSAoY2xvdWQtdmlueWwgb3BlcmF0b3IpLlxuICpcbiAqIENyZWF0ZXMgYSBWaW55bENhY2hlIGN1c3RvbSByZXNvdXJjZSB0aGF0IHRoZSBjbG91ZC12aW55bCBvcGVyYXRvclxuICogcmVjb25jaWxlcyBpbnRvIGEgVmFybmlzaCBDYWNoZSBjbHVzdGVyIHdpdGggYWdlbnQtYmFzZWQgVkNMIGRlbGl2ZXJ5LlxuICpcbiAqIFJlcXVpcmVzIHRoZSBjbG91ZC12aW55bCBvcGVyYXRvciB0byBiZSBpbnN0YWxsZWQgaW4gdGhlIGNsdXN0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvbmVWaW55bENhY2hlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgUGxvbmUgY29uc3RydWN0IHRvIGF0dGFjaCB0aGUgY2FjaGUgdG8uXG4gICAqIEJhY2tlbmRzIGFyZSBhdXRvLWNvbmZpZ3VyZWQgZnJvbSB0aGUgUGxvbmUgc2VydmljZXMuXG4gICAqL1xuICByZWFkb25seSBwbG9uZTogUGxvbmU7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgYmFja2VuZHMgdG8gYWRkIGFmdGVyIHRoZSBhdXRvLWdlbmVyYXRlZCBQbG9uZSBiYWNrZW5kcy5cbiAgICogVXNlcyB0aGUgc2FtZSBiYWNrZW5kIHR5cGUgc3RydWN0dXJlIGFzIHRoZSBWaW55bENhY2hlIENSRC5cbiAgICogQGRlZmF1bHQgLSBubyBleHRyYSBiYWNrZW5kc1xuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFCYWNrZW5kcz86IFZpbnlsQ2FjaGVCYWNrZW5kW107XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBWYXJuaXNoIHBvZCByZXBsaWNhcy5cbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwbGljYXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENQVSByZXF1ZXN0IGZvciBWYXJuaXNoIHBvZHMuXG4gICAqIEBkZWZhdWx0ICcxMDBtJ1xuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdENwdT86IHN0cmluZztcblxuICAvKipcbiAgICogTWVtb3J5IHJlcXVlc3QgZm9yIFZhcm5pc2ggcG9kcy5cbiAgICogQGRlZmF1bHQgJzI1Nk1pJ1xuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdE1lbW9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogQ1BVIGxpbWl0IGZvciBWYXJuaXNoIHBvZHMuXG4gICAqIEBkZWZhdWx0ICc1MDBtJ1xuICAgKi9cbiAgcmVhZG9ubHkgbGltaXRDcHU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1lbW9yeSBsaW1pdCBmb3IgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAnNTEyTWknXG4gICAqL1xuICByZWFkb25seSBsaW1pdE1lbW9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogRGlyZWN0b3IgdHlwZSBmb3IgbG9hZCBkaXN0cmlidXRpb24uXG4gICAqIEBkZWZhdWx0ICdzaGFyZCdcbiAgICovXG4gIHJlYWRvbmx5IGRpcmVjdG9yPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9yZWN2IHN1YnJvdXRpbmUuXG4gICAqIFJlcGxhY2VzIHRoZSBkZWZhdWx0IFBsb25lIHJlY3Ygc25pcHBldC5cbiAgICogQGRlZmF1bHQgLSB1c2VzIGJ1aWx0LWluIHBsb25lLXZpbnlsLXJlY3YudmNsXG4gICAqL1xuICByZWFkb25seSB2Y2xSZWN2U25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfYmFja2VuZF9yZXNwb25zZSBzdWJyb3V0aW5lLlxuICAgKiBSZXBsYWNlcyB0aGUgZGVmYXVsdCBQbG9uZSBiYWNrZW5kX3Jlc3BvbnNlIHNuaXBwZXQuXG4gICAqIEBkZWZhdWx0IC0gdXNlcyBidWlsdC1pbiBwbG9uZS12aW55bC1iYWNrZW5kLXJlc3BvbnNlLnZjbFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsQmFja2VuZFJlc3BvbnNlU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogRW5hYmxlIGNhY2hlIGludmFsaWRhdGlvbiAoUFVSR0UsIEJBTiwgeGtleSkuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGludmFsaWRhdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBQcm9tZXRoZXVzIG1vbml0b3JpbmcgKG1ldHJpY3MgKyBTZXJ2aWNlTW9uaXRvcikuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBtb25pdG9yaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29udGFpbmVyIGltYWdlIGZvciB0aGUgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAndmFybmlzaDo3LjYnXG4gICAqL1xuICByZWFkb25seSBpbWFnZT86IHN0cmluZztcblxuICAvKipcbiAgICogVG9sZXJhdGlvbnMgZm9yIHRoZSBWYXJuaXNoIHBvZHMuXG4gICAqIEBkZWZhdWx0IC0gbm8gdG9sZXJhdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IHRvbGVyYXRpb25zPzogVmlueWxDYWNoZVRvbGVyYXRpb25bXTtcblxuICAvKipcbiAgICogTm9kZSBzZWxlY3RvciBsYWJlbHMgZm9yIHRoZSBWYXJuaXNoIHBvZHMuXG4gICAqIENvbnN0cmFpbnMgcG9kcyB0byBub2RlcyBtYXRjaGluZyBhbGwgc3BlY2lmaWVkIGxhYmVscy5cbiAgICogQGRlZmF1bHQgLSBubyBub2RlIHNlbGVjdG9yXG4gICAqL1xuICByZWFkb25seSBub2RlU2VsZWN0b3I/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9kZWxpdmVyIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsRGVsaXZlclNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2hpdCBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbEhpdFNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX21pc3Mgc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xNaXNzU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfcGFzcyBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbFBhc3NTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9waXBlIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsUGlwZVNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX3N5bnRoIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsU3ludGhTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9wdXJnZSBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbFB1cmdlU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfaGFzaCBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbEhhc2hTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9pbml0IHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsSW5pdFNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2Zpbmkgc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xGaW5pU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfYmFja2VuZF9mZXRjaCBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbEJhY2tlbmRGZXRjaFNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2JhY2tlbmRfZXJyb3Igc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xCYWNrZW5kRXJyb3JTbmlwcGV0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBsb25lVmlueWxDYWNoZSBjb25zdHJ1Y3QgZm9yIGRlcGxveWluZyBWYXJuaXNoIENhY2hlIHZpYSBjbG91ZC12aW55bCBvcGVyYXRvci5cbiAqXG4gKiBDcmVhdGVzIGEgVmlueWxDYWNoZSBjdXN0b20gcmVzb3VyY2Ugd2l0aCBQbG9uZSBiYWNrZW5kL2Zyb250ZW5kIHNlcnZpY2VzXG4gKiBhdXRvLWNvbmZpZ3VyZWQgYXMgYmFja2VuZHMuIFRoZSBjbG91ZC12aW55bCBvcGVyYXRvciBtYW5hZ2VzIHRoZSBmdWxsXG4gKiBWYXJuaXNoIGxpZmVjeWNsZSBpbmNsdWRpbmcgVkNMIGdlbmVyYXRpb24sIGFnZW50IGRlbGl2ZXJ5LCBhbmQgbW9uaXRvcmluZy5cbiAqXG4gKiBSZXF1aXJlcyB0aGUgY2xvdWQtdmlueWwgb3BlcmF0b3IgdG8gYmUgaW5zdGFsbGVkIGluIHRoZSBjbHVzdGVyLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBwbG9uZSA9IG5ldyBQbG9uZShjaGFydCwgJ3Bsb25lJyk7XG4gKiBjb25zdCBjYWNoZSA9IG5ldyBQbG9uZVZpbnlsQ2FjaGUoY2hhcnQsICdjYWNoZScsIHtcbiAqICAgcGxvbmU6IHBsb25lLFxuICogICByZXBsaWNhczogMixcbiAqIH0pO1xuICogLy8gVXNlIGNhY2hlLnZpbnlsQ2FjaGVTZXJ2aWNlTmFtZSBmb3IgSW5ncmVzc1JvdXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBQbG9uZVZpbnlsQ2FjaGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgVmlueWxDYWNoZSBzZXJ2aWNlIGNyZWF0ZWQgYnkgdGhlIG9wZXJhdG9yLlxuICAgKiBVc2UgdGhpcyB0byByZWZlcmVuY2UgdGhlIGNhY2hlIHNlcnZpY2UgZnJvbSBpbmdyZXNzIG9yIG90aGVyIGNvbnN0cnVjdHMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmlueWxDYWNoZVNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0aW9uczogUGxvbmVWaW55bENhY2hlT3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCByZXBsaWNhcyA9IG9wdGlvbnMucmVwbGljYXMgPz8gMjtcbiAgICBjb25zdCBpbnZhbGlkYXRpb24gPSBvcHRpb25zLmludmFsaWRhdGlvbiA/PyB0cnVlO1xuICAgIGNvbnN0IG1vbml0b3JpbmcgPSBvcHRpb25zLm1vbml0b3JpbmcgPz8gZmFsc2U7XG5cbiAgICAvLyBSZXNvbHZlIGRpcmVjdG9yIHR5cGUgZW51bVxuICAgIGNvbnN0IGRpcmVjdG9yU3RyID0gb3B0aW9ucy5kaXJlY3RvciA/PyAnc2hhcmQnO1xuICAgIGxldCBkaXJlY3RvclR5cGU6IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlO1xuICAgIHN3aXRjaCAoZGlyZWN0b3JTdHIpIHtcbiAgICAgIGNhc2UgJ3JvdW5kX3JvYmluJzpcbiAgICAgICAgZGlyZWN0b3JUeXBlID0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclR5cGUuUk9VTkRfVU5ERVJTQ09SRV9ST0JJTjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyYW5kb20nOlxuICAgICAgICBkaXJlY3RvclR5cGUgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yVHlwZS5SQU5ET007XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaGFzaCc6XG4gICAgICAgIGRpcmVjdG9yVHlwZSA9IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlLkhBU0g7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgZGlyZWN0b3JUeXBlID0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclR5cGUuU0hBUkQ7XG4gICAgfVxuXG4gICAgLy8gTG9hZCBkZWZhdWx0IFZDTCBzbmlwcGV0c1xuICAgIGNvbnN0IHZjbFJlY3YgPSBvcHRpb25zLnZjbFJlY3ZTbmlwcGV0ID8/XG4gICAgICBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2NvbmZpZycsICdwbG9uZS12aW55bC1yZWN2LnZjbCcpLCAndXRmOCcpO1xuICAgIGNvbnN0IHZjbEJhY2tlbmRSZXNwb25zZSA9IG9wdGlvbnMudmNsQmFja2VuZFJlc3BvbnNlU25pcHBldCA/P1xuICAgICAgZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihfX2Rpcm5hbWUsICdjb25maWcnLCAncGxvbmUtdmlueWwtYmFja2VuZC1yZXNwb25zZS52Y2wnKSwgJ3V0ZjgnKTtcblxuICAgIC8vIEJ1aWxkIGJhY2tlbmRzIGZyb20gUGxvbmUgc2VydmljZXNcbiAgICBjb25zdCBiYWNrZW5kczogQXJyYXk8e1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgc2VydmljZVJlZjogeyBuYW1lOiBzdHJpbmcgfTtcbiAgICAgIHBvcnQ6IG51bWJlcjtcbiAgICAgIHByb2JlPzoge1xuICAgICAgICB1cmw6IHN0cmluZztcbiAgICAgICAgaW50ZXJ2YWw6IHN0cmluZztcbiAgICAgICAgdGltZW91dDogc3RyaW5nO1xuICAgICAgICB3aW5kb3c6IG51bWJlcjtcbiAgICAgICAgdGhyZXNob2xkOiBudW1iZXI7XG4gICAgICB9O1xuICAgICAgd2VpZ2h0PzogbnVtYmVyO1xuICAgIH0+ID0gW1xuICAgICAge1xuICAgICAgICBuYW1lOiAncGxvbmVfYmFja2VuZCcsXG4gICAgICAgIHNlcnZpY2VSZWY6IHsgbmFtZTogb3B0aW9ucy5wbG9uZS5iYWNrZW5kU2VydmljZU5hbWUgfSxcbiAgICAgICAgcG9ydDogODA4MCxcbiAgICAgICAgcHJvYmU6IHtcbiAgICAgICAgICB1cmw6ICcvb2snLFxuICAgICAgICAgIGludGVydmFsOiAnNXMnLFxuICAgICAgICAgIHRpbWVvdXQ6ICcycycsXG4gICAgICAgICAgd2luZG93OiAxMCxcbiAgICAgICAgICB0aHJlc2hvbGQ6IDgsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBpZiAob3B0aW9ucy5wbG9uZS5mcm9udGVuZFNlcnZpY2VOYW1lKSB7XG4gICAgICBiYWNrZW5kcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ3Bsb25lX2Zyb250ZW5kJyxcbiAgICAgICAgc2VydmljZVJlZjogeyBuYW1lOiBvcHRpb25zLnBsb25lLmZyb250ZW5kU2VydmljZU5hbWUgfSxcbiAgICAgICAgcG9ydDogMzAwMCxcbiAgICAgICAgcHJvYmU6IHtcbiAgICAgICAgICB1cmw6ICcvJyxcbiAgICAgICAgICBpbnRlcnZhbDogJzVzJyxcbiAgICAgICAgICB0aW1lb3V0OiAnMnMnLFxuICAgICAgICAgIHdpbmRvdzogMTAsXG4gICAgICAgICAgdGhyZXNob2xkOiA4LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZXh0cmFCYWNrZW5kcykge1xuICAgICAgZm9yIChjb25zdCBlYiBvZiBvcHRpb25zLmV4dHJhQmFja2VuZHMpIHtcbiAgICAgICAgYmFja2VuZHMucHVzaCh7XG4gICAgICAgICAgbmFtZTogZWIubmFtZSxcbiAgICAgICAgICBzZXJ2aWNlUmVmOiB7IG5hbWU6IGViLnNlcnZpY2VOYW1lIH0sXG4gICAgICAgICAgcG9ydDogZWIucG9ydCxcbiAgICAgICAgICBwcm9iZTogZWIucHJvYmUgPyB7XG4gICAgICAgICAgICB1cmw6IGViLnByb2JlLnVybCA/PyAnLycsXG4gICAgICAgICAgICBpbnRlcnZhbDogZWIucHJvYmUuaW50ZXJ2YWwgPz8gJzVzJyxcbiAgICAgICAgICAgIHRpbWVvdXQ6IGViLnByb2JlLnRpbWVvdXQgPz8gJzJzJyxcbiAgICAgICAgICAgIHdpbmRvdzogZWIucHJvYmUud2luZG93ID8/IDEwLFxuICAgICAgICAgICAgdGhyZXNob2xkOiBlYi5wcm9iZS50aHJlc2hvbGQgPz8gOCxcbiAgICAgICAgICB9IDogdW5kZWZpbmVkLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB2aW55bENhY2hlID0gbmV3IFZpbnlsQ2FjaGUodGhpcywgJ3ZpbnlsY2FjaGUnLCB7XG4gICAgICBzcGVjOiB7XG4gICAgICAgIHJlcGxpY2FzLFxuICAgICAgICBpbWFnZTogb3B0aW9ucy5pbWFnZSA/PyAndmFybmlzaDo3LjYnLFxuICAgICAgICBiYWNrZW5kcyxcbiAgICAgICAgZGlyZWN0b3I6IHsgdHlwZTogZGlyZWN0b3JUeXBlIH0sXG4gICAgICAgIHZjbDoge1xuICAgICAgICAgIHNuaXBwZXRzOiB7XG4gICAgICAgICAgICB2Y2xSZWN2OiB2Y2xSZWN2LFxuICAgICAgICAgICAgdmNsQmFja2VuZFJlc3BvbnNlOiB2Y2xCYWNrZW5kUmVzcG9uc2UsXG4gICAgICAgICAgICB2Y2xEZWxpdmVyOiBvcHRpb25zLnZjbERlbGl2ZXJTbmlwcGV0LFxuICAgICAgICAgICAgdmNsSGl0OiBvcHRpb25zLnZjbEhpdFNuaXBwZXQsXG4gICAgICAgICAgICB2Y2xNaXNzOiBvcHRpb25zLnZjbE1pc3NTbmlwcGV0LFxuICAgICAgICAgICAgdmNsUGFzczogb3B0aW9ucy52Y2xQYXNzU25pcHBldCxcbiAgICAgICAgICAgIHZjbFBpcGU6IG9wdGlvbnMudmNsUGlwZVNuaXBwZXQsXG4gICAgICAgICAgICB2Y2xTeW50aDogb3B0aW9ucy52Y2xTeW50aFNuaXBwZXQsXG4gICAgICAgICAgICB2Y2xQdXJnZTogb3B0aW9ucy52Y2xQdXJnZVNuaXBwZXQsXG4gICAgICAgICAgICB2Y2xIYXNoOiBvcHRpb25zLnZjbEhhc2hTbmlwcGV0LFxuICAgICAgICAgICAgdmNsSW5pdDogb3B0aW9ucy52Y2xJbml0U25pcHBldCxcbiAgICAgICAgICAgIHZjbEZpbmk6IG9wdGlvbnMudmNsRmluaVNuaXBwZXQsXG4gICAgICAgICAgICB2Y2xCYWNrZW5kRmV0Y2g6IG9wdGlvbnMudmNsQmFja2VuZEZldGNoU25pcHBldCxcbiAgICAgICAgICAgIHZjbEJhY2tlbmRFcnJvcjogb3B0aW9ucy52Y2xCYWNrZW5kRXJyb3JTbmlwcGV0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlc291cmNlczoge1xuICAgICAgICAgIHJlcXVlc3RzOiB7XG4gICAgICAgICAgICBjcHU6IFZpbnlsQ2FjaGVTcGVjUmVzb3VyY2VzUmVxdWVzdHMuZnJvbVN0cmluZyhvcHRpb25zLnJlcXVlc3RDcHUgPz8gJzEwMG0nKSxcbiAgICAgICAgICAgIG1lbW9yeTogVmlueWxDYWNoZVNwZWNSZXNvdXJjZXNSZXF1ZXN0cy5mcm9tU3RyaW5nKG9wdGlvbnMucmVxdWVzdE1lbW9yeSA/PyAnMjU2TWknKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxpbWl0czoge1xuICAgICAgICAgICAgY3B1OiBWaW55bENhY2hlU3BlY1Jlc291cmNlc0xpbWl0cy5mcm9tU3RyaW5nKG9wdGlvbnMubGltaXRDcHUgPz8gJzUwMG0nKSxcbiAgICAgICAgICAgIG1lbW9yeTogVmlueWxDYWNoZVNwZWNSZXNvdXJjZXNMaW1pdHMuZnJvbVN0cmluZyhvcHRpb25zLmxpbWl0TWVtb3J5ID8/ICc1MTJNaScpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGludmFsaWRhdGlvbjogaW52YWxpZGF0aW9uID8ge1xuICAgICAgICAgIHB1cmdlOiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBiYW46IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIHhrZXk6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICB9IDogdW5kZWZpbmVkLFxuICAgICAgICBtb25pdG9yaW5nOiBtb25pdG9yaW5nID8ge1xuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgc2VydmljZU1vbml0b3I6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICB9IDogdW5kZWZpbmVkLFxuICAgICAgICBwb2Q6IChvcHRpb25zLnRvbGVyYXRpb25zPy5sZW5ndGggfHwgb3B0aW9ucy5ub2RlU2VsZWN0b3IpID8ge1xuICAgICAgICAgIHRvbGVyYXRpb25zOiBvcHRpb25zLnRvbGVyYXRpb25zPy5tYXAodCA9PiAoe1xuICAgICAgICAgICAga2V5OiB0LmtleSxcbiAgICAgICAgICAgIG9wZXJhdG9yOiB0Lm9wZXJhdG9yLFxuICAgICAgICAgICAgdmFsdWU6IHQudmFsdWUsXG4gICAgICAgICAgICBlZmZlY3Q6IHQuZWZmZWN0LFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgICBub2RlU2VsZWN0b3I6IG9wdGlvbnMubm9kZVNlbGVjdG9yLFxuICAgICAgICB9IDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIFRoZSBvcGVyYXRvciBjcmVhdGVzIGEgc2VydmljZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgdGhlIFZpbnlsQ2FjaGUgcmVzb3VyY2VcbiAgICB0aGlzLnZpbnlsQ2FjaGVTZXJ2aWNlTmFtZSA9IE5hbWVzLnRvTGFiZWxWYWx1ZSh2aW55bENhY2hlKTtcbiAgfVxufVxuIl19
|
|
189
|
+
PloneVinylCache[_a] = { fqn: "@bluedynamics/cdk8s-plone.PloneVinylCache", version: "0.1.32" };
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlueWxjYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92aW55bGNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3QixpQ0FBOEI7QUFDOUIsMkNBQXVDO0FBQ3ZDLDJFQVV5QztBQTRXekM7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsc0JBQVM7SUFPNUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxPQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDO1FBQ2xELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO1FBRS9DLDZCQUE2QjtRQUM3QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQztRQUNoRCxJQUFJLFlBQXdDLENBQUM7UUFDN0MsUUFBUSxXQUFXLEVBQUUsQ0FBQztZQUNwQixLQUFLLGFBQWE7Z0JBQ2hCLFlBQVksR0FBRyxrREFBMEIsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDakUsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxZQUFZLEdBQUcsa0RBQTBCLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULFlBQVksR0FBRyxrREFBMEIsQ0FBQyxJQUFJLENBQUM7Z0JBQy9DLE1BQU07WUFDUjtnQkFDRSxZQUFZLEdBQUcsa0RBQTBCLENBQUMsS0FBSyxDQUFDO1FBQ3BELENBQUM7UUFFRCxxRkFBcUY7UUFDckYsMkVBQTJFO1FBQzNFLElBQUksU0FLUyxDQUFDO1FBQ2QsSUFBSSxZQUFZLEtBQUssa0RB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QUU7b0JBQ3hCLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7b0JBQ3RCLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7aUJBQ3hCLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxJQUFJO29CQUNiLGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7aUJBQ2xDLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxNQUFNLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDM0QsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDMUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHO3dCQUNWLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTt3QkFDcEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3dCQUNkLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTTtxQkFDakIsQ0FBQyxDQUFDO29CQUNILFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtpQkFDbkMsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUNkO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsK0VBQStFO1FBQy9FLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxhQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlELENBQUM7O0FBNUxILDBDQTZMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBOYW1lcyB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtcbiAgVmlueWxDYWNoZSxcbiAgVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkQnksXG4gIFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEhlYWx0aHksXG4gIFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlLFxuICBWaW55bENhY2hlU3BlY1Jlc291cmNlc0xpbWl0cyxcbiAgVmlueWxDYWNoZVNwZWNSZXNvdXJjZXNSZXF1ZXN0cyxcbiAgVmlueWxDYWNoZVNwZWNTdG9yYWdlLFxuICBWaW55bENhY2hlU3BlY1N0b3JhZ2VTaXplLFxuICBWaW55bENhY2hlU3BlY1N0b3JhZ2VUeXBlLFxufSBmcm9tICcuL2ltcG9ydHMvdmlueWwuYmx1ZWR5bmFtaWNzLmV1JztcbmltcG9ydCB7IFBsb25lIH0gZnJvbSAnLi9wbG9uZSc7XG5cbi8qKlxuICogSGVhbHRoIHByb2JlIGNvbmZpZ3VyYXRpb24gZm9yIGEgVmlueWxDYWNoZSBiYWNrZW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpbnlsQ2FjaGVCYWNrZW5kUHJvYmUge1xuICAvKipcbiAgICogVVJMIHRvIHByb2JlLlxuICAgKiBAZGVmYXVsdCAnLydcbiAgICovXG4gIHJlYWRvbmx5IHVybD86IHN0cmluZztcblxuICAvKipcbiAgICogSG93IG9mdGVuIHRvIHByb2JlIHRoZSBiYWNrZW5kLlxuICAgKiBAZGVmYXVsdCAnNXMnXG4gICAqL1xuICByZWFkb25seSBpbnRlcnZhbD86IHN0cmluZztcblxuICAvKipcbiAgICogTWF4aW11bSB0aW1lIHRvIHdhaXQgZm9yIGEgcHJvYmUgcmVzcG9uc2UuXG4gICAqIEBkZWZhdWx0ICcycydcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBtb3N0IHJlY2VudCBwcm9iZXMgdG8gY29uc2lkZXIuXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqL1xuICByZWFkb25seSB3aW5kb3c/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gc3VjY2Vzc2Z1bCBwcm9iZXMgd2l0aGluIHdpbmRvdyBmb3IgaGVhbHRoeSBzdGF0dXMuXG4gICAqIEBkZWZhdWx0IDhcbiAgICovXG4gIHJlYWRvbmx5IHRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogRXhwZWN0ZWQgSFRUUCByZXNwb25zZSBzdGF0dXMgY29kZS5cbiAgICogQGRlZmF1bHQgMjAwXG4gICAqL1xuICByZWFkb25seSBleHBlY3RlZFJlc3BvbnNlPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEFuIGFkZGl0aW9uYWwgYmFja2VuZCBmb3IgdGhlIFZpbnlsQ2FjaGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlueWxDYWNoZUJhY2tlbmQge1xuICAvKipcbiAgICogVkNMIGlkZW50aWZpZXIgZm9yIHRoaXMgYmFja2VuZC4gTXVzdCBtYXRjaCBeW2EtekEtWl1bYS16QS1aMC05X10qJC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogS3ViZXJuZXRlcyBTZXJ2aWNlIG5hbWUgdG8gdXNlIGFzIGJhY2tlbmQuXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQb3J0IHRvIHVzZSBmb3IgdGhpcyBiYWNrZW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBIZWFsdGggcHJvYmUgY29uZmlndXJhdGlvbi5cbiAgICogQGRlZmF1bHQgLSBubyBwcm9iZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvYmU/OiBWaW55bENhY2hlQmFja2VuZFByb2JlO1xuXG4gIC8qKlxuICAgKiBSZWxhdGl2ZSB3ZWlnaHQgZm9yIHRoZSBkaXJlY3Rvci4gMCBtZWFucyBzdGFuZGJ5LlxuICAgKiBAZGVmYXVsdCAtIG9wZXJhdG9yIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IHdlaWdodD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIFZhcm5pc2ggc3RvcmFnZSBiYWNrZW5kIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogTWFwcyB0byBgc3BlYy5zdG9yYWdlW11gIG9uIHRoZSBWaW55bENhY2hlIENSRC4gVGhlIG9wZXJhdG9yIGVtaXRzIG9uZVxuICogYC1zIDxuYW1lPj08dHlwZT4sPG9wdGlvbnM+YCBhcmd1bWVudCBwZXIgZW50cnkgdG8gdmFybmlzaGQuXG4gKlxuICogV2l0aG91dCBhbnkgc3RvcmFnZSBlbnRyeSB0aGUgb3BlcmF0b3IgZmFsbHMgYmFjayB0byB0aGUgdmFybmlzaGQgZGVmYXVsdFxuICogKH4xMDAgTUIgbWFsbG9jKSwgd2hpY2ggaXMgYWxtb3N0IGFsd2F5cyB0b28gc21hbGwgZm9yIHJlYWwgd29ya2xvYWRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpbnlsQ2FjaGVTdG9yYWdlIHtcbiAgLyoqXG4gICAqIEludGVybmFsIHN0b3JhZ2UgaWRlbnRpZmllciB1c2VkIGluIHRoZSB2YXJuaXNoZCBgLXNgIGFyZ3VtZW50LlxuICAgKiBNdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIFZpbnlsQ2FjaGUgYW5kIG1hdGNoIGBeW2EtekEtWl1bYS16QS1aMC05X10qJGAuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN0b3JhZ2UgYmFja2VuZCB0eXBlLiBPbmx5IFwibWFsbG9jXCIgYW5kIFwiZmlsZVwiIGFyZSBwZXJtaXR0ZWQgYnkgdGhlXG4gICAqIGFkbWlzc2lvbiB3ZWJob29rLlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogJ21hbGxvYycgfCAnZmlsZSc7XG5cbiAgLyoqXG4gICAqIFN0b3JhZ2UgYWxsb2NhdGlvbiBhcyBhIEt1YmVybmV0ZXMgcmVzb3VyY2UgcXVhbnRpdHkgKGUuZy4gXCIxR2lcIiwgXCI1MDBNXCIpLlxuICAgKiBSZXF1aXJlZCBmb3IgbWFsbG9jOyByZXF1aXJlZCBmb3IgZmlsZS5cbiAgICogQGRlZmF1bHQgLSByZXF1aXJlZCBmb3IgYm90aCBtYWxsb2MgYW5kIGZpbGVcbiAgICovXG4gIHJlYWRvbmx5IHNpemU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpbGVzeXN0ZW0gcGF0aCBmb3IgZmlsZS10eXBlIHN0b3JhZ2UuIElnbm9yZWQgZm9yIG1hbGxvYy5cbiAgICogQGRlZmF1bHQgLSByZXF1aXJlZCBmb3IgdHlwZSBcImZpbGVcIlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIEt1YmVybmV0ZXMgdG9sZXJhdGlvbiBmb3IgdGhlIFZhcm5pc2ggcG9kcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaW55bENhY2hlVG9sZXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgdGFpbnQga2V5IHRvIHRvbGVyYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRvciAoRXF1YWwgb3IgRXhpc3RzKS5cbiAgICogQGRlZmF1bHQgJ0VxdWFsJ1xuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0b3I/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWludCB2YWx1ZSB0byBtYXRjaCAod2hlbiBvcGVyYXRvciBpcyBFcXVhbCkuXG4gICAqIEBkZWZhdWx0IC0gbm8gdmFsdWVcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFpbnQgZWZmZWN0IHRvIHRvbGVyYXRlIChOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlLCBOb0V4ZWN1dGUpLlxuICAgKiBAZGVmYXVsdCAtIHRvbGVyYXRlIGFsbCBlZmZlY3RzXG4gICAqL1xuICByZWFkb25seSBlZmZlY3Q/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBQbG9uZVZpbnlsQ2FjaGUgKGNsb3VkLXZpbnlsIG9wZXJhdG9yKS5cbiAqXG4gKiBDcmVhdGVzIGEgVmlueWxDYWNoZSBjdXN0b20gcmVzb3VyY2UgdGhhdCB0aGUgY2xvdWQtdmlueWwgb3BlcmF0b3JcbiAqIHJlY29uY2lsZXMgaW50byBhIFZhcm5pc2ggQ2FjaGUgY2x1c3RlciB3aXRoIGFnZW50LWJhc2VkIFZDTCBkZWxpdmVyeS5cbiAqXG4gKiBSZXF1aXJlcyB0aGUgY2xvdWQtdmlueWwgb3BlcmF0b3IgdG8gYmUgaW5zdGFsbGVkIGluIHRoZSBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb25lVmlueWxDYWNoZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIFBsb25lIGNvbnN0cnVjdCB0byBhdHRhY2ggdGhlIGNhY2hlIHRvLlxuICAgKiBCYWNrZW5kcyBhcmUgYXV0by1jb25maWd1cmVkIGZyb20gdGhlIFBsb25lIHNlcnZpY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGxvbmU6IFBsb25lO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGJhY2tlbmRzIHRvIGFkZCBhZnRlciB0aGUgYXV0by1nZW5lcmF0ZWQgUGxvbmUgYmFja2VuZHMuXG4gICAqIFVzZXMgdGhlIHNhbWUgYmFja2VuZCB0eXBlIHN0cnVjdHVyZSBhcyB0aGUgVmlueWxDYWNoZSBDUkQuXG4gICAqIEBkZWZhdWx0IC0gbm8gZXh0cmEgYmFja2VuZHNcbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhQmFja2VuZHM/OiBWaW55bENhY2hlQmFja2VuZFtdO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgVmFybmlzaCBwb2QgcmVwbGljYXMuXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2FzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDUFUgcmVxdWVzdCBmb3IgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAnMTAwbSdcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RDcHU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1lbW9yeSByZXF1ZXN0IGZvciBWYXJuaXNoIHBvZHMuXG4gICAqIEBkZWZhdWx0ICcyNTZNaSdcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RNZW1vcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENQVSBsaW1pdCBmb3IgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAnNTAwbSdcbiAgICovXG4gIHJlYWRvbmx5IGxpbWl0Q3B1Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNZW1vcnkgbGltaXQgZm9yIFZhcm5pc2ggcG9kcy5cbiAgICogQGRlZmF1bHQgJzUxMk1pJ1xuICAgKi9cbiAgcmVhZG9ubHkgbGltaXRNZW1vcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZhcm5pc2ggc3RvcmFnZSBiYWNrZW5kcyAoYHNwZWMuc3RvcmFnZWApLlxuICAgKlxuICAgKiBFYWNoIGVudHJ5IGJlY29tZXMgYSBgLXMgPG5hbWU+PTx0eXBlPiw8b3B0aW9ucz5gIGFyZ3VtZW50IHRvIHZhcm5pc2hkLlxuICAgKiBJZiBvbWl0dGVkLCB0aGUgb3BlcmF0b3Igc2hpcHMgdmFybmlzaGQgd2l0aCBpdHMgc3RvY2sgZGVmYXVsdCAofjEwMCBNQlxuICAgKiBtYWxsb2MpIOKAlCBhbG1vc3QgYWx3YXlzIHRvbyBzbWFsbC4gU2V0IGFuIGV4cGxpY2l0IG1hbGxvYyBzaXplIGF0IGxlYXN0XG4gICAqIG1hdGNoaW5nIHRoZSBwb2QncyBtZW1vcnkgcmVxdWVzdCB0byB1c2UgdGhlIGFsbG9jYXRlZCBtZW1vcnkgZm9yIGNhY2hpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3RvcmFnZSBjb25maWd1cmVkOyBvcGVyYXRvciB1c2VzIHZhcm5pc2hkIGRlZmF1bHQgKH4xMDBNQiBtYWxsb2MpXG4gICAqIEBleGFtcGxlXG4gICAqIHN0b3JhZ2U6IFt7IG5hbWU6ICdzMCcsIHR5cGU6ICdtYWxsb2MnLCBzaXplOiAnMUdpJyB9XVxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmFnZT86IFZpbnlsQ2FjaGVTdG9yYWdlW107XG5cbiAgLyoqXG4gICAqIERpcmVjdG9yIHR5cGUgZm9yIGxvYWQgZGlzdHJpYnV0aW9uLlxuICAgKiBAZGVmYXVsdCAnc2hhcmQnXG4gICAqL1xuICByZWFkb25seSBkaXJlY3Rvcj86IHN0cmluZztcblxuICAvKipcbiAgICogU2hhcmQgZGlyZWN0b3I6IHdoYXQgdmFsdWUgaXMgaGFzaGVkIGZvciBzaGFyZCBzZWxlY3Rpb24uXG4gICAqIFwiSEFTSFwiIHVzZXMgdGhlIFZhcm5pc2ggaGFzaCAoZGVmYXVsdCk7IFwiVVJMXCIgdXNlcyB0aGUgcmVxdWVzdCBVUkwuXG4gICAqIE9ubHkgYXBwbGllZCB3aGVuIGRpcmVjdG9yIGlzIFwic2hhcmRcIi5cbiAgICogUmVxdWlyZXMgY2xvdWQtdmlueWwgb3BlcmF0b3IgPj0gMC40LjIuXG4gICAqIEBkZWZhdWx0IC0gb3BlcmF0b3IgZGVmYXVsdCAoXCJIQVNIXCIpXG4gICAqL1xuICByZWFkb25seSBzaGFyZEJ5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaGFyZCBkaXJlY3Rvcjogd2hpY2ggYmFja2VuZHMgdGhlIGRpcmVjdG9yIGNvbnNpZGVycyB3aGVuIHNlbGVjdGluZyBhIHNoYXJkLlxuICAgKiBcIkNIT1NFTlwiIChkZWZhdWx0KSBvbmx5IGNvbnNpZGVycyB0aGUgY2hvc2VuIGJhY2tlbmQgaGVhbHRoeTsgXCJBTExcIiByZXF1aXJlcyBhbGxcbiAgICogYmFja2VuZHMgdG8gYmUgaGVhbHRoeS5cbiAgICogT25seSBhcHBsaWVkIHdoZW4gZGlyZWN0b3IgaXMgXCJzaGFyZFwiLlxuICAgKiBSZXF1aXJlcyBjbG91ZC12aW55bCBvcGVyYXRvciA+PSAwLjQuMi5cbiAgICogQGRlZmF1bHQgLSBvcGVyYXRvciBkZWZhdWx0IChcIkNIT1NFTlwiKVxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmRIZWFsdGh5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaGFyZCBkaXJlY3RvcjogdGltZSBhZnRlciBhZGRpbmcgYSBiYWNrZW5kIGJlZm9yZSBpdCByZWNlaXZlcyBpdHMgZnVsbCBzaGFyZSBvZlxuICAgKiB0cmFmZmljLCBwcmV2ZW50aW5nIHRodW5kZXJpbmctaGVyZC5cbiAgICogT25seSBhcHBsaWVkIHdoZW4gZGlyZWN0b3IgaXMgXCJzaGFyZFwiLlxuICAgKiBAZGVmYXVsdCAtIG9wZXJhdG9yIGRlZmF1bHQgKFwiMzBzXCIpXG4gICAqL1xuICByZWFkb25seSBzaGFyZFJhbXB1cD86IHN0cmluZztcblxuICAvKipcbiAgICogU2hhcmQgZGlyZWN0b3I6IG51bWJlciBvZiBLZXRhbWEgcmVwbGljYXMgcGVyIGJhY2tlbmQgaW4gdGhlIGhhc2ggcmluZy5cbiAgICogT25seSBhcHBsaWVkIHdoZW4gZGlyZWN0b3IgaXMgXCJzaGFyZFwiLlxuICAgKiBAZGVmYXVsdCAtIG9wZXJhdG9yIGRlZmF1bHQgKDY3KVxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmRSZXBsaWNhcz86IG51bWJlcjtcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfcmVjdiBzdWJyb3V0aW5lLlxuICAgKiBSZXBsYWNlcyB0aGUgZGVmYXVsdCBQbG9uZSByZWN2IHNuaXBwZXQuXG4gICAqIEBkZWZhdWx0IC0gdXNlcyBidWlsdC1pbiBwbG9uZS12aW55bC1yZWN2LnZjbFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsUmVjdlNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2JhY2tlbmRfcmVzcG9uc2Ugc3Vicm91dGluZS5cbiAgICogUmVwbGFjZXMgdGhlIGRlZmF1bHQgUGxvbmUgYmFja2VuZF9yZXNwb25zZSBzbmlwcGV0LlxuICAgKiBAZGVmYXVsdCAtIHVzZXMgYnVpbHQtaW4gcGxvbmUtdmlueWwtYmFja2VuZC1yZXNwb25zZS52Y2xcbiAgICovXG4gIHJlYWRvbmx5IHZjbEJhY2tlbmRSZXNwb25zZVNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBjYWNoZSBpbnZhbGlkYXRpb24gKFBVUkdFLCBCQU4sIHhrZXkpLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBpbnZhbGlkYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgUHJvbWV0aGV1cyBtb25pdG9yaW5nIChtZXRyaWNzICsgU2VydmljZU1vbml0b3IpLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvcmluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbnRhaW5lciBpbWFnZSBmb3IgdGhlIFZhcm5pc2ggcG9kcy5cbiAgICogQGRlZmF1bHQgJ3Zhcm5pc2g6Ny42J1xuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRvbGVyYXRpb25zIGZvciB0aGUgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAtIG5vIHRvbGVyYXRpb25zXG4gICAqL1xuICByZWFkb25seSB0b2xlcmF0aW9ucz86IFZpbnlsQ2FjaGVUb2xlcmF0aW9uW107XG5cbiAgLyoqXG4gICAqIE5vZGUgc2VsZWN0b3IgbGFiZWxzIGZvciB0aGUgVmFybmlzaCBwb2RzLlxuICAgKiBDb25zdHJhaW5zIHBvZHMgdG8gbm9kZXMgbWF0Y2hpbmcgYWxsIHNwZWNpZmllZCBsYWJlbHMuXG4gICAqIEBkZWZhdWx0IC0gbm8gbm9kZSBzZWxlY3RvclxuICAgKi9cbiAgcmVhZG9ubHkgbm9kZVNlbGVjdG9yPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfZGVsaXZlciBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbERlbGl2ZXJTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9oaXQgc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xIaXRTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9taXNzIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsTWlzc1NuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX3Bhc3Mgc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xQYXNzU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfcGlwZSBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbFBpcGVTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9zeW50aCBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbFN5bnRoU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfcHVyZ2Ugc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xQdXJnZVNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2hhc2ggc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xIYXNoU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfaW5pdCBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbEluaXRTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9maW5pIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsRmluaVNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2JhY2tlbmRfZmV0Y2ggc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xCYWNrZW5kRmV0Y2hTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9iYWNrZW5kX2Vycm9yIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsQmFja2VuZEVycm9yU25pcHBldD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQbG9uZVZpbnlsQ2FjaGUgY29uc3RydWN0IGZvciBkZXBsb3lpbmcgVmFybmlzaCBDYWNoZSB2aWEgY2xvdWQtdmlueWwgb3BlcmF0b3IuXG4gKlxuICogQ3JlYXRlcyBhIFZpbnlsQ2FjaGUgY3VzdG9tIHJlc291cmNlIHdpdGggUGxvbmUgYmFja2VuZC9mcm9udGVuZCBzZXJ2aWNlc1xuICogYXV0by1jb25maWd1cmVkIGFzIGJhY2tlbmRzLiBUaGUgY2xvdWQtdmlueWwgb3BlcmF0b3IgbWFuYWdlcyB0aGUgZnVsbFxuICogVmFybmlzaCBsaWZlY3ljbGUgaW5jbHVkaW5nIFZDTCBnZW5lcmF0aW9uLCBhZ2VudCBkZWxpdmVyeSwgYW5kIG1vbml0b3JpbmcuXG4gKlxuICogUmVxdWlyZXMgdGhlIGNsb3VkLXZpbnlsIG9wZXJhdG9yIHRvIGJlIGluc3RhbGxlZCBpbiB0aGUgY2x1c3Rlci5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcGxvbmUgPSBuZXcgUGxvbmUoY2hhcnQsICdwbG9uZScpO1xuICogY29uc3QgY2FjaGUgPSBuZXcgUGxvbmVWaW55bENhY2hlKGNoYXJ0LCAnY2FjaGUnLCB7XG4gKiAgIHBsb25lOiBwbG9uZSxcbiAqICAgcmVwbGljYXM6IDIsXG4gKiB9KTtcbiAqIC8vIFVzZSBjYWNoZS52aW55bENhY2hlU2VydmljZU5hbWUgZm9yIEluZ3Jlc3NSb3V0ZVxuICovXG5leHBvcnQgY2xhc3MgUGxvbmVWaW55bENhY2hlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIFZpbnlsQ2FjaGUgc2VydmljZSBjcmVhdGVkIGJ5IHRoZSBvcGVyYXRvci5cbiAgICogVXNlIHRoaXMgdG8gcmVmZXJlbmNlIHRoZSBjYWNoZSBzZXJ2aWNlIGZyb20gaW5ncmVzcyBvciBvdGhlciBjb25zdHJ1Y3RzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZpbnlsQ2FjaGVTZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IFBsb25lVmlueWxDYWNoZU9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgcmVwbGljYXMgPSBvcHRpb25zLnJlcGxpY2FzID8/IDI7XG4gICAgY29uc3QgaW52YWxpZGF0aW9uID0gb3B0aW9ucy5pbnZhbGlkYXRpb24gPz8gdHJ1ZTtcbiAgICBjb25zdCBtb25pdG9yaW5nID0gb3B0aW9ucy5tb25pdG9yaW5nID8/IGZhbHNlO1xuXG4gICAgLy8gUmVzb2x2ZSBkaXJlY3RvciB0eXBlIGVudW1cbiAgICBjb25zdCBkaXJlY3RvclN0ciA9IG9wdGlvbnMuZGlyZWN0b3IgPz8gJ3NoYXJkJztcbiAgICBsZXQgZGlyZWN0b3JUeXBlOiBWaW55bENhY2hlU3BlY0RpcmVjdG9yVHlwZTtcbiAgICBzd2l0Y2ggKGRpcmVjdG9yU3RyKSB7XG4gICAgICBjYXNlICdyb3VuZF9yb2Jpbic6XG4gICAgICAgIGRpcmVjdG9yVHlwZSA9IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlLlJPVU5EX1VOREVSU0NPUkVfUk9CSU47XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmFuZG9tJzpcbiAgICAgICAgZGlyZWN0b3JUeXBlID0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclR5cGUuUkFORE9NO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2hhc2gnOlxuICAgICAgICBkaXJlY3RvclR5cGUgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yVHlwZS5IQVNIO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGRpcmVjdG9yVHlwZSA9IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlLlNIQVJEO1xuICAgIH1cblxuICAgIC8vIFNoYXJkIGRpcmVjdG9yIHR1bmluZzogb25seSBob25vcmVkIGJ5IHRoZSBvcGVyYXRvciB3aGVuIGRpcmVjdG9yIHR5cGUgaXMgXCJzaGFyZFwiLlxuICAgIC8vIEVtaXQgdGhlIHNoYXJkIGJsb2NrIG9ubHkgZm9yIHNoYXJkIGRpcmVjdG9ycyBzbyBtYW5pZmVzdHMgc3RheSBtaW5pbWFsLlxuICAgIGxldCBzaGFyZFNwZWM6IHtcbiAgICAgIGJ5PzogVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkQnk7XG4gICAgICBoZWFsdGh5PzogVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkSGVhbHRoeTtcbiAgICAgIHJhbXB1cD86IHN0cmluZztcbiAgICAgIHJlcGxpY2FzPzogbnVtYmVyO1xuICAgIH0gfCB1bmRlZmluZWQ7XG4gICAgaWYgKGRpcmVjdG9yVHlwZSA9PT0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclR5cGUuU0hBUkQgJiZcbiAgICAgICAgKG9wdGlvbnMuc2hhcmRCeSB8fCBvcHRpb25zLnNoYXJkSGVhbHRoeSB8fCBvcHRpb25zLnNoYXJkUmFtcHVwIHx8IG9wdGlvbnMuc2hhcmRSZXBsaWNhcyAhPT0gdW5kZWZpbmVkKSkge1xuICAgICAgbGV0IHNoYXJkQnk6IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEJ5IHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKG9wdGlvbnMuc2hhcmRCeSA9PT0gJ1VSTCcpIHNoYXJkQnkgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yU2hhcmRCeS5VUkw7XG4gICAgICBlbHNlIGlmIChvcHRpb25zLnNoYXJkQnkgPT09ICdIQVNIJykgc2hhcmRCeSA9IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEJ5LkhBU0g7XG5cbiAgICAgIGxldCBzaGFyZEhlYWx0aHk6IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEhlYWx0aHkgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAob3B0aW9ucy5zaGFyZEhlYWx0aHkgPT09ICdBTEwnKSBzaGFyZEhlYWx0aHkgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yU2hhcmRIZWFsdGh5LkFMTDtcbiAgICAgIGVsc2UgaWYgKG9wdGlvbnMuc2hhcmRIZWFsdGh5ID09PSAnQ0hPU0VOJykgc2hhcmRIZWFsdGh5ID0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkSGVhbHRoeS5DSE9TRU47XG5cbiAgICAgIHNoYXJkU3BlYyA9IHtcbiAgICAgICAgYnk6IHNoYXJkQnksXG4gICAgICAgIGhlYWx0aHk6IHNoYXJkSGVhbHRoeSxcbiAgICAgICAgcmFtcHVwOiBvcHRpb25zLnNoYXJkUmFtcHVwLFxuICAgICAgICByZXBsaWNhczogb3B0aW9ucy5zaGFyZFJlcGxpY2FzLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBMb2FkIGRlZmF1bHQgVkNMIHNuaXBwZXRzXG4gICAgY29uc3QgdmNsUmVjdiA9IG9wdGlvbnMudmNsUmVjdlNuaXBwZXQgPz9cbiAgICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnY29uZmlnJywgJ3Bsb25lLXZpbnlsLXJlY3YudmNsJyksICd1dGY4Jyk7XG4gICAgY29uc3QgdmNsQmFja2VuZFJlc3BvbnNlID0gb3B0aW9ucy52Y2xCYWNrZW5kUmVzcG9uc2VTbmlwcGV0ID8/XG4gICAgICBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2NvbmZpZycsICdwbG9uZS12aW55bC1iYWNrZW5kLXJlc3BvbnNlLnZjbCcpLCAndXRmOCcpO1xuXG4gICAgLy8gQnVpbGQgYmFja2VuZHMgZnJvbSBQbG9uZSBzZXJ2aWNlc1xuICAgIGNvbnN0IGJhY2tlbmRzOiBBcnJheTx7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBzZXJ2aWNlUmVmOiB7IG5hbWU6IHN0cmluZyB9O1xuICAgICAgcG9ydDogbnVtYmVyO1xuICAgICAgcHJvYmU/OiB7XG4gICAgICAgIHVybDogc3RyaW5nO1xuICAgICAgICBpbnRlcnZhbDogc3RyaW5nO1xuICAgICAgICB0aW1lb3V0OiBzdHJpbmc7XG4gICAgICAgIHdpbmRvdzogbnVtYmVyO1xuICAgICAgICB0aHJlc2hvbGQ6IG51bWJlcjtcbiAgICAgIH07XG4gICAgICB3ZWlnaHQ/OiBudW1iZXI7XG4gICAgfT4gPSBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdwbG9uZV9iYWNrZW5kJyxcbiAgICAgICAgc2VydmljZVJlZjogeyBuYW1lOiBvcHRpb25zLnBsb25lLmJhY2tlbmRTZXJ2aWNlTmFtZSB9LFxuICAgICAgICBwb3J0OiA4MDgwLFxuICAgICAgICBwcm9iZToge1xuICAgICAgICAgIHVybDogJy9vaycsXG4gICAgICAgICAgaW50ZXJ2YWw6ICc1cycsXG4gICAgICAgICAgdGltZW91dDogJzJzJyxcbiAgICAgICAgICB3aW5kb3c6IDEwLFxuICAgICAgICAgIHRocmVzaG9sZDogOCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGlmIChvcHRpb25zLnBsb25lLmZyb250ZW5kU2VydmljZU5hbWUpIHtcbiAgICAgIGJhY2tlbmRzLnB1c2goe1xuICAgICAgICBuYW1lOiAncGxvbmVfZnJvbnRlbmQnLFxuICAgICAgICBzZXJ2aWNlUmVmOiB7IG5hbWU6IG9wdGlvbnMucGxvbmUuZnJvbnRlbmRTZXJ2aWNlTmFtZSB9LFxuICAgICAgICBwb3J0OiAzMDAwLFxuICAgICAgICBwcm9iZToge1xuICAgICAgICAgIHVybDogJy8nLFxuICAgICAgICAgIGludGVydmFsOiAnNXMnLFxuICAgICAgICAgIHRpbWVvdXQ6ICcycycsXG4gICAgICAgICAgd2luZG93OiAxMCxcbiAgICAgICAgICB0aHJlc2hvbGQ6IDgsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5leHRyYUJhY2tlbmRzKSB7XG4gICAgICBmb3IgKGNvbnN0IGViIG9mIG9wdGlvbnMuZXh0cmFCYWNrZW5kcykge1xuICAgICAgICBiYWNrZW5kcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBlYi5uYW1lLFxuICAgICAgICAgIHNlcnZpY2VSZWY6IHsgbmFtZTogZWIuc2VydmljZU5hbWUgfSxcbiAgICAgICAgICBwb3J0OiBlYi5wb3J0LFxuICAgICAgICAgIHByb2JlOiBlYi5wcm9iZSA/IHtcbiAgICAgICAgICAgIHVybDogZWIucHJvYmUudXJsID8/ICcvJyxcbiAgICAgICAgICAgIGludGVydmFsOiBlYi5wcm9iZS5pbnRlcnZhbCA/PyAnNXMnLFxuICAgICAgICAgICAgdGltZW91dDogZWIucHJvYmUudGltZW91dCA/PyAnMnMnLFxuICAgICAgICAgICAgd2luZG93OiBlYi5wcm9iZS53aW5kb3cgPz8gMTAsXG4gICAgICAgICAgICB0aHJlc2hvbGQ6IGViLnByb2JlLnRocmVzaG9sZCA/PyA4LFxuICAgICAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHN0b3JhZ2U6IFZpbnlsQ2FjaGVTcGVjU3RvcmFnZVtdIHwgdW5kZWZpbmVkID0gb3B0aW9ucy5zdG9yYWdlPy5tYXAocyA9PiAoe1xuICAgICAgbmFtZTogcy5uYW1lLFxuICAgICAgdHlwZTogcy50eXBlID09PSAnZmlsZScgPyBWaW55bENhY2hlU3BlY1N0b3JhZ2VUeXBlLkZJTEUgOiBWaW55bENhY2hlU3BlY1N0b3JhZ2VUeXBlLk1BTExPQyxcbiAgICAgIHNpemU6IHMuc2l6ZSAhPT0gdW5kZWZpbmVkID8gVmlueWxDYWNoZVNwZWNTdG9yYWdlU2l6ZS5mcm9tU3RyaW5nKHMuc2l6ZSkgOiB1bmRlZmluZWQsXG4gICAgICBwYXRoOiBzLnBhdGgsXG4gICAgfSkpO1xuXG4gICAgY29uc3QgdmlueWxDYWNoZSA9IG5ldyBWaW55bENhY2hlKHRoaXMsICd2aW55bGNhY2hlJywge1xuICAgICAgc3BlYzoge1xuICAgICAgICByZXBsaWNhcyxcbiAgICAgICAgaW1hZ2U6IG9wdGlvbnMuaW1hZ2UgPz8gJ3Zhcm5pc2g6Ny42JyxcbiAgICAgICAgYmFja2VuZHMsXG4gICAgICAgIGRpcmVjdG9yOiB7IHR5cGU6IGRpcmVjdG9yVHlwZSwgc2hhcmQ6IHNoYXJkU3BlYyB9LFxuICAgICAgICBzdG9yYWdlLFxuICAgICAgICB2Y2w6IHtcbiAgICAgICAgICBzbmlwcGV0czoge1xuICAgICAgICAgICAgdmNsUmVjdjogdmNsUmVjdixcbiAgICAgICAgICAgIHZjbEJhY2tlbmRSZXNwb25zZTogdmNsQmFja2VuZFJlc3BvbnNlLFxuICAgICAgICAgICAgdmNsRGVsaXZlcjogb3B0aW9ucy52Y2xEZWxpdmVyU25pcHBldCxcbiAgICAgICAgICAgIHZjbEhpdDogb3B0aW9ucy52Y2xIaXRTbmlwcGV0LFxuICAgICAgICAgICAgdmNsTWlzczogb3B0aW9ucy52Y2xNaXNzU25pcHBldCxcbiAgICAgICAgICAgIHZjbFBhc3M6IG9wdGlvbnMudmNsUGFzc1NuaXBwZXQsXG4gICAgICAgICAgICB2Y2xQaXBlOiBvcHRpb25zLnZjbFBpcGVTbmlwcGV0LFxuICAgICAgICAgICAgdmNsU3ludGg6IG9wdGlvbnMudmNsU3ludGhTbmlwcGV0LFxuICAgICAgICAgICAgdmNsUHVyZ2U6IG9wdGlvbnMudmNsUHVyZ2VTbmlwcGV0LFxuICAgICAgICAgICAgdmNsSGFzaDogb3B0aW9ucy52Y2xIYXNoU25pcHBldCxcbiAgICAgICAgICAgIHZjbEluaXQ6IG9wdGlvbnMudmNsSW5pdFNuaXBwZXQsXG4gICAgICAgICAgICB2Y2xGaW5pOiBvcHRpb25zLnZjbEZpbmlTbmlwcGV0LFxuICAgICAgICAgICAgdmNsQmFja2VuZEZldGNoOiBvcHRpb25zLnZjbEJhY2tlbmRGZXRjaFNuaXBwZXQsXG4gICAgICAgICAgICB2Y2xCYWNrZW5kRXJyb3I6IG9wdGlvbnMudmNsQmFja2VuZEVycm9yU25pcHBldCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICByZXNvdXJjZXM6IHtcbiAgICAgICAgICByZXF1ZXN0czoge1xuICAgICAgICAgICAgY3B1OiBWaW55bENhY2hlU3BlY1Jlc291cmNlc1JlcXVlc3RzLmZyb21TdHJpbmcob3B0aW9ucy5yZXF1ZXN0Q3B1ID8/ICcxMDBtJyksXG4gICAgICAgICAgICBtZW1vcnk6IFZpbnlsQ2FjaGVTcGVjUmVzb3VyY2VzUmVxdWVzdHMuZnJvbVN0cmluZyhvcHRpb25zLnJlcXVlc3RNZW1vcnkgPz8gJzI1Nk1pJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsaW1pdHM6IHtcbiAgICAgICAgICAgIGNwdTogVmlueWxDYWNoZVNwZWNSZXNvdXJjZXNMaW1pdHMuZnJvbVN0cmluZyhvcHRpb25zLmxpbWl0Q3B1ID8/ICc1MDBtJyksXG4gICAgICAgICAgICBtZW1vcnk6IFZpbnlsQ2FjaGVTcGVjUmVzb3VyY2VzTGltaXRzLmZyb21TdHJpbmcob3B0aW9ucy5saW1pdE1lbW9yeSA/PyAnNTEyTWknKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBpbnZhbGlkYXRpb246IGludmFsaWRhdGlvbiA/IHtcbiAgICAgICAgICBwdXJnZTogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgYmFuOiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICB4a2V5OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICAgICAgbW9uaXRvcmluZzogbW9uaXRvcmluZyA/IHtcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHNlcnZpY2VNb25pdG9yOiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcG9kOiAob3B0aW9ucy50b2xlcmF0aW9ucz8ubGVuZ3RoIHx8IG9wdGlvbnMubm9kZVNlbGVjdG9yKSA/IHtcbiAgICAgICAgICB0b2xlcmF0aW9uczogb3B0aW9ucy50b2xlcmF0aW9ucz8ubWFwKHQgPT4gKHtcbiAgICAgICAgICAgIGtleTogdC5rZXksXG4gICAgICAgICAgICBvcGVyYXRvcjogdC5vcGVyYXRvcixcbiAgICAgICAgICAgIHZhbHVlOiB0LnZhbHVlLFxuICAgICAgICAgICAgZWZmZWN0OiB0LmVmZmVjdCxcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgbm9kZVNlbGVjdG9yOiBvcHRpb25zLm5vZGVTZWxlY3RvcixcbiAgICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBUaGUgb3BlcmF0b3IgY3JlYXRlcyBhIHNlcnZpY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIHRoZSBWaW55bENhY2hlIHJlc291cmNlXG4gICAgdGhpcy52aW55bENhY2hlU2VydmljZU5hbWUgPSBOYW1lcy50b0xhYmVsVmFsdWUodmlueWxDYWNoZSk7XG4gIH1cbn1cbiJdfQ==
|