Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cdk-spot-one

Package Overview
Dependencies
Maintainers
1
Versions
703
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cdk-spot-one - npm Package Compare versions

Comparing version 0.6.29 to 0.6.30

3

API.md

@@ -95,2 +95,3 @@ # API Reference

* **region** (<code>string</code>) The AWS region this resource belongs to. __*Default*__: the resource is in the same region as the stack it belongs to
* **additionalUserData** (<code>Array<string></code>) Additional commands for user data. __*Default*__: no additional user data
* **blockDuration** (<code>[BlockDuration](#cdk-spot-one-blockduration)</code>) reservce the spot instance as spot block with defined duration. __*Default*__: BlockDuration.ONE_HOUR

@@ -202,2 +203,3 @@ * **customAmiId** (<code>string</code>) custom AMI ID. __*Default*__: The latest Amaozn Linux 2 AMI ID

**account**? | <code>string</code> | The AWS account ID this resource belongs to.<br/>__*Default*__: the resource is in the same account as the stack it belongs to
**additionalUserData**? | <code>Array<string></code> | Additional commands for user data.<br/>__*Default*__: no additional user data
**blockDuration**? | <code>[BlockDuration](#cdk-spot-one-blockduration)</code> | reservce the spot instance as spot block with defined duration.<br/>__*Default*__: BlockDuration.ONE_HOUR

@@ -268,2 +270,3 @@ **customAmiId**? | <code>string</code> | custom AMI ID.<br/>__*Default*__: The latest Amaozn Linux 2 AMI ID

**account**? | <code>string</code> | The AWS account ID this resource belongs to.<br/>__*Default*__: the resource is in the same account as the stack it belongs to
**additionalUserData**? | <code>Array<string></code> | Additional commands for user data.<br/>__*Default*__: no additional user data
**blockDuration**? | <code>[BlockDuration](#cdk-spot-one-blockduration)</code> | reservce the spot instance as spot block with defined duration.<br/>__*Default*__: BlockDuration.ONE_HOUR

@@ -270,0 +273,0 @@ **customAmiId**? | <code>string</code> | custom AMI ID.<br/>__*Default*__: The latest Amaozn Linux 2 AMI ID

@@ -5,2 +5,9 @@ # Changelog

### 0.6.30 (2020-09-08)
### Features
* support additional user data. ([#34](https://github.com/pahud/cdk-spot-one/issues/34)) ([a10a399](https://github.com/pahud/cdk-spot-one/commit/a10a3995cf746e718168d5b6a3e10f5fe1c27383)), closes [#35](https://github.com/pahud/cdk-spot-one/issues/35)
### [0.6.29](https://github.com/pahud/cdk-spot-one/compare/v0.6.28...v0.6.29) (2020-09-06)

@@ -7,0 +14,0 @@

@@ -123,2 +123,8 @@ import * as ec2 from '@aws-cdk/aws-ec2';

readonly keyName?: string;
/**
* Additional commands for user data
*
* @default - no additional user data
*/
readonly additionalUserData?: string[];
}

@@ -125,0 +131,0 @@ export interface SpotFleetProps extends BaseSpotFleetProps {

4

lib/spot.js

@@ -106,2 +106,4 @@ "use strict";

userData.addCommands('yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm', 'yum install -y docker', 'usermod -aG docker ec2-user', 'usermod -aG docker ssm-user', 'service docker start');
if (props.additionalUserData)
userData.addCommands(...props.additionalUserData);
const lt = new ec2.CfnLaunchTemplate(this, 'LaunchTemplate', {

@@ -232,2 +234,2 @@ launchTemplateData: {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zcG90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdDQUF3QztBQUN4Qyx3Q0FBOEk7QUFDOUksd0NBQXdDO0FBQ3hDLDhDQUE4QztBQUM5QywwQ0FBMEM7QUFDMUMsZ0RBQWdEO0FBQ2hELDZCQUE2QjtBQUU3QixNQUFNLHFCQUFxQixHQUFHLFVBQVUsQ0FBQTtBQUV4QyxNQUFhLFdBQVksU0FBUSxZQUFLO0lBQzdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBZ0I7UUFDeEMsTUFBTSxLQUFLLEdBQUcsWUFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUM3QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDMUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkQsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztnQkFDdEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDckYsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDRjtBQVRELGtDQVNDO0FBRUQsSUFBWSxhQU9YO0FBUEQsV0FBWSxhQUFhO0lBQ3ZCLDBEQUFhLENBQUE7SUFDYiw2REFBZSxDQUFBO0lBQ2YsaUVBQWlCLENBQUE7SUFDakIsK0RBQWdCLENBQUE7SUFDaEIsK0RBQWdCLENBQUE7SUFDaEIsNkRBQWUsQ0FBQTtBQUNqQixDQUFDLEVBUFcsYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFPeEI7QUFFRDs7R0FFRztBQUNILElBQVksUUFzQlg7QUF0QkQsV0FBWSxRQUFRO0lBQ2xCOztPQUVHO0lBQ0gsaUNBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCx1QkFBVyxDQUFBO0lBRVg7O09BRUc7SUFDSCxxQ0FBeUIsQ0FBQTtJQUV6Qjs7T0FFRztJQUNILHVCQUFXLENBQUE7QUFHYixDQUFDLEVBdEJXLFFBQVEsR0FBUixnQkFBUSxLQUFSLGdCQUFRLFFBc0JuQjtBQUVELElBQVksNEJBSVg7QUFKRCxXQUFZLDRCQUE0QjtJQUN0Qyx1REFBdUIsQ0FBQTtJQUN2Qiw2Q0FBYSxDQUFBO0lBQ2IsdURBQXVCLENBQUE7QUFDekIsQ0FBQyxFQUpXLDRCQUE0QixHQUE1QixvQ0FBNEIsS0FBNUIsb0NBQTRCLFFBSXZDO0FBV0QsTUFBYSxjQUFjO0lBQ2xCLElBQUksQ0FBQyxTQUFvQjtRQUM5QixPQUFPO1lBQ0wsU0FBUztZQUNULGNBQWMsRUFBRSxJQUFJO1NBQ3JCLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUFQRCx3Q0FPQztBQXVHRCxNQUFhLFNBQVUsU0FBUSxlQUFRO0lBNEJyQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXdCLEVBQUU7O1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBRXZCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFBO1FBQ3JCLElBQUksQ0FBQyxjQUFjLFNBQUcsS0FBSyxDQUFDLGNBQWMsbUNBQUksSUFBSSxjQUFjLEVBQUUsQ0FBQTtRQUNsRSxJQUFJLENBQUMsY0FBYyxTQUFHLEtBQUssQ0FBQyxjQUFjLG1DQUFJLENBQUMsQ0FBQTtRQUMvQyxJQUFJLENBQUMsbUJBQW1CLFNBQUcsS0FBSyxDQUFDLG1CQUFtQixtQ0FBSSxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQTtRQUNuRyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUE7UUFDbEMsSUFBSSxDQUFDLEdBQUcsU0FBRyxLQUFLLENBQUMsR0FBRyxtQ0FBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUE7UUFFOUUsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUMzRSxRQUFRLEVBQUUsbUJBQVksQ0FBQyxrQkFBa0I7WUFDekMsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDO1NBQ3pELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUNwRCxPQUFPLEVBQUU7Z0JBQ1AsZUFBZTtnQkFDZiwrQkFBK0I7Z0JBQy9CLGVBQWU7YUFDaEI7WUFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDakIsQ0FBQyxDQUFDLENBQUM7UUFFSixNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDMUUsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7U0FDcEMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ3JFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztTQUNkLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUV4RSxJQUFJLENBQUMsbUJBQW1CLFNBQUcsS0FBSyxDQUFDLG1CQUFtQixtQ0FBSSxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQTtRQUVuRyxNQUFNLE9BQU8sU0FBRyxLQUFLLENBQUMsV0FBVyxtQ0FDL0IsR0FBRyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztZQUNqQyxVQUFVLEVBQUUsR0FBRyxDQUFDLHFCQUFxQixDQUFDLGNBQWM7WUFDcEQsT0FBTyxFQUFFLHVCQUF1QixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDeEgsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUE7UUFHM0IsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QyxRQUFRLENBQUMsV0FBVyxDQUNsQixnSEFBZ0gsRUFDaEgsdUJBQXVCLEVBQ3ZCLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0Isc0JBQXNCLENBQ3ZCLENBQUM7UUFDRixNQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDM0Qsa0JBQWtCLEVBQUU7Z0JBQ2xCLE9BQU87Z0JBQ1AsWUFBWSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pELFFBQVEsRUFBRSxTQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdEMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixpQkFBaUIsRUFBRTtvQkFDakI7d0JBQ0UsWUFBWSxFQUFFLFVBQVU7d0JBQ3hCLElBQUksRUFBRTs0QkFDSjtnQ0FDRSxHQUFHLEVBQUUsTUFBTTtnQ0FDWCxLQUFLLEVBQUUsR0FBRyxZQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsY0FBYyxJQUFJLENBQUMsV0FBVyxFQUFFOzZCQUNuRTt5QkFDRjtxQkFDRjtpQkFDRjtnQkFDRCxxQkFBcUIsRUFBRTtvQkFDckIsVUFBVSxFQUFFLE1BQU07b0JBQ2xCLFdBQVcsRUFBRTt3QkFDWCxvQkFBb0IsUUFBRSxLQUFLLENBQUMsYUFBYSxtQ0FBSSxhQUFhLENBQUMsUUFBUTt3QkFDbkUsNEJBQTRCLFFBQUUsS0FBSyxDQUFDLDRCQUE0QixtQ0FBSSw0QkFBNEIsQ0FBQyxTQUFTO3FCQUMzRztpQkFDRjtnQkFDRCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO2dCQUNsRyxrQkFBa0IsRUFBRTtvQkFDbEIsR0FBRyxFQUFFLGVBQWUsQ0FBQyxPQUFPO2lCQUM3QjthQUNGO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDcEQsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDO1lBQzlELGVBQWUsRUFBRTtnQkFDZixHQUFHLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLDRDQUE0QyxDQUFDO2FBQ3pGO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsTUFBTSxrQkFBa0IsU0FBRyxLQUFLLENBQUMsU0FBUyxtQ0FBSTtZQUM1QyxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNO1NBQ2xDLENBQUE7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hGLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtTQUNyQixDQUFDLENBQUMsQ0FBQTtRQUNILE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ2xELDBCQUEwQixFQUFFO2dCQUMxQixxQkFBcUIsRUFBRTtvQkFDckI7d0JBQ0UsMkJBQTJCLEVBQUU7NEJBQzNCLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxHQUFHOzRCQUN4QixPQUFPLEVBQUUsRUFBRSxDQUFDLHVCQUF1Qjt5QkFDcEM7d0JBQ0QsU0FBUyxFQUFFLFlBQVk7cUJBQ3hCO2lCQUNGO2dCQUNELFlBQVksRUFBRSxhQUFhLENBQUMsT0FBTztnQkFDbkMsY0FBYyxRQUFFLEtBQUssQ0FBQyxjQUFjLG1DQUFJLENBQUM7Z0JBQ3pDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDMUIsVUFBVSxFQUFFLFdBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNoRSxnQ0FBZ0MsUUFBRSxLQUFLLENBQUMsZ0NBQWdDLG1DQUFJLElBQUk7YUFDakY7U0FDRixDQUFDLENBQUE7UUFDRixJQUFJLGdCQUFTLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtRQUMvRCxNQUFNLE9BQU8sR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUNuRCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUNuRSxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVU7WUFDbEMsT0FBTyxFQUFFLGVBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1NBQzlCLENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQ3pELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVTtZQUNsQyxPQUFPLEVBQUUsZUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1NBQ25CLENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQ3JELGNBQWMsRUFBRSxPQUFPO1lBQ3ZCLGlCQUFpQixFQUFFLFVBQVU7WUFDN0IsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTztTQUN6QyxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUM5QyxPQUFPLEVBQUUsQ0FBRSxnQ0FBZ0MsQ0FBRTtZQUM3QyxTQUFTLEVBQUUsQ0FBRSxHQUFHLENBQUU7U0FDbkIsQ0FBQyxDQUFDLENBQUE7UUFFSCxNQUFNLGNBQWMsR0FBRyxJQUFJLHFCQUFjLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ3BFLFlBQVksRUFBRSxVQUFVLENBQUMsWUFBWTtZQUNyQyxVQUFVLEVBQUU7Z0JBQ1Ysa0JBQWtCLEVBQUUsWUFBWSxDQUFDLEdBQUc7YUFDckM7U0FDRixDQUFDLENBQUM7UUFFSCxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUUvQyxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQUssQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO1FBQ3JFLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBSyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7UUFDekUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFlBQUssQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUE7UUFFeEYsSUFBSSxnQkFBUyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7UUFFN0Qsa0JBQWtCO1FBQ2xCLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRTtZQUN6QixJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO2dCQUMvQyxZQUFZLEVBQUUsS0FBSyxDQUFDLGVBQWU7Z0JBQ25DLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTthQUM1QixDQUFDLENBQUE7U0FDSDthQUFNO1lBQ0wsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7Z0JBQzFCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTthQUM1QixDQUFDLENBQUE7U0FDSDtJQUNILENBQUM7SUFDTSxXQUFXLENBQUMsUUFBa0I7UUFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUF6TUQsOEJBeU1DO0FBR0QsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3RDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3RELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzdDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUUxQyxTQUFTLHVCQUF1QixDQUFDLFlBQThCO0lBQzdELE9BQU8saUJBQWlCLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6Rix3QkFBd0IsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2hHLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3hGLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3ZGLFFBQVEsQ0FBQyxRQUFRLENBQUM7QUFDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGVjMiBmcm9tICdAYXdzLWNkay9hd3MtZWMyJztcbmltcG9ydCB7IENvbnN0cnVjdCwgUmVzb3VyY2UsIFJlc291cmNlUHJvcHMsIFBoeXNpY2FsTmFtZSwgU3RhY2ssIEZuLCBDZm5PdXRwdXQsIER1cmF0aW9uLCBMYXp5LCBDdXN0b21SZXNvdXJjZSwgVG9rZW4gfSBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdAYXdzLWNkay9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnQGF3cy1jZGsvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgY3IgZnJvbSAnQGF3cy1jZGsvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5jb25zdCBERUZBVUxUX0lOU1RBTkNFX1RZUEUgPSAndDMubGFyZ2UnXG5cbmV4cG9ydCBjbGFzcyBWcGNQcm92aWRlciBleHRlbmRzIFN0YWNrIHtcbiAgcHVibGljIHN0YXRpYyBnZXRPckNyZWF0ZShzY29wZTogQ29uc3RydWN0KSB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihzY29wZSlcbiAgICByZXR1cm4gc3RhY2subm9kZS50cnlHZXRDb250ZXh0KCd1c2VfZGVmYXVsdF92cGMnKSA9PT0gJzEnID9cbiAgICAgIGVjMi5WcGMuZnJvbUxvb2t1cChzdGFjaywgJ1ZwYycsIHsgaXNEZWZhdWx0OiB0cnVlIH0pIDpcbiAgICAgIHN0YWNrLm5vZGUudHJ5R2V0Q29udGV4dCgndXNlX3ZwY19pZCcpID9cbiAgICAgICAgZWMyLlZwYy5mcm9tTG9va3VwKHN0YWNrLCAnVnBjJywgeyB2cGNJZDogc3RhY2subm9kZS50cnlHZXRDb250ZXh0KCd1c2VfdnBjX2lkJykgfSkgOlxuICAgICAgICBuZXcgZWMyLlZwYyhzdGFjaywgJ1ZwYycsIHsgbWF4QXpzOiAzLCBuYXRHYXRld2F5czogMSB9KTtcbiAgfVxufVxuXG5leHBvcnQgZW51bSBCbG9ja0R1cmF0aW9uIHtcbiAgT05FX0hPVVIgPSA2MCxcbiAgVFdPX0hPVVJTID0gMTIwLFxuICBUSFJFRV9IT1VSUyA9IDE4MCxcbiAgRk9VUl9IT1VSUyA9IDI0MCxcbiAgRklWRV9IT1VSUyA9IDMwMCxcbiAgU0lYX0hPVVJTID0gMzYwXG59XG5cbi8qKlxuICogV2hldGhlciB0aGUgd29ya2VyIG5vZGVzIHNob3VsZCBzdXBwb3J0IEdQVSBvciBqdXN0IHN0YW5kYXJkIGluc3RhbmNlc1xuICovXG5leHBvcnQgZW51bSBOb2RlVHlwZSB7XG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXNcbiAgICovXG4gIFNUQU5EQVJEID0gJ1N0YW5kYXJkJyxcblxuICAvKipcbiAgICogR1BVIGluc3RhbmNlc1xuICAgKi9cbiAgR1BVID0gJ0dQVScsXG5cbiAgLyoqXG4gICAqIEluZmVyZW50aWEgaW5zdGFuY2VzXG4gICAqL1xuICBJTkZFUkVOVElBID0gJ0lORkVSRU5USUEnLFxuXG4gIC8qKlxuICAgKiBBUk0gaW5zdGFuY2VzXG4gICAqL1xuICBBUk0gPSAnQVJNJyxcblxuXG59XG5cbmV4cG9ydCBlbnVtIEluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3Ige1xuICBISUJFUk5BVEUgPSAnaGliZXJuYXRlJyxcbiAgU1RPUCA9ICdzdG9wJyxcbiAgVEVSTUlOQVRFID0gJ3Rlcm1pbmF0ZSdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTcG90RmxlZXRMYXVuY2hUZW1wbGF0ZUNvbmZpZyB7XG4gIHJlYWRvbmx5IHNwb3RmbGVldDogU3BvdEZsZWV0XG4gIHJlYWRvbmx5IGxhdW5jaFRlbXBsYXRlOiBJTGF1bmNodGVtcGxhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxhdW5jaHRlbXBsYXRlIHtcbiAgYmluZChzcG90ZmxlZXQ6IFNwb3RGbGVldCk6IFNwb3RGbGVldExhdW5jaFRlbXBsYXRlQ29uZmlnO1xufVxuXG5leHBvcnQgY2xhc3MgTGF1bmNoVGVtcGxhdGUgaW1wbGVtZW50cyBJTGF1bmNodGVtcGxhdGUge1xuICBwdWJsaWMgYmluZChzcG90ZmxlZXQ6IFNwb3RGbGVldCk6IFNwb3RGbGVldExhdW5jaFRlbXBsYXRlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3BvdGZsZWV0LFxuICAgICAgbGF1bmNoVGVtcGxhdGU6IHRoaXMsXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZVNwb3RGbGVldFByb3BzIGV4dGVuZHMgUmVzb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBWUEMgZm9yIHRoZSBzcG90IGZsZWV0XG4gICAqIFxuICAgKiBAZGVmYXVsdCAtIG5ldyBWUEMgd2lsbCBiZSBjcmVhdGVkXG4gICAqIFxuICAgKi9cbiAgcmVhZG9ubHkgdnBjPzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIGRlZmF1bHQgRUMyIGluc3RhbmNlIHR5cGVcbiAgICogXG4gICAqIEBkZWZhdWx0IC0gdDMubGFyZ2VcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRJbnN0YW5jZVR5cGU/OiBlYzIuSW5zdGFuY2VUeXBlO1xuXG4gIC8qKlxuICAgKiByZXNlcnZjZSB0aGUgc3BvdCBpbnN0YW5jZSBhcyBzcG90IGJsb2NrIHdpdGggZGVmaW5lZCBkdXJhdGlvblxuICAgKiBcbiAgICogQGRlZmF1bHQgLSBCbG9ja0R1cmF0aW9uLk9ORV9IT1VSXG4gICAqL1xuICByZWFkb25seSBibG9ja0R1cmF0aW9uPzogQmxvY2tEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGJlaGF2aW9yIHdoZW4gYSBTcG90IEluc3RhbmNlIGlzIGludGVycnVwdGVkXG4gICAqIFxuICAgKiBAZGVmYXVsdCAtIEluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3IuVEVSTUlOQVRFXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZUludGVycnVwdGlvbkJlaGF2aW9yPzogSW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvcjtcblxuICAvKipcbiAgICogSUFNIHJvbGUgZm9yIHRoZSBzcG90IGluc3RhbmNlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVJvbGU/OiBpYW0uUm9sZTtcblxuICAvKipcbiAgICogbnVtYmVyIG9mIHRoZSB0YXJnZXQgY2FwYWNpdHlcbiAgICogXG4gICAqIEBkZWZhdWx0IC0gMVxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0Q2FwYWNpdHk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIHRoZSB0aW1lIHdoZW4gdGhlIHNwb3QgZmxlZXQgYWxsb2NhdGlvbiBzdGFydHNcbiAgICogXG4gICAqIEBkZWZhdWx0IC0gbm8gZXhwaXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgdmFsaWRGcm9tPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiB0aGUgdGltZSB3aGVuIHRoZSBzcG90IGZsZWV0IGFsbG9jYXRpb24gZXhwaXJlc1xuICAgKiBcbiAgICogQGRlZmF1bHQgLSBubyBleHBpcmF0aW9uXG4gICAqL1xuICByZWFkb25seSB2YWxpZFVudGlsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiB0ZXJtaW5hdGUgdGhlIGluc3RhbmNlIHdoZW4gdGhlIGFsbG9jYXRpb24gaXMgZXhwaXJlZFxuICAgKiBcbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSB0ZXJtaW5hdGVJbnN0YW5jZXNXaXRoRXhwaXJhdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGN1c3RvbSBBTUkgSURcbiAgICogXG4gICAqIEBkZWZhdWx0IC0gVGhlIGxhdGVzdCBBbWFvem4gTGludXggMiBBTUkgSURcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUFtaUlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWUEMgc3VibmV0IGZvciB0aGUgc3BvdCBmbGVldFxuICAgKiBcbiAgICogQGRlZmF1bHQgLSBwdWJsaWMgc3VibmV0XG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXQ/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBTU0gga2V5IG5hbWVcbiAgICogXG4gICAqIEBkZWZhdWx0IC0gbm8gc3NoIGtleSB3aWxsIGJlIGFzc2lnbmVkXG4gICAqL1xuICByZWFkb25seSBrZXlOYW1lPzogc3RyaW5nO1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BvdEZsZWV0UHJvcHMgZXh0ZW5kcyBCYXNlU3BvdEZsZWV0UHJvcHMge1xuICAvKipcbiAgICogTGF1bmNoIHRlbXBsYXRlIGZvciB0aGUgc3BvdCBmbGVldFxuICAgKi9cbiAgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGU/OiBJTGF1bmNodGVtcGxhdGU7XG5cbiAgLyoqXG4gICAqIEFsbG9jYXRpb24gSUQgZm9yIHlvdXIgZXhpc3RpbmcgRWxhc3RpYyBJUCBBZGRyZXNzLiBcbiAgICogXG4gICAqIEBkZWZhbHQgbmV3IEVJUCBhbmQgaXRzIGFzc29jaWF0aW9uIHdpbGwgYmUgY3JlYXRlZCBmb3IgdGhlIGZpcnN0IGluc3RhbmNlIGluIHRoaXMgc3BvdCBmbGVldFxuICAgKi9cbiAgcmVhZG9ubHkgZWlwQWxsb2NhdGlvbklkPzogc3RyaW5nO1xuXG59XG5cbmV4cG9ydCBjbGFzcyBTcG90RmxlZXQgZXh0ZW5kcyBSZXNvdXJjZSB7XG4gIHJlYWRvbmx5IGluc3RhbmNlUm9sZTogaWFtLklSb2xlO1xuICByZWFkb25seSBkZWZhdWx0SW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlO1xuICByZWFkb25seSB0YXJnZXRDYXBhY2l0eT86IG51bWJlcjtcbiAgcmVhZG9ubHkgc3BvdEZsZWV0SWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGU6IElMYXVuY2h0ZW1wbGF0ZTtcbiAgcmVhZG9ubHkgdnBjOiBlYzIuSVZwYztcbiAgLyoqXG4gICAqIHRoZSBmaXJzdCBpbnN0YW5jZSBpZCBpbiB0aGlzIGZsZWV0XG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZUlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBpbnN0YW5jZSB0eXBlIG9mIHRoZSBmaXJzdCBpbnN0YW5jZSBpbiB0aGlzIGZsZWV0XG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFNwb3RGbGVldFJlcXVlc3RJZCBmb3IgdGhpcyBzcG90IGZsZWV0XG4gICAqL1xuICByZWFkb25seSBzcG90RmxlZXRSZXF1ZXN0SWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0aW1lIHdoZW4gdGhlIHRoZSBmbGVldCBhbGxvY2F0aW9uIHdpbGwgZXhwaXJlXG4gICAqL1xuICBwcml2YXRlIHZhbGlkVW50aWw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBzZWN1cml0eSBncm91cCBvZiB0aGUgaW5zdGFuY2UsIHdoaWNoIG9ubHkgYWxsb3dzIFRDUCAyMiBTU0ggaW5ncmVzcyBydWxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRTZWN1cml0eUdyb3VwOiBlYzIuSVNlY3VyaXR5R3JvdXA7IFxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTcG90RmxlZXRQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcylcblxuICAgIHRoaXMuc3BvdEZsZWV0SWQgPSBpZFxuICAgIHRoaXMubGF1bmNoVGVtcGxhdGUgPSBwcm9wcy5sYXVuY2hUZW1wbGF0ZSA/PyBuZXcgTGF1bmNoVGVtcGxhdGUoKVxuICAgIHRoaXMudGFyZ2V0Q2FwYWNpdHkgPSBwcm9wcy50YXJnZXRDYXBhY2l0eSA/PyAxXG4gICAgdGhpcy5kZWZhdWx0SW5zdGFuY2VUeXBlID0gcHJvcHMuZGVmYXVsdEluc3RhbmNlVHlwZSA/PyBuZXcgZWMyLkluc3RhbmNlVHlwZShERUZBVUxUX0lOU1RBTkNFX1RZUEUpXG4gICAgdGhpcy52YWxpZFVudGlsID0gcHJvcHMudmFsaWRVbnRpbCBcbiAgICB0aGlzLnZwYyA9IHByb3BzLnZwYyA/PyBuZXcgZWMyLlZwYyh0aGlzLCAnVlBDJywgeyBtYXhBenM6IDMsIG5hdEdhdGV3YXlzOiAxfSlcbiAgICBcbiAgICAvLyBpc250YW5jZSByb2xlXG4gICAgdGhpcy5pbnN0YW5jZVJvbGUgPSBwcm9wcy5pbnN0YW5jZVJvbGUgfHwgbmV3IGlhbS5Sb2xlKHRoaXMsICdJbnN0YW5jZVJvbGUnLCB7XG4gICAgICByb2xlTmFtZTogUGh5c2ljYWxOYW1lLkdFTkVSQVRFX0lGX05FRURFRCxcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdlYzIuYW1hem9uYXdzLmNvbScpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5pbnN0YW5jZVJvbGUuYWRkVG9Qb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnc3NtbWVzc2FnZXM6KicsXG4gICAgICAgICdzc206VXBkYXRlSW5zdGFuY2VJbmZvcm1hdGlvbicsXG4gICAgICAgICdlYzJtZXNzYWdlczoqJyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGluc3RhbmNlUHJvZmlsZSA9IG5ldyBpYW0uQ2ZuSW5zdGFuY2VQcm9maWxlKHRoaXMsICdJbnN0YW5jZVByb2ZpbGUnLCB7XG4gICAgICByb2xlczogW3RoaXMuaW5zdGFuY2VSb2xlLnJvbGVOYW1lXSxcbiAgICB9KVxuXG4gICAgdGhpcy5kZWZhdWx0U2VjdXJpdHlHcm91cCA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLCAnU3BvdEZsZWV0U2cnLCB7XG4gICAgICB2cGM6IHRoaXMudnBjLFxuICAgIH0pXG5cbiAgICB0aGlzLmRlZmF1bHRTZWN1cml0eUdyb3VwLmNvbm5lY3Rpb25zLmFsbG93RnJvbUFueUlwdjQoZWMyLlBvcnQudGNwKDIyKSlcblxuICAgIHRoaXMuZGVmYXVsdEluc3RhbmNlVHlwZSA9IHByb3BzLmRlZmF1bHRJbnN0YW5jZVR5cGUgPz8gbmV3IGVjMi5JbnN0YW5jZVR5cGUoREVGQVVMVF9JTlNUQU5DRV9UWVBFKVxuXG4gICAgY29uc3QgaW1hZ2VJZCA9IHByb3BzLmN1c3RvbUFtaUlkID8/IFxuICAgICAgZWMyLk1hY2hpbmVJbWFnZS5sYXRlc3RBbWF6b25MaW51eCh7IFxuICAgICAgICBnZW5lcmF0aW9uOiBlYzIuQW1hem9uTGludXhHZW5lcmF0aW9uLkFNQVpPTl9MSU5VWF8yLFxuICAgICAgICBjcHVUeXBlOiBub2RlVHlwZUZvckluc3RhbmNlVHlwZSh0aGlzLmRlZmF1bHRJbnN0YW5jZVR5cGUpID09PSBOb2RlVHlwZS5BUk0gPyBlYzIuQW1hem9uTGludXhDcHVUeXBlLkFSTV82NCA6IHVuZGVmaW5lZCxcbiAgICAgIH0pLmdldEltYWdlKHRoaXMpLmltYWdlSWRcblxuXG4gICAgY29uc3QgdXNlckRhdGEgPSBlYzIuVXNlckRhdGEuZm9yTGludXgoKTtcbiAgICB1c2VyRGF0YS5hZGRDb21tYW5kcyhcbiAgICAgICd5dW0gaW5zdGFsbCAteSBodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZWMyLWRvd25sb2Fkcy13aW5kb3dzL1NTTUFnZW50L2xhdGVzdC9saW51eF9hbWQ2NC9hbWF6b24tc3NtLWFnZW50LnJwbScsXG4gICAgICAneXVtIGluc3RhbGwgLXkgZG9ja2VyJyxcbiAgICAgICd1c2VybW9kIC1hRyBkb2NrZXIgZWMyLXVzZXInLFxuICAgICAgJ3VzZXJtb2QgLWFHIGRvY2tlciBzc20tdXNlcicsXG4gICAgICAnc2VydmljZSBkb2NrZXIgc3RhcnQnLFxuICAgICk7XG4gICAgY29uc3QgbHQgPSBuZXcgZWMyLkNmbkxhdW5jaFRlbXBsYXRlKHRoaXMsICdMYXVuY2hUZW1wbGF0ZScsIHtcbiAgICAgIGxhdW5jaFRlbXBsYXRlRGF0YToge1xuICAgICAgICBpbWFnZUlkLFxuICAgICAgICBpbnN0YW5jZVR5cGU6IHRoaXMuZGVmYXVsdEluc3RhbmNlVHlwZS50b1N0cmluZygpLFxuICAgICAgICB1c2VyRGF0YTogRm4uYmFzZTY0KHVzZXJEYXRhLnJlbmRlcigpKSxcbiAgICAgICAga2V5TmFtZTogcHJvcHMua2V5TmFtZSxcbiAgICAgICAgdGFnU3BlY2lmaWNhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICByZXNvdXJjZVR5cGU6ICdpbnN0YW5jZScsXG4gICAgICAgICAgICB0YWdzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdOYW1lJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogYCR7U3RhY2sub2YodGhpcykuc3RhY2tOYW1lfS9zcG90RmxlZXQvJHt0aGlzLnNwb3RGbGVldElkfWAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGluc3RhbmNlTWFya2V0T3B0aW9uczoge1xuICAgICAgICAgIG1hcmtldFR5cGU6ICdzcG90JyxcbiAgICAgICAgICBzcG90T3B0aW9uczoge1xuICAgICAgICAgICAgYmxvY2tEdXJhdGlvbk1pbnV0ZXM6IHByb3BzLmJsb2NrRHVyYXRpb24gPz8gQmxvY2tEdXJhdGlvbi5PTkVfSE9VUixcbiAgICAgICAgICAgIGluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3I6IHByb3BzLmluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3IgPz8gSW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvci5URVJNSU5BVEUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgc2VjdXJpdHlHcm91cElkczogdGhpcy5kZWZhdWx0U2VjdXJpdHlHcm91cC5jb25uZWN0aW9ucy5zZWN1cml0eUdyb3Vwcy5tYXAobSA9PiBtLnNlY3VyaXR5R3JvdXBJZCksXG4gICAgICAgIGlhbUluc3RhbmNlUHJvZmlsZToge1xuICAgICAgICAgIGFybjogaW5zdGFuY2VQcm9maWxlLmF0dHJBcm4sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBjb25zdCBzcG90RmxlZXRSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdGbGVldFJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnc3BvdGZsZWV0LmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BbWF6b25FQzJTcG90RmxlZXRUYWdnaW5nUm9sZScpLFxuICAgICAgXSxcbiAgICB9KVxuXG4gICAgY29uc3QgdnBjU3VibmV0U2VsZWN0aW9uID0gcHJvcHMudnBjU3VibmV0ID8/IHtcbiAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBVQkxJQyxcbiAgICB9XG4gICAgY29uc3Qgc3VibmV0Q29uZmlnID0gdGhpcy52cGMuc2VsZWN0U3VibmV0cyh2cGNTdWJuZXRTZWxlY3Rpb24pLnN1Ym5ldHMubWFwKHMgPT4gKHtcbiAgICAgIHN1Ym5ldElkOiBzLnN1Ym5ldElkLFxuICAgIH0pKVxuICAgIGNvbnN0IGNmblNwb3RGbGVldCA9IG5ldyBlYzIuQ2ZuU3BvdEZsZWV0KHRoaXMsIGlkLCB7XG4gICAgICBzcG90RmxlZXRSZXF1ZXN0Q29uZmlnRGF0YToge1xuICAgICAgICBsYXVuY2hUZW1wbGF0ZUNvbmZpZ3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYXVuY2hUZW1wbGF0ZVNwZWNpZmljYXRpb246IHtcbiAgICAgICAgICAgICAgbGF1bmNoVGVtcGxhdGVJZDogbHQucmVmLFxuICAgICAgICAgICAgICB2ZXJzaW9uOiBsdC5hdHRyTGF0ZXN0VmVyc2lvbk51bWJlcixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvdmVycmlkZXM6IHN1Ym5ldENvbmZpZyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBpYW1GbGVldFJvbGU6IHNwb3RGbGVldFJvbGUucm9sZUFybixcbiAgICAgICAgdGFyZ2V0Q2FwYWNpdHk6IHByb3BzLnRhcmdldENhcGFjaXR5ID8/IDEsXG4gICAgICAgIHZhbGlkRnJvbTogcHJvcHMudmFsaWRGcm9tLFxuICAgICAgICB2YWxpZFVudGlsOiBMYXp5LnN0cmluZ1ZhbHVlKHsgcHJvZHVjZTogKCkgPT4gdGhpcy52YWxpZFVudGlsIH0pLFxuICAgICAgICB0ZXJtaW5hdGVJbnN0YW5jZXNXaXRoRXhwaXJhdGlvbjogcHJvcHMudGVybWluYXRlSW5zdGFuY2VzV2l0aEV4cGlyYXRpb24gPz8gdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSlcbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsICdTcG90RmxlZXRJZCcsIHsgdmFsdWU6IGNmblNwb3RGbGVldC5yZWYgfSlcbiAgICBjb25zdCBvbkV2ZW50ID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCAnT25FdmVudCcsIHsgXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2VpcC1oYW5kbGVyJykpLFxuICAgICAgaGFuZGxlcjogJ2luZGV4Lm9uX2V2ZW50JyxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzgsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGlzQ29tcGxldGUgPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsICdJc0NvbXBsZXRlJywge1xuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9laXAtaGFuZGxlcicpKSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5pc19jb21wbGV0ZScsXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QWVRIT05fM184LFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICByb2xlOiBvbkV2ZW50LnJvbGUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBteVByb3ZpZGVyID0gbmV3IGNyLlByb3ZpZGVyKHRoaXMsICdNeVByb3ZpZGVyJywge1xuICAgICAgb25FdmVudEhhbmRsZXI6IG9uRXZlbnQsXG4gICAgICBpc0NvbXBsZXRlSGFuZGxlcjogaXNDb21wbGV0ZSwgICAgICAgIC8vIG9wdGlvbmFsIGFzeW5jIFwid2FpdGVyXCJcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9EQVksICAgLy8gZGVmYXVsdCBpcyBJTkZJTklURVxuICAgIH0pO1xuXG4gICAgb25FdmVudC5hZGRUb1JvbGVQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogWyAnZWMyOkRlc2NyaWJlU3BvdEZsZWV0SW5zdGFuY2VzJyBdLFxuICAgICAgcmVzb3VyY2VzOiBbICcqJyBdLFxuICAgIH0pKVxuXG4gICAgY29uc3QgZmxlZXRJbnN0YW5jZXMgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgJ1Nwb3RGbGVldEluc3RhbmNlcycsIHsgXG4gICAgICBzZXJ2aWNlVG9rZW46IG15UHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBTcG90RmxlZXRSZXF1ZXN0SWQ6IGNmblNwb3RGbGVldC5yZWYsXG4gICAgICB9LCBcbiAgICB9KTtcblxuICAgIGZsZWV0SW5zdGFuY2VzLm5vZGUuYWRkRGVwZW5kZW5jeShjZm5TcG90RmxlZXQpXG5cbiAgICB0aGlzLmluc3RhbmNlSWQgPSBUb2tlbi5hc1N0cmluZyhmbGVldEluc3RhbmNlcy5nZXRBdHQoJ0luc3RhbmNlSWQnKSlcbiAgICB0aGlzLmluc3RhbmNlVHlwZSA9IFRva2VuLmFzU3RyaW5nKGZsZWV0SW5zdGFuY2VzLmdldEF0dCgnSW5zdGFuY2VUeXBlJykpXG4gICAgdGhpcy5zcG90RmxlZXRSZXF1ZXN0SWQgPSBUb2tlbi5hc1N0cmluZyhmbGVldEluc3RhbmNlcy5nZXRBdHQoJ1Nwb3RJbnN0YW5jZVJlcXVlc3RJZCcpKVxuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCAnSW5zdGFuY2VJZCcsIHsgdmFsdWU6IHRoaXMuaW5zdGFuY2VJZCB9KVxuXG4gICAgLy8gRUlQIGFzc29jaWF0aW9uXG4gICAgaWYgKHByb3BzLmVpcEFsbG9jYXRpb25JZCkge1xuICAgICAgbmV3IGVjMi5DZm5FSVBBc3NvY2lhdGlvbih0aGlzLCAnRWlwQXNzb2NhdGlvbicsIHtcbiAgICAgICAgYWxsb2NhdGlvbklkOiBwcm9wcy5laXBBbGxvY2F0aW9uSWQsXG4gICAgICAgIGluc3RhbmNlSWQ6IHRoaXMuaW5zdGFuY2VJZCxcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ldyBlYzIuQ2ZuRUlQKHRoaXMsICdFSVAnLCB7XG4gICAgICAgIGluc3RhbmNlSWQ6IHRoaXMuaW5zdGFuY2VJZCxcbiAgICAgIH0pXG4gICAgfVxuICB9XG4gIHB1YmxpYyBleHBpcmVBZnRlcihkdXJhdGlvbjogRHVyYXRpb24pIHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICBkYXRlLnNldFNlY29uZHMoZGF0ZS5nZXRTZWNvbmRzKCkgKyBkdXJhdGlvbi50b1NlY29uZHMoKSk7XG4gICAgdGhpcy52YWxpZFVudGlsID0gZGF0ZS50b0lTT1N0cmluZygpO1xuICB9XG59XG5cblxuY29uc3QgR1JBVklUT05fSU5TVEFOQ0VUWVBFUyA9IFsnYTEnXTtcbmNvbnN0IEdSQVZJVE9OMl9JTlNUQU5DRVRZUEVTID0gWydjNmcnLCAnbTZnJywgJ3I2ZyddO1xuY29uc3QgR1BVX0lOU1RBTkNFVFlQRVMgPSBbJ3AyJywgJ3AzJywgJ2c0J107XG5jb25zdCBJTkZFUkVOVElBX0lOU1RBTkNFVFlQRVMgPSBbJ2luZjEnXTtcblxuZnVuY3Rpb24gbm9kZVR5cGVGb3JJbnN0YW5jZVR5cGUoaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlKSB7XG4gIHJldHVybiBHUFVfSU5TVEFOQ0VUWVBFUy5pbmNsdWRlcyhpbnN0YW5jZVR5cGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgMikpID8gTm9kZVR5cGUuR1BVIDpcbiAgICBJTkZFUkVOVElBX0lOU1RBTkNFVFlQRVMuaW5jbHVkZXMoaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDQpKSA/IE5vZGVUeXBlLklORkVSRU5USUEgOlxuICAgICAgR1JBVklUT04yX0lOU1RBTkNFVFlQRVMuaW5jbHVkZXMoaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDMpKSA/IE5vZGVUeXBlLkFSTSA6XG4gICAgICAgIEdSQVZJVE9OX0lOU1RBTkNFVFlQRVMuaW5jbHVkZXMoaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDIpKSA/IE5vZGVUeXBlLkFSTSA6XG4gICAgICAgICAgTm9kZVR5cGUuU1RBTkRBUkQ7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zcG90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdDQUF3QztBQUN4Qyx3Q0FBOEk7QUFDOUksd0NBQXdDO0FBQ3hDLDhDQUE4QztBQUM5QywwQ0FBMEM7QUFDMUMsZ0RBQWdEO0FBQ2hELDZCQUE2QjtBQUU3QixNQUFNLHFCQUFxQixHQUFHLFVBQVUsQ0FBQTtBQUV4QyxNQUFhLFdBQVksU0FBUSxZQUFLO0lBQzdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBZ0I7UUFDeEMsTUFBTSxLQUFLLEdBQUcsWUFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUM3QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDMUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkQsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztnQkFDdEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDckYsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDRjtBQVRELGtDQVNDO0FBRUQsSUFBWSxhQU9YO0FBUEQsV0FBWSxhQUFhO0lBQ3ZCLDBEQUFhLENBQUE7SUFDYiw2REFBZSxDQUFBO0lBQ2YsaUVB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L2F3cy1lYzInO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBSZXNvdXJjZSwgUmVzb3VyY2VQcm9wcywgUGh5c2ljYWxOYW1lLCBTdGFjaywgRm4sIENmbk91dHB1dCwgRHVyYXRpb24sIExhenksIEN1c3RvbVJlc291cmNlLCBUb2tlbiB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ0Bhd3MtY2RrL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdAYXdzLWNkay9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBjciBmcm9tICdAYXdzLWNkay9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5cbmNvbnN0IERFRkFVTFRfSU5TVEFOQ0VfVFlQRSA9ICd0My5sYXJnZSdcblxuZXhwb3J0IGNsYXNzIFZwY1Byb3ZpZGVyIGV4dGVuZHMgU3RhY2sge1xuICBwdWJsaWMgc3RhdGljIGdldE9yQ3JlYXRlKHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHNjb3BlKVxuICAgIHJldHVybiBzdGFjay5ub2RlLnRyeUdldENvbnRleHQoJ3VzZV9kZWZhdWx0X3ZwYycpID09PSAnMScgP1xuICAgICAgZWMyLlZwYy5mcm9tTG9va3VwKHN0YWNrLCAnVnBjJywgeyBpc0RlZmF1bHQ6IHRydWUgfSkgOlxuICAgICAgc3RhY2subm9kZS50cnlHZXRDb250ZXh0KCd1c2VfdnBjX2lkJykgP1xuICAgICAgICBlYzIuVnBjLmZyb21Mb29rdXAoc3RhY2ssICdWcGMnLCB7IHZwY0lkOiBzdGFjay5ub2RlLnRyeUdldENvbnRleHQoJ3VzZV92cGNfaWQnKSB9KSA6XG4gICAgICAgIG5ldyBlYzIuVnBjKHN0YWNrLCAnVnBjJywgeyBtYXhBenM6IDMsIG5hdEdhdGV3YXlzOiAxIH0pO1xuICB9XG59XG5cbmV4cG9ydCBlbnVtIEJsb2NrRHVyYXRpb24ge1xuICBPTkVfSE9VUiA9IDYwLFxuICBUV09fSE9VUlMgPSAxMjAsXG4gIFRIUkVFX0hPVVJTID0gMTgwLFxuICBGT1VSX0hPVVJTID0gMjQwLFxuICBGSVZFX0hPVVJTID0gMzAwLFxuICBTSVhfSE9VUlMgPSAzNjBcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSB3b3JrZXIgbm9kZXMgc2hvdWxkIHN1cHBvcnQgR1BVIG9yIGp1c3Qgc3RhbmRhcmQgaW5zdGFuY2VzXG4gKi9cbmV4cG9ydCBlbnVtIE5vZGVUeXBlIHtcbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlc1xuICAgKi9cbiAgU1RBTkRBUkQgPSAnU3RhbmRhcmQnLFxuXG4gIC8qKlxuICAgKiBHUFUgaW5zdGFuY2VzXG4gICAqL1xuICBHUFUgPSAnR1BVJyxcblxuICAvKipcbiAgICogSW5mZXJlbnRpYSBpbnN0YW5jZXNcbiAgICovXG4gIElORkVSRU5USUEgPSAnSU5GRVJFTlRJQScsXG5cbiAgLyoqXG4gICAqIEFSTSBpbnN0YW5jZXNcbiAgICovXG4gIEFSTSA9ICdBUk0nLFxuXG5cbn1cblxuZXhwb3J0IGVudW0gSW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvciB7XG4gIEhJQkVSTkFURSA9ICdoaWJlcm5hdGUnLFxuICBTVE9QID0gJ3N0b3AnLFxuICBURVJNSU5BVEUgPSAndGVybWluYXRlJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwb3RGbGVldExhdW5jaFRlbXBsYXRlQ29uZmlnIHtcbiAgcmVhZG9ubHkgc3BvdGZsZWV0OiBTcG90RmxlZXRcbiAgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGU6IElMYXVuY2h0ZW1wbGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGF1bmNodGVtcGxhdGUge1xuICBiaW5kKHNwb3RmbGVldDogU3BvdEZsZWV0KTogU3BvdEZsZWV0TGF1bmNoVGVtcGxhdGVDb25maWc7XG59XG5cbmV4cG9ydCBjbGFzcyBMYXVuY2hUZW1wbGF0ZSBpbXBsZW1lbnRzIElMYXVuY2h0ZW1wbGF0ZSB7XG4gIHB1YmxpYyBiaW5kKHNwb3RmbGVldDogU3BvdEZsZWV0KTogU3BvdEZsZWV0TGF1bmNoVGVtcGxhdGVDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBzcG90ZmxlZXQsXG4gICAgICBsYXVuY2hUZW1wbGF0ZTogdGhpcyxcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlU3BvdEZsZWV0UHJvcHMgZXh0ZW5kcyBSZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFZQQyBmb3IgdGhlIHNwb3QgZmxlZXRcbiAgICogXG4gICAqIEBkZWZhdWx0IC0gbmV3IFZQQyB3aWxsIGJlIGNyZWF0ZWRcbiAgICogXG4gICAqL1xuICByZWFkb25seSB2cGM/OiBlYzIuSVZwYztcblxuICAvKipcbiAgICogZGVmYXVsdCBFQzIgaW5zdGFuY2UgdHlwZVxuICAgKiBcbiAgICogQGRlZmF1bHQgLSB0My5sYXJnZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdEluc3RhbmNlVHlwZT86IGVjMi5JbnN0YW5jZVR5cGU7XG5cbiAgLyoqXG4gICAqIHJlc2VydmNlIHRoZSBzcG90IGluc3RhbmNlIGFzIHNwb3QgYmxvY2sgd2l0aCBkZWZpbmVkIGR1cmF0aW9uXG4gICAqIFxuICAgKiBAZGVmYXVsdCAtIEJsb2NrRHVyYXRpb24uT05FX0hPVVJcbiAgICovXG4gIHJlYWRvbmx5IGJsb2NrRHVyYXRpb24/OiBCbG9ja0R1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgYmVoYXZpb3Igd2hlbiBhIFNwb3QgSW5zdGFuY2UgaXMgaW50ZXJydXB0ZWRcbiAgICogXG4gICAqIEBkZWZhdWx0IC0gSW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvci5URVJNSU5BVEVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3I/OiBJbnN0YW5jZUludGVycnVwdGlvbkJlaGF2aW9yO1xuXG4gIC8qKlxuICAgKiBJQU0gcm9sZSBmb3IgdGhlIHNwb3QgaW5zdGFuY2VcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlUm9sZT86IGlhbS5Sb2xlO1xuXG4gIC8qKlxuICAgKiBudW1iZXIgb2YgdGhlIHRhcmdldCBjYXBhY2l0eVxuICAgKiBcbiAgICogQGRlZmF1bHQgLSAxXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRDYXBhY2l0eT86IG51bWJlcjtcblxuICAvKipcbiAgICogdGhlIHRpbWUgd2hlbiB0aGUgc3BvdCBmbGVldCBhbGxvY2F0aW9uIHN0YXJ0c1xuICAgKiBcbiAgICogQGRlZmF1bHQgLSBubyBleHBpcmF0aW9uXG4gICAqL1xuICByZWFkb25seSB2YWxpZEZyb20/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHRoZSB0aW1lIHdoZW4gdGhlIHNwb3QgZmxlZXQgYWxsb2NhdGlvbiBleHBpcmVzXG4gICAqIFxuICAgKiBAZGVmYXVsdCAtIG5vIGV4cGlyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHZhbGlkVW50aWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHRlcm1pbmF0ZSB0aGUgaW5zdGFuY2Ugd2hlbiB0aGUgYWxsb2NhdGlvbiBpcyBleHBpcmVkXG4gICAqIFxuICAgKiBAZGVmYXVsdCAtIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHRlcm1pbmF0ZUluc3RhbmNlc1dpdGhFeHBpcmF0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogY3VzdG9tIEFNSSBJRFxuICAgKiBcbiAgICogQGRlZmF1bHQgLSBUaGUgbGF0ZXN0IEFtYW96biBMaW51eCAyIEFNSSBJRFxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tQW1pSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZQQyBzdWJuZXQgZm9yIHRoZSBzcG90IGZsZWV0XG4gICAqIFxuICAgKiBAZGVmYXVsdCAtIHB1YmxpYyBzdWJuZXRcbiAgICovXG4gIHJlYWRvbmx5IHZwY1N1Ym5ldD86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG5cbiAgLyoqXG4gICAqIFNTSCBrZXkgbmFtZVxuICAgKiBcbiAgICogQGRlZmF1bHQgLSBubyBzc2gga2V5IHdpbGwgYmUgYXNzaWduZWRcbiAgICovXG4gIHJlYWRvbmx5IGtleU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgY29tbWFuZHMgZm9yIHVzZXIgZGF0YVxuICAgKiBcbiAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIHVzZXIgZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbFVzZXJEYXRhPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BvdEZsZWV0UHJvcHMgZXh0ZW5kcyBCYXNlU3BvdEZsZWV0UHJvcHMge1xuICAvKipcbiAgICogTGF1bmNoIHRlbXBsYXRlIGZvciB0aGUgc3BvdCBmbGVldFxuICAgKi9cbiAgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGU/OiBJTGF1bmNodGVtcGxhdGU7XG5cbiAgLyoqXG4gICAqIEFsbG9jYXRpb24gSUQgZm9yIHlvdXIgZXhpc3RpbmcgRWxhc3RpYyBJUCBBZGRyZXNzLiBcbiAgICogXG4gICAqIEBkZWZhbHQgbmV3IEVJUCBhbmQgaXRzIGFzc29jaWF0aW9uIHdpbGwgYmUgY3JlYXRlZCBmb3IgdGhlIGZpcnN0IGluc3RhbmNlIGluIHRoaXMgc3BvdCBmbGVldFxuICAgKi9cbiAgcmVhZG9ubHkgZWlwQWxsb2NhdGlvbklkPzogc3RyaW5nO1xuXG59XG5cbmV4cG9ydCBjbGFzcyBTcG90RmxlZXQgZXh0ZW5kcyBSZXNvdXJjZSB7XG4gIHJlYWRvbmx5IGluc3RhbmNlUm9sZTogaWFtLklSb2xlO1xuICByZWFkb25seSBkZWZhdWx0SW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlO1xuICByZWFkb25seSB0YXJnZXRDYXBhY2l0eT86IG51bWJlcjtcbiAgcmVhZG9ubHkgc3BvdEZsZWV0SWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGU6IElMYXVuY2h0ZW1wbGF0ZTtcbiAgcmVhZG9ubHkgdnBjOiBlYzIuSVZwYztcbiAgLyoqXG4gICAqIHRoZSBmaXJzdCBpbnN0YW5jZSBpZCBpbiB0aGlzIGZsZWV0XG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZUlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBpbnN0YW5jZSB0eXBlIG9mIHRoZSBmaXJzdCBpbnN0YW5jZSBpbiB0aGlzIGZsZWV0XG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFNwb3RGbGVldFJlcXVlc3RJZCBmb3IgdGhpcyBzcG90IGZsZWV0XG4gICAqL1xuICByZWFkb25seSBzcG90RmxlZXRSZXF1ZXN0SWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0aW1lIHdoZW4gdGhlIHRoZSBmbGVldCBhbGxvY2F0aW9uIHdpbGwgZXhwaXJlXG4gICAqL1xuICBwcml2YXRlIHZhbGlkVW50aWw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBzZWN1cml0eSBncm91cCBvZiB0aGUgaW5zdGFuY2UsIHdoaWNoIG9ubHkgYWxsb3dzIFRDUCAyMiBTU0ggaW5ncmVzcyBydWxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRTZWN1cml0eUdyb3VwOiBlYzIuSVNlY3VyaXR5R3JvdXA7IFxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTcG90RmxlZXRQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcylcblxuICAgIHRoaXMuc3BvdEZsZWV0SWQgPSBpZFxuICAgIHRoaXMubGF1bmNoVGVtcGxhdGUgPSBwcm9wcy5sYXVuY2hUZW1wbGF0ZSA/PyBuZXcgTGF1bmNoVGVtcGxhdGUoKVxuICAgIHRoaXMudGFyZ2V0Q2FwYWNpdHkgPSBwcm9wcy50YXJnZXRDYXBhY2l0eSA/PyAxXG4gICAgdGhpcy5kZWZhdWx0SW5zdGFuY2VUeXBlID0gcHJvcHMuZGVmYXVsdEluc3RhbmNlVHlwZSA/PyBuZXcgZWMyLkluc3RhbmNlVHlwZShERUZBVUxUX0lOU1RBTkNFX1RZUEUpXG4gICAgdGhpcy52YWxpZFVudGlsID0gcHJvcHMudmFsaWRVbnRpbCBcbiAgICB0aGlzLnZwYyA9IHByb3BzLnZwYyA/PyBuZXcgZWMyLlZwYyh0aGlzLCAnVlBDJywgeyBtYXhBenM6IDMsIG5hdEdhdGV3YXlzOiAxfSlcbiAgICBcbiAgICAvLyBpc250YW5jZSByb2xlXG4gICAgdGhpcy5pbnN0YW5jZVJvbGUgPSBwcm9wcy5pbnN0YW5jZVJvbGUgfHwgbmV3IGlhbS5Sb2xlKHRoaXMsICdJbnN0YW5jZVJvbGUnLCB7XG4gICAgICByb2xlTmFtZTogUGh5c2ljYWxOYW1lLkdFTkVSQVRFX0lGX05FRURFRCxcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdlYzIuYW1hem9uYXdzLmNvbScpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5pbnN0YW5jZVJvbGUuYWRkVG9Qb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnc3NtbWVzc2FnZXM6KicsXG4gICAgICAgICdzc206VXBkYXRlSW5zdGFuY2VJbmZvcm1hdGlvbicsXG4gICAgICAgICdlYzJtZXNzYWdlczoqJyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGluc3RhbmNlUHJvZmlsZSA9IG5ldyBpYW0uQ2ZuSW5zdGFuY2VQcm9maWxlKHRoaXMsICdJbnN0YW5jZVByb2ZpbGUnLCB7XG4gICAgICByb2xlczogW3RoaXMuaW5zdGFuY2VSb2xlLnJvbGVOYW1lXSxcbiAgICB9KVxuXG4gICAgdGhpcy5kZWZhdWx0U2VjdXJpdHlHcm91cCA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLCAnU3BvdEZsZWV0U2cnLCB7XG4gICAgICB2cGM6IHRoaXMudnBjLFxuICAgIH0pXG5cbiAgICB0aGlzLmRlZmF1bHRTZWN1cml0eUdyb3VwLmNvbm5lY3Rpb25zLmFsbG93RnJvbUFueUlwdjQoZWMyLlBvcnQudGNwKDIyKSlcblxuICAgIHRoaXMuZGVmYXVsdEluc3RhbmNlVHlwZSA9IHByb3BzLmRlZmF1bHRJbnN0YW5jZVR5cGUgPz8gbmV3IGVjMi5JbnN0YW5jZVR5cGUoREVGQVVMVF9JTlNUQU5DRV9UWVBFKVxuXG4gICAgY29uc3QgaW1hZ2VJZCA9IHByb3BzLmN1c3RvbUFtaUlkID8/IFxuICAgICAgZWMyLk1hY2hpbmVJbWFnZS5sYXRlc3RBbWF6b25MaW51eCh7IFxuICAgICAgICBnZW5lcmF0aW9uOiBlYzIuQW1hem9uTGludXhHZW5lcmF0aW9uLkFNQVpPTl9MSU5VWF8yLFxuICAgICAgICBjcHVUeXBlOiBub2RlVHlwZUZvckluc3RhbmNlVHlwZSh0aGlzLmRlZmF1bHRJbnN0YW5jZVR5cGUpID09PSBOb2RlVHlwZS5BUk0gPyBlYzIuQW1hem9uTGludXhDcHVUeXBlLkFSTV82NCA6IHVuZGVmaW5lZCxcbiAgICAgIH0pLmdldEltYWdlKHRoaXMpLmltYWdlSWRcblxuXG4gICAgY29uc3QgdXNlckRhdGEgPSBlYzIuVXNlckRhdGEuZm9yTGludXgoKTtcbiAgICB1c2VyRGF0YS5hZGRDb21tYW5kcyhcbiAgICAgICd5dW0gaW5zdGFsbCAteSBodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZWMyLWRvd25sb2Fkcy13aW5kb3dzL1NTTUFnZW50L2xhdGVzdC9saW51eF9hbWQ2NC9hbWF6b24tc3NtLWFnZW50LnJwbScsXG4gICAgICAneXVtIGluc3RhbGwgLXkgZG9ja2VyJyxcbiAgICAgICd1c2VybW9kIC1hRyBkb2NrZXIgZWMyLXVzZXInLFxuICAgICAgJ3VzZXJtb2QgLWFHIGRvY2tlciBzc20tdXNlcicsXG4gICAgICAnc2VydmljZSBkb2NrZXIgc3RhcnQnLFxuICAgICk7XG4gICAgaWYgKHByb3BzLmFkZGl0aW9uYWxVc2VyRGF0YSlcbiAgICAgIHVzZXJEYXRhLmFkZENvbW1hbmRzKC4uLnByb3BzLmFkZGl0aW9uYWxVc2VyRGF0YSk7XG4gICAgY29uc3QgbHQgPSBuZXcgZWMyLkNmbkxhdW5jaFRlbXBsYXRlKHRoaXMsICdMYXVuY2hUZW1wbGF0ZScsIHtcbiAgICAgIGxhdW5jaFRlbXBsYXRlRGF0YToge1xuICAgICAgICBpbWFnZUlkLFxuICAgICAgICBpbnN0YW5jZVR5cGU6IHRoaXMuZGVmYXVsdEluc3RhbmNlVHlwZS50b1N0cmluZygpLFxuICAgICAgICB1c2VyRGF0YTogRm4uYmFzZTY0KHVzZXJEYXRhLnJlbmRlcigpKSxcbiAgICAgICAga2V5TmFtZTogcHJvcHMua2V5TmFtZSxcbiAgICAgICAgdGFnU3BlY2lmaWNhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICByZXNvdXJjZVR5cGU6ICdpbnN0YW5jZScsXG4gICAgICAgICAgICB0YWdzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdOYW1lJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogYCR7U3RhY2sub2YodGhpcykuc3RhY2tOYW1lfS9zcG90RmxlZXQvJHt0aGlzLnNwb3RGbGVldElkfWAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGluc3RhbmNlTWFya2V0T3B0aW9uczoge1xuICAgICAgICAgIG1hcmtldFR5cGU6ICdzcG90JyxcbiAgICAgICAgICBzcG90T3B0aW9uczoge1xuICAgICAgICAgICAgYmxvY2tEdXJhdGlvbk1pbnV0ZXM6IHByb3BzLmJsb2NrRHVyYXRpb24gPz8gQmxvY2tEdXJhdGlvbi5PTkVfSE9VUixcbiAgICAgICAgICAgIGluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3I6IHByb3BzLmluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3IgPz8gSW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvci5URVJNSU5BVEUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgc2VjdXJpdHlHcm91cElkczogdGhpcy5kZWZhdWx0U2VjdXJpdHlHcm91cC5jb25uZWN0aW9ucy5zZWN1cml0eUdyb3Vwcy5tYXAobSA9PiBtLnNlY3VyaXR5R3JvdXBJZCksXG4gICAgICAgIGlhbUluc3RhbmNlUHJvZmlsZToge1xuICAgICAgICAgIGFybjogaW5zdGFuY2VQcm9maWxlLmF0dHJBcm4sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBjb25zdCBzcG90RmxlZXRSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdGbGVldFJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnc3BvdGZsZWV0LmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BbWF6b25FQzJTcG90RmxlZXRUYWdnaW5nUm9sZScpLFxuICAgICAgXSxcbiAgICB9KVxuXG4gICAgY29uc3QgdnBjU3VibmV0U2VsZWN0aW9uID0gcHJvcHMudnBjU3VibmV0ID8/IHtcbiAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBVQkxJQyxcbiAgICB9XG4gICAgY29uc3Qgc3VibmV0Q29uZmlnID0gdGhpcy52cGMuc2VsZWN0U3VibmV0cyh2cGNTdWJuZXRTZWxlY3Rpb24pLnN1Ym5ldHMubWFwKHMgPT4gKHtcbiAgICAgIHN1Ym5ldElkOiBzLnN1Ym5ldElkLFxuICAgIH0pKVxuICAgIGNvbnN0IGNmblNwb3RGbGVldCA9IG5ldyBlYzIuQ2ZuU3BvdEZsZWV0KHRoaXMsIGlkLCB7XG4gICAgICBzcG90RmxlZXRSZXF1ZXN0Q29uZmlnRGF0YToge1xuICAgICAgICBsYXVuY2hUZW1wbGF0ZUNvbmZpZ3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYXVuY2hUZW1wbGF0ZVNwZWNpZmljYXRpb246IHtcbiAgICAgICAgICAgICAgbGF1bmNoVGVtcGxhdGVJZDogbHQucmVmLFxuICAgICAgICAgICAgICB2ZXJzaW9uOiBsdC5hdHRyTGF0ZXN0VmVyc2lvbk51bWJlcixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvdmVycmlkZXM6IHN1Ym5ldENvbmZpZyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBpYW1GbGVldFJvbGU6IHNwb3RGbGVldFJvbGUucm9sZUFybixcbiAgICAgICAgdGFyZ2V0Q2FwYWNpdHk6IHByb3BzLnRhcmdldENhcGFjaXR5ID8/IDEsXG4gICAgICAgIHZhbGlkRnJvbTogcHJvcHMudmFsaWRGcm9tLFxuICAgICAgICB2YWxpZFVudGlsOiBMYXp5LnN0cmluZ1ZhbHVlKHsgcHJvZHVjZTogKCkgPT4gdGhpcy52YWxpZFVudGlsIH0pLFxuICAgICAgICB0ZXJtaW5hdGVJbnN0YW5jZXNXaXRoRXhwaXJhdGlvbjogcHJvcHMudGVybWluYXRlSW5zdGFuY2VzV2l0aEV4cGlyYXRpb24gPz8gdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSlcbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsICdTcG90RmxlZXRJZCcsIHsgdmFsdWU6IGNmblNwb3RGbGVldC5yZWYgfSlcbiAgICBjb25zdCBvbkV2ZW50ID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCAnT25FdmVudCcsIHsgXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2VpcC1oYW5kbGVyJykpLFxuICAgICAgaGFuZGxlcjogJ2luZGV4Lm9uX2V2ZW50JyxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzgsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGlzQ29tcGxldGUgPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsICdJc0NvbXBsZXRlJywge1xuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9laXAtaGFuZGxlcicpKSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5pc19jb21wbGV0ZScsXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QWVRIT05fM184LFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICByb2xlOiBvbkV2ZW50LnJvbGUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBteVByb3ZpZGVyID0gbmV3IGNyLlByb3ZpZGVyKHRoaXMsICdNeVByb3ZpZGVyJywge1xuICAgICAgb25FdmVudEhhbmRsZXI6IG9uRXZlbnQsXG4gICAgICBpc0NvbXBsZXRlSGFuZGxlcjogaXNDb21wbGV0ZSwgICAgICAgIC8vIG9wdGlvbmFsIGFzeW5jIFwid2FpdGVyXCJcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9EQVksICAgLy8gZGVmYXVsdCBpcyBJTkZJTklURVxuICAgIH0pO1xuXG4gICAgb25FdmVudC5hZGRUb1JvbGVQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogWyAnZWMyOkRlc2NyaWJlU3BvdEZsZWV0SW5zdGFuY2VzJyBdLFxuICAgICAgcmVzb3VyY2VzOiBbICcqJyBdLFxuICAgIH0pKVxuXG4gICAgY29uc3QgZmxlZXRJbnN0YW5jZXMgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgJ1Nwb3RGbGVldEluc3RhbmNlcycsIHsgXG4gICAgICBzZXJ2aWNlVG9rZW46IG15UHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBTcG90RmxlZXRSZXF1ZXN0SWQ6IGNmblNwb3RGbGVldC5yZWYsXG4gICAgICB9LCBcbiAgICB9KTtcblxuICAgIGZsZWV0SW5zdGFuY2VzLm5vZGUuYWRkRGVwZW5kZW5jeShjZm5TcG90RmxlZXQpXG5cbiAgICB0aGlzLmluc3RhbmNlSWQgPSBUb2tlbi5hc1N0cmluZyhmbGVldEluc3RhbmNlcy5nZXRBdHQoJ0luc3RhbmNlSWQnKSlcbiAgICB0aGlzLmluc3RhbmNlVHlwZSA9IFRva2VuLmFzU3RyaW5nKGZsZWV0SW5zdGFuY2VzLmdldEF0dCgnSW5zdGFuY2VUeXBlJykpXG4gICAgdGhpcy5zcG90RmxlZXRSZXF1ZXN0SWQgPSBUb2tlbi5hc1N0cmluZyhmbGVldEluc3RhbmNlcy5nZXRBdHQoJ1Nwb3RJbnN0YW5jZVJlcXVlc3RJZCcpKVxuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCAnSW5zdGFuY2VJZCcsIHsgdmFsdWU6IHRoaXMuaW5zdGFuY2VJZCB9KVxuXG4gICAgLy8gRUlQIGFzc29jaWF0aW9uXG4gICAgaWYgKHByb3BzLmVpcEFsbG9jYXRpb25JZCkge1xuICAgICAgbmV3IGVjMi5DZm5FSVBBc3NvY2lhdGlvbih0aGlzLCAnRWlwQXNzb2NhdGlvbicsIHtcbiAgICAgICAgYWxsb2NhdGlvbklkOiBwcm9wcy5laXBBbGxvY2F0aW9uSWQsXG4gICAgICAgIGluc3RhbmNlSWQ6IHRoaXMuaW5zdGFuY2VJZCxcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ldyBlYzIuQ2ZuRUlQKHRoaXMsICdFSVAnLCB7XG4gICAgICAgIGluc3RhbmNlSWQ6IHRoaXMuaW5zdGFuY2VJZCxcbiAgICAgIH0pXG4gICAgfVxuICB9XG4gIHB1YmxpYyBleHBpcmVBZnRlcihkdXJhdGlvbjogRHVyYXRpb24pIHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICBkYXRlLnNldFNlY29uZHMoZGF0ZS5nZXRTZWNvbmRzKCkgKyBkdXJhdGlvbi50b1NlY29uZHMoKSk7XG4gICAgdGhpcy52YWxpZFVudGlsID0gZGF0ZS50b0lTT1N0cmluZygpO1xuICB9XG59XG5cblxuY29uc3QgR1JBVklUT05fSU5TVEFOQ0VUWVBFUyA9IFsnYTEnXTtcbmNvbnN0IEdSQVZJVE9OMl9JTlNUQU5DRVRZUEVTID0gWydjNmcnLCAnbTZnJywgJ3I2ZyddO1xuY29uc3QgR1BVX0lOU1RBTkNFVFlQRVMgPSBbJ3AyJywgJ3AzJywgJ2c0J107XG5jb25zdCBJTkZFUkVOVElBX0lOU1RBTkNFVFlQRVMgPSBbJ2luZjEnXTtcblxuZnVuY3Rpb24gbm9kZVR5cGVGb3JJbnN0YW5jZVR5cGUoaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlKSB7XG4gIHJldHVybiBHUFVfSU5TVEFOQ0VUWVBFUy5pbmNsdWRlcyhpbnN0YW5jZVR5cGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgMikpID8gTm9kZVR5cGUuR1BVIDpcbiAgICBJTkZFUkVOVElBX0lOU1RBTkNFVFlQRVMuaW5jbHVkZXMoaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDQpKSA/IE5vZGVUeXBlLklORkVSRU5USUEgOlxuICAgICAgR1JBVklUT04yX0lOU1RBTkNFVFlQRVMuaW5jbHVkZXMoaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDMpKSA/IE5vZGVUeXBlLkFSTSA6XG4gICAgICAgIEdSQVZJVE9OX0lOU1RBTkNFVFlQRVMuaW5jbHVkZXMoaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDIpKSA/IE5vZGVUeXBlLkFSTSA6XG4gICAgICAgICAgTm9kZVR5cGUuU1RBTkRBUkQ7XG59XG4iXX0=

@@ -8,39 +8,66 @@ "use strict";

const spot_1 = require("../spot");
test('create the HTTP API', () => {
const mockApp = new core_1.App();
const stack = new core_1.Stack(mockApp, 'testing-stack');
const fleet = new index_1.SpotFleet(stack, 'SpotFleet', {
targetCapacity: 1,
blockDuration: spot_1.BlockDuration.SIX_HOURS,
instanceInterruptionBehavior: index_1.InstanceInterruptionBehavior.HIBERNATE,
defaultInstanceType: new ec2.InstanceType('t3.large'),
eipAllocationId: 'eipalloc-0d1bc6d85895a5410',
vpcSubnet: {
subnetType: ec2.SubnetType.PUBLIC,
},
terminateInstancesWithExpiration: true,
describe('Spot Fleet tests', () => {
test('create the HTTP API', () => {
const mockApp = new core_1.App();
const stack = new core_1.Stack(mockApp, 'testing-stack');
const fleet = new index_1.SpotFleet(stack, 'SpotFleet', {
targetCapacity: 1,
blockDuration: spot_1.BlockDuration.SIX_HOURS,
instanceInterruptionBehavior: index_1.InstanceInterruptionBehavior.HIBERNATE,
defaultInstanceType: new ec2.InstanceType('t3.large'),
eipAllocationId: 'eipalloc-0d1bc6d85895a5410',
vpcSubnet: {
subnetType: ec2.SubnetType.PUBLIC,
},
terminateInstancesWithExpiration: true,
});
// fleet to expire after 6 hours
fleet.expireAfter(core_1.Duration.hours(6));
fleet.defaultSecurityGroup.connections.allowFromAnyIpv4(ec2.Port.tcp(80));
expect(stack).toHaveResource('AWS::EC2::SpotFleet');
expect(stack).toHaveResource('AWS::EC2::SecurityGroup', {
SecurityGroupIngress: [
{
CidrIp: '0.0.0.0/0',
Description: 'from 0.0.0.0/0:22',
FromPort: 22,
IpProtocol: 'tcp',
ToPort: 22,
},
{
CidrIp: '0.0.0.0/0',
Description: 'from 0.0.0.0/0:80',
FromPort: 80,
IpProtocol: 'tcp',
ToPort: 80,
},
],
});
});
// fleet to expire after 6 hours
fleet.expireAfter(core_1.Duration.hours(6));
fleet.defaultSecurityGroup.connections.allowFromAnyIpv4(ec2.Port.tcp(80));
expect(stack).toHaveResource('AWS::EC2::SpotFleet');
expect(stack).toHaveResource('AWS::EC2::SecurityGroup', {
SecurityGroupIngress: [
{
CidrIp: '0.0.0.0/0',
Description: 'from 0.0.0.0/0:22',
FromPort: 22,
IpProtocol: 'tcp',
ToPort: 22,
test('support additional user data', () => {
const mockApp = new core_1.App();
const stack = new core_1.Stack(mockApp, 'testing-stack');
new index_1.SpotFleet(stack, 'SpotFleet', {
targetCapacity: 1,
blockDuration: spot_1.BlockDuration.SIX_HOURS,
instanceInterruptionBehavior: index_1.InstanceInterruptionBehavior.HIBERNATE,
defaultInstanceType: new ec2.InstanceType('t3.large'),
vpcSubnet: {
subnetType: ec2.SubnetType.PUBLIC,
},
{
CidrIp: '0.0.0.0/0',
Description: 'from 0.0.0.0/0:80',
FromPort: 80,
IpProtocol: 'tcp',
ToPort: 80,
terminateInstancesWithExpiration: true,
additionalUserData: [
'mycommand1',
'mycommand2 arg1',
],
});
expect(stack).toHaveResourceLike('AWS::EC2::LaunchTemplate', {
LaunchTemplateData: {
UserData: {
'Fn::Base64': '#!/bin/bash\nyum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm\nyum install -y docker\nusermod -aG docker ec2-user\nusermod -aG docker ssm-user\nservice docker start\nmycommand1\nmycommand2 arg1',
},
},
],
});
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L2luZGV4LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvQ0FBbUU7QUFDbkUsd0NBQXFEO0FBQ3JELHdDQUF3QztBQUN4QyxnQ0FBOEI7QUFDOUIsa0NBQXdDO0FBRXhDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7SUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxVQUFHLEVBQUUsQ0FBQztJQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLFlBQUssQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFFbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxpQkFBUyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUU7UUFDOUMsY0FBYyxFQUFFLENBQUM7UUFDakIsYUFBYSxFQUFFLG9CQUFhLENBQUMsU0FBUztRQUN0Qyw0QkFBNEIsRUFBRSxvQ0FBNEIsQ0FBQyxTQUFTO1FBQ3BFLG1CQUFtQixFQUFFLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDckQsZUFBZSxFQUFFLDRCQUE0QjtRQUM3QyxTQUFTLEVBQUU7WUFDVCxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNO1NBQ2xDO1FBQ0QsZ0NBQWdDLEVBQUUsSUFBSTtLQUN2QyxDQUFDLENBQUM7SUFDSCxnQ0FBZ0M7SUFDaEMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxlQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNwRCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLHlCQUF5QixFQUFFO1FBQ3RELG9CQUFvQixFQUFFO1lBQ3BCO2dCQUNFLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixXQUFXLEVBQUUsbUJBQW1CO2dCQUNoQyxRQUFRLEVBQUUsRUFBRTtnQkFDWixVQUFVLEVBQUUsS0FBSztnQkFDakIsTUFBTSxFQUFFLEVBQUU7YUFDWDtZQUNEO2dCQUNFLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixXQUFXLEVBQUUsbUJBQW1CO2dCQUNoQyxRQUFRLEVBQUUsRUFBRTtnQkFDWixVQUFVLEVBQUUsS0FBSztnQkFDakIsTUFBTSxFQUFFLEVBQUU7YUFDWDtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTcG90RmxlZXQsIEluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3IgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgeyBBcHAsIFN0YWNrLCBEdXJhdGlvbiB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ0Bhd3MtY2RrL2F3cy1lYzInO1xuaW1wb3J0ICdAYXdzLWNkay9hc3NlcnQvamVzdCc7XG5pbXBvcnQgeyBCbG9ja0R1cmF0aW9uIH0gZnJvbSAnLi4vc3BvdCc7XG5cbnRlc3QoJ2NyZWF0ZSB0aGUgSFRUUCBBUEknLCAoKSA9PiB7XG4gIGNvbnN0IG1vY2tBcHAgPSBuZXcgQXBwKCk7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKG1vY2tBcHAsICd0ZXN0aW5nLXN0YWNrJyk7XG5cbiAgY29uc3QgZmxlZXQgPSBuZXcgU3BvdEZsZWV0KHN0YWNrLCAnU3BvdEZsZWV0Jywge1xuICAgIHRhcmdldENhcGFjaXR5OiAxLFxuICAgIGJsb2NrRHVyYXRpb246IEJsb2NrRHVyYXRpb24uU0lYX0hPVVJTLFxuICAgIGluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3I6IEluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3IuSElCRVJOQVRFLFxuICAgIGRlZmF1bHRJbnN0YW5jZVR5cGU6IG5ldyBlYzIuSW5zdGFuY2VUeXBlKCd0My5sYXJnZScpLFxuICAgIGVpcEFsbG9jYXRpb25JZDogJ2VpcGFsbG9jLTBkMWJjNmQ4NTg5NWE1NDEwJyxcbiAgICB2cGNTdWJuZXQ6IHtcbiAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBVQkxJQyxcbiAgICB9LFxuICAgIHRlcm1pbmF0ZUluc3RhbmNlc1dpdGhFeHBpcmF0aW9uOiB0cnVlLFxuICB9KTtcbiAgLy8gZmxlZXQgdG8gZXhwaXJlIGFmdGVyIDYgaG91cnNcbiAgZmxlZXQuZXhwaXJlQWZ0ZXIoRHVyYXRpb24uaG91cnMoNikpO1xuICBmbGVldC5kZWZhdWx0U2VjdXJpdHlHcm91cC5jb25uZWN0aW9ucy5hbGxvd0Zyb21BbnlJcHY0KGVjMi5Qb3J0LnRjcCg4MCkpO1xuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdBV1M6OkVDMjo6U3BvdEZsZWV0Jyk7XG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJywge1xuICAgIFNlY3VyaXR5R3JvdXBJbmdyZXNzOiBbXG4gICAgICB7XG4gICAgICAgIENpZHJJcDogJzAuMC4wLjAvMCcsXG4gICAgICAgIERlc2NyaXB0aW9uOiAnZnJvbSAwLjAuMC4wLzA6MjInLFxuICAgICAgICBGcm9tUG9ydDogMjIsXG4gICAgICAgIElwUHJvdG9jb2w6ICd0Y3AnLFxuICAgICAgICBUb1BvcnQ6IDIyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgQ2lkcklwOiAnMC4wLjAuMC8wJyxcbiAgICAgICAgRGVzY3JpcHRpb246ICdmcm9tIDAuMC4wLjAvMDo4MCcsXG4gICAgICAgIEZyb21Qb3J0OiA4MCxcbiAgICAgICAgSXBQcm90b2NvbDogJ3RjcCcsXG4gICAgICAgIFRvUG9ydDogODAsXG4gICAgICB9LFxuICAgIF0sXG4gIH0pO1xufSk7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L2luZGV4LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvQ0FBbUU7QUFDbkUsd0NBQXFEO0FBQ3JELHdDQUF3QztBQUN4QyxnQ0FBOEI7QUFDOUIsa0NBQXdDO0FBRXhDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7SUFFaEMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtRQUMvQixNQUFNLE9BQU8sR0FBRyxJQUFJLFVBQUcsRUFBRSxDQUFDO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksWUFBSyxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUVsRCxNQUFNLEtBQUssR0FBRyxJQUFJLGlCQUFTLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRTtZQUM5QyxjQUFjLEVBQUUsQ0FBQztZQUNqQixhQUFhLEVBQUUsb0JBQWEsQ0FBQyxTQUFTO1lBQ3RDLDRCQUE0QixFQUFFLG9DQUE0QixDQUFDLFNBQVM7WUFDcEUsbUJBQW1CLEVBQUUsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztZQUNyRCxlQUFlLEVBQUUsNEJBQTRCO1lBQzdDLFNBQVMsRUFBRTtnQkFDVCxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNO2FBQ2xDO1lBQ0QsZ0NBQWdDLEVBQUUsSUFBSTtTQUN2QyxDQUFDLENBQUM7UUFDSCxnQ0FBZ0M7UUFDaEMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxlQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNwRCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLHlCQUF5QixFQUFFO1lBQ3RELG9CQUFvQixFQUFFO2dCQUNwQjtvQkFDRSxNQUFNLEVBQUUsV0FBVztvQkFDbkIsV0FBVyxFQUFFLG1CQUFtQjtvQkFDaEMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLE1BQU0sRUFBRSxFQUFFO2lCQUNYO2dCQUNEO29CQUNFLE1BQU0sRUFBRSxXQUFXO29CQUNuQixXQUFXLEVBQUUsbUJBQW1CO29CQUNoQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixVQUFVLEVBQUUsS0FBSztvQkFDakIsTUFBTSxFQUFFLEVBQUU7aUJBQ1g7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLDhCQUE4QixFQUFFLEdBQUcsRUFBRTtRQUN4QyxNQUFNLE9BQU8sR0FBRyxJQUFJLFVBQUcsRUFBRSxDQUFDO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksWUFBSyxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUVsRCxJQUFJLGlCQUFTLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRTtZQUNoQyxjQUFjLEVBQUUsQ0FBQztZQUNqQixhQUFhLEVBQUUsb0JBQWEsQ0FBQyxTQUFTO1lBQ3RDLDRCQUE0QixFQUFFLG9DQUE0QixDQUFDLFNBQVM7WUFDcEUsbUJBQW1CLEVBQUUsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztZQUNyRCxTQUFTLEVBQUU7Z0JBQ1QsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTTthQUNsQztZQUNELGdDQUFnQyxFQUFFLElBQUk7WUFDdEMsa0JBQWtCLEVBQUU7Z0JBQ2xCLFlBQVk7Z0JBQ1osaUJBQWlCO2FBQ2xCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixDQUFDLDBCQUEwQixFQUFFO1lBQzNELGtCQUFrQixFQUFFO2dCQUNsQixRQUFRLEVBQUU7b0JBQ1IsWUFBWSxFQUFFLGlRQUFpUTtpQkFDaFI7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTcG90RmxlZXQsIEluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3IgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgeyBBcHAsIFN0YWNrLCBEdXJhdGlvbiB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ0Bhd3MtY2RrL2F3cy1lYzInO1xuaW1wb3J0ICdAYXdzLWNkay9hc3NlcnQvamVzdCc7XG5pbXBvcnQgeyBCbG9ja0R1cmF0aW9uIH0gZnJvbSAnLi4vc3BvdCc7XG5cbmRlc2NyaWJlKCdTcG90IEZsZWV0IHRlc3RzJywgKCkgPT4ge1xuXG4gIHRlc3QoJ2NyZWF0ZSB0aGUgSFRUUCBBUEknLCAoKSA9PiB7XG4gICAgY29uc3QgbW9ja0FwcCA9IG5ldyBBcHAoKTtcbiAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjayhtb2NrQXBwLCAndGVzdGluZy1zdGFjaycpO1xuXG4gICAgY29uc3QgZmxlZXQgPSBuZXcgU3BvdEZsZWV0KHN0YWNrLCAnU3BvdEZsZWV0Jywge1xuICAgICAgdGFyZ2V0Q2FwYWNpdHk6IDEsXG4gICAgICBibG9ja0R1cmF0aW9uOiBCbG9ja0R1cmF0aW9uLlNJWF9IT1VSUyxcbiAgICAgIGluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3I6IEluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3IuSElCRVJOQVRFLFxuICAgICAgZGVmYXVsdEluc3RhbmNlVHlwZTogbmV3IGVjMi5JbnN0YW5jZVR5cGUoJ3QzLmxhcmdlJyksXG4gICAgICBlaXBBbGxvY2F0aW9uSWQ6ICdlaXBhbGxvYy0wZDFiYzZkODU4OTVhNTQxMCcsXG4gICAgICB2cGNTdWJuZXQ6IHtcbiAgICAgICAgc3VibmV0VHlwZTogZWMyLlN1Ym5ldFR5cGUuUFVCTElDLFxuICAgICAgfSxcbiAgICAgIHRlcm1pbmF0ZUluc3RhbmNlc1dpdGhFeHBpcmF0aW9uOiB0cnVlLFxuICAgIH0pO1xuICAgIC8vIGZsZWV0IHRvIGV4cGlyZSBhZnRlciA2IGhvdXJzXG4gICAgZmxlZXQuZXhwaXJlQWZ0ZXIoRHVyYXRpb24uaG91cnMoNikpO1xuICAgIGZsZWV0LmRlZmF1bHRTZWN1cml0eUdyb3VwLmNvbm5lY3Rpb25zLmFsbG93RnJvbUFueUlwdjQoZWMyLlBvcnQudGNwKDgwKSk7XG4gICAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQVdTOjpFQzI6OlNwb3RGbGVldCcpO1xuICAgIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJywge1xuICAgICAgU2VjdXJpdHlHcm91cEluZ3Jlc3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIENpZHJJcDogJzAuMC4wLjAvMCcsXG4gICAgICAgICAgRGVzY3JpcHRpb246ICdmcm9tIDAuMC4wLjAvMDoyMicsXG4gICAgICAgICAgRnJvbVBvcnQ6IDIyLFxuICAgICAgICAgIElwUHJvdG9jb2w6ICd0Y3AnLFxuICAgICAgICAgIFRvUG9ydDogMjIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBDaWRySXA6ICcwLjAuMC4wLzAnLFxuICAgICAgICAgIERlc2NyaXB0aW9uOiAnZnJvbSAwLjAuMC4wLzA6ODAnLFxuICAgICAgICAgIEZyb21Qb3J0OiA4MCxcbiAgICAgICAgICBJcFByb3RvY29sOiAndGNwJyxcbiAgICAgICAgICBUb1BvcnQ6IDgwLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfSk7XG4gIFxuICB0ZXN0KCdzdXBwb3J0IGFkZGl0aW9uYWwgdXNlciBkYXRhJywgKCkgPT4ge1xuICAgIGNvbnN0IG1vY2tBcHAgPSBuZXcgQXBwKCk7XG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2sobW9ja0FwcCwgJ3Rlc3Rpbmctc3RhY2snKTtcblxuICAgIG5ldyBTcG90RmxlZXQoc3RhY2ssICdTcG90RmxlZXQnLCB7XG4gICAgICB0YXJnZXRDYXBhY2l0eTogMSxcbiAgICAgIGJsb2NrRHVyYXRpb246IEJsb2NrRHVyYXRpb24uU0lYX0hPVVJTLFxuICAgICAgaW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvcjogSW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvci5ISUJFUk5BVEUsXG4gICAgICBkZWZhdWx0SW5zdGFuY2VUeXBlOiBuZXcgZWMyLkluc3RhbmNlVHlwZSgndDMubGFyZ2UnKSxcbiAgICAgIHZwY1N1Ym5ldDoge1xuICAgICAgICBzdWJuZXRUeXBlOiBlYzIuU3VibmV0VHlwZS5QVUJMSUMsXG4gICAgICB9LFxuICAgICAgdGVybWluYXRlSW5zdGFuY2VzV2l0aEV4cGlyYXRpb246IHRydWUsXG4gICAgICBhZGRpdGlvbmFsVXNlckRhdGE6IFsgXG4gICAgICAgICdteWNvbW1hbmQxJyxcbiAgICAgICAgJ215Y29tbWFuZDIgYXJnMScsXG4gICAgICBdLFxuICAgIH0pO1xuICBcbiAgICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlTGlrZSgnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJywge1xuICAgICAgTGF1bmNoVGVtcGxhdGVEYXRhOiB7XG4gICAgICAgIFVzZXJEYXRhOiB7XG4gICAgICAgICAgJ0ZuOjpCYXNlNjQnOiAnIyEvYmluL2Jhc2hcXG55dW0gaW5zdGFsbCAteSBodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZWMyLWRvd25sb2Fkcy13aW5kb3dzL1NTTUFnZW50L2xhdGVzdC9saW51eF9hbWQ2NC9hbWF6b24tc3NtLWFnZW50LnJwbVxcbnl1bSBpbnN0YWxsIC15IGRvY2tlclxcbnVzZXJtb2QgLWFHIGRvY2tlciBlYzItdXNlclxcbnVzZXJtb2QgLWFHIGRvY2tlciBzc20tdXNlclxcbnNlcnZpY2UgZG9ja2VyIHN0YXJ0XFxubXljb21tYW5kMVxcbm15Y29tbWFuZDIgYXJnMScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19

@@ -137,3 +137,3 @@ {

},
"version": "0.6.29",
"version": "0.6.30",
"types": "lib/index.d.ts",

@@ -140,0 +140,0 @@ "jest": {

{
"version": "0.6.29"
"version": "0.6.30"
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc