image-scanner-with-trivy 1.0.3 → 1.0.4
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 +3 -3
- package/API.md +1 -1
- package/README.md +1 -1
- package/lib/index.js +1 -1
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -3518,7 +3518,7 @@
|
|
|
3518
3518
|
},
|
|
3519
3519
|
"name": "image-scanner-with-trivy",
|
|
3520
3520
|
"readme": {
|
|
3521
|
-
"markdown": "# image-scanner-with-trivy\n\n## What is\n\nThis is an AWS CDK Construct that allows you to **scan container images with Trivy in CDK deployment layer**.\n\nIf it detects vulnerabilities, it can **prevent the image from being pushed to the ECR for the application**.\n\nSince it takes an `imageUri` for ECR as an argument, it can also be used to **simply scan an existing image in the repository**.\n\n## Trivy\n\n[Trivy](https://github.com/aquasecurity/trivy) is a comprehensive and versatile security scanner.\n\n## Usage\n\n- Install\n\n```sh\nnpm install image-scanner-with-trivy\n```\n\n- CDK Code\n\n```ts\nimport { ImageScannerWithTrivy } from 'image-scanner-with-trivy';\n\nconst repository = new Repository(this, 'ImageRepository', {\n removalPolicy: RemovalPolicy.DESTROY,\n autoDeleteImages: true,\n});\n\nconst image = new DockerImageAsset(this, 'DockerImage', {\n directory: resolve(__dirname, './'),\n});\n\n//
|
|
3521
|
+
"markdown": "# image-scanner-with-trivy\n\n## What is\n\nThis is an AWS CDK Construct that allows you to **scan container images with Trivy in CDK deployment layer**.\n\nIf it detects vulnerabilities, it can **prevent the image from being pushed to the ECR for the application**.\n\nSince it takes an `imageUri` for ECR as an argument, it can also be used to **simply scan an existing image in the repository**.\n\n## Trivy\n\n[Trivy](https://github.com/aquasecurity/trivy) is a comprehensive and versatile security scanner.\n\n## Usage\n\n- Install\n\n```sh\nnpm install image-scanner-with-trivy\n```\n\n- CDK Code\n\n```ts\nimport { ImageScannerWithTrivy } from 'image-scanner-with-trivy';\n\nconst repository = new Repository(this, 'ImageRepository', {\n removalPolicy: RemovalPolicy.DESTROY,\n autoDeleteImages: true,\n});\n\nconst image = new DockerImageAsset(this, 'DockerImage', {\n directory: resolve(__dirname, './'),\n});\n\n// Add properties you want for trivy options (ignoreUnfixed, severity, scanners, trivyIgnore, etc).\nconst imageScanner = new ImageScannerWithTrivy(this, 'ImageScannerWithTrivy', {\n imageUri: image.imageUri,\n repository: image.repository,\n});\n\n// By adding `addDependency`, if the vulnerabilities are detected by `ImageScannerWithTrivy`, the following `ECRDeployment` will not be executed, deployment will fail.\nconst ecrDeployment = new ECRDeployment(this, 'DeployImage', {\n src: new DockerImageName(image.imageUri),\n dest: new DockerImageName(`${repository.repositoryUri}:latest`),\n});\necrDeployment.node.addDependency(imageScanner);\n```\n\n## API Reference\n\nAPI Reference is [here](./API.md#api-reference-).\n"
|
|
3522
3522
|
},
|
|
3523
3523
|
"repository": {
|
|
3524
3524
|
"type": "git",
|
|
@@ -3945,6 +3945,6 @@
|
|
|
3945
3945
|
"symbolId": "src/index:Severity"
|
|
3946
3946
|
}
|
|
3947
3947
|
},
|
|
3948
|
-
"version": "1.0.
|
|
3949
|
-
"fingerprint": "
|
|
3948
|
+
"version": "1.0.4",
|
|
3949
|
+
"fingerprint": "mni3R4gfqw+gG7m7rRJIv7+IneZwt4xO+bLX0dxqvjQ="
|
|
3950
3950
|
}
|
package/API.md
CHANGED
|
@@ -34,7 +34,7 @@ const image = new DockerImageAsset(this, 'DockerImage', {
|
|
|
34
34
|
directory: resolve(__dirname, './'),
|
|
35
35
|
});
|
|
36
36
|
|
|
37
|
-
//
|
|
37
|
+
// Add properties you want for trivy options (ignoreUnfixed, severity, scanners, trivyIgnore, etc).
|
|
38
38
|
const imageScanner = new ImageScannerWithTrivy(this, 'ImageScannerWithTrivy', {
|
|
39
39
|
imageUri: image.imageUri,
|
|
40
40
|
repository: image.repository,
|
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ const image = new DockerImageAsset(this, 'DockerImage', {
|
|
|
34
34
|
directory: resolve(__dirname, './'),
|
|
35
35
|
});
|
|
36
36
|
|
|
37
|
-
//
|
|
37
|
+
// Add properties you want for trivy options (ignoreUnfixed, severity, scanners, trivyIgnore, etc).
|
|
38
38
|
const imageScanner = new ImageScannerWithTrivy(this, 'ImageScannerWithTrivy', {
|
|
39
39
|
imageUri: image.imageUri,
|
|
40
40
|
repository: image.repository,
|
package/lib/index.js
CHANGED
|
@@ -87,6 +87,6 @@ class ImageScannerWithTrivy extends constructs_1.Construct {
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
_a = JSII_RTTI_SYMBOL_1;
|
|
90
|
-
ImageScannerWithTrivy[_a] = { fqn: "image-scanner-with-trivy.ImageScannerWithTrivy", version: "1.0.
|
|
90
|
+
ImageScannerWithTrivy[_a] = { fqn: "image-scanner-with-trivy.ImageScannerWithTrivy", version: "1.0.4" };
|
|
91
91
|
exports.ImageScannerWithTrivy = ImageScannerWithTrivy;
|
|
92
92
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBNEI7QUFDNUIsNkNBQXVEO0FBRXZELHVEQU1nQztBQUNoQyxtRUFBd0Q7QUFDeEQsMkNBQXVDO0FBRXZDOzs7O0dBSUc7QUFDSCxJQUFZLFFBTVg7QUFORCxXQUFZLFFBQVE7SUFDbEIsK0JBQW1CLENBQUE7SUFDbkIsdUJBQVcsQ0FBQTtJQUNYLDZCQUFpQixDQUFBO0lBQ2pCLHlCQUFhLENBQUE7SUFDYixpQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBTlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFNbkI7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSxRQUtYO0FBTEQsV0FBWSxRQUFRO0lBQ2xCLHlCQUFhLENBQUE7SUFDYiw2QkFBaUIsQ0FBQTtJQUNqQiw2QkFBaUIsQ0FBQTtJQUNqQiwrQkFBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFLbkI7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSxtQkFHWDtBQUhELFdBQVksbUJBQW1CO0lBQzdCLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFIVyxtQkFBbUIsR0FBbkIsMkJBQW1CLEtBQW5CLDJCQUFtQixRQUc5QjtBQWtLRCxrRkFBa0Y7QUFDbEYsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7QUFFakMsTUFBYSxxQkFBc0IsU0FBUSxzQkFBUztJQUNsRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlDO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLEVBQUU7Z0JBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQzthQUNqRjtTQUNGO1FBRUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLDhCQUFpQixDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRTtZQUMvRSxJQUFJLEVBQUUsc0NBQXNDO1lBQzVDLGFBQWEsRUFBRSxtREFBbUQ7WUFDbEUsT0FBTyxFQUFFLG9CQUFPLENBQUMsVUFBVTtZQUMzQixPQUFPLEVBQUUsb0JBQU8sQ0FBQyxVQUFVO1lBQzNCLElBQUksRUFBRSxzQkFBUyxDQUFDLGNBQWMsQ0FBQyxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUNuRSxZQUFZLEVBQUUseUJBQVksQ0FBQyxNQUFNO1lBQ2pDLE9BQU8sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDOUIsYUFBYSxFQUFFLENBQUM7WUFDaEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLElBQUksbUJBQW1CO1NBQ3BELENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFakQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLDJCQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUMxRCxjQUFjLEVBQUUsb0JBQW9CO1NBQ3JDLENBQUMsQ0FBQztRQUVILE1BQU0sc0JBQXNCLEdBQTRELEVBQUUsQ0FBQztRQUMzRixzQkFBc0IsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDN0Msc0JBQXNCLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDakQsc0JBQXNCLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDO1FBQ3BFLHNCQUFzQixDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFLHNCQUFzQixDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUN2RCxzQkFBc0IsQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO1FBQzdFLHNCQUFzQixDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztRQUN0RCxzQkFBc0IsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7UUFDeEQsc0JBQXNCLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzdELHNCQUFzQixDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUV2RCxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUNsQyxZQUFZLEVBQUUsK0JBQStCO1lBQzdDLFVBQVUsRUFBRSxzQkFBc0I7WUFDbEMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFlBQVk7U0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OztBQTVDVSxzREFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDdXN0b21SZXNvdXJjZSwgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBJUmVwb3NpdG9yeSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3InO1xuaW1wb3J0IHtcbiAgQXJjaGl0ZWN0dXJlLFxuICBBc3NldENvZGUsXG4gIEhhbmRsZXIsXG4gIFJ1bnRpbWUsXG4gIFNpbmdsZXRvbkZ1bmN0aW9uLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBFbnVtIGZvciBTZXZlcml0eSBTZWxlY3Rpb25cbiAqXG4gKiBAc2VlIGh0dHBzOi8vYXF1YXNlY3VyaXR5LmdpdGh1Yi5pby90cml2eS9sYXRlc3QvZG9jcy9zY2FubmVyL3Z1bG5lcmFiaWxpdHkvI3NldmVyaXR5LXNlbGVjdGlvblxuICovXG5leHBvcnQgZW51bSBTZXZlcml0eSB7XG4gIFVOS05PV04gPSAnVU5LTk9XTicsXG4gIExPVyA9ICdMT1cnLFxuICBNRURJVU0gPSAnTUVESVVNJyxcbiAgSElHSCA9ICdISUdIJyxcbiAgQ1JJVElDQUwgPSAnQ1JJVElDQUwnLFxufVxuXG4vKipcbiAqIEVudW0gZm9yIFNjYW5uZXJzXG4gKlxuICogQHNlZSBodHRwczovL2FxdWFzZWN1cml0eS5naXRodWIuaW8vdHJpdnkvbGF0ZXN0L2RvY3MvY29uZmlndXJhdGlvbi9vdGhlcnMvI2VuYWJsZWRpc2FibGUtc2Nhbm5lcnNcbiAqL1xuZXhwb3J0IGVudW0gU2Nhbm5lcnMge1xuICBWVUxOID0gJ3Z1bG4nLFxuICBDT05GSUcgPSAnY29uZmlnJyxcbiAgU0VDUkVUID0gJ3NlY3JldCcsXG4gIExJQ0VOU0UgPSAnbGljZW5zZScsXG59XG5cbi8qKlxuICogRW51bSBmb3IgSW1hZ2VDb25maWdTY2FubmVyc1xuICpcbiAqIEBzZWUgaHR0cHM6Ly9hcXVhc2VjdXJpdHkuZ2l0aHViLmlvL3RyaXZ5L2xhdGVzdC9kb2NzL3RhcmdldC9jb250YWluZXJfaW1hZ2UvI2NvbnRhaW5lci1pbWFnZS1tZXRhZGF0YVxuICovXG5leHBvcnQgZW51bSBJbWFnZUNvbmZpZ1NjYW5uZXJzIHtcbiAgQ09ORklHID0gJ2NvbmZpZycsXG4gIFNFQ1JFVCA9ICdzZWNyZXQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlU2Nhbm5lcldpdGhUcml2eVByb3BzIHtcbiAgLyoqXG4gICAqIEltYWdlIFVSSSBmb3Igc2NhbiB0YXJnZXQuXG4gICAqL1xuICByZWFkb25seSBpbWFnZVVyaTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXBvc2l0b3J5IGluY2x1ZGluZyB0aGUgaW1hZ2UgVVJJIGZvciBzY2FuIHRhcmdldC5cbiAgICpcbiAgICogQmVjYXVzZSBvZiBncmFudFB1bGwgdG8gQ3VzdG9tUmVzb3VyY2VMYW1iZGEuXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5OiBJUmVwb3NpdG9yeTtcblxuICAvKipcbiAgICogVGhlIHVuZml4ZWQvdW5maXhhYmxlIHZ1bG5lcmFiaWxpdGllcyBtZWFuIHRoYXQgdGhlIHBhdGNoIGhhcyBub3QgeWV0IGJlZW4gcHJvdmlkZWQgb24gdGhlaXIgZGlzdHJpYnV0aW9uLlxuICAgKlxuICAgKiBUbyBoaWRlIHVuZml4ZWQvdW5maXhhYmxlIHZ1bG5lcmFiaWxpdGllcywgeW91IGNhbiB1c2UgdGhlIGAtLWlnbm9yZS11bmZpeGVkYCBmbGFnLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vYXF1YXNlY3VyaXR5LmdpdGh1Yi5pby90cml2eS9sYXRlc3QvZG9jcy9zY2FubmVyL3Z1bG5lcmFiaWxpdHkvI3VuZml4ZWQtdnVsbmVyYWJpbGl0aWVzXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVVbmZpeGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V2ZXJpdHkgU2VsZWN0aW9uXG4gICAqXG4gICAqIFRoZSBzZXZlcml0eSBpcyB0YWtlbiBmcm9tIHRoZSBzZWxlY3RlZCBkYXRhIHNvdXJjZSBzaW5jZSB0aGUgc2V2ZXJpdHkgZnJvbSB2ZW5kb3JzIGlzIG1vcmUgYWNjdXJhdGUuXG4gICAqIFVzaW5nIENWRS0yMDIzLTA0NjQgYXMgYW4gZXhhbXBsZSwgd2hpbGUgaXQgaXMgcmF0ZWQgYXMgXCJISUdIXCIgaW4gTlZELCBSZWQgSGF0IGhhcyBtYXJrZWQgaXRzICdJbXBhY3QnIGFzIFwiTG93XCIuIEFzIGEgcmVzdWx0LCBUcml2eSB3aWxsIGRpc3BsYXkgaXQgYXMgXCJMb3dcIi5cbiAgICpcbiAgICogVGhlIHNldmVyaXR5IGRlcGVuZHMgb24gdGhlIGNvbXBpbGUgb3B0aW9uLCB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uLCBldGMuIE5WRCBkb2Vzbid0IGtub3cgaG93IHRoZSB2ZW5kb3IgZGlzdHJpYnV0ZXMgdGhlIHNvZnR3YXJlLlxuICAgKiBSZWQgSGF0IGV2YWx1YXRlcyB0aGUgc2V2ZXJpdHkgbW9yZSBhY2N1cmF0ZWx5LiBUaGF0J3Mgd2h5IFRyaXZ5IHByZWZlcnMgdmVuZG9yIHNjb3JlcyBvdmVyIE5WRC5cbiAgICpcbiAgICogSXQgZGVmYXVsdHMgdG8gYENSSVRJQ0FMYCBJTiBUSElTIENPTlNUUlVDVCBmb3Igc2FmZXR5IGluIENJL0NELCBidXQgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBvZiBUcml2eSBpcyBcIkNSSVRJQ0FMLEhJR0gsTUVESVVNLExPVyxVTktOT1dOXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtTZXZlcml0eS5DUklUSUNBTF1cbiAgICpcbiAgICogQHNlZSBodHRwczovL2FxdWFzZWN1cml0eS5naXRodWIuaW8vdHJpdnkvbGF0ZXN0L2RvY3Mvc2Nhbm5lci92dWxuZXJhYmlsaXR5LyNzZXZlcml0eS1zZWxlY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IHNldmVyaXR5PzogU2V2ZXJpdHlbXTtcblxuICAvKipcbiAgICogRW5hYmxlL0Rpc2FibGUgU2Nhbm5lcnNcbiAgICpcbiAgICogWW91IGNhbiBlbmFibGUvZGlzYWJsZSBzY2FubmVycyB3aXRoIHRoZSBgc2Nhbm5lcnNgLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgY29udGFpbmVyIGltYWdlIHNjYW5uaW5nIGVuYWJsZXMgdnVsbmVyYWJpbGl0eSAoVlVMTikgYW5kIHNlY3JldCBzY2FubmVycyAoU0VDUkVUKSBieSBkZWZhdWx0LlxuICAgKiBJZiB5b3UgZG9uJ3QgbmVlZCBzZWNyZXQgc2Nhbm5pbmcsIGl0IGNhbiBiZSBkaXNhYmxlZCBieSBzcGVjaWZ5aW5nIFNjYW5uZXJzLlZVTE4gb25seS5cbiAgICpcbiAgICogQGRlZmF1bHQgW1NlY3VyaXR5LlZVTE4sU2Nhbm5lcnMuU0VDUkVUXVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vYXF1YXNlY3VyaXR5LmdpdGh1Yi5pby90cml2eS9sYXRlc3QvZG9jcy9jb25maWd1cmF0aW9uL290aGVycy8jZW5hYmxlZGlzYWJsZS1zY2FubmVyc1xuICAgKi9cbiAgcmVhZG9ubHkgc2Nhbm5lcnM/OiBTY2FubmVyc1tdO1xuXG4gIC8qKlxuICAgKiBFbnVtIGZvciBJbWFnZUNvbmZpZ1NjYW5uZXJzXG4gICAqXG4gICAqIENvbnRhaW5lciBpbWFnZXMgaGF2ZSBjb25maWd1cmF0aW9uLiBkb2NrZXIgaW5zcGVjdCBhbmQgYGRvY2tlciBoaXN0b3J5YCBzaG93IHRoZSBpbmZvcm1hdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGNvbmZpZ3VyYXRpb24uXG4gICAqIFRyaXZ5IHNjYW5zIHRoZSBjb25maWd1cmF0aW9uIG9mIGNvbnRhaW5lciBpbWFnZXMgZm9yXG4gICAqXG4gICAqIC0gTWlzY29uZmlndXJhdGlvbnNcbiAgICogLSBTZWNyZXRzXG4gICAqXG4gICAqIFRoZXkgYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQuIFlvdSBjYW4gZW5hYmxlIHRoZW0gd2l0aCBgaW1hZ2VDb25maWdTY2FubmVyc2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9hcXVhc2VjdXJpdHkuZ2l0aHViLmlvL3RyaXZ5L2xhdGVzdC9kb2NzL3RhcmdldC9jb250YWluZXJfaW1hZ2UvI2NvbnRhaW5lci1pbWFnZS1tZXRhZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VDb25maWdTY2FubmVycz86IEltYWdlQ29uZmlnU2Nhbm5lcnNbXTtcblxuICAvKipcbiAgICogRXhpdCBDb2RlXG4gICAqXG4gICAqIFVzZSB0aGUgYGV4aXRDb2RlYCBvcHRpb24gaWYgeW91IHdhbnQgdG8gZXhpdCB3aXRoIGEgbm9uLXplcm8gZXhpdCBjb2RlLlxuICAgKlxuICAgKiBZb3UgY2FuIHNwZWNpZnkgMCBpZiB5b3UgZG8gbm90IHdhbnQgdG8gZXhpdCBldmVuIHdoZW4gdnVsbmVyYWJpbGl0aWVzIGFyZSBkZXRlY3RlZC5cbiAgICpcbiAgICogSXQgZGVmYXVsdHMgdG8gMSBJTiBUSElTIENPTlNUUlVDVCBmb3Igc2FmZXR5IGluIENJL0NELiBJbiB0aGUgb3JpZ2luYWwgdHJpdnksIGl0IGlzIDAuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICpcbiAgICogQHNlZSBodHRwczovL2FxdWFzZWN1cml0eS5naXRodWIuaW8vdHJpdnkvbGF0ZXN0L2RvY3MvY29uZmlndXJhdGlvbi9vdGhlcnMvI2V4aXQtY29kZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhpdENvZGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEV4aXQgb24gRU9MXG4gICAqXG4gICAqIFNvbWV0aW1lcyB5b3UgbWF5IHN1cnByaXNpbmdseSBnZXQgMCB2dWxuZXJhYmlsaXRpZXMgaW4gYW4gb2xkIGltYWdlOlxuICAgKiAgLSBFbmFibGluZyAtLWlnbm9yZS11bmZpeGVkIG9wdGlvbiB3aGlsZSBhbGwgcGFja2FnZXMgaGF2ZSBubyBmaXhlZCB2ZXJzaW9ucy5cbiAgICogIC0gU2Nhbm5pbmcgYSByYXRoZXIgb3V0ZGF0ZWQgT1MgKGUuZy4gVWJ1bnR1IDEwLjA0KS5cbiAgICpcbiAgICogQW4gT1MgYXQgdGhlIGVuZCBvZiBzZXJ2aWNlL2xpZmUgKEVPTCkgdXN1YWxseSBnZXRzIGludG8gdGhpcyBzaXR1YXRpb24sIHdoaWNoIGlzIGRlZmluaXRlbHkgZnVsbCBvZiB2dWxuZXJhYmlsaXRpZXMuXG4gICAqIGBleGl0T25Fb2xgIGNhbiBmYWlsIHNjYW5uaW5nIG9uIEVPTCBPUyB3aXRoIGEgbm9uLXplcm8gY29kZS5cbiAgICpcbiAgICogSXQgZGVmYXVsdHMgdG8gMSBJTiBUSElTIENPTlNUUlVDVCBmb3Igc2FmZXR5IGluIENJL0NELiBJbiB0aGUgb3JpZ2luYWwgdHJpdnksIGl0IGlzIDAuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICpcbiAgICogQHNlZSBodHRwczovL2FxdWFzZWN1cml0eS5naXRodWIuaW8vdHJpdnkvbGF0ZXN0L2RvY3MvY29uZmlndXJhdGlvbi9vdGhlcnMvI2V4aXQtb24tZW9sXG4gICAqL1xuICByZWFkb25seSBleGl0T25Fb2w/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEJ5IEZpbmRpbmcgSURzXG4gICAqXG4gICAqIFRoZSBpZ25vcmUgcnVsZXMgd3JpdHRlbiB0byB0aGUgLnRyaXZ5aWdub3JlIGluIHRyaXZ5LlxuICAgKiBQdXQgZWFjaCBsaW5lIHlvdSB3cml0ZSBpbiB0aGUgZmlsZSBpbnRvIG9uZSBlbGVtZW50IG9mIHRoZSBhcnJheS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogICAgICQgY2F0IC50cml2eWlnbm9yZVxuICAgKiAgICAgIyBBY2NlcHQgdGhlIHJpc2tcbiAgICogICAgIENWRS0yMDE4LTE0NjE4XG4gICAqXG4gICAqICAgICAjIEFjY2VwdCB0aGUgcmlzayB1bnRpbCAyMDIzLTAxLTAxXG4gICAqICAgICBDVkUtMjAxOS0xNDY5NyBleHA6MjAyMy0wMS0wMVxuICAgKlxuICAgKiAgICAgIyBObyBpbXBhY3QgaW4gb3VyIHNldHRpbmdzXG4gICAqICAgICBDVkUtMjAxOS0xNTQzXG4gICAqXG4gICAqICAgICAjIElnbm9yZSBtaXNjb25maWd1cmF0aW9uc1xuICAgKiAgICAgQVZELURTLTAwMDJcbiAgICpcbiAgICogICAgICMgSWdub3JlIHNlY3JldHNcbiAgICogICAgIGdlbmVyaWMtdW53YW50ZWQtcnVsZVxuICAgKiAgICAgYXdzLWFjY291bnQtaWRcbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICpcbiAgICogQHNlZSBodHRwczovL2FxdWFzZWN1cml0eS5naXRodWIuaW8vdHJpdnkvbGF0ZXN0L2RvY3MvY29uZmlndXJhdGlvbi9maWx0ZXJpbmcvI3RyaXZ5aWdub3JlXG4gICAqL1xuICByZWFkb25seSB0cml2eUlnbm9yZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBNZW1vcnkgU2l6ZSAoTUIpIGZvciBTY2FubmVyIExhbWJkYVxuICAgKlxuICAgKiBZb3UgY2FuIHNwZWNpZnkgYmV0d2VlbiBgMzAwOGAgYW5kIGAxMDI0MGAuXG4gICAqXG4gICAqIElmIHRoaXMgQ29uc3RydWN0IGV4ZWN1dGlvbiB0ZXJtaW5hdGVzIGFibm9ybWFsbHkgZHVlIHRvIFNJR0tJTEwsIHRyeSBhIGxhcmdlciBzaXplLlxuICAgKlxuICAgKiBEZWZhdWx0IHZhbHVlIChgMzAwOGAgTUIpIGlzIE1heGltdW0gTGFtYmRhIG1lbW9yeSBzaXplIGZvciBkZWZhdWx0IEFXUyBhY2NvdW50IHdpdGhvdXQgcXVvdGEgbGltaXQgaW5jcmVhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IDMwMDhcbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeVNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNjYW4gSW1hZ2Ugb24gYSBzcGVjaWZpYyBBcmNoaXRlY3R1cmUgYW5kIE9TXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIFRyaXZ5IGxvYWRzIGFuIGltYWdlIG9uIGEgYGxpbnV4L2FtZDY0YCBtYWNoaW5lLlxuICAgKlxuICAgKiBUbyBjdXN0b21pemUgdGhpcywgcGFzcyBhIGBwbGF0Zm9ybWAgYXJndW1lbnQgaW4gdGhlIGZvcm1hdCBPUy9BcmNoaXRlY3R1cmUgZm9yIHRoZSBpbWFnZSwgc3VjaCBhcyBgbGludXgvYXJtNjRgXG4gICAqXG4gICAqIEBkZWZhdWx0IC1cbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtPzogc3RyaW5nO1xufVxuXG4vLyBNYXhpbXVtIExhbWJkYSBtZW1vcnkgc2l6ZSBmb3IgZGVmYXVsdCBBV1MgYWNjb3VudCB3aXRob3V0IHF1b3RhIGxpbWl0IGluY3JlYXNlXG5jb25zdCBERUZBVUxUX01FTU9SWV9TSVpFID0gMzAwODtcblxuZXhwb3J0IGNsYXNzIEltYWdlU2Nhbm5lcldpdGhUcml2eSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJbWFnZVNjYW5uZXJXaXRoVHJpdnlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAocHJvcHMubWVtb3J5U2l6ZSkge1xuICAgICAgaWYgKHByb3BzLm1lbW9yeVNpemUgPCAzMDA4IHx8IHByb3BzLm1lbW9yeVNpemUgPiAxMDI0MCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW4gc3BlY2lmeSBiZXR3ZWVuIGAzMDA4YCBhbmQgYDEwMjQwYCBmb3IgYG1lbW9yeVNpemVgLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGN1c3RvbVJlc291cmNlTGFtYmRhID0gbmV3IFNpbmdsZXRvbkZ1bmN0aW9uKHRoaXMsICdDdXN0b21SZXNvdXJjZUxhbWJkYScsIHtcbiAgICAgIHV1aWQ6ICc0NzBiNjM0My1kMjY3LWY3NTMtMjI2Yy0xZTk5ZjA5ZjMxOWEnLFxuICAgICAgbGFtYmRhUHVycG9zZTogJ0N1c3RvbTo6SW1hZ2VTY2FubmVyV2l0aFRyaXZ5Q3VzdG9tUmVzb3VyY2VMYW1iZGEnLFxuICAgICAgcnVudGltZTogUnVudGltZS5GUk9NX0lNQUdFLFxuICAgICAgaGFuZGxlcjogSGFuZGxlci5GUk9NX0lNQUdFLFxuICAgICAgY29kZTogQXNzZXRDb2RlLmZyb21Bc3NldEltYWdlKGpvaW4oX19kaXJuYW1lLCAnLi4vYXNzZXRzL2xhbWJkYScpKSxcbiAgICAgIGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoOTAwKSxcbiAgICAgIHJldHJ5QXR0ZW1wdHM6IDAsXG4gICAgICBtZW1vcnlTaXplOiBwcm9wcy5tZW1vcnlTaXplID8/IERFRkFVTFRfTUVNT1JZX1NJWkUsXG4gICAgfSk7XG4gICAgcHJvcHMucmVwb3NpdG9yeS5ncmFudFB1bGwoY3VzdG9tUmVzb3VyY2VMYW1iZGEpO1xuXG4gICAgY29uc3QgaW1hZ2VTY2FubmVyUHJvdmlkZXIgPSBuZXcgUHJvdmlkZXIodGhpcywgJ1Byb3ZpZGVyJywge1xuICAgICAgb25FdmVudEhhbmRsZXI6IGN1c3RvbVJlc291cmNlTGFtYmRhLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaW1hZ2VTY2FubmVyUHJvcGVydGllczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB8IGJvb2xlYW4gfCBudW1iZXIgfSA9IHt9O1xuICAgIGltYWdlU2Nhbm5lclByb3BlcnRpZXMuYWRkciA9IHRoaXMubm9kZS5hZGRyO1xuICAgIGltYWdlU2Nhbm5lclByb3BlcnRpZXMuaW1hZ2VVcmkgPSBwcm9wcy5pbWFnZVVyaTtcbiAgICBpbWFnZVNjYW5uZXJQcm9wZXJ0aWVzLmlnbm9yZVVuZml4ZWQgPSBwcm9wcy5pZ25vcmVVbmZpeGVkID8/IGZhbHNlO1xuICAgIGltYWdlU2Nhbm5lclByb3BlcnRpZXMuc2V2ZXJpdHkgPSBwcm9wcy5zZXZlcml0eSA/PyBbU2V2ZXJpdHkuQ1JJVElDQUxdO1xuICAgIGltYWdlU2Nhbm5lclByb3BlcnRpZXMuc2Nhbm5lcnMgPSBwcm9wcy5zY2FubmVycyA/PyBbXTtcbiAgICBpbWFnZVNjYW5uZXJQcm9wZXJ0aWVzLmltYWdlQ29uZmlnU2Nhbm5lcnMgPSBwcm9wcy5pbWFnZUNvbmZpZ1NjYW5uZXJzID8/IFtdO1xuICAgIGltYWdlU2Nhbm5lclByb3BlcnRpZXMuZXhpdENvZGUgPSBwcm9wcy5leGl0Q29kZSA/PyAxO1xuICAgIGltYWdlU2Nhbm5lclByb3BlcnRpZXMuZXhpdE9uRW9sID0gcHJvcHMuZXhpdE9uRW9sID8/IDE7XG4gICAgaW1hZ2VTY2FubmVyUHJvcGVydGllcy50cml2eUlnbm9yZSA9IHByb3BzLnRyaXZ5SWdub3JlID8/IFtdO1xuICAgIGltYWdlU2Nhbm5lclByb3BlcnRpZXMucGxhdGZvcm0gPSBwcm9wcy5wbGF0Zm9ybSA/PyAnJztcblxuICAgIG5ldyBDdXN0b21SZXNvdXJjZSh0aGlzLCAnRGVmYXVsdCcsIHtcbiAgICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6SW1hZ2VTY2FubmVyV2l0aFRyaXZ5JyxcbiAgICAgIHByb3BlcnRpZXM6IGltYWdlU2Nhbm5lclByb3BlcnRpZXMsXG4gICAgICBzZXJ2aWNlVG9rZW46IGltYWdlU2Nhbm5lclByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICB9KTtcbiAgfVxufVxuIl19
|