@ruvector/ruvllm 2.5.6 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +282 -282
- package/bin/cli.js +1020 -1020
- package/dist/cjs/benchmarks/embedding-benchmark.js +1 -1
- package/dist/cjs/benchmarks/index.js +1 -1
- package/dist/cjs/benchmarks/model-comparison.js +1 -1
- package/dist/cjs/benchmarks/routing-benchmark.js +1 -1
- package/dist/cjs/contrastive.js +70 -70
- package/dist/cjs/engine.js +13 -13
- package/dist/cjs/export.js +31 -31
- package/dist/cjs/federated.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/intelligence.js +1 -1
- package/dist/cjs/lora.d.ts +11 -0
- package/dist/cjs/lora.d.ts.map +1 -1
- package/dist/cjs/lora.js +16 -1
- package/dist/cjs/models.js +1 -1
- package/dist/cjs/native.js +1 -1
- package/dist/cjs/session.js +1 -1
- package/dist/cjs/simd.js +1 -1
- package/dist/cjs/sona.js +1 -1
- package/dist/cjs/streaming.js +1 -1
- package/dist/cjs/training.d.ts +66 -8
- package/dist/cjs/training.d.ts.map +1 -1
- package/dist/cjs/training.js +145 -15
- package/dist/cjs/types.d.ts +7 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +1 -1
- package/dist/esm/benchmarks/embedding-benchmark.js +1 -1
- package/dist/esm/benchmarks/index.js +1 -1
- package/dist/esm/benchmarks/model-comparison.js +1 -1
- package/dist/esm/benchmarks/routing-benchmark.js +1 -1
- package/dist/esm/contrastive.js +70 -70
- package/dist/esm/engine.js +13 -13
- package/dist/esm/export.js +31 -31
- package/dist/esm/federated.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/intelligence.js +1 -1
- package/dist/esm/lora.d.ts +11 -0
- package/dist/esm/lora.d.ts.map +1 -1
- package/dist/esm/lora.js +16 -1
- package/dist/esm/models.js +1 -1
- package/dist/esm/native.js +1 -1
- package/dist/esm/session.js +1 -1
- package/dist/esm/simd.js +1 -1
- package/dist/esm/sona.js +1 -1
- package/dist/esm/streaming.js +1 -1
- package/dist/esm/training.d.ts +66 -8
- package/dist/esm/training.d.ts.map +1 -1
- package/dist/esm/training.js +145 -15
- package/dist/esm/types.d.ts +7 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +1 -1
- package/package.json +133 -133
- package/scripts/ensemble-model-compare.js +287 -287
- package/scripts/huggingface/README.md +537 -537
- package/scripts/huggingface/publish.sh +112 -112
- package/scripts/hybrid-model-compare.js +373 -373
- package/scripts/improved-model-compare.js +288 -288
- package/scripts/optimized-model-compare.js +364 -364
- package/scripts/real-model-compare.js +280 -280
- package/scripts/training/agentic-flow-capabilities.json +329 -329
- package/scripts/training/claude-code-synth.js +505 -505
- package/scripts/training/claude-flow-capabilities.json +1322 -1322
- package/scripts/training/claude-hard-negatives.js +222 -222
- package/scripts/training/contrastive-finetune.js +517 -517
- package/scripts/training/ecosystem-triplets.jsonl +1466 -1466
- package/scripts/training/generate-ecosystem-triplets.js +1324 -1324
- package/scripts/training/routing-dataset.js +634 -634
- package/scripts/training/ruvector-capabilities.json +798 -798
- package/scripts/training/validate-ecosystem.js +381 -381
- package/scripts/training/validation-results.json +22 -22
package/dist/cjs/training.js
CHANGED
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
*/
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
27
|
exports.TrainingFactory = exports.TrainingPipeline = exports.MetricsTracker = exports.LRScheduler = void 0;
|
|
28
|
+
const fs_1 = require("fs");
|
|
29
|
+
const path_1 = require("path");
|
|
28
30
|
const lora_1 = require("./lora");
|
|
29
31
|
const sona_1 = require("./sona");
|
|
30
32
|
/**
|
|
@@ -42,7 +44,18 @@ const DEFAULT_TRAINING_CONFIG = {
|
|
|
42
44
|
checkpointInterval: 1,
|
|
43
45
|
ewcLambda: 2000,
|
|
44
46
|
validationSplit: 0.1,
|
|
47
|
+
keepBestCheckpoint: '',
|
|
45
48
|
};
|
|
49
|
+
/**
|
|
50
|
+
* On-disk checkpoint envelope version.
|
|
51
|
+
*
|
|
52
|
+
* v1 — {format, version:1, epoch, step, loss, weights, timestamp}. No adapter
|
|
53
|
+
* geometry, so loadCheckpoint() could not detect a shape mismatch.
|
|
54
|
+
* v2 — adds {config:{inputDim, outputDim, rank}, pipelineConfig:{learningRate,
|
|
55
|
+
* batchSize}} so loadCheckpoint() can reject weights that don't fit the
|
|
56
|
+
* current adapter. v1 files still load (back-compat) with no shape check.
|
|
57
|
+
*/
|
|
58
|
+
const CHECKPOINT_FORMAT_VERSION = 2;
|
|
46
59
|
/**
|
|
47
60
|
* Learning Rate Scheduler
|
|
48
61
|
*/
|
|
@@ -205,6 +218,8 @@ class TrainingPipeline {
|
|
|
205
218
|
this.currentStep = 0;
|
|
206
219
|
this.bestValLoss = Infinity;
|
|
207
220
|
this.patienceCounter = 0;
|
|
221
|
+
/** Set by resumeFrom(); makes the next train() continue instead of restart. */
|
|
222
|
+
this.resumePending = false;
|
|
208
223
|
this.config = { ...DEFAULT_TRAINING_CONFIG, ...config };
|
|
209
224
|
this.adapter = adapter || new lora_1.LoraAdapter({ rank: 8 });
|
|
210
225
|
this.ewcManager = new sona_1.EwcManager(this.config.ewcLambda);
|
|
@@ -227,15 +242,34 @@ class TrainingPipeline {
|
|
|
227
242
|
}
|
|
228
243
|
}
|
|
229
244
|
/**
|
|
230
|
-
* Run training
|
|
245
|
+
* Run training.
|
|
246
|
+
*
|
|
247
|
+
* When {@link resumeFrom} primed the pipeline, this continues from the
|
|
248
|
+
* restored epoch (running the remaining epochs of `config.epochs`) and
|
|
249
|
+
* advances the LR scheduler to the restored step so the schedule is
|
|
250
|
+
* unbroken; metrics history is preserved. Without a resume the run is
|
|
251
|
+
* unchanged from a fresh start — same reset, same scheduler, same result
|
|
252
|
+
* shape as before this method learned to resume.
|
|
231
253
|
*/
|
|
232
254
|
train() {
|
|
255
|
+
const resuming = this.resumePending;
|
|
256
|
+
this.resumePending = false;
|
|
257
|
+
// currentEpoch is the last COMPLETED epoch index, so resume the next one.
|
|
258
|
+
const startEpoch = resuming ? this.currentEpoch + 1 : 0;
|
|
233
259
|
const totalSteps = this.batches.length * this.config.epochs;
|
|
234
260
|
this.scheduler = new LRScheduler(this.config, totalSteps);
|
|
235
|
-
|
|
261
|
+
if (resuming) {
|
|
262
|
+
// Fast-forward the fresh scheduler to the restored step.
|
|
263
|
+
for (let s = 0; s < this.currentStep && s < totalSteps; s++) {
|
|
264
|
+
this.scheduler.step();
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
this.metrics.reset();
|
|
269
|
+
}
|
|
236
270
|
this.adapter.startTraining(this.config.learningRate);
|
|
237
271
|
let earlyStopped = false;
|
|
238
|
-
for (let epoch =
|
|
272
|
+
for (let epoch = startEpoch; epoch < this.config.epochs; epoch++) {
|
|
239
273
|
this.currentEpoch = epoch;
|
|
240
274
|
// Shuffle batches
|
|
241
275
|
const shuffledBatches = this.shuffleBatches();
|
|
@@ -260,6 +294,10 @@ class TrainingPipeline {
|
|
|
260
294
|
if (valLoss < this.bestValLoss) {
|
|
261
295
|
this.bestValLoss = valLoss;
|
|
262
296
|
this.patienceCounter = 0;
|
|
297
|
+
// Retain the best-validation model to a stable path when configured.
|
|
298
|
+
if (this.config.keepBestCheckpoint) {
|
|
299
|
+
this.saveCheckpoint(this.config.keepBestCheckpoint);
|
|
300
|
+
}
|
|
263
301
|
}
|
|
264
302
|
else {
|
|
265
303
|
this.patienceCounter++;
|
|
@@ -341,22 +379,93 @@ class TrainingPipeline {
|
|
|
341
379
|
return count > 0 ? totalLoss / count : 0;
|
|
342
380
|
}
|
|
343
381
|
/**
|
|
344
|
-
* Save checkpoint
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
382
|
+
* Save a checkpoint.
|
|
383
|
+
*
|
|
384
|
+
* Always records the checkpoint in the in-memory list (the behavior the
|
|
385
|
+
* training loop relies on). When `path` is given, additionally persists
|
|
386
|
+
* the checkpoint to disk as versioned JSON — before v2.5.7 this method
|
|
387
|
+
* was private, ignored any argument, and never wrote a file, so callers
|
|
388
|
+
* passing a path got `undefined` back and zero bytes on disk.
|
|
389
|
+
*
|
|
390
|
+
* @param path Optional file path; parent directories are created.
|
|
391
|
+
* @returns Where the checkpoint went — in-memory index, and file
|
|
392
|
+
* path + byte size when persisted.
|
|
393
|
+
*/
|
|
394
|
+
saveCheckpoint(path) {
|
|
395
|
+
const checkpoint = {
|
|
348
396
|
epoch: this.currentEpoch,
|
|
349
397
|
step: this.currentStep,
|
|
350
398
|
loss: this.metrics.avgLoss(100),
|
|
351
399
|
weights: this.adapter.toJSON(),
|
|
352
400
|
timestamp: Date.now(),
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
401
|
+
};
|
|
402
|
+
this.checkpoints.push(checkpoint);
|
|
403
|
+
const result = {
|
|
404
|
+
index: this.checkpoints.length - 1,
|
|
405
|
+
epoch: checkpoint.epoch,
|
|
406
|
+
step: checkpoint.step,
|
|
407
|
+
loss: checkpoint.loss,
|
|
408
|
+
};
|
|
409
|
+
if (path) {
|
|
410
|
+
const envelope = {
|
|
411
|
+
format: 'ruvllm-checkpoint',
|
|
412
|
+
version: CHECKPOINT_FORMAT_VERSION,
|
|
413
|
+
// Adapter geometry + pipeline hyperparams — lets loadCheckpoint()
|
|
414
|
+
// reject weights that don't fit the current adapter (v2, see below).
|
|
415
|
+
config: {
|
|
416
|
+
inputDim: this.adapter.getInputDim(),
|
|
417
|
+
outputDim: this.adapter.getOutputDim(),
|
|
418
|
+
rank: this.adapter.getConfig().rank,
|
|
419
|
+
},
|
|
420
|
+
pipelineConfig: {
|
|
421
|
+
learningRate: this.config.learningRate,
|
|
422
|
+
batchSize: this.config.batchSize,
|
|
423
|
+
},
|
|
424
|
+
...checkpoint,
|
|
425
|
+
};
|
|
426
|
+
const serialized = JSON.stringify(envelope);
|
|
427
|
+
(0, fs_1.mkdirSync)((0, path_1.dirname)(path), { recursive: true });
|
|
428
|
+
(0, fs_1.writeFileSync)(path, serialized, 'utf-8');
|
|
429
|
+
result.path = path;
|
|
430
|
+
result.bytes = Buffer.byteLength(serialized, 'utf-8');
|
|
431
|
+
}
|
|
432
|
+
return result;
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Load a checkpoint — by in-memory index, or from a file previously
|
|
436
|
+
* written by `saveCheckpoint(path)`.
|
|
437
|
+
*
|
|
438
|
+
* For v2 files, the envelope's adapter geometry is checked against the
|
|
439
|
+
* current adapter first; a mismatch (different inputDim/outputDim/rank)
|
|
440
|
+
* returns false and leaves the adapter untouched, so mis-shaped weights
|
|
441
|
+
* are never silently restored. v1 files carry no geometry and load as
|
|
442
|
+
* before (back-compat).
|
|
443
|
+
*/
|
|
444
|
+
loadCheckpoint(indexOrPath) {
|
|
445
|
+
let checkpoint;
|
|
446
|
+
if (typeof indexOrPath === 'number') {
|
|
447
|
+
checkpoint = this.checkpoints[indexOrPath];
|
|
448
|
+
}
|
|
449
|
+
else {
|
|
450
|
+
try {
|
|
451
|
+
const parsed = JSON.parse((0, fs_1.readFileSync)(indexOrPath, 'utf-8'));
|
|
452
|
+
if (parsed?.format !== 'ruvllm-checkpoint' || typeof parsed.weights !== 'string') {
|
|
453
|
+
return false;
|
|
454
|
+
}
|
|
455
|
+
if (typeof parsed.version === 'number' && parsed.version >= 2 && parsed.config) {
|
|
456
|
+
const c = parsed.config;
|
|
457
|
+
if (c.inputDim !== this.adapter.getInputDim() ||
|
|
458
|
+
c.outputDim !== this.adapter.getOutputDim() ||
|
|
459
|
+
c.rank !== this.adapter.getConfig().rank) {
|
|
460
|
+
return false;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
checkpoint = parsed;
|
|
464
|
+
}
|
|
465
|
+
catch {
|
|
466
|
+
return false;
|
|
467
|
+
}
|
|
468
|
+
}
|
|
360
469
|
if (!checkpoint)
|
|
361
470
|
return false;
|
|
362
471
|
this.adapter = lora_1.LoraAdapter.fromJSON(checkpoint.weights);
|
|
@@ -364,6 +473,26 @@ class TrainingPipeline {
|
|
|
364
473
|
this.currentStep = checkpoint.step;
|
|
365
474
|
return true;
|
|
366
475
|
}
|
|
476
|
+
/**
|
|
477
|
+
* Resume training from a checkpoint file.
|
|
478
|
+
*
|
|
479
|
+
* Loads the checkpoint (with the same v2 shape validation as
|
|
480
|
+
* {@link loadCheckpoint}) AND primes the pipeline so the next {@link train}
|
|
481
|
+
* call continues from the restored epoch/step rather than restarting. This
|
|
482
|
+
* is the explicit, least-invasive resume path: a plain `loadCheckpoint()`
|
|
483
|
+
* still restores weights only (train() from scratch), while `resumeFrom()`
|
|
484
|
+
* additionally makes the subsequent train() pick up where the run stopped.
|
|
485
|
+
*
|
|
486
|
+
* @returns true when the checkpoint loaded and resume was primed; false if
|
|
487
|
+
* the file was missing, foreign, or shape-mismatched (in which case
|
|
488
|
+
* no resume is armed).
|
|
489
|
+
*/
|
|
490
|
+
resumeFrom(path) {
|
|
491
|
+
if (!this.loadCheckpoint(path))
|
|
492
|
+
return false;
|
|
493
|
+
this.resumePending = true;
|
|
494
|
+
return true;
|
|
495
|
+
}
|
|
367
496
|
/**
|
|
368
497
|
* Get current metrics
|
|
369
498
|
*/
|
|
@@ -407,6 +536,7 @@ class TrainingPipeline {
|
|
|
407
536
|
this.currentStep = 0;
|
|
408
537
|
this.bestValLoss = Infinity;
|
|
409
538
|
this.patienceCounter = 0;
|
|
539
|
+
this.resumePending = false;
|
|
410
540
|
this.metrics.reset();
|
|
411
541
|
this.adapter.reset();
|
|
412
542
|
}
|
|
@@ -477,4 +607,4 @@ class TrainingFactory {
|
|
|
477
607
|
}
|
|
478
608
|
}
|
|
479
609
|
exports.TrainingFactory = TrainingFactory;
|
|
480
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW5pbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhaW5pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRzs7O0FBR0gsaUNBQXFDO0FBQ3JDLGlDQUFvQztBQUVwQzs7R0FFRztBQUNILE1BQU0sdUJBQXVCLEdBQTZCO0lBQ3hELFlBQVksRUFBRSxLQUFLO0lBQ25CLFNBQVMsRUFBRSxFQUFFO0lBQ2IsTUFBTSxFQUFFLEVBQUU7SUFDVixTQUFTLEVBQUUsUUFBUTtJQUNuQixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixZQUFZLEVBQUUsR0FBRztJQUNqQixxQkFBcUIsRUFBRSxDQUFDO0lBQ3hCLGtCQUFrQixFQUFFLENBQUM7SUFDckIsU0FBUyxFQUFFLElBQUk7SUFDZixlQUFlLEVBQUUsR0FBRztDQUNyQixDQUFDO0FBb0RGOztHQUVHO0FBQ0gsTUFBYSxXQUFXO0lBTXRCLFlBQVksTUFBZ0MsRUFBRSxVQUFrQjtRQUh4RCxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUk5QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNILFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM5QixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBRXhCLEtBQUssUUFBUTtnQkFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFbkUsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFFN0YsS0FBSyxRQUFRO2dCQUNYLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUMvQyxPQUFPLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3ZFLENBQUM7Z0JBQ0QsNEJBQTRCO2dCQUM1QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO2dCQUM3RCxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxVQUFVLENBQUM7Z0JBQ2hGLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFFeEU7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUFyREQsa0NBcURDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGNBQWM7SUFBM0I7UUFDVSxnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUMzQixtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5QixvQkFBZSxHQUFhLEVBQUUsQ0FBQztRQUMvQixjQUFTLEdBQVcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQy9CLGNBQVMsR0FBYSxFQUFFLENBQUM7SUFxR25DLENBQUM7SUFuR0M7O09BRUc7SUFDSCxVQUFVLENBQUMsSUFBWTtRQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhLENBQUMsSUFBWTtRQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsSUFBWTtRQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsRUFBVTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsSUFBWSxHQUFHO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVUsQ0FBQyxJQUFZLEVBQUU7UUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pILE9BQU8sV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUcsQ0FBQyxjQUFzQjtRQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbEMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDdEYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYztRQUNaLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUI7UUFDZixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7Q0FDRjtBQTFHRCx3Q0EwR0M7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFhM0IsWUFBWSxNQUF1QixFQUFFLE9BQXFCO1FBUmxELGNBQVMsR0FBdUIsSUFBSSxDQUFDO1FBQ3JDLFlBQU8sR0FBb0IsRUFBRSxDQUFDO1FBQzlCLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQUMvQixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixnQkFBVyxHQUFXLFFBQVEsQ0FBQztRQUMvQixvQkFBZSxHQUFXLENBQUMsQ0FBQztRQUdsQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyx1QkFBdUIsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3hELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxJQUFJLElBQUksa0JBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxpQkFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVEsQ0FBQyxNQUFtQixFQUFFLE9BQW9CLEVBQUUsU0FBbUI7UUFDckUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLElBQXFFO1FBQzNFLHFCQUFxQjtRQUNyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsUUFBUSxDQUNYLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQ3ZCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQ3hCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQzFCLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFckQsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXpCLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBRTFCLGtCQUFrQjtZQUNsQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFOUMsdUJBQXVCO1lBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2pGLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEQsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFckQsaUJBQWlCO1lBQ2pCLEtBQUssTUFBTSxLQUFLLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLENBQUM7WUFFRCxhQUFhO1lBQ2IsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFcEMsaUJBQWlCO2dCQUNqQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO29CQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztnQkFDM0IsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDdkIsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQzt3QkFDOUQsWUFBWSxHQUFHLElBQUksQ0FBQzt3QkFDcEIsTUFBTTtvQkFDUixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBRUQsYUFBYTtZQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDdkQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUzQiwyQ0FBMkM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTVELE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVztZQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ3BDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDbkMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQzFDLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFO1lBQ2hELFlBQVk7U0FDYixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ssU0FBUyxDQUFDLEtBQW9CO1FBQ3BDLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBRS9ELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzdDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRW5DLGVBQWU7WUFDZixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUzQyx5Q0FBeUM7WUFDekMsTUFBTSxVQUFVLEdBQWEsRUFBRSxDQUFDO1lBQ2hDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNiLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLDRCQUE0QjtZQUNuRSxDQUFDO1lBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUM7WUFFeEMsa0JBQWtCO1lBQ2xCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMvRSxJQUFJLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztZQUUzQixnQkFBZ0I7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUU3QyxTQUFTLElBQUksSUFBSSxDQUFDO1FBQ3BCLENBQUM7UUFFRCxPQUFPLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxRQUFRLENBQUMsT0FBd0I7UUFDdkMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVkLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7WUFDNUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDckQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFaEMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQ3ZDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDMUMsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLENBQUM7Z0JBQ0QsU0FBUyxJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNsQyxLQUFLLEVBQUUsQ0FBQztZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYztRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNwQixLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ3RCLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDL0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQzlCLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxLQUFhO1FBQzFCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUU5QixJQUFJLENBQUMsT0FBTyxHQUFHLGtCQUFXLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLE9BQU87WUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ3RCLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDcEMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVk7WUFDakUsUUFBUSxFQUFFLENBQUM7WUFDWCxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDN0MsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUMxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDL0Q7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDWixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sY0FBYztRQUNwQixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLEtBQUssSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRjtBQTFRRCw0Q0EwUUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxlQUFlO0lBQzFCOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGFBQWE7UUFDbEIsT0FBTyxJQUFJLGdCQUFnQixDQUFDO1lBQzFCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLE1BQU0sRUFBRSxDQUFDO1lBQ1QsU0FBUyxFQUFFLEVBQUU7WUFDYixTQUFTLEVBQUUsVUFBVTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsWUFBWTtRQUNqQixPQUFPLElBQUksZ0JBQWdCLENBQUM7WUFDMUIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsTUFBTSxFQUFFLEVBQUU7WUFDVixTQUFTLEVBQUUsRUFBRTtZQUNiLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFdBQVcsRUFBRSxHQUFHO1lBQ2hCLHFCQUFxQixFQUFFLENBQUM7U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFlBQW9CLElBQUk7UUFDL0MsT0FBTyxJQUFJLGdCQUFnQixDQUFDO1lBQzFCLFlBQVksRUFBRSxNQUFNO1lBQ3BCLE1BQU0sRUFBRSxFQUFFO1lBQ1YsU0FBUyxFQUFFLEVBQUU7WUFDYixTQUFTLEVBQUUsUUFBUTtZQUNuQixTQUFTO1lBQ1QscUJBQXFCLEVBQUUsRUFBRTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQztZQUMxQixZQUFZLEVBQUUsTUFBTTtZQUNwQixNQUFNLEVBQUUsQ0FBQztZQUNULFNBQVMsRUFBRSxFQUFFO1lBQ2IsU0FBUyxFQUFFLFFBQVE7WUFDbkIsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBckRELDBDQXFEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUcmFpbmluZyBQaXBlbGluZSBmb3IgU09OQVxyXG4gKlxyXG4gKiBDb21wcmVoZW5zaXZlIHRyYWluaW5nIGluZnJhc3RydWN0dXJlIHdpdGggbWV0cmljcyB0cmFja2luZyxcclxuICogbGVhcm5pbmcgcmF0ZSBzY2hlZHVsaW5nLCBhbmQgY2hlY2twb2ludCBtYW5hZ2VtZW50LlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGltcG9ydCB7IFRyYWluaW5nUGlwZWxpbmUsIFRyYWluaW5nQ29uZmlnIH0gZnJvbSAnQHJ1dmVjdG9yL3J1dmxsbSc7XHJcbiAqXHJcbiAqIGNvbnN0IHBpcGVsaW5lID0gbmV3IFRyYWluaW5nUGlwZWxpbmUoe1xyXG4gKiAgIGxlYXJuaW5nUmF0ZTogMC4wMDEsXHJcbiAqICAgYmF0Y2hTaXplOiAzMixcclxuICogICBlcG9jaHM6IDEwLFxyXG4gKiB9KTtcclxuICpcclxuICogLy8gQWRkIHRyYWluaW5nIGRhdGFcclxuICogcGlwZWxpbmUuYWRkQmF0Y2goaW5wdXRzLCB0YXJnZXRzLCBxdWFsaXRpZXMpO1xyXG4gKlxyXG4gKiAvLyBSdW4gdHJhaW5pbmdcclxuICogY29uc3QgcmVzdWx0ID0gcGlwZWxpbmUudHJhaW4oKTtcclxuICogY29uc29sZS5sb2coYEZpbmFsIGxvc3M6ICR7cmVzdWx0LmZpbmFsTG9zc31gKTtcclxuICogYGBgXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgRW1iZWRkaW5nLCBUcmFpbmluZ0NvbmZpZywgVHJhaW5pbmdSZXN1bHQgfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgTG9yYUFkYXB0ZXIgfSBmcm9tICcuL2xvcmEnO1xyXG5pbXBvcnQgeyBFd2NNYW5hZ2VyIH0gZnJvbSAnLi9zb25hJztcclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IHRyYWluaW5nIGNvbmZpZ1xyXG4gKi9cclxuY29uc3QgREVGQVVMVF9UUkFJTklOR19DT05GSUc6IFJlcXVpcmVkPFRyYWluaW5nQ29uZmlnPiA9IHtcclxuICBsZWFybmluZ1JhdGU6IDAuMDAxLFxyXG4gIGJhdGNoU2l6ZTogMzIsXHJcbiAgZXBvY2hzOiAxMCxcclxuICBzY2hlZHVsZXI6ICdjb3NpbmUnLFxyXG4gIHdhcm11cFN0ZXBzOiAxMDAsXHJcbiAgd2VpZ2h0RGVjYXk6IDAuMDEsXHJcbiAgZ3JhZGllbnRDbGlwOiAxLjAsXHJcbiAgZWFybHlTdG9wcGluZ1BhdGllbmNlOiAzLFxyXG4gIGNoZWNrcG9pbnRJbnRlcnZhbDogMSxcclxuICBld2NMYW1iZGE6IDIwMDAsXHJcbiAgdmFsaWRhdGlvblNwbGl0OiAwLjEsXHJcbn07XHJcblxyXG4vKipcclxuICogVHJhaW5pbmcgbWV0cmljc1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBUcmFpbmluZ01ldHJpY3Mge1xyXG4gIC8qKiBDdXJyZW50IGVwb2NoICovXHJcbiAgZXBvY2g6IG51bWJlcjtcclxuICAvKiogQ3VycmVudCBzdGVwICovXHJcbiAgc3RlcDogbnVtYmVyO1xyXG4gIC8qKiBUcmFpbmluZyBsb3NzICovXHJcbiAgdHJhaW5Mb3NzOiBudW1iZXI7XHJcbiAgLyoqIFZhbGlkYXRpb24gbG9zcyAqL1xyXG4gIHZhbExvc3M6IG51bWJlcjtcclxuICAvKiogTGVhcm5pbmcgcmF0ZSAqL1xyXG4gIGxlYXJuaW5nUmF0ZTogbnVtYmVyO1xyXG4gIC8qKiBHcmFkaWVudCBub3JtICovXHJcbiAgZ3JhZE5vcm06IG51bWJlcjtcclxuICAvKiogU3RlcHMgcGVyIHNlY29uZCAqL1xyXG4gIHN0ZXBzUGVyU2Vjb25kOiBudW1iZXI7XHJcbiAgLyoqIEVUQSBpbiBzZWNvbmRzICovXHJcbiAgZXRhU2Vjb25kczogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogVHJhaW5pbmcgZGF0YSBiYXRjaFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBUcmFpbmluZ0JhdGNoIHtcclxuICAvKiogSW5wdXQgZW1iZWRkaW5ncyAqL1xyXG4gIGlucHV0czogRW1iZWRkaW5nW107XHJcbiAgLyoqIFRhcmdldCBvdXRwdXRzICovXHJcbiAgdGFyZ2V0czogRW1iZWRkaW5nW107XHJcbiAgLyoqIFF1YWxpdHkgc2NvcmVzICovXHJcbiAgcXVhbGl0aWVzOiBudW1iZXJbXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcG9pbnQgZGF0YVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDaGVja3BvaW50IHtcclxuICAvKiogRXBvY2ggbnVtYmVyICovXHJcbiAgZXBvY2g6IG51bWJlcjtcclxuICAvKiogU3RlcCBudW1iZXIgKi9cclxuICBzdGVwOiBudW1iZXI7XHJcbiAgLyoqIFRyYWluaW5nIGxvc3MgYXQgY2hlY2twb2ludCAqL1xyXG4gIGxvc3M6IG51bWJlcjtcclxuICAvKiogTW9kZWwgd2VpZ2h0cyAoc2VyaWFsaXplZCkgKi9cclxuICB3ZWlnaHRzOiBzdHJpbmc7XHJcbiAgLyoqIFRpbWVzdGFtcCAqL1xyXG4gIHRpbWVzdGFtcDogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogTGVhcm5pbmcgUmF0ZSBTY2hlZHVsZXJcclxuICovXHJcbmV4cG9ydCBjbGFzcyBMUlNjaGVkdWxlciB7XHJcbiAgcHJpdmF0ZSBjb25maWc6IFJlcXVpcmVkPFRyYWluaW5nQ29uZmlnPjtcclxuICBwcml2YXRlIGluaXRpYWxMUjogbnVtYmVyO1xyXG4gIHByaXZhdGUgY3VycmVudFN0ZXA6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSB0b3RhbFN0ZXBzOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogUmVxdWlyZWQ8VHJhaW5pbmdDb25maWc+LCB0b3RhbFN0ZXBzOiBudW1iZXIpIHtcclxuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xyXG4gICAgdGhpcy5pbml0aWFsTFIgPSBjb25maWcubGVhcm5pbmdSYXRlO1xyXG4gICAgdGhpcy50b3RhbFN0ZXBzID0gdG90YWxTdGVwcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBsZWFybmluZyByYXRlIGZvciBjdXJyZW50IHN0ZXBcclxuICAgKi9cclxuICBnZXRMUigpOiBudW1iZXIge1xyXG4gICAgc3dpdGNoICh0aGlzLmNvbmZpZy5zY2hlZHVsZXIpIHtcclxuICAgICAgY2FzZSAnY29uc3RhbnQnOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxMUjtcclxuXHJcbiAgICAgIGNhc2UgJ2xpbmVhcic6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5pdGlhbExSICogKDEgLSB0aGlzLmN1cnJlbnRTdGVwIC8gdGhpcy50b3RhbFN0ZXBzKTtcclxuXHJcbiAgICAgIGNhc2UgJ2Nvc2luZSc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5pdGlhbExSICogMC41ICogKDEgKyBNYXRoLmNvcyhNYXRoLlBJICogdGhpcy5jdXJyZW50U3RlcCAvIHRoaXMudG90YWxTdGVwcykpO1xyXG5cclxuICAgICAgY2FzZSAnd2FybXVwJzpcclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50U3RlcCA8IHRoaXMuY29uZmlnLndhcm11cFN0ZXBzKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbml0aWFsTFIgKiAodGhpcy5jdXJyZW50U3RlcCAvIHRoaXMuY29uZmlnLndhcm11cFN0ZXBzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQ29zaW5lIGRlY2F5IGFmdGVyIHdhcm11cFxyXG4gICAgICAgIGNvbnN0IGRlY2F5U3RlcHMgPSB0aGlzLnRvdGFsU3RlcHMgLSB0aGlzLmNvbmZpZy53YXJtdXBTdGVwcztcclxuICAgICAgICBjb25zdCBkZWNheVByb2dyZXNzID0gKHRoaXMuY3VycmVudFN0ZXAgLSB0aGlzLmNvbmZpZy53YXJtdXBTdGVwcykgLyBkZWNheVN0ZXBzO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxMUiAqIDAuNSAqICgxICsgTWF0aC5jb3MoTWF0aC5QSSAqIGRlY2F5UHJvZ3Jlc3MpKTtcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5pdGlhbExSO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RlcCB0aGUgc2NoZWR1bGVyXHJcbiAgICovXHJcbiAgc3RlcCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudFN0ZXArKztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0IHNjaGVkdWxlclxyXG4gICAqL1xyXG4gIHJlc2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogVHJhaW5pbmcgTWV0cmljcyBUcmFja2VyXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTWV0cmljc1RyYWNrZXIge1xyXG4gIHByaXZhdGUgbG9zc0hpc3Rvcnk6IG51bWJlcltdID0gW107XHJcbiAgcHJpdmF0ZSB2YWxMb3NzSGlzdG9yeTogbnVtYmVyW10gPSBbXTtcclxuICBwcml2YXRlIGdyYWROb3JtSGlzdG9yeTogbnVtYmVyW10gPSBbXTtcclxuICBwcml2YXRlIHN0YXJ0VGltZTogbnVtYmVyID0gRGF0ZS5ub3coKTtcclxuICBwcml2YXRlIHN0ZXBUaW1lczogbnVtYmVyW10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVjb3JkIHRyYWluaW5nIGxvc3NcclxuICAgKi9cclxuICByZWNvcmRMb3NzKGxvc3M6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5sb3NzSGlzdG9yeS5wdXNoKGxvc3MpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVjb3JkIHZhbGlkYXRpb24gbG9zc1xyXG4gICAqL1xyXG4gIHJlY29yZFZhbExvc3MobG9zczogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbExvc3NIaXN0b3J5LnB1c2gobG9zcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWNvcmQgZ3JhZGllbnQgbm9ybVxyXG4gICAqL1xyXG4gIHJlY29yZEdyYWROb3JtKG5vcm06IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5ncmFkTm9ybUhpc3RvcnkucHVzaChub3JtKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlY29yZCBzdGVwIHRpbWVcclxuICAgKi9cclxuICByZWNvcmRTdGVwVGltZShtczogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0ZXBUaW1lcy5wdXNoKG1zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBhdmVyYWdlIGxvc3Mgb3ZlciBsYXN0IE4gc3RlcHNcclxuICAgKi9cclxuICBhdmdMb3NzKG46IG51bWJlciA9IDEwMCk6IG51bWJlciB7XHJcbiAgICBjb25zdCByZWNlbnQgPSB0aGlzLmxvc3NIaXN0b3J5LnNsaWNlKC1uKTtcclxuICAgIHJldHVybiByZWNlbnQubGVuZ3RoID4gMCA/IHJlY2VudC5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKSAvIHJlY2VudC5sZW5ndGggOiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGF2ZXJhZ2UgdmFsaWRhdGlvbiBsb3NzXHJcbiAgICovXHJcbiAgYXZnVmFsTG9zcyhuOiBudW1iZXIgPSAxMCk6IG51bWJlciB7XHJcbiAgICBjb25zdCByZWNlbnQgPSB0aGlzLnZhbExvc3NIaXN0b3J5LnNsaWNlKC1uKTtcclxuICAgIHJldHVybiByZWNlbnQubGVuZ3RoID4gMCA/IHJlY2VudC5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKSAvIHJlY2VudC5sZW5ndGggOiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHN0ZXBzIHBlciBzZWNvbmRcclxuICAgKi9cclxuICBzdGVwc1BlclNlY29uZCgpOiBudW1iZXIge1xyXG4gICAgaWYgKHRoaXMuc3RlcFRpbWVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDA7XHJcbiAgICBjb25zdCBhdmdTdGVwVGltZSA9IHRoaXMuc3RlcFRpbWVzLnNsaWNlKC0xMDApLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApIC8gTWF0aC5taW4odGhpcy5zdGVwVGltZXMubGVuZ3RoLCAxMDApO1xyXG4gICAgcmV0dXJuIGF2Z1N0ZXBUaW1lID4gMCA/IDEwMDAgLyBhdmdTdGVwVGltZSA6IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgRVRBIGluIHNlY29uZHNcclxuICAgKi9cclxuICBldGEocmVtYWluaW5nU3RlcHM6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBjb25zdCBzcHMgPSB0aGlzLnN0ZXBzUGVyU2Vjb25kKCk7XHJcbiAgICByZXR1cm4gc3BzID4gMCA/IHJlbWFpbmluZ1N0ZXBzIC8gc3BzIDogMDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBiZXN0IHZhbGlkYXRpb24gbG9zc1xyXG4gICAqL1xyXG4gIGJlc3RWYWxMb3NzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy52YWxMb3NzSGlzdG9yeS5sZW5ndGggPiAwID8gTWF0aC5taW4oLi4udGhpcy52YWxMb3NzSGlzdG9yeSkgOiBJbmZpbml0eTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0b3RhbCBkdXJhdGlvblxyXG4gICAqL1xyXG4gIGR1cmF0aW9uKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gRGF0ZS5ub3coKSAtIHRoaXMuc3RhcnRUaW1lO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFsbCBsb3NzIGhpc3RvcnlcclxuICAgKi9cclxuICBnZXRMb3NzSGlzdG9yeSgpOiBudW1iZXJbXSB7XHJcbiAgICByZXR1cm4gWy4uLnRoaXMubG9zc0hpc3RvcnldO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFsbCB2YWxpZGF0aW9uIGxvc3MgaGlzdG9yeVxyXG4gICAqL1xyXG4gIGdldFZhbExvc3NIaXN0b3J5KCk6IG51bWJlcltdIHtcclxuICAgIHJldHVybiBbLi4udGhpcy52YWxMb3NzSGlzdG9yeV07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNldCB0cmFja2VyXHJcbiAgICovXHJcbiAgcmVzZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvc3NIaXN0b3J5ID0gW107XHJcbiAgICB0aGlzLnZhbExvc3NIaXN0b3J5ID0gW107XHJcbiAgICB0aGlzLmdyYWROb3JtSGlzdG9yeSA9IFtdO1xyXG4gICAgdGhpcy5zdGVwVGltZXMgPSBbXTtcclxuICAgIHRoaXMuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUcmFpbmluZyBQaXBlbGluZVxyXG4gKlxyXG4gKiBGdWxsIHRyYWluaW5nIGluZnJhc3RydWN0dXJlIGZvciBTT05BIG1vZGVscy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBUcmFpbmluZ1BpcGVsaW5lIHtcclxuICBwcml2YXRlIGNvbmZpZzogUmVxdWlyZWQ8VHJhaW5pbmdDb25maWc+O1xyXG4gIHByaXZhdGUgYWRhcHRlcjogTG9yYUFkYXB0ZXI7XHJcbiAgcHJpdmF0ZSBld2NNYW5hZ2VyOiBFd2NNYW5hZ2VyO1xyXG4gIHByaXZhdGUgbWV0cmljczogTWV0cmljc1RyYWNrZXI7XHJcbiAgcHJpdmF0ZSBzY2hlZHVsZXI6IExSU2NoZWR1bGVyIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBiYXRjaGVzOiBUcmFpbmluZ0JhdGNoW10gPSBbXTtcclxuICBwcml2YXRlIGNoZWNrcG9pbnRzOiBDaGVja3BvaW50W10gPSBbXTtcclxuICBwcml2YXRlIGN1cnJlbnRFcG9jaDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIGN1cnJlbnRTdGVwOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgYmVzdFZhbExvc3M6IG51bWJlciA9IEluZmluaXR5O1xyXG4gIHByaXZhdGUgcGF0aWVuY2VDb3VudGVyOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihjb25maWc/OiBUcmFpbmluZ0NvbmZpZywgYWRhcHRlcj86IExvcmFBZGFwdGVyKSB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IHsgLi4uREVGQVVMVF9UUkFJTklOR19DT05GSUcsIC4uLmNvbmZpZyB9O1xyXG4gICAgdGhpcy5hZGFwdGVyID0gYWRhcHRlciB8fCBuZXcgTG9yYUFkYXB0ZXIoeyByYW5rOiA4IH0pO1xyXG4gICAgdGhpcy5ld2NNYW5hZ2VyID0gbmV3IEV3Y01hbmFnZXIodGhpcy5jb25maWcuZXdjTGFtYmRhKTtcclxuICAgIHRoaXMubWV0cmljcyA9IG5ldyBNZXRyaWNzVHJhY2tlcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIHRyYWluaW5nIGJhdGNoXHJcbiAgICovXHJcbiAgYWRkQmF0Y2goaW5wdXRzOiBFbWJlZGRpbmdbXSwgdGFyZ2V0czogRW1iZWRkaW5nW10sIHF1YWxpdGllczogbnVtYmVyW10pOiB2b2lkIHtcclxuICAgIHRoaXMuYmF0Y2hlcy5wdXNoKHsgaW5wdXRzLCB0YXJnZXRzLCBxdWFsaXRpZXMgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgdHJhaW5pbmcgZGF0YVxyXG4gICAqL1xyXG4gIGFkZERhdGEoZGF0YTogQXJyYXk8eyBpbnB1dDogRW1iZWRkaW5nOyB0YXJnZXQ6IEVtYmVkZGluZzsgcXVhbGl0eTogbnVtYmVyIH0+KTogdm9pZCB7XHJcbiAgICAvLyBHcm91cCBpbnRvIGJhdGNoZXNcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkgKz0gdGhpcy5jb25maWcuYmF0Y2hTaXplKSB7XHJcbiAgICAgIGNvbnN0IGJhdGNoID0gZGF0YS5zbGljZShpLCBpICsgdGhpcy5jb25maWcuYmF0Y2hTaXplKTtcclxuICAgICAgdGhpcy5hZGRCYXRjaChcclxuICAgICAgICBiYXRjaC5tYXAoZCA9PiBkLmlucHV0KSxcclxuICAgICAgICBiYXRjaC5tYXAoZCA9PiBkLnRhcmdldCksXHJcbiAgICAgICAgYmF0Y2gubWFwKGQgPT4gZC5xdWFsaXR5KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUnVuIHRyYWluaW5nXHJcbiAgICovXHJcbiAgdHJhaW4oKTogVHJhaW5pbmdSZXN1bHQge1xyXG4gICAgY29uc3QgdG90YWxTdGVwcyA9IHRoaXMuYmF0Y2hlcy5sZW5ndGggKiB0aGlzLmNvbmZpZy5lcG9jaHM7XHJcbiAgICB0aGlzLnNjaGVkdWxlciA9IG5ldyBMUlNjaGVkdWxlcih0aGlzLmNvbmZpZywgdG90YWxTdGVwcyk7XHJcbiAgICB0aGlzLm1ldHJpY3MucmVzZXQoKTtcclxuICAgIHRoaXMuYWRhcHRlci5zdGFydFRyYWluaW5nKHRoaXMuY29uZmlnLmxlYXJuaW5nUmF0ZSk7XHJcblxyXG4gICAgbGV0IGVhcmx5U3RvcHBlZCA9IGZhbHNlO1xyXG5cclxuICAgIGZvciAobGV0IGVwb2NoID0gMDsgZXBvY2ggPCB0aGlzLmNvbmZpZy5lcG9jaHM7IGVwb2NoKyspIHtcclxuICAgICAgdGhpcy5jdXJyZW50RXBvY2ggPSBlcG9jaDtcclxuXHJcbiAgICAgIC8vIFNodWZmbGUgYmF0Y2hlc1xyXG4gICAgICBjb25zdCBzaHVmZmxlZEJhdGNoZXMgPSB0aGlzLnNodWZmbGVCYXRjaGVzKCk7XHJcblxyXG4gICAgICAvLyBTcGxpdCBpbnRvIHRyYWluL3ZhbFxyXG4gICAgICBjb25zdCB2YWxTaXplID0gTWF0aC5mbG9vcihzaHVmZmxlZEJhdGNoZXMubGVuZ3RoICogdGhpcy5jb25maWcudmFsaWRhdGlvblNwbGl0KTtcclxuICAgICAgY29uc3QgdHJhaW5CYXRjaGVzID0gc2h1ZmZsZWRCYXRjaGVzLnNsaWNlKHZhbFNpemUpO1xyXG4gICAgICBjb25zdCB2YWxCYXRjaGVzID0gc2h1ZmZsZWRCYXRjaGVzLnNsaWNlKDAsIHZhbFNpemUpO1xyXG5cclxuICAgICAgLy8gVHJhaW5pbmcgZXBvY2hcclxuICAgICAgZm9yIChjb25zdCBiYXRjaCBvZiB0cmFpbkJhdGNoZXMpIHtcclxuICAgICAgICBjb25zdCBzdGVwU3RhcnQgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIGNvbnN0IGxvc3MgPSB0aGlzLnRyYWluU3RlcChiYXRjaCk7XHJcbiAgICAgICAgdGhpcy5tZXRyaWNzLnJlY29yZExvc3MobG9zcyk7XHJcbiAgICAgICAgdGhpcy5tZXRyaWNzLnJlY29yZFN0ZXBUaW1lKERhdGUubm93KCkgLSBzdGVwU3RhcnQpO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVyLnN0ZXAoKTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRTdGVwKys7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFZhbGlkYXRpb25cclxuICAgICAgaWYgKHZhbEJhdGNoZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IHZhbExvc3MgPSB0aGlzLnZhbGlkYXRlKHZhbEJhdGNoZXMpO1xyXG4gICAgICAgIHRoaXMubWV0cmljcy5yZWNvcmRWYWxMb3NzKHZhbExvc3MpO1xyXG5cclxuICAgICAgICAvLyBFYXJseSBzdG9wcGluZ1xyXG4gICAgICAgIGlmICh2YWxMb3NzIDwgdGhpcy5iZXN0VmFsTG9zcykge1xyXG4gICAgICAgICAgdGhpcy5iZXN0VmFsTG9zcyA9IHZhbExvc3M7XHJcbiAgICAgICAgICB0aGlzLnBhdGllbmNlQ291bnRlciA9IDA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucGF0aWVuY2VDb3VudGVyKys7XHJcbiAgICAgICAgICBpZiAodGhpcy5wYXRpZW5jZUNvdW50ZXIgPj0gdGhpcy5jb25maWcuZWFybHlTdG9wcGluZ1BhdGllbmNlKSB7XHJcbiAgICAgICAgICAgIGVhcmx5U3RvcHBlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQ2hlY2twb2ludFxyXG4gICAgICBpZiAoKGVwb2NoICsgMSkgJSB0aGlzLmNvbmZpZy5jaGVja3BvaW50SW50ZXJ2YWwgPT09IDApIHtcclxuICAgICAgICB0aGlzLnNhdmVDaGVja3BvaW50KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFkYXB0ZXIuZW5kVHJhaW5pbmcoKTtcclxuXHJcbiAgICAvLyBSZWdpc3RlciB3aXRoIEVXQyBmb3IgY29udGludWFsIGxlYXJuaW5nXHJcbiAgICBjb25zdCB3ZWlnaHRzID0gdGhpcy5hZGFwdGVyLm1lcmdlKCkuZmxhdCgpO1xyXG4gICAgdGhpcy5ld2NNYW5hZ2VyLnJlZ2lzdGVyVGFzayhgdGFzay0ke0RhdGUubm93KCl9YCwgd2VpZ2h0cyk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZXBvY2hzOiB0aGlzLmN1cnJlbnRFcG9jaCArIDEsXHJcbiAgICAgIHN0ZXBzOiB0aGlzLmN1cnJlbnRTdGVwLFxyXG4gICAgICBmaW5hbExvc3M6IHRoaXMubWV0cmljcy5hdmdMb3NzKDEwMCksXHJcbiAgICAgIGJlc3RWYWxMb3NzOiB0aGlzLmJlc3RWYWxMb3NzLFxyXG4gICAgICBkdXJhdGlvbk1zOiB0aGlzLm1ldHJpY3MuZHVyYXRpb24oKSxcclxuICAgICAgbG9zc0hpc3Rvcnk6IHRoaXMubWV0cmljcy5nZXRMb3NzSGlzdG9yeSgpLFxyXG4gICAgICB2YWxMb3NzSGlzdG9yeTogdGhpcy5tZXRyaWNzLmdldFZhbExvc3NIaXN0b3J5KCksXHJcbiAgICAgIGVhcmx5U3RvcHBlZCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaW5nbGUgdHJhaW5pbmcgc3RlcFxyXG4gICAqL1xyXG4gIHByaXZhdGUgdHJhaW5TdGVwKGJhdGNoOiBUcmFpbmluZ0JhdGNoKTogbnVtYmVyIHtcclxuICAgIGxldCB0b3RhbExvc3MgPSAwO1xyXG4gICAgY29uc3QgbHIgPSB0aGlzLnNjaGVkdWxlcj8uZ2V0TFIoKSB8fCB0aGlzLmNvbmZpZy5sZWFybmluZ1JhdGU7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBiYXRjaC5pbnB1dHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgaW5wdXQgPSBiYXRjaC5pbnB1dHNbaV07XHJcbiAgICAgIGNvbnN0IHRhcmdldCA9IGJhdGNoLnRhcmdldHNbaV07XHJcbiAgICAgIGNvbnN0IHF1YWxpdHkgPSBiYXRjaC5xdWFsaXRpZXNbaV07XHJcblxyXG4gICAgICAvLyBGb3J3YXJkIHBhc3NcclxuICAgICAgY29uc3Qgb3V0cHV0ID0gdGhpcy5hZGFwdGVyLmZvcndhcmQoaW5wdXQpO1xyXG5cclxuICAgICAgLy8gQ29tcHV0ZSBsb3NzIChNU0Ugd2VpZ2h0ZWQgYnkgcXVhbGl0eSlcclxuICAgICAgY29uc3QgZ3JhZE91dHB1dDogbnVtYmVyW10gPSBbXTtcclxuICAgICAgbGV0IGxvc3MgPSAwO1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG91dHB1dC5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGNvbnN0IGRpZmYgPSBvdXRwdXRbal0gLSAodGFyZ2V0W2pdIHx8IDApO1xyXG4gICAgICAgIGxvc3MgKz0gZGlmZiAqIGRpZmY7XHJcbiAgICAgICAgZ3JhZE91dHB1dC5wdXNoKDIgKiBkaWZmICogcXVhbGl0eSk7IC8vIFF1YWxpdHktd2VpZ2h0ZWQgZ3JhZGllbnRcclxuICAgICAgfVxyXG4gICAgICBsb3NzID0gKGxvc3MgLyBvdXRwdXQubGVuZ3RoKSAqIHF1YWxpdHk7XHJcblxyXG4gICAgICAvLyBBZGQgRVdDIHBlbmFsdHlcclxuICAgICAgY29uc3QgZXdjUGVuYWx0eSA9IHRoaXMuZXdjTWFuYWdlci5jb21wdXRlUGVuYWx0eSh0aGlzLmFkYXB0ZXIubWVyZ2UoKS5mbGF0KCkpO1xyXG4gICAgICBsb3NzICs9IGV3Y1BlbmFsdHkgKiAwLjAwMTtcclxuXHJcbiAgICAgIC8vIEJhY2t3YXJkIHBhc3NcclxuICAgICAgdGhpcy5hZGFwdGVyLmJhY2t3YXJkKGlucHV0LCBncmFkT3V0cHV0LCBscik7XHJcblxyXG4gICAgICB0b3RhbExvc3MgKz0gbG9zcztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdG90YWxMb3NzIC8gYmF0Y2guaW5wdXRzLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRpb24gcGFzc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgdmFsaWRhdGUoYmF0Y2hlczogVHJhaW5pbmdCYXRjaFtdKTogbnVtYmVyIHtcclxuICAgIGxldCB0b3RhbExvc3MgPSAwO1xyXG4gICAgbGV0IGNvdW50ID0gMDtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGJhdGNoIG9mIGJhdGNoZXMpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBiYXRjaC5pbnB1dHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBvdXRwdXQgPSB0aGlzLmFkYXB0ZXIuZm9yd2FyZChiYXRjaC5pbnB1dHNbaV0pO1xyXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGJhdGNoLnRhcmdldHNbaV07XHJcblxyXG4gICAgICAgIGxldCBsb3NzID0gMDtcclxuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG91dHB1dC5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgY29uc3QgZGlmZiA9IG91dHB1dFtqXSAtICh0YXJnZXRbal0gfHwgMCk7XHJcbiAgICAgICAgICBsb3NzICs9IGRpZmYgKiBkaWZmO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0b3RhbExvc3MgKz0gbG9zcyAvIG91dHB1dC5sZW5ndGg7XHJcbiAgICAgICAgY291bnQrKztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjb3VudCA+IDAgPyB0b3RhbExvc3MgLyBjb3VudCA6IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTYXZlIGNoZWNrcG9pbnRcclxuICAgKi9cclxuICBwcml2YXRlIHNhdmVDaGVja3BvaW50KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGVja3BvaW50cy5wdXNoKHtcclxuICAgICAgZXBvY2g6IHRoaXMuY3VycmVudEVwb2NoLFxyXG4gICAgICBzdGVwOiB0aGlzLmN1cnJlbnRTdGVwLFxyXG4gICAgICBsb3NzOiB0aGlzLm1ldHJpY3MuYXZnTG9zcygxMDApLFxyXG4gICAgICB3ZWlnaHRzOiB0aGlzLmFkYXB0ZXIudG9KU09OKCksXHJcbiAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZCBjaGVja3BvaW50XHJcbiAgICovXHJcbiAgbG9hZENoZWNrcG9pbnQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hlY2twb2ludCA9IHRoaXMuY2hlY2twb2ludHNbaW5kZXhdO1xyXG4gICAgaWYgKCFjaGVja3BvaW50KSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5hZGFwdGVyID0gTG9yYUFkYXB0ZXIuZnJvbUpTT04oY2hlY2twb2ludC53ZWlnaHRzKTtcclxuICAgIHRoaXMuY3VycmVudEVwb2NoID0gY2hlY2twb2ludC5lcG9jaDtcclxuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBjaGVja3BvaW50LnN0ZXA7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBjdXJyZW50IG1ldHJpY3NcclxuICAgKi9cclxuICBnZXRNZXRyaWNzKCk6IFRyYWluaW5nTWV0cmljcyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBlcG9jaDogdGhpcy5jdXJyZW50RXBvY2gsXHJcbiAgICAgIHN0ZXA6IHRoaXMuY3VycmVudFN0ZXAsXHJcbiAgICAgIHRyYWluTG9zczogdGhpcy5tZXRyaWNzLmF2Z0xvc3MoMTAwKSxcclxuICAgICAgdmFsTG9zczogdGhpcy5tZXRyaWNzLmF2Z1ZhbExvc3MoMTApLFxyXG4gICAgICBsZWFybmluZ1JhdGU6IHRoaXMuc2NoZWR1bGVyPy5nZXRMUigpIHx8IHRoaXMuY29uZmlnLmxlYXJuaW5nUmF0ZSxcclxuICAgICAgZ3JhZE5vcm06IDAsXHJcbiAgICAgIHN0ZXBzUGVyU2Vjb25kOiB0aGlzLm1ldHJpY3Muc3RlcHNQZXJTZWNvbmQoKSxcclxuICAgICAgZXRhU2Vjb25kczogdGhpcy5tZXRyaWNzLmV0YShcclxuICAgICAgICAodGhpcy5jb25maWcuZXBvY2hzIC0gdGhpcy5jdXJyZW50RXBvY2gpICogdGhpcy5iYXRjaGVzLmxlbmd0aFxyXG4gICAgICApLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBhZGFwdGVyXHJcbiAgICovXHJcbiAgZ2V0QWRhcHRlcigpOiBMb3JhQWRhcHRlciB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IEVXQyBtYW5hZ2VyXHJcbiAgICovXHJcbiAgZ2V0RXdjTWFuYWdlcigpOiBFd2NNYW5hZ2VyIHtcclxuICAgIHJldHVybiB0aGlzLmV3Y01hbmFnZXI7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgY2hlY2twb2ludHNcclxuICAgKi9cclxuICBnZXRDaGVja3BvaW50cygpOiBDaGVja3BvaW50W10ge1xyXG4gICAgcmV0dXJuIFsuLi50aGlzLmNoZWNrcG9pbnRzXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0IHBpcGVsaW5lXHJcbiAgICovXHJcbiAgcmVzZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmJhdGNoZXMgPSBbXTtcclxuICAgIHRoaXMuY2hlY2twb2ludHMgPSBbXTtcclxuICAgIHRoaXMuY3VycmVudEVwb2NoID0gMDtcclxuICAgIHRoaXMuY3VycmVudFN0ZXAgPSAwO1xyXG4gICAgdGhpcy5iZXN0VmFsTG9zcyA9IEluZmluaXR5O1xyXG4gICAgdGhpcy5wYXRpZW5jZUNvdW50ZXIgPSAwO1xyXG4gICAgdGhpcy5tZXRyaWNzLnJlc2V0KCk7XHJcbiAgICB0aGlzLmFkYXB0ZXIucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2h1ZmZsZUJhdGNoZXMoKTogVHJhaW5pbmdCYXRjaFtdIHtcclxuICAgIGNvbnN0IHNodWZmbGVkID0gWy4uLnRoaXMuYmF0Y2hlc107XHJcbiAgICBmb3IgKGxldCBpID0gc2h1ZmZsZWQubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkge1xyXG4gICAgICBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGkgKyAxKSk7XHJcbiAgICAgIFtzaHVmZmxlZFtpXSwgc2h1ZmZsZWRbal1dID0gW3NodWZmbGVkW2pdLCBzaHVmZmxlZFtpXV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc2h1ZmZsZWQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogVHJhaW5pbmcgRmFjdG9yeVxyXG4gKlxyXG4gKiBDcmVhdGUgcHJlLWNvbmZpZ3VyZWQgdHJhaW5pbmcgcGlwZWxpbmVzIGZvciBjb21tb24gc2NlbmFyaW9zLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRyYWluaW5nRmFjdG9yeSB7XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHBpcGVsaW5lIGZvciBxdWljayBmaW5lLXR1bmluZ1xyXG4gICAqL1xyXG4gIHN0YXRpYyBxdWlja0ZpbmV0dW5lKCk6IFRyYWluaW5nUGlwZWxpbmUge1xyXG4gICAgcmV0dXJuIG5ldyBUcmFpbmluZ1BpcGVsaW5lKHtcclxuICAgICAgbGVhcm5pbmdSYXRlOiAwLjAxLFxyXG4gICAgICBlcG9jaHM6IDMsXHJcbiAgICAgIGJhdGNoU2l6ZTogMTYsXHJcbiAgICAgIHNjaGVkdWxlcjogJ2NvbnN0YW50JyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHBpcGVsaW5lIGZvciBkZWVwIHRyYWluaW5nXHJcbiAgICovXHJcbiAgc3RhdGljIGRlZXBUcmFpbmluZygpOiBUcmFpbmluZ1BpcGVsaW5lIHtcclxuICAgIHJldHVybiBuZXcgVHJhaW5pbmdQaXBlbGluZSh7XHJcbiAgICAgIGxlYXJuaW5nUmF0ZTogMC4wMDEsXHJcbiAgICAgIGVwb2NoczogNTAsXHJcbiAgICAgIGJhdGNoU2l6ZTogMzIsXHJcbiAgICAgIHNjaGVkdWxlcjogJ3dhcm11cCcsXHJcbiAgICAgIHdhcm11cFN0ZXBzOiA1MDAsXHJcbiAgICAgIGVhcmx5U3RvcHBpbmdQYXRpZW5jZTogNSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHBpcGVsaW5lIGZvciBjb250aW51YWwgbGVhcm5pbmdcclxuICAgKi9cclxuICBzdGF0aWMgY29udGludWFsTGVhcm5pbmcoZXdjTGFtYmRhOiBudW1iZXIgPSA1MDAwKTogVHJhaW5pbmdQaXBlbGluZSB7XHJcbiAgICByZXR1cm4gbmV3IFRyYWluaW5nUGlwZWxpbmUoe1xyXG4gICAgICBsZWFybmluZ1JhdGU6IDAuMDAwNSxcclxuICAgICAgZXBvY2hzOiAxMCxcclxuICAgICAgYmF0Y2hTaXplOiAxNixcclxuICAgICAgc2NoZWR1bGVyOiAnY29zaW5lJyxcclxuICAgICAgZXdjTGFtYmRhLFxyXG4gICAgICBlYXJseVN0b3BwaW5nUGF0aWVuY2U6IDEwLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgcGlwZWxpbmUgZm9yIGZlZGVyYXRlZCBhZ2dyZWdhdGlvblxyXG4gICAqL1xyXG4gIHN0YXRpYyBmZWRlcmF0ZWRBZ2dyZWdhdGlvbigpOiBUcmFpbmluZ1BpcGVsaW5lIHtcclxuICAgIHJldHVybiBuZXcgVHJhaW5pbmdQaXBlbGluZSh7XHJcbiAgICAgIGxlYXJuaW5nUmF0ZTogMC4wMDAxLFxyXG4gICAgICBlcG9jaHM6IDUsXHJcbiAgICAgIGJhdGNoU2l6ZTogNjQsXHJcbiAgICAgIHNjaGVkdWxlcjogJ2xpbmVhcicsXHJcbiAgICAgIGV3Y0xhbWJkYTogMjAwMCxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
610
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW5pbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhaW5pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRzs7O0FBRUgsMkJBQTREO0FBQzVELCtCQUErQjtBQUUvQixpQ0FBcUM7QUFDckMsaUNBQW9DO0FBRXBDOztHQUVHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBNkI7SUFDeEQsWUFBWSxFQUFFLEtBQUs7SUFDbkIsU0FBUyxFQUFFLEVBQUU7SUFDYixNQUFNLEVBQUUsRUFBRTtJQUNWLFNBQVMsRUFBRSxRQUFRO0lBQ25CLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFlBQVksRUFBRSxHQUFHO0lBQ2pCLHFCQUFxQixFQUFFLENBQUM7SUFDeEIsa0JBQWtCLEVBQUUsQ0FBQztJQUNyQixTQUFTLEVBQUUsSUFBSTtJQUNmLGVBQWUsRUFBRSxHQUFHO0lBQ3BCLGtCQUFrQixFQUFFLEVBQUU7Q0FDdkIsQ0FBQztBQXNFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxDQUFDO0FBRXBDOztHQUVHO0FBQ0gsTUFBYSxXQUFXO0lBTXRCLFlBQVksTUFBZ0MsRUFBRSxVQUFrQjtRQUh4RCxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUk5QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNILFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM5QixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBRXhCLEtBQUssUUFBUTtnQkFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFbkUsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFFN0YsS0FBSyxRQUFRO2dCQUNYLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUMvQyxPQUFPLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3ZFLENBQUM7Z0JBQ0QsNEJBQTRCO2dCQUM1QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO2dCQUM3RCxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxVQUFVLENBQUM7Z0JBQ2hGLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFFeEU7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUFyREQsa0NBcURDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGNBQWM7SUFBM0I7UUFDVSxnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUMzQixtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5QixvQkFBZSxHQUFhLEVBQUUsQ0FBQztRQUMvQixjQUFTLEdBQVcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQy9CLGNBQVMsR0FBYSxFQUFFLENBQUM7SUFxR25DLENBQUM7SUFuR0M7O09BRUc7SUFDSCxVQUFVLENBQUMsSUFBWTtRQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhLENBQUMsSUFBWTtRQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsSUFBWTtRQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsRUFBVTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsSUFBWSxHQUFHO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVUsQ0FBQyxJQUFZLEVBQUU7UUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pILE9BQU8sV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUcsQ0FBQyxjQUFzQjtRQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbEMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDdEYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYztRQUNaLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUI7UUFDZixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7Q0FDRjtBQTFHRCx3Q0EwR0M7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFlM0IsWUFBWSxNQUF1QixFQUFFLE9BQXFCO1FBVmxELGNBQVMsR0FBdUIsSUFBSSxDQUFDO1FBQ3JDLFlBQU8sR0FBb0IsRUFBRSxDQUFDO1FBQzlCLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQUMvQixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixnQkFBVyxHQUFXLFFBQVEsQ0FBQztRQUMvQixvQkFBZSxHQUFXLENBQUMsQ0FBQztRQUNwQywrRUFBK0U7UUFDdkUsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFHckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsdUJBQXVCLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxJQUFJLGtCQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksaUJBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsTUFBbUIsRUFBRSxPQUFvQixFQUFFLFNBQW1CO1FBQ3JFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxJQUFxRTtRQUMzRSxxQkFBcUI7UUFDckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDNUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLFFBQVEsQ0FDWCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUN2QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUN4QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUMxQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxLQUFLO1FBQ0gsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQiwwRUFBMEU7UUFDMUUsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXhELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMxRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IseURBQXlEO1lBQ3pELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXJELElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztRQUV6QixLQUFLLElBQUksS0FBSyxHQUFHLFVBQVUsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNqRSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUUxQixrQkFBa0I7WUFDbEIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBRTlDLHVCQUF1QjtZQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNqRixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRXJELGlCQUFpQjtZQUNqQixLQUFLLE1BQU0sS0FBSyxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDO1lBRUQsYUFBYTtZQUNiLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBRXBDLGlCQUFpQjtnQkFDakIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztvQkFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7b0JBQ3pCLHFFQUFxRTtvQkFDckUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUM7d0JBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO29CQUN0RCxDQUFDO2dCQUNILENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ3ZCLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUM7d0JBQzlELFlBQVksR0FBRyxJQUFJLENBQUM7d0JBQ3BCLE1BQU07b0JBQ1IsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUVELGFBQWE7WUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFM0IsMkNBQTJDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU1RCxPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQztZQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUNwQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ25DLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUMxQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtZQUNoRCxZQUFZO1NBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLFNBQVMsQ0FBQyxLQUFvQjtRQUNwQyxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUUvRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM3QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVuQyxlQUFlO1lBQ2YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFM0MseUNBQXlDO1lBQ3pDLE1BQU0sVUFBVSxHQUFhLEVBQUUsQ0FBQztZQUNoQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7WUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN2QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyw0QkFBNEI7WUFDbkUsQ0FBQztZQUNELElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDO1lBRXhDLGtCQUFrQjtZQUNsQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDL0UsSUFBSSxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFFM0IsZ0JBQWdCO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFN0MsU0FBUyxJQUFJLElBQUksQ0FBQztRQUNwQixDQUFDO1FBRUQsT0FBTyxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssUUFBUSxDQUFDLE9BQXdCO1FBQ3ZDLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFZCxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzVCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUM3QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRWhDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztnQkFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUN2QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQzFDLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixDQUFDO2dCQUNELFNBQVMsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDbEMsS0FBSyxFQUFFLENBQUM7WUFDVixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxjQUFjLENBQUMsSUFBYTtRQUMxQixNQUFNLFVBQVUsR0FBZTtZQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ3RCLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDL0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQzlCLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO1NBQ3RCLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsQyxNQUFNLE1BQU0sR0FBeUI7WUFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDbEMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO1lBQ3ZCLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7U0FDdEIsQ0FBQztRQUVGLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxNQUFNLFFBQVEsR0FBRztnQkFDZixNQUFNLEVBQUUsbUJBQW1CO2dCQUMzQixPQUFPLEVBQUUseUJBQXlCO2dCQUNsQyxrRUFBa0U7Z0JBQ2xFLHFFQUFxRTtnQkFDckUsTUFBTSxFQUFFO29CQUNOLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtvQkFDcEMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO29CQUN0QyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJO2lCQUNwQztnQkFDRCxjQUFjLEVBQUU7b0JBQ2QsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWTtvQkFDdEMsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztpQkFDakM7Z0JBQ0QsR0FBRyxVQUFVO2FBQ2QsQ0FBQztZQUNGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUMsSUFBQSxjQUFTLEVBQUMsSUFBQSxjQUFPLEVBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5QyxJQUFBLGtCQUFhLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN6QyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNuQixNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsY0FBYyxDQUFDLFdBQTRCO1FBQ3pDLElBQUksVUFBa0MsQ0FBQztRQUV2QyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDO2dCQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBQSxpQkFBWSxFQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLE1BQU0sRUFBRSxNQUFNLEtBQUssbUJBQW1CLElBQUksT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNqRixPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDO2dCQUNELElBQUksT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQy9FLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7b0JBQ3hCLElBQ0UsQ0FBQyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTt3QkFDekMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTt3QkFDM0MsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksRUFDeEMsQ0FBQzt3QkFDRCxPQUFPLEtBQUssQ0FBQztvQkFDZixDQUFDO2dCQUNILENBQUM7Z0JBQ0QsVUFBVSxHQUFHLE1BQW9CLENBQUM7WUFDcEMsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUU5QixJQUFJLENBQUMsT0FBTyxHQUFHLGtCQUFXLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxVQUFVLENBQUMsSUFBWTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDUixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3hCLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVztZQUN0QixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ3BDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDcEMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZO1lBQ2pFLFFBQVEsRUFBRSxDQUFDO1lBQ1gsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQzdDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FDMUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQy9EO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjO1FBQ1osT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxLQUFLLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM3QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0Y7QUFuWUQsNENBbVlDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsZUFBZTtJQUMxQjs7T0FFRztJQUNILE1BQU0sQ0FBQyxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQztZQUMxQixZQUFZLEVBQUUsSUFBSTtZQUNsQixNQUFNLEVBQUUsQ0FBQztZQUNULFNBQVMsRUFBRSxFQUFFO1lBQ2IsU0FBUyxFQUFFLFVBQVU7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFlBQVk7UUFDakIsT0FBTyxJQUFJLGdCQUFnQixDQUFDO1lBQzFCLFlBQVksRUFBRSxLQUFLO1lBQ25CLE1BQU0sRUFBRSxFQUFFO1lBQ1YsU0FBUyxFQUFFLEVBQUU7WUFDYixTQUFTLEVBQUUsUUFBUTtZQUNuQixXQUFXLEVBQUUsR0FBRztZQUNoQixxQkFBcUIsRUFBRSxDQUFDO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxZQUFvQixJQUFJO1FBQy9DLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQztZQUMxQixZQUFZLEVBQUUsTUFBTTtZQUNwQixNQUFNLEVBQUUsRUFBRTtZQUNWLFNBQVMsRUFBRSxFQUFFO1lBQ2IsU0FBUyxFQUFFLFFBQVE7WUFDbkIsU0FBUztZQUNULHFCQUFxQixFQUFFLEVBQUU7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQjtRQUN6QixPQUFPLElBQUksZ0JBQWdCLENBQUM7WUFDMUIsWUFBWSxFQUFFLE1BQU07WUFDcEIsTUFBTSxFQUFFLENBQUM7WUFDVCxTQUFTLEVBQUUsRUFBRTtZQUNiLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXJERCwwQ0FxREMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRyYWluaW5nIFBpcGVsaW5lIGZvciBTT05BXG4gKlxuICogQ29tcHJlaGVuc2l2ZSB0cmFpbmluZyBpbmZyYXN0cnVjdHVyZSB3aXRoIG1ldHJpY3MgdHJhY2tpbmcsXG4gKiBsZWFybmluZyByYXRlIHNjaGVkdWxpbmcsIGFuZCBjaGVja3BvaW50IG1hbmFnZW1lbnQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IFRyYWluaW5nUGlwZWxpbmUsIFRyYWluaW5nQ29uZmlnIH0gZnJvbSAnQHJ1dmVjdG9yL3J1dmxsbSc7XG4gKlxuICogY29uc3QgcGlwZWxpbmUgPSBuZXcgVHJhaW5pbmdQaXBlbGluZSh7XG4gKiAgIGxlYXJuaW5nUmF0ZTogMC4wMDEsXG4gKiAgIGJhdGNoU2l6ZTogMzIsXG4gKiAgIGVwb2NoczogMTAsXG4gKiB9KTtcbiAqXG4gKiAvLyBBZGQgdHJhaW5pbmcgZGF0YVxuICogcGlwZWxpbmUuYWRkQmF0Y2goaW5wdXRzLCB0YXJnZXRzLCBxdWFsaXRpZXMpO1xuICpcbiAqIC8vIFJ1biB0cmFpbmluZ1xuICogY29uc3QgcmVzdWx0ID0gcGlwZWxpbmUudHJhaW4oKTtcbiAqIGNvbnNvbGUubG9nKGBGaW5hbCBsb3NzOiAke3Jlc3VsdC5maW5hbExvc3N9YCk7XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgeyB3cml0ZUZpbGVTeW5jLCByZWFkRmlsZVN5bmMsIG1rZGlyU3luYyB9IGZyb20gJ2ZzJztcbmltcG9ydCB7IGRpcm5hbWUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IEVtYmVkZGluZywgVHJhaW5pbmdDb25maWcsIFRyYWluaW5nUmVzdWx0IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBMb3JhQWRhcHRlciB9IGZyb20gJy4vbG9yYSc7XG5pbXBvcnQgeyBFd2NNYW5hZ2VyIH0gZnJvbSAnLi9zb25hJztcblxuLyoqXG4gKiBEZWZhdWx0IHRyYWluaW5nIGNvbmZpZ1xuICovXG5jb25zdCBERUZBVUxUX1RSQUlOSU5HX0NPTkZJRzogUmVxdWlyZWQ8VHJhaW5pbmdDb25maWc+ID0ge1xuICBsZWFybmluZ1JhdGU6IDAuMDAxLFxuICBiYXRjaFNpemU6IDMyLFxuICBlcG9jaHM6IDEwLFxuICBzY2hlZHVsZXI6ICdjb3NpbmUnLFxuICB3YXJtdXBTdGVwczogMTAwLFxuICB3ZWlnaHREZWNheTogMC4wMSxcbiAgZ3JhZGllbnRDbGlwOiAxLjAsXG4gIGVhcmx5U3RvcHBpbmdQYXRpZW5jZTogMyxcbiAgY2hlY2twb2ludEludGVydmFsOiAxLFxuICBld2NMYW1iZGE6IDIwMDAsXG4gIHZhbGlkYXRpb25TcGxpdDogMC4xLFxuICBrZWVwQmVzdENoZWNrcG9pbnQ6ICcnLFxufTtcblxuLyoqXG4gKiBUcmFpbmluZyBtZXRyaWNzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhaW5pbmdNZXRyaWNzIHtcbiAgLyoqIEN1cnJlbnQgZXBvY2ggKi9cbiAgZXBvY2g6IG51bWJlcjtcbiAgLyoqIEN1cnJlbnQgc3RlcCAqL1xuICBzdGVwOiBudW1iZXI7XG4gIC8qKiBUcmFpbmluZyBsb3NzICovXG4gIHRyYWluTG9zczogbnVtYmVyO1xuICAvKiogVmFsaWRhdGlvbiBsb3NzICovXG4gIHZhbExvc3M6IG51bWJlcjtcbiAgLyoqIExlYXJuaW5nIHJhdGUgKi9cbiAgbGVhcm5pbmdSYXRlOiBudW1iZXI7XG4gIC8qKiBHcmFkaWVudCBub3JtICovXG4gIGdyYWROb3JtOiBudW1iZXI7XG4gIC8qKiBTdGVwcyBwZXIgc2Vjb25kICovXG4gIHN0ZXBzUGVyU2Vjb25kOiBudW1iZXI7XG4gIC8qKiBFVEEgaW4gc2Vjb25kcyAqL1xuICBldGFTZWNvbmRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogVHJhaW5pbmcgZGF0YSBiYXRjaFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYWluaW5nQmF0Y2gge1xuICAvKiogSW5wdXQgZW1iZWRkaW5ncyAqL1xuICBpbnB1dHM6IEVtYmVkZGluZ1tdO1xuICAvKiogVGFyZ2V0IG91dHB1dHMgKi9cbiAgdGFyZ2V0czogRW1iZWRkaW5nW107XG4gIC8qKiBRdWFsaXR5IHNjb3JlcyAqL1xuICBxdWFsaXRpZXM6IG51bWJlcltdO1xufVxuXG4vKipcbiAqIENoZWNrcG9pbnQgZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrcG9pbnQge1xuICAvKiogRXBvY2ggbnVtYmVyICovXG4gIGVwb2NoOiBudW1iZXI7XG4gIC8qKiBTdGVwIG51bWJlciAqL1xuICBzdGVwOiBudW1iZXI7XG4gIC8qKiBUcmFpbmluZyBsb3NzIGF0IGNoZWNrcG9pbnQgKi9cbiAgbG9zczogbnVtYmVyO1xuICAvKiogTW9kZWwgd2VpZ2h0cyAoc2VyaWFsaXplZCkgKi9cbiAgd2VpZ2h0czogc3RyaW5nO1xuICAvKiogVGltZXN0YW1wICovXG4gIHRpbWVzdGFtcDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBhIHNhdmVDaGVja3BvaW50KCkgY2FsbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja3BvaW50U2F2ZVJlc3VsdCB7XG4gIC8qKiBJbmRleCBvZiB0aGUgY2hlY2twb2ludCBpbiB0aGUgaW4tbWVtb3J5IGNoZWNrcG9pbnQgbGlzdCAqL1xuICBpbmRleDogbnVtYmVyO1xuICAvKiogRXBvY2ggdGhlIGNoZWNrcG9pbnQgY2FwdHVyZWQgKi9cbiAgZXBvY2g6IG51bWJlcjtcbiAgLyoqIFN0ZXAgdGhlIGNoZWNrcG9pbnQgY2FwdHVyZWQgKi9cbiAgc3RlcDogbnVtYmVyO1xuICAvKiogVHJhaW5pbmcgbG9zcyBhdCBjaGVja3BvaW50IHRpbWUgKi9cbiAgbG9zczogbnVtYmVyO1xuICAvKiogQWJzb2x1dGUgb3IgYXMtZ2l2ZW4gZmlsZSBwYXRoLCB3aGVuIHBlcnNpc3RlZCB0byBkaXNrICovXG4gIHBhdGg/OiBzdHJpbmc7XG4gIC8qKiBTZXJpYWxpemVkIHNpemUgaW4gYnl0ZXMsIHdoZW4gcGVyc2lzdGVkIHRvIGRpc2sgKi9cbiAgYnl0ZXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogT24tZGlzayBjaGVja3BvaW50IGVudmVsb3BlIHZlcnNpb24uXG4gKlxuICogdjEg4oCUIHtmb3JtYXQsIHZlcnNpb246MSwgZXBvY2gsIHN0ZXAsIGxvc3MsIHdlaWdodHMsIHRpbWVzdGFtcH0uIE5vIGFkYXB0ZXJcbiAqICAgICAgZ2VvbWV0cnksIHNvIGxvYWRDaGVja3BvaW50KCkgY291bGQgbm90IGRldGVjdCBhIHNoYXBlIG1pc21hdGNoLlxuICogdjIg4oCUIGFkZHMge2NvbmZpZzp7aW5wdXREaW0sIG91dHB1dERpbSwgcmFua30sIHBpcGVsaW5lQ29uZmlnOntsZWFybmluZ1JhdGUsXG4gKiAgICAgIGJhdGNoU2l6ZX19IHNvIGxvYWRDaGVja3BvaW50KCkgY2FuIHJlamVjdCB3ZWlnaHRzIHRoYXQgZG9uJ3QgZml0IHRoZVxuICogICAgICBjdXJyZW50IGFkYXB0ZXIuIHYxIGZpbGVzIHN0aWxsIGxvYWQgKGJhY2stY29tcGF0KSB3aXRoIG5vIHNoYXBlIGNoZWNrLlxuICovXG5jb25zdCBDSEVDS1BPSU5UX0ZPUk1BVF9WRVJTSU9OID0gMjtcblxuLyoqXG4gKiBMZWFybmluZyBSYXRlIFNjaGVkdWxlclxuICovXG5leHBvcnQgY2xhc3MgTFJTY2hlZHVsZXIge1xuICBwcml2YXRlIGNvbmZpZzogUmVxdWlyZWQ8VHJhaW5pbmdDb25maWc+O1xuICBwcml2YXRlIGluaXRpYWxMUjogbnVtYmVyO1xuICBwcml2YXRlIGN1cnJlbnRTdGVwOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIHRvdGFsU3RlcHM6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IFJlcXVpcmVkPFRyYWluaW5nQ29uZmlnPiwgdG90YWxTdGVwczogbnVtYmVyKSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgdGhpcy5pbml0aWFsTFIgPSBjb25maWcubGVhcm5pbmdSYXRlO1xuICAgIHRoaXMudG90YWxTdGVwcyA9IHRvdGFsU3RlcHM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxlYXJuaW5nIHJhdGUgZm9yIGN1cnJlbnQgc3RlcFxuICAgKi9cbiAgZ2V0TFIoKTogbnVtYmVyIHtcbiAgICBzd2l0Y2ggKHRoaXMuY29uZmlnLnNjaGVkdWxlcikge1xuICAgICAgY2FzZSAnY29uc3RhbnQnOlxuICAgICAgICByZXR1cm4gdGhpcy5pbml0aWFsTFI7XG5cbiAgICAgIGNhc2UgJ2xpbmVhcic6XG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxMUiAqICgxIC0gdGhpcy5jdXJyZW50U3RlcCAvIHRoaXMudG90YWxTdGVwcyk7XG5cbiAgICAgIGNhc2UgJ2Nvc2luZSc6XG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxMUiAqIDAuNSAqICgxICsgTWF0aC5jb3MoTWF0aC5QSSAqIHRoaXMuY3VycmVudFN0ZXAgLyB0aGlzLnRvdGFsU3RlcHMpKTtcblxuICAgICAgY2FzZSAnd2FybXVwJzpcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFN0ZXAgPCB0aGlzLmNvbmZpZy53YXJtdXBTdGVwcykge1xuICAgICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxMUiAqICh0aGlzLmN1cnJlbnRTdGVwIC8gdGhpcy5jb25maWcud2FybXVwU3RlcHMpO1xuICAgICAgICB9XG4gICAgICAgIC8vIENvc2luZSBkZWNheSBhZnRlciB3YXJtdXBcbiAgICAgICAgY29uc3QgZGVjYXlTdGVwcyA9IHRoaXMudG90YWxTdGVwcyAtIHRoaXMuY29uZmlnLndhcm11cFN0ZXBzO1xuICAgICAgICBjb25zdCBkZWNheVByb2dyZXNzID0gKHRoaXMuY3VycmVudFN0ZXAgLSB0aGlzLmNvbmZpZy53YXJtdXBTdGVwcykgLyBkZWNheVN0ZXBzO1xuICAgICAgICByZXR1cm4gdGhpcy5pbml0aWFsTFIgKiAwLjUgKiAoMSArIE1hdGguY29zKE1hdGguUEkgKiBkZWNheVByb2dyZXNzKSk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxMUjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RlcCB0aGUgc2NoZWR1bGVyXG4gICAqL1xuICBzdGVwKCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFN0ZXArKztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBzY2hlZHVsZXJcbiAgICovXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFN0ZXAgPSAwO1xuICB9XG59XG5cbi8qKlxuICogVHJhaW5pbmcgTWV0cmljcyBUcmFja2VyXG4gKi9cbmV4cG9ydCBjbGFzcyBNZXRyaWNzVHJhY2tlciB7XG4gIHByaXZhdGUgbG9zc0hpc3Rvcnk6IG51bWJlcltdID0gW107XG4gIHByaXZhdGUgdmFsTG9zc0hpc3Rvcnk6IG51bWJlcltdID0gW107XG4gIHByaXZhdGUgZ3JhZE5vcm1IaXN0b3J5OiBudW1iZXJbXSA9IFtdO1xuICBwcml2YXRlIHN0YXJ0VGltZTogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgcHJpdmF0ZSBzdGVwVGltZXM6IG51bWJlcltdID0gW107XG5cbiAgLyoqXG4gICAqIFJlY29yZCB0cmFpbmluZyBsb3NzXG4gICAqL1xuICByZWNvcmRMb3NzKGxvc3M6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubG9zc0hpc3RvcnkucHVzaChsb3NzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvcmQgdmFsaWRhdGlvbiBsb3NzXG4gICAqL1xuICByZWNvcmRWYWxMb3NzKGxvc3M6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudmFsTG9zc0hpc3RvcnkucHVzaChsb3NzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvcmQgZ3JhZGllbnQgbm9ybVxuICAgKi9cbiAgcmVjb3JkR3JhZE5vcm0obm9ybTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5ncmFkTm9ybUhpc3RvcnkucHVzaChub3JtKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvcmQgc3RlcCB0aW1lXG4gICAqL1xuICByZWNvcmRTdGVwVGltZShtczogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwVGltZXMucHVzaChtcyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGF2ZXJhZ2UgbG9zcyBvdmVyIGxhc3QgTiBzdGVwc1xuICAgKi9cbiAgYXZnTG9zcyhuOiBudW1iZXIgPSAxMDApOiBudW1iZXIge1xuICAgIGNvbnN0IHJlY2VudCA9IHRoaXMubG9zc0hpc3Rvcnkuc2xpY2UoLW4pO1xuICAgIHJldHVybiByZWNlbnQubGVuZ3RoID4gMCA/IHJlY2VudC5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKSAvIHJlY2VudC5sZW5ndGggOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhdmVyYWdlIHZhbGlkYXRpb24gbG9zc1xuICAgKi9cbiAgYXZnVmFsTG9zcyhuOiBudW1iZXIgPSAxMCk6IG51bWJlciB7XG4gICAgY29uc3QgcmVjZW50ID0gdGhpcy52YWxMb3NzSGlzdG9yeS5zbGljZSgtbik7XG4gICAgcmV0dXJuIHJlY2VudC5sZW5ndGggPiAwID8gcmVjZW50LnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApIC8gcmVjZW50Lmxlbmd0aCA6IDA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHN0ZXBzIHBlciBzZWNvbmRcbiAgICovXG4gIHN0ZXBzUGVyU2Vjb25kKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuc3RlcFRpbWVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDA7XG4gICAgY29uc3QgYXZnU3RlcFRpbWUgPSB0aGlzLnN0ZXBUaW1lcy5zbGljZSgtMTAwKS5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKSAvIE1hdGgubWluKHRoaXMuc3RlcFRpbWVzLmxlbmd0aCwgMTAwKTtcbiAgICByZXR1cm4gYXZnU3RlcFRpbWUgPiAwID8gMTAwMCAvIGF2Z1N0ZXBUaW1lIDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgRVRBIGluIHNlY29uZHNcbiAgICovXG4gIGV0YShyZW1haW5pbmdTdGVwczogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBzcHMgPSB0aGlzLnN0ZXBzUGVyU2Vjb25kKCk7XG4gICAgcmV0dXJuIHNwcyA+IDAgPyByZW1haW5pbmdTdGVwcyAvIHNwcyA6IDA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGJlc3QgdmFsaWRhdGlvbiBsb3NzXG4gICAqL1xuICBiZXN0VmFsTG9zcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnZhbExvc3NIaXN0b3J5Lmxlbmd0aCA+IDAgPyBNYXRoLm1pbiguLi50aGlzLnZhbExvc3NIaXN0b3J5KSA6IEluZmluaXR5O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0b3RhbCBkdXJhdGlvblxuICAgKi9cbiAgZHVyYXRpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gRGF0ZS5ub3coKSAtIHRoaXMuc3RhcnRUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgbG9zcyBoaXN0b3J5XG4gICAqL1xuICBnZXRMb3NzSGlzdG9yeSgpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmxvc3NIaXN0b3J5XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHZhbGlkYXRpb24gbG9zcyBoaXN0b3J5XG4gICAqL1xuICBnZXRWYWxMb3NzSGlzdG9yeSgpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnZhbExvc3NIaXN0b3J5XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0cmFja2VyXG4gICAqL1xuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvc3NIaXN0b3J5ID0gW107XG4gICAgdGhpcy52YWxMb3NzSGlzdG9yeSA9IFtdO1xuICAgIHRoaXMuZ3JhZE5vcm1IaXN0b3J5ID0gW107XG4gICAgdGhpcy5zdGVwVGltZXMgPSBbXTtcbiAgICB0aGlzLnN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUcmFpbmluZyBQaXBlbGluZVxuICpcbiAqIEZ1bGwgdHJhaW5pbmcgaW5mcmFzdHJ1Y3R1cmUgZm9yIFNPTkEgbW9kZWxzLlxuICovXG5leHBvcnQgY2xhc3MgVHJhaW5pbmdQaXBlbGluZSB7XG4gIHByaXZhdGUgY29uZmlnOiBSZXF1aXJlZDxUcmFpbmluZ0NvbmZpZz47XG4gIHByaXZhdGUgYWRhcHRlcjogTG9yYUFkYXB0ZXI7XG4gIHByaXZhdGUgZXdjTWFuYWdlcjogRXdjTWFuYWdlcjtcbiAgcHJpdmF0ZSBtZXRyaWNzOiBNZXRyaWNzVHJhY2tlcjtcbiAgcHJpdmF0ZSBzY2hlZHVsZXI6IExSU2NoZWR1bGVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgYmF0Y2hlczogVHJhaW5pbmdCYXRjaFtdID0gW107XG4gIHByaXZhdGUgY2hlY2twb2ludHM6IENoZWNrcG9pbnRbXSA9IFtdO1xuICBwcml2YXRlIGN1cnJlbnRFcG9jaDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBjdXJyZW50U3RlcDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBiZXN0VmFsTG9zczogbnVtYmVyID0gSW5maW5pdHk7XG4gIHByaXZhdGUgcGF0aWVuY2VDb3VudGVyOiBudW1iZXIgPSAwO1xuICAvKiogU2V0IGJ5IHJlc3VtZUZyb20oKTsgbWFrZXMgdGhlIG5leHQgdHJhaW4oKSBjb250aW51ZSBpbnN0ZWFkIG9mIHJlc3RhcnQuICovXG4gIHByaXZhdGUgcmVzdW1lUGVuZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz86IFRyYWluaW5nQ29uZmlnLCBhZGFwdGVyPzogTG9yYUFkYXB0ZXIpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHsgLi4uREVGQVVMVF9UUkFJTklOR19DT05GSUcsIC4uLmNvbmZpZyB9O1xuICAgIHRoaXMuYWRhcHRlciA9IGFkYXB0ZXIgfHwgbmV3IExvcmFBZGFwdGVyKHsgcmFuazogOCB9KTtcbiAgICB0aGlzLmV3Y01hbmFnZXIgPSBuZXcgRXdjTWFuYWdlcih0aGlzLmNvbmZpZy5ld2NMYW1iZGEpO1xuICAgIHRoaXMubWV0cmljcyA9IG5ldyBNZXRyaWNzVHJhY2tlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0cmFpbmluZyBiYXRjaFxuICAgKi9cbiAgYWRkQmF0Y2goaW5wdXRzOiBFbWJlZGRpbmdbXSwgdGFyZ2V0czogRW1iZWRkaW5nW10sIHF1YWxpdGllczogbnVtYmVyW10pOiB2b2lkIHtcbiAgICB0aGlzLmJhdGNoZXMucHVzaCh7IGlucHV0cywgdGFyZ2V0cywgcXVhbGl0aWVzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0cmFpbmluZyBkYXRhXG4gICAqL1xuICBhZGREYXRhKGRhdGE6IEFycmF5PHsgaW5wdXQ6IEVtYmVkZGluZzsgdGFyZ2V0OiBFbWJlZGRpbmc7IHF1YWxpdHk6IG51bWJlciB9Pik6IHZvaWQge1xuICAgIC8vIEdyb3VwIGludG8gYmF0Y2hlc1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkgKz0gdGhpcy5jb25maWcuYmF0Y2hTaXplKSB7XG4gICAgICBjb25zdCBiYXRjaCA9IGRhdGEuc2xpY2UoaSwgaSArIHRoaXMuY29uZmlnLmJhdGNoU2l6ZSk7XG4gICAgICB0aGlzLmFkZEJhdGNoKFxuICAgICAgICBiYXRjaC5tYXAoZCA9PiBkLmlucHV0KSxcbiAgICAgICAgYmF0Y2gubWFwKGQgPT4gZC50YXJnZXQpLFxuICAgICAgICBiYXRjaC5tYXAoZCA9PiBkLnF1YWxpdHkpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gdHJhaW5pbmcuXG4gICAqXG4gICAqIFdoZW4ge0BsaW5rIHJlc3VtZUZyb219IHByaW1lZCB0aGUgcGlwZWxpbmUsIHRoaXMgY29udGludWVzIGZyb20gdGhlXG4gICAqIHJlc3RvcmVkIGVwb2NoIChydW5uaW5nIHRoZSByZW1haW5pbmcgZXBvY2hzIG9mIGBjb25maWcuZXBvY2hzYCkgYW5kXG4gICAqIGFkdmFuY2VzIHRoZSBMUiBzY2hlZHVsZXIgdG8gdGhlIHJlc3RvcmVkIHN0ZXAgc28gdGhlIHNjaGVkdWxlIGlzXG4gICAqIHVuYnJva2VuOyBtZXRyaWNzIGhpc3RvcnkgaXMgcHJlc2VydmVkLiBXaXRob3V0IGEgcmVzdW1lIHRoZSBydW4gaXNcbiAgICogdW5jaGFuZ2VkIGZyb20gYSBmcmVzaCBzdGFydCDigJQgc2FtZSByZXNldCwgc2FtZSBzY2hlZHVsZXIsIHNhbWUgcmVzdWx0XG4gICAqIHNoYXBlIGFzIGJlZm9yZSB0aGlzIG1ldGhvZCBsZWFybmVkIHRvIHJlc3VtZS5cbiAgICovXG4gIHRyYWluKCk6IFRyYWluaW5nUmVzdWx0IHtcbiAgICBjb25zdCByZXN1bWluZyA9IHRoaXMucmVzdW1lUGVuZGluZztcbiAgICB0aGlzLnJlc3VtZVBlbmRpbmcgPSBmYWxzZTtcbiAgICAvLyBjdXJyZW50RXBvY2ggaXMgdGhlIGxhc3QgQ09NUExFVEVEIGVwb2NoIGluZGV4LCBzbyByZXN1bWUgdGhlIG5leHQgb25lLlxuICAgIGNvbnN0IHN0YXJ0RXBvY2ggPSByZXN1bWluZyA/IHRoaXMuY3VycmVudEVwb2NoICsgMSA6IDA7XG5cbiAgICBjb25zdCB0b3RhbFN0ZXBzID0gdGhpcy5iYXRjaGVzLmxlbmd0aCAqIHRoaXMuY29uZmlnLmVwb2NocztcbiAgICB0aGlzLnNjaGVkdWxlciA9IG5ldyBMUlNjaGVkdWxlcih0aGlzLmNvbmZpZywgdG90YWxTdGVwcyk7XG4gICAgaWYgKHJlc3VtaW5nKSB7XG4gICAgICAvLyBGYXN0LWZvcndhcmQgdGhlIGZyZXNoIHNjaGVkdWxlciB0byB0aGUgcmVzdG9yZWQgc3RlcC5cbiAgICAgIGZvciAobGV0IHMgPSAwOyBzIDwgdGhpcy5jdXJyZW50U3RlcCAmJiBzIDwgdG90YWxTdGVwczsgcysrKSB7XG4gICAgICAgIHRoaXMuc2NoZWR1bGVyLnN0ZXAoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZXRyaWNzLnJlc2V0KCk7XG4gICAgfVxuICAgIHRoaXMuYWRhcHRlci5zdGFydFRyYWluaW5nKHRoaXMuY29uZmlnLmxlYXJuaW5nUmF0ZSk7XG5cbiAgICBsZXQgZWFybHlTdG9wcGVkID0gZmFsc2U7XG5cbiAgICBmb3IgKGxldCBlcG9jaCA9IHN0YXJ0RXBvY2g7IGVwb2NoIDwgdGhpcy5jb25maWcuZXBvY2hzOyBlcG9jaCsrKSB7XG4gICAgICB0aGlzLmN1cnJlbnRFcG9jaCA9IGVwb2NoO1xuXG4gICAgICAvLyBTaHVmZmxlIGJhdGNoZXNcbiAgICAgIGNvbnN0IHNodWZmbGVkQmF0Y2hlcyA9IHRoaXMuc2h1ZmZsZUJhdGNoZXMoKTtcblxuICAgICAgLy8gU3BsaXQgaW50byB0cmFpbi92YWxcbiAgICAgIGNvbnN0IHZhbFNpemUgPSBNYXRoLmZsb29yKHNodWZmbGVkQmF0Y2hlcy5sZW5ndGggKiB0aGlzLmNvbmZpZy52YWxpZGF0aW9uU3BsaXQpO1xuICAgICAgY29uc3QgdHJhaW5CYXRjaGVzID0gc2h1ZmZsZWRCYXRjaGVzLnNsaWNlKHZhbFNpemUpO1xuICAgICAgY29uc3QgdmFsQmF0Y2hlcyA9IHNodWZmbGVkQmF0Y2hlcy5zbGljZSgwLCB2YWxTaXplKTtcblxuICAgICAgLy8gVHJhaW5pbmcgZXBvY2hcbiAgICAgIGZvciAoY29uc3QgYmF0Y2ggb2YgdHJhaW5CYXRjaGVzKSB7XG4gICAgICAgIGNvbnN0IHN0ZXBTdGFydCA9IERhdGUubm93KCk7XG4gICAgICAgIGNvbnN0IGxvc3MgPSB0aGlzLnRyYWluU3RlcChiYXRjaCk7XG4gICAgICAgIHRoaXMubWV0cmljcy5yZWNvcmRMb3NzKGxvc3MpO1xuICAgICAgICB0aGlzLm1ldHJpY3MucmVjb3JkU3RlcFRpbWUoRGF0ZS5ub3coKSAtIHN0ZXBTdGFydCk7XG4gICAgICAgIHRoaXMuc2NoZWR1bGVyLnN0ZXAoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50U3RlcCsrO1xuICAgICAgfVxuXG4gICAgICAvLyBWYWxpZGF0aW9uXG4gICAgICBpZiAodmFsQmF0Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHZhbExvc3MgPSB0aGlzLnZhbGlkYXRlKHZhbEJhdGNoZXMpO1xuICAgICAgICB0aGlzLm1ldHJpY3MucmVjb3JkVmFsTG9zcyh2YWxMb3NzKTtcblxuICAgICAgICAvLyBFYXJseSBzdG9wcGluZ1xuICAgICAgICBpZiAodmFsTG9zcyA8IHRoaXMuYmVzdFZhbExvc3MpIHtcbiAgICAgICAgICB0aGlzLmJlc3RWYWxMb3NzID0gdmFsTG9zcztcbiAgICAgICAgICB0aGlzLnBhdGllbmNlQ291bnRlciA9IDA7XG4gICAgICAgICAgLy8gUmV0YWluIHRoZSBiZXN0LXZhbGlkYXRpb24gbW9kZWwgdG8gYSBzdGFibGUgcGF0aCB3aGVuIGNvbmZpZ3VyZWQuXG4gICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmtlZXBCZXN0Q2hlY2twb2ludCkge1xuICAgICAgICAgICAgdGhpcy5zYXZlQ2hlY2twb2ludCh0aGlzLmNvbmZpZy5rZWVwQmVzdENoZWNrcG9pbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnBhdGllbmNlQ291bnRlcisrO1xuICAgICAgICAgIGlmICh0aGlzLnBhdGllbmNlQ291bnRlciA+PSB0aGlzLmNvbmZpZy5lYXJseVN0b3BwaW5nUGF0aWVuY2UpIHtcbiAgICAgICAgICAgIGVhcmx5U3RvcHBlZCA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2twb2ludFxuICAgICAgaWYgKChlcG9jaCArIDEpICUgdGhpcy5jb25maWcuY2hlY2twb2ludEludGVydmFsID09PSAwKSB7XG4gICAgICAgIHRoaXMuc2F2ZUNoZWNrcG9pbnQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmFkYXB0ZXIuZW5kVHJhaW5pbmcoKTtcblxuICAgIC8vIFJlZ2lzdGVyIHdpdGggRVdDIGZvciBjb250aW51YWwgbGVhcm5pbmdcbiAgICBjb25zdCB3ZWlnaHRzID0gdGhpcy5hZGFwdGVyLm1lcmdlKCkuZmxhdCgpO1xuICAgIHRoaXMuZXdjTWFuYWdlci5yZWdpc3RlclRhc2soYHRhc2stJHtEYXRlLm5vdygpfWAsIHdlaWdodHMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVwb2NoczogdGhpcy5jdXJyZW50RXBvY2ggKyAxLFxuICAgICAgc3RlcHM6IHRoaXMuY3VycmVudFN0ZXAsXG4gICAgICBmaW5hbExvc3M6IHRoaXMubWV0cmljcy5hdmdMb3NzKDEwMCksXG4gICAgICBiZXN0VmFsTG9zczogdGhpcy5iZXN0VmFsTG9zcyxcbiAgICAgIGR1cmF0aW9uTXM6IHRoaXMubWV0cmljcy5kdXJhdGlvbigpLFxuICAgICAgbG9zc0hpc3Rvcnk6IHRoaXMubWV0cmljcy5nZXRMb3NzSGlzdG9yeSgpLFxuICAgICAgdmFsTG9zc0hpc3Rvcnk6IHRoaXMubWV0cmljcy5nZXRWYWxMb3NzSGlzdG9yeSgpLFxuICAgICAgZWFybHlTdG9wcGVkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2luZ2xlIHRyYWluaW5nIHN0ZXBcbiAgICovXG4gIHByaXZhdGUgdHJhaW5TdGVwKGJhdGNoOiBUcmFpbmluZ0JhdGNoKTogbnVtYmVyIHtcbiAgICBsZXQgdG90YWxMb3NzID0gMDtcbiAgICBjb25zdCBsciA9IHRoaXMuc2NoZWR1bGVyPy5nZXRMUigpIHx8IHRoaXMuY29uZmlnLmxlYXJuaW5nUmF0ZTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmF0Y2guaW5wdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBpbnB1dCA9IGJhdGNoLmlucHV0c1tpXTtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGJhdGNoLnRhcmdldHNbaV07XG4gICAgICBjb25zdCBxdWFsaXR5ID0gYmF0Y2gucXVhbGl0aWVzW2ldO1xuXG4gICAgICAvLyBGb3J3YXJkIHBhc3NcbiAgICAgIGNvbnN0IG91dHB1dCA9IHRoaXMuYWRhcHRlci5mb3J3YXJkKGlucHV0KTtcblxuICAgICAgLy8gQ29tcHV0ZSBsb3NzIChNU0Ugd2VpZ2h0ZWQgYnkgcXVhbGl0eSlcbiAgICAgIGNvbnN0IGdyYWRPdXRwdXQ6IG51bWJlcltdID0gW107XG4gICAgICBsZXQgbG9zcyA9IDA7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG91dHB1dC5sZW5ndGg7IGorKykge1xuICAgICAgICBjb25zdCBkaWZmID0gb3V0cHV0W2pdIC0gKHRhcmdldFtqXSB8fCAwKTtcbiAgICAgICAgbG9zcyArPSBkaWZmICogZGlmZjtcbiAgICAgICAgZ3JhZE91dHB1dC5wdXNoKDIgKiBkaWZmICogcXVhbGl0eSk7IC8vIFF1YWxpdHktd2VpZ2h0ZWQgZ3JhZGllbnRcbiAgICAgIH1cbiAgICAgIGxvc3MgPSAobG9zcyAvIG91dHB1dC5sZW5ndGgpICogcXVhbGl0eTtcblxuICAgICAgLy8gQWRkIEVXQyBwZW5hbHR5XG4gICAgICBjb25zdCBld2NQZW5hbHR5ID0gdGhpcy5ld2NNYW5hZ2VyLmNvbXB1dGVQZW5hbHR5KHRoaXMuYWRhcHRlci5tZXJnZSgpLmZsYXQoKSk7XG4gICAgICBsb3NzICs9IGV3Y1BlbmFsdHkgKiAwLjAwMTtcblxuICAgICAgLy8gQmFja3dhcmQgcGFzc1xuICAgICAgdGhpcy5hZGFwdGVyLmJhY2t3YXJkKGlucHV0LCBncmFkT3V0cHV0LCBscik7XG5cbiAgICAgIHRvdGFsTG9zcyArPSBsb3NzO1xuICAgIH1cblxuICAgIHJldHVybiB0b3RhbExvc3MgLyBiYXRjaC5pbnB1dHMubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRpb24gcGFzc1xuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZShiYXRjaGVzOiBUcmFpbmluZ0JhdGNoW10pOiBudW1iZXIge1xuICAgIGxldCB0b3RhbExvc3MgPSAwO1xuICAgIGxldCBjb3VudCA9IDA7XG5cbiAgICBmb3IgKGNvbnN0IGJhdGNoIG9mIGJhdGNoZXMpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmF0Y2guaW5wdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHRoaXMuYWRhcHRlci5mb3J3YXJkKGJhdGNoLmlucHV0c1tpXSk7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGJhdGNoLnRhcmdldHNbaV07XG5cbiAgICAgICAgbGV0IGxvc3MgPSAwO1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG91dHB1dC5sZW5ndGg7IGorKykge1xuICAgICAgICAgIGNvbnN0IGRpZmYgPSBvdXRwdXRbal0gLSAodGFyZ2V0W2pdIHx8IDApO1xuICAgICAgICAgIGxvc3MgKz0gZGlmZiAqIGRpZmY7XG4gICAgICAgIH1cbiAgICAgICAgdG90YWxMb3NzICs9IGxvc3MgLyBvdXRwdXQubGVuZ3RoO1xuICAgICAgICBjb3VudCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb3VudCA+IDAgPyB0b3RhbExvc3MgLyBjb3VudCA6IDA7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSBhIGNoZWNrcG9pbnQuXG4gICAqXG4gICAqIEFsd2F5cyByZWNvcmRzIHRoZSBjaGVja3BvaW50IGluIHRoZSBpbi1tZW1vcnkgbGlzdCAodGhlIGJlaGF2aW9yIHRoZVxuICAgKiB0cmFpbmluZyBsb29wIHJlbGllcyBvbikuIFdoZW4gYHBhdGhgIGlzIGdpdmVuLCBhZGRpdGlvbmFsbHkgcGVyc2lzdHNcbiAgICogdGhlIGNoZWNrcG9pbnQgdG8gZGlzayBhcyB2ZXJzaW9uZWQgSlNPTiDigJQgYmVmb3JlIHYyLjUuNyB0aGlzIG1ldGhvZFxuICAgKiB3YXMgcHJpdmF0ZSwgaWdub3JlZCBhbnkgYXJndW1lbnQsIGFuZCBuZXZlciB3cm90ZSBhIGZpbGUsIHNvIGNhbGxlcnNcbiAgICogcGFzc2luZyBhIHBhdGggZ290IGB1bmRlZmluZWRgIGJhY2sgYW5kIHplcm8gYnl0ZXMgb24gZGlzay5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggT3B0aW9uYWwgZmlsZSBwYXRoOyBwYXJlbnQgZGlyZWN0b3JpZXMgYXJlIGNyZWF0ZWQuXG4gICAqIEByZXR1cm5zIFdoZXJlIHRoZSBjaGVja3BvaW50IHdlbnQg4oCUIGluLW1lbW9yeSBpbmRleCwgYW5kIGZpbGVcbiAgICogICAgICAgICAgcGF0aCArIGJ5dGUgc2l6ZSB3aGVuIHBlcnNpc3RlZC5cbiAgICovXG4gIHNhdmVDaGVja3BvaW50KHBhdGg/OiBzdHJpbmcpOiBDaGVja3BvaW50U2F2ZVJlc3VsdCB7XG4gICAgY29uc3QgY2hlY2twb2ludDogQ2hlY2twb2ludCA9IHtcbiAgICAgIGVwb2NoOiB0aGlzLmN1cnJlbnRFcG9jaCxcbiAgICAgIHN0ZXA6IHRoaXMuY3VycmVudFN0ZXAsXG4gICAgICBsb3NzOiB0aGlzLm1ldHJpY3MuYXZnTG9zcygxMDApLFxuICAgICAgd2VpZ2h0czogdGhpcy5hZGFwdGVyLnRvSlNPTigpLFxuICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgIH07XG4gICAgdGhpcy5jaGVja3BvaW50cy5wdXNoKGNoZWNrcG9pbnQpO1xuXG4gICAgY29uc3QgcmVzdWx0OiBDaGVja3BvaW50U2F2ZVJlc3VsdCA9IHtcbiAgICAgIGluZGV4OiB0aGlzLmNoZWNrcG9pbnRzLmxlbmd0aCAtIDEsXG4gICAgICBlcG9jaDogY2hlY2twb2ludC5lcG9jaCxcbiAgICAgIHN0ZXA6IGNoZWNrcG9pbnQuc3RlcCxcbiAgICAgIGxvc3M6IGNoZWNrcG9pbnQubG9zcyxcbiAgICB9O1xuXG4gICAgaWYgKHBhdGgpIHtcbiAgICAgIGNvbnN0IGVudmVsb3BlID0ge1xuICAgICAgICBmb3JtYXQ6ICdydXZsbG0tY2hlY2twb2ludCcsXG4gICAgICAgIHZlcnNpb246IENIRUNLUE9JTlRfRk9STUFUX1ZFUlNJT04sXG4gICAgICAgIC8vIEFkYXB0ZXIgZ2VvbWV0cnkgKyBwaXBlbGluZSBoeXBlcnBhcmFtcyDigJQgbGV0cyBsb2FkQ2hlY2twb2ludCgpXG4gICAgICAgIC8vIHJlamVjdCB3ZWlnaHRzIHRoYXQgZG9uJ3QgZml0IHRoZSBjdXJyZW50IGFkYXB0ZXIgKHYyLCBzZWUgYmVsb3cpLlxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBpbnB1dERpbTogdGhpcy5hZGFwdGVyLmdldElucHV0RGltKCksXG4gICAgICAgICAgb3V0cHV0RGltOiB0aGlzLmFkYXB0ZXIuZ2V0T3V0cHV0RGltKCksXG4gICAgICAgICAgcmFuazogdGhpcy5hZGFwdGVyLmdldENvbmZpZygpLnJhbmssXG4gICAgICAgIH0sXG4gICAgICAgIHBpcGVsaW5lQ29uZmlnOiB7XG4gICAgICAgICAgbGVhcm5pbmdSYXRlOiB0aGlzLmNvbmZpZy5sZWFybmluZ1JhdGUsXG4gICAgICAgICAgYmF0Y2hTaXplOiB0aGlzLmNvbmZpZy5iYXRjaFNpemUsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLmNoZWNrcG9pbnQsXG4gICAgICB9O1xuICAgICAgY29uc3Qgc2VyaWFsaXplZCA9IEpTT04uc3RyaW5naWZ5KGVudmVsb3BlKTtcbiAgICAgIG1rZGlyU3luYyhkaXJuYW1lKHBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIHdyaXRlRmlsZVN5bmMocGF0aCwgc2VyaWFsaXplZCwgJ3V0Zi04Jyk7XG4gICAgICByZXN1bHQucGF0aCA9IHBhdGg7XG4gICAgICByZXN1bHQuYnl0ZXMgPSBCdWZmZXIuYnl0ZUxlbmd0aChzZXJpYWxpemVkLCAndXRmLTgnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgYSBjaGVja3BvaW50IOKAlCBieSBpbi1tZW1vcnkgaW5kZXgsIG9yIGZyb20gYSBmaWxlIHByZXZpb3VzbHlcbiAgICogd3JpdHRlbiBieSBgc2F2ZUNoZWNrcG9pbnQocGF0aClgLlxuICAgKlxuICAgKiBGb3IgdjIgZmlsZXMsIHRoZSBlbnZlbG9wZSdzIGFkYXB0ZXIgZ2VvbWV0cnkgaXMgY2hlY2tlZCBhZ2FpbnN0IHRoZVxuICAgKiBjdXJyZW50IGFkYXB0ZXIgZmlyc3Q7IGEgbWlzbWF0Y2ggKGRpZmZlcmVudCBpbnB1dERpbS9vdXRwdXREaW0vcmFuaylcbiAgICogcmV0dXJucyBmYWxzZSBhbmQgbGVhdmVzIHRoZSBhZGFwdGVyIHVudG91Y2hlZCwgc28gbWlzLXNoYXBlZCB3ZWlnaHRzXG4gICAqIGFyZSBuZXZlciBzaWxlbnRseSByZXN0b3JlZC4gdjEgZmlsZXMgY2Fycnkgbm8gZ2VvbWV0cnkgYW5kIGxvYWQgYXNcbiAgICogYmVmb3JlIChiYWNrLWNvbXBhdCkuXG4gICAqL1xuICBsb2FkQ2hlY2twb2ludChpbmRleE9yUGF0aDogbnVtYmVyIHwgc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IGNoZWNrcG9pbnQ6IENoZWNrcG9pbnQgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAodHlwZW9mIGluZGV4T3JQYXRoID09PSAnbnVtYmVyJykge1xuICAgICAgY2hlY2twb2ludCA9IHRoaXMuY2hlY2twb2ludHNbaW5kZXhPclBhdGhdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyhpbmRleE9yUGF0aCwgJ3V0Zi04JykpO1xuICAgICAgICBpZiAocGFyc2VkPy5mb3JtYXQgIT09ICdydXZsbG0tY2hlY2twb2ludCcgfHwgdHlwZW9mIHBhcnNlZC53ZWlnaHRzICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHBhcnNlZC52ZXJzaW9uID09PSAnbnVtYmVyJyAmJiBwYXJzZWQudmVyc2lvbiA+PSAyICYmIHBhcnNlZC5jb25maWcpIHtcbiAgICAgICAgICBjb25zdCBjID0gcGFyc2VkLmNvbmZpZztcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBjLmlucHV0RGltICE9PSB0aGlzLmFkYXB0ZXIuZ2V0SW5wdXREaW0oKSB8fFxuICAgICAgICAgICAgYy5vdXRwdXREaW0gIT09IHRoaXMuYWRhcHRlci5nZXRPdXRwdXREaW0oKSB8fFxuICAgICAgICAgICAgYy5yYW5rICE9PSB0aGlzLmFkYXB0ZXIuZ2V0Q29uZmlnKCkucmFua1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjaGVja3BvaW50ID0gcGFyc2VkIGFzIENoZWNrcG9pbnQ7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWNoZWNrcG9pbnQpIHJldHVybiBmYWxzZTtcblxuICAgIHRoaXMuYWRhcHRlciA9IExvcmFBZGFwdGVyLmZyb21KU09OKGNoZWNrcG9pbnQud2VpZ2h0cyk7XG4gICAgdGhpcy5jdXJyZW50RXBvY2ggPSBjaGVja3BvaW50LmVwb2NoO1xuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBjaGVja3BvaW50LnN0ZXA7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUmVzdW1lIHRyYWluaW5nIGZyb20gYSBjaGVja3BvaW50IGZpbGUuXG4gICAqXG4gICAqIExvYWRzIHRoZSBjaGVja3BvaW50ICh3aXRoIHRoZSBzYW1lIHYyIHNoYXBlIHZhbGlkYXRpb24gYXNcbiAgICoge0BsaW5rIGxvYWRDaGVja3BvaW50fSkgQU5EIHByaW1lcyB0aGUgcGlwZWxpbmUgc28gdGhlIG5leHQge0BsaW5rIHRyYWlufVxuICAgKiBjYWxsIGNvbnRpbnVlcyBmcm9tIHRoZSByZXN0b3JlZCBlcG9jaC9zdGVwIHJhdGhlciB0aGFuIHJlc3RhcnRpbmcuIFRoaXNcbiAgICogaXMgdGhlIGV4cGxpY2l0LCBsZWFzdC1pbnZhc2l2ZSByZXN1bWUgcGF0aDogYSBwbGFpbiBgbG9hZENoZWNrcG9pbnQoKWBcbiAgICogc3RpbGwgcmVzdG9yZXMgd2VpZ2h0cyBvbmx5ICh0cmFpbigpIGZyb20gc2NyYXRjaCksIHdoaWxlIGByZXN1bWVGcm9tKClgXG4gICAqIGFkZGl0aW9uYWxseSBtYWtlcyB0aGUgc3Vic2VxdWVudCB0cmFpbigpIHBpY2sgdXAgd2hlcmUgdGhlIHJ1biBzdG9wcGVkLlxuICAgKlxuICAgKiBAcmV0dXJucyB0cnVlIHdoZW4gdGhlIGNoZWNrcG9pbnQgbG9hZGVkIGFuZCByZXN1bWUgd2FzIHByaW1lZDsgZmFsc2UgaWZcbiAgICogICAgICAgICAgdGhlIGZpbGUgd2FzIG1pc3NpbmcsIGZvcmVpZ24sIG9yIHNoYXBlLW1pc21hdGNoZWQgKGluIHdoaWNoIGNhc2VcbiAgICogICAgICAgICAgbm8gcmVzdW1lIGlzIGFybWVkKS5cbiAgICovXG4gIHJlc3VtZUZyb20ocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmxvYWRDaGVja3BvaW50KHBhdGgpKSByZXR1cm4gZmFsc2U7XG4gICAgdGhpcy5yZXN1bWVQZW5kaW5nID0gdHJ1ZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY3VycmVudCBtZXRyaWNzXG4gICAqL1xuICBnZXRNZXRyaWNzKCk6IFRyYWluaW5nTWV0cmljcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVwb2NoOiB0aGlzLmN1cnJlbnRFcG9jaCxcbiAgICAgIHN0ZXA6IHRoaXMuY3VycmVudFN0ZXAsXG4gICAgICB0cmFpbkxvc3M6IHRoaXMubWV0cmljcy5hdmdMb3NzKDEwMCksXG4gICAgICB2YWxMb3NzOiB0aGlzLm1ldHJpY3MuYXZnVmFsTG9zcygxMCksXG4gICAgICBsZWFybmluZ1JhdGU6IHRoaXMuc2NoZWR1bGVyPy5nZXRMUigpIHx8IHRoaXMuY29uZmlnLmxlYXJuaW5nUmF0ZSxcbiAgICAgIGdyYWROb3JtOiAwLFxuICAgICAgc3RlcHNQZXJTZWNvbmQ6IHRoaXMubWV0cmljcy5zdGVwc1BlclNlY29uZCgpLFxuICAgICAgZXRhU2Vjb25kczogdGhpcy5tZXRyaWNzLmV0YShcbiAgICAgICAgKHRoaXMuY29uZmlnLmVwb2NocyAtIHRoaXMuY3VycmVudEVwb2NoKSAqIHRoaXMuYmF0Y2hlcy5sZW5ndGhcbiAgICAgICksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWRhcHRlclxuICAgKi9cbiAgZ2V0QWRhcHRlcigpOiBMb3JhQWRhcHRlciB7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgRVdDIG1hbmFnZXJcbiAgICovXG4gIGdldEV3Y01hbmFnZXIoKTogRXdjTWFuYWdlciB7XG4gICAgcmV0dXJuIHRoaXMuZXdjTWFuYWdlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY2hlY2twb2ludHNcbiAgICovXG4gIGdldENoZWNrcG9pbnRzKCk6IENoZWNrcG9pbnRbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmNoZWNrcG9pbnRzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBwaXBlbGluZVxuICAgKi9cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5iYXRjaGVzID0gW107XG4gICAgdGhpcy5jaGVja3BvaW50cyA9IFtdO1xuICAgIHRoaXMuY3VycmVudEVwb2NoID0gMDtcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gMDtcbiAgICB0aGlzLmJlc3RWYWxMb3NzID0gSW5maW5pdHk7XG4gICAgdGhpcy5wYXRpZW5jZUNvdW50ZXIgPSAwO1xuICAgIHRoaXMucmVzdW1lUGVuZGluZyA9IGZhbHNlO1xuICAgIHRoaXMubWV0cmljcy5yZXNldCgpO1xuICAgIHRoaXMuYWRhcHRlci5yZXNldCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaHVmZmxlQmF0Y2hlcygpOiBUcmFpbmluZ0JhdGNoW10ge1xuICAgIGNvbnN0IHNodWZmbGVkID0gWy4uLnRoaXMuYmF0Y2hlc107XG4gICAgZm9yIChsZXQgaSA9IHNodWZmbGVkLmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGogPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAoaSArIDEpKTtcbiAgICAgIFtzaHVmZmxlZFtpXSwgc2h1ZmZsZWRbal1dID0gW3NodWZmbGVkW2pdLCBzaHVmZmxlZFtpXV07XG4gICAgfVxuICAgIHJldHVybiBzaHVmZmxlZDtcbiAgfVxufVxuXG4vKipcbiAqIFRyYWluaW5nIEZhY3RvcnlcbiAqXG4gKiBDcmVhdGUgcHJlLWNvbmZpZ3VyZWQgdHJhaW5pbmcgcGlwZWxpbmVzIGZvciBjb21tb24gc2NlbmFyaW9zLlxuICovXG5leHBvcnQgY2xhc3MgVHJhaW5pbmdGYWN0b3J5IHtcbiAgLyoqXG4gICAqIENyZWF0ZSBwaXBlbGluZSBmb3IgcXVpY2sgZmluZS10dW5pbmdcbiAgICovXG4gIHN0YXRpYyBxdWlja0ZpbmV0dW5lKCk6IFRyYWluaW5nUGlwZWxpbmUge1xuICAgIHJldHVybiBuZXcgVHJhaW5pbmdQaXBlbGluZSh7XG4gICAgICBsZWFybmluZ1JhdGU6IDAuMDEsXG4gICAgICBlcG9jaHM6IDMsXG4gICAgICBiYXRjaFNpemU6IDE2LFxuICAgICAgc2NoZWR1bGVyOiAnY29uc3RhbnQnLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBwaXBlbGluZSBmb3IgZGVlcCB0cmFpbmluZ1xuICAgKi9cbiAgc3RhdGljIGRlZXBUcmFpbmluZygpOiBUcmFpbmluZ1BpcGVsaW5lIHtcbiAgICByZXR1cm4gbmV3IFRyYWluaW5nUGlwZWxpbmUoe1xuICAgICAgbGVhcm5pbmdSYXRlOiAwLjAwMSxcbiAgICAgIGVwb2NoczogNTAsXG4gICAgICBiYXRjaFNpemU6IDMyLFxuICAgICAgc2NoZWR1bGVyOiAnd2FybXVwJyxcbiAgICAgIHdhcm11cFN0ZXBzOiA1MDAsXG4gICAgICBlYXJseVN0b3BwaW5nUGF0aWVuY2U6IDUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHBpcGVsaW5lIGZvciBjb250aW51YWwgbGVhcm5pbmdcbiAgICovXG4gIHN0YXRpYyBjb250aW51YWxMZWFybmluZyhld2NMYW1iZGE6IG51bWJlciA9IDUwMDApOiBUcmFpbmluZ1BpcGVsaW5lIHtcbiAgICByZXR1cm4gbmV3IFRyYWluaW5nUGlwZWxpbmUoe1xuICAgICAgbGVhcm5pbmdSYXRlOiAwLjAwMDUsXG4gICAgICBlcG9jaHM6IDEwLFxuICAgICAgYmF0Y2hTaXplOiAxNixcbiAgICAgIHNjaGVkdWxlcjogJ2Nvc2luZScsXG4gICAgICBld2NMYW1iZGEsXG4gICAgICBlYXJseVN0b3BwaW5nUGF0aWVuY2U6IDEwLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBwaXBlbGluZSBmb3IgZmVkZXJhdGVkIGFnZ3JlZ2F0aW9uXG4gICAqL1xuICBzdGF0aWMgZmVkZXJhdGVkQWdncmVnYXRpb24oKTogVHJhaW5pbmdQaXBlbGluZSB7XG4gICAgcmV0dXJuIG5ldyBUcmFpbmluZ1BpcGVsaW5lKHtcbiAgICAgIGxlYXJuaW5nUmF0ZTogMC4wMDAxLFxuICAgICAgZXBvY2hzOiA1LFxuICAgICAgYmF0Y2hTaXplOiA2NCxcbiAgICAgIHNjaGVkdWxlcjogJ2xpbmVhcicsXG4gICAgICBld2NMYW1iZGE6IDIwMDAsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -515,6 +515,13 @@ export interface TrainingConfig {
|
|
|
515
515
|
ewcLambda?: number;
|
|
516
516
|
/** Validation split ratio */
|
|
517
517
|
validationSplit?: number;
|
|
518
|
+
/**
|
|
519
|
+
* File path for best-checkpoint retention. When set, the pipeline writes
|
|
520
|
+
* the current state to this path each time validation loss improves, so the
|
|
521
|
+
* best-validation model survives even if later epochs degrade. Empty string
|
|
522
|
+
* (the default) disables it; a no-op when validation never runs.
|
|
523
|
+
*/
|
|
524
|
+
keepBestCheckpoint?: string;
|
|
518
525
|
}
|
|
519
526
|
/**
|
|
520
527
|
* Training metrics snapshot
|
package/dist/cjs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/types.js
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* RuvLLM Type Definitions
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFJ1dkxMTSBUeXBlIERlZmluaXRpb25zXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYXRpb24gZm9yIFJ1dkxMTSBlbmdpbmVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUnV2TExNQ29uZmlnIHtcclxuICAvKiogRW1iZWRkaW5nIGRpbWVuc2lvbiAoZGVmYXVsdDogNzY4KSAqL1xyXG4gIGVtYmVkZGluZ0RpbT86IG51bWJlcjtcclxuICAvKiogUm91dGVyIGhpZGRlbiBkaW1lbnNpb24gKGRlZmF1bHQ6IDEyOCkgKi9cclxuICByb3V0ZXJIaWRkZW5EaW0/OiBudW1iZXI7XHJcbiAgLyoqIEhOU1cgTSBwYXJhbWV0ZXIgKGRlZmF1bHQ6IDE2KSAqL1xyXG4gIGhuc3dNPzogbnVtYmVyO1xyXG4gIC8qKiBITlNXIGVmX2NvbnN0cnVjdGlvbiAoZGVmYXVsdDogMTAwKSAqL1xyXG4gIGhuc3dFZkNvbnN0cnVjdGlvbj86IG51bWJlcjtcclxuICAvKiogSE5TVyBlZl9zZWFyY2ggKGRlZmF1bHQ6IDY0KSAqL1xyXG4gIGhuc3dFZlNlYXJjaD86IG51bWJlcjtcclxuICAvKiogRW5hYmxlIGxlYXJuaW5nIChkZWZhdWx0OiB0cnVlKSAqL1xyXG4gIGxlYXJuaW5nRW5hYmxlZD86IGJvb2xlYW47XHJcbiAgLyoqIFF1YWxpdHkgdGhyZXNob2xkIGZvciBsZWFybmluZyAoZGVmYXVsdDogMC43KSAqL1xyXG4gIHF1YWxpdHlUaHJlc2hvbGQ/OiBudW1iZXI7XHJcbiAgLyoqIEVXQyBsYW1iZGEgKGRlZmF1bHQ6IDIwMDApICovXHJcbiAgZXdjTGFtYmRhPzogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhdGlvbiBjb25maWd1cmF0aW9uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRpb25Db25maWcge1xyXG4gIC8qKiBNYXhpbXVtIHRva2VucyB0byBnZW5lcmF0ZSAqL1xyXG4gIG1heFRva2Vucz86IG51bWJlcjtcclxuICAvKiogVGVtcGVyYXR1cmUgZm9yIHNhbXBsaW5nICgwLjAgLSAyLjApICovXHJcbiAgdGVtcGVyYXR1cmU/OiBudW1iZXI7XHJcbiAgLyoqIFRvcC1wIG51Y2xldXMgc2FtcGxpbmcgKDAuMCAtIDEuMCkgKi9cclxuICB0b3BQPzogbnVtYmVyO1xyXG4gIC8qKiBUb3AtayBzYW1wbGluZyAqL1xyXG4gIHRvcEs/OiBudW1iZXI7XHJcbiAgLyoqIFJlcGV0aXRpb24gcGVuYWx0eSAqL1xyXG4gIHJlcGV0aXRpb25QZW5hbHR5PzogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogUXVlcnkgcmVzcG9uc2UgZnJvbSB0aGUgTExNXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5UmVzcG9uc2Uge1xyXG4gIC8qKiBHZW5lcmF0ZWQgdGV4dCAqL1xyXG4gIHRleHQ6IHN0cmluZztcclxuICAvKiogQ29uZmlkZW5jZSBzY29yZSAoMC4wIC0gMS4wKSAqL1xyXG4gIGNvbmZpZGVuY2U6IG51bWJlcjtcclxuICAvKiogU2VsZWN0ZWQgbW9kZWwgKi9cclxuICBtb2RlbDogc3RyaW5nO1xyXG4gIC8qKiBDb250ZXh0IHNpemUgdXNlZCAqL1xyXG4gIGNvbnRleHRTaXplOiBudW1iZXI7XHJcbiAgLyoqIExhdGVuY3kgaW4gbWlsbGlzZWNvbmRzICovXHJcbiAgbGF0ZW5jeU1zOiBudW1iZXI7XHJcbiAgLyoqIFJlcXVlc3QgSUQgZm9yIGZlZWRiYWNrICovXHJcbiAgcmVxdWVzdElkOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSb3V0aW5nIGRlY2lzaW9uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRpbmdEZWNpc2lvbiB7XHJcbiAgLyoqIFNlbGVjdGVkIG1vZGVsIHNpemUgKi9cclxuICBtb2RlbDogTW9kZWxTaXplO1xyXG4gIC8qKiBSZWNvbW1lbmRlZCBjb250ZXh0IHNpemUgKi9cclxuICBjb250ZXh0U2l6ZTogbnVtYmVyO1xyXG4gIC8qKiBUZW1wZXJhdHVyZSAqL1xyXG4gIHRlbXBlcmF0dXJlOiBudW1iZXI7XHJcbiAgLyoqIFRvcC1wICovXHJcbiAgdG9wUDogbnVtYmVyO1xyXG4gIC8qKiBDb25maWRlbmNlICovXHJcbiAgY29uZmlkZW5jZTogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogTWVtb3J5IHNlYXJjaCByZXN1bHRcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVtb3J5UmVzdWx0IHtcclxuICAvKiogTm9kZSBJRCAqL1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgLyoqIFNpbWlsYXJpdHkgc2NvcmUgKi9cclxuICBzY29yZTogbnVtYmVyO1xyXG4gIC8qKiBDb250ZW50IHRleHQgKi9cclxuICBjb250ZW50OiBzdHJpbmc7XHJcbiAgLyoqIE1ldGFkYXRhICovXHJcbiAgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xyXG59XHJcblxyXG4vKipcclxuICogRW5naW5lIHN0YXRpc3RpY3NcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUnV2TExNU3RhdHMge1xyXG4gIC8qKiBUb3RhbCBxdWVyaWVzIHByb2Nlc3NlZCAqL1xyXG4gIHRvdGFsUXVlcmllczogbnVtYmVyO1xyXG4gIC8qKiBNZW1vcnkgbm9kZXMgc3RvcmVkICovXHJcbiAgbWVtb3J5Tm9kZXM6IG51bWJlcjtcclxuICAvKiogUGF0dGVybnMgbGVhcm5lZCAqL1xyXG4gIHBhdHRlcm5zTGVhcm5lZDogbnVtYmVyO1xyXG4gIC8qKiBBdmVyYWdlIGxhdGVuY3kgaW4gbXMgKi9cclxuICBhdmdMYXRlbmN5TXM6IG51bWJlcjtcclxuICAvKiogQ2FjaGUgaGl0IHJhdGUgKDAuMCAtIDEuMCkgKi9cclxuICBjYWNoZUhpdFJhdGU6IG51bWJlcjtcclxuICAvKiogUm91dGVyIGFjY3VyYWN5ICgwLjAgLSAxLjApICovXHJcbiAgcm91dGVyQWNjdXJhY3k6IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIE1vZGVsIHNpemUgb3B0aW9uc1xyXG4gKi9cclxuZXhwb3J0IHR5cGUgTW9kZWxTaXplID0gJ00zNTAnIHwgJ003MDAnIHwgJ0IxXzInIHwgJ0IyXzYnO1xyXG5cclxuLyoqXHJcbiAqIEZlZWRiYWNrIGZvciBsZWFybmluZ1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBGZWVkYmFjayB7XHJcbiAgLyoqIFJlcXVlc3QgSUQgZnJvbSBxdWVyeSByZXNwb25zZSAqL1xyXG4gIHJlcXVlc3RJZDogc3RyaW5nO1xyXG4gIC8qKiBSYXRpbmcgMS01ICovXHJcbiAgcmF0aW5nOiBudW1iZXI7XHJcbiAgLyoqIE9wdGlvbmFsIGNvcnJlY3Rpb24gdGV4dCAqL1xyXG4gIGNvcnJlY3Rpb24/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXNzaW9uIGZvciBtdWx0aS10dXJuIGNvbnZlcnNhdGlvbnNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2Vzc2lvbiB7XHJcbiAgLyoqIFNlc3Npb24gSUQgKi9cclxuICBpZDogc3RyaW5nO1xyXG4gIC8qKiBDcmVhdGVkIHRpbWVzdGFtcCAqL1xyXG4gIGNyZWF0ZWRBdDogRGF0ZTtcclxuICAvKiogTWVzc2FnZXMgaW4gc2Vzc2lvbiAqL1xyXG4gIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogU0lNRCBjYXBhYmlsaXRpZXNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2ltZENhcGFiaWxpdGllcyB7XHJcbiAgLyoqIEhhcyBhbnkgU0lNRCBzdXBwb3J0ICovXHJcbiAgaGFzU2ltZDogYm9vbGVhbjtcclxuICAvKiogQXZhaWxhYmxlIFNJTUQgaW5zdHJ1Y3Rpb25zICovXHJcbiAgY2FwYWJpbGl0aWVzOiBzdHJpbmdbXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEVtYmVkZGluZyByZXN1bHRcclxuICovXHJcbmV4cG9ydCB0eXBlIEVtYmVkZGluZyA9IG51bWJlcltdO1xyXG5cclxuLyoqXHJcbiAqIEJhdGNoIHF1ZXJ5IHJlcXVlc3RcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hRdWVyeVJlcXVlc3Qge1xyXG4gIC8qKiBRdWVyaWVzIHRvIHByb2Nlc3MgKi9cclxuICBxdWVyaWVzOiBzdHJpbmdbXTtcclxuICAvKiogT3B0aW9uYWwgZ2VuZXJhdGlvbiBjb25maWcgKi9cclxuICBjb25maWc/OiBHZW5lcmF0aW9uQ29uZmlnO1xyXG59XHJcblxyXG4vKipcclxuICogQmF0Y2ggcXVlcnkgcmVzcG9uc2VcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hRdWVyeVJlc3BvbnNlIHtcclxuICAvKiogUmVzcG9uc2VzIGZvciBlYWNoIHF1ZXJ5ICovXHJcbiAgcmVzcG9uc2VzOiBRdWVyeVJlc3BvbnNlW107XHJcbiAgLyoqIFRvdGFsIHByb2Nlc3NpbmcgdGltZSBpbiBtcyAqL1xyXG4gIHRvdGFsTGF0ZW5jeU1zOiBudW1iZXI7XHJcbn1cclxuXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFNPTkEgTGVhcm5pbmcgVHlwZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi8qKlxyXG4gKiBTT05BIENvbmZpZ3VyYXRpb24gZm9yIGFkYXB0aXZlIGxlYXJuaW5nXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFNvbmFDb25maWcge1xyXG4gIC8qKiBFbmFibGUgaW5zdGFudCBsb29wIChyZWFsLXRpbWUgbGVhcm5pbmcpICovXHJcbiAgaW5zdGFudExvb3BFbmFibGVkPzogYm9vbGVhbjtcclxuICAvKiogRW5hYmxlIGJhY2tncm91bmQgbG9vcCAoYmF0Y2ggbGVhcm5pbmcpICovXHJcbiAgYmFja2dyb3VuZExvb3BFbmFibGVkPzogYm9vbGVhbjtcclxuICAvKiogTGVhcm5pbmcgcmF0ZSBmb3IgTG9SQSBhZGFwdGVycyAqL1xyXG4gIGxvcmFMZWFybmluZ1JhdGU/OiBudW1iZXI7XHJcbiAgLyoqIExvUkEgcmFuayAobG93ZXIgPSBmYXN0ZXIsIGhpZ2hlciA9IG1vcmUgY2FwYWNpdHkpICovXHJcbiAgbG9yYVJhbms/OiBudW1iZXI7XHJcbiAgLyoqIEVXQyBsYW1iZGEgZm9yIG1lbW9yeSBwcm90ZWN0aW9uICovXHJcbiAgZXdjTGFtYmRhPzogbnVtYmVyO1xyXG4gIC8qKiBNYXggdHJhamVjdG9yeSBidWZmZXIgc2l6ZSAqL1xyXG4gIG1heFRyYWplY3RvcnlTaXplPzogbnVtYmVyO1xyXG4gIC8qKiBQYXR0ZXJuIHNpbWlsYXJpdHkgdGhyZXNob2xkICovXHJcbiAgcGF0dGVyblRocmVzaG9sZD86IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIExlYXJuaW5nIHNpZ25hbCBmcm9tIHVzZXIgZmVlZGJhY2tcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGVhcm5pbmdTaWduYWwge1xyXG4gIC8qKiBSZXF1ZXN0IElEICovXHJcbiAgcmVxdWVzdElkOiBzdHJpbmc7XHJcbiAgLyoqIFF1YWxpdHkgc2NvcmUgKDAtMSkgKi9cclxuICBxdWFsaXR5OiBudW1iZXI7XHJcbiAgLyoqIFNpZ25hbCB0eXBlICovXHJcbiAgdHlwZTogU2lnbmFsVHlwZTtcclxuICAvKiogT3B0aW9uYWwgY29ycmVjdGlvbiAqL1xyXG4gIGNvcnJlY3Rpb24/OiBzdHJpbmc7XHJcbiAgLyoqIFRpbWVzdGFtcCAqL1xyXG4gIHRpbWVzdGFtcDogRGF0ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNpZ25hbCB0eXBlcyBmb3IgbGVhcm5pbmdcclxuICovXHJcbmV4cG9ydCB0eXBlIFNpZ25hbFR5cGUgPSAncG9zaXRpdmUnIHwgJ25lZ2F0aXZlJyB8ICdjb3JyZWN0aW9uJyB8ICdpbXBsaWNpdCc7XHJcblxyXG4vKipcclxuICogUXVlcnkgdHJhamVjdG9yeSBmb3IgbGVhcm5pbmdcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlUcmFqZWN0b3J5IHtcclxuICAvKiogVHJhamVjdG9yeSBJRCAqL1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgLyoqIFN0ZXBzIGluIHRoZSB0cmFqZWN0b3J5ICovXHJcbiAgc3RlcHM6IFRyYWplY3RvcnlTdGVwW107XHJcbiAgLyoqIEZpbmFsIG91dGNvbWUgKi9cclxuICBvdXRjb21lOiBUcmFqZWN0b3J5T3V0Y29tZTtcclxuICAvKiogVG90YWwgZHVyYXRpb24gKi9cclxuICBkdXJhdGlvbk1zOiBudW1iZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTaW5nbGUgc3RlcCBpbiBhIHRyYWplY3RvcnlcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhamVjdG9yeVN0ZXAge1xyXG4gIC8qKiBTdGVwIHR5cGUgKi9cclxuICB0eXBlOiAncXVlcnknIHwgJ3JvdXRlJyB8ICdnZW5lcmF0ZScgfCAnbWVtb3J5JyB8ICdmZWVkYmFjayc7XHJcbiAgLyoqIElucHV0IGRhdGEgKi9cclxuICBpbnB1dDogc3RyaW5nO1xyXG4gIC8qKiBPdXRwdXQgZGF0YSAqL1xyXG4gIG91dHB1dDogc3RyaW5nO1xyXG4gIC8qKiBEdXJhdGlvbiBvZiB0aGlzIHN0ZXAgKi9cclxuICBkdXJhdGlvbk1zOiBudW1iZXI7XHJcbiAgLyoqIENvbmZpZGVuY2UgYXQgdGhpcyBzdGVwICovXHJcbiAgY29uZmlkZW5jZTogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogVHJhamVjdG9yeSBvdXRjb21lXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBUcmFqZWN0b3J5T3V0Y29tZSA9ICdzdWNjZXNzJyB8ICdwYXJ0aWFsJyB8ICdmYWlsdXJlJyB8ICd1bmtub3duJztcclxuXHJcbi8qKlxyXG4gKiBMZWFybmVkIHBhdHRlcm4gZnJvbSBSZWFzb25pbmdCYW5rXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIExlYXJuZWRQYXR0ZXJuIHtcclxuICAvKiogUGF0dGVybiBJRCAqL1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgLyoqIFBhdHRlcm4gdHlwZSAqL1xyXG4gIHR5cGU6IFBhdHRlcm5UeXBlO1xyXG4gIC8qKiBQYXR0ZXJuIGVtYmVkZGluZyAqL1xyXG4gIGVtYmVkZGluZzogRW1iZWRkaW5nO1xyXG4gIC8qKiBTdWNjZXNzIHJhdGUgKDAtMSkgKi9cclxuICBzdWNjZXNzUmF0ZTogbnVtYmVyO1xyXG4gIC8qKiBUaW1lcyB1c2VkICovXHJcbiAgdXNlQ291bnQ6IG51bWJlcjtcclxuICAvKiogTGFzdCB1c2VkIHRpbWVzdGFtcCAqL1xyXG4gIGxhc3RVc2VkOiBEYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogVHlwZXMgb2YgbGVhcm5lZCBwYXR0ZXJuc1xyXG4gKi9cclxuZXhwb3J0IHR5cGUgUGF0dGVyblR5cGUgPVxyXG4gIHwgJ3F1ZXJ5X3Jlc3BvbnNlJyAgICAgIC8vIFEmQSBwYXR0ZXJuXHJcbiAgfCAncm91dGluZycgICAgICAgICAgICAgLy8gUm91dGluZyBkZWNpc2lvbiBwYXR0ZXJuXHJcbiAgfCAnY29udGV4dF9yZXRyaWV2YWwnICAgLy8gTWVtb3J5IHJldHJpZXZhbCBwYXR0ZXJuXHJcbiAgfCAnY29ycmVjdGlvbicgICAgICAgICAgLy8gVXNlciBjb3JyZWN0aW9uIHBhdHRlcm5cclxuICB8ICdhYnN0cmFjdGlvbic7ICAgICAgICAvLyBDb21wcmVzc2VkIGNvbmNlcHRcclxuXHJcbi8qKlxyXG4gKiBMb1JBIGFkYXB0ZXIgY29uZmlndXJhdGlvblxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBMb1JBQ29uZmlnIHtcclxuICAvKiogQWRhcHRlciByYW5rICg0LCA4LCAxNiwgMzIpICovXHJcbiAgcmFuazogbnVtYmVyO1xyXG4gIC8qKiBBbHBoYSBzY2FsaW5nIGZhY3RvciAqL1xyXG4gIGFscGhhOiBudW1iZXI7XHJcbiAgLyoqIERyb3BvdXQgcmF0ZSAqL1xyXG4gIGRyb3BvdXQ6IG51bWJlcjtcclxuICAvKiogVGFyZ2V0IG1vZHVsZXMgdG8gYWRhcHQgKi9cclxuICB0YXJnZXRNb2R1bGVzOiBzdHJpbmdbXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEVXQyAoRWxhc3RpYyBXZWlnaHQgQ29uc29saWRhdGlvbikgc3RhdHNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXdjU3RhdHMge1xyXG4gIC8qKiBOdW1iZXIgb2YgdGFza3MgbGVhcm5lZCAqL1xyXG4gIHRhc2tzTGVhcm5lZDogbnVtYmVyO1xyXG4gIC8qKiBGaXNoZXIgaW5mb3JtYXRpb24gY29tcHV0ZWQgKi9cclxuICBmaXNoZXJDb21wdXRlZDogYm9vbGVhbjtcclxuICAvKiogTWVtb3J5IHByb3RlY3Rpb24gc3RyZW5ndGggKi9cclxuICBwcm90ZWN0aW9uU3RyZW5ndGg6IG51bWJlcjtcclxuICAvKiogRXN0aW1hdGVkIGZvcmdldHRpbmcgcmF0ZSAqL1xyXG4gIGZvcmdldHRpbmdSYXRlOiBudW1iZXI7XHJcbn1cclxuXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFNlc3Npb24gJiBDb252ZXJzYXRpb24gVHlwZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi8qKlxyXG4gKiBFeHRlbmRlZCBzZXNzaW9uIHdpdGggY29udmVyc2F0aW9uIGhpc3RvcnlcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVyc2F0aW9uU2Vzc2lvbiBleHRlbmRzIFNlc3Npb24ge1xyXG4gIC8qKiBDb252ZXJzYXRpb24gbWVzc2FnZXMgKi9cclxuICBtZXNzYWdlczogQ29udmVyc2F0aW9uTWVzc2FnZVtdO1xyXG4gIC8qKiBTZXNzaW9uIGNvbnRleHQgKGFjY3VtdWxhdGVkKSAqL1xyXG4gIGNvbnRleHQ6IHN0cmluZ1tdO1xyXG4gIC8qKiBBY3RpdmUgbWVtb3J5IElEcyAqL1xyXG4gIGFjdGl2ZU1lbW9yeUlkczogbnVtYmVyW107XHJcbiAgLyoqIFNlc3Npb24gbWV0YWRhdGEgKi9cclxuICBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTaW5nbGUgbWVzc2FnZSBpbiBjb252ZXJzYXRpb25cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVyc2F0aW9uTWVzc2FnZSB7XHJcbiAgLyoqIE1lc3NhZ2Ugcm9sZSAqL1xyXG4gIHJvbGU6ICd1c2VyJyB8ICdhc3Npc3RhbnQnIHwgJ3N5c3RlbSc7XHJcbiAgLyoqIE1lc3NhZ2UgY29udGVudCAqL1xyXG4gIGNvbnRlbnQ6IHN0cmluZztcclxuICAvKiogVGltZXN0YW1wICovXHJcbiAgdGltZXN0YW1wOiBEYXRlO1xyXG4gIC8qKiBBc3NvY2lhdGVkIHJlcXVlc3QgSUQgKGlmIGFzc2lzdGFudCkgKi9cclxuICByZXF1ZXN0SWQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFN0cmVhbWluZyBUeXBlc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLyoqXHJcbiAqIFN0cmVhbWluZyByZXNwb25zZSBjaHVua1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1DaHVuayB7XHJcbiAgLyoqIENodW5rIHRleHQgKi9cclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgLyoqIElzIGZpbmFsIGNodW5rICovXHJcbiAgZG9uZTogYm9vbGVhbjtcclxuICAvKiogVG9rZW4gY291bnQgc28gZmFyICovXHJcbiAgdG9rZW5Db3VudDogbnVtYmVyO1xyXG4gIC8qKiBDdW11bGF0aXZlIGxhdGVuY3kgKi9cclxuICBsYXRlbmN5TXM6IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFN0cmVhbSBvcHRpb25zXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFN0cmVhbU9wdGlvbnMgZXh0ZW5kcyBHZW5lcmF0aW9uQ29uZmlnIHtcclxuICAvKiogQ2FsbGJhY2sgZm9yIGVhY2ggY2h1bmsgKi9cclxuICBvbkNodW5rPzogKGNodW5rOiBTdHJlYW1DaHVuaykgPT4gdm9pZDtcclxuICAvKiogQ2FsbGJhY2sgb24gY29tcGxldGlvbiAqL1xyXG4gIG9uQ29tcGxldGU/OiAocmVzcG9uc2U6IFF1ZXJ5UmVzcG9uc2UpID0+IHZvaWQ7XHJcbiAgLyoqIENhbGxiYWNrIG9uIGVycm9yICovXHJcbiAgb25FcnJvcj86IChlcnJvcjogRXJyb3IpID0+IHZvaWQ7XHJcbn1cclxuXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIENvbXByZXNzaW9uICYgQXJjaGl2YWwgVHlwZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi8qKlxyXG4gKiBNZW1vcnkgY29tcHJlc3Npb24gcmVzdWx0XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbXByZXNzaW9uUmVzdWx0IHtcclxuICAvKiogTm9kZXMgY29tcHJlc3NlZCAqL1xyXG4gIG5vZGVzQ29tcHJlc3NlZDogbnVtYmVyO1xyXG4gIC8qKiBOb2RlcyBhcmNoaXZlZCAqL1xyXG4gIG5vZGVzQXJjaGl2ZWQ6IG51bWJlcjtcclxuICAvKiogQ29uY2VwdHMgY3JlYXRlZCAqL1xyXG4gIGNvbmNlcHRzQ3JlYXRlZDogbnVtYmVyO1xyXG4gIC8qKiBNZW1vcnkgc2F2ZWQgKGJ5dGVzKSAqL1xyXG4gIG1lbW9yeVNhdmVkOiBudW1iZXI7XHJcbiAgLyoqIER1cmF0aW9uICovXHJcbiAgZHVyYXRpb25NczogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogQXJjaGl2ZSBxdWVyeSByZXN1bHRcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXJjaGl2ZVJlc3VsdCB7XHJcbiAgLyoqIEFyY2hpdmVkIG5vZGUgSUQgKi9cclxuICBpZDogbnVtYmVyO1xyXG4gIC8qKiBPcmlnaW5hbCBjb250ZW50IChpZiBhdmFpbGFibGUpICovXHJcbiAgY29udGVudD86IHN0cmluZztcclxuICAvKiogQ29uY2VwdCBpdCBiZWxvbmdzIHRvICovXHJcbiAgY29uY2VwdElkPzogc3RyaW5nO1xyXG4gIC8qKiBBcmNoaXZlIHRpbWVzdGFtcCAqL1xyXG4gIGFyY2hpdmVkQXQ6IERhdGU7XHJcbn1cclxuXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEF0dGVudGlvbiBUeXBlc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLyoqXHJcbiAqIEF0dGVudGlvbiB3ZWlnaHRzIGZvciBpbnRlcnByZXRhYmlsaXR5XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEF0dGVudGlvbldlaWdodHMge1xyXG4gIC8qKiBRdWVyeS1rZXkgYXR0ZW50aW9uIHNjb3JlcyAqL1xyXG4gIHNjb3JlczogbnVtYmVyW11bXTtcclxuICAvKiogSGVhZCBpbmRleCAqL1xyXG4gIGhlYWRJbmRleDogbnVtYmVyO1xyXG4gIC8qKiBMYXllciBpbmRleCAqL1xyXG4gIGxheWVySW5kZXg6IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEF0dGVudGlvbiBhbmFseXNpcyByZXN1bHRcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXR0ZW50aW9uQW5hbHlzaXMge1xyXG4gIC8qKiBNb3N0IGF0dGVuZGVkIHRva2VucyAqL1xyXG4gIHRvcEF0dGVuZGVkOiBBcnJheTx7IHRva2VuOiBzdHJpbmc7IHdlaWdodDogbnVtYmVyIH0+O1xyXG4gIC8qKiBBdHRlbnRpb24gZW50cm9weSAodW5jZXJ0YWludHkpICovXHJcbiAgZW50cm9weTogbnVtYmVyO1xyXG4gIC8qKiBGb2N1cyBzY29yZSAoMC0xLCBoaWdoZXIgPSBtb3JlIGZvY3VzZWQpICovXHJcbiAgZm9jdXNTY29yZTogbnVtYmVyO1xyXG59XHJcblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBGZWRlcmF0ZWQgTGVhcm5pbmcgVHlwZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi8qKlxyXG4gKiBGZWRlcmF0ZWQgbGVhcm5pbmcgY29uZmlndXJhdGlvblxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBGZWRlcmF0ZWRDb25maWcge1xyXG4gIC8qKiBIaWRkZW4gZGltZW5zaW9uIGZvciBlbWJlZGRpbmdzICovXHJcbiAgaGlkZGVuRGltPzogbnVtYmVyO1xyXG4gIC8qKiBFbWJlZGRpbmcgZGltZW5zaW9uICovXHJcbiAgZW1iZWRkaW5nRGltPzogbnVtYmVyO1xyXG4gIC8qKiBNaWNyby1Mb1JBIHJhbmsgKi9cclxuICBtaWNyb0xvcmFSYW5rPzogbnVtYmVyO1xyXG4gIC8qKiBCYXNlIExvUkEgcmFuayAqL1xyXG4gIGJhc2VMb3JhUmFuaz86IG51bWJlcjtcclxuICAvKiogVHJhamVjdG9yeSBidWZmZXIgY2FwYWNpdHkgKi9cclxuICB0cmFqZWN0b3J5Q2FwYWNpdHk/OiBudW1iZXI7XHJcbiAgLyoqIFBhdHRlcm4gY2x1c3RlciBjb3VudCAqL1xyXG4gIHBhdHRlcm5DbHVzdGVycz86IG51bWJlcjtcclxuICAvKiogRVdDIGxhbWJkYSBmb3IgcmVndWxhcml6YXRpb24gKi9cclxuICBld2NMYW1iZGE/OiBudW1iZXI7XHJcbiAgLyoqIFF1YWxpdHkgdGhyZXNob2xkIGZvciBhY2NlcHRpbmcgdHJhamVjdG9yaWVzICovXHJcbiAgcXVhbGl0eVRocmVzaG9sZD86IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRyYWplY3RvcnkgZXhwb3J0IGZvciBmZWRlcmF0aW9uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFRyYWplY3RvcnlFeHBvcnQge1xyXG4gIC8qKiBRdWVyeSBlbWJlZGRpbmcgKi9cclxuICBlbWJlZGRpbmc6IEVtYmVkZGluZztcclxuICAvKiogUXVhbGl0eSBzY29yZSAqL1xyXG4gIHF1YWxpdHk6IG51bWJlcjtcclxuICAvKiogTW9kZWwgcm91dGUgKGlmIGFueSkgKi9cclxuICByb3V0ZT86IHN0cmluZztcclxuICAvKiogQ29udGV4dCBpZGVudGlmaWVycyAqL1xyXG4gIGNvbnRleHQ6IHN0cmluZ1tdO1xyXG4gIC8qKiBUaW1lc3RhbXAgKi9cclxuICB0aW1lc3RhbXA6IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFnZW50IGV4cG9ydCBzdGF0aXN0aWNzXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFnZW50RXhwb3J0U3RhdHMge1xyXG4gIC8qKiBUb3RhbCB0cmFqZWN0b3JpZXMgcHJvY2Vzc2VkICovXHJcbiAgdG90YWxUcmFqZWN0b3JpZXM6IG51bWJlcjtcclxuICAvKiogQXZlcmFnZSBxdWFsaXR5ICovXHJcbiAgYXZnUXVhbGl0eTogbnVtYmVyO1xyXG4gIC8qKiBQYXR0ZXJucyBsZWFybmVkIGxvY2FsbHkgKi9cclxuICBwYXR0ZXJuc0xlYXJuZWQ6IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEV4cG9ydGVkIHN0YXRlIGZyb20gYW4gZXBoZW1lcmFsIGFnZW50XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFnZW50RXhwb3J0IHtcclxuICAvKiogQWdlbnQgaWRlbnRpZmllciAqL1xyXG4gIGFnZW50SWQ6IHN0cmluZztcclxuICAvKiogRXhwb3J0ZWQgdHJhamVjdG9yaWVzICovXHJcbiAgdHJhamVjdG9yaWVzOiBUcmFqZWN0b3J5RXhwb3J0W107XHJcbiAgLyoqIEFnZW50IHN0YXRpc3RpY3MgKi9cclxuICBzdGF0czogQWdlbnRFeHBvcnRTdGF0cztcclxuICAvKiogU2Vzc2lvbiBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMgKi9cclxuICBzZXNzaW9uRHVyYXRpb25NczogbnVtYmVyO1xyXG4gIC8qKiBFeHBvcnQgdGltZXN0YW1wICovXHJcbiAgdGltZXN0YW1wOiBudW1iZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZ2VudCBjb250cmlidXRpb24gcmVjb3JkXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFnZW50Q29udHJpYnV0aW9uIHtcclxuICAvKiogTnVtYmVyIG9mIHRyYWplY3RvcmllcyBjb250cmlidXRlZCAqL1xyXG4gIHRyYWplY3RvcnlDb3VudDogbnVtYmVyO1xyXG4gIC8qKiBBdmVyYWdlIHF1YWxpdHkgb2YgY29udHJpYnV0aW9ucyAqL1xyXG4gIGF2Z1F1YWxpdHk6IG51bWJlcjtcclxuICAvKiogQ29udHJpYnV0aW9uIHRpbWVzdGFtcCAqL1xyXG4gIHRpbWVzdGFtcDogbnVtYmVyO1xyXG4gIC8qKiBTZXNzaW9uIGR1cmF0aW9uICovXHJcbiAgc2Vzc2lvbkR1cmF0aW9uTXM6IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlc3VsdCBvZiBhZ2dyZWdhdGluZyBhbiBhZ2VudCBleHBvcnRcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWdncmVnYXRpb25SZXN1bHQge1xyXG4gIC8qKiBBZ2VudCBJRCB0aGF0IHdhcyBhZ2dyZWdhdGVkICovXHJcbiAgYWdlbnRJZDogc3RyaW5nO1xyXG4gIC8qKiBOdW1iZXIgb2YgdHJhamVjdG9yaWVzIGFjY2VwdGVkICovXHJcbiAgdHJhamVjdG9yaWVzQWNjZXB0ZWQ6IG51bWJlcjtcclxuICAvKiogTnVtYmVyIG9mIHRyYWplY3RvcmllcyByZWplY3RlZCAoYmVsb3cgcXVhbGl0eSB0aHJlc2hvbGQpICovXHJcbiAgdHJhamVjdG9yaWVzUmVqZWN0ZWQ6IG51bWJlcjtcclxuICAvKiogV2hldGhlciBjb25zb2xpZGF0aW9uIHdhcyB0cmlnZ2VyZWQgKi9cclxuICBjb25zb2xpZGF0ZWQ6IGJvb2xlYW47XHJcbiAgLyoqIFRvdGFsIG51bWJlciBvZiBjb250cmlidXRpbmcgYWdlbnRzICovXHJcbiAgdG90YWxBZ2VudHM6IG51bWJlcjtcclxuICAvKiogVG90YWwgdHJhamVjdG9yaWVzIGluIGNvb3JkaW5hdG9yICovXHJcbiAgdG90YWxUcmFqZWN0b3JpZXM6IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvb3JkaW5hdG9yIHN0YXRpc3RpY3NcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29vcmRpbmF0b3JTdGF0cyB7XHJcbiAgLyoqIENvb3JkaW5hdG9yIGlkZW50aWZpZXIgKi9cclxuICBjb29yZGluYXRvcklkOiBzdHJpbmc7XHJcbiAgLyoqIE51bWJlciBvZiBjb250cmlidXRpbmcgYWdlbnRzICovXHJcbiAgdG90YWxBZ2VudHM6IG51bWJlcjtcclxuICAvKiogVG90YWwgdHJhamVjdG9yaWVzIGFnZ3JlZ2F0ZWQgKi9cclxuICB0b3RhbFRyYWplY3RvcmllczogbnVtYmVyO1xyXG4gIC8qKiBQYXR0ZXJucyBsZWFybmVkICovXHJcbiAgcGF0dGVybnNMZWFybmVkOiBudW1iZXI7XHJcbiAgLyoqIEF2ZXJhZ2UgcXVhbGl0eSBhY3Jvc3MgYWxsIGNvbnRyaWJ1dGlvbnMgKi9cclxuICBhdmdRdWFsaXR5OiBudW1iZXI7XHJcbiAgLyoqIFF1YWxpdHkgdGhyZXNob2xkICovXHJcbiAgcXVhbGl0eVRocmVzaG9sZDogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogRmVkZXJhdGVkIGxlYXJuaW5nIHRvcG9sb2d5XHJcbiAqL1xyXG5leHBvcnQgdHlwZSBGZWRlcmF0ZWRUb3BvbG9neSA9XHJcbiAgfCAnc3RhcicgICAgICAgICAgIC8vIEFnZW50cyDihpIgQ2VudHJhbCBDb29yZGluYXRvclxyXG4gIHwgJ2hpZXJhcmNoaWNhbCcgICAvLyBBZ2VudHMg4oaSIFJlZ2lvbmFsIOKGkiBHbG9iYWxcclxuICB8ICdwZWVyLXRvLXBlZXInOyAgLy8gQWdlbnRzIHNoYXJlIGRpcmVjdGx5XHJcblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBUcmFpbmluZyBQaXBlbGluZSBUeXBlc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLyoqXHJcbiAqIFRyYWluaW5nIGNvbmZpZ3VyYXRpb25cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhaW5pbmdDb25maWcge1xyXG4gIC8qKiBJbml0aWFsIGxlYXJuaW5nIHJhdGUgKi9cclxuICBsZWFybmluZ1JhdGU/OiBudW1iZXI7XHJcbiAgLyoqIEJhdGNoIHNpemUgKi9cclxuICBiYXRjaFNpemU/OiBudW1iZXI7XHJcbiAgLyoqIE51bWJlciBvZiBlcG9jaHMgKi9cclxuICBlcG9jaHM/OiBudW1iZXI7XHJcbiAgLyoqIExlYXJuaW5nIHJhdGUgc2NoZWR1bGVyICovXHJcbiAgc2NoZWR1bGVyPzogJ2NvbnN0YW50JyB8ICdsaW5lYXInIHwgJ2Nvc2luZScgfCAnd2FybXVwJztcclxuICAvKiogV2FybXVwIHN0ZXBzIChmb3Igd2FybXVwIHNjaGVkdWxlcikgKi9cclxuICB3YXJtdXBTdGVwcz86IG51bWJlcjtcclxuICAvKiogV2VpZ2h0IGRlY2F5ICovXHJcbiAgd2VpZ2h0RGVjYXk/OiBudW1iZXI7XHJcbiAgLyoqIEdyYWRpZW50IGNsaXBwaW5nIHRocmVzaG9sZCAqL1xyXG4gIGdyYWRpZW50Q2xpcD86IG51bWJlcjtcclxuICAvKiogRWFybHkgc3RvcHBpbmcgcGF0aWVuY2UgKi9cclxuICBlYXJseVN0b3BwaW5nUGF0aWVuY2U/OiBudW1iZXI7XHJcbiAgLyoqIENoZWNrcG9pbnQgaW50ZXJ2YWwgKGVwb2NocykgKi9cclxuICBjaGVja3BvaW50SW50ZXJ2YWw/OiBudW1iZXI7XHJcbiAgLyoqIEVXQyBsYW1iZGEgZm9yIGNvbnRpbnVhbCBsZWFybmluZyAqL1xyXG4gIGV3Y0xhbWJkYT86IG51bWJlcjtcclxuICAvKiogVmFsaWRhdGlvbiBzcGxpdCByYXRpbyAqL1xyXG4gIHZhbGlkYXRpb25TcGxpdD86IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRyYWluaW5nIG1ldHJpY3Mgc25hcHNob3RcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhaW5pbmdNZXRyaWNzU25hcHNob3Qge1xyXG4gIC8qKiBDdXJyZW50IGVwb2NoICovXHJcbiAgZXBvY2g6IG51bWJlcjtcclxuICAvKiogQ3VycmVudCBzdGVwICovXHJcbiAgc3RlcDogbnVtYmVyO1xyXG4gIC8qKiBUcmFpbmluZyBsb3NzICovXHJcbiAgdHJhaW5Mb3NzOiBudW1iZXI7XHJcbiAgLyoqIFZhbGlkYXRpb24gbG9zcyAqL1xyXG4gIHZhbExvc3M6IG51bWJlcjtcclxuICAvKiogTGVhcm5pbmcgcmF0ZSAqL1xyXG4gIGxlYXJuaW5nUmF0ZTogbnVtYmVyO1xyXG4gIC8qKiBHcmFkaWVudCBub3JtICovXHJcbiAgZ3JhZE5vcm06IG51bWJlcjtcclxuICAvKiogU3RlcHMgcGVyIHNlY29uZCAqL1xyXG4gIHN0ZXBzUGVyU2Vjb25kOiBudW1iZXI7XHJcbiAgLyoqIEVUQSBpbiBzZWNvbmRzICovXHJcbiAgZXRhU2Vjb25kczogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogVHJhaW5pbmcgcmVzdWx0XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFRyYWluaW5nUmVzdWx0IHtcclxuICAvKiogVG90YWwgZXBvY2hzIGNvbXBsZXRlZCAqL1xyXG4gIGVwb2NoczogbnVtYmVyO1xyXG4gIC8qKiBUb3RhbCBzdGVwcyBjb21wbGV0ZWQgKi9cclxuICBzdGVwczogbnVtYmVyO1xyXG4gIC8qKiBGaW5hbCB0cmFpbmluZyBsb3NzICovXHJcbiAgZmluYWxMb3NzOiBudW1iZXI7XHJcbiAgLyoqIEJlc3QgdmFsaWRhdGlvbiBsb3NzICovXHJcbiAgYmVzdFZhbExvc3M6IG51bWJlcjtcclxuICAvKiogVHJhaW5pbmcgZHVyYXRpb24gaW4gbXMgKi9cclxuICBkdXJhdGlvbk1zOiBudW1iZXI7XHJcbiAgLyoqIExvc3MgaGlzdG9yeSAqL1xyXG4gIGxvc3NIaXN0b3J5OiBudW1iZXJbXTtcclxuICAvKiogVmFsaWRhdGlvbiBsb3NzIGhpc3RvcnkgKi9cclxuICB2YWxMb3NzSGlzdG9yeTogbnVtYmVyW107XHJcbiAgLyoqIEVhcmx5IHN0b3BwZWQgKi9cclxuICBlYXJseVN0b3BwZWQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUcmFpbmluZyBjaGVja3BvaW50XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFRyYWluaW5nQ2hlY2twb2ludCB7XHJcbiAgLyoqIEVwb2NoIG51bWJlciAqL1xyXG4gIGVwb2NoOiBudW1iZXI7XHJcbiAgLyoqIFN0ZXAgbnVtYmVyICovXHJcbiAgc3RlcDogbnVtYmVyO1xyXG4gIC8qKiBUcmFpbmluZyBsb3NzIGF0IGNoZWNrcG9pbnQgKi9cclxuICBsb3NzOiBudW1iZXI7XHJcbiAgLyoqIE1vZGVsIHdlaWdodHMgKHNlcmlhbGl6ZWQpICovXHJcbiAgd2VpZ2h0czogc3RyaW5nO1xyXG4gIC8qKiBUaW1lc3RhbXAgKi9cclxuICB0aW1lc3RhbXA6IG51bWJlcjtcclxufVxyXG5cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gRXhwb3J0L1NlcmlhbGl6YXRpb24gVHlwZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi8qKlxyXG4gKiBFeHBvcnQgZm9ybWF0IG9wdGlvbnNcclxuICovXHJcbmV4cG9ydCB0eXBlIEV4cG9ydEZvcm1hdCA9ICdzYWZldGVuc29ycycgfCAnanNvbicgfCAnYmluYXJ5JyB8ICdvbm54JztcclxuXHJcbi8qKlxyXG4gKiBNb2RlbCBtZXRhZGF0YSBmb3IgZXhwb3J0XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsTWV0YWRhdGEge1xyXG4gIC8qKiBNb2RlbCBuYW1lICovXHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIC8qKiBNb2RlbCB2ZXJzaW9uICovXHJcbiAgdmVyc2lvbjogc3RyaW5nO1xyXG4gIC8qKiBBcmNoaXRlY3R1cmUgdHlwZSAqL1xyXG4gIGFyY2hpdGVjdHVyZTogc3RyaW5nO1xyXG4gIC8qKiBUcmFpbmluZyBpbmZvICovXHJcbiAgdHJhaW5pbmc/OiB7XHJcbiAgICBzdGVwczogbnVtYmVyO1xyXG4gICAgbG9zczogbnVtYmVyO1xyXG4gICAgbGVhcm5pbmdSYXRlOiBudW1iZXI7XHJcbiAgfTtcclxuICAvKiogQ3VzdG9tIG1ldGFkYXRhICovXHJcbiAgY3VzdG9tPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XHJcbn1cclxuIl19
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSdXZMTE0gVHlwZSBEZWZpbml0aW9uc1xuICovXG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgUnV2TExNIGVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1dkxMTUNvbmZpZyB7XG4gIC8qKiBFbWJlZGRpbmcgZGltZW5zaW9uIChkZWZhdWx0OiA3NjgpICovXG4gIGVtYmVkZGluZ0RpbT86IG51bWJlcjtcbiAgLyoqIFJvdXRlciBoaWRkZW4gZGltZW5zaW9uIChkZWZhdWx0OiAxMjgpICovXG4gIHJvdXRlckhpZGRlbkRpbT86IG51bWJlcjtcbiAgLyoqIEhOU1cgTSBwYXJhbWV0ZXIgKGRlZmF1bHQ6IDE2KSAqL1xuICBobnN3TT86IG51bWJlcjtcbiAgLyoqIEhOU1cgZWZfY29uc3RydWN0aW9uIChkZWZhdWx0OiAxMDApICovXG4gIGhuc3dFZkNvbnN0cnVjdGlvbj86IG51bWJlcjtcbiAgLyoqIEhOU1cgZWZfc2VhcmNoIChkZWZhdWx0OiA2NCkgKi9cbiAgaG5zd0VmU2VhcmNoPzogbnVtYmVyO1xuICAvKiogRW5hYmxlIGxlYXJuaW5nIChkZWZhdWx0OiB0cnVlKSAqL1xuICBsZWFybmluZ0VuYWJsZWQ/OiBib29sZWFuO1xuICAvKiogUXVhbGl0eSB0aHJlc2hvbGQgZm9yIGxlYXJuaW5nIChkZWZhdWx0OiAwLjcpICovXG4gIHF1YWxpdHlUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIC8qKiBFV0MgbGFtYmRhIChkZWZhdWx0OiAyMDAwKSAqL1xuICBld2NMYW1iZGE/OiBudW1iZXI7XG59XG5cbi8qKlxuICogR2VuZXJhdGlvbiBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGlvbkNvbmZpZyB7XG4gIC8qKiBNYXhpbXVtIHRva2VucyB0byBnZW5lcmF0ZSAqL1xuICBtYXhUb2tlbnM/OiBudW1iZXI7XG4gIC8qKiBUZW1wZXJhdHVyZSBmb3Igc2FtcGxpbmcgKDAuMCAtIDIuMCkgKi9cbiAgdGVtcGVyYXR1cmU/OiBudW1iZXI7XG4gIC8qKiBUb3AtcCBudWNsZXVzIHNhbXBsaW5nICgwLjAgLSAxLjApICovXG4gIHRvcFA/OiBudW1iZXI7XG4gIC8qKiBUb3AtayBzYW1wbGluZyAqL1xuICB0b3BLPzogbnVtYmVyO1xuICAvKiogUmVwZXRpdGlvbiBwZW5hbHR5ICovXG4gIHJlcGV0aXRpb25QZW5hbHR5PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFF1ZXJ5IHJlc3BvbnNlIGZyb20gdGhlIExMTVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5UmVzcG9uc2Uge1xuICAvKiogR2VuZXJhdGVkIHRleHQgKi9cbiAgdGV4dDogc3RyaW5nO1xuICAvKiogQ29uZmlkZW5jZSBzY29yZSAoMC4wIC0gMS4wKSAqL1xuICBjb25maWRlbmNlOiBudW1iZXI7XG4gIC8qKiBTZWxlY3RlZCBtb2RlbCAqL1xuICBtb2RlbDogc3RyaW5nO1xuICAvKiogQ29udGV4dCBzaXplIHVzZWQgKi9cbiAgY29udGV4dFNpemU6IG51bWJlcjtcbiAgLyoqIExhdGVuY3kgaW4gbWlsbGlzZWNvbmRzICovXG4gIGxhdGVuY3lNczogbnVtYmVyO1xuICAvKiogUmVxdWVzdCBJRCBmb3IgZmVlZGJhY2sgKi9cbiAgcmVxdWVzdElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUm91dGluZyBkZWNpc2lvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRpbmdEZWNpc2lvbiB7XG4gIC8qKiBTZWxlY3RlZCBtb2RlbCBzaXplICovXG4gIG1vZGVsOiBNb2RlbFNpemU7XG4gIC8qKiBSZWNvbW1lbmRlZCBjb250ZXh0IHNpemUgKi9cbiAgY29udGV4dFNpemU6IG51bWJlcjtcbiAgLyoqIFRlbXBlcmF0dXJlICovXG4gIHRlbXBlcmF0dXJlOiBudW1iZXI7XG4gIC8qKiBUb3AtcCAqL1xuICB0b3BQOiBudW1iZXI7XG4gIC8qKiBDb25maWRlbmNlICovXG4gIGNvbmZpZGVuY2U6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBNZW1vcnkgc2VhcmNoIHJlc3VsdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lbW9yeVJlc3VsdCB7XG4gIC8qKiBOb2RlIElEICovXG4gIGlkOiBudW1iZXI7XG4gIC8qKiBTaW1pbGFyaXR5IHNjb3JlICovXG4gIHNjb3JlOiBudW1iZXI7XG4gIC8qKiBDb250ZW50IHRleHQgKi9cbiAgY29udGVudDogc3RyaW5nO1xuICAvKiogTWV0YWRhdGEgKi9cbiAgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIEVuZ2luZSBzdGF0aXN0aWNzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnV2TExNU3RhdHMge1xuICAvKiogVG90YWwgcXVlcmllcyBwcm9jZXNzZWQgKi9cbiAgdG90YWxRdWVyaWVzOiBudW1iZXI7XG4gIC8qKiBNZW1vcnkgbm9kZXMgc3RvcmVkICovXG4gIG1lbW9yeU5vZGVzOiBudW1iZXI7XG4gIC8qKiBQYXR0ZXJucyBsZWFybmVkICovXG4gIHBhdHRlcm5zTGVhcm5lZDogbnVtYmVyO1xuICAvKiogQXZlcmFnZSBsYXRlbmN5IGluIG1zICovXG4gIGF2Z0xhdGVuY3lNczogbnVtYmVyO1xuICAvKiogQ2FjaGUgaGl0IHJhdGUgKDAuMCAtIDEuMCkgKi9cbiAgY2FjaGVIaXRSYXRlOiBudW1iZXI7XG4gIC8qKiBSb3V0ZXIgYWNjdXJhY3kgKDAuMCAtIDEuMCkgKi9cbiAgcm91dGVyQWNjdXJhY3k6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBNb2RlbCBzaXplIG9wdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgTW9kZWxTaXplID0gJ00zNTAnIHwgJ003MDAnIHwgJ0IxXzInIHwgJ0IyXzYnO1xuXG4vKipcbiAqIEZlZWRiYWNrIGZvciBsZWFybmluZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEZlZWRiYWNrIHtcbiAgLyoqIFJlcXVlc3QgSUQgZnJvbSBxdWVyeSByZXNwb25zZSAqL1xuICByZXF1ZXN0SWQ6IHN0cmluZztcbiAgLyoqIFJhdGluZyAxLTUgKi9cbiAgcmF0aW5nOiBudW1iZXI7XG4gIC8qKiBPcHRpb25hbCBjb3JyZWN0aW9uIHRleHQgKi9cbiAgY29ycmVjdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTZXNzaW9uIGZvciBtdWx0aS10dXJuIGNvbnZlcnNhdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uIHtcbiAgLyoqIFNlc3Npb24gSUQgKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqIENyZWF0ZWQgdGltZXN0YW1wICovXG4gIGNyZWF0ZWRBdDogRGF0ZTtcbiAgLyoqIE1lc3NhZ2VzIGluIHNlc3Npb24gKi9cbiAgbWVzc2FnZUNvdW50OiBudW1iZXI7XG59XG5cbi8qKlxuICogU0lNRCBjYXBhYmlsaXRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaW1kQ2FwYWJpbGl0aWVzIHtcbiAgLyoqIEhhcyBhbnkgU0lNRCBzdXBwb3J0ICovXG4gIGhhc1NpbWQ6IGJvb2xlYW47XG4gIC8qKiBBdmFpbGFibGUgU0lNRCBpbnN0cnVjdGlvbnMgKi9cbiAgY2FwYWJpbGl0aWVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBFbWJlZGRpbmcgcmVzdWx0XG4gKi9cbmV4cG9ydCB0eXBlIEVtYmVkZGluZyA9IG51bWJlcltdO1xuXG4vKipcbiAqIEJhdGNoIHF1ZXJ5IHJlcXVlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXRjaFF1ZXJ5UmVxdWVzdCB7XG4gIC8qKiBRdWVyaWVzIHRvIHByb2Nlc3MgKi9cbiAgcXVlcmllczogc3RyaW5nW107XG4gIC8qKiBPcHRpb25hbCBnZW5lcmF0aW9uIGNvbmZpZyAqL1xuICBjb25maWc/OiBHZW5lcmF0aW9uQ29uZmlnO1xufVxuXG4vKipcbiAqIEJhdGNoIHF1ZXJ5IHJlc3BvbnNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hRdWVyeVJlc3BvbnNlIHtcbiAgLyoqIFJlc3BvbnNlcyBmb3IgZWFjaCBxdWVyeSAqL1xuICByZXNwb25zZXM6IFF1ZXJ5UmVzcG9uc2VbXTtcbiAgLyoqIFRvdGFsIHByb2Nlc3NpbmcgdGltZSBpbiBtcyAqL1xuICB0b3RhbExhdGVuY3lNczogbnVtYmVyO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU09OQSBMZWFybmluZyBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBTT05BIENvbmZpZ3VyYXRpb24gZm9yIGFkYXB0aXZlIGxlYXJuaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU29uYUNvbmZpZyB7XG4gIC8qKiBFbmFibGUgaW5zdGFudCBsb29wIChyZWFsLXRpbWUgbGVhcm5pbmcpICovXG4gIGluc3RhbnRMb29wRW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKiBFbmFibGUgYmFja2dyb3VuZCBsb29wIChiYXRjaCBsZWFybmluZykgKi9cbiAgYmFja2dyb3VuZExvb3BFbmFibGVkPzogYm9vbGVhbjtcbiAgLyoqIExlYXJuaW5nIHJhdGUgZm9yIExvUkEgYWRhcHRlcnMgKi9cbiAgbG9yYUxlYXJuaW5nUmF0ZT86IG51bWJlcjtcbiAgLyoqIExvUkEgcmFuayAobG93ZXIgPSBmYXN0ZXIsIGhpZ2hlciA9IG1vcmUgY2FwYWNpdHkpICovXG4gIGxvcmFSYW5rPzogbnVtYmVyO1xuICAvKiogRVdDIGxhbWJkYSBmb3IgbWVtb3J5IHByb3RlY3Rpb24gKi9cbiAgZXdjTGFtYmRhPzogbnVtYmVyO1xuICAvKiogTWF4IHRyYWplY3RvcnkgYnVmZmVyIHNpemUgKi9cbiAgbWF4VHJhamVjdG9yeVNpemU/OiBudW1iZXI7XG4gIC8qKiBQYXR0ZXJuIHNpbWlsYXJpdHkgdGhyZXNob2xkICovXG4gIHBhdHRlcm5UaHJlc2hvbGQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogTGVhcm5pbmcgc2lnbmFsIGZyb20gdXNlciBmZWVkYmFja1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExlYXJuaW5nU2lnbmFsIHtcbiAgLyoqIFJlcXVlc3QgSUQgKi9cbiAgcmVxdWVzdElkOiBzdHJpbmc7XG4gIC8qKiBRdWFsaXR5IHNjb3JlICgwLTEpICovXG4gIHF1YWxpdHk6IG51bWJlcjtcbiAgLyoqIFNpZ25hbCB0eXBlICovXG4gIHR5cGU6IFNpZ25hbFR5cGU7XG4gIC8qKiBPcHRpb25hbCBjb3JyZWN0aW9uICovXG4gIGNvcnJlY3Rpb24/OiBzdHJpbmc7XG4gIC8qKiBUaW1lc3RhbXAgKi9cbiAgdGltZXN0YW1wOiBEYXRlO1xufVxuXG4vKipcbiAqIFNpZ25hbCB0eXBlcyBmb3IgbGVhcm5pbmdcbiAqL1xuZXhwb3J0IHR5cGUgU2lnbmFsVHlwZSA9ICdwb3NpdGl2ZScgfCAnbmVnYXRpdmUnIHwgJ2NvcnJlY3Rpb24nIHwgJ2ltcGxpY2l0JztcblxuLyoqXG4gKiBRdWVyeSB0cmFqZWN0b3J5IGZvciBsZWFybmluZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5VHJhamVjdG9yeSB7XG4gIC8qKiBUcmFqZWN0b3J5IElEICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBTdGVwcyBpbiB0aGUgdHJhamVjdG9yeSAqL1xuICBzdGVwczogVHJhamVjdG9yeVN0ZXBbXTtcbiAgLyoqIEZpbmFsIG91dGNvbWUgKi9cbiAgb3V0Y29tZTogVHJhamVjdG9yeU91dGNvbWU7XG4gIC8qKiBUb3RhbCBkdXJhdGlvbiAqL1xuICBkdXJhdGlvbk1zOiBudW1iZXI7XG59XG5cbi8qKlxuICogU2luZ2xlIHN0ZXAgaW4gYSB0cmFqZWN0b3J5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhamVjdG9yeVN0ZXAge1xuICAvKiogU3RlcCB0eXBlICovXG4gIHR5cGU6ICdxdWVyeScgfCAncm91dGUnIHwgJ2dlbmVyYXRlJyB8ICdtZW1vcnknIHwgJ2ZlZWRiYWNrJztcbiAgLyoqIElucHV0IGRhdGEgKi9cbiAgaW5wdXQ6IHN0cmluZztcbiAgLyoqIE91dHB1dCBkYXRhICovXG4gIG91dHB1dDogc3RyaW5nO1xuICAvKiogRHVyYXRpb24gb2YgdGhpcyBzdGVwICovXG4gIGR1cmF0aW9uTXM6IG51bWJlcjtcbiAgLyoqIENvbmZpZGVuY2UgYXQgdGhpcyBzdGVwICovXG4gIGNvbmZpZGVuY2U6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUcmFqZWN0b3J5IG91dGNvbWVcbiAqL1xuZXhwb3J0IHR5cGUgVHJhamVjdG9yeU91dGNvbWUgPSAnc3VjY2VzcycgfCAncGFydGlhbCcgfCAnZmFpbHVyZScgfCAndW5rbm93bic7XG5cbi8qKlxuICogTGVhcm5lZCBwYXR0ZXJuIGZyb20gUmVhc29uaW5nQmFua1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExlYXJuZWRQYXR0ZXJuIHtcbiAgLyoqIFBhdHRlcm4gSUQgKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqIFBhdHRlcm4gdHlwZSAqL1xuICB0eXBlOiBQYXR0ZXJuVHlwZTtcbiAgLyoqIFBhdHRlcm4gZW1iZWRkaW5nICovXG4gIGVtYmVkZGluZzogRW1iZWRkaW5nO1xuICAvKiogU3VjY2VzcyByYXRlICgwLTEpICovXG4gIHN1Y2Nlc3NSYXRlOiBudW1iZXI7XG4gIC8qKiBUaW1lcyB1c2VkICovXG4gIHVzZUNvdW50OiBudW1iZXI7XG4gIC8qKiBMYXN0IHVzZWQgdGltZXN0YW1wICovXG4gIGxhc3RVc2VkOiBEYXRlO1xufVxuXG4vKipcbiAqIFR5cGVzIG9mIGxlYXJuZWQgcGF0dGVybnNcbiAqL1xuZXhwb3J0IHR5cGUgUGF0dGVyblR5cGUgPVxuICB8ICdxdWVyeV9yZXNwb25zZScgICAgICAvLyBRJkEgcGF0dGVyblxuICB8ICdyb3V0aW5nJyAgICAgICAgICAgICAvLyBSb3V0aW5nIGRlY2lzaW9uIHBhdHRlcm5cbiAgfCAnY29udGV4dF9yZXRyaWV2YWwnICAgLy8gTWVtb3J5IHJldHJpZXZhbCBwYXR0ZXJuXG4gIHwgJ2NvcnJlY3Rpb24nICAgICAgICAgIC8vIFVzZXIgY29ycmVjdGlvbiBwYXR0ZXJuXG4gIHwgJ2Fic3RyYWN0aW9uJzsgICAgICAgIC8vIENvbXByZXNzZWQgY29uY2VwdFxuXG4vKipcbiAqIExvUkEgYWRhcHRlciBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9SQUNvbmZpZyB7XG4gIC8qKiBBZGFwdGVyIHJhbmsgKDQsIDgsIDE2LCAzMikgKi9cbiAgcmFuazogbnVtYmVyO1xuICAvKiogQWxwaGEgc2NhbGluZyBmYWN0b3IgKi9cbiAgYWxwaGE6IG51bWJlcjtcbiAgLyoqIERyb3BvdXQgcmF0ZSAqL1xuICBkcm9wb3V0OiBudW1iZXI7XG4gIC8qKiBUYXJnZXQgbW9kdWxlcyB0byBhZGFwdCAqL1xuICB0YXJnZXRNb2R1bGVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBFV0MgKEVsYXN0aWMgV2VpZ2h0IENvbnNvbGlkYXRpb24pIHN0YXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXdjU3RhdHMge1xuICAvKiogTnVtYmVyIG9mIHRhc2tzIGxlYXJuZWQgKi9cbiAgdGFza3NMZWFybmVkOiBudW1iZXI7XG4gIC8qKiBGaXNoZXIgaW5mb3JtYXRpb24gY29tcHV0ZWQgKi9cbiAgZmlzaGVyQ29tcHV0ZWQ6IGJvb2xlYW47XG4gIC8qKiBNZW1vcnkgcHJvdGVjdGlvbiBzdHJlbmd0aCAqL1xuICBwcm90ZWN0aW9uU3RyZW5ndGg6IG51bWJlcjtcbiAgLyoqIEVzdGltYXRlZCBmb3JnZXR0aW5nIHJhdGUgKi9cbiAgZm9yZ2V0dGluZ1JhdGU6IG51bWJlcjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNlc3Npb24gJiBDb252ZXJzYXRpb24gVHlwZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRXh0ZW5kZWQgc2Vzc2lvbiB3aXRoIGNvbnZlcnNhdGlvbiBoaXN0b3J5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVyc2F0aW9uU2Vzc2lvbiBleHRlbmRzIFNlc3Npb24ge1xuICAvKiogQ29udmVyc2F0aW9uIG1lc3NhZ2VzICovXG4gIG1lc3NhZ2VzOiBDb252ZXJzYXRpb25NZXNzYWdlW107XG4gIC8qKiBTZXNzaW9uIGNvbnRleHQgKGFjY3VtdWxhdGVkKSAqL1xuICBjb250ZXh0OiBzdHJpbmdbXTtcbiAgLyoqIEFjdGl2ZSBtZW1vcnkgSURzICovXG4gIGFjdGl2ZU1lbW9yeUlkczogbnVtYmVyW107XG4gIC8qKiBTZXNzaW9uIG1ldGFkYXRhICovXG4gIG1ldGFkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBTaW5nbGUgbWVzc2FnZSBpbiBjb252ZXJzYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb252ZXJzYXRpb25NZXNzYWdlIHtcbiAgLyoqIE1lc3NhZ2Ugcm9sZSAqL1xuICByb2xlOiAndXNlcicgfCAnYXNzaXN0YW50JyB8ICdzeXN0ZW0nO1xuICAvKiogTWVzc2FnZSBjb250ZW50ICovXG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgLyoqIFRpbWVzdGFtcCAqL1xuICB0aW1lc3RhbXA6IERhdGU7XG4gIC8qKiBBc3NvY2lhdGVkIHJlcXVlc3QgSUQgKGlmIGFzc2lzdGFudCkgKi9cbiAgcmVxdWVzdElkPzogc3RyaW5nO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU3RyZWFtaW5nIFR5cGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFN0cmVhbWluZyByZXNwb25zZSBjaHVua1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cmVhbUNodW5rIHtcbiAgLyoqIENodW5rIHRleHQgKi9cbiAgdGV4dDogc3RyaW5nO1xuICAvKiogSXMgZmluYWwgY2h1bmsgKi9cbiAgZG9uZTogYm9vbGVhbjtcbiAgLyoqIFRva2VuIGNvdW50IHNvIGZhciAqL1xuICB0b2tlbkNvdW50OiBudW1iZXI7XG4gIC8qKiBDdW11bGF0aXZlIGxhdGVuY3kgKi9cbiAgbGF0ZW5jeU1zOiBudW1iZXI7XG59XG5cbi8qKlxuICogU3RyZWFtIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1PcHRpb25zIGV4dGVuZHMgR2VuZXJhdGlvbkNvbmZpZyB7XG4gIC8qKiBDYWxsYmFjayBmb3IgZWFjaCBjaHVuayAqL1xuICBvbkNodW5rPzogKGNodW5rOiBTdHJlYW1DaHVuaykgPT4gdm9pZDtcbiAgLyoqIENhbGxiYWNrIG9uIGNvbXBsZXRpb24gKi9cbiAgb25Db21wbGV0ZT86IChyZXNwb25zZTogUXVlcnlSZXNwb25zZSkgPT4gdm9pZDtcbiAgLyoqIENhbGxiYWNrIG9uIGVycm9yICovXG4gIG9uRXJyb3I/OiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29tcHJlc3Npb24gJiBBcmNoaXZhbCBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBNZW1vcnkgY29tcHJlc3Npb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcHJlc3Npb25SZXN1bHQge1xuICAvKiogTm9kZXMgY29tcHJlc3NlZCAqL1xuICBub2Rlc0NvbXByZXNzZWQ6IG51bWJlcjtcbiAgLyoqIE5vZGVzIGFyY2hpdmVkICovXG4gIG5vZGVzQXJjaGl2ZWQ6IG51bWJlcjtcbiAgLyoqIENvbmNlcHRzIGNyZWF0ZWQgKi9cbiAgY29uY2VwdHNDcmVhdGVkOiBudW1iZXI7XG4gIC8qKiBNZW1vcnkgc2F2ZWQgKGJ5dGVzKSAqL1xuICBtZW1vcnlTYXZlZDogbnVtYmVyO1xuICAvKiogRHVyYXRpb24gKi9cbiAgZHVyYXRpb25NczogbnVtYmVyO1xufVxuXG4vKipcbiAqIEFyY2hpdmUgcXVlcnkgcmVzdWx0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJjaGl2ZVJlc3VsdCB7XG4gIC8qKiBBcmNoaXZlZCBub2RlIElEICovXG4gIGlkOiBudW1iZXI7XG4gIC8qKiBPcmlnaW5hbCBjb250ZW50IChpZiBhdmFpbGFibGUpICovXG4gIGNvbnRlbnQ/OiBzdHJpbmc7XG4gIC8qKiBDb25jZXB0IGl0IGJlbG9uZ3MgdG8gKi9cbiAgY29uY2VwdElkPzogc3RyaW5nO1xuICAvKiogQXJjaGl2ZSB0aW1lc3RhbXAgKi9cbiAgYXJjaGl2ZWRBdDogRGF0ZTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEF0dGVudGlvbiBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBBdHRlbnRpb24gd2VpZ2h0cyBmb3IgaW50ZXJwcmV0YWJpbGl0eVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dGVudGlvbldlaWdodHMge1xuICAvKiogUXVlcnkta2V5IGF0dGVudGlvbiBzY29yZXMgKi9cbiAgc2NvcmVzOiBudW1iZXJbXVtdO1xuICAvKiogSGVhZCBpbmRleCAqL1xuICBoZWFkSW5kZXg6IG51bWJlcjtcbiAgLyoqIExheWVyIGluZGV4ICovXG4gIGxheWVySW5kZXg6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBdHRlbnRpb24gYW5hbHlzaXMgcmVzdWx0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXR0ZW50aW9uQW5hbHlzaXMge1xuICAvKiogTW9zdCBhdHRlbmRlZCB0b2tlbnMgKi9cbiAgdG9wQXR0ZW5kZWQ6IEFycmF5PHsgdG9rZW46IHN0cmluZzsgd2VpZ2h0OiBudW1iZXIgfT47XG4gIC8qKiBBdHRlbnRpb24gZW50cm9weSAodW5jZXJ0YWludHkpICovXG4gIGVudHJvcHk6IG51bWJlcjtcbiAgLyoqIEZvY3VzIHNjb3JlICgwLTEsIGhpZ2hlciA9IG1vcmUgZm9jdXNlZCkgKi9cbiAgZm9jdXNTY29yZTogbnVtYmVyO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRmVkZXJhdGVkIExlYXJuaW5nIFR5cGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEZlZGVyYXRlZCBsZWFybmluZyBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmVkZXJhdGVkQ29uZmlnIHtcbiAgLyoqIEhpZGRlbiBkaW1lbnNpb24gZm9yIGVtYmVkZGluZ3MgKi9cbiAgaGlkZGVuRGltPzogbnVtYmVyO1xuICAvKiogRW1iZWRkaW5nIGRpbWVuc2lvbiAqL1xuICBlbWJlZGRpbmdEaW0/OiBudW1iZXI7XG4gIC8qKiBNaWNyby1Mb1JBIHJhbmsgKi9cbiAgbWljcm9Mb3JhUmFuaz86IG51bWJlcjtcbiAgLyoqIEJhc2UgTG9SQSByYW5rICovXG4gIGJhc2VMb3JhUmFuaz86IG51bWJlcjtcbiAgLyoqIFRyYWplY3RvcnkgYnVmZmVyIGNhcGFjaXR5ICovXG4gIHRyYWplY3RvcnlDYXBhY2l0eT86IG51bWJlcjtcbiAgLyoqIFBhdHRlcm4gY2x1c3RlciBjb3VudCAqL1xuICBwYXR0ZXJuQ2x1c3RlcnM/OiBudW1iZXI7XG4gIC8qKiBFV0MgbGFtYmRhIGZvciByZWd1bGFyaXphdGlvbiAqL1xuICBld2NMYW1iZGE/OiBudW1iZXI7XG4gIC8qKiBRdWFsaXR5IHRocmVzaG9sZCBmb3IgYWNjZXB0aW5nIHRyYWplY3RvcmllcyAqL1xuICBxdWFsaXR5VGhyZXNob2xkPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRyYWplY3RvcnkgZXhwb3J0IGZvciBmZWRlcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhamVjdG9yeUV4cG9ydCB7XG4gIC8qKiBRdWVyeSBlbWJlZGRpbmcgKi9cbiAgZW1iZWRkaW5nOiBFbWJlZGRpbmc7XG4gIC8qKiBRdWFsaXR5IHNjb3JlICovXG4gIHF1YWxpdHk6IG51bWJlcjtcbiAgLyoqIE1vZGVsIHJvdXRlIChpZiBhbnkpICovXG4gIHJvdXRlPzogc3RyaW5nO1xuICAvKiogQ29udGV4dCBpZGVudGlmaWVycyAqL1xuICBjb250ZXh0OiBzdHJpbmdbXTtcbiAgLyoqIFRpbWVzdGFtcCAqL1xuICB0aW1lc3RhbXA6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBZ2VudCBleHBvcnQgc3RhdGlzdGljc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFnZW50RXhwb3J0U3RhdHMge1xuICAvKiogVG90YWwgdHJhamVjdG9yaWVzIHByb2Nlc3NlZCAqL1xuICB0b3RhbFRyYWplY3RvcmllczogbnVtYmVyO1xuICAvKiogQXZlcmFnZSBxdWFsaXR5ICovXG4gIGF2Z1F1YWxpdHk6IG51bWJlcjtcbiAgLyoqIFBhdHRlcm5zIGxlYXJuZWQgbG9jYWxseSAqL1xuICBwYXR0ZXJuc0xlYXJuZWQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBFeHBvcnRlZCBzdGF0ZSBmcm9tIGFuIGVwaGVtZXJhbCBhZ2VudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFnZW50RXhwb3J0IHtcbiAgLyoqIEFnZW50IGlkZW50aWZpZXIgKi9cbiAgYWdlbnRJZDogc3RyaW5nO1xuICAvKiogRXhwb3J0ZWQgdHJhamVjdG9yaWVzICovXG4gIHRyYWplY3RvcmllczogVHJhamVjdG9yeUV4cG9ydFtdO1xuICAvKiogQWdlbnQgc3RhdGlzdGljcyAqL1xuICBzdGF0czogQWdlbnRFeHBvcnRTdGF0cztcbiAgLyoqIFNlc3Npb24gZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzICovXG4gIHNlc3Npb25EdXJhdGlvbk1zOiBudW1iZXI7XG4gIC8qKiBFeHBvcnQgdGltZXN0YW1wICovXG4gIHRpbWVzdGFtcDogbnVtYmVyO1xufVxuXG4vKipcbiAqIEFnZW50IGNvbnRyaWJ1dGlvbiByZWNvcmRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZ2VudENvbnRyaWJ1dGlvbiB7XG4gIC8qKiBOdW1iZXIgb2YgdHJhamVjdG9yaWVzIGNvbnRyaWJ1dGVkICovXG4gIHRyYWplY3RvcnlDb3VudDogbnVtYmVyO1xuICAvKiogQXZlcmFnZSBxdWFsaXR5IG9mIGNvbnRyaWJ1dGlvbnMgKi9cbiAgYXZnUXVhbGl0eTogbnVtYmVyO1xuICAvKiogQ29udHJpYnV0aW9uIHRpbWVzdGFtcCAqL1xuICB0aW1lc3RhbXA6IG51bWJlcjtcbiAgLyoqIFNlc3Npb24gZHVyYXRpb24gKi9cbiAgc2Vzc2lvbkR1cmF0aW9uTXM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2YgYWdncmVnYXRpbmcgYW4gYWdlbnQgZXhwb3J0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWdncmVnYXRpb25SZXN1bHQge1xuICAvKiogQWdlbnQgSUQgdGhhdCB3YXMgYWdncmVnYXRlZCAqL1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIC8qKiBOdW1iZXIgb2YgdHJhamVjdG9yaWVzIGFjY2VwdGVkICovXG4gIHRyYWplY3Rvcmllc0FjY2VwdGVkOiBudW1iZXI7XG4gIC8qKiBOdW1iZXIgb2YgdHJhamVjdG9yaWVzIHJlamVjdGVkIChiZWxvdyBxdWFsaXR5IHRocmVzaG9sZCkgKi9cbiAgdHJhamVjdG9yaWVzUmVqZWN0ZWQ6IG51bWJlcjtcbiAgLyoqIFdoZXRoZXIgY29uc29saWRhdGlvbiB3YXMgdHJpZ2dlcmVkICovXG4gIGNvbnNvbGlkYXRlZDogYm9vbGVhbjtcbiAgLyoqIFRvdGFsIG51bWJlciBvZiBjb250cmlidXRpbmcgYWdlbnRzICovXG4gIHRvdGFsQWdlbnRzOiBudW1iZXI7XG4gIC8qKiBUb3RhbCB0cmFqZWN0b3JpZXMgaW4gY29vcmRpbmF0b3IgKi9cbiAgdG90YWxUcmFqZWN0b3JpZXM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDb29yZGluYXRvciBzdGF0aXN0aWNzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29vcmRpbmF0b3JTdGF0cyB7XG4gIC8qKiBDb29yZGluYXRvciBpZGVudGlmaWVyICovXG4gIGNvb3JkaW5hdG9ySWQ6IHN0cmluZztcbiAgLyoqIE51bWJlciBvZiBjb250cmlidXRpbmcgYWdlbnRzICovXG4gIHRvdGFsQWdlbnRzOiBudW1iZXI7XG4gIC8qKiBUb3RhbCB0cmFqZWN0b3JpZXMgYWdncmVnYXRlZCAqL1xuICB0b3RhbFRyYWplY3RvcmllczogbnVtYmVyO1xuICAvKiogUGF0dGVybnMgbGVhcm5lZCAqL1xuICBwYXR0ZXJuc0xlYXJuZWQ6IG51bWJlcjtcbiAgLyoqIEF2ZXJhZ2UgcXVhbGl0eSBhY3Jvc3MgYWxsIGNvbnRyaWJ1dGlvbnMgKi9cbiAgYXZnUXVhbGl0eTogbnVtYmVyO1xuICAvKiogUXVhbGl0eSB0aHJlc2hvbGQgKi9cbiAgcXVhbGl0eVRocmVzaG9sZDogbnVtYmVyO1xufVxuXG4vKipcbiAqIEZlZGVyYXRlZCBsZWFybmluZyB0b3BvbG9neVxuICovXG5leHBvcnQgdHlwZSBGZWRlcmF0ZWRUb3BvbG9neSA9XG4gIHwgJ3N0YXInICAgICAgICAgICAvLyBBZ2VudHMg4oaSIENlbnRyYWwgQ29vcmRpbmF0b3JcbiAgfCAnaGllcmFyY2hpY2FsJyAgIC8vIEFnZW50cyDihpIgUmVnaW9uYWwg4oaSIEdsb2JhbFxuICB8ICdwZWVyLXRvLXBlZXInOyAgLy8gQWdlbnRzIHNoYXJlIGRpcmVjdGx5XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUcmFpbmluZyBQaXBlbGluZSBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBUcmFpbmluZyBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhaW5pbmdDb25maWcge1xuICAvKiogSW5pdGlhbCBsZWFybmluZyByYXRlICovXG4gIGxlYXJuaW5nUmF0ZT86IG51bWJlcjtcbiAgLyoqIEJhdGNoIHNpemUgKi9cbiAgYmF0Y2hTaXplPzogbnVtYmVyO1xuICAvKiogTnVtYmVyIG9mIGVwb2NocyAqL1xuICBlcG9jaHM/OiBudW1iZXI7XG4gIC8qKiBMZWFybmluZyByYXRlIHNjaGVkdWxlciAqL1xuICBzY2hlZHVsZXI/OiAnY29uc3RhbnQnIHwgJ2xpbmVhcicgfCAnY29zaW5lJyB8ICd3YXJtdXAnO1xuICAvKiogV2FybXVwIHN0ZXBzIChmb3Igd2FybXVwIHNjaGVkdWxlcikgKi9cbiAgd2FybXVwU3RlcHM/OiBudW1iZXI7XG4gIC8qKiBXZWlnaHQgZGVjYXkgKi9cbiAgd2VpZ2h0RGVjYXk/OiBudW1iZXI7XG4gIC8qKiBHcmFkaWVudCBjbGlwcGluZyB0aHJlc2hvbGQgKi9cbiAgZ3JhZGllbnRDbGlwPzogbnVtYmVyO1xuICAvKiogRWFybHkgc3RvcHBpbmcgcGF0aWVuY2UgKi9cbiAgZWFybHlTdG9wcGluZ1BhdGllbmNlPzogbnVtYmVyO1xuICAvKiogQ2hlY2twb2ludCBpbnRlcnZhbCAoZXBvY2hzKSAqL1xuICBjaGVja3BvaW50SW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKiBFV0MgbGFtYmRhIGZvciBjb250aW51YWwgbGVhcm5pbmcgKi9cbiAgZXdjTGFtYmRhPzogbnVtYmVyO1xuICAvKiogVmFsaWRhdGlvbiBzcGxpdCByYXRpbyAqL1xuICB2YWxpZGF0aW9uU3BsaXQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBGaWxlIHBhdGggZm9yIGJlc3QtY2hlY2twb2ludCByZXRlbnRpb24uIFdoZW4gc2V0LCB0aGUgcGlwZWxpbmUgd3JpdGVzXG4gICAqIHRoZSBjdXJyZW50IHN0YXRlIHRvIHRoaXMgcGF0aCBlYWNoIHRpbWUgdmFsaWRhdGlvbiBsb3NzIGltcHJvdmVzLCBzbyB0aGVcbiAgICogYmVzdC12YWxpZGF0aW9uIG1vZGVsIHN1cnZpdmVzIGV2ZW4gaWYgbGF0ZXIgZXBvY2hzIGRlZ3JhZGUuIEVtcHR5IHN0cmluZ1xuICAgKiAodGhlIGRlZmF1bHQpIGRpc2FibGVzIGl0OyBhIG5vLW9wIHdoZW4gdmFsaWRhdGlvbiBuZXZlciBydW5zLlxuICAgKi9cbiAga2VlcEJlc3RDaGVja3BvaW50Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRyYWluaW5nIG1ldHJpY3Mgc25hcHNob3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFpbmluZ01ldHJpY3NTbmFwc2hvdCB7XG4gIC8qKiBDdXJyZW50IGVwb2NoICovXG4gIGVwb2NoOiBudW1iZXI7XG4gIC8qKiBDdXJyZW50IHN0ZXAgKi9cbiAgc3RlcDogbnVtYmVyO1xuICAvKiogVHJhaW5pbmcgbG9zcyAqL1xuICB0cmFpbkxvc3M6IG51bWJlcjtcbiAgLyoqIFZhbGlkYXRpb24gbG9zcyAqL1xuICB2YWxMb3NzOiBudW1iZXI7XG4gIC8qKiBMZWFybmluZyByYXRlICovXG4gIGxlYXJuaW5nUmF0ZTogbnVtYmVyO1xuICAvKiogR3JhZGllbnQgbm9ybSAqL1xuICBncmFkTm9ybTogbnVtYmVyO1xuICAvKiogU3RlcHMgcGVyIHNlY29uZCAqL1xuICBzdGVwc1BlclNlY29uZDogbnVtYmVyO1xuICAvKiogRVRBIGluIHNlY29uZHMgKi9cbiAgZXRhU2Vjb25kczogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRyYWluaW5nIHJlc3VsdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYWluaW5nUmVzdWx0IHtcbiAgLyoqIFRvdGFsIGVwb2NocyBjb21wbGV0ZWQgKi9cbiAgZXBvY2hzOiBudW1iZXI7XG4gIC8qKiBUb3RhbCBzdGVwcyBjb21wbGV0ZWQgKi9cbiAgc3RlcHM6IG51bWJlcjtcbiAgLyoqIEZpbmFsIHRyYWluaW5nIGxvc3MgKi9cbiAgZmluYWxMb3NzOiBudW1iZXI7XG4gIC8qKiBCZXN0IHZhbGlkYXRpb24gbG9zcyAqL1xuICBiZXN0VmFsTG9zczogbnVtYmVyO1xuICAvKiogVHJhaW5pbmcgZHVyYXRpb24gaW4gbXMgKi9cbiAgZHVyYXRpb25NczogbnVtYmVyO1xuICAvKiogTG9zcyBoaXN0b3J5ICovXG4gIGxvc3NIaXN0b3J5OiBudW1iZXJbXTtcbiAgLyoqIFZhbGlkYXRpb24gbG9zcyBoaXN0b3J5ICovXG4gIHZhbExvc3NIaXN0b3J5OiBudW1iZXJbXTtcbiAgLyoqIEVhcmx5IHN0b3BwZWQgKi9cbiAgZWFybHlTdG9wcGVkOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRyYWluaW5nIGNoZWNrcG9pbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFpbmluZ0NoZWNrcG9pbnQge1xuICAvKiogRXBvY2ggbnVtYmVyICovXG4gIGVwb2NoOiBudW1iZXI7XG4gIC8qKiBTdGVwIG51bWJlciAqL1xuICBzdGVwOiBudW1iZXI7XG4gIC8qKiBUcmFpbmluZyBsb3NzIGF0IGNoZWNrcG9pbnQgKi9cbiAgbG9zczogbnVtYmVyO1xuICAvKiogTW9kZWwgd2VpZ2h0cyAoc2VyaWFsaXplZCkgKi9cbiAgd2VpZ2h0czogc3RyaW5nO1xuICAvKiogVGltZXN0YW1wICovXG4gIHRpbWVzdGFtcDogbnVtYmVyO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRXhwb3J0L1NlcmlhbGl6YXRpb24gVHlwZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRXhwb3J0IGZvcm1hdCBvcHRpb25zXG4gKi9cbmV4cG9ydCB0eXBlIEV4cG9ydEZvcm1hdCA9ICdzYWZldGVuc29ycycgfCAnanNvbicgfCAnYmluYXJ5JyB8ICdvbm54JztcblxuLyoqXG4gKiBNb2RlbCBtZXRhZGF0YSBmb3IgZXhwb3J0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxNZXRhZGF0YSB7XG4gIC8qKiBNb2RlbCBuYW1lICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIE1vZGVsIHZlcnNpb24gKi9cbiAgdmVyc2lvbjogc3RyaW5nO1xuICAvKiogQXJjaGl0ZWN0dXJlIHR5cGUgKi9cbiAgYXJjaGl0ZWN0dXJlOiBzdHJpbmc7XG4gIC8qKiBUcmFpbmluZyBpbmZvICovXG4gIHRyYWluaW5nPzoge1xuICAgIHN0ZXBzOiBudW1iZXI7XG4gICAgbG9zczogbnVtYmVyO1xuICAgIGxlYXJuaW5nUmF0ZTogbnVtYmVyO1xuICB9O1xuICAvKiogQ3VzdG9tIG1ldGFkYXRhICovXG4gIGN1c3RvbT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuIl19
|