@nikovirtala/projen-constructs 0.1.4 → 0.1.6
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 +223 -203
- package/API.md +52 -28
- package/lib/components/mise.js +4 -2
- package/lib/components/vitest.js +1 -1
- package/lib/config.d.ts +20 -7
- package/lib/config.js +28 -16
- package/lib/errors.d.ts +20 -0
- package/lib/errors.js +36 -0
- package/lib/projects/awscdk-construct-library-options.generated.d.ts +7 -7
- package/lib/projects/awscdk-construct-library-options.generated.js +1 -1
- package/lib/projects/{awscdk-construct-library.d.ts → awscdk-construct-library.generated.d.ts} +8 -0
- package/lib/projects/awscdk-construct-library.generated.js +33 -0
- package/lib/projects/awscdk-typescript-app-options.generated.d.ts +31 -31
- package/lib/projects/awscdk-typescript-app-options.generated.js +1 -1
- package/lib/projects/{awscdk-typescript-app.d.ts → awscdk-typescript-app.generated.d.ts} +8 -0
- package/lib/projects/awscdk-typescript-app.generated.js +33 -0
- package/lib/projects/index.d.ts +4 -4
- package/lib/projects/index.js +5 -5
- package/lib/projects/jsii-options.generated.d.ts +7 -7
- package/lib/projects/jsii-options.generated.js +1 -1
- package/lib/projects/{jsii.d.ts → jsii.generated.d.ts} +8 -0
- package/lib/projects/jsii.generated.js +33 -0
- package/lib/projects/typescript-options.generated.d.ts +7 -7
- package/lib/projects/typescript-options.generated.js +1 -1
- package/lib/projects/{typescript.d.ts → typescript.generated.d.ts} +8 -0
- package/lib/projects/typescript.generated.js +33 -0
- package/lib/projen-project-generator.d.ts +173 -0
- package/lib/projen-project-generator.js +509 -0
- package/package.json +1 -1
- package/lib/projects/awscdk-app-options.generated.d.ts +0 -1098
- package/lib/projects/awscdk-app-options.generated.js +0 -3
- package/lib/projects/awscdk-construct-library.js +0 -19
- package/lib/projects/awscdk-typescript-app.js +0 -19
- package/lib/projects/jsii.js +0 -19
- package/lib/projects/typescript.js +0 -19
package/lib/errors.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidFilePathError = exports.InvalidBaseClassFormatError = exports.InvalidIndentLevelError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Error thrown when attempting to decrease indent level below zero in CodeBuffer
|
|
6
|
+
*/
|
|
7
|
+
class InvalidIndentLevelError extends Error {
|
|
8
|
+
constructor() {
|
|
9
|
+
super("Cannot decrease indent level below zero");
|
|
10
|
+
this.name = "InvalidIndentLevelError";
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.InvalidIndentLevelError = InvalidIndentLevelError;
|
|
14
|
+
/**
|
|
15
|
+
* Error thrown when base class format is invalid
|
|
16
|
+
*/
|
|
17
|
+
class InvalidBaseClassFormatError extends Error {
|
|
18
|
+
constructor(baseClass) {
|
|
19
|
+
super(`Base class must be in format "module.ClassName", got: ${baseClass}`);
|
|
20
|
+
this.baseClass = baseClass;
|
|
21
|
+
this.name = "InvalidBaseClassFormatError";
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.InvalidBaseClassFormatError = InvalidBaseClassFormatError;
|
|
25
|
+
/**
|
|
26
|
+
* Error thrown when file path is invalid or missing directory separator
|
|
27
|
+
*/
|
|
28
|
+
class InvalidFilePathError extends Error {
|
|
29
|
+
constructor(filePath) {
|
|
30
|
+
super(`File path must contain directory separator, got: ${filePath}`);
|
|
31
|
+
this.filePath = filePath;
|
|
32
|
+
this.name = "InvalidFilePathError";
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.InvalidFilePathError = InvalidFilePathError;
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILE1BQWEsdUJBQXdCLFNBQVEsS0FBSztJQUM5QztRQUNJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxJQUFJLEdBQUcseUJBQXlCLENBQUM7SUFDMUMsQ0FBQztDQUNKO0FBTEQsMERBS0M7QUFFRDs7R0FFRztBQUNILE1BQWEsMkJBQTRCLFNBQVEsS0FBSztJQUNsRCxZQUE0QixTQUFpQjtRQUN6QyxLQUFLLENBQUMseURBQXlELFNBQVMsRUFBRSxDQUFDLENBQUM7UUFEcEQsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUV6QyxJQUFJLENBQUMsSUFBSSxHQUFHLDZCQUE2QixDQUFDO0lBQzlDLENBQUM7Q0FDSjtBQUxELGtFQUtDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLEtBQUs7SUFDM0MsWUFBNEIsUUFBZ0I7UUFDeEMsS0FBSyxDQUFDLG9EQUFvRCxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRDlDLGFBQVEsR0FBUixRQUFRLENBQVE7UUFFeEMsSUFBSSxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQztJQUN2QyxDQUFDO0NBQ0o7QUFMRCxvREFLQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXJyb3IgdGhyb3duIHdoZW4gYXR0ZW1wdGluZyB0byBkZWNyZWFzZSBpbmRlbnQgbGV2ZWwgYmVsb3cgemVybyBpbiBDb2RlQnVmZmVyXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkSW5kZW50TGV2ZWxFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoXCJDYW5ub3QgZGVjcmVhc2UgaW5kZW50IGxldmVsIGJlbG93IHplcm9cIik7XG4gICAgICAgIHRoaXMubmFtZSA9IFwiSW52YWxpZEluZGVudExldmVsRXJyb3JcIjtcbiAgICB9XG59XG5cbi8qKlxuICogRXJyb3IgdGhyb3duIHdoZW4gYmFzZSBjbGFzcyBmb3JtYXQgaXMgaW52YWxpZFxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZEJhc2VDbGFzc0Zvcm1hdEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBiYXNlQ2xhc3M6IHN0cmluZykge1xuICAgICAgICBzdXBlcihgQmFzZSBjbGFzcyBtdXN0IGJlIGluIGZvcm1hdCBcIm1vZHVsZS5DbGFzc05hbWVcIiwgZ290OiAke2Jhc2VDbGFzc31gKTtcbiAgICAgICAgdGhpcy5uYW1lID0gXCJJbnZhbGlkQmFzZUNsYXNzRm9ybWF0RXJyb3JcIjtcbiAgICB9XG59XG5cbi8qKlxuICogRXJyb3IgdGhyb3duIHdoZW4gZmlsZSBwYXRoIGlzIGludmFsaWQgb3IgbWlzc2luZyBkaXJlY3Rvcnkgc2VwYXJhdG9yXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkRmlsZVBhdGhFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZmlsZVBhdGg6IHN0cmluZykge1xuICAgICAgICBzdXBlcihgRmlsZSBwYXRoIG11c3QgY29udGFpbiBkaXJlY3Rvcnkgc2VwYXJhdG9yLCBnb3Q6ICR7ZmlsZVBhdGh9YCk7XG4gICAgICAgIHRoaXMubmFtZSA9IFwiSW52YWxpZEZpbGVQYXRoRXJyb3JcIjtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1132,18 +1132,18 @@ export interface AwsCdkConstructLibraryProjectOptions {
|
|
|
1132
1132
|
*/
|
|
1133
1133
|
readonly name: string;
|
|
1134
1134
|
/**
|
|
1135
|
-
*
|
|
1136
|
-
* @default
|
|
1135
|
+
* Enable Mise component
|
|
1136
|
+
* @default true
|
|
1137
1137
|
*/
|
|
1138
|
-
readonly
|
|
1138
|
+
readonly mise?: boolean;
|
|
1139
1139
|
/**
|
|
1140
|
-
* Enable
|
|
1140
|
+
* Enable Vitest component
|
|
1141
1141
|
* @default true
|
|
1142
1142
|
*/
|
|
1143
1143
|
readonly vitest?: boolean;
|
|
1144
1144
|
/**
|
|
1145
|
-
*
|
|
1146
|
-
* @default
|
|
1145
|
+
* Vitest configuration
|
|
1146
|
+
* @default - default Vitest configuration
|
|
1147
1147
|
*/
|
|
1148
|
-
readonly
|
|
1148
|
+
readonly vitestOptions?: VitestOptions;
|
|
1149
1149
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2RrLWNvbnN0cnVjdC1saWJyYXJ5LW9wdGlvbnMuZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plY3RzL2F3c2Nkay1jb25zdHJ1Y3QtbGlicmFyeS1vcHRpb25zLmdlbmVyYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBhd3NjZGssIGNkaywgZ2l0aHViLCBHaXRPcHRpb25zLCBHcm91cFJ1bm5lck9wdGlvbnMsIElnbm9yZUZpbGVPcHRpb25zLCBqYXZhc2NyaXB0LCBMb2dnZXJPcHRpb25zLCBQcm9qZWN0LCBQcm9qZW5yY0pzb25PcHRpb25zLCBSZWxlYXNhYmxlQ29tbWl0cywgcmVsZWFzZSwgUmVub3ZhdGVib3RPcHRpb25zLCBTYW1wbGVSZWFkbWVQcm9wcywgdHlwZXNjcmlwdCB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgdHlwZSB7IFZpdGVzdE9wdGlvbnMgfSBmcm9tICcuLi8nO1xuXG4vKipcbiAqIEF3c0Nka0NvbnN0cnVjdExpYnJhcnlQcm9qZWN0T3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEF3c0Nka0NvbnN0cnVjdExpYnJhcnlQcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDb21tb24gb3B0aW9ucyBmb3IgYWxsIEFXUyBMYW1iZGEgZnVuY3Rpb25zLlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgb3B0aW9uc1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhT3B0aW9ucz86IGF3c2Nkay5MYW1iZGFGdW5jdGlvbkNvbW1vbk9wdGlvbnM7XG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGFkZHMgYW4gYGF3c2Nkay5MYW1iZGFFeHRlbnNpb25gIGZvciBlYWNoIGAubGFtYmRhLWV4dGVuc2lvbi50c2AgZW50cnlwb2ludCBpbiB5b3VyIHNvdXJjZSB0cmVlLiBJZiB0aGlzIGlzIGRpc2FibGVkLCB5b3UgY2FuIG1hbnVhbGx5IGFkZCBhbiBgYXdzY2RrLkF1dG9EaXNjb3ZlcmAgY29tcG9uZW50IHRvIHlvdXIgcHJvamVjdC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhRXh0ZW5zaW9uQXV0b0Rpc2NvdmVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgYWRkcyBhbiBgYXdzX2xhbWJkYS5GdW5jdGlvbmAgZm9yIGVhY2ggYC5sYW1iZGEudHNgIGhhbmRsZXIgaW4geW91ciBzb3VyY2UgdHJlZS4gSWYgdGhpcyBpcyBkaXNhYmxlZCwgeW91IGVpdGhlciBuZWVkIHRvIGV4cGxpY2l0bHkgY2FsbCBgYXdzX2xhbWJkYS5GdW5jdGlvbi5hdXRvRGlzY292ZXIoKWAgb3IgZGVmaW5lIGEgYG5ldyBhd3NfbGFtYmRhLkZ1bmN0aW9uKClgIGZvciBlYWNoIGhhbmRsZXIuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYUF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGRpc2NvdmVycyBhbmQgY3JlYXRlcyBpbnRlZ3JhdGlvbiB0ZXN0cyBmb3IgZWFjaCBgLmludGVnLnRzYCBmaWxlIHVuZGVyIHlvdXIgdGVzdCBkaXJlY3RvcnkuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGludGVncmF0aW9uVGVzdEF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGUgZXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIHRoZSBBV1MgQ0RLIGludGVnLXJ1bm5lci5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbEludGVnUnVubmVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgYWRkcyBhbiBgY2xvdWRmcm9udC5leHBlcmltZW50YWwuRWRnZUZ1bmN0aW9uYCBmb3IgZWFjaCBgLmVkZ2UtbGFtYmRhLnRzYCBoYW5kbGVyIGluIHlvdXIgc291cmNlIHRyZWUuIElmIHRoaXMgaXMgZGlzYWJsZWQsIHlvdSBjYW4gbWFudWFsbHkgYWRkIGFuIGBhd3NjZGsuQXV0b0Rpc2NvdmVyYCBjb21wb25lbnQgdG8geW91ciBwcm9qZWN0LlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBlZGdlTGFtYmRhQXV0b0Rpc2NvdmVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE1pbmltdW0gdmVyc2lvbiBvZiB0aGUgYGNvbnN0cnVjdHNgIGxpYnJhcnkgdG8gZGVwZW5kIG9uLlxuICAgKiBAZGVmYXVsdCAtIGZvciBDREsgMS54IHRoZSBkZWZhdWx0IGlzIFwiMy4yLjI3XCIsIGZvciBDREsgMi54IHRoZSBkZWZhdWx0IGlzXG5cIjEwLjAuNVwiLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0c1ZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBVc2UgcGlubmVkIHZlcnNpb24gaW5zdGVhZCBvZiBjYXJldCB2ZXJzaW9uIGZvciBDREsuXG4gICAqIFlvdSBjYW4gdXNlIHRoaXMgdG8gcHJldmVudCBtaXhlZCB2ZXJzaW9ucyBmb3IgeW91ciBDREsgZGVwZW5kZW5jaWVzIGFuZCB0byBwcmV2ZW50IGF1dG8tdXBkYXRlcy5cbiAgICogSWYgeW91IHVzZSBleHBlcmltZW50YWwgZmVhdHVyZXMgdGhpcyB3aWxsIGxldCB5b3UgZGVmaW5lIHRoZSBtb21lbnQgeW91IGluY2x1ZGUgYnJlYWtpbmcgY2hhbmdlcy5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGNka1ZlcnNpb25QaW5uaW5nPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFZlcnNpb24gcmFuZ2Ugb2YgdGhlIEFXUyBDREsgQ0xJIHRvIGRlcGVuZCBvbi5cbiAgICogQ2FuIGJlIGVpdGhlciBhIHNwZWNpZmljIHZlcnNpb24sIG9yIGFuIE5QTSB2ZXJzaW9uIHJhbmdlLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgbGF0ZXN0IDIueCB2ZXJzaW9uIHdpbGwgYmUgaW5zdGFsbGVkOyB5b3UgY2FuIHVzZSB0aGlzXG4gICAqIG9wdGlvbiB0byByZXN0cmljdCBpdCB0byBhIHNwZWNpZmljIHZlcnNpb24gb3IgdmVyc2lvbiByYW5nZS5cbiAgICogQGRlZmF1bHQgXCJeMlwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBjZGtDbGlWZXJzaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogSW5zdGFsbCB0aGUgYXNzZXJ0aW9ucyBsaWJyYXJ5P1xuICAgKiBPbmx5IG5lZWRlZCBmb3IgQ0RLIDEueC4gSWYgdXNpbmcgQ0RLIDIueCB0aGVuXG4gICAqIGFzc2VydGlvbnMgaXMgYWxyZWFkeSBpbmNsdWRlZCBpbiAnYXdzLWNkay1saWInXG4gICAqIEBkZWZhdWx0IC0gd2lsbCBiZSBpbmNsdWRlZCBieSBkZWZhdWx0IGZvciBBV1MgQ0RLID49IDEuMTExLjAgPCAyLjAuMFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgY2RrQXNzZXJ0aW9ucz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBNaW5pbXVtIHZlcnNpb24gb2YgdGhlIEFXUyBDREsgdG8gZGVwZW5kIG9uLlxuICAgKiBAZGVmYXVsdCBcIjIuMS4wXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGNka1ZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIExpYnJhcmllcyB3aWxsIGJlIHBpY2tlZCB1cCBieSB0aGUgY29uc3RydWN0IGNhdGFsb2cgd2hlbiB0aGV5IGFyZSBwdWJsaXNoZWQgdG8gbnBtIGFzIGpzaWkgbW9kdWxlcyBhbmQgd2lsbCBiZSBwdWJsaXNoZWQgdW5kZXI6LlxuICAgKiBodHRwczovL2F3c2Nkay5pby9wYWNrYWdlcy9bQFNDT1BFL11QQUNLQUdFQFZFUlNJT05cbiAgICpcbiAgICogVGhlIGNhdGFsb2cgd2lsbCBhbHNvIHBvc3QgYSB0d2VldCB0byBodHRwczovL3R3aXR0ZXIuY29tL2F3c2Nka2lvIHdpdGggdGhlXG4gICAqIHBhY2thZ2UgbmFtZSwgZGVzY3JpcHRpb24gYW5kIHRoZSBhYm92ZSBsaW5rLiBZb3UgY2FuIGRpc2FibGUgdGhlc2UgdHdlZXRzXG4gICAqIHRocm91Z2ggYHsgYW5ub3VuY2U6IGZhbHNlIH1gLlxuICAgKlxuICAgKiBZb3UgY2FuIGFsc28gYWRkIGEgVHdpdHRlciBoYW5kbGUgdGhyb3VnaCBgeyB0d2l0dGVyOiAneHgnIH1gIHdoaWNoIHdpbGwgYmVcbiAgICogbWVudGlvbmVkIGluIHRoZSB0d2VldC5cbiAgICogQGRlZmF1bHQgLSBuZXcgdmVyc2lvbiB3aWxsIGJlIGFubm91bmNlZFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgY2F0YWxvZz86IGNkay5DYXRhbG9nO1xuICAvKipcbiAgICogQGRlZmF1bHQgXCIuXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJvb3RkaXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQdWJsaXNoIHRvIHB5cGkuXG4gICAqIEBkZWZhdWx0IC0gbm8gcHVibGlzaGluZ1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaFRvUHlwaT86IGNkay5Kc2lpUHl0aG9uVGFyZ2V0O1xuICAvKipcbiAgICogUHVibGlzaCB0byBOdUdldC5cbiAgICogQGRlZmF1bHQgLSBubyBwdWJsaXNoaW5nXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoVG9OdWdldD86IGNkay5Kc2lpRG90TmV0VGFyZ2V0O1xuICAvKipcbiAgICogUHVibGlzaCB0byBtYXZlbi5cbiAgICogQGRlZmF1bHQgLSBubyBwdWJsaXNoaW5nXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoVG9NYXZlbj86IGNkay5Kc2lpSmF2YVRhcmdldDtcbiAgLyoqXG4gICAqIFB1Ymxpc2ggR28gYmluZGluZ3MgdG8gYSBnaXQgcmVwb3NpdG9yeS5cbiAgICogQGRlZmF1bHQgLSBubyBwdWJsaXNoaW5nXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoVG9Hbz86IGNkay5Kc2lpR29UYXJnZXQ7XG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIHRoZSBqc2lpIGNvbXBpbGVyIHRvIHVzZS5cbiAgICogU2V0IHRvIFwiKlwiIGlmIHlvdSB3YW50IHRvIG1hbnVhbGx5IG1hbmFnZSB0aGUgdmVyc2lvbiBvZiBqc2lpIGluIHlvdXJcbiAgICogcHJvamVjdCBieSBtYW5hZ2luZyB1cGRhdGVzIHRvIGBwYWNrYWdlLmpzb25gIG9uIHlvdXIgb3duLlxuICAgKlxuICAgKiBOT1RFOiBUaGUganNpaSBjb21waWxlciByZWxlYXNlcyBzaW5jZSA1LjAuMCBhcmUgbm90IHNlbWFudGljYWxseSB2ZXJzaW9uZWRcbiAgICogYW5kIHNob3VsZCByZW1haW4gb24gdGhlIHNhbWUgbWlub3IsIHNvIHdlIHJlY29tbWVuZCB1c2luZyBhIGB+YCBkZXBlbmRlbmN5XG4gICAqIChlLmcuIGB+NS4wLjBgKS5cbiAgICogQGRlZmF1bHQgXCJ+NS44LjBcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKiBAcGpuZXcgXCJ+NS45LjBcIlxuICAgKi9cbiAgcmVhZG9ubHkganNpaVZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBY2NlcHRzIGEgbGlzdCBvZiBnbG9iIHBhdHRlcm5zLlxuICAgKiBGaWxlcyBtYXRjaGluZyBhbnkgb2YgdGhvc2UgcGF0dGVybnMgd2lsbCBiZSBleGNsdWRlZCBmcm9tIHRoZSBUeXBlU2NyaXB0IGNvbXBpbGVyIGlucHV0LlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBqc2lpIHdpbGwgaW5jbHVkZSBhbGwgKi50cyBmaWxlcyAoZXhjZXB0IC5kLnRzIGZpbGVzKSBpbiB0aGUgVHlwZVNjcmlwdCBjb21waWxlciBpbnB1dC5cbiAgICogVGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMgZm9yIGV4YW1wbGUgd2hlbiB0aGUgcGFja2FnZSdzIGJ1aWxkIG9yIHRlc3QgcHJvY2VkdXJlIGdlbmVyYXRlcyAudHMgZmlsZXNcbiAgICogdGhhdCBjYW5ub3QgYmUgY29tcGlsZWQgd2l0aCBqc2lpJ3MgY29tcGlsZXIgc2V0dGluZ3MuXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBleGNsdWRlVHlwZXNjcmlwdD86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBGaWxlIHBhdGggZm9yIGdlbmVyYXRlZCBkb2NzLlxuICAgKiBAZGVmYXVsdCBcIkFQSS5tZFwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBkb2NnZW5GaWxlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIEVtaXQgYSBjb21wcmVzc2VkIHZlcnNpb24gb2YgdGhlIGFzc2VtYmx5LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgY29tcHJlc3NBc3NlbWJseT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBpZ25vcmUgZmlsZSBmb3IgQVBJIGNvbXBhdGliaWxpdHkgdGVzdHMuXG4gICAqIEBkZWZhdWx0IFwiLmNvbXBhdGlnbm9yZVwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBjb21wYXRJZ25vcmU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IHJ1biBBUEkgY29tcGF0aWJpbGl0eSB0ZXN0IGFnYWluc3QgdGhlIGxhdGVzdCB2ZXJzaW9uIHB1Ymxpc2hlZCB0byBucG0gYWZ0ZXIgY29tcGlsYXRpb24uXG4gICAqIC0gWW91IGNhbiBtYW51YWxseSBydW4gY29tcGF0aWJpbGl0eSB0ZXN0cyB1c2luZyBgeWFybiBjb21wYXRgIGlmIHRoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZC5cbiAgICogLSBZb3UgY2FuIGlnbm9yZSBjb21wYXRpYmlsaXR5IGZhaWx1cmVzIGJ5IGFkZGluZyBsaW5lcyB0byBhIFwiLmNvbXBhdGlnbm9yZVwiIGZpbGUuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBjb21wYXQ/OiBib29sZWFuO1xuICAvKipcbiAgICogR2l0IHJlcG9zaXRvcnkgVVJMLlxuICAgKiBAZGVmYXVsdCAkR0lUX1JFTU9URVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeVVybDogc3RyaW5nO1xuICAvKipcbiAgICogRW1haWwgb3IgVVJMIG9mIHRoZSBsaWJyYXJ5IGF1dGhvci5cbiAgICogQGRlZmF1bHQgJEdJVF9VU0VSX0VNQUlMXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBhdXRob3JBZGRyZXNzOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgbGlicmFyeSBhdXRob3IuXG4gICAqIEBkZWZhdWx0ICRHSVRfVVNFUl9OQU1FXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBhdXRob3I6IHN0cmluZztcbiAgLyoqXG4gICAqIFR5cGVTY3JpcHQgdmVyc2lvbiB0byB1c2UuXG4gICAqIE5PVEU6IFR5cGVzY3JpcHQgaXMgbm90IHNlbWFudGljYWxseSB2ZXJzaW9uZWQgYW5kIHNob3VsZCByZW1haW4gb24gdGhlXG4gICAqIHNhbWUgbWlub3IsIHNvIHdlIHJlY29tbWVuZCB1c2luZyBhIGB+YCBkZXBlbmRlbmN5IChlLmcuIGB+MS4yLjNgKS5cbiAgICogQGRlZmF1bHQgXCJsYXRlc3RcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXNjcmlwdFZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZGV2ZWxvcG1lbnQgdHNjb25maWcuanNvbiBmaWxlLlxuICAgKiBAZGVmYXVsdCBcInRzY29uZmlnLmRldi5qc29uXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHRzY29uZmlnRGV2RmlsZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEN1c3RvbSB0c2NvbmZpZyBvcHRpb25zIGZvciB0aGUgZGV2ZWxvcG1lbnQgdHNjb25maWcuanNvbiBmaWxlICh1c2VkIGZvciB0ZXN0aW5nKS5cbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIHByb2R1Y3Rpb24gdHNjb25maWcgb3B0aW9uc1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgdHNjb25maWdEZXY/OiBqYXZhc2NyaXB0LlR5cGVzY3JpcHRDb25maWdPcHRpb25zO1xuICAvKipcbiAgICogQ3VzdG9tIFRTQ29uZmlnLlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgb3B0aW9uc1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgdHNjb25maWc/OiBqYXZhc2NyaXB0LlR5cGVzY3JpcHRDb25maWdPcHRpb25zO1xuICAvKipcbiAgICogSmVzdCB0ZXN0cyBkaXJlY3RvcnkuIFRlc3RzIGZpbGVzIHNob3VsZCBiZSBuYW1lZCBgeHh4LnRlc3QudHNgLlxuICAgKiBJZiB0aGlzIGRpcmVjdG9yeSBpcyB1bmRlciBgc3JjZGlyYCAoZS5nLiBgc3JjL3Rlc3RgLCBgc3JjL19fdGVzdHNfX2ApLFxuICAgKiB0aGVuIHRlc3RzIGFyZSBnb2luZyB0byBiZSBjb21waWxlZCBpbnRvIGBsaWIvYCBhbmQgZXhlY3V0ZWQgYXMgamF2YXNjcmlwdC5cbiAgICogSWYgdGhlIHRlc3QgZGlyZWN0b3J5IGlzIG91dHNpZGUgb2YgYHNyY2AsIHRoZW4gd2UgY29uZmlndXJlIGplc3QgdG9cbiAgICogY29tcGlsZSB0aGUgY29kZSBpbi1tZW1vcnkuXG4gICAqIEBkZWZhdWx0IFwidGVzdFwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSB0ZXN0ZGlyPzogc3RyaW5nO1xuICAvKipcbiAgICogVHlwZXNjcmlwdCBzb3VyY2VzIGRpcmVjdG9yeS5cbiAgICogQGRlZmF1bHQgXCJzcmNcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgc3JjZGlyPzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9ucyBmb3IgLnByb2plbnJjLnRzLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVucmNUc09wdGlvbnM/OiB0eXBlc2NyaXB0LlByb2plbnJjT3B0aW9ucztcbiAgLyoqXG4gICAqIFVzZSBUeXBlU2NyaXB0IGZvciB5b3VyIHByb2plbnJjIGZpbGUgKGAucHJvamVucmMudHNgKS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICogQHBqbmV3IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbnJjVHM/OiBib29sZWFuO1xuICAvKipcbiAgICogVHlwZXNjcmlwdCAgYXJ0aWZhY3RzIG91dHB1dCBkaXJlY3RvcnkuXG4gICAqIEBkZWZhdWx0IFwibGliXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGxpYmRpcj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSAuZC50cyBmaWxlIHRoYXQgaW5jbHVkZXMgdGhlIHR5cGUgZGVjbGFyYXRpb25zIGZvciB0aGlzIG1vZHVsZS5cbiAgICogQGRlZmF1bHQgLSAuZC50cyBmaWxlIGRlcml2ZWQgZnJvbSB0aGUgcHJvamVjdCdzIGVudHJ5cG9pbnQgKHVzdWFsbHkgbGliL2luZGV4LmQudHMpXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBlbnRyeXBvaW50VHlwZXM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2NzIGRpcmVjdG9yeS5cbiAgICogQGRlZmF1bHQgXCJkb2NzXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGRvY3NEaXJlY3Rvcnk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2NnZW4gYnkgVHlwZWRvYy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGRvY2dlbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEbyBub3QgZ2VuZXJhdGUgYSBgdHNjb25maWcuZGV2Lmpzb25gIGZpbGUuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlVHNjb25maWdEZXY/OiBib29sZWFuO1xuICAvKipcbiAgICogRG8gbm90IGdlbmVyYXRlIGEgYHRzY29uZmlnLmpzb25gIGZpbGUgKHVzZWQgYnkganNpaSBwcm9qZWN0cyBzaW5jZSB0c2NvbmZpZy5qc29uIGlzIGdlbmVyYXRlZCBieSB0aGUganNpaSBjb21waWxlcikuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlVHNjb25maWc/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5hYmxlIE5vZGUuanMgcGFja2FnZSBjYWNoZSBpbiBHaXRIdWIgd29ya2Zsb3dzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dQYWNrYWdlQ2FjaGU/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIG5vZGUgdmVyc2lvbiB1c2VkIGluIEdpdEh1YiBBY3Rpb25zIHdvcmtmbG93cy5cbiAgICogQWx3YXlzIHVzZSB0aGlzIG9wdGlvbiBpZiB5b3VyIEdpdEh1YiBBY3Rpb25zIHdvcmtmbG93cyByZXF1aXJlIGEgc3BlY2lmaWMgdG8gcnVuLlxuICAgKiBAZGVmYXVsdCAtIGBtaW5Ob2RlVmVyc2lvbmAgaWYgc2V0LCBvdGhlcndpc2UgYGx0cy8qYC5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93Tm9kZVZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZ2l0IGlkZW50aXR5IHRvIHVzZSBpbiB3b3JrZmxvd3MuXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBHaXRIdWIgQWN0aW9ucyB1c2VyXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd0dpdElkZW50aXR5PzogZ2l0aHViLkdpdElkZW50aXR5O1xuICAvKipcbiAgICogV29ya2Zsb3cgc3RlcHMgdG8gdXNlIGluIG9yZGVyIHRvIGJvb3RzdHJhcCB0aGlzIHJlcG8uXG4gICAqIEBkZWZhdWx0IFwieWFybiBpbnN0YWxsIC0tZnJvemVuLWxvY2tmaWxlICYmIHlhcm4gcHJvamVuXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93Qm9vdHN0cmFwU3RlcHM/OiBBcnJheTxnaXRodWIud29ya2Zsb3dzLkpvYlN0ZXA+O1xuICAvKipcbiAgICogQXV0b21hdGljYWxseSByZWxlYXNlIHRvIG5wbSB3aGVuIG5ldyB2ZXJzaW9ucyBhcmUgaW50cm9kdWNlZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2VUb05wbT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBZGQgcmVsZWFzZSBtYW5hZ2VtZW50IHRvIHRoaXMgcHJvamVjdC5cbiAgICogQGRlZmF1bHQgLSB0cnVlIChmYWxzZSBmb3Igc3VicHJvamVjdHMpXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSByZWxlYXNlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBjb250ZW50cyBvZiB0aGUgcHVsbCByZXF1ZXN0IHRlbXBsYXRlLlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgY29udGVudFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHVsbFJlcXVlc3RUZW1wbGF0ZUNvbnRlbnRzPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIEluY2x1ZGUgYSBHaXRIdWIgcHVsbCByZXF1ZXN0IHRlbXBsYXRlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwdWxsUmVxdWVzdFRlbXBsYXRlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgcHJvamVuIHRvIGluc3RhbGwuXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdHMgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVuVmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIC5wcm9qZW5yYy5qcy5cbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IG9wdGlvbnNcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbnJjSnNPcHRpb25zPzogamF2YXNjcmlwdC5Qcm9qZW5yY09wdGlvbnM7XG4gIC8qKlxuICAgKiBHZW5lcmF0ZSAob25jZSkgLnByb2plbnJjLmpzIChpbiBKYXZhU2NyaXB0KS4gU2V0IHRvIGBmYWxzZWAgaW4gb3JkZXIgdG8gZGlzYWJsZSAucHJvamVucmMuanMgZ2VuZXJhdGlvbi5cbiAgICogQGRlZmF1bHQgLSB0cnVlIGlmIHByb2plbnJjSnNvbiBpcyBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVucmNKcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgb2YgXCJwcm9qZW5cIiBzaG91bGQgYmUgaW5zdGFsbGVkIGFzIGEgZGV2RGVwZW5kZW5jeS5cbiAgICogQGRlZmF1bHQgLSB0cnVlIGlmIG5vdCBhIHN1YnByb2plY3RcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbkRldkRlcGVuZGVuY3k/OiBib29sZWFuO1xuICAvKipcbiAgICogRGVmaW5lcyBhIGBwYWNrYWdlYCB0YXNrIHRoYXQgd2lsbCBwcm9kdWNlIGFuIG5wbSB0YXJiYWxsIHVuZGVyIHRoZSBhcnRpZmFjdHMgZGlyZWN0b3J5IChlLmcuIGBkaXN0YCkuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2U/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciAubnBtaWdub3JlIGZpbGUuXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBucG1JZ25vcmVPcHRpb25zPzogSWdub3JlRmlsZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBEZWZpbmVzIGFuIC5ucG1pZ25vcmUgZmlsZS4gTm9ybWFsbHkgdGhpcyBpcyBvbmx5IG5lZWRlZCBmb3IgbGlicmFyaWVzIHRoYXQgYXJlIHBhY2thZ2VkIGFzIHRhcmJhbGxzLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBucG1pZ25vcmVFbmFibGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZW50cmllcyB0byAuZ2l0aWdub3JlLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aWdub3JlPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIGBVcGdyYWRlRGVwZW5kZW5jaWVzYC5cbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IG9wdGlvbnNcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGRlcHNVcGdyYWRlT3B0aW9ucz86IGphdmFzY3JpcHQuVXBncmFkZURlcGVuZGVuY2llc09wdGlvbnM7XG4gIC8qKlxuICAgKiBVc2UgdGFza3MgYW5kIGdpdGh1YiB3b3JrZmxvd3MgdG8gaGFuZGxlIGRlcGVuZGVuY3kgdXBncmFkZXMuXG4gICAqIENhbm5vdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYGRlcGVuZGFib3RgLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBkZXBzVXBncmFkZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBkZXBlbmRhYm90LlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgb3B0aW9uc1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZGVwZW5kYWJvdE9wdGlvbnM/OiBnaXRodWIuRGVwZW5kYWJvdE9wdGlvbnM7XG4gIC8qKlxuICAgKiBVc2UgZGVwZW5kYWJvdCB0byBoYW5kbGUgZGVwZW5kZW5jeSB1cGdyYWRlcy5cbiAgICogQ2Fubm90IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBgZGVwc1VwZ3JhZGVgLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZGVwZW5kYWJvdD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgY29weXJpZ2h0IHllYXJzIHRvIHB1dCBpbiB0aGUgTElDRU5TRSBmaWxlLlxuICAgKiBAZGVmYXVsdCAtIGN1cnJlbnQgeWVhclxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgY29weXJpZ2h0UGVyaW9kPzogc3RyaW5nO1xuICAvKipcbiAgICogTGljZW5zZSBjb3B5cmlnaHQgb3duZXIuXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdHMgdG8gdGhlIHZhbHVlIG9mIGF1dGhvck5hbWUgb3IgXCJcIiBpZiBgYXV0aG9yTmFtZWAgaXMgdW5kZWZpbmVkLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgY29weXJpZ2h0T3duZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIHNlY3JldCBuYW1lIGZvciBhIHNwZWNpZmllZCBodHRwczovL2NvZGVjb3YuaW8vIHRva2VuLlxuICAgKiBAZGVmYXVsdCAtIE9JREMgYXV0aCBpcyB1c2VkXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBjb2RlQ292VG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEZWZpbmUgYSBHaXRIdWIgd29ya2Zsb3cgc3RlcCBmb3Igc2VuZGluZyBjb2RlIGNvdmVyYWdlIG1ldHJpY3MgdG8gaHR0cHM6Ly9jb2RlY292LmlvLyBVc2VzIGNvZGVjb3YvY29kZWNvdi1hY3Rpb25AdjUgQnkgZGVmYXVsdCwgT0lEQyBhdXRoIGlzIHVzZWQuIEFsdGVybmF0aXZlbHkgYSB0b2tlbiBjYW4gYmUgcHJvdmlkZWQgdmlhIGBjb2RlQ292VG9rZW5TZWNyZXRgLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgY29kZUNvdj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb25maWd1cmUgd2hpY2ggbGljZW5zZXMgc2hvdWxkIGJlIGRlZW1lZCBhY2NlcHRhYmxlIGZvciB1c2UgYnkgZGVwZW5kZW5jaWVzLlxuICAgKiBUaGlzIHNldHRpbmcgd2lsbCBjYXVzZSB0aGUgYnVpbGQgdG8gZmFpbCwgaWYgYW55IHByb2hpYml0ZWQgb3Igbm90IGFsbG93ZWQgbGljZW5zZXMgYXJlcyBlbmNvdW50ZXJlZC5cbiAgICogQGRlZmF1bHQgLSBubyBsaWNlbnNlIGNoZWNrcyBhcmUgcnVuIGR1cmluZyB0aGUgYnVpbGQgYW5kIGFsbCBsaWNlbnNlcyB3aWxsIGJlIGFjY2VwdGVkXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBjaGVja0xpY2Vuc2VzPzogamF2YXNjcmlwdC5MaWNlbnNlQ2hlY2tlck9wdGlvbnM7XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBgQnVuZGxlcmAuXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBidW5kbGVyT3B0aW9ucz86IGphdmFzY3JpcHQuQnVuZGxlck9wdGlvbnM7XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBQUiBidWlsZCB3b3JrZmxvdy5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkV29ya2Zsb3dPcHRpb25zPzogamF2YXNjcmlwdC5CdWlsZFdvcmtmbG93T3B0aW9ucztcbiAgLyoqXG4gICAqIERlZmluZSBhIEdpdEh1YiB3b3JrZmxvdyBmb3IgYnVpbGRpbmcgUFJzLlxuICAgKiBAZGVmYXVsdCAtIHRydWUgaWYgbm90IGEgc3VicHJvamVjdFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRXb3JrZmxvdz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCaW9tZSBvcHRpb25zLlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgb3B0aW9uc1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYmlvbWVPcHRpb25zPzogamF2YXNjcmlwdC5CaW9tZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBTZXR1cCBCaW9tZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGJpb21lPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgYXBwcm92ZSBkZXBzIHVwZ3JhZGUgUFJzLCBhbGxvd2luZyB0aGVtIHRvIGJlIG1lcmdlZCBieSBtZXJnaWZ5IChpZiBjb25maWd1ZWQpLlxuICAgKiBUaHJvdyBpZiBzZXQgdG8gdHJ1ZSBidXQgYGF1dG9BcHByb3ZlT3B0aW9uc2AgYXJlIG5vdCBkZWZpbmVkLlxuICAgKiBAZGVmYXVsdCAtIHRydWVcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGF1dG9BcHByb3ZlVXBncmFkZXM/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VjdXJpdHkgYXVkaXQgb3B0aW9ucy5cbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IG9wdGlvbnNcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGF1ZGl0RGVwc09wdGlvbnM/OiBqYXZhc2NyaXB0LkF1ZGl0T3B0aW9ucztcbiAgLyoqXG4gICAqIFJ1biBzZWN1cml0eSBhdWRpdCBvbiBkZXBlbmRlbmNpZXMuXG4gICAqIFdoZW4gZW5hYmxlZCwgY3JlYXRlcyBhbiBcImF1ZGl0XCIgdGFzayB0aGF0IGNoZWNrcyBmb3Iga25vd24gc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzXG4gICAqIGluIGRlcGVuZGVuY2llcy4gQnkgZGVmYXVsdCwgcnVucyBkdXJpbmcgZXZlcnkgYnVpbGQgYW5kIGNoZWNrcyBmb3IgXCJoaWdoXCIgc2V2ZXJpdHlcbiAgICogdnVsbmVyYWJpbGl0aWVzIG9yIGFib3ZlIGluIGFsbCBkZXBlbmRlbmNpZXMgKGluY2x1ZGluZyBkZXYgZGVwZW5kZW5jaWVzKS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGF1ZGl0RGVwcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBIGRpcmVjdG9yeSB3aGljaCB3aWxsIGNvbnRhaW4gYnVpbGQgYXJ0aWZhY3RzLlxuICAgKiBAZGVmYXVsdCBcImRpc3RcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYXJ0aWZhY3RzRGlyZWN0b3J5Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG1haW4gcmVsZWFzZSBicmFuY2guXG4gICAqIEBkZWZhdWx0IFwibWFpblwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0UmVsZWFzZUJyYW5jaDogc3RyaW5nO1xuICAvKipcbiAgICogR2l0aHViIFJ1bm5lciBHcm91cCBzZWxlY3Rpb24gb3B0aW9ucy5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICogQGRlc2NyaXB0aW9uIERlZmluZXMgYSB0YXJnZXQgUnVubmVyIEdyb3VwIGJ5IG5hbWUgYW5kL29yIGxhYmVsc1xuICAgKiBAdGhyb3dzIHtFcnJvcn0gaWYgYm90aCBgcnVuc09uYCBhbmQgYHJ1bnNPbkdyb3VwYCBhcmUgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd1J1bnNPbkdyb3VwPzogR3JvdXBSdW5uZXJPcHRpb25zO1xuICAvKipcbiAgICogR2l0aHViIFJ1bm5lciBzZWxlY3Rpb24gbGFiZWxzLlxuICAgKiBAZGVmYXVsdCBbXCJ1YnVudHUtbGF0ZXN0XCJdXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIGEgdGFyZ2V0IFJ1bm5lciBieSBsYWJlbHNcbiAgICogQHRocm93cyB7RXJyb3J9IGlmIGJvdGggYHJ1bnNPbmAgYW5kIGBydW5zT25Hcm91cGAgYXJlIHNwZWNpZmllZFxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dSdW5zT24/OiBBcnJheTxzdHJpbmc+O1xuICAvKipcbiAgICogQ29udGFpbmVyIGltYWdlIHRvIHVzZSBmb3IgR2l0SHViIHdvcmtmbG93cy5cbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IGltYWdlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd0NvbnRhaW5lckltYWdlPzogc3RyaW5nO1xuICAvKipcbiAgICogQ3VzdG9tIGNvbmZpZ3VyYXRpb24gdXNlZCB3aGVuIGNyZWF0aW5nIGNoYW5nZWxvZyB3aXRoIGNvbW1pdC1hbmQtdGFnLXZlcnNpb24gcGFja2FnZS5cbiAgICogR2l2ZW4gdmFsdWVzIGVpdGhlciBhcHBlbmQgdG8gZGVmYXVsdCBjb25maWd1cmF0aW9uIG9yIG92ZXJ3cml0ZSB2YWx1ZXMgaW4gaXQuXG4gICAqIEBkZWZhdWx0IC0gc3RhbmRhcmQgY29uZmlndXJhdGlvbiBhcHBsaWNhYmxlIGZvciBHaXRIdWIgcmVwb3NpdG9yaWVzXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9ucmNPcHRpb25zPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqXG4gICAqIEEgc2V0IG9mIHdvcmtmbG93IHN0ZXBzIHRvIGV4ZWN1dGUgaW4gb3JkZXIgdG8gc2V0dXAgdGhlIHdvcmtmbG93IGNvbnRhaW5lci5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2VXb3JrZmxvd1NldHVwU3RlcHM/OiBBcnJheTxnaXRodWIud29ya2Zsb3dzLkpvYlN0ZXA+O1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGRlZmF1bHQgcmVsZWFzZSB3b3JrZmxvdy5cbiAgICogQGRlZmF1bHQgXCJyZWxlYXNlXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2VXb3JrZmxvd05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBCdWlsZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZm9yIHJlbGVhc2Ugd29ya2Zsb3dzLlxuICAgKiBAZGVmYXVsdCB7fVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZVdvcmtmbG93RW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqXG4gICAqIFRoZSByZWxlYXNlIHRyaWdnZXIgdG8gdXNlLlxuICAgKiBAZGVmYXVsdCAtIENvbnRpbnVvdXMgcmVsZWFzZXMgKGBSZWxlYXNlVHJpZ2dlci5jb250aW51b3VzKClgKVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZVRyaWdnZXI/OiByZWxlYXNlLlJlbGVhc2VUcmlnZ2VyO1xuICAvKipcbiAgICogQXV0b21hdGljYWxseSBhZGQgdGhlIGdpdmVuIHByZWZpeCB0byByZWxlYXNlIHRhZ3MuIFVzZWZ1bCBpZiB5b3UgYXJlIHJlbGVhc2luZyBvbiBtdWx0aXBsZSBicmFuY2hlcyB3aXRoIG92ZXJsYXBwaW5nIHZlcnNpb24gbnVtYmVycy5cbiAgICogTm90ZTogdGhpcyBwcmVmaXggaXMgdXNlZCB0byBkZXRlY3QgdGhlIGxhdGVzdCB0YWdnZWQgdmVyc2lvblxuICAgKiB3aGVuIGJ1bXBpbmcsIHNvIGlmIHlvdSBjaGFuZ2UgdGhpcyBvbiBhIHByb2plY3Qgd2l0aCBhbiBleGlzdGluZyB2ZXJzaW9uXG4gICAqIGhpc3RvcnksIHlvdSBtYXkgbmVlZCB0byBtYW51YWxseSB0YWcgeW91ciBsYXRlc3QgcmVsZWFzZVxuICAgKiB3aXRoIHRoZSBuZXcgcHJlZml4LlxuICAgKiBAZGVmYXVsdCBcInZcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZVRhZ1ByZWZpeD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBsYWJlbCB0byBhcHBseSB0byBpc3N1ZXMgaW5kaWNhdGluZyBwdWJsaXNoIGZhaWx1cmVzLlxuICAgKiBPbmx5IGFwcGxpZXMgaWYgYHJlbGVhc2VGYWlsdXJlSXNzdWVgIGlzIHRydWUuXG4gICAqIEBkZWZhdWx0IFwiZmFpbGVkLXJlbGVhc2VcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZUZhaWx1cmVJc3N1ZUxhYmVsPzogc3RyaW5nO1xuICAvKipcbiAgICogQ3JlYXRlIGEgZ2l0aHViIGlzc3VlIG9uIGV2ZXJ5IGZhaWxlZCBwdWJsaXNoaW5nIHRhc2suXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSByZWxlYXNlRmFpbHVyZUlzc3VlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBHaXRIdWIgQWN0aW9ucyBlbnZpcm9ubWVudCB1c2VkIGZvciB0aGUgcmVsZWFzZS5cbiAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBhZGQgYW4gZXhwbGljaXQgYXBwcm92YWwgc3RlcCB0byB0aGUgcmVsZWFzZVxuICAgKiBvciBsaW1pdCB3aG8gY2FuIGluaXRpYXRlIGEgcmVsZWFzZSB0aHJvdWdoIGVudmlyb25tZW50IHByb3RlY3Rpb24gcnVsZXMuXG4gICAqXG4gICAqIFdoZW4gbXVsdGlwbGUgYXJ0aWZhY3RzIGFyZSByZWxlYXNlZCwgdGhlIGVudmlyb25tZW50IGNhbiBiZSBvdmVyd3JpdHRlblxuICAgKiBvbiBhIHBlciBhcnRpZmFjdCBiYXNpcy5cbiAgICogQGRlZmF1bHQgLSBubyBlbnZpcm9ubWVudCB1c2VkLCB1bmxlc3Mgc2V0IGF0IHRoZSBhcnRpZmFjdCBsZXZlbFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZUVudmlyb25tZW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogRGVmaW5lcyBhZGRpdGlvbmFsIHJlbGVhc2UgYnJhbmNoZXMuXG4gICAqIEEgd29ya2Zsb3cgd2lsbCBiZSBjcmVhdGVkIGZvciBlYWNoXG4gICAqIHJlbGVhc2UgYnJhbmNoIHdoaWNoIHdpbGwgcHVibGlzaCByZWxlYXNlcyBmcm9tIGNvbW1pdHMgaW4gdGhpcyBicmFuY2guXG4gICAqIEVhY2ggcmVsZWFzZSBicmFuY2ggX211c3RfIGJlIGFzc2lnbmVkIGEgbWFqb3IgdmVyc2lvbiBudW1iZXIgd2hpY2ggaXMgdXNlZFxuICAgKiB0byBlbmZvcmNlIHRoYXQgdmVyc2lvbnMgcHVibGlzaGVkIGZyb20gdGhhdCBicmFuY2ggYWx3YXlzIHVzZSB0aGF0IG1ham9yXG4gICAqIHZlcnNpb24uIElmIG11bHRpcGxlIGJyYW5jaGVzIGFyZSB1c2VkLCB0aGUgYG1ham9yVmVyc2lvbmAgZmllbGQgbXVzdCBhbHNvXG4gICAqIGJlIHByb3ZpZGVkIGZvciB0aGUgZGVmYXVsdCBicmFuY2guXG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBicmFuY2hlcyBhcmUgdXNlZCBmb3IgcmVsZWFzZS4geW91IGNhbiB1c2VcbmBhZGRCcmFuY2goKWAgdG8gYWRkIGFkZGl0aW9uYWwgYnJhbmNoZXMuXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSByZWxlYXNlQnJhbmNoZXM/OiBSZWNvcmQ8c3RyaW5nLCByZWxlYXNlLkJyYW5jaE9wdGlvbnM+O1xuICAvKipcbiAgICogRmluZCBjb21taXRzIHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcmVsZWFzYWJsZSBVc2VkIHRvIGRlY2lkZSBpZiBhIHJlbGVhc2UgaXMgcmVxdWlyZWQuXG4gICAqIEBkZWZhdWx0IFJlbGVhc2FibGVDb21taXRzLmV2ZXJ5Q29tbWl0KClcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2FibGVDb21taXRzPzogUmVsZWFzYWJsZUNvbW1pdHM7XG4gIC8qKlxuICAgKiBEZWZpbmUgcHVibGlzaGluZyB0YXNrcyB0aGF0IGNhbiBiZSBleGVjdXRlZCBtYW51YWxseSBhcyB3ZWxsIGFzIHdvcmtmbG93cy5cbiAgICogTm9ybWFsbHksIHB1Ymxpc2hpbmcgb25seSBoYXBwZW5zIHdpdGhpbiBhdXRvbWF0ZWQgd29ya2Zsb3dzLiBFbmFibGUgdGhpc1xuICAgKiBpbiBvcmRlciB0byBjcmVhdGUgYSBwdWJsaXNoaW5nIHRhc2sgZm9yIGVhY2ggcHVibGlzaGluZyBhY3Rpdml0eS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hUYXNrcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbnN0ZWFkIG9mIGFjdHVhbGx5IHB1Ymxpc2hpbmcgdG8gcGFja2FnZSBtYW5hZ2VycywganVzdCBwcmludCB0aGUgcHVibGlzaGluZyBjb21tYW5kLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaERyeVJ1bj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCdW1wIHZlcnNpb25zIGZyb20gdGhlIGRlZmF1bHQgYnJhbmNoIGFzIHByZS1yZWxlYXNlcyAoZS5nLiBcImJldGFcIiwgXCJhbHBoYVwiLCBcInByZVwiKS5cbiAgICogQGRlZmF1bHQgLSBub3JtYWwgc2VtYW50aWMgdmVyc2lvbnNcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByZXJlbGVhc2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTdGVwcyB0byBleGVjdXRlIGFmdGVyIGJ1aWxkIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2Ugd29ya2Zsb3cuXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwb3N0QnVpbGRTdGVwcz86IEFycmF5PGdpdGh1Yi53b3JrZmxvd3MuSm9iU3RlcD47XG4gIC8qKlxuICAgKiBUaGUgbnBtRGlzdFRhZyB0byB1c2Ugd2hlbiBwdWJsaXNoaW5nIGZyb20gdGhlIGRlZmF1bHQgYnJhbmNoLlxuICAgKiBUbyBzZXQgdGhlIG5wbSBkaXN0LXRhZyBmb3IgcmVsZWFzZSBicmFuY2hlcywgc2V0IHRoZSBgbnBtRGlzdFRhZ2AgcHJvcGVydHlcbiAgICogZm9yIGVhY2ggYnJhbmNoLlxuICAgKiBAZGVmYXVsdCBcImxhdGVzdFwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBucG1EaXN0VGFnPzogc3RyaW5nO1xuICAvKipcbiAgICogQSBzaGVsbCBjb21tYW5kIHRvIGNvbnRyb2wgdGhlIG5leHQgdmVyc2lvbiB0byByZWxlYXNlLlxuICAgKiBJZiBwcmVzZW50LCB0aGlzIHNoZWxsIGNvbW1hbmQgd2lsbCBiZSBydW4gYmVmb3JlIHRoZSBidW1wIGlzIGV4ZWN1dGVkLCBhbmRcbiAgICogaXQgZGV0ZXJtaW5lcyB3aGF0IHZlcnNpb24gdG8gcmVsZWFzZS4gSXQgd2lsbCBiZSBleGVjdXRlZCBpbiB0aGUgZm9sbG93aW5nXG4gICAqIGVudmlyb25tZW50OlxuICAgKlxuICAgKiAtIFdvcmtpbmcgZGlyZWN0b3J5OiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuXG4gICAqIC0gYCRWRVJTSU9OYDogdGhlIGN1cnJlbnQgdmVyc2lvbi4gTG9va3MgbGlrZSBgMS4yLjNgLlxuICAgKiAtIGAkTEFURVNUX1RBR2A6IHRoZSBtb3N0IHJlY2VudCB0YWcuIExvb2tzIGxpa2UgYHByZWZpeC12MS4yLjNgLCBvciBtYXkgYmUgdW5zZXQuXG4gICAqIC0gYCRTVUdHRVNURURfQlVNUGA6IHRoZSBzdWdnZXN0ZWQgYnVtcCBhY3Rpb24gYmFzZWQgb24gY29tbWl0cy4gT25lIG9mIGBtYWpvcnxtaW5vcnxwYXRjaHxub25lYC5cbiAgICpcbiAgICogVGhlIGNvbW1hbmQgc2hvdWxkIHByaW50IG9uZSBvZiB0aGUgZm9sbG93aW5nIHRvIGBzdGRvdXRgOlxuICAgKlxuICAgKiAtIE5vdGhpbmc6IHRoZSBuZXh0IHZlcnNpb24gbnVtYmVyIHdpbGwgYmUgZGV0ZXJtaW5lZCBiYXNlZCBvbiBjb21taXQgaGlzdG9yeS5cbiAgICogLSBgeC55LnpgOiB0aGUgbmV4dCB2ZXJzaW9uIG51bWJlciB3aWxsIGJlIGB4LnkuemAuXG4gICAqIC0gYG1ham9yfG1pbm9yfHBhdGNoYDogdGhlIG5leHQgdmVyc2lvbiBudW1iZXIgd2lsbCBiZSB0aGUgY3VycmVudCB2ZXJzaW9uIG51bWJlclxuICAgKiAgIHdpdGggdGhlIGluZGljYXRlZCBjb21wb25lbnQgYnVtcGVkLlxuICAgKlxuICAgKiBUaGlzIHNldHRpbmcgY2Fubm90IGJlIHNwZWNpZmllZCB0b2dldGhlciB3aXRoIGBtaW5NYWpvclZlcnNpb25gOyB0aGUgaW52b2tlZFxuICAgKiBzY3JpcHQgY2FuIGJlIHVzZWQgdG8gYWNoaWV2ZSB0aGUgZWZmZWN0cyBvZiBgbWluTWFqb3JWZXJzaW9uYC5cbiAgICogQGRlZmF1bHQgLSBUaGUgbmV4dCB2ZXJzaW9uIHdpbGwgYmUgZGV0ZXJtaW5lZCBiYXNlZCBvbiB0aGUgY29tbWl0IGhpc3RvcnkgYW5kIHByb2plY3Qgc2V0dGluZ3MuXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBuZXh0VmVyc2lvbkNvbW1hbmQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNaW5pbWFsIE1ham9yIHZlcnNpb24gdG8gcmVsZWFzZS5cbiAgICogVGhpcyBjYW4gYmUgdXNlZnVsIHRvIHNldCB0byAxLCBhcyBicmVha2luZyBjaGFuZ2VzIGJlZm9yZSB0aGUgMS54IG1ham9yXG4gICAqIHJlbGVhc2UgYXJlIG5vdCBpbmNyZW1lbnRpbmcgdGhlIG1ham9yIHZlcnNpb24gbnVtYmVyLlxuICAgKlxuICAgKiBDYW4gbm90IGJlIHNldCB0b2dldGhlciB3aXRoIGBtYWpvclZlcnNpb25gLlxuICAgKiBAZGVmYXVsdCAtIE5vIG1pbmltdW0gdmVyc2lvbiBpcyBiZWluZyBlbmZvcmNlZFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbWluTWFqb3JWZXJzaW9uPzogbnVtYmVyO1xuICAvKipcbiAgICogTWFqb3IgdmVyc2lvbiB0byByZWxlYXNlIGZyb20gdGhlIGRlZmF1bHQgYnJhbmNoLlxuICAgKiBJZiB0aGlzIGlzIHNwZWNpZmllZCwgd2UgYnVtcCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtYWpvciB2ZXJzaW9uIGxpbmUuXG4gICAqIElmIG5vdCBzcGVjaWZpZWQsIHdlIGJ1bXAgdGhlIGdsb2JhbCBsYXRlc3QgdmVyc2lvbi5cbiAgICogQGRlZmF1bHQgLSBNYWpvciB2ZXJzaW9uIGlzIG5vdCBlbmZvcmNlZC5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IG1ham9yVmVyc2lvbj86IG51bWJlcjtcbiAgLyoqXG4gICAqIFZlcnNpb24gcmVxdWlyZW1lbnQgb2YgYHB1YmxpYmAgd2hpY2ggaXMgdXNlZCB0byBwdWJsaXNoIG1vZHVsZXMgdG8gbnBtLlxuICAgKiBAZGVmYXVsdCBcImxhdGVzdFwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBqc2lpUmVsZWFzZVZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYGNvbW1pdC1hbmQtdGFnLXZlcnNpb25gIGNvbXBhdGlibGUgcGFja2FnZSB1c2VkIHRvIGJ1bXAgdGhlIHBhY2thZ2UgdmVyc2lvbiwgYXMgYSBkZXBlbmRlbmN5IHN0cmluZy5cbiAgICogVGhpcyBjYW4gYmUgYW55IGNvbXBhdGlibGUgcGFja2FnZSB2ZXJzaW9uLCBpbmNsdWRpbmcgdGhlIGRlcHJlY2F0ZWQgYHN0YW5kYXJkLXZlcnNpb25AOWAuXG4gICAqIEBkZWZhdWx0IC0gQSByZWNlbnQgdmVyc2lvbiBvZiBcImNvbW1pdC1hbmQtdGFnLXZlcnNpb25cIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYnVtcFBhY2thZ2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBZYXJuIEJlcnJ5LlxuICAgKiBAZGVmYXVsdCAtIFlhcm4gQmVycnkgdjQgd2l0aCBhbGwgZGVmYXVsdCBvcHRpb25zXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSB5YXJuQmVycnlPcHRpb25zPzogamF2YXNjcmlwdC5ZYXJuQmVycnlPcHRpb25zO1xuICAvKipcbiAgICogUGFja2FnZSdzIFN0YWJpbGl0eS5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHN0YWJpbGl0eT86IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHByaXZhdGVseSBob3N0ZWQgc2NvcGVkIHBhY2thZ2VzLlxuICAgKiBAZGVmYXVsdCAtIGZldGNoIGFsbCBzY29wZWQgcGFja2FnZXMgZnJvbSB0aGUgcHVibGljIG5wbSByZWdpc3RyeVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGVkUGFja2FnZXNPcHRpb25zPzogQXJyYXk8amF2YXNjcmlwdC5TY29wZWRQYWNrYWdlc09wdGlvbnM+O1xuICAvKipcbiAgICogSWYgdGhlIHBhY2thZ2UuanNvbiBmb3IgeW91ciBwYWNrYWdlIGlzIG5vdCBpbiB0aGUgcm9vdCBkaXJlY3RvcnkgKGZvciBleGFtcGxlIGlmIGl0IGlzIHBhcnQgb2YgYSBtb25vcmVwbyksIHlvdSBjYW4gc3BlY2lmeSB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIGl0IGxpdmVzLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeURpcmVjdG9yeT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSByZXBvc2l0b3J5IGlzIHRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgYWN0dWFsIGNvZGUgZm9yIHlvdXIgcGFja2FnZSBsaXZlcy5cbiAgICogU2VlIGh0dHBzOi8vY2xhc3NpYy55YXJucGtnLmNvbS9lbi9kb2NzL3BhY2thZ2UtanNvbi8jdG9jLXJlcG9zaXRvcnlcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiBQTlBNIHRvIHVzZSBpZiB1c2luZyBQTlBNIGFzIGEgcGFja2FnZSBtYW5hZ2VyLlxuICAgKiBAZGVmYXVsdCBcIjlcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcG5wbVZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQZWVyIGRlcGVuZGVuY2llcyBmb3IgdGhpcyBtb2R1bGUuXG4gICAqIERlcGVuZGVuY2llcyBsaXN0ZWQgaGVyZSBhcmUgcmVxdWlyZWQgdG9cbiAgICogYmUgaW5zdGFsbGVkIChhbmQgc2F0aXNmaWVkKSBieSB0aGUgX2NvbnN1bWVyXyBvZiB0aGlzIGxpYnJhcnkuIFVzaW5nIHBlZXJcbiAgICogZGVwZW5kZW5jaWVzIGFsbG93cyB5b3UgdG8gZW5zdXJlIHRoYXQgb25seSBhIHNpbmdsZSBtb2R1bGUgb2YgYSBjZXJ0YWluXG4gICAqIGxpYnJhcnkgZXhpc3RzIGluIHRoZSBgbm9kZV9tb2R1bGVzYCB0cmVlIG9mIHlvdXIgY29uc3VtZXJzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgcHJpb3IgdG8gbnBtQDcsIHBlZXIgZGVwZW5kZW5jaWVzIGFyZSBfbm90XyBhdXRvbWF0aWNhbGx5XG4gICAqIGluc3RhbGxlZCwgd2hpY2ggbWVhbnMgdGhhdCBhZGRpbmcgcGVlciBkZXBlbmRlbmNpZXMgdG8gYSBsaWJyYXJ5IHdpbGwgYmUgYVxuICAgKiBicmVha2luZyBjaGFuZ2UgZm9yIHlvdXIgY3VzdG9tZXJzLlxuICAgKlxuICAgKiBVbmxlc3MgYHBlZXJEZXBlbmRlbmN5T3B0aW9ucy5waW5uZWREZXZEZXBlbmRlbmN5YCBpcyBkaXNhYmxlZCAoaXQgaXNcbiAgICogZW5hYmxlZCBieSBkZWZhdWx0KSwgcHJvamVuIHdpbGwgYXV0b21hdGljYWxseSBhZGQgYSBkZXYgZGVwZW5kZW5jeSB3aXRoIGFcbiAgICogcGlubmVkIHZlcnNpb24gZm9yIGVhY2ggcGVlciBkZXBlbmRlbmN5LiBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW91IGJ1aWxkICZcbiAgICogdGVzdCB5b3VyIG1vZHVsZSBhZ2FpbnN0IHRoZSBsb3dlc3QgcGVlciB2ZXJzaW9uIHJlcXVpcmVkLlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcGVlckRlcHM/OiBBcnJheTxzdHJpbmc+O1xuICAvKipcbiAgICogT3B0aW9ucyBmb3IgYHBlZXJEZXBzYC5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHBlZXJEZXBlbmRlbmN5T3B0aW9ucz86IGphdmFzY3JpcHQuUGVlckRlcGVuZGVuY3lPcHRpb25zO1xuICAvKipcbiAgICogVGhlIFwibmFtZVwiIGluIHBhY2thZ2UuanNvbi5cbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0cyB0byBwcm9qZWN0IG5hbWVcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICogQGZlYXR1cmVkIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIE5vZGUgUGFja2FnZSBNYW5hZ2VyIHVzZWQgdG8gZXhlY3V0ZSBzY3JpcHRzLlxuICAgKiBAZGVmYXVsdCBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTl9DTEFTU0lDXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlTWFuYWdlcj86IGphdmFzY3JpcHQuTm9kZVBhY2thZ2VNYW5hZ2VyO1xuICAvKipcbiAgICogVXNlIHRydXN0ZWQgcHVibGlzaGluZyBmb3IgcHVibGlzaGluZyB0byBucG1qcy5jb20gTmVlZHMgdG8gYmUgcHJlLWNvbmZpZ3VyZWQgb24gbnBtLmpzIHRvIHdvcmsuXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IG5wbVRydXN0ZWRQdWJsaXNoaW5nPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEdpdEh1YiBzZWNyZXQgd2hpY2ggY29udGFpbnMgdGhlIE5QTSB0b2tlbiB0byB1c2Ugd2hlbiBwdWJsaXNoaW5nIHBhY2thZ2VzLlxuICAgKiBAZGVmYXVsdCBcIk5QTV9UT0tFTlwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBucG1Ub2tlblNlY3JldD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBiYXNlIFVSTCBvZiB0aGUgbnBtIHBhY2thZ2UgcmVnaXN0cnkuXG4gICAqIE11c3QgYmUgYSBVUkwgKGUuZy4gc3RhcnQgd2l0aCBcImh0dHBzOi8vXCIgb3IgXCJodHRwOi8vXCIpXG4gICAqIEBkZWZhdWx0IFwiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmdcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbnBtUmVnaXN0cnlVcmw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTaG91bGQgcHJvdmVuYW5jZSBzdGF0ZW1lbnRzIGJlIGdlbmVyYXRlZCB3aGVuIHRoZSBwYWNrYWdlIGlzIHB1Ymxpc2hlZC5cbiAgICogQSBzdXBwb3J0ZWQgcGFja2FnZSBtYW5hZ2VyIGlzIHJlcXVpcmVkIHRvIHB1Ymxpc2ggYSBwYWNrYWdlIHdpdGggbnBtIHByb3ZlbmFuY2Ugc3RhdGVtZW50cyBhbmRcbiAgICogeW91IHdpbGwgbmVlZCB0byB1c2UgYSBzdXBwb3J0ZWQgQ0kvQ0QgcHJvdmlkZXIuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGUgcHJvamVuIGBSZWxlYXNlYCBhbmQgYFB1Ymxpc2hlcmAgY29tcG9uZW50cyBhcmUgdXNpbmcgYHB1YmxpYmAgdG8gcHVibGlzaCBwYWNrYWdlcyxcbiAgICogd2hpY2ggaXMgdXNpbmcgbnBtIGludGVybmFsbHkgYW5kIHN1cHBvcnRzIHByb3ZlbmFuY2Ugc3RhdGVtZW50cyBpbmRlcGVuZGVudGx5IG9mIHRoZSBwYWNrYWdlIG1hbmFnZXIgdXNlZC5cbiAgICogQGRlZmF1bHQgLSB0cnVlIGZvciBwdWJsaWMgcGFja2FnZXMsIGZhbHNlIG90aGVyd2lzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbnBtUHJvdmVuYW5jZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBY2Nlc3MgbGV2ZWwgb2YgdGhlIG5wbSBwYWNrYWdlLlxuICAgKiBAZGVmYXVsdCAtIGZvciBzY29wZWQgcGFja2FnZXMgKGUuZy4gYGZvb0BiYXJgKSwgdGhlIGRlZmF1bHQgaXNcbmBOcG1BY2Nlc3MuUkVTVFJJQ1RFRGAsIGZvciBub24tc2NvcGVkIHBhY2thZ2VzLCB0aGUgZGVmYXVsdCBpc1xuYE5wbUFjY2Vzcy5QVUJMSUNgLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbnBtQWNjZXNzPzogamF2YXNjcmlwdC5OcG1BY2Nlc3M7XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBub2RlIHZlcnNpb24gcmVxdWlyZWQgYnkgdGhpcyBwYWNrYWdlIHRvIGZ1bmN0aW9uLiBNb3N0IHByb2plY3RzIHNob3VsZCBub3QgdXNlIHRoaXMgb3B0aW9uLlxuICAgKiBUaGUgdmFsdWUgaW5kaWNhdGVzIHRoYXQgdGhlIHBhY2thZ2UgaXMgaW5jb21wYXRpYmxlIHdpdGggYW55IG9sZGVyIHZlcnNpb25zIG9mIG5vZGUuXG4gICAqIFRoaXMgcmVxdWlyZW1lbnQgaXMgZW5mb3JjZWQgdmlhIHRoZSBlbmdpbmVzIGZpZWxkLlxuICAgKlxuICAgKiBZb3Ugd2lsbCBub3JtYWxseSBub3QgbmVlZCB0byBzZXQgdGhpcyBvcHRpb24sIGV2ZW4gaWYgeW91ciBwYWNrYWdlIGlzIGluY29tcGF0aWJsZSB3aXRoIEVPTCB2ZXJzaW9ucyBvZiBub2RlLlxuICAgKiBDb25zaWRlciB0aGlzIG9wdGlvbiBvbmx5IGlmIHlvdXIgcGFja2FnZSBkZXBlbmRzIG9uIGEgc3BlY2lmaWMgZmVhdHVyZSwgdGhhdCBpcyBub3QgYXZhaWxhYmxlIGluIG90aGVyIExUUyB2ZXJzaW9ucy5cbiAgICogU2V0dGluZyB0aGlzIG9wdGlvbiBoYXMgdmVyeSBoaWdoIGltcGFjdCBvbiB0aGUgY29uc3VtZXJzIG9mIHlvdXIgcGFja2FnZSxcbiAgICogYXMgcGFja2FnZSBtYW5hZ2VycyB3aWxsIGFjdGl2ZWx5IHByZXZlbnQgdXNhZ2Ugd2l0aCBub2RlIHZlcnNpb25zIHlvdSBoYXZlIG1hcmtlZCBhcyBpbmNvbXBhdGlibGUuXG4gICAqXG4gICAqIFRvIGNoYW5nZSB0aGUgbm9kZSB2ZXJzaW9uIG9mIHlvdXIgQ0kvQ0Qgd29ya2Zsb3dzLCB1c2UgYHdvcmtmbG93Tm9kZVZlcnNpb25gLlxuICAgKiBAZGVmYXVsdCAtIG5vIG1pbmltdW0gdmVyc2lvbiBpcyBlbmZvcmNlZFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbWluTm9kZVZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBub2RlIHZlcnNpb24gc3VwcG9ydGVkIGJ5IHRoaXMgcGFja2FnZS4gTW9zdCBwcm9qZWN0cyBzaG91bGQgbm90IHVzZSB0aGlzIG9wdGlvbi5cbiAgICogVGhlIHZhbHVlIGluZGljYXRlcyB0aGF0IHRoZSBwYWNrYWdlIGlzIGluY29tcGF0aWJsZSB3aXRoIGFueSBuZXdlciB2ZXJzaW9ucyBvZiBub2RlLlxuICAgKiBUaGlzIHJlcXVpcmVtZW50IGlzIGVuZm9yY2VkIHZpYSB0aGUgZW5naW5lcyBmaWVsZC5cbiAgICpcbiAgICogWW91IHdpbGwgbm9ybWFsbHkgbm90IG5lZWQgdG8gc2V0IHRoaXMgb3B0aW9uLlxuICAgKiBDb25zaWRlciB0aGlzIG9wdGlvbiBvbmx5IGlmIHlvdXIgcGFja2FnZSBpcyBrbm93biB0byBub3QgZnVuY3Rpb24gd2l0aCBuZXdlciB2ZXJzaW9ucyBvZiBub2RlLlxuICAgKiBAZGVmYXVsdCAtIG5vIG1heGltdW0gdmVyc2lvbiBpcyBlbmZvcmNlZFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Tm9kZVZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgYSBsaWNlbnNlIHNob3VsZCBiZSBhZGRlZC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbGljZW5zZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogTGljZW5zZSdzIFNQRFggaWRlbnRpZmllci5cbiAgICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9qZW4vcHJvamVuL3RyZWUvbWFpbi9saWNlbnNlLXRleHQgZm9yIGEgbGlzdCBvZiBzdXBwb3J0ZWQgbGljZW5zZXMuXG4gICAqIFVzZSB0aGUgYGxpY2Vuc2VkYCBvcHRpb24gaWYgeW91IHdhbnQgdG8gbm8gbGljZW5zZSB0byBiZSBzcGVjaWZpZWQuXG4gICAqIEBkZWZhdWx0IFwiQXBhY2hlLTIuMFwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlPzogc3RyaW5nO1xuICAvKipcbiAgICogS2V5d29yZHMgdG8gaW5jbHVkZSBpbiBgcGFja2FnZS5qc29uYC5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGtleXdvcmRzPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIFBhY2thZ2UncyBIb21lcGFnZSAvIFdlYnNpdGUuXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBob21lcGFnZT86IHN0cmluZztcbiAgLyoqXG4gICAqIE1vZHVsZSBlbnRyeXBvaW50IChgbWFpbmAgaW4gYHBhY2thZ2UuanNvbmApLlxuICAgKiBTZXQgdG8gYW4gZW1wdHkgc3RyaW5nIHRvIG5vdCBpbmNsdWRlIGBtYWluYCBpbiB5b3VyIHBhY2thZ2UuanNvblxuICAgKiBAZGVmYXVsdCBcImxpYi9pbmRleC5qc1wiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBlbnRyeXBvaW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogQnVpbGQgZGVwZW5kZW5jaWVzIGZvciB0aGlzIG1vZHVsZS5cbiAgICogVGhlc2UgZGVwZW5kZW5jaWVzIHdpbGwgb25seSBiZVxuICAgKiBhdmFpbGFibGUgaW4geW91ciBidWlsZCBlbnZpcm9ubWVudCBidXQgd2lsbCBub3QgYmUgZmV0Y2hlZCB3aGVuIHRoaXNcbiAgICogbW9kdWxlIGlzIGNvbnN1bWVkLlxuICAgKlxuICAgKiBUaGUgcmVjb21tZW5kYXRpb24gaXMgdG8gb25seSBzcGVjaWZ5IHRoZSBtb2R1bGUgbmFtZSBoZXJlIChlLmcuXG4gICAqIGBleHByZXNzYCkuIFRoaXMgd2lsbCBiZWhhdmUgc2ltaWxhciB0byBgeWFybiBhZGRgIG9yIGBucG0gaW5zdGFsbGAgaW4gdGhlXG4gICAqIHNlbnNlIHRoYXQgaXQgd2lsbCBhZGQgdGhlIG1vZHVsZSBhcyBhIGRlcGVuZGVuY3kgdG8geW91ciBgcGFja2FnZS5qc29uYFxuICAgKiBmaWxlIHdpdGggdGhlIGxhdGVzdCB2ZXJzaW9uIChgXmApLiBZb3UgY2FuIHNwZWNpZnkgc2VtdmVyIHJlcXVpcmVtZW50cyBpblxuICAgKiB0aGUgc2FtZSBzeW50YXggcGFzc2VkIHRvIGBucG0gaWAgb3IgYHlhcm4gYWRkYCAoZS5nLiBgZXhwcmVzc0BeMmApIGFuZFxuICAgKiB0aGlzIHdpbGwgYmUgd2hhdCB5b3UgYHBhY2thZ2UuanNvbmAgd2lsbCBldmVudHVhbGx5IGluY2x1ZGUuXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqIEBmZWF0dXJlZCB0cnVlXG4gICAqL1xuICByZWFkb25seSBkZXZEZXBzPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBpcyBqdXN0IGEgc3RyaW5nIHRoYXQgaGVscHMgcGVvcGxlIHVuZGVyc3RhbmQgdGhlIHB1cnBvc2Ugb2YgdGhlIHBhY2thZ2UuXG4gICAqIEl0IGNhbiBiZSB1c2VkIHdoZW4gc2VhcmNoaW5nIGZvciBwYWNrYWdlcyBpbiBhIHBhY2thZ2UgbWFuYWdlciBhcyB3ZWxsLlxuICAgKiBTZWUgaHR0cHM6Ly9jbGFzc2ljLnlhcm5wa2cuY29tL2VuL2RvY3MvcGFja2FnZS1qc29uLyN0b2MtZGVzY3JpcHRpb25cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICogQGZlYXR1cmVkIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogUnVudGltZSBkZXBlbmRlbmNpZXMgb2YgdGhpcyBtb2R1bGUuXG4gICAqIFRoZSByZWNvbW1lbmRhdGlvbiBpcyB0byBvbmx5IHNwZWNpZnkgdGhlIG1vZHVsZSBuYW1lIGhlcmUgKGUuZy5cbiAgICogYGV4cHJlc3NgKS4gVGhpcyB3aWxsIGJlaGF2ZSBzaW1pbGFyIHRvIGB5YXJuIGFkZGAgb3IgYG5wbSBpbnN0YWxsYCBpbiB0aGVcbiAgICogc2Vuc2UgdGhhdCBpdCB3aWxsIGFkZCB0aGUgbW9kdWxlIGFzIGEgZGVwZW5kZW5jeSB0byB5b3VyIGBwYWNrYWdlLmpzb25gXG4gICAqIGZpbGUgd2l0aCB0aGUgbGF0ZXN0IHZlcnNpb24gKGBeYCkuIFlvdSBjYW4gc3BlY2lmeSBzZW12ZXIgcmVxdWlyZW1lbnRzIGluXG4gICAqIHRoZSBzYW1lIHN5bnRheCBwYXNzZWQgdG8gYG5wbSBpYCBvciBgeWFybiBhZGRgIChlLmcuIGBleHByZXNzQF4yYCkgYW5kXG4gICAqIHRoaXMgd2lsbCBiZSB3aGF0IHlvdSBgcGFja2FnZS5qc29uYCB3aWxsIGV2ZW50dWFsbHkgaW5jbHVkZS5cbiAgICogQGRlZmF1bHQgW11cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICogQGZlYXR1cmVkIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRlcHM/OiBBcnJheTxzdHJpbmc+O1xuICAvKipcbiAgICogT3B0aW9ucyBmb3IgbnBtIHBhY2thZ2VzIHVzaW5nIEFXUyBDb2RlQXJ0aWZhY3QuXG4gICAqIFRoaXMgaXMgcmVxdWlyZWQgaWYgcHVibGlzaGluZyBwYWNrYWdlcyB0bywgb3IgaW5zdGFsbGluZyBzY29wZWQgcGFja2FnZXMgZnJvbSBBV1MgQ29kZUFydGlmYWN0XG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBjb2RlQXJ0aWZhY3RPcHRpb25zPzogamF2YXNjcmlwdC5Db2RlQXJ0aWZhY3RPcHRpb25zO1xuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgQnVuIHRvIHVzZSBpZiB1c2luZyBCdW4gYXMgYSBwYWNrYWdlIG1hbmFnZXIuXG4gICAqIEBkZWZhdWx0IFwibGF0ZXN0XCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGJ1blZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGRlcGVuZGVuY2llcyB0byBidW5kbGUgaW50byB0aGlzIG1vZHVsZS5cbiAgICogVGhlc2UgbW9kdWxlcyB3aWxsIGJlXG4gICAqIGFkZGVkIGJvdGggdG8gdGhlIGBkZXBlbmRlbmNpZXNgIHNlY3Rpb24gYW5kIGBidW5kbGVkRGVwZW5kZW5jaWVzYCBzZWN0aW9uIG9mXG4gICAqIHlvdXIgYHBhY2thZ2UuanNvbmAuXG4gICAqXG4gICAqIFRoZSByZWNvbW1lbmRhdGlvbiBpcyB0byBvbmx5IHNwZWNpZnkgdGhlIG1vZHVsZSBuYW1lIGhlcmUgKGUuZy5cbiAgICogYGV4cHJlc3NgKS4gVGhpcyB3aWxsIGJlaGF2ZSBzaW1pbGFyIHRvIGB5YXJuIGFkZGAgb3IgYG5wbSBpbnN0YWxsYCBpbiB0aGVcbiAgICogc2Vuc2UgdGhhdCBpdCB3aWxsIGFkZCB0aGUgbW9kdWxlIGFzIGEgZGVwZW5kZW5jeSB0byB5b3VyIGBwYWNrYWdlLmpzb25gXG4gICAqIGZpbGUgd2l0aCB0aGUgbGF0ZXN0IHZlcnNpb24gKGBeYCkuIFlvdSBjYW4gc3BlY2lmeSBzZW12ZXIgcmVxdWlyZW1lbnRzIGluXG4gICAqIHRoZSBzYW1lIHN5bnRheCBwYXNzZWQgdG8gYG5wbSBpYCBvciBgeWFybiBhZGRgIChlLmcuIGBleHByZXNzQF4yYCkgYW5kXG4gICAqIHRoaXMgd2lsbCBiZSB3aGF0IHlvdSBgcGFja2FnZS5qc29uYCB3aWxsIGV2ZW50dWFsbHkgaW5jbHVkZS5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGJ1bmRsZWREZXBzPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIFRoZSB1cmwgdG8geW91ciBwcm9qZWN0J3MgaXNzdWUgdHJhY2tlci5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGJ1Z3NVcmw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZW1haWwgYWRkcmVzcyB0byB3aGljaCBpc3N1ZXMgc2hvdWxkIGJlIHJlcG9ydGVkLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYnVnc0VtYWlsPzogc3RyaW5nO1xuICAvKipcbiAgICogQmluYXJ5IHByb2dyYW1zIHZlbmRlZCB3aXRoIHlvdXIgbW9kdWxlLlxuICAgKiBZb3UgY2FuIHVzZSB0aGlzIG9wdGlvbiB0byBhZGQvY3VzdG9taXplIGhvdyBiaW5hcmllcyBhcmUgcmVwcmVzZW50ZWQgaW5cbiAgICogeW91ciBgcGFja2FnZS5qc29uYCwgYnV0IHVubGVzcyBgYXV0b0RldGVjdEJpbmAgaXMgYGZhbHNlYCwgZXZlcnlcbiAgICogZXhlY3V0YWJsZSBmaWxlIHVuZGVyIGBiaW5gIHdpbGwgYXV0b21hdGljYWxseSBiZSBhZGRlZCB0byB0aGlzIHNlY3Rpb24uXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBiaW4/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKipcbiAgICogQXV0b21hdGljYWxseSBhZGQgYWxsIGV4ZWN1dGFibGVzIHVuZGVyIHRoZSBgYmluYCBkaXJlY3RvcnkgdG8geW91ciBgcGFja2FnZS5qc29uYCBmaWxlIHVuZGVyIHRoZSBgYmluYCBzZWN0aW9uLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBhdXRvRGV0ZWN0QmluPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEF1dGhvcidzIFVSTCAvIFdlYnNpdGUuXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBhdXRob3JVcmw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJcyB0aGUgYXV0aG9yIGFuIG9yZ2FuaXphdGlvbi5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvck9yZ2FuaXphdGlvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBdXRob3IncyBuYW1lLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEF1dGhvcidzIGUtbWFpbC5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvckVtYWlsPzogc3RyaW5nO1xuICAvKipcbiAgICogQWxsb3cgdGhlIHByb2plY3QgdG8gaW5jbHVkZSBgcGVlckRlcGVuZGVuY2llc2AgYW5kIGBidW5kbGVkRGVwZW5kZW5jaWVzYC5cbiAgICogVGhpcyBpcyBub3JtYWxseSBvbmx5IGFsbG93ZWQgZm9yIGxpYnJhcmllcy4gRm9yIGFwcHMsIHRoZXJlJ3Mgbm8gbWVhbmluZ1xuICAgKiBmb3Igc3BlY2lmeWluZyB0aGVzZS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dMaWJyYXJ5RGVwZW5kZW5jaWVzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEVuYWJsZSBWU0NvZGUgaW50ZWdyYXRpb24uXG4gICAqIEVuYWJsZWQgYnkgZGVmYXVsdCBmb3Igcm9vdCBwcm9qZWN0cy4gRGlzYWJsZWQgZm9yIG5vbi1yb290IHByb2plY3RzLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSB2c2NvZGU/OiBib29sZWFuO1xuICAvKipcbiAgICogQXV0by1jbG9zZSBzdGFsZSBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMuXG4gICAqIFRvIGRpc2FibGUgc2V0IGBzdGFsZWAgdG8gYGZhbHNlYC5cbiAgICogQGRlZmF1bHQgLSBzZWUgZGVmYXVsdHMgaW4gYFN0YWxlT3B0aW9uc2BcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHN0YWxlT3B0aW9ucz86IGdpdGh1Yi5TdGFsZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBBdXRvLWNsb3NlIG9mIHN0YWxlIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0LlxuICAgKiBTZWUgYHN0YWxlT3B0aW9uc2AgZm9yIG9wdGlvbnMuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBzdGFsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgUkVBRE1FIHNldHVwLlxuICAgKiBAZGVmYXVsdCAtIHsgZmlsZW5hbWU6ICdSRUFETUUubWQnLCBjb250ZW50czogJyMgcmVwbGFjZSB0aGlzJyB9XG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSByZWFkbWU/OiBTYW1wbGVSZWFkbWVQcm9wcztcbiAgLyoqXG4gICAqIENob29zZSBhIG1ldGhvZCBvZiBwcm92aWRpbmcgR2l0SHViIEFQSSBhY2Nlc3MgZm9yIHByb2plbiB3b3JrZmxvd3MuXG4gICAqIEBkZWZhdWx0IC0gdXNlIGEgcGVyc29uYWwgYWNjZXNzIHRva2VuIG5hbWVkIFBST0pFTl9HSVRIVUJfVE9LRU5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbkNyZWRlbnRpYWxzPzogZ2l0aHViLkdpdGh1YkNyZWRlbnRpYWxzO1xuICAvKipcbiAgICogQWRkIGEgR2l0cG9kIGRldmVsb3BtZW50IGVudmlyb25tZW50LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0cG9kPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIEdpdEh1YiBpbnRlZ3JhdGlvbi5cbiAgICogQGRlZmF1bHQgLSBzZWUgR2l0SHViT3B0aW9uc1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViT3B0aW9ucz86IGdpdGh1Yi5HaXRIdWJPcHRpb25zO1xuICAvKipcbiAgICogRW5hYmxlIEdpdEh1YiBpbnRlZ3JhdGlvbi5cbiAgICogRW5hYmxlZCBieSBkZWZhdWx0IGZvciByb290IHByb2plY3RzLiBEaXNhYmxlZCBmb3Igbm9uLXJvb3QgcHJvamVjdHMuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGdpdGh1Yj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBZGQgYSBWU0NvZGUgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgKHVzZWQgZm9yIEdpdEh1YiBDb2Rlc3BhY2VzKS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGRldkNvbnRhaW5lcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBZGQgYSBgY2xvYmJlcmAgdGFzayB3aGljaCByZXNldHMgdGhlIHJlcG8gdG8gb3JpZ2luLlxuICAgKiBAZGVmYXVsdCAtIHRydWUsIGJ1dCBmYWxzZSBmb3Igc3VicHJvamVjdHNcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGNsb2JiZXI/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29uZmlndXJlIG9wdGlvbnMgZm9yIGF1dG9tYXRpYyBtZXJnaW5nIG9uIEdpdEh1Yi5cbiAgICogSGFzIG5vIGVmZmVjdCBpZlxuICAgKiBgZ2l0aHViLm1lcmdpZnlgIG9yIGBhdXRvTWVyZ2VgIGlzIHNldCB0byBmYWxzZS5cbiAgICogQGRlZmF1bHQgLSBzZWUgZGVmYXVsdHMgaW4gYEF1dG9NZXJnZU9wdGlvbnNgXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBhdXRvTWVyZ2VPcHRpb25zPzogZ2l0aHViLkF1dG9NZXJnZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBFbmFibGUgYXV0b21hdGljIG1lcmdpbmcgb24gR2l0SHViLlxuICAgKiBIYXMgbm8gZWZmZWN0IGlmIGBnaXRodWIubWVyZ2lmeWBcbiAgICogaXMgc2V0IHRvIGZhbHNlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBhdXRvTWVyZ2U/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5hYmxlIGFuZCBjb25maWd1cmUgdGhlICdhdXRvIGFwcHJvdmUnIHdvcmtmbG93LlxuICAgKiBAZGVmYXVsdCAtIGF1dG8gYXBwcm92ZSBpcyBkaXNhYmxlZFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b0FwcHJvdmVPcHRpb25zPzogZ2l0aHViLkF1dG9BcHByb3ZlT3B0aW9ucztcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHJlbm92YXRlYm90LlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgb3B0aW9uc1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVub3ZhdGVib3RPcHRpb25zPzogUmVub3ZhdGVib3RPcHRpb25zO1xuICAvKipcbiAgICogVXNlIHJlbm92YXRlYm90IHRvIGhhbmRsZSBkZXBlbmRlbmN5IHVwZ3JhZGVzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVub3ZhdGVib3Q/OiBib29sZWFuO1xuICAvKipcbiAgICogT3B0aW9ucyBmb3IgLnByb2plbnJjLmpzb24uXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBvcHRpb25zXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwcm9qZW5yY0pzb25PcHRpb25zPzogUHJvamVucmNKc29uT3B0aW9ucztcbiAgLyoqXG4gICAqIEdlbmVyYXRlIChvbmNlKSAucHJvamVucmMuanNvbiAoaW4gSlNPTikuIFNldCB0byBgZmFsc2VgIGluIG9yZGVyIHRvIGRpc2FibGUgLnByb2plbnJjLmpzb24gZ2VuZXJhdGlvbi5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbnJjSnNvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgc2hlbGwgY29tbWFuZCB0byB1c2UgaW4gb3JkZXIgdG8gcnVuIHRoZSBwcm9qZW4gQ0xJLlxuICAgKiBDYW4gYmUgdXNlZCB0byBjdXN0b21pemUgaW4gc3BlY2lhbCBlbnZpcm9ubWVudHMuXG4gICAqIEBkZWZhdWx0IFwibnB4IHByb2plblwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwcm9qZW5Db21tYW5kPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHBhcmVudCBwcm9qZWN0LCBpZiB0aGlzIHByb2plY3QgaXMgcGFydCBvZiBhIGJpZ2dlciBwcm9qZWN0LlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcGFyZW50PzogUHJvamVjdDtcbiAgLyoqXG4gICAqIFRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC5cbiAgICogUmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnksIGFsbCBmaWxlcyBhcmUgc3ludGhlc2l6ZWQuXG4gICAqXG4gICAqIElmIHRoaXMgcHJvamVjdCBoYXMgYSBwYXJlbnQsIHRoaXMgZGlyZWN0b3J5IGlzIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnRcbiAgICogZGlyZWN0b3J5IGFuZCBpdCBjYW5ub3QgYmUgdGhlIHNhbWUgYXMgdGhlIHBhcmVudCBvciBhbnkgb2YgaXQncyBvdGhlclxuICAgKiBzdWJwcm9qZWN0cy5cbiAgICogQGRlZmF1bHQgXCIuXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBsb2dnaW5nIG9wdGlvbnMgc3VjaCBhcyB2ZXJib3NpdHkuXG4gICAqIEBkZWZhdWx0IHt9XG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nPzogTG9nZ2VyT3B0aW9ucztcbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgZ2l0LlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0T3B0aW9ucz86IEdpdE9wdGlvbnM7XG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIC5naXRpZ25vcmUgZmlsZS5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGdpdElnbm9yZU9wdGlvbnM/OiBJZ25vcmVGaWxlT3B0aW9ucztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY29tbWl0IHRoZSBtYW5hZ2VkIGZpbGVzIGJ5IGRlZmF1bHQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGNvbW1pdEdlbmVyYXRlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgcHJvamVjdC5cbiAgICogQGRlZmF1bHQgJEJBU0VESVJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICogQGZlYXR1cmVkIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBWaXRlc3QgY29uZmlndXJhdGlvbiAod2hlbiBlbmFibGVkKS5cbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IFZpdGVzdCBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSB2aXRlc3RPcHRpb25zPzogVml0ZXN0T3B0aW9ucztcbiAgLyoqXG4gICAqIEVuYWJsZSB0ZXN0aW5nIHdpdGggVml0ZXN0LlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB2aXRlc3Q/OiBib29sZWFuO1xuICAvKipcbiAgICogQ3JlYXRlIG1pc2UudG9tbCB3aXRoIHByb2plY3QgTm9kZS5qcyB2ZXJzaW9uXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IG1pc2U/OiBib29sZWFuO1xufVxuIl19
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2RrLWNvbnN0cnVjdC1saWJyYXJ5LW9wdGlvbnMuZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plY3RzL2F3c2Nkay1jb25zdHJ1Y3QtbGlicmFyeS1vcHRpb25zLmdlbmVyYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBhd3NjZGssIGNkaywgZ2l0aHViLCBHaXRPcHRpb25zLCBHcm91cFJ1bm5lck9wdGlvbnMsIElnbm9yZUZpbGVPcHRpb25zLCBqYXZhc2NyaXB0LCBMb2dnZXJPcHRpb25zLCBQcm9qZWN0LCBQcm9qZW5yY0pzb25PcHRpb25zLCBSZWxlYXNhYmxlQ29tbWl0cywgcmVsZWFzZSwgUmVub3ZhdGVib3RPcHRpb25zLCBTYW1wbGVSZWFkbWVQcm9wcywgdHlwZXNjcmlwdCB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgdHlwZSB7IFZpdGVzdE9wdGlvbnMgfSBmcm9tICcuLi8nO1xuXG4vKipcbiAqIEF3c0Nka0NvbnN0cnVjdExpYnJhcnlQcm9qZWN0T3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEF3c0Nka0NvbnN0cnVjdExpYnJhcnlQcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDb21tb24gb3B0aW9ucyBmb3IgYWxsIEFXUyBMYW1iZGEgZnVuY3Rpb25zLlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgb3B0aW9uc1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhT3B0aW9ucz86IGF3c2Nkay5MYW1iZGFGdW5jdGlvbkNvbW1vbk9wdGlvbnM7XG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGFkZHMgYW4gYGF3c2Nkay5MYW1iZGFFeHRlbnNpb25gIGZvciBlYWNoIGAubGFtYmRhLWV4dGVuc2lvbi50c2AgZW50cnlwb2ludCBpbiB5b3VyIHNvdXJjZSB0cmVlLiBJZiB0aGlzIGlzIGRpc2FibGVkLCB5b3UgY2FuIG1hbnVhbGx5IGFkZCBhbiBgYXdzY2RrLkF1dG9EaXNjb3ZlcmAgY29tcG9uZW50IHRvIHlvdXIgcHJvamVjdC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhRXh0ZW5zaW9uQXV0b0Rpc2NvdmVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgYWRkcyBhbiBgYXdzX2xhbWJkYS5GdW5jdGlvbmAgZm9yIGVhY2ggYC5sYW1iZGEudHNgIGhhbmRsZXIgaW4geW91ciBzb3VyY2UgdHJlZS4gSWYgdGhpcyBpcyBkaXNhYmxlZCwgeW91IGVpdGhlciBuZWVkIHRvIGV4cGxpY2l0bHkgY2FsbCBgYXdzX2xhbWJkYS5GdW5jdGlvbi5hdXRvRGlzY292ZXIoKWAgb3IgZGVmaW5lIGEgYG5ldyBhd3NfbGFtYmRhLkZ1bmN0aW9uKClgIGZvciBlYWNoIGhhbmRsZXIuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYUF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGRpc2NvdmVycyBhbmQgY3JlYXRlcyBpbnRlZ3JhdGlvbiB0ZXN0cyBmb3IgZWFjaCBgLmludGVnLnRzYCBmaWxlIHVuZGVyIHlvdXIgdGVzdCBkaXJlY3RvcnkuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGludGVncmF0aW9uVGVzdEF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGUgZXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIHRoZSBBV1MgQ0RLIGludGVnLXJ1bm5lci5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbEludGVnUnVubmVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgYWRkcyBhbiBgY2xvdWRmcm9udC5leHBlcmltZW50YWwuRWRnZUZ1bmN0aW9uYCBmb3IgZWFjaCBgLmVkZ2UtbGFtYmRhLnRzYCBoYW5kbGVyIGluIHlvdXIgc291cmNlIHRyZWUuIElmIHRoaXMgaXMgZGlzYWJsZWQsIHlvdSBjYW4gbWFudWFsbHkgYWRkIGFuIGBhd3NjZGsuQXV0b0Rpc2NvdmVyYCBjb21wb25lbnQgdG8geW91ciBwcm9qZWN0LlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBlZGdlTGFtYmRhQXV0b0Rpc2NvdmVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE1pbmltdW0gdmVyc2lvbiBvZiB0aGUgYGNvbnN0cnVjdHNgIGxpYnJhcnkgdG8gZGVwZW5kIG9uLlxuICAgKiBAZGVmYXVsdCAtIGZvciBDREsgMS54IHRoZSBkZWZhdWx0IGlzIFwiMy4yLjI3XCIsIGZvciBDREsgMi54IHRoZSBkZWZhdWx0IGlzXG5cIjEwLjAuNVwiLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0c1ZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBVc2UgcGlubmVkIHZlcnNpb24gaW5zdGVhZCBvZiBjYXJldCB2ZXJzaW9uIGZvciBDREsuXG4gICAqIFlvdSBjYW4gdXNlIHRoaXMgdG8gcHJldmVudCBtaXhlZCB2ZXJzaW9ucyBmb3IgeW91ciBDREsgZGVwZW5kZW5jaWVzIGFuZCB0byBwcmV2ZW50IGF1dG8tdXBkYXRlcy5cbiAgICogSWYgeW91IHVzZSBleHBlcmltZW50YWwgZmVhdHVyZXMgdGhpcyB3aWxsIGxldCB5b3UgZGVmaW5lIHRoZSBtb21lbnQgeW91IGluY2x1ZGUgYnJlYWtpbmcgY2hhbmdlcy5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGNka1ZlcnNpb25QaW5uaW5nPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFZlcnNpb24gcmFuZ2Ugb2YgdGhlIEFXUyBDREsgQ0xJIHRvIGRlcGVuZCBvbi5cbiAgICogQ2FuIGJlIGVpdGhlciBhIHNwZWNpZmljIHZlcnNpb24sIG9yIGFuIE5QTSB2ZXJzaW9uIHJhbmdlLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgbGF0ZXN0IDIueCB2ZXJzaW9uIHdpbGwgYmUgaW5zdGFsbGVkOyB5b3UgY2FuIHVzZSB0aGlzXG4gICAqIG9wdGlvbiB0byByZXN0cmljdCBpdCB0byBhIHNwZWNpZmljIHZlcnNpb24gb3IgdmVyc2lvbiByYW5nZS5cbiAgICogQGRlZmF1bHQgXCJeMlwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBjZGtDbGlWZXJzaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogSW5zdGFsbCB0aGUgYXNzZXJ0aW9ucyBsaWJyYXJ5P1xuICAgKiBPbmx5IG5lZWRlZCBmb3IgQ0RLIDEueC4gSWYgdXNpbmcgQ0RLIDIueCB0aGVuXG4gICAqIGFzc2VydGlvbnMgaXMgYWxyZWFkeSBpbmNsdWRlZCBpbiAnYXdzLWNkay1saWInXG4gICAqIEBkZWZhdWx0IC0gd2lsbCBiZSBpbmNsdWRlZCBieSBkZWZhdWx0IGZvciBBV1MgQ0RLID49IDEuMTExLjAgPCAyLjAuMFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgY2RrQXNzZXJ0aW9ucz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBNaW5pbXVtIHZlcnNpb24gb2YgdGhlIEFXUyBDREsgdG8gZGVwZW5kIG9uLlxuICAgKiBAZGVmYXVsdCBcIjIuMS4wXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGNka1ZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIExpYnJhcmllcyB3aWxsIGJlIHBpY2tlZCB1cCBieSB0aGUgY29uc3RydWN0IGNhdGFsb2cgd2hlbiB0aGV5IGFyZSBwdWJsaXNoZWQgdG8gbnBtIGFzIGpzaWkgbW9kdWxlcyBhbmQgd2lsbCBiZSBwdWJsaXNoZWQgdW5kZXI6LlxuICAgKiBodHRwczovL2F3c2Nkay5pby9wYWNrYWdlcy9bQFNDT1BFL11QQUNLQUdFQFZFUlNJT05cbiAgICpcbiAgICogVGhlIGNhdGFsb2cgd2lsbCBhbHNvIHBvc3QgYSB0d2VldCB0byBodHRwczovL3R3aXR0ZXIuY29tL2F3c2Nka2lvIHdpdGggdGhlXG4gICAqIHBhY2thZ2UgbmFtZSwgZGVzY3JpcHRpb24gYW5kIHRoZSBhYm92ZSBsaW5rLiBZb3UgY2FuIGRpc2FibGUgdGhlc2UgdHdlZXRzXG4gICAqIHRocm91Z2ggYHsgYW5ub3VuY2U6IGZhbHNlIH1gLlxuICAgKlxuICAgKiBZb3UgY2FuIGFsc28gYWRkIGEgVHdpdHRlciBoYW5kbGUgdGhyb3VnaCBgeyB0d2l0dGVyOiAneHgnIH1gIHdoaWNoIHdpbGwgYmVcbiAgICogbWVudGlvbmVkIGluIHRoZSB0d2VldC5cbiAgICogQGRlZmF1bHQgLSBuZXcgdmVyc2lvbiB3aWxsIGJlIGFubm91bmNlZFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgY2F0YWxvZz86IGNkay5DYXRhbG9nO1xuICAvKipcbiAgICogQGRlZmF1bHQgXCIuXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJvb3RkaXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQdWJsaXNoIHRvIHB5cGkuXG4gICAqIEBkZWZhdWx0IC0gbm8gcHVibGlzaGluZ1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaFRvUHlwaT86IGNkay5Kc2lpUHl0aG9uVGFyZ2V0O1xuICAvKipcbiAgICogUHVibGlzaCB0byBOdUdldC5cbiAgICogQGRlZmF1bHQgLSBubyBwdWJsaXNoaW5nXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoVG9OdWdldD86IGNkay5Kc2lpRG90TmV0VGFyZ2V0O1xuICAvKipcbiAgICogUHVibGlzaCB0byBtYXZlbi5cbiAgICogQGRlZmF1bHQgLSBubyBwdWJsaXNoaW5nXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoVG9NYXZlbj86IGNkay5Kc2lpSmF2YVRhcmdldDtcbiAgLyoqXG4gICAqIFB1Ymxpc2ggR28gYmluZGluZ3MgdG8gYSBnaXQgcmVwb3NpdG9yeS5cbiAgICogQGRlZmF1bHQgLSBubyBwdWJsaXNoaW5nXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoVG9Hbz86IGNkay5Kc2lpR29UYXJnZXQ7XG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIHRoZSBqc2lpIGNvbXBpbGVyIHRvIHVzZS5cbiAgICogU2V0IHRvIFwiKlwiIGlmIHlvdSB3YW50IHRvIG1hbnVhbGx5IG1hbmFnZSB0aGUgdmVyc2lvbiBvZiBqc2lpIGluIHlvdXJcbiAgICogcHJvamVjdCBieSBtYW5hZ2luZyB1cGRhdGVzIHRvIGBwYWNrYWdlLmpzb25gIG9uIHlvdXIgb3duLlxuICAgKlxuICAgKiBOT1RFOiBUaGUganNpaSBjb21waWxlciByZWxlYXNlcyBzaW5jZSA1LjAuMCBhcmUgbm90IHNlbWFudGljYWxseSB2ZXJzaW9uZWRcbiAgICogYW5kIHNob3VsZCByZW1haW4gb24gdGhlIHNhbWUgbWlub3IsIHNvIHdlIHJlY29tbWVuZCB1c2luZyBhIGB+YCBkZXBlbmRlbmN5XG4gICAqIChlLmcuIGB+NS4wLjBgKS5cbiAgICogQGRlZmF1bHQgXCJ+NS44LjBcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKiBAcGpuZXcgXCJ+NS45LjBcIlxuICAgKi9cbiAgcmVhZG9ubHkganNpaVZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBY2NlcHRzIGEgbGlzdCBvZiBnbG9iIHBhdHRlcm5zLlxuICAgKiBGaWxlcyBtYXRjaGluZyBhbnkgb2YgdGhvc2UgcGF0dGVybnMgd2lsbCBiZSBleGNsdWRlZCBmcm9tIHRoZSBUeXBlU2NyaXB0IGNvbXBpbGVyIGlucHV0LlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBqc2lpIHdpbGwgaW5jbHVkZSBhbGwgKi50cyBmaWxlcyAoZXhjZXB0IC5kLnRzIGZpbGVzKSBpbiB0aGUgVHlwZVNjcmlwdCBjb21waWxlciBpbnB1dC5cbiAgICogVGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMgZm9yIGV4YW1wbGUgd2hlbiB0aGUgcGFja2FnZSdzIGJ1aWxkIG9yIHRlc3QgcHJvY2VkdXJlIGdlbmVyYXRlcyAudHMgZmlsZXNcbiAgICogdGhhdCBjYW5ub3QgYmUgY29tcGlsZWQgd2l0aCBqc2lpJ3MgY29tcGlsZXIgc2V0dGluZ3MuXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBleGNsdWRlVHlwZXNjcmlwdD86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBGaWxlIHBhdGggZm9yIGdlbmVyYXRlZCBkb2NzLlxuICAgKiBAZGVmYXVsdCBcIkFQSS5tZFwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBkb2NnZW5GaWxlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIEVtaXQgYSBjb21wcmVzc2VkIHZlcnNpb24gb2YgdGhlIGFzc2VtYmx5LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgY29tcHJlc3NBc3NlbWJseT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBpZ25vcmUgZmlsZSBmb3IgQVBJIGNvbXBhdGliaWxpdHkgdGVzdHMuXG4gICAqIEBkZWZhdWx0IFwiLmNvbXBhdGlnbm9yZVwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBjb21wYXRJZ25vcmU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IHJ1biBBUEkgY29tcGF0aWJpbGl0eSB0ZXN0IGFnYWluc3QgdGhlIGxhdGVzdCB2ZXJzaW9uIHB1Ymxpc2hlZCB0byBucG0gYWZ0ZXIgY29tcGlsYXRpb24uXG4gICAqIC0gWW91IGNhbiBtYW51YWxseSBydW4gY29tcGF0aWJpbGl0eSB0ZXN0cyB1c2luZyBgeWFybiBjb21wYXRgIGlmIHRoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZC5cbiAgICogLSBZb3UgY2FuIGlnbm9yZSBjb21wYXRpYmlsaXR5IGZhaWx1cmVzIGJ5IGFkZGluZyBsaW5lcyB0byBhIFwiLmNvbXBhdGlnbm9yZVwiIGZpbGUuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBjb21wYXQ/OiBib29sZWFuO1xuICAvKipcbiAgICogR2l0IHJlcG9zaXRvcnkgVVJMLlxuICAgKiBAZGVmYXVsdCAkR0lUX1JFTU9URVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeVVybDogc3RyaW5nO1xuICAvKipcbiAgICogRW1haWwgb3IgVVJMIG9mIHRoZSBsaWJyYXJ5IGF1dGhvci5cbiAgICogQGRlZmF1bHQgJEdJVF9VU0VSX0VNQUlMXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBhdXRob3JBZGRyZXNzOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgbGlicmFyeSBhdXRob3IuXG4gICAqIEBkZWZhdWx0ICRHSVRfVVNFUl9OQU1FXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBhdXRob3I6IHN0cmluZztcbiAgLyoqXG4gICAqIFR5cGVTY3JpcHQgdmVyc2lvbiB0byB1c2UuXG4gICAqIE5PVEU6IFR5cGVzY3JpcHQgaXMgbm90IHNlbWFudGljYWxseSB2ZXJzaW9uZWQgYW5kIHNob3VsZCByZW1haW4gb24gdGhlXG4gICAqIHNhbWUgbWlub3IsIHNvIHdlIHJlY29tbWVuZCB1c2luZyBhIGB+YCBkZXBlbmRlbmN5IChlLmcuIGB+MS4yLjNgKS5cbiAgICogQGRlZmF1bHQgXCJsYXRlc3RcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXNjcmlwdFZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZGV2ZWxvcG1lbnQgdHNjb25maWcuanNvbiBmaWxlLlxuICAgKiBAZGVmYXVsdCBcInRzY29uZmlnLmRldi5qc29uXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHRzY29uZmlnRGV2RmlsZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEN1c3RvbSB0c2NvbmZpZyBvcHRpb25zIGZvciB0aGUgZGV2ZWxvcG1lbnQgdHNjb25maWcuanNvbiBmaWxlICh1c2VkIGZvciB0ZXN0aW5nKS5cbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIHByb2R1Y3Rpb24gdHNjb25maWcgb3B0aW9uc1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgdHNjb25maWdEZXY/OiBqYXZhc2NyaXB0LlR5cGVzY3JpcHRDb25maWdPcHRpb25zO1xuICAvKipcbiAgICogQ3VzdG9tIFRTQ29uZmlnLlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgb3B0aW9uc1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgdHNjb25maWc/OiBqYXZhc2NyaXB0LlR5cGVzY3JpcHRDb25maWdPcHRpb25zO1xuICAvKipcbiAgICogSmVzdCB0ZXN0cyBkaXJlY3RvcnkuIFRlc3RzIGZpbGVzIHNob3VsZCBiZSBuYW1lZCBgeHh4LnRlc3QudHNgLlxuICAgKiBJZiB0aGlzIGRpcmVjdG9yeSBpcyB1bmRlciBgc3JjZGlyYCAoZS5nLiBgc3JjL3Rlc3RgLCBgc3JjL19fdGVzdHNfX2ApLFxuICAgKiB0aGVuIHRlc3RzIGFyZSBnb2luZyB0byBiZSBjb21waWxlZCBpbnRvIGBsaWIvYCBhbmQgZXhlY3V0ZWQgYXMgamF2YXNjcmlwdC5cbiAgICogSWYgdGhlIHRlc3QgZGlyZWN0b3J5IGlzIG91dHNpZGUgb2YgYHNyY2AsIHRoZW4gd2UgY29uZmlndXJlIGplc3QgdG9cbiAgICogY29tcGlsZSB0aGUgY29kZSBpbi1tZW1vcnkuXG4gICAqIEBkZWZhdWx0IFwidGVzdFwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSB0ZXN0ZGlyPzogc3RyaW5nO1xuICAvKipcbiAgICogVHlwZXNjcmlwdCBzb3VyY2VzIGRpcmVjdG9yeS5cbiAgICogQGRlZmF1bHQgXCJzcmNcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgc3JjZGlyPzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9ucyBmb3IgLnByb2plbnJjLnRzLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVucmNUc09wdGlvbnM/OiB0eXBlc2NyaXB0LlByb2plbnJjT3B0aW9ucztcbiAgLyoqXG4gICAqIFVzZSBUeXBlU2NyaXB0IGZvciB5b3VyIHByb2plbnJjIGZpbGUgKGAucHJvamVucmMudHNgKS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICogQHBqbmV3IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbnJjVHM/OiBib29sZWFuO1xuICAvKipcbiAgICogVHlwZXNjcmlwdCAgYXJ0aWZhY3RzIG91dHB1dCBkaXJlY3RvcnkuXG4gICAqIEBkZWZhdWx0IFwibGliXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGxpYmRpcj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSAuZC50cyBmaWxlIHRoYXQgaW5jbHVkZXMgdGhlIHR5cGUgZGVjbGFyYXRpb25zIGZvciB0aGlzIG1vZHVsZS5cbiAgICogQGRlZmF1bHQgLSAuZC50cyBmaWxlIGRlcml2ZWQgZnJvbSB0aGUgcHJvamVjdCdzIGVudHJ5cG9pbnQgKHVzdWFsbHkgbGliL2luZGV4LmQudHMpXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBlbnRyeXBvaW50VHlwZXM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2NzIGRpcmVjdG9yeS5cbiAgICogQGRlZmF1bHQgXCJkb2NzXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGRvY3NEaXJlY3Rvcnk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2NnZW4gYnkgVHlwZWRvYy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGRvY2dlbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEbyBub3QgZ2VuZXJhdGUgYSBgdHNjb25maWcuZGV2Lmpzb25gIGZpbGUuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlVHNjb25maWdEZXY/OiBib29sZWFuO1xuICAvKipcbiAgICogRG8gbm90IGdlbmVyYXRlIGEgYHRzY29uZmlnLmpzb25gIGZpbGUgKHVzZWQgYnkganNpaSBwcm9qZWN0cyBzaW5jZSB0c2NvbmZpZy5qc29uIGlzIGdlbmVyYXRlZCBieSB0aGUganNpaSBjb21waWxlcikuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlVHNjb25maWc/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5hYmxlIE5vZGUuanMgcGFja2FnZSBjYWNoZSBpbiBHaXRIdWIgd29ya2Zsb3dzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dQYWNrYWdlQ2FjaGU/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIG5vZGUgdmVyc2lvbiB1c2VkIGluIEdpdEh1YiBBY3Rpb25zIHdvcmtmbG93cy5cbiAgICogQWx3YXlzIHVzZSB0aGlzIG9wdGlvbiBpZiB5b3VyIEdpdEh1YiBBY3Rpb25zIHdvcmtmbG93cyByZXF1aXJlIGEgc3BlY2lmaWMgdG8gcnVuLlxuICAgKiBAZGVmYXVsdCAtIGBtaW5Ob2RlVmVyc2lvbmAgaWYgc2V0LCBvdGhlcndpc2UgYGx0cy8qYC5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93Tm9kZVZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZ2l0IGlkZW50aXR5IHRvIHVzZSBpbiB3b3JrZmxvd3MuXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBHaXRIdWIgQWN0aW9ucyB1c2VyXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd0dpdElkZW50aXR5PzogZ2l0aHViLkdpdElkZW50aXR5O1xuICAvKipcbiAgICogV29ya2Zsb3cgc3RlcHMgdG8gdXNlIGluIG9yZGVyIHRvIGJvb3RzdHJhcCB0aGlzIHJlcG8uXG4gICAqIEBkZWZhdWx0IFwieWFybiBpbnN0YWxsIC0tZnJvemVuLWxvY2tmaWxlICYmIHlhcm4gcHJvamVuXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93Qm9vdHN0cmFwU3RlcHM/OiBBcnJheTxnaXRodWIud29ya2Zsb3dzLkpvYlN0ZXA+O1xuICAvKipcbiAgICogQXV0b21hdGljYWxseSByZWxlYXNlIHRvIG5wbSB3aGVuIG5ldyB2ZXJzaW9ucyBhcmUgaW50cm9kdWNlZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2VUb05wbT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBZGQgcmVsZWFzZSBtYW5hZ2VtZW50IHRvIHRoaXMgcHJvamVjdC5cbiAgICogQGRlZmF1bHQgLSB0cnVlIChmYWxzZSBmb3Igc3VicHJvamVjdHMpXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSByZWxlYXNlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBjb250ZW50cyBvZiB0aGUgcHVsbCByZXF1ZXN0IHRlbXBsYXRlLlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgY29udGVudFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHVsbFJlcXVlc3RUZW1wbGF0ZUNvbnRlbnRzPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIEluY2x1ZGUgYSBHaXRIdWIgcHVsbCByZXF1ZXN0IHRlbXBsYXRlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwdWxsUmVxdWVzdFRlbXBsYXRlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgcHJvamVuIHRvIGluc3RhbGwuXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdHMgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVuVmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIC5wcm9qZW5yYy5qcy5cbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IG9wdGlvbnNcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbnJjSnNPcHRpb25zPzogamF2YXNjcmlwdC5Qcm9qZW5yY09wdGlvbnM7XG4gIC8qKlxuICAgKiBHZW5lcmF0ZSAob25jZSkgLnByb2plbnJjLmpzIChpbiBKYXZhU2NyaXB0KS4gU2V0IHRvIGBmYWxzZWAgaW4gb3JkZXIgdG8gZGlzYWJsZSAucHJvamVucmMuanMgZ2VuZXJhdGlvbi5cbiAgICogQGRlZmF1bHQgLSB0cnVlIGlmIHByb2plbnJjSnNvbiBpcyBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVucmNKcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgb2YgXCJwcm9qZW5cIiBzaG91bGQgYmUgaW5zdGFsbGVkIGFzIGEgZGV2RGVwZW5kZW5jeS5cbiAgICogQGRlZmF1bHQgLSB0cnVlIGlmIG5vdCBhIHN1YnByb2plY3RcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbkRldkRlcGVuZGVuY3k/OiBib29sZWFuO1xuICAvKipcbiAgICogRGVmaW5lcyBhIGBwYWNrYWdlYCB0YXNrIHRoYXQgd2lsbCBwcm9kdWNlIGFuIG5wbSB0YXJiYWxsIHVuZGVyIHRoZSBhcnRpZmFjdHMgZGlyZWN0b3J5IChlLmcuIGBkaXN0YCkuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2U/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciAubnBtaWdub3JlIGZpbGUuXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBucG1JZ25vcmVPcHRpb25zPzogSWdub3JlRmlsZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBEZWZpbmVzIGFuIC5ucG1pZ25vcmUgZmlsZS4gTm9ybWFsbHkgdGhpcyBpcyBvbmx5IG5lZWRlZCBmb3IgbGlicmFyaWVzIHRoYXQgYXJlIHBhY2thZ2VkIGFzIHRhcmJhbGxzLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBucG1pZ25vcmVFbmFibGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZW50cmllcyB0byAuZ2l0aWdub3JlLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aWdub3JlPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIGBVcGdyYWRlRGVwZW5kZW5jaWVzYC5cbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IG9wdGlvbnNcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGRlcHNVcGdyYWRlT3B0aW9ucz86IGphdmFzY3JpcHQuVXBncmFkZURlcGVuZGVuY2llc09wdGlvbnM7XG4gIC8qKlxuICAgKiBVc2UgdGFza3MgYW5kIGdpdGh1YiB3b3JrZmxvd3MgdG8gaGFuZGxlIGRlcGVuZGVuY3kgdXBncmFkZXMuXG4gICAqIENhbm5vdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYGRlcGVuZGFib3RgLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBkZXBzVXBncmFkZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBkZXBlbmRhYm90LlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgb3B0aW9uc1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZGVwZW5kYWJvdE9wdGlvbnM/OiBnaXRodWIuRGVwZW5kYWJvdE9wdGlvbnM7XG4gIC8qKlxuICAgKiBVc2UgZGVwZW5kYWJvdCB0byBoYW5kbGUgZGVwZW5kZW5jeSB1cGdyYWRlcy5cbiAgICogQ2Fubm90IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBgZGVwc1VwZ3JhZGVgLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZGVwZW5kYWJvdD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgY29weXJpZ2h0IHllYXJzIHRvIHB1dCBpbiB0aGUgTElDRU5TRSBmaWxlLlxuICAgKiBAZGVmYXVsdCAtIGN1cnJlbnQgeWVhclxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgY29weXJpZ2h0UGVyaW9kPzogc3RyaW5nO1xuICAvKipcbiAgICogTGljZW5zZSBjb3B5cmlnaHQgb3duZXIuXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdHMgdG8gdGhlIHZhbHVlIG9mIGF1dGhvck5hbWUgb3IgXCJcIiBpZiBgYXV0aG9yTmFtZWAgaXMgdW5kZWZpbmVkLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgY29weXJpZ2h0T3duZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIHNlY3JldCBuYW1lIGZvciBhIHNwZWNpZmllZCBodHRwczovL2NvZGVjb3YuaW8vIHRva2VuLlxuICAgKiBAZGVmYXVsdCAtIE9JREMgYXV0aCBpcyB1c2VkXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBjb2RlQ292VG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEZWZpbmUgYSBHaXRIdWIgd29ya2Zsb3cgc3RlcCBmb3Igc2VuZGluZyBjb2RlIGNvdmVyYWdlIG1ldHJpY3MgdG8gaHR0cHM6Ly9jb2RlY292LmlvLyBVc2VzIGNvZGVjb3YvY29kZWNvdi1hY3Rpb25AdjUgQnkgZGVmYXVsdCwgT0lEQyBhdXRoIGlzIHVzZWQuIEFsdGVybmF0aXZlbHkgYSB0b2tlbiBjYW4gYmUgcHJvdmlkZWQgdmlhIGBjb2RlQ292VG9rZW5TZWNyZXRgLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgY29kZUNvdj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb25maWd1cmUgd2hpY2ggbGljZW5zZXMgc2hvdWxkIGJlIGRlZW1lZCBhY2NlcHRhYmxlIGZvciB1c2UgYnkgZGVwZW5kZW5jaWVzLlxuICAgKiBUaGlzIHNldHRpbmcgd2lsbCBjYXVzZSB0aGUgYnVpbGQgdG8gZmFpbCwgaWYgYW55IHByb2hpYml0ZWQgb3Igbm90IGFsbG93ZWQgbGljZW5zZXMgYXJlcyBlbmNvdW50ZXJlZC5cbiAgICogQGRlZmF1bHQgLSBubyBsaWNlbnNlIGNoZWNrcyBhcmUgcnVuIGR1cmluZyB0aGUgYnVpbGQgYW5kIGFsbCBsaWNlbnNlcyB3aWxsIGJlIGFjY2VwdGVkXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBjaGVja0xpY2Vuc2VzPzogamF2YXNjcmlwdC5MaWNlbnNlQ2hlY2tlck9wdGlvbnM7XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBgQnVuZGxlcmAuXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBidW5kbGVyT3B0aW9ucz86IGphdmFzY3JpcHQuQnVuZGxlck9wdGlvbnM7XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBQUiBidWlsZCB3b3JrZmxvdy5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkV29ya2Zsb3dPcHRpb25zPzogamF2YXNjcmlwdC5CdWlsZFdvcmtmbG93T3B0aW9ucztcbiAgLyoqXG4gICAqIERlZmluZSBhIEdpdEh1YiB3b3JrZmxvdyBmb3IgYnVpbGRpbmcgUFJzLlxuICAgKiBAZGVmYXVsdCAtIHRydWUgaWYgbm90IGEgc3VicHJvamVjdFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRXb3JrZmxvdz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCaW9tZSBvcHRpb25zLlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgb3B0aW9uc1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYmlvbWVPcHRpb25zPzogamF2YXNjcmlwdC5CaW9tZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBTZXR1cCBCaW9tZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGJpb21lPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgYXBwcm92ZSBkZXBzIHVwZ3JhZGUgUFJzLCBhbGxvd2luZyB0aGVtIHRvIGJlIG1lcmdlZCBieSBtZXJnaWZ5IChpZiBjb25maWd1ZWQpLlxuICAgKiBUaHJvdyBpZiBzZXQgdG8gdHJ1ZSBidXQgYGF1dG9BcHByb3ZlT3B0aW9uc2AgYXJlIG5vdCBkZWZpbmVkLlxuICAgKiBAZGVmYXVsdCAtIHRydWVcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGF1dG9BcHByb3ZlVXBncmFkZXM/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VjdXJpdHkgYXVkaXQgb3B0aW9ucy5cbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IG9wdGlvbnNcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGF1ZGl0RGVwc09wdGlvbnM/OiBqYXZhc2NyaXB0LkF1ZGl0T3B0aW9ucztcbiAgLyoqXG4gICAqIFJ1biBzZWN1cml0eSBhdWRpdCBvbiBkZXBlbmRlbmNpZXMuXG4gICAqIFdoZW4gZW5hYmxlZCwgY3JlYXRlcyBhbiBcImF1ZGl0XCIgdGFzayB0aGF0IGNoZWNrcyBmb3Iga25vd24gc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzXG4gICAqIGluIGRlcGVuZGVuY2llcy4gQnkgZGVmYXVsdCwgcnVucyBkdXJpbmcgZXZlcnkgYnVpbGQgYW5kIGNoZWNrcyBmb3IgXCJoaWdoXCIgc2V2ZXJpdHlcbiAgICogdnVsbmVyYWJpbGl0aWVzIG9yIGFib3ZlIGluIGFsbCBkZXBlbmRlbmNpZXMgKGluY2x1ZGluZyBkZXYgZGVwZW5kZW5jaWVzKS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGF1ZGl0RGVwcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBIGRpcmVjdG9yeSB3aGljaCB3aWxsIGNvbnRhaW4gYnVpbGQgYXJ0aWZhY3RzLlxuICAgKiBAZGVmYXVsdCBcImRpc3RcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYXJ0aWZhY3RzRGlyZWN0b3J5Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG1haW4gcmVsZWFzZSBicmFuY2guXG4gICAqIEBkZWZhdWx0IFwibWFpblwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0UmVsZWFzZUJyYW5jaDogc3RyaW5nO1xuICAvKipcbiAgICogR2l0aHViIFJ1bm5lciBHcm91cCBzZWxlY3Rpb24gb3B0aW9ucy5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICogQGRlc2NyaXB0aW9uIERlZmluZXMgYSB0YXJnZXQgUnVubmVyIEdyb3VwIGJ5IG5hbWUgYW5kL29yIGxhYmVsc1xuICAgKiBAdGhyb3dzIHtFcnJvcn0gaWYgYm90aCBgcnVuc09uYCBhbmQgYHJ1bnNPbkdyb3VwYCBhcmUgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd1J1bnNPbkdyb3VwPzogR3JvdXBSdW5uZXJPcHRpb25zO1xuICAvKipcbiAgICogR2l0aHViIFJ1bm5lciBzZWxlY3Rpb24gbGFiZWxzLlxuICAgKiBAZGVmYXVsdCBbXCJ1YnVudHUtbGF0ZXN0XCJdXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIGEgdGFyZ2V0IFJ1bm5lciBieSBsYWJlbHNcbiAgICogQHRocm93cyB7RXJyb3J9IGlmIGJvdGggYHJ1bnNPbmAgYW5kIGBydW5zT25Hcm91cGAgYXJlIHNwZWNpZmllZFxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dSdW5zT24/OiBBcnJheTxzdHJpbmc+O1xuICAvKipcbiAgICogQ29udGFpbmVyIGltYWdlIHRvIHVzZSBmb3IgR2l0SHViIHdvcmtmbG93cy5cbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IGltYWdlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd0NvbnRhaW5lckltYWdlPzogc3RyaW5nO1xuICAvKipcbiAgICogQ3VzdG9tIGNvbmZpZ3VyYXRpb24gdXNlZCB3aGVuIGNyZWF0aW5nIGNoYW5nZWxvZyB3aXRoIGNvbW1pdC1hbmQtdGFnLXZlcnNpb24gcGFja2FnZS5cbiAgICogR2l2ZW4gdmFsdWVzIGVpdGhlciBhcHBlbmQgdG8gZGVmYXVsdCBjb25maWd1cmF0aW9uIG9yIG92ZXJ3cml0ZSB2YWx1ZXMgaW4gaXQuXG4gICAqIEBkZWZhdWx0IC0gc3RhbmRhcmQgY29uZmlndXJhdGlvbiBhcHBsaWNhYmxlIGZvciBHaXRIdWIgcmVwb3NpdG9yaWVzXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9ucmNPcHRpb25zPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqXG4gICAqIEEgc2V0IG9mIHdvcmtmbG93IHN0ZXBzIHRvIGV4ZWN1dGUgaW4gb3JkZXIgdG8gc2V0dXAgdGhlIHdvcmtmbG93IGNvbnRhaW5lci5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2VXb3JrZmxvd1NldHVwU3RlcHM/OiBBcnJheTxnaXRodWIud29ya2Zsb3dzLkpvYlN0ZXA+O1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGRlZmF1bHQgcmVsZWFzZSB3b3JrZmxvdy5cbiAgICogQGRlZmF1bHQgXCJyZWxlYXNlXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2VXb3JrZmxvd05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBCdWlsZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZm9yIHJlbGVhc2Ugd29ya2Zsb3dzLlxuICAgKiBAZGVmYXVsdCB7fVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZVdvcmtmbG93RW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqXG4gICAqIFRoZSByZWxlYXNlIHRyaWdnZXIgdG8gdXNlLlxuICAgKiBAZGVmYXVsdCAtIENvbnRpbnVvdXMgcmVsZWFzZXMgKGBSZWxlYXNlVHJpZ2dlci5jb250aW51b3VzKClgKVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZVRyaWdnZXI/OiByZWxlYXNlLlJlbGVhc2VUcmlnZ2VyO1xuICAvKipcbiAgICogQXV0b21hdGljYWxseSBhZGQgdGhlIGdpdmVuIHByZWZpeCB0byByZWxlYXNlIHRhZ3MuIFVzZWZ1bCBpZiB5b3UgYXJlIHJlbGVhc2luZyBvbiBtdWx0aXBsZSBicmFuY2hlcyB3aXRoIG92ZXJsYXBwaW5nIHZlcnNpb24gbnVtYmVycy5cbiAgICogTm90ZTogdGhpcyBwcmVmaXggaXMgdXNlZCB0byBkZXRlY3QgdGhlIGxhdGVzdCB0YWdnZWQgdmVyc2lvblxuICAgKiB3aGVuIGJ1bXBpbmcsIHNvIGlmIHlvdSBjaGFuZ2UgdGhpcyBvbiBhIHByb2plY3Qgd2l0aCBhbiBleGlzdGluZyB2ZXJzaW9uXG4gICAqIGhpc3RvcnksIHlvdSBtYXkgbmVlZCB0byBtYW51YWxseSB0YWcgeW91ciBsYXRlc3QgcmVsZWFzZVxuICAgKiB3aXRoIHRoZSBuZXcgcHJlZml4LlxuICAgKiBAZGVmYXVsdCBcInZcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZVRhZ1ByZWZpeD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBsYWJlbCB0byBhcHBseSB0byBpc3N1ZXMgaW5kaWNhdGluZyBwdWJsaXNoIGZhaWx1cmVzLlxuICAgKiBPbmx5IGFwcGxpZXMgaWYgYHJlbGVhc2VGYWlsdXJlSXNzdWVgIGlzIHRydWUuXG4gICAqIEBkZWZhdWx0IFwiZmFpbGVkLXJlbGVhc2VcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZUZhaWx1cmVJc3N1ZUxhYmVsPzogc3RyaW5nO1xuICAvKipcbiAgICogQ3JlYXRlIGEgZ2l0aHViIGlzc3VlIG9uIGV2ZXJ5IGZhaWxlZCBwdWJsaXNoaW5nIHRhc2suXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSByZWxlYXNlRmFpbHVyZUlzc3VlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBHaXRIdWIgQWN0aW9ucyBlbnZpcm9ubWVudCB1c2VkIGZvciB0aGUgcmVsZWFzZS5cbiAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBhZGQgYW4gZXhwbGljaXQgYXBwcm92YWwgc3RlcCB0byB0aGUgcmVsZWFzZVxuICAgKiBvciBsaW1pdCB3aG8gY2FuIGluaXRpYXRlIGEgcmVsZWFzZSB0aHJvdWdoIGVudmlyb25tZW50IHByb3RlY3Rpb24gcnVsZXMuXG4gICAqXG4gICAqIFdoZW4gbXVsdGlwbGUgYXJ0aWZhY3RzIGFyZSByZWxlYXNlZCwgdGhlIGVudmlyb25tZW50IGNhbiBiZSBvdmVyd3JpdHRlblxuICAgKiBvbiBhIHBlciBhcnRpZmFjdCBiYXNpcy5cbiAgICogQGRlZmF1bHQgLSBubyBlbnZpcm9ubWVudCB1c2VkLCB1bmxlc3Mgc2V0IGF0IHRoZSBhcnRpZmFjdCBsZXZlbFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZUVudmlyb25tZW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogRGVmaW5lcyBhZGRpdGlvbmFsIHJlbGVhc2UgYnJhbmNoZXMuXG4gICAqIEEgd29ya2Zsb3cgd2lsbCBiZSBjcmVhdGVkIGZvciBlYWNoXG4gICAqIHJlbGVhc2UgYnJhbmNoIHdoaWNoIHdpbGwgcHVibGlzaCByZWxlYXNlcyBmcm9tIGNvbW1pdHMgaW4gdGhpcyBicmFuY2guXG4gICAqIEVhY2ggcmVsZWFzZSBicmFuY2ggX211c3RfIGJlIGFzc2lnbmVkIGEgbWFqb3IgdmVyc2lvbiBudW1iZXIgd2hpY2ggaXMgdXNlZFxuICAgKiB0byBlbmZvcmNlIHRoYXQgdmVyc2lvbnMgcHVibGlzaGVkIGZyb20gdGhhdCBicmFuY2ggYWx3YXlzIHVzZSB0aGF0IG1ham9yXG4gICAqIHZlcnNpb24uIElmIG11bHRpcGxlIGJyYW5jaGVzIGFyZSB1c2VkLCB0aGUgYG1ham9yVmVyc2lvbmAgZmllbGQgbXVzdCBhbHNvXG4gICAqIGJlIHByb3ZpZGVkIGZvciB0aGUgZGVmYXVsdCBicmFuY2guXG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBicmFuY2hlcyBhcmUgdXNlZCBmb3IgcmVsZWFzZS4geW91IGNhbiB1c2VcbmBhZGRCcmFuY2goKWAgdG8gYWRkIGFkZGl0aW9uYWwgYnJhbmNoZXMuXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSByZWxlYXNlQnJhbmNoZXM/OiBSZWNvcmQ8c3RyaW5nLCByZWxlYXNlLkJyYW5jaE9wdGlvbnM+O1xuICAvKipcbiAgICogRmluZCBjb21taXRzIHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcmVsZWFzYWJsZSBVc2VkIHRvIGRlY2lkZSBpZiBhIHJlbGVhc2UgaXMgcmVxdWlyZWQuXG4gICAqIEBkZWZhdWx0IFJlbGVhc2FibGVDb21taXRzLmV2ZXJ5Q29tbWl0KClcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2FibGVDb21taXRzPzogUmVsZWFzYWJsZUNvbW1pdHM7XG4gIC8qKlxuICAgKiBEZWZpbmUgcHVibGlzaGluZyB0YXNrcyB0aGF0IGNhbiBiZSBleGVjdXRlZCBtYW51YWxseSBhcyB3ZWxsIGFzIHdvcmtmbG93cy5cbiAgICogTm9ybWFsbHksIHB1Ymxpc2hpbmcgb25seSBoYXBwZW5zIHdpdGhpbiBhdXRvbWF0ZWQgd29ya2Zsb3dzLiBFbmFibGUgdGhpc1xuICAgKiBpbiBvcmRlciB0byBjcmVhdGUgYSBwdWJsaXNoaW5nIHRhc2sgZm9yIGVhY2ggcHVibGlzaGluZyBhY3Rpdml0eS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hUYXNrcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbnN0ZWFkIG9mIGFjdHVhbGx5IHB1Ymxpc2hpbmcgdG8gcGFja2FnZSBtYW5hZ2VycywganVzdCBwcmludCB0aGUgcHVibGlzaGluZyBjb21tYW5kLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaERyeVJ1bj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCdW1wIHZlcnNpb25zIGZyb20gdGhlIGRlZmF1bHQgYnJhbmNoIGFzIHByZS1yZWxlYXNlcyAoZS5nLiBcImJldGFcIiwgXCJhbHBoYVwiLCBcInByZVwiKS5cbiAgICogQGRlZmF1bHQgLSBub3JtYWwgc2VtYW50aWMgdmVyc2lvbnNcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByZXJlbGVhc2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTdGVwcyB0byBleGVjdXRlIGFmdGVyIGJ1aWxkIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2Ugd29ya2Zsb3cuXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwb3N0QnVpbGRTdGVwcz86IEFycmF5PGdpdGh1Yi53b3JrZmxvd3MuSm9iU3RlcD47XG4gIC8qKlxuICAgKiBUaGUgbnBtRGlzdFRhZyB0byB1c2Ugd2hlbiBwdWJsaXNoaW5nIGZyb20gdGhlIGRlZmF1bHQgYnJhbmNoLlxuICAgKiBUbyBzZXQgdGhlIG5wbSBkaXN0LXRhZyBmb3IgcmVsZWFzZSBicmFuY2hlcywgc2V0IHRoZSBgbnBtRGlzdFRhZ2AgcHJvcGVydHlcbiAgICogZm9yIGVhY2ggYnJhbmNoLlxuICAgKiBAZGVmYXVsdCBcImxhdGVzdFwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBucG1EaXN0VGFnPzogc3RyaW5nO1xuICAvKipcbiAgICogQSBzaGVsbCBjb21tYW5kIHRvIGNvbnRyb2wgdGhlIG5leHQgdmVyc2lvbiB0byByZWxlYXNlLlxuICAgKiBJZiBwcmVzZW50LCB0aGlzIHNoZWxsIGNvbW1hbmQgd2lsbCBiZSBydW4gYmVmb3JlIHRoZSBidW1wIGlzIGV4ZWN1dGVkLCBhbmRcbiAgICogaXQgZGV0ZXJtaW5lcyB3aGF0IHZlcnNpb24gdG8gcmVsZWFzZS4gSXQgd2lsbCBiZSBleGVjdXRlZCBpbiB0aGUgZm9sbG93aW5nXG4gICAqIGVudmlyb25tZW50OlxuICAgKlxuICAgKiAtIFdvcmtpbmcgZGlyZWN0b3J5OiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuXG4gICAqIC0gYCRWRVJTSU9OYDogdGhlIGN1cnJlbnQgdmVyc2lvbi4gTG9va3MgbGlrZSBgMS4yLjNgLlxuICAgKiAtIGAkTEFURVNUX1RBR2A6IHRoZSBtb3N0IHJlY2VudCB0YWcuIExvb2tzIGxpa2UgYHByZWZpeC12MS4yLjNgLCBvciBtYXkgYmUgdW5zZXQuXG4gICAqIC0gYCRTVUdHRVNURURfQlVNUGA6IHRoZSBzdWdnZXN0ZWQgYnVtcCBhY3Rpb24gYmFzZWQgb24gY29tbWl0cy4gT25lIG9mIGBtYWpvcnxtaW5vcnxwYXRjaHxub25lYC5cbiAgICpcbiAgICogVGhlIGNvbW1hbmQgc2hvdWxkIHByaW50IG9uZSBvZiB0aGUgZm9sbG93aW5nIHRvIGBzdGRvdXRgOlxuICAgKlxuICAgKiAtIE5vdGhpbmc6IHRoZSBuZXh0IHZlcnNpb24gbnVtYmVyIHdpbGwgYmUgZGV0ZXJtaW5lZCBiYXNlZCBvbiBjb21taXQgaGlzdG9yeS5cbiAgICogLSBgeC55LnpgOiB0aGUgbmV4dCB2ZXJzaW9uIG51bWJlciB3aWxsIGJlIGB4LnkuemAuXG4gICAqIC0gYG1ham9yfG1pbm9yfHBhdGNoYDogdGhlIG5leHQgdmVyc2lvbiBudW1iZXIgd2lsbCBiZSB0aGUgY3VycmVudCB2ZXJzaW9uIG51bWJlclxuICAgKiAgIHdpdGggdGhlIGluZGljYXRlZCBjb21wb25lbnQgYnVtcGVkLlxuICAgKlxuICAgKiBUaGlzIHNldHRpbmcgY2Fubm90IGJlIHNwZWNpZmllZCB0b2dldGhlciB3aXRoIGBtaW5NYWpvclZlcnNpb25gOyB0aGUgaW52b2tlZFxuICAgKiBzY3JpcHQgY2FuIGJlIHVzZWQgdG8gYWNoaWV2ZSB0aGUgZWZmZWN0cyBvZiBgbWluTWFqb3JWZXJzaW9uYC5cbiAgICogQGRlZmF1bHQgLSBUaGUgbmV4dCB2ZXJzaW9uIHdpbGwgYmUgZGV0ZXJtaW5lZCBiYXNlZCBvbiB0aGUgY29tbWl0IGhpc3RvcnkgYW5kIHByb2plY3Qgc2V0dGluZ3MuXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBuZXh0VmVyc2lvbkNvbW1hbmQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNaW5pbWFsIE1ham9yIHZlcnNpb24gdG8gcmVsZWFzZS5cbiAgICogVGhpcyBjYW4gYmUgdXNlZnVsIHRvIHNldCB0byAxLCBhcyBicmVha2luZyBjaGFuZ2VzIGJlZm9yZSB0aGUgMS54IG1ham9yXG4gICAqIHJlbGVhc2UgYXJlIG5vdCBpbmNyZW1lbnRpbmcgdGhlIG1ham9yIHZlcnNpb24gbnVtYmVyLlxuICAgKlxuICAgKiBDYW4gbm90IGJlIHNldCB0b2dldGhlciB3aXRoIGBtYWpvclZlcnNpb25gLlxuICAgKiBAZGVmYXVsdCAtIE5vIG1pbmltdW0gdmVyc2lvbiBpcyBiZWluZyBlbmZvcmNlZFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbWluTWFqb3JWZXJzaW9uPzogbnVtYmVyO1xuICAvKipcbiAgICogTWFqb3IgdmVyc2lvbiB0byByZWxlYXNlIGZyb20gdGhlIGRlZmF1bHQgYnJhbmNoLlxuICAgKiBJZiB0aGlzIGlzIHNwZWNpZmllZCwgd2UgYnVtcCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtYWpvciB2ZXJzaW9uIGxpbmUuXG4gICAqIElmIG5vdCBzcGVjaWZpZWQsIHdlIGJ1bXAgdGhlIGdsb2JhbCBsYXRlc3QgdmVyc2lvbi5cbiAgICogQGRlZmF1bHQgLSBNYWpvciB2ZXJzaW9uIGlzIG5vdCBlbmZvcmNlZC5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IG1ham9yVmVyc2lvbj86IG51bWJlcjtcbiAgLyoqXG4gICAqIFZlcnNpb24gcmVxdWlyZW1lbnQgb2YgYHB1YmxpYmAgd2hpY2ggaXMgdXNlZCB0byBwdWJsaXNoIG1vZHVsZXMgdG8gbnBtLlxuICAgKiBAZGVmYXVsdCBcImxhdGVzdFwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBqc2lpUmVsZWFzZVZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYGNvbW1pdC1hbmQtdGFnLXZlcnNpb25gIGNvbXBhdGlibGUgcGFja2FnZSB1c2VkIHRvIGJ1bXAgdGhlIHBhY2thZ2UgdmVyc2lvbiwgYXMgYSBkZXBlbmRlbmN5IHN0cmluZy5cbiAgICogVGhpcyBjYW4gYmUgYW55IGNvbXBhdGlibGUgcGFja2FnZSB2ZXJzaW9uLCBpbmNsdWRpbmcgdGhlIGRlcHJlY2F0ZWQgYHN0YW5kYXJkLXZlcnNpb25AOWAuXG4gICAqIEBkZWZhdWx0IC0gQSByZWNlbnQgdmVyc2lvbiBvZiBcImNvbW1pdC1hbmQtdGFnLXZlcnNpb25cIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYnVtcFBhY2thZ2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBZYXJuIEJlcnJ5LlxuICAgKiBAZGVmYXVsdCAtIFlhcm4gQmVycnkgdjQgd2l0aCBhbGwgZGVmYXVsdCBvcHRpb25zXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSB5YXJuQmVycnlPcHRpb25zPzogamF2YXNjcmlwdC5ZYXJuQmVycnlPcHRpb25zO1xuICAvKipcbiAgICogUGFja2FnZSdzIFN0YWJpbGl0eS5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHN0YWJpbGl0eT86IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHByaXZhdGVseSBob3N0ZWQgc2NvcGVkIHBhY2thZ2VzLlxuICAgKiBAZGVmYXVsdCAtIGZldGNoIGFsbCBzY29wZWQgcGFja2FnZXMgZnJvbSB0aGUgcHVibGljIG5wbSByZWdpc3RyeVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGVkUGFja2FnZXNPcHRpb25zPzogQXJyYXk8amF2YXNjcmlwdC5TY29wZWRQYWNrYWdlc09wdGlvbnM+O1xuICAvKipcbiAgICogSWYgdGhlIHBhY2thZ2UuanNvbiBmb3IgeW91ciBwYWNrYWdlIGlzIG5vdCBpbiB0aGUgcm9vdCBkaXJlY3RvcnkgKGZvciBleGFtcGxlIGlmIGl0IGlzIHBhcnQgb2YgYSBtb25vcmVwbyksIHlvdSBjYW4gc3BlY2lmeSB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIGl0IGxpdmVzLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeURpcmVjdG9yeT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSByZXBvc2l0b3J5IGlzIHRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgYWN0dWFsIGNvZGUgZm9yIHlvdXIgcGFja2FnZSBsaXZlcy5cbiAgICogU2VlIGh0dHBzOi8vY2xhc3NpYy55YXJucGtnLmNvbS9lbi9kb2NzL3BhY2thZ2UtanNvbi8jdG9jLXJlcG9zaXRvcnlcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiBQTlBNIHRvIHVzZSBpZiB1c2luZyBQTlBNIGFzIGEgcGFja2FnZSBtYW5hZ2VyLlxuICAgKiBAZGVmYXVsdCBcIjlcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcG5wbVZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQZWVyIGRlcGVuZGVuY2llcyBmb3IgdGhpcyBtb2R1bGUuXG4gICAqIERlcGVuZGVuY2llcyBsaXN0ZWQgaGVyZSBhcmUgcmVxdWlyZWQgdG9cbiAgICogYmUgaW5zdGFsbGVkIChhbmQgc2F0aXNmaWVkKSBieSB0aGUgX2NvbnN1bWVyXyBvZiB0aGlzIGxpYnJhcnkuIFVzaW5nIHBlZXJcbiAgICogZGVwZW5kZW5jaWVzIGFsbG93cyB5b3UgdG8gZW5zdXJlIHRoYXQgb25seSBhIHNpbmdsZSBtb2R1bGUgb2YgYSBjZXJ0YWluXG4gICAqIGxpYnJhcnkgZXhpc3RzIGluIHRoZSBgbm9kZV9tb2R1bGVzYCB0cmVlIG9mIHlvdXIgY29uc3VtZXJzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgcHJpb3IgdG8gbnBtQDcsIHBlZXIgZGVwZW5kZW5jaWVzIGFyZSBfbm90XyBhdXRvbWF0aWNhbGx5XG4gICAqIGluc3RhbGxlZCwgd2hpY2ggbWVhbnMgdGhhdCBhZGRpbmcgcGVlciBkZXBlbmRlbmNpZXMgdG8gYSBsaWJyYXJ5IHdpbGwgYmUgYVxuICAgKiBicmVha2luZyBjaGFuZ2UgZm9yIHlvdXIgY3VzdG9tZXJzLlxuICAgKlxuICAgKiBVbmxlc3MgYHBlZXJEZXBlbmRlbmN5T3B0aW9ucy5waW5uZWREZXZEZXBlbmRlbmN5YCBpcyBkaXNhYmxlZCAoaXQgaXNcbiAgICogZW5hYmxlZCBieSBkZWZhdWx0KSwgcHJvamVuIHdpbGwgYXV0b21hdGljYWxseSBhZGQgYSBkZXYgZGVwZW5kZW5jeSB3aXRoIGFcbiAgICogcGlubmVkIHZlcnNpb24gZm9yIGVhY2ggcGVlciBkZXBlbmRlbmN5LiBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW91IGJ1aWxkICZcbiAgICogdGVzdCB5b3VyIG1vZHVsZSBhZ2FpbnN0IHRoZSBsb3dlc3QgcGVlciB2ZXJzaW9uIHJlcXVpcmVkLlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcGVlckRlcHM/OiBBcnJheTxzdHJpbmc+O1xuICAvKipcbiAgICogT3B0aW9ucyBmb3IgYHBlZXJEZXBzYC5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHBlZXJEZXBlbmRlbmN5T3B0aW9ucz86IGphdmFzY3JpcHQuUGVlckRlcGVuZGVuY3lPcHRpb25zO1xuICAvKipcbiAgICogVGhlIFwibmFtZVwiIGluIHBhY2thZ2UuanNvbi5cbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0cyB0byBwcm9qZWN0IG5hbWVcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICogQGZlYXR1cmVkIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIE5vZGUgUGFja2FnZSBNYW5hZ2VyIHVzZWQgdG8gZXhlY3V0ZSBzY3JpcHRzLlxuICAgKiBAZGVmYXVsdCBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTl9DTEFTU0lDXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlTWFuYWdlcj86IGphdmFzY3JpcHQuTm9kZVBhY2thZ2VNYW5hZ2VyO1xuICAvKipcbiAgICogVXNlIHRydXN0ZWQgcHVibGlzaGluZyBmb3IgcHVibGlzaGluZyB0byBucG1qcy5jb20gTmVlZHMgdG8gYmUgcHJlLWNvbmZpZ3VyZWQgb24gbnBtLmpzIHRvIHdvcmsuXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IG5wbVRydXN0ZWRQdWJsaXNoaW5nPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEdpdEh1YiBzZWNyZXQgd2hpY2ggY29udGFpbnMgdGhlIE5QTSB0b2tlbiB0byB1c2Ugd2hlbiBwdWJsaXNoaW5nIHBhY2thZ2VzLlxuICAgKiBAZGVmYXVsdCBcIk5QTV9UT0tFTlwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBucG1Ub2tlblNlY3JldD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBiYXNlIFVSTCBvZiB0aGUgbnBtIHBhY2thZ2UgcmVnaXN0cnkuXG4gICAqIE11c3QgYmUgYSBVUkwgKGUuZy4gc3RhcnQgd2l0aCBcImh0dHBzOi8vXCIgb3IgXCJodHRwOi8vXCIpXG4gICAqIEBkZWZhdWx0IFwiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmdcIlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbnBtUmVnaXN0cnlVcmw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTaG91bGQgcHJvdmVuYW5jZSBzdGF0ZW1lbnRzIGJlIGdlbmVyYXRlZCB3aGVuIHRoZSBwYWNrYWdlIGlzIHB1Ymxpc2hlZC5cbiAgICogQSBzdXBwb3J0ZWQgcGFja2FnZSBtYW5hZ2VyIGlzIHJlcXVpcmVkIHRvIHB1Ymxpc2ggYSBwYWNrYWdlIHdpdGggbnBtIHByb3ZlbmFuY2Ugc3RhdGVtZW50cyBhbmRcbiAgICogeW91IHdpbGwgbmVlZCB0byB1c2UgYSBzdXBwb3J0ZWQgQ0kvQ0QgcHJvdmlkZXIuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGUgcHJvamVuIGBSZWxlYXNlYCBhbmQgYFB1Ymxpc2hlcmAgY29tcG9uZW50cyBhcmUgdXNpbmcgYHB1YmxpYmAgdG8gcHVibGlzaCBwYWNrYWdlcyxcbiAgICogd2hpY2ggaXMgdXNpbmcgbnBtIGludGVybmFsbHkgYW5kIHN1cHBvcnRzIHByb3ZlbmFuY2Ugc3RhdGVtZW50cyBpbmRlcGVuZGVudGx5IG9mIHRoZSBwYWNrYWdlIG1hbmFnZXIgdXNlZC5cbiAgICogQGRlZmF1bHQgLSB0cnVlIGZvciBwdWJsaWMgcGFja2FnZXMsIGZhbHNlIG90aGVyd2lzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbnBtUHJvdmVuYW5jZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBY2Nlc3MgbGV2ZWwgb2YgdGhlIG5wbSBwYWNrYWdlLlxuICAgKiBAZGVmYXVsdCAtIGZvciBzY29wZWQgcGFja2FnZXMgKGUuZy4gYGZvb0BiYXJgKSwgdGhlIGRlZmF1bHQgaXNcbmBOcG1BY2Nlc3MuUkVTVFJJQ1RFRGAsIGZvciBub24tc2NvcGVkIHBhY2thZ2VzLCB0aGUgZGVmYXVsdCBpc1xuYE5wbUFjY2Vzcy5QVUJMSUNgLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbnBtQWNjZXNzPzogamF2YXNjcmlwdC5OcG1BY2Nlc3M7XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBub2RlIHZlcnNpb24gcmVxdWlyZWQgYnkgdGhpcyBwYWNrYWdlIHRvIGZ1bmN0aW9uLiBNb3N0IHByb2plY3RzIHNob3VsZCBub3QgdXNlIHRoaXMgb3B0aW9uLlxuICAgKiBUaGUgdmFsdWUgaW5kaWNhdGVzIHRoYXQgdGhlIHBhY2thZ2UgaXMgaW5jb21wYXRpYmxlIHdpdGggYW55IG9sZGVyIHZlcnNpb25zIG9mIG5vZGUuXG4gICAqIFRoaXMgcmVxdWlyZW1lbnQgaXMgZW5mb3JjZWQgdmlhIHRoZSBlbmdpbmVzIGZpZWxkLlxuICAgKlxuICAgKiBZb3Ugd2lsbCBub3JtYWxseSBub3QgbmVlZCB0byBzZXQgdGhpcyBvcHRpb24sIGV2ZW4gaWYgeW91ciBwYWNrYWdlIGlzIGluY29tcGF0aWJsZSB3aXRoIEVPTCB2ZXJzaW9ucyBvZiBub2RlLlxuICAgKiBDb25zaWRlciB0aGlzIG9wdGlvbiBvbmx5IGlmIHlvdXIgcGFja2FnZSBkZXBlbmRzIG9uIGEgc3BlY2lmaWMgZmVhdHVyZSwgdGhhdCBpcyBub3QgYXZhaWxhYmxlIGluIG90aGVyIExUUyB2ZXJzaW9ucy5cbiAgICogU2V0dGluZyB0aGlzIG9wdGlvbiBoYXMgdmVyeSBoaWdoIGltcGFjdCBvbiB0aGUgY29uc3VtZXJzIG9mIHlvdXIgcGFja2FnZSxcbiAgICogYXMgcGFja2FnZSBtYW5hZ2VycyB3aWxsIGFjdGl2ZWx5IHByZXZlbnQgdXNhZ2Ugd2l0aCBub2RlIHZlcnNpb25zIHlvdSBoYXZlIG1hcmtlZCBhcyBpbmNvbXBhdGlibGUuXG4gICAqXG4gICAqIFRvIGNoYW5nZSB0aGUgbm9kZSB2ZXJzaW9uIG9mIHlvdXIgQ0kvQ0Qgd29ya2Zsb3dzLCB1c2UgYHdvcmtmbG93Tm9kZVZlcnNpb25gLlxuICAgKiBAZGVmYXVsdCAtIG5vIG1pbmltdW0gdmVyc2lvbiBpcyBlbmZvcmNlZFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbWluTm9kZVZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBub2RlIHZlcnNpb24gc3VwcG9ydGVkIGJ5IHRoaXMgcGFja2FnZS4gTW9zdCBwcm9qZWN0cyBzaG91bGQgbm90IHVzZSB0aGlzIG9wdGlvbi5cbiAgICogVGhlIHZhbHVlIGluZGljYXRlcyB0aGF0IHRoZSBwYWNrYWdlIGlzIGluY29tcGF0aWJsZSB3aXRoIGFueSBuZXdlciB2ZXJzaW9ucyBvZiBub2RlLlxuICAgKiBUaGlzIHJlcXVpcmVtZW50IGlzIGVuZm9yY2VkIHZpYSB0aGUgZW5naW5lcyBmaWVsZC5cbiAgICpcbiAgICogWW91IHdpbGwgbm9ybWFsbHkgbm90IG5lZWQgdG8gc2V0IHRoaXMgb3B0aW9uLlxuICAgKiBDb25zaWRlciB0aGlzIG9wdGlvbiBvbmx5IGlmIHlvdXIgcGFja2FnZSBpcyBrbm93biB0byBub3QgZnVuY3Rpb24gd2l0aCBuZXdlciB2ZXJzaW9ucyBvZiBub2RlLlxuICAgKiBAZGVmYXVsdCAtIG5vIG1heGltdW0gdmVyc2lvbiBpcyBlbmZvcmNlZFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Tm9kZVZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgYSBsaWNlbnNlIHNob3VsZCBiZSBhZGRlZC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbGljZW5zZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogTGljZW5zZSdzIFNQRFggaWRlbnRpZmllci5cbiAgICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9qZW4vcHJvamVuL3RyZWUvbWFpbi9saWNlbnNlLXRleHQgZm9yIGEgbGlzdCBvZiBzdXBwb3J0ZWQgbGljZW5zZXMuXG4gICAqIFVzZSB0aGUgYGxpY2Vuc2VkYCBvcHRpb24gaWYgeW91IHdhbnQgdG8gbm8gbGljZW5zZSB0byBiZSBzcGVjaWZpZWQuXG4gICAqIEBkZWZhdWx0IFwiQXBhY2hlLTIuMFwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlPzogc3RyaW5nO1xuICAvKipcbiAgICogS2V5d29yZHMgdG8gaW5jbHVkZSBpbiBgcGFja2FnZS5qc29uYC5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGtleXdvcmRzPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIFBhY2thZ2UncyBIb21lcGFnZSAvIFdlYnNpdGUuXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBob21lcGFnZT86IHN0cmluZztcbiAgLyoqXG4gICAqIE1vZHVsZSBlbnRyeXBvaW50IChgbWFpbmAgaW4gYHBhY2thZ2UuanNvbmApLlxuICAgKiBTZXQgdG8gYW4gZW1wdHkgc3RyaW5nIHRvIG5vdCBpbmNsdWRlIGBtYWluYCBpbiB5b3VyIHBhY2thZ2UuanNvblxuICAgKiBAZGVmYXVsdCBcImxpYi9pbmRleC5qc1wiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBlbnRyeXBvaW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogQnVpbGQgZGVwZW5kZW5jaWVzIGZvciB0aGlzIG1vZHVsZS5cbiAgICogVGhlc2UgZGVwZW5kZW5jaWVzIHdpbGwgb25seSBiZVxuICAgKiBhdmFpbGFibGUgaW4geW91ciBidWlsZCBlbnZpcm9ubWVudCBidXQgd2lsbCBub3QgYmUgZmV0Y2hlZCB3aGVuIHRoaXNcbiAgICogbW9kdWxlIGlzIGNvbnN1bWVkLlxuICAgKlxuICAgKiBUaGUgcmVjb21tZW5kYXRpb24gaXMgdG8gb25seSBzcGVjaWZ5IHRoZSBtb2R1bGUgbmFtZSBoZXJlIChlLmcuXG4gICAqIGBleHByZXNzYCkuIFRoaXMgd2lsbCBiZWhhdmUgc2ltaWxhciB0byBgeWFybiBhZGRgIG9yIGBucG0gaW5zdGFsbGAgaW4gdGhlXG4gICAqIHNlbnNlIHRoYXQgaXQgd2lsbCBhZGQgdGhlIG1vZHVsZSBhcyBhIGRlcGVuZGVuY3kgdG8geW91ciBgcGFja2FnZS5qc29uYFxuICAgKiBmaWxlIHdpdGggdGhlIGxhdGVzdCB2ZXJzaW9uIChgXmApLiBZb3UgY2FuIHNwZWNpZnkgc2VtdmVyIHJlcXVpcmVtZW50cyBpblxuICAgKiB0aGUgc2FtZSBzeW50YXggcGFzc2VkIHRvIGBucG0gaWAgb3IgYHlhcm4gYWRkYCAoZS5nLiBgZXhwcmVzc0BeMmApIGFuZFxuICAgKiB0aGlzIHdpbGwgYmUgd2hhdCB5b3UgYHBhY2thZ2UuanNvbmAgd2lsbCBldmVudHVhbGx5IGluY2x1ZGUuXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqIEBmZWF0dXJlZCB0cnVlXG4gICAqL1xuICByZWFkb25seSBkZXZEZXBzPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBpcyBqdXN0IGEgc3RyaW5nIHRoYXQgaGVscHMgcGVvcGxlIHVuZGVyc3RhbmQgdGhlIHB1cnBvc2Ugb2YgdGhlIHBhY2thZ2UuXG4gICAqIEl0IGNhbiBiZSB1c2VkIHdoZW4gc2VhcmNoaW5nIGZvciBwYWNrYWdlcyBpbiBhIHBhY2thZ2UgbWFuYWdlciBhcyB3ZWxsLlxuICAgKiBTZWUgaHR0cHM6Ly9jbGFzc2ljLnlhcm5wa2cuY29tL2VuL2RvY3MvcGFja2FnZS1qc29uLyN0b2MtZGVzY3JpcHRpb25cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICogQGZlYXR1cmVkIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogUnVudGltZSBkZXBlbmRlbmNpZXMgb2YgdGhpcyBtb2R1bGUuXG4gICAqIFRoZSByZWNvbW1lbmRhdGlvbiBpcyB0byBvbmx5IHNwZWNpZnkgdGhlIG1vZHVsZSBuYW1lIGhlcmUgKGUuZy5cbiAgICogYGV4cHJlc3NgKS4gVGhpcyB3aWxsIGJlaGF2ZSBzaW1pbGFyIHRvIGB5YXJuIGFkZGAgb3IgYG5wbSBpbnN0YWxsYCBpbiB0aGVcbiAgICogc2Vuc2UgdGhhdCBpdCB3aWxsIGFkZCB0aGUgbW9kdWxlIGFzIGEgZGVwZW5kZW5jeSB0byB5b3VyIGBwYWNrYWdlLmpzb25gXG4gICAqIGZpbGUgd2l0aCB0aGUgbGF0ZXN0IHZlcnNpb24gKGBeYCkuIFlvdSBjYW4gc3BlY2lmeSBzZW12ZXIgcmVxdWlyZW1lbnRzIGluXG4gICAqIHRoZSBzYW1lIHN5bnRheCBwYXNzZWQgdG8gYG5wbSBpYCBvciBgeWFybiBhZGRgIChlLmcuIGBleHByZXNzQF4yYCkgYW5kXG4gICAqIHRoaXMgd2lsbCBiZSB3aGF0IHlvdSBgcGFja2FnZS5qc29uYCB3aWxsIGV2ZW50dWFsbHkgaW5jbHVkZS5cbiAgICogQGRlZmF1bHQgW11cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICogQGZlYXR1cmVkIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRlcHM/OiBBcnJheTxzdHJpbmc+O1xuICAvKipcbiAgICogT3B0aW9ucyBmb3IgbnBtIHBhY2thZ2VzIHVzaW5nIEFXUyBDb2RlQXJ0aWZhY3QuXG4gICAqIFRoaXMgaXMgcmVxdWlyZWQgaWYgcHVibGlzaGluZyBwYWNrYWdlcyB0bywgb3IgaW5zdGFsbGluZyBzY29wZWQgcGFja2FnZXMgZnJvbSBBV1MgQ29kZUFydGlmYWN0XG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBjb2RlQXJ0aWZhY3RPcHRpb25zPzogamF2YXNjcmlwdC5Db2RlQXJ0aWZhY3RPcHRpb25zO1xuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgQnVuIHRvIHVzZSBpZiB1c2luZyBCdW4gYXMgYSBwYWNrYWdlIG1hbmFnZXIuXG4gICAqIEBkZWZhdWx0IFwibGF0ZXN0XCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGJ1blZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGRlcGVuZGVuY2llcyB0byBidW5kbGUgaW50byB0aGlzIG1vZHVsZS5cbiAgICogVGhlc2UgbW9kdWxlcyB3aWxsIGJlXG4gICAqIGFkZGVkIGJvdGggdG8gdGhlIGBkZXBlbmRlbmNpZXNgIHNlY3Rpb24gYW5kIGBidW5kbGVkRGVwZW5kZW5jaWVzYCBzZWN0aW9uIG9mXG4gICAqIHlvdXIgYHBhY2thZ2UuanNvbmAuXG4gICAqXG4gICAqIFRoZSByZWNvbW1lbmRhdGlvbiBpcyB0byBvbmx5IHNwZWNpZnkgdGhlIG1vZHVsZSBuYW1lIGhlcmUgKGUuZy5cbiAgICogYGV4cHJlc3NgKS4gVGhpcyB3aWxsIGJlaGF2ZSBzaW1pbGFyIHRvIGB5YXJuIGFkZGAgb3IgYG5wbSBpbnN0YWxsYCBpbiB0aGVcbiAgICogc2Vuc2UgdGhhdCBpdCB3aWxsIGFkZCB0aGUgbW9kdWxlIGFzIGEgZGVwZW5kZW5jeSB0byB5b3VyIGBwYWNrYWdlLmpzb25gXG4gICAqIGZpbGUgd2l0aCB0aGUgbGF0ZXN0IHZlcnNpb24gKGBeYCkuIFlvdSBjYW4gc3BlY2lmeSBzZW12ZXIgcmVxdWlyZW1lbnRzIGluXG4gICAqIHRoZSBzYW1lIHN5bnRheCBwYXNzZWQgdG8gYG5wbSBpYCBvciBgeWFybiBhZGRgIChlLmcuIGBleHByZXNzQF4yYCkgYW5kXG4gICAqIHRoaXMgd2lsbCBiZSB3aGF0IHlvdSBgcGFja2FnZS5qc29uYCB3aWxsIGV2ZW50dWFsbHkgaW5jbHVkZS5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGJ1bmRsZWREZXBzPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIFRoZSB1cmwgdG8geW91ciBwcm9qZWN0J3MgaXNzdWUgdHJhY2tlci5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGJ1Z3NVcmw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZW1haWwgYWRkcmVzcyB0byB3aGljaCBpc3N1ZXMgc2hvdWxkIGJlIHJlcG9ydGVkLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYnVnc0VtYWlsPzogc3RyaW5nO1xuICAvKipcbiAgICogQmluYXJ5IHByb2dyYW1zIHZlbmRlZCB3aXRoIHlvdXIgbW9kdWxlLlxuICAgKiBZb3UgY2FuIHVzZSB0aGlzIG9wdGlvbiB0byBhZGQvY3VzdG9taXplIGhvdyBiaW5hcmllcyBhcmUgcmVwcmVzZW50ZWQgaW5cbiAgICogeW91ciBgcGFja2FnZS5qc29uYCwgYnV0IHVubGVzcyBgYXV0b0RldGVjdEJpbmAgaXMgYGZhbHNlYCwgZXZlcnlcbiAgICogZXhlY3V0YWJsZSBmaWxlIHVuZGVyIGBiaW5gIHdpbGwgYXV0b21hdGljYWxseSBiZSBhZGRlZCB0byB0aGlzIHNlY3Rpb24uXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBiaW4/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKipcbiAgICogQXV0b21hdGljYWxseSBhZGQgYWxsIGV4ZWN1dGFibGVzIHVuZGVyIHRoZSBgYmluYCBkaXJlY3RvcnkgdG8geW91ciBgcGFja2FnZS5qc29uYCBmaWxlIHVuZGVyIHRoZSBgYmluYCBzZWN0aW9uLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBhdXRvRGV0ZWN0QmluPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEF1dGhvcidzIFVSTCAvIFdlYnNpdGUuXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBhdXRob3JVcmw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJcyB0aGUgYXV0aG9yIGFuIG9yZ2FuaXphdGlvbi5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvck9yZ2FuaXphdGlvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBdXRob3IncyBuYW1lLlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEF1dGhvcidzIGUtbWFpbC5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvckVtYWlsPzogc3RyaW5nO1xuICAvKipcbiAgICogQWxsb3cgdGhlIHByb2plY3QgdG8gaW5jbHVkZSBgcGVlckRlcGVuZGVuY2llc2AgYW5kIGBidW5kbGVkRGVwZW5kZW5jaWVzYC5cbiAgICogVGhpcyBpcyBub3JtYWxseSBvbmx5IGFsbG93ZWQgZm9yIGxpYnJhcmllcy4gRm9yIGFwcHMsIHRoZXJlJ3Mgbm8gbWVhbmluZ1xuICAgKiBmb3Igc3BlY2lmeWluZyB0aGVzZS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dMaWJyYXJ5RGVwZW5kZW5jaWVzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEVuYWJsZSBWU0NvZGUgaW50ZWdyYXRpb24uXG4gICAqIEVuYWJsZWQgYnkgZGVmYXVsdCBmb3Igcm9vdCBwcm9qZWN0cy4gRGlzYWJsZWQgZm9yIG5vbi1yb290IHByb2plY3RzLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSB2c2NvZGU/OiBib29sZWFuO1xuICAvKipcbiAgICogQXV0by1jbG9zZSBzdGFsZSBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMuXG4gICAqIFRvIGRpc2FibGUgc2V0IGBzdGFsZWAgdG8gYGZhbHNlYC5cbiAgICogQGRlZmF1bHQgLSBzZWUgZGVmYXVsdHMgaW4gYFN0YWxlT3B0aW9uc2BcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHN0YWxlT3B0aW9ucz86IGdpdGh1Yi5TdGFsZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBBdXRvLWNsb3NlIG9mIHN0YWxlIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0LlxuICAgKiBTZWUgYHN0YWxlT3B0aW9uc2AgZm9yIG9wdGlvbnMuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBzdGFsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgUkVBRE1FIHNldHVwLlxuICAgKiBAZGVmYXVsdCAtIHsgZmlsZW5hbWU6ICdSRUFETUUubWQnLCBjb250ZW50czogJyMgcmVwbGFjZSB0aGlzJyB9XG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSByZWFkbWU/OiBTYW1wbGVSZWFkbWVQcm9wcztcbiAgLyoqXG4gICAqIENob29zZSBhIG1ldGhvZCBvZiBwcm92aWRpbmcgR2l0SHViIEFQSSBhY2Nlc3MgZm9yIHByb2plbiB3b3JrZmxvd3MuXG4gICAqIEBkZWZhdWx0IC0gdXNlIGEgcGVyc29uYWwgYWNjZXNzIHRva2VuIG5hbWVkIFBST0pFTl9HSVRIVUJfVE9LRU5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbkNyZWRlbnRpYWxzPzogZ2l0aHViLkdpdGh1YkNyZWRlbnRpYWxzO1xuICAvKipcbiAgICogQWRkIGEgR2l0cG9kIGRldmVsb3BtZW50IGVudmlyb25tZW50LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0cG9kPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIEdpdEh1YiBpbnRlZ3JhdGlvbi5cbiAgICogQGRlZmF1bHQgLSBzZWUgR2l0SHViT3B0aW9uc1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViT3B0aW9ucz86IGdpdGh1Yi5HaXRIdWJPcHRpb25zO1xuICAvKipcbiAgICogRW5hYmxlIEdpdEh1YiBpbnRlZ3JhdGlvbi5cbiAgICogRW5hYmxlZCBieSBkZWZhdWx0IGZvciByb290IHByb2plY3RzLiBEaXNhYmxlZCBmb3Igbm9uLXJvb3QgcHJvamVjdHMuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGdpdGh1Yj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBZGQgYSBWU0NvZGUgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgKHVzZWQgZm9yIEdpdEh1YiBDb2Rlc3BhY2VzKS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGRldkNvbnRhaW5lcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBZGQgYSBgY2xvYmJlcmAgdGFzayB3aGljaCByZXNldHMgdGhlIHJlcG8gdG8gb3JpZ2luLlxuICAgKiBAZGVmYXVsdCAtIHRydWUsIGJ1dCBmYWxzZSBmb3Igc3VicHJvamVjdHNcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGNsb2JiZXI/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29uZmlndXJlIG9wdGlvbnMgZm9yIGF1dG9tYXRpYyBtZXJnaW5nIG9uIEdpdEh1Yi5cbiAgICogSGFzIG5vIGVmZmVjdCBpZlxuICAgKiBgZ2l0aHViLm1lcmdpZnlgIG9yIGBhdXRvTWVyZ2VgIGlzIHNldCB0byBmYWxzZS5cbiAgICogQGRlZmF1bHQgLSBzZWUgZGVmYXVsdHMgaW4gYEF1dG9NZXJnZU9wdGlvbnNgXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBhdXRvTWVyZ2VPcHRpb25zPzogZ2l0aHViLkF1dG9NZXJnZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBFbmFibGUgYXV0b21hdGljIG1lcmdpbmcgb24gR2l0SHViLlxuICAgKiBIYXMgbm8gZWZmZWN0IGlmIGBnaXRodWIubWVyZ2lmeWBcbiAgICogaXMgc2V0IHRvIGZhbHNlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBhdXRvTWVyZ2U/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5hYmxlIGFuZCBjb25maWd1cmUgdGhlICdhdXRvIGFwcHJvdmUnIHdvcmtmbG93LlxuICAgKiBAZGVmYXVsdCAtIGF1dG8gYXBwcm92ZSBpcyBkaXNhYmxlZFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b0FwcHJvdmVPcHRpb25zPzogZ2l0aHViLkF1dG9BcHByb3ZlT3B0aW9ucztcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHJlbm92YXRlYm90LlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgb3B0aW9uc1xuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVub3ZhdGVib3RPcHRpb25zPzogUmVub3ZhdGVib3RPcHRpb25zO1xuICAvKipcbiAgICogVXNlIHJlbm92YXRlYm90IHRvIGhhbmRsZSBkZXBlbmRlbmN5IHVwZ3JhZGVzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVub3ZhdGVib3Q/OiBib29sZWFuO1xuICAvKipcbiAgICogT3B0aW9ucyBmb3IgLnByb2plbnJjLmpzb24uXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBvcHRpb25zXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwcm9qZW5yY0pzb25PcHRpb25zPzogUHJvamVucmNKc29uT3B0aW9ucztcbiAgLyoqXG4gICAqIEdlbmVyYXRlIChvbmNlKSAucHJvamVucmMuanNvbiAoaW4gSlNPTikuIFNldCB0byBgZmFsc2VgIGluIG9yZGVyIHRvIGRpc2FibGUgLnByb2plbnJjLmpzb24gZ2VuZXJhdGlvbi5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbnJjSnNvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgc2hlbGwgY29tbWFuZCB0byB1c2UgaW4gb3JkZXIgdG8gcnVuIHRoZSBwcm9qZW4gQ0xJLlxuICAgKiBDYW4gYmUgdXNlZCB0byBjdXN0b21pemUgaW4gc3BlY2lhbCBlbnZpcm9ubWVudHMuXG4gICAqIEBkZWZhdWx0IFwibnB4IHByb2plblwiXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBwcm9qZW5Db21tYW5kPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHBhcmVudCBwcm9qZWN0LCBpZiB0aGlzIHByb2plY3QgaXMgcGFydCBvZiBhIGJpZ2dlciBwcm9qZWN0LlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcGFyZW50PzogUHJvamVjdDtcbiAgLyoqXG4gICAqIFRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC5cbiAgICogUmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnksIGFsbCBmaWxlcyBhcmUgc3ludGhlc2l6ZWQuXG4gICAqXG4gICAqIElmIHRoaXMgcHJvamVjdCBoYXMgYSBwYXJlbnQsIHRoaXMgZGlyZWN0b3J5IGlzIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnRcbiAgICogZGlyZWN0b3J5IGFuZCBpdCBjYW5ub3QgYmUgdGhlIHNhbWUgYXMgdGhlIHBhcmVudCBvciBhbnkgb2YgaXQncyBvdGhlclxuICAgKiBzdWJwcm9qZWN0cy5cbiAgICogQGRlZmF1bHQgXCIuXCJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBsb2dnaW5nIG9wdGlvbnMgc3VjaCBhcyB2ZXJib3NpdHkuXG4gICAqIEBkZWZhdWx0IHt9XG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nPzogTG9nZ2VyT3B0aW9ucztcbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgZ2l0LlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0T3B0aW9ucz86IEdpdE9wdGlvbnM7XG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIC5naXRpZ25vcmUgZmlsZS5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGdpdElnbm9yZU9wdGlvbnM/OiBJZ25vcmVGaWxlT3B0aW9ucztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY29tbWl0IHRoZSBtYW5hZ2VkIGZpbGVzIGJ5IGRlZmF1bHQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGNvbW1pdEdlbmVyYXRlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgcHJvamVjdC5cbiAgICogQGRlZmF1bHQgJEJBU0VESVJcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICogQGZlYXR1cmVkIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIEVuYWJsZSBNaXNlIGNvbXBvbmVudFxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBtaXNlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEVuYWJsZSBWaXRlc3QgY29tcG9uZW50XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHZpdGVzdD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBWaXRlc3QgY29uZmlndXJhdGlvblxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgVml0ZXN0IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHZpdGVzdE9wdGlvbnM/OiBWaXRlc3RPcHRpb25zO1xufVxuIl19
|
package/lib/projects/{awscdk-construct-library.d.ts → awscdk-construct-library.generated.d.ts}
RENAMED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { awscdk } from "projen";
|
|
2
2
|
import type { AwsCdkConstructLibraryProjectOptions } from "./awscdk-construct-library-options.generated";
|
|
3
3
|
export { AwsCdkConstructLibraryProjectOptions } from "./awscdk-construct-library-options.generated";
|
|
4
|
+
/**
|
|
5
|
+
* AwsCdkConstructLibraryProject with standard configuration and component integration
|
|
6
|
+
*
|
|
7
|
+
* Extends Projen's base class with opinionated defaults and automatic component setup.
|
|
8
|
+
*/
|
|
4
9
|
export declare class AwsCdkConstructLibraryProject extends awscdk.AwsCdkConstructLibrary {
|
|
10
|
+
/**
|
|
11
|
+
* @param options - Project configuration
|
|
12
|
+
*/
|
|
5
13
|
constructor(options: AwsCdkConstructLibraryProjectOptions);
|
|
6
14
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.AwsCdkConstructLibraryProject = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
// ~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen".
|
|
7
|
+
const projen_1 = require("projen");
|
|
8
|
+
const mise_1 = require("../components/mise");
|
|
9
|
+
const vitest_1 = require("../components/vitest");
|
|
10
|
+
const config_1 = require("../config");
|
|
11
|
+
const utils_1 = require("../utils");
|
|
12
|
+
/**
|
|
13
|
+
* AwsCdkConstructLibraryProject with standard configuration and component integration
|
|
14
|
+
*
|
|
15
|
+
* Extends Projen's base class with opinionated defaults and automatic component setup.
|
|
16
|
+
*/
|
|
17
|
+
class AwsCdkConstructLibraryProject extends projen_1.awscdk.AwsCdkConstructLibrary {
|
|
18
|
+
/**
|
|
19
|
+
* @param options - Project configuration
|
|
20
|
+
*/
|
|
21
|
+
constructor(options) {
|
|
22
|
+
/* Separate component configuration from base Projen options */
|
|
23
|
+
const { mise, vitest, vitestOptions, ...baseOptions } = options;
|
|
24
|
+
/* Merge default configuration with user options and initialize base class */
|
|
25
|
+
super((0, utils_1.deepMerge)(config_1.defaultOptions.awscdk.AwsCdkConstructLibrary, baseOptions));
|
|
26
|
+
/* Apply component defaults and instantiate enabled components */
|
|
27
|
+
(0, config_1.applyDefaults)(this, [{ component: mise_1.Mise, enabled: mise }, { component: vitest_1.Vitest, enabled: vitest, options: vitestOptions }]);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.AwsCdkConstructLibraryProject = AwsCdkConstructLibraryProject;
|
|
31
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
32
|
+
AwsCdkConstructLibraryProject[_a] = { fqn: "@nikovirtala/projen-constructs.AwsCdkConstructLibraryProject", version: "0.1.6" };
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2RrLWNvbnN0cnVjdC1saWJyYXJ5LmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9hd3NjZGstY29uc3RydWN0LWxpYnJhcnkuZ2VuZXJhdGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkVBQTZFO0FBQzdFLG1DQUFnQztBQUNoQyw2Q0FBMEM7QUFDMUMsaURBQThDO0FBQzlDLHNDQUEwRDtBQUMxRCxvQ0FBcUM7QUFPckM7Ozs7R0FJRztBQUNILE1BQWEsNkJBQThCLFNBQVEsZUFBTSxDQUFDLHNCQUFzQjtJQUM1RTs7T0FFRztJQUNILFlBQVksT0FBNkM7UUFDckQsK0RBQStEO1FBQy9ELE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUVoRSw2RUFBNkU7UUFDN0UsS0FBSyxDQUFDLElBQUEsaUJBQVMsRUFBdUMsdUJBQWMsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUVsSCxpRUFBaUU7UUFDakUsSUFBQSxzQkFBYSxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFdBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsZUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5SCxDQUFDOztBQWJMLHNFQWNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLlxuaW1wb3J0IHsgYXdzY2RrIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgTWlzZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL21pc2VcIjtcbmltcG9ydCB7IFZpdGVzdCB9IGZyb20gXCIuLi9jb21wb25lbnRzL3ZpdGVzdFwiO1xuaW1wb3J0IHsgYXBwbHlEZWZhdWx0cywgZGVmYXVsdE9wdGlvbnMgfSBmcm9tIFwiLi4vY29uZmlnXCI7XG5pbXBvcnQgeyBkZWVwTWVyZ2UgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgQXdzQ2RrQ29uc3RydWN0TGlicmFyeVByb2plY3RPcHRpb25zIH0gZnJvbSBcIi4vYXdzY2RrLWNvbnN0cnVjdC1saWJyYXJ5LW9wdGlvbnMuZ2VuZXJhdGVkXCI7XG5cblxuZXhwb3J0IHsgQXdzQ2RrQ29uc3RydWN0TGlicmFyeVByb2plY3RPcHRpb25zIH0gZnJvbSBcIi4vYXdzY2RrLWNvbnN0cnVjdC1saWJyYXJ5LW9wdGlvbnMuZ2VuZXJhdGVkXCI7XG5cblxuLyoqXG4gKiBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5UHJvamVjdCB3aXRoIHN0YW5kYXJkIGNvbmZpZ3VyYXRpb24gYW5kIGNvbXBvbmVudCBpbnRlZ3JhdGlvblxuICpcbiAqIEV4dGVuZHMgUHJvamVuJ3MgYmFzZSBjbGFzcyB3aXRoIG9waW5pb25hdGVkIGRlZmF1bHRzIGFuZCBhdXRvbWF0aWMgY29tcG9uZW50IHNldHVwLlxuICovXG5leHBvcnQgY2xhc3MgQXdzQ2RrQ29uc3RydWN0TGlicmFyeVByb2plY3QgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrQ29uc3RydWN0TGlicmFyeSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIG9wdGlvbnMgLSBQcm9qZWN0IGNvbmZpZ3VyYXRpb25cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5UHJvamVjdE9wdGlvbnMpIHtcbiAgICAgICAgLyogU2VwYXJhdGUgY29tcG9uZW50IGNvbmZpZ3VyYXRpb24gZnJvbSBiYXNlIFByb2plbiBvcHRpb25zICovXG4gICAgICAgIGNvbnN0IHsgbWlzZSwgdml0ZXN0LCB2aXRlc3RPcHRpb25zLCAuLi5iYXNlT3B0aW9ucyB9ID0gb3B0aW9ucztcblxuICAgICAgICAvKiBNZXJnZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gd2l0aCB1c2VyIG9wdGlvbnMgYW5kIGluaXRpYWxpemUgYmFzZSBjbGFzcyAqL1xuICAgICAgICBzdXBlcihkZWVwTWVyZ2U8YXdzY2RrLkF3c0Nka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zPihkZWZhdWx0T3B0aW9ucy5hd3NjZGsuQXdzQ2RrQ29uc3RydWN0TGlicmFyeSwgYmFzZU9wdGlvbnMpKTtcblxuICAgICAgICAvKiBBcHBseSBjb21wb25lbnQgZGVmYXVsdHMgYW5kIGluc3RhbnRpYXRlIGVuYWJsZWQgY29tcG9uZW50cyAqL1xuICAgICAgICBhcHBseURlZmF1bHRzKHRoaXMsIFt7IGNvbXBvbmVudDogTWlzZSwgZW5hYmxlZDogbWlzZSB9LCB7IGNvbXBvbmVudDogVml0ZXN0LCBlbmFibGVkOiB2aXRlc3QsIG9wdGlvbnM6IHZpdGVzdE9wdGlvbnMgfV0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { awscdk, GitOptions, GroupRunnerOptions,
|
|
2
|
-
import type { VitestOptions } from
|
|
1
|
+
import type { awscdk, github, GitOptions, GroupRunnerOptions, IgnoreFileOptions, javascript, LoggerOptions, Project, ProjenrcJsonOptions, ReleasableCommits, release, RenovatebotOptions, SampleReadmeProps, typescript } from 'projen';
|
|
2
|
+
import type { VitestOptions } from '../';
|
|
3
3
|
/**
|
|
4
4
|
* AwsCdkTypeScriptAppProjectOptions
|
|
5
5
|
*/
|
|
@@ -52,11 +52,11 @@ export interface AwsCdkTypeScriptAppProjectOptions {
|
|
|
52
52
|
*/
|
|
53
53
|
readonly app?: string;
|
|
54
54
|
/**
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
"10.0.5".
|
|
58
|
-
|
|
59
|
-
|
|
55
|
+
* Minimum version of the `constructs` library to depend on.
|
|
56
|
+
* @default - for CDK 1.x the default is "3.2.27", for CDK 2.x the default is
|
|
57
|
+
"10.0.5".
|
|
58
|
+
* @stability experimental
|
|
59
|
+
*/
|
|
60
60
|
readonly constructsVersion?: string;
|
|
61
61
|
/**
|
|
62
62
|
* Use pinned version instead of caret version for CDK.
|
|
@@ -527,17 +527,17 @@ export interface AwsCdkTypeScriptAppProjectOptions {
|
|
|
527
527
|
*/
|
|
528
528
|
readonly releaseEnvironment?: string;
|
|
529
529
|
/**
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
`addBranch()` to add additional branches.
|
|
539
|
-
|
|
540
|
-
|
|
530
|
+
* Defines additional release branches.
|
|
531
|
+
* A workflow will be created for each
|
|
532
|
+
* release branch which will publish releases from commits in this branch.
|
|
533
|
+
* Each release branch _must_ be assigned a major version number which is used
|
|
534
|
+
* to enforce that versions published from that branch always use that major
|
|
535
|
+
* version. If multiple branches are used, the `majorVersion` field must also
|
|
536
|
+
* be provided for the default branch.
|
|
537
|
+
* @default - no additional branches are used for release. you can use
|
|
538
|
+
`addBranch()` to add additional branches.
|
|
539
|
+
* @stability experimental
|
|
540
|
+
*/
|
|
541
541
|
readonly releaseBranches?: Record<string, release.BranchOptions>;
|
|
542
542
|
/**
|
|
543
543
|
* Find commits that should be considered releasable Used to decide if a release is required.
|
|
@@ -736,12 +736,12 @@ export interface AwsCdkTypeScriptAppProjectOptions {
|
|
|
736
736
|
*/
|
|
737
737
|
readonly npmProvenance?: boolean;
|
|
738
738
|
/**
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
`NpmAccess.RESTRICTED`, for non-scoped packages, the default is
|
|
742
|
-
`NpmAccess.PUBLIC`.
|
|
743
|
-
|
|
744
|
-
|
|
739
|
+
* Access level of the npm package.
|
|
740
|
+
* @default - for scoped packages (e.g. `foo@bar`), the default is
|
|
741
|
+
`NpmAccess.RESTRICTED`, for non-scoped packages, the default is
|
|
742
|
+
`NpmAccess.PUBLIC`.
|
|
743
|
+
* @stability experimental
|
|
744
|
+
*/
|
|
745
745
|
readonly npmAccess?: javascript.NpmAccess;
|
|
746
746
|
/**
|
|
747
747
|
* The minimum node version required by this package to function. Most projects should not use this option.
|
|
@@ -1081,18 +1081,18 @@ export interface AwsCdkTypeScriptAppProjectOptions {
|
|
|
1081
1081
|
*/
|
|
1082
1082
|
readonly name: string;
|
|
1083
1083
|
/**
|
|
1084
|
-
*
|
|
1085
|
-
* @default
|
|
1084
|
+
* Enable Mise component
|
|
1085
|
+
* @default true
|
|
1086
1086
|
*/
|
|
1087
|
-
readonly
|
|
1087
|
+
readonly mise?: boolean;
|
|
1088
1088
|
/**
|
|
1089
|
-
* Enable
|
|
1089
|
+
* Enable Vitest component
|
|
1090
1090
|
* @default true
|
|
1091
1091
|
*/
|
|
1092
1092
|
readonly vitest?: boolean;
|
|
1093
1093
|
/**
|
|
1094
|
-
*
|
|
1095
|
-
* @default
|
|
1094
|
+
* Vitest configuration
|
|
1095
|
+
* @default - default Vitest configuration
|
|
1096
1096
|
*/
|
|
1097
|
-
readonly
|
|
1097
|
+
readonly vitestOptions?: VitestOptions;
|
|
1098
1098
|
}
|