@aws-mdaa/dms-constructs 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/endpoint.d.ts CHANGED
@@ -172,6 +172,8 @@ export interface S3SettingsProperty {
172
172
  readonly enableStatistics?: boolean;
173
173
  /** Encoding type specification for Parquet file compression and storage optimization */
174
174
  readonly encodingType?: string;
175
+ /** AWS account ID of the S3 bucket owner for cross-account access and bucket sniping prevention */
176
+ readonly expectedBucketOwner?: string;
175
177
  /** External table definition for S3 source configuration in data lake integration */
176
178
  readonly externalTableDefinition?: string;
177
179
  /** Number of header rows to ignore in CSV files for S3 source processing */
package/lib/endpoint.js CHANGED
@@ -58,5 +58,5 @@ class MdaaEndpoint extends aws_dms_1.CfnEndpoint {
58
58
  }
59
59
  exports.MdaaEndpoint = MdaaEndpoint;
60
60
  _a = JSII_RTTI_SYMBOL_1;
61
- MdaaEndpoint[_a] = { fqn: "@aws-mdaa/dms-constructs.MdaaEndpoint", version: "1.5.0" };
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7R0FHRztBQUVILG1EQUE2RSxDQUFDLFNBQVM7QUFDdkYsaURBQW9FO0FBcXJCcEU7OztHQUdHO0FBQ0gsTUFBYSxZQUFhLFNBQVEscUJBQVc7SUFDM0Msd0RBQXdEO0lBQ2hELE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBd0I7UUFDOUMsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztZQUN2RSxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQzVCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDdkYsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUMvRyxlQUFlLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDNUcsQ0FBQztJQUNKLENBQUM7SUFFTyxNQUFNLENBQUMsa0JBQWtCLENBQUMsZUFBeUM7UUFDekUsT0FBTztZQUNMLEdBQUcsZUFBZTtZQUNsQixjQUFjLEVBQUUsSUFBSTtTQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVPLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBK0I7UUFDMUQsT0FBTztZQUNMLEdBQUcsVUFBVTtZQUNiLGNBQWMsRUFBRSxTQUFTO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLG1CQUFtQixDQUNoQyxnQkFBMkM7UUFFM0MsT0FBTztZQUNMLEdBQUcsZ0JBQWdCO1lBQ25CLGNBQWMsRUFBRSxTQUFTO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFL0MsSUFBSSw4QkFBa0IsQ0FBQyxJQUFJLEVBQUU7WUFDM0IsR0FBRztnQkFDRCxZQUFZLEVBQUUsVUFBVTtnQkFDeEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxrQkFBa0I7Z0JBQ3BDLElBQUksRUFBRSxLQUFLO2dCQUNYLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRzthQUNoQjtZQUNELEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7O0FBaERILG9DQWlEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCB7IE1kYWFDb25zdHJ1Y3RQcm9wcywgTWRhYVBhcmFtQW5kT3V0cHV0IH0gZnJvbSAnQGF3cy1tZGFhL2NvbnN0cnVjdCc7IC8vTk9TT05BUlxuaW1wb3J0IHsgQ2ZuRW5kcG9pbnQsIENmbkVuZHBvaW50UHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZG1zJztcbmltcG9ydCB7IElLZXkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIHRoYXQgZGVmaW5lcyBhIFNBUCBBU0UgZW5kcG9pbnQuIE1vZGlmaWVkIGZyb20gdGhlIGVxdWl2YWxlbnQgTDEgQ29uc3RydWN0IHRvIHByZXZlbnQgdXNlIG9mIHBsYWludGV4dCBjcmVkZW50aWFscyBhbmQgZW5mb3JjZSB1c2Ugb2YgS01TIGVuY3J5cHRpb24uXG4gKiBUaGlzIGluZm9ybWF0aW9uIGluY2x1ZGVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHJlY29yZHMgYXBwbGllZCB0byB0aGUgZW5kcG9pbnQgYW5kIGRldGFpbHMgb2YgdHJhbnNhY3Rpb24gYW5kIGNvbnRyb2wgdGFibGUgZGF0YSBpbmZvcm1hdGlvbi4gRm9yIGluZm9ybWF0aW9uIGFib3V0IG90aGVyIGF2YWlsYWJsZSBzZXR0aW5ncywgc2VlIFtFeHRyYSBjb25uZWN0aW9uIGF0dHJpYnV0ZXMgd2hlbiB1c2luZyBTQVAgQVNFIGFzIGEgc291cmNlIGZvciBBV1MgRE1TXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9Tb3VyY2UuU0FQLmh0bWwjQ0hBUF9Tb3VyY2UuU0FQLkNvbm5lY3Rpb25BdHRyaWIpIGFuZCBbRXh0cmEgY29ubmVjdGlvbiBhdHRyaWJ1dGVzIHdoZW4gdXNpbmcgU0FQIEFTRSBhcyBhIHRhcmdldCBmb3IgQVdTIERNU10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfVGFyZ2V0LlNBUC5odG1sI0NIQVBfVGFyZ2V0LlNBUC5Db25uZWN0aW9uQXR0cmliKSBpbiB0aGUgKkFXUyBEYXRhYmFzZSBNaWdyYXRpb24gU2VydmljZSBVc2VyIEd1aWRlKiAuXG4gKiBAc3RydWN0XG4gKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LXN5YmFzZXNldHRpbmdzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTeWJhc2VTZXR0aW5nc1Byb3BlcnR5IHtcbiAgLyoqIElBTSByb2xlIEFSTiBmb3IgRE1TIHRvIGFjY2VzcyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IGNvbnRhaW5pbmcgU3liYXNlIGVuZHBvaW50ICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybj86IHN0cmluZztcbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRBcm46IHN0cmluZztcbiAgLyoqIEtNUyBrZXkgQVJOIGZvciBlbmNyeXB0aW5nIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgY29udGFpbmluZyBTeWJhc2UgY3JlZGVudGlhbHMgZW5hYmxpbmcgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRLTVNBcm4/OiBzdHJpbmc7XG59XG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIHRoYXQgZGVmaW5lcyBhbiBPcmFjbGUgZW5kcG9pbnQuIE1vZGlmaWVkIGZyb20gdGhlIGVxdWl2YWxlbnQgTDEgQ29uc3RydWN0IHRvIHByZXZlbnQgdXNlIG9mIHBsYWludGV4dCBjcmVkZW50aWFscyBhbmQgZW5mb3JjZSB1c2Ugb2YgS01TIGVuY3J5cHRpb24uXG4gKiBUaGlzIGluZm9ybWF0aW9uIGluY2x1ZGVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHJlY29yZHMgYXBwbGllZCB0byB0aGUgZW5kcG9pbnQgYW5kIGRldGFpbHMgb2YgdHJhbnNhY3Rpb24gYW5kIGNvbnRyb2wgdGFibGUgZGF0YSBpbmZvcm1hdGlvbi4gRm9yIGluZm9ybWF0aW9uIGFib3V0IG90aGVyIGF2YWlsYWJsZSBzZXR0aW5ncywgc2VlIFtFeHRyYSBjb25uZWN0aW9uIGF0dHJpYnV0ZXMgd2hlbiB1c2luZyBPcmFjbGUgYXMgYSBzb3VyY2UgZm9yIEFXUyBETVNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1NvdXJjZS5PcmFjbGUuaHRtbCNDSEFQX1NvdXJjZS5PcmFjbGUuQ29ubmVjdGlvbkF0dHJpYikgYW5kIFtFeHRyYSBjb25uZWN0aW9uIGF0dHJpYnV0ZXMgd2hlbiB1c2luZyBPcmFjbGUgYXMgYSB0YXJnZXQgZm9yIEFXUyBETVNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1RhcmdldC5PcmFjbGUuaHRtbCNDSEFQX1RhcmdldC5PcmFjbGUuQ29ubmVjdGlvbkF0dHJpYikgaW4gdGhlICpBV1MgRGF0YWJhc2UgTWlncmF0aW9uIFNlcnZpY2UgVXNlciBHdWlkZSogLlxuICogQHN0cnVjdFxuICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1vcmFjbGVzZXR0aW5ncy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3JhY2xlU2V0dGluZ3NQcm9wZXJ0eSB7XG4gIC8qKiBGbGFnIHRvIGRpc2FibGUgQmluYXJ5IFJlYWRlciBhY2Nlc3MgdG8gcmVkbyBsb2dzIHRocm91Z2ggZGlyZWN0IGZpbGUgYWNjZXNzIGZvciBPcmFjbGUgUkRTIHNvdXJjZXMgKi9cbiAgcmVhZG9ubHkgYWNjZXNzQWx0ZXJuYXRlRGlyZWN0bHk/OiBib29sZWFuO1xuICAvKiogQWRkaXRpb25hbCBhcmNoaXZlZCBsb2cgZGVzdGluYXRpb24gSUQgZm9yIE9yYWNsZSBwcmltYXJ5L3N0YW5kYnkgc3dpdGNob3ZlciBzY2VuYXJpb3MgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbEFyY2hpdmVkTG9nRGVzdElkPzogbnVtYmVyO1xuICAvKiogRmxhZyB0byBlbmFibGUgdGFibGUtbGV2ZWwgc3VwcGxlbWVudGFsIGxvZ2dpbmcgZm9yIE9yYWNsZSBkYXRhYmFzZSBtaWdyYXRpb24gdGFza3MgKi9cbiAgcmVhZG9ubHkgYWRkU3VwcGxlbWVudGFsTG9nZ2luZz86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIGVuYWJsZSByZXBsaWNhdGlvbiBvZiBPcmFjbGUgdGFibGVzIHdpdGggbmVzdGVkIHRhYmxlcyBvciBkZWZpbmVkIHR5cGVzIGZvciBjb21wbGV4ICovXG4gIHJlYWRvbmx5IGFsbG93U2VsZWN0TmVzdGVkVGFibGVzPzogYm9vbGVhbjtcbiAgLyoqIEFyY2hpdmVkIHJlZG8gbG9nIGRlc3RpbmF0aW9uIElEIGZvciBPcmFjbGUgY2hhbmdlIGRhdGEgY2FwdHVyZSBjb25maWd1cmF0aW9uICovXG4gIHJlYWRvbmx5IGFyY2hpdmVkTG9nRGVzdElkPzogbnVtYmVyO1xuICAvKiogRmxhZyB0byByZXN0cmljdCBETVMgYWNjZXNzIHRvIGFyY2hpdmVkIHJlZG8gbG9ncyBvbmx5IGZvciBPcmFjbGUgcmVwbGljYXRpb24gKi9cbiAgcmVhZG9ubHkgYXJjaGl2ZWRMb2dzT25seT86IGJvb2xlYW47XG4gIC8qKiBBU00gc2VydmVyIGFkZHJlc3MgZm9yIE9yYWNsZSBzb3VyY2UgZW5kcG9pbnQgQmluYXJ5IFJlYWRlciBjb25maWd1cmF0aW9uICovXG4gIHJlYWRvbmx5IGFzbVNlcnZlcj86IHN0cmluZztcbiAgLyoqIENoYXJhY3RlciBsZW5ndGggc2VtYW50aWNzIHNwZWNpZmljYXRpb24gZm9yIE9yYWNsZSBjaGFyYWN0ZXIgY29sdW1uIGludGVycHJldGF0aW9uICovXG4gIHJlYWRvbmx5IGNoYXJMZW5ndGhTZW1hbnRpY3M/OiBzdHJpbmc7XG4gIC8qKiBGbGFnIHRvIGVuYWJsZSBkaXJlY3QgcGF0aCBsb2FkaW5nIHdpdGhvdXQgZGF0YWJhc2UgbG9nZ2luZyBmb3IgT3JhY2xlIHRhcmdldCBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gKi9cbiAgcmVhZG9ubHkgZGlyZWN0UGF0aE5vTG9nPzogYm9vbGVhbjtcbiAgLyoqIEZsYWcgdG8gZW5hYmxlIHBhcmFsbGVsIGxvYWRpbmcgd2hlbiBkaXJlY3QgcGF0aCBmdWxsIGxvYWQgaXMgYWN0aXZlIGZvciBPcmFjbGUgdGFyZ2V0ICovXG4gIHJlYWRvbmx5IGRpcmVjdFBhdGhQYXJhbGxlbExvYWQ/OiBib29sZWFuO1xuICAvKiogRmxhZyB0byBlbmFibGUgaG9tb2dlbmVvdXMgdGFibGVzcGFjZSByZXBsaWNhdGlvbiBmb3IgT3JhY2xlIHRhcmdldCBkYXRhYmFzZSBjb25zaXN0ZW5jeSAqL1xuICByZWFkb25seSBlbmFibGVIb21vZ2Vub3VzVGFibGVzcGFjZT86IGJvb2xlYW47XG4gIC8qKiBBcnJheSBvZiBhZGRpdGlvbmFsIGFyY2hpdmVkIGxvZyBkZXN0aW5hdGlvbiBJRHMgZm9yIE9yYWNsZSBEYXRhIEd1YXJkIHN3aXRjaG92ZXIgc2NlbmFyaW9zICovXG4gIHJlYWRvbmx5IGV4dHJhQXJjaGl2ZWRMb2dEZXN0SWRzPzogQXJyYXk8bnVtYmVyPjtcbiAgLyoqIEZsYWcgdG8gY2F1c2UgdGFzayBmYWlsdXJlIHdoZW4gTE9CIGNvbHVtbiBzaXplIGV4Y2VlZHMgc3BlY2lmaWVkIExvYk1heFNpemUgbGltaXQgKi9cbiAgcmVhZG9ubHkgZmFpbFRhc2tzT25Mb2JUcnVuY2F0aW9uPzogYm9vbGVhbjtcbiAgLyoqIE51bWJlciBkYXRhIHR5cGUgc2NhbGUgc3BlY2lmaWNhdGlvbiBmb3IgT3JhY2xlIE5VTUJFUiBkYXRhIHR5cGUgY29udmVyc2lvbiBwcmVjaXNpb24gKi9cbiAgcmVhZG9ubHkgbnVtYmVyRGF0YXR5cGVTY2FsZT86IG51bWJlcjtcbiAgLyoqIE9yYWNsZSBwYXRoIHByZWZpeCBmb3IgQmluYXJ5IFJlYWRlciByZWRvIGxvZyBhY2Nlc3MgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBvcmFjbGVQYXRoUHJlZml4Pzogc3RyaW5nO1xuICAvKiogTnVtYmVyIG9mIHBhcmFsbGVsIEFTTSByZWFkIHRocmVhZHMgZm9yIE9yYWNsZSBjaGFuZ2UgZGF0YSBjYXB0dXJlIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiAqL1xuICByZWFkb25seSBwYXJhbGxlbEFzbVJlYWRUaHJlYWRzPzogbnVtYmVyO1xuICAvKiogTnVtYmVyIG9mIHJlYWQtYWhlYWQgYmxvY2tzIGZvciBPcmFjbGUgQVNNIGNoYW5nZSBkYXRhIGNhcHR1cmUgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uICovXG4gIHJlYWRvbmx5IHJlYWRBaGVhZEJsb2Nrcz86IG51bWJlcjtcbiAgLyoqIEZsYWcgdG8gZW5hYmxlIHRhYmxlc3BhY2UgbmFtZSByZWFkaW5nIGZvciBPcmFjbGUgdGFibGVzcGFjZSByZXBsaWNhdGlvbiBzdXBwb3J0ICovXG4gIHJlYWRvbmx5IHJlYWRUYWJsZVNwYWNlTmFtZT86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIGVuYWJsZSBwYXRoIHByZWZpeCByZXBsYWNlbWVudCBmb3IgQmluYXJ5IFJlYWRlciByZWRvIGxvZyBhY2Nlc3MgKi9cbiAgcmVhZG9ubHkgcmVwbGFjZVBhdGhQcmVmaXg/OiBib29sZWFuO1xuICAvKiogUmV0cnkgaW50ZXJ2YWwgaW4gc2Vjb25kcyBmb3IgT3JhY2xlIGNvbm5lY3Rpb24gcXVlcnkgcmV0cnkgb3BlcmF0aW9ucyAqL1xuICByZWFkb25seSByZXRyeUludGVydmFsPzogbnVtYmVyO1xuICAvKiogSUFNIHJvbGUgQVJOIGZvciBBV1MgU2VjcmV0cyBNYW5hZ2VyIGFjY2VzcyB0byBPcmFjbGUgZW5kcG9pbnQgY3JlZGVudGlhbHMgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuPzogc3RyaW5nO1xuICAvKiogSUFNIHJvbGUgQVJOIGZvciBBV1MgU2VjcmV0cyBNYW5hZ2VyIGFjY2VzcyB0byBPcmFjbGUgQVNNIGNyZWRlbnRpYWxzIHdoZW4gdXNpbmcgQWR2YW5jZWQgU3RvcmFnZSBNYW5hZ2VyICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyT3JhY2xlQXNtQWNjZXNzUm9sZUFybj86IHN0cmluZztcbiAgLyoqIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgQVJOIGNvbnRhaW5pbmcgT3JhY2xlIEFTTSBjb25uZWN0aW9uIGRldGFpbHMgZm9yIEFkdmFuY2VkIFN0b3JhZ2UgTWFuYWdlciBlbmRwb2ludHMgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJPcmFjbGVBc21TZWNyZXRBcm4/OiBzdHJpbmc7XG4gIC8qKiBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IEFSTiBjb250YWluaW5nIE9yYWNsZSBlbmRwb2ludCBjb25uZWN0aW9uIGRldGFpbHMgZm9yIHNlY3VyZSBjcmVkZW50aWFsIG1hbmFnZW1lbnQgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRBcm46IHN0cmluZztcbiAgLyoqIEtNUyBrZXkgQVJOIGZvciBlbmNyeXB0aW5nIE9yYWNsZSBlbmRwb2ludCBjcmVkZW50aWFscyBzZWNyZXQgaW4gU2VjcmV0cyBNYW5hZ2VyICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0S01TQXJuPzogc3RyaW5nO1xuICAvKiogQ3VzdG9tIGZ1bmN0aW9uIG5hbWUgZm9yIGNvbnZlcnRpbmcgT3JhY2xlIFNET19HRU9NRVRSWSB0byBHRU9KU09OIGZvcm1hdCBkdXJpbmcgc3BhdGlhbCBkYXRhIG1pZ3JhdGlvbiAqL1xuICByZWFkb25seSBzcGF0aWFsRGF0YU9wdGlvblRvR2VvSnNvbkZ1bmN0aW9uTmFtZT86IHN0cmluZztcbiAgLyoqIFN0YW5kYnkgZGVsYXkgdGltZSBpbiBtaW51dGVzIGZvciBPcmFjbGUgQWN0aXZlIERhdGEgR3VhcmQgc3RhbmRieSBkYXRhYmFzZSBzeW5jaHJvbml6YXRpb24gKi9cbiAgcmVhZG9ubHkgc3RhbmRieURlbGF5VGltZT86IG51bWJlcjtcbiAgLyoqIEZsYWcgdG8gZW5hYmxlIGFsdGVybmF0ZSBmb2xkZXIgdXNhZ2UgZm9yIG9ubGluZSByZWRvIGxvZ3Mgd2l0aCBCaW5hcnkgUmVhZGVyIGZvciBPcmFjbGUgUkRTIHNvdXJjZXMgKi9cbiAgcmVhZG9ubHkgdXNlQWx0ZXJuYXRlRm9sZGVyRm9yT25saW5lPzogYm9vbGVhbjtcbiAgLyoqIEZsYWcgdG8gZW5hYmxlIEJpbmFyeSBSZWFkZXIgdXRpbGl0eSBmb3IgT3JhY2xlIGNoYW5nZSBkYXRhIGNhcHR1cmUgb3BlcmF0aW9ucyAqL1xuICByZWFkb25seSB1c2VCRmlsZT86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIGVuYWJsZSBkaXJlY3QgcGF0aCBmdWxsIGxvYWQgZm9yIE9yYWNsZSB0YXJnZXQgZGF0YWJhc2UgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uICovXG4gIHJlYWRvbmx5IHVzZURpcmVjdFBhdGhGdWxsTG9hZD86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIGVuYWJsZSBPcmFjbGUgTG9nTWluZXIgdXRpbGl0eSBmb3IgY2hhbmdlIGRhdGEgY2FwdHVyZSBvcGVyYXRpb25zIChkZWZhdWx0IG1ldGhvZCkgKi9cbiAgcmVhZG9ubHkgdXNlTG9nbWluZXJSZWFkZXI/OiBib29sZWFuO1xuICAvKiogUGF0aCBwcmVmaXggZm9yIEJpbmFyeSBSZWFkZXIgcmVkbyBsb2cgYWNjZXNzIHJlcGxhY2VtZW50IGluIE9yYWNsZSBSRFMgc291cmNlcyAqL1xuICByZWFkb25seSB1c2VQYXRoUHJlZml4Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIHRoYXQgZGVmaW5lcyBhIE15U1FMIGVuZHBvaW50LiBNb2RpZmllZCBmcm9tIHRoZSBlcXVpdmFsZW50IEwxIENvbnN0cnVjdCB0byBwcmV2ZW50IHVzZSBvZiBwbGFpbnRleHQgY3JlZGVudGlhbHMgYW5kIGVuZm9yY2UgdXNlIG9mIEtNUyBlbmNyeXB0aW9uLlxuICogVGhpcyBpbmZvcm1hdGlvbiBpbmNsdWRlcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiByZWNvcmRzIGFwcGxpZWQgdG8gdGhlIGVuZHBvaW50IGFuZCBkZXRhaWxzIG9mIHRyYW5zYWN0aW9uIGFuZCBjb250cm9sIHRhYmxlIGRhdGEgaW5mb3JtYXRpb24uIEZvciBpbmZvcm1hdGlvbiBhYm91dCBvdGhlciBhdmFpbGFibGUgc2V0dGluZ3MsIHNlZSBbRXh0cmEgY29ubmVjdGlvbiBhdHRyaWJ1dGVzIHdoZW4gdXNpbmcgTXlTUUwgYXMgYSBzb3VyY2UgZm9yIEFXUyBETVNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1NvdXJjZS5NeVNRTC5odG1sI0NIQVBfU291cmNlLk15U1FMLkNvbm5lY3Rpb25BdHRyaWIpIGFuZCBbRXh0cmEgY29ubmVjdGlvbiBhdHRyaWJ1dGVzIHdoZW4gdXNpbmcgYSBNeVNRTC1jb21wYXRpYmxlIGRhdGFiYXNlIGFzIGEgdGFyZ2V0IGZvciBBV1MgRE1TXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9UYXJnZXQuTXlTUUwuaHRtbCNDSEFQX1RhcmdldC5NeVNRTC5Db25uZWN0aW9uQXR0cmliKSBpbiB0aGUgKkFXUyBEYXRhYmFzZSBNaWdyYXRpb24gU2VydmljZSBVc2VyIEd1aWRlKiAuXG4gKiBAc3RydWN0XG4gKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LW15c3Fsc2V0dGluZ3MuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE15U3FsU2V0dGluZ3NQcm9wZXJ0eSB7XG4gIC8qKiBTUUwgc2NyaXB0IHRvIGV4ZWN1dGUgaW1tZWRpYXRlbHkgYWZ0ZXIgRE1TIGNvbm5lY3RzIHRvIHRoZSBNeVNRTCBlbmRwb2ludCBmb3IgaW5pdGlhbGl6YXRpb24gdGFza3MgKi9cbiAgcmVhZG9ubHkgYWZ0ZXJDb25uZWN0U2NyaXB0Pzogc3RyaW5nO1xuICAvKiogRmxhZyB0byBjbGVhbiBhbmQgcmVjcmVhdGUgdGFibGUgbWV0YWRhdGEgb24gcmVwbGljYXRpb24gaW5zdGFuY2Ugd2hlbiBtaXNtYXRjaGVzIG9jY3VyICovXG4gIHJlYWRvbmx5IGNsZWFuU291cmNlTWV0YWRhdGFPbk1pc21hdGNoPzogYm9vbGVhbjtcbiAgLyoqIFBvbGxpbmcgaW50ZXJ2YWwgaW4gc2Vjb25kcyBmb3IgY2hlY2tpbmcgTXlTUUwgYmluYXJ5IGxvZyBjaGFuZ2VzIHdoZW4gZGF0YWJhc2UgaXMgaWRsZSAqL1xuICByZWFkb25seSBldmVudHNQb2xsSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIENTViBmaWxlIHNpemUgaW4gS0IgZm9yIE15U1FMIGRhdGEgdHJhbnNmZXIgb3BlcmF0aW9ucyAqL1xuICByZWFkb25seSBtYXhGaWxlU2l6ZT86IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiBwYXJhbGxlbCB0aHJlYWRzIGZvciBsb2FkaW5nIGRhdGEgaW50byBNeVNRTC1jb21wYXRpYmxlIHRhcmdldCBkYXRhYmFzZXMgZm9yICovXG4gIHJlYWRvbmx5IHBhcmFsbGVsTG9hZFRocmVhZHM/OiBudW1iZXI7XG4gIC8qKiBJQU0gcm9sZSBBUk4gZm9yIEFXUyBTZWNyZXRzIE1hbmFnZXIgYWNjZXNzIHRvIE15U1FMIGVuZHBvaW50IGNyZWRlbnRpYWxzICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybj86IHN0cmluZztcbiAgLyoqIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgQVJOIGNvbnRhaW5pbmcgTXlTUUwgZW5kcG9pbnQgY29ubmVjdGlvbiBkZXRhaWxzIGZvciBzZWN1cmUgY3JlZGVudGlhbCBtYW5hZ2VtZW50ICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0QXJuOiBzdHJpbmc7XG4gIC8qKiBLTVMga2V5IEFSTiBmb3IgZW5jcnlwdGluZyBNeVNRTCBlbmRwb2ludCBjcmVkZW50aWFscyBzZWNyZXQgaW4gU2VjcmV0cyBNYW5hZ2VyICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0S01TQXJuPzogc3RyaW5nO1xuICAvKiogVGltZSB6b25lIHNwZWNpZmljYXRpb24gZm9yIE15U1FMIHNvdXJjZSBkYXRhYmFzZSBjb25maWd1cmF0aW9uICovXG4gIHJlYWRvbmx5IHNlcnZlclRpbWV6b25lPzogc3RyaW5nO1xuICAvKiogVGFyZ2V0IGRhdGFiYXNlIHR5cGUgc3BlY2lmaWNhdGlvbiBmb3IgTXlTUUwgbWlncmF0aW9uIGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb24gKi9cbiAgcmVhZG9ubHkgdGFyZ2V0RGJUeXBlPzogc3RyaW5nO1xufVxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiB0aGF0IGRlZmluZXMgYW4gQW1hem9uIFMzIGVuZHBvaW50LiBNb2RpZmllZCBmcm9tIHRoZSBlcXVpdmFsZW50IEwxIENvbnN0cnVjdCB0byBwcmV2ZW50IHVzZSBvZiBwbGFpbnRleHQgY3JlZGVudGlhbHMgYW5kIGVuZm9yY2UgdXNlIG9mIEtNUyBlbmNyeXB0aW9uLlxuICogVGhpcyBpbmZvcm1hdGlvbiBpbmNsdWRlcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiByZWNvcmRzIGFwcGxpZWQgdG8gdGhlIGVuZHBvaW50IGFuZCBkZXRhaWxzIG9mIHRyYW5zYWN0aW9uIGFuZCBjb250cm9sIHRhYmxlIGRhdGEgaW5mb3JtYXRpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhdmFpbGFibGUgc2V0dGluZ3MsIHNlZSBbRXh0cmEgY29ubmVjdGlvbiBhdHRyaWJ1dGVzIHdoZW4gdXNpbmcgQW1hem9uIFMzIGFzIGEgc291cmNlIGZvciBBV1MgRE1TXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9Tb3VyY2UuUzMuaHRtbCNDSEFQX1NvdXJjZS5TMy5Db25maWd1cmluZykgYW5kIFtFeHRyYSBjb25uZWN0aW9uIGF0dHJpYnV0ZXMgd2hlbiB1c2luZyBBbWF6b24gUzMgYXMgYSB0YXJnZXQgZm9yIEFXUyBETVNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1RhcmdldC5TMy5odG1sI0NIQVBfVGFyZ2V0LlMzLkNvbmZpZ3VyaW5nKSBpbiB0aGUgKkFXUyBEYXRhYmFzZSBNaWdyYXRpb24gU2VydmljZSBVc2VyIEd1aWRlKiAuXG4gKiBAc3RydWN0XG4gKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LXMzc2V0dGluZ3MuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFMzU2V0dGluZ3NQcm9wZXJ0eSB7XG4gIC8qKiBGbGFnIHRvIGFkZCBjb2x1bW4gbmFtZSBpbmZvcm1hdGlvbiB0byBDU1Ygb3V0cHV0IGZpbGVzIGZvciBTMyBkYXRhIGxha2UgaW50ZWdyYXRpb24gKi9cbiAgcmVhZG9ubHkgYWRkQ29sdW1uTmFtZT86IGJvb2xlYW47XG4gIC8qKiBTMyBidWNrZXQgZm9sZGVyIG5hbWUgZm9yIG9yZ2FuaXppbmcgbWlncmF0ZWQgZGF0YSB3aXRoIGhpZXJhcmNoaWNhbCBzdHJ1Y3R1cmUgKi9cbiAgcmVhZG9ubHkgYnVja2V0Rm9sZGVyPzogc3RyaW5nO1xuICAvKiogUzMgYnVja2V0IG5hbWUgZm9yIERNUyBkYXRhIG1pZ3JhdGlvbiBkZXN0aW5hdGlvbiBpbiBkYXRhIGxha2UgYXJjaGl0ZWN0dXJlICovXG4gIHJlYWRvbmx5IGJ1Y2tldE5hbWU6IHN0cmluZztcbiAgLyoqIFByZWRlZmluZWQgYWNjZXNzIGNvbnRyb2wgbGlzdCAoQUNMKSBmb3IgUzMgb2JqZWN0cyBjcmVhdGVkIGR1cmluZyBkYXRhIG1pZ3JhdGlvbiAqL1xuICByZWFkb25seSBjYW5uZWRBY2xGb3JPYmplY3RzPzogc3RyaW5nO1xuICAvKiogRmxhZyB0byBlbmFibGUgQ0RDIElOU0VSVCBhbmQgVVBEQVRFIG9wZXJhdGlvbnMgY2FwdHVyZSB0byBTMyBmaWxlcyBmb3IgY2hhbmdlIHRyYWNraW5nICovXG4gIHJlYWRvbmx5IGNkY0luc2VydHNBbmRVcGRhdGVzPzogYm9vbGVhbjtcbiAgLyoqIEZsYWcgdG8gZW5hYmxlIENEQyBJTlNFUlQtb25seSBvcGVyYXRpb25zIGNhcHR1cmUgdG8gUzMgZmlsZXMgZm9yIGluc2VydC1mb2N1c2VkIGNoYW5nZSB0cmFja2luZyAqL1xuICByZWFkb25seSBjZGNJbnNlcnRzT25seT86IGJvb2xlYW47XG4gIC8qKiBNYXhpbXVtIGJhdGNoIGludGVydmFsIGluIHNlY29uZHMgZm9yIENEQyBmaWxlIG91dHB1dCB0byBTMyBmb3IgdGltZS1iYXNlZCBmaWxlIGNyZWF0aW9uICovXG4gIHJlYWRvbmx5IGNkY01heEJhdGNoSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKiBNaW5pbXVtIGZpbGUgc2l6ZSBpbiBraWxvYnl0ZXMgZm9yIENEQyBmaWxlIG91dHB1dCB0byBTMyBmb3Igc2l6ZS1iYXNlZCBmaWxlIGNyZWF0aW9uICovXG4gIHJlYWRvbmx5IGNkY01pbkZpbGVTaXplPzogbnVtYmVyO1xuICAvKiogQ0RDIGZvbGRlciBwYXRoIHNwZWNpZmljYXRpb24gZm9yIGNoYW5nZSBkYXRhIGNhcHR1cmUgZmlsZSBvcmdhbml6YXRpb24gaW4gUzMgKi9cbiAgcmVhZG9ubHkgY2RjUGF0aD86IHN0cmluZztcbiAgLyoqIENvbXByZXNzaW9uIHR5cGUgZm9yIFMzIHRhcmdldCBmaWxlcyB0byBvcHRpbWl6ZSBzdG9yYWdlIGFuZCB0cmFuc2ZlciBwZXJmb3JtYW5jZSAqL1xuICByZWFkb25seSBjb21wcmVzc2lvblR5cGU/OiBzdHJpbmc7XG4gIC8qKiBDb2x1bW4gZGVsaW1pdGVyIGZvciBDU1YgZmlsZSBmb3JtYXQgaW4gUzMgZGF0YSBsYWtlIGludGVncmF0aW9uICovXG4gIHJlYWRvbmx5IGNzdkRlbGltaXRlcj86IHN0cmluZztcbiAgLyoqIFN0cmluZyB2YWx1ZSBmb3IgY29sdW1ucyBub3QgaW5jbHVkZWQgaW4gc3VwcGxlbWVudGFsIGxvZyBkdXJpbmcgQ0RDIENTViBvcGVyYXRpb25zICovXG4gIHJlYWRvbmx5IGNzdk5vU3VwVmFsdWU/OiBzdHJpbmc7XG4gIC8qKiBOdWxsIHZhbHVlIHJlcHJlc2VudGF0aW9uIGZvciBDU1YgZmlsZXMgaW4gUzMgZGF0YSBsYWtlIG9wZXJhdGlvbnMgKi9cbiAgcmVhZG9ubHkgY3N2TnVsbFZhbHVlPzogc3RyaW5nO1xuICAvKiogUm93IGRlbGltaXRlciBmb3IgQ1NWIGZpbGVzIGluIFMzIGRhdGEgbGFrZSBpbnRlZ3JhdGlvbiAqL1xuICByZWFkb25seSBjc3ZSb3dEZWxpbWl0ZXI/OiBzdHJpbmc7XG4gIC8qKiBEYXRhIGZvcm1hdCBzcGVjaWZpY2F0aW9uIGZvciBTMyBvdXRwdXQgZmlsZXMgaW4gZGF0YSBsYWtlIGFyY2hpdGVjdHVyZSAqL1xuICByZWFkb25seSBkYXRhRm9ybWF0Pzogc3RyaW5nO1xuICAvKiogRGF0YSBwYWdlIHNpemUgaW4gYnl0ZXMgZm9yIFBhcnF1ZXQgZmlsZSBmb3JtYXQgb3B0aW1pemF0aW9uICovXG4gIHJlYWRvbmx5IGRhdGFQYWdlU2l6ZT86IG51bWJlcjtcbiAgLyoqIERhdGUgcGFydGl0aW9uIGRlbGltaXRlciBmb3IgUzMgZm9sZGVyIHBhcnRpdGlvbmluZyBvcmdhbml6YXRpb24gKi9cbiAgcmVhZG9ubHkgZGF0ZVBhcnRpdGlvbkRlbGltaXRlcj86IHN0cmluZztcbiAgLyoqIEZsYWcgdG8gZW5hYmxlIGRhdGUtYmFzZWQgZm9sZGVyIHBhcnRpdGlvbmluZyBmb3IgUzMgYnVja2V0IG9yZ2FuaXphdGlvbiAqL1xuICByZWFkb25seSBkYXRlUGFydGl0aW9uRW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKiBEYXRlIGZvcm1hdCBzZXF1ZW5jZSBmb3IgZm9sZGVyIHBhcnRpdGlvbmluZyBvcmdhbml6YXRpb24gaW4gUzMgZGF0YSBsYWtlICovXG4gIHJlYWRvbmx5IGRhdGVQYXJ0aXRpb25TZXF1ZW5jZT86IHN0cmluZztcbiAgLyoqIFRpbWUgem9uZSBzcGVjaWZpY2F0aW9uIGZvciBkYXRlIHBhcnRpdGlvbiBmb2xkZXIgY3JlYXRpb24gYW5kIENEQyBmaWxlIG5hbWluZyAqL1xuICByZWFkb25seSBkYXRlUGFydGl0aW9uVGltZXpvbmU/OiBzdHJpbmc7XG4gIC8qKiBNYXhpbXVtIGRpY3Rpb25hcnkgcGFnZSBzaXplIGxpbWl0IGZvciBQYXJxdWV0IGNvbHVtbiBlbmNvZGluZyBvcHRpbWl6YXRpb24gKi9cbiAgcmVhZG9ubHkgZGljdFBhZ2VTaXplTGltaXQ/OiBudW1iZXI7XG4gIC8qKiBGbGFnIHRvIGVuYWJsZSBzdGF0aXN0aWNzIGNvbGxlY3Rpb24gZm9yIFBhcnF1ZXQgcGFnZXMgYW5kIHJvdyBncm91cHMgZm9yIHF1ZXJ5IG9wdGltaXphdGlvbiAqL1xuICByZWFkb25seSBlbmFibGVTdGF0aXN0aWNzPzogYm9vbGVhbjtcbiAgLyoqIEVuY29kaW5nIHR5cGUgc3BlY2lmaWNhdGlvbiBmb3IgUGFycXVldCBmaWxlIGNvbXByZXNzaW9uIGFuZCBzdG9yYWdlIG9wdGltaXphdGlvbiAqL1xuICByZWFkb25seSBlbmNvZGluZ1R5cGU/OiBzdHJpbmc7XG4gIC8qKiBFeHRlcm5hbCB0YWJsZSBkZWZpbml0aW9uIGZvciBTMyBzb3VyY2UgY29uZmlndXJhdGlvbiBpbiBkYXRhIGxha2UgaW50ZWdyYXRpb24gKi9cbiAgcmVhZG9ubHkgZXh0ZXJuYWxUYWJsZURlZmluaXRpb24/OiBzdHJpbmc7XG4gIC8qKiBOdW1iZXIgb2YgaGVhZGVyIHJvd3MgdG8gaWdub3JlIGluIENTViBmaWxlcyBmb3IgUzMgc291cmNlIHByb2Nlc3NpbmcgKi9cbiAgcmVhZG9ubHkgaWdub3JlSGVhZGVyUm93cz86IG51bWJlcjtcbiAgLyoqIEZsYWcgdG8gaW5jbHVkZSBJTlNFUlQgb3BlcmF0aW9uIGluZGljYXRvcnMgaW4gZnVsbCBsb2FkIENTViBvdXRwdXQgZm9yIGNvbnNpc3RlbmN5IHdpdGggQ0RDIG9wZXJhdGlvbnMgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZU9wRm9yRnVsbExvYWQ/OiBib29sZWFuO1xuICAvKiogTWF4aW11bSBDU1YgZmlsZSBzaXplIGluIEtCIGZvciBTMyB0YXJnZXQgZHVyaW5nIGZ1bGwgbG9hZCBtaWdyYXRpb24gb3BlcmF0aW9ucyAqL1xuICByZWFkb25seSBtYXhGaWxlU2l6ZT86IG51bWJlcjtcbiAgLyoqIEZsYWcgdG8gc2V0IFRJTUVTVEFNUCBjb2x1bW4gcHJlY2lzaW9uIHRvIG1pbGxpc2Vjb25kcyBpbiBQYXJxdWV0IGZpbGVzIGZvciBBdGhlbmEgYW5kIEdsdWUgY29tcGF0aWJpbGl0eSAqL1xuICByZWFkb25seSBwYXJxdWV0VGltZXN0YW1wSW5NaWxsaXNlY29uZD86IGJvb2xlYW47XG4gIC8qKiBBcGFjaGUgUGFycXVldCBmb3JtYXQgdmVyc2lvbiBzcGVjaWZpY2F0aW9uIGZvciBTMyBkYXRhIGxha2UgY29sdW1uYXIgc3RvcmFnZSAqL1xuICByZWFkb25seSBwYXJxdWV0VmVyc2lvbj86IHN0cmluZztcbiAgLyoqIEZsYWcgdG8gcHJlc2VydmUgdHJhbnNhY3Rpb24gb3JkZXIgZm9yIENEQyBsb2FkcyBpbiBTMyB0YXJnZXQgZm9yIGRhdGEgY29uc2lzdGVuY3kgKi9cbiAgcmVhZG9ubHkgcHJlc2VydmVUcmFuc2FjdGlvbnM/OiBib29sZWFuO1xuICAvKiogRmxhZyB0byBlbmFibGUgUkZDIDQxODAgY29tcGxpYW5jZSBmb3IgQ1NWIHF1b3RhdGlvbiBtYXJrIGhhbmRsaW5nIGluIFMzIG9wZXJhdGlvbnMgKi9cbiAgcmVhZG9ubHkgcmZjNDE4MD86IGJvb2xlYW47XG4gIC8qKiBOdW1iZXIgb2Ygcm93cyBpbiBQYXJxdWV0IHJvdyBncm91cCBmb3IgcmVhZC93cml0ZSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gKi9cbiAgcmVhZG9ubHkgcm93R3JvdXBMZW5ndGg/OiBudW1iZXI7XG4gIC8qKiBLTVMga2V5IElEIGZvciBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIHdoZW4gdXNpbmcgU1NFX0tNUyBlbmNyeXB0aW9uIG1vZGUgZm9yIFMzIGRhdGEgbGFrZSBzZWN1cml0eSAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlRW5jcnlwdGlvbkttc0tleUlkOiBzdHJpbmc7XG4gIC8qKiBJQU0gcm9sZSBBUk4gZm9yIERNUyBzZXJ2aWNlIGFjY2VzcyB0byBTMyBidWNrZXQgb3BlcmF0aW9ucyBmb3IgZGF0YSBsYWtlIGludGVncmF0aW9uICovXG4gIHJlYWRvbmx5IHNlcnZpY2VBY2Nlc3NSb2xlQXJuPzogc3RyaW5nO1xuICAvKiogVGltZXN0YW1wIGNvbHVtbiBuYW1lIGZvciBhZGRpbmcgbWlncmF0aW9uIHRpbWluZyBpbmZvcm1hdGlvbiB0byBTMyBkYXRhIGxha2UgZmlsZXMgKi9cbiAgcmVhZG9ubHkgdGltZXN0YW1wQ29sdW1uTmFtZT86IHN0cmluZztcbiAgLyoqIEZsYWcgdG8gdXNlIHRhc2sgc3RhcnQgdGltZSBmb3IgZnVsbCBsb2FkIHRpbWVzdGFtcCBjb2x1bW4gaW5zdGVhZCBvZiBkYXRhIGFycml2YWwgdGltZSAqL1xuICByZWFkb25seSB1c2VUYXNrU3RhcnRUaW1lRm9yRnVsbExvYWRUaW1lc3RhbXA/OiBib29sZWFuO1xuICAvKiogRmxhZyB0byB1c2UgQ3N2Tm9TdXBWYWx1ZSBmb3IgY29sdW1ucyBub3QgaW4gc3VwcGxlbWVudGFsIGxvZyBkdXJpbmcgQ0RDIENTViBvcGVyYXRpb25zICovXG4gIHJlYWRvbmx5IHVzZUNzdk5vU3VwVmFsdWU/OiBib29sZWFuO1xufVxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiB0aGF0IGRlc2NyaWJlcyBhbiBBbWF6b24gS2luZXNpcyBEYXRhIFN0cmVhbSBlbmRwb2ludC4gTW9kaWZpZWQgZnJvbSB0aGUgZXF1aXZhbGVudCBMMSBDb25zdHJ1Y3QgdG8gcHJldmVudCB1c2Ugb2YgcGxhaW50ZXh0IGNyZWRlbnRpYWxzIGFuZCBlbmZvcmNlIHVzZSBvZiBLTVMgZW5jcnlwdGlvbi5cbiAqIFRoaXMgaW5mb3JtYXRpb24gaW5jbHVkZXMgdGhlIG91dHB1dCBmb3JtYXQgb2YgcmVjb3JkcyBhcHBsaWVkIHRvIHRoZSBlbmRwb2ludCBhbmQgZGV0YWlscyBvZiB0cmFuc2FjdGlvbiBhbmQgY29udHJvbCB0YWJsZSBkYXRhIGluZm9ybWF0aW9uLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBvdGhlciBhdmFpbGFibGUgc2V0dGluZ3MsIHNlZSBbVXNpbmcgb2JqZWN0IG1hcHBpbmcgdG8gbWlncmF0ZSBkYXRhIHRvIGEgS2luZXNpcyBkYXRhIHN0cmVhbV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfVGFyZ2V0LktpbmVzaXMuaHRtbCNDSEFQX1RhcmdldC5LaW5lc2lzLk9iamVjdE1hcHBpbmcpIGluIHRoZSAqQVdTIERhdGFiYXNlIE1pZ3JhdGlvbiBTZXJ2aWNlIFVzZXIgR3VpZGUqIC5cbiAqIEBzdHJ1Y3RcbiAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQta2luZXNpc3NldHRpbmdzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLaW5lc2lzU2V0dGluZ3NQcm9wZXJ0eSB7XG4gIC8qKiBGbGFnIHRvIHNob3cgZGV0YWlsZWQgY29udHJvbCBpbmZvcm1hdGlvbiBmb3IgdGFibGUgYW5kIGNvbHVtbiBjaGFuZ2VzIGluIEtpbmVzaXMgbWVzc2FnZSAqL1xuICByZWFkb25seSBpbmNsdWRlQ29udHJvbERldGFpbHM/OiBib29sZWFuO1xuICAvKiogRmxhZyB0byBpbmNsdWRlIE5VTEwgYW5kIGVtcHR5IGNvbHVtbnMgaW4gcmVjb3JkcyBtaWdyYXRlZCB0byBLaW5lc2lzIGVuZHBvaW50IGZvciBjb21wbGV0ZSAqL1xuICByZWFkb25seSBpbmNsdWRlTnVsbEFuZEVtcHR5PzogYm9vbGVhbjtcbiAgLyoqIEZsYWcgdG8gc2hvdyBwYXJ0aXRpb24gdmFsdWUgaW4gS2luZXNpcyBtZXNzYWdlIG91dHB1dCB1bmxlc3MgcGFydGl0aW9uIHR5cGUgaXMgc2NoZW1hLXRhYmxlLXR5cGUgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZVBhcnRpdGlvblZhbHVlPzogYm9vbGVhbjtcbiAgLyoqIEZsYWcgdG8gaW5jbHVkZSBEREwgb3BlcmF0aW9ucyB0aGF0IGNoYW5nZSB0YWJsZSBzdHJ1Y3R1cmUgaW4gY29udHJvbCBkYXRhIGZvciBzY2hlbWEgY2hhbmdlIHRyYWNraW5nICovXG4gIHJlYWRvbmx5IGluY2x1ZGVUYWJsZUFsdGVyT3BlcmF0aW9ucz86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIHByb3ZpZGUgZGV0YWlsZWQgdHJhbnNhY3Rpb24gaW5mb3JtYXRpb24gZnJvbSBzb3VyY2UgZGF0YWJhc2UgZm9yIHRyYW5zYWN0aW9uIHRyYWNraW5nICovXG4gIHJlYWRvbmx5IGluY2x1ZGVUcmFuc2FjdGlvbkRldGFpbHM/OiBib29sZWFuO1xuICAvKiogT3V0cHV0IGZvcm1hdCBzcGVjaWZpY2F0aW9uIGZvciByZWNvcmRzIGNyZWF0ZWQgb24gS2luZXNpcyBlbmRwb2ludCBmb3Igc3RyZWFtaW5nIGRhdGEgZm9ybWF0IGNvbnRyb2wgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZUZvcm1hdD86IHN0cmluZztcbiAgLyoqIEZsYWcgdG8gYXZvaWQgYWRkaW5nICcweCcgcHJlZml4IHRvIHJhdyBkYXRhIGluIGhleGFkZWNpbWFsIGZvcm1hdCBmb3IgY2xlYW5lciBkYXRhIHJlcHJlc2VudGF0aW9uICovXG4gIHJlYWRvbmx5IG5vSGV4UHJlZml4PzogYm9vbGVhbjtcbiAgLyoqIEZsYWcgdG8gcHJlZml4IHNjaGVtYSBhbmQgdGFibGUgbmFtZXMgdG8gcGFydGl0aW9uIHZhbHVlcyBmb3IgaW1wcm92ZWQgZGF0YSBkaXN0cmlidXRpb24gYWNyb3NzIEtpbmVzaXMgc2hhcmRzICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbkluY2x1ZGVTY2hlbWFUYWJsZT86IGJvb2xlYW47XG4gIC8qKiBJQU0gcm9sZSBBUk4gZm9yIERNUyBzZXJ2aWNlIGFjY2VzcyB0byBLaW5lc2lzIGRhdGEgc3RyZWFtIGZvciBzZWN1cmUgc3RyZWFtaW5nIG9wZXJhdGlvbnMgKi9cbiAgcmVhZG9ubHkgc2VydmljZUFjY2Vzc1JvbGVBcm4/OiBzdHJpbmc7XG4gIC8qKiBBbWF6b24gS2luZXNpcyBEYXRhIFN0cmVhbXMgZW5kcG9pbnQgQVJOIGZvciBETVMgc3RyZWFtaW5nIGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb24gKi9cbiAgcmVhZG9ubHkgc3RyZWFtQXJuOiBzdHJpbmc7XG59XG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIHRoYXQgZGVmaW5lcyBhbiBBbWF6b24gUmVkc2hpZnQgZW5kcG9pbnQuIE1vZGlmaWVkIGZyb20gdGhlIGVxdWl2YWxlbnQgTDEgQ29uc3RydWN0IHRvIHByZXZlbnQgdXNlIG9mIHBsYWludGV4dCBjcmVkZW50aWFscyBhbmQgZW5mb3JjZSB1c2Ugb2YgS01TIGVuY3J5cHRpb24uXG4gKiBUaGlzIGluZm9ybWF0aW9uIGluY2x1ZGVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHJlY29yZHMgYXBwbGllZCB0byB0aGUgZW5kcG9pbnQgYW5kIGRldGFpbHMgb2YgdHJhbnNhY3Rpb24gYW5kIGNvbnRyb2wgdGFibGUgZGF0YSBpbmZvcm1hdGlvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgb3RoZXIgYXZhaWxhYmxlIHNldHRpbmdzLCBzZWUgW0V4dHJhIGNvbm5lY3Rpb24gYXR0cmlidXRlcyB3aGVuIHVzaW5nIEFtYXpvbiBSZWRzaGlmdCBhcyBhIHRhcmdldCBmb3IgQVdTIERNU10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfVGFyZ2V0LlJlZHNoaWZ0Lmh0bWwjQ0hBUF9UYXJnZXQuUmVkc2hpZnQuQ29ubmVjdGlvbkF0dHJpYikgaW4gdGhlICpBV1MgRGF0YWJhc2UgTWlncmF0aW9uIFNlcnZpY2UgVXNlciBHdWlkZSogLlxuICogQHN0cnVjdFxuICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1yZWRzaGlmdHNldHRpbmdzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWRzaGlmdFNldHRpbmdzUHJvcGVydHkge1xuICAvKiogRmxhZyB0byBhbGxvdyBhbnkgZGF0ZSBmb3JtYXQgaW5jbHVkaW5nIGludmFsaWQgZm9ybWF0cyBmb3IgZmxleGlibGUgZGF0ZSBoYW5kbGluZyBpbiBSZWRzaGlmdCBkYXRhIHdhcmVob3VzZSAqL1xuICByZWFkb25seSBhY2NlcHRBbnlEYXRlPzogYm9vbGVhbjtcbiAgLyoqIFNRTCBzY3JpcHQgdG8gZXhlY3V0ZSBhZnRlciBjb25uZWN0aW5nIHRvIFJlZHNoaWZ0IGVuZHBvaW50IGZvciBpbml0aWFsaXphdGlvbiBhbmQgc2V0dXAgdGFza3MgKi9cbiAgcmVhZG9ubHkgYWZ0ZXJDb25uZWN0U2NyaXB0Pzogc3RyaW5nO1xuICAvKiogUzMgZm9sZGVyIGZvciBzdG9yaW5nIENTViBmaWxlcyBiZWZvcmUgdXBsb2FkaW5nIHRvIFJlZHNoaWZ0IGNsdXN0ZXIgZm9yIHN0YWdlZCBkYXRhIGxvYWRpbmcgKi9cbiAgcmVhZG9ubHkgYnVja2V0Rm9sZGVyPzogc3RyaW5nO1xuICAvKiogUzMgYnVja2V0IG5hbWUgZm9yIGludGVybWVkaWF0ZSBDU1YgZmlsZSBzdG9yYWdlIGJlZm9yZSBSZWRzaGlmdCBkYXRhIGxvYWRpbmcgb3BlcmF0aW9ucyAqL1xuICByZWFkb25seSBidWNrZXROYW1lOiBzdHJpbmc7XG4gIC8qKiBGbGFnIHRvIGVuYWJsZSBjYXNlLXNlbnNpdGl2ZSBzY2hlbWEgbmFtZXMgaW4gUmVkc2hpZnQgZGF0YSB3YXJlaG91c2UgZm9yIHByZWNpc2Ugc2NoZW1hIGhhbmRsaW5nICovXG4gIHJlYWRvbmx5IGNhc2VTZW5zaXRpdmVOYW1lcz86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIGVuYWJsZSBhdXRvbWF0aWMgY29tcHJlc3Npb24gZm9yIGVtcHR5IFJlZHNoaWZ0IHRhYmxlcyBmb3Igc3RvcmFnZSBvcHRpbWl6YXRpb24gKi9cbiAgcmVhZG9ubHkgY29tcFVwZGF0ZT86IGJvb2xlYW47XG4gIC8qKiBDb25uZWN0aW9uIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIGZvciBSZWRzaGlmdCBlbmRwb2ludCBjb25uZWN0aW9uIGVzdGFibGlzaG1lbnQgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvblRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKiBEYXRlIGZvcm1hdCBzcGVjaWZpY2F0aW9uIGZvciBSZWRzaGlmdCBkYXRhIGxvYWRpbmcgYW5kIGRhdGUgaGFuZGxpbmcgKi9cbiAgcmVhZG9ubHkgZGF0ZUZvcm1hdD86IHN0cmluZztcbiAgLyoqIEZsYWcgdG8gbWlncmF0ZSBlbXB0eSBDSEFSIGFuZCBWQVJDSEFSIGZpZWxkcyBhcyBOVUxMIGZvciBjb25zaXN0ZW50IG51bGwgaGFuZGxpbmcgKi9cbiAgcmVhZG9ubHkgZW1wdHlBc051bGw/OiBib29sZWFuO1xuICAvKiogRmxhZyB0byBvdmVycmlkZSBhdXRvLWdlbmVyYXRlZCBJREVOVElUWSBjb2x1bW4gdmFsdWVzIHdpdGggZXhwbGljaXQgc291cmNlIHZhbHVlcyBmb3IgZnVsbC1sb2FkIG1pZ3JhdGlvbiAqL1xuICByZWFkb25seSBleHBsaWNpdElkcz86IGJvb2xlYW47XG4gIC8qKiBOdW1iZXIgb2YgcGFyYWxsZWwgdGhyZWFkcyBmb3Igc2luZ2xlIGZpbGUgdXBsb2FkIHRvIG9wdGltaXplIFMzIG11bHRpcGFydCB1cGxvYWQgcGVyZm9ybWFuY2UgKi9cbiAgcmVhZG9ubHkgZmlsZVRyYW5zZmVyVXBsb2FkU3RyZWFtcz86IG51bWJlcjtcbiAgLyoqIFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIGZvciBSZWRzaGlmdCBjbHVzdGVyIG9wZXJhdGlvbnMgaW5jbHVkaW5nIENPUFksIElOU0VSVCwgREVMRVRFLCBhbmQgVVBEQVRFICovXG4gIHJlYWRvbmx5IGxvYWRUaW1lb3V0PzogbnVtYmVyO1xuICAvKiogRmxhZyB0byBtaWdyYXRlIGJvb2xlYW4gdHlwZSBhcyBuYXRpdmUgYm9vbGVhbiBpbiBSZWRzaGlmdCBmb3IgcHJvcGVyIGRhdGEgdHlwZSByZXByZXNlbnRhdGlvbiAqL1xuICByZWFkb25seSBtYXBCb29sZWFuQXNCb29sZWFuPzogYm9vbGVhbjtcbiAgLyoqIE1heGltdW0gQ1NWIGZpbGUgc2l6ZSBpbiBLQiBmb3IgUzMgc3RhZ2luZyBhbmQgUmVkc2hpZnQgZGF0YSB0cmFuc2ZlciBvcHRpbWl6YXRpb24gKi9cbiAgcmVhZG9ubHkgbWF4RmlsZVNpemU/OiBudW1iZXI7XG4gIC8qKiBGbGFnIHRvIHJlbW92ZSBzdXJyb3VuZGluZyBxdW90YXRpb24gbWFya3MgZnJvbSBzdHJpbmdzIGluIGluY29taW5nIGRhdGEgZm9yIGNsZWFuZXIgZGF0YSBwcm9jZXNzaW5nICovXG4gIHJlYWRvbmx5IHJlbW92ZVF1b3Rlcz86IGJvb2xlYW47XG4gIC8qKiBSZXBsYWNlbWVudCBjaGFyYWN0ZXIgZm9yIGludmFsaWQgY2hhcmFjdGVycyBzcGVjaWZpZWQgaW4gUmVwbGFjZUludmFsaWRDaGFycyBmb3IgZGF0YSBjbGVhbmluZyAqL1xuICByZWFkb25seSByZXBsYWNlQ2hhcnM/OiBzdHJpbmc7XG4gIC8qKiBMaXN0IG9mIGNoYXJhY3RlcnMgdG8gcmVwbGFjZSBkdXJpbmcgZGF0YSBtaWdyYXRpb24gZm9yIGRhdGEgY2xlYW5pbmcgKi9cbiAgcmVhZG9ubHkgcmVwbGFjZUludmFsaWRDaGFycz86IHN0cmluZztcbiAgLyoqIElBTSByb2xlIEFSTiBmb3IgQVdTIFNlY3JldHMgTWFuYWdlciBhY2Nlc3MgdG8gUmVkc2hpZnQgZW5kcG9pbnQgY3JlZGVudGlhbHMgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuPzogc3RyaW5nO1xuICAvKiogU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBBUk4gY29udGFpbmluZyBSZWRzaGlmdCBlbmRwb2ludCBjb25uZWN0aW9uIGRldGFpbHMgZm9yIHNlY3VyZSBjcmVkZW50aWFsIG1hbmFnZW1lbnQgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRBcm46IHN0cmluZztcbiAgLyoqIEtNUyBrZXkgQVJOIGZvciBlbmNyeXB0aW5nIFJlZHNoaWZ0IGVuZHBvaW50IGNyZWRlbnRpYWxzIHNlY3JldCBpbiBTZWNyZXRzIE1hbmFnZXIgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRLTVNBcm4/OiBzdHJpbmc7XG4gIC8qKiBLTVMga2V5IElEIGZvciBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIHdoZW4gdXNpbmcgU1NFX0tNUyBlbmNyeXB0aW9uIG1vZGUgZm9yIFJlZHNoaWZ0IFMzIHN0YWdpbmcgc2VjdXJpdHkgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZUVuY3J5cHRpb25LbXNLZXlJZDogc3RyaW5nO1xuICAvKiogSUFNIHJvbGUgQVJOIGZvciBETVMgc2VydmljZSBhY2Nlc3MgdG8gUmVkc2hpZnQgc2VydmljZSBvcGVyYXRpb25zIGZvciBkYXRhIHdhcmVob3VzZSBpbnRlZ3JhdGlvbiAqL1xuICByZWFkb25seSBzZXJ2aWNlQWNjZXNzUm9sZUFybj86IHN0cmluZztcbiAgLyoqIFRpbWUgZm9ybWF0IHNwZWNpZmljYXRpb24gZm9yIFJlZHNoaWZ0IGRhdGEgbG9hZGluZyBhbmQgdGltZSBoYW5kbGluZyAqL1xuICByZWFkb25seSB0aW1lRm9ybWF0Pzogc3RyaW5nO1xuICAvKiogRmxhZyB0byByZW1vdmUgdHJhaWxpbmcgd2hpdGUgc3BhY2UgY2hhcmFjdGVycyBmcm9tIFZBUkNIQVIgc3RyaW5ncyBmb3IgY2xlYW5lciBkYXRhIHByb2Nlc3NpbmcgKi9cbiAgcmVhZG9ubHkgdHJpbUJsYW5rcz86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIHRydW5jYXRlIGRhdGEgaW4gY29sdW1ucyB0byBmaXQgY29sdW1uIHNpemUgbGltaXRzIGZvciBkYXRhIGludGVncml0eSBpbiBSZWRzaGlmdCAqL1xuICByZWFkb25seSB0cnVuY2F0ZUNvbHVtbnM/OiBib29sZWFuO1xuICAvKiogSW4tbWVtb3J5IGZpbGUgd3JpdGUgYnVmZmVyIHNpemUgaW4gS0IgZm9yIENTViBmaWxlIGdlbmVyYXRpb24gcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uICovXG4gIHJlYWRvbmx5IHdyaXRlQnVmZmVyU2l6ZT86IG51bWJlcjtcbn1cbi8qKlxuICogUHJvdmlkZXMgaW5mb3JtYXRpb24gdGhhdCBkZWZpbmVzIGEgTW9uZ29EQiBlbmRwb2ludC4gTW9kaWZpZWQgZnJvbSB0aGUgZXF1aXZhbGVudCBMMSBDb25zdHJ1Y3QgdG8gcHJldmVudCB1c2Ugb2YgcGxhaW50ZXh0IGNyZWRlbnRpYWxzIGFuZCBlbmZvcmNlIHVzZSBvZiBLTVMgZW5jcnlwdGlvbi5cbiAqIFRoaXMgaW5mb3JtYXRpb24gaW5jbHVkZXMgdGhlIG91dHB1dCBmb3JtYXQgb2YgcmVjb3JkcyBhcHBsaWVkIHRvIHRoZSBlbmRwb2ludCBhbmQgZGV0YWlscyBvZiB0cmFuc2FjdGlvbiBhbmQgY29udHJvbCB0YWJsZSBkYXRhIGluZm9ybWF0aW9uLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBvdGhlciBhdmFpbGFibGUgc2V0dGluZ3MsIHNlZSBbRW5kcG9pbnQgY29uZmlndXJhdGlvbiBzZXR0aW5ncyB3aGVuIHVzaW5nIE1vbmdvREIgYXMgYSBzb3VyY2UgZm9yIEFXUyBETVNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1NvdXJjZS5Nb25nb0RCLmh0bWwjQ0hBUF9Tb3VyY2UuTW9uZ29EQi5Db25maWd1cmF0aW9uKSBpbiB0aGUgKkFXUyBEYXRhYmFzZSBNaWdyYXRpb24gU2VydmljZSBVc2VyIEd1aWRlKiAuXG4gKiBAc3RydWN0XG4gKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LW1vbmdvZGJzZXR0aW5ncy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9uZ29EYlNldHRpbmdzUHJvcGVydHkge1xuICAvKiogQXV0aGVudGljYXRpb24gbWVjaGFuaXNtIGZvciBNb25nb0RCIHNvdXJjZSBlbmRwb2ludCBhY2Nlc3Mgd2l0aCB2ZXJzaW9uLXNwZWNpZmljIGRlZmF1bHRzICovXG4gIHJlYWRvbmx5IGF1dGhNZWNoYW5pc20/OiBzdHJpbmc7XG4gIC8qKiBNb25nb0RCIGRhdGFiYXNlIG5hbWUgZm9yIGF1dGhlbnRpY2F0aW9uIHdpdGggZGVmYXVsdCBcImFkbWluXCIgZGF0YWJhc2UgKi9cbiAgcmVhZG9ubHkgYXV0aFNvdXJjZT86IHN0cmluZztcbiAgLyoqIEF1dGhlbnRpY2F0aW9uIHR5cGUgZm9yIE1vbmdvREIgc291cmNlIGVuZHBvaW50IGFjY2VzcyBjb250cm9sICovXG4gIHJlYWRvbmx5IGF1dGhUeXBlPzogc3RyaW5nO1xuICAvKiogRGF0YWJhc2UgbmFtZSBvbiBNb25nb0RCIHNvdXJjZSBlbmRwb2ludCBmb3IgbWlncmF0aW9uIHNjb3BlIHNwZWNpZmljYXRpb24gKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lPzogc3RyaW5nO1xuICAvKiogTnVtYmVyIG9mIGRvY3VtZW50cyB0byBwcmV2aWV3IGZvciBkb2N1bWVudCBvcmdhbml6YXRpb24gYW5hbHlzaXMgd2hlbiB1c2luZyB0YWJsZSBtb2RlICovXG4gIHJlYWRvbmx5IGRvY3NUb0ludmVzdGlnYXRlPzogc3RyaW5nO1xuICAvKiogRmxhZyB0byBzcGVjaWZ5IGRvY3VtZW50IElEIGV4dHJhY3Rpb24gd2hlbiB1c2luZyBkb2N1bWVudCBtb2RlICovXG4gIHJlYWRvbmx5IGV4dHJhY3REb2NJZD86IHN0cmluZztcbiAgLyoqIE5lc3RpbmcgbGV2ZWwgc3BlY2lmaWNhdGlvbiBmb3IgZG9jdW1lbnQgb3IgdGFibGUgbW9kZSBzZWxlY3Rpb24gKi9cbiAgcmVhZG9ubHkgbmVzdGluZ0xldmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9ydCB2YWx1ZSBmb3IgdGhlIE1vbmdvREIgc291cmNlIGVuZHBvaW50LlxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LW1vbmdvZGJzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtbW9uZ29kYnNldHRpbmdzLXBvcnRcbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgZnVsbCBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgSUFNIHJvbGUgdGhhdCBzcGVjaWZpZXMgQVdTIERNUyBhcyB0aGUgdHJ1c3RlZCBlbnRpdHkgYW5kIGdyYW50cyB0aGUgcmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gYWNjZXNzIHRoZSB2YWx1ZSBpbiBgU2VjcmV0c01hbmFnZXJTZWNyZXRgIC5cbiAgICogVGhlIHJvbGUgbXVzdCBhbGxvdyB0aGUgYGlhbTpQYXNzUm9sZWAgYWN0aW9uLiBgU2VjcmV0c01hbmFnZXJTZWNyZXRgIGhhcyB0aGUgdmFsdWUgb2YgdGhlIEFXUyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IHRoYXQgYWxsb3dzIGFjY2VzcyB0byB0aGUgTW9uZ29EQiBlbmRwb2ludC5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1tb25nb2Ric2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LW1vbmdvZGJzZXR0aW5ncy1zZWNyZXRzbWFuYWdlcmFjY2Vzc3JvbGVhcm5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBmdWxsIEFSTiBvZiB0aGUgYFNlY3JldHNNYW5hZ2VyU2VjcmV0YCB0aGF0IGNvbnRhaW5zIHRoZSBNb25nb0RCIGVuZHBvaW50IGNvbm5lY3Rpb24gZGV0YWlscy5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1tb25nb2Ric2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LW1vbmdvZGJzZXR0aW5ncy1zZWNyZXRzbWFuYWdlcnNlY3JldGlkXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlclNlY3JldEFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBLTVMga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGUgY3JlZGVudGlhbHMgc2VjcmV0LlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRLTVNBcm4/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VydmVyIG9uIHRoZSBNb25nb0RCIHNvdXJjZSBlbmRwb2ludC5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1tb25nb2Ric2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LW1vbmdvZGJzZXR0aW5ncy1zZXJ2ZXJuYW1lXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJOYW1lPzogc3RyaW5nO1xufVxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiB0aGF0IGRlZmluZXMgYW4gSUJNREIyIGVuZHBvaW50LiBNb2RpZmllZCBmcm9tIHRoZSBlcXVpdmFsZW50IEwxIENvbnN0cnVjdCB0byBwcmV2ZW50IHVzZSBvZiBwbGFpbnRleHQgY3JlZGVudGlhbHMgYW5kIGVuZm9yY2UgdXNlIG9mIEtNUyBlbmNyeXB0aW9uLlxuICogVGhpcyBpbmZvcm1hdGlvbiBpbmNsdWRlcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiByZWNvcmRzIGFwcGxpZWQgdG8gdGhlIGVuZHBvaW50IGFuZCBkZXRhaWxzIG9mIHRyYW5zYWN0aW9uIGFuZCBjb250cm9sIHRhYmxlIGRhdGEgaW5mb3JtYXRpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IG90aGVyIGF2YWlsYWJsZSBzZXR0aW5ncywgc2VlIFtFeHRyYSBjb25uZWN0aW9uIGF0dHJpYnV0ZXMgd2hlbiB1c2luZyBEYjIgTFVXIGFzIGEgc291cmNlIGZvciBBV1MgRE1TXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9Tb3VyY2UuREIyLmh0bWwjQ0hBUF9Tb3VyY2UuREIyLkNvbm5lY3Rpb25BdHRyaWIpIGluIHRoZSAqQVdTIERhdGFiYXNlIE1pZ3JhdGlvbiBTZXJ2aWNlIFVzZXIgR3VpZGUqIC5cbiAqIEBzdHJ1Y3RcbiAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtaWJtZGIyc2V0dGluZ3MuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElibURiMlNldHRpbmdzUHJvcGVydHkge1xuICAvKiogTG9nIHNlcXVlbmNlIG51bWJlciAoTFNOKSBmb3IgSUJNIERCMiBjaGFuZ2UgZGF0YSBjYXB0dXJlIChDREMpIHJlcGxpY2F0aW9uIHN0YXJ0aW5nIHBvaW50ICovXG4gIHJlYWRvbmx5IGN1cnJlbnRMc24/OiBzdHJpbmc7XG4gIC8qKiBNYXhpbXVtIGJ5dGVzIHBlciByZWFkIG9wZXJhdGlvbiBmb3IgSUJNIERCMiBkYXRhIHRyYW5zZmVyIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiBlbmFibGluZyB0aHJvdWdocHV0IHR1bmluZyAqL1xuICByZWFkb25seSBtYXhLQnl0ZXNQZXJSZWFkPzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIGZ1bGwgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIElBTSByb2xlIHRoYXQgc3BlY2lmaWVzIEFXUyBETVMgYXMgdGhlIHRydXN0ZWQgZW50aXR5IGFuZCBncmFudHMgdGhlIHJlcXVpcmVkIHBlcm1pc3Npb25zIHRvIGFjY2VzcyB0aGUgdmFsdWUgaW4gYFNlY3JldHNNYW5hZ2VyU2VjcmV0YCAuXG4gICAqIFRoZSByb2xlIG11c3QgYWxsb3cgdGhlIGBpYW06UGFzc1JvbGVgIGFjdGlvbi4gYFNlY3JldHNNYW5hZ2VyU2VjcmV0YCBoYXMgdGhlIHZhbHVlIG9mdGhlIEFXUyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IHRoYXQgYWxsb3dzIGFjY2VzcyB0byB0aGUgRGIyIExVVyBlbmRwb2ludC5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1pYm1kYjJzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtaWJtZGIyc2V0dGluZ3Mtc2VjcmV0c21hbmFnZXJhY2Nlc3Nyb2xlYXJuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm4/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZnVsbCBBUk4gb2YgdGhlIGBTZWNyZXRzTWFuYWdlclNlY3JldGAgdGhhdCBjb250YWlucyB0aGUgSUJNREIyIGVuZHBvaW50IGNvbm5lY3Rpb24gZGV0YWlscy5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1pYm1kYjJzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtaWJtZGIyc2V0dGluZ3Mtc2VjcmV0c21hbmFnZXJzZWNyZXRpZFxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgS01TIGtleSB1c2VkIHRvIGVuY3J5cHQgdGhlIGNyZWRlbnRpYWxzIHNlY3JldC5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0S01TQXJuPzogc3RyaW5nO1xuICAvKipcbiAgICogRW5hYmxlcyBvbmdvaW5nIHJlcGxpY2F0aW9uIChDREMpIGFzIGEgQk9PTEVBTiB2YWx1ZS5cbiAgICogVGhlIGRlZmF1bHQgaXMgdHJ1ZS5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1pYm1kYjJzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtaWJtZGIyc2V0dGluZ3Mtc2V0ZGF0YWNhcHR1cmVjaGFuZ2VzXG4gICAqL1xuICByZWFkb25seSBzZXREYXRhQ2FwdHVyZUNoYW5nZXM/OiBib29sZWFuO1xufVxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiB0aGF0IGRlZmluZXMgYW4gQW1hem9uIE5lcHR1bmUgZW5kcG9pbnQuIE1vZGlmaWVkIGZyb20gdGhlIGVxdWl2YWxlbnQgTDEgQ29uc3RydWN0IHRvIHByZXZlbnQgdXNlIG9mIHBsYWludGV4dCBjcmVkZW50aWFscyBhbmQgZW5mb3JjZSB1c2Ugb2YgS01TIGVuY3J5cHRpb24uXG4gKiBUaGlzIGluZm9ybWF0aW9uIGluY2x1ZGVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHJlY29yZHMgYXBwbGllZCB0byB0aGUgZW5kcG9pbnQgYW5kIGRldGFpbHMgb2YgdHJhbnNhY3Rpb24gYW5kIGNvbnRyb2wgdGFibGUgZGF0YSBpbmZvcm1hdGlvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGF2YWlsYWJsZSBzZXR0aW5ncywgc2VlIFtTcGVjaWZ5aW5nIGVuZHBvaW50IHNldHRpbmdzIGZvciBBbWF6b24gTmVwdHVuZSBhcyBhIHRhcmdldF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfVGFyZ2V0Lk5lcHR1bmUuaHRtbCNDSEFQX1RhcmdldC5OZXB0dW5lLkVuZHBvaW50U2V0dGluZ3MpIGluIHRoZSAqQVdTIERhdGFiYXNlIE1pZ3JhdGlvbiBTZXJ2aWNlIFVzZXIgR3VpZGUqIC5cbiAqIEBzdHJ1Y3RcbiAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtbmVwdHVuZXNldHRpbmdzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXB0dW5lU2V0dGluZ3NQcm9wZXJ0eSB7XG4gIC8qKiBSZXRyeSBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMgZm9yIERNUyBidWxrLWxvYWQgb3BlcmF0aW9ucyB0byBOZXB0dW5lIHRhcmdldCBkYXRhYmFzZSAqL1xuICByZWFkb25seSBlcnJvclJldHJ5RHVyYXRpb24/OiBudW1iZXI7XG4gIHJlYWRvbmx5IG1heEZpbGVTaXplPzogbnVtYmVyO1xuICAvKiogTWF4aW11bSByZXRyeSBjb3VudCBmb3IgRE1TIGJ1bGstbG9hZCBvcGVyYXRpb25zIHRvIE5lcHR1bmUgdGFyZ2V0IGRhdGFiYXNlIGVuYWJsaW5nICovXG4gIHJlYWRvbmx5IG1heFJldHJ5Q291bnQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHMzQnVja2V0Rm9sZGVyPzogc3RyaW5nO1xuICAvKiogUzMgYnVja2V0IG5hbWUgZm9yIHRlbXBvcmFyeSBzdG9yYWdlIG9mIG1pZ3JhdGVkIGdyYXBoIGRhdGEgZHVyaW5nIERNUyBOZXB0dW5lIG1pZ3JhdGlvbiAqL1xuICByZWFkb25seSBzM0J1Y2tldE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgc2VydmljZUFjY2Vzc1JvbGVBcm4/OiBzdHJpbmc7XG59XG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIHRoYXQgZGVmaW5lcyBhbiBPcGVuU2VhcmNoIGVuZHBvaW50LiBNb2RpZmllZCBmcm9tIHRoZSBlcXVpdmFsZW50IEwxIENvbnN0cnVjdCB0byBwcmV2ZW50IHVzZSBvZiBwbGFpbnRleHQgY3JlZGVudGlhbHMgYW5kIGVuZm9yY2UgdXNlIG9mIEtNUyBlbmNyeXB0aW9uLlxuICogVGhpcyBpbmZvcm1hdGlvbiBpbmNsdWRlcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiByZWNvcmRzIGFwcGxpZWQgdG8gdGhlIGVuZHBvaW50IGFuZCBkZXRhaWxzIG9mIHRyYW5zYWN0aW9uIGFuZCBjb250cm9sIHRhYmxlIGRhdGEgaW5mb3JtYXRpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhdmFpbGFibGUgc2V0dGluZ3MsIHNlZSBbRXh0cmEgY29ubmVjdGlvbiBhdHRyaWJ1dGVzIHdoZW4gdXNpbmcgT3BlblNlYXJjaCBhcyBhIHRhcmdldCBmb3IgQVdTIERNU10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfVGFyZ2V0LkVsYXN0aWNzZWFyY2guaHRtbCNDSEFQX1RhcmdldC5FbGFzdGljc2VhcmNoLkNvbmZpZ3VyYXRpb24pIGluIHRoZSAqQVdTIERhdGFiYXNlIE1pZ3JhdGlvbiBTZXJ2aWNlIFVzZXIgR3VpZGUqIC5cbiAqIEBzdHJ1Y3RcbiAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtZWxhc3RpY3NlYXJjaHNldHRpbmdzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbGFzdGljc2VhcmNoU2V0dGluZ3NQcm9wZXJ0eSB7XG4gIC8qKiBPcGVuU2VhcmNoIGNsdXN0ZXIgZW5kcG9pbnQgVVJJIGZvciBETVMgdGFyZ2V0IGNvbm5lY3Rpdml0eSBlbmFibGluZyBzZWFyY2ggZW5naW5lIGRhdGEgbWlncmF0aW9uIGFuZCBpbmRleGluZyAqL1xuICByZWFkb25seSBlbmRwb2ludFVyaT86IHN0cmluZztcbiAgcmVhZG9ubHkgZXJyb3JSZXRyeUR1cmF0aW9uPzogbnVtYmVyO1xuICAvKiogTWF4aW11bSBwZXJjZW50YWdlIG9mIGZhaWxlZCByZWNvcmRzIGJlZm9yZSBzdG9wcGluZyBmdWxsIGxvYWQgb3BlcmF0aW9uIGVuYWJsaW5nICovXG4gIHJlYWRvbmx5IGZ1bGxMb2FkRXJyb3JQZXJjZW50YWdlPzogbnVtYmVyO1xuICByZWFkb25seSBzZXJ2aWNlQWNjZXNzUm9sZUFybj86IHN0cmluZztcbn1cbi8qKlxuICogUHJvdmlkZXMgaW5mb3JtYXRpb24gdGhhdCBkZWZpbmVzIGEgRG9jdW1lbnREQiBlbmRwb2ludC4gTW9kaWZpZWQgZnJvbSB0aGUgZXF1aXZhbGVudCBMMSBDb25zdHJ1Y3QgdG8gcHJldmVudCB1c2Ugb2YgcGxhaW50ZXh0IGNyZWRlbnRpYWxzIGFuZCBlbmZvcmNlIHVzZSBvZiBLTVMgZW5jcnlwdGlvbi5cbiAqIFRoaXMgaW5mb3JtYXRpb24gaW5jbHVkZXMgdGhlIG91dHB1dCBmb3JtYXQgb2YgcmVjb3JkcyBhcHBsaWVkIHRvIHRoZSBlbmRwb2ludCBhbmQgZGV0YWlscyBvZiB0cmFuc2FjdGlvbiBhbmQgY29udHJvbCB0YWJsZSBkYXRhIGluZm9ybWF0aW9uLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBvdGhlciBhdmFpbGFibGUgc2V0dGluZ3MsIHNlZSBbVXNpbmcgZXh0cmEgY29ubmVjdGlvbnMgYXR0cmlidXRlcyB3aXRoIEFtYXpvbiBEb2N1bWVudERCIGFzIGEgc291cmNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9Tb3VyY2UuRG9jdW1lbnREQi5odG1sI0NIQVBfU291cmNlLkRvY3VtZW50REIuRUNBcykgYW5kIFtVc2luZyBBbWF6b24gRG9jdW1lbnREQiBhcyBhIHRhcmdldCBmb3IgQVdTIERhdGFiYXNlIE1pZ3JhdGlvbiBTZXJ2aWNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9UYXJnZXQuRG9jdW1lbnREQi5odG1sKSBpbiB0aGUgKkFXUyBEYXRhYmFzZSBNaWdyYXRpb24gU2VydmljZSBVc2VyIEd1aWRlKiAuXG4gKiBAc3RydWN0XG4gKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LWRvY2Ric2V0dGluZ3MuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvY0RiU2V0dGluZ3NQcm9wZXJ0eSB7XG4gIC8qKiBOdW1iZXIgb2YgZG9jdW1lbnRzIHRvIHByZXZpZXcgZm9yIGRldGVybWluaW5nIGRvY3VtZW50IG9yZ2FuaXphdGlvbiBhbmQgc2NoZW1hIGluZmVyZW5jZSAqL1xuICByZWFkb25seSBkb2NzVG9JbnZlc3RpZ2F0ZT86IG51bWJlcjtcbiAgcmVhZG9ubHkgZXh0cmFjdERvY0lkPzogYm9vbGVhbjtcbiAgLyoqIE5lc3RpbmcgbGV2ZWwgc3BlY2lmaWNhdGlvbiBmb3IgRG9jdW1lbnREQiBtaWdyYXRpb24gbW9kZSBzZWxlY3Rpb24gZW5hYmxpbmcgZG9jdW1lbnQgb3IgdGFibGUgbW9kZSBtaWdyYXRpb24gKi9cbiAgcmVhZG9ubHkgbmVzdGluZ0xldmVsPzogc3RyaW5nO1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm4/OiBzdHJpbmc7XG4gIC8qKiBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IEFSTiBjb250YWluaW5nIERvY3VtZW50REIgZW5kcG9pbnQgY29ubmVjdGlvbiBkZXRhaWxzIGVuYWJsaW5nICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0QXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0S01TQXJuPzogc3RyaW5nO1xufVxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiwgaW5jbHVkaW5nIHRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgSUFNIHJvbGUgdXNlZCB0byBkZWZpbmUgYW4gQW1hem9uIER5bmFtb0RCIHRhcmdldCBlbmRwb2ludC4gIE1vZGlmaWVkIGZyb20gdGhlIGVxdWl2YWxlbnQgTDEgQ29uc3RydWN0IHRvIHByZXZlbnQgdXNlIG9mIHBsYWludGV4dCBjcmVkZW50aWFscyBhbmQgZW5mb3JjZSB1c2Ugb2YgS01TIGVuY3J5cHRpb24uXG4gKiBUaGlzIGluZm9ybWF0aW9uIGFsc28gaW5jbHVkZXMgdGhlIG91dHB1dCBmb3JtYXQgb2YgcmVjb3JkcyBhcHBsaWVkIHRvIHRoZSBlbmRwb2ludCBhbmQgZGV0YWlscyBvZiB0cmFuc2FjdGlvbiBhbmQgY29udHJvbCB0YWJsZSBkYXRhIGluZm9ybWF0aW9uLiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgb3RoZXIgYXZhaWxhYmxlIHNldHRpbmdzLCBzZWUgW1VzaW5nIG9iamVjdCBtYXBwaW5nIHRvIG1pZ3JhdGUgZGF0YSB0byBEeW5hbW9EQl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfVGFyZ2V0LkR5bmFtb0RCLmh0bWwjQ0hBUF9UYXJnZXQuRHluYW1vREIuT2JqZWN0TWFwcGluZykgaW4gdGhlICpBV1MgRGF0YWJhc2UgTWlncmF0aW9uIFNlcnZpY2UgVXNlciBHdWlkZSogLlxuICogQHN0cnVjdFxuICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1keW5hbW9kYnNldHRpbmdzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEeW5hbW9EYlNldHRpbmdzUHJvcGVydHkge1xuICAvKiogSUFNIHNlcnZpY2Ugcm9sZSBBUk4gZm9yIERNUyBEeW5hbW9EQiBlbmRwb2ludCBhY2Nlc3MgZW5hYmxpbmcgc2VjdXJlIGF1dGhlbnRpY2F0aW9uIGFuZCAqL1xuICByZWFkb25seSBzZXJ2aWNlQWNjZXNzUm9sZUFybj86IHN0cmluZztcbn1cbi8qKlxuICogUHJvdmlkZXMgaW5mb3JtYXRpb24gdGhhdCBkZWZpbmVzIGEgTWljcm9zb2Z0IFNRTCBTZXJ2ZXIgZW5kcG9pbnQuIE1vZGlmaWVkIGZyb20gdGhlIGVxdWl2YWxlbnQgTDEgQ29uc3RydWN0IHRvIHByZXZlbnQgdXNlIG9mIHBsYWludGV4dCBjcmVkZW50aWFscyBhbmQgZW5mb3JjZSB1c2Ugb2YgS01TIGVuY3J5cHRpb24uXG4gKiBUaGlzIGluZm9ybWF0aW9uIGluY2x1ZGVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHJlY29yZHMgYXBwbGllZCB0byB0aGUgZW5kcG9pbnQgYW5kIGRldGFpbHMgb2YgdHJhbnNhY3Rpb24gYW5kIGNvbnRyb2wgdGFibGUgZGF0YSBpbmZvcm1hdGlvbi4gRm9yIGluZm9ybWF0aW9uIGFib3V0IG90aGVyIGF2YWlsYWJsZSBzZXR0aW5ncywgc2VlIFtFeHRyYSBjb25uZWN0aW9uIGF0dHJpYnV0ZXMgd2hlbiB1c2luZyBTUUwgU2VydmVyIGFzIGEgc291cmNlIGZvciBBV1MgRE1TXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9Tb3VyY2UuU1FMU2VydmVyLmh0bWwjQ0hBUF9Tb3VyY2UuU1FMU2VydmVyLkNvbm5lY3Rpb25BdHRyaWIpIGFuZCBbRXh0cmEgY29ubmVjdGlvbiBhdHRyaWJ1dGVzIHdoZW4gdXNpbmcgU1FMIFNlcnZlciBhcyBhIHRhcmdldCBmb3IgQVdTIERNU10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfVGFyZ2V0LlNRTFNlcnZlci5odG1sI0NIQVBfVGFyZ2V0LlNRTFNlcnZlci5Db25uZWN0aW9uQXR0cmliKSBpbiB0aGUgKkFXUyBEYXRhYmFzZSBNaWdyYXRpb24gU2VydmljZSBVc2VyIEd1aWRlKiAuXG4gKiBAc3RydWN0XG4gKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LW1pY3Jvc29mdHNxbHNlcnZlcnNldHRpbmdzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNaWNyb3NvZnRTcWxTZXJ2ZXJTZXR0aW5nc1Byb3BlcnR5IHtcbiAgLyoqIEJDUCBwYWNrZXQgc2l6ZSBpbiBieXRlcyBmb3IgU1FMIFNlcnZlciBkYXRhIHRyYW5zZmVyIG9wdGltaXphdGlvbiBlbmFibGluZyBwZXJmb3JtYW5jZSAqL1xuICByZWFkb25seSBiY3BQYWNrZXRTaXplPzogbnVtYmVyO1xuICByZWFkb25seSBjb250cm9sVGFibGVzRmlsZUdyb3VwPzogc3RyaW5nO1xuICAvKiogRGF0YWJhc2UgbmFtZSBmb3IgU1FMIFNlcnZlciBlbmRwb2ludCBjb25uZWN0aXZpdHkgZW5hYmxpbmcgc3BlY2lmaWMgZGF0YWJhc2UgdGFyZ2V0aW5nICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgZm9yY2VMb2JMb29rdXA/OiBib29sZWFuO1xuXG4gIC8qKiBUQ1AgcG9ydCBudW1iZXIgZm9yIFNRTCBTZXJ2ZXIgZW5kcG9pbnQgY29ubmVjdGl2aXR5IGVuYWJsaW5nIGN1c3RvbSBwb3J0IGNvbmZpZ3VyYXRpb24gZm9yICovXG4gIHJlYWRvbmx5IHBvcnQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHF1ZXJ5U2luZ2xlQWx3YXlzT25Ob2RlPzogYm9vbGVhbjtcbiAgLyoqIEZsYWcgdG8gcmVhZCBjaGFuZ2VzIG9ubHkgZnJvbSB0cmFuc2FjdGlvbiBsb2cgYmFja3VwcyBlbmFibGluZyBjb250cm9sbGVkIHRyYW5zYWN0aW9uIGxvZyAqL1xuICByZWFkb25seSByZWFkQmFja3VwT25seT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHNhZmVndWFyZFBvbGljeT86IHN0cmluZztcbiAgLyoqIElBTSByb2xlIEFSTiBmb3IgRE1TIHRvIGFjY2VzcyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IGNvbnRhaW5pbmcgU1FMIFNlcnZlciBjcmVkZW50aWFscyAqL1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm4/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0QXJuOiBzdHJpbmc7XG4gIC8qKiBLTVMga2V5IEFSTiBmb3IgZW5jcnlwdGluZyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IGNvbnRhaW5pbmcgU1FMIFNlcnZlciBjcmVkZW50aWFscyAqL1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlclNlY3JldEtNU0Fybj86IHN0cmluZztcbiAgcmVhZG9ubHkgc2VydmVyTmFtZT86IHN0cmluZztcbiAgLyoqIFRyYW5zYWN0aW9uIGxvZyBhY2Nlc3MgbW9kZSBmb3IgQ0RDIGRhdGEgZmV0Y2hpbmcgZW5hYmxpbmcgb3B0aW1pemVkIGNoYW5nZSBkYXRhIGNhcHR1cmUgaW4gKi9cbiAgcmVhZG9ubHkgdGxvZ0FjY2Vzc01vZGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRyaW1TcGFjZUluQ2hhcj86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIHVzZSBCQ1AgZm9yIGZ1bGwtbG9hZCBvcGVyYXRpb25zIGVuYWJsaW5nIG9wdGltaXplZCBidWxrIGRhdGEgdHJhbnNmZXIgaW4gU1FMIFNlcnZlciBtaWdyYXRpb24gKi9cbiAgcmVhZG9ubHkgdXNlQmNwRnVsbExvYWQ/OiBib29sZWFuO1xuICByZWFkb25seSB1c2VUaGlyZFBhcnR5QmFja3VwRGV2aWNlPzogYm9vbGVhbjtcbn1cbi8qKlxuICogUHJvdmlkZXMgaW5mb3JtYXRpb24gdGhhdCBkZWZpbmVzIGEgR0NQIE15U1FMIGVuZHBvaW50LiBNb2RpZmllZCBmcm9tIHRoZSBlcXVpdmFsZW50IEwxIENvbnN0cnVjdCB0byBwcmV2ZW50IHVzZSBvZiBwbGFpbnRleHQgY3JlZGVudGlhbHMgYW5kIGVuZm9yY2UgdXNlIG9mIEtNUyBlbmNyeXB0aW9uLlxuICogVGhpcyBpbmZvcm1hdGlvbiBpbmNsdWRlcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiByZWNvcmRzIGFwcGxpZWQgdG8gdGhlIGVuZHBvaW50IGFuZCBkZXRhaWxzIG9mIHRyYW5zYWN0aW9uIGFuZCBjb250cm9sIHRhYmxlIGRhdGEgaW5mb3JtYXRpb24uIFRoZXNlIHNldHRpbmdzIGFyZSBtdWNoIHRoZSBzYW1lIGFzIHRoZSBzZXR0aW5ncyBmb3IgYW55IE15U1FMLWNvbXBhdGlibGUgZW5kcG9pbnQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0V4dHJhIGNvbm5lY3Rpb24gYXR0cmlidXRlcyB3aGVuIHVzaW5nIE15U1FMIGFzIGEgc291cmNlIGZvciBBV1MgRE1TXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9Tb3VyY2UuTXlTUUwuaHRtbCNDSEFQX1NvdXJjZS5NeVNRTC5Db25uZWN0aW9uQXR0cmliKSBpbiB0aGUgKkFXUyBEYXRhYmFzZSBNaWdyYXRpb24gU2VydmljZSBVc2VyIEd1aWRlKiAuXG4gKiBAc3RydWN0XG4gKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3MuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdjcE15U1FMU2V0dGluZ3NQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBzY3JpcHQgdG8gcnVuIGltbWVkaWF0ZWx5IGFmdGVyIEFXUyBETVMgY29ubmVjdHMgdG8gdGhlIGVuZHBvaW50LlxuICAgKiBUaGUgbWlncmF0aW9uIHRhc2sgY29udGludWVzIHJ1bm5pbmcgcmVnYXJkbGVzcyBpZiB0aGUgU1FMIHN0YXRlbWVudCBzdWNjZWVkcyBvciBmYWlscy5cbiAgICogRm9yIHRoaXMgcGFyYW1ldGVyLCBwcm92aWRlIHRoZSBjb2RlIG9mIHRoZSBzY3JpcHQgaXRzZWxmLCBub3QgdGhlIG5hbWUgb2YgYSBmaWxlIGNvbnRhaW5pbmcgdGhlIHNjcmlwdC5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1nY3BteXNxbHNldHRpbmdzLmh0bWwjY2ZuLWRtcy1lbmRwb2ludC1nY3BteXNxbHNldHRpbmdzLWFmdGVyY29ubmVjdHNjcmlwdFxuICAgKi9cbiAgcmVhZG9ubHkgYWZ0ZXJDb25uZWN0U2NyaXB0Pzogc3RyaW5nO1xuICAvKipcbiAgICogQWRqdXN0cyB0aGUgYmVoYXZpb3Igb2YgQVdTIERNUyB3aGVuIG1pZ3JhdGluZyBmcm9tIGFuIFNRTCBTZXJ2ZXIgc291cmNlIGRhdGFiYXNlIHRoYXQgaXMgaG9zdGVkIGFzIHBhcnQgb2YgYW4gQWx3YXlzIE9uIGF2YWlsYWJpbGl0eSBncm91cCBjbHVzdGVyLlxuICAgKiBJZiB5b3UgbmVlZCBBV1MgRE1TIHRvIHBvbGwgYWxsIHRoZSBub2RlcyBpbiB0aGUgQWx3YXlzIE9uIGNsdXN0ZXIgZm9yIHRyYW5zYWN0aW9uIGJhY2t1cHMsIHNldCB0aGlzIGF0dHJpYnV0ZSB0byBgZmFsc2VgIC5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1nY3BteXNxbHNldHRpbmdzLmh0bWwjY2ZuLWRtcy1lbmRwb2ludC1nY3BteXNxbHNldHRpbmdzLWNsZWFuc291cmNlbWV0YWRhdGFvbm1pc21hdGNoXG4gICAqL1xuICByZWFkb25seSBjbGVhblNvdXJjZU1ldGFkYXRhT25NaXNtYXRjaD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEYXRhYmFzZSBuYW1lIGZvciB0aGUgZW5kcG9pbnQuXG4gICAqIEZvciBhIE15U1FMIHNvdXJjZSBvciB0YXJnZXQgZW5kcG9pbnQsIGRvbid0IGV4cGxpY2l0bHkgc3BlY2lmeSB0aGUgZGF0YWJhc2UgdXNpbmcgdGhlIGBEYXRhYmFzZU5hbWVgIHJlcXVlc3QgcGFyYW1ldGVyIG9uIGVpdGhlciB0aGUgYENyZWF0ZUVuZHBvaW50YCBvciBgTW9kaWZ5RW5kcG9pbnRgIEFQSSBjYWxsLiBTcGVjaWZ5aW5nIGBEYXRhYmFzZU5hbWVgIHdoZW4geW91IGNyZWF0ZSBvciBtb2RpZnkgYSBNeVNRTCBlbmRwb2ludCByZXBsaWNhdGVzIGFsbCB0aGUgdGFzayB0YWJsZXMgdG8gdGhpcyBzaW5nbGUgZGF0YWJhc2UuIEZvciBNeVNRTCBlbmRwb2ludHMsIHlvdSBzcGVjaWZ5IHRoZSBkYXRhYmFzZSBvbmx5IHdoZW4geW91IHNwZWNpZnkgdGhlIHNjaGVtYSBpbiB0aGUgdGFibGUtbWFwcGluZyBydWxlcyBvZiB0aGUgQVdTIERNUyB0YXNrLlxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3MtZGF0YWJhc2VuYW1lXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZU5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaG93IG9mdGVuIHRvIGNoZWNrIHRoZSBiaW5hcnkgbG9nIGZvciBuZXcgY2hhbmdlcy9ldmVudHMgd2hlbiB0aGUgZGF0YWJhc2UgaXMgaWRsZS5cbiAgICogVGhlIGRlZmF1bHQgaXMgZml2ZSBzZWNvbmRzLlxuICAgKiBFeGFtcGxlOiBgZXZlbnRzUG9sbEludGVydmFsPTU7YFxuICAgKiBJbiB0aGUgZXhhbXBsZSwgQVdTIERNUyBjaGVja3MgZm9yIGNoYW5nZXMgaW4gdGhlIGJpbmFyeSBsb2dzIGV2ZXJ5IGZpdmUgc2Vjb25kcy5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1nY3BteXNxbHNldHRpbmdzLmh0bWwjY2ZuLWRtcy1lbmRwb2ludC1nY3BteXNxbHNldHRpbmdzLWV2ZW50c3BvbGxpbnRlcnZhbFxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRzUG9sbEludGVydmFsPzogbnVtYmVyO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIHNpemUgKGluIEtCKSBvZiBhbnkgLmNzdiBmaWxlIHVzZWQgdG8gdHJhbnNmZXIgZGF0YSB0byBhIE15U1FMLWNvbXBhdGlibGUgZGF0YWJhc2UuXG4gICAqIEV4YW1wbGU6IGBtYXhGaWxlU2l6ZT01MTJgXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy1tYXhmaWxlc2l6ZVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4RmlsZVNpemU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJbXByb3ZlcyBwZXJmb3JtYW5jZSB3aGVuIGxvYWRpbmcgZGF0YSBpbnRvIHRoZSBNeVNRTC1jb21wYXRpYmxlIHRhcmdldCBkYXRhYmFzZS5cbiAgICogU3BlY2lmaWVzIGhvdyBtYW55IHRocmVhZHMgdG8gdXNlIHRvIGxvYWQgdGhlIGRhdGEgaW50byB0aGUgTXlTUUwtY29tcGF0aWJsZSB0YXJnZXQgZGF0YWJhc2UuIFNldHRpbmcgYSBsYXJnZSBudW1iZXIgb2YgdGhyZWFkcyBjYW4gaGF2ZSBhbiBhZHZlcnNlIGVmZmVjdCBvbiBkYXRhYmFzZSBwZXJmb3JtYW5jZSwgYmVjYXVzZSBhIHNlcGFyYXRlIGNvbm5lY3Rpb24gaXMgcmVxdWlyZWQgZm9yIGVhY2ggdGhyZWFkLiBUaGUgZGVmYXVsdCBpcyBvbmUuXG4gICAqIEV4YW1wbGU6IGBwYXJhbGxlbExvYWRUaHJlYWRzPTFgXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy1wYXJhbGxlbGxvYWR0aHJlYWRzXG4gICAqL1xuICByZWFkb25seSBwYXJhbGxlbExvYWRUaHJlYWRzPzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIHBvcnQgdXNlZCBieSB0aGUgZW5kcG9pbnQgZGF0YWJhc2UuXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy1wb3J0XG4gICAqL1xuICByZWFkb25seSBwb3J0PzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIGZ1bGwgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIElBTSByb2xlIHRoYXQgc3BlY2lmaWVzIEFXUyBETVMgYXMgdGhlIHRydXN0ZWQgZW50aXR5IGFuZCBncmFudHMgdGhlIHJlcXVpcmVkIHBlcm1pc3Npb25zIHRvIGFjY2VzcyB0aGUgdmFsdWUgaW4gYFNlY3JldHNNYW5hZ2VyU2VjcmV0LmAgVGhlIHJvbGUgbXVzdCBhbGxvdyB0aGUgYGlhbTpQYXNzUm9sZWAgYWN0aW9uLiBgU2VjcmV0c01hbmFnZXJTZWNyZXRgIGhhcyB0aGUgdmFsdWUgb2YgdGhlIEFXUyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IHRoYXQgYWxsb3dzIGFjY2VzcyB0byB0aGUgTXlTUUwgZW5kcG9pbnQuXG4gICAqID4gWW91IGNhbiBzcGVjaWZ5IG9uZSBvZiB0d28gc2V0cyBvZiB2YWx1ZXMgZm9yIHRoZXNlIHBlcm1pc3Npb25zLiBZb3UgY2FuIHNwZWNpZnkgdGhlIHZhbHVlcyBmb3IgdGhpcyBzZXR0aW5nIGFuZCBgU2VjcmV0c01hbmFnZXJTZWNyZXRJZGAgLiBPciB5b3UgY2FuIHNwZWNpZnkgY2xlYXItdGV4dCB2YWx1ZXMgZm9yIGBVc2VyTmFtZWAgLCBgUGFzc3dvcmRgICwgYFNlcnZlck5hbWVgICwgYW5kIGBQb3J0YCAuIFlvdSBjYW4ndCBzcGVjaWZ5IGJvdGguXG4gICAqID5cbiAgICogPiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBjcmVhdGluZyB0aGlzIGBTZWNyZXRzTWFuYWdlclNlY3JldGAgLCB0aGUgY29ycmVzcG9uZGluZyBgU2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuYCAsIGFuZCB0aGUgYFNlY3JldHNNYW5hZ2VyU2VjcmV0SWRgIHJlcXVpcmVkIHRvIGFjY2VzcyBpdCwgc2VlIFtVc2luZyBzZWNyZXRzIHRvIGFjY2VzcyBBV1MgRGF0YWJhc2UgTWlncmF0aW9uIFNlcnZpY2UgcmVzb3VyY2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9TZWN1cml0eS5odG1sI3NlY3VyaXR5LWlhbS1zZWNyZXRzbWFuYWdlcikgaW4gdGhlICpBV1MgRGF0YWJhc2UgTWlncmF0aW9uIFNlcnZpY2UgVXNlciBHdWlkZSogLlxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3Mtc2VjcmV0c21hbmFnZXJhY2Nlc3Nyb2xlYXJuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm4/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZnVsbCBBUk4gb2YgdGhlIGBTZWNyZXRzTWFuYWdlclNlY3JldGAgdGhhdCBjb250YWlucyB0aGUgTXlTUUwgZW5kcG9pbnQgY29ubmVjdGlvbiBkZXRhaWxzLlxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3Mtc2VjcmV0c21hbmFnZXJzZWNyZXRpZFxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgS01TIGtleSB1c2VkIHRvIGVuY3J5cHQgdGhlIGNyZWRlbnRpYWxzIHNlY3JldC5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0S01TQXJuPzogc3RyaW5nO1xuICAvKipcbiAgICogRW5kcG9pbnQgVENQIHBvcnQuXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy1zZXJ2ZXJuYW1lXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0aW1lIHpvbmUgZm9yIHRoZSBzb3VyY2UgTXlTUUwgZGF0YWJhc2UuIERvbid0IGVuY2xvc2UgdGltZSB6b25lcyBpbiBzaW5nbGUgcXVvdGF0aW9uIG1hcmtzLlxuICAgKiBFeGFtcGxlOiBgc2VydmVyVGltZXpvbmU9VVMvUGFjaWZpYztgXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy1zZXJ2ZXJ0aW1lem9uZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyVGltZXpvbmU/OiBzdHJpbmc7XG59XG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIHRoYXQgZGVmaW5lcyBhIFBvc3RncmVTUUwgZW5kcG9pbnQuIE1vZGlmaWVkIGZyb20gdGhlIGVxdWl2YWxlbnQgTDEgQ29uc3RydWN0IHRvIHByZXZlbnQgdXNlIG9mIHBsYWludGV4dCBjcmVkZW50aWFscyBhbmQgZW5mb3JjZSB1c2Ugb2YgS01TIGVuY3J5cHRpb24uXG4gKiBUaGlzIGluZm9ybWF0aW9uIGluY2x1ZGVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHJlY29yZHMgYXBwbGllZCB0byB0aGUgZW5kcG9pbnQgYW5kIGRldGFpbHMgb2YgdHJhbnNhY3Rpb24gYW5kIGNvbnRyb2wgdGFibGUgZGF0YSBpbmZvcm1hdGlvbi4gRm9yIGluZm9ybWF0aW9uIGFib3V0IG90aGVyIGF2YWlsYWJsZSBzZXR0aW5ncywgc2VlIFtFeHRyYSBjb25uZWN0aW9uIGF0dHJpYnV0ZXMgd2hlbiB1c2luZyBQb3N0Z3JlU1FMIGFzIGEgc291cmNlIGZvciBBV1MgRE1TXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9Tb3VyY2UuUG9zdGdyZVNRTC5odG1sI0NIQVBfU291cmNlLlBvc3RncmVTUUwuQ29ubmVjdGlvbkF0dHJpYikgYW5kIFtFeHRyYSBjb25uZWN0aW9uIGF0dHJpYnV0ZXMgd2hlbiB1c2luZyBQb3N0Z3JlU1FMIGFzIGEgdGFyZ2V0IGZvciBBV1MgRE1TXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9UYXJnZXQuUG9zdGdyZVNRTC5odG1sI0NIQVBfVGFyZ2V0LlBvc3RncmVTUUwuQ29ubmVjdGlvbkF0dHJpYikgaW4gdGhlICpBV1MgRGF0YWJhc2UgTWlncmF0aW9uIFNlcnZpY2UgVXNlciBHdWlkZSogLlxuICogQHN0cnVjdFxuICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1wb3N0Z3Jlc3Fsc2V0dGluZ3MuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvc3RncmVTcWxTZXR0aW5nc1Byb3BlcnR5IHtcbiAgLyoqIFNRTCBzY3JpcHQgZXhlY3V0ZWQgYWZ0ZXIgY29ubmVjdGluZyB0byBQb3N0Z3JlU1FMIHNvdXJjZSBmb3IgY2hhbmdlIGRhdGEgY2FwdHVyZSAoQ0RDKSAqL1xuICByZWFkb25seSBhZnRlckNvbm5lY3RTY3JpcHQ/OiBzdHJpbmc7XG4gIC8qKiBCYWJlbGZpc2ggZm9yIEF1cm9yYSBQb3N0Z3JlU1FMIGRhdGFiYXNlIG5hbWUgZm9yIERNUyBlbmRwb2ludCBjb25maWd1cmF0aW9uIGVuYWJsaW5nIFNRTCAqL1xuICByZWFkb25seSBiYWJlbGZpc2hEYXRhYmFzZU5hbWU/OiBzdHJpbmc7XG4gIC8qKiBCb29sZWFuIGZsYWcgdG8gZW5hYmxlIERETCBldmVudCBjYXB0dXJlIGZvciBQb3N0Z3JlU1FMIERNUyBtaWdyYXRpb24gZW5hYmxpbmcgc2NoZW1hICovXG4gIHJlYWRvbmx5IGNhcHR1cmVEZGxzPzogYm9vbGVhbjtcbiAgLyoqIERhdGFiYXNlIG1vZGUgc3BlY2lmaWNhdGlvbiBmb3IgUG9zdGdyZVNRTC1jb21wYXRpYmxlIGVuZHBvaW50cyByZXF1aXJpbmcgYWRkaXRpb25hbCAqL1xuICByZWFkb25seSBkYXRhYmFzZU1vZGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgc2NoZW1hIGluIHdoaWNoIHRoZSBvcGVyYXRpb25hbCBEREwgZGF0YWJhc2UgYXJ0aWZhY3RzIGFyZSBjcmVhdGVkLlxuICAgKiBFeGFtcGxlOiBgZGRsQXJ0aWZhY3RzU2NoZW1hPXh5emRkbHNjaGVtYTtgXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLmh0bWwjY2ZuLWRtcy1lbmRwb2ludC1wb3N0Z3Jlc3Fsc2V0dGluZ3MtZGRsYXJ0aWZhY3Rzc2NoZW1hXG4gICAqL1xuICByZWFkb25seSBkZGxBcnRpZmFjdHNTY2hlbWE/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjbGllbnQgc3RhdGVtZW50IHRpbWVvdXQgZm9yIHRoZSBQb3N0Z3JlU1FMIGluc3RhbmNlLCBpbiBzZWNvbmRzLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA2MCBzZWNvbmRzLlxuICAgKiBFeGFtcGxlOiBgZXhlY3V0ZVRpbWVvdXQ9MTAwO2BcbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1wb3N0Z3Jlc3Fsc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LXBvc3RncmVzcWxzZXR0aW5ncy1leGVjdXRldGltZW91dFxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0ZVRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAgLCB0aGlzIHZhbHVlIGNhdXNlcyBhIHRhc2sgdG8gZmFpbCBpZiB0aGUgYWN0dWFsIHNpemUgb2YgYSBMT0IgY29sdW1uIGlzIGdyZWF0ZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGBMb2JNYXhTaXplYCAuXG4gICAqIElmIHRhc2sgaXMgc2V0IHRvIExpbWl0ZWQgTE9CIG1vZGUgYW5kIHRoaXMgb3B0aW9uIGlzIHNldCB0byB0cnVlLCB0aGUgdGFzayBmYWlscyBpbnN0ZWFkIG9mIHRydW5jYXRpbmcgdGhlIExPQiBkYXRhLlxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LXBvc3RncmVzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLWZhaWx0YXNrc29ubG9idHJ1bmNhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZmFpbFRhc2tzT25Mb2JUcnVuY2F0aW9uPzogYm9vbGVhbjtcbiAgLyoqIEJvb2xlYW4gZmxhZyB0byBlbmFibGUgV0FMIGhlYXJ0YmVhdCBmZWF0dXJlIGZvciBQb3N0Z3JlU1FMIERNUyBtaWdyYXRpb24gcHJldmVudGluZyAqL1xuICByZWFkb25seSBoZWFydGJlYXRFbmFibGU/OiBib29sZWFuO1xuICAvKiogV0FMIGhlYXJ0YmVhdCBmcmVxdWVuY3kgaW4gbWludXRlcyBmb3IgUG9zdGdyZVNRTCBETVMgbWlncmF0aW9uIGVuYWJsaW5nIGNvbmZpZ3VyYWJsZSAqL1xuICByZWFkb25seSBoZWFydGJlYXRGcmVxdWVuY3k/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzY2hlbWEgaW4gd2hpY2ggdGhlIGhlYXJ0YmVhdCBhcnRpZmFjdHMgYXJlIGNyZWF0ZWQuXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLmh0bWwjY2ZuLWRtcy1lbmRwb2ludC1wb3N0Z3Jlc3Fsc2V0dGluZ3MtaGVhcnRiZWF0c2NoZW1hXG4gICAqL1xuICByZWFkb25seSBoZWFydGJlYXRTY2hlbWE/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIGxldHMgUG9zdGdyZVNRTCBtaWdyYXRlIHRoZSBib29sZWFuIHR5cGUgYXMgYm9vbGVhbi5cbiAgICogQnkgZGVmYXVsdCwgUG9zdGdyZVNRTCBtaWdyYXRlcyBib29sZWFucyBhcyBgdmFyY2hhcig1KWAgLiBZb3UgbXVzdCBzZXQgdGhpcyBzZXR0aW5nIG9uIGJvdGggdGhlIHNvdXJjZSBhbmQgdGFyZ2V0IGVuZHBvaW50cyBmb3IgaXQgdG8gdGFrZSBlZmZlY3QuXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLmh0bWwjY2ZuLWRtcy1lbmRwb2ludC1wb3N0Z3Jlc3Fsc2V0dGluZ3MtbWFwYm9vbGVhbmFzYm9vbGVhblxuICAgKi9cbiAgcmVhZG9ubHkgbWFwQm9vbGVhbkFzQm9vbGVhbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1heGltdW0gc2l6ZSAoaW4gS0IpIG9mIGFueSAuY3N2IGZpbGUgdXNlZCB0byB0cmFuc2ZlciBkYXRhIHRvIFBvc3RncmVTUUwuXG4gICAqIEV4YW1wbGU6IGBtYXhGaWxlU2l6ZT01MTJgXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLmh0bWwjY2ZuLWRtcy1lbmRwb2ludC1wb3N0Z3Jlc3Fsc2V0dGluZ3MtbWF4ZmlsZXNpemVcbiAgICovXG4gIHJlYWRvbmx5IG1heEZpbGVTaXplPzogbnVtYmVyO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBwbHVnaW4gdG8gdXNlIHRvIGNyZWF0ZSBhIHJlcGxpY2F0aW9uIHNsb3QuXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLmh0bWwjY2ZuLWRtcy1lbmRwb2ludC1wb3N0Z3Jlc3Fsc2V0dGluZ3MtcGx1Z2lubmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBmdWxsIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBJQU0gcm9sZSB0aGF0IHNwZWNpZmllcyBBV1MgRE1TIGFzIHRoZSB0cnVzdGVkIGVudGl0eSBhbmQgZ3JhbnRzIHRoZSByZXF1aXJlZCBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgdGhlIHZhbHVlIGluIGBTZWNyZXRzTWFuYWdlclNlY3JldGAgLlxuICAgKiBUaGUgcm9sZSBtdXN0IGFsbG93IHRoZSBgaWFtOlBhc3NSb2xlYCBhY3Rpb24uIGBTZWNyZXRzTWFuYWdlclNlY3JldGAgaGFzIHRoZSB2YWx1ZSBvZiB0aGUgQVdTIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgdGhhdCBhbGxvd3MgYWNjZXNzIHRvIHRoZSBQb3N0Z3JlU1FMIGVuZHBvaW50LlxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LXBvc3RncmVzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLXNlY3JldHNtYW5hZ2VyYWNjZXNzcm9sZWFyblxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGZ1bGwgQVJOIG9mIHRoZSBgU2VjcmV0c01hbmFnZXJTZWNyZXRgIHRoYXQgY29udGFpbnMgdGhlIFBvc3RncmVTUUwgZW5kcG9pbnQgY29ubmVjdGlvbiBkZXRhaWxzLlxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LXBvc3RncmVzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLXNlY3JldHNtYW5hZ2Vyc2VjcmV0aWRcbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0QXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIEtNUyBrZXkgdXNlZCB0byBlbmNyeXB0IHRoZSBjcmVkZW50aWFscyBzZWNyZXQuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlclNlY3JldEtNU0Fybj86IHN0cmluZztcbiAgLyoqXG4gICAqIFNldHMgdGhlIG5hbWUgb2YgYSBwcmV2aW91c2x5IGNyZWF0ZWQgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IGZvciBhIGNoYW5nZSBkYXRhIGNhcHR1cmUgKENEQykgbG9hZCBvZiB0aGUgUG9zdGdyZVNRTCBzb3VyY2UgaW5zdGFuY2UuXG4gICAqIFdoZW4gdXNlZCB3aXRoIHRoZSBgQ2RjU3RhcnRQb3NpdGlvbmAgcmVxdWVzdCBwYXJhbWV0ZXIgZm9yIHRoZSBBV1MgRE1TIEFQSSAsIHRoaXMgYXR0cmlidXRlIGFsc28gbWFrZXMgaXQgcG9zc2libGUgdG8gdXNlIG5hdGl2ZSBDREMgc3RhcnQgcG9pbnRzLiBETVMgdmVyaWZpZXMgdGhhdCB0aGUgc3BlY2lmaWVkIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBleGlzdHMgYmVmb3JlIHN0YXJ0aW5nIHRoZSBDREMgbG9hZCB0YXNrLiBJdCBhbHNvIHZlcmlmaWVzIHRoYXQgdGhlIHRhc2sgd2FzIGNyZWF0ZWQgd2l0aCBhIHZhbGlkIHNldHRpbmcgb2YgYENkY1N0YXJ0UG9zaXRpb25gIC4gSWYgdGhlIHNwZWNpZmllZCBzbG90IGRvZXNuJ3QgZXhpc3Qgb3IgdGhlIHRhc2sgZG9lc24ndCBoYXZlIGEgdmFsaWQgYENkY1N0YXJ0UG9zaXRpb25gIHNldHRpbmcsIERNUyByYWlzZXMgYW4gZXJyb3IuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHNldHRpbmcgdGhlIGBDZGNTdGFydFBvc2l0aW9uYCByZXF1ZXN0IHBhcmFtZXRlciwgc2VlIFtEZXRlcm1pbmluZyBhIENEQyBuYXRpdmUgc3RhcnQgcG9pbnRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1Rhc2suQ0RDLmh0bWwjQ0hBUF9UYXNrLkNEQy5TdGFydFBvaW50Lk5hdGl2ZSkgaW4gdGhlICpBV1MgRGF0YWJhc2UgTWlncmF0aW9uIFNlcnZpY2UgVXNlciBHdWlkZSogLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB1c2luZyBgQ2RjU3RhcnRQb3NpdGlvbmAgLCBzZWUgW0NyZWF0ZVJlcGxpY2F0aW9uVGFza10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVSZXBsaWNhdGlvblRhc2suaHRtbCkgLCBbU3RhcnRSZXBsaWNhdGlvblRhc2tdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfU3RhcnRSZXBsaWNhdGlvblRhc2suaHRtbCkgLCBhbmQgW01vZGlmeVJlcGxpY2F0aW9uVGFza10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Nb2RpZnlSZXBsaWNhdGlvblRhc2suaHRtbCkgLlxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LXBvc3RncmVzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLXNsb3RuYW1lXG4gICAqL1xuICByZWFkb25seSBzbG90TmFtZT86IHN0cmluZztcbn1cbmV4cG9ydCB0eXBlIE1kYWFFbmRwb2ludFR5cGUgPSAnc291cmNlJyB8ICd0YXJnZXQnO1xuZXhwb3J0IHR5cGUgTWRhYUVuZHBvaW50RW5naW5lID1cbiAgfCBgbXlzcWxgXG4gIHwgYG9yYWNsZWBcbiAgfCBgcG9zdGdyZXNgXG4gIHwgYG1hcmlhZGJgXG4gIHwgYGF1cm9yYWBcbiAgfCBgYXVyb3JhLXBvc3RncmVzcWxgXG4gIHwgYG9wZW5zZWFyY2hgXG4gIHwgYHJlZHNoaWZ0YFxuICB8IGByZWRzaGlmdC1zZXJ2ZXJsZXNzYFxuICB8IGBzM2BcbiAgfCBgZGIyYFxuICB8IGBhenVyZWRiYFxuICB8IGBzeWJhc2VgXG4gIHwgYGR5bmFtb2RiYFxuICB8IGBtb25nb2RiYFxuICB8IGBraW5lc2lzYFxuICB8IGBrYWZrYWBcbiAgfCBgZWxhc3RpY3NlYXJjaGBcbiAgfCBgZG9jZGJgXG4gIHwgYHNxbHNlcnZlcmBcbiAgfCBgbmVwdHVuZWA7XG5leHBvcnQgaW50ZXJmYWNlIE1kYWFFbmRwb2ludFByb3BzIGV4dGVuZHMgTWRhYUNvbnN0cnVjdFByb3BzIHtcbiAgcmVhZG9ubHkgY2VydGlmaWNhdGVBcm4/OiBzdHJpbmc7XG4gIC8qKiBEYXRhYmFzZSBuYW1lIHNwZWNpZmljYXRpb24gZm9yIGVuZHBvaW50IGNvbm5lY3Rpdml0eSBjb250cm9sbGluZyB0YXJnZXQgZGF0YWJhc2Ugc2VsZWN0aW9uICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgZW5kcG9pbnRJZGVudGlmaWVyOiBzdHJpbmc7XG4gIC8qKiBFbmRwb2ludCB0eXBlIHNwZWNpZmljYXRpb24gY29udHJvbGxpbmcgbWlncmF0aW9uIGRpcmVjdGlvbiBhbmQgZGF0YSBmbG93IGZvciBzb3VyY2Ugb3IgdGFyZ2V0IGNvbmZpZ3VyYXRpb24gKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnRUeXBlOiBNZGFhRW5kcG9pbnRUeXBlO1xuICAvKiogRGF0YWJhc2UgZW5naW5lIHNwZWNpZmljYXRpb24gY29udHJvbGxpbmcgZGF0YWJhc2UgdHlwZSBhbmQgY29ubmVjdGl2aXR5IHByb3RvY29scyBmb3IgZW5kcG9pbnQgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBlbmdpbmVOYW1lOiBNZGFhRW5kcG9pbnRFbmdpbmU7XG4gIHJlYWRvbmx5IGV4dHJhQ29ubmVjdGlvbkF0dHJpYnV0ZXM/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGttc0tleTogSUtleTtcbiAgLyoqIERhdGFiYXNlIHBvcnQgc3BlY2lmaWNhdGlvbiBmb3IgZW5kcG9pbnQgY29ubmVjdGl2aXR5IGNvbnRyb2xsaW5nIG5ldHdvcmsgY29ubmVjdGlvbiAqL1xuICByZWFkb25seSBwb3J0PzogbnVtYmVyO1xuICByZWFkb25seSByZXNvdXJjZUlkZW50aWZpZXI/OiBzdHJpbmc7XG4gIC8qKiBTZXJ2ZXIgbmFtZSBzcGVjaWZpY2F0aW9uIGZvciBkYXRhYmFzZSBzZXJ2ZXIgY29ubmVjdGl2aXR5IGVuYWJsaW5nIG5ldHdvcmstYmFzZWQgZGF0YWJhc2UgKi9cbiAgcmVhZG9ubHkgc2VydmVyTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgc3NsTW9kZT86IHN0cmluZztcbiAgLyoqIERvY3VtZW50REIgc2V0dGluZ3MgZm9yIERvY3VtZW50REIgZW5kcG9pbnQgY29uZmlndXJhdGlvbiBlbmFibGluZyBOb1NRTCBkb2N1bWVudCBkYXRhYmFzZSAqL1xuICByZWFkb25seSBkb2NEYlNldHRpbmdzPzogRG9jRGJTZXR0aW5nc1Byb3BlcnR5O1xuICAvKiogRHluYW1vREIgc2V0dGluZ3MgZm9yIER5bmFtb0RCIGVuZHBvaW50IGNvbmZpZ3VyYXRpb24gZW5hYmxpbmcgTm9TUUwga2V5LXZhbHVlIGRhdGFiYXNlICovXG4gIHJlYWRvbmx5IGR5bmFtb0RiU2V0dGluZ3M/OiBEeW5hbW9EYlNldHRpbmdzUHJvcGVydHk7XG4gIC8qKiBFbGFzdGljc2VhcmNoIHNldHRpbmdzIGZvciBPcGVuU2VhcmNoIGVuZHBvaW50IGNvbmZpZ3VyYXRpb24gZW5hYmxpbmcgc2VhcmNoIGVuZ2luZSAqL1xuICByZWFkb25seSBlbGFzdGljc2VhcmNoU2V0dGluZ3M/OiBFbGFzdGljc2VhcmNoU2V0dGluZ3NQcm9wZXJ0eTtcbiAgLyoqIElCTSBEYjIgc2V0dGluZ3MgZm9yIERiMiBMVVcgZW5kcG9pbnQgY29uZmlndXJhdGlvbiBlbmFibGluZyBtYWluZnJhbWUgZGF0YWJhc2UgY29ubmVjdGl2aXR5IGFuZCBvcHRpbWl6YXRpb24gKi9cbiAgcmVhZG9ubHkgaWJtRGIyU2V0dGluZ3M/OiBJYm1EYjJTZXR0aW5nc1Byb3BlcnR5O1xuICAvKiogS2luZXNpcyBzZXR0aW5ncyBmb3IgS2luZXNpcyBEYXRhIFN0cmVhbXMgZW5kcG9pbnQgY29uZmlndXJhdGlvbiBlbmFibGluZyByZWFsLXRpbWUgKi9cbiAgcmVhZG9ubHkga2luZXNpc1NldHRpbmdzPzogS2luZXNpc1NldHRpbmdzUHJvcGVydHk7XG4gIC8qKiBNaWNyb3NvZnQgU1FMIFNlcnZlciBzZXR0aW5ncyBmb3IgU1FMIFNlcnZlciBlbmRwb2ludCBjb25maWd1cmF0aW9uIGVuYWJsaW5nIGVudGVycHJpc2UgKi9cbiAgcmVhZG9ubHkgbWljcm9zb2Z0U3FsU2VydmVyU2V0dGluZ3M/OiBNaWNyb3NvZnRTcWxTZXJ2ZXJTZXR0aW5nc1Byb3BlcnR5O1xuICAvKiogTW9uZ29EQiBzZXR0aW5ncyBmb3IgTW9uZ29EQiBlbmRwb2ludCBjb25maWd1cmF0aW9uIGVuYWJsaW5nIE5vU1FMIGRvY3VtZW50IGRhdGFiYXNlICovXG4gIHJlYWRvbmx5IG1vbmdvRGJTZXR0aW5ncz86IE1vbmdvRGJTZXR0aW5nc1Byb3BlcnR5O1xuICAvKiogTXlTUUwgc2V0dGluZ3MgZm9yIE15U1FMIGVuZHBvaW50IGNvbmZpZ3VyYXRpb24gZW5hYmxpbmcgcmVsYXRpb25hbCBkYXRhYmFzZSBjb25uZWN0aXZpdHkgYW5kIG9wdGltaXphdGlvbiAqL1xuICByZWFkb25seSBteVNxbFNldHRpbmdzPzogTXlTcWxTZXR0aW5nc1Byb3BlcnR5O1xuICAvKiogTmVwdHVuZSBzZXR0aW5ncyBmb3IgTmVwdHVuZSBlbmRwb2ludCBjb25maWd1cmF0aW9uIGVuYWJsaW5nIGdyYXBoIGRhdGFiYXNlIGNvbm5lY3Rpdml0eSBhbmQgb3B0aW1pemF0aW9uICovXG4gIHJlYWRvbmx5IG5lcHR1bmVTZXR0aW5ncz86IE5lcHR1bmVTZXR0aW5nc1Byb3BlcnR5O1xuICAvKiogT3JhY2xlIHNldHRpbmdzIGZvciBPcmFjbGUgZW5kcG9pbnQgY29uZmlndXJhdGlvbiBlbmFibGluZyBlbnRlcnByaXNlIGRhdGFiYXNlIGNvbm5lY3Rpdml0eSBhbmQgb3B0aW1pemF0aW9uICovXG4gIHJlYWRvbmx5IG9yYWNsZVNldHRpbmdzPzogT3JhY2xlU2V0dGluZ3NQcm9wZXJ0eTtcbiAgLyoqIFBvc3RncmVTUUwgc2V0dGluZ3MgZm9yIFBvc3RncmVTUUwgZW5kcG9pbnQgY29uZmlndXJhdGlvbiBlbmFibGluZyBvcGVuLXNvdXJjZSByZWxhdGlvbmFsICovXG4gIHJlYWRvbmx5IHBvc3RncmVTcWxTZXR0aW5ncz86IFBvc3RncmVTcWxTZXR0aW5nc1Byb3BlcnR5O1xuICAvKiogUmVkc2hpZnQgc2V0dGluZ3MgZm9yIFJlZHNoaWZ0IGVuZHBvaW50IGNvbmZpZ3VyYXRpb24gZW5hYmxpbmcgZGF0YSB3YXJlaG91c2UgY29ubmVjdGl2aXR5IGFuZCBvcHRpbWl6YXRpb24gKi9cbiAgcmVhZG9ubHkgcmVkc2hpZnRTZXR0aW5ncz86IFJlZHNoaWZ0U2V0dGluZ3NQcm9wZXJ0eTtcbiAgLyoqIFMzIHNldHRpbmdzIGZvciBTMyBlbmRwb2ludCBjb25maWd1cmF0aW9uIGVuYWJsaW5nIG9iamVjdCBzdG9yYWdlIGNvbm5lY3Rpdml0eSBhbmQgZmlsZS1iYXNlZCBkYXRhIHRyYW5zZmVyICovXG4gIHJlYWRvbmx5IHMzU2V0dGluZ3M/OiBTM1NldHRpbmdzUHJvcGVydHk7XG4gIC8qKiBTeWJhc2Ugc2V0dGluZ3MgZm9yIFNBUCBBU0UgZW5kcG9pbnQgY29uZmlndXJhdGlvbiBlbmFibGluZyBlbnRlcnByaXNlIGRhdGFiYXNlIGNvbm5lY3Rpdml0eSBhbmQgb3B0aW1pemF0aW9uICovXG4gIHJlYWRvbmx5IHN5YmFzZVNldHRpbmdzPzogU3liYXNlU2V0dGluZ3NQcm9wZXJ0eTtcbn1cblxuLyoqXG4gKiBSZXVzYWJsZSBDREsgY29uc3RydWN0IGZvciBhIGNvbXBsaWFudCBETVMgRW5kcG9pbnQuXG4gKiBTcGVjaWZpY2FsbHksIGVuZm9yY2VzIEtNUyBFbmNyeXB0aW9uLCBhbmQgcHJldmVudHMgdXNlIG9mIHBsYWludGV4dCBjcmVkZW50aWFscy5cbiAqL1xuZXhwb3J0IGNsYXNzIE1kYWFFbmRwb2ludCBleHRlbmRzIENmbkVuZHBvaW50IHtcbiAgLyoqIE92ZXJyaWRlcyBzcGVjaWZpYyBjb21wbGlhbmNlLXJlbGF0ZWQgcHJvcGVydGllcy4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgc2V0UHJvcHMocHJvcHM6IE1kYWFFbmRwb2ludFByb3BzKTogQ2ZuRW5kcG9pbnRQcm9wcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZW5kcG9pbnRJZGVudGlmaWVyOiBwcm9wcy5uYW1pbmcucmVzb3VyY2VOYW1lKHByb3BzLmVuZHBvaW50SWRlbnRpZmllciksXG4gICAgICBrbXNLZXlJZDogcHJvcHMua21zS2V5LmtleUlkLFxuICAgICAgczNTZXR0aW5nczogcHJvcHMuZW5naW5lTmFtZSA9PSAnczMnID8gdGhpcy5zZXRTM1NldHRpbmdzKHByb3BzLnMzU2V0dGluZ3MpIDogdW5kZWZpbmVkLFxuICAgICAgcmVkc2hpZnRTZXR0aW5nczogcHJvcHMuZW5naW5lTmFtZSA9PSAncmVkc2hpZnQnID8gdGhpcy5zZXRSZWRzaGlmdFNldHRpbmdzKHByb3BzLnJlZHNoaWZ0U2V0dGluZ3MpIDogdW5kZWZpbmVkLFxuICAgICAgbmVwdHVuZVNldHRpbmdzOiBwcm9wcy5lbmdpbmVOYW1lID09ICduZXB0dW5lJyA/IHRoaXMuc2V0TmVwdHVuZVNldHRpbmdzKHByb3BzLm5lcHR1bmVTZXR0aW5ncykgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHNldE5lcHR1bmVTZXR0aW5ncyhuZXB0dW5lU2V0dGluZ3M/OiBOZXB0dW5lU2V0dGluZ3NQcm9wZXJ0eSk6IENmbkVuZHBvaW50Lk5lcHR1bmVTZXR0aW5nc1Byb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmVwdHVuZVNldHRpbmdzLFxuICAgICAgaWFtQXV0aEVuYWJsZWQ6IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHNldFMzU2V0dGluZ3MoczNTZXR0aW5ncz86IFMzU2V0dGluZ3NQcm9wZXJ0eSk6IENmbkVuZHBvaW50LlMzU2V0dGluZ3NQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnMzU2V0dGluZ3MsXG4gICAgICBlbmNyeXB0aW9uTW9kZTogJ1NTRV9LTVMnLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBzZXRSZWRzaGlmdFNldHRpbmdzKFxuICAgIHJlZHNoaWZ0U2V0dGluZ3M/OiBSZWRzaGlmdFNldHRpbmdzUHJvcGVydHksXG4gICk6IENmbkVuZHBvaW50LlJlZHNoaWZ0U2V0dGluZ3NQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlZHNoaWZ0U2V0dGluZ3MsXG4gICAgICBlbmNyeXB0aW9uTW9kZTogJ1NTRV9LTVMnLFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTWRhYUVuZHBvaW50UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIE1kYWFFbmRwb2ludC5zZXRQcm9wcyhwcm9wcykpO1xuXG4gICAgbmV3IE1kYWFQYXJhbUFuZE91dHB1dCh0aGlzLCB7XG4gICAgICAuLi57XG4gICAgICAgIHJlc291cmNlVHlwZTogJ2VuZHBvaW50JyxcbiAgICAgICAgcmVzb3VyY2VJZDogcHJvcHMuZW5kcG9pbnRJZGVudGlmaWVyLFxuICAgICAgICBuYW1lOiAnYXJuJyxcbiAgICAgICAgdmFsdWU6IHRoaXMucmVmLFxuICAgICAgfSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
61
+ MdaaEndpoint[_a] = { fqn: "@aws-mdaa/dms-constructs.MdaaEndpoint", version: "1.6.0" };
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7R0FHRztBQUVILG1EQUE2RSxDQUFDLFNBQVM7QUFDdkYsaURBQW9FO0FBdXJCcEU7OztHQUdHO0FBQ0gsTUFBYSxZQUFhLFNBQVEscUJBQVc7SUFDM0Msd0RBQXdEO0lBQ2hELE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBd0I7UUFDOUMsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztZQUN2RSxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQzVCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDdkYsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUMvRyxlQUFlLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDNUcsQ0FBQztJQUNKLENBQUM7SUFFTyxNQUFNLENBQUMsa0JBQWtCLENBQUMsZUFBeUM7UUFDekUsT0FBTztZQUNMLEdBQUcsZUFBZTtZQUNsQixjQUFjLEVBQUUsSUFBSTtTQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVPLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBK0I7UUFDMUQsT0FBTztZQUNMLEdBQUcsVUFBVTtZQUNiLGNBQWMsRUFBRSxTQUFTO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLG1CQUFtQixDQUNoQyxnQkFBMkM7UUFFM0MsT0FBTztZQUNMLEdBQUcsZ0JBQWdCO1lBQ25CLGNBQWMsRUFBRSxTQUFTO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFL0MsSUFBSSw4QkFBa0IsQ0FBQyxJQUFJLEVBQUU7WUFDM0IsR0FBRztnQkFDRCxZQUFZLEVBQUUsVUFBVTtnQkFDeEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxrQkFBa0I7Z0JBQ3BDLElBQUksRUFBRSxLQUFLO2dCQUNYLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRzthQUNoQjtZQUNELEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7O0FBaERILG9DQWlEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCB7IE1kYWFDb25zdHJ1Y3RQcm9wcywgTWRhYVBhcmFtQW5kT3V0cHV0IH0gZnJvbSAnQGF3cy1tZGFhL2NvbnN0cnVjdCc7IC8vTk9TT05BUlxuaW1wb3J0IHsgQ2ZuRW5kcG9pbnQsIENmbkVuZHBvaW50UHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZG1zJztcbmltcG9ydCB7IElLZXkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIHRoYXQgZGVmaW5lcyBhIFNBUCBBU0UgZW5kcG9pbnQuIE1vZGlmaWVkIGZyb20gdGhlIGVxdWl2YWxlbnQgTDEgQ29uc3RydWN0IHRvIHByZXZlbnQgdXNlIG9mIHBsYWludGV4dCBjcmVkZW50aWFscyBhbmQgZW5mb3JjZSB1c2Ugb2YgS01TIGVuY3J5cHRpb24uXG4gKiBUaGlzIGluZm9ybWF0aW9uIGluY2x1ZGVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHJlY29yZHMgYXBwbGllZCB0byB0aGUgZW5kcG9pbnQgYW5kIGRldGFpbHMgb2YgdHJhbnNhY3Rpb24gYW5kIGNvbnRyb2wgdGFibGUgZGF0YSBpbmZvcm1hdGlvbi4gRm9yIGluZm9ybWF0aW9uIGFib3V0IG90aGVyIGF2YWlsYWJsZSBzZXR0aW5ncywgc2VlIFtFeHRyYSBjb25uZWN0aW9uIGF0dHJpYnV0ZXMgd2hlbiB1c2luZyBTQVAgQVNFIGFzIGEgc291cmNlIGZvciBBV1MgRE1TXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9Tb3VyY2UuU0FQLmh0bWwjQ0hBUF9Tb3VyY2UuU0FQLkNvbm5lY3Rpb25BdHRyaWIpIGFuZCBbRXh0cmEgY29ubmVjdGlvbiBhdHRyaWJ1dGVzIHdoZW4gdXNpbmcgU0FQIEFTRSBhcyBhIHRhcmdldCBmb3IgQVdTIERNU10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfVGFyZ2V0LlNBUC5odG1sI0NIQVBfVGFyZ2V0LlNBUC5Db25uZWN0aW9uQXR0cmliKSBpbiB0aGUgKkFXUyBEYXRhYmFzZSBNaWdyYXRpb24gU2VydmljZSBVc2VyIEd1aWRlKiAuXG4gKiBAc3RydWN0XG4gKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LXN5YmFzZXNldHRpbmdzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTeWJhc2VTZXR0aW5nc1Byb3BlcnR5IHtcbiAgLyoqIElBTSByb2xlIEFSTiBmb3IgRE1TIHRvIGFjY2VzcyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IGNvbnRhaW5pbmcgU3liYXNlIGVuZHBvaW50ICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybj86IHN0cmluZztcbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRBcm46IHN0cmluZztcbiAgLyoqIEtNUyBrZXkgQVJOIGZvciBlbmNyeXB0aW5nIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgY29udGFpbmluZyBTeWJhc2UgY3JlZGVudGlhbHMgZW5hYmxpbmcgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRLTVNBcm4/OiBzdHJpbmc7XG59XG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIHRoYXQgZGVmaW5lcyBhbiBPcmFjbGUgZW5kcG9pbnQuIE1vZGlmaWVkIGZyb20gdGhlIGVxdWl2YWxlbnQgTDEgQ29uc3RydWN0IHRvIHByZXZlbnQgdXNlIG9mIHBsYWludGV4dCBjcmVkZW50aWFscyBhbmQgZW5mb3JjZSB1c2Ugb2YgS01TIGVuY3J5cHRpb24uXG4gKiBUaGlzIGluZm9ybWF0aW9uIGluY2x1ZGVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHJlY29yZHMgYXBwbGllZCB0byB0aGUgZW5kcG9pbnQgYW5kIGRldGFpbHMgb2YgdHJhbnNhY3Rpb24gYW5kIGNvbnRyb2wgdGFibGUgZGF0YSBpbmZvcm1hdGlvbi4gRm9yIGluZm9ybWF0aW9uIGFib3V0IG90aGVyIGF2YWlsYWJsZSBzZXR0aW5ncywgc2VlIFtFeHRyYSBjb25uZWN0aW9uIGF0dHJpYnV0ZXMgd2hlbiB1c2luZyBPcmFjbGUgYXMgYSBzb3VyY2UgZm9yIEFXUyBETVNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1NvdXJjZS5PcmFjbGUuaHRtbCNDSEFQX1NvdXJjZS5PcmFjbGUuQ29ubmVjdGlvbkF0dHJpYikgYW5kIFtFeHRyYSBjb25uZWN0aW9uIGF0dHJpYnV0ZXMgd2hlbiB1c2luZyBPcmFjbGUgYXMgYSB0YXJnZXQgZm9yIEFXUyBETVNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1RhcmdldC5PcmFjbGUuaHRtbCNDSEFQX1RhcmdldC5PcmFjbGUuQ29ubmVjdGlvbkF0dHJpYikgaW4gdGhlICpBV1MgRGF0YWJhc2UgTWlncmF0aW9uIFNlcnZpY2UgVXNlciBHdWlkZSogLlxuICogQHN0cnVjdFxuICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1vcmFjbGVzZXR0aW5ncy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3JhY2xlU2V0dGluZ3NQcm9wZXJ0eSB7XG4gIC8qKiBGbGFnIHRvIGRpc2FibGUgQmluYXJ5IFJlYWRlciBhY2Nlc3MgdG8gcmVkbyBsb2dzIHRocm91Z2ggZGlyZWN0IGZpbGUgYWNjZXNzIGZvciBPcmFjbGUgUkRTIHNvdXJjZXMgKi9cbiAgcmVhZG9ubHkgYWNjZXNzQWx0ZXJuYXRlRGlyZWN0bHk/OiBib29sZWFuO1xuICAvKiogQWRkaXRpb25hbCBhcmNoaXZlZCBsb2cgZGVzdGluYXRpb24gSUQgZm9yIE9yYWNsZSBwcmltYXJ5L3N0YW5kYnkgc3dpdGNob3ZlciBzY2VuYXJpb3MgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbEFyY2hpdmVkTG9nRGVzdElkPzogbnVtYmVyO1xuICAvKiogRmxhZyB0byBlbmFibGUgdGFibGUtbGV2ZWwgc3VwcGxlbWVudGFsIGxvZ2dpbmcgZm9yIE9yYWNsZSBkYXRhYmFzZSBtaWdyYXRpb24gdGFza3MgKi9cbiAgcmVhZG9ubHkgYWRkU3VwcGxlbWVudGFsTG9nZ2luZz86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIGVuYWJsZSByZXBsaWNhdGlvbiBvZiBPcmFjbGUgdGFibGVzIHdpdGggbmVzdGVkIHRhYmxlcyBvciBkZWZpbmVkIHR5cGVzIGZvciBjb21wbGV4ICovXG4gIHJlYWRvbmx5IGFsbG93U2VsZWN0TmVzdGVkVGFibGVzPzogYm9vbGVhbjtcbiAgLyoqIEFyY2hpdmVkIHJlZG8gbG9nIGRlc3RpbmF0aW9uIElEIGZvciBPcmFjbGUgY2hhbmdlIGRhdGEgY2FwdHVyZSBjb25maWd1cmF0aW9uICovXG4gIHJlYWRvbmx5IGFyY2hpdmVkTG9nRGVzdElkPzogbnVtYmVyO1xuICAvKiogRmxhZyB0byByZXN0cmljdCBETVMgYWNjZXNzIHRvIGFyY2hpdmVkIHJlZG8gbG9ncyBvbmx5IGZvciBPcmFjbGUgcmVwbGljYXRpb24gKi9cbiAgcmVhZG9ubHkgYXJjaGl2ZWRMb2dzT25seT86IGJvb2xlYW47XG4gIC8qKiBBU00gc2VydmVyIGFkZHJlc3MgZm9yIE9yYWNsZSBzb3VyY2UgZW5kcG9pbnQgQmluYXJ5IFJlYWRlciBjb25maWd1cmF0aW9uICovXG4gIHJlYWRvbmx5IGFzbVNlcnZlcj86IHN0cmluZztcbiAgLyoqIENoYXJhY3RlciBsZW5ndGggc2VtYW50aWNzIHNwZWNpZmljYXRpb24gZm9yIE9yYWNsZSBjaGFyYWN0ZXIgY29sdW1uIGludGVycHJldGF0aW9uICovXG4gIHJlYWRvbmx5IGNoYXJMZW5ndGhTZW1hbnRpY3M/OiBzdHJpbmc7XG4gIC8qKiBGbGFnIHRvIGVuYWJsZSBkaXJlY3QgcGF0aCBsb2FkaW5nIHdpdGhvdXQgZGF0YWJhc2UgbG9nZ2luZyBmb3IgT3JhY2xlIHRhcmdldCBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gKi9cbiAgcmVhZG9ubHkgZGlyZWN0UGF0aE5vTG9nPzogYm9vbGVhbjtcbiAgLyoqIEZsYWcgdG8gZW5hYmxlIHBhcmFsbGVsIGxvYWRpbmcgd2hlbiBkaXJlY3QgcGF0aCBmdWxsIGxvYWQgaXMgYWN0aXZlIGZvciBPcmFjbGUgdGFyZ2V0ICovXG4gIHJlYWRvbmx5IGRpcmVjdFBhdGhQYXJhbGxlbExvYWQ/OiBib29sZWFuO1xuICAvKiogRmxhZyB0byBlbmFibGUgaG9tb2dlbmVvdXMgdGFibGVzcGFjZSByZXBsaWNhdGlvbiBmb3IgT3JhY2xlIHRhcmdldCBkYXRhYmFzZSBjb25zaXN0ZW5jeSAqL1xuICByZWFkb25seSBlbmFibGVIb21vZ2Vub3VzVGFibGVzcGFjZT86IGJvb2xlYW47XG4gIC8qKiBBcnJheSBvZiBhZGRpdGlvbmFsIGFyY2hpdmVkIGxvZyBkZXN0aW5hdGlvbiBJRHMgZm9yIE9yYWNsZSBEYXRhIEd1YXJkIHN3aXRjaG92ZXIgc2NlbmFyaW9zICovXG4gIHJlYWRvbmx5IGV4dHJhQXJjaGl2ZWRMb2dEZXN0SWRzPzogQXJyYXk8bnVtYmVyPjtcbiAgLyoqIEZsYWcgdG8gY2F1c2UgdGFzayBmYWlsdXJlIHdoZW4gTE9CIGNvbHVtbiBzaXplIGV4Y2VlZHMgc3BlY2lmaWVkIExvYk1heFNpemUgbGltaXQgKi9cbiAgcmVhZG9ubHkgZmFpbFRhc2tzT25Mb2JUcnVuY2F0aW9uPzogYm9vbGVhbjtcbiAgLyoqIE51bWJlciBkYXRhIHR5cGUgc2NhbGUgc3BlY2lmaWNhdGlvbiBmb3IgT3JhY2xlIE5VTUJFUiBkYXRhIHR5cGUgY29udmVyc2lvbiBwcmVjaXNpb24gKi9cbiAgcmVhZG9ubHkgbnVtYmVyRGF0YXR5cGVTY2FsZT86IG51bWJlcjtcbiAgLyoqIE9yYWNsZSBwYXRoIHByZWZpeCBmb3IgQmluYXJ5IFJlYWRlciByZWRvIGxvZyBhY2Nlc3MgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBvcmFjbGVQYXRoUHJlZml4Pzogc3RyaW5nO1xuICAvKiogTnVtYmVyIG9mIHBhcmFsbGVsIEFTTSByZWFkIHRocmVhZHMgZm9yIE9yYWNsZSBjaGFuZ2UgZGF0YSBjYXB0dXJlIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiAqL1xuICByZWFkb25seSBwYXJhbGxlbEFzbVJlYWRUaHJlYWRzPzogbnVtYmVyO1xuICAvKiogTnVtYmVyIG9mIHJlYWQtYWhlYWQgYmxvY2tzIGZvciBPcmFjbGUgQVNNIGNoYW5nZSBkYXRhIGNhcHR1cmUgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uICovXG4gIHJlYWRvbmx5IHJlYWRBaGVhZEJsb2Nrcz86IG51bWJlcjtcbiAgLyoqIEZsYWcgdG8gZW5hYmxlIHRhYmxlc3BhY2UgbmFtZSByZWFkaW5nIGZvciBPcmFjbGUgdGFibGVzcGFjZSByZXBsaWNhdGlvbiBzdXBwb3J0ICovXG4gIHJlYWRvbmx5IHJlYWRUYWJsZVNwYWNlTmFtZT86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIGVuYWJsZSBwYXRoIHByZWZpeCByZXBsYWNlbWVudCBmb3IgQmluYXJ5IFJlYWRlciByZWRvIGxvZyBhY2Nlc3MgKi9cbiAgcmVhZG9ubHkgcmVwbGFjZVBhdGhQcmVmaXg/OiBib29sZWFuO1xuICAvKiogUmV0cnkgaW50ZXJ2YWwgaW4gc2Vjb25kcyBmb3IgT3JhY2xlIGNvbm5lY3Rpb24gcXVlcnkgcmV0cnkgb3BlcmF0aW9ucyAqL1xuICByZWFkb25seSByZXRyeUludGVydmFsPzogbnVtYmVyO1xuICAvKiogSUFNIHJvbGUgQVJOIGZvciBBV1MgU2VjcmV0cyBNYW5hZ2VyIGFjY2VzcyB0byBPcmFjbGUgZW5kcG9pbnQgY3JlZGVudGlhbHMgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuPzogc3RyaW5nO1xuICAvKiogSUFNIHJvbGUgQVJOIGZvciBBV1MgU2VjcmV0cyBNYW5hZ2VyIGFjY2VzcyB0byBPcmFjbGUgQVNNIGNyZWRlbnRpYWxzIHdoZW4gdXNpbmcgQWR2YW5jZWQgU3RvcmFnZSBNYW5hZ2VyICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyT3JhY2xlQXNtQWNjZXNzUm9sZUFybj86IHN0cmluZztcbiAgLyoqIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgQVJOIGNvbnRhaW5pbmcgT3JhY2xlIEFTTSBjb25uZWN0aW9uIGRldGFpbHMgZm9yIEFkdmFuY2VkIFN0b3JhZ2UgTWFuYWdlciBlbmRwb2ludHMgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJPcmFjbGVBc21TZWNyZXRBcm4/OiBzdHJpbmc7XG4gIC8qKiBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IEFSTiBjb250YWluaW5nIE9yYWNsZSBlbmRwb2ludCBjb25uZWN0aW9uIGRldGFpbHMgZm9yIHNlY3VyZSBjcmVkZW50aWFsIG1hbmFnZW1lbnQgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRBcm46IHN0cmluZztcbiAgLyoqIEtNUyBrZXkgQVJOIGZvciBlbmNyeXB0aW5nIE9yYWNsZSBlbmRwb2ludCBjcmVkZW50aWFscyBzZWNyZXQgaW4gU2VjcmV0cyBNYW5hZ2VyICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0S01TQXJuPzogc3RyaW5nO1xuICAvKiogQ3VzdG9tIGZ1bmN0aW9uIG5hbWUgZm9yIGNvbnZlcnRpbmcgT3JhY2xlIFNET19HRU9NRVRSWSB0byBHRU9KU09OIGZvcm1hdCBkdXJpbmcgc3BhdGlhbCBkYXRhIG1pZ3JhdGlvbiAqL1xuICByZWFkb25seSBzcGF0aWFsRGF0YU9wdGlvblRvR2VvSnNvbkZ1bmN0aW9uTmFtZT86IHN0cmluZztcbiAgLyoqIFN0YW5kYnkgZGVsYXkgdGltZSBpbiBtaW51dGVzIGZvciBPcmFjbGUgQWN0aXZlIERhdGEgR3VhcmQgc3RhbmRieSBkYXRhYmFzZSBzeW5jaHJvbml6YXRpb24gKi9cbiAgcmVhZG9ubHkgc3RhbmRieURlbGF5VGltZT86IG51bWJlcjtcbiAgLyoqIEZsYWcgdG8gZW5hYmxlIGFsdGVybmF0ZSBmb2xkZXIgdXNhZ2UgZm9yIG9ubGluZSByZWRvIGxvZ3Mgd2l0aCBCaW5hcnkgUmVhZGVyIGZvciBPcmFjbGUgUkRTIHNvdXJjZXMgKi9cbiAgcmVhZG9ubHkgdXNlQWx0ZXJuYXRlRm9sZGVyRm9yT25saW5lPzogYm9vbGVhbjtcbiAgLyoqIEZsYWcgdG8gZW5hYmxlIEJpbmFyeSBSZWFkZXIgdXRpbGl0eSBmb3IgT3JhY2xlIGNoYW5nZSBkYXRhIGNhcHR1cmUgb3BlcmF0aW9ucyAqL1xuICByZWFkb25seSB1c2VCRmlsZT86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIGVuYWJsZSBkaXJlY3QgcGF0aCBmdWxsIGxvYWQgZm9yIE9yYWNsZSB0YXJnZXQgZGF0YWJhc2UgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uICovXG4gIHJlYWRvbmx5IHVzZURpcmVjdFBhdGhGdWxsTG9hZD86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIGVuYWJsZSBPcmFjbGUgTG9nTWluZXIgdXRpbGl0eSBmb3IgY2hhbmdlIGRhdGEgY2FwdHVyZSBvcGVyYXRpb25zIChkZWZhdWx0IG1ldGhvZCkgKi9cbiAgcmVhZG9ubHkgdXNlTG9nbWluZXJSZWFkZXI/OiBib29sZWFuO1xuICAvKiogUGF0aCBwcmVmaXggZm9yIEJpbmFyeSBSZWFkZXIgcmVkbyBsb2cgYWNjZXNzIHJlcGxhY2VtZW50IGluIE9yYWNsZSBSRFMgc291cmNlcyAqL1xuICByZWFkb25seSB1c2VQYXRoUHJlZml4Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIHRoYXQgZGVmaW5lcyBhIE15U1FMIGVuZHBvaW50LiBNb2RpZmllZCBmcm9tIHRoZSBlcXVpdmFsZW50IEwxIENvbnN0cnVjdCB0byBwcmV2ZW50IHVzZSBvZiBwbGFpbnRleHQgY3JlZGVudGlhbHMgYW5kIGVuZm9yY2UgdXNlIG9mIEtNUyBlbmNyeXB0aW9uLlxuICogVGhpcyBpbmZvcm1hdGlvbiBpbmNsdWRlcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiByZWNvcmRzIGFwcGxpZWQgdG8gdGhlIGVuZHBvaW50IGFuZCBkZXRhaWxzIG9mIHRyYW5zYWN0aW9uIGFuZCBjb250cm9sIHRhYmxlIGRhdGEgaW5mb3JtYXRpb24uIEZvciBpbmZvcm1hdGlvbiBhYm91dCBvdGhlciBhdmFpbGFibGUgc2V0dGluZ3MsIHNlZSBbRXh0cmEgY29ubmVjdGlvbiBhdHRyaWJ1dGVzIHdoZW4gdXNpbmcgTXlTUUwgYXMgYSBzb3VyY2UgZm9yIEFXUyBETVNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1NvdXJjZS5NeVNRTC5odG1sI0NIQVBfU291cmNlLk15U1FMLkNvbm5lY3Rpb25BdHRyaWIpIGFuZCBbRXh0cmEgY29ubmVjdGlvbiBhdHRyaWJ1dGVzIHdoZW4gdXNpbmcgYSBNeVNRTC1jb21wYXRpYmxlIGRhdGFiYXNlIGFzIGEgdGFyZ2V0IGZvciBBV1MgRE1TXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9UYXJnZXQuTXlTUUwuaHRtbCNDSEFQX1RhcmdldC5NeVNRTC5Db25uZWN0aW9uQXR0cmliKSBpbiB0aGUgKkFXUyBEYXRhYmFzZSBNaWdyYXRpb24gU2VydmljZSBVc2VyIEd1aWRlKiAuXG4gKiBAc3RydWN0XG4gKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LW15c3Fsc2V0dGluZ3MuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE15U3FsU2V0dGluZ3NQcm9wZXJ0eSB7XG4gIC8qKiBTUUwgc2NyaXB0IHRvIGV4ZWN1dGUgaW1tZWRpYXRlbHkgYWZ0ZXIgRE1TIGNvbm5lY3RzIHRvIHRoZSBNeVNRTCBlbmRwb2ludCBmb3IgaW5pdGlhbGl6YXRpb24gdGFza3MgKi9cbiAgcmVhZG9ubHkgYWZ0ZXJDb25uZWN0U2NyaXB0Pzogc3RyaW5nO1xuICAvKiogRmxhZyB0byBjbGVhbiBhbmQgcmVjcmVhdGUgdGFibGUgbWV0YWRhdGEgb24gcmVwbGljYXRpb24gaW5zdGFuY2Ugd2hlbiBtaXNtYXRjaGVzIG9jY3VyICovXG4gIHJlYWRvbmx5IGNsZWFuU291cmNlTWV0YWRhdGFPbk1pc21hdGNoPzogYm9vbGVhbjtcbiAgLyoqIFBvbGxpbmcgaW50ZXJ2YWwgaW4gc2Vjb25kcyBmb3IgY2hlY2tpbmcgTXlTUUwgYmluYXJ5IGxvZyBjaGFuZ2VzIHdoZW4gZGF0YWJhc2UgaXMgaWRsZSAqL1xuICByZWFkb25seSBldmVudHNQb2xsSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIENTViBmaWxlIHNpemUgaW4gS0IgZm9yIE15U1FMIGRhdGEgdHJhbnNmZXIgb3BlcmF0aW9ucyAqL1xuICByZWFkb25seSBtYXhGaWxlU2l6ZT86IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiBwYXJhbGxlbCB0aHJlYWRzIGZvciBsb2FkaW5nIGRhdGEgaW50byBNeVNRTC1jb21wYXRpYmxlIHRhcmdldCBkYXRhYmFzZXMgZm9yICovXG4gIHJlYWRvbmx5IHBhcmFsbGVsTG9hZFRocmVhZHM/OiBudW1iZXI7XG4gIC8qKiBJQU0gcm9sZSBBUk4gZm9yIEFXUyBTZWNyZXRzIE1hbmFnZXIgYWNjZXNzIHRvIE15U1FMIGVuZHBvaW50IGNyZWRlbnRpYWxzICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybj86IHN0cmluZztcbiAgLyoqIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgQVJOIGNvbnRhaW5pbmcgTXlTUUwgZW5kcG9pbnQgY29ubmVjdGlvbiBkZXRhaWxzIGZvciBzZWN1cmUgY3JlZGVudGlhbCBtYW5hZ2VtZW50ICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0QXJuOiBzdHJpbmc7XG4gIC8qKiBLTVMga2V5IEFSTiBmb3IgZW5jcnlwdGluZyBNeVNRTCBlbmRwb2ludCBjcmVkZW50aWFscyBzZWNyZXQgaW4gU2VjcmV0cyBNYW5hZ2VyICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0S01TQXJuPzogc3RyaW5nO1xuICAvKiogVGltZSB6b25lIHNwZWNpZmljYXRpb24gZm9yIE15U1FMIHNvdXJjZSBkYXRhYmFzZSBjb25maWd1cmF0aW9uICovXG4gIHJlYWRvbmx5IHNlcnZlclRpbWV6b25lPzogc3RyaW5nO1xuICAvKiogVGFyZ2V0IGRhdGFiYXNlIHR5cGUgc3BlY2lmaWNhdGlvbiBmb3IgTXlTUUwgbWlncmF0aW9uIGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb24gKi9cbiAgcmVhZG9ubHkgdGFyZ2V0RGJUeXBlPzogc3RyaW5nO1xufVxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiB0aGF0IGRlZmluZXMgYW4gQW1hem9uIFMzIGVuZHBvaW50LiBNb2RpZmllZCBmcm9tIHRoZSBlcXVpdmFsZW50IEwxIENvbnN0cnVjdCB0byBwcmV2ZW50IHVzZSBvZiBwbGFpbnRleHQgY3JlZGVudGlhbHMgYW5kIGVuZm9yY2UgdXNlIG9mIEtNUyBlbmNyeXB0aW9uLlxuICogVGhpcyBpbmZvcm1hdGlvbiBpbmNsdWRlcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiByZWNvcmRzIGFwcGxpZWQgdG8gdGhlIGVuZHBvaW50IGFuZCBkZXRhaWxzIG9mIHRyYW5zYWN0aW9uIGFuZCBjb250cm9sIHRhYmxlIGRhdGEgaW5mb3JtYXRpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhdmFpbGFibGUgc2V0dGluZ3MsIHNlZSBbRXh0cmEgY29ubmVjdGlvbiBhdHRyaWJ1dGVzIHdoZW4gdXNpbmcgQW1hem9uIFMzIGFzIGEgc291cmNlIGZvciBBV1MgRE1TXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9Tb3VyY2UuUzMuaHRtbCNDSEFQX1NvdXJjZS5TMy5Db25maWd1cmluZykgYW5kIFtFeHRyYSBjb25uZWN0aW9uIGF0dHJpYnV0ZXMgd2hlbiB1c2luZyBBbWF6b24gUzMgYXMgYSB0YXJnZXQgZm9yIEFXUyBETVNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1RhcmdldC5TMy5odG1sI0NIQVBfVGFyZ2V0LlMzLkNvbmZpZ3VyaW5nKSBpbiB0aGUgKkFXUyBEYXRhYmFzZSBNaWdyYXRpb24gU2VydmljZSBVc2VyIEd1aWRlKiAuXG4gKiBAc3RydWN0XG4gKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LXMzc2V0dGluZ3MuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFMzU2V0dGluZ3NQcm9wZXJ0eSB7XG4gIC8qKiBGbGFnIHRvIGFkZCBjb2x1bW4gbmFtZSBpbmZvcm1hdGlvbiB0byBDU1Ygb3V0cHV0IGZpbGVzIGZvciBTMyBkYXRhIGxha2UgaW50ZWdyYXRpb24gKi9cbiAgcmVhZG9ubHkgYWRkQ29sdW1uTmFtZT86IGJvb2xlYW47XG4gIC8qKiBTMyBidWNrZXQgZm9sZGVyIG5hbWUgZm9yIG9yZ2FuaXppbmcgbWlncmF0ZWQgZGF0YSB3aXRoIGhpZXJhcmNoaWNhbCBzdHJ1Y3R1cmUgKi9cbiAgcmVhZG9ubHkgYnVja2V0Rm9sZGVyPzogc3RyaW5nO1xuICAvKiogUzMgYnVja2V0IG5hbWUgZm9yIERNUyBkYXRhIG1pZ3JhdGlvbiBkZXN0aW5hdGlvbiBpbiBkYXRhIGxha2UgYXJjaGl0ZWN0dXJlICovXG4gIHJlYWRvbmx5IGJ1Y2tldE5hbWU6IHN0cmluZztcbiAgLyoqIFByZWRlZmluZWQgYWNjZXNzIGNvbnRyb2wgbGlzdCAoQUNMKSBmb3IgUzMgb2JqZWN0cyBjcmVhdGVkIGR1cmluZyBkYXRhIG1pZ3JhdGlvbiAqL1xuICByZWFkb25seSBjYW5uZWRBY2xGb3JPYmplY3RzPzogc3RyaW5nO1xuICAvKiogRmxhZyB0byBlbmFibGUgQ0RDIElOU0VSVCBhbmQgVVBEQVRFIG9wZXJhdGlvbnMgY2FwdHVyZSB0byBTMyBmaWxlcyBmb3IgY2hhbmdlIHRyYWNraW5nICovXG4gIHJlYWRvbmx5IGNkY0luc2VydHNBbmRVcGRhdGVzPzogYm9vbGVhbjtcbiAgLyoqIEZsYWcgdG8gZW5hYmxlIENEQyBJTlNFUlQtb25seSBvcGVyYXRpb25zIGNhcHR1cmUgdG8gUzMgZmlsZXMgZm9yIGluc2VydC1mb2N1c2VkIGNoYW5nZSB0cmFja2luZyAqL1xuICByZWFkb25seSBjZGNJbnNlcnRzT25seT86IGJvb2xlYW47XG4gIC8qKiBNYXhpbXVtIGJhdGNoIGludGVydmFsIGluIHNlY29uZHMgZm9yIENEQyBmaWxlIG91dHB1dCB0byBTMyBmb3IgdGltZS1iYXNlZCBmaWxlIGNyZWF0aW9uICovXG4gIHJlYWRvbmx5IGNkY01heEJhdGNoSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKiBNaW5pbXVtIGZpbGUgc2l6ZSBpbiBraWxvYnl0ZXMgZm9yIENEQyBmaWxlIG91dHB1dCB0byBTMyBmb3Igc2l6ZS1iYXNlZCBmaWxlIGNyZWF0aW9uICovXG4gIHJlYWRvbmx5IGNkY01pbkZpbGVTaXplPzogbnVtYmVyO1xuICAvKiogQ0RDIGZvbGRlciBwYXRoIHNwZWNpZmljYXRpb24gZm9yIGNoYW5nZSBkYXRhIGNhcHR1cmUgZmlsZSBvcmdhbml6YXRpb24gaW4gUzMgKi9cbiAgcmVhZG9ubHkgY2RjUGF0aD86IHN0cmluZztcbiAgLyoqIENvbXByZXNzaW9uIHR5cGUgZm9yIFMzIHRhcmdldCBmaWxlcyB0byBvcHRpbWl6ZSBzdG9yYWdlIGFuZCB0cmFuc2ZlciBwZXJmb3JtYW5jZSAqL1xuICByZWFkb25seSBjb21wcmVzc2lvblR5cGU/OiBzdHJpbmc7XG4gIC8qKiBDb2x1bW4gZGVsaW1pdGVyIGZvciBDU1YgZmlsZSBmb3JtYXQgaW4gUzMgZGF0YSBsYWtlIGludGVncmF0aW9uICovXG4gIHJlYWRvbmx5IGNzdkRlbGltaXRlcj86IHN0cmluZztcbiAgLyoqIFN0cmluZyB2YWx1ZSBmb3IgY29sdW1ucyBub3QgaW5jbHVkZWQgaW4gc3VwcGxlbWVudGFsIGxvZyBkdXJpbmcgQ0RDIENTViBvcGVyYXRpb25zICovXG4gIHJlYWRvbmx5IGNzdk5vU3VwVmFsdWU/OiBzdHJpbmc7XG4gIC8qKiBOdWxsIHZhbHVlIHJlcHJlc2VudGF0aW9uIGZvciBDU1YgZmlsZXMgaW4gUzMgZGF0YSBsYWtlIG9wZXJhdGlvbnMgKi9cbiAgcmVhZG9ubHkgY3N2TnVsbFZhbHVlPzogc3RyaW5nO1xuICAvKiogUm93IGRlbGltaXRlciBmb3IgQ1NWIGZpbGVzIGluIFMzIGRhdGEgbGFrZSBpbnRlZ3JhdGlvbiAqL1xuICByZWFkb25seSBjc3ZSb3dEZWxpbWl0ZXI/OiBzdHJpbmc7XG4gIC8qKiBEYXRhIGZvcm1hdCBzcGVjaWZpY2F0aW9uIGZvciBTMyBvdXRwdXQgZmlsZXMgaW4gZGF0YSBsYWtlIGFyY2hpdGVjdHVyZSAqL1xuICByZWFkb25seSBkYXRhRm9ybWF0Pzogc3RyaW5nO1xuICAvKiogRGF0YSBwYWdlIHNpemUgaW4gYnl0ZXMgZm9yIFBhcnF1ZXQgZmlsZSBmb3JtYXQgb3B0aW1pemF0aW9uICovXG4gIHJlYWRvbmx5IGRhdGFQYWdlU2l6ZT86IG51bWJlcjtcbiAgLyoqIERhdGUgcGFydGl0aW9uIGRlbGltaXRlciBmb3IgUzMgZm9sZGVyIHBhcnRpdGlvbmluZyBvcmdhbml6YXRpb24gKi9cbiAgcmVhZG9ubHkgZGF0ZVBhcnRpdGlvbkRlbGltaXRlcj86IHN0cmluZztcbiAgLyoqIEZsYWcgdG8gZW5hYmxlIGRhdGUtYmFzZWQgZm9sZGVyIHBhcnRpdGlvbmluZyBmb3IgUzMgYnVja2V0IG9yZ2FuaXphdGlvbiAqL1xuICByZWFkb25seSBkYXRlUGFydGl0aW9uRW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKiBEYXRlIGZvcm1hdCBzZXF1ZW5jZSBmb3IgZm9sZGVyIHBhcnRpdGlvbmluZyBvcmdhbml6YXRpb24gaW4gUzMgZGF0YSBsYWtlICovXG4gIHJlYWRvbmx5IGRhdGVQYXJ0aXRpb25TZXF1ZW5jZT86IHN0cmluZztcbiAgLyoqIFRpbWUgem9uZSBzcGVjaWZpY2F0aW9uIGZvciBkYXRlIHBhcnRpdGlvbiBmb2xkZXIgY3JlYXRpb24gYW5kIENEQyBmaWxlIG5hbWluZyAqL1xuICByZWFkb25seSBkYXRlUGFydGl0aW9uVGltZXpvbmU/OiBzdHJpbmc7XG4gIC8qKiBNYXhpbXVtIGRpY3Rpb25hcnkgcGFnZSBzaXplIGxpbWl0IGZvciBQYXJxdWV0IGNvbHVtbiBlbmNvZGluZyBvcHRpbWl6YXRpb24gKi9cbiAgcmVhZG9ubHkgZGljdFBhZ2VTaXplTGltaXQ/OiBudW1iZXI7XG4gIC8qKiBGbGFnIHRvIGVuYWJsZSBzdGF0aXN0aWNzIGNvbGxlY3Rpb24gZm9yIFBhcnF1ZXQgcGFnZXMgYW5kIHJvdyBncm91cHMgZm9yIHF1ZXJ5IG9wdGltaXphdGlvbiAqL1xuICByZWFkb25seSBlbmFibGVTdGF0aXN0aWNzPzogYm9vbGVhbjtcbiAgLyoqIEVuY29kaW5nIHR5cGUgc3BlY2lmaWNhdGlvbiBmb3IgUGFycXVldCBmaWxlIGNvbXByZXNzaW9uIGFuZCBzdG9yYWdlIG9wdGltaXphdGlvbiAqL1xuICByZWFkb25seSBlbmNvZGluZ1R5cGU/OiBzdHJpbmc7XG4gIC8qKiBBV1MgYWNjb3VudCBJRCBvZiB0aGUgUzMgYnVja2V0IG93bmVyIGZvciBjcm9zcy1hY2NvdW50IGFjY2VzcyBhbmQgYnVja2V0IHNuaXBpbmcgcHJldmVudGlvbiAqL1xuICByZWFkb25seSBleHBlY3RlZEJ1Y2tldE93bmVyPzogc3RyaW5nO1xuICAvKiogRXh0ZXJuYWwgdGFibGUgZGVmaW5pdGlvbiBmb3IgUzMgc291cmNlIGNvbmZpZ3VyYXRpb24gaW4gZGF0YSBsYWtlIGludGVncmF0aW9uICovXG4gIHJlYWRvbmx5IGV4dGVybmFsVGFibGVEZWZpbml0aW9uPzogc3RyaW5nO1xuICAvKiogTnVtYmVyIG9mIGhlYWRlciByb3dzIHRvIGlnbm9yZSBpbiBDU1YgZmlsZXMgZm9yIFMzIHNvdXJjZSBwcm9jZXNzaW5nICovXG4gIHJlYWRvbmx5IGlnbm9yZUhlYWRlclJvd3M/OiBudW1iZXI7XG4gIC8qKiBGbGFnIHRvIGluY2x1ZGUgSU5TRVJUIG9wZXJhdGlvbiBpbmRpY2F0b3JzIGluIGZ1bGwgbG9hZCBDU1Ygb3V0cHV0IGZvciBjb25zaXN0ZW5jeSB3aXRoIENEQyBvcGVyYXRpb25zICovXG4gIHJlYWRvbmx5IGluY2x1ZGVPcEZvckZ1bGxMb2FkPzogYm9vbGVhbjtcbiAgLyoqIE1heGltdW0gQ1NWIGZpbGUgc2l6ZSBpbiBLQiBmb3IgUzMgdGFyZ2V0IGR1cmluZyBmdWxsIGxvYWQgbWlncmF0aW9uIG9wZXJhdGlvbnMgKi9cbiAgcmVhZG9ubHkgbWF4RmlsZVNpemU/OiBudW1iZXI7XG4gIC8qKiBGbGFnIHRvIHNldCBUSU1FU1RBTVAgY29sdW1uIHByZWNpc2lvbiB0byBtaWxsaXNlY29uZHMgaW4gUGFycXVldCBmaWxlcyBmb3IgQXRoZW5hIGFuZCBHbHVlIGNvbXBhdGliaWxpdHkgKi9cbiAgcmVhZG9ubHkgcGFycXVldFRpbWVzdGFtcEluTWlsbGlzZWNvbmQ/OiBib29sZWFuO1xuICAvKiogQXBhY2hlIFBhcnF1ZXQgZm9ybWF0IHZlcnNpb24gc3BlY2lmaWNhdGlvbiBmb3IgUzMgZGF0YSBsYWtlIGNvbHVtbmFyIHN0b3JhZ2UgKi9cbiAgcmVhZG9ubHkgcGFycXVldFZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKiBGbGFnIHRvIHByZXNlcnZlIHRyYW5zYWN0aW9uIG9yZGVyIGZvciBDREMgbG9hZHMgaW4gUzMgdGFyZ2V0IGZvciBkYXRhIGNvbnNpc3RlbmN5ICovXG4gIHJlYWRvbmx5IHByZXNlcnZlVHJhbnNhY3Rpb25zPzogYm9vbGVhbjtcbiAgLyoqIEZsYWcgdG8gZW5hYmxlIFJGQyA0MTgwIGNvbXBsaWFuY2UgZm9yIENTViBxdW90YXRpb24gbWFyayBoYW5kbGluZyBpbiBTMyBvcGVyYXRpb25zICovXG4gIHJlYWRvbmx5IHJmYzQxODA/OiBib29sZWFuO1xuICAvKiogTnVtYmVyIG9mIHJvd3MgaW4gUGFycXVldCByb3cgZ3JvdXAgZm9yIHJlYWQvd3JpdGUgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uICovXG4gIHJlYWRvbmx5IHJvd0dyb3VwTGVuZ3RoPzogbnVtYmVyO1xuICAvKiogS01TIGtleSBJRCBmb3Igc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB3aGVuIHVzaW5nIFNTRV9LTVMgZW5jcnlwdGlvbiBtb2RlIGZvciBTMyBkYXRhIGxha2Ugc2VjdXJpdHkgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZUVuY3J5cHRpb25LbXNLZXlJZDogc3RyaW5nO1xuICAvKiogSUFNIHJvbGUgQVJOIGZvciBETVMgc2VydmljZSBhY2Nlc3MgdG8gUzMgYnVja2V0IG9wZXJhdGlvbnMgZm9yIGRhdGEgbGFrZSBpbnRlZ3JhdGlvbiAqL1xuICByZWFkb25seSBzZXJ2aWNlQWNjZXNzUm9sZUFybj86IHN0cmluZztcbiAgLyoqIFRpbWVzdGFtcCBjb2x1bW4gbmFtZSBmb3IgYWRkaW5nIG1pZ3JhdGlvbiB0aW1pbmcgaW5mb3JtYXRpb24gdG8gUzMgZGF0YSBsYWtlIGZpbGVzICovXG4gIHJlYWRvbmx5IHRpbWVzdGFtcENvbHVtbk5hbWU/OiBzdHJpbmc7XG4gIC8qKiBGbGFnIHRvIHVzZSB0YXNrIHN0YXJ0IHRpbWUgZm9yIGZ1bGwgbG9hZCB0aW1lc3RhbXAgY29sdW1uIGluc3RlYWQgb2YgZGF0YSBhcnJpdmFsIHRpbWUgKi9cbiAgcmVhZG9ubHkgdXNlVGFza1N0YXJ0VGltZUZvckZ1bGxMb2FkVGltZXN0YW1wPzogYm9vbGVhbjtcbiAgLyoqIEZsYWcgdG8gdXNlIENzdk5vU3VwVmFsdWUgZm9yIGNvbHVtbnMgbm90IGluIHN1cHBsZW1lbnRhbCBsb2cgZHVyaW5nIENEQyBDU1Ygb3BlcmF0aW9ucyAqL1xuICByZWFkb25seSB1c2VDc3ZOb1N1cFZhbHVlPzogYm9vbGVhbjtcbn1cbi8qKlxuICogUHJvdmlkZXMgaW5mb3JtYXRpb24gdGhhdCBkZXNjcmliZXMgYW4gQW1hem9uIEtpbmVzaXMgRGF0YSBTdHJlYW0gZW5kcG9pbnQuIE1vZGlmaWVkIGZyb20gdGhlIGVxdWl2YWxlbnQgTDEgQ29uc3RydWN0IHRvIHByZXZlbnQgdXNlIG9mIHBsYWludGV4dCBjcmVkZW50aWFscyBhbmQgZW5mb3JjZSB1c2Ugb2YgS01TIGVuY3J5cHRpb24uXG4gKiBUaGlzIGluZm9ybWF0aW9uIGluY2x1ZGVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHJlY29yZHMgYXBwbGllZCB0byB0aGUgZW5kcG9pbnQgYW5kIGRldGFpbHMgb2YgdHJhbnNhY3Rpb24gYW5kIGNvbnRyb2wgdGFibGUgZGF0YSBpbmZvcm1hdGlvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgb3RoZXIgYXZhaWxhYmxlIHNldHRpbmdzLCBzZWUgW1VzaW5nIG9iamVjdCBtYXBwaW5nIHRvIG1pZ3JhdGUgZGF0YSB0byBhIEtpbmVzaXMgZGF0YSBzdHJlYW1dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1RhcmdldC5LaW5lc2lzLmh0bWwjQ0hBUF9UYXJnZXQuS2luZXNpcy5PYmplY3RNYXBwaW5nKSBpbiB0aGUgKkFXUyBEYXRhYmFzZSBNaWdyYXRpb24gU2VydmljZSBVc2VyIEd1aWRlKiAuXG4gKiBAc3RydWN0XG4gKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LWtpbmVzaXNzZXR0aW5ncy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc1NldHRpbmdzUHJvcGVydHkge1xuICAvKiogRmxhZyB0byBzaG93IGRldGFpbGVkIGNvbnRyb2wgaW5mb3JtYXRpb24gZm9yIHRhYmxlIGFuZCBjb2x1bW4gY2hhbmdlcyBpbiBLaW5lc2lzIG1lc3NhZ2UgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZUNvbnRyb2xEZXRhaWxzPzogYm9vbGVhbjtcbiAgLyoqIEZsYWcgdG8gaW5jbHVkZSBOVUxMIGFuZCBlbXB0eSBjb2x1bW5zIGluIHJlY29yZHMgbWlncmF0ZWQgdG8gS2luZXNpcyBlbmRwb2ludCBmb3IgY29tcGxldGUgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZU51bGxBbmRFbXB0eT86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIHNob3cgcGFydGl0aW9uIHZhbHVlIGluIEtpbmVzaXMgbWVzc2FnZSBvdXRwdXQgdW5sZXNzIHBhcnRpdGlvbiB0eXBlIGlzIHNjaGVtYS10YWJsZS10eXBlICovXG4gIHJlYWRvbmx5IGluY2x1ZGVQYXJ0aXRpb25WYWx1ZT86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIGluY2x1ZGUgRERMIG9wZXJhdGlvbnMgdGhhdCBjaGFuZ2UgdGFibGUgc3RydWN0dXJlIGluIGNvbnRyb2wgZGF0YSBmb3Igc2NoZW1hIGNoYW5nZSB0cmFja2luZyAqL1xuICByZWFkb25seSBpbmNsdWRlVGFibGVBbHRlck9wZXJhdGlvbnM/OiBib29sZWFuO1xuICAvKiogRmxhZyB0byBwcm92aWRlIGRldGFpbGVkIHRyYW5zYWN0aW9uIGluZm9ybWF0aW9uIGZyb20gc291cmNlIGRhdGFiYXNlIGZvciB0cmFuc2FjdGlvbiB0cmFja2luZyAqL1xuICByZWFkb25seSBpbmNsdWRlVHJhbnNhY3Rpb25EZXRhaWxzPzogYm9vbGVhbjtcbiAgLyoqIE91dHB1dCBmb3JtYXQgc3BlY2lmaWNhdGlvbiBmb3IgcmVjb3JkcyBjcmVhdGVkIG9uIEtpbmVzaXMgZW5kcG9pbnQgZm9yIHN0cmVhbWluZyBkYXRhIGZvcm1hdCBjb250cm9sICovXG4gIHJlYWRvbmx5IG1lc3NhZ2VGb3JtYXQ/OiBzdHJpbmc7XG4gIC8qKiBGbGFnIHRvIGF2b2lkIGFkZGluZyAnMHgnIHByZWZpeCB0byByYXcgZGF0YSBpbiBoZXhhZGVjaW1hbCBmb3JtYXQgZm9yIGNsZWFuZXIgZGF0YSByZXByZXNlbnRhdGlvbiAqL1xuICByZWFkb25seSBub0hleFByZWZpeD86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIHByZWZpeCBzY2hlbWEgYW5kIHRhYmxlIG5hbWVzIHRvIHBhcnRpdGlvbiB2YWx1ZXMgZm9yIGltcHJvdmVkIGRhdGEgZGlzdHJpYnV0aW9uIGFjcm9zcyBLaW5lc2lzIHNoYXJkcyAqL1xuICByZWFkb25seSBwYXJ0aXRpb25JbmNsdWRlU2NoZW1hVGFibGU/OiBib29sZWFuO1xuICAvKiogSUFNIHJvbGUgQVJOIGZvciBETVMgc2VydmljZSBhY2Nlc3MgdG8gS2luZXNpcyBkYXRhIHN0cmVhbSBmb3Igc2VjdXJlIHN0cmVhbWluZyBvcGVyYXRpb25zICovXG4gIHJlYWRvbmx5IHNlcnZpY2VBY2Nlc3NSb2xlQXJuPzogc3RyaW5nO1xuICAvKiogQW1hem9uIEtpbmVzaXMgRGF0YSBTdHJlYW1zIGVuZHBvaW50IEFSTiBmb3IgRE1TIHN0cmVhbWluZyBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uICovXG4gIHJlYWRvbmx5IHN0cmVhbUFybjogc3RyaW5nO1xufVxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiB0aGF0IGRlZmluZXMgYW4gQW1hem9uIFJlZHNoaWZ0IGVuZHBvaW50LiBNb2RpZmllZCBmcm9tIHRoZSBlcXVpdmFsZW50IEwxIENvbnN0cnVjdCB0byBwcmV2ZW50IHVzZSBvZiBwbGFpbnRleHQgY3JlZGVudGlhbHMgYW5kIGVuZm9yY2UgdXNlIG9mIEtNUyBlbmNyeXB0aW9uLlxuICogVGhpcyBpbmZvcm1hdGlvbiBpbmNsdWRlcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiByZWNvcmRzIGFwcGxpZWQgdG8gdGhlIGVuZHBvaW50IGFuZCBkZXRhaWxzIG9mIHRyYW5zYWN0aW9uIGFuZCBjb250cm9sIHRhYmxlIGRhdGEgaW5mb3JtYXRpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IG90aGVyIGF2YWlsYWJsZSBzZXR0aW5ncywgc2VlIFtFeHRyYSBjb25uZWN0aW9uIGF0dHJpYnV0ZXMgd2hlbiB1c2luZyBBbWF6b24gUmVkc2hpZnQgYXMgYSB0YXJnZXQgZm9yIEFXUyBETVNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1RhcmdldC5SZWRzaGlmdC5odG1sI0NIQVBfVGFyZ2V0LlJlZHNoaWZ0LkNvbm5lY3Rpb25BdHRyaWIpIGluIHRoZSAqQVdTIERhdGFiYXNlIE1pZ3JhdGlvbiBTZXJ2aWNlIFVzZXIgR3VpZGUqIC5cbiAqIEBzdHJ1Y3RcbiAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtcmVkc2hpZnRzZXR0aW5ncy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVkc2hpZnRTZXR0aW5nc1Byb3BlcnR5IHtcbiAgLyoqIEZsYWcgdG8gYWxsb3cgYW55IGRhdGUgZm9ybWF0IGluY2x1ZGluZyBpbnZhbGlkIGZvcm1hdHMgZm9yIGZsZXhpYmxlIGRhdGUgaGFuZGxpbmcgaW4gUmVkc2hpZnQgZGF0YSB3YXJlaG91c2UgKi9cbiAgcmVhZG9ubHkgYWNjZXB0QW55RGF0ZT86IGJvb2xlYW47XG4gIC8qKiBTUUwgc2NyaXB0IHRvIGV4ZWN1dGUgYWZ0ZXIgY29ubmVjdGluZyB0byBSZWRzaGlmdCBlbmRwb2ludCBmb3IgaW5pdGlhbGl6YXRpb24gYW5kIHNldHVwIHRhc2tzICovXG4gIHJlYWRvbmx5IGFmdGVyQ29ubmVjdFNjcmlwdD86IHN0cmluZztcbiAgLyoqIFMzIGZvbGRlciBmb3Igc3RvcmluZyBDU1YgZmlsZXMgYmVmb3JlIHVwbG9hZGluZyB0byBSZWRzaGlmdCBjbHVzdGVyIGZvciBzdGFnZWQgZGF0YSBsb2FkaW5nICovXG4gIHJlYWRvbmx5IGJ1Y2tldEZvbGRlcj86IHN0cmluZztcbiAgLyoqIFMzIGJ1Y2tldCBuYW1lIGZvciBpbnRlcm1lZGlhdGUgQ1NWIGZpbGUgc3RvcmFnZSBiZWZvcmUgUmVkc2hpZnQgZGF0YSBsb2FkaW5nIG9wZXJhdGlvbnMgKi9cbiAgcmVhZG9ubHkgYnVja2V0TmFtZTogc3RyaW5nO1xuICAvKiogRmxhZyB0byBlbmFibGUgY2FzZS1zZW5zaXRpdmUgc2NoZW1hIG5hbWVzIGluIFJlZHNoaWZ0IGRhdGEgd2FyZWhvdXNlIGZvciBwcmVjaXNlIHNjaGVtYSBoYW5kbGluZyAqL1xuICByZWFkb25seSBjYXNlU2Vuc2l0aXZlTmFtZXM/OiBib29sZWFuO1xuICAvKiogRmxhZyB0byBlbmFibGUgYXV0b21hdGljIGNvbXByZXNzaW9uIGZvciBlbXB0eSBSZWRzaGlmdCB0YWJsZXMgZm9yIHN0b3JhZ2Ugb3B0aW1pemF0aW9uICovXG4gIHJlYWRvbmx5IGNvbXBVcGRhdGU/OiBib29sZWFuO1xuICAvKiogQ29ubmVjdGlvbiB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3IgUmVkc2hpZnQgZW5kcG9pbnQgY29ubmVjdGlvbiBlc3RhYmxpc2htZW50ICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25UaW1lb3V0PzogbnVtYmVyO1xuICAvKiogRGF0ZSBmb3JtYXQgc3BlY2lmaWNhdGlvbiBmb3IgUmVkc2hpZnQgZGF0YSBsb2FkaW5nIGFuZCBkYXRlIGhhbmRsaW5nICovXG4gIHJlYWRvbmx5IGRhdGVGb3JtYXQ/OiBzdHJpbmc7XG4gIC8qKiBGbGFnIHRvIG1pZ3JhdGUgZW1wdHkgQ0hBUiBhbmQgVkFSQ0hBUiBmaWVsZHMgYXMgTlVMTCBmb3IgY29uc2lzdGVudCBudWxsIGhhbmRsaW5nICovXG4gIHJlYWRvbmx5IGVtcHR5QXNOdWxsPzogYm9vbGVhbjtcbiAgLyoqIEZsYWcgdG8gb3ZlcnJpZGUgYXV0by1nZW5lcmF0ZWQgSURFTlRJVFkgY29sdW1uIHZhbHVlcyB3aXRoIGV4cGxpY2l0IHNvdXJjZSB2YWx1ZXMgZm9yIGZ1bGwtbG9hZCBtaWdyYXRpb24gKi9cbiAgcmVhZG9ubHkgZXhwbGljaXRJZHM/OiBib29sZWFuO1xuICAvKiogTnVtYmVyIG9mIHBhcmFsbGVsIHRocmVhZHMgZm9yIHNpbmdsZSBmaWxlIHVwbG9hZCB0byBvcHRpbWl6ZSBTMyBtdWx0aXBhcnQgdXBsb2FkIHBlcmZvcm1hbmNlICovXG4gIHJlYWRvbmx5IGZpbGVUcmFuc2ZlclVwbG9hZFN0cmVhbXM/OiBudW1iZXI7XG4gIC8qKiBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3IgUmVkc2hpZnQgY2x1c3RlciBvcGVyYXRpb25zIGluY2x1ZGluZyBDT1BZLCBJTlNFUlQsIERFTEVURSwgYW5kIFVQREFURSAqL1xuICByZWFkb25seSBsb2FkVGltZW91dD86IG51bWJlcjtcbiAgLyoqIEZsYWcgdG8gbWlncmF0ZSBib29sZWFuIHR5cGUgYXMgbmF0aXZlIGJvb2xlYW4gaW4gUmVkc2hpZnQgZm9yIHByb3BlciBkYXRhIHR5cGUgcmVwcmVzZW50YXRpb24gKi9cbiAgcmVhZG9ubHkgbWFwQm9vbGVhbkFzQm9vbGVhbj86IGJvb2xlYW47XG4gIC8qKiBNYXhpbXVtIENTViBmaWxlIHNpemUgaW4gS0IgZm9yIFMzIHN0YWdpbmcgYW5kIFJlZHNoaWZ0IGRhdGEgdHJhbnNmZXIgb3B0aW1pemF0aW9uICovXG4gIHJlYWRvbmx5IG1heEZpbGVTaXplPzogbnVtYmVyO1xuICAvKiogRmxhZyB0byByZW1vdmUgc3Vycm91bmRpbmcgcXVvdGF0aW9uIG1hcmtzIGZyb20gc3RyaW5ncyBpbiBpbmNvbWluZyBkYXRhIGZvciBjbGVhbmVyIGRhdGEgcHJvY2Vzc2luZyAqL1xuICByZWFkb25seSByZW1vdmVRdW90ZXM/OiBib29sZWFuO1xuICAvKiogUmVwbGFjZW1lbnQgY2hhcmFjdGVyIGZvciBpbnZhbGlkIGNoYXJhY3RlcnMgc3BlY2lmaWVkIGluIFJlcGxhY2VJbnZhbGlkQ2hhcnMgZm9yIGRhdGEgY2xlYW5pbmcgKi9cbiAgcmVhZG9ubHkgcmVwbGFjZUNoYXJzPzogc3RyaW5nO1xuICAvKiogTGlzdCBvZiBjaGFyYWN0ZXJzIHRvIHJlcGxhY2UgZHVyaW5nIGRhdGEgbWlncmF0aW9uIGZvciBkYXRhIGNsZWFuaW5nICovXG4gIHJlYWRvbmx5IHJlcGxhY2VJbnZhbGlkQ2hhcnM/OiBzdHJpbmc7XG4gIC8qKiBJQU0gcm9sZSBBUk4gZm9yIEFXUyBTZWNyZXRzIE1hbmFnZXIgYWNjZXNzIHRvIFJlZHNoaWZ0IGVuZHBvaW50IGNyZWRlbnRpYWxzICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybj86IHN0cmluZztcbiAgLyoqIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgQVJOIGNvbnRhaW5pbmcgUmVkc2hpZnQgZW5kcG9pbnQgY29ubmVjdGlvbiBkZXRhaWxzIGZvciBzZWN1cmUgY3JlZGVudGlhbCBtYW5hZ2VtZW50ICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0QXJuOiBzdHJpbmc7XG4gIC8qKiBLTVMga2V5IEFSTiBmb3IgZW5jcnlwdGluZyBSZWRzaGlmdCBlbmRwb2ludCBjcmVkZW50aWFscyBzZWNyZXQgaW4gU2VjcmV0cyBNYW5hZ2VyICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0S01TQXJuPzogc3RyaW5nO1xuICAvKiogS01TIGtleSBJRCBmb3Igc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB3aGVuIHVzaW5nIFNTRV9LTVMgZW5jcnlwdGlvbiBtb2RlIGZvciBSZWRzaGlmdCBTMyBzdGFnaW5nIHNlY3VyaXR5ICovXG4gIHJlYWRvbmx5IHNlcnZlclNpZGVFbmNyeXB0aW9uS21zS2V5SWQ6IHN0cmluZztcbiAgLyoqIElBTSByb2xlIEFSTiBmb3IgRE1TIHNlcnZpY2UgYWNjZXNzIHRvIFJlZHNoaWZ0IHNlcnZpY2Ugb3BlcmF0aW9ucyBmb3IgZGF0YSB3YXJlaG91c2UgaW50ZWdyYXRpb24gKi9cbiAgcmVhZG9ubHkgc2VydmljZUFjY2Vzc1JvbGVBcm4/OiBzdHJpbmc7XG4gIC8qKiBUaW1lIGZvcm1hdCBzcGVjaWZpY2F0aW9uIGZvciBSZWRzaGlmdCBkYXRhIGxvYWRpbmcgYW5kIHRpbWUgaGFuZGxpbmcgKi9cbiAgcmVhZG9ubHkgdGltZUZvcm1hdD86IHN0cmluZztcbiAgLyoqIEZsYWcgdG8gcmVtb3ZlIHRyYWlsaW5nIHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMgZnJvbSBWQVJDSEFSIHN0cmluZ3MgZm9yIGNsZWFuZXIgZGF0YSBwcm9jZXNzaW5nICovXG4gIHJlYWRvbmx5IHRyaW1CbGFua3M/OiBib29sZWFuO1xuICAvKiogRmxhZyB0byB0cnVuY2F0ZSBkYXRhIGluIGNvbHVtbnMgdG8gZml0IGNvbHVtbiBzaXplIGxpbWl0cyBmb3IgZGF0YSBpbnRlZ3JpdHkgaW4gUmVkc2hpZnQgKi9cbiAgcmVhZG9ubHkgdHJ1bmNhdGVDb2x1bW5zPzogYm9vbGVhbjtcbiAgLyoqIEluLW1lbW9yeSBmaWxlIHdyaXRlIGJ1ZmZlciBzaXplIGluIEtCIGZvciBDU1YgZmlsZSBnZW5lcmF0aW9uIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiAqL1xuICByZWFkb25seSB3cml0ZUJ1ZmZlclNpemU/OiBudW1iZXI7XG59XG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIHRoYXQgZGVmaW5lcyBhIE1vbmdvREIgZW5kcG9pbnQuIE1vZGlmaWVkIGZyb20gdGhlIGVxdWl2YWxlbnQgTDEgQ29uc3RydWN0IHRvIHByZXZlbnQgdXNlIG9mIHBsYWludGV4dCBjcmVkZW50aWFscyBhbmQgZW5mb3JjZSB1c2Ugb2YgS01TIGVuY3J5cHRpb24uXG4gKiBUaGlzIGluZm9ybWF0aW9uIGluY2x1ZGVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHJlY29yZHMgYXBwbGllZCB0byB0aGUgZW5kcG9pbnQgYW5kIGRldGFpbHMgb2YgdHJhbnNhY3Rpb24gYW5kIGNvbnRyb2wgdGFibGUgZGF0YSBpbmZvcm1hdGlvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgb3RoZXIgYXZhaWxhYmxlIHNldHRpbmdzLCBzZWUgW0VuZHBvaW50IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3Mgd2hlbiB1c2luZyBNb25nb0RCIGFzIGEgc291cmNlIGZvciBBV1MgRE1TXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9Tb3VyY2UuTW9uZ29EQi5odG1sI0NIQVBfU291cmNlLk1vbmdvREIuQ29uZmlndXJhdGlvbikgaW4gdGhlICpBV1MgRGF0YWJhc2UgTWlncmF0aW9uIFNlcnZpY2UgVXNlciBHdWlkZSogLlxuICogQHN0cnVjdFxuICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1tb25nb2Ric2V0dGluZ3MuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vbmdvRGJTZXR0aW5nc1Byb3BlcnR5IHtcbiAgLyoqIEF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbSBmb3IgTW9uZ29EQiBzb3VyY2UgZW5kcG9pbnQgYWNjZXNzIHdpdGggdmVyc2lvbi1zcGVjaWZpYyBkZWZhdWx0cyAqL1xuICByZWFkb25seSBhdXRoTWVjaGFuaXNtPzogc3RyaW5nO1xuICAvKiogTW9uZ29EQiBkYXRhYmFzZSBuYW1lIGZvciBhdXRoZW50aWNhdGlvbiB3aXRoIGRlZmF1bHQgXCJhZG1pblwiIGRhdGFiYXNlICovXG4gIHJlYWRvbmx5IGF1dGhTb3VyY2U/OiBzdHJpbmc7XG4gIC8qKiBBdXRoZW50aWNhdGlvbiB0eXBlIGZvciBNb25nb0RCIHNvdXJjZSBlbmRwb2ludCBhY2Nlc3MgY29udHJvbCAqL1xuICByZWFkb25seSBhdXRoVHlwZT86IHN0cmluZztcbiAgLyoqIERhdGFiYXNlIG5hbWUgb24gTW9uZ29EQiBzb3VyY2UgZW5kcG9pbnQgZm9yIG1pZ3JhdGlvbiBzY29wZSBzcGVjaWZpY2F0aW9uICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZT86IHN0cmluZztcbiAgLyoqIE51bWJlciBvZiBkb2N1bWVudHMgdG8gcHJldmlldyBmb3IgZG9jdW1lbnQgb3JnYW5pemF0aW9uIGFuYWx5c2lzIHdoZW4gdXNpbmcgdGFibGUgbW9kZSAqL1xuICByZWFkb25seSBkb2NzVG9JbnZlc3RpZ2F0ZT86IHN0cmluZztcbiAgLyoqIEZsYWcgdG8gc3BlY2lmeSBkb2N1bWVudCBJRCBleHRyYWN0aW9uIHdoZW4gdXNpbmcgZG9jdW1lbnQgbW9kZSAqL1xuICByZWFkb25seSBleHRyYWN0RG9jSWQ/OiBzdHJpbmc7XG4gIC8qKiBOZXN0aW5nIGxldmVsIHNwZWNpZmljYXRpb24gZm9yIGRvY3VtZW50IG9yIHRhYmxlIG1vZGUgc2VsZWN0aW9uICovXG4gIHJlYWRvbmx5IG5lc3RpbmdMZXZlbD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBvcnQgdmFsdWUgZm9yIHRoZSBNb25nb0RCIHNvdXJjZSBlbmRwb2ludC5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1tb25nb2Ric2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LW1vbmdvZGJzZXR0aW5ncy1wb3J0XG4gICAqL1xuICByZWFkb25seSBwb3J0PzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIGZ1bGwgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIElBTSByb2xlIHRoYXQgc3BlY2lmaWVzIEFXUyBETVMgYXMgdGhlIHRydXN0ZWQgZW50aXR5IGFuZCBncmFudHMgdGhlIHJlcXVpcmVkIHBlcm1pc3Npb25zIHRvIGFjY2VzcyB0aGUgdmFsdWUgaW4gYFNlY3JldHNNYW5hZ2VyU2VjcmV0YCAuXG4gICAqIFRoZSByb2xlIG11c3QgYWxsb3cgdGhlIGBpYW06UGFzc1JvbGVgIGFjdGlvbi4gYFNlY3JldHNNYW5hZ2VyU2VjcmV0YCBoYXMgdGhlIHZhbHVlIG9mIHRoZSBBV1MgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCB0aGF0IGFsbG93cyBhY2Nlc3MgdG8gdGhlIE1vbmdvREIgZW5kcG9pbnQuXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtbW9uZ29kYnNldHRpbmdzLmh0bWwjY2ZuLWRtcy1lbmRwb2ludC1tb25nb2Ric2V0dGluZ3Mtc2VjcmV0c21hbmFnZXJhY2Nlc3Nyb2xlYXJuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlckFjY2Vzc1JvbGVBcm4/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZnVsbCBBUk4gb2YgdGhlIGBTZWNyZXRzTWFuYWdlclNlY3JldGAgdGhhdCBjb250YWlucyB0aGUgTW9uZ29EQiBlbmRwb2ludCBjb25uZWN0aW9uIGRldGFpbHMuXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtbW9uZ29kYnNldHRpbmdzLmh0bWwjY2ZuLWRtcy1lbmRwb2ludC1tb25nb2Ric2V0dGluZ3Mtc2VjcmV0c21hbmFnZXJzZWNyZXRpZFxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgS01TIGtleSB1c2VkIHRvIGVuY3J5cHQgdGhlIGNyZWRlbnRpYWxzIHNlY3JldC5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0S01TQXJuPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlcnZlciBvbiB0aGUgTW9uZ29EQiBzb3VyY2UgZW5kcG9pbnQuXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtbW9uZ29kYnNldHRpbmdzLmh0bWwjY2ZuLWRtcy1lbmRwb2ludC1tb25nb2Ric2V0dGluZ3Mtc2VydmVybmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyTmFtZT86IHN0cmluZztcbn1cbi8qKlxuICogUHJvdmlkZXMgaW5mb3JtYXRpb24gdGhhdCBkZWZpbmVzIGFuIElCTURCMiBlbmRwb2ludC4gTW9kaWZpZWQgZnJvbSB0aGUgZXF1aXZhbGVudCBMMSBDb25zdHJ1Y3QgdG8gcHJldmVudCB1c2Ugb2YgcGxhaW50ZXh0IGNyZWRlbnRpYWxzIGFuZCBlbmZvcmNlIHVzZSBvZiBLTVMgZW5jcnlwdGlvbi5cbiAqIFRoaXMgaW5mb3JtYXRpb24gaW5jbHVkZXMgdGhlIG91dHB1dCBmb3JtYXQgb2YgcmVjb3JkcyBhcHBsaWVkIHRvIHRoZSBlbmRwb2ludCBhbmQgZGV0YWlscyBvZiB0cmFuc2FjdGlvbiBhbmQgY29udHJvbCB0YWJsZSBkYXRhIGluZm9ybWF0aW9uLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBvdGhlciBhdmFpbGFibGUgc2V0dGluZ3MsIHNlZSBbRXh0cmEgY29ubmVjdGlvbiBhdHRyaWJ1dGVzIHdoZW4gdXNpbmcgRGIyIExVVyBhcyBhIHNvdXJjZSBmb3IgQVdTIERNU10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfU291cmNlLkRCMi5odG1sI0NIQVBfU291cmNlLkRCMi5Db25uZWN0aW9uQXR0cmliKSBpbiB0aGUgKkFXUyBEYXRhYmFzZSBNaWdyYXRpb24gU2VydmljZSBVc2VyIEd1aWRlKiAuXG4gKiBAc3RydWN0XG4gKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LWlibWRiMnNldHRpbmdzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJYm1EYjJTZXR0aW5nc1Byb3BlcnR5IHtcbiAgLyoqIExvZyBzZXF1ZW5jZSBudW1iZXIgKExTTikgZm9yIElCTSBEQjIgY2hhbmdlIGRhdGEgY2FwdHVyZSAoQ0RDKSByZXBsaWNhdGlvbiBzdGFydGluZyBwb2ludCAqL1xuICByZWFkb25seSBjdXJyZW50THNuPzogc3RyaW5nO1xuICAvKiogTWF4aW11bSBieXRlcyBwZXIgcmVhZCBvcGVyYXRpb24gZm9yIElCTSBEQjIgZGF0YSB0cmFuc2ZlciBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gZW5hYmxpbmcgdGhyb3VnaHB1dCB0dW5pbmcgKi9cbiAgcmVhZG9ubHkgbWF4S0J5dGVzUGVyUmVhZD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBmdWxsIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBJQU0gcm9sZSB0aGF0IHNwZWNpZmllcyBBV1MgRE1TIGFzIHRoZSB0cnVzdGVkIGVudGl0eSBhbmQgZ3JhbnRzIHRoZSByZXF1aXJlZCBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgdGhlIHZhbHVlIGluIGBTZWNyZXRzTWFuYWdlclNlY3JldGAgLlxuICAgKiBUaGUgcm9sZSBtdXN0IGFsbG93IHRoZSBgaWFtOlBhc3NSb2xlYCBhY3Rpb24uIGBTZWNyZXRzTWFuYWdlclNlY3JldGAgaGFzIHRoZSB2YWx1ZSBvZnRoZSBBV1MgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCB0aGF0IGFsbG93cyBhY2Nlc3MgdG8gdGhlIERiMiBMVVcgZW5kcG9pbnQuXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtaWJtZGIyc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LWlibWRiMnNldHRpbmdzLXNlY3JldHNtYW5hZ2VyYWNjZXNzcm9sZWFyblxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGZ1bGwgQVJOIG9mIHRoZSBgU2VjcmV0c01hbmFnZXJTZWNyZXRgIHRoYXQgY29udGFpbnMgdGhlIElCTURCMiBlbmRwb2ludCBjb25uZWN0aW9uIGRldGFpbHMuXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtaWJtZGIyc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LWlibWRiMnNldHRpbmdzLXNlY3JldHNtYW5hZ2Vyc2VjcmV0aWRcbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0QXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIEtNUyBrZXkgdXNlZCB0byBlbmNyeXB0IHRoZSBjcmVkZW50aWFscyBzZWNyZXQuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlclNlY3JldEtNU0Fybj86IHN0cmluZztcbiAgLyoqXG4gICAqIEVuYWJsZXMgb25nb2luZyByZXBsaWNhdGlvbiAoQ0RDKSBhcyBhIEJPT0xFQU4gdmFsdWUuXG4gICAqIFRoZSBkZWZhdWx0IGlzIHRydWUuXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtaWJtZGIyc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LWlibWRiMnNldHRpbmdzLXNldGRhdGFjYXB0dXJlY2hhbmdlc1xuICAgKi9cbiAgcmVhZG9ubHkgc2V0RGF0YUNhcHR1cmVDaGFuZ2VzPzogYm9vbGVhbjtcbn1cbi8qKlxuICogUHJvdmlkZXMgaW5mb3JtYXRpb24gdGhhdCBkZWZpbmVzIGFuIEFtYXpvbiBOZXB0dW5lIGVuZHBvaW50LiBNb2RpZmllZCBmcm9tIHRoZSBlcXVpdmFsZW50IEwxIENvbnN0cnVjdCB0byBwcmV2ZW50IHVzZSBvZiBwbGFpbnRleHQgY3JlZGVudGlhbHMgYW5kIGVuZm9yY2UgdXNlIG9mIEtNUyBlbmNyeXB0aW9uLlxuICogVGhpcyBpbmZvcm1hdGlvbiBpbmNsdWRlcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiByZWNvcmRzIGFwcGxpZWQgdG8gdGhlIGVuZHBvaW50IGFuZCBkZXRhaWxzIG9mIHRyYW5zYWN0aW9uIGFuZCBjb250cm9sIHRhYmxlIGRhdGEgaW5mb3JtYXRpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhdmFpbGFibGUgc2V0dGluZ3MsIHNlZSBbU3BlY2lmeWluZyBlbmRwb2ludCBzZXR0aW5ncyBmb3IgQW1hem9uIE5lcHR1bmUgYXMgYSB0YXJnZXRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1RhcmdldC5OZXB0dW5lLmh0bWwjQ0hBUF9UYXJnZXQuTmVwdHVuZS5FbmRwb2ludFNldHRpbmdzKSBpbiB0aGUgKkFXUyBEYXRhYmFzZSBNaWdyYXRpb24gU2VydmljZSBVc2VyIEd1aWRlKiAuXG4gKiBAc3RydWN0XG4gKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LW5lcHR1bmVzZXR0aW5ncy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmVwdHVuZVNldHRpbmdzUHJvcGVydHkge1xuICAvKiogUmV0cnkgZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzIGZvciBETVMgYnVsay1sb2FkIG9wZXJhdGlvbnMgdG8gTmVwdHVuZSB0YXJnZXQgZGF0YWJhc2UgKi9cbiAgcmVhZG9ubHkgZXJyb3JSZXRyeUR1cmF0aW9uPzogbnVtYmVyO1xuICByZWFkb25seSBtYXhGaWxlU2l6ZT86IG51bWJlcjtcbiAgLyoqIE1heGltdW0gcmV0cnkgY291bnQgZm9yIERNUyBidWxrLWxvYWQgb3BlcmF0aW9ucyB0byBOZXB0dW5lIHRhcmdldCBkYXRhYmFzZSBlbmFibGluZyAqL1xuICByZWFkb25seSBtYXhSZXRyeUNvdW50PzogbnVtYmVyO1xuICByZWFkb25seSBzM0J1Y2tldEZvbGRlcj86IHN0cmluZztcbiAgLyoqIFMzIGJ1Y2tldCBuYW1lIGZvciB0ZW1wb3Jhcnkgc3RvcmFnZSBvZiBtaWdyYXRlZCBncmFwaCBkYXRhIGR1cmluZyBETVMgTmVwdHVuZSBtaWdyYXRpb24gKi9cbiAgcmVhZG9ubHkgczNCdWNrZXROYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlcnZpY2VBY2Nlc3NSb2xlQXJuPzogc3RyaW5nO1xufVxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiB0aGF0IGRlZmluZXMgYW4gT3BlblNlYXJjaCBlbmRwb2ludC4gTW9kaWZpZWQgZnJvbSB0aGUgZXF1aXZhbGVudCBMMSBDb25zdHJ1Y3QgdG8gcHJldmVudCB1c2Ugb2YgcGxhaW50ZXh0IGNyZWRlbnRpYWxzIGFuZCBlbmZvcmNlIHVzZSBvZiBLTVMgZW5jcnlwdGlvbi5cbiAqIFRoaXMgaW5mb3JtYXRpb24gaW5jbHVkZXMgdGhlIG91dHB1dCBmb3JtYXQgb2YgcmVjb3JkcyBhcHBsaWVkIHRvIHRoZSBlbmRwb2ludCBhbmQgZGV0YWlscyBvZiB0cmFuc2FjdGlvbiBhbmQgY29udHJvbCB0YWJsZSBkYXRhIGluZm9ybWF0aW9uLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYXZhaWxhYmxlIHNldHRpbmdzLCBzZWUgW0V4dHJhIGNvbm5lY3Rpb24gYXR0cmlidXRlcyB3aGVuIHVzaW5nIE9wZW5TZWFyY2ggYXMgYSB0YXJnZXQgZm9yIEFXUyBETVNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1RhcmdldC5FbGFzdGljc2VhcmNoLmh0bWwjQ0hBUF9UYXJnZXQuRWxhc3RpY3NlYXJjaC5Db25maWd1cmF0aW9uKSBpbiB0aGUgKkFXUyBEYXRhYmFzZSBNaWdyYXRpb24gU2VydmljZSBVc2VyIEd1aWRlKiAuXG4gKiBAc3RydWN0XG4gKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LWVsYXN0aWNzZWFyY2hzZXR0aW5ncy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWxhc3RpY3NlYXJjaFNldHRpbmdzUHJvcGVydHkge1xuICAvKiogT3BlblNlYXJjaCBjbHVzdGVyIGVuZHBvaW50IFVSSSBmb3IgRE1TIHRhcmdldCBjb25uZWN0aXZpdHkgZW5hYmxpbmcgc2VhcmNoIGVuZ2luZSBkYXRhIG1pZ3JhdGlvbiBhbmQgaW5kZXhpbmcgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnRVcmk/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVycm9yUmV0cnlEdXJhdGlvbj86IG51bWJlcjtcbiAgLyoqIE1heGltdW0gcGVyY2VudGFnZSBvZiBmYWlsZWQgcmVjb3JkcyBiZWZvcmUgc3RvcHBpbmcgZnVsbCBsb2FkIG9wZXJhdGlvbiBlbmFibGluZyAqL1xuICByZWFkb25seSBmdWxsTG9hZEVycm9yUGVyY2VudGFnZT86IG51bWJlcjtcbiAgcmVhZG9ubHkgc2VydmljZUFjY2Vzc1JvbGVBcm4/OiBzdHJpbmc7XG59XG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIHRoYXQgZGVmaW5lcyBhIERvY3VtZW50REIgZW5kcG9pbnQuIE1vZGlmaWVkIGZyb20gdGhlIGVxdWl2YWxlbnQgTDEgQ29uc3RydWN0IHRvIHByZXZlbnQgdXNlIG9mIHBsYWludGV4dCBjcmVkZW50aWFscyBhbmQgZW5mb3JjZSB1c2Ugb2YgS01TIGVuY3J5cHRpb24uXG4gKiBUaGlzIGluZm9ybWF0aW9uIGluY2x1ZGVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHJlY29yZHMgYXBwbGllZCB0byB0aGUgZW5kcG9pbnQgYW5kIGRldGFpbHMgb2YgdHJhbnNhY3Rpb24gYW5kIGNvbnRyb2wgdGFibGUgZGF0YSBpbmZvcm1hdGlvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgb3RoZXIgYXZhaWxhYmxlIHNldHRpbmdzLCBzZWUgW1VzaW5nIGV4dHJhIGNvbm5lY3Rpb25zIGF0dHJpYnV0ZXMgd2l0aCBBbWF6b24gRG9jdW1lbnREQiBhcyBhIHNvdXJjZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfU291cmNlLkRvY3VtZW50REIuaHRtbCNDSEFQX1NvdXJjZS5Eb2N1bWVudERCLkVDQXMpIGFuZCBbVXNpbmcgQW1hem9uIERvY3VtZW50REIgYXMgYSB0YXJnZXQgZm9yIEFXUyBEYXRhYmFzZSBNaWdyYXRpb24gU2VydmljZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfVGFyZ2V0LkRvY3VtZW50REIuaHRtbCkgaW4gdGhlICpBV1MgRGF0YWJhc2UgTWlncmF0aW9uIFNlcnZpY2UgVXNlciBHdWlkZSogLlxuICogQHN0cnVjdFxuICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1kb2NkYnNldHRpbmdzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NEYlNldHRpbmdzUHJvcGVydHkge1xuICAvKiogTnVtYmVyIG9mIGRvY3VtZW50cyB0byBwcmV2aWV3IGZvciBkZXRlcm1pbmluZyBkb2N1bWVudCBvcmdhbml6YXRpb24gYW5kIHNjaGVtYSBpbmZlcmVuY2UgKi9cbiAgcmVhZG9ubHkgZG9jc1RvSW52ZXN0aWdhdGU/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGV4dHJhY3REb2NJZD86IGJvb2xlYW47XG4gIC8qKiBOZXN0aW5nIGxldmVsIHNwZWNpZmljYXRpb24gZm9yIERvY3VtZW50REIgbWlncmF0aW9uIG1vZGUgc2VsZWN0aW9uIGVuYWJsaW5nIGRvY3VtZW50IG9yIHRhYmxlIG1vZGUgbWlncmF0aW9uICovXG4gIHJlYWRvbmx5IG5lc3RpbmdMZXZlbD86IHN0cmluZztcbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuPzogc3RyaW5nO1xuICAvKiogU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBBUk4gY29udGFpbmluZyBEb2N1bWVudERCIGVuZHBvaW50IGNvbm5lY3Rpb24gZGV0YWlscyBlbmFibGluZyAqL1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlclNlY3JldEFybjogc3RyaW5nO1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlclNlY3JldEtNU0Fybj86IHN0cmluZztcbn1cbi8qKlxuICogUHJvdmlkZXMgaW5mb3JtYXRpb24sIGluY2x1ZGluZyB0aGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIElBTSByb2xlIHVzZWQgdG8gZGVmaW5lIGFuIEFtYXpvbiBEeW5hbW9EQiB0YXJnZXQgZW5kcG9pbnQuICBNb2RpZmllZCBmcm9tIHRoZSBlcXVpdmFsZW50IEwxIENvbnN0cnVjdCB0byBwcmV2ZW50IHVzZSBvZiBwbGFpbnRleHQgY3JlZGVudGlhbHMgYW5kIGVuZm9yY2UgdXNlIG9mIEtNUyBlbmNyeXB0aW9uLlxuICogVGhpcyBpbmZvcm1hdGlvbiBhbHNvIGluY2x1ZGVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHJlY29yZHMgYXBwbGllZCB0byB0aGUgZW5kcG9pbnQgYW5kIGRldGFpbHMgb2YgdHJhbnNhY3Rpb24gYW5kIGNvbnRyb2wgdGFibGUgZGF0YSBpbmZvcm1hdGlvbi4gRm9yIGluZm9ybWF0aW9uIGFib3V0IG90aGVyIGF2YWlsYWJsZSBzZXR0aW5ncywgc2VlIFtVc2luZyBvYmplY3QgbWFwcGluZyB0byBtaWdyYXRlIGRhdGEgdG8gRHluYW1vREJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1RhcmdldC5EeW5hbW9EQi5odG1sI0NIQVBfVGFyZ2V0LkR5bmFtb0RCLk9iamVjdE1hcHBpbmcpIGluIHRoZSAqQVdTIERhdGFiYXNlIE1pZ3JhdGlvbiBTZXJ2aWNlIFVzZXIgR3VpZGUqIC5cbiAqIEBzdHJ1Y3RcbiAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtZHluYW1vZGJzZXR0aW5ncy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1vRGJTZXR0aW5nc1Byb3BlcnR5IHtcbiAgLyoqIElBTSBzZXJ2aWNlIHJvbGUgQVJOIGZvciBETVMgRHluYW1vREIgZW5kcG9pbnQgYWNjZXNzIGVuYWJsaW5nIHNlY3VyZSBhdXRoZW50aWNhdGlvbiBhbmQgKi9cbiAgcmVhZG9ubHkgc2VydmljZUFjY2Vzc1JvbGVBcm4/OiBzdHJpbmc7XG59XG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIHRoYXQgZGVmaW5lcyBhIE1pY3Jvc29mdCBTUUwgU2VydmVyIGVuZHBvaW50LiBNb2RpZmllZCBmcm9tIHRoZSBlcXVpdmFsZW50IEwxIENvbnN0cnVjdCB0byBwcmV2ZW50IHVzZSBvZiBwbGFpbnRleHQgY3JlZGVudGlhbHMgYW5kIGVuZm9yY2UgdXNlIG9mIEtNUyBlbmNyeXB0aW9uLlxuICogVGhpcyBpbmZvcm1hdGlvbiBpbmNsdWRlcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiByZWNvcmRzIGFwcGxpZWQgdG8gdGhlIGVuZHBvaW50IGFuZCBkZXRhaWxzIG9mIHRyYW5zYWN0aW9uIGFuZCBjb250cm9sIHRhYmxlIGRhdGEgaW5mb3JtYXRpb24uIEZvciBpbmZvcm1hdGlvbiBhYm91dCBvdGhlciBhdmFpbGFibGUgc2V0dGluZ3MsIHNlZSBbRXh0cmEgY29ubmVjdGlvbiBhdHRyaWJ1dGVzIHdoZW4gdXNpbmcgU1FMIFNlcnZlciBhcyBhIHNvdXJjZSBmb3IgQVdTIERNU10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfU291cmNlLlNRTFNlcnZlci5odG1sI0NIQVBfU291cmNlLlNRTFNlcnZlci5Db25uZWN0aW9uQXR0cmliKSBhbmQgW0V4dHJhIGNvbm5lY3Rpb24gYXR0cmlidXRlcyB3aGVuIHVzaW5nIFNRTCBTZXJ2ZXIgYXMgYSB0YXJnZXQgZm9yIEFXUyBETVNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L3VzZXJndWlkZS9DSEFQX1RhcmdldC5TUUxTZXJ2ZXIuaHRtbCNDSEFQX1RhcmdldC5TUUxTZXJ2ZXIuQ29ubmVjdGlvbkF0dHJpYikgaW4gdGhlICpBV1MgRGF0YWJhc2UgTWlncmF0aW9uIFNlcnZpY2UgVXNlciBHdWlkZSogLlxuICogQHN0cnVjdFxuICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1taWNyb3NvZnRzcWxzZXJ2ZXJzZXR0aW5ncy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWljcm9zb2Z0U3FsU2VydmVyU2V0dGluZ3NQcm9wZXJ0eSB7XG4gIC8qKiBCQ1AgcGFja2V0IHNpemUgaW4gYnl0ZXMgZm9yIFNRTCBTZXJ2ZXIgZGF0YSB0cmFuc2ZlciBvcHRpbWl6YXRpb24gZW5hYmxpbmcgcGVyZm9ybWFuY2UgKi9cbiAgcmVhZG9ubHkgYmNwUGFja2V0U2l6ZT86IG51bWJlcjtcbiAgcmVhZG9ubHkgY29udHJvbFRhYmxlc0ZpbGVHcm91cD86IHN0cmluZztcbiAgLyoqIERhdGFiYXNlIG5hbWUgZm9yIFNRTCBTZXJ2ZXIgZW5kcG9pbnQgY29ubmVjdGl2aXR5IGVuYWJsaW5nIHNwZWNpZmljIGRhdGFiYXNlIHRhcmdldGluZyAqL1xuICByZWFkb25seSBkYXRhYmFzZU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZvcmNlTG9iTG9va3VwPzogYm9vbGVhbjtcblxuICAvKiogVENQIHBvcnQgbnVtYmVyIGZvciBTUUwgU2VydmVyIGVuZHBvaW50IGNvbm5lY3Rpdml0eSBlbmFibGluZyBjdXN0b20gcG9ydCBjb25maWd1cmF0aW9uIGZvciAqL1xuICByZWFkb25seSBwb3J0PzogbnVtYmVyO1xuICByZWFkb25seSBxdWVyeVNpbmdsZUFsd2F5c09uTm9kZT86IGJvb2xlYW47XG4gIC8qKiBGbGFnIHRvIHJlYWQgY2hhbmdlcyBvbmx5IGZyb20gdHJhbnNhY3Rpb24gbG9nIGJhY2t1cHMgZW5hYmxpbmcgY29udHJvbGxlZCB0cmFuc2FjdGlvbiBsb2cgKi9cbiAgcmVhZG9ubHkgcmVhZEJhY2t1cE9ubHk/OiBib29sZWFuO1xuICByZWFkb25seSBzYWZlZ3VhcmRQb2xpY3k/OiBzdHJpbmc7XG4gIC8qKiBJQU0gcm9sZSBBUk4gZm9yIERNUyB0byBhY2Nlc3MgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBjb250YWluaW5nIFNRTCBTZXJ2ZXIgY3JlZGVudGlhbHMgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuPzogc3RyaW5nO1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlclNlY3JldEFybjogc3RyaW5nO1xuICAvKiogS01TIGtleSBBUk4gZm9yIGVuY3J5cHRpbmcgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBjb250YWluaW5nIFNRTCBTZXJ2ZXIgY3JlZGVudGlhbHMgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRLTVNBcm4/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlcnZlck5hbWU/OiBzdHJpbmc7XG4gIC8qKiBUcmFuc2FjdGlvbiBsb2cgYWNjZXNzIG1vZGUgZm9yIENEQyBkYXRhIGZldGNoaW5nIGVuYWJsaW5nIG9wdGltaXplZCBjaGFuZ2UgZGF0YSBjYXB0dXJlIGluICovXG4gIHJlYWRvbmx5IHRsb2dBY2Nlc3NNb2RlPzogc3RyaW5nO1xuICByZWFkb25seSB0cmltU3BhY2VJbkNoYXI/OiBib29sZWFuO1xuICAvKiogRmxhZyB0byB1c2UgQkNQIGZvciBmdWxsLWxvYWQgb3BlcmF0aW9ucyBlbmFibGluZyBvcHRpbWl6ZWQgYnVsayBkYXRhIHRyYW5zZmVyIGluIFNRTCBTZXJ2ZXIgbWlncmF0aW9uICovXG4gIHJlYWRvbmx5IHVzZUJjcEZ1bGxMb2FkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlVGhpcmRQYXJ0eUJhY2t1cERldmljZT86IGJvb2xlYW47XG59XG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIHRoYXQgZGVmaW5lcyBhIEdDUCBNeVNRTCBlbmRwb2ludC4gTW9kaWZpZWQgZnJvbSB0aGUgZXF1aXZhbGVudCBMMSBDb25zdHJ1Y3QgdG8gcHJldmVudCB1c2Ugb2YgcGxhaW50ZXh0IGNyZWRlbnRpYWxzIGFuZCBlbmZvcmNlIHVzZSBvZiBLTVMgZW5jcnlwdGlvbi5cbiAqIFRoaXMgaW5mb3JtYXRpb24gaW5jbHVkZXMgdGhlIG91dHB1dCBmb3JtYXQgb2YgcmVjb3JkcyBhcHBsaWVkIHRvIHRoZSBlbmRwb2ludCBhbmQgZGV0YWlscyBvZiB0cmFuc2FjdGlvbiBhbmQgY29udHJvbCB0YWJsZSBkYXRhIGluZm9ybWF0aW9uLiBUaGVzZSBzZXR0aW5ncyBhcmUgbXVjaCB0aGUgc2FtZSBhcyB0aGUgc2V0dGluZ3MgZm9yIGFueSBNeVNRTC1jb21wYXRpYmxlIGVuZHBvaW50LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtFeHRyYSBjb25uZWN0aW9uIGF0dHJpYnV0ZXMgd2hlbiB1c2luZyBNeVNRTCBhcyBhIHNvdXJjZSBmb3IgQVdTIERNU10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfU291cmNlLk15U1FMLmh0bWwjQ0hBUF9Tb3VyY2UuTXlTUUwuQ29ubmVjdGlvbkF0dHJpYikgaW4gdGhlICpBV1MgRGF0YWJhc2UgTWlncmF0aW9uIFNlcnZpY2UgVXNlciBHdWlkZSogLlxuICogQHN0cnVjdFxuICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1nY3BteXNxbHNldHRpbmdzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHY3BNeVNRTFNldHRpbmdzUHJvcGVydHkge1xuICAvKipcbiAgICogU3BlY2lmaWVzIGEgc2NyaXB0IHRvIHJ1biBpbW1lZGlhdGVseSBhZnRlciBBV1MgRE1TIGNvbm5lY3RzIHRvIHRoZSBlbmRwb2ludC5cbiAgICogVGhlIG1pZ3JhdGlvbiB0YXNrIGNvbnRpbnVlcyBydW5uaW5nIHJlZ2FyZGxlc3MgaWYgdGhlIFNRTCBzdGF0ZW1lbnQgc3VjY2VlZHMgb3IgZmFpbHMuXG4gICAqIEZvciB0aGlzIHBhcmFtZXRlciwgcHJvdmlkZSB0aGUgY29kZSBvZiB0aGUgc2NyaXB0IGl0c2VsZiwgbm90IHRoZSBuYW1lIG9mIGEgZmlsZSBjb250YWluaW5nIHRoZSBzY3JpcHQuXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy1hZnRlcmNvbm5lY3RzY3JpcHRcbiAgICovXG4gIHJlYWRvbmx5IGFmdGVyQ29ubmVjdFNjcmlwdD86IHN0cmluZztcbiAgLyoqXG4gICAqIEFkanVzdHMgdGhlIGJlaGF2aW9yIG9mIEFXUyBETVMgd2hlbiBtaWdyYXRpbmcgZnJvbSBhbiBTUUwgU2VydmVyIHNvdXJjZSBkYXRhYmFzZSB0aGF0IGlzIGhvc3RlZCBhcyBwYXJ0IG9mIGFuIEFsd2F5cyBPbiBhdmFpbGFiaWxpdHkgZ3JvdXAgY2x1c3Rlci5cbiAgICogSWYgeW91IG5lZWQgQVdTIERNUyB0byBwb2xsIGFsbCB0aGUgbm9kZXMgaW4gdGhlIEFsd2F5cyBPbiBjbHVzdGVyIGZvciB0cmFuc2FjdGlvbiBiYWNrdXBzLCBzZXQgdGhpcyBhdHRyaWJ1dGUgdG8gYGZhbHNlYCAuXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy1jbGVhbnNvdXJjZW1ldGFkYXRhb25taXNtYXRjaFxuICAgKi9cbiAgcmVhZG9ubHkgY2xlYW5Tb3VyY2VNZXRhZGF0YU9uTWlzbWF0Y2g/OiBib29sZWFuO1xuICAvKipcbiAgICogRGF0YWJhc2UgbmFtZSBmb3IgdGhlIGVuZHBvaW50LlxuICAgKiBGb3IgYSBNeVNRTCBzb3VyY2Ugb3IgdGFyZ2V0IGVuZHBvaW50LCBkb24ndCBleHBsaWNpdGx5IHNwZWNpZnkgdGhlIGRhdGFiYXNlIHVzaW5nIHRoZSBgRGF0YWJhc2VOYW1lYCByZXF1ZXN0IHBhcmFtZXRlciBvbiBlaXRoZXIgdGhlIGBDcmVhdGVFbmRwb2ludGAgb3IgYE1vZGlmeUVuZHBvaW50YCBBUEkgY2FsbC4gU3BlY2lmeWluZyBgRGF0YWJhc2VOYW1lYCB3aGVuIHlvdSBjcmVhdGUgb3IgbW9kaWZ5IGEgTXlTUUwgZW5kcG9pbnQgcmVwbGljYXRlcyBhbGwgdGhlIHRhc2sgdGFibGVzIHRvIHRoaXMgc2luZ2xlIGRhdGFiYXNlLiBGb3IgTXlTUUwgZW5kcG9pbnRzLCB5b3Ugc3BlY2lmeSB0aGUgZGF0YWJhc2Ugb25seSB3aGVuIHlvdSBzcGVjaWZ5IHRoZSBzY2hlbWEgaW4gdGhlIHRhYmxlLW1hcHBpbmcgcnVsZXMgb2YgdGhlIEFXUyBETVMgdGFzay5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1nY3BteXNxbHNldHRpbmdzLmh0bWwjY2ZuLWRtcy1lbmRwb2ludC1nY3BteXNxbHNldHRpbmdzLWRhdGFiYXNlbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogU3BlY2lmaWVzIGhvdyBvZnRlbiB0byBjaGVjayB0aGUgYmluYXJ5IGxvZyBmb3IgbmV3IGNoYW5nZXMvZXZlbnRzIHdoZW4gdGhlIGRhdGFiYXNlIGlzIGlkbGUuXG4gICAqIFRoZSBkZWZhdWx0IGlzIGZpdmUgc2Vjb25kcy5cbiAgICogRXhhbXBsZTogYGV2ZW50c1BvbGxJbnRlcnZhbD01O2BcbiAgICogSW4gdGhlIGV4YW1wbGUsIEFXUyBETVMgY2hlY2tzIGZvciBjaGFuZ2VzIGluIHRoZSBiaW5hcnkgbG9ncyBldmVyeSBmaXZlIHNlY29uZHMuXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtZ2NwbXlzcWxzZXR0aW5ncy1ldmVudHNwb2xsaW50ZXJ2YWxcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50c1BvbGxJbnRlcnZhbD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSBzaXplIChpbiBLQikgb2YgYW55IC5jc3YgZmlsZSB1c2VkIHRvIHRyYW5zZmVyIGRhdGEgdG8gYSBNeVNRTC1jb21wYXRpYmxlIGRhdGFiYXNlLlxuICAgKiBFeGFtcGxlOiBgbWF4RmlsZVNpemU9NTEyYFxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3MtbWF4ZmlsZXNpemVcbiAgICovXG4gIHJlYWRvbmx5IG1heEZpbGVTaXplPzogbnVtYmVyO1xuICAvKipcbiAgICogSW1wcm92ZXMgcGVyZm9ybWFuY2Ugd2hlbiBsb2FkaW5nIGRhdGEgaW50byB0aGUgTXlTUUwtY29tcGF0aWJsZSB0YXJnZXQgZGF0YWJhc2UuXG4gICAqIFNwZWNpZmllcyBob3cgbWFueSB0aHJlYWRzIHRvIHVzZSB0byBsb2FkIHRoZSBkYXRhIGludG8gdGhlIE15U1FMLWNvbXBhdGlibGUgdGFyZ2V0IGRhdGFiYXNlLiBTZXR0aW5nIGEgbGFyZ2UgbnVtYmVyIG9mIHRocmVhZHMgY2FuIGhhdmUgYW4gYWR2ZXJzZSBlZmZlY3Qgb24gZGF0YWJhc2UgcGVyZm9ybWFuY2UsIGJlY2F1c2UgYSBzZXBhcmF0ZSBjb25uZWN0aW9uIGlzIHJlcXVpcmVkIGZvciBlYWNoIHRocmVhZC4gVGhlIGRlZmF1bHQgaXMgb25lLlxuICAgKiBFeGFtcGxlOiBgcGFyYWxsZWxMb2FkVGhyZWFkcz0xYFxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3MtcGFyYWxsZWxsb2FkdGhyZWFkc1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYWxsZWxMb2FkVGhyZWFkcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBwb3J0IHVzZWQgYnkgdGhlIGVuZHBvaW50IGRhdGFiYXNlLlxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3MtcG9ydFxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBmdWxsIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBJQU0gcm9sZSB0aGF0IHNwZWNpZmllcyBBV1MgRE1TIGFzIHRoZSB0cnVzdGVkIGVudGl0eSBhbmQgZ3JhbnRzIHRoZSByZXF1aXJlZCBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgdGhlIHZhbHVlIGluIGBTZWNyZXRzTWFuYWdlclNlY3JldC5gIFRoZSByb2xlIG11c3QgYWxsb3cgdGhlIGBpYW06UGFzc1JvbGVgIGFjdGlvbi4gYFNlY3JldHNNYW5hZ2VyU2VjcmV0YCBoYXMgdGhlIHZhbHVlIG9mIHRoZSBBV1MgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCB0aGF0IGFsbG93cyBhY2Nlc3MgdG8gdGhlIE15U1FMIGVuZHBvaW50LlxuICAgKiA+IFlvdSBjYW4gc3BlY2lmeSBvbmUgb2YgdHdvIHNldHMgb2YgdmFsdWVzIGZvciB0aGVzZSBwZXJtaXNzaW9ucy4gWW91IGNhbiBzcGVjaWZ5IHRoZSB2YWx1ZXMgZm9yIHRoaXMgc2V0dGluZyBhbmQgYFNlY3JldHNNYW5hZ2VyU2VjcmV0SWRgIC4gT3IgeW91IGNhbiBzcGVjaWZ5IGNsZWFyLXRleHQgdmFsdWVzIGZvciBgVXNlck5hbWVgICwgYFBhc3N3b3JkYCAsIGBTZXJ2ZXJOYW1lYCAsIGFuZCBgUG9ydGAgLiBZb3UgY2FuJ3Qgc3BlY2lmeSBib3RoLlxuICAgKiA+XG4gICAqID4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgdGhpcyBgU2VjcmV0c01hbmFnZXJTZWNyZXRgICwgdGhlIGNvcnJlc3BvbmRpbmcgYFNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybmAgLCBhbmQgdGhlIGBTZWNyZXRzTWFuYWdlclNlY3JldElkYCByZXF1aXJlZCB0byBhY2Nlc3MgaXQsIHNlZSBbVXNpbmcgc2VjcmV0cyB0byBhY2Nlc3MgQVdTIERhdGFiYXNlIE1pZ3JhdGlvbiBTZXJ2aWNlIHJlc291cmNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfU2VjdXJpdHkuaHRtbCNzZWN1cml0eS1pYW0tc2VjcmV0c21hbmFnZXIpIGluIHRoZSAqQVdTIERhdGFiYXNlIE1pZ3JhdGlvbiBTZXJ2aWNlIFVzZXIgR3VpZGUqIC5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1nY3BteXNxbHNldHRpbmdzLmh0bWwjY2ZuLWRtcy1lbmRwb2ludC1nY3BteXNxbHNldHRpbmdzLXNlY3JldHNtYW5hZ2VyYWNjZXNzcm9sZWFyblxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJBY2Nlc3NSb2xlQXJuPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGZ1bGwgQVJOIG9mIHRoZSBgU2VjcmV0c01hbmFnZXJTZWNyZXRgIHRoYXQgY29udGFpbnMgdGhlIE15U1FMIGVuZHBvaW50IGNvbm5lY3Rpb24gZGV0YWlscy5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1nY3BteXNxbHNldHRpbmdzLmh0bWwjY2ZuLWRtcy1lbmRwb2ludC1nY3BteXNxbHNldHRpbmdzLXNlY3JldHNtYW5hZ2Vyc2VjcmV0aWRcbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0QXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIEtNUyBrZXkgdXNlZCB0byBlbmNyeXB0IHRoZSBjcmVkZW50aWFscyBzZWNyZXQuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlclNlY3JldEtNU0Fybj86IHN0cmluZztcbiAgLyoqXG4gICAqIEVuZHBvaW50IFRDUCBwb3J0LlxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3Mtc2VydmVybmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdGltZSB6b25lIGZvciB0aGUgc291cmNlIE15U1FMIGRhdGFiYXNlLiBEb24ndCBlbmNsb3NlIHRpbWUgem9uZXMgaW4gc2luZ2xlIHF1b3RhdGlvbiBtYXJrcy5cbiAgICogRXhhbXBsZTogYHNlcnZlclRpbWV6b25lPVVTL1BhY2lmaWM7YFxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LWdjcG15c3Fsc2V0dGluZ3Mtc2VydmVydGltZXpvbmVcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlclRpbWV6b25lPzogc3RyaW5nO1xufVxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiB0aGF0IGRlZmluZXMgYSBQb3N0Z3JlU1FMIGVuZHBvaW50LiBNb2RpZmllZCBmcm9tIHRoZSBlcXVpdmFsZW50IEwxIENvbnN0cnVjdCB0byBwcmV2ZW50IHVzZSBvZiBwbGFpbnRleHQgY3JlZGVudGlhbHMgYW5kIGVuZm9yY2UgdXNlIG9mIEtNUyBlbmNyeXB0aW9uLlxuICogVGhpcyBpbmZvcm1hdGlvbiBpbmNsdWRlcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiByZWNvcmRzIGFwcGxpZWQgdG8gdGhlIGVuZHBvaW50IGFuZCBkZXRhaWxzIG9mIHRyYW5zYWN0aW9uIGFuZCBjb250cm9sIHRhYmxlIGRhdGEgaW5mb3JtYXRpb24uIEZvciBpbmZvcm1hdGlvbiBhYm91dCBvdGhlciBhdmFpbGFibGUgc2V0dGluZ3MsIHNlZSBbRXh0cmEgY29ubmVjdGlvbiBhdHRyaWJ1dGVzIHdoZW4gdXNpbmcgUG9zdGdyZVNRTCBhcyBhIHNvdXJjZSBmb3IgQVdTIERNU10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfU291cmNlLlBvc3RncmVTUUwuaHRtbCNDSEFQX1NvdXJjZS5Qb3N0Z3JlU1FMLkNvbm5lY3Rpb25BdHRyaWIpIGFuZCBbRXh0cmEgY29ubmVjdGlvbiBhdHRyaWJ1dGVzIHdoZW4gdXNpbmcgUG9zdGdyZVNRTCBhcyBhIHRhcmdldCBmb3IgQVdTIERNU10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfVGFyZ2V0LlBvc3RncmVTUUwuaHRtbCNDSEFQX1RhcmdldC5Qb3N0Z3JlU1FMLkNvbm5lY3Rpb25BdHRyaWIpIGluIHRoZSAqQVdTIERhdGFiYXNlIE1pZ3JhdGlvbiBTZXJ2aWNlIFVzZXIgR3VpZGUqIC5cbiAqIEBzdHJ1Y3RcbiAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb3N0Z3JlU3FsU2V0dGluZ3NQcm9wZXJ0eSB7XG4gIC8qKiBTUUwgc2NyaXB0IGV4ZWN1dGVkIGFmdGVyIGNvbm5lY3RpbmcgdG8gUG9zdGdyZVNRTCBzb3VyY2UgZm9yIGNoYW5nZSBkYXRhIGNhcHR1cmUgKENEQykgKi9cbiAgcmVhZG9ubHkgYWZ0ZXJDb25uZWN0U2NyaXB0Pzogc3RyaW5nO1xuICAvKiogQmFiZWxmaXNoIGZvciBBdXJvcmEgUG9zdGdyZVNRTCBkYXRhYmFzZSBuYW1lIGZvciBETVMgZW5kcG9pbnQgY29uZmlndXJhdGlvbiBlbmFibGluZyBTUUwgKi9cbiAgcmVhZG9ubHkgYmFiZWxmaXNoRGF0YWJhc2VOYW1lPzogc3RyaW5nO1xuICAvKiogQm9vbGVhbiBmbGFnIHRvIGVuYWJsZSBEREwgZXZlbnQgY2FwdHVyZSBmb3IgUG9zdGdyZVNRTCBETVMgbWlncmF0aW9uIGVuYWJsaW5nIHNjaGVtYSAqL1xuICByZWFkb25seSBjYXB0dXJlRGRscz86IGJvb2xlYW47XG4gIC8qKiBEYXRhYmFzZSBtb2RlIHNwZWNpZmljYXRpb24gZm9yIFBvc3RncmVTUUwtY29tcGF0aWJsZSBlbmRwb2ludHMgcmVxdWlyaW5nIGFkZGl0aW9uYWwgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VNb2RlPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHNjaGVtYSBpbiB3aGljaCB0aGUgb3BlcmF0aW9uYWwgRERMIGRhdGFiYXNlIGFydGlmYWN0cyBhcmUgY3JlYXRlZC5cbiAgICogRXhhbXBsZTogYGRkbEFydGlmYWN0c1NjaGVtYT14eXpkZGxzY2hlbWE7YFxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LXBvc3RncmVzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLWRkbGFydGlmYWN0c3NjaGVtYVxuICAgKi9cbiAgcmVhZG9ubHkgZGRsQXJ0aWZhY3RzU2NoZW1hPzogc3RyaW5nO1xuICAvKipcbiAgICogU2V0cyB0aGUgY2xpZW50IHN0YXRlbWVudCB0aW1lb3V0IGZvciB0aGUgUG9zdGdyZVNRTCBpbnN0YW5jZSwgaW4gc2Vjb25kcy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgNjAgc2Vjb25kcy5cbiAgICogRXhhbXBsZTogYGV4ZWN1dGVUaW1lb3V0PTEwMDtgXG4gICAqIFNlZTogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLmh0bWwjY2ZuLWRtcy1lbmRwb2ludC1wb3N0Z3Jlc3Fsc2V0dGluZ3MtZXhlY3V0ZXRpbWVvdXRcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGVUaW1lb3V0PzogbnVtYmVyO1xuICAvKipcbiAgICogV2hlbiBzZXQgdG8gYHRydWVgICwgdGhpcyB2YWx1ZSBjYXVzZXMgYSB0YXNrIHRvIGZhaWwgaWYgdGhlIGFjdHVhbCBzaXplIG9mIGEgTE9CIGNvbHVtbiBpcyBncmVhdGVyIHRoYW4gdGhlIHNwZWNpZmllZCBgTG9iTWF4U2l6ZWAgLlxuICAgKiBJZiB0YXNrIGlzIHNldCB0byBMaW1pdGVkIExPQiBtb2RlIGFuZCB0aGlzIG9wdGlvbiBpcyBzZXQgdG8gdHJ1ZSwgdGhlIHRhc2sgZmFpbHMgaW5zdGVhZCBvZiB0cnVuY2F0aW5nIHRoZSBMT0IgZGF0YS5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1wb3N0Z3Jlc3Fsc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LXBvc3RncmVzcWxzZXR0aW5ncy1mYWlsdGFza3NvbmxvYnRydW5jYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGZhaWxUYXNrc09uTG9iVHJ1bmNhdGlvbj86IGJvb2xlYW47XG4gIC8qKiBCb29sZWFuIGZsYWcgdG8gZW5hYmxlIFdBTCBoZWFydGJlYXQgZmVhdHVyZSBmb3IgUG9zdGdyZVNRTCBETVMgbWlncmF0aW9uIHByZXZlbnRpbmcgKi9cbiAgcmVhZG9ubHkgaGVhcnRiZWF0RW5hYmxlPzogYm9vbGVhbjtcbiAgLyoqIFdBTCBoZWFydGJlYXQgZnJlcXVlbmN5IGluIG1pbnV0ZXMgZm9yIFBvc3RncmVTUUwgRE1TIG1pZ3JhdGlvbiBlbmFibGluZyBjb25maWd1cmFibGUgKi9cbiAgcmVhZG9ubHkgaGVhcnRiZWF0RnJlcXVlbmN5PzogbnVtYmVyO1xuICAvKipcbiAgICogU2V0cyB0aGUgc2NoZW1hIGluIHdoaWNoIHRoZSBoZWFydGJlYXQgYXJ0aWZhY3RzIGFyZSBjcmVhdGVkLlxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LXBvc3RncmVzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLWhlYXJ0YmVhdHNjaGVtYVxuICAgKi9cbiAgcmVhZG9ubHkgaGVhcnRiZWF0U2NoZW1hPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hlbiB0cnVlLCBsZXRzIFBvc3RncmVTUUwgbWlncmF0ZSB0aGUgYm9vbGVhbiB0eXBlIGFzIGJvb2xlYW4uXG4gICAqIEJ5IGRlZmF1bHQsIFBvc3RncmVTUUwgbWlncmF0ZXMgYm9vbGVhbnMgYXMgYHZhcmNoYXIoNSlgIC4gWW91IG11c3Qgc2V0IHRoaXMgc2V0dGluZyBvbiBib3RoIHRoZSBzb3VyY2UgYW5kIHRhcmdldCBlbmRwb2ludHMgZm9yIGl0IHRvIHRha2UgZWZmZWN0LlxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LXBvc3RncmVzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLW1hcGJvb2xlYW5hc2Jvb2xlYW5cbiAgICovXG4gIHJlYWRvbmx5IG1hcEJvb2xlYW5Bc0Jvb2xlYW4/OiBib29sZWFuO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIHNpemUgKGluIEtCKSBvZiBhbnkgLmNzdiBmaWxlIHVzZWQgdG8gdHJhbnNmZXIgZGF0YSB0byBQb3N0Z3JlU1FMLlxuICAgKiBFeGFtcGxlOiBgbWF4RmlsZVNpemU9NTEyYFxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LXBvc3RncmVzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLW1heGZpbGVzaXplXG4gICAqL1xuICByZWFkb25seSBtYXhGaWxlU2l6ZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgcGx1Z2luIHRvIHVzZSB0byBjcmVhdGUgYSByZXBsaWNhdGlvbiBzbG90LlxuICAgKiBTZWU6IGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZG1zLWVuZHBvaW50LXBvc3RncmVzcWxzZXR0aW5ncy5odG1sI2Nmbi1kbXMtZW5kcG9pbnQtcG9zdGdyZXNxbHNldHRpbmdzLXBsdWdpbm5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZnVsbCBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgSUFNIHJvbGUgdGhhdCBzcGVjaWZpZXMgQVdTIERNUyBhcyB0aGUgdHJ1c3RlZCBlbnRpdHkgYW5kIGdyYW50cyB0aGUgcmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gYWNjZXNzIHRoZSB2YWx1ZSBpbiBgU2VjcmV0c01hbmFnZXJTZWNyZXRgIC5cbiAgICogVGhlIHJvbGUgbXVzdCBhbGxvdyB0aGUgYGlhbTpQYXNzUm9sZWAgYWN0aW9uLiBgU2VjcmV0c01hbmFnZXJTZWNyZXRgIGhhcyB0aGUgdmFsdWUgb2YgdGhlIEFXUyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IHRoYXQgYWxsb3dzIGFjY2VzcyB0byB0aGUgUG9zdGdyZVNRTCBlbmRwb2ludC5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1wb3N0Z3Jlc3Fsc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LXBvc3RncmVzcWxzZXR0aW5ncy1zZWNyZXRzbWFuYWdlcmFjY2Vzc3JvbGVhcm5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyQWNjZXNzUm9sZUFybj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBmdWxsIEFSTiBvZiB0aGUgYFNlY3JldHNNYW5hZ2VyU2VjcmV0YCB0aGF0IGNvbnRhaW5zIHRoZSBQb3N0Z3JlU1FMIGVuZHBvaW50IGNvbm5lY3Rpb24gZGV0YWlscy5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1wb3N0Z3Jlc3Fsc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LXBvc3RncmVzcWxzZXR0aW5ncy1zZWNyZXRzbWFuYWdlcnNlY3JldGlkXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlclNlY3JldEFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBLTVMga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGUgY3JlZGVudGlhbHMgc2VjcmV0LlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRLTVNBcm4/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBuYW1lIG9mIGEgcHJldmlvdXNseSBjcmVhdGVkIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBmb3IgYSBjaGFuZ2UgZGF0YSBjYXB0dXJlIChDREMpIGxvYWQgb2YgdGhlIFBvc3RncmVTUUwgc291cmNlIGluc3RhbmNlLlxuICAgKiBXaGVuIHVzZWQgd2l0aCB0aGUgYENkY1N0YXJ0UG9zaXRpb25gIHJlcXVlc3QgcGFyYW1ldGVyIGZvciB0aGUgQVdTIERNUyBBUEkgLCB0aGlzIGF0dHJpYnV0ZSBhbHNvIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHVzZSBuYXRpdmUgQ0RDIHN0YXJ0IHBvaW50cy4gRE1TIHZlcmlmaWVzIHRoYXQgdGhlIHNwZWNpZmllZCBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QgZXhpc3RzIGJlZm9yZSBzdGFydGluZyB0aGUgQ0RDIGxvYWQgdGFzay4gSXQgYWxzbyB2ZXJpZmllcyB0aGF0IHRoZSB0YXNrIHdhcyBjcmVhdGVkIHdpdGggYSB2YWxpZCBzZXR0aW5nIG9mIGBDZGNTdGFydFBvc2l0aW9uYCAuIElmIHRoZSBzcGVjaWZpZWQgc2xvdCBkb2Vzbid0IGV4aXN0IG9yIHRoZSB0YXNrIGRvZXNuJ3QgaGF2ZSBhIHZhbGlkIGBDZGNTdGFydFBvc2l0aW9uYCBzZXR0aW5nLCBETVMgcmFpc2VzIGFuIGVycm9yLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBzZXR0aW5nIHRoZSBgQ2RjU3RhcnRQb3NpdGlvbmAgcmVxdWVzdCBwYXJhbWV0ZXIsIHNlZSBbRGV0ZXJtaW5pbmcgYSBDREMgbmF0aXZlIHN0YXJ0IHBvaW50XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9UYXNrLkNEQy5odG1sI0NIQVBfVGFzay5DREMuU3RhcnRQb2ludC5OYXRpdmUpIGluIHRoZSAqQVdTIERhdGFiYXNlIE1pZ3JhdGlvbiBTZXJ2aWNlIFVzZXIgR3VpZGUqIC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdXNpbmcgYENkY1N0YXJ0UG9zaXRpb25gICwgc2VlIFtDcmVhdGVSZXBsaWNhdGlvblRhc2tdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlUmVwbGljYXRpb25UYXNrLmh0bWwpICwgW1N0YXJ0UmVwbGljYXRpb25UYXNrXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1N0YXJ0UmVwbGljYXRpb25UYXNrLmh0bWwpICwgYW5kIFtNb2RpZnlSZXBsaWNhdGlvblRhc2tdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTW9kaWZ5UmVwbGljYXRpb25UYXNrLmh0bWwpIC5cbiAgICogU2VlOiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWRtcy1lbmRwb2ludC1wb3N0Z3Jlc3Fsc2V0dGluZ3MuaHRtbCNjZm4tZG1zLWVuZHBvaW50LXBvc3RncmVzcWxzZXR0aW5ncy1zbG90bmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgc2xvdE5hbWU/OiBzdHJpbmc7XG59XG5leHBvcnQgdHlwZSBNZGFhRW5kcG9pbnRUeXBlID0gJ3NvdXJjZScgfCAndGFyZ2V0JztcbmV4cG9ydCB0eXBlIE1kYWFFbmRwb2ludEVuZ2luZSA9XG4gIHwgYG15c3FsYFxuICB8IGBvcmFjbGVgXG4gIHwgYHBvc3RncmVzYFxuICB8IGBtYXJpYWRiYFxuICB8IGBhdXJvcmFgXG4gIHwgYGF1cm9yYS1wb3N0Z3Jlc3FsYFxuICB8IGBvcGVuc2VhcmNoYFxuICB8IGByZWRzaGlmdGBcbiAgfCBgcmVkc2hpZnQtc2VydmVybGVzc2BcbiAgfCBgczNgXG4gIHwgYGRiMmBcbiAgfCBgYXp1cmVkYmBcbiAgfCBgc3liYXNlYFxuICB8IGBkeW5hbW9kYmBcbiAgfCBgbW9uZ29kYmBcbiAgfCBga2luZXNpc2BcbiAgfCBga2Fma2FgXG4gIHwgYGVsYXN0aWNzZWFyY2hgXG4gIHwgYGRvY2RiYFxuICB8IGBzcWxzZXJ2ZXJgXG4gIHwgYG5lcHR1bmVgO1xuZXhwb3J0IGludGVyZmFjZSBNZGFhRW5kcG9pbnRQcm9wcyBleHRlbmRzIE1kYWFDb25zdHJ1Y3RQcm9wcyB7XG4gIHJlYWRvbmx5IGNlcnRpZmljYXRlQXJuPzogc3RyaW5nO1xuICAvKiogRGF0YWJhc2UgbmFtZSBzcGVjaWZpY2F0aW9uIGZvciBlbmRwb2ludCBjb25uZWN0aXZpdHkgY29udHJvbGxpbmcgdGFyZ2V0IGRhdGFiYXNlIHNlbGVjdGlvbiAqL1xuICByZWFkb25seSBkYXRhYmFzZU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVuZHBvaW50SWRlbnRpZmllcjogc3RyaW5nO1xuICAvKiogRW5kcG9pbnQgdHlwZSBzcGVjaWZpY2F0aW9uIGNvbnRyb2xsaW5nIG1pZ3JhdGlvbiBkaXJlY3Rpb24gYW5kIGRhdGEgZmxvdyBmb3Igc291cmNlIG9yIHRhcmdldCBjb25maWd1cmF0aW9uICovXG4gIHJlYWRvbmx5IGVuZHBvaW50VHlwZTogTWRhYUVuZHBvaW50VHlwZTtcbiAgLyoqIERhdGFiYXNlIGVuZ2luZSBzcGVjaWZpY2F0aW9uIGNvbnRyb2xsaW5nIGRhdGFiYXNlIHR5cGUgYW5kIGNvbm5lY3Rpdml0eSBwcm90b2NvbHMgZm9yIGVuZHBvaW50IGNvbmZpZ3VyYXRpb24gKi9cbiAgcmVhZG9ubHkgZW5naW5lTmFtZTogTWRhYUVuZHBvaW50RW5naW5lO1xuICByZWFkb25seSBleHRyYUNvbm5lY3Rpb25BdHRyaWJ1dGVzPzogc3RyaW5nO1xuICByZWFkb25seSBrbXNLZXk6IElLZXk7XG4gIC8qKiBEYXRhYmFzZSBwb3J0IHNwZWNpZmljYXRpb24gZm9yIGVuZHBvaW50IGNvbm5lY3Rpdml0eSBjb250cm9sbGluZyBuZXR3b3JrIGNvbm5lY3Rpb24gKi9cbiAgcmVhZG9ubHkgcG9ydD86IG51bWJlcjtcbiAgcmVhZG9ubHkgcmVzb3VyY2VJZGVudGlmaWVyPzogc3RyaW5nO1xuICAvKiogU2VydmVyIG5hbWUgc3BlY2lmaWNhdGlvbiBmb3IgZGF0YWJhc2Ugc2VydmVyIGNvbm5lY3Rpdml0eSBlbmFibGluZyBuZXR3b3JrLWJhc2VkIGRhdGFiYXNlICovXG4gIHJlYWRvbmx5IHNlcnZlck5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNzbE1vZGU/OiBzdHJpbmc7XG4gIC8qKiBEb2N1bWVudERCIHNldHRpbmdzIGZvciBEb2N1bWVudERCIGVuZHBvaW50IGNvbmZpZ3VyYXRpb24gZW5hYmxpbmcgTm9TUUwgZG9jdW1lbnQgZGF0YWJhc2UgKi9cbiAgcmVhZG9ubHkgZG9jRGJTZXR0aW5ncz86IERvY0RiU2V0dGluZ3NQcm9wZXJ0eTtcbiAgLyoqIER5bmFtb0RCIHNldHRpbmdzIGZvciBEeW5hbW9EQiBlbmRwb2ludCBjb25maWd1cmF0aW9uIGVuYWJsaW5nIE5vU1FMIGtleS12YWx1ZSBkYXRhYmFzZSAqL1xuICByZWFkb25seSBkeW5hbW9EYlNldHRpbmdzPzogRHluYW1vRGJTZXR0aW5nc1Byb3BlcnR5O1xuICAvKiogRWxhc3RpY3NlYXJjaCBzZXR0aW5ncyBmb3IgT3BlblNlYXJjaCBlbmRwb2ludCBjb25maWd1cmF0aW9uIGVuYWJsaW5nIHNlYXJjaCBlbmdpbmUgKi9cbiAgcmVhZG9ubHkgZWxhc3RpY3NlYXJjaFNldHRpbmdzPzogRWxhc3RpY3NlYXJjaFNldHRpbmdzUHJvcGVydHk7XG4gIC8qKiBJQk0gRGIyIHNldHRpbmdzIGZvciBEYjIgTFVXIGVuZHBvaW50IGNvbmZpZ3VyYXRpb24gZW5hYmxpbmcgbWFpbmZyYW1lIGRhdGFiYXNlIGNvbm5lY3Rpdml0eSBhbmQgb3B0aW1pemF0aW9uICovXG4gIHJlYWRvbmx5IGlibURiMlNldHRpbmdzPzogSWJtRGIyU2V0dGluZ3NQcm9wZXJ0eTtcbiAgLyoqIEtpbmVzaXMgc2V0dGluZ3MgZm9yIEtpbmVzaXMgRGF0YSBTdHJlYW1zIGVuZHBvaW50IGNvbmZpZ3VyYXRpb24gZW5hYmxpbmcgcmVhbC10aW1lICovXG4gIHJlYWRvbmx5IGtpbmVzaXNTZXR0aW5ncz86IEtpbmVzaXNTZXR0aW5nc1Byb3BlcnR5O1xuICAvKiogTWljcm9zb2Z0IFNRTCBTZXJ2ZXIgc2V0dGluZ3MgZm9yIFNRTCBTZXJ2ZXIgZW5kcG9pbnQgY29uZmlndXJhdGlvbiBlbmFibGluZyBlbnRlcnByaXNlICovXG4gIHJlYWRvbmx5IG1pY3Jvc29mdFNxbFNlcnZlclNldHRpbmdzPzogTWljcm9zb2Z0U3FsU2VydmVyU2V0dGluZ3NQcm9wZXJ0eTtcbiAgLyoqIE1vbmdvREIgc2V0dGluZ3MgZm9yIE1vbmdvREIgZW5kcG9pbnQgY29uZmlndXJhdGlvbiBlbmFibGluZyBOb1NRTCBkb2N1bWVudCBkYXRhYmFzZSAqL1xuICByZWFkb25seSBtb25nb0RiU2V0dGluZ3M/OiBNb25nb0RiU2V0dGluZ3NQcm9wZXJ0eTtcbiAgLyoqIE15U1FMIHNldHRpbmdzIGZvciBNeVNRTCBlbmRwb2ludCBjb25maWd1cmF0aW9uIGVuYWJsaW5nIHJlbGF0aW9uYWwgZGF0YWJhc2UgY29ubmVjdGl2aXR5IGFuZCBvcHRpbWl6YXRpb24gKi9cbiAgcmVhZG9ubHkgbXlTcWxTZXR0aW5ncz86IE15U3FsU2V0dGluZ3NQcm9wZXJ0eTtcbiAgLyoqIE5lcHR1bmUgc2V0dGluZ3MgZm9yIE5lcHR1bmUgZW5kcG9pbnQgY29uZmlndXJhdGlvbiBlbmFibGluZyBncmFwaCBkYXRhYmFzZSBjb25uZWN0aXZpdHkgYW5kIG9wdGltaXphdGlvbiAqL1xuICByZWFkb25seSBuZXB0dW5lU2V0dGluZ3M/OiBOZXB0dW5lU2V0dGluZ3NQcm9wZXJ0eTtcbiAgLyoqIE9yYWNsZSBzZXR0aW5ncyBmb3IgT3JhY2xlIGVuZHBvaW50IGNvbmZpZ3VyYXRpb24gZW5hYmxpbmcgZW50ZXJwcmlzZSBkYXRhYmFzZSBjb25uZWN0aXZpdHkgYW5kIG9wdGltaXphdGlvbiAqL1xuICByZWFkb25seSBvcmFjbGVTZXR0aW5ncz86IE9yYWNsZVNldHRpbmdzUHJvcGVydHk7XG4gIC8qKiBQb3N0Z3JlU1FMIHNldHRpbmdzIGZvciBQb3N0Z3JlU1FMIGVuZHBvaW50IGNvbmZpZ3VyYXRpb24gZW5hYmxpbmcgb3Blbi1zb3VyY2UgcmVsYXRpb25hbCAqL1xuICByZWFkb25seSBwb3N0Z3JlU3FsU2V0dGluZ3M/OiBQb3N0Z3JlU3FsU2V0dGluZ3NQcm9wZXJ0eTtcbiAgLyoqIFJlZHNoaWZ0IHNldHRpbmdzIGZvciBSZWRzaGlmdCBlbmRwb2ludCBjb25maWd1cmF0aW9uIGVuYWJsaW5nIGRhdGEgd2FyZWhvdXNlIGNvbm5lY3Rpdml0eSBhbmQgb3B0aW1pemF0aW9uICovXG4gIHJlYWRvbmx5IHJlZHNoaWZ0U2V0dGluZ3M/OiBSZWRzaGlmdFNldHRpbmdzUHJvcGVydHk7XG4gIC8qKiBTMyBzZXR0aW5ncyBmb3IgUzMgZW5kcG9pbnQgY29uZmlndXJhdGlvbiBlbmFibGluZyBvYmplY3Qgc3RvcmFnZSBjb25uZWN0aXZpdHkgYW5kIGZpbGUtYmFzZWQgZGF0YSB0cmFuc2ZlciAqL1xuICByZWFkb25seSBzM1NldHRpbmdzPzogUzNTZXR0aW5nc1Byb3BlcnR5O1xuICAvKiogU3liYXNlIHNldHRpbmdzIGZvciBTQVAgQVNFIGVuZHBvaW50IGNvbmZpZ3VyYXRpb24gZW5hYmxpbmcgZW50ZXJwcmlzZSBkYXRhYmFzZSBjb25uZWN0aXZpdHkgYW5kIG9wdGltaXphdGlvbiAqL1xuICByZWFkb25seSBzeWJhc2VTZXR0aW5ncz86IFN5YmFzZVNldHRpbmdzUHJvcGVydHk7XG59XG5cbi8qKlxuICogUmV1c2FibGUgQ0RLIGNvbnN0cnVjdCBmb3IgYSBjb21wbGlhbnQgRE1TIEVuZHBvaW50LlxuICogU3BlY2lmaWNhbGx5LCBlbmZvcmNlcyBLTVMgRW5jcnlwdGlvbiwgYW5kIHByZXZlbnRzIHVzZSBvZiBwbGFpbnRleHQgY3JlZGVudGlhbHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBNZGFhRW5kcG9pbnQgZXh0ZW5kcyBDZm5FbmRwb2ludCB7XG4gIC8qKiBPdmVycmlkZXMgc3BlY2lmaWMgY29tcGxpYW5jZS1yZWxhdGVkIHByb3BlcnRpZXMuICovXG4gIHByaXZhdGUgc3RhdGljIHNldFByb3BzKHByb3BzOiBNZGFhRW5kcG9pbnRQcm9wcyk6IENmbkVuZHBvaW50UHJvcHMge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGVuZHBvaW50SWRlbnRpZmllcjogcHJvcHMubmFtaW5nLnJlc291cmNlTmFtZShwcm9wcy5lbmRwb2ludElkZW50aWZpZXIpLFxuICAgICAga21zS2V5SWQ6IHByb3BzLmttc0tleS5rZXlJZCxcbiAgICAgIHMzU2V0dGluZ3M6IHByb3BzLmVuZ2luZU5hbWUgPT0gJ3MzJyA/IHRoaXMuc2V0UzNTZXR0aW5ncyhwcm9wcy5zM1NldHRpbmdzKSA6IHVuZGVmaW5lZCxcbiAgICAgIHJlZHNoaWZ0U2V0dGluZ3M6IHByb3BzLmVuZ2luZU5hbWUgPT0gJ3JlZHNoaWZ0JyA/IHRoaXMuc2V0UmVkc2hpZnRTZXR0aW5ncyhwcm9wcy5yZWRzaGlmdFNldHRpbmdzKSA6IHVuZGVmaW5lZCxcbiAgICAgIG5lcHR1bmVTZXR0aW5nczogcHJvcHMuZW5naW5lTmFtZSA9PSAnbmVwdHVuZScgPyB0aGlzLnNldE5lcHR1bmVTZXR0aW5ncyhwcm9wcy5uZXB0dW5lU2V0dGluZ3MpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBzZXROZXB0dW5lU2V0dGluZ3MobmVwdHVuZVNldHRpbmdzPzogTmVwdHVuZVNldHRpbmdzUHJvcGVydHkpOiBDZm5FbmRwb2ludC5OZXB0dW5lU2V0dGluZ3NQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5lcHR1bmVTZXR0aW5ncyxcbiAgICAgIGlhbUF1dGhFbmFibGVkOiB0cnVlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBzZXRTM1NldHRpbmdzKHMzU2V0dGluZ3M/OiBTM1NldHRpbmdzUHJvcGVydHkpOiBDZm5FbmRwb2ludC5TM1NldHRpbmdzUHJvcGVydHkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zM1NldHRpbmdzLFxuICAgICAgZW5jcnlwdGlvbk1vZGU6ICdTU0VfS01TJyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgc2V0UmVkc2hpZnRTZXR0aW5ncyhcbiAgICByZWRzaGlmdFNldHRpbmdzPzogUmVkc2hpZnRTZXR0aW5nc1Byb3BlcnR5LFxuICApOiBDZm5FbmRwb2ludC5SZWRzaGlmdFNldHRpbmdzUHJvcGVydHkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5yZWRzaGlmdFNldHRpbmdzLFxuICAgICAgZW5jcnlwdGlvbk1vZGU6ICdTU0VfS01TJyxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE1kYWFFbmRwb2ludFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBNZGFhRW5kcG9pbnQuc2V0UHJvcHMocHJvcHMpKTtcblxuICAgIG5ldyBNZGFhUGFyYW1BbmRPdXRwdXQodGhpcywge1xuICAgICAgLi4ue1xuICAgICAgICByZXNvdXJjZVR5cGU6ICdlbmRwb2ludCcsXG4gICAgICAgIHJlc291cmNlSWQ6IHByb3BzLmVuZHBvaW50SWRlbnRpZmllcixcbiAgICAgICAgbmFtZTogJ2FybicsXG4gICAgICAgIHZhbHVlOiB0aGlzLnJlZixcbiAgICAgIH0sXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -49,5 +49,5 @@ class MdaaReplicationInstance extends aws_dms_1.CfnReplicationInstance {
49
49
  }
50
50
  exports.MdaaReplicationInstance = MdaaReplicationInstance;
51
51
  _a = JSII_RTTI_SYMBOL_1;
52
- MdaaReplicationInstance[_a] = { fqn: "@aws-mdaa/dms-constructs.MdaaReplicationInstance", version: "1.5.0" };
52
+ MdaaReplicationInstance[_a] = { fqn: "@aws-mdaa/dms-constructs.MdaaReplicationInstance", version: "1.6.0" };
53
53
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGljYXRpb25faW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXBsaWNhdGlvbl9pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7R0FHRztBQUVILG1EQUE2RSxDQUFDLFNBQVM7QUFFdkYsaURBQTBGO0FBRzFGLG1DQUFnRTtBQXNCaEU7OztHQUdHO0FBQ0gsTUFBYSx1QkFBd0IsU0FBUSxnQ0FBc0I7SUFDakUsd0RBQXdEO0lBQ2hELE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBbUM7UUFDekQsTUFBTSw2QkFBNkIsR0FBRyxJQUFBLDZDQUFxQyxFQUN6RSxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEVBQUUsRUFBRSxDQUFDLENBQ25FLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRztZQUNwQiw2QkFBNkI7WUFDN0Isa0JBQWtCLEVBQUUsS0FBSztZQUN6QixRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1NBQzdCLENBQUM7UUFDRixPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFtQztRQUMzRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUUxRCxJQUFJLDhCQUFrQixDQUFDLElBQUksRUFBRTtZQUMzQixHQUFHO2dCQUNELFlBQVksRUFBRSxxQkFBcUI7Z0JBQ25DLFVBQVUsRUFBRSxLQUFLLENBQUMsNkJBQTZCO2dCQUMvQyxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHO2FBQ2hCO1lBQ0QsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO1FBRUgsSUFBSSw4QkFBa0IsQ0FBQyxJQUFJLEVBQUU7WUFDM0IsR0FBRztnQkFDRCxZQUFZLEVBQUUscUJBQXFCO2dCQUNuQyxVQUFVLEVBQUUsS0FBSyxDQUFDLDZCQUE2QjtnQkFDL0MsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsS0FBSyxFQUFFLElBQUksQ0FBQyx5Q0FBeUM7YUFDdEQ7WUFDRCxHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXBDSCwwREFxQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQgeyBNZGFhQ29uc3RydWN0UHJvcHMsIE1kYWFQYXJhbUFuZE91dHB1dCB9IGZyb20gJ0Bhd3MtbWRhYS9jb25zdHJ1Y3QnOyAvL05PU09OQVJcbmltcG9ydCB7IENmblRhZywgSVJlc29sdmFibGUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDZm5SZXBsaWNhdGlvbkluc3RhbmNlLCBDZm5SZXBsaWNhdGlvbkluc3RhbmNlUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZG1zJztcbmltcG9ydCB7IElLZXkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgc2FuaXRpemVSZXBsaWNhdGlvbkluc3RhbmNlSWRlbnRpZmllciB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1kYWFSZXBsaWNhdGlvbkluc3RhbmNlUHJvcHMgZXh0ZW5kcyBNZGFhQ29uc3RydWN0UHJvcHMge1xuICByZWFkb25seSBhbGxvY2F0ZWRTdG9yYWdlPzogbnVtYmVyO1xuICByZWFkb25seSBhbGxvd01ham9yVmVyc2lvblVwZ3JhZGU/OiBib29sZWFuIHwgSVJlc29sdmFibGU7XG4gIHJlYWRvbmx5IGF1dG9NaW5vclZlcnNpb25VcGdyYWRlPzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKiogQXZhaWxhYmlsaXR5IHpvbmUgc3BlY2lmaWNhdGlvbiBmb3IgcmVwbGljYXRpb24gaW5zdGFuY2UgcGxhY2VtZW50IGNvbnRyb2xsaW5nIGdlb2dyYXBoaWMgKi9cbiAgcmVhZG9ubHkgYXZhaWxhYmlsaXR5Wm9uZT86IHN0cmluZztcbiAgLyoqIERNUyBlbmdpbmUgdmVyc2lvbiBzcGVjaWZpY2F0aW9uIGZvciBmZWF0dXJlIGFjY2VzcyBhbmQgY29tcGF0aWJpbGl0eSBjb250cm9sIGVuYWJsaW5nICovXG4gIHJlYWRvbmx5IGVuZ2luZVZlcnNpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGttc0tleTogSUtleTtcbiAgcmVhZG9ubHkgbXVsdGlBej86IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcbiAgLyoqIE1haW50ZW5hbmNlIHdpbmRvdyBzcGVjaWZpY2F0aW9uIGZvciBzeXN0ZW0gdXBkYXRlcyBhbmQgbWFpbnRlbmFuY2Ugb3BlcmF0aW9ucyBjb250cm9sbGluZyAqL1xuICByZWFkb25seSBwcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdz86IHN0cmluZztcbiAgcmVhZG9ubHkgcmVwbGljYXRpb25JbnN0YW5jZUNsYXNzOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlcGxpY2F0aW9uSW5zdGFuY2VJZGVudGlmaWVyPzogc3RyaW5nO1xuICByZWFkb25seSByZXBsaWNhdGlvblN1Ym5ldEdyb3VwSWRlbnRpZmllcjogc3RyaW5nO1xuICByZWFkb25seSByZXNvdXJjZUlkZW50aWZpZXI/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhZ3M/OiBBcnJheTxDZm5UYWc+O1xuICByZWFkb25seSB2cGNTZWN1cml0eUdyb3VwSWRzPzogQXJyYXk8c3RyaW5nPjtcbn1cblxuLyoqXG4gKiBSZXVzYWJsZSBDREsgY29uc3RydWN0IGZvciBhIGNvbXBsaWFudCBETVMgUmVwbGljYXRpb24gSW5zdGFuY2UuXG4gKiBTcGVjaWZpY2FsbHksIGVuZm9yY2VzIEtNUyBFbmNyeXB0aW9uLCBhbmQgcHJldmVudHMgcHVibGljIGFjY2Vzc2liaWxpdHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBNZGFhUmVwbGljYXRpb25JbnN0YW5jZSBleHRlbmRzIENmblJlcGxpY2F0aW9uSW5zdGFuY2Uge1xuICAvKiogT3ZlcnJpZGVzIHNwZWNpZmljIGNvbXBsaWFuY2UtcmVsYXRlZCBwcm9wZXJ0aWVzLiAqL1xuICBwcml2YXRlIHN0YXRpYyBzZXRQcm9wcyhwcm9wczogTWRhYVJlcGxpY2F0aW9uSW5zdGFuY2VQcm9wcyk6IENmblJlcGxpY2F0aW9uSW5zdGFuY2VQcm9wcyB7XG4gICAgY29uc3QgcmVwbGljYXRpb25JbnN0YW5jZUlkZW50aWZpZXIgPSBzYW5pdGl6ZVJlcGxpY2F0aW9uSW5zdGFuY2VJZGVudGlmaWVyKFxuICAgICAgcHJvcHMubmFtaW5nLnJlc291cmNlTmFtZShwcm9wcy5yZXBsaWNhdGlvbkluc3RhbmNlSWRlbnRpZmllciwgNjMpLFxuICAgICk7XG4gICAgY29uc3Qgb3ZlcnJpZGVQcm9wcyA9IHtcbiAgICAgIHJlcGxpY2F0aW9uSW5zdGFuY2VJZGVudGlmaWVyLFxuICAgICAgcHVibGljbHlBY2Nlc3NpYmxlOiBmYWxzZSxcbiAgICAgIGttc0tleUlkOiBwcm9wcy5rbXNLZXkua2V5SWQsXG4gICAgfTtcbiAgICByZXR1cm4geyAuLi5wcm9wcywgLi4ub3ZlcnJpZGVQcm9wcyB9O1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE1kYWFSZXBsaWNhdGlvbkluc3RhbmNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIE1kYWFSZXBsaWNhdGlvbkluc3RhbmNlLnNldFByb3BzKHByb3BzKSk7XG5cbiAgICBuZXcgTWRhYVBhcmFtQW5kT3V0cHV0KHRoaXMsIHtcbiAgICAgIC4uLntcbiAgICAgICAgcmVzb3VyY2VUeXBlOiAncmVwbGljYXRpb25JbnN0YW5jZScsXG4gICAgICAgIHJlc291cmNlSWQ6IHByb3BzLnJlcGxpY2F0aW9uSW5zdGFuY2VJZGVudGlmaWVyLFxuICAgICAgICBuYW1lOiAnaWRlbnRpZmllcicsXG4gICAgICAgIHZhbHVlOiB0aGlzLnJlZixcbiAgICAgIH0sXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcblxuICAgIG5ldyBNZGFhUGFyYW1BbmRPdXRwdXQodGhpcywge1xuICAgICAgLi4ue1xuICAgICAgICByZXNvdXJjZVR5cGU6ICdyZXBsaWNhdGlvbkluc3RhbmNlJyxcbiAgICAgICAgcmVzb3VyY2VJZDogcHJvcHMucmVwbGljYXRpb25JbnN0YW5jZUlkZW50aWZpZXIsXG4gICAgICAgIG5hbWU6ICdpcCcsXG4gICAgICAgIHZhbHVlOiB0aGlzLmF0dHJSZXBsaWNhdGlvbkluc3RhbmNlUHJpdmF0ZUlwQWRkcmVzc2VzLFxuICAgICAgfSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-mdaa/dms-constructs",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "MDAA DMS Constructs",
5
5
  "license": "Apache-2.0",
6
6
  "author": {
@@ -17,16 +17,13 @@
17
17
  "build": "export JSII_SILENCE_WARNING_UNTESTED_NODE_VERSION=1 && jsii --project-references",
18
18
  "watch": "jsii -w --project-references",
19
19
  "package": "jsii-pacmak --npmignore=false",
20
- "test": "jest --passWithNoTests --testPathIgnorePatterns='.*\\.snapshot\\.test\\.ts'",
20
+ "test": "jest --passWithNoTests --coverage",
21
21
  "lint": "eslint --max-warnings 0 -c ../../../../eslint.config.mjs",
22
- "test:coverage": "jest --passWithNoTests --coverage --testPathIgnorePatterns='.*\\.snapshot\\.test\\.ts'",
23
- "test:snapshots": "jest --passWithNoTests --testPathPattern='.*\\.snapshot\\.test\\.ts'",
24
- "test:snapshots:update": "jest --passWithNoTests --testPathPattern='.*\\.snapshot\\.test\\.ts' --updateSnapshot"
22
+ "test:package-docs": "../../../../scripts/generate_docs/test_package_docs.sh"
25
23
  },
26
24
  "devDependencies": {
27
- "@aws-mdaa/construct": "1.5.0",
28
- "@aws-mdaa/naming": "1.5.0",
29
- "@aws-mdaa/testing": "1.5.0",
25
+ "@aws-mdaa/construct": "1.6.0",
26
+ "@aws-mdaa/testing": "1.6.0",
30
27
  "@types/jest": "29.5.14",
31
28
  "@types/node": "22.9.0",
32
29
  "@types/prettier": "2.6.0",
@@ -34,21 +31,19 @@
34
31
  "cdk-nag": "2.37.55",
35
32
  "constructs": "10.0.96",
36
33
  "jest": "29.7.0",
37
- "ts-jest": "29.4.6",
34
+ "ts-jest": "29.4.9",
38
35
  "ts-node": "10.9.2",
39
36
  "typescript": "5.9.3",
40
- "typescript-json-schema": "0.67.1"
37
+ "typescript-json-schema": "0.67.4"
41
38
  },
42
39
  "dependencies": {
43
- "@aws-mdaa/construct": "1.5.0",
44
- "@aws-mdaa/naming": "1.5.0",
40
+ "@aws-mdaa/construct": "1.6.0",
45
41
  "aws-cdk-lib": "2.220.0",
46
42
  "cdk-nag": "2.37.55",
47
43
  "constructs": "10.0.96"
48
44
  },
49
45
  "peerDependencies": {
50
- "@aws-mdaa/construct": "1.5.0",
51
- "@aws-mdaa/naming": "1.5.0",
46
+ "@aws-mdaa/construct": "1.6.0",
52
47
  "aws-cdk-lib": "2.220.0",
53
48
  "cdk-nag": "2.37.55",
54
49
  "constructs": "10.0.96"