aws-cdk-neuronx-patterns 0.0.25 → 0.1.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/.jsii CHANGED
@@ -8,6 +8,7 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "@aws-cdk/aws-sagemaker-alpha": "2.240.0-alpha.0",
11
+ "@cdklabs/deploy-time-build": "^0.0.6",
11
12
  "aws-cdk-lib": "^2.240.0",
12
13
  "constructs": "^10.5.1"
13
14
  },
@@ -125,6 +126,17 @@
125
126
  }
126
127
  }
127
128
  },
129
+ "@cdklabs/deploy-time-build": {
130
+ "targets": {
131
+ "js": {
132
+ "npm": "@cdklabs/deploy-time-build"
133
+ },
134
+ "python": {
135
+ "distName": "cdklabs.deploy-time-build",
136
+ "module": "cdklabs.deploy_time_build"
137
+ }
138
+ }
139
+ },
128
140
  "aws-cdk-lib": {
129
141
  "submodules": {
130
142
  "aws-cdk-lib.alexa_ask": {
@@ -15222,9 +15234,21 @@
15222
15234
  },
15223
15235
  "locationInModule": {
15224
15236
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15225
- "line": 41
15237
+ "line": 42
15226
15238
  },
15227
15239
  "parameters": [
15240
+ {
15241
+ "name": "scope",
15242
+ "type": {
15243
+ "fqn": "constructs.Construct"
15244
+ }
15245
+ },
15246
+ {
15247
+ "name": "id",
15248
+ "type": {
15249
+ "primitive": "string"
15250
+ }
15251
+ },
15228
15252
  {
15229
15253
  "name": "vllmInferenceNeuronxImage",
15230
15254
  "optional": true,
@@ -15237,7 +15261,7 @@
15237
15261
  "kind": "class",
15238
15262
  "locationInModule": {
15239
15263
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15240
- "line": 36
15264
+ "line": 37
15241
15265
  },
15242
15266
  "name": "VllmNxdInferenceCompileImage",
15243
15267
  "properties": [
@@ -15249,7 +15273,7 @@
15249
15273
  "immutable": true,
15250
15274
  "locationInModule": {
15251
15275
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15252
- "line": 40
15276
+ "line": 41
15253
15277
  },
15254
15278
  "name": "image",
15255
15279
  "overrides": "aws-cdk-neuronx-patterns.VllmNxdInferenceEcsImageBase",
@@ -15271,7 +15295,7 @@
15271
15295
  "kind": "interface",
15272
15296
  "locationInModule": {
15273
15297
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15274
- "line": 59
15298
+ "line": 63
15275
15299
  },
15276
15300
  "name": "VllmNxdInferenceCompileProps",
15277
15301
  "properties": [
@@ -15284,7 +15308,7 @@
15284
15308
  "immutable": true,
15285
15309
  "locationInModule": {
15286
15310
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15287
- "line": 67
15311
+ "line": 71
15288
15312
  },
15289
15313
  "name": "bucket",
15290
15314
  "type": {
@@ -15300,7 +15324,7 @@
15300
15324
  "immutable": true,
15301
15325
  "locationInModule": {
15302
15326
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15303
- "line": 75
15327
+ "line": 79
15304
15328
  },
15305
15329
  "name": "model",
15306
15330
  "type": {
@@ -15316,7 +15340,7 @@
15316
15340
  "immutable": true,
15317
15341
  "locationInModule": {
15318
15342
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15319
- "line": 63
15343
+ "line": 67
15320
15344
  },
15321
15345
  "name": "vpc",
15322
15346
  "type": {
@@ -15334,7 +15358,7 @@
15334
15358
  "immutable": true,
15335
15359
  "locationInModule": {
15336
15360
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15337
- "line": 99
15361
+ "line": 103
15338
15362
  },
15339
15363
  "name": "environment",
15340
15364
  "optional": true,
@@ -15357,7 +15381,7 @@
15357
15381
  "immutable": true,
15358
15382
  "locationInModule": {
15359
15383
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15360
- "line": 111
15384
+ "line": 115
15361
15385
  },
15362
15386
  "name": "image",
15363
15387
  "optional": true,
@@ -15374,7 +15398,7 @@
15374
15398
  "immutable": true,
15375
15399
  "locationInModule": {
15376
15400
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15377
- "line": 71
15401
+ "line": 75
15378
15402
  },
15379
15403
  "name": "neuronxInstanceType",
15380
15404
  "optional": true,
@@ -15393,7 +15417,7 @@
15393
15417
  "immutable": true,
15394
15418
  "locationInModule": {
15395
15419
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15396
- "line": 86
15420
+ "line": 90
15397
15421
  },
15398
15422
  "name": "spot",
15399
15423
  "optional": true,
@@ -15411,7 +15435,7 @@
15411
15435
  "immutable": true,
15412
15436
  "locationInModule": {
15413
15437
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15414
- "line": 106
15438
+ "line": 110
15415
15439
  },
15416
15440
  "name": "vllmArgs",
15417
15441
  "optional": true,
@@ -15429,7 +15453,7 @@
15429
15453
  "immutable": true,
15430
15454
  "locationInModule": {
15431
15455
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15432
- "line": 80
15456
+ "line": 84
15433
15457
  },
15434
15458
  "name": "volumeSize",
15435
15459
  "optional": true,
@@ -15447,7 +15471,7 @@
15447
15471
  "immutable": true,
15448
15472
  "locationInModule": {
15449
15473
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15450
- "line": 92
15474
+ "line": 96
15451
15475
  },
15452
15476
  "name": "vpcSubnets",
15453
15477
  "optional": true,
@@ -15472,7 +15496,7 @@
15472
15496
  "kind": "interface",
15473
15497
  "locationInModule": {
15474
15498
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15475
- "line": 117
15499
+ "line": 121
15476
15500
  },
15477
15501
  "name": "VllmNxdInferenceCompiledModel",
15478
15502
  "properties": [
@@ -15485,7 +15509,7 @@
15485
15509
  "immutable": true,
15486
15510
  "locationInModule": {
15487
15511
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15488
- "line": 121
15512
+ "line": 125
15489
15513
  },
15490
15514
  "name": "vllmArgs",
15491
15515
  "type": {
@@ -15510,7 +15534,7 @@
15510
15534
  },
15511
15535
  "locationInModule": {
15512
15536
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15513
- "line": 131
15537
+ "line": 135
15514
15538
  },
15515
15539
  "parameters": [
15516
15540
  {
@@ -15536,7 +15560,7 @@
15536
15560
  "kind": "class",
15537
15561
  "locationInModule": {
15538
15562
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15539
- "line": 128
15563
+ "line": 132
15540
15564
  },
15541
15565
  "methods": [
15542
15566
  {
@@ -15547,7 +15571,7 @@
15547
15571
  },
15548
15572
  "locationInModule": {
15549
15573
  "filename": "src/vllm-nxd-inference/vllm-nxd-inference-compiler.ts",
15550
- "line": 243
15574
+ "line": 248
15551
15575
  },
15552
15576
  "name": "compile",
15553
15577
  "returns": {
@@ -16457,6 +16481,6 @@
16457
16481
  "symbolId": "src/base/server-engine/vllm-engine/vllm-engine-argments:VllmTask"
16458
16482
  }
16459
16483
  },
16460
- "version": "0.0.25",
16461
- "fingerprint": "FBlS1LjbpkH4xHZmUkS/HUteBt81oMKKYTM45yMBUdA="
16484
+ "version": "0.1.0",
16485
+ "fingerprint": "IhnuuiOyKT3Wi9FtwReOvcr18BmUyhz8IQGqdmKm2UQ="
16462
16486
  }
package/API.md CHANGED
@@ -12441,15 +12441,29 @@ Compile runtime container image for vLLM NxD Inference.
12441
12441
  ```typescript
12442
12442
  import { VllmNxdInferenceCompileImage } from 'aws-cdk-neuronx-patterns'
12443
12443
 
12444
- new VllmNxdInferenceCompileImage(vllmInferenceNeuronxImage?: IVllmInferenceNeuronxImage)
12444
+ new VllmNxdInferenceCompileImage(scope: Construct, id: string, vllmInferenceNeuronxImage?: IVllmInferenceNeuronxImage)
12445
12445
  ```
12446
12446
 
12447
12447
  | **Name** | **Type** | **Description** |
12448
12448
  | --- | --- | --- |
12449
+ | <code><a href="#aws-cdk-neuronx-patterns.VllmNxdInferenceCompileImage.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
12450
+ | <code><a href="#aws-cdk-neuronx-patterns.VllmNxdInferenceCompileImage.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
12449
12451
  | <code><a href="#aws-cdk-neuronx-patterns.VllmNxdInferenceCompileImage.Initializer.parameter.vllmInferenceNeuronxImage">vllmInferenceNeuronxImage</a></code> | <code><a href="#aws-cdk-neuronx-patterns.IVllmInferenceNeuronxImage">IVllmInferenceNeuronxImage</a></code> | *No description.* |
12450
12452
 
12451
12453
  ---
12452
12454
 
12455
+ ##### `scope`<sup>Required</sup> <a name="scope" id="aws-cdk-neuronx-patterns.VllmNxdInferenceCompileImage.Initializer.parameter.scope"></a>
12456
+
12457
+ - *Type:* constructs.Construct
12458
+
12459
+ ---
12460
+
12461
+ ##### `id`<sup>Required</sup> <a name="id" id="aws-cdk-neuronx-patterns.VllmNxdInferenceCompileImage.Initializer.parameter.id"></a>
12462
+
12463
+ - *Type:* string
12464
+
12465
+ ---
12466
+
12453
12467
  ##### `vllmInferenceNeuronxImage`<sup>Optional</sup> <a name="vllmInferenceNeuronxImage" id="aws-cdk-neuronx-patterns.VllmNxdInferenceCompileImage.Initializer.parameter.vllmInferenceNeuronxImage"></a>
12454
12468
 
12455
12469
  - *Type:* <a href="#aws-cdk-neuronx-patterns.IVllmInferenceNeuronxImage">IVllmInferenceNeuronxImage</a>
@@ -44,5 +44,5 @@ class NeuronxBatchComputeEnvironment extends constructs_1.Construct {
44
44
  }
45
45
  exports.NeuronxBatchComputeEnvironment = NeuronxBatchComputeEnvironment;
46
46
  _a = JSII_RTTI_SYMBOL_1;
47
- NeuronxBatchComputeEnvironment[_a] = { fqn: "aws-cdk-neuronx-patterns.NeuronxBatchComputeEnvironment", version: "0.0.25" };
47
+ NeuronxBatchComputeEnvironment[_a] = { fqn: "aws-cdk-neuronx-patterns.NeuronxBatchComputeEnvironment", version: "0.1.0" };
48
48
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV1cm9ueC1iYXRjaC1jb21wdXRlLWVudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jhc2UvYXdzLWJhdGNoL25ldXJvbngtYmF0Y2gtY29tcHV0ZS1lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLCtDQUErQztBQUMvQyxpREFBcUQ7QUFFckQsMkNBQXVDO0FBQ3ZDLHdDQUF5RDtBQVF6RDs7R0FFRztBQUNILE1BQWEsOEJBQ1gsU0FBUSxzQkFBUztJQVVqQixJQUFJLHFCQUFxQjtRQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVELFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQTBDO1FBRTFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSTtZQUM3QjtnQkFDRSxLQUFLLEVBQUUsSUFBSSxxQ0FBMkIsQ0FDcEMsSUFBSSxFQUNKLDZCQUE2QixDQUM5QjtnQkFDRCxTQUFTLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFVBQVU7YUFDaEQ7U0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FDdkQsSUFBSSxFQUNKLFVBQVUsRUFDVjtZQUNFLEdBQUcsS0FBSztZQUNSLE1BQU07U0FDUCxDQUNGLENBQUM7UUFDRixJQUNFLEtBQUssQ0FBQyxjQUFjO1lBQ3BCLEtBQUssQ0FBQyxjQUFjLFlBQVksd0JBQWMsRUFDOUMsQ0FBQztZQUVDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQ3BCLENBQUMsbUJBQW1CLENBQ25CLHlDQUF5QyxFQUN6QyxLQUFLLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUN6QyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDO1FBQ2pFLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFDO1FBQ25FLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDckMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQWEsQ0FBQztJQUNsRCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsTUFBcUI7UUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDOztBQTdESCx3RUE4REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5LCBSZXNvdXJjZUVudmlyb25tZW50LCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgYmF0Y2ggZnJvbSBcImF3cy1jZGstbGliL2F3cy1iYXRjaFwiO1xuaW1wb3J0IHsgTGF1bmNoVGVtcGxhdGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgSVJvbGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IE5ldXJvbk9wdGltaXplZE1hY2hpbmVJbWFnZSB9IGZyb20gXCIuLi9uZXVyb254XCI7XG5cbi8qKlxuICogUHJvcHMgb2YgTmV1cm9ueEJhdGNoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldXJvbnhCYXRjaENvbXB1dGVFbnZpcm9ubWVudFByb3BzXG4gIGV4dGVuZHMgYmF0Y2guTWFuYWdlZEVjMkVjc0NvbXB1dGVFbnZpcm9ubWVudFByb3BzIHt9XG5cbi8qKlxuICogTmV1cm9ueCBiYXRjaCBjb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXVyb254QmF0Y2hDb21wdXRlRW52aXJvbm1lbnRcbiAgZXh0ZW5kcyBDb25zdHJ1Y3RcbiAgaW1wbGVtZW50cyBiYXRjaC5JQ29tcHV0ZUVudmlyb25tZW50XG57XG4gIHJlYWRvbmx5IGNvbXB1dGVFbnZpcm9ubWVudE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgY29tcHV0ZUVudmlyb25tZW50QXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlcnZpY2VSb2xlPzogSVJvbGUgfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5IGVuYWJsZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IHN0YWNrOiBTdGFjaztcbiAgcmVhZG9ubHkgZW52OiBSZXNvdXJjZUVudmlyb25tZW50O1xuICByZWFkb25seSBpbnN0YW5jZVJvbGU6IElSb2xlO1xuICBnZXQgY29tcHV0ZUVudmlyb25tZW50UmVmKCk6IGJhdGNoLkNvbXB1dGVFbnZpcm9ubWVudFJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIHsgY29tcHV0ZUVudmlyb25tZW50QXJuOiB0aGlzLmNvbXB1dGVFbnZpcm9ubWVudEFybiB9O1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IGJhdGNoLk1hbmFnZWRFYzJFY3NDb21wdXRlRW52aXJvbm1lbnQ7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogTmV1cm9ueEJhdGNoQ29tcHV0ZUVudmlyb25tZW50UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBpbWFnZXMgPSBwcm9wcy5pbWFnZXMgPz8gW1xuICAgICAge1xuICAgICAgICBpbWFnZTogbmV3IE5ldXJvbk9wdGltaXplZE1hY2hpbmVJbWFnZShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIFwiTmV1cm9uT3B0aW1pemVkTWFjaGluZUltYWdlXCIsXG4gICAgICAgICksXG4gICAgICAgIGltYWdlVHlwZTogYmF0Y2guRWNzTWFjaGluZUltYWdlVHlwZS5FQ1NfQUwyMDIzLFxuICAgICAgfSxcbiAgICBdO1xuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgYmF0Y2guTWFuYWdlZEVjMkVjc0NvbXB1dGVFbnZpcm9ubWVudChcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICB7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICBpbWFnZXMsXG4gICAgICB9LFxuICAgICk7XG4gICAgaWYgKFxuICAgICAgcHJvcHMubGF1bmNoVGVtcGxhdGUgJiZcbiAgICAgIHByb3BzLmxhdW5jaFRlbXBsYXRlIGluc3RhbmNlb2YgTGF1bmNoVGVtcGxhdGVcbiAgICApIHtcbiAgICAgIChcbiAgICAgICAgdGhpcy5yZXNvdXJjZS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBiYXRjaC5DZm5Db21wdXRlRW52aXJvbm1lbnRcbiAgICAgICkuYWRkUHJvcGVydHlPdmVycmlkZShcbiAgICAgICAgXCJDb21wdXRlUmVzb3VyY2VzLkxhdW5jaFRlbXBsYXRlLlZlcnNpb25cIixcbiAgICAgICAgcHJvcHMubGF1bmNoVGVtcGxhdGUubGF0ZXN0VmVyc2lvbk51bWJlcixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5jb21wdXRlRW52aXJvbm1lbnRBcm4gPSB0aGlzLnJlc291cmNlLmNvbXB1dGVFbnZpcm9ubWVudEFybjtcbiAgICB0aGlzLmNvbXB1dGVFbnZpcm9ubWVudE5hbWUgPSB0aGlzLnJlc291cmNlLmNvbXB1dGVFbnZpcm9ubWVudE5hbWU7XG4gICAgdGhpcy5lbmFibGVkID0gdGhpcy5yZXNvdXJjZS5lbmFibGVkO1xuICAgIHRoaXMuZW52ID0gdGhpcy5yZXNvdXJjZS5lbnY7XG4gICAgdGhpcy5zZXJ2aWNlUm9sZSA9IHRoaXMucmVzb3VyY2Uuc2VydmljZVJvbGU7XG4gICAgdGhpcy5zdGFjayA9IHRoaXMucmVzb3VyY2Uuc3RhY2s7XG4gICAgdGhpcy5pbnN0YW5jZVJvbGUgPSB0aGlzLnJlc291cmNlLmluc3RhbmNlUm9sZSE7XG4gIH1cbiAgYXBwbHlSZW1vdmFsUG9saWN5KHBvbGljeTogUmVtb3ZhbFBvbGljeSk6IHZvaWQge1xuICAgIHRoaXMucmVzb3VyY2UuYXBwbHlSZW1vdmFsUG9saWN5KHBvbGljeSk7XG4gIH1cbn1cbiJdfQ==
@@ -58,5 +58,5 @@ class NeuronxBatchEcsJobDefinition extends constructs_1.Construct {
58
58
  }
59
59
  exports.NeuronxBatchEcsJobDefinition = NeuronxBatchEcsJobDefinition;
60
60
  _a = JSII_RTTI_SYMBOL_1;
61
- NeuronxBatchEcsJobDefinition[_a] = { fqn: "aws-cdk-neuronx-patterns.NeuronxBatchEcsJobDefinition", version: "0.0.25" };
61
+ NeuronxBatchEcsJobDefinition[_a] = { fqn: "aws-cdk-neuronx-patterns.NeuronxBatchEcsJobDefinition", version: "0.1.0" };
62
62
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV1cm9ueC1iYXRjaC1lY3Mtam9iLWRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFzZS9hd3MtYmF0Y2gvbmV1cm9ueC1iYXRjaC1lY3Mtam9iLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFNQSwrQ0FBK0M7QUFFL0MsMkNBQXVDO0FBV3ZDOztHQUVHO0FBQ0gsTUFBYSw0QkFDWCxTQUFRLHNCQUFTO0lBWWpCLElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBd0M7UUFFeEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLGVBQWUsR0FDbkIsS0FBSyxDQUFDLGVBQWU7WUFDckIsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JELGVBQWUsQ0FBQyxVQUFVLENBQ3hCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNaLE1BQU0sRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsS0FBSztTQUN6RCxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNwQixRQUFRLEVBQUUsY0FBYyxLQUFLLEVBQUU7WUFDL0IsYUFBYSxFQUFFLGNBQWMsS0FBSyxFQUFFO1lBQ3BDLFdBQVcsRUFBRTtnQkFDWCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSTtnQkFDM0IsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUs7YUFDN0I7U0FDRixDQUFDLENBQUMsQ0FDSixDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzNELEdBQUcsS0FBSztZQUNSLFNBQVMsRUFBRSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FDNUMsSUFBSSxFQUNKLHFCQUFxQixFQUNyQjtnQkFDRSxHQUFHLEtBQUs7Z0JBQ1IsZUFBZTthQUNoQixDQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7UUFDdkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBQ2pELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7UUFDckQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUM7UUFDM0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNyQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7SUFDL0IsQ0FBQztJQUNELGtCQUFrQixDQUFDLE1BQXFCO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNELGdCQUFnQixDQUFDLFFBQTZCO1FBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNEOztPQUVHO0lBQ0gsY0FBYyxDQUFDLFFBQW9CLEVBQUUsS0FBc0I7UUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7O0FBdEVILG9FQXVFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIER1cmF0aW9uLFxuICBSZW1vdmFsUG9saWN5LFxuICBSZXNvdXJjZUVudmlyb25tZW50LFxuICBTdGFjayxcbn0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBiYXRjaCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWJhdGNoXCI7XG5pbXBvcnQgeyBJR3JhbnRhYmxlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBJTmV1cm9ueEluc3RhbmNlVHlwZSB9IGZyb20gXCIuLi9uZXVyb254XCI7XG5cbi8qKlxuICogUHJvcHMgb2YgTmV1cm9ueEJhdGNoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldXJvbnhCYXRjaEVjc0pvYkRlZmluaXRpb25Qcm9wc1xuICBleHRlbmRzIGJhdGNoLkVjc0VjMkNvbnRhaW5lckRlZmluaXRpb25Qcm9wcywgYmF0Y2guSm9iRGVmaW5pdGlvblByb3BzIHtcbiAgcmVhZG9ubHkgbmV1cm9ueEluc3RhbmNlVHlwZTogSU5ldXJvbnhJbnN0YW5jZVR5cGU7XG59XG5cbi8qKlxuICogTmV1cm9ueCBiYXRjaCBjb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXVyb254QmF0Y2hFY3NKb2JEZWZpbml0aW9uXG4gIGV4dGVuZHMgQ29uc3RydWN0XG4gIGltcGxlbWVudHMgYmF0Y2guSUpvYkRlZmluaXRpb25cbntcbiAgcmVhZG9ubHkgam9iRGVmaW5pdGlvbkFybjogc3RyaW5nO1xuICByZWFkb25seSBqb2JEZWZpbml0aW9uTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgcmVhZG9ubHkgcmV0cnlBdHRlbXB0cz86IG51bWJlcjtcbiAgcmVhZG9ubHkgcmV0cnlTdHJhdGVnaWVzOiBiYXRjaC5SZXRyeVN0cmF0ZWd5W107XG4gIHJlYWRvbmx5IHNjaGVkdWxpbmdQcmlvcml0eT86IG51bWJlcjtcbiAgcmVhZG9ubHkgdGltZW91dD86IER1cmF0aW9uO1xuICByZWFkb25seSBzdGFjazogU3RhY2s7XG4gIHJlYWRvbmx5IGVudjogUmVzb3VyY2VFbnZpcm9ubWVudDtcbiAgZ2V0IGpvYkRlZmluaXRpb25SZWYoKTogYmF0Y2guSm9iRGVmaW5pdGlvblJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIHsgam9iRGVmaW5pdGlvbkFybjogdGhpcy5qb2JEZWZpbml0aW9uQXJuIH07XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogYmF0Y2guRWNzSm9iRGVmaW5pdGlvbjtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBOZXVyb254QmF0Y2hFY3NKb2JEZWZpbml0aW9uUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgbGludXhQYXJhbWV0ZXJzID1cbiAgICAgIHByb3BzLmxpbnV4UGFyYW1ldGVycyA/P1xuICAgICAgbmV3IGJhdGNoLkxpbnV4UGFyYW1ldGVycyh0aGlzLCBcIkxpbnV4UGFyYW1ldGVyc1wiKTtcbiAgICBsaW51eFBhcmFtZXRlcnMuYWRkRGV2aWNlcyhcbiAgICAgIC4uLkFycmF5LmZyb20oe1xuICAgICAgICBsZW5ndGg6IHByb3BzLm5ldXJvbnhJbnN0YW5jZVR5cGUuYWNjZWxlcmF0b3JDaGlwcy5jaGlwcyxcbiAgICAgIH0pLm1hcCgoXywgaW5kZXgpID0+ICh7XG4gICAgICAgIGhvc3RQYXRoOiBgL2Rldi9uZXVyb24ke2luZGV4fWAsXG4gICAgICAgIGNvbnRhaW5lclBhdGg6IGAvZGV2L25ldXJvbiR7aW5kZXh9YCxcbiAgICAgICAgcGVybWlzc2lvbnM6IFtcbiAgICAgICAgICBiYXRjaC5EZXZpY2VQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgICAgYmF0Y2guRGV2aWNlUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgXSxcbiAgICAgIH0pKSxcbiAgICApO1xuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgYmF0Y2guRWNzSm9iRGVmaW5pdGlvbih0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY29udGFpbmVyOiBuZXcgYmF0Y2guRWNzRWMyQ29udGFpbmVyRGVmaW5pdGlvbihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJDb250YWluZXJEZWZpbml0aW9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICBsaW51eFBhcmFtZXRlcnMsXG4gICAgICAgIH0sXG4gICAgICApLFxuICAgIH0pO1xuICAgIHRoaXMuam9iRGVmaW5pdGlvbkFybiA9IHRoaXMucmVzb3VyY2Uuam9iRGVmaW5pdGlvbkFybjtcbiAgICB0aGlzLmpvYkRlZmluaXRpb25OYW1lID0gdGhpcy5yZXNvdXJjZS5qb2JEZWZpbml0aW9uTmFtZTtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSB0aGlzLnJlc291cmNlLnBhcmFtZXRlcnM7XG4gICAgdGhpcy5yZXRyeUF0dGVtcHRzID0gdGhpcy5yZXNvdXJjZS5yZXRyeUF0dGVtcHRzO1xuICAgIHRoaXMucmV0cnlTdHJhdGVnaWVzID0gdGhpcy5yZXNvdXJjZS5yZXRyeVN0cmF0ZWdpZXM7XG4gICAgdGhpcy5zY2hlZHVsaW5nUHJpb3JpdHkgPSB0aGlzLnJlc291cmNlLnNjaGVkdWxpbmdQcmlvcml0eTtcbiAgICB0aGlzLnRpbWVvdXQgPSB0aGlzLnJlc291cmNlLnRpbWVvdXQ7XG4gICAgdGhpcy5zdGFjayA9IHRoaXMucmVzb3VyY2Uuc3RhY2s7XG4gICAgdGhpcy5lbnYgPSB0aGlzLnJlc291cmNlLmVudjtcbiAgfVxuICBhcHBseVJlbW92YWxQb2xpY3kocG9saWN5OiBSZW1vdmFsUG9saWN5KTogdm9pZCB7XG4gICAgdGhpcy5yZXNvdXJjZS5hcHBseVJlbW92YWxQb2xpY3kocG9saWN5KTtcbiAgfVxuICBhZGRSZXRyeVN0cmF0ZWd5KHN0cmF0ZWd5OiBiYXRjaC5SZXRyeVN0cmF0ZWd5KTogdm9pZCB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRSZXRyeVN0cmF0ZWd5KHN0cmF0ZWd5KTtcbiAgfVxuICAvKipcbiAgICogR3JhbnRzIHRoZSBgYmF0Y2g6c3VibWl0Sm9iYCBwZXJtaXNzaW9uIHRvIHRoZSBpZGVudGl0eSBvbiBib3RoIHRoaXMgam9iIGRlZmluaXRpb24gYW5kIHRoZSBgcXVldWVgXG4gICAqL1xuICBncmFudFN1Ym1pdEpvYihpZGVudGl0eTogSUdyYW50YWJsZSwgcXVldWU6IGJhdGNoLklKb2JRdWV1ZSk6IHZvaWQge1xuICAgIHRoaXMucmVzb3VyY2UuZ3JhbnRTdWJtaXRKb2IoaWRlbnRpdHksIHF1ZXVlKTtcbiAgfVxufVxuIl19
@@ -58,5 +58,5 @@ class NeuronxBatch extends constructs_1.Construct {
58
58
  }
59
59
  exports.NeuronxBatch = NeuronxBatch;
60
60
  _a = JSII_RTTI_SYMBOL_1;
61
- NeuronxBatch[_a] = { fqn: "aws-cdk-neuronx-patterns.NeuronxBatch", version: "0.0.25" };
61
+ NeuronxBatch[_a] = { fqn: "aws-cdk-neuronx-patterns.NeuronxBatch", version: "0.1.0" };
62
62
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV1cm9ueC1iYXRjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNlL2F3cy1iYXRjaC9uZXVyb254LWJhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsK0NBQStDO0FBQy9DLDJDQUEyQztBQUMzQywyQ0FBdUM7QUFDdkMsd0NBQStFO0FBb0MvRTs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLHNCQUFTO0lBR3pDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3BFLFlBQVksRUFBRTtnQkFDWjtvQkFDRSxVQUFVLEVBQUUsV0FBVztvQkFDdkIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztpQkFDbEU7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FDakUsSUFBSSxFQUNKLG9CQUFvQixFQUNwQjtZQUNFLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM1QixhQUFhLEVBQUUsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDO1lBQ3ZELHlCQUF5QixFQUFFLEtBQUs7WUFDaEMsTUFBTSxFQUFFO2dCQUNOO29CQUNFLEtBQUssRUFBRSxJQUFJLHFDQUEyQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUM7b0JBQzNELFNBQVMsRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQUMsVUFBVTtpQkFDaEQ7YUFDRjtZQUNELGNBQWM7WUFDZCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7U0FDakIsQ0FDRixDQUFDO1FBRUEsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUM5QixDQUFDLG1CQUFtQixDQUNuQix5Q0FBeUMsRUFDekMsY0FBYyxDQUFDLG1CQUFtQixDQUNuQyxDQUFDO1FBQ0YsTUFBTSxlQUFlLEdBQ25CLEtBQUssQ0FBQyxlQUFlO1lBQ3JCLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNyRCxlQUFlLENBQUMsVUFBVSxDQUN4QixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDWixNQUFNLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLEtBQUs7U0FDekQsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEIsUUFBUSxFQUFFLGNBQWMsS0FBSyxFQUFFO1lBQy9CLGFBQWEsRUFBRSxjQUFjLEtBQUssRUFBRTtZQUNwQyxXQUFXLEVBQUU7Z0JBQ1gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUk7Z0JBQzNCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLO2FBQzdCO1NBQ0YsQ0FBQyxDQUFDLENBQ0osQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUNyRSxTQUFTLEVBQUUsSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQzVDLElBQUksRUFDSixxQkFBcUIsRUFDckI7Z0JBQ0UsR0FBRyxLQUFLO2dCQUNSLGVBQWU7YUFDaEIsQ0FDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBOURILG9DQStEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpemUgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGJhdGNoIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYmF0Y2hcIjtcbmltcG9ydCAqIGFzIGVjMiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IElOZXVyb254SW5zdGFuY2VUeXBlLCBOZXVyb25PcHRpbWl6ZWRNYWNoaW5lSW1hZ2UgfSBmcm9tIFwiLi4vbmV1cm9ueFwiO1xuXG4vKipcbiAqIFByb3BzIG9mIE5ldXJvbnhCYXRjaC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXVyb254QmF0Y2hQcm9wc1xuICBleHRlbmRzIGJhdGNoLkVjc0VjMkNvbnRhaW5lckRlZmluaXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBWUEMgaW4gd2hpY2ggdGhpcyB3aWxsIGxhdW5jaCB3b3JrZXIgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuICAvKipcbiAgICogVGhlIGluc3RhbmNlIHR5cGUgb2Ygd29ya2VyIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV1cm9ueEluc3RhbmNlVHlwZTogSU5ldXJvbnhJbnN0YW5jZVR5cGU7XG4gIC8qKlxuICAgKiBUaGUgcm9vdCB2b2x1bWUgb2Ygd29ya2VyIGluc3RhbmNlLlxuICAgKiBAZGVmYXVsdCAtIE4gYmlsaW9uIHBhcmFtZXRlcnMgKiA1R2lCIEVCU1xuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lU2l6ZTogU2l6ZTtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSBzcG90IGluc3RhbmNlcy5cbiAgICogU3BvdCBpbnN0YW5jZXMgYXJlIGxlc3MgZXhwZW5zaXZlIEVDMiBpbnN0YW5jZXMgdGhhdCBjYW4gYmUgcmVjbGFpbWVkIGJ5IEVDMiBhdCBhbnkgdGltZTtcbiAgICogeW91ciBqb2Igd2lsbCBiZSBnaXZlbiB0d28gbWludXRlcyBvZiBub3RpY2UgYmVmb3JlIHJlY2xhbWF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3BvdD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgVlBDIFN1Ym5ldHMgdGhpcyBDb21wdXRlIEVudmlyb25tZW50IHdpbGwgbGF1bmNoIGluc3RhbmNlcyBpbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBuZXcgc3VibmV0cyB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHZwY1N1Ym5ldHM/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xufVxuXG4vKipcbiAqIE5ldXJvbnggYmF0Y2ggY29uc3RydWN0LlxuICovXG5leHBvcnQgY2xhc3MgTmV1cm9ueEJhdGNoIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgY29tcHV0ZUVudmlyb25tZW50OiBiYXRjaC5NYW5hZ2VkRWMyRWNzQ29tcHV0ZUVudmlyb25tZW50O1xuICByZWFkb25seSBqb2JEZWZpbml0aW9uOiBiYXRjaC5FY3NKb2JEZWZpbml0aW9uO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTmV1cm9ueEJhdGNoUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IGxhdW5jaFRlbXBsYXRlID0gbmV3IGVjMi5MYXVuY2hUZW1wbGF0ZSh0aGlzLCBcIkxhdW5jaFRlbXBsYXRlXCIsIHtcbiAgICAgIGJsb2NrRGV2aWNlczogW1xuICAgICAgICB7XG4gICAgICAgICAgZGV2aWNlTmFtZTogXCIvZGV2L3h2ZGFcIixcbiAgICAgICAgICB2b2x1bWU6IGVjMi5CbG9ja0RldmljZVZvbHVtZS5lYnMocHJvcHMudm9sdW1lU2l6ZS50b0dpYmlieXRlcygpKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgdGhpcy5jb21wdXRlRW52aXJvbm1lbnQgPSBuZXcgYmF0Y2guTWFuYWdlZEVjMkVjc0NvbXB1dGVFbnZpcm9ubWVudChcbiAgICAgIHRoaXMsXG4gICAgICBcIkNvbXB1dGVFbnZpcm9ubWVudFwiLFxuICAgICAge1xuICAgICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgICAgdnBjU3VibmV0czogcHJvcHMudnBjU3VibmV0cyxcbiAgICAgICAgaW5zdGFuY2VUeXBlczogW3Byb3BzLm5ldXJvbnhJbnN0YW5jZVR5cGUuaW5zdGFuY2VUeXBlXSxcbiAgICAgICAgdXNlT3B0aW1hbEluc3RhbmNlQ2xhc3NlczogZmFsc2UsXG4gICAgICAgIGltYWdlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGltYWdlOiBuZXcgTmV1cm9uT3B0aW1pemVkTWFjaGluZUltYWdlKHRoaXMsIFwiTWFjaGluSW1hZ2VcIiksXG4gICAgICAgICAgICBpbWFnZVR5cGU6IGJhdGNoLkVjc01hY2hpbmVJbWFnZVR5cGUuRUNTX0FMMjAyMyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsYXVuY2hUZW1wbGF0ZSxcbiAgICAgICAgc3BvdDogcHJvcHMuc3BvdCxcbiAgICAgIH0sXG4gICAgKTtcbiAgICAoXG4gICAgICB0aGlzLmNvbXB1dGVFbnZpcm9ubWVudC5ub2RlLmRlZmF1bHRDaGlsZCBhcyBiYXRjaC5DZm5Db21wdXRlRW52aXJvbm1lbnRcbiAgICApLmFkZFByb3BlcnR5T3ZlcnJpZGUoXG4gICAgICBcIkNvbXB1dGVSZXNvdXJjZXMuTGF1bmNoVGVtcGxhdGUuVmVyc2lvblwiLFxuICAgICAgbGF1bmNoVGVtcGxhdGUubGF0ZXN0VmVyc2lvbk51bWJlcixcbiAgICApO1xuICAgIGNvbnN0IGxpbnV4UGFyYW1ldGVycyA9XG4gICAgICBwcm9wcy5saW51eFBhcmFtZXRlcnMgPz9cbiAgICAgIG5ldyBiYXRjaC5MaW51eFBhcmFtZXRlcnModGhpcywgXCJMaW51eFBhcmFtZXRlcnNcIik7XG4gICAgbGludXhQYXJhbWV0ZXJzLmFkZERldmljZXMoXG4gICAgICAuLi5BcnJheS5mcm9tKHtcbiAgICAgICAgbGVuZ3RoOiBwcm9wcy5uZXVyb254SW5zdGFuY2VUeXBlLmFjY2VsZXJhdG9yQ2hpcHMuY2hpcHMsXG4gICAgICB9KS5tYXAoKF8sIGluZGV4KSA9PiAoe1xuICAgICAgICBob3N0UGF0aDogYC9kZXYvbmV1cm9uJHtpbmRleH1gLFxuICAgICAgICBjb250YWluZXJQYXRoOiBgL2Rldi9uZXVyb24ke2luZGV4fWAsXG4gICAgICAgIHBlcm1pc3Npb25zOiBbXG4gICAgICAgICAgYmF0Y2guRGV2aWNlUGVybWlzc2lvbi5SRUFELFxuICAgICAgICAgIGJhdGNoLkRldmljZVBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgIF0sXG4gICAgICB9KSksXG4gICAgKTtcbiAgICB0aGlzLmpvYkRlZmluaXRpb24gPSBuZXcgYmF0Y2guRWNzSm9iRGVmaW5pdGlvbih0aGlzLCBcIkpvYkRlZmluaXRpb25cIiwge1xuICAgICAgY29udGFpbmVyOiBuZXcgYmF0Y2guRWNzRWMyQ29udGFpbmVyRGVmaW5pdGlvbihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJDb250YWluZXJEZWZpbml0aW9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICBsaW51eFBhcmFtZXRlcnMsXG4gICAgICAgIH0sXG4gICAgICApLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -63,7 +63,7 @@ class NeuronxTaskDefinition extends ecs.Ec2TaskDefinition {
63
63
  }
64
64
  exports.NeuronxTaskDefinition = NeuronxTaskDefinition;
65
65
  _a = JSII_RTTI_SYMBOL_1;
66
- NeuronxTaskDefinition[_a] = { fqn: "aws-cdk-neuronx-patterns.NeuronxTaskDefinition", version: "0.0.25" };
66
+ NeuronxTaskDefinition[_a] = { fqn: "aws-cdk-neuronx-patterns.NeuronxTaskDefinition", version: "0.1.0" };
67
67
  class ApplicationLoadBalancedNeuronxService extends aws_ecs_patterns_1.ApplicationLoadBalancedEc2Service {
68
68
  constructor(scope, id, props) {
69
69
  const neuronxTaskDefinition = props.taskDefinition;
@@ -141,5 +141,5 @@ mount-s3 ${neuronxTaskDefinition.compiledModel.bucket.bucketName} /mnt/${neuronx
141
141
  }
142
142
  exports.ApplicationLoadBalancedNeuronxService = ApplicationLoadBalancedNeuronxService;
143
143
  _b = JSII_RTTI_SYMBOL_1;
144
- ApplicationLoadBalancedNeuronxService[_b] = { fqn: "aws-cdk-neuronx-patterns.ApplicationLoadBalancedNeuronxService", version: "0.0.25" };
144
+ ApplicationLoadBalancedNeuronxService[_b] = { fqn: "aws-cdk-neuronx-patterns.ApplicationLoadBalancedNeuronxService", version: "0.1.0" };
145
145
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlZC1uZXVyb254LXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFzZS9hd3MtZWNzLXBhdHRlcm5zL2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZWQtbmV1cm9ueC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQXVDO0FBQ3ZDLGlFQUlxQztBQUNyQyxpREFBcUQ7QUFDckQsMkNBQTJDO0FBQzNDLG1FQUdzQztBQUV0Qyx3Q0FJb0I7QUE2QnBCLE1BQWEscUJBQ1gsU0FBUSxHQUFHLENBQUMsaUJBQWlCO0lBUTdCLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsTUFBTSxtQkFBbUIsR0FDdkIsS0FBSyxDQUFDLG1CQUFtQixJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUM7UUFDM0UsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUMsa0JBQWtCLElBQUksQ0FBQyxDQUFDO1FBQ3pELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDakMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLGtCQUFrQixDQUN2RSxDQUFDO1FBQ0YsTUFBTSxvQkFBb0IsR0FDeEIsZ0JBQWdCLElBQUksQ0FBQztZQUNuQixDQUFDLENBQUM7Z0JBQ0UsR0FBRyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FDOUIscUJBQXFCLGdCQUFnQixFQUFFLENBQ3hDO2FBQ0Y7WUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixvQkFBb0IsRUFBRTtnQkFDcEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUM7Z0JBQ3JDLEdBQUcsb0JBQW9CO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gs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QUc7d0JBQ25DLFNBQVMsRUFBRSxJQUFJO3FCQUNoQixDQUFDO2lCQUNIO2FBQ0Y7WUFDRCxRQUFRO1lBQ1IsZUFBZTtZQUNmLFdBQVcsRUFDVCxxQkFBcUIsQ0FBQyxnQkFBZ0IsS0FBSyxDQUFDO2dCQUMxQyxDQUFDLENBQUMsZUFBZSxHQUFHLENBQUM7Z0JBQ3JCLENBQUMsQ0FBQyxTQUFTO1NBQ2hCLENBQUMsQ0FBQztRQUNILGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQ3BDLElBQUksQ0FBQyxZQUFZLEVBQ2pCLGNBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUM1QixDQUFDO1FBQ0YscUJBQXFCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RSxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUU7WUFDeEUsZ0JBQWdCO1NBQ2pCLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDOztBQS9GSCxzRkFnR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgQXV0b1NjYWxpbmdHcm91cCxcbiAgQmxvY2tEZXZpY2VWb2x1bWUsXG4gIEVic0RldmljZVZvbHVtZVR5cGUsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYXV0b3NjYWxpbmdcIjtcbmltcG9ydCB7IFBvcnQsIFVzZXJEYXRhIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCAqIGFzIGVjcyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjc1wiO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRFYzJTZXJ2aWNlLFxuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEVjMlNlcnZpY2VQcm9wcyxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3MtcGF0dGVybnNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBJTmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgTmV1cm9uT3B0aW1pemVkTWFjaGluZUltYWdlLFxuICBQeXRvcmNoVHJhaW5pbmdOZXVyb254SW1hZ2UsXG59IGZyb20gXCIuLi9uZXVyb254XCI7XG5pbXBvcnQgeyBOZXVyb254Q29tcGlsZWRNb2RlbCB9IGZyb20gXCIuLi9uZXVyb254LWNvbXBpbGVyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV1cm9ueFRhc2tEZWZpbml0aW9uUHJvcHNCYXNlXG4gIGV4dGVuZHMgZWNzLkVjMlRhc2tEZWZpbml0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIGluc3RhbmNlIHR5cGUgb2YgY29tcGlsZSB3b3JrZXIgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBuZXVyb254SW5zdGFuY2VUeXBlPzogSU5ldXJvbnhJbnN0YW5jZVR5cGU7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHRlbnNvciBwYXJhbGxlbCBzaXplLlxuICAgKiBAZGVmYXVsdCAtIDFcbiAgICovXG4gIHJlYWRvbmx5IHRlbnNvclBhcmFsbGVsU2l6ZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXVyb254VGFza0RlZmluaXRpb25Qcm9wcyBleHRlbmRzIE5ldXJvbnhUYXNrRGVmaW5pdGlvblByb3BzQmFzZSB7XG4gIC8qKlxuICAgKiBUaGUgbW9kZWwgdG8gYmUgY29tcGlsZWQuXG4gICAqL1xuICByZWFkb25seSBjb21waWxlZE1vZGVsOiBOZXVyb254Q29tcGlsZWRNb2RlbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTmV1cm9ueFRhc2tEZWZpbml0aW9uIGV4dGVuZHMgZWNzLklFYzJUYXNrRGVmaW5pdGlvbiB7XG4gIHJlYWRvbmx5IG5ldXJvbnhJbnN0YW5jZVR5cGU6IElOZXVyb254SW5zdGFuY2VUeXBlO1xuICByZWFkb25seSB0ZW5zb3JQYXJhbGxlbFNpemU6IG51bWJlcjtcbiAgcmVhZG9ubHkgdGFza3NQZXJJbnN0YW5jZTogbnVtYmVyO1xuICByZWFkb25seSBjb21waWxlZE1vZGVsOiBOZXVyb254Q29tcGlsZWRNb2RlbDtcbn1cbmV4cG9ydCBjbGFzcyBOZXVyb254VGFza0RlZmluaXRpb25cbiAgZXh0ZW5kcyBlY3MuRWMyVGFza0RlZmluaXRpb25cbiAgaW1wbGVtZW50cyBJTmV1cm9ueFRhc2tEZWZpbml0aW9uXG57XG4gIHJlYWRvbmx5IG5ldXJvbnhJbnN0YW5jZVR5cGU6IElOZXVyb254SW5zdGFuY2VUeXBlO1xuICByZWFkb25seSB0ZW5zb3JQYXJhbGxlbFNpemU6IG51bWJlcjtcbiAgcmVhZG9ubHkgdGFza3NQZXJJbnN0YW5jZTogbnVtYmVyO1xuICByZWFkb25seSBjb21waWxlZE1vZGVsOiBOZXVyb254Q29tcGlsZWRNb2RlbDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxpbnV4UGFyYW1ldGVyczogZWNzLkxpbnV4UGFyYW1ldGVycztcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5ldXJvbnhUYXNrRGVmaW5pdGlvblByb3BzKSB7XG4gICAgY29uc3QgbmV1cm9ueEluc3RhbmNlVHlwZSA9XG4gICAgICBwcm9wcy5uZXVyb254SW5zdGFuY2VUeXBlID8/IHByb3BzLmNvbXBpbGVkTW9kZWwuY29tcGlsZVRpbWVJbnN0YW5jZVR5cGU7XG4gICAgY29uc3QgdGVuc29yUGFyYWxsZWxTaXplID0gcHJvcHMudGVuc29yUGFyYWxsZWxTaXplID8/IDE7XG4gICAgY29uc3QgdGFza3NQZXJJbnN0YW5jZSA9IE1hdGguZmxvb3IoXG4gICAgICBuZXVyb254SW5zdGFuY2VUeXBlLmFjY2VsZXJhdG9yQ2hpcHMubmV1cm9ueENvcmVzIC8gdGVuc29yUGFyYWxsZWxTaXplLFxuICAgICk7XG4gICAgY29uc3QgcGxhY2VtZW50Q29uc3RyYWludHMgPVxuICAgICAgdGFza3NQZXJJbnN0YW5jZSA+PSAyXG4gICAgICAgID8gW1xuICAgICAgICAgICAgZWNzLlBsYWNlbWVudENvbnN0cmFpbnQubWVtYmVyT2YoXG4gICAgICAgICAgICAgIGBydW5uaW5nVGFza3NDb3VudDwke3Rhc2tzUGVySW5zdGFuY2V9YCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgXVxuICAgICAgICA6IFtdO1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBwbGFjZW1lbnRDb25zdHJhaW50czogW1xuICAgICAgICAuLi4ocHJvcHMucGxhY2VtZW50Q29uc3RyYWludHMgPz8gW10pLFxuICAgICAgICAuLi5wbGFjZW1lbnRDb25zdHJhaW50cyxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgdGhpcy5saW51eFBhcmFtZXRlcnMgPSBuZXcgZWNzLkxpbnV4UGFyYW1ldGVycyh0aGlzLCBcIkxpbnV4UGFyYW1ldGVyc1wiKTtcbiAgICB0aGlzLmxpbnV4UGFyYW1ldGVycy5hZGREZXZpY2VzKFxuICAgICAgLi4uQXJyYXkuZnJvbSh7XG4gICAgICAgIGxlbmd0aDogbmV1cm9ueEluc3RhbmNlVHlwZT8uYWNjZWxlcmF0b3JDaGlwcy5jaGlwcyA/PyAxLFxuICAgICAgfSkubWFwPGVjcy5EZXZpY2U+KChfLCBpbmRleCkgPT4gKHtcbiAgICAgICAgaG9zdFBhdGg6IGAvZGV2L25ldXJvbiR7aW5kZXh9YCxcbiAgICAgICAgY29udGFpbmVyUGF0aDogYC9kZXYvbmV1cm9uJHtpbmRleH1gLFxuICAgICAgICBwZXJtaXNzaW9uczogW2Vjcy5EZXZpY2VQZXJtaXNzaW9uLlJFQUQsIGVjcy5EZXZpY2VQZXJtaXNzaW9uLldSSVRFXSxcbiAgICAgIH0pKSxcbiAgICApO1xuICAgIGlmICh0aGlzLmV4ZWN1dGlvblJvbGUpIHtcbiAgICAgIHByb3BzLmNvbXBpbGVkTW9kZWwuYnVja2V0LmdyYW50UmVhZCh0aGlzLmV4ZWN1dGlvblJvbGUpO1xuICAgIH1cbiAgICBwcm9wcy5jb21waWxlZE1vZGVsLmJ1Y2tldC5ncmFudFJlYWQodGhpcy50YXNrUm9sZSk7XG4gICAgdGhpcy5jb21waWxlZE1vZGVsID0gcHJvcHMuY29tcGlsZWRNb2RlbDtcbiAgICB0aGlzLm5ldXJvbnhJbnN0YW5jZVR5cGUgPSBuZXVyb254SW5zdGFuY2VUeXBlO1xuICAgIHRoaXMudGVuc29yUGFyYWxsZWxTaXplID0gdGVuc29yUGFyYWxsZWxTaXplO1xuICAgIHRoaXMudGFza3NQZXJJbnN0YW5jZSA9IHRhc2tzUGVySW5zdGFuY2U7XG4gIH1cblxuICBhZGRDb250YWluZXJXaXRoRGVmYXVsdChcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBlY3MuQ29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbnMsXG4gICk6IGVjcy5Db250YWluZXJEZWZpbml0aW9uIHtcbiAgICBjb25zdCBjb250YWluZXIgPSBzdXBlci5hZGRDb250YWluZXIoaWQsIHtcbiAgICAgIGxvZ2dpbmc6IGVjcy5Mb2dEcml2ZXIuYXdzTG9ncyh7XG4gICAgICAgIHN0cmVhbVByZWZpeDogaWQsXG4gICAgICB9KSxcbiAgICAgIGxpbnV4UGFyYW1ldGVyczogdGhpcy5saW51eFBhcmFtZXRlcnMsXG4gICAgICBtZW1vcnlSZXNlcnZhdGlvbk1pQjogTWF0aC5jZWlsKFxuICAgICAgICAodGhpcy5uZXVyb254SW5zdGFuY2VUeXBlLm1lbW9yeS50b01lYmlieXRlcygpICogMC44KSAvXG4gICAgICAgICAgdGhpcy50YXNrc1Blckluc3RhbmNlLFxuICAgICAgKSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICAgIGNvbnRhaW5lci5hZGRNb3VudFBvaW50cyh7XG4gICAgICBzb3VyY2VWb2x1bWU6IFwibW9kZWxcIixcbiAgICAgIGNvbnRhaW5lclBhdGg6IFwiL29wdC9tbC9tb2RlbFwiLFxuICAgICAgcmVhZE9ubHk6IGZhbHNlLFxuICAgIH0pO1xuICAgIHJldHVybiBjb250YWluZXI7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZE5ldXJvbnhTZXJ2aWNlUHJvcHMgZXh0ZW5kcyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEVjMlNlcnZpY2VQcm9wcyB7fVxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkTmV1cm9ueFNlcnZpY2UgZXh0ZW5kcyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEVjMlNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkTmV1cm9ueFNlcnZpY2VQcm9wcyxcbiAgKSB7XG4gICAgY29uc3QgbmV1cm9ueFRhc2tEZWZpbml0aW9uID0gcHJvcHMudGFza0RlZmluaXRpb247XG4gICAgaWYgKFxuICAgICAgIW5ldXJvbnhUYXNrRGVmaW5pdGlvbiB8fFxuICAgICAgIShuZXVyb254VGFza0RlZmluaXRpb24gaW5zdGFuY2VvZiBOZXVyb254VGFza0RlZmluaXRpb24pXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ0YXNrRGVmaW5pdGlvbiBtdXN0IGV4dGVuZCBOZXVyb254VGFza0RlZmluaXRpb25cIik7XG4gICAgfVxuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgaGVhbHRoQ2hlY2tHcmFjZVBlcmlvZDpcbiAgICAgICAgcHJvcHMuaGVhbHRoQ2hlY2tHcmFjZVBlcmlvZCA/PyBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY2x1c3RlciA9IHRoaXMuZ2V0RGVmYXVsdENsdXN0ZXIodGhpcywgcHJvcHMudnBjKTtcblxuICAgIC8vIGluc3RhbGwgYW5kIG1vdW50IG1vdW50cG9pbnQgZm9yIHMzXG4gICAgY29uc3QgdXNlckRhdGEgPSBVc2VyRGF0YS5mb3JMaW51eCgpO1xuICAgIHVzZXJEYXRhLmFkZENvbW1hbmRzKGBcbiMhL2Jpbi9iYXNoIC1lXG5cbiMgSW5zdGFsbCBNb3VudHBvaW50XG5NUF9SUE09JChta3RlbXAgLS1zdWZmaXg9LnJwbSlcbmN1cmwgaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL21vdW50cG9pbnQtczMtcmVsZWFzZS9sYXRlc3QveDg2XzY0L21vdW50LXMzLnJwbSA+ICRNUF9SUE1cblxuIyBjbG91ZC1pbml0IGluc3RhbGxzIGNvbmZsaWN0IHdpdGggU1NNIGFnZW50OiBodHRwczovL2dpdGh1Yi5jb20vYW1hem9ubGludXgvYW1hem9uLWxpbnV4LTIwMjMvaXNzdWVzLzM5N1xuYXR0ZW1wdD0wXG5tYXhfYXR0ZW1wdHM9NVxudW50aWwgZG5mIGluc3RhbGwgLXkgJE1QX1JQTTsgZG9cbiAgICBhdHRlbXB0PSQoKGF0dGVtcHQgKyAxKSlcbiAgICBpZiBbICRhdHRlbXB0IC1nZSAkbWF4X2F0dGVtcHRzIF07IHRoZW5cbiAgICAgICAgZWNobyBcIkZhaWxlZCB0byBpbnN0YWxsIG1vdW50LXMzIGFmdGVyICRtYXhfYXR0ZW1wdHMgYXR0ZW1wdHMuIEV4aXRpbmcuXCJcbiAgICAgICAgZXhpdCAxXG4gICAgZmlcbiAgICBlY2hvIFwiZG5mIGluc3RhbGwgbW91bnQtczMgZmFpbGVkIChhdHRlbXB0ICRhdHRlbXB0LyRtYXhfYXR0ZW1wdHMpLCByZXRyeWluZyBpbiAzIHNlY29uZHMuLi5cIlxuICAgIHNsZWVwIDNcbmRvbmVcblxucm0gJE1QX1JQTVxuXG4jIFNldHVwIHRoZSBmc3RhYiBmaWxlIGFuZCBjcmVhdGUgdGhlIG1vdW50XG5ta2RpciAtLXBhcmVudHMgL21udC8ke25ldXJvbnhUYXNrRGVmaW5pdGlvbi5jb21waWxlZE1vZGVsLmJ1Y2tldC5idWNrZXROYW1lfVxubW91bnQtczMgJHtuZXVyb254VGFza0RlZmluaXRpb24uY29tcGlsZWRNb2RlbC5idWNrZXQuYnVja2V0TmFtZX0gL21udC8ke25ldXJvbnhUYXNrRGVmaW5pdGlvbi5jb21waWxlZE1vZGVsLmJ1Y2tldC5idWNrZXROYW1lfSAtLWFsbG93LW90aGVyIC0tZmlsZS1tb2RlPTY0NCAtLWRpci1tb2RlPTc1NWApO1xuXG4gICAgbmV1cm9ueFRhc2tEZWZpbml0aW9uLmFkZFZvbHVtZSh7XG4gICAgICBuYW1lOiBcIm1vZGVsXCIsXG4gICAgICBob3N0OiB7XG4gICAgICAgIHNvdXJjZVBhdGg6IGAvbW50LyR7bmV1cm9ueFRhc2tEZWZpbml0aW9uLmNvbXBpbGVkTW9kZWwuYnVja2V0LmJ1Y2tldE5hbWV9YCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCB2b2x1bWVTaXplID0gTWF0aC5jZWlsKFxuICAgICAgUHl0b3JjaFRyYWluaW5nTmV1cm9ueEltYWdlLnNpemUudG9HaWJpYnl0ZXMoKSArXG4gICAgICAgIE5ldXJvbk9wdGltaXplZE1hY2hpbmVJbWFnZS5zaXplLnRvR2liaWJ5dGVzKCksXG4gICAgKTtcbiAgICBjb25zdCBkZXNpcmVkQ2FwYWNpdHkgPSBNYXRoLmNlaWwoXG4gICAgICAocHJvcHMuZGVzaXJlZENvdW50ID8/IDEpIC8gbmV1cm9ueFRhc2tEZWZpbml0aW9uLnRhc2tzUGVySW5zdGFuY2UsXG4gICAgKTtcbiAgICBjb25zdCBhdXRvU2NhbGluZ0dyb3VwID0gbmV3IEF1dG9TY2FsaW5nR3JvdXAodGhpcywgXCJBdXRvU2NhbGluZ0dyb3VwXCIsIHtcbiAgICAgIHZwYzogY2x1c3Rlci52cGMsXG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldXJvbnhUYXNrRGVmaW5pdGlvbi5uZXVyb254SW5zdGFuY2VUeXBlLmluc3RhbmNlVHlwZSxcbiAgICAgIG1hY2hpbmVJbWFnZTogbmV3IE5ldXJvbk9wdGltaXplZE1hY2hpbmVJbWFnZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJOZXVyb25PcHRpbWl6ZWRNYWNoaW5lSW1hZ2VcIixcbiAgICAgICksXG4gICAgICBibG9ja0RldmljZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGRldmljZU5hbWU6IFwiL2Rldi94dmRhXCIsXG4gICAgICAgICAgdm9sdW1lOiBCbG9ja0RldmljZVZvbHVtZS5lYnModm9sdW1lU2l6ZSwge1xuICAgICAgICAgICAgdm9sdW1lVHlwZTogRWJzRGV2aWNlVm9sdW1lVHlwZS5HUDMsXG4gICAgICAgICAgICBlbmNyeXB0ZWQ6IHRydWUsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgdXNlckRhdGEsXG4gICAgICBkZXNpcmVkQ2FwYWNpdHksXG4gICAgICBtYXhDYXBhY2l0eTpcbiAgICAgICAgbmV1cm9ueFRhc2tEZWZpbml0aW9uLnRhc2tzUGVySW5zdGFuY2UgPT09IDFcbiAgICAgICAgICA/IGRlc2lyZWRDYXBhY2l0eSArIDFcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgICBhdXRvU2NhbGluZ0dyb3VwLmNvbm5lY3Rpb25zLmFsbG93RnJvbShcbiAgICAgIHRoaXMubG9hZEJhbGFuY2VyLFxuICAgICAgUG9ydC50Y3BSYW5nZSgzMjc2OCwgNjA5OTkpLFxuICAgICk7XG4gICAgbmV1cm9ueFRhc2tEZWZpbml0aW9uLmNvbXBpbGVkTW9kZWwuYnVja2V0LmdyYW50UmVhZChhdXRvU2NhbGluZ0dyb3VwKTtcbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBlY3MuQXNnQ2FwYWNpdHlQcm92aWRlcih0aGlzLCBcIkFzZ0NhcGFjaXR5UHJvdmlkZXJcIiwge1xuICAgICAgYXV0b1NjYWxpbmdHcm91cCxcbiAgICB9KTtcbiAgICBjbHVzdGVyLmFkZEFzZ0NhcGFjaXR5UHJvdmlkZXIocHJvdmlkZXIpO1xuICB9XG59XG4iXX0=
@@ -55,7 +55,7 @@ class PytorchTrainingNeuronxImage extends PytorchNeuronxImage {
55
55
  }
56
56
  exports.PytorchTrainingNeuronxImage = PytorchTrainingNeuronxImage;
57
57
  _b = JSII_RTTI_SYMBOL_1;
58
- PytorchTrainingNeuronxImage[_b] = { fqn: "aws-cdk-neuronx-patterns.PytorchTrainingNeuronxImage", version: "0.0.25" };
58
+ PytorchTrainingNeuronxImage[_b] = { fqn: "aws-cdk-neuronx-patterns.PytorchTrainingNeuronxImage", version: "0.1.0" };
59
59
  PytorchTrainingNeuronxImage.imageName = "public.ecr.aws/neuron/pytorch-training-neuronx";
60
60
  class VllmInferenceNeuronxImage extends NeuronxImage {
61
61
  static fromNeuronSdkVersion(neuronSdkVersion, vllmVersion, pythonVersion, ubuntuVersion) {
@@ -69,7 +69,7 @@ class VllmInferenceNeuronxImage extends NeuronxImage {
69
69
  }
70
70
  exports.VllmInferenceNeuronxImage = VllmInferenceNeuronxImage;
71
71
  _c = VllmInferenceNeuronxImage, _d = JSII_RTTI_SYMBOL_1;
72
- VllmInferenceNeuronxImage[_d] = { fqn: "aws-cdk-neuronx-patterns.VllmInferenceNeuronxImage", version: "0.0.25" };
72
+ VllmInferenceNeuronxImage[_d] = { fqn: "aws-cdk-neuronx-patterns.VllmInferenceNeuronxImage", version: "0.1.0" };
73
73
  /**
74
74
  * Neuron SDK 2.26.0 with vLLM 0.9.1
75
75
  */
@@ -84,7 +84,7 @@ class Parameters {
84
84
  }
85
85
  exports.Parameters = Parameters;
86
86
  _a = JSII_RTTI_SYMBOL_1;
87
- Parameters[_a] = { fqn: "aws-cdk-neuronx-patterns.Parameters", version: "0.0.25" };
87
+ Parameters[_a] = { fqn: "aws-cdk-neuronx-patterns.Parameters", version: "0.1.0" };
88
88
  /**
89
89
  * Compile target model.
90
90
  */
@@ -149,5 +149,5 @@ class Model {
149
149
  }
150
150
  exports.Model = Model;
151
151
  _b = JSII_RTTI_SYMBOL_1;
152
- Model[_b] = { fqn: "aws-cdk-neuronx-patterns.Model", version: "0.0.25" };
152
+ Model[_b] = { fqn: "aws-cdk-neuronx-patterns.Model", version: "0.1.0" };
153
153
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFzZS9uZXVyb254L21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTBDO0FBRzFDLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUN0QixnRUFBaUIsQ0FBQTtJQUNqQiw2REFBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxZQUFZLDRCQUFaLFlBQVksUUFHdkI7QUFFRDs7R0FFRztBQUNILElBQVksVUFLWDtBQUxELFdBQVksVUFBVTtJQUNwQjs7T0FFRztJQUNILHVCQUFTLENBQUE7QUFDWCxDQUFDLEVBTFcsVUFBVSwwQkFBVixVQUFVLFFBS3JCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLFFBYVg7QUFiRCxXQUFZLFFBQVE7SUFDbEI7O09BRUc7SUFDSCw2RUFBMkIsQ0FBQTtJQUMzQjs7T0FFRztJQUNILHVEQUFnQixDQUFBO0lBQ2hCOztPQUVHO0lBQ0gscUZBQStCLENBQUE7QUFDakMsQ0FBQyxFQWJXLFFBQVEsd0JBQVIsUUFBUSxRQWFuQjtBQUVEOztHQUVHO0FBQ0gsTUFBYSxVQUFVO0lBQ3JCOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQWtCO1FBQy9CLE9BQU8sSUFBSSxVQUFVLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFrQjtRQUMvQixPQUFPLElBQUksVUFBVSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQ0Q7SUFDRTs7T0FFRztJQUNjLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7SUFDbEMsQ0FBQztJQUNKOzs7T0FHRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0lBQ25DLENBQUM7SUFDRDs7O09BR0c7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TixNQUFNLENBQVU7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUztJQUN2QixDQUFDOztBQWxFTixzQkFtRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaXplLCBUb2tlbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgSUJ1Y2tldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcblxuZXhwb3J0IGVudW0gRGF0YVR5cGVCaXRzIHtcbiAgQkYxNl9PUl9GUDE2ID0gMTYsXG4gIEZQOF9PUl9JTlQ4ID0gOCxcbn1cblxuLyoqXG4gKiBRdWFudCBkYXRhIHR5cGUuXG4gKi9cbmV4cG9ydCBlbnVtIFF1YW50RHR5cGUge1xuICAvKipcbiAgICogaW50OCB3ZWlnaHQgc3RvcmFnZS5cbiAgICovXG4gIFM4ID0gXCJzOFwiLFxufVxuXG4vKipcbiAqIE9wdGltaXphdGlvbiBsZXZlbC5cbiAqL1xuZXhwb3J0IGVudW0gT3B0TGV2ZWwge1xuICAvKipcbiAgICogZW5hYmxlcyB0aGUgY29yZSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25zIGluIHRoZSBjb21waWxlciwgd2hpbGUgYWxzbyBtaW5pbWl6aW5nIGNvbXBpbGUgdGltZS5cbiAgICovXG4gIE1JTklNSVpJTkdfQ09NUElMRV9USU1FID0gMSxcbiAgLyoqXG4gICAqIHByb3ZpZGVzIHRoZSBiZXN0IGJhbGFuY2UgYmV0d2VlbiBtb2RlbCBwZXJmb3JtYW5jZSBhbmQgY29tcGlsZSB0aW1lLlxuICAgKi9cbiAgQkVTVF9CQUxBTkNFID0gMixcbiAgLyoqXG4gICAqIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgbW9kZWwgZXhlY3V0aW9uIHBlcmZvcm1hbmNlIGJ1dCBtYXkgaW5jdXIgbG9uZ2VyIGNvbXBpbGUgdGltZXMgYW5kIGhpZ2hlciBob3N0IG1lbW9yeSB1c2FnZSBkdXJpbmcgbW9kZWwgY29tcGlsYXRpb24uXG4gICAqL1xuICBNT0RFTF9FWEVDVVRJT05fUEVSRk9STUFOQ0UgPSAzLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGFtb3VudCBvZiBwYXJhbWV0ZXJzLlxuICovXG5leHBvcnQgY2xhc3MgUGFyYW1ldGVycyB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBQYXJhbWV0ZXJzIHJlcHJlc2VudGluZyBhbiBhbW91bnQgbWlsbGlvbi5cbiAgICogQHBhcmFtIHBhcmFtZXRlcnMgbnVtYmVyIG9mIHBhcmFtZXRlcnMgbWlsbGlvblhcbiAgICogQHJldHVybnMgcGFyYW1ldGVyc1xuICAgKi9cbiAgc3RhdGljIG1pbGxpb24ocGFyYW1ldGVyczogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXJzKHBhcmFtZXRlcnMgKiAxMDAwMDAwKTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlIGEgUGFyYW1ldGVycyByZXByZXNlbnRpbmcgYW4gYW1vdW50IGJpbGxpb24uXG4gICAqIEBwYXJhbSBwYXJhbWV0ZXJzIG51bWJlciBvZiBwYXJhbWV0ZXJzIGJpbGxpb25YXG4gICAqIEByZXR1cm5zIHBhcmFtZXRlcnNcbiAgICovXG4gIHN0YXRpYyBiaWxsaW9uKHBhcmFtZXRlcnM6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgUGFyYW1ldGVycyhwYXJhbWV0ZXJzICogMTAwMDAwMDAwMCk7XG4gIH1cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBudW1iZXIgb2YgcGFyZW10ZXJzLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFyYW1ldGVyczogbnVtYmVyLFxuICApIHt9XG4gIC8qKlxuICAgKiBSZXR1cm4gdGhpcyBudW1iZXIgb2YgcGFyYW1ldGVycyBhcyBtaWxsaW9uLlxuICAgKiBAcmV0dXJucyBUaGlzIG51bWJlciBvZiBwYXJhbWV0ZXJzIGFzIG1pbGxpb24uXG4gICAqL1xuICB0b01pbGxpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVycyAvIDEwMDAwMDA7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybiB0aGlzIG51bWJlciBvZiBwYXJhbWV0ZXJzIGFzIGJpbGxpb24uXG4gICAqIEByZXR1cm5zIFRoaXMgbnVtYmVyIG9mIHBhcmFtZXRlcnMgYXMgYmlsbGlvbi5cbiAgICovXG4gIHRvQmlsbGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzIC8gMTAwMDAwMDAwMDtcbiAgfVxuICB3ZWlnaHRTaXplKCkge1xuICAgIHJldHVybiBTaXplLmdpYmlieXRlcyh0aGlzLnRvQmlsbGlvbigpICogMi41KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsQ29uZmlnIHtcbiAgcmVhZG9ubHkgbGF5ZXJzOiBudW1iZXI7XG4gIHJlYWRvbmx5IGVtYmVkZGluZ0RpbWVuc2lvbjogbnVtYmVyO1xuICByZWFkb25seSBhdHRlbnRpb25IZWFkczogbnVtYmVyO1xufVxuXG4vKipcbiAqIENvbXBpbGUgdGFyZ2V0IG1vZGVsIGJhc2ljIGluZnJvbWF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxPcHRpb25zIHtcbiAgcmVhZG9ubHkgcGFyYW1ldGVyczogUGFyYW1ldGVycztcbiAgcmVhZG9ubHkgY29uZmlnPzogTW9kZWxDb25maWc7XG4gIHJlYWRvbmx5IG1vZGVsTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21waWxlIHRhcmdldCBtb2RlbC5cbiAqL1xuZXhwb3J0IGNsYXNzIE1vZGVsIHtcbiAgLyoqXG4gICAqIG1vZGVsIGluZm9ybWF0aW9ucyBhdCBIdWdnaW5nRmFjZVxuICAgKiBAcGFyYW0gbW9kZWxJZCBtb2RlbCBpZCBvbiB0aGUgSHVnZ2luZ0ZhY2VcbiAgICogQHBhcmFtIG9wdGlvbnMgbW9kZWwgYmFzaWMgaW5mb3JtYXRpb25cbiAgICogQHJldHVybnMgbW9kZWwgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBmcm9tSHVnZ2luZ0ZhY2UobW9kZWxJZDogc3RyaW5nLCBvcHRpb25zPzogTW9kZWxPcHRpb25zKSB7XG4gICAgY29uc3QgcGFyYW1ldGVycyA9IG9wdGlvbnM/LnBhcmFtZXRlcnMgPz8gTW9kZWwubWF5YmVQYXJhbXMobW9kZWxJZCk7XG4gICAgaWYgKCFwYXJhbWV0ZXJzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiVGhlIG51bWJlciBvZiBwYXJhbWV0ZXJzIGNhbm5vdCBiZSBpbmZlcnJlZCBmcm9tIHRoZSBtb2RlbCBJRC4gU2V0IG9wdGlvbmFsIHBhcmFtZXRlcnMuXCIsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IE1vZGVsKG1vZGVsSWQsIG9wdGlvbnM/Lm1vZGVsTmFtZSA/PyBtb2RlbElkLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgcGFyYW1ldGVycyxcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogbW9kZWwgaW5mb3JtYXRpb25zIGF0IFMzIEJ1Y2tldFxuICAgKiBAcGFyYW0gYnVja2V0IE1vZGVsIHN0b3JlZCBTMyBCdWNrZXRcbiAgICogQHBhcmFtIHByZWZpeCBNb2RlbCBzdG9yZWQgb2JqZWN0cyBwcmVmaXhcbiAgICogQHBhcmFtIG9wdGlvbnMgbW9kZWwgYmFzaWMgaW5mb3JtYXRpb25cbiAgICogQHJldHVybnMgbW9kZWwgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBmcm9tQnVja2V0KGJ1Y2tldDogSUJ1Y2tldCwgcHJlZml4OiBzdHJpbmcsIG9wdGlvbnM/OiBNb2RlbE9wdGlvbnMpIHtcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKHByZWZpeCkgJiYgIW9wdGlvbnM/Lm1vZGVsTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTW9kZWxOYW1lIGlzIHJlcXVpcmVkIHdoZW4gcHJlZml4IGlzIHVucmVzb2x2ZWRcIik7XG4gICAgfVxuICAgIGNvbnN0IG1vZGVsTmFtZSA9IG9wdGlvbnM/Lm1vZGVsTmFtZSA/PyBwcmVmaXguc3BsaXQoXCIvXCIpLnNsaWNlKC0xKVswXTtcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gb3B0aW9ucz8ucGFyYW1ldGVycyA/PyBNb2RlbC5tYXliZVBhcmFtcyhtb2RlbE5hbWUpO1xuICAgIGlmICghcGFyYW1ldGVycykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlRoZSBudW1iZXIgb2YgcGFyYW1ldGVycyBjYW5ub3QgYmUgaW5mZXJyZWQgZnJvbSB0aGUgbW9kZWwgSUQuIFNldCBvcHRpb25hbCBwYXJhbWV0ZXJzLlwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBNb2RlbChcbiAgICAgIGJ1Y2tldC5zM1VybEZvck9iamVjdChwcmVmaXgpLFxuICAgICAgbW9kZWxOYW1lLFxuICAgICAgeyAuLi5vcHRpb25zLCBwYXJhbWV0ZXJzIH0sXG4gICAgICBidWNrZXQsXG4gICAgICBwcmVmaXgsXG4gICAgKTtcbiAgfVxuICBwcml2YXRlIHN0YXRpYyBtYXliZVBhcmFtcyhzb3VyY2U6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBiaWxsaW9uID0gc291cmNlLm1hdGNoKC8tKFxcZCspW2JCXS8pO1xuICAgICAgaWYgKGJpbGxpb24/LlsxXSkge1xuICAgICAgICByZXR1cm4gUGFyYW1ldGVycy5iaWxsaW9uKHBhcnNlSW50KGJpbGxpb25bMV0pKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbGxpb24gPSBzb3VyY2UubWF0Y2goLy0oXFxkKylbbU1dLyk7XG4gICAgICBpZiAobWlsbGlvbj8uWzFdKSB7XG4gICAgICAgIHJldHVybiBQYXJhbWV0ZXJzLm1pbGxpb24ocGFyc2VJbnQobWlsbGlvblsxXSkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gTk9QXG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICByZWFkb25seSBtb2RlbElkOiBzdHJpbmcsXG4gICAgcmVhZG9ubHkgbW9kZWxOYW1lOiBzdHJpbmcsXG4gICAgcmVhZG9ubHkgb3B0aW9uczogTW9kZWxPcHRpb25zLFxuICAgIHJlYWRvbmx5IGJ1Y2tldD86IElCdWNrZXQsXG4gICAgcmVhZG9ubHkgcHJlZml4Pzogc3RyaW5nLFxuICApIHt9XG59XG4iXX0=
@@ -42,6 +42,6 @@ class NeuronOptimizedMachineImage extends constructs_1.Construct {
42
42
  }
43
43
  exports.NeuronOptimizedMachineImage = NeuronOptimizedMachineImage;
44
44
  _a = JSII_RTTI_SYMBOL_1;
45
- NeuronOptimizedMachineImage[_a] = { fqn: "aws-cdk-neuronx-patterns.NeuronOptimizedMachineImage", version: "0.0.25" };
45
+ NeuronOptimizedMachineImage[_a] = { fqn: "aws-cdk-neuronx-patterns.NeuronOptimizedMachineImage", version: "0.1.0" };
46
46
  NeuronOptimizedMachineImage.size = aws_cdk_lib_1.Size.gibibytes(30);
47
47
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV1cm9uLW9wdGltaXplZC1tYWNoaW5lLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jhc2UvbmV1cm9ueC9uZXVyb24tb3B0aW1pemVkLW1hY2hpbmUtaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBbUQ7QUFDbkQsaURBSzZCO0FBQzdCLHVEQUEwRTtBQUMxRSwyQ0FBMkM7QUFDM0MsbUVBQXdEO0FBQ3hELDJDQUF1QztBQUN2Qyw2QkFBNkI7QUFFN0IsTUFBYSwyQkFDWCxTQUFRLHNCQUFTO0lBS2pCLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsSUFBSSwyQkFBUSxDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRTtZQUN4RCxjQUFjLEVBQUUsSUFBSSw4QkFBaUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7Z0JBQ2hFLElBQUksRUFBRSxpQkFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO2dCQUNqRSxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsT0FBTyxFQUFFLG9CQUFPLENBQUMsYUFBYTtnQkFDOUIsSUFBSSxFQUFFLHNDQUFzQzthQUM3QyxDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNyRCxZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVk7WUFDbkMsWUFBWSxFQUFFLG9CQUFvQjtZQUNsQyxVQUFVLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQ2hELElBQUksRUFDSixPQUFPLEVBQ1AscUVBQXFFLENBQ3RFLENBQUMsV0FBVzthQUNkO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVEsQ0FBQyxNQUFpQjtRQUN4QixPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLE1BQU0sRUFBRSw2QkFBbUIsQ0FBQyxLQUFLO1lBQ2pDLFFBQVEsRUFBRSxrQkFBUSxDQUFDLFFBQVEsRUFBRTtTQUM5QixDQUFDO0lBQ0osQ0FBQzs7QUF2Q0gsa0VBd0NDOzs7QUFwQ2lCLGdDQUFJLEdBQUcsa0JBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21SZXNvdXJjZSwgU2l6ZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgSU1hY2hpbmVJbWFnZSxcbiAgTWFjaGluZUltYWdlQ29uZmlnLFxuICBPcGVyYXRpbmdTeXN0ZW1UeXBlLFxuICBVc2VyRGF0YSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IENvZGUsIFJ1bnRpbWUsIFNpbmdsZXRvbkZ1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCAqIGFzIHNzbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNzbVwiO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuZXhwb3J0IGNsYXNzIE5ldXJvbk9wdGltaXplZE1hY2hpbmVJbWFnZVxuICBleHRlbmRzIENvbnN0cnVjdFxuICBpbXBsZW1lbnRzIElNYWNoaW5lSW1hZ2VcbntcbiAgc3RhdGljIHJlYWRvbmx5IHNpemUgPSBTaXplLmdpYmlieXRlcygzMCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IEN1c3RvbVJlc291cmNlO1xuICBnZXQgaW1hZ2VJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5nZXRBdHRTdHJpbmcoXCJpbWFnZV9pZFwiKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgUHJvdmlkZXIodGhpcywgXCJOZXVyb254QW1pUHJvdmlkZXJcIiwge1xuICAgICAgb25FdmVudEhhbmRsZXI6IG5ldyBTaW5nbGV0b25GdW5jdGlvbih0aGlzLCBcIk5ldXJvbnhBbWlGdW5jdGlvblwiLCB7XG4gICAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsIFwicHJpdmF0ZS9uZXVyb254LWFtaVwiKSksXG4gICAgICAgIGhhbmRsZXI6IFwiaW5kZXgub25FdmVudFwiLFxuICAgICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU19MQVRFU1QsXG4gICAgICAgIHV1aWQ6IFwiMDhjOTg1MGEtNmYxMy00ZWQ0LTllMmQtNzg4OGQ3YjVhMjU4XCIsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgICB0aGlzLnJlc291cmNlID0gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsIFwiTmV1cm9ueEFtaVwiLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206Ok5ldXJvbnhBbWlcIixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgaW1hZ2U6IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBcIkltYWdlXCIsXG4gICAgICAgICAgXCIvYXdzL3NlcnZpY2UvZWNzL29wdGltaXplZC1hbWkvYW1hem9uLWxpbnV4LTIwMjMvbmV1cm9uL3JlY29tbWVuZGVkXCIsXG4gICAgICAgICkuc3RyaW5nVmFsdWUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldEltYWdlKF9zY29wZTogQ29uc3RydWN0KTogTWFjaGluZUltYWdlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW1hZ2VJZDogdGhpcy5pbWFnZUlkLFxuICAgICAgb3NUeXBlOiBPcGVyYXRpbmdTeXN0ZW1UeXBlLkxJTlVYLFxuICAgICAgdXNlckRhdGE6IFVzZXJEYXRhLmZvckxpbnV4KCksXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -14,7 +14,7 @@ class Inferentia2Chips {
14
14
  }
15
15
  exports.Inferentia2Chips = Inferentia2Chips;
16
16
  _a = JSII_RTTI_SYMBOL_1;
17
- Inferentia2Chips[_a] = { fqn: "aws-cdk-neuronx-patterns.Inferentia2Chips", version: "0.0.25" };
17
+ Inferentia2Chips[_a] = { fqn: "aws-cdk-neuronx-patterns.Inferentia2Chips", version: "0.1.0" };
18
18
  class Trainium1Chips {
19
19
  constructor(chips) {
20
20
  this.chips = chips;
@@ -24,7 +24,7 @@ class Trainium1Chips {
24
24
  }
25
25
  exports.Trainium1Chips = Trainium1Chips;
26
26
  _b = JSII_RTTI_SYMBOL_1;
27
- Trainium1Chips[_b] = { fqn: "aws-cdk-neuronx-patterns.Trainium1Chips", version: "0.0.25" };
27
+ Trainium1Chips[_b] = { fqn: "aws-cdk-neuronx-patterns.Trainium1Chips", version: "0.1.0" };
28
28
  class NeuronxInstanceTypeBase {
29
29
  constructor(props) {
30
30
  this.instanceType = props.instanceType;
@@ -70,7 +70,7 @@ class NeuronxInstanceType {
70
70
  }
71
71
  exports.NeuronxInstanceType = NeuronxInstanceType;
72
72
  _c = JSII_RTTI_SYMBOL_1;
73
- NeuronxInstanceType[_c] = { fqn: "aws-cdk-neuronx-patterns.NeuronxInstanceType", version: "0.0.25" };
73
+ NeuronxInstanceType[_c] = { fqn: "aws-cdk-neuronx-patterns.NeuronxInstanceType", version: "0.1.0" };
74
74
  /**
75
75
  * inf2.xlarge
76
76
  */
@@ -162,5 +162,5 @@ class NeuronxCompiler extends constructs_1.Construct {
162
162
  }
163
163
  exports.NeuronxCompiler = NeuronxCompiler;
164
164
  _a = JSII_RTTI_SYMBOL_1;
165
- NeuronxCompiler[_a] = { fqn: "aws-cdk-neuronx-patterns.NeuronxCompiler", version: "0.0.25" };
165
+ NeuronxCompiler[_a] = { fqn: "aws-cdk-neuronx-patterns.NeuronxCompiler", version: "0.1.0" };
166
166
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV1cm9ueC1jb21waWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNlL25ldXJvbngtY29tcGlsZXIvbmV1cm9ueC1jb21waWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQVFxQjtBQUNyQiwrQ0FBK0M7QUFDL0MsMkNBQTJDO0FBRTNDLGlEQUE0QztBQUM1Qyx1REFLZ0M7QUFFaEMsbUVBQXdEO0FBQ3hELDJDQUF1QztBQUN2QywrQkFBNEI7QUFDNUIsNENBR3NCO0FBQ3RCLHdDQU1vQjtBQW1HcEI7OztHQUdHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLHNCQUFTO0lBVTVDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLFVBQVUsR0FBRyxrQkFBSSxDQUFDLFNBQVMsQ0FDL0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxHQUFHLEdBQUcsQ0FDakQsQ0FBQztRQUNGLE1BQU0sVUFBVSxHQUNkLEtBQUssQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQ1AsVUFBVSxDQUFDLFdBQVcsRUFBRTtnQkFDdEIscUNBQTJCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDOUMscUNBQTJCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUNqRCxDQUFDO1FBQ0osTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUNwRSxZQUFZLEVBQUU7Z0JBQ1o7b0JBQ0UsVUFBVSxFQUFFLFdBQVc7b0JBQ3ZCLE1BQU0sRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRTt3QkFDNUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxt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QUMsQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFHLElBQUksOEJBQWdCLENBQy9CLElBQUksRUFDSixnQkFBZ0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQ3ZDO1lBQ0UsS0FBSyxFQUFFLENBQUM7WUFDUixPQUFPLEVBQUUsc0JBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFO1lBQ2xELE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxHQUFHO1NBQ2hDLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLGdCQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxnQkFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFdkUsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO1lBQy9CLHVCQUF1QixFQUFFLElBQUksQ0FBQyxtQkFBbUI7WUFDakQsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFFBQVE7WUFDUixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO1lBQzNDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUM1QixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O0FBMUxILDBDQTJMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENmbldhaXRDb25kaXRpb24sXG4gIENmbldhaXRDb25kaXRpb25IYW5kbGUsXG4gIEN1c3RvbVJlc291cmNlLFxuICBEdXJhdGlvbixcbiAgRm4sXG4gIFNpemUsXG4gIFRhZ3MsXG59IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgYmF0Y2ggZnJvbSBcImF3cy1jZGstbGliL2F3cy1iYXRjaFwiO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgeyBDb250YWluZXJJbWFnZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzXCI7XG5pbXBvcnQgeyBHcmFudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQge1xuICBDb2RlLFxuICBGdW5jdGlvbixcbiAgUnVudGltZSxcbiAgU2luZ2xldG9uRnVuY3Rpb24sXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHtcbiAgTmV1cm9ueEJhdGNoQ29tcHV0ZUVudmlyb25tZW50LFxuICBOZXVyb254QmF0Y2hFY3NKb2JEZWZpbml0aW9uLFxufSBmcm9tIFwiLi4vYXdzLWJhdGNoXCI7XG5pbXBvcnQge1xuICBJTmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgTW9kZWwsXG4gIE5ldXJvbk9wdGltaXplZE1hY2hpbmVJbWFnZSxcbiAgTmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgUHl0b3JjaFRyYWluaW5nTmV1cm9ueEltYWdlLFxufSBmcm9tIFwiLi4vbmV1cm9ueFwiO1xuXG4vKipcbiAqIENvbXBpbGUgcnVudGltZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTmV1cm9ueENvbnRhaW5lckltYWdlIHtcbiAgLyoqXG4gICAqIEFuIGltYWdlIG9mIHRoZSBjb250YWluZXIgd2hlcmUgdGhlIGNvbXBpbGUgam9iIGlzIGV4ZWN1dGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U6IENvbnRhaW5lckltYWdlO1xuICAvKipcbiAgICogTmV1cm9ueCB2ZXJzaW9uIGluY2x1ZGVkIGluIGNvbnRhaW5lciBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IG5ldXJvblNka1ZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wcyBvZiBOZXVyb254Q29tcGlsZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV1cm9ueENvbXBpbGVyUHJvcHMge1xuICAvKipcbiAgICogVlBDIGluIHdoaWNoIHRoaXMgd2lsbCBsYXVuY2ggY29tcGlsZSB3b3JrZXIgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuICAvKipcbiAgICogVGhlIGJ1Y2tldCB0byB1cGxvYWQgY29tcGlsZWQgYXJ0aWZhY3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuICAvKipcbiAgICogU2VjcmV0cyB0byBwYXNzIHRvIHRoZSBjb250YWluZXIuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzPzogeyBba2V5OiBzdHJpbmddOiBiYXRjaC5TZWNyZXQgfTtcbiAgLyoqXG4gICAqIFMzIFByZWZpeCB0aGF0IGNvbXBpbGVkIGFydGlmYWN0IHVwbG9hZGVkLlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIG5vdCBkZXBlbmRzIG9uIGNvbXBpbGUgam9iIGZpbmlzaC5cbiAgICovXG4gIHJlYWRvbmx5IGFydGlmYWN0UzNQcmVmaXg6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSB0eXBlIG9mIGNvbXBpbGUgd29ya2VyIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV1cm9ueEluc3RhbmNlVHlwZTogSU5ldXJvbnhJbnN0YW5jZVR5cGU7XG4gIC8qKlxuICAgKiBUaGUgbW9kZWwgdG8gYmUgY29tcGlsZWQuXG4gICAqL1xuICByZWFkb25seSBtb2RlbDogTW9kZWw7XG4gIC8qKlxuICAgKiBBbiBpbWFnZSBvZiB0aGUgY29udGFpbmVyIHdoZXJlIHRoZSBjb21waWxlIGpvYiBpcyBleGVjdXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGltYWdlOiBJTmV1cm9ueENvbnRhaW5lckltYWdlO1xuICByZWFkb25seSBjb21tYW5kPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgcm9vdCB2b2x1bWUgb2Ygd29ya2VyIGluc3RhbmNlLlxuICAgKiBAZGVmYXVsdCAtIE4gYmlsaW9uIHBhcmFtZXRlcnMgKiA1R2lCIEVCU1xuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lU2l6ZT86IFNpemU7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byB1c2Ugc3BvdCBpbnN0YW5jZXMuIFNwb3QgaW5zdGFuY2VzIGFyZSBsZXNzIGV4cGVuc2l2ZSBFQzIgaW5zdGFuY2VzIHRoYXQgY2FuIGJlIHJlY2xhaW1lZCBieSBFQzIgYXQgYW55IHRpbWU7IHlvdXIgam9iIHdpbGwgYmUgZ2l2ZW4gdHdvIG1pbnV0ZXMgb2Ygbm90aWNlIGJlZm9yZSByZWNsYW1hdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNwb3Q/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIFZQQyBTdWJuZXRzIHRoaXMgQ29tcHV0ZSBFbnZpcm9ubWVudCB3aWxsIGxhdW5jaCBpbnN0YW5jZXMgaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbmV3IHN1Ym5ldHMgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gcGFzcyB0byB0aGUgY29udGFpbmVyLlxuICAgKiBUaGlzIGlzIG9ubHkgYXBwbGljYWJsZSB3aGVuIHVzaW5nIGNvbnRhaW5lciBydW50aW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50Pzoge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXVyb254Q29tcGlsZWRNb2RlbCB7XG4gIHJlYWRvbmx5IGNvbXBpbGVUaW1lSW5zdGFuY2VUeXBlOiBJTmV1cm9ueEluc3RhbmNlVHlwZTtcbiAgLyoqXG4gICAqIFRoZSBidWNrZXQgdG8gdXBsb2FkIGNvbXBpbGVkIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldDogSUJ1Y2tldDtcbiAgLyoqXG4gICAqIFMzIFVSTCB0aGF0IGNvbXBpbGVkIGFydGlmYWN0IHVwbG9hZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgczNVcmk6IHN0cmluZztcbiAgLyoqXG4gICAqIFMzIHByZWZpeCB0aGF0IGNvbXBpbGVkIGFydGlmYWN0IHVwbG9hZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgczNQcmVmaXg6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtb2RlbCBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWxOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdlaWdodFNpemU6IFNpemU7XG59XG5cbi8qKlxuICogTmV1cm9ueCBjb21waWxlciBjb25zdHJ1Y3QuXG4gKiBDb21waWxlIHRoZSBtb2RlbCB0byB3b3JrIHdpdGggSW5mZXJlbnRpYTIgYW5kIFRyYWluaXVtMSBhbmQgdXBsb2FkIGl0IHRvIGFuIFMzIGJ1Y2tldC5cbiAqL1xuZXhwb3J0IGNsYXNzIE5ldXJvbnhDb21waWxlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgY29tcGlsZWRNb2RlbD86IE5ldXJvbnhDb21waWxlZE1vZGVsO1xuICBwcml2YXRlIHJlYWRvbmx5IGVudHJ5cG9pbnQ6IFNpbmdsZXRvbkZ1bmN0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IGpvYkRlZmluaXRpb246IE5ldXJvbnhCYXRjaEVjc0pvYkRlZmluaXRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgam9iUXVldWU6IGJhdGNoLkpvYlF1ZXVlO1xuICBwcml2YXRlIHJlYWRvbmx5IGFydGlmYWN0UzNQcmVmaXg6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB3ZWlnaHRTaXplOiBTaXplO1xuICBwcml2YXRlIHJlYWRvbmx5IG5ldXJvbnhJbnN0YW5jZVR5cGU6IElOZXVyb254SW5zdGFuY2VUeXBlO1xuICBwcml2YXRlIHJlYWRvbmx5IG1vZGVsOiBNb2RlbDtcbiAgcHJpdmF0ZSByZWFkb25seSBidWNrZXQ6IElCdWNrZXQ7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBOZXVyb254Q29tcGlsZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3Qgd2VpZ2h0U2l6ZSA9IFNpemUuZ2liaWJ5dGVzKFxuICAgICAgcHJvcHMubW9kZWwub3B0aW9ucy5wYXJhbWV0ZXJzLnRvQmlsbGlvbigpICogMi41LFxuICAgICk7XG4gICAgY29uc3Qgdm9sdW1lU2l6ZSA9XG4gICAgICBwcm9wcy52b2x1bWVTaXplPy50b0dpYmlieXRlcygpID8/XG4gICAgICBNYXRoLmNlaWwoXG4gICAgICAgIHdlaWdodFNpemUudG9HaWJpYnl0ZXMoKSArXG4gICAgICAgICAgUHl0b3JjaFRyYWluaW5nTmV1cm9ueEltYWdlLnNpemUudG9HaWJpYnl0ZXMoKSArXG4gICAgICAgICAgTmV1cm9uT3B0aW1pemVkTWFjaGluZUltYWdlLnNpemUudG9HaWJpYnl0ZXMoKSxcbiAgICAgICk7XG4gICAgY29uc3QgbGF1bmNoVGVtcGxhdGUgPSBuZXcgZWMyLkxhdW5jaFRlbXBsYXRlKHRoaXMsIFwiTGF1bmNoVGVtcGxhdGVcIiwge1xuICAgICAgYmxvY2tEZXZpY2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBkZXZpY2VOYW1lOiBcIi9kZXYveHZkYVwiLFxuICAgICAgICAgIHZvbHVtZTogZWMyLkJsb2NrRGV2aWNlVm9sdW1lLmVicyh2b2x1bWVTaXplLCB7XG4gICAgICAgICAgICB2b2x1bWVUeXBlOiBlYzIuRWJzRGV2aWNlVm9sdW1lVHlwZS5HUDMsXG4gICAgICAgICAgICBlbmNyeXB0ZWQ6IHRydWUsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbmV1cm9ueEluc3RhbmNlVHlwZSA9XG4gICAgICBwcm9wcy5uZXVyb254SW5zdGFuY2VUeXBlID8/IE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl80OFhMQVJHRTtcbiAgICBjb25zdCBjb21wdXRlRW52aXJvbm1lbnQgPSBuZXcgTmV1cm9ueEJhdGNoQ29tcHV0ZUVudmlyb25tZW50KFxuICAgICAgdGhpcyxcbiAgICAgIFwiQ29tcHV0ZUVudmlyb25tZW50XCIsXG4gICAgICB7XG4gICAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgICB2cGNTdWJuZXRzOiBwcm9wcy52cGNTdWJuZXRzLFxuICAgICAgICBpbnN0YW5jZVR5cGVzOiBbbmV1cm9ueEluc3RhbmNlVHlwZS5pbnN0YW5jZVR5cGVdLFxuICAgICAgICB1c2VPcHRpbWFsSW5zdGFuY2VDbGFzc2VzOiBmYWxzZSxcbiAgICAgICAgbGF1bmNoVGVtcGxhdGUsXG4gICAgICAgIHNwb3Q6IHByb3BzLnNwb3QsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBUYWdzLm9mKGNvbXB1dGVFbnZpcm9ubWVudCkuYWRkKFwiTmFtZVwiLCBcIm5ldXJvbngtY29tcGlsZS13b3JrZXJcIik7XG4gICAgdGhpcy5qb2JRdWV1ZSA9IG5ldyBiYXRjaC5Kb2JRdWV1ZSh0aGlzLCBcIkpvYlF1ZXVlXCIsIHtcbiAgICAgIGNvbXB1dGVFbnZpcm9ubWVudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbXB1dGVFbnZpcm9ubWVudCxcbiAgICAgICAgICBvcmRlcjogMSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBqb2JTdGF0ZVRpbWVMaW1pdEFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHN0YXRlOiBiYXRjaC5Kb2JTdGF0ZVRpbWVMaW1pdEFjdGlvbnNTdGF0ZS5SVU5OQUJMRSxcbiAgICAgICAgICByZWFzb246IGJhdGNoLkpvYlN0YXRlVGltZUxpbWl0QWN0aW9uc1JlYXNvbi5KT0JfUkVTT1VSQ0VfUkVRVUlSRU1FTlQsXG4gICAgICAgICAgbWF4VGltZTogRHVyYXRpb24ubWludXRlcygxMCksXG4gICAgICAgICAgYWN0aW9uOiBiYXRjaC5Kb2JTdGF0ZVRpbWVMaW1pdEFjdGlvbnNBY3Rpb24uQ0FOQ0VMLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBwcm9wcy5tb2RlbC5idWNrZXQ/LmdyYW50UmVhZChjb21wdXRlRW52aXJvbm1lbnQuaW5zdGFuY2VSb2xlKTtcbiAgICBwcm9wcy5idWNrZXQuZ3JhbnRSZWFkV3JpdGUoY29tcHV0ZUVudmlyb25tZW50Lmluc3RhbmNlUm9sZSk7XG4gICAgdGhpcy5qb2JEZWZpbml0aW9uID0gbmV3IE5ldXJvbnhCYXRjaEVjc0pvYkRlZmluaXRpb24oXG4gICAgICB0aGlzLFxuICAgICAgXCJKb2JEZWZpbml0aW9uXCIsXG4gICAgICB7XG4gICAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICAgIGltYWdlOiBwcm9wcy5pbWFnZS5pbWFnZSxcbiAgICAgICAgLy8gVGhlIGZsbG93aW5nIGNvbW1hbmQgd2FzIGV4ZWN1dGVkIG9uIGluZjIuOHhsYXJnZVxuICAgICAgICAvLyBzaC01LjIkIGZyZWUgLWJcbiAgICAgICAgLy8gXHRcdFx0dG90YWxcdFx0XHRcdFx0dXNlZFx0XHRcdGZyZWVcdFx0XHRcdFx0c2hhcmVkXHRidWZmL2NhY2hlXHRhdmFpbGFibGVcbiAgICAgICAgLy8gTWVtOlx0MTMyMjY1NzY2OTEyXHQ4NjYzMjAzODRcdDEzMDM0MTc4NTYwMFx0NjY3NjQ4XHQxMDU3NjYwOTI4XHQxMzA1MjkxNDg5MjhcbiAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JhdGNoL2xhdGVzdC91c2VyZ3VpZGUvbWVtb3J5LW1hbmFnZW1lbnQuaHRtbFxuICAgICAgICBtZW1vcnk6IFNpemUubWViaWJ5dGVzKFxuICAgICAgICAgIE1hdGguY2VpbChuZXVyb254SW5zdGFuY2VUeXBlLm1lbW9yeS50b01lYmlieXRlcygpICogMC45NSksXG4gICAgICAgICksXG4gICAgICAgIGNwdTogbmV1cm9ueEluc3RhbmNlVHlwZS52Q3B1LFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIE5FVVJPTl9DT01QSUxFX0NBQ0hFX1VSTDogYCR7cHJvcHMuYnVja2V0LnMzVXJsRm9yT2JqZWN0KFwibmV1cm9uLWNvbXBpbGUtY2FjaGVcIil9YCxcbiAgICAgICAgICAuLi5wcm9wcy5lbnZpcm9ubWVudCxcbiAgICAgICAgfSxcbiAgICAgICAgY29tbWFuZDogcHJvcHMuY29tbWFuZCxcbiAgICAgICAgc2VjcmV0czogcHJvcHMuc2VjcmV0cyxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IGpvYlN1Ym1pdEZ1bmN0aW9uID0gbmV3IFNpbmdsZXRvbkZ1bmN0aW9uKHRoaXMsIFwiSm9iU3VibWl0RnVuY3Rpb25cIiwge1xuICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQoam9pbihfX2Rpcm5hbWUsIFwicHJpdmF0ZS9hd2FpdC1jb21waWxlLWpvYlwiKSksXG4gICAgICBoYW5kbGVyOiBcImluZGV4Lm9uRXZlbnRcIixcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTX0xBVEVTVCxcbiAgICAgIHV1aWQ6IFwiMTM2MWY0NjktNWM5Mi00YzQ2LTllMTEtNWQxZGJmOTI1YmFjXCIsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBKT0JfREVGSU5JVElPTl9BUk46IHRoaXMuam9iRGVmaW5pdGlvbi5qb2JEZWZpbml0aW9uQXJuLFxuICAgICAgICBKT0JfUVVFVUVfQVJOOiB0aGlzLmpvYlF1ZXVlLmpvYlF1ZXVlQXJuLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmpvYkRlZmluaXRpb24uZ3JhbnRTdWJtaXRKb2Ioam9iU3VibWl0RnVuY3Rpb24sIHRoaXMuam9iUXVldWUpO1xuICAgIGNvbnN0IGpvYk1vbml0b3JpbmdGdW5jdGlvbiA9IG5ldyBTaW5nbGV0b25GdW5jdGlvbihcbiAgICAgIHRoaXMsXG4gICAgICBcIkpvYk1vbml0b3JpbmdGdW5jdGlvblwiLFxuICAgICAge1xuICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChqb2luKF9fZGlybmFtZSwgXCJwcml2YXRlL2F3YWl0LWNvbXBpbGUtam9iXCIpKSxcbiAgICAgICAgaGFuZGxlcjogXCJpbmRleC5pc0NvbXBsZXRlXCIsXG4gICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTX0xBVEVTVCxcbiAgICAgICAgdXVpZDogXCJkZjE2ZGJhOC01Zjc3LTQ4MGMtYTZhZC1jZmRmNzRjM2RlNjJcIixcbiAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBBUlRJRkFDVF9TM19QUkVGSVg6IHByb3BzLmFydGlmYWN0UzNQcmVmaXgsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICk7XG4gICAgR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgcmVzb3VyY2VBcm5zOiBbXCIqXCJdLFxuICAgICAgZ3JhbnRlZTogam9iTW9uaXRvcmluZ0Z1bmN0aW9uLFxuICAgICAgYWN0aW9uczogW1wiYmF0Y2g6RGVzY3JpYmVKb2JzXCJdLFxuICAgIH0pO1xuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFByb3ZpZGVyKHRoaXMsIFwiQ29tcGlsZUpvYlByb3ZpZGVyXCIsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBqb2JTdWJtaXRGdW5jdGlvbixcbiAgICAgIGlzQ29tcGxldGVIYW5kbGVyOiBqb2JNb25pdG9yaW5nRnVuY3Rpb24sXG4gICAgICBxdWVyeUludGVydmFsOiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgdG90YWxUaW1lb3V0OiBEdXJhdGlvbi5ob3VycygxMiksXG4gICAgfSk7XG4gICAgdGhpcy5lbnRyeXBvaW50ID0gbmV3IFNpbmdsZXRvbkZ1bmN0aW9uKHRoaXMsIFwiSm9iRW50cnlwb2ludEZ1bmN0aW9uXCIsIHtcbiAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KGpvaW4oX19kaXJuYW1lLCBcInByaXZhdGUvYXdhaXQtY29tcGlsZS1qb2JcIikpLFxuICAgICAgaGFuZGxlcjogXCJpbmRleC5lbnRyeXBvaW50XCIsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBQUk9WSURFUl9BUk46IHByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIH0sXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTX0xBVEVTVCxcbiAgICAgIHV1aWQ6IFwiZjZlNjY5OTctNTA0Mi00ZGYxLTg3ODEtYmQ2OGIzYWM1MzEzXCIsXG4gICAgfSk7XG4gICAgRnVuY3Rpb24uZnJvbUZ1bmN0aW9uQXJuKFxuICAgICAgdGhpcyxcbiAgICAgIFwiUHJvdmlkZXJGdW5jdGlvblwiLFxuICAgICAgcHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICkuZ3JhbnRJbnZva2UodGhpcy5lbnRyeXBvaW50KTtcblxuICAgIHRoaXMubW9kZWwgPSBwcm9wcy5tb2RlbDtcbiAgICB0aGlzLmJ1Y2tldCA9IHByb3BzLmJ1Y2tldDtcbiAgICB0aGlzLmFydGlmYWN0UzNQcmVmaXggPSBwcm9wcy5hcnRpZmFjdFMzUHJlZml4O1xuICAgIHRoaXMud2VpZ2h0U2l6ZSA9IHdlaWdodFNpemU7XG4gICAgdGhpcy5uZXVyb254SW5zdGFuY2VUeXBlID0gbmV1cm9ueEluc3RhbmNlVHlwZTtcbiAgfVxuICBjb21waWxlKCkge1xuICAgIC8vIHdoZW4gaW52b2tlIG11bHRpcGxlIHRpbWVzXG4gICAgaWYgKHRoaXMuY29tcGlsZWRNb2RlbCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29tcGlsZWRNb2RlbDtcbiAgICB9XG4gICAgY29uc3Qgd2FpdENvbmRpdGlvbkhhbmRsZSA9IG5ldyBDZm5XYWl0Q29uZGl0aW9uSGFuZGxlKFxuICAgICAgdGhpcyxcbiAgICAgIGBXYWl0Q29uZGl0aW9uSGFuZGxlJHt0aGlzLmFydGlmYWN0UzNQcmVmaXh9YCxcbiAgICApO1xuICAgIGNvbnN0IGNvbXBpbGVKb2IgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJOZXVyb254Q29tcGlsZVwiLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHRoaXMuZW50cnlwb2ludC5mdW5jdGlvbkFybixcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206Ok5ldXJvbnhDb21waWxlXCIsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHdhaXRDb25kaXRpb25DYWxsYmFja1VSTDogd2FpdENvbmRpdGlvbkhhbmRsZS5yZWYsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IHdhaXQgPSBuZXcgQ2ZuV2FpdENvbmRpdGlvbihcbiAgICAgIHRoaXMsXG4gICAgICBgV2FpdENvbmRpdGlvbiR7dGhpcy5hcnRpZmFjdFMzUHJlZml4fWAsXG4gICAgICB7XG4gICAgICAgIGNvdW50OiAxLFxuICAgICAgICB0aW1lb3V0OiBEdXJhdGlvbi5ob3VycygxMikudG9TZWNvbmRzKCkudG9TdHJpbmcoKSxcbiAgICAgICAgaGFuZGxlOiB3YWl0Q29uZGl0aW9uSGFuZGxlLnJlZixcbiAgICAgIH0sXG4gICAgKTtcbiAgICB3YWl0Lm5vZGUuYWRkRGVwZW5kZW5jeShjb21waWxlSm9iKTtcbiAgICBjb25zdCBzM1ByZWZpeCA9IEZuLnNlbGVjdCgzLCBGbi5zcGxpdCgnXCInLCB3YWl0LmF0dHJEYXRhLnRvU3RyaW5nKCkpKTtcblxuICAgIHRoaXMuY29tcGlsZWRNb2RlbCA9IHtcbiAgICAgIG1vZGVsTmFtZTogdGhpcy5tb2RlbC5tb2RlbE5hbWUsXG4gICAgICBjb21waWxlVGltZUluc3RhbmNlVHlwZTogdGhpcy5uZXVyb254SW5zdGFuY2VUeXBlLFxuICAgICAgYnVja2V0OiB0aGlzLmJ1Y2tldCxcbiAgICAgIHMzUHJlZml4LFxuICAgICAgczNVcmk6IHRoaXMuYnVja2V0LnMzVXJsRm9yT2JqZWN0KHMzUHJlZml4KSxcbiAgICAgIHdlaWdodFNpemU6IHRoaXMud2VpZ2h0U2l6ZSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmNvbXBpbGVkTW9kZWw7XG4gIH1cbn1cbiJdfQ==
@@ -349,5 +349,5 @@ class VllmEngineArgumentsParser {
349
349
  }
350
350
  exports.VllmEngineArgumentsParser = VllmEngineArgumentsParser;
351
351
  _a = JSII_RTTI_SYMBOL_1;
352
- VllmEngineArgumentsParser[_a] = { fqn: "aws-cdk-neuronx-patterns.VllmEngineArgumentsParser", version: "0.0.25" };
352
+ VllmEngineArgumentsParser[_a] = { fqn: "aws-cdk-neuronx-patterns.VllmEngineArgumentsParser", version: "0.1.0" };
353
353
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmxsbS1lbmdpbmUtYXJnbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFzZS9zZXJ2ZXItZW5naW5lL3ZsbG0tZW5naW5lL3ZsbG0tZW5naW5lLWFyZ21lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUE7O0dBRUc7QUFDSCxJQUFZLGVBT1g7QUFQRCxXQUFZLGVBQWU7SUFDekIsa0NBQWUsQ0FBQTtJQUNmLGdDQUFhLENBQUE7SUFDYixzQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBZSxDQUFBO0lBQ2Ysd0NBQXFCLENBQUE7SUFDckIsa0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBUFcsZUFBZSwrQkFBZixlQUFlLFFBTzFCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLFVBYVg7QUFiRCxXQUFZLFVBQVU7SUFDcEIsMkJBQWEsQ0FBQTtJQUNiLHVCQUFTLENBQUE7SUFDVCx5Q0FBMkIsQ0FBQTtJQUMzQixpQ0FBbUIsQ0FBQTtJQUNuQiw2QkFBZSxDQUFBO0lBQ2YsdUNBQXlCLENBQUE7SUFDekIsNkNBQStCLENBQUE7SUFDL0IsMkJBQWEsQ0FBQTtJQUNiLDJDQUE2QixDQUFBO0lBQzdCLGlDQUFtQixDQUFBO0lBQ25CLCtDQUFpQyxDQUFBO0lBQ2pDLGlEQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFiVyxVQUFVLDBCQUFWLFVBQVUsUUFhckI7QUFFRDs7R0FFRztBQUNILElBQVksUUF5Qlg7QUF6QkQsV0FBWSxRQUFRO0lBQ2xCOztPQUVHO0lBQ0gseUJBQWEsQ0FBQTtJQUNiOztPQUVHO0lBQ0gseUJBQWEsQ0FBQTtJQUNiOztPQUVHO0lBQ0gsK0JBQW1CLENBQUE7SUFDbkI7O09BRUc7SUFDSCxpQ0FBcUIsQ0FBQTtJQUNyQjs7T0FFRztJQUNILDJCQUFlLENBQUE7SUFDZjs7T0FFRztJQUNILCtCQUFtQixDQUFBO0FBQ3JCLENBQUMsRUF6QlcsUUFBUSx3QkFBUixRQUFRLFFBeUJuQjtBQUVEOztH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QUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ25DLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzdDLENBQUM7WUFDRCxPQUFPLENBQUMsS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7O0FBdkNILDhEQXdDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlY3JldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYmF0Y2hcIjtcblxuLyoqXG4gKiBMb2cgbGV2ZWwgb3B0aW9ucyBmb3IgVXZpY29yblxuICovXG5leHBvcnQgZW51bSBVdmljb3JuTG9nTGV2ZWwge1xuICBERUJVRyA9IFwiZGVidWdcIixcbiAgSU5GTyA9IFwiaW5mb1wiLFxuICBXQVJOSU5HID0gXCJ3YXJuaW5nXCIsXG4gIEVSUk9SID0gXCJlcnJvclwiLFxuICBDUklUSUNBTCA9IFwiY3JpdGljYWxcIixcbiAgVFJBQ0UgPSBcInRyYWNlXCIsXG59XG5cbi8qKlxuICogQXZhaWxhYmxlIG1vZGVsIHdlaWdodCBsb2FkaW5nIGZvcm1hdHNcbiAqL1xuZXhwb3J0IGVudW0gTG9hZEZvcm1hdCB7XG4gIEFVVE8gPSBcImF1dG9cIixcbiAgUFQgPSBcInB0XCIsXG4gIFNBRkVURU5TT1JTID0gXCJzYWZldGVuc29yc1wiLFxuICBOUENBQ0hFID0gXCJucGNhY2hlXCIsXG4gIERVTU1ZID0gXCJkdW1teVwiLFxuICBURU5TT1JJWkVSID0gXCJ0ZW5zb3JpemVyXCIsXG4gIFNIQVJERURfU1RBVEUgPSBcInNoYXJkZWRfc3RhdGVcIixcbiAgR0dVRiA9IFwiZ2d1ZlwiLFxuICBCSVRTQU5EQllURVMgPSBcImJpdHNhbmRieXRlc1wiLFxuICBNSVNUUkFMID0gXCJtaXN0cmFsXCIsXG4gIFJVTkFJX1NUUkVBTUVSID0gXCJydW5haV9zdHJlYW1lclwiLFxuICBGQVNUU0FGRVRFTlNPUlMgPSBcImZhc3RzYWZldGVuc29yc1wiLFxufVxuXG4vKipcbiAqIERhdGEgdHlwZXMgZm9yIG1vZGVsIHdlaWdodHMgYW5kIGFjdGl2YXRpb25zXG4gKi9cbmV4cG9ydCBlbnVtIERhdGFUeXBlIHtcbiAgLyoqXG4gICAqIOKAnGF1dG/igJ0gd2lsbCB1c2UgRlAxNiBwcmVjaXNpb24gZm9yIEZQMzIgYW5kIEZQMTYgbW9kZWxzLCBhbmQgQkYxNiBwcmVjaXNpb24gZm9yIEJGMTYgbW9kZWxzLlxuICAgKi9cbiAgQVVUTyA9IFwiYXV0b1wiLFxuICAvKipcbiAgICog4oCcaGFsZuKAnSBmb3IgRlAxNi4gUmVjb21tZW5kZWQgZm9yIEFXUSBxdWFudGl6YXRpb24uXG4gICAqL1xuICBIQUxGID0gXCJoYWxmXCIsXG4gIC8qKlxuICAgKiDigJxmbG9hdDE24oCdIGlzIHRoZSBzYW1lIGFzIOKAnGhhbGbigJ0uXG4gICAqL1xuICBGTE9BVDE2ID0gXCJmbG9hdDE2XCIsXG4gIC8qKlxuICAgKiDigJxiZmxvYXQxNuKAnSBmb3IgYSBiYWxhbmNlIGJldHdlZW4gcHJlY2lzaW9uIGFuZCByYW5nZS5cbiAgICovXG4gIEJGTE9BVDE2ID0gXCJiZmxvYXQxNlwiLFxuICAvKipcbiAgICog4oCcZmxvYXTigJ0gaXMgc2hvcnRoYW5kIGZvciBGUDMyIHByZWNpc2lvbi5cbiAgICovXG4gIEZMT0FUID0gXCJmbG9hdFwiLFxuICAvKipcbiAgICog4oCcZmxvYXQzMuKAnSBmb3IgRlAzMiBwcmVjaXNpb24uXG4gICAqL1xuICBGTE9BVDMyID0gXCJmbG9hdDMyXCIsXG59XG5cbi8qKlxuICogVGhlIGZvbGRlciBwYXRoIHRvIHRoZSBnZW5lcmF0aW9uIGNvbmZpZy5cbiAqL1xuZXhwb3J0IGVudW0gR2VuZXJhdGlvbkNvbmZpZyB7XG4gIEFVVE8gPSBcImF1dG9cIixcbiAgVkxMTSA9IFwidmxsbVwiLFxufVxuXG4vKipcbiAqIEF2YWlsYWJsZSBndWlkZWQgZGVjb2RpbmcgYmFja2VuZHNcbiAqL1xuZXhwb3J0IGVudW0gR3VpZGVkRGVjb2RpbmdCYWNrZW5kIHtcbiAgQVVUTyA9IFwiYXV0b1wiLFxuICBPVVRMSU5FUyA9IFwib3V0bGluZXNcIixcbiAgTE1fRk9STUFUX0VORk9SQ0VSID0gXCJsbS1mb3JtYXQtZW5mb3JjZXJcIixcbiAgWEdSQU1NQVIgPSBcInhncmFtbWFyXCIsXG59XG5cbi8qKlxuICogQXZhaWxhYmxlIHJlYXNvbmluZyBwYXJzZXJzXG4gKi9cbmV4cG9ydCBlbnVtIFJlYXNvbmluZ1BhcnNlciB7XG4gIERFRVBTRUVLX1IxID0gXCJkZWVwc2Vla19yMVwiLFxuICBHUkFOSVRFID0gXCJncmFuaXRlXCIsXG59XG5cbi8qKlxuICogTW9kZWwgaW1wbGVtZW50YXRpb24gb3B0aW9uc1xuICovXG5leHBvcnQgZW51bSBNb2RlbEltcGwge1xuICAvKipcbiAgICog4oCcYXV0b+KAnSB3aWxsIHRyeSB0byB1c2UgdGhlIHZMTE0gaW1wbGVtZW50YXRpb24gaWYgaXQgZXhpc3RzIGFuZCBmYWxsIGJhY2sgdG8gdGhlIFRyYW5zZm9ybWVyc1xuICAgKiBpbXBsZW1lbnRhdGlvbiBpZiBubyB2TExNIGltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIEFVVE8gPSBcImF1dG9cIixcbiAgLyoqXG4gICAqIOKAnHZsbG3igJ0gd2lsbCB1c2UgdGhlIHZMTE0gbW9kZWwgaW1wbGVtZW50YXRpb24uXG4gICAqL1xuICBWTExNID0gXCJ2bGxtXCIsXG4gIC8qKlxuICAgKiDigJx0cmFuc2Zvcm1lcnPigJ0gd2lsbCB1c2UgdGhlIFRyYW5zZm9ybWVycyBtb2RlbCBpbXBsZW1lbnRhdGlvbi5cbiAgICovXG4gIFRSQU5TRk9STUVSUyA9IFwidHJhbnNmb3JtZXJzXCIsXG59XG5cbi8qKlxuICogRGlzdHJpYnV0ZWQgZXhlY3V0aW9uIGJhY2tlbmQgb3B0aW9uc1xuICovXG5leHBvcnQgZW51bSBEaXN0cmlidXRlZEV4ZWN1dG9yQmFja2VuZCB7XG4gIFJBWSA9IFwicmF5XCIsXG4gIE1QID0gXCJtcFwiLFxuICBVTkkgPSBcInVuaVwiLFxuICBFWFRFUk5BTF9MQVVOQ0hFUiA9IFwiZXh0ZXJuYWxfbGF1bmNoZXJcIixcbn1cblxuLyoqXG4gKiBDYWNoZSBibG9jayBzaXplIG9wdGlvbnMgaW4gbnVtYmVyIG9mIHRva2Vuc1xuICovXG5leHBvcnQgZW51bSBCbG9ja1NpemUge1xuICBTSVpFXzggPSA4LFxuICBTSVpFXzE2ID0gMTYsXG4gIFNJWkVfMzIgPSAzMixcbiAgU0laRV82NCA9IDY0LFxuICBTSVpFXzEyOCA9IDEyOCxcbn1cblxuLyoqXG4gKiBLViBjYWNoZSBkYXRhIHR5cGUgb3B0aW9uc1xuICovXG5leHBvcnQgZW51bSBLdkNhY2hlRHR5cGUge1xuICBBVVRPID0gXCJhdXRvXCIsXG4gIEZQOCA9IFwiZnA4XCIsXG4gIEZQOF9FNE0zID0gXCJmcDhfZTRtM1wiLFxuICBGUDhfRTVNMiA9IFwiZnA4X2U1bTJcIixcbn1cblxuLyoqXG4gKiBIYXNoIGFsZ29yaXRobSBvcHRpb25zIGZvciBwcmVmaXggY2FjaGluZ1xuICovXG5leHBvcnQgZW51bSBQcmVmaXhDYWNoaW5nSGFzaEFsZ28ge1xuICAvKipcbiAgICog4oCcYnVpbHRpbuKAnSBpcyBQeXRob27igJlzIGJ1aWx0LWluIGhhc2guXG4gICAqL1xuICBCVUlMVElOID0gXCJidWlsdGluXCIsXG4gIC8qKlxuICAgKiDigJxzaGEyNTbigJ0gaXMgY29sbGlzaW9uIHJlc2lzdGFudCBidXQgd2l0aCBjZXJ0YWluIG92ZXJoZWFkcy5cbiAgICovXG4gIFNIQTI1NiA9IFwic2hhMjU2XCIsXG59XG5cbi8qKlxuICogUXVhbnRpemF0aW9uIG1ldGhvZHNcbiAqL1xuZXhwb3J0IGVudW0gUXVhbnRpemF0aW9uIHtcbiAgQVFMTSA9IFwiYXFsbVwiLFxuICBBV1EgPSBcImF3cVwiLFxuICBERUVQU1BFRURGUCA9IFwiZGVlcHNwZWVkZnBcIixcbiAgVFBVX0lOVDggPSBcInRwdV9pbnQ4XCIsXG4gIEZQOCA9IFwiZnA4XCIsXG4gIFBUUENfRlA4ID0gXCJwdHBjX2ZwOFwiLFxuICBGQkdFTU1fRlA4ID0gXCJmYmdlbW1fZnA4XCIsXG4gIE1PREVMT1BUID0gXCJtb2RlbG9wdFwiLFxuICBOVkZQNCA9IFwibnZmcDRcIixcbiAgTUFSTElOID0gXCJtYXJsaW5cIixcbiAgR0dVRiA9IFwiZ2d1ZlwiLFxuICBHUFRRX01BUkxJTl8yNCA9IFwiZ3B0cV9tYXJsaW5fMjRcIixcbiAgR1BUUV9NQVJMSU4gPSBcImdwdHFfbWFybGluXCIsXG4gIEFXUV9NQVJMSU4gPSBcImF3cV9tYXJsaW5cIixcbiAgR1BUUSA9IFwiZ3B0cVwiLFxuICBDT01QUkVTU0VEX1RFTlNPUlMgPSBcImNvbXByZXNzZWQtdGVuc29yc1wiLFxuICBCSVRTQU5EQllURVMgPSBcImJpdHNhbmRieXRlc1wiLFxuICBRUVEgPSBcInFxcVwiLFxuICBIUVEgPSBcImhxcVwiLFxuICBFWFBFUlRTX0lOVDggPSBcImV4cGVydHNfaW50OFwiLFxuICBORVVST05fUVVBTlQgPSBcIm5ldXJvbl9xdWFudFwiLFxuICBJUEVYID0gXCJpcGV4XCIsXG4gIFFVQVJLID0gXCJxdWFya1wiLFxuICBNT0VfV05BMTYgPSBcIm1vZV93bmExNlwiLFxuICBUT1JDSEFPID0gXCJ0b3JjaGFvXCIsXG4gIE5PTkUgPSBcIk5vbmVcIixcbn1cblxuLyoqXG4gKiBUb2tlbml6ZXIgbW9kZSBvcHRpb25zXG4gKi9cbmV4cG9ydCBlbnVtIFRva2VuaXplck1vZGUge1xuICAvKipcbiAgICog4oCcYXV0b+KAnSB3aWxsIHVzZSB0aGUgZmFzdCB0b2tlbml6ZXIgaWYgYXZhaWxhYmxlLlxuICAgKi9cbiAgQVVUTyA9IFwiYXV0b1wiLFxuICAvKipcbiAgICog4oCcc2xvd+KAnSB3aWxsIGFsd2F5cyB1c2UgdGhlIHNsb3cgdG9rZW5pemVyLlxuICAgKi9cbiAgU0xPVyA9IFwic2xvd1wiLFxuICAvKipcbiAgICog4oCcbWlzdHJhbOKAnSB3aWxsIGFsd2F5cyB1c2UgdGhlIG1pc3RyYWxfY29tbW9uIHRva2VuaXplci5cbiAgICovXG4gIE1JU1RSQUwgPSBcIm1pc3RyYWxcIixcbiAgLyoqXG4gICAqIOKAnGN1c3RvbeKAnSB3aWxsIHVzZSDigJN0b2tlbml6ZXIgdG8gc2VsZWN0IHRoZSBwcmVyZWdpc3RlcmVkIHRva2VuaXplci5cbiAgICovXG4gIENVU1RPTSA9IFwiY3VzdG9tXCIsXG59XG5cbi8qKlxuICogTW9kZWwgY29uZmlnIGZvcm1hdCBvcHRpb25zXG4gKi9cbmV4cG9ydCBlbnVtIENvbmZpZ0Zvcm1hdCB7XG4gIC8qKlxuICAgKiDigJxhdXRv4oCdIHdpbGwgdHJ5IHRvIGxvYWQgdGhlIGNvbmZpZyBpbiBoZiBmb3JtYXQgaWYgYXZhaWxhYmxlIGVsc2UgaXQgd2lsbCB0cnkgdG8gbG9hZCBpbiBtaXN0cmFsIGZvcm1hdFxuICAgKi9cbiAgQVVUTyA9IFwiYXV0b1wiLFxuICBIRiA9IFwiaGZcIixcbiAgTUlTVFJBTCA9IFwibWlzdHJhbFwiLFxufVxuXG4vKipcbiAqIFRva2VuaXplciBwb29sIHR5cGUgb3B0aW9uc1xuICovXG5leHBvcnQgZW51bSBUb2tlbml6ZXJQb29sVHlwZSB7XG4gIFJBWSA9IFwicmF5XCIsXG59XG5cbi8qKlxuICogRGV2aWNlIHR5cGUgb3B0aW9ucyBmb3IgdkxMTSBleGVjdXRpb25cbiAqL1xuZXhwb3J0IGVudW0gRGV2aWNlIHtcbiAgQVVUTyA9IFwiYXV0b1wiLFxuICBDVURBID0gXCJjdWRhXCIsXG4gIE5FVVJPTiA9IFwibmV1cm9uXCIsXG4gIENQVSA9IFwiY3B1XCIsXG4gIFRQVSA9IFwidHB1XCIsXG4gIFhQVSA9IFwieHB1XCIsXG4gIEhQVSA9IFwiaHB1XCIsXG59XG5cbi8qKlxuICogTG9SQSBkYXRhIHR5cGUgb3B0aW9uc1xuICovXG5leHBvcnQgZW51bSBMb3JhRHR5cGUge1xuICBBVVRPID0gXCJhdXRvXCIsXG4gIEZMT0FUMTYgPSBcImZsb2F0MTZcIixcbiAgQkZMT0FUMTYgPSBcImJmbG9hdDE2XCIsXG59XG5cbi8qKlxuICogRm9ybWF0IG9wdGlvbnMgZm9yIHJlbmRlcmluZyBtZXNzYWdlIGNvbnRlbnQgd2l0aGluIGEgY2hhdCB0ZW1wbGF0ZVxuICovXG5leHBvcnQgZW51bSBDaGF0VGVtcGxhdGVDb250ZW50Rm9ybWF0IHtcbiAgQVVUTyA9IFwiYXV0b1wiLFxuICBTVFJJTkcgPSBcInN0cmluZ1wiLFxuICBPUEVOQUkgPSBcIm9wZW5haVwiLFxufVxuXG4vKipcbiAqIFRvb2wgY2FsbCBwYXJzZXIgb3B0aW9uc1xuICovXG5leHBvcnQgZW51bSBUb29sQ2FsbFBhcnNlciB7XG4gIEdSQU5JVEVfMjBCX0ZDID0gXCJncmFuaXRlLTIwYi1mY1wiLFxuICBHUkFOSVRFID0gXCJncmFuaXRlXCIsXG4gIEhFUk1FUyA9IFwiaGVybWVzXCIsXG4gIElOVEVSTkxNID0gXCJpbnRlcm5sbVwiLFxuICBKQU1CQSA9IFwiamFtYmFcIixcbiAgTExBTUEzX0pTT04gPSBcImxsYW1hM19qc29uXCIsXG4gIE1JU1RSQUwgPSBcIm1pc3RyYWxcIixcbiAgUEhJNF9NSU5JX0pTT04gPSBcInBoaTRfbWluaV9qc29uXCIsXG4gIFBZVEhPTklDID0gXCJweXRob25pY1wiLFxufVxuXG4vKipcbiAqIFRhc2sgb3B0aW9ucyBmb3IgbW9kZWwgdXNhZ2VcbiAqL1xuZXhwb3J0IGVudW0gVmxsbVRhc2sge1xuICBBVVRPID0gXCJhdXRvXCIsXG4gIEdFTkVSQVRFID0gXCJnZW5lcmF0ZVwiLFxuICBFTUJFRERJTkcgPSBcImVtYmVkZGluZ1wiLFxuICBFTUJFRCA9IFwiZW1iZWRcIixcbiAgQ0xBU1NJRlkgPSBcImNsYXNzaWZ5XCIsXG4gIFNDT1JFID0gXCJzY29yZVwiLFxuICBSRVdBUkQgPSBcInJld2FyZFwiLFxuICBUUkFOU0NSSVBUSU9OID0gXCJ0cmFuc2NyaXB0aW9uXCIsXG59XG5cbi8qKlxuICogUHJlZW1wdGlvbiBtb2RlLlxuICovXG5leHBvcnQgZW51bSBQcmVlbXB0aW9uTW9kZSB7XG4gIFJFQ09NUFVURSA9IFwicmVjb21wdXRlXCIsXG4gIFNXQVAgPSBcInN3YXBcIixcbn1cblxuLyoqXG4gKiBTY2hlZHVsaW5nIHBvbGljeSBvcHRpb25zXG4gKi9cbmV4cG9ydCBlbnVtIFNjaGVkdWxpbmdQb2xpY3kge1xuICBGQ0ZTID0gXCJmY2ZzXCIsXG4gIFBSSU9SSVRZID0gXCJwcmlvcml0eVwiLFxufVxuXG4vKipcbiAqIFZsbG1OYW1lZEFyZ3VtZW50c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZsbG1OYW1lZEFyZ3VtZW50cyB7XG4gIC8qKlxuICAgKiBIb3N0IG5hbWUuXG4gICAqL1xuICByZWFkb25seSBob3N0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQb3J0IG51bWJlci5cbiAgICogQGRlZmF1bHQgODAwMFxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydD86IG51bWJlcjtcblxuICAvKipcbiAgICogTG9nIGxldmVsIGZvciB1dmljb3JuLlxuICAgKiBAZGVmYXVsdCBVdmljb3JuTG9nTGV2ZWwuSU5GT1xuICAgKi9cbiAgcmVhZG9ubHkgdXZpY29ybkxvZ0xldmVsPzogVXZpY29ybkxvZ0xldmVsO1xuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHV2aWNvcm4gYWNjZXNzIGxvZy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVVdmljb3JuQWNjZXNzTG9nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWxsb3cgY3JlZGVudGlhbHMuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhbGxvd0NyZWRlbnRpYWxzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWxsb3dlZCBvcmlnaW5zLlxuICAgKiBAZGVmYXVsdCBbJyonXVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZE9yaWdpbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQWxsb3dlZCBtZXRob2RzLlxuICAgKiBAZGVmYXVsdCBbJyonXVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZE1ldGhvZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQWxsb3dlZCBoZWFkZXJzLlxuICAgKiBAZGVmYXVsdCBbJyonXVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZEhlYWRlcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWYgcHJvdmlkZWQsIHRoZSBzZXJ2ZXIgd2lsbCByZXF1aXJlIHRoaXMga2V5IHRvIGJlIHByZXNlbnRlZCBpbiB0aGUgaGVhZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpS2V5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMb1JBIG1vZHVsZSBjb25maWd1cmF0aW9ucy5cbiAgICogQGV4YW1wbGUge1wibmFtZVwiOiBcIm5hbWVcIiwgXCJwYXRoXCI6IFwibG9yYV9wYXRoXCIsIFwiYmFzZV9tb2RlbF9uYW1lXCI6IFwiaWRcIn1cbiAgICovXG4gIHJlYWRvbmx5IGxvcmFNb2R1bGVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAvKipcbiAgICogUHJvbXB0IGFkYXB0ZXIgY29uZmlndXJhdGlvbnMgaW4gdGhlIGZvcm1hdCBuYW1lPXBhdGguIE11bHRpcGxlIGFkYXB0ZXJzIGNhbiBiZSBzcGVjaWZpZWQuXG4gICAqL1xuICByZWFkb25seSBwcm9tcHRBZGFwdGVycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsZSBwYXRoIHRvIHRoZSBjaGF0IHRlbXBsYXRlLCBvciB0aGUgdGVtcGxhdGUgaW4gc2luZ2xlLWxpbmUgZm9ybSBmb3IgdGhlIHNwZWNpZmllZCBtb2RlbC5cbiAgICovXG4gIHJlYWRvbmx5IGNoYXRUZW1wbGF0ZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZvcm1hdCB0byByZW5kZXIgbWVzc2FnZSBjb250ZW50IHdpdGhpbiBhIGNoYXQgdGVtcGxhdGUuXG4gICAqIC0g4oCcc3RyaW5n4oCdIHdpbGwgcmVuZGVyIHRoZSBjb250ZW50IGFzIGEgc3RyaW5nLlxuICAgKiAgIC0gRXhhbXBsZTogYFwiSGVsbG8gV29ybGRcImBcbiAgICogLSDigJxvcGVuYWnigJ0gd2lsbCByZW5kZXIgdGhlIGNvbnRlbnQgYXMgYSBsaXN0IG9mIGRpY3Rpb25hcmllcywgc2ltaWxhciB0byBPcGVuQUkgc2NoZW1hLlxuICAgKiAgIC0gRXhhbXBsZTogYFt7XCJ0eXBlXCI6IFwidGV4dFwiLCBcInRleHRcIjogXCJIZWxsbyB3b3JsZCFcIn1dYFxuICAgKiBAZGVmYXVsdCBDaGF0VGVtcGxhdGVDb250ZW50Rm9ybWF0LkFVVE9cbiAgICovXG4gIHJlYWRvbmx5IGNoYXRUZW1wbGF0ZUNvbnRlbnRGb3JtYXQ/OiBDaGF0VGVtcGxhdGVDb250ZW50Rm9ybWF0O1xuXG4gIC8qKlxuICAgKiBUaGUgcm9sZSBuYW1lIHRvIHJldHVybiBpZiBgcmVxdWVzdC5hZGRfZ2VuZXJhdGlvbl9wcm9tcHQ9dHJ1ZWAuXG4gICAqIEBkZWZhdWx0IFwiYXNzaXN0YW50XCJcbiAgICovXG4gIHJlYWRvbmx5IHJlc3BvbnNlUm9sZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZpbGUgcGF0aCB0byB0aGUgU1NMIGtleSBmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3NsS2V5ZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZpbGUgcGF0aCB0byB0aGUgU1NMIGNlcnQgZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IHNzbENlcnRmaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQ0EgY2VydGlmaWNhdGVzIGZpbGUuXG4gICAqL1xuICByZWFkb25seSBzc2xDYUNlcnRzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZWZyZXNoIFNTTCBDb250ZXh0IHdoZW4gU1NMIGNlcnRpZmljYXRlIGZpbGVzIGNoYW5nZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVNzbFJlZnJlc2g/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGNsaWVudCBjZXJ0aWZpY2F0ZSBpcyByZXF1aXJlZCAoc2VlIHN0ZGxpYiBzc2wgbW9kdWxlJ3MpLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSBzc2xDZXJ0UmVxcz86IG51bWJlcjtcblxuICAvKipcbiAgICogRmFzdEFQSSByb290X3BhdGggd2hlbiBhcHAgaXMgYmVoaW5kIGEgcGF0aCBiYXNlZCByb3V0aW5nIHByb3h5LlxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgQVNHSSBtaWRkbGV3YXJlIHRvIGFwcGx5IHRvIHRoZSBhcHAuXG4gICAqIFdlIGFjY2VwdCBtdWx0aXBsZSDigJNtaWRkbGV3YXJlIGFyZ3VtZW50cy4gVGhlIHZhbHVlIHNob3VsZCBiZSBhbiBpbXBvcnQgcGF0aC5cbiAgICogSWYgYSBmdW5jdGlvbiBpcyBwcm92aWRlZCwgdkxMTSB3aWxsIGFkZCBpdCB0byB0aGUgc2VydmVyIHVzaW5nIGBAYXBwLm1pZGRsZXdhcmUoJ2h0dHAnKWAuXG4gICAqIElmIGEgY2xhc3MgaXMgcHJvdmlkZWQsIHZMTE0gd2lsbCBhZGQgaXQgdG8gdGhlIHNlcnZlciB1c2luZyBgYXBwLmFkZF9taWRkbGV3YXJlKClgLlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgbWlkZGxld2FyZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGVuIGAtLW1heC1sb2dwcm9ic2AgaXMgc3BlY2lmaWVkLFxuICAgKiByZXByZXNlbnRzIHNpbmdsZSB0b2tlbnMgYXMgc3RyaW5ncyBvZiB0aGUgZm9ybSAndG9rZW5faWQ6e3Rva2VuX2lkfScgc28gdGhhdCB0b2tlbnMgdGhhdCBhcmUgbm90IEpTT04tZW5jb2RhYmxlIGNhbiBiZSBpZGVudGlmaWVkLi5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJldHVyblRva2Vuc0FzVG9rZW5JZHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBzcGVjaWZpZWQsIHdpbGwgcnVuIHRoZSBPcGVuQUkgZnJvbnRlbmQgc2VydmVyIGluIHRoZSBzYW1lIHByb2Nlc3MgYXMgdGhlIG1vZGVsIHNlcnZpbmcgZW5naW5lLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZUZyb250ZW5kTXVsdGlwcm9jZXNzaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgc3BlY2lmaWVkLCBBUEkgc2VydmVyIHdpbGwgYWRkIFgtUmVxdWVzdC1JZCBoZWFkZXIgdG8gcmVzcG9uc2VzLlxuICAgKlxuICAgKiBDYXV0aW9uOiB0aGlzIGh1cnRzIHBlcmZvcm1hbmNlIGF0IGhpZ2ggUVBTLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlUmVxdWVzdElkSGVhZGVycz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBhdXRvIHRvb2wgY2hvaWNlIGZvciBzdXBwb3J0ZWQgbW9kZWxzLlxuICAgKiBVc2UgYC0tdG9vbC1jYWxsLXBhcnNlcmAgdG8gc3BlY2lmeSB3aGljaCBwYXJzZXIgdG8gdXNlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlQXV0b1Rvb2xDaG9pY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZWxlY3QgdGhlIHRvb2wgY2FsbCBwYXJzZXIgZGVwZW5kaW5nIG9uIHRoZSBtb2RlbCB0aGF0IHlvdeKAmXJlIHVzaW5nLlxuICAgKiBUaGlzIGlzIHVzZWQgdG8gcGFyc2UgdGhlIG1vZGVsLWdlbmVyYXRlZCB0b29sIGNhbGwgaW50byBPcGVuQUkgQVBJIGZvcm1hdC5cbiAgICpcbiAgICogUmVxdWlyZWQgZm9yIGAtLWVuYWJsZS1hdXRvLXRvb2wtY2hvaWNlYC5cbiAgICovXG4gIHJlYWRvbmx5IHRvb2xDYWxsUGFyc2VyPzogVG9vbENhbGxQYXJzZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIHRvb2wgcGFyc2VyIHBsdWdpbi5cbiAgICogQGRlZmF1bHQgXCJcIlxuICAgKi9cbiAgcmVhZG9ubHkgdG9vbFBhcnNlclBsdWdpbj86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvciBwYXRoIG9mIHRoZSBodWdnaW5nZmFjZSBtb2RlbCB0byB1c2UuXG4gICAqIEBkZWZhdWx0IFwiZmFjZWJvb2svb3B0LTEyNW1cIlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXNrIHRvIHVzZSB0aGUgbW9kZWwgZm9yLlxuICAgKiBFYWNoIHZMTE0gaW5zdGFuY2Ugb25seSBzdXBwb3J0cyBvbmUgdGFzaywgZXZlbiBpZiB0aGUgc2FtZSBtb2RlbCBjYW4gYmUgdXNlZCBmb3IgbXVsdGlwbGUgdGFza3MuXG4gICAqIFdoZW4gdGhlIG1vZGVsIG9ubHkgc3VwcG9ydHMgb25lIHRhc2ssIFwiYXV0b1wiIGNhbiBiZSB1c2VkIHRvIHNlbGVjdCBpdDsgb3RoZXJ3aXNlLFxuICAgKiB5b3UgbXVzdCBzcGVjaWZ5IGV4cGxpY2l0bHkgd2hpY2ggdGFzayB0byB1c2UuXG4gICAqIEBkZWZhdWx0IFZsbG1UYXNrLkFVVE9cbiAgICovXG4gIHJlYWRvbmx5IHRhc2s/OiBWbGxtVGFzaztcblxuICAvKipcbiAgICogTmFtZSBvciBwYXRoIG9mIHRoZSBodWdnaW5nZmFjZSB0b2tlbml6ZXIgdG8gdXNlLlxuICAgKiBJZiB1bnNwZWNpZmllZCwgbW9kZWwgbmFtZSBvciBwYXRoIHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHRva2VuaXplcj86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvciBwYXRoIG9mIHRoZSBodWdnaW5nZmFjZSBjb25maWcgdG8gdXNlLlxuICAgKiBJZiB1bnNwZWNpZmllZCwgbW9kZWwgbmFtZSBvciBwYXRoIHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IGhmQ29uZmlnUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogU2tpcCBpbml0aWFsaXphdGlvbiBvZiB0b2tlbml6ZXIgYW5kIGRldG9rZW5pemVyLlxuICAgKiBFeHBlY3RzIHZhbGlkIHByb21wdF90b2tlbl9pZHMgYW5kIE5vbmUgZm9yIHByb21wdCBmcm9tIHRoZSBpbnB1dC5cbiAgICogVGhlIGdlbmVyYXRlZCBvdXRwdXQgd2lsbCBjb250YWluIHRva2VuIGlkcy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNraXBUb2tlbml6ZXJJbml0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHNwZWNpZmljIG1vZGVsIHZlcnNpb24gdG8gdXNlLiBJdCBjYW4gYmUgYSBicmFuY2ggbmFtZSwgYSB0YWcgbmFtZSwgb3IgYSBjb21taXQgaWQuXG4gICAqIElmIHVuc3BlY2lmaWVkLCB3aWxsIHVzZSB0aGUgZGVmYXVsdCB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgcmV2aXNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzcGVjaWZpYyByZXZpc2lvbiB0byB1c2UgZm9yIHRoZSBtb2RlbCBjb2RlIG9uIEh1Z2dpbmcgRmFjZSBIdWIuXG4gICAqIEl0IGNhbiBiZSBhIGJyYW5jaCBuYW1lLCBhIHRhZyBuYW1lLCBvciBhIGNvbW1pdCBpZC4gSWYgdW5zcGVjaWZpZWQsIHdpbGwgdXNlIHRoZSBkZWZhdWx0IHZlcnNpb24uXG4gICAqL1xuICByZWFkb25seSBjb2RlUmV2aXNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJldmlzaW9uIG9mIHRoZSBodWdnaW5nZmFjZSB0b2tlbml6ZXIgdG8gdXNlLlxuICAgKiBJdCBjYW4gYmUgYSBicmFuY2ggbmFtZSwgYSB0YWcgbmFtZSwgb3IgYSBjb21taXQgaWQuIElmIHVuc3BlY2lmaWVkLCB3aWxsIHVzZSB0aGUgZGVmYXVsdCB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9rZW5pemVyUmV2aXNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0b2tlbml6ZXIgbW9kZS5cbiAgICogQGRlZmF1bHQgVG9rZW5pemVyTW9kZS5BVVRPXG4gICAqL1xuICByZWFkb25seSB0b2tlbml6ZXJNb2RlPzogVG9rZW5pemVyTW9kZTtcblxuICAvKipcbiAgICogVHJ1c3QgcmVtb3RlIGNvZGUgZnJvbSBodWdnaW5nZmFjZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHRydXN0UmVtb3RlQ29kZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFsbG93aW5nIEFQSSByZXF1ZXN0cyB0byByZWFkIGxvY2FsIGltYWdlcyBvciB2aWRlb3MgZnJvbSBkaXJlY3RvcmllcyBzcGVjaWZpZWQgYnkgdGhlIHNlcnZlciBmaWxlIHN5c3RlbS5cbiAgICogVGhpcyBpcyBhIHNlY3VyaXR5IHJpc2suIFNob3VsZCBvbmx5IGJlIGVuYWJsZWQgaW4gdHJ1c3RlZCBlbnZpcm9ubWVudHMuXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkTG9jYWxNZWRpYVBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb3JtYXQgb2YgdGhlIG1vZGVsIGNvbmZpZyB0byBsb2FkLlxuICAgKiBAZGVmYXVsdCBDb25maWdGb3JtYXQuQVVUT1xuICAgKi9cbiAgcmVhZG9ubHkgY29uZmlnRm9ybWF0PzogQ29uZmlnRm9ybWF0O1xuXG4gIC8qKlxuICAgKiBEYXRhIHR5cGUgZm9yIG1vZGVsIHdlaWdodHMgYW5kIGFjdGl2YXRpb25zLlxuICAgKiBAZGVmYXVsdCBEYXRhVHlwZS5BVVRPXG4gICAqL1xuICByZWFkb25seSBkdHlwZT86IERhdGFUeXBlO1xuXG4gIC8qKlxuICAgKiBNb2RlbCBjb250ZXh0IGxlbmd0aC5cbiAgICovXG4gIHJlYWRvbmx5IG1heE1vZGVsTGVuPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCByZWdleCBwYXR0ZXJuIHNwZWNpZnlpbmcgdmFsaWQgbG9naXRzIHByb2Nlc3NvciBxdWFsaWZpZWQgbmFtZXMgdGhhdCBjYW4gYmUgcGFzc2VkXG4gICAqIHdpdGggdGhlIGxvZ2l0c19wcm9jZXNzb3JzIGV4dHJhIGNvbXBsZXRpb24gYXJndW1lbnQuIERlZmF1bHRzIHRvIE5vbmUsIHdoaWNoIGFsbG93cyBubyBwcm9jZXNzb3JzLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9naXRzUHJvY2Vzc29yUGF0dGVybj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hpY2ggaW1wbGVtZW50YXRpb24gb2YgdGhlIG1vZGVsIHRvIHVzZS5cbiAgICogQGRlZmF1bHQgTW9kZWxJbXBsLkFVVE9cbiAgICovXG4gIHJlYWRvbmx5IG1vZGVsSW1wbD86IE1vZGVsSW1wbDtcblxuICAvKipcbiAgICogRGlzYWJsZXMgc2xpZGluZyB3aW5kb3csIGNhcHBpbmcgdG8gc2xpZGluZyB3aW5kb3cgc2l6ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVTbGlkaW5nV2luZG93PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQmxvY2sgbWFuYWdlciB2MSBoYXMgYmVlbiByZW1vdmVkIGFuZCBTZWxmQXR0bkJsb2NrU3BhY2VNYW5hZ2VyIChpLmUuIGJsb2NrIG1hbmFnZXIgdjIpIGlzIG5vdyB0aGUgZGVmYXVsdC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAZGVwcmVjYXRlZCBTZXR0aW5nIHRoaXMgZmxhZyB0byBUcnVlIG9yIEZhbHNlIGhhcyBubyBlZmZlY3Qgb24gdkxMTSBiZWhhdmlvci5cbiAgICovXG4gIHJlYWRvbmx5IHVzZVYyQmxvY2tNYW5hZ2VyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmFuZG9tIHNlZWQgZm9yIG9wZXJhdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBzZWVkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXggbnVtYmVyIG9mIGxvZyBwcm9icyB0byByZXR1cm4gbG9ncHJvYnMgaXMgc3BlY2lmaWVkIGluIFNhbXBsaW5nUGFyYW1zLlxuICAgKiBAZGVmYXVsdCAyMFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4TG9ncHJvYnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERpc2FibGUgbG9nZ2luZyBzdGF0aXN0aWNzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZUxvZ1N0YXRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgdG8gcXVhbnRpemUgdGhlIHdlaWdodHMuXG4gICAqIElmIE5vbmUsIHdlIGZpcnN0IGNoZWNrIHRoZSBxdWFudGl6YXRpb25fY29uZmlnIGF0dHJpYnV0ZSBpbiB0aGUgbW9kZWwgY29uZmlnIGZpbGUuXG4gICAqIElmIHRoYXQgaXMgTm9uZSwgd2UgYXNzdW1lIHRoZSBtb2RlbCB3ZWlnaHRzIGFyZSBub3QgcXVhbnRpemVkIGFuZCB1c2UgZHR5cGUgdG8gZGV0ZXJtaW5lIHRoZSBkYXRhIHR5cGUgb2YgdGhlIHdlaWdodHMuXG4gICAqL1xuICByZWFkb25seSBxdWFudGl6YXRpb24/OiBRdWFudGl6YXRpb247XG5cbiAgLyoqXG4gICAqIFJvUEUgc2NhbGluZyBjb25maWd1cmF0aW9uIGluIEpTT04gZm9ybWF0LlxuICAgKiBAZXhhbXBsZSB7XCJyb3BlX3R5cGVcIjpcImR5bmFtaWNcIixcImZhY3RvclwiOjIuMH1cbiAgICovXG4gIHJlYWRvbmx5IHJvcGVTY2FsaW5nPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAvKipcbiAgICogUm9QRSB0aGV0YS4gVXNlIHdpdGggcm9wZV9zY2FsaW5nLlxuICAgKiBJbiBzb21lIGNhc2VzLCBjaGFuZ2luZyB0aGUgUm9QRSB0aGV0YSBpbXByb3ZlcyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIHNjYWxlZCBtb2RlbC5cbiAgICovXG4gIHJlYWRvbmx5IHJvcGVUaGV0YT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRva2VuIHRvIHVzZSBhcyBIVFRQIGJlYXJlciBhdXRob3JpemF0aW9uIGZvciByZW1vdGUgZmlsZXMuXG4gICAqIElmIHByb3ZpZGVkLCB0aGUgU2VjcmV0IHdpbGwgYmUgcGFzc2VkIGFzIEhGX1RPS0VOIHNlY3JldCB0byBjb21waWxlIGVudmlyb25tZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgaGZUb2tlbj86IFNlY3JldDtcblxuICAvKipcbiAgICogRXh0cmEgYXJndW1lbnRzIGZvciB0aGUgSHVnZ2luZ0ZhY2UgY29uZmlnLlxuICAgKiBUaGlzIHNob3VsZCBiZSBhIG9iamVjdCB0aGF0IHdpbGwgYmUgcGFyc2VkIGludG8gYSBkaWN0aW9uYXJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgaGZPdmVycmlkZXM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIC8qKlxuICAgKiBBbHdheXMgdXNlIGVhZ2VyLW1vZGUgUHlUb3JjaC5cbiAgICogSWYgRmFsc2UsIHdpbGwgdXNlIGVhZ2VyIG1vZGUgYW5kIENVREEgZ3JhcGggaW4gaHlicmlkIGZvciBtYXhpbWFsIHBlcmZvcm1hbmNlIGFuZCBmbGV4aWJpbGl0eS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuZm9yY2VFYWdlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE1heGltdW0gc2VxdWVuY2UgbGVuZ3RoIGNvdmVyZWQgYnkgQ1VEQSBncmFwaHMuXG4gICAqIFdoZW4gYSBzZXF1ZW5jZSBoYXMgY29udGV4dCBsZW5ndGggbGFyZ2VyIHRoYW4gdGhpcywgd2UgZmFsbCBiYWNrIHRvIGVhZ2VyIG1vZGUuXG4gICAqIEFkZGl0aW9uYWxseSBmb3IgZW5jb2Rlci1kZWNvZGVyIG1vZGVscywgaWYgdGhlIHNlcXVlbmNlIGxlbmd0aCBvZiB0aGUgZW5jb2RlciBpbnB1dCBpcyBsYXJnZXIgdGhhbiB0aGlzLFxuICAgKiB3ZSBmYWxsIGJhY2sgdG8gdGhlIGVhZ2VyIG1vZGUuXG4gICAqIEBkZWZhdWx0IDgxOTJcbiAgICovXG4gIHJlYWRvbmx5IG1heFNlcUxlblRvQ2FwdHVyZT86IG51bWJlcjtcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIGZvciB0aGUgbXVsdGltb2RhbCBpbnB1dCBtYXBwaW5nL3Byb2Nlc3NpbmcsIGUuZy4sIGltYWdlIHByb2Nlc3Nvci5cbiAgICogQGV4YW1wbGUge1wibnVtX2Nyb3BzXCI6IDR9XG4gICAqL1xuICByZWFkb25seSBtbVByb2Nlc3Nvckt3YXJncz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIElmIHRydWUsIHRoZW4gZGlzYWJsZXMgY2FjaGluZyBvZiB0aGUgbXVsdGktbW9kYWwgcHJlcHJvY2Vzc29yL21hcHBlci4gKG5vdCByZWNvbW1lbmRlZClcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVNbVByZXByb2Nlc3NvckNhY2hlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHBhdHRlcm4ocykgdG8gaWdub3JlIHdoZW4gbG9hZGluZyB0aGUgbW9kZWwuRGVmYXVsdCB0byBvcmlnaW5hbC8qKlxcLyogdG8gYXZvaWRcbiAgICogcmVwZWF0ZWQgbG9hZGluZyBvZiBsbGFtYeKAmXMgY2hlY2twb2ludHMuXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVQYXR0ZXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9kZWwgbmFtZShzKSB1c2VkIGluIHRoZSBBUEkuXG4gICAqIElmIG11bHRpcGxlIG5hbWVzIGFyZSBwcm92aWRlZCwgdGhlIHNlcnZlciB3aWxsIHJlc3BvbmQgdG8gYW55IG9mIHRoZSBwcm92aWRlZCBuYW1lcy5cbiAgICogVGhlIG1vZGVsIG5hbWUgaW4gdGhlIG1vZGVsIGZpZWxkIG9mIGEgcmVzcG9uc2Ugd2lsbCBiZSB0aGUgZmlyc3QgbmFtZSBpbiB0aGlzIGxpc3QuXG4gICAqIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBtb2RlbCBuYW1lIHdpbGwgYmUgdGhlIHNhbWUgYXMgdGhlIGAtLW1vZGVsYCBhcmd1bWVudC5cbiAgICogTm90ZWQgdGhhdCB0aGlzIG5hbWUocykgd2lsbCBhbHNvIGJlIHVzZWQgaW4gbW9kZWxfbmFtZSB0YWcgY29udGVudCBvZiBwcm9tZXRoZXVzIG1ldHJpY3MsXG4gICAqIGlmIG11bHRpcGxlIG5hbWVzIHByb3ZpZGVkLCBtZXRyaWNzIHRhZyB3aWxsIHRha2UgdGhlIGZpcnN0IG9uZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlZE1vZGVsTmFtZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9yIHBhdGggb2YgdGhlIFFMb1JBIGFkYXB0ZXIuXG4gICAqL1xuICByZWFkb25seSBxbG9yYUFkYXB0ZXJOYW1lT3JQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgZGVwcmVjYXRlZCBQcm9tZXRoZXVzIG1ldHJpY3MgdGhhdCBoYXZlIGJlZW4gaGlkZGVuIHNpbmNlIHRoZSBzcGVjaWZpZWQgdmVyc2lvbi5cbiAgICogRm9yIGV4YW1wbGUsIGlmIGEgcHJldmlvdXNseSBkZXByZWNhdGVkIG1ldHJpYyBoYXMgYmVlbiBoaWRkZW4gc2luY2UgdGhlIHYwLjcuMCByZWxlYXNlLFxuICAgKiB5b3UgdXNlIOKAk3Nob3ctaGlkZGVuLW1ldHJpY3MtZm9yLXZlcnNpb249MC43IGFzIGEgdGVtcG9yYXJ5IGVzY2FwZSBoYXRjaCB3aGlsZSB5b3UgbWlncmF0ZSB0byBuZXcgbWV0cmljcy5cbiAgICogVGhlIG1ldHJpYyBpcyBsaWtlbHkgdG8gYmUgcmVtb3ZlZCBjb21wbGV0ZWx5IGluIGFuIHVwY29taW5nIHJlbGVhc2UuXG4gICAqL1xuICByZWFkb25seSBzaG93SGlkZGVuTWV0cmljc0ZvclZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRhcmdldCBVUkwgdG8gd2hpY2ggT3BlblRlbGVtZXRyeSB0cmFjZXMgd2lsbCBiZSBzZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgb3RscFRyYWNlc0VuZHBvaW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWYWxpZCBjaG9pY2VzIGFyZSBtb2RlbCx3b3JrZXIsYWxsLlxuICAgKiBJdCBtYWtlcyBzZW5zZSB0byBzZXQgdGhpcyBvbmx5IGlmIC0tb3RscC10cmFjZXMtZW5kcG9pbnQgaXMgc2V0LlxuICAgKiBJZiBzZXQsIGl0IHdpbGwgY29sbGVjdCBkZXRhaWxlZCB0cmFjZXMgZm9yIHRoZSBzcGVjaWZpZWQgbW9kdWxlcy5cbiAgICogVGhpcyBpbnZvbHZlcyB1c2Ugb2YgcG9zc2libHkgY29zdGx5IGFuZCBvciBibG9ja2luZyBvcGVyYXRpb25zIGFuZCBoZW5jZSBtaWdodCBoYXZlIGEgcGVyZm9ybWFuY2UgaW1wYWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29sbGVjdERldGFpbGVkVHJhY2VzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEaXNhYmxlIGFzeW5jIG91dHB1dCBwcm9jZXNzaW5nLiBUaGlzIG1heSByZXN1bHQgaW4gbG93ZXIgcGVyZm9ybWFuY2UuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlQXN5bmNPdXRwdXRQcm9jPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHNjaGVkdWxlciBjbGFzcyB0byB1c2UuXG4gICAqIEBkZWZhdWx0IFwidmxsbS5jb3JlLnNjaGVkdWxlci5TY2hlZHVsZXJcIlxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGVyQ2xzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZSBvciBzZXQgbmV1cm9uIGRldmljZSBjb25maWd1cmF0aW9uLlxuICAgKiBAZXhhbXBsZSB7XCJjYXN0X2xvZ2l0c19kdHlwZVwiOiBcImJsb2F0MTZcIn1cbiAgICovXG4gIHJlYWRvbmx5IG92ZXJyaWRlTmV1cm9uQ29uZmlnPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAvKipcbiAgICogT3ZlcnJpZGUgb3Igc2V0IHRoZSBwb29saW5nIG1ldGhvZCBmb3IgcG9vbGluZyBtb2RlbHMuXG4gICAqIEBleGFtcGxlIHtcInBvb2xpbmdfdHlwZVwiOiBcIm1lYW5cIiwgXCJub3JtYWxpemVcIjogZmFsc2V9XG4gICAqL1xuICByZWFkb25seSBvdmVycmlkZVBvb2xlckNvbmZpZz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIHRvcmNoLmNvbXBpbGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIG1vZGVsLlxuICAgKiBXaGVuIGl0IGlzIGEgbnVtYmVyICgwLCAxLCAyLCAzKSwgaXQgd2lsbCBiZSBpbnRlcnByZXRlZCBhcyB0aGUgb3B0aW1pemF0aW9uIGxldmVsLlxuICAgKlxuICAgKiBOT1RFOiBsZXZlbCAwIGlzIHRoZSBkZWZhdWx0IGxldmVsIHdpdGhvdXQgYW55IG9wdGltaXphdGlvbi5cbiAgICogbGV2ZWwgMSBhbmQgMiBhcmUgZm9yIGludGVybmFsIHRlc3Rpbmcgb25seS4gbGV2ZWwgMyBpcyB0aGUgcmVjb21tZW5kZWQgbGV2ZWwgZm9yIHByb2R1Y3Rpb24uXG4gICAqIFRvIHNwZWNpZnkgdGhlIGZ1bGwgY29tcGlsYXRpb24gY29uZmlnLCB1c2UgYSBKU09OIHN0cmluZyxcbiAgICogZS5nLiBge1wibGV2ZWxcIjogMywgXCJjdWRhZ3JhcGhfY2FwdHVyZV9zaXplc1wiOiBbMSwgMiwgNCwgOF19YCBGb2xsb3dpbmcgdGhlIGNvbnZlbnRpb24gb2YgdHJhZGl0aW9uYWwgY29tcGlsZXJzLFxuICAgKiB1c2luZyAtTyB3aXRob3V0IHNwYWNlIGlzIGFsc28gc3VwcG9ydGVkLiAtTzMgaXMgZXF1aXZhbGVudCB0byAtTyAzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGlsYXRpb25Db25maWc/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9ucyBmb3IgZGlzdHJpYnV0ZWQgS1YgY2FjaGUgdHJhbnNmZXIgaW4gb2JqZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkga3ZUcmFuc2ZlckNvbmZpZz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFRoZSB3b3JrZXIgY2xhc3MgdG8gdXNlIGZvciBkaXN0cmlidXRlZCBleGVjdXRpb24uXG4gICAqIEBkZWZhdWx0IFwiYXV0b1wiXG4gICAqL1xuICByZWFkb25seSB3b3JrZXJDbHM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB3b3JrZXIgZXh0ZW5zaW9uIGNsYXNzLlxuICAgKiBAZGVmYXVsdCBcIlwiXG4gICAqL1xuICByZWFkb25seSB3b3JrZXJFeHRlbnNpb25DbHM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgcGF0aCB0byB0aGUgZ2VuZXJhdGlvbiBjb25maWcuIERlZmF1bHRzIHRvIOKAmGF1dG/igJksXG4gICAqIHRoZSBnZW5lcmF0aW9uIGNvbmZpZyB3aWxsIGJlIGxvYWRlZCBmcm9tIG1vZGVsIHBhdGguIElmIHNldCB0byDigJh2bGxt4oCZLFxuICAgKiBubyBnZW5lcmF0aW9uIGNvbmZpZyBpcyBsb2FkZWQsIHZMTE0gZGVmYXVsdHMgd2lsbCBiZSB1c2VkLlxuICAgKiBJZiBzZXQgdG8gYSBmb2xkZXIgcGF0aCwgdGhlIGdlbmVyYXRpb24gY29uZmlnIHdpbGwgYmUgbG9hZGVkIGZyb20gdGhlIHNwZWNpZmllZCBmb2xkZXIgcGF0aC5cbiAgICogSWYgbWF4X25ld190b2tlbnMgaXMgc3BlY2lmaWVkIGluIGdlbmVyYXRpb24gY29uZmlnLFxuICAgKiB0aGVuIGl0IHNldHMgYSBzZXJ2ZXItd2lkZSBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIG91dHB1dCB0b2tlbnMgZm9yIGFsbCByZXF1ZXN0cy5cbiAgICogQGRlZmF1bHQgXCJhdXRvXCJcbiAgICovXG4gIHJlYWRvbmx5IGdlbmVyYXRpb25Db25maWc/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBvciBzZXRzIGdlbmVyYXRpb24gY29uZmlnLlxuICAgKiBJZiB1c2VkIHdpdGgg4oCTZ2VuZXJhdGlvbi1jb25maWc9YXV0bywgdGhlIG92ZXJyaWRlIHBhcmFtZXRlcnMgd2lsbCBiZSBtZXJnZWQgd2l0aCB0aGUgZGVmYXVsdCBjb25maWcgZnJvbSB0aGUgbW9kZWwuXG4gICAqIElmIGdlbmVyYXRpb24tY29uZmlnIGlzIE5vbmUsIG9ubHkgdGhlIG92ZXJyaWRlIHBhcmFtZXRlcnMgYXJlIHVzZWQuXG4gICAqIEBleGFtcGxlIHtcInRlbXBlcmF0dXJlXCI6IDAuNX1cbiAgICovXG4gIHJlYWRvbmx5IG92ZXJyaWRlR2VuZXJhdGlvbkNvbmZpZz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBzbGVlcCBtb2RlIGZvciB0aGUgZW5naW5lLiAob25seSBjdWRhIHBsYXRmb3JtIGlzIHN1cHBvcnRlZClcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVNsZWVwTW9kZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgY29uZmlnIGZvciBzcGVjaWZpZWQgcGxhdGZvcm0uXG4gICAqIERpZmZlcmVudCBwbGF0Zm9ybXMgbWF5IHN1cHBvcnQgZGlmZmVyZW50IGNvbmZpZ3MuXG4gICAqIE1ha2Ugc3VyZSB0aGUgY29uZmlncyBhcmUgdmFsaWQgZm9yIHRoZSBwbGF0Zm9ybSB5b3UgYXJlIHVzaW5nLlxuICAgKiBUaGUgaW5wdXQgZm9ybWF0IGlzIGxpa2Ug4oCYe+KAnGNvbmZpZ19rZXnigJ064oCdY29uZmlnX3ZhbHVl4oCdfeKAmVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbENvbmZpZz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIEVuYWJsZSByZWFzb25pbmdfY29udGVudCBmb3IgdGhlIG1vZGVsLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlUmVhc29uaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGlzYWJsZSBjYXNjYWRlIGF0dGVudGlvbiBmb3IgVjEuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlQ2FzY2FkZUF0dG4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEaXNhYmxlIGxvZ2dpbmcgcmVxdWVzdHMuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlTG9nUmVxdWVzdHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNYXggbnVtYmVyIG9mIHByb21wdCBjaGFyYWN0ZXJzIG9yIHByb21wdCBJRCBudW1iZXJzIGluIGxvZy5cbiAgICovXG4gIHJlYWRvbmx5IG1heExvZ0xlbj86IG51bWJlcjtcblxuICAvKipcbiAgICogRGlzYWJsZSBGYXN0QVBJJ3MgT3BlbkFQSSBzY2hlbWEsIFN3YWdnZXIgVUksIGFuZCBSZURvYyBlbmRwb2ludC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVGYXN0QXBpRG9jcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBwcm9tcHRfdG9rZW5zX2RldGFpbHMgaW4gdXNhZ2UuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVQcm9tcHRUb2tlbnNEZXRhaWxzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIHRyYWNraW5nIHNlcnZlcl9sb2FkX21ldHJpY3MgaW4gdGhlIGFwcCBzdGF0ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVNlcnZlckxvYWRUcmFja2luZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgbG9hZGluZyB0aGUgbW9kZWwgd2VpZ2h0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWbGxtTG9hZENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgZm9ybWF0IG9mIHRoZSBtb2RlbCB3ZWlnaHRzIHRvIGxvYWQ6XG4gICAqIC0g4oCcYXV0b+KAnSB3aWxsIHRyeSB0byBsb2FkIHRoZSB3ZWlnaHRzIGluIHRoZSBzYWZldGVuc29ycyBmb3JtYXQgYW5kIGZhbGwgYmFjayB0byB0aGUgcHl0b3JjaCBiaW4gZm9ybWF0IGlmIHNhZmV0ZW5zb3JzIGZvcm1hdCBpcyBub3QgYXZhaWxhYmxlLlxuICAgKiAtIOKAnHB04oCdIHdpbGwgbG9hZCB0aGUgd2VpZ2h0cyBpbiB0aGUgcHl0b3JjaCBiaW4gZm9ybWF0LlxuICAgKiAtIOKAnHNhZmV0ZW5zb3Jz4oCdIHdpbGwgbG9hZCB0aGUgd2VpZ2h0cyBpbiB0aGUgc2FmZXRlbnNvcnMgZm9ybWF0LlxuICAgKiAtIOKAnG5wY2FjaGXigJ0gd2lsbCBsb2FkIHRoZSB3ZWlnaHRzIGluIHB5dG9yY2ggZm9ybWF0IGFuZCBzdG9yZSBhIG51bXB5IGNhY2hlIHRvIHNwZWVkIHVwIHRoZSBsb2FkaW5nLlxuICAgKiAtIOKAnGR1bW154oCdIHdpbGwgaW5pdGlhbGl6ZSB0aGUgd2VpZ2h0cyB3aXRoIHJhbmRvbSB2YWx1ZXMsIHdoaWNoIGlzIG1haW5seSBmb3IgcHJvZmlsaW5nLlxuICAgKiAtIOKAnHRlbnNvcml6ZXLigJ0gd2lsbCB1c2UgQ29yZVdlYXZl4oCZcyB0ZW5zb3JpemVyIGxpYnJhcnkgZm9yIGZhc3Qgd2VpZ2h0IGxvYWRpbmcuIFNlZSB0aGUgVGVuc29yaXplIHZMTE0gTW9kZWwgc2NyaXB0IGluIHRoZSBFeGFtcGxlcyBzZWN0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKiAtIOKAnHJ1bmFpX3N0cmVhbWVy4oCdIHdpbGwgbG9hZCB0aGUgU2FmZXRlbnNvcnMgd2VpZ2h0cyB1c2luZyBSdW46YWkgTW9kZWwgU3RyZWFtZXIuXG4gICAqIC0g4oCcYml0c2FuZGJ5dGVz4oCdIHdpbGwgbG9hZCB0aGUgd2VpZ2h0cyB1c2luZyBiaXRzYW5kYnl0ZXMgcXVhbnRpemF0aW9uLlxuICAgKiAtIOKAnHNoYXJkZWRfc3RhdGXigJ0gd2lsbCBsb2FkIHdlaWdodHMgZnJvbSBwcmUtc2hhcmRlZCBjaGVja3BvaW50IGZpbGVzLCBzdXBwb3J0aW5nIGVmZmljaWVudCBsb2FkaW5nIG9mIHRlbnNvci1wYXJhbGxlbCBtb2RlbHMuXG4gICAqIC0g4oCcZ2d1ZuKAnSB3aWxsIGxvYWQgd2VpZ2h0cyBmcm9tIEdHVUYgZm9ybWF0IGZpbGVzIChkZXRhaWxzIHNwZWNpZmllZCBpbiBnZ21sLW9yZy9nZ21sKS5cbiAgICogLSDigJxtaXN0cmFs4oCdIHdpbGwgbG9hZCB3ZWlnaHRzIGZyb20gY29uc29saWRhdGVkIHNhZmV0ZW5zb3JzIGZpbGVzIHVzZWQgYnkgTWlzdHJhbCBtb2RlbHMuXG4gICAqIEBkZWZhdWx0IExvYWRGb3JtYXQuQVVUT1xuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEZvcm1hdD86IExvYWRGb3JtYXQ7XG5cbiAgLyoqXG4gICAqIERpcmVjdG9yeSB0byBkb3dubG9hZCBhbmQgbG9hZCB0aGUgd2VpZ2h0cywgZGVmYXVsdCB0byB0aGUgZGVmYXVsdCBjYWNoZSBkaXJlY3Rvcnkgb2YgSHVnZ2luZyBGYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZG93bmxvYWREaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4dHJhIGNvbmZpZyBmb3IgbW9kZWwgbG9hZGVyLiBUaGlzIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBtb2RlbCBsb2FkZXIgY29ycmVzcG9uZGluZyB0byB0aGUgY2hvc2VuIGxvYWRfZm9ybWF0LlxuICAgKiBUaGlzIHNob3VsZCBiZSBhIG9iamVjdCB0aGF0IHdpbGwgYmUgcGFyc2VkIGludG8gYSBkaWN0aW9uYXJ5LlxuICAgKiBAZGVmYXVsdCB7fVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWxMb2FkZXJFeHRyYUNvbmZpZz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIHRxZG0gZm9yIHNob3dpbmcgcHJvZ3Jlc3MgYmFyIHdoZW4gbG9hZGluZyBtb2RlbCB3ZWlnaHRzLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB1c2VUcWRtT25Mb2FkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEYXRhY2xhc3Mgd2hpY2ggY29udGFpbnMgdGhlIGRlY29kaW5nIHN0cmF0ZWd5IG9mIHRoZSBlbmdpbmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmxsbURlY29kaW5nQ29uZmlnIHtcbiAgLyoqXG4gICAqIFdoaWNoIGVuZ2luZSB3aWxsIGJlIHVzZWQgZm9yIGd1aWRlZCBkZWNvZGluZyAoSlNPTiBzY2hlbWEgLyByZWdleCBldGMpIGJ5IGRlZmF1bHQuXG4gICAqIFdpdGgg4oCcYXV0b+KAnSwgd2Ugd2lsbCBtYWtlIG9waW5pb25hdGVkIGNob2ljZXMgYmFzZWQgb24gcmVxdWVzdCBjb250ZW50cyBhbmQgd2hhdCB0aGUgYmFja2VuZCBsaWJyYXJpZXMgY3VycmVudGx5IHN1cHBvcnQsXG4gICAqIHNvIHRoZSBiZWhhdmlvciBpcyBzdWJqZWN0IHRvIGNoYW5nZSBpbiBlYWNoIHJlbGVhc2UuXG4gICAqIEBkZWZhdWx0IEd1aWRlZERlY29kaW5nQmFja2VuZC5BVVRPXG4gICAqL1xuICByZWFkb25seSBndWlkZWREZWNvZGluZ0JhY2tlbmQ/OiBHdWlkZWREZWNvZGluZ0JhY2tlbmQ7XG5cbiAgLyoqXG4gICAqIFNlbGVjdCB0aGUgcmVhc29uaW5nIHBhcnNlciBkZXBlbmRpbmcgb24gdGhlIG1vZGVsIHRoYXQgeW914oCZcmUgdXNpbmcuXG4gICAqIFRoaXMgaXMgdXNlZCB0byBwYXJzZSB0aGUgcmVhc29uaW5nIGNvbnRlbnQgaW50byBPcGVuQUkgQVBJIGZvcm1hdC4gUmVxdWlyZWQgZm9yIOKAk2VuYWJsZS1yZWFzb25pbmcuXG4gICAqL1xuICByZWFkb25seSByZWFzb25pbmdQYXJzZXI/OiBSZWFzb25pbmdQYXJzZXI7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIGRpc3RyaWJ1dGVkIGV4ZWN1dGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWbGxtUGFyYWxsZWxDb25maWcge1xuICAvKipcbiAgICogQmFja2VuZCB0byB1c2UgZm9yIGRpc3RyaWJ1dGVkIG1vZGVsIHdvcmtlcnMsIGVpdGhlciDigJxyYXnigJ0gb3Ig4oCcbXDigJ0gKG11bHRpcHJvY2Vzc2luZykuXG4gICAqIElmIHRoZSBwcm9kdWN0IG9mIHBpcGVsaW5lX3BhcmFsbGVsX3NpemUgYW5kIHRlbnNvcl9wYXJhbGxlbF9zaXplIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIEdQVXMgYXZhaWxhYmxlLFxuICAgKiDigJxtcOKAnSB3aWxsIGJlIHVzZWQgdG8ga2VlcCBwcm9jZXNzaW5nIG9uIGEgc2luZ2xlIGhvc3QuIE90aGVyd2lzZSwgdGhpcyB3aWxsIGRlZmF1bHQgdG8g4oCccmF54oCdIGlmIFJheSBpcyBpbnN0YWxsZWQgYW5kIGZhaWwgb3RoZXJ3aXNlLlxuICAgKiBOb3RlIHRoYXQgdHB1IGFuZCBocHUgb25seSBzdXBwb3J0IFJheSBmb3IgZGlzdHJpYnV0ZWQgaW5mZXJlbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzdHJpYnV0ZWRFeGVjdXRvckJhY2tlbmQ/OiBEaXN0cmlidXRlZEV4ZWN1dG9yQmFja2VuZDtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIHBpcGVsaW5lIHBhcmFsbGVsIGdyb3Vwcy5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgcGlwZWxpbmVQYXJhbGxlbFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiB0ZW5zb3IgcGFyYWxsZWwgZ3JvdXBzLlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSB0ZW5zb3JQYXJhbGxlbFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBkYXRhIHBhcmFsbGVsIGdyb3Vwcy5cbiAgICogTW9FIGxheWVycyB3aWxsIGJlIHNoYXJkZWQgYWNjb3JkaW5nIHRvIHRoZSBwcm9kdWN0IG9mIHRoZSB0ZW5zb3IgcGFyYWxsZWwgc2l6ZSBhbmQgZGF0YSBwYXJhbGxlbCBzaXplLlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBkYXRhUGFyYWxsZWxTaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBVc2UgZXhwZXJ0IHBhcmFsbGVsaXNtIGluc3RlYWQgb2YgdGVuc29yIHBhcmFsbGVsaXNtIGZvciBNb0UgbGF5ZXJzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlRXhwZXJ0UGFyYWxsZWw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBwYXJhbGxhbCBsb2FkaW5nIHdvcmtlcnMgd2hlbiBsb2FkaW5nIG1vZGVsIHNlcXVlbnRpYWxseSBpbiBtdWx0aXBsZSBiYXRjaGVzLlxuICAgKiBUbyBhdm9pZCBSQU0gT09NIHdoZW4gdXNpbmcgdGVuc29yIHBhcmFsbGVsIGFuZCBsYXJnZSBtb2RlbHMuXG4gICAqL1xuICByZWFkb25seSBtYXhQYXJhbGxlbExvYWRpbmdXb3JrZXJzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHByb2ZpbGUgUmF5IHdvcmtlcnMgd2l0aCBuc2lnaHQuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnJheS5pby9lbi9sYXRlc3QvcmF5LW9ic2VydmFiaWxpdHkvdXNlci1ndWlkZXMvcHJvZmlsaW5nLmh0bWwjcHJvZmlsaW5nLW5zaWdodC1wcm9maWxlclxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmF5V29ya2Vyc1VzZU5zaWdodD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERpc2FibGUgdGhlIGN1c3RvbSBhbGwtcmVkdWNlIGtlcm5lbCBhbmQgZmFsbCBiYWNrIHRvIE5DQ0wuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlQ3VzdG9tQWxsUmVkdWNlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciB0aGUgS1YgY2FjaGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmxsbUNhY2hlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFNpemUgb2YgYSBjb250aWd1b3VzIGNhY2hlIGJsb2NrIGluIG51bWJlciBvZiB0b2tlbnMuXG4gICAqIFRoaXMgaXMgaWdub3JlZCBvbiBuZXVyb24gZGV2aWNlcyBhbmQgc2V0IHRvIOKAk21heC1tb2RlbC1sZW4uIE9uIENVREEgZGV2aWNlcywgb25seSBibG9jayBzaXplcyB1cCB0byAzMiBhcmUgc3VwcG9ydGVkLlxuICAgKiBPbiBIUFUgZGV2aWNlcywgYmxvY2sgc2l6ZSBkZWZhdWx0cyB0byAxMjguXG4gICAqL1xuICByZWFkb25seSBibG9ja1NpemU/OiBCbG9ja1NpemU7XG5cbiAgLyoqXG4gICAqIFRoZSBmcmFjdGlvbiBvZiBHUFUgbWVtb3J5IHRvIGJlIHVzZWQgZm9yIHRoZSBtb2RlbCBleGVjdXRvciwgd2hpY2ggY2FuIHJhbmdlIGZyb20gMCB0byAxLlxuICAgKiBGb3IgZXhhbXBsZSwgYSB2YWx1ZSBvZiAwLjUgd291bGQgaW1wbHkgNTAlIEdQVSBtZW1vcnkgdXRpbGl6YXRpb24uXG4gICAqIElmIHVuc3BlY2lmaWVkLCB3aWxsIHVzZSB0aGUgZGVmYXVsdCB2YWx1ZSBvZiAwLjkuIFRoaXMgaXMgYSBwZXItaW5zdGFuY2UgbGltaXQsXG4gICAqIGFuZCBvbmx5IGFwcGxpZXMgdG8gdGhlIGN1cnJlbnQgdkxMTSBpbnN0YW5jZS5cbiAgICogSXQgZG9lcyBub3QgbWF0dGVyIGlmIHlvdSBoYXZlIGFub3RoZXIgdkxMTSBpbnN0YW5jZSBydW5uaW5nIG9uIHRoZSBzYW1lIEdQVS4gRm9yIGV4YW1wbGUsXG4gICAqIGlmIHlvdSBoYXZlIHR3byB2TExNIGluc3RhbmNlcyBydW5uaW5nIG9uIHRoZSBzYW1lIEdQVSwgeW91IGNhbiBzZXQgdGhlIEdQVSBtZW1vcnkgdXRpbGl6YXRpb24gdG8gMC41IGZvciBlYWNoIGluc3RhbmNlLlxuICAgKiBAZGVmYXVsdCAwLjlcbiAgICovXG4gIHJlYWRvbmx5IGdwdU1lbW9yeVV0aWxpemF0aW9uPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTaXplIG9mIHRoZSBDUFUgc3dhcCBzcGFjZSBwZXIgR1BVIChpbiBHaUIpLlxuICAgKiBAZGVmYXVsdCA0XG4gICAqL1xuICByZWFkb25seSBzd2FwU3BhY2U/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERhdGEgdHlwZSBmb3Iga3YgY2FjaGUgc3RvcmFnZS4gSWYg4oCcYXV0b+KAnSwgd2lsbCB1c2UgbW9kZWwgZGF0YSB0eXBlLlxuICAgKiBDVURBIDExLjgrIHN1cHBvcnRzIGZwOCAoPWZwOF9lNG0zKSBhbmQgZnA4X2U1bTIuIFJPQ20gKEFNRCBHUFUpIHN1cHBvcnRzIGZwOCAoPWZwOF9lNG0zKS5cbiAgICogQGRlZmF1bHQgS3ZDYWNoZUR0eXBlLkFVVE9cbiAgICovXG4gIHJlYWRvbmx5IGt2Q2FjaGVEdHlwZT86IEt2Q2FjaGVEdHlwZTtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIEdQVSBibG9ja3MgdG8gdXNlLiBUaGlzIG92ZXJyaWRlcyB0aGUgcHJvZmlsZWQgbnVtX2dwdV9ibG9ja3MgaWYgc3BlY2lmaWVkLlxuICAgKiBEb2VzIG5vdGhpbmcgaWYgTm9uZS4gVXNlZCBmb3IgdGVzdGluZyBwcmVlbXB0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbnVtR3B1QmxvY2tzT3ZlcnJpZGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIHByZWZpeCBjYWNoaW5nLiBEaXNhYmxlZCBieSBkZWZhdWx0IGZvciBWMC4gRW5hYmxlZCBieSBkZWZhdWx0IGZvciBWMS5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVByZWZpeENhY2hpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGhhc2ggYWxnb3JpdGhtIGZvciBwcmVmaXggY2FjaGluZy5cbiAgICogQGRlZmF1bHQgUHJlZml4Q2FjaGluZ0hhc2hBbGdvLkJVSUxUSU5cbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeENhY2hpbmdIYXNoQWxnbz86IFByZWZpeENhY2hpbmdIYXNoQWxnbztcblxuICAvKipcbiAgICogVGhlIHNwYWNlIGluIEdpQiB0byBvZmZsb2FkIHRvIENQVSwgcGVyIEdQVS5cbiAgICogRGVmYXVsdCBpcyAwLCB3aGljaCBtZWFucyBubyBvZmZsb2FkaW5nLiBJbnR1aXRpdmVseSxcbiAgICogdGhpcyBhcmd1bWVudCBjYW4gYmUgc2VlbiBhcyBhIHZpcnR1YWwgd2F5IHRvIGluY3JlYXNlIHRoZSBHUFUgbWVtb3J5IHNpemUuXG4gICAqIEZvciBleGFtcGxlLCBpZiB5b3UgaGF2ZSBvbmUgMjQgR0IgR1BVIGFuZCBzZXQgdGhpcyB0byAxMCwgdmlydHVhbGx5IHlvdSBjYW4gdGhpbmsgb2YgaXQgYXMgYSAzNCBHQiBHUFUuXG4gICAqIFRoZW4geW91IGNhbiBsb2FkIGEgMTNCIG1vZGVsIHdpdGggQkYxNiB3ZWlnaHQsIHdoaWNoIHJlcXVpcmVzIGF0IGxlYXN0IDI2R0IgR1BVIG1lbW9yeS5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoaXMgcmVxdWlyZXMgZmFzdCBDUFUtR1BVIGludGVyY29ubmVjdCxcbiAgICogYXMgcGFydCBvZiB0aGUgbW9kZWwgaXMgbG9hZGVkIGZyb20gQ1BVIG1lbW9yeSB0byBHUFUgbWVtb3J5IG9uIHRoZSBmbHkgaW4gZWFjaCBtb2RlbCBmb3J3YXJkIHBhc3MuXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IGNwdU9mZmxvYWRHYj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhpcyBlbmFibGVzIGR5bmFtaWMgY2FsY3VsYXRpb24gb2Yga19zY2FsZSBhbmQgdl9zY2FsZSB3aGVuIGt2X2NhY2hlX2R0eXBlIGlzIGZwOC5cbiAgICogSWYgRmFsc2UsIHRoZSBzY2FsZXMgd2lsbCBiZSBsb2FkZWQgZnJvbSB0aGUgbW9kZWwgY2hlY2twb2ludCBpZiBhdmFpbGFibGUuIE90aGVyd2lzZSwgdGhlIHNjYWxlcyB3aWxsIGRlZmF1bHQgdG8gMS4wLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY2FsY3VsYXRlS3ZTY2FsZXM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbnRyb2xzIHRoZSBiZWhhdmlvciBvZiBtdWx0aW1vZGFsIG1vZGVscy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWbGxtTXVsdGlNb2RhbENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5wdXQgaXRlbXMgYWxsb3dlZCBwZXIgcHJvbXB0IGZvciBlYWNoIG1vZGFsaXR5LlxuICAgKiBUaGlzIHNob3VsZCBiZSBhIG9iamVjdCB0aGF0IHdpbGwgYmUgcGFyc2VkIGludG8gYSBkaWN0aW9uYXJ5LiBEZWZhdWx0cyB0byAxIChWMCkgb3IgOTk5IChWMSkgZm9yIGVhY2ggbW9kYWxpdHkuXG4gICAqIEBkZWZhdWx0IHt9XG4gICAqL1xuICByZWFkb25seSBsaW1pdE1tUGVyUHJvbXB0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBMb1JBLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZsbG1Mb3JhQ29uZmlnIHtcbiAgLyoqXG4gICAqIElmIFRydWUsIGVuYWJsZSBoYW5kbGluZyBvZiBMb1JBIGFkYXB0ZXJzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTG9yYT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIFRydWUsIGVuYWJsZSBiaWFzIGZvciBMb1JBIGFkYXB0ZXJzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTG9yYUJpYXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNYXggbnVtYmVyIG9mIExvUkFzIGluIGEgc2luZ2xlIGJhdGNoLlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBtYXhMb3Jhcz86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4IExvUkEgcmFuay5cbiAgICogQGRlZmF1bHQgMTZcbiAgICovXG4gIHJlYWRvbmx5IG1heExvcmFSYW5rPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIHNpemUgb2YgZXh0cmEgdm9jYWJ1bGFyeSB0aGF0IGNhbiBiZSBwcmVzZW50IGluIGEgTG9SQSBhZGFwdGVyIChhZGRlZCB0byB0aGUgYmFzZSBtb2RlbCB2b2NhYnVsYXJ5KS5cbiAgICogQGRlZmF1bHQgMjU2XG4gICAqL1xuICByZWFkb25seSBsb3JhRXh0cmFWb2NhYlNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERhdGEgdHlwZSBmb3IgTG9SQS4gSWYgYXV0bywgd2lsbCBkZWZhdWx0IHRvIGJhc2UgbW9kZWwgZHR5cGUuXG4gICAqIEBkZWZhdWx0IExvcmFEdHlwZS5BVVRPXG4gICAqL1xuICByZWFkb25seSBsb3JhRHR5cGU/OiBMb3JhRHR5cGU7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgbXVsdGlwbGUgc2NhbGluZyBmYWN0b3JzICh3aGljaCBjYW4gYmUgZGlmZmVyZW50IGZyb20gYmFzZSBtb2RlbCBzY2FsaW5nIGZhY3RvcnNlZSBlZy4gTG9uZyBMb1JBKVxuICAgKiB0byBhbGxvdyBmb3IgbXVsdGlwbGUgTG9SQSBhZGFwdGVycyB0cmFpbmVkIHdpdGggdGhvc2Ugc2NhbGluZyBmYWN0b3JzIHRvIGJlIHVzZWQgYXQgdGhlIHNhbWUgdGltZS5cbiAgICogSWYgbm90IHNwZWNpZmllZCwgb25seSBhZGFwdGVycyB0cmFpbmVkIHdpdGggdGhlIGJhc2UgbW9kZWwgc2NhbGluZyBmYWN0b3IgYXJlIGFsbG93ZWQuXG4gICAqL1xuICByZWFkb25seSBsb25nTG9yYVNjYWxpbmdGYWN0b3JzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBMb1JBcyB0byBzdG9yZSBpbiBDUFUgbWVtb3J5LiBNdXN0IGJlID49IHRoYW4gbWF4X2xvcmFzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q3B1TG9yYXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIG9ubHkgaGFsZiBvZiB0aGUgTG9SQSBjb21wdXRhdGlvbiBpcyBzaGFyZGVkIHdpdGggdGVuc29yIHBhcmFsbGVsaXNtLlxuICAgKiBFbmFibGluZyB0aGlzIHdpbGwgdXNlIHRoZSBmdWxseSBzaGFyZGVkIGxheWVycy5cbiAgICogQXQgaGlnaCBzZXF1ZW5jZSBsZW5ndGgsIG1heCByYW5rIG9yIHRlbnNvciBwYXJhbGxlbCBzaXplLCB0aGlzIGlzIGxpa2VseSBmYXN0ZXIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBmdWxseVNoYXJkZWRMb3Jhcz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgUHJvbXB0QWRhcHRlcnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmxsbVByb21wdEFkYXB0ZXJDb25maWcge1xuICAvKipcbiAgICogSWYgVHJ1ZSwgZW5hYmxlIGhhbmRsaW5nIG9mIFByb21wdEFkYXB0ZXJzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlUHJvbXB0QWRhcHRlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE1heCBudW1iZXIgb2YgUHJvbXB0QWRhcHRlcnMgaW4gYSBiYXRjaC5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4UHJvbXB0QWRhcHRlcnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heCBudW1iZXIgb2YgUHJvbXB0QWRhcHRlcnMgdG9rZW5zLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSBtYXhQcm9tcHRBZGFwdGVyVG9rZW4/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmxsbURldmljZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBEZXZpY2UgdHlwZSBmb3IgdkxMTSBleGVjdXRpb24uXG4gICAqIEBkZWZhdWx0IERldmljZS5BVVRPXG4gICAqL1xuICByZWFkb25seSBkZXZpY2U/OiBEZXZpY2U7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3Igc3BlY3VsYXRpdmUgZGVjb2RpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmxsbVNwZWN1bGF0aXZlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9ucyBmb3Igc3BlY3VsYXRpdmUgZGVjb2RpbmcuIFNob3VsZCBiZSBhIG9iamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHNwZWN1bGF0aXZlQ29uZmlnPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWbGxtU2NoZWR1bGVyQ29uZmlnIHtcbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIHRva2VucyB0byBiZSBwcm9jZXNzZWQgaW4gYSBzaW5nbGUgaXRlcmF0aW9uLlxuICAgKlxuICAgKiBUaGlzIGNvbmZpZyBoYXMgbm8gc3RhdGljIGRlZmF1bHQuIElmIGxlZnQgdW5zcGVjaWZpZWQgYnkgdGhlIHVzZXIsIGl0IHdpbGwgYmUgc2V0IGluIEVuZ2luZUFyZ3MuY3JlYXRlX2VuZ2luZV9jb25maWcgYmFzZWQgb24gdGhlIHVzYWdlIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBtYXhOdW1CYXRjaGVkVG9rZW5zPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBzZXF1ZW5jZXMgdG8gYmUgcHJvY2Vzc2VkIGluIGEgc2luZ2xlIGl0ZXJhdGlvbi5cbiAgICpcbiAgICogVGhpcyBjb25maWcgaGFzIG5vIHN0YXRpYyBkZWZhdWx0LiBJZiBsZWZ0IHVuc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLCBpdCB3aWxsIGJlIHNldCBpbiBFbmdpbmVBcmdzLmNyZWF0ZV9lbmdpbmVfY29uZmlnIGJhc2VkIG9uIHRoZSB1c2FnZSBjb250ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4TnVtU2Vxcz86IG51bWJlcjtcblxuICAvKipcbiAgICogRm9yIGNodW5rZWQgcHJlZmlsbCwgdGhlIG1heGltdW0gbnVtYmVyIG9mIHNlcXVlbmNlcyB0aGF0IGNhbiBiZSBwYXJ0aWFsbHkgcHJlZmlsbGVkIGNvbmN1cnJlbnRseS5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4TnVtUGFydGlhbFByZWZpbGxzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBGb3IgY2h1bmtlZCBwcmVmaWxsLCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcHJvbXB0cyBsb25nZXIgdGhhbiBsb25nX3ByZWZpbGxfdG9rZW5fdGhyZXNob2xkIHRoYXQgd2lsbCBiZSBwcmVmaWxsZWQgY29uY3VycmVudGx5LlxuICAgKiBTZXR0aW5nIHRoaXMgbGVzcyB0aGFuIG1heF9udW1fcGFydGlhbF9wcmVmaWxscyB3aWxsIGFsbG93IHNob3J0ZXIgcHJvbXB0cyB0byBqdW1wIHRoZSBxdWV1ZSBpbiBmcm9udCBvZiBsb25nZXIgcHJvbXB0cyBpbiBzb21lIGNhc2VzLCBpbXByb3ZpbmcgbGF0ZW5jeS5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4TG9uZ1BhcnRpYWxQcmVmaWxscz86IG51bWJlcjtcblxuICAvKipcbiAgICogRm9yIGNodW5rZWQgcHJlZmlsbCwgYSByZXF1ZXN0IGlzIGNvbnNpZGVyZWQgbG9uZyBpZiB0aGUgcHJvbXB0IGlzIGxvbmdlciB0aGFuIHRoaXMgbnVtYmVyIG9mIHRva2Vucy5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcmVhZG9ubHkgbG9uZ1ByZWZpbGxUb2tlblRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzbG90cyB0byBhbGxvY2F0ZSBwZXIgc2VxdWVuY2UgcGVyIHN0ZXAsXG4gICAqIGJleW9uZCB0aGUga25vd24gdG9rZW4gaWRzLiBUaGlzIGlzIHVzZWQgaW4gc3BlY3VsYXRpdmUgZGVjb2RpbmcgdG8gc3RvcmUgS1YgYWN0aXZhdGlvbnMgb2YgdG9rZW5zXG4gICAqIHdoaWNoIG1heSBvciBtYXkgbm90IGJlIGFjY2VwdGVkLlxuICAgKlxuICAgKiBOT1RFOiBUaGlzIHdpbGwgYmUgcmVwbGFjZWQgYnkgc3BlY3VsYXRpdmUgY29uZmlnIGluIHRoZSBmdXR1cmU7IGl0IGlzIHByZXNlbnQgdG8gZW5hYmxlIGNvcnJlY3RuZXNzIHRlc3RzIHVudGlsIHRoZW4uXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IG51bUxvb2thaGVhZFNsb3RzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBcHBseSBhIGRlbGF5IChvZiBkZWxheSBmYWN0b3IgbXVsdGlwbGllZCBieSBwcmV2aW91cyBwcm9tcHQgbGF0ZW5jeSkgYmVmb3JlIHNjaGVkdWxpbmcgbmV4dCBwcm9tcHQuXG4gICAqIEBkZWZhdWx0IDAuMFxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGVyRGVsYXlGYWN0b3I/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcGVyZm9ybSBwcmVlbXB0aW9uIGJ5IHN3YXBwaW5nIG9yIHJlY29tcHV0YXRpb24uXG4gICAqIElmIG5vdCBzcGVjaWZpZWQsIHdlIGRldGVybWluZSB0aGUgbW9kZSBhcyBmb2xsb3dzOlxuICAgKiBXZSB1c2UgcmVjb21wdXRhdGlvbiBieSBkZWZhdWx0IHNpbmNlIGl0IGluY3VycyBsb3dlciBvdmVyaGVhZCB0aGFuIHN3YXBwaW5nLlxuICAgKiBIb3dldmVyLCB3aGVuIHRoZSBzZXF1ZW5jZSBncm91cCBoYXMgbXVsdGlwbGUgc2VxdWVuY2VzIChlLmcuLCBiZWFtIHNlYXJjaCksXG4gICAqIHJlY29tcHV0YXRpb24gaXMgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQuIEluIHN1Y2ggYSBjYXNlLCB3ZSB1c2Ugc3dhcHBpbmcgaW5zdGVhZC5cbiAgICovXG4gIHJlYWRvbmx5IHByZWVtcHRpb25Nb2RlPzogUHJlZW1wdGlvbk1vZGU7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIGZvcndhcmQgc3RlcHMgcGVyIHNjaGVkdWxlciBjYWxsLlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBudW1TY2hlZHVsZXJTdGVwcz86IG51bWJlcjtcblxuICAvKipcbiAgICogSWYgRmFsc2UsIHRoZW4gbXVsdGktc3RlcCB3aWxsIHN0cmVhbSBvdXRwdXRzIGF0IHRoZSBlbmQgb2YgYWxsIHN0ZXBzXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IG11bHRpU3RlcFN0cmVhbU91dHB1dHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgc2NoZWR1bGluZyBwb2xpY3kgdG8gdXNlOlxuICAgKiAtIOKAnGZjZnPigJ0gbWVhbnMgZmlyc3QgY29tZSBmaXJzdCBzZXJ2ZWQsIGkuZS4gcmVxdWVzdHMgYXJlIGhhbmRsZWQgaW4gb3JkZXIgb2YgYXJyaXZhbC5cbiAgICogLSDigJxwcmlvcml0eeKAnSBtZWFucyByZXF1ZXN0cyBhcmUgaGFuZGxlZCBiYXNlZCBvbiBnaXZlbiBwcmlvcml0eSAobG93ZXIgdmFsdWUgbWVhbnMgZWFybGllciBoYW5kbGluZykgYW5kIHRpbWUgb2YgYXJyaXZhbCBkZWNpZGluZyBhbnkgdGllcykuXG4gICAqIEBkZWZhdWx0IFNjaGVkdWxpbmdQb2xpY3kuRkNGU1xuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGluZ1BvbGljeT86IFNjaGVkdWxpbmdQb2xpY3k7XG5cbiAgLyoqXG4gICAqIElmIFRydWUsIHByZWZpbGwgcmVxdWVzdHMgY2FuIGJlIGNodW5rZWQgYmFzZWQgb24gdGhlIHJlbWFpbmluZyBtYXhfbnVtX2JhdGNoZWRfdG9rZW5zLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlQ2h1bmtlZFByZWZpbGw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gdHJ1ZSBhbmQgY2h1bmtlZCBwcmVmaWxsIGlzIGVuYWJsZWQsIHdlIGRvIG5vdCB3YW50IHRvIHBhcnRpYWxseSBzY2hlZHVsZSBhIG11bHRpbW9kYWwgaXRlbS5cbiAgICogT25seSB1c2VkIGluIFYxIFRoaXMgZW5zdXJlcyB0aGF0IGlmIGEgcmVxdWVzdCBoYXMgYSBtaXhlZCBwcm9tcHQgKGxpa2UgdGV4dCB0b2tlbnMgVFRUVCBmb2xsb3dlZCBieSBpbWFnZSB0b2tlbnMgSUlJSUlJSUlJSSlcbiAgICogd2hlcmUgb25seSBzb21lIGltYWdlIHRva2VucyBjYW4gYmUgc2NoZWR1bGVkIChsaWtlIFRUVFRJSUlJSSwgbGVhdmluZyBJSUlJSSksXG4gICAqIGl0IHdpbGwgYmUgc2NoZWR1bGVkIGFzIFRUVFQgaW4gb25lIHN0ZXAgYW5kIElJSUlJSUlJSUkgaW4gdGhlIG5leHQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlQ2h1bmtlZE1tSW5wdXQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgdkxMTSBzZXJ2ZXIgY29tbWFuZCBsaW5lIGFyZ3VtZW50c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZsbG1FbmdpbmVBcmd1bWVudHNcbiAgZXh0ZW5kc1xuICAgIFZsbG1OYW1lZEFyZ3VtZW50cyxcbiAgICBWbGxtTG9hZENvbmZpZyxcbiAgICBWbGxtRGVjb2RpbmdDb25maWcsXG4gICAgVmxsbVBhcmFsbGVsQ29uZmlnLFxuICAgIFZsbG1DYWNoZUNvbmZpZyxcbiAgICBWbGxtTXVsdGlNb2RhbENvbmZpZyxcbiAgICBWbGxtTG9yYUNvbmZpZyxcbiAgICBWbGxtUHJvbXB0QWRhcHRlckNvbmZpZyxcbiAgICBWbGxtRGV2aWNlQ29uZmlnLFxuICAgIFZsbG1TcGVjdWxhdGl2ZUNvbmZpZyxcbiAgICBWbGxtU2NoZWR1bGVyQ29uZmlnIHt9XG5cbmNvbnN0IGpzb25WYWx1ZVByb3BlcnRpZXM6IChrZXlvZiBWbGxtRW5naW5lQXJndW1lbnRzKVtdID0gW1xuICBcImFsbG93ZWRPcmlnaW5zXCIsXG4gIFwiYWxsb3dlZEhlYWRlcnNcIixcbiAgXCJhbGxvd2VkTWV0aG9kc1wiLFxuXTtcbmNvbnN0IGlnbm9yZUtleXM6IChrZXlvZiBWbGxtRW5naW5lQXJndW1lbnRzKVtdID0gW1wibW9kZWxcIiwgXCJoZlRva2VuXCJdO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVmxsbUVuZ2luZUFyZ3VtZW50c1BhcnNlciB7XG4gIC8qKlxuICAgKiBDb252ZXJ0IHZMTE0gZW5naW5lIGFyZ3VtZW50cyAoY2FtZWwgY2FzZSkgdG8gY29uZmlnIChrZWJhYiBjYXNlKVxuICAgKiBAcGFyYW0gYXJncyB2TExNIGVuZ2luZSBhcmd1bWVudHNcbiAgICogQHJldHVybnMgdkxMTSBlbmdpbmUgY29uZmlnXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnZsbG0uYWkvZW4vbGF0ZXN0L3NlcnZpbmcvb3BlbmFpX2NvbXBhdGlibGVfc2VydmVyLmh0bWwjY29uZmlndXJhdGlvbi1maWxlXG4gICAqL1xuICBzdGF0aWMgY29uZmlnKGFyZ3M6IFZsbG1FbmdpbmVBcmd1bWVudHMpIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoYXJncylcbiAgICAgIC5maWx0ZXIoKFtrZXldKSA9PiAhaWdub3JlS2V5cy5pbmNsdWRlcyhrZXkgYXMga2V5b2YgVmxsbUVuZ2luZUFyZ3VtZW50cykpXG4gICAgICAucmVkdWNlPHsgW2tleSBpbiBzdHJpbmddOiBhbnkgfT4oKHByZXYsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBrID0ga2V5LnJlcGxhY2UoL1tBLVpdL2csIChtYXRjaCkgPT4gYC0ke21hdGNoLnRvTG93ZXJDYXNlKCl9YCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBqc29uVmFsdWVQcm9wZXJ0aWVzLmluY2x1ZGVzKGtleSBhcyBrZXlvZiBWbGxtRW5naW5lQXJndW1lbnRzKSB8fFxuICAgICAgICAgICghQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKVxuICAgICAgICApIHtcbiAgICAgICAgICB2YWx1ZSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBwcmV2W2tdID0gdmFsdWU7XG4gICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgfSwge30pO1xuICB9XG4gIHN0YXRpYyBjbGkoYXJnczogVmxsbUVuZ2luZUFyZ3VtZW50cykge1xuICAgIGNvbnN0IGdlbmVyYWxBcmdzID0gT2JqZWN0LmVudHJpZXMoYXJncylcbiAgICAgIC5maWx0ZXIoKFtrZXldKSA9PiAhaWdub3JlS2V5cy5pbmNsdWRlcyhrZXkgYXMga2V5b2YgVmxsbUVuZ2luZUFyZ3VtZW50cykpXG4gICAgICAuZmxhdE1hcCgoW2ssIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBrLnJlcGxhY2UoL1tBLVpdL2csIChtYXRjaCkgPT4gYC0ke21hdGNoLnRvTG93ZXJDYXNlKCl9YCk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlID8gW2AtLSR7a2V5fWBdIDogW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIFtgLS0ke2tleX1gLCAuLi52YWx1ZS5tYXAoKHYpID0+IGAke3Z9YCldO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICByZXR1cm4gW2AtLSR7a2V5fWAsIEpTT04uc3RyaW5naWZ5KHZhbHVlKV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtgLS0ke2tleX1gLCBgJHt2YWx1ZX1gXTtcbiAgICAgIH0pO1xuICAgIHJldHVybiBbYXJncy5tb2RlbCEsIC4uLmdlbmVyYWxBcmdzXTtcbiAgfVxufVxuIl19
@@ -44,12 +44,12 @@ export interface SageMakerInferenceToolkitTnxCompiledModel extends NeuronxCompil
44
44
  /**
45
45
  * Compile image for SageMakerInferenceToolkitTnxCompile.
46
46
  * @example
47
- * new SageMakerInferenceToolkitTnxCompileImage(PytorchTrainingNeuronxImage.LATEST);
47
+ * new SageMakerInferenceToolkitTnxCompileImage(scope, 'CompileImage', PytorchTrainingNeuronxImage.LATEST);
48
48
  */
49
49
  export declare class SageMakerInferenceToolkitTnxCompileImage implements INeuronxContainerImage {
50
50
  readonly image: ContainerImage;
51
51
  readonly neuronSdkVersion: string;
52
- constructor(neruonxImage: INeuronxImage);
52
+ constructor(scope: Construct, id: string, neruonxImage: INeuronxImage);
53
53
  }
54
54
  /**
55
55
  * Props of NeuronxCompile.
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SageMakerInferenceToolkitTnxCompiler = exports.SageMakerInferenceToolkitTnxCompileImage = void 0;
4
- const aws_ecs_1 = require("aws-cdk-lib/aws-ecs");
4
+ const deploy_time_build_1 = require("@cdklabs/deploy-time-build");
5
5
  const constructs_1 = require("constructs");
6
6
  const path_1 = require("path");
7
7
  const neuronx_1 = require("../base/neuronx");
@@ -9,16 +9,18 @@ const neuronx_compiler_1 = require("../base/neuronx-compiler");
9
9
  /**
10
10
  * Compile image for SageMakerInferenceToolkitTnxCompile.
11
11
  * @example
12
- * new SageMakerInferenceToolkitTnxCompileImage(PytorchTrainingNeuronxImage.LATEST);
12
+ * new SageMakerInferenceToolkitTnxCompileImage(scope, 'CompileImage', PytorchTrainingNeuronxImage.LATEST);
13
13
  */
14
14
  class SageMakerInferenceToolkitTnxCompileImage {
15
- constructor(neruonxImage) {
16
- this.image = aws_ecs_1.ContainerImage.fromAsset((0, path_1.join)(__dirname, "../../scripts/compile/sagemaker-inference-toolkit-tnx"), {
15
+ constructor(scope, id, neruonxImage) {
16
+ const build = new deploy_time_build_1.ContainerImageBuild(scope, id, {
17
+ directory: (0, path_1.join)(__dirname, "../../scripts/compile/sagemaker-inference-toolkit-tnx"),
17
18
  buildArgs: {
18
19
  IMAGE_NAME: neruonxImage.imageName,
19
20
  IMAGE_TAG: neruonxImage.imageTag,
20
21
  },
21
22
  });
23
+ this.image = build.toEcsDockerImageCode();
22
24
  this.neuronSdkVersion = neruonxImage.neuronSdkVersion;
23
25
  }
24
26
  }
@@ -55,7 +57,7 @@ class SageMakerInferenceToolkitTnxCompiler extends constructs_1.Construct {
55
57
  }
56
58
  const tpDegree = availableInstancePatterns[0].tp;
57
59
  const image = props.image ??
58
- new SageMakerInferenceToolkitTnxCompileImage(neuronx_1.PytorchTrainingNeuronxImage.LATEST);
60
+ new SageMakerInferenceToolkitTnxCompileImage(this, "CompileImage", neuronx_1.PytorchTrainingNeuronxImage.LATEST);
59
61
  let compiledArtifactPathPrefix = `${props.model.modelId}/neuronx-${image.neuronSdkVersion}/tp${tpDegree}-np${nPositions}-opt${optLevel}`;
60
62
  if (quantDtype) {
61
63
  compiledArtifactPathPrefix = `${compiledArtifactPathPrefix}-quant${quantDtype}`;
@@ -92,4 +94,4 @@ class SageMakerInferenceToolkitTnxCompiler extends constructs_1.Construct {
92
94
  }
93
95
  }
94
96
  exports.SageMakerInferenceToolkitTnxCompiler = SageMakerInferenceToolkitTnxCompiler;
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FnZW1ha2VyLWluZmVyZW5jZS10b29sa2l0LXRueC1jb21waWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54L3NhZ2VtYWtlci1pbmZlcmVuY2UtdG9vbGtpdC10bngtY29tcGlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsaURBQXFEO0FBRXJELDJDQUF1QztBQUN2QywrQkFBNEI7QUFDNUIsNkNBWXlCO0FBQ3pCLCtEQUlrQztBQXdDbEM7Ozs7R0FJRztBQUNILE1BQWEsd0NBQXdDO0lBR25ELFlBQVksWUFBMkI7UUFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyx3QkFBYyxDQUFDLFNBQVMsQ0FDbkMsSUFBQSxXQUFJLEVBQUMsU0FBUyxFQUFFLHVEQUF1RCxDQUFDLEVBQ3hFO1lBQ0UsU0FBUyxFQUFFO2dCQUNULFVBQVUsRUFBRSxZQUFZLENBQUMsU0FBUztnQkFDbEMsU0FBUyxFQUFFLFlBQVksQ0FBQyxRQUFRO2FBQ2pDO1NBQ0YsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQztJQUN4RCxDQUFDO0NBQ0Y7QUFmRCw0RkFlQztBQW1ERDs7R0FFRztBQUNILE1BQWEsb0NBQXFDLFNBQVEsc0JBQVM7SUFPakUsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBZ0Q7UUFFaEQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLFFBQVEsSUFBSSxrQkFBUSxDQUFDLFlBQVksQ0FBQztRQUN6RSxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLFNBQVMsSUFBSSxDQUFDLENBQUM7UUFDdkQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxVQUFVLElBQUksSUFBSSxDQUFD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Q2xDLFNBQVMsRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFO2dCQUM5QixXQUFXLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ3pDLGVBQWUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FDMUMsMEJBQTBCLENBQzNCO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUNELE9BQU87UUFDTCxPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtZQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDNUIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXBHRCxvRkFvR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaXplIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IENvbnRhaW5lckltYWdlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3NcIjtcbmltcG9ydCB7IElCdWNrZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQge1xuICBjYWxjTWVtb3J5Rm9vdHByaW50LFxuICBjYWxjVGVuc29yUGFyYWxsZWwsXG4gIERhdGFUeXBlQml0cyxcbiAgSU5ldXJvbnhJbWFnZSxcbiAgSU5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gIGluZmVyTWVtb3J5Rm9vdHByaW50RnJvbVBhcmFtZXRlcnMsXG4gIE1vZGVsLFxuICBOZXVyb254SW5zdGFuY2VUeXBlLFxuICBPcHRMZXZlbCxcbiAgUHl0b3JjaFRyYWluaW5nTmV1cm9ueEltYWdlLFxuICBRdWFudER0eXBlLFxufSBmcm9tIFwiLi4vYmFzZS9uZXVyb254XCI7XG5pbXBvcnQge1xuICBJTmV1cm9ueENvbnRhaW5lckltYWdlLFxuICBOZXVyb254Q29tcGlsZWRNb2RlbCxcbiAgTmV1cm9ueENvbXBpbGVyLFxufSBmcm9tIFwiLi4vYmFzZS9uZXVyb254LWNvbXBpbGVyXCI7XG5cbi8qKlxuICogQ29tcGlsZSBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgdGVuc29yIHBhcmFsbGVsIGdyb3Vwcy5cbiAgICogQGRlZmF1bHQgLSBjYWxjIGZyb20gcGFyYW1ldGVycyBhbmQgcXVhbnREdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgdHBEZWdyZWU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBzZXF1ZW5jZXMgcGVyIGl0ZXJhdGlvbi5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgYmF0Y2hTaXplPzogbnVtYmVyO1xuICAvKipcbiAgICogQGRlZmF1bHQgLSBObyBxdWFudFxuICAgKi9cbiAgcmVhZG9ubHkgcXVhbnREdHlwZT86IFF1YW50RHR5cGU7XG4gIC8qKlxuICAgKiBAZGVmYXVsdCA0MDk2XG4gICAqL1xuICByZWFkb25seSBuUG9zaXRpb25zPzogbnVtYmVyO1xuICAvKipcbiAgICogQGRlZmF1bHQgT3B0TGV2ZWwuQkVTVF9CQUxBTkNFXG4gICAqL1xuICByZWFkb25seSBvcHRMZXZlbD86IE9wdExldmVsO1xufVxuXG4vKipcbiAqIFRoZSBtb2RlbCBjb21waWxlZCBieSBOZXVyb254IGNvbXBpbGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlZE1vZGVsIGV4dGVuZHMgTmV1cm9ueENvbXBpbGVkTW9kZWwge1xuICByZWFkb25seSBxdWFudER0eXBlPzogUXVhbnREdHlwZTtcbiAgcmVhZG9ubHkgb3B0TGV2ZWw/OiBPcHRMZXZlbDtcbiAgcmVhZG9ubHkgdHBEZWdyZWU6IG51bWJlcjtcbiAgcmVhZG9ubHkgblBvc2l0aW9uczogbnVtYmVyO1xufVxuXG4vKipcbiAqIENvbXBpbGUgaW1hZ2UgZm9yIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlLlxuICogQGV4YW1wbGVcbiAqIG5ldyBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZUltYWdlKFB5dG9yY2hUcmFpbmluZ05ldXJvbnhJbWFnZS5MQVRFU1QpO1xuICovXG5leHBvcnQgY2xhc3MgU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueENvbXBpbGVJbWFnZSBpbXBsZW1lbnRzIElOZXVyb254Q29udGFpbmVySW1hZ2Uge1xuICByZWFkb25seSBpbWFnZTogQ29udGFpbmVySW1hZ2U7XG4gIHJlYWRvbmx5IG5ldXJvblNka1ZlcnNpb246IHN0cmluZztcbiAgY29uc3RydWN0b3IobmVydW9ueEltYWdlOiBJTmV1cm9ueEltYWdlKSB7XG4gICAgdGhpcy5pbWFnZSA9IENvbnRhaW5lckltYWdlLmZyb21Bc3NldChcbiAgICAgIGpvaW4oX19kaXJuYW1lLCBcIi4uLy4uL3NjcmlwdHMvY29tcGlsZS9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54XCIpLFxuICAgICAge1xuICAgICAgICBidWlsZEFyZ3M6IHtcbiAgICAgICAgICBJTUFHRV9OQU1FOiBuZXJ1b254SW1hZ2UuaW1hZ2VOYW1lLFxuICAgICAgICAgIElNQUdFX1RBRzogbmVydW9ueEltYWdlLmltYWdlVGFnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuICAgIHRoaXMubmV1cm9uU2RrVmVyc2lvbiA9IG5lcnVvbnhJbWFnZS5uZXVyb25TZGtWZXJzaW9uO1xuICB9XG59XG5cbi8qKlxuICogUHJvcHMgb2YgTmV1cm9ueENvbXBpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueENvbXBpbGVyUHJvcHMge1xuICAvKipcbiAgICogVlBDIGluIHdoaWNoIHRoaXMgd2lsbCBsYXVuY2ggY29tcGlsZSB3b3JrZXIgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuICAvKipcbiAgICogVGhlIGJ1Y2tldCB0byB1cGxvYWQgY29tcGlsZWQgYXJ0aWZhY3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuICAvKipcbiAgICogVGhlIG1vZGVsIHRvIGJlIGNvbXBpbGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWw6IE1vZGVsO1xuICAvKipcbiAgICogVGhlIGluc3RhbmNlIHR5cGUgb2YgY29tcGlsZSB3b3JrZXIgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBuZXVyb254SW5zdGFuY2VUeXBlPzogSU5ldXJvbnhJbnN0YW5jZVR5cGU7XG4gIC8qKlxuICAgKiBUaGUgcm9vdCB2b2x1bWUgb2Ygd29ya2VyIGluc3RhbmNlLlxuICAgKiBAZGVmYXVsdCAtIE4gYmlsaW9uIHBhcmFtZXRlcnMgKiA1R2lCIEVCU1xuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lU2l6ZT86IFNpemU7XG4gIC8qKlxuICAgKiBDb21waWxlIHJ1bnRpbWUgaW1hZ2UuXG4gICAqIEBkZWZhdWx0IC0gbGF0ZXN0IGltYWdlXG4gICAqL1xuICByZWFkb25seSBpbWFnZT86IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlSW1hZ2U7XG4gIC8qKlxuICAgKiBOZXVyb254IGNvbXBpbGUgb3B0aW9ucy5cbiAgICogQGRlZmF1bHQgLSBFYWNoIHByb3BlcnRpZXMgYXJlIHNldCBkZWZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGlsZU9wdGlvbnM/OiBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byB1c2Ugc3BvdCBpbnN0YW5jZXMuIFNwb3QgaW5zdGFuY2VzIGFyZSBsZXNzIGV4cGVuc2l2ZSBFQzIgaW5zdGFuY2VzIHRoYXQgY2FuIGJlIHJlY2xhaW1lZCBieSBFQzIgYXQgYW55IHRpbWU7IHlvdXIgam9iIHdpbGwgYmUgZ2l2ZW4gdHdvIG1pbnV0ZXMgb2Ygbm90aWNlIGJlZm9yZSByZWNsYW1hdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNwb3Q/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIFZQQyBTdWJuZXRzIHRoaXMgQ29tcHV0ZSBFbnZpcm9ubWVudCB3aWxsIGxhdW5jaCBpbnN0YW5jZXMgaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbmV3IHN1Ym5ldHMgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBOZXVyb254IGNvbXBpbGUgY29uc3RydWN0LiBDb21waWxlIHRoZSBtb2RlbCB0byB3b3JrIHdpdGggSW5mZXJlbnRpYTIgYW5kIFRyYWluaXVtMSBhbmQgdXBsb2FkIGl0IHRvIGFuIFMzIGJ1Y2tldC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IHF1YW50RHR5cGU/OiBRdWFudER0eXBlO1xuICByZWFkb25seSBvcHRMZXZlbD86IE9wdExldmVsO1xuICByZWFkb25seSB0cERlZ3JlZTogbnVtYmVyO1xuICByZWFkb25seSBuUG9zaXRpb25zOiBudW1iZXI7XG4gIG1vZGVsOiBNb2RlbDtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21waWxlcjogTmV1cm9ueENvbXBpbGVyO1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlclByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IG9wdExldmVsID0gcHJvcHMuY29tcGlsZU9wdGlvbnM/Lm9wdExldmVsID8/IE9wdExldmVsLkJFU1RfQkFMQU5DRTtcbiAgICBjb25zdCBiYXRjaFNpemUgPSBwcm9wcy5jb21waWxlT3B0aW9ucz8uYmF0Y2hTaXplID8/IDE7XG4gICAgY29uc3QgblBvc2l0aW9ucyA9IHByb3BzLmNvbXBpbGVPcHRpb25zPy5uUG9zaXRpb25zID8/IDQwOTY7XG4gICAgY29uc3QgcXVhbnREdHlwZSA9IHByb3BzLmNvbXBpbGVPcHRpb25zPy5xdWFudER0eXBlO1xuICAgIGNvbnN0IG1lbW9yeUZvb3RwcmludCA9IHByb3BzLm1vZGVsLm9wdGlvbnMuY29uZmlnXG4gICAgICA/IGNhbGNNZW1vcnlGb290cHJpbnQoXG4gICAgICAgICAgcHJvcHMubW9kZWwub3B0aW9ucy5jb25maWcuZW1iZWRkaW5nRGltZW5zaW9uLFxuICAgICAgICAgIHByb3BzLm1vZGVsLm9wdGlvbnMuY29uZmlnLmxheWVycyxcbiAgICAgICAgICBEYXRhVHlwZUJpdHMuQkYxNl9PUl9GUDE2LFxuICAgICAgICAgIG5Qb3NpdGlvbnMsXG4gICAgICAgICAgYmF0Y2hTaXplLFxuICAgICAgICApXG4gICAgICA6IGluZmVyTWVtb3J5Rm9vdHByaW50RnJvbVBhcmFtZXRlcnMoXG4gICAgICAgICAgcHJvcHMubW9kZWwub3B0aW9ucy5wYXJhbWV0ZXJzLFxuICAgICAgICAgIG5Qb3NpdGlvbnMsXG4gICAgICAgICAgYmF0Y2hTaXplLFxuICAgICAgICApO1xuICAgIGNvbnN0IG5ldXJvbnhJbnN0YW5jZVR5cGVzID0gcHJvcHMubmV1cm9ueEluc3RhbmNlVHlwZVxuICAgICAgPyBbcHJvcHMubmV1cm9ueEluc3RhbmNlVHlwZV1cbiAgICAgIDogW1xuICAgICAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl84WExBUkdFLFxuICAgICAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl8yNFhMQVJHRSxcbiAgICAgICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfNDhYTEFSR0UsXG4gICAgICAgIF07XG4gICAgY29uc3QgYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJucyA9IG5ldXJvbnhJbnN0YW5jZVR5cGVzXG4gICAgICAuZmxhdE1hcCgobmV1cm9ueEluc3RhbmNlVHlwZSkgPT5cbiAgICAgICAgY2FsY1RlbnNvclBhcmFsbGVsKFxuICAgICAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICAgICAgbWVtb3J5Rm9vdHByaW50LFxuICAgICAgICAgIHByb3BzLm1vZGVsLm9wdGlvbnMuY29uZmlnPy5hdHRlbnRpb25IZWFkcyxcbiAgICAgICAgKS5tYXAoKHYpID0+ICh7XG4gICAgICAgICAgbmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgICAgICAgICAuLi52LFxuICAgICAgICB9KSksXG4gICAgICApXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAocGF0dGVybikgPT5cbiAgICAgICAgICAhcHJvcHMuY29tcGlsZU9wdGlvbnM/LnRwRGVncmVlIHx8XG4gICAgICAgICAgcGF0dGVybi50cCA9PT0gcHJvcHMuY29tcGlsZU9wdGlvbnMudHBEZWdyZWUsXG4gICAgICApO1xuICAgIGlmIChhdmFpbGFibGVJbnN0YW5jZVBhdHRlcm5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTm8gYXZhaWxhYmxlIGluc3RhbmNlIHR5cGUuIFlvdSBjYW4gdXNlIHRwRGVncmVlIGFyZSAke2F2YWlsYWJsZUluc3RhbmNlUGF0dGVybnMubWFwKChwKSA9PiBwLnRwKS5qb2luKFwiLCBcIil9LmAsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCB0cERlZ3JlZSA9IGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnNbMF0udHA7XG4gICAgY29uc3QgaW1hZ2UgPVxuICAgICAgcHJvcHMuaW1hZ2UgPz9cbiAgICAgIG5ldyBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZUltYWdlKFxuICAgICAgICBQeXRvcmNoVHJhaW5pbmdOZXVyb254SW1hZ2UuTEFURVNULFxuICAgICAgKTtcbiAgICBsZXQgY29tcGlsZWRBcnRpZmFjdFBhdGhQcmVmaXggPSBgJHtwcm9wcy5tb2RlbC5tb2RlbElkfS9uZXVyb254LSR7aW1hZ2UubmV1cm9uU2RrVmVyc2lvbn0vdHAke3RwRGVncmVlfS1ucCR7blBvc2l0aW9uc30tb3B0JHtvcHRMZXZlbH1gO1xuICAgIGlmIChxdWFudER0eXBlISEpIHtcbiAgICAgIGNvbXBpbGVkQXJ0aWZhY3RQYXRoUHJlZml4ID0gYCR7Y29tcGlsZWRBcnRpZmFjdFBhdGhQcmVmaXh9LXF1YW50JHtxdWFudER0eXBlfWA7XG4gICAgfVxuICAgIGNvbnN0IGNvbXBpbGVyID0gbmV3IE5ldXJvbnhDb21waWxlcih0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgbmV1cm9ueEluc3RhbmNlVHlwZTogYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJuc1swXS5uZXVyb254SW5zdGFuY2VUeXBlLFxuICAgICAgYXJ0aWZhY3RTM1ByZWZpeDogXCJ0ZXN0XCIsXG4gICAgICBpbWFnZTogaW1hZ2UsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBNT0RFTF9JRDogcHJvcHMubW9kZWwubW9kZWxJZCxcbiAgICAgICAgVFBfREVHUkVFOiB0cERlZ3JlZS50b1N0cmluZygpLFxuICAgICAgICBOX1BPU0lUSU9OUzogblBvc2l0aW9ucy50b1N0cmluZygpLFxuICAgICAgICBPUFRfTEVWRUw6IG9wdExldmVsLnRvU3RyaW5nKCksXG4gICAgICAgIFFVQU5UX0RUWVBFOiBxdWFudER0eXBlPy50b1N0cmluZygpID8/IFwiXCIsXG4gICAgICAgIEFSVElGQUNUX1MzX1VSTDogcHJvcHMuYnVja2V0LnMzVXJsRm9yT2JqZWN0KFxuICAgICAgICAgIGNvbXBpbGVkQXJ0aWZhY3RQYXRoUHJlZml4LFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnRwRGVncmVlID0gdHBEZWdyZWU7XG4gICAgdGhpcy5uUG9zaXRpb25zID0gblBvc2l0aW9ucztcbiAgICB0aGlzLnF1YW50RHR5cGUgPSBxdWFudER0eXBlO1xuICAgIHRoaXMub3B0TGV2ZWwgPSBvcHRMZXZlbDtcbiAgICB0aGlzLm1vZGVsID0gcHJvcHMubW9kZWw7XG4gICAgdGhpcy5jb21waWxlciA9IGNvbXBpbGVyO1xuICB9XG4gIGNvbXBpbGUoKTogU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueENvbXBpbGVkTW9kZWwge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmNvbXBpbGVyLmNvbXBpbGUoKSxcbiAgICAgIHRwRGVncmVlOiB0aGlzLnRwRGVncmVlLFxuICAgICAgb3B0TGV2ZWw6IHRoaXMub3B0TGV2ZWwsXG4gICAgICBuUG9zaXRpb25zOiB0aGlzLm5Qb3NpdGlvbnMsXG4gICAgICBxdWFudER0eXBlOiB0aGlzLnF1YW50RHR5cGUsXG4gICAgfTtcbiAgfVxufVxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FnZW1ha2VyLWluZmVyZW5jZS10b29sa2l0LXRueC1jb21waWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54L3NhZ2VtYWtlci1pbmZlcmVuY2UtdG9vbGtpdC10bngtY29tcGlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0VBQWlFO0FBS2pFLDJDQUF1QztBQUN2QywrQkFBNEI7QUFDNUIsNkNBWXlCO0FBQ3pCLCtEQUlrQztBQXdDbEM7Ozs7R0FJRztBQUNILE1BQWEsd0NBQXdDO0lBR25ELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsWUFBMkI7UUFDbkUsTUFBTSxLQUFLLEdBQUcsSUFBSSx1Q0FBbUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQy9DLFNBQVMsRUFBRSxJQUFBLFdBQUksRUFDYixTQUFTLEVBQ1QsdURBQXVELENBQ3hEO1lBQ0QsU0FBUyxFQUFFO2dCQUNULFVBQVUsRUFBRSxZQUFZLENBQUMsU0FBUztnQkFDbEMsU0FBUyxFQUFFLFlBQVksQ0FBQyxRQUFRO2FBQ2pDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDO0lBQ3hELENBQUM7Q0FDRjtBQWpCRCw0RkFpQkM7QUFtREQ7O0dBRUc7QUFDSCxNQUFhLG9DQUFxQyxTQUFRLHNCQUFTO0lBT2pFLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQWdEO1FBRWhELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxRQUFRLElBQUksa0JBQVEsQ0FBQyxZQUFZLENBQUM7UUFDekUsTUFBTSxTQUFTLEdBQUcsS0FB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QkFDWCxRQUFRLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPO2dCQUM3QixTQUFTLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRTtnQkFDOUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xDLFNBQVMsRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFO2dCQUM5QixXQUFXLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ3pDLGVBQWUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FDMUMsMEJBQTBCLENBQzNCO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUNELE9BQU87UUFDTCxPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtZQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDNUIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXRHRCxvRkFzR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250YWluZXJJbWFnZUJ1aWxkIH0gZnJvbSBcIkBjZGtsYWJzL2RlcGxveS10aW1lLWJ1aWxkXCI7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IENvbnRhaW5lckltYWdlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3NcIjtcbmltcG9ydCB7IElCdWNrZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQge1xuICBjYWxjTWVtb3J5Rm9vdHByaW50LFxuICBjYWxjVGVuc29yUGFyYWxsZWwsXG4gIERhdGFUeXBlQml0cyxcbiAgSU5ldXJvbnhJbWFnZSxcbiAgSU5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gIGluZmVyTWVtb3J5Rm9vdHByaW50RnJvbVBhcmFtZXRlcnMsXG4gIE1vZGVsLFxuICBOZXVyb254SW5zdGFuY2VUeXBlLFxuICBPcHRMZXZlbCxcbiAgUHl0b3JjaFRyYWluaW5nTmV1cm9ueEltYWdlLFxuICBRdWFudER0eXBlLFxufSBmcm9tIFwiLi4vYmFzZS9uZXVyb254XCI7XG5pbXBvcnQge1xuICBJTmV1cm9ueENvbnRhaW5lckltYWdlLFxuICBOZXVyb254Q29tcGlsZWRNb2RlbCxcbiAgTmV1cm9ueENvbXBpbGVyLFxufSBmcm9tIFwiLi4vYmFzZS9uZXVyb254LWNvbXBpbGVyXCI7XG5cbi8qKlxuICogQ29tcGlsZSBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgdGVuc29yIHBhcmFsbGVsIGdyb3Vwcy5cbiAgICogQGRlZmF1bHQgLSBjYWxjIGZyb20gcGFyYW1ldGVycyBhbmQgcXVhbnREdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgdHBEZWdyZWU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBzZXF1ZW5jZXMgcGVyIGl0ZXJhdGlvbi5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgYmF0Y2hTaXplPzogbnVtYmVyO1xuICAvKipcbiAgICogQGRlZmF1bHQgLSBObyBxdWFudFxuICAgKi9cbiAgcmVhZG9ubHkgcXVhbnREdHlwZT86IFF1YW50RHR5cGU7XG4gIC8qKlxuICAgKiBAZGVmYXVsdCA0MDk2XG4gICAqL1xuICByZWFkb25seSBuUG9zaXRpb25zPzogbnVtYmVyO1xuICAvKipcbiAgICogQGRlZmF1bHQgT3B0TGV2ZWwuQkVTVF9CQUxBTkNFXG4gICAqL1xuICByZWFkb25seSBvcHRMZXZlbD86IE9wdExldmVsO1xufVxuXG4vKipcbiAqIFRoZSBtb2RlbCBjb21waWxlZCBieSBOZXVyb254IGNvbXBpbGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlZE1vZGVsIGV4dGVuZHMgTmV1cm9ueENvbXBpbGVkTW9kZWwge1xuICByZWFkb25seSBxdWFudER0eXBlPzogUXVhbnREdHlwZTtcbiAgcmVhZG9ubHkgb3B0TGV2ZWw/OiBPcHRMZXZlbDtcbiAgcmVhZG9ubHkgdHBEZWdyZWU6IG51bWJlcjtcbiAgcmVhZG9ubHkgblBvc2l0aW9uczogbnVtYmVyO1xufVxuXG4vKipcbiAqIENvbXBpbGUgaW1hZ2UgZm9yIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlLlxuICogQGV4YW1wbGVcbiAqIG5ldyBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZUltYWdlKHNjb3BlLCAnQ29tcGlsZUltYWdlJywgUHl0b3JjaFRyYWluaW5nTmV1cm9ueEltYWdlLkxBVEVTVCk7XG4gKi9cbmV4cG9ydCBjbGFzcyBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZUltYWdlIGltcGxlbWVudHMgSU5ldXJvbnhDb250YWluZXJJbWFnZSB7XG4gIHJlYWRvbmx5IGltYWdlOiBDb250YWluZXJJbWFnZTtcbiAgcmVhZG9ubHkgbmV1cm9uU2RrVmVyc2lvbjogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBuZXJ1b254SW1hZ2U6IElOZXVyb254SW1hZ2UpIHtcbiAgICBjb25zdCBidWlsZCA9IG5ldyBDb250YWluZXJJbWFnZUJ1aWxkKHNjb3BlLCBpZCwge1xuICAgICAgZGlyZWN0b3J5OiBqb2luKFxuICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgIFwiLi4vLi4vc2NyaXB0cy9jb21waWxlL3NhZ2VtYWtlci1pbmZlcmVuY2UtdG9vbGtpdC10bnhcIixcbiAgICAgICksXG4gICAgICBidWlsZEFyZ3M6IHtcbiAgICAgICAgSU1BR0VfTkFNRTogbmVydW9ueEltYWdlLmltYWdlTmFtZSxcbiAgICAgICAgSU1BR0VfVEFHOiBuZXJ1b254SW1hZ2UuaW1hZ2VUYWcsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMuaW1hZ2UgPSBidWlsZC50b0Vjc0RvY2tlckltYWdlQ29kZSgpO1xuICAgIHRoaXMubmV1cm9uU2RrVmVyc2lvbiA9IG5lcnVvbnhJbWFnZS5uZXVyb25TZGtWZXJzaW9uO1xuICB9XG59XG5cbi8qKlxuICogUHJvcHMgb2YgTmV1cm9ueENvbXBpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueENvbXBpbGVyUHJvcHMge1xuICAvKipcbiAgICogVlBDIGluIHdoaWNoIHRoaXMgd2lsbCBsYXVuY2ggY29tcGlsZSB3b3JrZXIgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuICAvKipcbiAgICogVGhlIGJ1Y2tldCB0byB1cGxvYWQgY29tcGlsZWQgYXJ0aWZhY3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuICAvKipcbiAgICogVGhlIG1vZGVsIHRvIGJlIGNvbXBpbGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWw6IE1vZGVsO1xuICAvKipcbiAgICogVGhlIGluc3RhbmNlIHR5cGUgb2YgY29tcGlsZSB3b3JrZXIgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBuZXVyb254SW5zdGFuY2VUeXBlPzogSU5ldXJvbnhJbnN0YW5jZVR5cGU7XG4gIC8qKlxuICAgKiBUaGUgcm9vdCB2b2x1bWUgb2Ygd29ya2VyIGluc3RhbmNlLlxuICAgKiBAZGVmYXVsdCAtIE4gYmlsaW9uIHBhcmFtZXRlcnMgKiA1R2lCIEVCU1xuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lU2l6ZT86IFNpemU7XG4gIC8qKlxuICAgKiBDb21waWxlIHJ1bnRpbWUgaW1hZ2UuXG4gICAqIEBkZWZhdWx0IC0gbGF0ZXN0IGltYWdlXG4gICAqL1xuICByZWFkb25seSBpbWFnZT86IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlSW1hZ2U7XG4gIC8qKlxuICAgKiBOZXVyb254IGNvbXBpbGUgb3B0aW9ucy5cbiAgICogQGRlZmF1bHQgLSBFYWNoIHByb3BlcnRpZXMgYXJlIHNldCBkZWZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGlsZU9wdGlvbnM/OiBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byB1c2Ugc3BvdCBpbnN0YW5jZXMuIFNwb3QgaW5zdGFuY2VzIGFyZSBsZXNzIGV4cGVuc2l2ZSBFQzIgaW5zdGFuY2VzIHRoYXQgY2FuIGJlIHJlY2xhaW1lZCBieSBFQzIgYXQgYW55IHRpbWU7IHlvdXIgam9iIHdpbGwgYmUgZ2l2ZW4gdHdvIG1pbnV0ZXMgb2Ygbm90aWNlIGJlZm9yZSByZWNsYW1hdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNwb3Q/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIFZQQyBTdWJuZXRzIHRoaXMgQ29tcHV0ZSBFbnZpcm9ubWVudCB3aWxsIGxhdW5jaCBpbnN0YW5jZXMgaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbmV3IHN1Ym5ldHMgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBOZXVyb254IGNvbXBpbGUgY29uc3RydWN0LiBDb21waWxlIHRoZSBtb2RlbCB0byB3b3JrIHdpdGggSW5mZXJlbnRpYTIgYW5kIFRyYWluaXVtMSBhbmQgdXBsb2FkIGl0IHRvIGFuIFMzIGJ1Y2tldC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IHF1YW50RHR5cGU/OiBRdWFudER0eXBlO1xuICByZWFkb25seSBvcHRMZXZlbD86IE9wdExldmVsO1xuICByZWFkb25seSB0cERlZ3JlZTogbnVtYmVyO1xuICByZWFkb25seSBuUG9zaXRpb25zOiBudW1iZXI7XG4gIG1vZGVsOiBNb2RlbDtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21waWxlcjogTmV1cm9ueENvbXBpbGVyO1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlclByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IG9wdExldmVsID0gcHJvcHMuY29tcGlsZU9wdGlvbnM/Lm9wdExldmVsID8/IE9wdExldmVsLkJFU1RfQkFMQU5DRTtcbiAgICBjb25zdCBiYXRjaFNpemUgPSBwcm9wcy5jb21waWxlT3B0aW9ucz8uYmF0Y2hTaXplID8/IDE7XG4gICAgY29uc3QgblBvc2l0aW9ucyA9IHByb3BzLmNvbXBpbGVPcHRpb25zPy5uUG9zaXRpb25zID8/IDQwOTY7XG4gICAgY29uc3QgcXVhbnREdHlwZSA9IHByb3BzLmNvbXBpbGVPcHRpb25zPy5xdWFudER0eXBlO1xuICAgIGNvbnN0IG1lbW9yeUZvb3RwcmludCA9IHByb3BzLm1vZGVsLm9wdGlvbnMuY29uZmlnXG4gICAgICA/IGNhbGNNZW1vcnlGb290cHJpbnQoXG4gICAgICAgICAgcHJvcHMubW9kZWwub3B0aW9ucy5jb25maWcuZW1iZWRkaW5nRGltZW5zaW9uLFxuICAgICAgICAgIHByb3BzLm1vZGVsLm9wdGlvbnMuY29uZmlnLmxheWVycyxcbiAgICAgICAgICBEYXRhVHlwZUJpdHMuQkYxNl9PUl9GUDE2LFxuICAgICAgICAgIG5Qb3NpdGlvbnMsXG4gICAgICAgICAgYmF0Y2hTaXplLFxuICAgICAgICApXG4gICAgICA6IGluZmVyTWVtb3J5Rm9vdHByaW50RnJvbVBhcmFtZXRlcnMoXG4gICAgICAgICAgcHJvcHMubW9kZWwub3B0aW9ucy5wYXJhbWV0ZXJzLFxuICAgICAgICAgIG5Qb3NpdGlvbnMsXG4gICAgICAgICAgYmF0Y2hTaXplLFxuICAgICAgICApO1xuICAgIGNvbnN0IG5ldXJvbnhJbnN0YW5jZVR5cGVzID0gcHJvcHMubmV1cm9ueEluc3RhbmNlVHlwZVxuICAgICAgPyBbcHJvcHMubmV1cm9ueEluc3RhbmNlVHlwZV1cbiAgICAgIDogW1xuICAgICAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl84WExBUkdFLFxuICAgICAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl8yNFhMQVJHRSxcbiAgICAgICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfNDhYTEFSR0UsXG4gICAgICAgIF07XG4gICAgY29uc3QgYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJucyA9IG5ldXJvbnhJbnN0YW5jZVR5cGVzXG4gICAgICAuZmxhdE1hcCgobmV1cm9ueEluc3RhbmNlVHlwZSkgPT5cbiAgICAgICAgY2FsY1RlbnNvclBhcmFsbGVsKFxuICAgICAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICAgICAgbWVtb3J5Rm9vdHByaW50LFxuICAgICAgICAgIHByb3BzLm1vZGVsLm9wdGlvbnMuY29uZmlnPy5hdHRlbnRpb25IZWFkcyxcbiAgICAgICAgKS5tYXAoKHYpID0+ICh7XG4gICAgICAgICAgbmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgICAgICAgICAuLi52LFxuICAgICAgICB9KSksXG4gICAgICApXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAocGF0dGVybikgPT5cbiAgICAgICAgICAhcHJvcHMuY29tcGlsZU9wdGlvbnM/LnRwRGVncmVlIHx8XG4gICAgICAgICAgcGF0dGVybi50cCA9PT0gcHJvcHMuY29tcGlsZU9wdGlvbnMudHBEZWdyZWUsXG4gICAgICApO1xuICAgIGlmIChhdmFpbGFibGVJbnN0YW5jZVBhdHRlcm5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTm8gYXZhaWxhYmxlIGluc3RhbmNlIHR5cGUuIFlvdSBjYW4gdXNlIHRwRGVncmVlIGFyZSAke2F2YWlsYWJsZUluc3RhbmNlUGF0dGVybnMubWFwKChwKSA9PiBwLnRwKS5qb2luKFwiLCBcIil9LmAsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCB0cERlZ3JlZSA9IGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnNbMF0udHA7XG4gICAgY29uc3QgaW1hZ2UgPVxuICAgICAgcHJvcHMuaW1hZ2UgPz9cbiAgICAgIG5ldyBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZUltYWdlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIkNvbXBpbGVJbWFnZVwiLFxuICAgICAgICBQeXRvcmNoVHJhaW5pbmdOZXVyb254SW1hZ2UuTEFURVNULFxuICAgICAgKTtcbiAgICBsZXQgY29tcGlsZWRBcnRpZmFjdFBhdGhQcmVmaXggPSBgJHtwcm9wcy5tb2RlbC5tb2RlbElkfS9uZXVyb254LSR7aW1hZ2UubmV1cm9uU2RrVmVyc2lvbn0vdHAke3RwRGVncmVlfS1ucCR7blBvc2l0aW9uc30tb3B0JHtvcHRMZXZlbH1gO1xuICAgIGlmIChxdWFudER0eXBlISEpIHtcbiAgICAgIGNvbXBpbGVkQXJ0aWZhY3RQYXRoUHJlZml4ID0gYCR7Y29tcGlsZWRBcnRpZmFjdFBhdGhQcmVmaXh9LXF1YW50JHtxdWFudER0eXBlfWA7XG4gICAgfVxuICAgIGNvbnN0IGNvbXBpbGVyID0gbmV3IE5ldXJvbnhDb21waWxlcih0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgbmV1cm9ueEluc3RhbmNlVHlwZTogYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJuc1swXS5uZXVyb254SW5zdGFuY2VUeXBlLFxuICAgICAgYXJ0aWZhY3RTM1ByZWZpeDogXCJ0ZXN0XCIsXG4gICAgICBpbWFnZTogaW1hZ2UsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBNT0RFTF9JRDogcHJvcHMubW9kZWwubW9kZWxJZCxcbiAgICAgICAgVFBfREVHUkVFOiB0cERlZ3JlZS50b1N0cmluZygpLFxuICAgICAgICBOX1BPU0lUSU9OUzogblBvc2l0aW9ucy50b1N0cmluZygpLFxuICAgICAgICBPUFRfTEVWRUw6IG9wdExldmVsLnRvU3RyaW5nKCksXG4gICAgICAgIFFVQU5UX0RUWVBFOiBxdWFudER0eXBlPy50b1N0cmluZygpID8/IFwiXCIsXG4gICAgICAgIEFSVElGQUNUX1MzX1VSTDogcHJvcHMuYnVja2V0LnMzVXJsRm9yT2JqZWN0KFxuICAgICAgICAgIGNvbXBpbGVkQXJ0aWZhY3RQYXRoUHJlZml4LFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnRwRGVncmVlID0gdHBEZWdyZWU7XG4gICAgdGhpcy5uUG9zaXRpb25zID0gblBvc2l0aW9ucztcbiAgICB0aGlzLnF1YW50RHR5cGUgPSBxdWFudER0eXBlO1xuICAgIHRoaXMub3B0TGV2ZWwgPSBvcHRMZXZlbDtcbiAgICB0aGlzLm1vZGVsID0gcHJvcHMubW9kZWw7XG4gICAgdGhpcy5jb21waWxlciA9IGNvbXBpbGVyO1xuICB9XG4gIGNvbXBpbGUoKTogU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueENvbXBpbGVkTW9kZWwge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmNvbXBpbGVyLmNvbXBpbGUoKSxcbiAgICAgIHRwRGVncmVlOiB0aGlzLnRwRGVncmVlLFxuICAgICAgb3B0TGV2ZWw6IHRoaXMub3B0TGV2ZWwsXG4gICAgICBuUG9zaXRpb25zOiB0aGlzLm5Qb3NpdGlvbnMsXG4gICAgICBxdWFudER0eXBlOiB0aGlzLnF1YW50RHR5cGUsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SageMakerInferenceToolkitTnxSageMakerRealtimeInferenceEndpoint = exports.SageMakerInferenceToolkitTnxSageMakerInferenceModelData = void 0;
4
+ const deploy_time_build_1 = require("@cdklabs/deploy-time-build");
4
5
  const sagemaker = require("@aws-cdk/aws-sagemaker-alpha");
5
6
  const aws_cdk_lib_1 = require("aws-cdk-lib");
6
7
  const aws_s3_deployment_1 = require("aws-cdk-lib/aws-s3-deployment");
@@ -90,8 +91,16 @@ exports.SageMakerInferenceToolkitTnxSageMakerInferenceModelData = SageMakerInfer
90
91
  class SageMakerInferenceToolkitTnxSageMakerRealtimeInferenceEndpoint extends constructs_1.Construct {
91
92
  constructor(scope, id, props) {
92
93
  super(scope, id);
93
- const image = props.image ??
94
- sagemaker.ContainerImage.fromAsset((0, path_1.join)(__dirname, "../../scripts/inference/sagemaker-inference-toolkit-tnx"));
94
+ let image;
95
+ if (props.image) {
96
+ image = props.image;
97
+ }
98
+ else {
99
+ const build = new deploy_time_build_1.ContainerImageBuild(this, "InferenceImageBuild", {
100
+ directory: (0, path_1.join)(__dirname, "../../scripts/inference/sagemaker-inference-toolkit-tnx"),
101
+ });
102
+ image = sagemaker.ContainerImage.fromEcrRepository(build.repository, build.imageTag);
103
+ }
95
104
  const instanceType = props.instanceType ??
96
105
  this.selectInstanceTypeByTpDegree(props.modelData.tpDegree);
97
106
  const model = new sagemaker.Model(this, "Model", {
@@ -174,4 +183,4 @@ function inferenceModelDataDownloadTime(volumeSize) {
174
183
  const seconds = volumeSize.toGibibytes() * 15;
175
184
  return aws_cdk_lib_1.Duration.seconds(seconds < 3600 ? seconds : 3600);
176
185
  }
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FnZW1ha2VyLWluZmVyZW5jZS10b29sa2l0LXRueC1zYWdlbWFrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2FnZW1ha2VyLWluZmVyZW5jZS10b29sa2l0LXRueC9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54LXNhZ2VtYWtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwREFBMEQ7QUFDMUQsNkNBQW9EO0FBR3BELHFFQUl1QztBQUV2QywyQ0FBb0Q7QUFDcEQsK0JBQTRCO0FBQzVCLDZDQVd5QjtBQXdDekI7O0dBRUc7QUFDSCxNQUFhLHVEQUF1RDtJQUNsRSxNQUFNLENBQUMsVUFBVSxDQUNmLE1BQWUsRUFDZixNQUFjLEVBQ2QsT0FBbUM7UUFFbkMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDO1FBQzlELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDO1FBQ3RELE1BQU0sUUFBUSxHQUFHLGtCQUFRLENBQUMsWUFBWSxDQUFDO1FBQ3ZDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxjQUFjLEVBQUUsU0FBUyxJQUFJLENBQUMsQ0FBQztRQUN6RCxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsTUFBTTtZQUNwQyxDQUFDLENBQUMsSUFBQSw2QkFBbUIsRUFDakIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFDakMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQ3JCLHNCQUFZLENBQUMsWUFBWSxFQUN6QixVQUFVLEVBQ1YsU0FBUyxDQUNWO1lBQ0gsQ0FBQyxDQUFDLElBQUEsNENBQWtDLEVBQ2hDLE9BQU8sQ0FBQyxVQUFVLEVBQ2xCLFVBQVUsRUFDVixTQUFTLENBQ1YsQ0FBQztRQUNOLE1BQU0sb0JBQW9CLEdBQUc7WUFDM0IsNkJBQW1CLENBQUMsWUFBWTtZQUNoQyw2QkFBbUIsQ0FB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LGFBQWE7U0FDbEMsQ0FBQztRQUNGLEtBQUssTUFBTSxZQUFZLElBQUksYUFBYSxFQUFFLENBQUM7WUFDekMsSUFDRSxZQUFZLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksUUFBUSxDQUFDLEVBQ3BFLENBQUM7Z0JBQ0QsT0FBTyxZQUFZLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLHdFQUF3RSxDQUN6RSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbkpELHdJQW1KQztBQUVELFNBQVMsOEJBQThCLENBQUMsVUFBZ0I7SUFDdEQsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUM5QyxPQUFPLHNCQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHNhZ2VtYWtlciBmcm9tIFwiQGF3cy1jZGsvYXdzLXNhZ2VtYWtlci1hbHBoYVwiO1xuaW1wb3J0IHsgRHVyYXRpb24sIFNpemUsIFRva2VuIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBHcmFudCwgSUdyYW50YWJsZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHtcbiAgQnVja2V0RGVwbG95bWVudCxcbiAgSVNvdXJjZSxcbiAgU291cmNlLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnRcIjtcbmltcG9ydCB7IENmbkVuZHBvaW50Q29uZmlnLCBDZm5Nb2RlbCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2FnZW1ha2VyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElEZXBlbmRhYmxlIH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHtcbiAgY2FsY01lbW9yeUZvb3RwcmludCxcbiAgY2FsY1RlbnNvclBhcmFsbGVsLFxuICBEYXRhVHlwZUJpdHMsXG4gIElOZXVyb254SW5zdGFuY2VUeXBlLFxuICBpbmZlck1lbW9yeUZvb3RwcmludEZyb21QYXJhbWV0ZXJzLFxuICBNb2RlbENvbmZpZyxcbiAgTmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgT3B0TGV2ZWwsXG4gIFBhcmFtZXRlcnMsXG4gIFF1YW50RHR5cGUsXG59IGZyb20gXCIuLi9iYXNlL25ldXJvbnhcIjtcbmltcG9ydCB7XG4gIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlT3B0aW9ucyxcbiAgU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueENvbXBpbGVyLFxufSBmcm9tIFwiLi9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54LWNvbXBpbGVyXCI7XG5cbi8qKlxuICogUHJlY29tcGlsZWQgbW9kZWwgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21waWxlZE1vZGVsT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOZXVyb254IGNvbXBpbGUgb3B0aW9ucy5cbiAgICogQGRlZmF1bHQgLSBFYWNoIHByb3BlcnRpZXMgYXJlIHNldCBkZWZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGlsZU9wdGlvbnM/OiBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBDb2RlIHVzZWQgZm9yIGluZmVyZW5jZVxuICAgKiBAZGVmYXVsdCAtIHVzaW5nIHRoZSBwcmVkZWZpbmVkIGNvZGVcbiAgICovXG4gIHJlYWRvbmx5IGNvZGU/OiBJU291cmNlO1xuICAvKipcbiAgICogTW9kZWwgSUQgb3Igc2F2ZWQgcGF0aFxuICAgKiBAZGVmYXVsdCBcIi4vbW9kZWxcIlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWxJZE9yUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwYXRoIHdoZXJlIGNvbXBpbGVkIGFydGlmYWN0cyAoaS5lLiB4eHgubmVmZikgYXJlIHN0b3JlZFxuICAgKiBAZGVmYXVsdCBcIi4vY29tcGlsZWRcIlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGlsZWRBcnRpZmFjdFBhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0Q29tcGlsZWRNb2RlbE9wdGlvbnMgZXh0ZW5kcyBDb21waWxlZE1vZGVsT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHBhcmFtZXRlcnMgb2YgbW9kZWwuXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzOiBQYXJhbWV0ZXJzO1xuICByZWFkb25seSBjb25maWc/OiBNb2RlbENvbmZpZztcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgY2xhc3MgU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueFNhZ2VNYWtlckluZmVyZW5jZU1vZGVsRGF0YSB7XG4gIHN0YXRpYyBmcm9tQnVja2V0KFxuICAgIGJ1Y2tldDogSUJ1Y2tldCxcbiAgICBwcmVmaXg6IHN0cmluZyxcbiAgICBvcHRpb25zOiBCdWNrZXRDb21waWxlZE1vZGVsT3B0aW9ucyxcbiAgKSB7XG4gICAgY29uc3QgblBvc2l0aW9ucyA9IG9wdGlvbnMuY29tcGlsZU9wdGlvbnM/Lm5Qb3NpdGlvbnMgPz8gNDA5NjtcbiAgICBjb25zdCBxdWFudER0eXBlID0gb3B0aW9ucy5jb21waWxlT3B0aW9ucz8ucXVhbnREdHlwZTtcbiAgICBjb25zdCBvcHRMZXZlbCA9IE9wdExldmVsLkJFU1RfQkFMQU5DRTtcbiAgICBjb25zdCBiYXRjaFNpemUgPSBvcHRpb25zLmNvbXBpbGVPcHRpb25zPy5iYXRjaFNpemUgPz8gMTtcbiAgICBjb25zdCBtZW1vcnlGb290cHJpbnQgPSBvcHRpb25zLmNvbmZpZ1xuICAgICAgPyBjYWxjTWVtb3J5Rm9vdHByaW50KFxuICAgICAgICAgIG9wdGlvbnMuY29uZmlnLmVtYmVkZGluZ0RpbWVuc2lvbixcbiAgICAgICAgICBvcHRpb25zLmNvbmZpZy5sYXllcnMsXG4gICAgICAgICAgRGF0YVR5cGVCaXRzLkJGMTZfT1JfRlAxNixcbiAgICAgICAgICBuUG9zaXRpb25zLFxuICAgICAgICAgIGJhdGNoU2l6ZSxcbiAgICAgICAgKVxuICAgICAgOiBpbmZlck1lbW9yeUZvb3RwcmludEZyb21QYXJhbWV0ZXJzKFxuICAgICAgICAgIG9wdGlvbnMucGFyYW1ldGVycyxcbiAgICAgICAgICBuUG9zaXRpb25zLFxuICAgICAgICAgIGJhdGNoU2l6ZSxcbiAgICAgICAgKTtcbiAgICBjb25zdCBuZXVyb254SW5zdGFuY2VUeXBlcyA9IFtcbiAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl84WExBUkdFLFxuICAgICAgTmV1cm9ueEluc3RhbmNlVHlwZS5JTkYyXzI0WExBUkdFLFxuICAgICAgTmV1cm9ueEluc3RhbmNlVHlwZS5JTkYyXzQ4WExBUkdFLFxuICAgIF07XG4gICAgY29uc3QgYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJucyA9IG5ldXJvbnhJbnN0YW5jZVR5cGVzXG4gICAgICAuZmxhdE1hcCgobmV1cm9ueEluc3RhbmNlVHlwZSkgPT5cbiAgICAgICAgY2FsY1RlbnNvclBhcmFsbGVsKFxuICAgICAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICAgICAgbWVtb3J5Rm9vdHByaW50LFxuICAgICAgICAgIG9wdGlvbnMuY29uZmlnPy5hdHRlbnRpb25IZWFkcyxcbiAgICAgICAgKS5tYXAoKHYpID0+ICh7XG4gICAgICAgICAgbmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgICAgICAgICAuLi52LFxuICAgICAgICB9KSksXG4gICAgICApXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAocGF0dGVybikgPT5cbiAgICAgICAgICAhb3B0aW9ucy5jb21waWxlT3B0aW9ucz8udHBEZWdyZWUgfHxcbiAgICAgICAgICBwYXR0ZXJuLnRwID09PSBvcHRpb25zLmNvbXBpbGVPcHRpb25zLnRwRGVncmVlLFxuICAgICAgKTtcbiAgICBpZiAoYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE5vIGF2YWlsYWJsZSBpbnN0YW5jZSB0eXBlLiBZb3UgY2FuIHVzZSB0cERlZ3JlZSBhcmUgJHthdmFpbGFibGVJbnN0YW5jZVBhdHRlcm5zLm1hcCgocCkgPT4gcC50cCkuam9pbihcIiwgXCIpfS5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgdHBEZWdyZWUgPVxuICAgICAgb3B0aW9ucy5jb21waWxlT3B0aW9ucz8udHBEZWdyZWUgPz8gYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJuc1swXS50cDtcbiAgICByZXR1cm4gbmV3IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhTYWdlTWFrZXJJbmZlcmVuY2VNb2RlbERhdGEoe1xuICAgICAgYnVja2V0LFxuICAgICAgY29tcGlsZWRBcnRpZmFjdFMzUHJlZml4OiBwcmVmaXgsXG4gICAgICBuUG9zaXRpb25zLFxuICAgICAgcXVhbnREdHlwZSxcbiAgICAgIG9wdExldmVsLFxuICAgICAgdHBEZWdyZWUsXG4gICAgICBjb2RlOiBvcHRpb25zLmNvZGUsXG4gICAgICBtb2RlbElkT3JQYXRoOiBvcHRpb25zLm1vZGVsSWRPclBhdGgsXG4gICAgICBwYXJhbWV0ZXJzOiBvcHRpb25zLnBhcmFtZXRlcnMsXG4gICAgfSk7XG4gIH1cbiAgc3RhdGljIGZyb21OZXVyb254Q29tcGlsZXIoXG4gICAgY29tcGlsZXI6IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlcixcbiAgICBjb2RlPzogSVNvdXJjZSxcbiAgKSB7XG4gICAgY29uc3QgY29tcGlsZWRNb2RlbCA9IGNvbXBpbGVyLmNvbXBpbGUoKTtcbiAgICByZXR1cm4gbmV3IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhTYWdlTWFrZXJJbmZlcmVuY2VNb2RlbERhdGEoe1xuICAgICAgLi4uY29tcGlsZWRNb2RlbCxcbiAgICAgIG9wdExldmVsOiBjb21waWxlZE1vZGVsLm9wdExldmVsID8/IE9wdExldmVsLkJFU1RfQkFMQU5DRSxcbiAgICAgIGNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeDogY29tcGlsZWRNb2RlbC5zM1ByZWZpeCxcbiAgICAgIHBhcmFtZXRlcnM6IGNvbXBpbGVyLm1vZGVsLm9wdGlvbnMucGFyYW1ldGVycyxcbiAgICAgIGNvZGUsXG4gICAgICBkZXBlbmRhYmxlczogW2NvbXBpbGVyLm5vZGUuZGVmYXVsdENoaWxkIV0sXG4gICAgfSk7XG4gIH1cbiAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuICByZWFkb25seSBjb21waWxlZEFydGlmYWN0UzNQcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgY29kZTogSVNvdXJjZTtcbiAgcmVhZG9ubHkgdHBEZWdyZWU6IG51bWJlcjtcbiAgcmVhZG9ubHkgcXVhbnREdHlwZT86IFF1YW50RHR5cGU7XG4gIHJlYWRvbmx5IG5Qb3NpdGlvbnM6IG51bWJlcjtcbiAgcmVhZG9ubHkgb3B0TGV2ZWw6IE9wdExldmVsO1xuICByZWFkb25seSBtb2RlbElkT3JQYXRoPzogc3RyaW5nO1xuICByZWFkb25seSBjb21waWxlZEFydGlmYWN0UGF0aD86IHN0cmluZztcbiAgcmVhZG9ubHkgcGFyYW1ldGVyczogUGFyYW1ldGVycztcbiAgcHJpdmF0ZSByZWFkb25seSBkZXBlbmRhYmxlczogSURlcGVuZGFibGVbXTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKG9wdGlvbnM6IHtcbiAgICByZWFkb25seSBidWNrZXQ6IElCdWNrZXQ7XG4gICAgcmVhZG9ubHkgY29tcGlsZWRBcnRpZmFjdFMzUHJlZml4OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgdHBEZWdyZWU6IG51bWJlcjtcbiAgICByZWFkb25seSBxdWFudER0eXBlPzogUXVhbnREdHlwZTtcbiAgICByZWFkb25seSBuUG9zaXRpb25zOiBudW1iZXI7XG4gICAgcmVhZG9ubHkgb3B0TGV2ZWw6IE9wdExldmVsO1xuICAgIHJlYWRvbmx5IGNvZGU/OiBJU291cmNlO1xuICAgIHJlYWRvbmx5IG1vZGVsSWRPclBhdGg/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgY29tcGlsZWRBcnRpZmFjdFBhdGg/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgcGFyYW1ldGVyczogUGFyYW1ldGVycztcbiAgICByZWFkb25seSBkZXBlbmRhYmxlcz86IElEZXBlbmRhYmxlW107XG4gIH0pIHtcbiAgICB0aGlzLmJ1Y2tldCA9IG9wdGlvbnMuYnVja2V0O1xuICAgIHRoaXMuY29tcGlsZWRBcnRpZmFjdFMzUHJlZml4ID0gb3B0aW9ucy5jb21waWxlZEFydGlmYWN0UzNQcmVmaXg7XG4gICAgdGhpcy5jb2RlID1cbiAgICAgIG9wdGlvbnMuY29kZSA/P1xuICAgICAgU291cmNlLmFzc2V0KFxuICAgICAgICBqb2luKFxuICAgICAgICAgIF9fZGlybmFtZSxcbiAgICAgICAgICBcIi4uLy4uL3NjcmlwdHMvaW5mZXJlbmNlL3NhZ2VtYWtlci1pbmZlcmVuY2UtdG9vbGtpdC10bngvY29kZVwiLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB0aGlzLnRwRGVncmVlID0gb3B0aW9ucy50cERlZ3JlZTtcbiAgICB0aGlzLnF1YW50RHR5cGUgPSBvcHRpb25zLnF1YW50RHR5cGU7XG4gICAgdGhpcy5uUG9zaXRpb25zID0gb3B0aW9ucy5uUG9zaXRpb25zO1xuICAgIHRoaXMub3B0TGV2ZWwgPSBvcHRpb25zLm9wdExldmVsO1xuICAgIHRoaXMubW9kZWxJZE9yUGF0aCA9IG9wdGlvbnMubW9kZWxJZE9yUGF0aDtcbiAgICB0aGlzLmNvbXBpbGVkQXJ0aWZhY3RQYXRoID0gb3B0aW9ucy5jb21waWxlZEFydGlmYWN0UGF0aDtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBvcHRpb25zLnBhcmFtZXRlcnM7XG4gICAgdGhpcy5kZXBlbmRhYmxlcyA9IG9wdGlvbnMuZGVwZW5kYWJsZXMgPz8gW107XG4gIH1cblxuICBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QsIG1vZGVsOiBzYWdlbWFrZXIuSU1vZGVsKSB7XG4gICAgY29uc3QgZGVwbG95ID0gbmV3IEJ1Y2tldERlcGxveW1lbnQoc2NvcGUsIFwiQ29kZURlcGxveW1lbnRcIiwge1xuICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuYnVja2V0LFxuICAgICAgc291cmNlczogW3RoaXMuY29kZV0sXG4gICAgICBkZXN0aW5hdGlvbktleVByZWZpeDogam9pbih0aGlzLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeCwgXCJjb2RlXCIpLFxuICAgIH0pO1xuICAgIGRlcGxveS5ub2RlLmFkZERlcGVuZGVuY3koLi4udGhpcy5kZXBlbmRhYmxlcyk7XG4gICAgbW9kZWwubm9kZS5hZGREZXBlbmRlbmN5KGRlcGxveSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54U2FnZU1ha2VyUmVhbHRpbWVJbmZlcmVuY2VFbmRwb2ludFByb3BzIHtcbiAgLyoqXG4gICAqIE1vZGVsIGRhdGEgZm9yIFNhZ2VNYWtlciBpbmZlcmVuY2UuXG4gICAqIFRoZSBtb2RlbCBkYXRhIHJlcXVpcmVzIGF0IGxlYXN0IGNvbXBpbGVkIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IG1vZGVsRGF0YTogU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueFNhZ2VNYWtlckluZmVyZW5jZU1vZGVsRGF0YTtcbiAgLyoqXG4gICAqIEFuIGltYWdlIG9mIHRoZSBjb250YWluZXIgd2hlcmUgdGhlIGluZmVyZW5jZSBqb2IgaXMgZXhlY3V0ZWQuXG4gICAqL1xuICByZWFkb25seSBpbWFnZT86IHNhZ2VtYWtlci5Db250YWluZXJJbWFnZTtcbiAgLyoqXG4gICAqIEEgbWFwIG9mIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBwYXNzIGludG8gdGhlIGNvbnRhaW5lci5cbiAgICogQGRlZmF1bHQgLSBPbmx5IHRoZSBwcmVkZWZpbmVkIGVudmlyb25tZW50IHZhcmlhYmxlcyByZXF1aXJlZCB0byB1c2UgTmV1cm9ueCBoYXZlIGJlZW4gc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICAvKipcbiAgICogVGhlIGluc3RhbmNlIHR5cGUgb2YgY29tcGlsZSB3b3JrZXIgaW5zdGFuY2UuXG4gICAqIEBkZWZhdWx0IC0gSXQgaXMgZGV0ZXJtaW5lZCBhdXRvbWF0aWNhbGx5IGFjY29yZGluZyB0byB0aGUgbnVtYmVyIG9mIG1vZGVsIHBhcmFtZXRlcnMgYW5kIGNvbXBpbGF0aW9uIG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVR5cGU/OiBJTmV1cm9ueEluc3RhbmNlVHlwZTtcbiAgLyoqXG4gICAqIFRoZSBzaXplLCBvZiB0aGUgTUwgc3RvcmFnZSB2b2x1bWUgYXR0YWNoZWQgdG8gaW5kaXZpZHVhbCBpbmZlcmVuY2UgaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm9kdWN0aW9uIHZhcmlhbnQuXG4gICAqIEN1cnJlbnRseSBvbmx5IEFtYXpvbiBFQlMgZ3AyIHN0b3JhZ2Ugdm9sdW1lcyBhcmUgc3VwcG9ydGVkLlxuICAgKiBAc2VlIGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vanAvcmVsZWFzZW5vdGVzL2hvc3QtaW5zdGFuY2Utc3RvcmFnZS12b2x1bWVzLXRhYmxlXG4gICAqIEBkZWZhdWx0IC0gMyBHQiBwZXIgYmlsbGlvbiBwYXJhbWV0ZXIgKE1heCA1MTIgR0IpXG4gICAqL1xuICByZWFkb25seSB2b2x1bWVTaXplPzogU2l6ZTtcbiAgLyoqXG4gICAqIFRoZSB0aW1lb3V0IHZhbHVlLCB0byBkb3dubG9hZCBhbmQgZXh0cmFjdCB0aGUgbW9kZWwgdGhhdCB5b3Ugd2FudCB0byBob3N0IGZyb20gQW1hem9uIFMzXG4gICAqIHRvIHRoZSBpbmRpdmlkdWFsIGluZmVyZW5jZSBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBwcm9kdWN0aW9uIHZhcmlhbnQuXG4gICAqIEBkZWZhdWx0IC0gNjAgc2Vjb25kcywgd2hlbiBgdm9sdW1lU2l6ZWAgbGFyZ2VyIHRoYW4gMzBHQiB0aGVuIDFHQiB4IDE1IHNlY29uZHMgKG1heCA2MCBtaW51dGVzKVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWxEYXRhRG93bmxvYWRUaW1lb3V0PzogRHVyYXRpb247XG4gIC8qKlxuICAgKiBUaGUgdGltZW91dCB2YWx1ZSwgZm9yIHlvdXIgaW5mZXJlbmNlIGNvbnRhaW5lciB0byBwYXNzIGhlYWx0aCBjaGVjayBieSBTYWdlTWFrZXIgSG9zdGluZy5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2FnZW1ha2VyL2xhdGVzdC9kZy95b3VyLWFsZ29yaXRobXMtaW5mZXJlbmNlLWNvZGUuaHRtbCN5b3VyLWFsZ29yaXRobXMtaW5mZXJlbmNlLWFsZ28tcGluZy1yZXF1ZXN0c1xuICAgKiBAZGVmYXVsdCAtIDYwIHNlY29uZHMsIHdoZW4gc2V0IHRoZSBgbW9kZWxEYXRhRG93bmxvYWRUaW1lb3V0YCB0aGVuIHVzZSBzYW1lIHZhbHVlIChtYXggNjAgbWludXRlcylcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhaW5lclN0YXJ0dXBIZWFsdGhDaGVja1RpbWVvdXQ/OiBEdXJhdGlvbjtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgY2xhc3MgU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueFNhZ2VNYWtlclJlYWx0aW1lSW5mZXJlbmNlRW5kcG9pbnQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZW5kcG9pbnQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50QXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZW5kcG9pbnQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGVuZHBvaW50OiBzYWdlbWFrZXIuRW5kcG9pbnQ7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueFNhZ2VNYWtlclJlYWx0aW1lSW5mZXJlbmNlRW5kcG9pbnRQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBpbWFnZSA9XG4gICAgICBwcm9wcy5pbWFnZSA/P1xuICAgICAgc2FnZW1ha2VyLkNvbnRhaW5lckltYWdlLmZyb21Bc3NldChcbiAgICAgICAgam9pbihcbiAgICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgICAgXCIuLi8uLi9zY3JpcHRzL2luZmVyZW5jZS9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54XCIsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIGNvbnN0IGluc3RhbmNlVHlwZSA9XG4gICAgICBwcm9wcy5pbnN0YW5jZVR5cGUgPz9cbiAgICAgIHRoaXMuc2VsZWN0SW5zdGFuY2VUeXBlQnlUcERlZ3JlZShwcm9wcy5tb2RlbERhdGEudHBEZWdyZWUpO1xuICAgIGNvbnN0IG1vZGVsID0gbmV3IHNhZ2VtYWtlci5Nb2RlbCh0aGlzLCBcIk1vZGVsXCIsIHtcbiAgICAgIGNvbnRhaW5lcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGltYWdlLFxuICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICBORVVST05fUlRfTlVNX0NPUkVTOiBwcm9wcy5tb2RlbERhdGEudHBEZWdyZWUudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIFRTX0RFRkFVTFRfUkVTUE9OU0VfVElNRU9VVDogKDYwICogNjApLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBUU19ERUZBVUxUX1dPUktFUlNfUEVSX01PREVMOiBNYXRoLmZsb29yKFxuICAgICAgICAgICAgICBpbnN0YW5jZVR5cGUuYWNjZWxlcmF0b3JDaGlwcy5uZXVyb254Q29yZXMgL1xuICAgICAgICAgICAgICAgIHByb3BzLm1vZGVsRGF0YS50cERlZ3JlZSxcbiAgICAgICAgICAgICkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIE1PREVMOiBwcm9wcy5tb2RlbERhdGEubW9kZWxJZE9yUGF0aCA/PyBcIi4vbW9kZWxcIixcbiAgICAgICAgICAgIENPTVBJTEVEX0FSVElGQUNUOlxuICAgICAgICAgICAgICBwcm9wcy5tb2RlbERhdGEuY29tcGlsZWRBcnRpZmFjdFBhdGggPz8gXCIuL2NvbXBpbGVkXCIsXG4gICAgICAgICAgICBUUF9ERUdSRUU6IHByb3BzLm1vZGVsRGF0YS50cERlZ3JlZS50b1N0cmluZygpLFxuICAgICAgICAgICAgTl9QT1NJVElPTlM6IHByb3BzLm1vZGVsRGF0YS5uUG9zaXRpb25zLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBPUFRfTEVWRUw6IHByb3BzLm1vZGVsRGF0YS5vcHRMZXZlbC50b1N0cmluZygpLFxuICAgICAgICAgICAgUVVBTlRfRFRZUEU6IHByb3BzLm1vZGVsRGF0YS5xdWFudER0eXBlPy50b1N0cmluZygpID8/IFwiXCIsXG4gICAgICAgICAgICAuLi5wcm9wcy5lbnZpcm9ubWVudCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBjb25zdCBjZm5Nb2RlbCA9IG1vZGVsLm5vZGUuZmluZENoaWxkKFwiTW9kZWxcIikgYXMgQ2ZuTW9kZWw7XG4gICAgY2ZuTW9kZWwuYWRkUHJvcGVydHlPdmVycmlkZShcbiAgICAgIFwiUHJpbWFyeUNvbnRhaW5lci5Nb2RlbERhdGFTb3VyY2UuUzNEYXRhU291cmNlLlMzVXJpXCIsXG4gICAgICBwcm9wcy5tb2RlbERhdGEuYnVja2V0LnMzVXJsRm9yT2JqZWN0KFxuICAgICAgICBUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMubW9kZWxEYXRhLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeCkgfHxcbiAgICAgICAgICBwcm9wcy5tb2RlbERhdGEuY29tcGlsZWRBcnRpZmFjdFMzUHJlZml4LmVuZHNXaXRoKFwiL1wiKVxuICAgICAgICAgID8gcHJvcHMubW9kZWxEYXRhLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeFxuICAgICAgICAgIDogYCR7cHJvcHMubW9kZWxEYXRhLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeH0vYCxcbiAgICAgICksXG4gICAgKTtcbiAgICBjZm5Nb2RlbC5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgXCJQcmltYXJ5Q29udGFpbmVyLk1vZGVsRGF0YVNvdXJjZS5TM0RhdGFTb3VyY2UuUzNEYXRhVHlwZUJpdHNcIixcbiAgICAgIFwiUzNQcmVmaXhcIixcbiAgICApO1xuICAgIGNmbk1vZGVsLmFkZFByb3BlcnR5T3ZlcnJpZGUoXG4gICAgICBcIlByaW1hcnlDb250YWluZXIuTW9kZWxEYXRhU291cmNlLlMzRGF0YVNvdXJjZS5Db21wcmVzc2lvblR5cGVcIixcbiAgICAgIFwiTm9uZVwiLFxuICAgICk7XG4gICAgcHJvcHMubW9kZWxEYXRhLmJ1Y2tldC5ncmFudFJlYWQobW9kZWwpO1xuICAgIHByb3BzLm1vZGVsRGF0YS5iaW5kKHRoaXMsIG1vZGVsKTtcbiAgICBjb25zdCBlbmRwb2ludENvbmZpZyA9IG5ldyBzYWdlbWFrZXIuRW5kcG9pbnRDb25maWcoXG4gICAgICB0aGlzLFxuICAgICAgXCJFbmRwb2ludENvbmZpZ1wiLFxuICAgICAge1xuICAgICAgICBpbnN0YW5jZVByb2R1Y3Rpb25WYXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgICAgdmFyaWFudE5hbWU6IFwiUHJpbWFyeVZhcmlhbnRcIixcbiAgICAgICAgICAgIGluc3RhbmNlVHlwZTogc2FnZW1ha2VyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgICAgICAgICAgYG1sLiR7aW5zdGFuY2VUeXBlLnRvU3RyaW5nKCl9YCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBjb25zdCBjZm5FbmRwb2ludENvbmZpZyA9IGVuZHBvaW50Q29uZmlnLm5vZGUuZmluZENoaWxkKFxuICAgICAgXCJFbmRwb2ludENvbmZpZ1wiLFxuICAgICkgYXMgQ2ZuRW5kcG9pbnRDb25maWc7XG4gICAgY29uc3Qgdm9sdW1lU2l6ZSA9XG4gICAgICBwcm9wcy52b2x1bWVTaXplID8/XG4gICAgICBTaXplLmdpYmlieXRlcyhcbiAgICAgICAgTWF0aC5jZWlsKFxuICAgICAgICAgIHByb3BzLm1vZGVsRGF0YS5wYXJhbWV0ZXJzLnRvQmlsbGlvbigpICogMyA+IDUxMlxuICAgICAgICAgICAgPyA1MTJcbiAgICAgICAgICAgIDogcHJvcHMubW9kZWxEYXRhLnBhcmFtZXRlcnMudG9CaWxsaW9uKCkgKiAzLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICBjZm5FbmRwb2ludENvbmZpZy5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgXCJQcm9kdWN0aW9uVmFyaWFudHMuMC5Wb2x1bWVTaXplSW5HQlwiLFxuICAgICAgaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCkuc3RhcnRzV2l0aChcIm1sLnRybjFcIilcbiAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgOiB2b2x1bWVTaXplLnRvR2liaWJ5dGVzKCksXG4gICAgKTtcbiAgICBjb25zdCBtb2RlbERhdGFEb3dubG9hZFRpbWVvdXQgPVxuICAgICAgcHJvcHMubW9kZWxEYXRhRG93bmxvYWRUaW1lb3V0ID8/XG4gICAgICBpbmZlcmVuY2VNb2RlbERhdGFEb3dubG9hZFRpbWUodm9sdW1lU2l6ZSk7XG4gICAgY2ZuRW5kcG9pbnRDb25maWcuYWRkUHJvcGVydHlPdmVycmlkZShcbiAgICAgIFwiUHJvZHVjdGlvblZhcmlhbnRzLjAuTW9kZWxEYXRhRG93bmxvYWRUaW1lb3V0SW5TZWNvbmRzXCIsXG4gICAgICBtb2RlbERhdGFEb3dubG9hZFRpbWVvdXQudG9TZWNvbmRzKCksXG4gICAgKTtcbiAgICBjZm5FbmRwb2ludENvbmZpZy5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgXCJQcm9kdWN0aW9uVmFyaWFudHMuMC5Db250YWluZXJTdGFydHVwSGVhbHRoQ2hlY2tUaW1lb3V0SW5TZWNvbmRzXCIsXG4gICAgICAoXG4gICAgICAgIHByb3BzLmNvbnRhaW5lclN0YXJ0dXBIZWFsdGhDaGVja1RpbWVvdXQgPz8gbW9kZWxEYXRhRG93bmxvYWRUaW1lb3V0XG4gICAgICApLnRvU2Vjb25kcygpLFxuICAgICk7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBuZXcgc2FnZW1ha2VyLkVuZHBvaW50KHRoaXMsIFwiRW5kcG9pbnRcIiwge1xuICAgICAgZW5kcG9pbnRDb25maWcsXG4gICAgfSk7XG4gICAgdGhpcy5lbmRwb2ludEFybiA9IGVuZHBvaW50LmVuZHBvaW50QXJuO1xuICAgIHRoaXMuZW5kcG9pbnROYW1lID0gZW5kcG9pbnQuZW5kcG9pbnROYW1lO1xuICAgIHRoaXMuZW5kcG9pbnQgPSBlbmRwb2ludDtcbiAgfVxuICBncmFudEludm9rZShncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmVuZHBvaW50LmdyYW50SW52b2tlKGdyYW50ZWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RJbnN0YW5jZVR5cGVCeVRwRGVncmVlKHRwRGVncmVlOiBudW1iZXIpIHtcbiAgICBjb25zdCBpbnN0YW5jZVR5cGVzID0gW1xuICAgICAgTmV1cm9ueEluc3RhbmNlVHlwZS5JTkYyXzhYTEFSR0UsXG4gICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfMjRYTEFSR0UsXG4gICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfNDhYTEFSR0UsXG4gICAgICBOZXVyb254SW5zdGFuY2VUeXBlLlRSTjFfMzJYTEFSR0UsXG4gICAgXTtcbiAgICBmb3IgKGNvbnN0IGluc3RhbmNlVHlwZSBvZiBpbnN0YW5jZVR5cGVzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGluc3RhbmNlVHlwZS5zdXBwb3J0ZWRUZW5zb3JQYXJhbGxlbGlzbS5maW5kKCh0cCkgPT4gdHAgPj0gdHBEZWdyZWUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlVHlwZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJUaGlzIG1vZGVsIGlzIHRvbyBsYXJnZSwgSSBjYW4gbm90IHN1cHBvcnQgdGhpcyBtb2RlbCBjdXJyZW50IHZlcnNpb24uXCIsXG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbmZlcmVuY2VNb2RlbERhdGFEb3dubG9hZFRpbWUodm9sdW1lU2l6ZTogU2l6ZSkge1xuICBjb25zdCBzZWNvbmRzID0gdm9sdW1lU2l6ZS50b0dpYmlieXRlcygpICogMTU7XG4gIHJldHVybiBEdXJhdGlvbi5zZWNvbmRzKHNlY29uZHMgPCAzNjAwID8gc2Vjb25kcyA6IDM2MDApO1xufVxuIl19
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FnZW1ha2VyLWluZmVyZW5jZS10b29sa2l0LXRueC1zYWdlbWFrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2FnZW1ha2VyLWluZmVyZW5jZS10b29sa2l0LXRueC9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54LXNhZ2VtYWtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrRUFBaUU7QUFDakUsMERBQTBEO0FBQzFELDZDQUFvRDtBQUdwRCxxRUFJdUM7QUFFdkMsMkNBQW9EO0FBQ3BELCtCQUE0QjtBQUM1Qiw2Q0FXeUI7QUF3Q3pCOztHQUVHO0FBQ0gsTUFBYSx1REFBdUQ7SUFDbEUsTUFBTSxDQUFDLFVBQVUsQ0FDZixNQUFlLEVBQ2YsTUFBYyxFQUNkLE9BQW1DO1FBRW5DLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxjQUFjLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQztRQUM5RCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQztRQUN0RCxNQUFNLFFBQVEsR0FBRyxrQkFBUSxDQUFDLFlBQVksQ0FBQztRQUN2QyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLFNBQVMsSUFBSSxDQUFDLENBQUM7UUFDekQsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE1BQU07WUFDcEMsQ0FBQyxDQUFDLElBQUEsNkJBQW1CLEVBQ2pCLE9BQU8sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQ2pDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUNyQixzQkFBWSxDQUFDLFlBQVksRUFDekIsVUFBVSxFQUNWLFNBQVMsQ0FDVjtZQUNILENBQUMsQ0FBQyxJQUFBLDRDQUFrQyxFQUNoQyxPQUFPLENBQUMsVUFBVSxFQUNsQixVQUFVLEVBQ1YsU0FBUyxDQUNWLENBQUM7UUFDTixNQUFNLG9CQUFvQixHQUFHO1lBQzNCLDZCQUFtQixDQUFDLFlBQVk7WUFD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RyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFtQjtRQUM3QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxRQUFnQjtRQUNuRCxNQUFNLGFBQWEsR0FBRztZQUNwQiw2QkFBbUIsQ0FBQyxZQUFZO1lBQ2hDLDZCQUFtQixDQUFDLGFBQWE7WUFDakMsNkJBQW1CLENBQUMsYUFBYTtZQUNqQyw2QkFBbUIsQ0FBQyxhQUFhO1NBQ2xDLENBQUM7UUFDRixLQUFLLE1BQU0sWUFBWSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLElBQ0UsWUFBWSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLFFBQVEsQ0FBQyxFQUNwRSxDQUFDO2dCQUNELE9BQU8sWUFBWSxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYix3RUFBd0UsQ0FDekUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTFKRCx3SUEwSkM7QUFFRCxTQUFTLDhCQUE4QixDQUFDLFVBQWdCO0lBQ3RELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDOUMsT0FBTyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250YWluZXJJbWFnZUJ1aWxkIH0gZnJvbSBcIkBjZGtsYWJzL2RlcGxveS10aW1lLWJ1aWxkXCI7XG5pbXBvcnQgKiBhcyBzYWdlbWFrZXIgZnJvbSBcIkBhd3MtY2RrL2F3cy1zYWdlbWFrZXItYWxwaGFcIjtcbmltcG9ydCB7IER1cmF0aW9uLCBTaXplLCBUb2tlbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgR3JhbnQsIElHcmFudGFibGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgSUJ1Y2tldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7XG4gIEJ1Y2tldERlcGxveW1lbnQsXG4gIElTb3VyY2UsXG4gIFNvdXJjZSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zMy1kZXBsb3ltZW50XCI7XG5pbXBvcnQgeyBDZm5FbmRwb2ludENvbmZpZywgQ2ZuTW9kZWwgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNhZ2VtYWtlclwiO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJRGVwZW5kYWJsZSB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7XG4gIGNhbGNNZW1vcnlGb290cHJpbnQsXG4gIGNhbGNUZW5zb3JQYXJhbGxlbCxcbiAgRGF0YVR5cGVCaXRzLFxuICBJTmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgaW5mZXJNZW1vcnlGb290cHJpbnRGcm9tUGFyYW1ldGVycyxcbiAgTW9kZWxDb25maWcsXG4gIE5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gIE9wdExldmVsLFxuICBQYXJhbWV0ZXJzLFxuICBRdWFudER0eXBlLFxufSBmcm9tIFwiLi4vYmFzZS9uZXVyb254XCI7XG5pbXBvcnQge1xuICBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZU9wdGlvbnMsXG4gIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlcixcbn0gZnJvbSBcIi4vc2FnZW1ha2VyLWluZmVyZW5jZS10b29sa2l0LXRueC1jb21waWxlclwiO1xuXG4vKipcbiAqIFByZWNvbXBpbGVkIG1vZGVsIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGlsZWRNb2RlbE9wdGlvbnMge1xuICAvKipcbiAgICogTmV1cm9ueCBjb21waWxlIG9wdGlvbnMuXG4gICAqIEBkZWZhdWx0IC0gRWFjaCBwcm9wZXJ0aWVzIGFyZSBzZXQgZGVmYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbXBpbGVPcHRpb25zPzogU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueENvbXBpbGVPcHRpb25zO1xuICAvKipcbiAgICogQ29kZSB1c2VkIGZvciBpbmZlcmVuY2VcbiAgICogQGRlZmF1bHQgLSB1c2luZyB0aGUgcHJlZGVmaW5lZCBjb2RlXG4gICAqL1xuICByZWFkb25seSBjb2RlPzogSVNvdXJjZTtcbiAgLyoqXG4gICAqIE1vZGVsIElEIG9yIHNhdmVkIHBhdGhcbiAgICogQGRlZmF1bHQgXCIuL21vZGVsXCJcbiAgICovXG4gIHJlYWRvbmx5IG1vZGVsSWRPclBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB3aGVyZSBjb21waWxlZCBhcnRpZmFjdHMgKGkuZS4geHh4Lm5lZmYpIGFyZSBzdG9yZWRcbiAgICogQGRlZmF1bHQgXCIuL2NvbXBpbGVkXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbXBpbGVkQXJ0aWZhY3RQYXRoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldENvbXBpbGVkTW9kZWxPcHRpb25zIGV4dGVuZHMgQ29tcGlsZWRNb2RlbE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBwYXJhbWV0ZXJzIG9mIG1vZGVsLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVyczogUGFyYW1ldGVycztcbiAgcmVhZG9ubHkgY29uZmlnPzogTW9kZWxDb25maWc7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGNsYXNzIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhTYWdlTWFrZXJJbmZlcmVuY2VNb2RlbERhdGEge1xuICBzdGF0aWMgZnJvbUJ1Y2tldChcbiAgICBidWNrZXQ6IElCdWNrZXQsXG4gICAgcHJlZml4OiBzdHJpbmcsXG4gICAgb3B0aW9uczogQnVja2V0Q29tcGlsZWRNb2RlbE9wdGlvbnMsXG4gICkge1xuICAgIGNvbnN0IG5Qb3NpdGlvbnMgPSBvcHRpb25zLmNvbXBpbGVPcHRpb25zPy5uUG9zaXRpb25zID8/IDQwOTY7XG4gICAgY29uc3QgcXVhbnREdHlwZSA9IG9wdGlvbnMuY29tcGlsZU9wdGlvbnM/LnF1YW50RHR5cGU7XG4gICAgY29uc3Qgb3B0TGV2ZWwgPSBPcHRMZXZlbC5CRVNUX0JBTEFOQ0U7XG4gICAgY29uc3QgYmF0Y2hTaXplID0gb3B0aW9ucy5jb21waWxlT3B0aW9ucz8uYmF0Y2hTaXplID8/IDE7XG4gICAgY29uc3QgbWVtb3J5Rm9vdHByaW50ID0gb3B0aW9ucy5jb25maWdcbiAgICAgID8gY2FsY01lbW9yeUZvb3RwcmludChcbiAgICAgICAgICBvcHRpb25zLmNvbmZpZy5lbWJlZGRpbmdEaW1lbnNpb24sXG4gICAgICAgICAgb3B0aW9ucy5jb25maWcubGF5ZXJzLFxuICAgICAgICAgIERhdGFUeXBlQml0cy5CRjE2X09SX0ZQMTYsXG4gICAgICAgICAgblBvc2l0aW9ucyxcbiAgICAgICAgICBiYXRjaFNpemUsXG4gICAgICAgIClcbiAgICAgIDogaW5mZXJNZW1vcnlGb290cHJpbnRGcm9tUGFyYW1ldGVycyhcbiAgICAgICAgICBvcHRpb25zLnBhcmFtZXRlcnMsXG4gICAgICAgICAgblBvc2l0aW9ucyxcbiAgICAgICAgICBiYXRjaFNpemUsXG4gICAgICAgICk7XG4gICAgY29uc3QgbmV1cm9ueEluc3RhbmNlVHlwZXMgPSBbXG4gICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfOFhMQVJHRSxcbiAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl8yNFhMQVJHRSxcbiAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl80OFhMQVJHRSxcbiAgICBdO1xuICAgIGNvbnN0IGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnMgPSBuZXVyb254SW5zdGFuY2VUeXBlc1xuICAgICAgLmZsYXRNYXAoKG5ldXJvbnhJbnN0YW5jZVR5cGUpID0+XG4gICAgICAgIGNhbGNUZW5zb3JQYXJhbGxlbChcbiAgICAgICAgICBuZXVyb254SW5zdGFuY2VUeXBlLFxuICAgICAgICAgIG1lbW9yeUZvb3RwcmludCxcbiAgICAgICAgICBvcHRpb25zLmNvbmZpZz8uYXR0ZW50aW9uSGVhZHMsXG4gICAgICAgICkubWFwKCh2KSA9PiAoe1xuICAgICAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICAgICAgLi4udixcbiAgICAgICAgfSkpLFxuICAgICAgKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKHBhdHRlcm4pID0+XG4gICAgICAgICAgIW9wdGlvbnMuY29tcGlsZU9wdGlvbnM/LnRwRGVncmVlIHx8XG4gICAgICAgICAgcGF0dGVybi50cCA9PT0gb3B0aW9ucy5jb21waWxlT3B0aW9ucy50cERlZ3JlZSxcbiAgICAgICk7XG4gICAgaWYgKGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBObyBhdmFpbGFibGUgaW5zdGFuY2UgdHlwZS4gWW91IGNhbiB1c2UgdHBEZWdyZWUgYXJlICR7YXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJucy5tYXAoKHApID0+IHAudHApLmpvaW4oXCIsIFwiKX0uYCxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHRwRGVncmVlID1cbiAgICAgIG9wdGlvbnMuY29tcGlsZU9wdGlvbnM/LnRwRGVncmVlID8/IGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnNbMF0udHA7XG4gICAgcmV0dXJuIG5ldyBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54U2FnZU1ha2VySW5mZXJlbmNlTW9kZWxEYXRhKHtcbiAgICAgIGJ1Y2tldCxcbiAgICAgIGNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeDogcHJlZml4LFxuICAgICAgblBvc2l0aW9ucyxcbiAgICAgIHF1YW50RHR5cGUsXG4gICAgICBvcHRMZXZlbCxcbiAgICAgIHRwRGVncmVlLFxuICAgICAgY29kZTogb3B0aW9ucy5jb2RlLFxuICAgICAgbW9kZWxJZE9yUGF0aDogb3B0aW9ucy5tb2RlbElkT3JQYXRoLFxuICAgICAgcGFyYW1ldGVyczogb3B0aW9ucy5wYXJhbWV0ZXJzLFxuICAgIH0pO1xuICB9XG4gIHN0YXRpYyBmcm9tTmV1cm9ueENvbXBpbGVyKFxuICAgIGNvbXBpbGVyOiBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZXIsXG4gICAgY29kZT86IElTb3VyY2UsXG4gICkge1xuICAgIGNvbnN0IGNvbXBpbGVkTW9kZWwgPSBjb21waWxlci5jb21waWxlKCk7XG4gICAgcmV0dXJuIG5ldyBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54U2FnZU1ha2VySW5mZXJlbmNlTW9kZWxEYXRhKHtcbiAgICAgIC4uLmNvbXBpbGVkTW9kZWwsXG4gICAgICBvcHRMZXZlbDogY29tcGlsZWRNb2RlbC5vcHRMZXZlbCA/PyBPcHRMZXZlbC5CRVNUX0JBTEFOQ0UsXG4gICAgICBjb21waWxlZEFydGlmYWN0UzNQcmVmaXg6IGNvbXBpbGVkTW9kZWwuczNQcmVmaXgsXG4gICAgICBwYXJhbWV0ZXJzOiBjb21waWxlci5tb2RlbC5vcHRpb25zLnBhcmFtZXRlcnMsXG4gICAgICBjb2RlLFxuICAgICAgZGVwZW5kYWJsZXM6IFtjb21waWxlci5ub2RlLmRlZmF1bHRDaGlsZCFdLFxuICAgIH0pO1xuICB9XG4gIHJlYWRvbmx5IGJ1Y2tldDogSUJ1Y2tldDtcbiAgcmVhZG9ubHkgY29tcGlsZWRBcnRpZmFjdFMzUHJlZml4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvZGU6IElTb3VyY2U7XG4gIHJlYWRvbmx5IHRwRGVncmVlOiBudW1iZXI7XG4gIHJlYWRvbmx5IHF1YW50RHR5cGU/OiBRdWFudER0eXBlO1xuICByZWFkb25seSBuUG9zaXRpb25zOiBudW1iZXI7XG4gIHJlYWRvbmx5IG9wdExldmVsOiBPcHRMZXZlbDtcbiAgcmVhZG9ubHkgbW9kZWxJZE9yUGF0aD86IHN0cmluZztcbiAgcmVhZG9ubHkgY29tcGlsZWRBcnRpZmFjdFBhdGg/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM6IFBhcmFtZXRlcnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVwZW5kYWJsZXM6IElEZXBlbmRhYmxlW107XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihvcHRpb25zOiB7XG4gICAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuICAgIHJlYWRvbmx5IGNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHRwRGVncmVlOiBudW1iZXI7XG4gICAgcmVhZG9ubHkgcXVhbnREdHlwZT86IFF1YW50RHR5cGU7XG4gICAgcmVhZG9ubHkgblBvc2l0aW9uczogbnVtYmVyO1xuICAgIHJlYWRvbmx5IG9wdExldmVsOiBPcHRMZXZlbDtcbiAgICByZWFkb25seSBjb2RlPzogSVNvdXJjZTtcbiAgICByZWFkb25seSBtb2RlbElkT3JQYXRoPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGNvbXBpbGVkQXJ0aWZhY3RQYXRoPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHBhcmFtZXRlcnM6IFBhcmFtZXRlcnM7XG4gICAgcmVhZG9ubHkgZGVwZW5kYWJsZXM/OiBJRGVwZW5kYWJsZVtdO1xuICB9KSB7XG4gICAgdGhpcy5idWNrZXQgPSBvcHRpb25zLmJ1Y2tldDtcbiAgICB0aGlzLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeCA9IG9wdGlvbnMuY29tcGlsZWRBcnRpZmFjdFMzUHJlZml4O1xuICAgIHRoaXMuY29kZSA9XG4gICAgICBvcHRpb25zLmNvZGUgPz9cbiAgICAgIFNvdXJjZS5hc3NldChcbiAgICAgICAgam9pbihcbiAgICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgICAgXCIuLi8uLi9zY3JpcHRzL2luZmVyZW5jZS9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54L2NvZGVcIixcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgdGhpcy50cERlZ3JlZSA9IG9wdGlvbnMudHBEZWdyZWU7XG4gICAgdGhpcy5xdWFudER0eXBlID0gb3B0aW9ucy5xdWFudER0eXBlO1xuICAgIHRoaXMublBvc2l0aW9ucyA9IG9wdGlvbnMublBvc2l0aW9ucztcbiAgICB0aGlzLm9wdExldmVsID0gb3B0aW9ucy5vcHRMZXZlbDtcbiAgICB0aGlzLm1vZGVsSWRPclBhdGggPSBvcHRpb25zLm1vZGVsSWRPclBhdGg7XG4gICAgdGhpcy5jb21waWxlZEFydGlmYWN0UGF0aCA9IG9wdGlvbnMuY29tcGlsZWRBcnRpZmFjdFBhdGg7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gb3B0aW9ucy5wYXJhbWV0ZXJzO1xuICAgIHRoaXMuZGVwZW5kYWJsZXMgPSBvcHRpb25zLmRlcGVuZGFibGVzID8/IFtdO1xuICB9XG5cbiAgYmluZChzY29wZTogQ29uc3RydWN0LCBtb2RlbDogc2FnZW1ha2VyLklNb2RlbCkge1xuICAgIGNvbnN0IGRlcGxveSA9IG5ldyBCdWNrZXREZXBsb3ltZW50KHNjb3BlLCBcIkNvZGVEZXBsb3ltZW50XCIsIHtcbiAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiB0aGlzLmJ1Y2tldCxcbiAgICAgIHNvdXJjZXM6IFt0aGlzLmNvZGVdLFxuICAgICAgZGVzdGluYXRpb25LZXlQcmVmaXg6IGpvaW4odGhpcy5jb21waWxlZEFydGlmYWN0UzNQcmVmaXgsIFwiY29kZVwiKSxcbiAgICB9KTtcbiAgICBkZXBsb3kubm9kZS5hZGREZXBlbmRlbmN5KC4uLnRoaXMuZGVwZW5kYWJsZXMpO1xuICAgIG1vZGVsLm5vZGUuYWRkRGVwZW5kZW5jeShkZXBsb3kpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueFNhZ2VNYWtlclJlYWx0aW1lSW5mZXJlbmNlRW5kcG9pbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBNb2RlbCBkYXRhIGZvciBTYWdlTWFrZXIgaW5mZXJlbmNlLlxuICAgKiBUaGUgbW9kZWwgZGF0YSByZXF1aXJlcyBhdCBsZWFzdCBjb21waWxlZCBhcnRpZmFjdHMuXG4gICAqL1xuICByZWFkb25seSBtb2RlbERhdGE6IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhTYWdlTWFrZXJJbmZlcmVuY2VNb2RlbERhdGE7XG4gIC8qKlxuICAgKiBBbiBpbWFnZSBvZiB0aGUgY29udGFpbmVyIHdoZXJlIHRoZSBpbmZlcmVuY2Ugam9iIGlzIGV4ZWN1dGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBzYWdlbWFrZXIuQ29udGFpbmVySW1hZ2U7XG4gIC8qKlxuICAgKiBBIG1hcCBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gcGFzcyBpbnRvIHRoZSBjb250YWluZXIuXG4gICAqIEBkZWZhdWx0IC0gT25seSB0aGUgcHJlZGVmaW5lZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcmVxdWlyZWQgdG8gdXNlIE5ldXJvbnggaGF2ZSBiZWVuIHNldC5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSB0eXBlIG9mIGNvbXBpbGUgd29ya2VyIGluc3RhbmNlLlxuICAgKiBAZGVmYXVsdCAtIEl0IGlzIGRldGVybWluZWQgYXV0b21hdGljYWxseSBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBtb2RlbCBwYXJhbWV0ZXJzIGFuZCBjb21waWxhdGlvbiBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VUeXBlPzogSU5ldXJvbnhJbnN0YW5jZVR5cGU7XG4gIC8qKlxuICAgKiBUaGUgc2l6ZSwgb2YgdGhlIE1MIHN0b3JhZ2Ugdm9sdW1lIGF0dGFjaGVkIHRvIGluZGl2aWR1YWwgaW5mZXJlbmNlIGluc3RhbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvZHVjdGlvbiB2YXJpYW50LlxuICAgKiBDdXJyZW50bHkgb25seSBBbWF6b24gRUJTIGdwMiBzdG9yYWdlIHZvbHVtZXMgYXJlIHN1cHBvcnRlZC5cbiAgICogQHNlZSBodHRwczovL2F3cy5hbWF6b24uY29tL2pwL3JlbGVhc2Vub3Rlcy9ob3N0LWluc3RhbmNlLXN0b3JhZ2Utdm9sdW1lcy10YWJsZVxuICAgKiBAZGVmYXVsdCAtIDMgR0IgcGVyIGJpbGxpb24gcGFyYW1ldGVyIChNYXggNTEyIEdCKVxuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lU2l6ZT86IFNpemU7XG4gIC8qKlxuICAgKiBUaGUgdGltZW91dCB2YWx1ZSwgdG8gZG93bmxvYWQgYW5kIGV4dHJhY3QgdGhlIG1vZGVsIHRoYXQgeW91IHdhbnQgdG8gaG9zdCBmcm9tIEFtYXpvbiBTM1xuICAgKiB0byB0aGUgaW5kaXZpZHVhbCBpbmZlcmVuY2UgaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcHJvZHVjdGlvbiB2YXJpYW50LlxuICAgKiBAZGVmYXVsdCAtIDYwIHNlY29uZHMsIHdoZW4gYHZvbHVtZVNpemVgIGxhcmdlciB0aGFuIDMwR0IgdGhlbiAxR0IgeCAxNSBzZWNvbmRzIChtYXggNjAgbWludXRlcylcbiAgICovXG4gIHJlYWRvbmx5IG1vZGVsRGF0YURvd25sb2FkVGltZW91dD86IER1cmF0aW9uO1xuICAvKipcbiAgICogVGhlIHRpbWVvdXQgdmFsdWUsIGZvciB5b3VyIGluZmVyZW5jZSBjb250YWluZXIgdG8gcGFzcyBoZWFsdGggY2hlY2sgYnkgU2FnZU1ha2VyIEhvc3RpbmcuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NhZ2VtYWtlci9sYXRlc3QvZGcveW91ci1hbGdvcml0aG1zLWluZmVyZW5jZS1jb2RlLmh0bWwjeW91ci1hbGdvcml0aG1zLWluZmVyZW5jZS1hbGdvLXBpbmctcmVxdWVzdHNcbiAgICogQGRlZmF1bHQgLSA2MCBzZWNvbmRzLCB3aGVuIHNldCB0aGUgYG1vZGVsRGF0YURvd25sb2FkVGltZW91dGAgdGhlbiB1c2Ugc2FtZSB2YWx1ZSAobWF4IDYwIG1pbnV0ZXMpXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJTdGFydHVwSGVhbHRoQ2hlY2tUaW1lb3V0PzogRHVyYXRpb247XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGNsYXNzIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhTYWdlTWFrZXJSZWFsdGltZUluZmVyZW5jZUVuZHBvaW50IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGVuZHBvaW50LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludEFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGVuZHBvaW50LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBlbmRwb2ludDogc2FnZW1ha2VyLkVuZHBvaW50O1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhTYWdlTWFrZXJSZWFsdGltZUluZmVyZW5jZUVuZHBvaW50UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgbGV0IGltYWdlOiBzYWdlbWFrZXIuQ29udGFpbmVySW1hZ2U7XG4gICAgaWYgKHByb3BzLmltYWdlKSB7XG4gICAgICBpbWFnZSA9IHByb3BzLmltYWdlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBidWlsZCA9IG5ldyBDb250YWluZXJJbWFnZUJ1aWxkKHRoaXMsIFwiSW5mZXJlbmNlSW1hZ2VCdWlsZFwiLCB7XG4gICAgICAgIGRpcmVjdG9yeTogam9pbihcbiAgICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgICAgXCIuLi8uLi9zY3JpcHRzL2luZmVyZW5jZS9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54XCIsXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICAgIGltYWdlID0gc2FnZW1ha2VyLkNvbnRhaW5lckltYWdlLmZyb21FY3JSZXBvc2l0b3J5KFxuICAgICAgICBidWlsZC5yZXBvc2l0b3J5LFxuICAgICAgICBidWlsZC5pbWFnZVRhZyxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGluc3RhbmNlVHlwZSA9XG4gICAgICBwcm9wcy5pbnN0YW5jZVR5cGUgPz9cbiAgICAgIHRoaXMuc2VsZWN0SW5zdGFuY2VUeXBlQnlUcERlZ3JlZShwcm9wcy5tb2RlbERhdGEudHBEZWdyZWUpO1xuICAgIGNvbnN0IG1vZGVsID0gbmV3IHNhZ2VtYWtlci5Nb2RlbCh0aGlzLCBcIk1vZGVsXCIsIHtcbiAgICAgIGNvbnRhaW5lcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGltYWdlLFxuICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICBORVVST05fUlRfTlVNX0NPUkVTOiBwcm9wcy5tb2RlbERhdGEudHBEZWdyZWUudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIFRTX0RFRkFVTFRfUkVTUE9OU0VfVElNRU9VVDogKDYwICogNjApLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBUU19ERUZBVUxUX1dPUktFUlNfUEVSX01PREVMOiBNYXRoLmZsb29yKFxuICAgICAgICAgICAgICBpbnN0YW5jZVR5cGUuYWNjZWxlcmF0b3JDaGlwcy5uZXVyb254Q29yZXMgL1xuICAgICAgICAgICAgICAgIHByb3BzLm1vZGVsRGF0YS50cERlZ3JlZSxcbiAgICAgICAgICAgICkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIE1PREVMOiBwcm9wcy5tb2RlbERhdGEubW9kZWxJZE9yUGF0aCA/PyBcIi4vbW9kZWxcIixcbiAgICAgICAgICAgIENPTVBJTEVEX0FSVElGQUNUOlxuICAgICAgICAgICAgICBwcm9wcy5tb2RlbERhdGEuY29tcGlsZWRBcnRpZmFjdFBhdGggPz8gXCIuL2NvbXBpbGVkXCIsXG4gICAgICAgICAgICBUUF9ERUdSRUU6IHByb3BzLm1vZGVsRGF0YS50cERlZ3JlZS50b1N0cmluZygpLFxuICAgICAgICAgICAgTl9QT1NJVElPTlM6IHByb3BzLm1vZGVsRGF0YS5uUG9zaXRpb25zLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBPUFRfTEVWRUw6IHByb3BzLm1vZGVsRGF0YS5vcHRMZXZlbC50b1N0cmluZygpLFxuICAgICAgICAgICAgUVVBTlRfRFRZUEU6IHByb3BzLm1vZGVsRGF0YS5xdWFudER0eXBlPy50b1N0cmluZygpID8/IFwiXCIsXG4gICAgICAgICAgICAuLi5wcm9wcy5lbnZpcm9ubWVudCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBjb25zdCBjZm5Nb2RlbCA9IG1vZGVsLm5vZGUuZmluZENoaWxkKFwiTW9kZWxcIikgYXMgQ2ZuTW9kZWw7XG4gICAgY2ZuTW9kZWwuYWRkUHJvcGVydHlPdmVycmlkZShcbiAgICAgIFwiUHJpbWFyeUNvbnRhaW5lci5Nb2RlbERhdGFTb3VyY2UuUzNEYXRhU291cmNlLlMzVXJpXCIsXG4gICAgICBwcm9wcy5tb2RlbERhdGEuYnVja2V0LnMzVXJsRm9yT2JqZWN0KFxuICAgICAgICBUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMubW9kZWxEYXRhLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeCkgfHxcbiAgICAgICAgICBwcm9wcy5tb2RlbERhdGEuY29tcGlsZWRBcnRpZmFjdFMzUHJlZml4LmVuZHNXaXRoKFwiL1wiKVxuICAgICAgICAgID8gcHJvcHMubW9kZWxEYXRhLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeFxuICAgICAgICAgIDogYCR7cHJvcHMubW9kZWxEYXRhLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeH0vYCxcbiAgICAgICksXG4gICAgKTtcbiAgICBjZm5Nb2RlbC5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgXCJQcmltYXJ5Q29udGFpbmVyLk1vZGVsRGF0YVNvdXJjZS5TM0RhdGFTb3VyY2UuUzNEYXRhVHlwZUJpdHNcIixcbiAgICAgIFwiUzNQcmVmaXhcIixcbiAgICApO1xuICAgIGNmbk1vZGVsLmFkZFByb3BlcnR5T3ZlcnJpZGUoXG4gICAgICBcIlByaW1hcnlDb250YWluZXIuTW9kZWxEYXRhU291cmNlLlMzRGF0YVNvdXJjZS5Db21wcmVzc2lvblR5cGVcIixcbiAgICAgIFwiTm9uZVwiLFxuICAgICk7XG4gICAgcHJvcHMubW9kZWxEYXRhLmJ1Y2tldC5ncmFudFJlYWQobW9kZWwpO1xuICAgIHByb3BzLm1vZGVsRGF0YS5iaW5kKHRoaXMsIG1vZGVsKTtcbiAgICBjb25zdCBlbmRwb2ludENvbmZpZyA9IG5ldyBzYWdlbWFrZXIuRW5kcG9pbnRDb25maWcoXG4gICAgICB0aGlzLFxuICAgICAgXCJFbmRwb2ludENvbmZpZ1wiLFxuICAgICAge1xuICAgICAgICBpbnN0YW5jZVByb2R1Y3Rpb25WYXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgICAgdmFyaWFudE5hbWU6IFwiUHJpbWFyeVZhcmlhbnRcIixcbiAgICAgICAgICAgIGluc3RhbmNlVHlwZTogc2FnZW1ha2VyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgICAgICAgICAgYG1sLiR7aW5zdGFuY2VUeXBlLnRvU3RyaW5nKCl9YCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBjb25zdCBjZm5FbmRwb2ludENvbmZpZyA9IGVuZHBvaW50Q29uZmlnLm5vZGUuZmluZENoaWxkKFxuICAgICAgXCJFbmRwb2ludENvbmZpZ1wiLFxuICAgICkgYXMgQ2ZuRW5kcG9pbnRDb25maWc7XG4gICAgY29uc3Qgdm9sdW1lU2l6ZSA9XG4gICAgICBwcm9wcy52b2x1bWVTaXplID8/XG4gICAgICBTaXplLmdpYmlieXRlcyhcbiAgICAgICAgTWF0aC5jZWlsKFxuICAgICAgICAgIHByb3BzLm1vZGVsRGF0YS5wYXJhbWV0ZXJzLnRvQmlsbGlvbigpICogMyA+IDUxMlxuICAgICAgICAgICAgPyA1MTJcbiAgICAgICAgICAgIDogcHJvcHMubW9kZWxEYXRhLnBhcmFtZXRlcnMudG9CaWxsaW9uKCkgKiAzLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICBjZm5FbmRwb2ludENvbmZpZy5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgXCJQcm9kdWN0aW9uVmFyaWFudHMuMC5Wb2x1bWVTaXplSW5HQlwiLFxuICAgICAgaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCkuc3RhcnRzV2l0aChcIm1sLnRybjFcIilcbiAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgOiB2b2x1bWVTaXplLnRvR2liaWJ5dGVzKCksXG4gICAgKTtcbiAgICBjb25zdCBtb2RlbERhdGFEb3dubG9hZFRpbWVvdXQgPVxuICAgICAgcHJvcHMubW9kZWxEYXRhRG93bmxvYWRUaW1lb3V0ID8/XG4gICAgICBpbmZlcmVuY2VNb2RlbERhdGFEb3dubG9hZFRpbWUodm9sdW1lU2l6ZSk7XG4gICAgY2ZuRW5kcG9pbnRDb25maWcuYWRkUHJvcGVydHlPdmVycmlkZShcbiAgICAgIFwiUHJvZHVjdGlvblZhcmlhbnRzLjAuTW9kZWxEYXRhRG93bmxvYWRUaW1lb3V0SW5TZWNvbmRzXCIsXG4gICAgICBtb2RlbERhdGFEb3dubG9hZFRpbWVvdXQudG9TZWNvbmRzKCksXG4gICAgKTtcbiAgICBjZm5FbmRwb2ludENvbmZpZy5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgXCJQcm9kdWN0aW9uVmFyaWFudHMuMC5Db250YWluZXJTdGFydHVwSGVhbHRoQ2hlY2tUaW1lb3V0SW5TZWNvbmRzXCIsXG4gICAgICAoXG4gICAgICAgIHByb3BzLmNvbnRhaW5lclN0YXJ0dXBIZWFsdGhDaGVja1RpbWVvdXQgPz8gbW9kZWxEYXRhRG93bmxvYWRUaW1lb3V0XG4gICAgICApLnRvU2Vjb25kcygpLFxuICAgICk7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBuZXcgc2FnZW1ha2VyLkVuZHBvaW50KHRoaXMsIFwiRW5kcG9pbnRcIiwge1xuICAgICAgZW5kcG9pbnRDb25maWcsXG4gICAgfSk7XG4gICAgdGhpcy5lbmRwb2ludEFybiA9IGVuZHBvaW50LmVuZHBvaW50QXJuO1xuICAgIHRoaXMuZW5kcG9pbnROYW1lID0gZW5kcG9pbnQuZW5kcG9pbnROYW1lO1xuICAgIHRoaXMuZW5kcG9pbnQgPSBlbmRwb2ludDtcbiAgfVxuICBncmFudEludm9rZShncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmVuZHBvaW50LmdyYW50SW52b2tlKGdyYW50ZWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RJbnN0YW5jZVR5cGVCeVRwRGVncmVlKHRwRGVncmVlOiBudW1iZXIpIHtcbiAgICBjb25zdCBpbnN0YW5jZVR5cGVzID0gW1xuICAgICAgTmV1cm9ueEluc3RhbmNlVHlwZS5JTkYyXzhYTEFSR0UsXG4gICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfMjRYTEFSR0UsXG4gICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfNDhYTEFSR0UsXG4gICAgICBOZXVyb254SW5zdGFuY2VUeXBlLlRSTjFfMzJYTEFSR0UsXG4gICAgXTtcbiAgICBmb3IgKGNvbnN0IGluc3RhbmNlVHlwZSBvZiBpbnN0YW5jZVR5cGVzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGluc3RhbmNlVHlwZS5zdXBwb3J0ZWRUZW5zb3JQYXJhbGxlbGlzbS5maW5kKCh0cCkgPT4gdHAgPj0gdHBEZWdyZWUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlVHlwZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJUaGlzIG1vZGVsIGlzIHRvbyBsYXJnZSwgSSBjYW4gbm90IHN1cHBvcnQgdGhpcyBtb2RlbCBjdXJyZW50IHZlcnNpb24uXCIsXG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbmZlcmVuY2VNb2RlbERhdGFEb3dubG9hZFRpbWUodm9sdW1lU2l6ZTogU2l6ZSkge1xuICBjb25zdCBzZWNvbmRzID0gdm9sdW1lU2l6ZS50b0dpYmlieXRlcygpICogMTU7XG4gIHJldHVybiBEdXJhdGlvbi5zZWNvbmRzKHNlY29uZHMgPCAzNjAwID8gc2Vjb25kcyA6IDM2MDApO1xufVxuIl19
@@ -15,7 +15,7 @@ export declare class VllmNxdInferenceCompileImage extends VllmNxdInferenceEcsIma
15
15
  * The container image.
16
16
  */
17
17
  readonly image: ContainerImage;
18
- constructor(vllmInferenceNeuronxImage?: IVllmInferenceNeuronxImage);
18
+ constructor(scope: Construct, id: string, vllmInferenceNeuronxImage?: IVllmInferenceNeuronxImage);
19
19
  }
20
20
  /**
21
21
  * Props of VllmNxdInferenceCompiler.
@@ -3,8 +3,8 @@ var _a, _b;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.VllmNxdInferenceCompiler = exports.VllmNxdInferenceCompileImage = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const deploy_time_build_1 = require("@cdklabs/deploy-time-build");
6
7
  const aws_cdk_lib_1 = require("aws-cdk-lib");
7
- const aws_ecs_1 = require("aws-cdk-lib/aws-ecs");
8
8
  const constructs_1 = require("constructs");
9
9
  const crypto_1 = require("crypto");
10
10
  const path_1 = require("path");
@@ -16,20 +16,22 @@ const vllm_nxd_inference_ecs_patterns_1 = require("./vllm-nxd-inference-ecs-patt
16
16
  * Compile runtime container image for vLLM NxD Inference
17
17
  */
18
18
  class VllmNxdInferenceCompileImage extends vllm_nxd_inference_ecs_patterns_1.VllmNxdInferenceEcsImageBase {
19
- constructor(vllmInferenceNeuronxImage) {
19
+ constructor(scope, id, vllmInferenceNeuronxImage) {
20
20
  vllmInferenceNeuronxImage ?? (vllmInferenceNeuronxImage = neuronx_1.VllmInferenceNeuronxImage.LATEST);
21
21
  super(vllmInferenceNeuronxImage);
22
- this.image = aws_ecs_1.ContainerImage.fromAsset((0, path_1.join)(__dirname, "../../scripts/compile/vllm-nxd-inference"), {
22
+ const build = new deploy_time_build_1.ContainerImageBuild(scope, id, {
23
+ directory: (0, path_1.join)(__dirname, "../../scripts/compile/vllm-nxd-inference"),
23
24
  buildArgs: {
24
25
  IMAGE_NAME: vllmInferenceNeuronxImage.imageName,
25
26
  IMAGE_TAG: vllmInferenceNeuronxImage.imageTag,
26
27
  },
27
28
  });
29
+ this.image = build.toEcsDockerImageCode();
28
30
  }
29
31
  }
30
32
  exports.VllmNxdInferenceCompileImage = VllmNxdInferenceCompileImage;
31
33
  _a = JSII_RTTI_SYMBOL_1;
32
- VllmNxdInferenceCompileImage[_a] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceCompileImage", version: "0.0.25" };
34
+ VllmNxdInferenceCompileImage[_a] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceCompileImage", version: "0.1.0" };
33
35
  /**
34
36
  * Neuronx compiler construct for vLLM on NxD Inference.
35
37
  * Compile the model to work with Neuronx instance and upload it to an S3 bucket.
@@ -60,7 +62,7 @@ class VllmNxdInferenceCompiler extends constructs_1.Construct {
60
62
  throw new Error(`No available instance type. You can use tensorParallelSize are ${availableInstancePatterns.map((p) => p.tp).join(", ")}.`);
61
63
  }
62
64
  const tensorParallelSize = availableInstancePatterns[0].tp;
63
- const image = props.image ?? new VllmNxdInferenceCompileImage();
65
+ const image = props.image ?? new VllmNxdInferenceCompileImage(this, "CompileImage");
64
66
  const vllmArgs = {
65
67
  ...props.vllmArgs,
66
68
  model: props.model.modelId,
@@ -122,5 +124,5 @@ class VllmNxdInferenceCompiler extends constructs_1.Construct {
122
124
  }
123
125
  exports.VllmNxdInferenceCompiler = VllmNxdInferenceCompiler;
124
126
  _b = JSII_RTTI_SYMBOL_1;
125
- VllmNxdInferenceCompiler[_b] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceCompiler", version: "0.0.25" };
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmxsbS1ueGQtaW5mZXJlbmNlLWNvbXBpbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZsbG0tbnhkLWluZmVyZW5jZS92bGxtLW54ZC1pbmZlcmVuY2UtY29tcGlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBbUM7QUFHbkMsaURBQXFEO0FBRXJELDJDQUF1QztBQUN2QyxtQ0FBb0M7QUFDcEMsK0JBQTRCO0FBQzVCLDZDQVl5QjtBQUN6QiwrREFJa0M7QUFDbEMsbUVBRzJDO0FBQzNDLHVGQUFpRjtBQUVqRjs7R0FFRztBQUNILE1BQWEsNEJBQTZCLFNBQVEsOERBQTRCO0lBSzVFLFlBQVkseUJBQXNEO1FBQ2hFLHlCQUF5QixLQUF6Qix5QkFBeUIsR0FBSyxtQ0FBeUIsQ0FBQyxNQUFNLEVBQUM7UUFDL0QsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyx3QkFBYyxDQUFDLFNBQVMsQ0FDbkMsSUFBQSxXQUFJLEVBQUMsU0FBUyxFQUFFLDBDQUEwQyxDQUFDLEVBQzNEO1lBQ0UsU0FBUyxFQUFFO2dCQUNULFVBQVUsRUFBRSx5QkFBeUIsQ0FBQyxTQUFTO2dCQUMvQyxTQUFTLEVBQUUseUJBQXlCLENBQUMsUUFBUTthQUM5QztTQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7O0FBakJILG9FQWtCQzs7O0FBc0VEOzs7R0FHRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsc0JBQVM7SUFHckQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsSUFBSSxHQUFHLENBQUM7UUFDdkQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxVQUFVLElBQUksQ0FBQyxDQUFDO1FBQ25E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LEdBQUcsS0FBSztZQUNSLG1CQUFtQixFQUFFLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtZQUNyRSxnQkFBZ0I7WUFDaEIsS0FBSyxFQUFFLEtBQUs7WUFDWixPQUFPLEVBQUUsV0FBVztZQUNwQixXQUFXO1lBQ1gsT0FBTztZQUNQLFVBQVU7U0FDWCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsT0FBTztRQUNMLE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFO1lBQzFCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUNnQixDQUFDO0lBQzVDLENBQUM7O0FBeEhILDREQXlIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpemUgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGJhdGNoIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYmF0Y2hcIjtcbmltcG9ydCB7IElWcGMsIFN1Ym5ldFNlbGVjdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgeyBDb250YWluZXJJbWFnZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzXCI7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwiY3J5cHRvXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7XG4gIGNhbGNNZW1vcnlGb290cHJpbnQsXG4gIGNhbGNUZW5zb3JQYXJhbGxlbCxcbiAgRGF0YVR5cGVCaXRzLFxuICBJTmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgaW5mZXJNZW1vcnlGb290cHJpbnRGcm9tUGFyYW1ldGVycyxcbiAgSVZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UsXG4gIE1vZGVsLFxuICBOZXVyb25PcHRpbWl6ZWRNYWNoaW5lSW1hZ2UsXG4gIE5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gIFB5dG9yY2hUcmFpbmluZ05ldXJvbnhJbWFnZSxcbiAgVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZSxcbn0gZnJvbSBcIi4uL2Jhc2UvbmV1cm9ueFwiO1xuaW1wb3J0IHtcbiAgSU5ldXJvbnhDb250YWluZXJJbWFnZSxcbiAgTmV1cm9ueENvbXBpbGVkTW9kZWwsXG4gIE5ldXJvbnhDb21waWxlcixcbn0gZnJvbSBcIi4uL2Jhc2UvbmV1cm9ueC1jb21waWxlclwiO1xuaW1wb3J0IHtcbiAgVmxsbUVuZ2luZUFyZ3VtZW50cyxcbiAgVmxsbUVuZ2luZUFyZ3VtZW50c1BhcnNlcixcbn0gZnJvbSBcIi4uL2Jhc2Uvc2VydmVyLWVuZ2luZS92bGxtLWVuZ2luZVwiO1xuaW1wb3J0IHsgVmxsbU54ZEluZmVyZW5jZUVjc0ltYWdlQmFzZSB9IGZyb20gXCIuL3ZsbG0tbnhkLWluZmVyZW5jZS1lY3MtcGF0dGVybnNcIjtcblxuLyoqXG4gKiBDb21waWxlIHJ1bnRpbWUgY29udGFpbmVyIGltYWdlIGZvciB2TExNIE54RCBJbmZlcmVuY2VcbiAqL1xuZXhwb3J0IGNsYXNzIFZsbG1OeGRJbmZlcmVuY2VDb21waWxlSW1hZ2UgZXh0ZW5kcyBWbGxtTnhkSW5mZXJlbmNlRWNzSW1hZ2VCYXNlIHtcbiAgLyoqXG4gICAqIFRoZSBjb250YWluZXIgaW1hZ2UuXG4gICAqL1xuICByZWFkb25seSBpbWFnZTogQ29udGFpbmVySW1hZ2U7XG4gIGNvbnN0cnVjdG9yKHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2U/OiBJVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZSkge1xuICAgIHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UgPz89IFZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UuTEFURVNUO1xuICAgIHN1cGVyKHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UpO1xuICAgIHRoaXMuaW1hZ2UgPSBDb250YWluZXJJbWFnZS5mcm9tQXNzZXQoXG4gICAgICBqb2luKF9fZGlybmFtZSwgXCIuLi8uLi9zY3JpcHRzL2NvbXBpbGUvdmxsbS1ueGQtaW5mZXJlbmNlXCIpLFxuICAgICAge1xuICAgICAgICBidWlsZEFyZ3M6IHtcbiAgICAgICAgICBJTUFHRV9OQU1FOiB2bGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLmltYWdlTmFtZSxcbiAgICAgICAgICBJTUFHRV9UQUc6IHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UuaW1hZ2VUYWcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9wcyBvZiBWbGxtTnhkSW5mZXJlbmNlQ29tcGlsZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVQcm9wcyB7XG4gIC8qKlxuICAgKiBWUEMgaW4gd2hpY2ggdGhpcyB3aWxsIGxhdW5jaCBjb21waWxlIHdvcmtlciBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogSVZwYztcbiAgLyoqXG4gICAqIFRoZSBidWNrZXQgdG8gdXBsb2FkIGNvbXBpbGVkIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldDogSUJ1Y2tldDtcbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSB0eXBlIG9mIGNvbXBpbGUgd29ya2VyIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV1cm9ueEluc3RhbmNlVHlwZT86IElOZXVyb254SW5zdGFuY2VUeXBlO1xuICAvKipcbiAgICogVGhlIG1vZGVsIHRvIGJlIGNvbXBpbGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWw6IE1vZGVsO1xuICAvKipcbiAgICogVGhlIHJvb3Qgdm9sdW1lIG9mIHdvcmtlciBpbnN0YW5jZS5cbiAgICogQGRlZmF1bHQgLSBOIGJpbGlvbiBwYXJhbWV0ZXJzICogNUdpQiBFQlNcbiAgICovXG4gIHJlYWRvbmx5IHZvbHVtZVNpemU/OiBTaXplO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gdXNlIHNwb3QgaW5zdGFuY2VzLiBTcG90IGluc3RhbmNlcyBhcmUgbGVzcyBleHBlbnNpdmUgRUMyIGluc3RhbmNlcyB0aGF0IGNhbiBiZSByZWNsYWltZWQgYnkgRUMyIGF0IGFueSB0aW1lOyB5b3VyIGpvYiB3aWxsIGJlIGdpdmVuIHR3byBtaW51dGVzIG9mIG5vdGljZSBiZWZvcmUgcmVjbGFtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzcG90PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBWUEMgU3VibmV0cyB0aGlzIENvbXB1dGUgRW52aXJvbm1lbnQgd2lsbCBsYXVuY2ggaW5zdGFuY2VzIGluLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5ldyBzdWJuZXRzIHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgdnBjU3VibmV0cz86IFN1Ym5ldFNlbGVjdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gcGFzcyB0byB0aGUgY29udGFpbmVyLlxuICAgKiBUaGlzIGlzIG9ubHkgYXBwbGljYWJsZSB3aGVuIHVzaW5nIGNvbnRhaW5lciBydW50aW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50Pzoge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgfTtcbiAgLyoqXG4gICAqIFRoZSBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgdmxsbSBlbmdpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc3BlY2lmaWMgdmFsdWVzLiB1c2UgZGVmYXVsdCB2YWx1ZXMuXG4gICAqL1xuICByZWFkb25seSB2bGxtQXJncz86IFZsbG1FbmdpbmVBcmd1bWVudHM7XG4gIC8qKlxuICAgKiBBbiBpbWFnZSBvZiB0aGUgY29udGFpbmVyIHdoZXJlIHRoZSBjb21waWxlIGpvYiBpcyBleGVjdXRlZC5cbiAgICogQGRlZmF1bHQgLSBsYXRlc3QgaW1hZ2VcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlPzogSU5ldXJvbnhDb250YWluZXJJbWFnZTtcbn1cblxuLyoqXG4gKiBUaGUgbW9kZWwgY29tcGlsZWQgYnkgTmV1cm9ueCBjb21waWxlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWbGxtTnhkSW5mZXJlbmNlQ29tcGlsZWRNb2RlbCBleHRlbmRzIE5ldXJvbnhDb21waWxlZE1vZGVsIHtcbiAgLyoqXG4gICAqIFBhc3NlZCB0byB0aGUgdmxsbSBlbmdpbmUgYXQgY29tcGlsZSB0aW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgdmxsbUFyZ3M6IFZsbG1FbmdpbmVBcmd1bWVudHM7XG59XG5cbi8qKlxuICogTmV1cm9ueCBjb21waWxlciBjb25zdHJ1Y3QgZm9yIHZMTE0gb24gTnhEIEluZmVyZW5jZS5cbiAqIENvbXBpbGUgdGhlIG1vZGVsIHRvIHdvcmsgd2l0aCBOZXVyb254IGluc3RhbmNlIGFuZCB1cGxvYWQgaXQgdG8gYW4gUzMgYnVja2V0LlxuICovXG5leHBvcnQgY2xhc3MgVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHJpdmF0ZSByZWFkb25seSB2bGxtQXJnczogVmxsbUVuZ2luZUFyZ3VtZW50cztcbiAgcHJpdmF0ZSByZWFkb25seSBjb21waWxlcjogTmV1cm9ueENvbXBpbGVyO1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFZsbG1OeGRJbmZlcmVuY2VDb21waWxlUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgbWF4TW9kZWxMZW4gPSBwcm9wcy52bGxtQXJncz8ubWF4TW9kZWxMZW4gPz8gMTI4O1xuICAgIGNvbnN0IG1heE51bVNlcXMgPSBwcm9wcy52bGxtQXJncz8ubWF4TnVtU2VxcyA/PyAxO1xuICAgIGNvbnN0IG1lbW9yeUZvb3RwcmludCA9IHByb3BzLm1vZGVsLm9wdGlvbnMuY29uZmlnXG4gICAgICA/IGNhbGNNZW1vcnlGb290cHJpbnQoXG4gICAgICAgICAgcHJvcHMubW9kZWwub3B0aW9ucy5jb25maWcuZW1iZWRkaW5nRGltZW5zaW9uLFxuICAgICAgICAgIHByb3BzLm1vZGVsLm9wdGlvbnMuY29uZmlnLmxheWVycyxcbiAgICAgICAgICBEYXRhVHlwZUJpdHMuQkYxNl9PUl9GUDE2LFxuICAgICAgICAgIG1heE1vZGVsTGVuLFxuICAgICAgICAgIG1heE51bVNlcXMsXG4gICAgICAgIClcbiAgICAgIDogaW5mZXJNZW1vcnlGb290cHJpbnRGcm9tUGFyYW1ldGVycyhcbiAgICAgICAgICBwcm9wcy5tb2RlbC5vcHRpb25zLnBhcmFtZXRlcnMsXG4gICAgICAgICAgbWF4TW9kZWxMZW4sXG4gICAgICAgICAgbWF4TnVtU2VxcyxcbiAgICAgICAgKTtcbiAgICBjb25zdCBuZXVyb254SW5zdGFuY2VUeXBlcyA9IHByb3BzLm5ldXJvbnhJbnN0YW5jZVR5cGVcbiAgICAgID8gW3Byb3BzLm5ldXJvbnhJbnN0YW5jZVR5cGVdXG4gICAgICA6IFtcbiAgICAgICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfOFhMQVJHRSxcbiAgICAgICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfMjRYTEFSR0UsXG4gICAgICAgICAgTmV1cm9ueEluc3RhbmNlVHlwZS5JTkYyXzQ4WExBUkdFLFxuICAgICAgICBdO1xuICAgIGNvbnN0IGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnMgPSBuZXVyb254SW5zdGFuY2VUeXBlc1xuICAgICAgLmZsYXRNYXAoKG5ldXJvbnhJbnN0YW5jZVR5cGUpID0+XG4gICAgICAgIGNhbGNUZW5zb3JQYXJhbGxlbChcbiAgICAgICAgICBuZXVyb254SW5zdGFuY2VUeXBlLFxuICAgICAgICAgIG1lbW9yeUZvb3RwcmludCxcbiAgICAgICAgICBwcm9wcy5tb2RlbC5vcHRpb25zLmNvbmZpZz8uYXR0ZW50aW9uSGVhZHMsXG4gICAgICAgICkubWFwKCh2KSA9PiAoe1xuICAgICAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICAgICAgLi4udixcbiAgICAgICAgfSkpLFxuICAgICAgKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGluc3RhbmNlVHlwZSkgPT5cbiAgICAgICAgICAhcHJvcHMudmxsbUFyZ3M/LnRlbnNvclBhcmFsbGVsU2l6ZSB8fFxuICAgICAgICAgIGluc3RhbmNlVHlwZS50cCA9PT0gcHJvcHMudmxsbUFyZ3MudGVuc29yUGFyYWxsZWxTaXplLFxuICAgICAgKTtcbiAgICBpZiAoYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE5vIGF2YWlsYWJsZSBpbnN0YW5jZSB0eXBlLiBZb3UgY2FuIHVzZSB0ZW5zb3JQYXJhbGxlbFNpemUgYXJlICR7YXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJucy5tYXAoKHApID0+IHAudHApLmpvaW4oXCIsIFwiKX0uYCxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHRlbnNvclBhcmFsbGVsU2l6ZSA9IGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnNbMF0udHA7XG4gICAgY29uc3QgaW1hZ2UgPSBwcm9wcy5pbWFnZSA/PyBuZXcgVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVJbWFnZSgpO1xuICAgIGNvbnN0IHZsbG1BcmdzID0ge1xuICAgICAgLi4ucHJvcHMudmxsbUFyZ3MsXG4gICAgICBtb2RlbDogcHJvcHMubW9kZWwubW9kZWxJZCxcbiAgICAgIHNlcnZlZE1vZGVsTmFtZTogW3Byb3BzLm1vZGVsLm1vZGVsTmFtZV0sXG4gICAgICBtYXhNb2RlbExlbixcbiAgICAgIG1heE51bVNlcXMsXG4gICAgICB0ZW5zb3JQYXJhbGxlbFNpemUsXG4gICAgfSBzYXRpc2ZpZXMgVmxsbUVuZ2luZUFyZ3VtZW50cztcblxuICAgIC8vIGNoYW5nZSBkaXJuYW1lIGV2ZXJ5IGVuZ2luZSBhcmdzIHBhdHRlcm5zXG4gICAgY29uc3QgaGFzaCA9IChzdHI6IHN0cmluZykgPT5cbiAgICAgIGNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKHN0cikuZGlnZXN0KFwiaGV4XCIpO1xuICAgIGNvbnN0IGFydGlmYWN0UzNQcmVmaXggPSBgc2RrLSR7aW1hZ2UubmV1cm9uU2RrVmVyc2lvbn0vJHtoYXNoKEpTT04uc3RyaW5naWZ5KHZsbG1BcmdzKSl9YDtcbiAgICBjb25zdCB2bGxtQ2xpQXJncyA9IFZsbG1FbmdpbmVBcmd1bWVudHNQYXJzZXIuY2xpKHZsbG1BcmdzKTtcbiAgICBjb25zdCBlbnZpcm9ubWVudDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIC4uLnByb3BzLmVudmlyb25tZW50LFxuICAgICAgVkxMTV9ORVVST05fRlJBTUVXT1JLOiBcIm5ldXJvbngtZGlzdHJpYnV0ZWQtaW5mZXJlbmNlXCIsXG4gICAgICBORVVST05fQ09NUElMRURfQVJUSUZBQ1RTOiBcIm5ldXJvbi1jb21waWxlZC1hcnRpZmFjdHNcIixcbiAgICAgIE5FVVJPTl9SVF9OVU1fQ09SRVM6IHRlbnNvclBhcmFsbGVsU2l6ZS50b1N0cmluZygpLFxuICAgICAgWExBX0hBTkRMRV9TUEVDSUFMX1NDQUxBUjogXCIxXCIsXG4gICAgICBNT0RFTF9JRDogcHJvcHMubW9kZWwubW9kZWxJZCxcbiAgICAgIE1PREVMX05BTUU6IHByb3BzLm1vZGVsLm1vZGVsTmFtZSxcbiAgICAgIENPTVBJTEVEX0FSVElGQUNUU19TM19VUkk6IHByb3BzLmJ1Y2tldC5zM1VybEZvck9iamVjdChhcnRpZmFjdFMzUHJlZml4KSxcbiAgICAgIENPTVBJTEVEX0FSVElGQUNUU19TM19QUkVGSVg6IGFydGlmYWN0UzNQcmVmaXgsXG4gICAgfTtcbiAgICBjb25zdCBzZWNyZXRzOiB7IFtrZXk6IHN0cmluZ106IGJhdGNoLlNlY3JldCB9ID0ge307XG4gICAgaWYgKHByb3BzLnZsbG1BcmdzPy5oZlRva2VuKSB7XG4gICAgICBzZWNyZXRzLkhGX1RPS0VOID0gcHJvcHMudmxsbUFyZ3MuaGZUb2tlbjtcbiAgICB9XG4gICAgY29uc3Qgd2VpZ2h0U2l6ZSA9IFNpemUuZ2liaWJ5dGVzKFxuICAgICAgcHJvcHMubW9kZWwub3B0aW9ucy5wYXJhbWV0ZXJzLnRvQmlsbGlvbigpICogMi41LFxuICAgICk7XG4gICAgY29uc3QgcXVhbnRpemVkV2lnaHRTaXplID0gcHJvcHMudmxsbUFyZ3M/Lm92ZXJyaWRlTmV1cm9uQ29uZmlnPy5xdWFudGl6ZWRcbiAgICAgID8gd2VpZ2h0U2l6ZVxuICAgICAgOiBTaXplLmJ5dGVzKDApO1xuICAgIGNvbnN0IHZvbHVtZVNpemUgPSBTaXplLmdpYmlieXRlcyhcbiAgICAgIE1hdGguY2VpbChcbiAgICAgICAgd2VpZ2h0U2l6ZS50b0dpYmlieXRlcygpICtcbiAgICAgICAgICBxdWFudGl6ZWRXaWdodFNpemUudG9HaWJpYnl0ZXMoKSArXG4gICAgICAgICAgUHl0b3JjaFRyYWluaW5nTmV1cm9ueEltYWdlLnNpemUudG9HaWJpYnl0ZXMoKSArXG4gICAgICAgICAgTmV1cm9uT3B0aW1pemVkTWFjaGluZUltYWdlLnNpemUudG9HaWJpYnl0ZXMoKSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbXBpbGVyID0gbmV3IE5ldXJvbnhDb21waWxlcih0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgbmV1cm9ueEluc3RhbmNlVHlwZTogYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJuc1swXS5uZXVyb254SW5zdGFuY2VUeXBlLFxuICAgICAgYXJ0aWZhY3RTM1ByZWZpeCxcbiAgICAgIGltYWdlOiBpbWFnZSxcbiAgICAgIGNvbW1hbmQ6IHZsbG1DbGlBcmdzLFxuICAgICAgZW52aXJvbm1lbnQsXG4gICAgICBzZWNyZXRzLFxuICAgICAgdm9sdW1lU2l6ZSxcbiAgICB9KTtcbiAgICB0aGlzLnZsbG1BcmdzID0gdmxsbUFyZ3M7XG4gICAgdGhpcy5jb21waWxlciA9IGNvbXBpbGVyO1xuICB9XG4gIC8qKlxuICAgKiBDb21waWxlIHRoZSBtb2RlbCBhbmQgcmV0dXJuIHRoZSBjb21waWxlZCBtb2RlbC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBpbGVkIG1vZGVsLlxuICAgKi9cbiAgY29tcGlsZSgpOiBWbGxtTnhkSW5mZXJlbmNlQ29tcGlsZWRNb2RlbCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuY29tcGlsZXIuY29tcGlsZSgpLFxuICAgICAgdmxsbUFyZ3M6IHRoaXMudmxsbUFyZ3MsXG4gICAgfSBzYXRpc2ZpZXMgVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVkTW9kZWw7XG4gIH1cbn1cbiJdfQ==
127
+ VllmNxdInferenceCompiler[_b] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceCompiler", version: "0.1.0" };
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmxsbS1ueGQtaW5mZXJlbmNlLWNvbXBpbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZsbG0tbnhkLWluZmVyZW5jZS92bGxtLW54ZC1pbmZlcmVuY2UtY29tcGlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrRUFBaUU7QUFDakUsNkNBQW1DO0FBS25DLDJDQUF1QztBQUN2QyxtQ0FBb0M7QUFDcEMsK0JBQTRCO0FBQzVCLDZDQVl5QjtBQUN6QiwrREFJa0M7QUFDbEMsbUVBRzJDO0FBQzNDLHVGQUFpRjtBQUVqRjs7R0FFRztBQUNILE1BQWEsNEJBQTZCLFNBQVEsOERBQTRCO0lBSzVFLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLHlCQUFzRDtRQUV0RCx5QkFBeUIsS0FBekIseUJBQXlCLEdBQUssbUNBQXlCLENBQUMsTUFBTSxFQUFDO1FBQy9ELEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksdUNBQW1CLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUMvQyxTQUFTLEVBQUUsSUFBQSxXQUFJLEVBQUMsU0FBUyxFQUFFLDBDQUEwQyxDQUFDO1lBQ3RFLFNBQVMsRUFBRTtnQkFDVCxVQUFVLEVBQUUseUJBQXlCLENBQUMsU0FBUztnQkFDL0MsU0FBUyxFQUFFLHlCQUF5QixDQUFDLFFBQVE7YUFDOUM7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzVDLENBQUM7O0FBcEJILG9FQXFCQzs7O0FBc0VEOzs7R0FHRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsc0JBQVM7SUFHckQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMs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O1lBQzlDLHFDQUEyQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FDakQsQ0FDRixDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQ0FBZSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDckQsR0FBRyxLQUFLO1lBQ1IsbUJBQW1CLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO1lBQ3JFLGdCQUFnQjtZQUNoQixLQUFLLEVBQUUsS0FBSztZQUNaLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLFdBQVc7WUFDWCxPQUFPO1lBQ1AsVUFBVTtTQUNYLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFDRDs7O09BR0c7SUFDSCxPQUFPO1FBQ0wsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ2dCLENBQUM7SUFDNUMsQ0FBQzs7QUF6SEgsNERBMEhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGFpbmVySW1hZ2VCdWlsZCB9IGZyb20gXCJAY2RrbGFicy9kZXBsb3ktdGltZS1idWlsZFwiO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgYmF0Y2ggZnJvbSBcImF3cy1jZGstbGliL2F3cy1iYXRjaFwiO1xuaW1wb3J0IHsgSVZwYywgU3VibmV0U2VsZWN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IENvbnRhaW5lckltYWdlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3NcIjtcbmltcG9ydCB7IElCdWNrZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJjcnlwdG9cIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHtcbiAgY2FsY01lbW9yeUZvb3RwcmludCxcbiAgY2FsY1RlbnNvclBhcmFsbGVsLFxuICBEYXRhVHlwZUJpdHMsXG4gIElOZXVyb254SW5zdGFuY2VUeXBlLFxuICBpbmZlck1lbW9yeUZvb3RwcmludEZyb21QYXJhbWV0ZXJzLFxuICBJVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZSxcbiAgTW9kZWwsXG4gIE5ldXJvbk9wdGltaXplZE1hY2hpbmVJbWFnZSxcbiAgTmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgUHl0b3JjaFRyYWluaW5nTmV1cm9ueEltYWdlLFxuICBWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLFxufSBmcm9tIFwiLi4vYmFzZS9uZXVyb254XCI7XG5pbXBvcnQge1xuICBJTmV1cm9ueENvbnRhaW5lckltYWdlLFxuICBOZXVyb254Q29tcGlsZWRNb2RlbCxcbiAgTmV1cm9ueENvbXBpbGVyLFxufSBmcm9tIFwiLi4vYmFzZS9uZXVyb254LWNvbXBpbGVyXCI7XG5pbXBvcnQge1xuICBWbGxtRW5naW5lQXJndW1lbnRzLFxuICBWbGxtRW5naW5lQXJndW1lbnRzUGFyc2VyLFxufSBmcm9tIFwiLi4vYmFzZS9zZXJ2ZXItZW5naW5lL3ZsbG0tZW5naW5lXCI7XG5pbXBvcnQgeyBWbGxtTnhkSW5mZXJlbmNlRWNzSW1hZ2VCYXNlIH0gZnJvbSBcIi4vdmxsbS1ueGQtaW5mZXJlbmNlLWVjcy1wYXR0ZXJuc1wiO1xuXG4vKipcbiAqIENvbXBpbGUgcnVudGltZSBjb250YWluZXIgaW1hZ2UgZm9yIHZMTE0gTnhEIEluZmVyZW5jZVxuICovXG5leHBvcnQgY2xhc3MgVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVJbWFnZSBleHRlbmRzIFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZUJhc2Uge1xuICAvKipcbiAgICogVGhlIGNvbnRhaW5lciBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IGltYWdlOiBDb250YWluZXJJbWFnZTtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2U/OiBJVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZSxcbiAgKSB7XG4gICAgdmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZSA/Pz0gVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZS5MQVRFU1Q7XG4gICAgc3VwZXIodmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZSk7XG4gICAgY29uc3QgYnVpbGQgPSBuZXcgQ29udGFpbmVySW1hZ2VCdWlsZChzY29wZSwgaWQsIHtcbiAgICAgIGRpcmVjdG9yeTogam9pbihfX2Rpcm5hbWUsIFwiLi4vLi4vc2NyaXB0cy9jb21waWxlL3ZsbG0tbnhkLWluZmVyZW5jZVwiKSxcbiAgICAgIGJ1aWxkQXJnczoge1xuICAgICAgICBJTUFHRV9OQU1FOiB2bGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLmltYWdlTmFtZSxcbiAgICAgICAgSU1BR0VfVEFHOiB2bGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLmltYWdlVGFnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmltYWdlID0gYnVpbGQudG9FY3NEb2NrZXJJbWFnZUNvZGUoKTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BzIG9mIFZsbG1OeGRJbmZlcmVuY2VDb21waWxlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWbGxtTnhkSW5mZXJlbmNlQ29tcGlsZVByb3BzIHtcbiAgLyoqXG4gICAqIFZQQyBpbiB3aGljaCB0aGlzIHdpbGwgbGF1bmNoIGNvbXBpbGUgd29ya2VyIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBJVnBjO1xuICAvKipcbiAgICogVGhlIGJ1Y2tldCB0byB1cGxvYWQgY29tcGlsZWQgYXJ0aWZhY3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuICAvKipcbiAgICogVGhlIGluc3RhbmNlIHR5cGUgb2YgY29tcGlsZSB3b3JrZXIgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBuZXVyb254SW5zdGFuY2VUeXBlPzogSU5ldXJvbnhJbnN0YW5jZVR5cGU7XG4gIC8qKlxuICAgKiBUaGUgbW9kZWwgdG8gYmUgY29tcGlsZWQuXG4gICAqL1xuICByZWFkb25seSBtb2RlbDogTW9kZWw7XG4gIC8qKlxuICAgKiBUaGUgcm9vdCB2b2x1bWUgb2Ygd29ya2VyIGluc3RhbmNlLlxuICAgKiBAZGVmYXVsdCAtIE4gYmlsaW9uIHBhcmFtZXRlcnMgKiA1R2lCIEVCU1xuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lU2l6ZT86IFNpemU7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byB1c2Ugc3BvdCBpbnN0YW5jZXMuIFNwb3QgaW5zdGFuY2VzIGFyZSBsZXNzIGV4cGVuc2l2ZSBFQzIgaW5zdGFuY2VzIHRoYXQgY2FuIGJlIHJlY2xhaW1lZCBieSBFQzIgYXQgYW55IHRpbWU7IHlvdXIgam9iIHdpbGwgYmUgZ2l2ZW4gdHdvIG1pbnV0ZXMgb2Ygbm90aWNlIGJlZm9yZSByZWNsYW1hdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNwb3Q/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIFZQQyBTdWJuZXRzIHRoaXMgQ29tcHV0ZSBFbnZpcm9ubWVudCB3aWxsIGxhdW5jaCBpbnN0YW5jZXMgaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbmV3IHN1Ym5ldHMgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzPzogU3VibmV0U2VsZWN0aW9uO1xuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBwYXNzIHRvIHRoZSBjb250YWluZXIuXG4gICAqIFRoaXMgaXMgb25seSBhcHBsaWNhYmxlIHdoZW4gdXNpbmcgY29udGFpbmVyIHJ1bnRpbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xuICAvKipcbiAgICogVGhlIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSB2bGxtIGVuZ2luZS5cbiAgICogQGRlZmF1bHQgLSBubyBzcGVjaWZpYyB2YWx1ZXMuIHVzZSBkZWZhdWx0IHZhbHVlcy5cbiAgICovXG4gIHJlYWRvbmx5IHZsbG1BcmdzPzogVmxsbUVuZ2luZUFyZ3VtZW50cztcbiAgLyoqXG4gICAqIEFuIGltYWdlIG9mIHRoZSBjb250YWluZXIgd2hlcmUgdGhlIGNvbXBpbGUgam9iIGlzIGV4ZWN1dGVkLlxuICAgKiBAZGVmYXVsdCAtIGxhdGVzdCBpbWFnZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBJTmV1cm9ueENvbnRhaW5lckltYWdlO1xufVxuXG4vKipcbiAqIFRoZSBtb2RlbCBjb21waWxlZCBieSBOZXVyb254IGNvbXBpbGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZsbG1OeGRJbmZlcmVuY2VDb21waWxlZE1vZGVsIGV4dGVuZHMgTmV1cm9ueENvbXBpbGVkTW9kZWwge1xuICAvKipcbiAgICogUGFzc2VkIHRvIHRoZSB2bGxtIGVuZ2luZSBhdCBjb21waWxlIHRpbWUuXG4gICAqL1xuICByZWFkb25seSB2bGxtQXJnczogVmxsbUVuZ2luZUFyZ3VtZW50cztcbn1cblxuLyoqXG4gKiBOZXVyb254IGNvbXBpbGVyIGNvbnN0cnVjdCBmb3IgdkxMTSBvbiBOeEQgSW5mZXJlbmNlLlxuICogQ29tcGlsZSB0aGUgbW9kZWwgdG8gd29yayB3aXRoIE5ldXJvbnggaW5zdGFuY2UgYW5kIHVwbG9hZCBpdCB0byBhbiBTMyBidWNrZXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBWbGxtTnhkSW5mZXJlbmNlQ29tcGlsZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IHZsbG1BcmdzOiBWbGxtRW5naW5lQXJndW1lbnRzO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbXBpbGVyOiBOZXVyb254Q29tcGlsZXI7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBtYXhNb2RlbExlbiA9IHByb3BzLnZsbG1BcmdzPy5tYXhNb2RlbExlbiA/PyAxMjg7XG4gICAgY29uc3QgbWF4TnVtU2VxcyA9IHByb3BzLnZsbG1BcmdzPy5tYXhOdW1TZXFzID8/IDE7XG4gICAgY29uc3QgbWVtb3J5Rm9vdHByaW50ID0gcHJvcHMubW9kZWwub3B0aW9ucy5jb25maWdcbiAgICAgID8gY2FsY01lbW9yeUZvb3RwcmludChcbiAgICAgICAgICBwcm9wcy5tb2RlbC5vcHRpb25zLmNvbmZpZy5lbWJlZGRpbmdEaW1lbnNpb24sXG4gICAgICAgICAgcHJvcHMubW9kZWwub3B0aW9ucy5jb25maWcubGF5ZXJzLFxuICAgICAgICAgIERhdGFUeXBlQml0cy5CRjE2X09SX0ZQMTYsXG4gICAgICAgICAgbWF4TW9kZWxMZW4sXG4gICAgICAgICAgbWF4TnVtU2VxcyxcbiAgICAgICAgKVxuICAgICAgOiBpbmZlck1lbW9yeUZvb3RwcmludEZyb21QYXJhbWV0ZXJzKFxuICAgICAgICAgIHByb3BzLm1vZGVsLm9wdGlvbnMucGFyYW1ldGVycyxcbiAgICAgICAgICBtYXhNb2RlbExlbixcbiAgICAgICAgICBtYXhOdW1TZXFzLFxuICAgICAgICApO1xuICAgIGNvbnN0IG5ldXJvbnhJbnN0YW5jZVR5cGVzID0gcHJvcHMubmV1cm9ueEluc3RhbmNlVHlwZVxuICAgICAgPyBbcHJvcHMubmV1cm9ueEluc3RhbmNlVHlwZV1cbiAgICAgIDogW1xuICAgICAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl84WExBUkdFLFxuICAgICAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl8yNFhMQVJHRSxcbiAgICAgICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfNDhYTEFSR0UsXG4gICAgICAgIF07XG4gICAgY29uc3QgYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJucyA9IG5ldXJvbnhJbnN0YW5jZVR5cGVzXG4gICAgICAuZmxhdE1hcCgobmV1cm9ueEluc3RhbmNlVHlwZSkgPT5cbiAgICAgICAgY2FsY1RlbnNvclBhcmFsbGVsKFxuICAgICAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICAgICAgbWVtb3J5Rm9vdHByaW50LFxuICAgICAgICAgIHByb3BzLm1vZGVsLm9wdGlvbnMuY29uZmlnPy5hdHRlbnRpb25IZWFkcyxcbiAgICAgICAgKS5tYXAoKHYpID0+ICh7XG4gICAgICAgICAgbmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgICAgICAgICAuLi52LFxuICAgICAgICB9KSksXG4gICAgICApXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoaW5zdGFuY2VUeXBlKSA9PlxuICAgICAgICAgICFwcm9wcy52bGxtQXJncz8udGVuc29yUGFyYWxsZWxTaXplIHx8XG4gICAgICAgICAgaW5zdGFuY2VUeXBlLnRwID09PSBwcm9wcy52bGxtQXJncy50ZW5zb3JQYXJhbGxlbFNpemUsXG4gICAgICApO1xuICAgIGlmIChhdmFpbGFibGVJbnN0YW5jZVBhdHRlcm5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTm8gYXZhaWxhYmxlIGluc3RhbmNlIHR5cGUuIFlvdSBjYW4gdXNlIHRlbnNvclBhcmFsbGVsU2l6ZSBhcmUgJHthdmFpbGFibGVJbnN0YW5jZVBhdHRlcm5zLm1hcCgocCkgPT4gcC50cCkuam9pbihcIiwgXCIpfS5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgdGVuc29yUGFyYWxsZWxTaXplID0gYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJuc1swXS50cDtcbiAgICBjb25zdCBpbWFnZSA9XG4gICAgICBwcm9wcy5pbWFnZSA/PyBuZXcgVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVJbWFnZSh0aGlzLCBcIkNvbXBpbGVJbWFnZVwiKTtcbiAgICBjb25zdCB2bGxtQXJncyA9IHtcbiAgICAgIC4uLnByb3BzLnZsbG1BcmdzLFxuICAgICAgbW9kZWw6IHByb3BzLm1vZGVsLm1vZGVsSWQsXG4gICAgICBzZXJ2ZWRNb2RlbE5hbWU6IFtwcm9wcy5tb2RlbC5tb2RlbE5hbWVdLFxuICAgICAgbWF4TW9kZWxMZW4sXG4gICAgICBtYXhOdW1TZXFzLFxuICAgICAgdGVuc29yUGFyYWxsZWxTaXplLFxuICAgIH0gc2F0aXNmaWVzIFZsbG1FbmdpbmVBcmd1bWVudHM7XG5cbiAgICAvLyBjaGFuZ2UgZGlybmFtZSBldmVyeSBlbmdpbmUgYXJncyBwYXR0ZXJuc1xuICAgIGNvbnN0IGhhc2ggPSAoc3RyOiBzdHJpbmcpID0+XG4gICAgICBjcmVhdGVIYXNoKFwic2hhMjU2XCIpLnVwZGF0ZShzdHIpLmRpZ2VzdChcImhleFwiKTtcbiAgICBjb25zdCBhcnRpZmFjdFMzUHJlZml4ID0gYHNkay0ke2ltYWdlLm5ldXJvblNka1ZlcnNpb259LyR7aGFzaChKU09OLnN0cmluZ2lmeSh2bGxtQXJncykpfWA7XG4gICAgY29uc3QgdmxsbUNsaUFyZ3MgPSBWbGxtRW5naW5lQXJndW1lbnRzUGFyc2VyLmNsaSh2bGxtQXJncyk7XG4gICAgY29uc3QgZW52aXJvbm1lbnQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAuLi5wcm9wcy5lbnZpcm9ubWVudCxcbiAgICAgIFZMTE1fTkVVUk9OX0ZSQU1FV09SSzogXCJuZXVyb254LWRpc3RyaWJ1dGVkLWluZmVyZW5jZVwiLFxuICAgICAgTkVVUk9OX0NPTVBJTEVEX0FSVElGQUNUUzogXCJuZXVyb24tY29tcGlsZWQtYXJ0aWZhY3RzXCIsXG4gICAgICBORVVST05fUlRfTlVNX0NPUkVTOiB0ZW5zb3JQYXJhbGxlbFNpemUudG9TdHJpbmcoKSxcbiAgICAgIFhMQV9IQU5ETEVfU1BFQ0lBTF9TQ0FMQVI6IFwiMVwiLFxuICAgICAgTU9ERUxfSUQ6IHByb3BzLm1vZGVsLm1vZGVsSWQsXG4gICAgICBNT0RFTF9OQU1FOiBwcm9wcy5tb2RlbC5tb2RlbE5hbWUsXG4gICAgICBDT01QSUxFRF9BUlRJRkFDVFNfUzNfVVJJOiBwcm9wcy5idWNrZXQuczNVcmxGb3JPYmplY3QoYXJ0aWZhY3RTM1ByZWZpeCksXG4gICAgICBDT01QSUxFRF9BUlRJRkFDVFNfUzNfUFJFRklYOiBhcnRpZmFjdFMzUHJlZml4LFxuICAgIH07XG4gICAgY29uc3Qgc2VjcmV0czogeyBba2V5OiBzdHJpbmddOiBiYXRjaC5TZWNyZXQgfSA9IHt9O1xuICAgIGlmIChwcm9wcy52bGxtQXJncz8uaGZUb2tlbikge1xuICAgICAgc2VjcmV0cy5IRl9UT0tFTiA9IHByb3BzLnZsbG1BcmdzLmhmVG9rZW47XG4gICAgfVxuICAgIGNvbnN0IHdlaWdodFNpemUgPSBTaXplLmdpYmlieXRlcyhcbiAgICAgIHByb3BzLm1vZGVsLm9wdGlvbnMucGFyYW1ldGVycy50b0JpbGxpb24oKSAqIDIuNSxcbiAgICApO1xuICAgIGNvbnN0IHF1YW50aXplZFdpZ2h0U2l6ZSA9IHByb3BzLnZsbG1BcmdzPy5vdmVycmlkZU5ldXJvbkNvbmZpZz8ucXVhbnRpemVkXG4gICAgICA/IHdlaWdodFNpemVcbiAgICAgIDogU2l6ZS5ieXRlcygwKTtcbiAgICBjb25zdCB2b2x1bWVTaXplID0gU2l6ZS5naWJpYnl0ZXMoXG4gICAgICBNYXRoLmNlaWwoXG4gICAgICAgIHdlaWdodFNpemUudG9HaWJpYnl0ZXMoKSArXG4gICAgICAgICAgcXVhbnRpemVkV2lnaHRTaXplLnRvR2liaWJ5dGVzKCkgK1xuICAgICAgICAgIFB5dG9yY2hUcmFpbmluZ05ldXJvbnhJbWFnZS5zaXplLnRvR2liaWJ5dGVzKCkgK1xuICAgICAgICAgIE5ldXJvbk9wdGltaXplZE1hY2hpbmVJbWFnZS5zaXplLnRvR2liaWJ5dGVzKCksXG4gICAgICApLFxuICAgICk7XG5cbiAgICBjb25zdCBjb21waWxlciA9IG5ldyBOZXVyb254Q29tcGlsZXIodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGU6IGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnNbMF0ubmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgICAgIGFydGlmYWN0UzNQcmVmaXgsXG4gICAgICBpbWFnZTogaW1hZ2UsXG4gICAgICBjb21tYW5kOiB2bGxtQ2xpQXJncyxcbiAgICAgIGVudmlyb25tZW50LFxuICAgICAgc2VjcmV0cyxcbiAgICAgIHZvbHVtZVNpemUsXG4gICAgfSk7XG4gICAgdGhpcy52bGxtQXJncyA9IHZsbG1BcmdzO1xuICAgIHRoaXMuY29tcGlsZXIgPSBjb21waWxlcjtcbiAgfVxuICAvKipcbiAgICogQ29tcGlsZSB0aGUgbW9kZWwgYW5kIHJldHVybiB0aGUgY29tcGlsZWQgbW9kZWwuXG4gICAqIEByZXR1cm5zIFRoZSBjb21waWxlZCBtb2RlbC5cbiAgICovXG4gIGNvbXBpbGUoKTogVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVkTW9kZWwge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmNvbXBpbGVyLmNvbXBpbGUoKSxcbiAgICAgIHZsbG1BcmdzOiB0aGlzLnZsbG1BcmdzLFxuICAgIH0gc2F0aXNmaWVzIFZsbG1OeGRJbmZlcmVuY2VDb21waWxlZE1vZGVsO1xuICB9XG59XG4iXX0=
@@ -19,7 +19,7 @@ class VllmNxdInferenceEcsImageBase {
19
19
  }
20
20
  exports.VllmNxdInferenceEcsImageBase = VllmNxdInferenceEcsImageBase;
21
21
  _a = JSII_RTTI_SYMBOL_1;
22
- VllmNxdInferenceEcsImageBase[_a] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceEcsImageBase", version: "0.0.25" };
22
+ VllmNxdInferenceEcsImageBase[_a] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceEcsImageBase", version: "0.1.0" };
23
23
  /**
24
24
  * Inference ECS container image for vLLM on NxD Inference.
25
25
  * This image uses the official AWS Neuron Deep Learning Containers which come with vLLM pre-installed.
@@ -42,7 +42,7 @@ class VllmNxdInferenceEcsImage extends VllmNxdInferenceEcsImageBase {
42
42
  }
43
43
  exports.VllmNxdInferenceEcsImage = VllmNxdInferenceEcsImage;
44
44
  _b = JSII_RTTI_SYMBOL_1;
45
- VllmNxdInferenceEcsImage[_b] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceEcsImage", version: "0.0.25" };
45
+ VllmNxdInferenceEcsImage[_b] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceEcsImage", version: "0.1.0" };
46
46
  /**
47
47
  * Task definition for VllmNxdInference.
48
48
  */
@@ -90,7 +90,7 @@ class VllmNxdInferenceTaskDefinition extends aws_ecs_patterns_1.NeuronxTaskDefin
90
90
  }
91
91
  exports.VllmNxdInferenceTaskDefinition = VllmNxdInferenceTaskDefinition;
92
92
  _c = JSII_RTTI_SYMBOL_1;
93
- VllmNxdInferenceTaskDefinition[_c] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceTaskDefinition", version: "0.0.25" };
93
+ VllmNxdInferenceTaskDefinition[_c] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceTaskDefinition", version: "0.1.0" };
94
94
  /**
95
95
  * ApplicationLoadBalancedVllmNxDInferenceService is a wrapper of ApplicationLoadBalancedNeuronxServiceBase.
96
96
  * It provides a simple way to deploy vLLM on NxD Inference.
@@ -129,5 +129,5 @@ class ApplicationLoadBalancedVllmNxDInferenceService extends constructs_1.Constr
129
129
  }
130
130
  exports.ApplicationLoadBalancedVllmNxDInferenceService = ApplicationLoadBalancedVllmNxDInferenceService;
131
131
  _d = JSII_RTTI_SYMBOL_1;
132
- ApplicationLoadBalancedVllmNxDInferenceService[_d] = { fqn: "aws-cdk-neuronx-patterns.ApplicationLoadBalancedVllmNxDInferenceService", version: "0.0.25" };
132
+ ApplicationLoadBalancedVllmNxDInferenceService[_d] = { fqn: "aws-cdk-neuronx-patterns.ApplicationLoadBalancedVllmNxDInferenceService", version: "0.1.0" };
133
133
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmxsbS1ueGQtaW5mZXJlbmNlLWVjcy1wYXR0ZXJucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92bGxtLW54ZC1pbmZlcmVuY2UvdmxsbS1ueGQtaW5mZXJlbmNlLWVjcy1wYXR0ZXJucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF1QztBQUN2QywyQ0FBMkM7QUFNM0MsMkNBQXVDO0FBQ3ZDLCtEQUtrQztBQUNsQyw2Q0FHeUI7QUFFekIsbUVBQThFO0FBTzlFOztHQUVHO0FBQ0gsTUFBc0IsNEJBQTRCO0lBU2hELFlBQVksWUFBd0M7UUFDbEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQztJQUN4RCxDQUFDOztBQVhILG9FQVlDOzs7QUFFRDs7Ozs7R0FLRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsNEJBQTRCO0lBR3hFOzs7Ozs7T0FNRztJQUNILFlBQVkseUJBQXNEO1FBQ2hFLHlCQUF5QixLQUF6Qix5QkFBeUIsR0FBSyxtQ0FBeUIsQ0FBQyxNQUFNLEVBQUM7UUFDL0QsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FDMUMsR0FBRyx5QkFBeUIsQ0FBQyxTQUFTLElBQUkseUJBQXlCLENBQUMsUUFBUSxFQUFFLENBQy9FLENBQUM7SUFDSixDQUFDOztBQWhCSCw0REFpQkM7OztBQTBCRDs7R0FFRztBQUNILE1BQWEsOEJBQStCLFNBQVEsd0NBQXFCO0lBQ3ZFLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQTBDO1FBRTFDLE1BQU0sbUJBQW1CLEdBQ3ZCLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDO1FBQzNFLE1BQU0sa0JBQWtCLEdBQ3RCLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGtCQUFrQixJQUFJLENBQUMsQ0FBQztRQUN2RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLG1CQUFtQjtZQUNuQixrQkFBa0I7U0FDbkIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLHdCQUF3QixFQUFFLENBQUM7UUFDNUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUN2RCxNQUFNLFdBQVcsR0FBRyx1Q0FBeUIsQ0FBQyxHQUFHLENBQy9DLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUM3QixDQUFDO1FBQ0YsZ0NBQWdDO1FBQ2hDLE1BQU0sV0FBVyxHQUEyQjtZQUMxQyxHQUFHLEtBQUssQ0FBQyxXQUFXO1lBQ3BCLHFCQUFxQixFQUFFLCtCQUErQjtZQUN0RCx5QkFBeUIsRUFBRSwyQkFBMkI7WUFDdEQsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFO1lBQ2xELHlCQUF5QixFQUFFLEdBQUc7WUFDOUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUztTQUMxQyxDQUFDO1FBRUYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRTtZQUNuQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsWUFBWSxFQUFFO2dCQUNaO29CQUNFLGFBQWEsRUFBRSxJQUFJO2lCQUNwQjthQUNGO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLE9BQU8sRUFBRTtvQkFDUCxXQUFXO29CQUNYLDRCQUE0QixJQUFJLG1CQUFtQjtpQkFDcEQ7Z0JBQ0QsV0FBVyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUNqQztZQUNELGdCQUFnQixFQUFFLGlCQUFpQixLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUNqRSxVQUFVLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO1lBQzdCLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLFdBQVc7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDOztBQWpESCx3RUFrREM7OztBQU9EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFhLDhDQUErQyxTQUFRLHNCQUFTO0lBTTNFLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQTBEO1FBRTFELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSx3REFBcUMsQ0FDeEQsSUFBSSxFQUNKLFVBQVUsRUFDVixLQUFLLENBQ04sQ0FBQztRQUNGLFFBQVEsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUM7WUFDeEMsSUFBSSxFQUFFLFNBQVM7U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUNoRCxDQUFDOztBQXpCSCx3R0EwQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgZWNzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzXCI7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvbkxpc3RlbmVyLFxuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcixcbiAgQXBwbGljYXRpb25UYXJnZXRHcm91cCxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWROZXVyb254U2VydmljZSxcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWROZXVyb254U2VydmljZVByb3BzLFxuICBOZXVyb254VGFza0RlZmluaXRpb24sXG4gIE5ldXJvbnhUYXNrRGVmaW5pdGlvblByb3BzQmFzZSxcbn0gZnJvbSBcIi4uL2Jhc2UvYXdzLWVjcy1wYXR0ZXJuc1wiO1xuaW1wb3J0IHtcbiAgSVZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UsXG4gIFZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UsXG59IGZyb20gXCIuLi9iYXNlL25ldXJvbnhcIjtcbmltcG9ydCB7IElOZXVyb254Q29udGFpbmVySW1hZ2UgfSBmcm9tIFwiLi4vYmFzZS9uZXVyb254LWNvbXBpbGVyXCI7XG5pbXBvcnQgeyBWbGxtRW5naW5lQXJndW1lbnRzUGFyc2VyIH0gZnJvbSBcIi4uL2Jhc2Uvc2VydmVyLWVuZ2luZS92bGxtLWVuZ2luZVwiO1xuaW1wb3J0IHsgVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVkTW9kZWwgfSBmcm9tIFwiLi92bGxtLW54ZC1pbmZlcmVuY2UtY29tcGlsZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBWbGxtTnhkSW5mZXJlbmNlSW1hZ2VPcHRpb25zIHtcbiAgcmVhZG9ubHkgdmxsbUdpdEJyYW5jaD86IHN0cmluZztcbiAgcmVhZG9ubHkgdmxsbUdpdENvbW1pdEhhc2g/OiBzdHJpbmc7XG59XG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIFZsbG1OeGRJbmZlcmVuY2VJbWFnZS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZUJhc2UgaW1wbGVtZW50cyBJTmV1cm9ueENvbnRhaW5lckltYWdlIHtcbiAgLyoqXG4gICAqIFRoZSBjb250YWluZXIgaW1hZ2UuXG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSBpbWFnZTogZWNzLkNvbnRhaW5lckltYWdlO1xuICAvKipcbiAgICogVGhlIG5ldXJvbnggU0RLIHZlcnNpb24uXG4gICAqL1xuICByZWFkb25seSBuZXVyb25TZGtWZXJzaW9uOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKG5ldXJvbnhJbWFnZTogSVZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UpIHtcbiAgICB0aGlzLm5ldXJvblNka1ZlcnNpb24gPSBuZXVyb254SW1hZ2UubmV1cm9uU2RrVmVyc2lvbjtcbiAgfVxufVxuXG4vKipcbiAqIEluZmVyZW5jZSBFQ1MgY29udGFpbmVyIGltYWdlIGZvciB2TExNIG9uIE54RCBJbmZlcmVuY2UuXG4gKiBUaGlzIGltYWdlIHVzZXMgdGhlIG9mZmljaWFsIEFXUyBOZXVyb24gRGVlcCBMZWFybmluZyBDb250YWluZXJzIHdoaWNoIGNvbWUgd2l0aCB2TExNIHByZS1pbnN0YWxsZWQuXG4gKlxuICogQGV4YW1wbGUgbmV3IFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZShWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLkxBVEVTVClcbiAqL1xuZXhwb3J0IGNsYXNzIFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZSBleHRlbmRzIFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZUJhc2Uge1xuICByZWFkb25seSBpbWFnZTogZWNzLkNvbnRhaW5lckltYWdlO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBWbGxtTnhkSW5mZXJlbmNlSW1hZ2UgZnJvbSBhIGN1c3RvbSBuZXVyb254IGltYWdlLlxuICAgKiBUaGlzIHdpbGwgYnVpbGQgYSBjb250YWluZXIgaW1hZ2UgdXNpbmcgYSBEb2NrZXJmaWxlIHRoYXQgaW5zdGFsbHMgdkxMTSBmcm9tIHNvdXJjZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogbmV3IFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZShWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLkxBVEVTVClcbiAgICovXG4gIGNvbnN0cnVjdG9yKHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2U/OiBJVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZSkge1xuICAgIHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UgPz89IFZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UuTEFURVNUO1xuICAgIHN1cGVyKHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UpO1xuICAgIHRoaXMuaW1hZ2UgPSBlY3MuQ29udGFpbmVySW1hZ2UuZnJvbVJlZ2lzdHJ5KFxuICAgICAgYCR7dmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZS5pbWFnZU5hbWV9OiR7dmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZS5pbWFnZVRhZ31gLFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBUYXNrIGRlZmluaXRpb24gZm9yIFZsbG1OeGRJbmZlcmVuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmxsbU54ZEluZmVyZW5jZVRhc2tEZWZpbml0aW9uUHJvcHMgZXh0ZW5kcyBOZXVyb254VGFza0RlZmluaXRpb25Qcm9wc0Jhc2Uge1xuICAvKipcbiAgICogVGhlIG1vZGVsIHRvIGJlIGNvbXBpbGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGlsZWRNb2RlbDogVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVkTW9kZWw7XG4gIC8qKlxuICAgKiBUaGUgaW1hZ2UgdG8gYmUgdXNlZCBmb3IgdGhlIGNvbnRhaW5lci5cbiAgICogQGRlZmF1bHQgLSBsYXRlc3QgVmxsbU54ZEluZmVyZW5jZUltYWdlXG4gICAqL1xuICByZWFkb25seSBpbWFnZT86IFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZUJhc2U7XG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHBhc3MgdG8gdGhlIGNvbnRhaW5lci5cbiAgICogVGhpcyBpcyBvbmx5IGFwcGxpY2FibGUgd2hlbiB1c2luZyBjb250YWluZXIgcnVudGltZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG59XG5cbi8qKlxuICogVGFzayBkZWZpbml0aW9uIGZvciBWbGxtTnhkSW5mZXJlbmNlLlxuICovXG5leHBvcnQgY2xhc3MgVmxsbU54ZEluZmVyZW5jZVRhc2tEZWZpbml0aW9uIGV4dGVuZHMgTmV1cm9ueFRhc2tEZWZpbml0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBWbGxtTnhkSW5mZXJlbmNlVGFza0RlZmluaXRpb25Qcm9wcyxcbiAgKSB7XG4gICAgY29uc3QgbmV1cm9ueEluc3RhbmNlVHlwZSA9XG4gICAgICBwcm9wcy5uZXVyb254SW5zdGFuY2VUeXBlID8/IHByb3BzLmNvbXBpbGVkTW9kZWwuY29tcGlsZVRpbWVJbnN0YW5jZVR5cGU7XG4gICAgY29uc3QgdGVuc29yUGFyYWxsZWxTaXplID1cbiAgICAgIHByb3BzLmNvbXBpbGVkTW9kZWwudmxsbUFyZ3MudGVuc29yUGFyYWxsZWxTaXplID8/IDE7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICB0ZW5zb3JQYXJhbGxlbFNpemUsXG4gICAgfSk7XG4gICAgY29uc3QgaW1hZ2UgPSBwcm9wcy5pbWFnZSA/PyBuZXcgVmxsbU54ZEluZmVyZW5jZUVjc0ltYWdlKCk7XG4gICAgY29uc3QgcG9ydCA9IHByb3BzLmNvbXBpbGVkTW9kZWwudmxsbUFyZ3MucG9ydCA/PyA4MDAwO1xuICAgIGNvbnN0IHZsbG1DbGlBcmdzID0gVmxsbUVuZ2luZUFyZ3VtZW50c1BhcnNlci5jbGkoXG4gICAgICBwcm9wcy5jb21waWxlZE1vZGVsLnZsbG1BcmdzLFxuICAgICk7XG4gICAgLy8gUHJlcGFyZSBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgICBjb25zdCBlbnZpcm9ubWVudDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIC4uLnByb3BzLmVudmlyb25tZW50LFxuICAgICAgVkxMTV9ORVVST05fRlJBTUVXT1JLOiBcIm5ldXJvbngtZGlzdHJpYnV0ZWQtaW5mZXJlbmNlXCIsXG4gICAgICBORVVST05fQ09NUElMRURfQVJUSUZBQ1RTOiBcIm5ldXJvbi1jb21waWxlZC1hcnRpZmFjdHNcIixcbiAgICAgIE5FVVJPTl9SVF9OVU1fQ09SRVM6IHRlbnNvclBhcmFsbGVsU2l6ZS50b1N0cmluZygpLFxuICAgICAgWExBX0hBTkRMRV9TUEVDSUFMX1NDQUxBUjogXCIxXCIsXG4gICAgICBNT0RFTF9OQU1FOiBwcm9wcy5jb21waWxlZE1vZGVsLm1vZGVsTmFtZSxcbiAgICB9O1xuXG4gICAgdGhpcy5hZGRDb250YWluZXJXaXRoRGVmYXVsdChcInZMTE1cIiwge1xuICAgICAgaW1hZ2U6IGltYWdlLmltYWdlLFxuICAgICAgcG9ydE1hcHBpbmdzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb250YWluZXJQb3J0OiBwb3J0LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGhlYWx0aENoZWNrOiB7XG4gICAgICAgIGNvbW1hbmQ6IFtcbiAgICAgICAgICBcIkNNRC1TSEVMTFwiLFxuICAgICAgICAgIGBjdXJsIC1mIGh0dHA6Ly9sb2NhbGhvc3Q6JHtwb3J0fS9oZWFsdGggfHwgZXhpdCAxYCxcbiAgICAgICAgXSxcbiAgICAgICAgc3RhcnRQZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICB9LFxuICAgICAgd29ya2luZ0RpcmVjdG9yeTogYC9vcHQvbWwvbW9kZWwvJHtwcm9wcy5jb21waWxlZE1vZGVsLnMzUHJlZml4fWAsXG4gICAgICBlbnRyeVBvaW50OiBbXCJ2bGxtXCIsIFwic2VydmVcIl0sXG4gICAgICBjb21tYW5kOiB2bGxtQ2xpQXJncyxcbiAgICAgIGVudmlyb25tZW50LFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkVmxsbU54REluZmVyZW5jZVNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRWbGxtTnhESW5mZXJlbmNlU2VydmljZVByb3BzIGV4dGVuZHMgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWROZXVyb254U2VydmljZVByb3BzIHt9XG5cbi8qKlxuICogQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRWbGxtTnhESW5mZXJlbmNlU2VydmljZSBpcyBhIHdyYXBwZXIgb2YgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWROZXVyb254U2VydmljZUJhc2UuXG4gKiBJdCBwcm92aWRlcyBhIHNpbXBsZSB3YXkgdG8gZGVwbG95IHZMTE0gb24gTnhEIEluZmVyZW5jZS5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBjb21waWxlciA9IG5ldyBWbGxtTnhkSW5mZXJlbmNlQ29tcGlsZXIodGhpcywgXCJDb21waWxlclwiLCB7XG4gKiAgIHZwYyxcbiAqICAgYnVja2V0LFxuICogICBtb2RlbDogTW9kZWwuZnJvbUh1Z2dpbmdGYWNlKFwiZXhhbXBsZS9leGFtcGxlLTdiLWNoYXRcIiksXG4gKiB9KTtcbiAqIGNvbnN0IGNvbXBpbGVkTW9kZWwgPSBjb21waWxlci5jb21waWxlKCk7XG4gKiBjb25zdCB0YXNrRGVmaW5pdGlvbiA9IG5ldyBWbGxtTnhkSW5mZXJlbmNlVGFza0RlZmluaXRpb24oXG4gKiAgIHRoaXMsXG4gKiAgIFwiVGFza0RlZmluaXRpb25cIixcbiAqICAge1xuICogICAgIHZwYyxcbiAqICAgICBjb21waWxlZE1vZGVsLFxuICogICB9LFxuICogKTtcbiAqIG5ldyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFZsbG1OeERJbmZlcmVuY2VTZXJ2aWNlKHRoaXMsIFwiU2VydmljZVwiLCB7XG4gKiAgIHRhc2tEZWZpbml0aW9uLFxuICogfSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFZsbG1OeERJbmZlcmVuY2VTZXJ2aWNlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyOiBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcjtcbiAgcmVhZG9ubHkgbGlzdGVuZXI6IEFwcGxpY2F0aW9uTGlzdGVuZXI7XG4gIHJlYWRvbmx5IHRhcmdldEdyb3VwOiBBcHBsaWNhdGlvblRhcmdldEdyb3VwO1xuICByZWFkb25seSBzZXJ2aWNlOiBlY3MuRWMyU2VydmljZTtcbiAgcmVhZG9ubHkgdGFza0RlZmluaXRpb246IGVjcy5FYzJUYXNrRGVmaW5pdGlvbjtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFZsbG1OeERJbmZlcmVuY2VTZXJ2aWNlUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWROZXVyb254U2VydmljZShcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICBwcm9wcyxcbiAgICApO1xuICAgIHJlc291cmNlLnRhcmdldEdyb3VwLmNvbmZpZ3VyZUhlYWx0aENoZWNrKHtcbiAgICAgIHBhdGg6IFwiL2hlYWx0aFwiLFxuICAgIH0pO1xuICAgIHRoaXMubG9hZEJhbGFuY2VyID0gcmVzb3VyY2UubG9hZEJhbGFuY2VyO1xuICAgIHRoaXMubGlzdGVuZXIgPSByZXNvdXJjZS5saXN0ZW5lcjtcbiAgICB0aGlzLnRhcmdldEdyb3VwID0gcmVzb3VyY2UudGFyZ2V0R3JvdXA7XG4gICAgdGhpcy5zZXJ2aWNlID0gcmVzb3VyY2Uuc2VydmljZTtcbiAgICB0aGlzLnRhc2tEZWZpbml0aW9uID0gcmVzb3VyY2UudGFza0RlZmluaXRpb247XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -75,7 +75,8 @@
75
75
  "constructs": "^10.5.1"
76
76
  },
77
77
  "dependencies": {
78
- "@aws-cdk/aws-sagemaker-alpha": "2.240.0-alpha.0"
78
+ "@aws-cdk/aws-sagemaker-alpha": "2.240.0-alpha.0",
79
+ "@cdklabs/deploy-time-build": "^0.0.6"
79
80
  },
80
81
  "keywords": [
81
82
  "cdk",
@@ -94,7 +95,7 @@
94
95
  ]
95
96
  }
96
97
  },
97
- "version": "0.0.25",
98
+ "version": "0.1.0",
98
99
  "jest": {
99
100
  "coverageProvider": "v8",
100
101
  "testMatch": [