@cubist-labs/cubesigner-sdk 0.4.280 → 0.4.281

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.
@@ -3,4 +3,4 @@
3
3
  * Do not make direct changes to the file.
4
4
  */
5
5
  export {};
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgZmlsZSB3YXMgYXV0by1nZW5lcmF0ZWQgYnkgb3BlbmFwaS10eXBlc2NyaXB0LlxuICogRG8gbm90IG1ha2UgZGlyZWN0IGNoYW5nZXMgdG8gdGhlIGZpbGUuXG4gKi9cblxuLyoqIE9uZU9mIHR5cGUgaGVscGVycyAqL1xudHlwZSBXaXRob3V0PFQsIFU+ID0geyBbUCBpbiBFeGNsdWRlPGtleW9mIFQsIGtleW9mIFU+XT86IG5ldmVyIH07XG50eXBlIFhPUjxULCBVPiA9IFQgfCBVIGV4dGVuZHMgb2JqZWN0ID8gKFdpdGhvdXQ8VCwgVT4gJiBVKSB8IChXaXRob3V0PFUsIFQ+ICYgVCkgOiBUIHwgVTtcbnR5cGUgT25lT2Y8VCBleHRlbmRzIGFueVtdPiA9IFQgZXh0ZW5kcyBbaW5mZXIgT25seV1cbiAgPyBPbmx5XG4gIDogVCBleHRlbmRzIFtpbmZlciBBLCBpbmZlciBCLCAuLi5pbmZlciBSZXN0XVxuICAgID8gT25lT2Y8W1hPUjxBLCBCPiwgLi4uUmVzdF0+XG4gICAgOiBuZXZlcjtcblxuZXhwb3J0IGludGVyZmFjZSBwYXRocyB7XG4gIFwiL3YwL2Fib3V0X21lXCI6IHtcbiAgICAvKipcbiAgICAgKiBVc2VyIEluZm9cbiAgICAgKiBAZGVzY3JpcHRpb24gVXNlciBJbmZvXG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgdXNlci5cbiAgICAgKlxuICAgICAqIFBSRUZFUiBgR0VUIC92MC9vcmdzL3tvcmdfaWR9L3VzZXIvbWVgXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiYWJvdXRNZUxlZ2FjeVwiXTtcbiAgfTtcbiAgXCIvdjAvYXR0ZXN0YXRpb24vLndlbGwta25vd24vandrcy5qc29uXCI6IHtcbiAgICAvKipcbiAgICAgKiBKV0tTIGVuZHBvaW50IGZvciB0aGUgYXR0ZXN0YXRpb24ga2V5XG4gICAgICogQGRlc2NyaXB0aW9uIEpXS1MgZW5kcG9pbnQgZm9yIHRoZSBhdHRlc3RhdGlvbiBrZXlcbiAgICAgKlxuICAgICAqIFJldHVybnMgdGhlIHB1YmxpYyBrZXkgdXNlZCB0byBzaWduIEtleSBpbmZvIGF0dGVzdGF0aW9ucy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJhdHRlc3RhdGlvbkp3a1NldFwiXTtcbiAgfTtcbiAgXCIvdjAvZW1haWwvb3Jnc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBhY2Nlc3NpYmxlIG9yZ2FuaXphdGlvbnMuXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgYWNjZXNzaWJsZSBvcmdhbml6YXRpb25zLlxuICAgICAqXG4gICAgICogVW5hdXRoZW50aWNhdGVkIGVuZHBvaW50IGZvciByZXRyaWV2aW5nIGFsbCBvcmdhbml6YXRpb25zIGFjY2Vzc2libGUgdG8gYSB1c2VyLlxuICAgICAqIFRoaXMgaW5mb3JtYXRpb24gaXMgZW1haWxlZCB0byB0aGUgcHJvdmlkZWQgZW1haWwgYWRkcmVzcy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJlbWFpbF9teV9vcmdzXCJdO1xuICB9O1xuICBcIi92MC9pbnRlcm5hbC9zZW50cnlcIjoge1xuICAgIC8qKlxuICAgICAqIChJTlRFUk5BTCkgU2VudHJ5IEFQSSBQcm94eVxuICAgICAqIEBkZXNjcmlwdGlvbiAoSU5URVJOQUwpIFNlbnRyeSBBUEkgUHJveHlcbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wic2VudHJ5QXBpQ2FsbFB1YmxpY1wiXTtcbiAgfTtcbiAgXCIvdjAvbW1pL3YzLy53ZWxsLWtub3duL2p3a3MuanNvblwiOiB7XG4gICAgLyoqXG4gICAgICogSldLUyBlbmRwb2ludCBmb3IgTU1JXG4gICAgICogQGRlc2NyaXB0aW9uIEpXS1MgZW5kcG9pbnQgZm9yIE1NSVxuICAgICAqXG4gICAgICogUmV0dXJucyB0aGUgcHVibGljIGtleSB1c2VkIHRvIHNpZ24gSlNPTiBXZWIgVG9rZW5zIGZvciBNTUkuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibW1pSndrU2V0XCJdO1xuICB9O1xuICBcIi92MC9tbWkvdjMvanNvbi1ycGNcIjoge1xuICAgIC8qKlxuICAgICAqIE1NSSBKU09OLVJQQyBlbmRwb2ludFxuICAgICAqIEBkZXNjcmlwdGlvbiBNTUkgSlNPTi1SUEMgZW5kcG9pbnRcbiAgICAgKlxuICAgICAqIEhhbmRsZXIgZm9yIGFsbCBbTU1JIEpTT04tUlBDXShodHRwczovL2RvY3MubWV0YW1hc2staW5zdGl0dXRpb25hbC5pby9jdXN0b2RpYW4taW50ZWdyYXRpb24vaW50ZWdyYXRpb24tZG9jcy9hcGkvbWV0aG9kcylcbiAgICAgKiByZXF1ZXN0cy5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wibW1pXCJdO1xuICB9O1xuICBcIi92MC9vYXV0aC90b2tlblwiOiB7XG4gICAgLyoqXG4gICAgICogVG9rZW4gcmVmcmVzaCBlbmRwb2ludCwgY29tcGxpYW50IHdpdGggT0F1dGguXG4gICAgICogQGRlc2NyaXB0aW9uIFRva2VuIHJlZnJlc2ggZW5kcG9pbnQsIGNvbXBsaWFudCB3aXRoIE9BdXRoLlxuICAgICAqXG4gICAgICogVGhlIGJvZHkgY29udGVudCB0eXBlIGNhbiBiZSBlaXRoZXIgJ2FwcGxpY2F0aW9uL2pzb24nIG9yICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJvYXV0aDJUb2tlblJlZnJlc2hcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IE9yZ1xuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgT3JnXG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgYW4gb3JnYW5pemF0aW9uLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImdldE9yZ1wiXTtcbiAgICAvKipcbiAgICAgKiBVcGRhdGUgT3JnXG4gICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBPcmdcbiAgICAgKlxuICAgICAqIFVwZGF0ZSBvcmdhbml6YXRpb24gYXR0cmlidXRlcyAoZW5hYmxlZCBmbGFnLCBuYW1lLCBhbmQgcG9saWNpZXMpLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXBkYXRlT3JnXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYXVkaXRcIjoge1xuICAgIC8qKlxuICAgICAqIFF1ZXJ5IHRoZSBhdWRpdCBsb2cuXG4gICAgICogQGRlc2NyaXB0aW9uIFF1ZXJ5IHRoZSBhdWRpdCBsb2cuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInF1ZXJ5QXVkaXRMb2dcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9hdXRoX21pZ3JhdGlvbi9hZGRfaWRlbnRpdHlcIjoge1xuICAgIC8qKlxuICAgICAqIEFzc29jaWF0ZSBhbiBPSURDIGlkZW50aXR5IHdpdGggYW4gYXJiaXRyYXJ5IHVzZXIgaW4gb3JnIDxzZXNzaW9uLm9yZz4uXG4gICAgICogQGRlc2NyaXB0aW9uIEFzc29jaWF0ZSBhbiBPSURDIGlkZW50aXR5IHdpdGggYW4gYXJiaXRyYXJ5IHVzZXIgaW4gb3JnIDxzZXNzaW9uLm9yZz4uXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImF1dGhNaWdyYXRpb25JZGVudGl0eUFkZFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2F1dGhfbWlncmF0aW9uL3JlbW92ZV9pZGVudGl0eVwiOiB7XG4gICAgLyoqXG4gICAgICogRGlzc29jaWF0ZSBhbiBPSURDIGlkZW50aXR5IGZyb20gYW4gYXJiaXRyYXJ5IHVzZXIgaW4gb3JnIDxzZXNzaW9uLm9yZz4uXG4gICAgICogQGRlc2NyaXB0aW9uIERpc3NvY2lhdGUgYW4gT0lEQyBpZGVudGl0eSBmcm9tIGFuIGFyYml0cmFyeSB1c2VyIGluIG9yZyA8c2Vzc2lvbi5vcmc+LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJhdXRoTWlncmF0aW9uSWRlbnRpdHlSZW1vdmVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9hdXRoX21pZ3JhdGlvbi91cGRhdGVfdXNlcnNcIjoge1xuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBleGlzdGluZyB1c2VycycgcHJvZmlsZXMuIEN1cnJlbnRseSBzdXBwb3J0cyBvbmx5IChyZSlzZXR0aW5nIGVtYWlscy5cbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIGV4aXN0aW5nIHVzZXJzJyBwcm9maWxlcy4gQ3VycmVudGx5IHN1cHBvcnRzIG9ubHkgKHJlKXNldHRpbmcgZW1haWxzLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJhdXRoTWlncmF0aW9uVXNlclVwZGF0ZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2F2YS9zaWduL3thdmFfY2hhaW59L3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIGEgc2VyaWFsaXplZCBBdmFsYW5jaGUgQy9YL1AtQ2hhaW4gTWVzc2FnZVxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIGEgc2VyaWFsaXplZCBBdmFsYW5jaGUgQy9YL1AtQ2hhaW4gTWVzc2FnZVxuICAgICAqXG4gICAgICogU2lnbnMgYW4gQXZhbGFuY2hlIG1lc3NhZ2Ugd2l0aCBhIGdpdmVuIFNlY3BFdGggKEMtQ2hhaW4gbWVzc2FnZXMpIG9yXG4gICAgICogU2VjcEF2YSAoWC0gYW5kIFAtQ2hhaW4gbWVzc2FnZXMpIGtleS4gQ3VycmVudGx5IHNpZ25pbmcgQy1DaGFpbiBtZXNzYWdlc1xuICAgICAqIHdpdGggU2VjcEV0aCBrZXkgbXVzdCBhbHNvIGJlIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgYEFsbG93UmF3QmxvYlNpZ25pbmdgXG4gICAgICogcG9saWN5LlxuICAgICAqXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImF2YVNlcmlhbGl6ZWRUeFNpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9hdmEvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBKU09OLWVuY29kZWQgQXZhbGFuY2hlIFgtIG9yIFAtQ2hhaW4gTWVzc2FnZVxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIEpTT04tZW5jb2RlZCBBdmFsYW5jaGUgWC0gb3IgUC1DaGFpbiBNZXNzYWdlXG4gICAgICpcbiAgICAgKiBTaWducyBhbiBBdmFsYW5jaGUgbWVzc2FnZSB3aXRoIGEgZ2l2ZW4gU2VjcEF2YSBrZXkuXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImF2YVNpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9iYWJ5bG9uL2Nvdi9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIEJhYnlsb24gQ292ZW5hbnQgQ29tbWl0dGVlIFJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBCYWJ5bG9uIENvdmVuYW50IENvbW1pdHRlZSBSZXF1ZXN0XG4gICAgICpcbiAgICAgKiBTaWducyB0cmFuc2FjdGlvbnMgcmVsZXZhbnQgdG8gYSBCYWJ5bG9uIGNvdmVuYW50IGNvbW1pdHRlZSBzaWduZXIsXG4gICAgICogaS5lLiwgU2Nobm9yciBhbmQgYWRhcHRvciBzaWduYXR1cmVzIGZvciB0aGUgdW5ib25kaW5nLCBzbGFzaGluZywgYW5kXG4gICAgICogc2xhc2gtdW5ib25kaW5nIG91dHB1dHMgb2YgYSBCYWJ5bG9uIHN0YWtpbmcgdHJhbnNhY3Rpb24uXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImJhYnlsb25Db3ZTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYmFieWxvbi9lb3RzL25vbmNlcy97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIEVPVFMgbm9uY2VzXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBFT1RTIG5vbmNlc1xuICAgICAqXG4gICAgICogR2VuZXJhdGVzIGEgc2V0IG9mIEJhYnlsb24gRU9UUyBub25jZXMgZm9yIGEgc3BlY2lmaWVkIGNoYWluLWlkLCBzdGFydGluZyBhdCBhXG4gICAgICogc3BlY2lmaWVkIGJsb2NrIGhlaWdodC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiY3JlYXRlRW90c05vbmNlc1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2JhYnlsb24vZW90cy9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYW4gRU9UUyBzaWduYXR1cmVcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIGFuIEVPVFMgc2lnbmF0dXJlXG4gICAgICpcbiAgICAgKiBHZW5lcmF0ZXMgYW4gRU9UUyBzaWduYXR1cmUgZm9yIHRoZSBzcGVjaWZpZWQgY2hhaW4taWQsIGJsb2NrIGhlaWdodCwgYW5kIG1lc3NhZ2UuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImVvdHNTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYmFieWxvbi9yZWdpc3RyYXRpb24ve3B1YmtleX1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gQmFieWxvbiBTdGFraW5nIFJlZ2lzdHJhdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIEJhYnlsb24gU3Rha2luZyBSZWdpc3RyYXRpb25cbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYW5kIHNpZ25zIHRoZSBkYXRhIG5lZWRlZCB0byByZWdpc3RlciBhIFBoYXNlLTIgb3IgUGhhc2UtM1xuICAgICAqIEJhYnlsb24gc3Rha2UuIFRoaXMgaW5jbHVkZXMgdGhlIGRlcG9zaXQgYW5kIHVuYm9uZGluZyB0cmFuc2FjdGlvbnMsXG4gICAgICogdHdvIHNsYXNoaW5nIHRyYW5zYWN0aW9ucywgdGhlIHNsYXNoaW5nIHNpZ25hdHVyZXMsIGFuZCB0aGUgcHJvb2Ygb2ZcbiAgICAgKiBwb3NzZXNzaW9uLlxuICAgICAqXG4gICAgICogTm90ZSB0aGF0IGl0IGlzIGFsc28gcG9zc2libGUgdG8gZ2VuZXJhdGUgdGhpcyByZWdpc3RyYXRpb24gZGF0YSBieVxuICAgICAqIG1ha2luZyBmb3VyIGNhbGxzIHRvIHRoZSBCYWJ5bG9uIHN0YWtpbmcgQVBJLCBwbHVzIG9uZSBjYWxsIHRvIHRoZVxuICAgICAqIFBTQlQgc2lnbmluZyBBUEkgdG8gZ2VuZXJhdGUgdGhlIEJJUC0zMjIgcHJvb2Ygb2YgcG9zc2Vzc2lvbi4gVGhlXG4gICAgICogcmVnaXN0cmF0aW9uIEFQSSBnZW5lcmF0ZXMgdGhlIHNhbWUgZGF0YSBidXQgaXMgZWFzaWVyIHRvIHVzZS5cbiAgICAgKlxuICAgICAqIE5vdGUgdGhhdCB0aGlzIGFjdGlvbiBjYW4gb25seSBiZSBjYWxsZWQgd2l0aCBhIFRhcHJvb3Qga2V5LiBJZiB5b3VyXG4gICAgICogZGVwb3NpdCB0cmFuc2FjdGlvbiBzcGVuZHMgVVRYT3MgdGhhdCBhcmUgY29udHJvbGxlZCBieSBvdGhlciBrZXlzLFxuICAgICAqIHlvdSBjYW4gc3VibWl0IHRoZSAnZGVwb3NpdCcgUFNCVCB0byB0aGUgUFNCVCBzaWduaW5nIEFQSSBvbmUgb3IgbW9yZVxuICAgICAqIHRpbWVzIHRvIGdlbmVyYXRlIHRoZSByZXF1aXJlZCBzaWduYXR1cmVzLlxuICAgICAqXG4gICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIGNvbnN1bHQgdGhlXG4gICAgICogW0JhYnlsb24gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2JhYnlsb24vYmxvYi9yZWxlYXNlL3YxLngvZG9jcy9yZWdpc3Rlci1iaXRjb2luLXN0YWtlLm1kKS5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJiYWJ5bG9uUmVnaXN0cmF0aW9uXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYmFieWxvbi9zdGFraW5nL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIEJhYnlsb24gU3Rha2luZyBUcmFuc2FjdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIEJhYnlsb24gU3Rha2luZyBUcmFuc2FjdGlvblxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhbmQgc2lnbnMgdHJhbnNhY3Rpb25zIHJlbGF0ZWQgdG8gQmFieWxvbiBzdGFraW5nIChpLmUuLFxuICAgICAqIGRlcG9zaXQsIGVhcmx5IHVuYm9uZCwgd2l0aGRyYXdhbCkuIFRoZSByZXR1cm4gdmFsdWUgaXMgYSBQcmUtU2lnbmVkXG4gICAgICogQml0Y29pbiBUcmFuc2FjdGlvbiAoUFNCVCksIGFzIGRlZmluZWQgaW4gQklQLTE3NCwgd2hpY2ggbWF0Y2hlcyB0aGVcbiAgICAgKiBmb3JtYXQgdXNlZCBpbiBtb3N0IEJhYnlsb24gdG9vbGluZy5cbiAgICAgKlxuICAgICAqIFRoZSAnZGVwb3NpdCcgYWN0aW9uIGNhbiBiZSB1c2VkIHdpdGggZWl0aGVyIFNlZ3dpdCAoaS5lLiwgU2VjcEJ0Yy9TZWNwQnRjVGVzdClcbiAgICAgKiBvciBUYXByb290IChpLmUuLCBUYXByb290QnRjL1RhcHJvb3RCdGNUZXN0KSBrZXlzLiBUaGUgcmVtYWluaW5nIGFjdGlvbnMgY2FuIGJlXG4gICAgICogdXNlZCBvbmx5IHdpdGggVGFwcm9vdCBrZXlzLlxuICAgICAqXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImJhYnlsb25TdGFraW5nXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYnRjL21lc3NhZ2Uvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBhIEJpdGNvaW4gbWVzc2FnZS5cbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBhIEJpdGNvaW4gbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIFNpZ25zIGEgbWVzc2FnZSB1c2luZyBCSVAxMzcgbWVzc2FnZSBzaWduaW5nIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJidGNNZXNzYWdlU2lnblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2J0Yy9wc2J0L3NpZ24ve3B1YmtleX1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gYSBQYXJ0aWFsbHkgU2lnbmVkIEJpdGNvaW4gVHJhbnNhY3Rpb24gKFBTQlQpXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gYSBQYXJ0aWFsbHkgU2lnbmVkIEJpdGNvaW4gVHJhbnNhY3Rpb24gKFBTQlQpXG4gICAgICpcbiAgICAgKiBTaWducyBhbGwgaW5wdXRzIG9mIHRoZSBzdXBwbGllZCBQU0JUIHYwIChCSVAtMTc0KSB0aGF0IHBlcnRhaW4gdG8gdGhlXG4gICAgICogJ3B1YmtleScgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0LCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgVGFwcm9vdCBvciBhXG4gICAgICogU2Vnd2l0IGtleS4gRm9yIFNlZ3dpdCBrZXlzLCBDdWJlU2lnbmVyLXNwZWNpZmljIGRldGVybWluaXN0aWMgdHdlYWtpbmdcbiAgICAgKiBjYW4gYmUgYXBwbGllZCB0byAncHVia2V5JyBiZWZvcmUgc2lnbmluZywgb24gYSBwZXItaW5wdXQgYmFzaXMuIChTZWUgdGhlXG4gICAgICogQ3ViZVNpZ25lciBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIFNlZ3dpdCB0d2Vha2luZy4pXG4gICAgICpcbiAgICAgKiBXaGVuIGNhbGxpbmcgd2l0aCBhIHNlZ3dpdCBrZXkgdGhlIHJlcXVpcmVkIHNjb3BlIGlzICdzaWduOmJ0Yzpwc2J0OnNlZ3dpdCcuXG4gICAgICogRm9yIGEgdGFwcm9vdCBrZXksIHRoZSBzY29wZSBpcyAnc2lnbjpidGM6cHNidDp0YXByb290Jy4gRWl0aGVyIHR5cGUgb2Yga2V5XG4gICAgICogY2FuIGJlIHVzZWQgd2l0aCB0aGUgJ3NpZ246YnRjOnBzYnQnIHNjb3BlLlxuICAgICAqXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInBzYnRTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYnRjL3NpZ24ve3B1YmtleX1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gQml0Y29pbiBTZWd3aXQgVHJhbnNhY3Rpb25cbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBCaXRjb2luIFNlZ3dpdCBUcmFuc2FjdGlvblxuICAgICAqXG4gICAgICogU2lnbnMgYSBCaXRjb2luIFNlZ3dpdCB0cmFuc2FjdGlvbiB3aXRoIGEgZ2l2ZW4ga2V5LlxuICAgICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJidGNTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYnRjL3RhcHJvb3Qvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBCaXRjb2luIFRhcHJvb3QgVHJhbnNhY3Rpb25cbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBCaXRjb2luIFRhcHJvb3QgVHJhbnNhY3Rpb25cbiAgICAgKlxuICAgICAqIFNpZ25zIGEgQml0Y29pbiBUYXByb290IHRyYW5zYWN0aW9uIHdpdGggYSBnaXZlbiBrZXkuXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImJ0Y1RhcHJvb3RTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vY29udGFjdHNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgQ29udGFjdHNcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBDb250YWN0c1xuICAgICAqXG4gICAgICogTGlzdCBhbGwgY29udGFjdHMgaW4gdGhlIG9yZy5cbiAgICAgKiBBbnkgb3JnIG1lbWJlciBpcyBhbGxvd2VkIHRvIGxpc3QgYWxsIGNvbnRhY3RzIGluIHRoZSBvcmcuXG4gICAgICpcbiAgICAgKiAjIyBTZWFyY2ggQ29uZGl0aW9uXG4gICAgICogVGhlIHNlYXJjaCBjb25kaXRpb24gaXMgb3B0aW9uYWwuXG4gICAgICpcbiAgICAgKiAtIElmIHRoZSBzZWFyY2ggY29uZGl0aW9uIHN0YXJ0cyB3aXRoIFwibGFiZWw6Li4uXCIsIHRoaXMgbGlzdCB3aWxsIG9ubHkgaG9sZCBjb250YWN0cyB3aXRoXG4gICAgICogdGhlIGxhYmVsIHByb3ZpZGVkIGFmdGVyIHRoZSBcIjpcIi4gRm9yIGV4YW1wbGUsIFwibGFiZWw6Y3ViaXN0OmVyYzIwX3Rva2VuXCIgd291bGQgcmV0dXJuIGNvbnRhY3RzIHRoYXRcbiAgICAgKiBob2xkIHRoZSBsYWJlbCBcImN1YmlzdDplcmMyMF90b2tlblwiLlxuICAgICAqXG4gICAgICogLSBPdGhlcndpc2UsIHRoZSByZXN1bHQgd2lsbCBjb250YWluIG9ubHkgdGhlIGNvbnRhY3RzIHdobyBoYXZlIGFuIGFkZHJlc3Mgc3RhcnRpbmcgd2l0aCwgb3JcbiAgICAgKiBlcXVhbGluZywgdGhlIGdpdmVuIHNlYXJjaCBzdHJpbmcuIEZvciBleGFtcGxlLCBcIjB4ZWVcIiB3b3VsZCByZXR1cm4gYWxsIGNvbnRhY3RzIGhvbGRpbmcgYW5cbiAgICAgKiBhZGRyZXNzIHN0YXJ0aW5nIHdpdGggXCIweGVlXCIuIFRoZSBzZWFyY2ggaXMgY2FzZS1pbnNlbnNpdGl2ZS5cbiAgICAgKlxuICAgICAqIElmIGEgc2VhcmNoIHRlcm0gaXMgZGVmaW5lZCwgd2UgZG8gbm90IGd1YXJhbnRlZVxuICAgICAqIHRoZSBudW1iZXIgb2YgcmVzdWx0cyBpbiBhIHBhZ2UuIFRoZSBiZWhhdmlvciBvZiB0aGlzIHBhcmFtZXRlciBtYXkgY2hhbmdlXG4gICAgICogaW4gdGhlIGZ1dHVyZSAoZm9yIGV4YW1wbGUsIG1ha2luZyByZXN1bHRzIG1vcmUgc3RyaWN0bHkgcGFnaW5hdGVkIG9yXG4gICAgICogcGVyZm9ybWluZyBhIGZ1enp5IHNlYXJjaCByYXRoZXIgdGhhbiBhIHByZWZpeCBzZWFyY2gpLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RDb250YWN0c1wiXTtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgQ29udGFjdFxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgQ29udGFjdFxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBjb250YWN0IGluIHRoZSBvcmdhbml6YXRpb24td2lkZSBhZGRyZXNzIGJvb2suIFRoZVxuICAgICAqIHVzZXIgbWFraW5nIHRoZSByZXF1ZXN0IGlzIHRoZSBvd25lciBvZiB0aGUgY29udGFjdCwgZ2l2aW5nIHRoZW0gZWRpdCBhY2Nlc3NcbiAgICAgKiB0byB0aGUgY29udGFjdCBhbG9uZyB3aXRoIHRoZSBvcmcgb3duZXJzLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVDb250YWN0XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vY29udGFjdHMvYnktYWRkcmVzc1wiOiB7XG4gICAgLyoqXG4gICAgICogTG9va3VwIENvbnRhY3RzIGJ5IEFkZHJlc3NcbiAgICAgKiBAZGVzY3JpcHRpb24gTG9va3VwIENvbnRhY3RzIGJ5IEFkZHJlc3NcbiAgICAgKlxuICAgICAqIFJldHVybnMgYWxsIGNvbnRhY3RzIGluIHRoZSBvcmcgdGhhdCBoYXZlIHRoZSBnaXZlbiBhZGRyZXNzLlxuICAgICAqXG4gICAgICogV2hlbiBxdWVyeWluZyB3aXRoIGFuIEVWTSBhZGRyZXNzIHdpdGhvdXQgYSBjaGFpbiwgdGhpcyBlbmRwb2ludCByZXR1cm5zXG4gICAgICogY29udGFjdHMgd2l0aCB0aGF0IGFkZHJlc3Mgb24gKmFueSogY2hhaW4sIGluY2x1ZGluZyB0aG9zZSB3aXRob3V0IGEgY2hhaW5cbiAgICAgKiBkZWZpbmVkLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJsb29rdXBDb250YWN0c0J5QWRkcmVzc1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2NvbnRhY3RzL3tjb250YWN0X2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IENvbnRhY3RcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IENvbnRhY3RcbiAgICAgKlxuICAgICAqIFJldHVybnMgdGhlIHByb3BlcnRpZXMgb2YgYSBDb250YWN0LlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImdldENvbnRhY3RcIl07XG4gICAgLyoqXG4gICAgICogRGVsZXRlIENvbnRhY3RcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIENvbnRhY3RcbiAgICAgKlxuICAgICAqIERlbGV0ZSBhIGNvbnRhY3QsIHNwZWNpZmllZCBieSBpdHMgSUQuXG4gICAgICpcbiAgICAgKiBPbmx5IHRoZSBjb250YWN0IG93bmVyIGFuZCBvcmcgb3duZXJzIGFyZSBhbGxvd2VkIHRvIGRlbGV0ZSBjb250YWN0cy5cbiAgICAgKiBBZGRpdGlvbmFsbHksIHRoZSBjb250YWN0J3MgZWRpdCBwb2xpY3kgKGlmIHNldCkgbXVzdCBwZXJtaXQgdGhlIGRlbGV0aW9uLlxuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcImRlbGV0ZUNvbnRhY3RcIl07XG4gICAgLyoqXG4gICAgICogVXBkYXRlIENvbnRhY3RcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIENvbnRhY3RcbiAgICAgKlxuICAgICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgY29udGFjdCBpbiB0aGUgb3JnYW5pemF0aW9uLXdpZGUgYWRkcmVzcyBib29rLiBPbmx5XG4gICAgICogdGhlIGNvbnRhY3Qgb3duZXIgb3IgYW4gb3JnIG93bmVyIGNhbiB1cGRhdGUgY29udGFjdHMuXG4gICAgICpcbiAgICAgKiAqVXBkYXRlcyB3aWxsIG92ZXJ3cml0ZSB0aGUgZXhpc3RpbmcgdmFsdWUgb2YgdGhlIGZpZWxkLipcbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInVwZGF0ZUNvbnRhY3RcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9jb3VudHNcIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBjdXJyZW50IGNvdW50cyBvZiB1c2VycyBhbmQga2V5cyB3aXRoaW4gYW4gb3JnLlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgY3VycmVudCBjb3VudHMgb2YgdXNlcnMgYW5kIGtleXMgd2l0aGluIGFuIG9yZy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJjb3VudHNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9kZXJpdmVfa2V5XCI6IHtcbiAgICAvKipcbiAgICAgKiBEZXJpdmUgS2V5IEZyb20gTG9uZy1MaXZlZCBNbmVtb25pY1xuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQGRlc2NyaXB0aW9uIERlcml2ZSBLZXkgRnJvbSBMb25nLUxpdmVkIE1uZW1vbmljXG4gICAgICpcbiAgICAgKiBEZXJpdmVzIGEga2V5IG9mIGEgc3BlY2lmaWVkIHR5cGUgdXNpbmcgYSBzdXBwbGllZCBkZXJpdmF0aW9uIHBhdGggYW5kIGFuXG4gICAgICogZXhpc3RpbmcgbG9uZy1saXZlZCBtbmVtb25pYy5cbiAgICAgKi9cbiAgICBwdXQ6IG9wZXJhdGlvbnNbXCJkZXJpdmVLZXlMZWdhY3lcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9kZXJpdmVfa2V5c1wiOiB7XG4gICAgLyoqXG4gICAgICogRGVyaXZlIEtleSBGcm9tIE5ldyBPciBFeGlzdGluZyBMb25nLUxpdmVkIE1uZW1vbmljXG4gICAgICogQGRlc2NyaXB0aW9uIERlcml2ZSBLZXkgRnJvbSBOZXcgT3IgRXhpc3RpbmcgTG9uZy1MaXZlZCBNbmVtb25pY1xuICAgICAqXG4gICAgICogVXNlcyBlaXRoZXIgYSBuZXcgb3IgZXhpc3RpbmcgbG9uZy1saXZlZCBtbmVtb25pYyB0byBkZXJpdmUga2V5cyBvZlxuICAgICAqIG9uZSBvciBtb3JlIHNwZWNpZmllZCB0eXBlcyB2aWEgc3BlY2lmaWVkIGRlcml2YXRpb24gcGF0aHMuXG4gICAgICovXG4gICAgcHV0OiBvcGVyYXRpb25zW1wiZGVyaXZlS2V5XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vZGlmZmllX2hlbGxtYW4ve2tleV9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIENvbXB1dGUgRGlmZmllIEhlbGxtYW4gc2hhcmVkIHNlY3JldFxuICAgICAqIEBkZXNjcmlwdGlvbiBDb21wdXRlIERpZmZpZSBIZWxsbWFuIHNoYXJlZCBzZWNyZXRcbiAgICAgKlxuICAgICAqIEZvciBhIHNldCBvZiBlbGxpcHRpYyBjdXJ2ZSBwb2ludHMgKFBfMSwgLi4uLCBQX2kpLCBjb21wdXRlcyB0aGUgRGlmZmllIEhlbGxtYW5cbiAgICAgKiBzaGFyZWQgc2VjcmV0IChRXzEsIC4uLiwgUWkpID0gKHNrICogUF8xLCAuLi4gc2sgKiBQX2kpLCBmb3Igc2sgdGhlIHNlY3JldCBrZXkuXG4gICAgICogUG9pbnRzIGFyZSBzcGVjaWZpZWQgaW4gYSBjdXJ2ZS1kZXBlbmRlbnQgZm9ybWF0LiBTZWUgQ3ViZVNpZ25lciBkb2N1bWVudGF0aW9uXG4gICAgICogZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKlxuICAgICAqIFRoZSB1c2VyIGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgYSBOSVNUIFAtMjU2IHB1YmxpYyBrZXksIGluIHdoaWNoIGNhc2UgdGhlIHJlc3VsdFxuICAgICAqIHdpbGwgYmUgZW5jcnlwdGVkIHRvIHRoZSBwdWJsaWMga2V5IHVzaW5nIFJGQzkxODAgSFBLRShQLTI1NiwgSEtERi1TSEEyNTYpIHdpdGhcbiAgICAgKiBBRVMtMjU2LUdDTSBhcyB0aGUgc3ltbWV0cmljIGNpcGhlci4gSW4gdGhpcyBjYXNlLCB0aGUgcmVzdWx0aW5nIGNpcGhlcnRleHQgd2lsbFxuICAgICAqIGNvbnRhaW4gYSBzZXJpYWxpemVkIEpTT04gYmxvYiBjb250YWluaW5nIHRoZSB2ZWN0b3Igb2Ygc2hhcmVkIHNlY3JldHMgaW4gdGhlIHNhbWVcbiAgICAgKiBvcmRlciB0aGV5IHdlcmUgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0LlxuICAgICAqXG4gICAgICogSWYgdGhlIHVzZXIgZG9lcyBub3Qgc3BlY2lmeSBhIHB1YmxpYyBrZXksIHRoZSByZXN1bHRpbmcgc2hhcmVkIHNlY3JldHMgd2lsbCBiZVxuICAgICAqIHJldHVybmVkIHVuZW5jcnlwdGVkLiBJbiB0aGlzIGNhc2UsIHRoZSBjYWxsZXIgc2hvdWxkIHNhbXBsZSBhIHJhbmRvbSB2YWx1ZSByXG4gICAgICogbW9kdWxvIHRoZSBncm91cCBvcmRlciBhbmQgbWFzayB0aGUgcmVxdWVzdGVkIHBvaW50cyBhcyAociAqIFBfMSwgLi4uLCByICogUF9pKS5cbiAgICAgKiBUaGUgcmVzdWx0IHdpbGwgYmUgKHIgKiBzayAqIFBfMSwgLi4uLCByICogc2sgKiBQX2kpLCB3aGljaCBjYW4gYmUgdW5tYXNrZWQgYnlcbiAgICAgKiBmaXJzdCBjb21wdXRpbmcgcl4tMSwgdGhlIG11bHRpcGxpY2F0aXZlIGludmVyc2Ugb2YgciBtb2R1bG8gdGhlIGdyb3VwIG9yZGVyLFxuICAgICAqIHRoZW4gY29tcHV0aW5nIGEgc2NhbGFyIG11bHRpcGxpY2F0aW9uIG9mIGVhY2ggcmV0dXJuZWQgcG9pbnQgd2l0aCByXi0xLlxuICAgICAqXG4gICAgICogVGhlcmUgaXMgbGl0dGxlIHByYWN0aWNhbCBzZWN1cml0eSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlc2UgdHdvIGFwcHJvYWNoZXMuIFRoZVxuICAgICAqIGNsaWVudCBpcyBmcmVlIHRvIGNob29zZSB0aGUgb25lIHRoYXQgaXMgZWFzaWVyIGZyb20gYW4gaW1wbGVtZW50YXRpb24gcGVyc3BlY3RpdmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImRpZmZpZUhlbGxtYW5FeGNoYW5nZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2VtYWlscy97cHVycG9zZX1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBFbWFpbCBUZW1wbGF0ZVxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgRW1haWwgVGVtcGxhdGVcbiAgICAgKlxuICAgICAqIFJldHVybnMgdGhlIGVtYWlsIHRlbXBsYXRlIGZvciBhIGdpdmVuIHB1cnBvc2UuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0RW1haWxDb25maWdcIl07XG4gICAgLyoqXG4gICAgICogQ29uZmlndXJlIEVtYWlsIFRlbXBsYXRlXG4gICAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyZSBFbWFpbCBUZW1wbGF0ZVxuICAgICAqL1xuICAgIHB1dDogb3BlcmF0aW9uc1tcImNvbmZpZ3VyZUVtYWlsXCJdO1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSBFbWFpbCBUZW1wbGF0ZVxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgRW1haWwgVGVtcGxhdGVcbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJkZWxldGVFbWFpbENvbmZpZ1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2V2bS9laXAxOTEvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBFSVAtMTkxIERhdGFcbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBFSVAtMTkxIERhdGFcbiAgICAgKlxuICAgICAqIFNpZ25zIGEgbWVzc2FnZSB1c2luZyBFSVAtMTkxIHBlcnNvbmFsX3NpZ24gd2l0aCBhIGdpdmVuIFNlY3AyNTZrMSBrZXkuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImVpcDE5MVNpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9ldm0vZWlwNzEyL3NpZ24ve3B1YmtleX1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gRUlQLTcxMiBUeXBlZCBEYXRhXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gRUlQLTcxMiBUeXBlZCBEYXRhXG4gICAgICpcbiAgICAgKiBTaWducyB0eXBlZCBkYXRhIGFjY29yZGluZyB0byBFSVAtNzEyIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJlaXA3MTJTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vZXZtL2VpcDc3MDIvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBhbiBFSVAtNzcwMiBBdXRob3JpemF0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gYW4gRUlQLTc3MDIgQXV0aG9yaXphdGlvblxuICAgICAqXG4gICAgICogU2lnbnMgYW4gRUlQLTc3MDIgYXV0aG9yaXphdGlvbiB0dXBsZSBgKGNoYWluX2lkLCBhZGRyZXNzLCBub25jZSlgIHdpdGggYSBnaXZlblxuICAgICAqIFNlY3AyNTZrMSBrZXkuIFRoZSByZXN1bHRpbmcgNjUtYnl0ZSBzaWduYXR1cmUgKGByIHx8IHMgfHwgeV9wYXJpdHlgKSBjYW4gYmUgdXNlZCB0b1xuICAgICAqIGFzc2VtYmxlIGEgYFNpZ25lZEF1dGhvcml6YXRpb25gIGZvciBhbiBFSVAtNzcwMiBzZXQtY29kZSB0cmFuc2FjdGlvbi5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiZWlwNzcwMlNpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9leHBvcnQve2tleV9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBhbiBPcmctRXhwb3J0IENpcGhlcnRleHRcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IGFuIE9yZy1FeHBvcnQgQ2lwaGVydGV4dFxuICAgICAqXG4gICAgICogUmV0dXJucyB0aGUgZXhwb3J0IGNpcGhlcnRleHQgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm92aWRlZCBrZXktaWQuXG4gICAgICogSW4gb3JkZXIgdG8gdXNlIHRoaXMgQVBJLCB5b3UgbXVzdCBiZSBhbiBvcmcgb3duZXIgYW5kIHlvdXIgb3JnIG11c3RcbiAgICAgKiBiZSBjb25maWd1cmVkIGZvciBvcmcgZXhwb3J0IGFuZCBmb3IgQVBJLWJhc2VkIGV4cG9ydCBkZWxpdmVyeS5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJnZXRPcmdFeHBvcnRcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pZGVudGl0eVwiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBhc3NvY2lhdGVkIE9JREMgaWRlbnRpdGllcyB3aXRoIHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgYXNzb2NpYXRlZCBPSURDIGlkZW50aXRpZXMgd2l0aCB0aGUgY3VycmVudCB1c2VyLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RPaWRjSWRlbnRpdGllc1wiXTtcbiAgICAvKipcbiAgICAgKiBBc3NvY2lhdGUgYW4gT0lEQyBpZGVudGl0eSB3aXRoIHRoZSBjdXJyZW50IHVzZXIgaW4gb3JnIDxzZXNzaW9uLm9yZz4uXG4gICAgICogQGRlc2NyaXB0aW9uIEFzc29jaWF0ZSBhbiBPSURDIGlkZW50aXR5IHdpdGggdGhlIGN1cnJlbnQgdXNlciBpbiBvcmcgPHNlc3Npb24ub3JnPi5cbiAgICAgKlxuICAgICAqIEFsaWVuIHVzZXJzIGFyZSBhbGxvd2VkIHRvIGNhbGwgdGhpcyBlbmRwb2ludCwgYnV0IGZvciB0aGVtIE1GQSBpcyByZXF1aXJlZFxuICAgICAqICh1bmxlc3MgdGhleSBhcmUgcmVnaXN0ZXJpbmcgYW4gZW1haWwtb3RwIGlkZW50aXR5IG1hdGNoaW5nIHRoZWlyIGN1cnJlbnQgZW1haWwpO1xuICAgICAqIGFkZGl0aW9uYWxseSwgbGltaXRzIG1heSBhcHBseSB0byBob3cgbWFueSBpZGVudGl0aWVzIHRoYXQgbWF5IHJlZ2lzdGVyLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJhZGRPaWRjSWRlbnRpdHlcIl07XG4gICAgLyoqXG4gICAgICogUmVtb3ZlIGFuIE9JREMgaWRlbnRpdHkgZnJvbSB0aGUgY3VycmVudCB1c2VyJ3MgYWNjb3VudCBpbiBvcmcgPHNlc3Npb24ub3JnPi5cbiAgICAgKiBAZGVzY3JpcHRpb24gUmVtb3ZlIGFuIE9JREMgaWRlbnRpdHkgZnJvbSB0aGUgY3VycmVudCB1c2VyJ3MgYWNjb3VudCBpbiBvcmcgPHNlc3Npb24ub3JnPi5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJyZW1vdmVPaWRjSWRlbnRpdHlcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pZGVudGl0eS9wcm92ZVwiOiB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIFtJZGVudGl0eVByb29mXSBmcm9tIEN1YmVTaWduZXIgdXNlciBzZXNzaW9uXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBDdWJlU2lnbmVyIHVzZXIgc2Vzc2lvblxuICAgICAqXG4gICAgICogVGhpcyByb3V0ZSBjYW4gYmUgdXNlZCB0byBwcm92ZSB0byBhbm90aGVyIHBhcnR5IHRoYXQgYSB1c2VyIGhhcyBhXG4gICAgICogdmFsaWQgQ3ViZVNpZ25lciBzZXNzaW9uLlxuICAgICAqXG4gICAgICogQ2xpZW50cyBhcmUgaW50ZW5kZWQgdG8gY2FsbCB0aGlzIHJvdXRlIGFuZCBwYXNzIHRoZSByZXR1cm5lZCBldmlkZW5jZVxuICAgICAqIHRvIGFub3RoZXIgc2VydmljZSB3aGljaCB3aWxsIHZlcmlmeSBpdCBieSBtYWtpbmcgYSByZXF1ZXN0IHRvIGAvdjAvb3JnLzxvcmdfaWQ+L2lkZW50aXR5L3ZlcmlmeWAuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZVByb29mQ3ViZVNpZ25lclwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2lkZW50aXR5L3Byb3ZlL29pZGNcIjoge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBPSURDIHRva2VuXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBPSURDIHRva2VuXG4gICAgICpcbiAgICAgKiBFeGNoYW5nZSBhbiBPSURDIElEIHRva2VuIChwYXNzZWQgdmlhIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyKSBmb3IgYSBwcm9vZiBvZiBhdXRoZW50aWNhdGlvbi5cbiAgICAgKlxuICAgICAqIFRoaXMgcm91dGUgY2FuIGJlIHVzZWQgdG8gcHJvdmUgdG8gYW5vdGhlciBwYXJ0eSB0aGF0IGEgdXNlciBoYXMgbWV0IHRoZVxuICAgICAqIGF1dGhlbnRpY2F0aW9uIHJlcXVpcmVtZW50cyAoYWxsb3dlZCBpc3N1ZXJzICYgYXVkaWVuY2VzKSBmb3IgQ3ViZVNpZ25lclxuICAgICAqIHdpdGhvdXQgbGVha2luZyB0aGVpciBjcmVkZW50aWFscy5cbiAgICAgKlxuICAgICAqIENsaWVudHMgYXJlIGludGVuZGVkIHRvIGNhbGwgdGhpcyByb3V0ZSBhbmQgcGFzcyB0aGUgcmV0dXJuZWQgZXZpZGVuY2UgdG8gYW5vdGhlciBzZXJ2aWNlXG4gICAgICogd2hpY2ggd2lsbCB2ZXJpZnkgaXQgYnkgbWFraW5nIGEgcmVxdWVzdCB0byBgL3YwL29yZy88b3JnX2lkPi9pZGVudGl0eS92ZXJpZnlgLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVQcm9vZk9pZGNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pZGVudGl0eS92ZXJpZnlcIjoge1xuICAgIC8qKlxuICAgICAqIFZlcmlmeSBpZGVudGl0eSBwcm9vZlxuICAgICAqIEBkZXNjcmlwdGlvbiBWZXJpZnkgaWRlbnRpdHkgcHJvb2ZcbiAgICAgKlxuICAgICAqIEFsbG93cyBhIHRoaXJkLXBhcnR5IHRvIHZhbGlkYXRlIHByb29mIG9mIGF1dGhlbnRpY2F0aW9uLlxuICAgICAqXG4gICAgICogV2hlbiBhIHRoaXJkLXBhcnR5IGlzIHByb3ZpZGVkIGFuIFtJZGVudGl0eVByb29mXSBvYmplY3QsIHRoZXkgbXVzdCBjaGVjayBpdHNcbiAgICAgKiB2ZXJhY2l0eSBieSBjYWxsaW5nIHRoaXMgZW5kcG9pbnRcbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1widmVyaWZ5UHJvb2ZcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pZHAvYXV0aGVudGljYXRlXCI6IHtcbiAgICAvKipcbiAgICAgKiBBdXRoZW50aWNhdGVcbiAgICAgKiBAZGVzY3JpcHRpb24gQXV0aGVudGljYXRlXG4gICAgICpcbiAgICAgKiBUaGlzIGVuZHBvaW50IGV4Y2hhbmdlcyBhbiBlbWFpbCAmIHBhc3N3b3JkIGZvciBhbiBPSURDIHRva2VuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImlkcEF1dGhlbnRpY2F0ZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2lkcC9wYXNzd29yZF9yZXNldFwiOiB7XG4gICAgLyoqXG4gICAgICogUmVxdWVzdCBQYXNzd29yZCBSZXNldFxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IFBhc3N3b3JkIFJlc2V0XG4gICAgICpcbiAgICAgKiBUaGlzIGVuZHBvaW50IGdlbmVyYXRlcyBhbiBPSURDIHRva2VuIHdpdGhvdXQgYSBzaWduYXR1cmUgKG9mIHRoZSBmb3JtIGB7aGVhZGVyfS57cGF5bG9hZH0uYCksXG4gICAgICogYW5kIHNlbmRzIHRoZSBzaWduYXR1cmUgdG8gdGhlIHVzZXIncyBlbWFpbC4gQ2xpZW50IGFwcGxpY2F0aW9ucyBjYW4gcmVjb25zdHJ1Y3QgdGhlIHRva2VuXG4gICAgICogYnkgY29uY2F0ZW5hdGluZyB0aGUgYHtoZWFkZXJ9LntwYXlsb2FkfS5gIHdpdGggdGhlIHNpZ25hdHVyZSwgcHJvZHVjaW5nIGEgdmFsaWQgT0lEQyB0b2tlbiBvZlxuICAgICAqIHRoZSBmb3JtIGB7aGVhZGVyfS57cGF5bG9hZH0ue3NpZ25hdHVyZX1gLiBUaGUgdG9rZW4gY2FuIHRoZW4gYmUgdXNlZCB0byBhdXRoZW50aWNhdGUgdGhlIHVzZXJcbiAgICAgKiB3aGVuIHBlcmZvcm1pbmcgdGhlIGBpZHBfcGFzc3dvcmRfcmVzZXRfY29uZmlybWAgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiaWRwUGFzc3dvcmRSZXNldFJlcXVlc3RcIl07XG4gICAgLyoqXG4gICAgICogQ29uZmlybSBQYXNzd29yZCBSZXNldFxuICAgICAqIEBkZXNjcmlwdGlvbiBDb25maXJtIFBhc3N3b3JkIFJlc2V0XG4gICAgICpcbiAgICAgKiBUaGlzIGVuZHBvaW50IGFsbG93cyBJRFAgdXNlcnMgdG8gcmVzZXQgdGhlaXIgcGFzc3dvcmRcbiAgICAgKiB1c2luZyBhIHRva2VuIHRoZXkgaGF2ZSByZWNlaXZlZCBpbiB0aGVpciBlbWFpbC5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcImlkcFBhc3N3b3JkUmVzZXRDb25maXJtXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vaW1wb3J0X2tleVwiOiB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIEtleS1JbXBvcnQgS2V5XG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBLZXktSW1wb3J0IEtleVxuICAgICAqXG4gICAgICogR2VuZXJhdGUgYW4gZXBoZW1lcmFsIGtleSB0aGF0IGEgY2xpZW50IGNhbiB1c2UgZm9yIGtleS1pbXBvcnQgZW5jcnlwdGlvbi5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJjcmVhdGVLZXlJbXBvcnRLZXlcIl07XG4gICAgLyoqXG4gICAgICogSW1wb3J0IEtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBJbXBvcnQgS2V5XG4gICAgICpcbiAgICAgKiBTZWN1cmVseSBpbXBvcnRzIGFuIGV4aXN0aW5nIGtleSB1c2luZyBhIHByZXZpb3VzbHkgZ2VuZXJhdGVkIGtleS1pbXBvcnQga2V5LlxuICAgICAqL1xuICAgIHB1dDogb3BlcmF0aW9uc1tcImltcG9ydEtleVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2luZm9cIjoge1xuICAgIC8qKlxuICAgICAqIFB1YmxpYyBPcmcgSW5mb1xuICAgICAqIEBkZXNjcmlwdGlvbiBQdWJsaWMgT3JnIEluZm9cbiAgICAgKlxuICAgICAqIFVuYXV0aGVudGljYXRlZCBlbmRwb2ludCB0aGF0IHJldHVybnMgcHVibGljbHktYXZhaWxhYmxlIGluZm9ybWF0aW9uIGFib3V0IGFuIG9yZ2FuaXphdGlvbi5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJwdWJsaWNfb3JnX2luZm9cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pbnRlcm5hbC9jdXN0b21fY2hhaW5fcnBjXCI6IHtcbiAgICAvKipcbiAgICAgKiAoSU5URVJOQUwpIEN1c3RvbSBjaGFpbiBSUEMgcHJveHlcbiAgICAgKiBAZGVzY3JpcHRpb24gKElOVEVSTkFMKSBDdXN0b20gY2hhaW4gUlBDIHByb3h5XG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImN1c3RvbUNoYWluUnBjQ2FsbFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2ludGVybmFsL2VzcGxvcmFcIjoge1xuICAgIC8qKlxuICAgICAqIChJTlRFUk5BTCkgRXNwbG9yYSBBUEkgUHJveHlcbiAgICAgKiBAZGVzY3JpcHRpb24gKElOVEVSTkFMKSBFc3Bsb3JhIEFQSSBQcm94eVxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJlc3Bsb3JhQXBpQ2FsbFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2ludGVybmFsL3NlbnRyeVwiOiB7XG4gICAgLyoqXG4gICAgICogKElOVEVSTkFMKSBBdXRoZW50aWNhdGVkIFNlbnRyeSBBUEkgUHJveHlcbiAgICAgKiBAZGVzY3JpcHRpb24gKElOVEVSTkFMKSBBdXRoZW50aWNhdGVkIFNlbnRyeSBBUEkgUHJveHlcbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wic2VudHJ5QXBpQ2FsbFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2ludml0YXRpb24vYWNjZXB0XCI6IHtcbiAgICAvKipcbiAgICAgKiBBY2NlcHQgYW4gaW52aXRhdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBBY2NlcHQgYW4gaW52aXRhdGlvblxuICAgICAqXG4gICAgICogVGhpcyBlbmRwb2ludCBhbGxvd3MgaWRwIHVzZXJzIHRvIHJlZ2lzdGVyIHVzaW5nIGEgdG9rZW4gdGhleSBoYXZlIHJlY2VpdmVkIGluIHRoZWlyIGVtYWlsXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImludml0YXRpb25BY2NlcHRcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pbnZpdGF0aW9uc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBwZW5kaW5nIGludml0YXRpb25zXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgcGVuZGluZyBpbnZpdGF0aW9uc1xuICAgICAqXG4gICAgICogUmV0dXJucyBhbGwgcGVuZGluZyBpbnZpdGF0aW9ucyBmb3IgdGhlIG9yZ2FuaXphdGlvbiwgaS5lLiwgdGhvc2UgdGhhdCBoYXZlIG5laXRoZXJcbiAgICAgKiBiZWVuIGFjY2VwdGVkIG5vciBjYW5jZWxlZCwgYW5kIGhhdmUgbm90IGV4cGlyZWQuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdEludml0YXRpb25zXCJdO1xuICAgIC8qKlxuICAgICAqIENhbmNlbCBhIHBlbmRpbmcgaW52aXRhdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBDYW5jZWwgYSBwZW5kaW5nIGludml0YXRpb25cbiAgICAgKlxuICAgICAqIFJlbW92ZXMgYSBwZW5kaW5nIGludml0YXRpb24gZnJvbSB0aGUgb3JnYW5pemF0aW9uLiBJZiBubyBwZW5kaW5nIGludml0YXRpb25cbiAgICAgKiBleGlzdHMgZm9yIHRoZSBnaXZlbiBlbWFpbCBhZGRyZXNzLCBhIG5vdC1mb3VuZCBlcnJvciBpcyByZXR1cm5lZC5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJjYW5jZWxJbnZpdGF0aW9uXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vaW52aXRlXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbnZpdGUgVXNlclxuICAgICAqIEBkZXNjcmlwdGlvbiBJbnZpdGUgVXNlclxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhIG5ldyB1c2VyIGluIGFuIGV4aXN0aW5nIG9yZyBhbmQgc2VuZHMgdGhhdCB1c2VyIGFuIGludml0ZSBlbWFpbC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiaW52aXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0va2V5c1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBLZXlzXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgS2V5c1xuICAgICAqXG4gICAgICogR2V0cyB0aGUgbGlzdCBvZiBhY2Nlc3NpYmxlIGtleXMgaW4gYSBnaXZlbiBvcmcgKHRvIG9yZyBvd25lciwgYWxsIG9yZyBrZXlzXG4gICAgICogYXJlIGFjY2Vzc2libGU7IHRvIG1lbWJlcnMsIG9ubHkgdGhlaXIgb3duIGtleXMgYXJlIGFjY2Vzc2libGUpLlxuICAgICAqXG4gICAgICogSWYgYSBzZWFyY2ggY29uZGl0aW9uIGlzLCB0aGUgcmVzdWx0IHdpbGwgY29udGFpbiBvbmx5IHRoZSBrZXlzIHdob3NlIGVpdGhlclxuICAgICAqIG1hdGVyaWFsIElEIG9yIG1ldGFkYXRhIGNvbnRhaW4gdGhlIHNlYXJjaCBjb25kaXRpb24gc3RyaW5nLlxuICAgICAqXG4gICAgICogTk9URSB0aGF0IGlmIHBhZ2luYXRpb24gaXMgdXNlZCBhbmQgYSBwYWdlIGxpbWl0IGlzIHNldCwgdGhlIHJldHVybmVkIHJlc3VsdFxuICAgICAqIHNldCBtYXkgY29udGFpbiBlaXRoZXIgRkVXRVIgb3IgTU9SRSBlbGVtZW50cyB0aGFuIHRoZSByZXF1ZXN0ZWQgcGFnZSBsaW1pdC5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0S2V5c0luT3JnXCJdO1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIEtleVxuICAgICAqXG4gICAgICogQ3JlYXRlcyBvbmUgb3IgbW9yZSBuZXcga2V5cyBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZUtleVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2tleXMve2tleV9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IEtleVxuICAgICAqXG4gICAgICogUmV0dXJucyB0aGUgcHJvcGVydGllcyBvZiBhIGtleS5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJnZXRLZXlJbk9yZ1wiXTtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgS2V5XG4gICAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBLZXlcbiAgICAgKlxuICAgICAqIERlbGV0ZXMgYSBrZXkgc3BlY2lmaWVkIGJ5IGl0cyBJRC5cbiAgICAgKlxuICAgICAqIE9ubHkgdGhlIGtleSBvd25lciBhbmQgb3JnIG93bmVycyBhcmUgYWxsb3dlZCB0byBkZWxldGUga2V5cy5cbiAgICAgKiBBZGRpdGlvbmFsbHksIHRoZSByb2xlJ3MgZWRpdCBwb2xpY3kgKGlmIHNldCkgbXVzdCBwZXJtaXQgdGhlIHVwZGF0ZS5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJkZWxldGVLZXlcIl07XG4gICAgLyoqXG4gICAgICogVXBkYXRlIEtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgS2V5XG4gICAgICpcbiAgICAgKiBFbmFibGUgb3IgZGlzYWJsZSBhIGtleS4gIFRoZSB1c2VyIG11c3QgYmUgdGhlIG93bmVyIG9mIHRoZSBrZXkgb3JcbiAgICAgKiBvcmdhbml6YXRpb24gdG8gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEZvciBlYWNoIHJlcXVlc3RlZCB1cGRhdGUsIHRoZSBzZXNzaW9uIG11c3QgaGF2ZSB0aGUgY29ycmVzcG9uZGluZyAnbWFuYWdlOmtleTp1cGRhdGU6Xycgc2NvcGU7XG4gICAgICogaWYgbm8gdXBkYXRlcyBhcmUgcmVxdWVzdGVkLCB0aGUgc2Vzc2lvbiBtdXN0IGhhdmUgJ21hbmFnZTprZXk6Z2V0Jy5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInVwZGF0ZUtleVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2tleXMve2tleV9pZH0vYXR0ZXN0XCI6IHtcbiAgICAvKipcbiAgICAgKiBBdHRlc3QgdG8gS2V5IFByb3BlcnRpZXNcbiAgICAgKiBAZGVzY3JpcHRpb24gQXR0ZXN0IHRvIEtleSBQcm9wZXJ0aWVzXG4gICAgICpcbiAgICAgKiBUaGUgcmVzcG9uc2UgaXMgYSBKV1Qgd2hvc2UgY2xhaW1zIGFyZSB0aGUga2V5IHByb3BlcnRpZXMuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiYXR0ZXN0S2V5XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0va2V5cy97a2V5X2lkfS9yb2xlc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBLZXkgUm9sZXNcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBLZXkgUm9sZXNcbiAgICAgKlxuICAgICAqIEdldCBhbGwgcm9sZXMgdGhlIGtleSBpcyBpblxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RLZXlSb2xlc1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2tleXMve2tleV9pZH0vdHhcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgSGlzdG9yaWNhbCBUcmFuc2FjdGlvbnNcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBIaXN0b3JpY2FsIFRyYW5zYWN0aW9uc1xuICAgICAqXG4gICAgICogUmV0dXJucyBhIHNvcnRlZCwgcGFnaW5hdGVkIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIHNpZ25lZCBieSBhIGdpdmVuIGtleSxcbiAgICAgKiBvcmRlcmVkIGZyb20gbW9zdCByZWNlbnQgZmlyc3QuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdEhpc3RvcmljYWxLZXlUeFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2tleXMve2tleV90eXBlfS97bWF0ZXJpYWxfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgS2V5IGJ5IE1hdGVyaWFsIElEXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBLZXkgYnkgTWF0ZXJpYWwgSURcbiAgICAgKlxuICAgICAqIFJldHVybnMgdGhlIHByb3BlcnRpZXMgb2YgYSBrZXkuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0S2V5QnlNYXRlcmlhbElkXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbWV0cmljc1wiOiB7XG4gICAgLyoqXG4gICAgICogUXVlcnkgb3JnIG1ldHJpY3MuXG4gICAgICogQGRlc2NyaXB0aW9uIFF1ZXJ5IG9yZyBtZXRyaWNzLlxuICAgICAqXG4gICAgICogTWV0cmljcyBzdW1tYXJpemUgdXNhZ2UgaW5mb3JtYXRpb24gYWJvdXQgeW91ciBDdWJlU2lnbmVyIG9yZ2FuaXphdGlvbiBvdmVyIHRpbWUuIEZvciBleGFtcGxlLFxuICAgICAqIHlvdSBjYW4gY2FsbCB0aGlzIGVuZHBvaW50IGZpbmQgb3V0OlxuICAgICAqXG4gICAgICogLSB0aGUgYXZlcmFnZSBudW1iZXIgb2Yga2V5cyBvdmVyIHRoZSBsYXN0IG1vbnRoLFxuICAgICAqIC0gdGhlIGF2ZXJhZ2UgbnVtYmVyIG1vbnRobHkgdXNlcnMgb3ZlciB0aGUgbGFzdCB5ZWFyLFxuICAgICAqIC0gdGhlIHRvdGFsIG51bWJlciBvZiB0cmFuc2FjdGlvbnMgc2lnbmVkIGxhc3Qgd2VlayxcbiAgICAgKiAtIGhvdyB0aGUgbnVtYmVyIG9mIGRpZmZlcmVudCBBUEkgcmVxdWVzdHMgd2FzIHRyZW5kaW5nIGRheS1ieS1kYXkgb3ZlciB0aGUgbGFzdCB3ZWVrL21vbnRoL3llYXIsIGV0Yy5cbiAgICAgKlxuICAgICAqIEVhY2ggbWV0cmljIGtpbmQgY2FuIGhhdmUgb25lIG9yIG1vcmUgZGltZW5zaW9ucywgdG8gZnVydGhlciBzcGVjaWZ5IHRoZSBvcmcgcHJvcGVydHkgaXQgZGVzY3JpYmVzLlxuICAgICAqIEZvciBleGFtcGxlLCB0aGUgYFVzZXJDb3VudGAgbWV0cmljcyBoYXZlIGEgbWVtYmVyc2hpcCBkaW1lbnNpb25zIHRvIHNwZWNpZnkgdGhlIGtpbmQgb2YgdXNlciBtZW1iZXJzaGlwXG4gICAgICogaW4gdGhlIG9yZ2FuaXphdGlvbiAoXCJPd25lclwiIHZzLiBcIk1lbWJlclwiIHZzLiBcIkFsaWVuXCIpLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJxdWVyeU1ldHJpY3NcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9tZmFcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgUGVuZGluZyBNRkEgUmVxdWVzdHNcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBQZW5kaW5nIE1GQSBSZXF1ZXN0c1xuICAgICAqXG4gICAgICogUmV0cmlldmVzIGFuZCByZXR1cm5zIGFsbCBwZW5kaW5nIE1GQSByZXF1ZXN0cyB0aGF0IGFyZSBhY2Nlc3NpYmxlIHRvIHRoZSBjdXJyZW50IHNlc3Npb24sXG4gICAgICogaS5lLiwgdGhvc2UgY3JlYXRlZCBieSB0aGUgY3VycmVudCBzZXNzaW9uIGlkZW50aXR5IHBsdXMgdGhvc2UgaW4gd2hpY2ggdGhlIGN1cnJlbnQgdXNlclxuICAgICAqIGlzIGxpc3RlZCBhcyBhbiBhcHByb3ZlclxuICAgICAqXG4gICAgICogTk9URSB0aGF0IGlmIHBhZ2luYXRpb24gaXMgdXNlZCBhbmQgYSBwYWdlIGxpbWl0IGlzIHNldCwgdGhlIHJldHVybmVkIHJlc3VsdFxuICAgICAqIHNldCBtYXkgY29udGFpbiBlaXRoZXIgRkVXRVIgb3IgTU9SRSBlbGVtZW50cyB0aGFuIHRoZSByZXF1ZXN0ZWQgcGFnZSBsaW1pdC5cbiAgICAgKiBJbiBwYXJ0aWN1bGFyLCBsZWdhY3kgTUZBIHJlcXVlc3RzIGFyZSBub3QgcGFnaW5hdGVkOiBldmVyeSBhY2Nlc3NpYmxlIG9uZVxuICAgICAqIGlzIHJldHVybmVkIGluIHRoZSBmaXJzdCBwYWdlLCBvbiB0b3Agb2YgdGhlIHBhZ2UgbGltaXQuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibWZhTGlzdFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L21mYS97bWZhX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IFBlbmRpbmcgTUZBIFJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IFBlbmRpbmcgTUZBIFJlcXVlc3RcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBhbmQgcmV0dXJucyBhIHBlbmRpbmcgTUZBIHJlcXVlc3QgYnkgaXRzIGlkLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcIm1mYUdldFwiXTtcbiAgICAvKipcbiAgICAgKiBBcHByb3ZlIG9yIFJlamVjdCBNRkEgUmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZlIG9yIFJlamVjdCBNRkEgUmVxdWVzdFxuICAgICAqXG4gICAgICogQXBwcm92ZSBvciByZWplY3QgcmVxdWVzdCBhZnRlciBsb2dnaW5nIGluIHdpdGggQ3ViZVNpZ25lci5cbiAgICAgKlxuICAgICAqIElmIGFwcHJvdmluZywgYWRkcyB0aGUgY3VycmVudGx5LWxvZ2dlZCB1c2VyIGFzIGFuIGFwcHJvdmVyXG4gICAgICogb2YgYSBwZW5kaW5nIE1GQSByZXF1ZXN0IG9mIHRoZSBbU3RhdHVzOjpSZXF1aXJlZEFwcHJvdmVyc10ga2luZC4gSWYgdGhlIHJlcXVpcmVkIG51bWJlciBvZlxuICAgICAqIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7IHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0b1xuICAgICAqIHJlc3VtZSB0aGUgb3JpZ2luYWwgSFRUUCByZXF1ZXN0LlxuICAgICAqXG4gICAgICogSWYgcmVqZWN0aW5nLCBpbW1lZGlhdGVseSBkZWxldGVzIHRoZSBwZW5kaW5nIE1GQSByZXF1ZXN0LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wibWZhVm90ZUNzXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbWZhL3ttZmFfaWR9L2VtYWlsXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbml0aWF0ZSBhbiBFbWFpbCBPVFAgTUZBIEFwcHJvdmFsL1JlamVjdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSBhbiBFbWFpbCBPVFAgTUZBIEFwcHJvdmFsL1JlamVjdGlvblxuICAgICAqXG4gICAgICogSW5pdGlhdGVzIHRoZSBhcHByb3ZhbC9yZWplY3Rpb24gcHJvY2VzcyBvZiBhbiBNRkEgUmVxdWVzdCB1c2luZyBFbWFpbCBPVFAuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcIm1mYUVtYWlsSW5pdFwiXTtcbiAgICAvKipcbiAgICAgKiBGaW5hbGl6ZSBhIEVtYWlsIE9UUCBNRkEgQXBwcm92YWwvUmVqZWN0aW9uLlxuICAgICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSBhIEVtYWlsIE9UUCBNRkEgQXBwcm92YWwvUmVqZWN0aW9uLlxuICAgICAqXG4gICAgICogVGhlIHJlcXVlc3Qgc2hvdWxkIGNvbnRhaW4gdGhlIGZ1bGwgSldUIG9idGFpbmVkIGJ5IGNvbmNhdGVuYXRpbmcgdGhlXG4gICAgICogcGFydGlhbCB0b2tlbiByZXR1cm5lZCBieSB0aGUgYG1mYV9lbWFpbF9pbml0YCBlbmRwb2ludCBhbmQgdGhlIHNpZ25hdHVyZVxuICAgICAqIGVtYWlsZWQgdG8gdGhlIHVzZXIgaXNzdWluZyB0aGUgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIElmIGFwcHJvdmluZywgYWRkcyBhbiBhcHByb3ZlciB0byBhIHBlbmRpbmcgTUZBIHJlcXVlc3QuXG4gICAgICogSWYgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBhcHByb3ZlcnMgaXMgcmVhY2hlZCwgdGhlIE1GQSByZXF1ZXN0IGlzIGFwcHJvdmVkO1xuICAgICAqIHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0byByZXN1bWUgdGhlIG9yaWdpbmFsIEhUVFAgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIElmIHJlamVjdGluZywgaW1tZWRpYXRlbHkgZGVsZXRlcyB0aGUgcGVuZGluZyBNRkEgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcIm1mYVZvdGVFbWFpbENvbXBsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbWZhL3ttZmFfaWR9L2ZpZG9cIjoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYXRlIGEgRklETyBNRkEgQXBwcm92YWwvUmVqZWN0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIGEgRklETyBNRkEgQXBwcm92YWwvUmVqZWN0aW9uXG4gICAgICpcbiAgICAgKiBJbml0aWF0ZXMgdGhlIGFwcHJvdmFsL3JlamVjdGlvbiBwcm9jZXNzIG9mIGFuIE1GQSBSZXF1ZXN0IHVzaW5nIEZJRE8uXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcIm1mYUZpZG9Jbml0XCJdO1xuICAgIC8qKlxuICAgICAqIEZpbmFsaXplIGEgRklETyBNRkEgQXBwcm92YWwvUmVqZWN0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIEZpbmFsaXplIGEgRklETyBNRkEgQXBwcm92YWwvUmVqZWN0aW9uXG4gICAgICpcbiAgICAgKiBJZiBhcHByb3ZpbmcsIGFkZHMgYW4gYXBwcm92ZXIgdG8gYSBwZW5kaW5nIE1GQSByZXF1ZXN0LlxuICAgICAqIElmIHRoZSByZXF1aXJlZCBudW1iZXIgb2YgYXBwcm92ZXJzIGlzIHJlYWNoZWQsIHRoZSBNRkEgcmVxdWVzdCBpcyBhcHByb3ZlZDtcbiAgICAgKiB0aGUgY29uZmlybWF0aW9uIHJlY2VpcHQgY2FuIGJlIHVzZWQgdG8gcmVzdW1lIHRoZSBvcmlnaW5hbCBIVFRQIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBJZiByZWplY3RpbmcsIGltbWVkaWF0ZWx5IGRlbGV0ZXMgdGhlIHBlbmRpbmcgTUZBIHJlcXVlc3QuXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJtZmFWb3RlRmlkb0NvbXBsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbWZhL3ttZmFfaWR9L3RvdHBcIjoge1xuICAgIC8qKlxuICAgICAqIEFwcHJvdmUvUmVqZWN0IGEgVE9UUCBNRkEgUmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZlL1JlamVjdCBhIFRPVFAgTUZBIFJlcXVlc3RcbiAgICAgKlxuICAgICAqIElmIGFwcHJvdmluZywgYWRkcyB0aGUgY3VycmVudCB1c2VyIGFzIGFwcHJvdmVyIHRvIGEgcGVuZGluZyBNRkEgcmVxdWVzdCBieVxuICAgICAqIHByb3ZpZGluZyBUT1RQIGNvZGUuIElmIHRoZSByZXF1aXJlZCBudW1iZXIgb2YgYXBwcm92ZXJzIGlzIHJlYWNoZWQsIHRoZSBNRkEgcmVxdWVzdCBpc1xuICAgICAqIGFwcHJvdmVkOyB0aGUgY29uZmlybWF0aW9uIHJlY2VpcHQgY2FuIGJlIHVzZWQgdG8gcmVzdW1lIHRoZSBvcmlnaW5hbCBIVFRQIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBJZiByZWplY3RpbmcsIGltbWVkaWF0ZWx5IGRlbGV0ZXMgdGhlIHBlbmRpbmcgTUZBIHJlcXVlc3QuXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJtZmFWb3RlVG90cFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L21taS92My9tZXNzYWdlc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBwZW5kaW5nIE1NSSByZXF1ZXN0c1xuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IHBlbmRpbmcgTU1JIHJlcXVlc3RzXG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgYW5kIHJldHVybnMgYWxsIHBlbmRpbmcgTU1JIG1lc3NhZ2VzIGFjY2Vzc2libGUgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbiBpZGVudGl0eSwgaS5lLixcbiAgICAgKiAtIGEgcm9sZSBzZXNzaW9uIGNhbiBhY2Nlc3Mgb25seSB0aGUgbWVzc2FnZXMgY3JlYXRlZCBieSB0aGF0IHJvbGVcbiAgICAgKiAtIGEgdXNlciBzZXNzaW9uIGNhbiBhY2Nlc3MgdGhlIG1lc3NhZ2VzIGNyZWF0ZWQgYnkgZWl0aGVyIHRoYXQgdXNlciBvciBhbnkgcm9sZSB3aGljaCB0aGUgdXNlciBpcyBhIG1lbWJlciBvZlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcIm1taU1lc3NhZ2VMaXN0XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbW1pL3YzL21lc3NhZ2VzL3ttc2dfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgYW4gTU1JIHJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IGFuIE1NSSByZXF1ZXN0XG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgYSBwZW5kaW5nIE1NSSByZXF1ZXN0IGJ5IGl0cyBJRC5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJtbWlNZXNzYWdlR2V0XCJdO1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSBhbiBNTUkgcmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgYW4gTU1JIHJlcXVlc3RcbiAgICAgKlxuICAgICAqIFJlamVjdHMgYW4gZXhpc3RpbmcgTU1JIHJlcXVlc3QgYW5kIHRoZW4gZGVsZXRlcyBpdCBmcm9tIHRoZSBkYXRhYmFzZS5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJtbWlNZXNzYWdlRGVsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbW1pL3YzL21lc3NhZ2VzL3ttc2dfaWR9L3JlamVjdFwiOiB7XG4gICAgLyoqXG4gICAgICogUmVqZWN0IGFuIE1NSSByZXF1ZXN0XG4gICAgICogQGRlc2NyaXB0aW9uIFJlamVjdCBhbiBNTUkgcmVxdWVzdFxuICAgICAqXG4gICAgICogUmVqZWN0cyBhIHBlbmRpbmcgTU1JIHJlcXVlc3QuIFRoZSByZWNvcmQgb2YgdGhlIE1NSSByZXF1ZXN0IGlzIGtlcHQgaW5cbiAgICAgKiB0aGUgZGF0YWJhc2UgdW50aWwgaXQgZXhwaXJlcyBvciBpcyBleHBsaWNpdGx5IGRlbGV0ZWQuXG4gICAgICpcbiAgICAgKiBSZXR1cm5zIHRoZSB1cGRhdGVkIHJlcXVlc3QgaW5mb3JtYXRpb24uXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcIm1taU1lc3NhZ2VSZWplY3RcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9tbWkvdjMvbWVzc2FnZXMve21zZ19pZH0vc2lnblwiOiB7XG4gICAgLyoqXG4gICAgICogQXBwcm92ZSBhbmQgc2lnbiBhbiBNTUkgcmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZlIGFuZCBzaWduIGFuIE1NSSByZXF1ZXN0XG4gICAgICpcbiAgICAgKiBTaWducyBhIHBlbmRpbmcgcmVxdWVzdCB0aGF0IHdhcyBnZW5lcmF0ZWQgdGhyb3VnaCB0aGUgTU1JIEpTT04gUlBDIGVuZHBvaW50LlxuICAgICAqIFRoZSBzaWduYXR1cmUgaXMgc3RvcmVkIHdpdGggdGhlIHBlbmRpbmcgbWVzc2FnZSBhbmQgdGhlIHVwZGF0ZWQgcmVxdWVzdCBpbmZvIGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogVGhlIG1lc3NhZ2Ugc2hvdWxkIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgb3JnYW5pemF0aW9uIHRoaXMgaXMgY2FsbGVkIGZyb20sXG4gICAgICogYW5kIHRoZSB1c2VyIHNob3VsZCBiZSB0aGUgb3duZXIgb2YgdGhlIGNvcnJlc3BvbmRpbmcgbWVzc2FnZSdzIGtleS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wibW1pTWVzc2FnZVNpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9vYXV0aDIvdHdpdHRlclwiOiB7XG4gICAgLyoqXG4gICAgICogTWludCBhbiBPSURDIElEIHRva2VuIGZvciBUd2l0dGVyXG4gICAgICogQGRlc2NyaXB0aW9uIE1pbnQgYW4gT0lEQyBJRCB0b2tlbiBmb3IgVHdpdHRlclxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBhY3RzIGlkZW50aWNhbGx5IHRvIFR3aXR0ZXIncyBbYG9hdXRoMi90b2tlbmBdKGh0dHBzOi8vZGV2ZWxvcGVyLnR3aXR0ZXIuY29tL2VuL2RvY3MvYXV0aGVudGljYXRpb24vYXBpLXJlZmVyZW5jZS90b2tlbikgZW5kcG9pbnQsXG4gICAgICogYnV0IGV4dGVuZHMgdGhlIG91dHB1dCB3aXRoIGFuIGBpZF90b2tlbmAuXG4gICAgICpcbiAgICAgKiBUaGlzIGBpZF90b2tlbmAgY2FuIHRoZW4gYmUgdXNlZCB3aXRoIGFueSBDdWJlU2lnbmVyIGVuZHBvaW50IHRoYXQgcmVxdWlyZXMgYW4gT0lEQyB0b2tlbi5cbiAgICAgKiBDYWxsZXJzIG11c3QgcmVxdWVzdCAqYXQgbGVhc3QqIHNjb3BlcyBgdHdlZXQucmVhZGAgYW5kIGB1c2Vycy5yZWFkYCBkdXJpbmcgYXV0aCB3aXRoIHR3aXR0ZXIuXG4gICAgICpcbiAgICAgKiBCeSBkZWZhdWx0LCB0aGUgaWQgdG9rZW4gZG9lcyBub3QgY29udGFpbiBhIGNvbmZpcm1lZCBlbWFpbDtcbiAgICAgKiBjYWxsZXJzIGNhbiByZXF1ZXN0IHRoaXMgZmllbGQgYmUgcG9wdWxhdGVkIGJ5IHJlcXVlc3RpbmcgdGhlIGB1c2Vycy5lbWFpbGAgc2NvcGVcbiAgICAgKiBhbmQgYWRkaW5nIGBmZXRjaF9lbWFpbGAgYXMgYSBVUkwgcGFyYW1ldGVyIHRvIHRoaXMgcm91dGUuXG4gICAgICpcbiAgICAgKlxuICAgICAqID4gWyFJTVBPUlRBTlRdXG4gICAgICogPiBUaGlzIGVuZHBvaW50IHdpbGwgZmFpbCB1bmxlc3MgdGhlIG9yZyBpcyBjb25maWd1cmVkIHRvIGFsbG93IHRoZSBpc3N1ZXIgYGh0dHBzOi8vc2hpbS5vYXV0aDIuY3ViaXN0LmRldi90d2l0dGVyYCBhbmQgY2xpZW50IElEIGJlaW5nIHVzZWQgZm9yIFR3aXR0ZXIuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcIm9hdXRoMlR3aXR0ZXJcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9vaWRjXCI6IHtcbiAgICAvKipcbiAgICAgKiBMb2dpbiB3aXRoIE9JRENcbiAgICAgKiBAZGVzY3JpcHRpb24gTG9naW4gd2l0aCBPSURDXG4gICAgICpcbiAgICAgKiBFeGNoYW5nZSBhbiBPSURDIElEIHRva2VuIChwYXNzZWQgdmlhIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyKSBmb3IgYSBzaWduZXIgc2Vzc2lvbi5cbiAgICAgKlxuICAgICAqIE1GQSBpcyByZXF1aXJlZCB3aGVuOlxuICAgICAqIC0gYW4gTUZBIHBvbGljeSBpcyBleHBsaWNpdGx5IGF0dGFjaGVkIHRvIHRoZSB1c2VyIGxvZ2dpbmcgaW5cbiAgICAgKiAoZS5nLiwgYW4gb3JnIG93bmVyIGNhbiBkbyB0aGF0IGF0IHVzZXIgY3JlYXRpb24gdGltZSB0byByZXF1aXJlIGNlcnRhaW4ga2luZCBvZiBNRkEpXG4gICAgICogLSB0aGUgdXNlciBoYXMgYXQgbGVhc3QgMSBNRkEgZmFjdG9yIGNvbmZpZ3VyZWRcbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wib2lkY0F1dGhcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9vaWRjL2VtYWlsLW90cFwiOiB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhdGUgbG9naW4gdmlhIGVtYWlsIHRva2VuXG4gICAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIGxvZ2luIHZpYSBlbWFpbCB0b2tlblxuICAgICAqXG4gICAgICogVGhpcyBlbmRwb2ludCBnZW5lcmF0ZXMgYW4gT0lEQyB0b2tlbiB3aXRob3V0IGEgc2lnbmF0dXJlIChvZiB0aGUgZm9ybSBgaGVhZGVyLnBheWxvYWQuYCksIGFuZCBzZW5kcyB0aGUgc2lnbmF0dXJlIHRvIHRoZSB1c2VyJ3MgZW1haWwuXG4gICAgICogQ2xpZW50IGFwcGxpY2F0aW9ucyBjYW4gcmVjb25zdHJ1Y3QgdGhlIHRva2VuIGJ5IGNvbmNhdGVuYXRpbmcgdGhlIGBwYXJ0aWFsX3Rva2VuYCB3aXRoIHRoZSBzaWduYXR1cmUsIHByb2R1Y2luZyBhIHZhbGlkIE9JREMgdG9rZW4gb2YgdGhlIGZvcm0gYGhlYWRlci5wYXlsb2FkLnNpZ25hdHVyZWBcbiAgICAgKiBUaGUgdG9rZW4gY2FuIHRoZW4gYmUgdXNlZCB0byBhdXRoZW50aWNhdGUgdGhlIHVzZXIuXG4gICAgICpcbiAgICAgKiA+IFshSU1QT1JUQU5UXVxuICAgICAqID4gRm9yIHRoaXMgZW5kcG9pbnQgdG8gc3VjY2VlZCwgdGhlIG9yZyBtdXN0IGJlIGNvbmZpZ3VyZWQgdG86XG4gICAgICogPiAxLiBBbGxvdyB0aGUgaXNzdWVyIGBodHRwczovL3NoaW0ub2F1dGgyLmN1YmlzdC5kZXYvZW1haWwtb3RwYCBhbmQgY2xpZW50IElEIGJlaW5nIHRoZSBPcmcgSURcbiAgICAgKiA+IDIuIEhhdmUgYW4gZW1haWwgc2VuZGVyIGNvbmZpZ3VyZWQgZm9yIE9UUHNcbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiZW1haWxPdHBBdXRoXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vb2lkYy9zaXdlXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbml0aWF0ZSBsb2dpbiB2aWEgU2lnbi1pbiBXaXRoIEV0aGVyZXVtIChTSVdFKS5cbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgbG9naW4gdmlhIFNpZ24taW4gV2l0aCBFdGhlcmV1bSAoU0lXRSkuXG4gICAgICpcbiAgICAgKiBUaGlzIGVuZHBvaW50IGdlbmVyYXRlcyBhIGNoYWxsZW5nZSB3aGljaCBjYW4gYmUgYW5zd2VyZWQgKHZpYSB0aGUgY29ycmVzcG9uZGluZyBQQVRDSCBlbmRwb2ludClcbiAgICAgKiB0byBvYnRhaW4gYW4gT0lEQyB0b2tlbi4gVGhlIE9JREMgdG9rZW4gY2FuIHRoZW4gYmUgZXhjaGFuZ2VkIGZvciBhIHVzZXIgc2Vzc2lvbiB2aWEgdGhlIHN0YW5kYXJkXG4gICAgICogT0lEQyBhdXRoIHJvdXRlLlxuICAgICAqXG4gICAgICogPiBbIUlNUE9SVEFOVF1cbiAgICAgKiA+IEZvciB0aGlzIGVuZHBvaW50IHRvIHN1Y2NlZWQsIHRoZSBvcmcgbXVzdCBiZSBjb25maWd1cmVkIHRvOlxuICAgICAqID4gQWxsb3cgdGhlIGlzc3VlciBgaHR0cHM6Ly9zaGltLm9hdXRoMi5jdWJpc3QuZGV2L3Npd2VgIHdpdGggdGhlIE9yZyBJRCBhcyB0aGUgY2xpZW50IElEXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInNpd2VJbml0XCJdO1xuICAgIC8qKlxuICAgICAqIENvbXBsZXRlIGxvZ2luIHZpYSBTaWduLWluIFdpdGggRXRoZXJldW0gKFNJV0UpXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXBsZXRlIGxvZ2luIHZpYSBTaWduLWluIFdpdGggRXRoZXJldW0gKFNJV0UpXG4gICAgICpcbiAgICAgKiBJZiB0aGUgY2hhbGxlbmdlIChpc3N1ZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgUE9TVCBlbmRwb2ludCkgaXMgYW5zd2VyZWQgY29ycmVjdGx5LCB0aGlzIGVuZHBvaW50XG4gICAgICogZ2VuZXJhdGVzIGFuIE9JREMgdG9rZW4gdGhhdCBjYW4gdGhlbiBiZSBleGNoYW5nZWQgZm9yIGEgdXNlciBzZXNzaW9uIHZpYSB0aGUgc3RhbmRhcmQgT0lEQyBhdXRoIHJvdXRlLlxuICAgICAqXG4gICAgICogPiBbIUlNUE9SVEFOVF1cbiAgICAgKiA+IEZvciB0aGlzIGVuZHBvaW50IHRvIHN1Y2NlZWQsIHRoZSBvcmcgbXVzdCBiZSBjb25maWd1cmVkIHRvOlxuICAgICAqID4gQWxsb3cgdGhlIGlzc3VlciBgaHR0cHM6Ly9zaGltLm9hdXRoMi5jdWJpc3QuZGV2L3Npd2VgIHdpdGggdGhlIE9yZyBJRCBhcyB0aGUgY2xpZW50IElEXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJzaXdlQ29tcGxldGVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9vaWRjL3Npd3NcIjoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYXRlIGxvZ2luIHZpYSBTaWduLWluIFdpdGggU29sYW5hIChTSVdTKS5cbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgbG9naW4gdmlhIFNpZ24taW4gV2l0aCBTb2xhbmEgKFNJV1MpLlxuICAgICAqXG4gICAgICogVGhpcyBlbmRwb2ludCBnZW5lcmF0ZXMgYSBjaGFsbGVuZ2Ugd2hpY2ggY2FuIGJlIGFuc3dlcmVkICh2aWEgdGhlIGNvcnJlc3BvbmRpbmcgUEFUQ0ggZW5kcG9pbnQpXG4gICAgICogdG8gb2J0YWluIGFuIE9JREMgdG9rZW4uIFRoZSBPSURDIHRva2VuIGNhbiB0aGVuIGJlIGV4Y2hhbmdlZCBmb3IgYSB1c2VyIHNlc3Npb24gdmlhIHRoZSBzdGFuZGFyZFxuICAgICAqIE9JREMgYXV0aCByb3V0ZS5cbiAgICAgKlxuICAgICAqID4gWyFJTVBPUlRBTlRdXG4gICAgICogPiBGb3IgdGhpcyBlbmRwb2ludCB0byBzdWNjZWVkLCB0aGUgb3JnIG11c3QgYmUgY29uZmlndXJlZCB0bzpcbiAgICAgKiA+IEFsbG93IHRoZSBpc3N1ZXIgYGh0dHBzOi8vc2hpbS5vYXV0aDIuY3ViaXN0LmRldi9zaXdzYCB3aXRoIHRoZSBPcmcgSUQgYXMgdGhlIGNsaWVudCBJRFxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJzaXdzSW5pdFwiXTtcbiAgICAvKipcbiAgICAgKiBDb21wbGV0ZSBsb2dpbiB2aWEgU2lnbi1pbiBXaXRoIFNvbGFuYSAoU0lXUylcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGUgbG9naW4gdmlhIFNpZ24taW4gV2l0aCBTb2xhbmEgKFNJV1MpXG4gICAgICpcbiAgICAgKiBJZiB0aGUgY2hhbGxlbmdlIChpc3N1ZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgUE9TVCBlbmRwb2ludCkgaXMgYW5zd2VyZWQgY29ycmVjdGx5LCB0aGlzIGVuZHBvaW50XG4gICAgICogZ2VuZXJhdGVzIGFuIE9JREMgdG9rZW4gdGhhdCBjYW4gdGhlbiBiZSBleGNoYW5nZWQgZm9yIGEgdXNlciBzZXNzaW9uIHZpYSB0aGUgc3RhbmRhcmQgT0lEQyBhdXRoIHJvdXRlLlxuICAgICAqXG4gICAgICogPiBbIUlNUE9SVEFOVF1cbiAgICAgKiA+IEZvciB0aGlzIGVuZHBvaW50IHRvIHN1Y2NlZWQsIHRoZSBvcmcgbXVzdCBiZSBjb25maWd1cmVkIHRvOlxuICAgICAqID4gQWxsb3cgdGhlIGlzc3VlciBgaHR0cHM6Ly9zaGltLm9hdXRoMi5jdWJpc3QuZGV2L3Npd3NgIHdpdGggdGhlIE9yZyBJRCBhcyB0aGUgY2xpZW50IElEXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJzaXdzQ29tcGxldGVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9vaWRjL3RlbGVncmFtXCI6IHtcbiAgICAvKipcbiAgICAgKiBBbGxvd3MgYSB1c2VyIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIHRoZSB0ZWxlZ3JhbSBBUEkgdXNpbmcgdGhlIHRnV2ViQXBwRGF0YSB2YWx1ZVxuICAgICAqIEBkZXNjcmlwdGlvbiBBbGxvd3MgYSB1c2VyIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIHRoZSB0ZWxlZ3JhbSBBUEkgdXNpbmcgdGhlIHRnV2ViQXBwRGF0YSB2YWx1ZVxuICAgICAqIFRoZSB0b2tlbiBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOlxuICAgICAqIC0gVGhlIGBzdWJgIGZpZWxkIGlzIHRoZSB0ZWxlZ3JhbSB1c2VyIElEXG4gICAgICogLSBUaGUgYGlzc2AgZmllbGQgZGVwZW5kcyBvbiB0aGUgY2hvc2VuIGVudmlyb25tZW50OlxuICAgICAqIC0gYGh0dHBzOi8vc2hpbS5vYXV0aDIuY3ViaXN0LmRldi90ZWxlZ3JhbS9wcm9kdWN0aW9uYCBmb3IgdGhlIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRcbiAgICAgKiAtIGBodHRwczovL3NoaW0ub2F1dGgyLmN1YmlzdC5kZXYvdGVsZWdyYW0vdGVzdGAgZm9yIHRoZSB0ZXN0IGVudmlyb25tZW50XG4gICAgICogLSBUaGUgYGF1ZGAgZmllbGQgaXMgdGhlIHByb3ZpZGVkIHRlbGVncmFtIGJvdCBJRFxuICAgICAqIC0gVGhlIGBleHBgIGZpZWxkIGlzIGRlcml2ZWQgZnJvbSB0aGUgYGF1dGhfZGF0ZWAgZmllbGQgaW4gdGhlIHRlbGVncmFtIGRhdGFcbiAgICAgKlxuICAgICAqIEZhaWxzIGlmIHRoZSB0ZWxlZ3JhbSBkYXRhIGlzIGludmFsaWQgb3IgdGhlIHNpZ25hdHVyZSBpcyBpbnZhbGlkXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInRlbGVncmFtQXV0aFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L29yZ3NcIjoge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBPcmdcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIE9yZ1xuICAgICAqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBvcmdhbml6YXRpb24uIFRoZSBuZXcgb3JnIGlzIGEgY2hpbGQgb2YgdGhlXG4gICAgICogY3VycmVudCBvcmcgYW5kIGluaGVyaXRzIGl0cyBrZXktZXhwb3J0IHBvbGljeS4gVGhlIG5ldyBvcmdcbiAgICAgKiBpcyBjcmVhdGVkIHdpdGggb25lIG93bmVyLCB0aGUgY2FsbGVyIG9mIHRoaXMgQVBJLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVPcmdcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9wb2xpY2llc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBQb2xpY2llc1xuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IFBvbGljaWVzXG4gICAgICpcbiAgICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGFsbCBwb2xpY2llcyBpbiB0aGUgT3JnLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RQb2xpY2llc1wiXTtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgUG9saWN5XG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBQb2xpY3lcbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgbmFtZWQgcG9saWN5IGluIHRoZSBvcmdhbml6YXRpb24uIFRoZSB1c2VyIG1ha2luZyB0aGUgcmVxdWVzdCBpcyB0aGVcbiAgICAgKiBvd25lciBvZiB0aGUgcG9saWN5LCBnaXZpbmcgdGhlbSBlZGl0IGFjY2VzcyB0byB0aGUgcG9saWN5IGFsb25nIHdpdGggdGhlIG9yZyBvd25lcnMuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZVBvbGljeVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3BvbGljaWVzL3twb2xpY3lfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgUG9saWN5XG4gICAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBQb2xpY3lcbiAgICAgKlxuICAgICAqIERlbGV0ZSB0aGUgbmFtZWQgcG9saWN5IHdpdGggdGhlIGdpdmVuIG5hbWUgb3IgaWQuXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wiZGVsZXRlUG9saWN5XCJdO1xuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBQb2xpY3lcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIFBvbGljeVxuICAgICAqXG4gICAgICogVXBkYXRlcyB0aGUgcG9saWN5IHdpdGggdGhlIGdpdmVuIG5hbWUgb3IgaWQuXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJ1cGRhdGVQb2xpY3lcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9wb2xpY2llcy97cG9saWN5X2lkfS9sb2dzXCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgUG9saWN5IExvZ3NcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IFBvbGljeSBMb2dzXG4gICAgICpcbiAgICAgKiBSZXR1cm5zIHRoZSBsb2dzIGZvciB0aGUgZ2l2ZW4gcG9saWN5LCB3aXRoaW4gdGhlIGdpdmVuIHRpbWVmcmFtZS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiZ2V0UG9saWN5TG9nc1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3BvbGljaWVzL3twb2xpY3lfaWR9L3t2ZXJzaW9ufVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IFBvbGljeVxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgUG9saWN5XG4gICAgICpcbiAgICAgKiBSZXR1cm5zIHRoZSBzcGVjaWZpZWQgdmVyc2lvbiBvciBsYXRlc3Qgb2YgYSBuYW1lZCBwb2xpY3kgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBvciBpZC5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJnZXRQb2xpY3lcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9wb2xpY2llcy97cG9saWN5X2lkfS97dmVyc2lvbn0vaW52b2tlXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbnZva2UgUG9saWN5XG4gICAgICogQGRlc2NyaXB0aW9uIEludm9rZSBQb2xpY3lcbiAgICAgKlxuICAgICAqIEludm9rZXMgdGhlIFtOYW1lZFBvbGljeV0gd2l0aCB0aGUgZ2l2ZW4gSUQgd2l0aCB0aGUgZ2l2ZW4gcmVxdWVzdCBpbmZvcm1hdGlvbi5cbiAgICAgKiBJdCBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgV2FzbSBwb2xpY2llcy5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiaW52b2tlUG9saWN5XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcG9saWN5L2J1Y2tldHNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgQnVja2V0c1xuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IEJ1Y2tldHNcbiAgICAgKlxuICAgICAqIExpc3QgYXZhaWxhYmxlIG1ldGEgaW5mb3JtYXRpb24gYWJvdXQgYWxsIHBvbGljeSBLViBzdG9yZSBidWNrZXRzIGluIHRoZSBvcmcuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdFBvbGljeUJ1Y2tldHNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9wb2xpY3kvYnVja2V0cy97YnVja2V0X25hbWV9XCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgQnVja2V0XG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBCdWNrZXRcbiAgICAgKlxuICAgICAqIFJldHVybnMgdGhlIG1ldGEgaW5mb3JtYXRpb24gb2YgYSBwb2xpY3kgS1Ygc3RvcmUgYnVja2V0LlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImdldFBvbGljeUJ1Y2tldFwiXTtcbiAgICAvKipcbiAgICAgKiBVcGRhdGUgQnVja2V0XG4gICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBCdWNrZXRcbiAgICAgKlxuICAgICAqIFVwZGF0ZXMgbWV0YSBpbmZvcm1hdGlvbiBmb3IgYW4gZXhpc3RpbmcgcG9saWN5IEtWIHN0b3JlIGJ1Y2tldC5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInVwZGF0ZVBvbGljeUJ1Y2tldFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3BvbGljeS9pbXBvcnRfa2V5XCI6IHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgUG9saWN5IEltcG9ydCBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFBvbGljeSBJbXBvcnQgS2V5XG4gICAgICpcbiAgICAgKiBHZW5lcmF0ZSBhbiBlcGhlbWVyYWwga2V5IHRoYXQgYSBjbGllbnQgY2FuIHVzZSBmb3IgZW5jcnlwdGluZyBkYXRhIHJlbGF0ZWQgdG8gV2FzbVxuICAgICAqIHBvbGljaWVzIChlLmcuLCBwb2xpY3kgc2VjcmV0cykuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiY3JlYXRlUG9saWN5SW1wb3J0S2V5XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcG9saWN5L3NlY3JldHNcIjoge1xuICAgIC8qKlxuICAgICAqIEdldCB0aGUgb3JnLXdpZGUgcG9saWN5IHNlY3JldHMuXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCB0aGUgb3JnLXdpZGUgcG9saWN5IHNlY3JldHMuXG4gICAgICpcbiAgICAgKiBOb3RlIHRoYXQgdGhpcyBvbmx5IHJldHVybnMgdGhlIGtleXMgZm9yIHRoZSBzZWNyZXRzLCBvbWl0dGluZyB0aGUgdmFsdWVzLlxuICAgICAqIFRoZSB2YWx1ZXMgYXJlIHNlY3JldCBhbmQgYXJlIG5vdCBhY2Nlc3NpYmxlIG91dHNpZGUgV2FzbSBwb2xpY3kgZXhlY3V0aW9uLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImdldFBvbGljeVNlY3JldHNcIl07XG4gICAgLyoqXG4gICAgICogVXBkYXRlIG9yZy1sZXZlbCBwb2xpY3kgc2VjcmV0c1xuICAgICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgb3JnLWxldmVsIHBvbGljeSBzZWNyZXRzXG4gICAgICpcbiAgICAgKiBUaGUgcHJvdmlkZWQgc2VjcmV0cyB3aWxsIHJlcGxhY2UgYW55IGV4aXN0aW5nIG9yZy1sZXZlbCBzZWNyZXRzLlxuICAgICAqIEl0IGZhaWxzIGlmIHRoZSBzZWNyZXRzIHdlcmVuJ3QgcHJldmlvdXNseSBjcmVhdGVkLlxuICAgICAqXG4gICAgICogTXVzdCBiZSBwZXJtaXR0ZWQgYnkgdGhlIHBvbGljeSBzZWNyZXQncyBlZGl0IHBvbGljeSBpZiBzZXQsIGFuZCB0aGUgb3JnJ3MgZWRpdCBwb2xpY3kgb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXBkYXRlUG9saWN5U2VjcmV0c1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3BvbGljeS9zZWNyZXRzL3tzZWNyZXRfbmFtZX1cIjoge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBvciBvdmVyd3JpdGUgYW4gb3JnLWxldmVsIHBvbGljeSBzZWNyZXQuXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBvciBvdmVyd3JpdGUgYW4gb3JnLWxldmVsIHBvbGljeSBzZWNyZXQuXG4gICAgICogTXVzdCBiZSBwZXJtaXR0ZWQgYnkgdGhlIHBvbGljeSBzZWNyZXQncyBlZGl0IHBvbGljeSBpZiBzZXQsIGFuZCB0aGUgb3JnJ3MgZWRpdCBwb2xpY3kgb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHB1dDogb3BlcmF0aW9uc1tcInNldFBvbGljeVNlY3JldFwiXTtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgYW4gb3JnLWxldmVsIHBvbGljeSBzZWNyZXQuXG4gICAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBhbiBvcmctbGV2ZWwgcG9saWN5IHNlY3JldC5cbiAgICAgKiBNdXN0IGJlIHBlcm1pdHRlZCBieSB0aGUgcG9saWN5IHNlY3JldCdzIGVkaXQgcG9saWN5IGlmIHNldCwgYW5kIHRoZSBvcmcncyBlZGl0IHBvbGljeSBvdGhlcndpc2UuXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wiZGVsZXRlUG9saWN5U2VjcmV0XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcG9saWN5L3dhc21cIjoge1xuICAgIC8qKlxuICAgICAqIFVwbG9hZCBXYXNtIFBvbGljeVxuICAgICAqIEBkZXNjcmlwdGlvbiBVcGxvYWQgV2FzbSBQb2xpY3lcbiAgICAgKlxuICAgICAqIFJldHVybnMgYSBzaWduZWQgVVJMIGZvciB1cGxvYWRpbmcgYSB3YXNtIHBvbGljeSB0byBDdWJlU2lnbmVyLiBUaGUgcG9saWN5IHdpbGwgYmVcbiAgICAgKiBkZWxldGVkIGlmIG5vdCBhdHRhY2hlZCB0byBhIFtOYW1lZFBvbGljeV0gc29vbiBhZnRlciB0aGUgdXBsb2FkIGhhcyBiZWVuIGNvbXBsZXRlZC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1widXBsb2FkV2FzbVBvbGljeVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzXCI6IHtcbiAgICAvKipcbiAgICAgKiBMaXN0IFJvbGVzXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgUm9sZXNcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBhbGwgcm9sZXMgaW4gYW4gb3JnYW5pemF0aW9uIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBpcyBhbGxvd2VkIHRvIGFjY2Vzcy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0Um9sZXNcIl07XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIFJvbGVcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFJvbGVcbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgcm9sZSBpbiBhbiBvcmdhbml6YXRpb24uIFVubGVzcyB0aGUgbG9nZ2VkLWluIHVzZXJcbiAgICAgKiBpcyB0aGUgb3duZXIsIHRoZXkgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgcm9sZS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiY3JlYXRlUm9sZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IFJvbGVcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IFJvbGVcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBpbmZvcm1hdGlvbiBhYm91dCBhIHJvbGUgaW4gYW4gb3JnYW5pemF0aW9uXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0Um9sZVwiXTtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgUm9sZVxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgUm9sZVxuICAgICAqXG4gICAgICogRGVsZXRlcyBhIHJvbGUgaW4gYW4gb3JnYW5pemF0aW9uLlxuICAgICAqXG4gICAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICAgKiBBZGRpdGlvbmFsbHksIHRoZSByb2xlJ3MgZWRpdCBwb2xpY3kgKGlmIHNldCkgbXVzdCBwZXJtaXQgdGhlIHVwZGF0ZS5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJkZWxldGVSb2xlXCJdO1xuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBSb2xlXG4gICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBSb2xlXG4gICAgICpcbiAgICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIGEgcm9sZSAodGhpcyByZXF1aXJlcyB0aGUgYG1hbmFnZTpyb2xlOnVwZGF0ZTplbmFibGVgIHNjb3BlKS5cbiAgICAgKiBVcGRhdGVzIHRoZSByb2xlJ3MgcG9saWNpZXMgKHRoaXMgcmVxdWlyZXMgdGhlIGBtYW5hZ2U6cm9sZTp1cGRhdGU6cG9saWN5YCBzY29wZSkuXG4gICAgICogVXBkYXRlcyB0aGUgcm9sZSdzIGVkaXQgcG9saWNpZXMgKHRoaXMgcmVxdWlyZXMgdGhlIGBtYW5hZ2U6cm9sZTp1cGRhdGU6ZWRpdFBvbGljeWAgc2NvcGUpLlxuICAgICAqXG4gICAgICogVGhlIHVzZXIgbXVzdCBiZSBpbiB0aGUgcm9sZSBvciBhbiBvd25lciBvZiB0aGUgb3JnYW5pemF0aW9uLlxuICAgICAqIEFkZGl0aW9uYWxseSwgdGhlIHJvbGUncyBlZGl0IHBvbGljeSAoaWYgc2V0KSBtdXN0IHBlcm1pdCB0aGUgdXBkYXRlLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXBkYXRlUm9sZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfS9hZGRfa2V5c1wiOiB7XG4gICAgLyoqXG4gICAgICogQWRkIEtleXNcbiAgICAgKiBAZGVzY3JpcHRpb24gQWRkIEtleXNcbiAgICAgKlxuICAgICAqIEFkZHMgYSBsaXN0IG9mIGV4aXN0aW5nIGtleXMgdG8gYW4gZXhpc3Rpbmcgcm9sZS5cbiAgICAgKlxuICAgICAqIFRoZSBrZXkgb3duZXIgaXMgYWxsb3dlZCB0byBhZGQgdGhlaXIga2V5IHRvIGFueSByb2xlIHRoYXQgdGhleSBhcmUgaW4uXG4gICAgICpcbiAgICAgKiBJbiBcIm9yZyBjdXN0b2R5XCIgbW9kZWwgb25seSwgb3JnIG93bmVycyBhcmUgYWxsb3dlZCB0byBhZGQgYW55IGtleSB0byBhbnkgcm9sZS5cbiAgICAgKlxuICAgICAqIEluIGFsbCBjYXNlczogdGhlIHJvbGUncyBlZGl0IHBvbGljeSwgYXMgd2VsbCBhcyB0aGUgZWRpdCBwb2xpY3kgb2YgZWFjaCBvZiB0aGUga2V5cywgbXVzdCBwZXJtaXQgdGhlIHVwZGF0ZS5cbiAgICAgKlxuICAgICAqIEVhY2ggcmVxdWVzdCB0byB0aGlzIGVuZHBvaW50IGNhbiBhZGQsIGF0IG1heGltdW0sIDMyIGtleXMuXG4gICAgICovXG4gICAgcHV0OiBvcGVyYXRpb25zW1wiYWRkS2V5c1RvUm9sZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfS9hZGRfdXNlci97dXNlcl9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEFkZCBVc2VyXG4gICAgICogQGRlc2NyaXB0aW9uIEFkZCBVc2VyXG4gICAgICpcbiAgICAgKiBBZGRzIGFuIGV4aXN0aW5nIHVzZXIgdG8gYW4gZXhpc3Rpbmcgcm9sZS5cbiAgICAgKlxuICAgICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgb3Igb3JnIG93bmVycyBjYW4gYWRkIHVzZXJzIHRvIGEgcm9sZS5cbiAgICAgKiBBZGRpdGlvbmFsbHksIHRoZSByb2xlJ3MgZWRpdCBwb2xpY3kgKGlmIHNldCkgbXVzdCBwZXJtaXQgdGhlIHVwZGF0ZS5cbiAgICAgKi9cbiAgICBwdXQ6IG9wZXJhdGlvbnNbXCJhZGRVc2VyVG9Sb2xlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L2F0dGVzdFwiOiB7XG4gICAgLyoqXG4gICAgICogQXR0ZXN0IHRvIFJvbGUgUHJvcGVydGllc1xuICAgICAqIEBkZXNjcmlwdGlvbiBBdHRlc3QgdG8gUm9sZSBQcm9wZXJ0aWVzXG4gICAgICpcbiAgICAgKiBUaGUgcmVzcG9uc2UgaXMgYSBKV1Qgd2hvc2UgY2xhaW1zIGFyZSB0aGUgcmVxdWVzdGVkIHJvbGUgcHJvcGVydGllcy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJhdHRlc3RSb2xlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L2tleXNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgUm9sZSBLZXlzXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgUm9sZSBLZXlzXG4gICAgICpcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGFsbCBrZXlzIGluIGEgcm9sZS5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0Um9sZUtleXNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH0va2V5cy97a2V5X2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IGEgS2V5IGluIFJvbGVcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IGEgS2V5IGluIFJvbGVcbiAgICAgKlxuICAgICAqIFJldHVybnMgdGhlIGtleS1pbi1yb2xlIGluZm9ybWF0aW9uIGZvciBhIGdpdmVuIGtleSBhbmQgcm9sZS4gSWYgYGRldGFpbHNgIGlzIHNldCB0byBgdHJ1ZWAsXG4gICAgICogdGhpcyBlbmRwb2ludCByZXR1cm5zIGRldGFpbGVkIGtleSBpbmZvcm1hdGlvbi5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJnZXRSb2xlS2V5XCJdO1xuICAgIC8qKlxuICAgICAqIFJlbW92ZSBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVtb3ZlIEtleVxuICAgICAqXG4gICAgICogUmVtb3ZlcyBhIGdpdmVuIGtleSBmcm9tIGEgcm9sZS5cbiAgICAgKlxuICAgICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgb3Igb3JnIG93bmVycyBjYW4gcmVtb3ZlIGtleXMgZnJvbSBhIHJvbGUuXG4gICAgICogQWRkaXRpb25hbGx5LCBib3RoIHRoZSByb2xlJ3MgYW5kIHRoZSBrZXkncyBlZGl0IHBvbGljeSBtdXN0IHBlcm1pdCB0aGUgdXBkYXRlLlxuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcInJlbW92ZUtleUZyb21Sb2xlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L3Rva2Vuc1wiOiB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIFRva2VuXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBUb2tlblxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBhY2Nlc3MgdG9rZW4gZm9yIGEgZ2l2ZW4gcm9sZSAodG8gYmUgdXNlZCBhcyBcIkFQSSBLZXlcIiBmb3IgYWxsIHNpZ25pbmcgYWN0aW9ucykuXG4gICAgICogVGhlIGByZXN0cmljdGVkX2FjdGlvbnNgIGZpZWxkIG9uIHRoZSBbUm9sZV0gZGV0ZXJtaW5lcyB0aGUgbWVtYmVyc2hpcCByb2xlIHRoYXQgaXMgcmVxdWlyZWQgdG9cbiAgICAgKiBjcmVhdGUgdG9rZW5zLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVSb2xlVG9rZW5cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH0vdHhcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgSGlzdG9yaWNhbCBUcmFuc2FjdGlvbnNcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBIaXN0b3JpY2FsIFRyYW5zYWN0aW9uc1xuICAgICAqXG4gICAgICogUmV0dXJucyBhIHNvcnRlZCwgcGFnaW5hdGVkIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIHNpZ25lZCBieSB0aGUgZ2l2ZW4gcm9sZSxcbiAgICAgKiBvcmRlcmVkIGZyb20gbW9zdCByZWNlbnQgZmlyc3QuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdEhpc3RvcmljYWxSb2xlVHhcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH0vdXNlcnNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgUm9sZSBVc2Vycy5cbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBSb2xlIFVzZXJzLlxuICAgICAqXG4gICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBhbGwgdXNlcnMgd2hvIGhhdmUgYWNjZXNzIHRvIGEgcm9sZS5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0Um9sZVVzZXJzXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L3VzZXJzL3t1c2VyX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogUmVtb3ZlIFVzZXJcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVtb3ZlIFVzZXJcbiAgICAgKlxuICAgICAqIFJlbW92ZXMgYW4gZXhpc3RpbmcgdXNlciBmcm9tIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAgICpcbiAgICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG9yZyBvd25lcnMgY2FuIHJlbW92ZSB1c2VycyBmcm9tIGEgcm9sZS5cbiAgICAgKiBBZGRpdGlvbmFsbHksIHRoZSByb2xlJ3MgZWRpdCBwb2xpY3kgKGlmIHNldCkgbXVzdCBwZXJtaXQgdGhlIHVwZGF0ZS5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJyZW1vdmVVc2VyRnJvbVJvbGVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9ycGNcIjoge1xuICAgIC8qKlxuICAgICAqIEhpZ2gtbGV2ZWwgUlBDIGVuZHBvaW50LlxuICAgICAqIEBkZXNjcmlwdGlvbiBIaWdoLWxldmVsIFJQQyBlbmRwb2ludC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wicnBjQXBpXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vc2Vzc2lvblwiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBzZXNzaW9uc1xuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IHNlc3Npb25zXG4gICAgICpcbiAgICAgKiBJZiBubyBxdWVyeSBwYXJhbWV0ZXJzIGFyZSBwcm92aWRlZCwgYWxsIGFjdGl2ZSBzZXNzaW9ucyBmb3IgdGhlIGN1cnJlbnQgdXNlciBhcmUgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBJZiBhIGByb2xlYCBxdWVyeSBwYXJhbWV0ZXIgaXMgcHJvdmlkZWQsIGFsbCBhY3RpdmUgc2Vzc2lvbnMgZm9yIHRoZSBzZWxlY3RlZCByb2xlIGFyZSByZXR1cm5lZFxuICAgICAqIChhc3NlcnRpbmcgZmlyc3QgdGhhdCB0aGUgY3VycmVudCB1c2VyIGhhcyBwZXJtaXNzaW9ucyB0byByZWFkIHNlc3Npb25zIGZvciB0aGF0IHJvbGUpLlxuICAgICAqXG4gICAgICogSWYgYSBgcm9sZV9jcmVhdGVkX2J5YCBxdWVyeSBwYXJhbWV0ZXIgaXMgcHJvdmlkZWQsIGFsbCBhY3RpdmUgKipyb2xlKiogc2Vzc2lvbnMgY3JlYXRlZCBieSB0aGF0XG4gICAgICogdXNlciBhcmUgcmV0dXJuZWQgKGdhdGVkIGJ5IHRoZSBzYW1lIHBlcm1pc3Npb25zIGFzIGxpc3RpbmcgdGhhdCB1c2VyJ3Mgb3duIHNlc3Npb25zOiB0aGVcbiAgICAgKiBjdXJyZW50IHVzZXIgbXVzdCBiZSB0aGF0IHVzZXIgb3IgYW4gb3JnIG93bmVyKS4gV2hlbiBjb21iaW5lZCB3aXRoIGByb2xlYCwgdGhlIHJlc3VsdCBpc1xuICAgICAqIGZ1cnRoZXIgcmVzdHJpY3RlZCB0byB0aGUgc2Vzc2lvbnMgY3JlYXRlZCBieSB0aGF0IHVzZXIgZm9yIHRoZSBnaXZlbiByb2xlOyB0aGUgcGVybWlzc2lvbiBtb2RlbFxuICAgICAqIGlzIHVuY2hhbmdlZC4gVGhlIGB1c2VyYCBzZWxlY3RvciBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBgcm9sZWAgb3IgYHJvbGVfY3JlYXRlZF9ieWAuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdFNlc3Npb25zXCJdO1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBuZXcgdXNlciBzZXNzaW9uIChtYW5hZ2VtZW50IGFuZC9vciBzaWduaW5nKVxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgbmV3IHVzZXIgc2Vzc2lvbiAobWFuYWdlbWVudCBhbmQvb3Igc2lnbmluZylcbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgdXNlciBzZXNzaW9uLCBzaWxlbnRseSB0cnVuY2F0aW5nIHJlcXVlc3RlZCBzZXNzaW9uIGFuZCBhdXRoIGxpZmV0aW1lcyB0byBiZSBhdFxuICAgICAqIG1vc3QgcmVxdWVzdG9yJ3Mgc2Vzc2lvbiBhbmQgYXV0aCBsaWZldGltZSwgcmVzcGVjdGl2ZWx5LiBUbyBleHRlbmQgdGhlIHJlcXVlc3RlZCBsaWZldGltZXMgcGFzdFxuICAgICAqIHRoZSByZXF1ZXN0b3Incywgc2V0IHRoZSBgZXh0ZW5kX2xpZmV0aW1lc2AgZmxhZyBpbiB0aGUgcmVxdWVzdCBib2R5IChpbiB3aGljaCBjYXNlIE1GQSB3aWxsXG4gICAgICogYmUgcmVxdWlyZWQpLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVTZXNzaW9uXCJdO1xuICAgIC8qKlxuICAgICAqIFJldm9rZSBBTEwgZXhpc3RpbmcgdXNlciBvciByb2xlIHNlc3Npb24ocylcbiAgICAgKiBAZGVzY3JpcHRpb24gUmV2b2tlIEFMTCBleGlzdGluZyB1c2VyIG9yIHJvbGUgc2Vzc2lvbihzKVxuICAgICAqXG4gICAgICogSW1tZWRpYXRlbHkgcmV2b2tlcyBleGlzdGluZyBzZXNzaW9ucywgcHJldmVudGluZyB0aGVtIGZyb20gYmVpbmcgdXNlZCBvciByZWZyZXNoZWQuXG4gICAgICpcbiAgICAgKiBJZiBubyBxdWVyeSBwYXJhbXMgYXJlIHByb3ZpZGVkLCAqKkFMTCoqIHNlc3Npb25zIGZvciB0aGUgKipDVVJSRU5UIFVTRVIqKiBhcmUgcmV2b2tlZFxuICAgICAqICh0byByZXZva2UganVzdCB0aGUgY3VycmVudCB1c2VyIHNlc3Npb24sIHVzZSBgREVMRVRFIC92MC9vcmcvPG9yZ19pZD4vc2Vzc2lvbi9zZWxmYClcbiAgICAgKlxuICAgICAqIElmIGEgYHJvbGVgIHF1ZXJ5IHBhcmFtZXRlciBpcyBwcm92aWRlZCwgKipBTEwqKiBzZXNzaW9uIGZvciAqKlRIQVQgUk9MRSoqIGFyZSByZXZva2VkXG4gICAgICogKGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIHBlcm1pc3Npb25zIHRvIHJldm9rZSBzZXNzaW9ucyBmb3IgdGhlIHJvbGUpLlxuICAgICAqXG4gICAgICogSWYgYSBgcm9sZV9jcmVhdGVkX2J5YCBxdWVyeSBwYXJhbWV0ZXIgaXMgcHJvdmlkZWQsICoqUk9MRSoqIHNlc3Npb25zIGNyZWF0ZWQgYnkgKipUSEFUIFVTRVIqKlxuICAgICAqIGFyZSByZXZva2VkIChnYXRlZCBieSB0aGUgc2FtZSBwZXJtaXNzaW9ucyBhcyByZXZva2luZyB0aGF0IHVzZXIncyBvd24gc2Vzc2lvbnM6IHRoZSBjdXJyZW50XG4gICAgICogdXNlciBtdXN0IGJlIHRoYXQgdXNlciBvciBhbiBvcmcgb3duZXIpLiBVc2VyIHNlc3Npb25zIGFyZSBub3QgYWZmZWN0ZWQuIFVubGVzcyB0aGUgY3VycmVudFxuICAgICAqIHVzZXIgaXMgYW4gb3JnIG93bmVyLCBvbmx5IHNlc3Npb25zIGZvciByb2xlcyB0aGUgY3VycmVudCB1c2VyIGlzICoqc3RpbGwgYSBtZW1iZXIgb2YqKiBhcmVcbiAgICAgKiByZXZva2VkIChzbyBhIHVzZXIgY2Fubm90IHJldm9rZSBzZXNzaW9ucyBmb3IgYSByb2xlIHRoZXkgaGF2ZSBzaW5jZSBiZWVuIHJlbW92ZWQgZnJvbSk7IG9yZ1xuICAgICAqIG93bmVycyByZXZva2UgYWNyb3NzIGFsbCByb2xlcy5cbiAgICAgKlxuICAgICAqIElmICoqYm90aCoqIGEgYHJvbGVgIGFuZCBhIGByb2xlX2NyZWF0ZWRfYnlgIHF1ZXJ5IHBhcmFtZXRlciBhcmUgcHJvdmlkZWQsIHRoZSBzZWxlY3Rpb24gYWJvdmVcbiAgICAgKiBpcyBuYXJyb3dlZCB0byBvbmx5IHRoZSBzZXNzaW9ucyBjcmVhdGVkIGJ5ICoqVEhBVCBVU0VSKiogZm9yICoqVEhBVCBST0xFKiouIFRoZSBwZXJtaXNzaW9uXG4gICAgICogbW9kZWwgaXMgdW5jaGFuZ2VkIGZyb20gdGhlIGByb2xlX2NyZWF0ZWRfYnlgLW9ubHkgY2FzZSAodGhlIGN1cnJlbnQgdXNlciBtdXN0IGJlIHRoYXQgdXNlciBvclxuICAgICAqIGFuIG9yZyBvd25lciwgYW5kIG5vbi1vd25lcnMgYXJlIHN0aWxsIGxpbWl0ZWQgdG8gcm9sZXMgdGhleSBhcmUgYSBtZW1iZXIgb2YpOyBgcm9sZWAgaXMgcHVyZWx5XG4gICAgICogYW4gYWRkaXRpb25hbCBmaWx0ZXIuXG4gICAgICpcbiAgICAgKiBUaGUgYHVzZXJgIHNlbGVjdG9yIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIGByb2xlYCBvciBgcm9sZV9jcmVhdGVkX2J5YC5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJyZXZva2VTZXNzaW9uc1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3Nlc3Npb24vc2VsZlwiOiB7XG4gICAgLyoqXG4gICAgICogUmV2b2tlIGN1cnJlbnQgc2Vzc2lvblxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXZva2UgY3VycmVudCBzZXNzaW9uXG4gICAgICpcbiAgICAgKiBJbW1lZGlhdGVseSByZXZva2VzIHRoZSBjdXJyZW50IHNlc3Npb24sIHByZXZlbnRpbmcgaXQgZnJvbSBiZWluZyB1c2VkIG9yIHJlZnJlc2hlZFxuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcInJldm9rZUN1cnJlbnRTZXNzaW9uXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vc2Vzc2lvbi97c2Vzc2lvbl9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBzZXNzaW9uIGluZm9ybWF0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBzZXNzaW9uIGluZm9ybWF0aW9uXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0U2Vzc2lvblwiXTtcbiAgICAvKipcbiAgICAgKiBSZXZva2UgYSBzZXNzaW9uXG4gICAgICogQGRlc2NyaXB0aW9uIFJldm9rZSBhIHNlc3Npb25cbiAgICAgKlxuICAgICAqIEltbWVkaWF0ZWx5IHJldm9rZXMgYW4gZXhpc3Rpbmcgc2Vzc2lvbiwgcHJldmVudGluZyBpdCBmcm9tIGJlaW5nIHVzZWQgb3IgcmVmcmVzaGVkXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wicmV2b2tlU2Vzc2lvblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3NvbGFuYS9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIFNvbGFuYSBNZXNzYWdlXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gU29sYW5hIE1lc3NhZ2VcbiAgICAgKlxuICAgICAqIFNpZ25zIGEgU29sYW5hIG1lc3NhZ2Ugd2l0aCBhIGdpdmVuIGtleS5cbiAgICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wic29sYW5hU2lnblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3N1aS9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIGEgc2VyaWFsaXplZCBTVUkgdHJhbnNhY3Rpb24uXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gYSBzZXJpYWxpemVkIFNVSSB0cmFuc2FjdGlvbi5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJzdWlTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdGVuZGVybWludC9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIGEgdGVuZGVybWludCBtZXNzYWdlLlxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIGEgdGVuZGVybWludCBtZXNzYWdlLlxuICAgICAqXG4gICAgICogU2lnbnMgdGhlIGdpdmVuIGJhc2UtNjQgZW5jb2RlZCB2b3RlIG9yIHByb3Bvc2FsIHdpdGggdGhlIGdpdmVuIHRlbmRlcm1pbnQga2V5LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJ0ZW5kZXJtaW50U2lnblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3Rva2VuL2tleXNcIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBUb2tlbi1BY2Nlc3NpYmxlIEtleXNcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IFRva2VuLUFjY2Vzc2libGUgS2V5c1xuICAgICAqXG4gICAgICogUmV0cmlldmVzIHRoZSBrZXlzIHRoYXQgYSB1c2VyIG9yIHJvbGUgc2Vzc2lvbiBjYW4gYWNjZXNzLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RUb2tlbktleXNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS91c2VyL21lXCI6IHtcbiAgICAvKipcbiAgICAgKiBVc2VyIEluZm9cbiAgICAgKiBAZGVzY3JpcHRpb24gVXNlciBJbmZvXG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgdXNlci5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJhYm91dE1lXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlci9tZS9lbWFpbFwiOiB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhdGUgUmVzZXQgVmVyaWZpZWQgRW1haWwgRmxvd1xuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSBSZXNldCBWZXJpZmllZCBFbWFpbCBGbG93XG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInVzZXJSZXNldEVtYWlsSW5pdFwiXTtcbiAgICAvKipcbiAgICAgKiBGaW5hbGl6ZSBhIFJlc2V0IFZlcmlmaWVkIEVtYWlsIEZsb3dcbiAgICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgYSBSZXNldCBWZXJpZmllZCBFbWFpbCBGbG93XG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJ1c2VyUmVzZXRFbWFpbENvbXBsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlci9tZS9leHBvcnRcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3Qgb3V0c3RhbmRpbmcgdXNlci1leHBvcnQgcmVxdWVzdHNcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBvdXRzdGFuZGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0c1xuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcInVzZXJFeHBvcnRMaXN0XCJdO1xuICAgIC8qKlxuICAgICAqIEluaXRpYXRlIGEgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSBhIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICAgKlxuICAgICAqIFRoaXMgc3RhcnRzIGEgZGVsYXkgKHdob3NlIGxlbmd0aCBpcyBkZXRlcm1pbmVkIGJ5IE9yZy13aWRlIHNldHRpbmdzKVxuICAgICAqIGJlZm9yZSBleHBvcnQgY2FuIGJlIGNvbXBsZXRlZCwgYW5kIHJldHVybnMgYSB0aWNrZXQgdGhhdCBjYW4gYmUgdXNlZFxuICAgICAqIHRvIGNvbXBsZXRlIHRoZSBleHBvcnQgb25jZSB0aGUgdGltZXIgaGFzIGV4cGlyZWQuXG4gICAgICpcbiAgICAgKiBPbmx5IG9uZSB1c2VyLWV4cG9ydCByZXF1ZXN0IGNhbiBiZSBhY3RpdmUgZm9yIGEgZ2l2ZW4ga2V5LiBJZiB0aGVyZVxuICAgICAqIGlzIGFscmVhZHkgYW4gYWN0aXZlIGV4cG9ydCwgdGhpcyBlbmRwb2ludCB3aWxsIHJldHVybiBhbiBlcnJvci4gVG9cbiAgICAgKiBjcmVhdGUgYSBuZXcgcmVxdWVzdCwgZmlyc3QgZGVsZXRlIHRoZSBleGlzdGluZyBvbmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInVzZXJFeHBvcnRJbml0XCJdO1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSBhbiBleGlzdGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0XG4gICAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBhbiBleGlzdGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0XG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1widXNlckV4cG9ydERlbGV0ZVwiXTtcbiAgICAvKipcbiAgICAgKiBDb21wbGV0ZSBhIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGUgYSB1c2VyLWV4cG9ydCByZXF1ZXN0XG4gICAgICpcbiAgICAgKiBUaGlzIGVuZHBvaW50IGNhbiBiZSBjYWxsZWQgb25seSBhZnRlciBpbml0aWF0aW5nIGEgdXNlci1leHBvcnQgcmVxdWVzdCB2aWFcbiAgICAgKiB0aGUgYHVzZXJfZXhwb3J0X2luaXRgIEFQSSwgYW5kIG9ubHkgd2l0aGluIHRoZSBzdWJzZXF1ZW50IGV4cG9ydCB3aW5kb3dcbiAgICAgKiAoaS5lLiwgYWZ0ZXIgdGhlIGV4cG9ydCBkZWxheSBoYXMgcGFzc2VkIGFuZCBiZWZvcmUgdGhlIHJlcXVlc3QgaGFzIGV4cGlyZWQpLlxuICAgICAqXG4gICAgICogVG8gY2hlY2sgb24gdGhlIHN0YXR1cyBvZiBhbiBleHBvcnQgcmVxdWVzdCwgc2VlIHRoZSBgdXNlcl9leHBvcnRfbGlzdGAgQVBJLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXNlckV4cG9ydENvbXBsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlci9tZS9maWRvXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbml0aWF0ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleS5cbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXkuXG4gICAgICpcbiAgICAgKiBJZiBhIGRpc2NvdmVyYWJsZSBrZXkgaXMgcmVxdWVzdGVkLCB1c2VyIHZlcmlmaWNhdGlvbiAoUElOKSBpcyByZXF1aXJlZC5cbiAgICAgKlxuICAgICAqIEdlbmVyYXRlcyBhIGNoYWxsZW5nZSB0aGF0IG11c3QgYmUgYW5zd2VyZWQgdG8gcHJvdmUgb3duZXJzaGlwIG9mIGEga2V5LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJ1c2VyUmVnaXN0ZXJGaWRvSW5pdFwiXTtcbiAgICAvKipcbiAgICAgKiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgICAqXG4gICAgICogQWNjZXB0cyB0aGUgcmVzcG9uc2UgdG8gdGhlIGNoYWxsZW5nZSBnZW5lcmF0ZWQgYnkgdGhlIFBPU1QgdG8gdGhpcyBlbmRwb2ludC5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInVzZXJSZWdpc3RlckZpZG9Db21wbGV0ZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3VzZXIvbWUvZmlkby97Zmlkb19pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSBGSURPIGtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgRklETyBrZXlcbiAgICAgKlxuICAgICAqIERlbGV0ZXMgYSBGSURPIGtleSBmcm9tIHRoZSB1c2VyJ3MgYWNjb3VudCAoaWYgdGhlIGtleSBpcyBub3QgdGhlIHNvbGUgTUZBIGZhY3RvcikuIE1GQSBpcyBhbHdheXMgcmVxdWlyZWQuXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1widXNlckRlbGV0ZUZpZG9cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS91c2VyL21lL3RvdHBcIjoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgVE9UUCBSZXNldFxuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplIFRPVFAgUmVzZXRcbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgVE9UUCBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIHRoYXQgdGhlIG5ldyBUT1RQXG4gICAgICogd2FzIHN1Y2Nlc3NmdWxseSBpbXBvcnRlZCBpbnRvIGFuIGF1dGhlbnRpY2F0b3IgYXBwLlxuICAgICAqXG4gICAgICogVGhpcyBvcGVyYXRpb24gaXMgYWxsb3dlZCBpZiBFSVRIRVJcbiAgICAgKiAtIHRoZSB1c2VyIGFjY291bnQgaXMgbm90IHlldCBpbml0aWFsaXplZCBhbmQgbm8gVE9UUCBpcyBhbHJlYWR5IHNldCwgT1JcbiAgICAgKiAtIHRoZSB1c2VyIGhhcyBub3QgY29uZmlndXJlZCBhbnkgYXV0aCBmYWN0b3JzO1xuICAgICAqIG90aGVyd2lzZSwgTUZBIGlzIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJ1c2VyUmVzZXRUb3RwSW5pdFwiXTtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgVE9UUFxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgVE9UUFxuICAgICAqXG4gICAgICogRGVsZXRlcyBUT1RQIGZyb20gdGhlIHVzZXIncyBhY2NvdW50IChpZiBUT1RQIGlzIG5vdCB0aGUgc29sZSBNRkEgZmFjdG9yKS4gTUZBIGlzIGFsd2F5cyByZXF1aXJlZC5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJ1c2VyRGVsZXRlVG90cFwiXTtcbiAgICAvKipcbiAgICAgKiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgICAqXG4gICAgICogQ2hlY2tzIGlmIHRoZSByZXNwb25zZSBjb250YWlucyB0aGUgY29ycmVjdCBUT1RQIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGVcbiAgICAgKiBjaGFsbGVuZ2UgZ2VuZXJhdGVkIGJ5IHRoZSBQT1NUIG1ldGhvZCBvZiB0aGlzIGVuZHBvaW50LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXNlclJlc2V0VG90cENvbXBsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlci9tZS90b3RwL3ZlcmlmeVwiOiB7XG4gICAgLyoqXG4gICAgICogVmVyaWZ5IFRPVFBcbiAgICAgKiBAZGVzY3JpcHRpb24gVmVyaWZ5IFRPVFBcbiAgICAgKlxuICAgICAqIENoZWNrcyBpZiBhIGdpdmVuIGNvZGUgbWF0Y2hlcyB0aGUgY3VycmVudCBUT1RQIGNvZGUgZm9yIHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICogRXJyb3JzIHdpdGggNDAzIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIG5vdCBzZXQgdXAgVE9UUCBvciB0aGUgY29kZSBmYWlscyB2ZXJpZmljYXRpb24uXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInVzZXJWZXJpZnlUb3RwXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlcnNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgdXNlcnMgaW4gb3JnYW5pemF0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgdXNlcnMgaW4gb3JnYW5pemF0aW9uXG4gICAgICpcbiAgICAgKiBJZiBhIHF1ZXJ5IGlzIGRlZmluZWQsIHRoZSByZXN1bHQgd2lsbCBjb250YWluIG9ubHkgdGhlIHVzZXJzIHdob3NlIG5hbWUgb3JcbiAgICAgKiBlbWFpbCBjb250YWluIHRoZSBxdWVyeSBzdHJpbmcuIE5PVEUgdGhhdCBpZiBwYWdpbmF0aW9uIGlzIHVzZWQgYW5kIGEgcGFnZVxuICAgICAqIGxpbWl0IGlzIHNldCwgdGhlIHJldHVybmVkIHJlc3VsdCBzZXQgbWF5IGNvbnRhaW4gRkVXRVIgZWxlbWVudHMgdGhhbiB0aGVcbiAgICAgKiByZXF1ZXN0ZWQgcGFnZSBsaW1pdC5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0VXNlcnNJbk9yZ1wiXTtcbiAgICAvKipcbiAgICAgKiBBZGQgYSB0aGlyZC1wYXJ0eSB1c2VyIHRvIHRoZSBvcmdcbiAgICAgKiBAZGVzY3JpcHRpb24gQWRkIGEgdGhpcmQtcGFydHkgdXNlciB0byB0aGUgb3JnXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZU9pZGNVc2VyXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlcnMvZW1haWwve2VtYWlsfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IHVzZXIgYnkgZW1haWwuXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCB1c2VyIGJ5IGVtYWlsLlxuICAgICAqXG4gICAgICogVGhlIHNlYXJjaCBpbmNsdWRlcyBhbGwgdXNlcnMgYW5kIHRoZWlyIHRoaXJkLXBhcnR5IGlkZW50aXRpZXMuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0VXNlckluT3JnQnlFbWFpbFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3VzZXJzL29pZGNcIjoge1xuICAgIC8qKlxuICAgICAqIFJlbW92ZSBhIHRoaXJkLXBhcnR5IHVzZXIgZnJvbSB0aGUgb3JnXG4gICAgICogQGRlc2NyaXB0aW9uIFJlbW92ZSBhIHRoaXJkLXBhcnR5IHVzZXIgZnJvbSB0aGUgb3JnXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wiZGVsZXRlT2lkY1VzZXJcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS91c2Vycy9vaWRjL3tpc3N9L3tzdWJ9XCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgYSB1c2VyIGJ5IHRoZWlyIE9JREMgaWRlbnRpdHlcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IGEgdXNlciBieSB0aGVpciBPSURDIGlkZW50aXR5XG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgYSB1c2VyIGluIHRoZSBvcmdhbml6YXRpb24gYnkgdGhlaXIgT0lEQyBpc3N1ZXIgYW5kIHN1YmplY3QuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0VXNlckluT3JnQnlPaWRjXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlcnMvcmVzZXRfbWZhXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplIE1GQSByZXNldCBmb3IgdXNlclxuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplIE1GQSByZXNldCBmb3IgdXNlclxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJyZXNldE1lbWJlck1mYVwiXTtcbiAgICAvKipcbiAgICAgKiBDb21wbGV0ZSBNRkEgcmVzZXQgZm9yIHVzZXJcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGUgTUZBIHJlc2V0IGZvciB1c2VyXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJjb21wbGV0ZVJlc2V0TWVtYmVyTWZhXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlcnMve3VzZXJfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgdXNlciBieSBpZFxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgdXNlciBieSBpZFxuICAgICAqXG4gICAgICogSWYgdGhlIHJlcXVlc3RpbmcgdXNlciBpcyBhbiBvd25lciBvZiB0aGUgb3JnLCB0aGUgcmVzcG9uc2UgYWRkaXRpb25hbGx5XG4gICAgICogaW5jbHVkZXMgdGhlIHVzZXIncyBPSURDIGlkZW50aXRpZXMuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0VXNlckluT3JnXCJdO1xuICAgIC8qKlxuICAgICAqIFJlbW92ZSBhIHVzZXIgZnJvbSB0aGUgb3JnXG4gICAgICogQGRlc2NyaXB0aW9uIFJlbW92ZSBhIHVzZXIgZnJvbSB0aGUgb3JnXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wiZGVsZXRlVXNlclwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3VzZXJzL3t1c2VyX2lkfS9tZW1iZXJzaGlwXCI6IHtcbiAgICAvKipcbiAgICAgKiBVcGRhdGUgYSB1c2VyJ3MgbWVtYmVyc2hpcCBpbiB0aGUgb3JnXG4gICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBhIHVzZXIncyBtZW1iZXJzaGlwIGluIHRoZSBvcmdcbiAgICAgKlxuICAgICAqIEVuYWJsZS9kaXNhYmxlIGFub3RoZXIgdXNlciBpbiB0aGUgb3JnLCBvciBjaGFuZ2UgdGhlaXIgbWVtYmVyc2hpcCByb2xlLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXBkYXRlVXNlck1lbWJlcnNoaXBcIl07XG4gIH07XG4gIFwiL3YwL3Bhc3NrZXlcIjoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYXRlIExvZ2luIHdpdGggUGFzc2tleVxuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSBMb2dpbiB3aXRoIFBhc3NrZXlcbiAgICAgKlxuICAgICAqIFRoZSByZXNwb25zZSBjb250YWlucyBhIEZJRE8gY2hhbGxlbmdlIHRoYXQgdGhlIGNsaWVudCBtdXN0IGFuc3dlciB3aXRoIGFueSBvZiB0aGVpclxuICAgICAqIGRpc2NvdmVyYWJsZSBjcmVkZW50aWFscy4gIFRoZSBhbnN3ZXIgc2hvdWxkIGJlIHN1Ym1pdHRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIFBBVENIIHJlcXVlc3QuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInBhc3NrZXlBdXRoSW5pdFwiXTtcbiAgICAvKipcbiAgICAgKiBDb21wbGV0ZSBMb2dpbiB3aXRoIFBhc3NrZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGUgTG9naW4gd2l0aCBQYXNza2V5XG4gICAgICpcbiAgICAgKiBUaGUgcmVxdWVzdCBzaG91bGQgY29udGFpbiBhbiBhbnN3ZXIgdG8gdGhlIGNoYWxsZW5nZSBpc3N1ZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgUE9TVCByZXF1ZXN0LlxuICAgICAqIFRoZSBjaGFsbGVuZ2UgbWF5IGJlIGFuc3dlcmVkIHdpdGggYW55IG9mIHRoZSB1c2VyJ3MgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWxzOyBpZiB0aGUgY3JlZGVudGlhbFxuICAgICAqIGluY2x1ZGVkIGluIHRoZSBhbnN3ZXIgaXMgcmVnaXN0ZXJlZCB3aXRoIGEgdXNlciBhbmQgYW4gb3JnYW5pemF0aW9uLCB0aGUgcmVzcG9uc2Ugd2lsbCBjb250YWluXG4gICAgICogYSBDdWJlU2lnbmVyIHNlc3Npb24gKHdpdGggdGhlIHBhcmFtZXRlcnMgc3VwcGxpZWQgaW4gdGhlIHByZXZpb3VzIFBPU1QgcmVxdWVzdCkgZm9yIHRoYXQgdXNlclxuICAgICAqIGluIHRoYXQgb3JnYW5pemF0aW9uLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wicGFzc2tleUF1dGhDb21wbGV0ZVwiXTtcbiAgfTtcbiAgXCIvdjAvdXNlci9tZS9maWRvXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbml0aWF0ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAgICpcbiAgICAgKiBERVBSRUNBVEVELiBVc2UgYFBPU1QgL3YwL29yZy97b3JnX2lkfS91c2VyL21lL2ZpZG9gIGluc3RlYWQuXG4gICAgICpcbiAgICAgKiBHZW5lcmF0ZXMgYSBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIG93bmVyc2hpcCBvZiBhIGtleVxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJyZWdpc3RlckZpZG9Jbml0TGVnYWN5XCJdO1xuICAgIC8qKlxuICAgICAqIEZpbmFsaXplIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICAgKlxuICAgICAqIERFUFJFQ0FURUQuIFVzZSBgUEFUQ0ggL3YwL29yZy97b3JnX2lkfS91c2VyL21lL2ZpZG9gIGluc3RlYWQuXG4gICAgICpcbiAgICAgKiBBY2NlcHRzIHRoZSByZXNwb25zZSB0byB0aGUgY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCB0byB0aGlzIGVuZHBvaW50LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wicmVnaXN0ZXJGaWRvQ29tcGxldGVMZWdhY3lcIl07XG4gIH07XG4gIFwiL3YwL3VzZXIvbWUvdG90cFwiOiB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZSBUT1RQIFJlc2V0XG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZSBUT1RQIFJlc2V0XG4gICAgICpcbiAgICAgKiBERVBSRUNBVEVELiBVc2UgYFBPU1QgL3YwL29yZy97b3JnX2lkfS91c2VyL21lL3RvdHBgIGluc3RlYWQuXG4gICAgICpcbiAgICAgKiBDcmVhdGVzIGEgbmV3IFRPVFAgY2hhbGxlbmdlIHRoYXQgbXVzdCBiZSBhbnN3ZXJlZCB0byBwcm92ZSB0aGF0IHRoZSBuZXcgVE9UUFxuICAgICAqIHdhcyBzdWNjZXNzZnVsbHkgaW1wb3J0ZWQgaW50byBhbiBhdXRoZW50aWNhdG9yIGFwcC5cbiAgICAgKlxuICAgICAqIFRoaXMgb3BlcmF0aW9uIGlzIGFsbG93ZWQgaWYgRUlUSEVSXG4gICAgICogLSB0aGUgdXNlciBhY2NvdW50IGlzIG5vdCB5ZXQgaW5pdGlhbGl6ZWQgYW5kIG5vIFRPVFAgaXMgYWxyZWFkeSBzZXQsIE9SXG4gICAgICogLSB0aGUgdXNlciBoYXMgbm90IGNvbmZpZ3VyZWQgYW55IGF1dGggZmFjdG9ycztcbiAgICAgKiBvdGhlcndpc2UsIE1GQSBpcyByZXF1aXJlZC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wicmVzZXRUb3RwSW5pdExlZ2FjeVwiXTtcbiAgICAvKipcbiAgICAgKiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQGRlc2NyaXB0aW9uIEZpbmFsaXplIHJlc2V0dGluZyBUT1RQXG4gICAgICpcbiAgICAgKiBERVBSRUNBVEVELiBVc2UgYFBBVENIIC92MC9vcmcve29yZ19pZH0vdXNlci9tZS90b3RwYCBpbnN0ZWFkLlxuICAgICAqXG4gICAgICogQ2hlY2tzIGlmIHRoZSByZXNwb25zZSBjb250YWlucyB0aGUgY29ycmVjdCBUT1RQIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGVcbiAgICAgKiBjaGFsbGVuZ2UgZ2VuZXJhdGVkIGJ5IHRoZSBQT1NUIG1ldGhvZCBvZiB0aGlzIGVuZHBvaW50LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wicmVzZXRUb3RwQ29tcGxldGVMZWdhY3lcIl07XG4gIH07XG4gIFwiL3YwL3VzZXIvbWUvdG90cC92ZXJpZnlcIjoge1xuICAgIC8qKlxuICAgICAqIFZlcmlmeSBUT1RQXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAZGVzY3JpcHRpb24gVmVyaWZ5IFRPVFBcbiAgICAgKlxuICAgICAqIERFUFJFQ0FURUQuIFVzZSBgUE9TVCAvdjAvb3JnL3tvcmdfaWR9L3VzZXIvbWUvdG90cC92ZXJpZnlgIGluc3RlYWQuXG4gICAgICpcbiAgICAgKiBDaGVja3MgaWYgYSBnaXZlbiBjb2RlIG1hdGNoZXMgdGhlIGN1cnJlbnQgVE9UUCBjb2RlIGZvciB0aGUgY3VycmVudCB1c2VyLlxuICAgICAqIEVycm9ycyB3aXRoIDQwMyBpZiB0aGUgY3VycmVudCB1c2VyIGhhcyBub3Qgc2V0IHVwIFRPVFAgb3IgdGhlIGNvZGUgZmFpbHMgdmVyaWZpY2F0aW9uLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJ2ZXJpZnlUb3RwTGVnYWN5XCJdO1xuICB9O1xuICBcIi92MC91c2VyL29yZ3NcIjoge1xuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBhbGwgdGhlIG9yZ3MgdGhlIHVzZXIgaXMgYSBwYXJ0IG9mXG4gICAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBhbGwgdGhlIG9yZ3MgdGhlIHVzZXIgaXMgYSBwYXJ0IG9mXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1widXNlck9yZ3NcIl07XG4gIH07XG4gIFwiL3YxL29yZy97b3JnX2lkfS9ibG9iL3NpZ24ve2tleV9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gUmF3IEJsb2JcbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBSYXcgQmxvYlxuICAgICAqXG4gICAgICogU2lnbnMgYW4gYXJiaXRyYXJ5IGJsb2Igd2l0aCBhIGdpdmVuIGtleS5cbiAgICAgKlxuICAgICAqIC0gRUNEU0Egc2lnbmF0dXJlcyBhcmUgc2VyaWFsaXplZCBhcyBiaWctZW5kaWFuIHIgYW5kIHMgcGx1cyByZWNvdmVyeS1pZFxuICAgICAqIGJ5dGUgdiwgd2hpY2ggY2FuIGluIGdlbmVyYWwgdGFrZSBhbnkgb2YgdGhlIHZhbHVlcyAwLCAxLCAyLCBvciAzLlxuICAgICAqXG4gICAgICogLSBFZERTQSBzaWduYXR1cmVzIGFyZSBzZXJpYWxpemVkIGluIHRoZSBzdGFuZGFyZCBmb3JtYXQuXG4gICAgICpcbiAgICAgKiAtIEJMUyBzaWduYXR1cmVzIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHRoZSBibG9iLXNpZ24gZW5kcG9pbnQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImJsb2JTaWduXCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vY3ViZTNzaWduZXIvaGVhcnRiZWF0XCI6IHtcbiAgICAvKipcbiAgICAgKiBSZWNvcmQgaGVhcnRiZWF0XG4gICAgICogQGRlc2NyaXB0aW9uIFJlY29yZCBoZWFydGJlYXRcbiAgICAgKlxuICAgICAqIFRoaXMgZW5kcG9pbnQgaXMgY2FsbGVkIGJ5IHRoZSBjdWJlM3NpZ25lciBwcm94eSB0byByZWNvcmQgdmFyaW91cyBtZXRyaWNzIHRvIENsb3VkV2F0Y2guXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImN1YmUzc2lnbmVySGVhcnRiZWF0XCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vZXRoMS9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIEVWTSBUcmFuc2FjdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIEVWTSBUcmFuc2FjdGlvblxuICAgICAqXG4gICAgICogU2lnbnMgYW4gRXRoZXJldW0gKGFuZCBvdGhlciBFVk0pIHRyYW5zYWN0aW9uIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgICAqIFJldHVybnMgYW4gUkxQLWVuY29kZWQgdHJhbnNhY3Rpb24gd2l0aCBFSVAtMTU1IHNpZ25hdHVyZS5cbiAgICAgKlxuICAgICAqIFRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZSBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJldGgxU2lnblwiXTtcbiAgfTtcbiAgXCIvdjEvb3JnL3tvcmdfaWR9L2V0aDIvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBWYWxpZGF0b3IgUmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIFZhbGlkYXRvciBSZXF1ZXN0XG4gICAgICpcbiAgICAgKiBTaWducyBhbiBldGgyIHZhbGlkYXRvciByZXF1ZXN0IHdpdGggYSBnaXZlbiBCTFMga2V5LlxuICAgICAqXG4gICAgICogVGhlIGtleSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZSBhbmQgb3JnYW5pemF0aW9uIG9uIHdob3NlIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImV0aDJTaWduXCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vZXRoMi9zdGFrZVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBTdGFrZSBEZXBvc2l0XG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gU3Rha2UgRGVwb3NpdFxuICAgICAqXG4gICAgICogU2lnbnMgYSBkZXBvc2l0IHRyYW5zYWN0aW9uIHdpdGggYSBgdmFsaWRhdG9yX2tleWAuIElmIGB2YWxpZGF0b3Jfa2V5YCBpcyBzZXQgdG8gYSBwcmVnZW5lcmF0ZWQga2V5LCB3ZSB1c2UgdGhlXG4gICAgICogcHJvdmlkZWQgdmFsaWRhdG9yIGtleS4gT3RoZXJ3aXNlLCB3ZSBnZW5lcmF0ZSBhIG5ldyBCTFMga2V5LlxuICAgICAqXG4gICAgICogV2hlbiB1c2luZyBhIHByZWdlbmVyYXRlZCBrZXksIHRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZVxuICAgICAqIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInN0YWtlXCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vZXRoMi91bnN0YWtlL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIFVuc3Rha2UgUmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIFVuc3Rha2UgUmVxdWVzdFxuICAgICAqXG4gICAgICogSGFuZGxlIHVuc3Rha2luZyByZXF1ZXN0LCBwcm9kdWNpbmcgYSBzaWduZWQgdm9sdW50YXJ5IGV4aXQgbWVzc2FnZVxuICAgICAqIHRoYXQgY2FuIGJlIHBvc3RlZCBkaXJlY3RseSB0byB0aGUgQmVhY29uIGNoYWluLlxuICAgICAqXG4gICAgICogVGhlIGtleSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZSBhbmQgb3JnYW5pemF0aW9uIG9uIHdob3NlIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInVuc3Rha2VcIl07XG4gIH07XG4gIFwiL3YxL29yZy97b3JnX2lkfS90b2tlbi9yZWZyZXNoXCI6IHtcbiAgICAvKipcbiAgICAgKiBSZWZyZXNoIFNpZ25lciBTZXNzaW9uXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZnJlc2ggU2lnbmVyIFNlc3Npb25cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInNpZ25lclNlc3Npb25SZWZyZXNoXCJdO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSB3ZWJob29rcyA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuZXhwb3J0IGludGVyZmFjZSBjb21wb25lbnRzIHtcbiAgc2NoZW1hczoge1xuICAgIEFjY2VwdGVkUmVzcG9uc2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXSAmIFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERpZmZlcmVudCByZXNwb25zZXMgd2UgcmV0dXJuIGZvciBzdWNjZXNzIHN0YXR1cyBjb2Rlcy4gKi9cbiAgICBBY2NlcHRlZFZhbHVlOiBPbmVPZjxcbiAgICAgIFtcbiAgICAgICAge1xuICAgICAgICAgIFNpZ25EcnlSdW46IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2lnbkRyeVJ1bkFyZ3NcIl07XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBCaW5hbmNlRHJ5UnVuOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VEcnlSdW5BcmdzXCJdO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQnliaXREcnlSdW46IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREcnlSdW5BcmdzXCJdO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQ29pbmJhc2VEcnlSdW46IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29pbmJhc2VEcnlSdW5BcmdzXCJdO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgTWZhUmVxdWlyZWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhUmVxdWlyZWRBcmdzXCJdO1xuICAgICAgICB9LFxuICAgICAgXVxuICAgID47XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgQWNjZXB0ZWRWYWx1ZUNvZGU6XG4gICAgICB8IFwiU2lnbkRyeVJ1blwiXG4gICAgICB8IFwiQmluYW5jZURyeVJ1blwiXG4gICAgICB8IFwiQnliaXREcnlSdW5cIlxuICAgICAgfCBcIkNvaW5iYXNlRHJ5UnVuXCJcbiAgICAgIHwgXCJNZmFSZXF1aXJlZFwiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZXRlcm1pbmVzIHdobyBjb250cm9scyB0aGUga2V5cyB3aXRoaW4gYW4gb3JnXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBBY2Nlc3NNb2RlbDogXCJVc2VyXCIgfCBcIk9yZ1wiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBPbmUgYXNzZXQgYmFsYW5jZSBlbnRyeSBpbiBbYEFjY291bnRJbmZvUmVzcG9uc2U6OmJhbGFuY2VzYF0uIERpc3RpbmN0IGZyb21cbiAgICAgKiBbYFN1YkFjY291bnRBc3NldGBdIGJlY2F1c2UgdGhlIHNwb3QtYWNjb3VudCBzY2hlbWEgbGFja3MgdGhlIGBmcmVlemVgIGFuZFxuICAgICAqIGB3aXRoZHJhd2luZ2AgZmllbGRzLlxuICAgICAqL1xuICAgIEFjY291bnRCYWxhbmNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFzc2V0IHN5bWJvbCAoZS5nLiBgXCJVU0RUXCJgLCBgXCJCVENcImApLiAqL1xuICAgICAgYXNzZXQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXZhaWxhYmxlIGJhbGFuY2UuICovXG4gICAgICBmcmVlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEJhbGFuY2UgbG9ja2VkIGluIG9wZW4gb3JkZXJzLiAqL1xuICAgICAgbG9ja2VkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYEdFVCAvYXBpL3YzL2FjY291bnRgLlxuICAgICAqXG4gICAgICogUmV0dXJucyBTcG90IGFjY291bnQgaW5mbyBmb3Igd2hpY2hldmVyIGFjY291bnQgdGhlIHNpZ25pbmcga2V5XG4gICAgICogYXV0aGVudGljYXRlcyBhcyAobWFzdGVyIG9yIHN1YikuXG4gICAgICovXG4gICAgQWNjb3VudEluZm9SZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBgdHJ1ZWAsIHRoZSByZXNwb25zZSBvbWl0cyBhc3NldHMgd2l0aCBhbGwtemVybyBiYWxhbmNlcy4gRGVmYXVsdHMgdG9cbiAgICAgICAqIGBmYWxzZWAgKEJpbmFuY2UncyBkZWZhdWx0KS5cbiAgICAgICAqL1xuICAgICAgb21pdFplcm9CYWxhbmNlcz86IGJvb2xlYW4gfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCBieSBgY3NfYmluYW5jZUFjY291bnRJbmZvYC4gKi9cbiAgICBBY2NvdW50SW5mb1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFjY291bnQgdHlwZSwgZS5nLiBgXCJTUE9UXCJgLiBMZWZ0IGFzIGBTdHJpbmdgIGZvciBmb3J3YXJkIGNvbXBhdGliaWxpdHkuICovXG4gICAgICBhY2NvdW50VHlwZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgZW50cnkgcGVyIGFzc2V0LiBBZmZlY3RlZCBieSB0aGUgYG9taXRfemVyb19iYWxhbmNlc2AgcmVxdWVzdCBmbGFnLiAqL1xuICAgICAgYmFsYW5jZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjb3VudEJhbGFuY2VcIl1bXTtcbiAgICAgIGJyb2tlcmVkOiBib29sZWFuO1xuICAgICAgLyoqIEZvcm1hdDogaW50NjQgKi9cbiAgICAgIGJ1eWVyQ29tbWlzc2lvbjogbnVtYmVyO1xuICAgICAgY2FuRGVwb3NpdDogYm9vbGVhbjtcbiAgICAgIGNhblRyYWRlOiBib29sZWFuO1xuICAgICAgY2FuV2l0aGRyYXc6IGJvb2xlYW47XG4gICAgICBjb21taXNzaW9uUmF0ZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29tbWlzc2lvblJhdGVzXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTWFrZXIgY29tbWlzc2lvbiwgaW4gYmFzaXMgcG9pbnRzIChlLmcuIGAxMGAgPSAwLjElKS4gU3VwZXJzZWRlZCBieVxuICAgICAgICogW2BBY2NvdW50SW5mb1Jlc3BvbnNlOjpjb21taXNzaW9uX3JhdGVzYF0gZm9yIGZyYWN0aW9uYWwgcmF0ZXMuXG4gICAgICAgKi9cbiAgICAgIG1ha2VyQ29tbWlzc2lvbjogbnVtYmVyO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQZXJtaXNzaW9uIGZsYWdzLCBlLmcuIGBbXCJTUE9UXCIsIFwiTUFSR0lOXCJdYC4gKi9cbiAgICAgIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgICAgIHByZXZlbnRTb3I6IGJvb2xlYW47XG4gICAgICByZXF1aXJlU2VsZlRyYWRlUHJldmVudGlvbjogYm9vbGVhbjtcbiAgICAgIC8qKiBGb3JtYXQ6IGludDY0ICovXG4gICAgICBzZWxsZXJDb21taXNzaW9uOiBudW1iZXI7XG4gICAgICAvKiogRm9ybWF0OiBpbnQ2NCAqL1xuICAgICAgdGFrZXJDb21taXNzaW9uOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBY2NvdW50IHVzZXIgaWQuXG4gICAgICAgKi9cbiAgICAgIHVpZDogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTGFzdCBhY2NvdW50IHVwZGF0ZSB0aW1lIChtcyBzaW5jZSBlcG9jaCkuXG4gICAgICAgKi9cbiAgICAgIHVwZGF0ZVRpbWU6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXYWxsZXQgdHlwZSB1c2VkIGFzIHRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gb2YgYSBbYFVuaXZlcnNhbFRyYW5zZmVyUmVxdWVzdGBdLlxuICAgICAqXG4gICAgICogU2VyaWFsaXplcyB0byB0aGUgU0NSRUFNSU5HX1NOQUtFX0NBU0Ugc3RyaW5ncyBCaW5hbmNlIGV4cGVjdHMuIFRoZSBkZWZhdWx0XG4gICAgICogaXMgW2BBY2NvdW50VHlwZTo6U3BvdGBdLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgQWNjb3VudFR5cGU6IFwiU1BPVFwiIHwgXCJVU0RUX0ZVVFVSRVwiIHwgXCJDT0lOX0ZVVFVSRVwiIHwgXCJNQVJHSU5cIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlcXVlc3QgdG8gYWRkIE9JREMgaWRlbnRpdHkgdG8gYW4gZXhpc3RpbmcgdXNlciBhY2NvdW50ICovXG4gICAgQWRkSWRlbnRpdHlSZXF1ZXN0OiB7XG4gICAgICBvaWRjX3Rva2VuOiBzdHJpbmc7XG4gICAgICB1c2VyX2lkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXSB8IG51bGw7XG4gICAgfTtcbiAgICBBZGRLZXlzVG9Sb2xlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBsaXN0IG9mIGtleXMgdG8gYWRkIHRvIGEgcm9sZVxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcIktleSM2MzAyM2EyNy0xZTcwLTQzMGEtYjI5My1mZmJjOWQ2YzQ0ODRcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBrZXlfaWRzOiBzdHJpbmdbXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljaWVzIHRvIGFwcGx5IGZvciBlYWNoIGtleVxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJUeFJlY2VpdmVyXCI6IFwiMHg4YzU5NDY5MWMwZTU5MmZmYTIxZjE1M2ExNmFlNDFkYjViZWZjYWFhXCJcbiAgICAgICAqICAgfSxcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiVHhEZXBvc2l0XCI6IHtcbiAgICAgICAqICAgICAgIFwia2luZFwiOiBcIkNhbm9uaWNhbFwiXG4gICAgICAgKiAgICAgfVxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJSZXF1aXJlTWZhXCI6IHtcbiAgICAgICAqICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgKiAgICAgICAgIFwiUmVxdWlyZWRBcHByb3ZlcnNcIjoge1xuICAgICAgICogICAgICAgICAgIFwiY291bnRcIjogMVxuICAgICAgICogICAgICAgICB9XG4gICAgICAgKiAgICAgICB9LFxuICAgICAgICogICAgICAgXCJyZXN0cmljdGVkX29wZXJhdGlvbnNcIjogW1xuICAgICAgICogICAgICAgICBcIkV0aDFTaWduXCIsXG4gICAgICAgKiAgICAgICAgIFwiQmxvYlNpZ25cIlxuICAgICAgICogICAgICAgXVxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiB1bmtub3duW10gfCBudWxsO1xuICAgIH07XG4gICAgQWRkVGhpcmRQYXJ0eVVzZXJSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCB1c2VyIGVtYWlsXG4gICAgICAgKiBAZXhhbXBsZSBhbGljZUBleGFtcGxlLmNvbVxuICAgICAgICovXG4gICAgICBlbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgICBpZGVudGl0eT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY0lkZW50aXR5XCJdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbG9naW4gTUZBIHBvbGljeSAqL1xuICAgICAgbWZhX3BvbGljeT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHVzZXIgZnVsbCBuYW1lXG4gICAgICAgKiBAZXhhbXBsZSBBbGljZSBXb25kZXJsYW5kXG4gICAgICAgKi9cbiAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgcHJvb2Y/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkZW50aXR5UHJvb2ZcIl0gfCBudWxsO1xuICAgICAgcm9sZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdO1xuICAgIH07XG4gICAgQWRkVGhpcmRQYXJ0eVVzZXJSZXNwb25zZToge1xuICAgICAgLyoqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmICovXG4gICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBhZGRyZXNzZXMgYXNzb2NpYXRlZCB3aXRoIGEgY29udGFjdC4gKi9cbiAgICBBZGRyZXNzTWFwOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEJpdGNvaW4gYWRkcmVzc2VzLiAqL1xuICAgICAgYnRjPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaXRjb2luQWRkcmVzc0luZm9cIl1bXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ2FudG9uIHBhcnRpZXMuICovXG4gICAgICBjYW50b24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNhbnRvblBhcnR5SW5mb1wiXVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBFVk0gYWRkcmVzc2VzLiAqL1xuICAgICAgZXZtPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFdm1BZGRyZXNzSW5mb1wiXVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTb2xhbmEgYWRkcmVzc2VzLiAqL1xuICAgICAgc29sPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTb2xhbmFBZGRyZXNzSW5mb1wiXVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTVUkgYWRkcmVzc2VzLiAqL1xuICAgICAgc3VpPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdWlBZGRyZXNzSW5mb1wiXVtdO1xuICAgIH07XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgQWxlcnRLaW5kOiBcIlBvbGljeUNoYW5nZXNcIiB8IFwiRXRoMkNvbmN1cnJlbnRCbG9ja1NpZ25pbmdcIiB8IFwiQmFieWxvbkVvdHNDb25jdXJyZW50U2lnbmluZ1wiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBNRkEgdHlwZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSB1c2VkIGZvciBpbmRpdmlkdWFsIGltcGxpY2l0bHkgc2VjdXJpdHktc2Vuc2l0aXZlXG4gICAgICogb3BlcmF0aW9ucyAobGlrZSBsb2dnaW5nIGluLCBhZGRpbmcgYW4gTUZBIGZhY3RvciwgZXhwb3J0aW5nIGtleXMsIGV0Yzsgc2VlIGBNZmFQcm90ZWN0ZWRBY3Rpb25gKS5cbiAgICAgKi9cbiAgICBBbGxvd2VkTWZhTWFwOiB7XG4gICAgICBba2V5OiBzdHJpbmddOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVR5cGVcIl1bXTtcbiAgICB9O1xuICAgIEFwcHJvdmFsSW5mbzoge1xuICAgICAgdGltZXN0YW1wOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2ViQXV0aG4gUmVseWluZyBQYXJ0aWVzIG1heSB1c2UgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZSB0byBzcGVjaWZ5XG4gICAgICogdGhlaXIgcHJlZmVyZW5jZSByZWdhcmRpbmcgYXR0ZXN0YXRpb24gY29udmV5YW5jZSBkdXJpbmcgY3JlZGVudGlhbFxuICAgICAqIGdlbmVyYXRpb24uXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZW51bWRlZi1hdHRlc3RhdGlvbmNvbnZleWFuY2VwcmVmZXJlbmNlXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOiBcIm5vbmVcIiB8IFwiaW5kaXJlY3RcIiB8IFwiZGlyZWN0XCIgfCBcImVudGVycHJpc2VcIjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXVkaWVuY2UocykgdGhhdCB0aGlzIElEIFRva2VuIGlzIGludGVuZGVkIGZvci4gSXQgTVVTVCBjb250YWluIHRoZVxuICAgICAqIE9BdXRoIDIuMCBjbGllbnRfaWQgb2YgdGhlIFJlbHlpbmcgUGFydHkgYXMgYW4gYXVkaWVuY2UgdmFsdWUuIEl0IE1BWSBhbHNvIGNvbnRhaW5cbiAgICAgKiBpZGVudGlmaWVycyBmb3Igb3RoZXIgYXVkaWVuY2VzLiBJbiB0aGUgZ2VuZXJhbCBjYXNlLCB0aGUgYXVkIHZhbHVlIGlzIGFuIGFycmF5IG9mXG4gICAgICogY2FzZS1zZW5zaXRpdmUgc3RyaW5ncy4gSW4gdGhlIGNvbW1vbiBzcGVjaWFsIGNhc2Ugd2hlbiB0aGVyZSBpcyBvbmUgYXVkaWVuY2UsXG4gICAgICogdGhlIGF1ZCB2YWx1ZSBNQVkgYmUgYSBzaW5nbGUgY2FzZS1zZW5zaXRpdmUgc3RyaW5nLlxuICAgICAqL1xuICAgIEF1ZDogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgQXVkaXRMb2dFbnRyeToge1xuICAgICAgZXZlbnQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3JnRXZlbnREaXNjcmltaW5hbnRzXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVVUlEIG9mIHRoZSBldmVudC4gVW5pcXVlIGFjcm9zcyBhbGwgZXZlbnRzLiAqL1xuICAgICAgZXZlbnRfaWQ6IHN0cmluZztcbiAgICAgIG9yZ19pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgSFRUUCByZXF1ZXN0IHdoaWNoIHRyaWdnZXJlZCB0aGUgZXZlbnRcbiAgICAgICAqIChhIHNpbmdsZSByZXF1ZXN0IGNhbiB0cmlnZ2VyIG11bHRpcGxlIGV2ZW50cykuXG4gICAgICAgKi9cbiAgICAgIHJlcXVlc3RfaWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHRpbWUgd2hlbiB0aGUgZXZlbnQgd2FzIGxvZ2dlZC4gKi9cbiAgICAgIHRpbWU6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgaWRlbnRpdHkgKHVzZXIgb3Igcm9sZSkgd2hpY2ggdHJpZ2dlcmVkIHRoZSBldmVudFxuICAgICAgICogKG1heSBiZSB1bmRlZmluZWQgZm9yIGNlcnRhaW4gdW5hdXRoZW50aWNhdGVkIGVuZHBvaW50cylcbiAgICAgICAqL1xuICAgICAgdHJpZ2dlcmVkX2J5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXF1ZXN0IHR5cGUgZm9yIHF1ZXJ5aW5nIHRoZSBhdWRpdCBsb2cuICovXG4gICAgQXVkaXRMb2dSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBFbmQgdGltZSBpbiBzZWNvbmRzIHNpbmNlIHVuaXggZXBvY2guIElmIG9taXR0ZWQsIGRlZmF1bHRzIHRvICdub3cnLlxuICAgICAgICovXG4gICAgICBlbmRfdGltZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgdGhlIGxvZyBieSB0aGUgZXZlbnQgbmFtZS5cbiAgICAgICAqIElmIG9taXR0ZWQsIGFsbCBldmVudHMgd2lsbCBiZSBpbmNsdWRlZC5cbiAgICAgICAqIE11c3Qgbm90IGJlIHNldCB0byBhbiBlbXB0eSBhcnJheVxuICAgICAgICovXG4gICAgICBldmVudHM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9yZ0V2ZW50RGlzY3JpbWluYW50c1wiXVtdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFN0YXJ0IHRpbWUgaW4gc2Vjb25kcyBzaW5jZSB1bml4IGVwb2NoLlxuICAgICAgICovXG4gICAgICBzdGFydF90aW1lOiBudW1iZXI7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBhdWRpdCBsb2cgcmVzcG9uc2UgKi9cbiAgICBBdWRpdExvZ1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEF1ZGl0IGxvZyBlbnRyaWVzICovXG4gICAgICBlbnRyaWVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1ZGl0TG9nRW50cnlcIl1bXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gRGF0YSByZXF1aXJlZCBmb3IgYm90aCBgYXV0aGVudGljYXRlYCBhbmQgYHJlZnJlc2hgLiAqL1xuICAgIEF1dGhEYXRhOiB7XG4gICAgICAvKiogRm9ybWF0OiBpbnQzMiAqL1xuICAgICAgZXBvY2hfbnVtOiBudW1iZXI7XG4gICAgICBlcG9jaF90b2tlbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCMzJcIl07XG4gICAgICBvdGhlcl90b2tlbjogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEF0IHJlZGVtcHRpb24gdGltZSwgdGhlIHVzZXIgbXVzdCBwcm92aWRlIGEgY3JlZGVudGlhbCB0aGV5IHdpc2ggdG8gdXNlIHRvIGF1dGhlbnRpY2F0ZS5cbiAgICAgKiBUaGlzIGVudW0gcmVwcmVzZW50cyB0aGUgdHdvIHBvc3NpYmxlIHNvdXJjZXMgb2YgYXV0aGVudGljYXRpb24uXG4gICAgICovXG4gICAgQXV0aFNvdXJjZToge1xuICAgICAgY3JlZGVudGlhbDogc3RyaW5nO1xuICAgICAga2luZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBdXRoU291cmNlS2luZFwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBdCByZWRlbXB0aW9uIHRpbWUsIHRoZSB1c2VyIG11c3QgcHJvdmlkZSBhIGNyZWRlbnRpYWwgdGhleSB3aXNoIHRvIHVzZSB0byBhdXRoZW50aWNhdGUuXG4gICAgICogVGhpcyBlbnVtIHJlcHJlc2VudHMgdGhlIHR3byBwb3NzaWJsZSBzb3VyY2VzIG9mIGF1dGhlbnRpY2F0aW9uLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgQXV0aFNvdXJjZUtpbmQ6IFwicGFzc3dvcmRcIiB8IFwib2lkY1wiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlcXVlc3QgYm9keSBmb3IgdGhlIGlkcCBhdXRoZW50aWNhdGUgZW5kcG9pbnQgKi9cbiAgICBBdXRoZW50aWNhdGlvblJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSB1c2VyIGF0dGVtcHRpbmcgdG8gYXV0aGVudGljYXRlXG4gICAgICAgKiBAZXhhbXBsZSBhbGljZUBleGFtcGxlLmNvbVxuICAgICAgICovXG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcGFzc3dvcmQgZm9yIHRoYXQgdXNlciAqL1xuICAgICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIHRvIHRoZSBpZHAgYXV0aGVudGljYXRlIGVuZHBvaW50ICovXG4gICAgQXV0aGVudGljYXRpb25SZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBPSURDIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXV0aGVudGljYXRlIHdpdGggQ3ViZVNpZ25lciAqL1xuICAgICAgaWRfdG9rZW46IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRzIHRoZSBhc3NlcnRpb24gcmVzcG9uc2UgdXNlZCBieSBjbGllbnRzIHdoZW4gYXR0ZW1wdGluZyB0byBsb2cgaW4gd2l0aCBhIGtub3duIGNyZWRlbnRpYWxcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jYXV0aGVudGljYXRvcmFzc2VydGlvbnJlc3BvbnNlXG4gICAgICovXG4gICAgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBDb250YWlucyB0aGUgc3RhbmRhcmQgQ1RBUDIgYXV0aGVudGljYXRvciBkYXRhLiBNdXN0IGJlIGEgdmFsaWQgW2BBdXRoZW50aWNhdG9yRGF0YWBdLlxuICAgICAgICogVGhpcyBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBob3cga2V5IHdhcyBpbnZva2VkLlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1hdXRoZW50aWNhdG9yYXNzZXJ0aW9ucmVzcG9uc2UtYXV0aGVudGljYXRvcmRhdGFcbiAgICAgICAqL1xuICAgICAgYXV0aGVudGljYXRvckRhdGE6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIENvbnRhaW5zIFVURjggZW5jb2RlZCBKU09OIHdoaWNoIG11c3QgYmUgYSB2YWxpZCBbYENsaWVudERhdGFgXVxuICAgICAgICogVGhpcyBkYXRhIGlzIGNvbWJpbmVkIHdpdGggYGF1dGhlbnRpY2F0b3JfZGF0YWAgdG8gcHJvZHVjZSB0aGUgc2lnbmF0dXJlXG4gICAgICAgKiBtZWFuaW5nIHRoZSBjbGllbnQgYXR0ZXN0cyB0byB0aGUgY29ycmVjdG5lc3Mgb2YgdGhpcyBkYXRhLlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1hdXRoZW50aWNhdG9ycmVzcG9uc2UtY2xpZW50ZGF0YWpzb25cbiAgICAgICAqL1xuICAgICAgY2xpZW50RGF0YUpTT046IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzaWduYXR1cmUgb2YgdGhlIGNvbmNhdGVuYXRlZCBgYXV0aGVudGljYXRvckRhdGEgfHwgaGFzaGAgd2hlcmVcbiAgICAgICAqIGBoYXNoYCBpcyB0aGUgU0hBMjU2IGhhc2ggb2YgdGhlIGBjbGllbnREYXRhSlNPTmAgYnVmZmVyOlxuICAgICAgICpcbiAgICAgICAqIEZpZWxkIERlZmluaXRpb246IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tYXV0aGVudGljYXRvcmFzc2VydGlvbnJlc3BvbnNlLXNpZ25hdHVyZVxuICAgICAgICogU3RlcCAxMSBvZiBgZ2V0QXNzZXJ0aW9uYCBzcGVjaWZpZXMgdGhlIGNvbmNhdGVuYXRpb246IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNzY3RuLW9wLWdldC1hc3NlcnRpb25cbiAgICAgICAqIFJlcXVpcmVtZW50IGZvciBTSEEtMjU2OiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jY29sbGVjdGVkY2xpZW50ZGF0YS1oYXNoLW9mLXRoZS1zZXJpYWxpemVkLWNsaWVudC1kYXRhXG4gICAgICAgKi9cbiAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWxsb3dzIHRoZSBhdXRoZW50aWNhdG9yIHRvIG9wdGlvbmFsbHkgZGVjbGFyZSB0aGUgY3JlZGVudGlhbCBpZGVudGlmaWVyIHRoZXkgdXNlZC5cbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tYXV0aGVudGljYXRvcmFzc2VydGlvbnJlc3BvbnNlLXVzZXJoYW5kbGVcbiAgICAgICAqL1xuICAgICAgdXNlckhhbmRsZT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBlbnVtZXJhdGlvbuKAmXMgdmFsdWVzIGRlc2NyaWJlIGF1dGhlbnRpY2F0b3JzJyBhdHRhY2htZW50IG1vZGFsaXRpZXMuXG4gICAgICogUmVseWluZyBQYXJ0aWVzIHVzZSB0aGlzIHRvIGV4cHJlc3MgYSBwcmVmZXJyZWQgYXV0aGVudGljYXRvciBhdHRhY2htZW50XG4gICAgICogbW9kYWxpdHkgd2hlbiBjYWxsaW5nIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoKSB0byBjcmVhdGUgYSBjcmVkZW50aWFsLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2VudW1kZWYtYXV0aGVudGljYXRvcmF0dGFjaG1lbnRcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OiBcInBsYXRmb3JtXCIgfCBcImNyb3NzLXBsYXRmb3JtXCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSBpbnRlcmZhY2UgcmVwcmVzZW50cyB0aGUgYXV0aGVudGljYXRvcidzXG4gICAgICogcmVzcG9uc2UgdG8gYSBjbGllbnTigJlzIHJlcXVlc3QgZm9yIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBwdWJsaWMga2V5XG4gICAgICogY3JlZGVudGlhbC4gSXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG5ldyBjcmVkZW50aWFsIHRoYXQgY2FuIGJlXG4gICAgICogdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgbGF0ZXIgdXNlLCBhbmQgbWV0YWRhdGEgdGhhdCBjYW4gYmUgdXNlZCBieSB0aGVcbiAgICAgKiBXZWJBdXRobiBSZWx5aW5nIFBhcnR5IHRvIGFzc2VzcyB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBjcmVkZW50aWFsXG4gICAgICogZHVyaW5nIHJlZ2lzdHJhdGlvbi5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNpZmFjZS1hdXRoZW50aWNhdG9yYXR0ZXN0YXRpb25yZXNwb25zZVxuICAgICAqL1xuICAgIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGF0dHJpYnV0ZSBjb250YWlucyBhbiBhdHRlc3RhdGlvbiBvYmplY3QsIHdoaWNoIGlzIG9wYXF1ZSB0bywgYW5kXG4gICAgICAgKiBjcnlwdG9ncmFwaGljYWxseSBwcm90ZWN0ZWQgYWdhaW5zdCB0YW1wZXJpbmcgYnksIHRoZSBjbGllbnQuIFRoZVxuICAgICAgICogYXR0ZXN0YXRpb24gb2JqZWN0IGNvbnRhaW5zIGJvdGggYXV0aGVudGljYXRvciBkYXRhIGFuZCBhbiBhdHRlc3RhdGlvblxuICAgICAgICogc3RhdGVtZW50LiBUaGUgZm9ybWVyIGNvbnRhaW5zIHRoZSBBQUdVSUQsIGEgdW5pcXVlIGNyZWRlbnRpYWwgSUQsIGFuZFxuICAgICAgICogdGhlIGNyZWRlbnRpYWwgcHVibGljIGtleS4gVGhlIGNvbnRlbnRzIG9mIHRoZSBhdHRlc3RhdGlvbiBzdGF0ZW1lbnQgYXJlXG4gICAgICAgKiBkZXRlcm1pbmVkIGJ5IHRoZSBhdHRlc3RhdGlvbiBzdGF0ZW1lbnQgZm9ybWF0IHVzZWQgYnkgdGhlXG4gICAgICAgKiBhdXRoZW50aWNhdG9yLiBJdCBhbHNvIGNvbnRhaW5zIGFueSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRoYXQgdGhlXG4gICAgICAgKiBSZWx5aW5nIFBhcnR5J3Mgc2VydmVyIHJlcXVpcmVzIHRvIHZhbGlkYXRlIHRoZSBhdHRlc3RhdGlvbiBzdGF0ZW1lbnQsXG4gICAgICAgKiBhcyB3ZWxsIGFzIHRvIGRlY29kZSBhbmQgdmFsaWRhdGUgdGhlIGF1dGhlbnRpY2F0b3IgZGF0YSBhbG9uZyB3aXRoIHRoZVxuICAgICAgICogSlNPTi1jb21wYXRpYmxlIHNlcmlhbGl6YXRpb24gb2YgY2xpZW50IGRhdGEuIEZvciBtb3JlIGRldGFpbHMsIHNlZVxuICAgICAgICogwqfigK82LjUgQXR0ZXN0YXRpb24sIMKn4oCvNi41LjQgR2VuZXJhdGluZyBhbiBBdHRlc3RhdGlvbiBPYmplY3QsIGFuZCBGaWd1cmVcbiAgICAgICAqIDYuXG4gICAgICAgKi9cbiAgICAgIGF0dGVzdGF0aW9uT2JqZWN0OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGF0dHJpYnV0ZSwgaW5oZXJpdGVkIGZyb20gQXV0aGVudGljYXRvclJlc3BvbnNlLCBjb250YWlucyB0aGVcbiAgICAgICAqIEpTT04tY29tcGF0aWJsZSBzZXJpYWxpemF0aW9uIG9mIGNsaWVudCBkYXRhIChzZWUgwqfigK82LjUgQXR0ZXN0YXRpb24pXG4gICAgICAgKiBwYXNzZWQgdG8gdGhlIGF1dGhlbnRpY2F0b3IgYnkgdGhlIGNsaWVudCBpbiBvcmRlciB0byBnZW5lcmF0ZSB0aGlzXG4gICAgICAgKiBjcmVkZW50aWFsLiBUaGUgZXhhY3QgSlNPTiBzZXJpYWxpemF0aW9uIE1VU1QgYmUgcHJlc2VydmVkLCBhcyB0aGUgaGFzaFxuICAgICAgICogb2YgdGhlIHNlcmlhbGl6ZWQgY2xpZW50IGRhdGEgaGFzIGJlZW4gY29tcHV0ZWQgb3ZlciBpdC5cbiAgICAgICAqL1xuICAgICAgY2xpZW50RGF0YUpTT046IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXZWJBdXRobiBSZWx5aW5nIFBhcnRpZXMgbWF5IHVzZSB0aGUgQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhXG4gICAgICogZGljdGlvbmFyeSB0byBzcGVjaWZ5IHRoZWlyIHJlcXVpcmVtZW50cyByZWdhcmRpbmcgYXV0aGVudGljYXRvclxuICAgICAqIGF0dHJpYnV0ZXMuXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZGljdGRlZi1hdXRoZW50aWNhdG9yc2VsZWN0aW9uY3JpdGVyaWFcbiAgICAgKi9cbiAgICBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6IHtcbiAgICAgIGF1dGhlbnRpY2F0b3JBdHRhY2htZW50PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBdXRoZW50aWNhdG9yQXR0YWNobWVudFwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1lbWJlciBpcyByZXRhaW5lZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBXZWJBdXRobiBMZXZlbFxuICAgICAgICogMSBhbmQsIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGl0cyBuYW1pbmcgcmV0YWlucyB0aGUgZGVwcmVjYXRlZFxuICAgICAgICog4oCccmVzaWRlbnTigJ0gdGVybWlub2xvZ3kgZm9yIGRpc2NvdmVyYWJsZSBjcmVkZW50aWFscy4gUmVseWluZyBQYXJ0aWVzXG4gICAgICAgKiBTSE9VTEQgc2V0IGl0IHRvIHRydWUgaWYsIGFuZCBvbmx5IGlmLCByZXNpZGVudEtleSBpcyBzZXQgdG8gcmVxdWlyZWQuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1hdXRoZW50aWNhdG9yc2VsZWN0aW9uY3JpdGVyaWEtcmVxdWlyZXJlc2lkZW50a2V5XG4gICAgICAgKi9cbiAgICAgIHJlcXVpcmVSZXNpZGVudEtleT86IGJvb2xlYW47XG4gICAgICByZXNpZGVudEtleT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUmVzaWRlbnRLZXlSZXF1aXJlbWVudFwiXSB8IG51bGw7XG4gICAgICB1c2VyVmVyaWZpY2F0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnRcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXV0aGVudGljYXRvcnMgbWF5IGltcGxlbWVudCB2YXJpb3VzIHRyYW5zcG9ydHMgZm9yIGNvbW11bmljYXRpbmcgd2l0aFxuICAgICAqIGNsaWVudHMuIFRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBoaW50cyBhcyB0byBob3cgY2xpZW50cyBtaWdodCBjb21tdW5pY2F0ZVxuICAgICAqIHdpdGggYSBwYXJ0aWN1bGFyIGF1dGhlbnRpY2F0b3IgaW4gb3JkZXIgdG8gb2J0YWluIGFuIGFzc2VydGlvbiBmb3IgYVxuICAgICAqIHNwZWNpZmljIGNyZWRlbnRpYWwuIE5vdGUgdGhhdCB0aGVzZSBoaW50cyByZXByZXNlbnQgdGhlIFdlYkF1dGhuIFJlbHlpbmdcbiAgICAgKiBQYXJ0eSdzIGJlc3QgYmVsaWVmIGFzIHRvIGhvdyBhbiBhdXRoZW50aWNhdG9yIG1heSBiZSByZWFjaGVkLiBBIFJlbHlpbmdcbiAgICAgKiBQYXJ0eSB3aWxsIHR5cGljYWxseSBsZWFybiBvZiB0aGUgc3VwcG9ydGVkIHRyYW5zcG9ydHMgZm9yIGEgcHVibGljIGtleVxuICAgICAqIGNyZWRlbnRpYWwgdmlhIGdldFRyYW5zcG9ydHMoKS5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNlbnVtZGVmLWF1dGhlbnRpY2F0b3J0cmFuc3BvcnRcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6IFwidXNiXCIgfCBcIm5mY1wiIHwgXCJibGVcIiB8IFwiaW50ZXJuYWxcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlcXVlc3QgdG8gc2lnbiBhIHNlcmlhbGl6ZWQgQXZhbGFuY2hlIHRyYW5zYWN0aW9uICovXG4gICAgQXZhU2VyaWFsaXplZFR4U2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTZXJpYWxpemVkIHRyYW5zYWN0aW9uIHRvIHNpZ24gKi9cbiAgICAgIHR4OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlcXVlc3QgdG8gc2lnbiBhbiBBdmFsYW5jaGUgdHJhbnNhY3Rpb24gKi9cbiAgICBBdmFTaWduUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUcmFuc2FjdGlvbiB0byBzaWduLlxuICAgICAgICpcbiAgICAgICAqIEV4YW1wbGVzOlxuICAgICAgICogLSB7XCJQXCI6IHsgXCJBZGRQZXJtaXNzaW9ubGVzc1ZhbGlkYXRvclwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9wbGF0Zm9ybXZtL3R4cy9hZGRfcGVybWlzc2lvbmxlc3NfdmFsaWRhdG9yLnJzI0wxNCkgfX1cbiAgICAgICAqIC0ge1wiUFwiOiB7IFwiQWRkU3VibmV0VmFsaWRhdG9yXCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL3BsYXRmb3Jtdm0vdHhzL2FkZF9zdWJuZXRfdmFsaWRhdG9yLnJzI0wyOSkgfX1cbiAgICAgICAqIC0ge1wiUFwiOiB7IFwiQWRkVmFsaWRhdG9yXCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL3BsYXRmb3Jtdm0vdHhzL2FkZF92YWxpZGF0b3IucnMjTDEyKSB9fVxuICAgICAgICogLSB7XCJQXCI6IHsgXCJDcmVhdGVDaGFpblwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9wbGF0Zm9ybXZtL3R4cy9jcmVhdGVfY2hhaW4ucnMjTDgpIH19XG4gICAgICAgKiAtIHtcIlBcIjogeyBcIkNyZWF0ZVN1Ym5ldFwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9wbGF0Zm9ybXZtL3R4cy9jcmVhdGVfc3VibmV0LnJzI0w4KSB9fVxuICAgICAgICogLSB7XCJQXCI6IHsgXCJFeHBvcnRcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvcGxhdGZvcm12bS90eHMvZXhwb3J0LnJzI0wxMikgfX1cbiAgICAgICAqIC0ge1wiUFwiOiB7IFwiSW1wb3J0XCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL3BsYXRmb3Jtdm0vdHhzL2ltcG9ydC5ycyNMMTIpIH19XG4gICAgICAgKiAtIHtcIlhcIjogeyBcIkJhc2VcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvYXZtL3R4cy9tb2QucnMjTDIxKSB9fVxuICAgICAgICogLSB7XCJYXCI6IHsgXCJFeHBvcnRcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvYXZtL3R4cy9leHBvcnQucnMjTDE2KSB9fVxuICAgICAgICogLSB7XCJYXCI6IHsgXCJJbXBvcnRcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvYXZtL3R4cy9pbXBvcnQucnMjTDE0KSB9fVxuICAgICAgICovXG4gICAgICB0eDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBXcmFwcGVyIGFyb3VuZCBhIHplcm9pemluZyAzMi1ieXRlIGZpeGVkLXNpemUgYXJyYXkgKi9cbiAgICBCMzI6IHN0cmluZztcbiAgICBCYWJ5bG9uQ292U2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGtleXMgZm9yIHRoZSBmaW5hbGl0eSBwcm92aWRlcnMgdG8gd2hpY2ggdGhpcyB0cmFuc2FjdGlvbiBpcyBiZWluZyBzdGFrZWQuXG4gICAgICAgKiBFYWNoIGtleSBpcyBhIGhleCBzdHJpbmcgY29udGFpbmluZyBhIFNFQzEtZW5jb2RlZCBzZWNwMjU2azEgcHVibGljIGtleS5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCIwM2I1NzNlMzE4ODAzZmQ3YWVlMWJlNWI2YjE4ZDQ5NmNjNjBlY2M1MjQyOWRiZDQ3N2E4NzkyMTdjM2VkMjZhNzk1Y2I0ZjRlODgwYWFmZjNhNmFkNjYzMzVlNTQwNGZhNTFjYWViNDk2NGYwYzlmNzU2MjczNzg2NGUzYmRlNWJjXCJcbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgZnBfZW5jX2tleXM6IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHNsYXNoLXVuYm9uZGluZyB0cmFuc2FjdGlvbiBiZWluZyBhcHByb3ZlZCBieSB0aGUgY292ZW5hbnQgc2lnbmVyLlxuICAgICAgICogVGhpcyBpcyBhIEJpdGNvaW4gY29uc2Vuc3VzLS1lbmNvZGVkIGhleCBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSA2ODk5YjViYWY3MTNhMmM2MGU2YWJmMDVlODkwOTQ0MGQ0MWRjNDEyNWI5ODg5MWMzMzJmNzA4N2RhZjAxN2ZiMjQzNjI4NmUyYWEwOTc0NjRkOWM5MjdkNjQ0ZmE2ZGVcbiAgICAgICAqL1xuICAgICAgc2xhc2hfdW5ib25kaW5nX3R4OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc2xhc2hpbmcgc2NyaXB0IGluIHRoZSBzdGFraW5nIHRyYW5zYWN0aW9uLlxuICAgICAgICogVGhpcyBpcyBhIEJpdGNvaW4gY29uc2Vuc3VzLS1lbmNvZGVkIGhleCBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSA4NzdmMDVjYzYyNmRlZGNmNTNiNTBlZWJhMDgyMWNhMFxuICAgICAgICovXG4gICAgICBzbGFzaGluZ19zY3JpcHQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzbGFzaGluZyB0cmFuc2FjdGlvbiBiZWluZyBhcHByb3ZlZCBieSB0aGUgY292ZW5hbnQgc2lnbmVyLlxuICAgICAgICogVGhpcyBpcyBhIEJpdGNvaW4gY29uc2Vuc3VzLS1lbmNvZGVkIGhleCBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSBmMzdlN2NhMmIyNGE1ZjdiOGI2YzliYTA1NGY5OTMyZWZiMDQ3Y2U4MGNmNTBhMTE4ZTNmNzI3NTE0MjlmYjEzYTM1NWZhMDkzYmQzNThjZGMzMGVmYWNmNWE2MmNhYmVcbiAgICAgICAqL1xuICAgICAgc2xhc2hpbmdfdHg6IHN0cmluZztcbiAgICAgIHN0YWtlX2V4cGFuc2lvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmFieWxvbkNvdlN0YWtlRXhwYW5zaW9uUmVxdWVzdFwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgb3V0cHV0IGluZGV4IG9mIHRoZSBCYWJ5bG9uIHN0YWtpbmcgc2NyaXB0cyBpbiB0aGUgc3Rha2luZyB0cmFuc2FjdGlvbi5cbiAgICAgICAqIEBleGFtcGxlIDFcbiAgICAgICAqL1xuICAgICAgc3Rha2luZ19vdXRwdXRfaWR4OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3Rha2luZyB0cmFuc2FjdGlvbiBiZWluZyBhcHByb3ZlZCBieSB0aGUgY292ZW5hbnQgc2lnbmVyLlxuICAgICAgICogVGhpcyBpcyBhIEJpdGNvaW4gY29uc2Vuc3VzLS1lbmNvZGVkIGhleCBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSA5NTRiYTExOGU3MTMzYjRiYjNhNjdhY2M0ZjQwY2I5NTI5YWFiYmMwMTAwNzIyOWY3YmZkODU3MDY4NTAxNzVkNzdkNWNiZTVlNGMwY2E2NzIzOGQxNGFmYTQ3YzUxY2NcbiAgICAgICAqL1xuICAgICAgc3Rha2luZ190eDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVuYm9uZGluZyBzY3JpcHQgaW4gdGhlIHN0YWtpbmcgdHJhbnNhY3Rpb24uXG4gICAgICAgKiBUaGlzIGlzIGEgQml0Y29pbiBjb25zZW5zdXMtLWVuY29kZWQgaGV4IHN0cmluZy5cbiAgICAgICAqIEBleGFtcGxlIDU1ZjY2MzhjMGMwYzBiMGU1MWNhOTIyZTBlOWU2YWJkXG4gICAgICAgKi9cbiAgICAgIHVuYm9uZGluZ19zY3JpcHQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzbGFzaGluZyBzY3JpcHQgaW4gdGhlIHVuYm9uZGluZyB0cmFuc2FjdGlvbi5cbiAgICAgICAqIFRoaXMgaXMgYSBCaXRjb2luIGNvbnNlbnN1cy0tZW5jb2RlZCBoZXggc3RyaW5nLlxuICAgICAgICogQGV4YW1wbGUgZTEzM2Y1YTkyM2EwN2I5YzdmNjc2N2NkYTE3MTAwNWJcbiAgICAgICAqL1xuICAgICAgdW5ib25kaW5nX3NsYXNoaW5nX3NjcmlwdDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVuYm9uZGluZyB0cmFuc2FjdGlvbiBiZWluZyBhcHByb3ZlZCBieSB0aGUgY292ZW5hbnQgc2lnbmVyLlxuICAgICAgICogVGhpcyBpcyBhIEJpdGNvaW4gY29uc2Vuc3VzLS1lbmNvZGVkIGhleCBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSA5NjljYjk1MTI5YTU1YTk2ZDUxOTE5ZjVmNjdmM2FkYzU5N2VjZGVlNmVkYTIxZTc3NzdmMzcwYzNiMTgwOTMzNmVlN2QwOGVjNTc0YzhiYmIzNjFmZjYzZDAzMmE5NzZcbiAgICAgICAqL1xuICAgICAgdW5ib25kaW5nX3R4OiBzdHJpbmc7XG4gICAgfTtcbiAgICBCYWJ5bG9uQ292U2lnblJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHNsYXNoLXVuYm9uZGluZyB0cmFuc2FjdGlvbiBzaWduYXR1cmVzIGFzIGFuIGFycmF5IG9mIGhleCBzdHJpbmdzIHdpdGggbm8gMHggcHJlZml4XG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwiMDJlMjFhN2IwNTE5NTM5ZWY2NzBmNzlkMWMyNWE1NGY5MGIwYzZkOWZkYjU2YTdkZTgxM2ZiMjA3MDMzMDMyZmZmYWQ4YWFhZmViMWI3N2RkOWVhOGYxN2RhZGNmMjk3Njk2YmJmNWE0MTMzMjkyZjM1MTViODZiYjljMmQ3OGQ5Y1wiXG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHNsYXNoX3VuYm9uZGluZ190cmFuc2FjdGlvbnNfc2lnbmF0dXJlczogc3RyaW5nW107XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc2xhc2hpbmcgdHJhbnNhY3Rpb24gc2lnbmF0dXJlcyBhcyBhbiBhcnJheSBvZiBoZXggc3RyaW5ncyB3aXRoIG5vIDB4IHByZWZpeFxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcIjAzMDc1ZWNhOWQxNzZkMTYwNWQ2YzA5NmMxMTFlOWE0ZjhkODczOWFjOTcwOGMxZGYzZWQ1MTYxMDZlN2FiMTM4N2EzOTI0YTY2NTJhY2YyZTM1MjQzNTk3MzFjYTFmYmIzMzhhM2FmYjFhNjdmNmVhMTljMjA3YjZmZjQ2NmE1YWRcIixcbiAgICAgICAqICAgXCIwMjIyMjQ0OTNmNGNmZmFkNWI4NDA3NmRiMzJkZDhjNDlhMjhmZjQ4YWY0ZTE5ZTJiY2M5OTUzZmY4MDM0N2JhNmU4MzQzY2Y3YTQ0ZTc0YTk2ZmY3MWVhNTlhMDNiNDAxNjZlODViMGQxMzU1OTU0ZTA0YTQ0MjdkYzhkNjM3ZmYwXCJcbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgc2xhc2hpbmdfdHJhbnNhY3Rpb25zX3NpZ25hdHVyZXM6IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHNpZ25hdHVyZSB0aGF0IGFsbG93cyBleHBhbmRpbmcgYSBzdGFrZSBieSBzcGVuZGluZyB0aGUgY3VycmVudCBhY3RpdmVcbiAgICAgICAqIHN0YWtlIHRyYW5zYWN0aW9uIGludG8gYSBuZXcgc3Rha2luZyB0cmFuc2FjdGlvbi4gQSB2YWx1ZSBpcyBwcmVzZW50IGlmZiB0aGVcbiAgICAgICAqIGNvcnJlc3BvbmRpbmcgcmVxdWVzdCBpbmNsdWRlZCBhIGBzdGFrZV9leHBhbnNpb25gIHZhbHVlLlxuICAgICAgICogQGV4YW1wbGUgYjU3M2UzMTg4MDNmZDdhZWUxYmU1YjZiMThkNDk2Y2M2MGVjYzUyNDI5ZGJkNDc3YTg3OTIxN2MzZWQyNmE3OTVjYjRmNGU4ODBhYWZmM2E2YWQ2NjMzNWU1NDA0ZmE1MWNhZWI0OTY0ZjBjOWY3NTYyNzM3ODY0ZTNiZGU1YmNcbiAgICAgICAqL1xuICAgICAgc3Rha2VfZXhwYW5zaW9uX3RyYW5zYWN0aW9uX3NpZ25hdHVyZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdW5ib25kaW5nIHRyYW5zYWN0aW9uIHNpZ25hdHVyZSBhcyBoZXggc3RyaW5nIHdpdGggbm8gMHggcHJlZml4XG4gICAgICAgKiBAZXhhbXBsZSBiNTczZTMxODgwM2ZkN2FlZTFiZTViNmIxOGQ0OTZjYzYwZWNjNTI0MjlkYmQ0NzdhODc5MjE3YzNlZDI2YTc5NWNiNGY0ZTg4MGFhZmYzYTZhZDY2MzM1ZTU0MDRmYTUxY2FlYjQ5NjRmMGM5Zjc1NjI3Mzc4NjRlM2JkZTViY1xuICAgICAgICovXG4gICAgICB1bmJvbmRpbmdfdHJhbnNhY3Rpb25fc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlcXVlc3QgdG8gZXhwYW5kIGFuIGFjdGl2ZSBzdGFrZSB3aXRoIGFkZGl0aW9uYWwgZnVuZHMuICovXG4gICAgQmFieWxvbkNvdlN0YWtlRXhwYW5zaW9uUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHRyYW5zYWN0aW9uIG91dHB1dCB0aGF0IGlzIGJlaW5nIHVzZWQgdG8gZnVuZCB0aGUgc3Rha2UgZXhwYW5zaW9uLlxuICAgICAgICogVGhpcyBpcyBhIEJpdGNvaW4gY29uc2Vuc3VzLS1lbmNvZGVkIGhleCBzdHJpbmcuXG4gICAgICAgKi9cbiAgICAgIG90aGVyX2Z1bmRpbmdfb3V0cHV0OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgYWN0aXZlIHN0YWtpbmcgdHJhbnNhY3Rpb24gdGhhdCBpcyBiZWluZyBleHBhbmRlZCB3aXRoIHRoaXMgcmVxdWVzdC5cbiAgICAgICAqIFRoaXMgaXMgYSBCaXRjb2luIGNvbnNlbnN1cy0tZW5jb2RlZCBoZXggc3RyaW5nLlxuICAgICAgICogQGV4YW1wbGUgOTU0YmExMThlNzEzM2I0YmIzYTY3YWNjNGY0MGNiOTUyOWFhYmJjMDEwMDcyMjlmN2JmZDg1NzA2ODUwMTc1ZDc3ZDVjYmU1ZTRjMGNhNjcyMzhkMTRhZmE0N2M1MWNjXG4gICAgICAgKi9cbiAgICAgIHByZXZpb3VzX2FjdGl2ZV9zdGFrZV90eDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVuYm9uZGluZyBzY3JpcHQgaW4gdGhlIGFjdGl2ZSBzdGFraW5nIHRyYW5zYWN0aW9uLlxuICAgICAgICogVGhpcyBpcyBhIEJpdGNvaW4gY29uc2Vuc3VzLS1lbmNvZGVkIGhleCBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSBlMTMzZjVhOTIzYTA3YjljN2Y2NzY3Y2RhMTcxMDA1YlxuICAgICAgICovXG4gICAgICBwcmV2aW91c19hY3RpdmVfc3Rha2VfdW5ib25kaW5nX3NjcmlwdDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGluZGV4IG9mIHRoZSBhY3RpdmUgc3Rha2Ugb3V0cHV0IGluIHRoZSBhY3RpdmUgc3Rha2luZyB0cmFuc2FjdGlvbi5cbiAgICAgICAqIEBleGFtcGxlIDFcbiAgICAgICAqL1xuICAgICAgcHJldmlvdXNfc3Rha2luZ19vdXRwdXRfaWR4OiBudW1iZXI7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldHdvcmstaWQgZm9yIEJhYnlsb24gc3Rha2luZ1xuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgQmFieWxvbk5ldHdvcmtJZDogXCJiYnQ0XCIgfCBcImJibjFcIiB8IFwiYmJ0NVwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQmFieWxvbiBzdGFraW5nIHJlZ2lzdHJhdGlvbiBzcGVjaWZpY2F0aW9uICovXG4gICAgQmFieWxvblJlZ2lzdHJhdGlvblJlcXVlc3Q6ICh7XG4gICAgICBleHBsaWNpdF9wYXJhbXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJhYnlsb25TdGFraW5nUGFyYW1zXCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBTY2hub3JyIHB1YmxpYyBrZXkgKGkuZS4sIDMyLWJ5dGUgWC1jb29yZGluYXRlKSBvZiB0aGUgZmluYWxpdHlcbiAgICAgICAqIHByb3ZpZGVyIHRvIHdoaWNoIHRoZSBzdGFrZSBpcyBkZWxlZ2F0ZWQuXG4gICAgICAgKi9cbiAgICAgIGZpbmFsaXR5X3Byb3ZpZGVyX3Brczogc3RyaW5nW107XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbG9jayB0aW1lIHVzZWQgZm9yIHRoZSB3aXRoZHJhd2FsIG91dHB1dCBpbiB0aGUgc3Rha2luZyBkZXBvc2l0IHRyYW5zYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIGxvY2tfdGltZTogbnVtYmVyO1xuICAgICAgbmV0d29yazogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uTmV0d29ya0lkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFNjaG5vcnIgcHVibGljIGtleSAoaS5lLiwgMzItYnl0ZSBYLWNvb3JkaW5hdGUpIG9mIHRoZSBzdGFrZXIuIFRoaXNcbiAgICAgICAqIGlzIHRoZSBrZXkgdGhhdCBzaWducyB0aGUgc2xhc2hpbmcsIHdpdGhkcmF3YWwsIGFuZCB1bmJvbmRpbmcgc2NyaXB0cy5cbiAgICAgICAqL1xuICAgICAgc3Rha2VyX3BrOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcGFyYW1ldGVyIHZlcnNpb24gdG8gdXNlLiBJZiBgTm9uZWAsIHVzZXMgdGhlIGxhdGVzdCB2ZXJzaW9uLlxuICAgICAgICovXG4gICAgICB2ZXJzaW9uPzogbnVtYmVyIHwgbnVsbDtcbiAgICB9ICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgY2hhbmdlIGFkZHJlc3MsIHNwZWNpZmllZCBhcyBhIEJpdGNvaW4gc3BlbmQgc2NyaXB0ICovXG4gICAgICBjaGFuZ2U6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB0cmFuc2FjdGlvbiBmZWUgdmFsdWUuIFRoZSBgZmVlX3R5cGVgIGZpZWxkIGRldGVybWluZXMgd2hldGhlciB0aGlzXG4gICAgICAgKiBpcyBhIGZpeGVkIGZlZSBpbiBzYXRzIG9yIGEgcmF0ZSBpbiBzYXRzIHBlciAoZXN0aW1hdGVkKSB2aXJ0dWFsIGJ5dGUgb2ZcbiAgICAgICAqIHRyYW5zYWN0aW9uIHdlaWdodCAoaS5lLiwgc2F0cyBwZXIgdmIpLlxuICAgICAgICovXG4gICAgICBmZWU6IG51bWJlcjtcbiAgICAgIGZlZV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZlZVR5cGVcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBCeSBkZWZhdWx0LCB0aGUgUFNCVCBpbiB0aGlzIHJlcXVlc3QgY2FuIG9ubHkgc3BlY2lmeSB0cmFuc2FjdGlvbiBpbnB1dHM6XG4gICAgICAgKiBQU0JUcyB0aGF0IHNwZWNpZnkgb3V0cHV0cyB3aWxsIHJlc3VsdCBpbiBhbiBlcnJvci4gV2hlbiB0aGlzIGZsYWcgaXMgc2V0LFxuICAgICAgICogZXhpc3Rpbmcgb3V0cHV0cyBpbiB0aGUgUFNCVCB3aWxsIGluc3RlYWQgYmUgaWdub3JlZCAoaS5lLiwgZGVsZXRlZCBmcm9tXG4gICAgICAgKiB0aGUgUFNCVCkgd2hlbiBjcmVhdGluZyB0aGUgZGVwb3NpdCB0cmFuc2FjdGlvbi5cbiAgICAgICAqL1xuICAgICAgaWdub3JlX3BzYnRfb3V0cHV0cz86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGhleC1zZXJpYWxpemVkIFBTQlQgKHZlcnNpb24gMCkgY29udGFpbmluZyB0aGUgdHJhbnNhY3Rpb24gaW5wdXRzIGFuZFxuICAgICAgICogYWxsIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiBmb3Igc2lnbmluZyAoZS5nLiwgdGFwcm9vdCBwYXRoIGFuZCBsZWFmXG4gICAgICAgKiBpbmZvcm1hdGlvbikuIFRoaXMgUFNCVCBtdXN0IG5vdCBoYXZlIGFueSB0cmFuc2FjdGlvbiBvdXRwdXRzOyB0aGV5XG4gICAgICAgKiB3aWxsIGJlIGFkZGVkIHRvIHRoZSByZXR1cm5lZCBQU0JULlxuICAgICAgICovXG4gICAgICBwc2J0OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdmFsdWUgdG8gYmUgc3Rha2VkIGluIHNhdHNcbiAgICAgICAqL1xuICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICB9KSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEJhYnlsb24gYWRkcmVzcyB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUgc3Rha2luZyByZXdhcmRzIGZvciB0aGlzIGRlcG9zaXQuXG4gICAgICAgKiBCYWJ5bG9uIHJlcXVpcmVzIHRoaXMgdG8gYmUgdGhlIHNhbWUgYWRkcmVzcyB0aGF0IHJlZ2lzdGVycyB0aGUgZGVwb3NpdCBvblxuICAgICAgICogdGhlIEJhYnlsb24gY2hhaW4uXG4gICAgICAgKlxuICAgICAgICogVGhpcyBtdXN0IGJlIGEgc2VjcDI1NmsxIENvc21vcyBhZGRyZXNzIHdpdGggZWl0aGVyIGEgYGJibmAgb3IgYSBgY29zbW9zYFxuICAgICAgICogaHVtYW4tcmVhZGFibGUgcGFydCAoaS5lLiwgYGJibjEuLi5gIG9yIGBjb3Ntb3MxLi4uYCkuIFRoZSBsYXR0ZXIgbGV0cyB5b3VcbiAgICAgICAqIHNwZWNpZnkgdGhlIG1hdGVyaWFsLWlkIG9mIGEgU2VjcENvc21vcyBDdWJlU2lnbmVyIGtleS5cbiAgICAgICAqIEBleGFtcGxlIGJibjFuNWFubWMwa2tyaDcweWp5N2Y2ZjM5OWM3NHlkMDl4bDV0ZWZmbVxuICAgICAgICovXG4gICAgICBiYm5fYWRkcjogc3RyaW5nO1xuICAgIH07XG4gICAgQmFieWxvblJlZ2lzdHJhdGlvblJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEJhYnlsb24gYWRkcmVzcyB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUgc3Rha2luZyByZXdhcmRzIGZvciB0aGlzIGRlcG9zaXQuXG4gICAgICAgKlxuICAgICAgICogVGhpcyB2YWx1ZSB3aWxsIGNvcnJlc3BvbmQgdG8gdGhlIGBiYm5fYWRkcmAgdmFsdWUgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0LFxuICAgICAgICogYnV0IGl0IHdpbGwgYWx3YXlzIGhhdmUgYSBgYmJuYCBodW1hbi1yZWFkYWJsZSBwYXJ0LlxuICAgICAgICogQGV4YW1wbGUgYmJuMW41YW5tYzBra3JoNzB5ank3ZjZmMzk5Yzc0eWQwOXhsNXRlZmZtXG4gICAgICAgKi9cbiAgICAgIGJibl9hZGRyOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZGVwb3NpdCB0cmFuc2FjdGlvbiBQU0JULiBUaGlzIFBTQlQgaW5jbHVkZXMgc2lnbmF0dXJlcyBvbiBhbnlcbiAgICAgICAqIGlucHV0cyBjb250cm9sbGVkIGJ5IHRoZSBzdGFrZXIgdGFwcm9vdCBrZXkgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0LlxuICAgICAgICovXG4gICAgICBkZXBvc2l0OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZGVwb3NpdCB0cmFuc2FjdGlvbiBmZWUgaW4gc2F0cy5cbiAgICAgICAqIEBleGFtcGxlIDEzMzdcbiAgICAgICAqL1xuICAgICAgZGVwb3NpdF9mZWU6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBwcm9vZiBvZiBwb3NzZXNzaW9uLCBpLmUuLCBhIEJJUDMyMiBzaWduYXR1cmUgb24gdGhlIHN0YWtlcidzXG4gICAgICAgKiBCYWJ5bG9uIGFkZHJlc3Mgc2lnbmVkIGJ5IHRoZSBzdGFrZXIgdGFwcm9vdCBrZXkuIFRoaXMgaXMgYSBCaXRjb2luXG4gICAgICAgKiB3aXRuZXNzIHN0YWNrIGluIEJpdGNvaW4gY29uc2Vuc3VzIGhleCBlbmNvZGluZy5cbiAgICAgICAqL1xuICAgICAgcG9wOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzbGFzaC1kZXBvc2l0IHRyYW5zYWN0aW9uIGluIEJpdGNvaW4gY29uc2Vuc3VzIGhleCBlbmNvZGluZy4gKi9cbiAgICAgIHNsYXNoX2RlcG9zaXQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFrZXIgdGFwcm9vdCBrZXkncyBzaWduYXR1cmUgb24gdGhlIHNsYXNoLWRlcG9zaXQgdHJhbnNhY3Rpb24uXG4gICAgICAgKiBUaGlzIGlzIGEgQklQMzQwIHNpZ25hdHVyZSBpbiBoZXggZm9ybWF0LlxuICAgICAgICovXG4gICAgICBzbGFzaF9kZXBvc2l0X3NpZzogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgc2xhc2gtdW5ib25kIHRyYW5zYWN0aW9uIGluIEJpdGNvaW4gY29uc2Vuc3VzIGhleCBlbmNvZGluZy4gKi9cbiAgICAgIHNsYXNoX3VuYm9uZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YWtlciB0YXByb290IGtleSdzIHNpZ25hdHVyZSBvbiB0aGUgc2xhc2gtdW5ib25kIHRyYW5zYWN0aW9uLlxuICAgICAgICogVGhpcyBpcyBhIEJJUDM0MCBzaWduYXR1cmUgaW4gaGV4IGZvcm1hdC5cbiAgICAgICAqL1xuICAgICAgc2xhc2hfdW5ib25kX3NpZzogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgKHVuc2lnbmVkKSB1bmJvbmRpbmcgdHJhbnNhY3Rpb24gaW4gQml0Y29pbiBjb25zZW5zdXMgaGV4IGVuY29kaW5nLiAqL1xuICAgICAgdW5ib25kOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERhdGEgbmVlZGVkIHRvIGNyZWF0ZSB0aGUgQmFieWxvbiBkZXBvc2l0IHNjcmlwdHMgKi9cbiAgICBCYWJ5bG9uU2NyaXB0RGF0YToge1xuICAgICAgZXhwbGljaXRfcGFyYW1zPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uU3Rha2luZ1BhcmFtc1wiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgU2Nobm9yciBwdWJsaWMga2V5IChpLmUuLCAzMi1ieXRlIFgtY29vcmRpbmF0ZSkgb2YgdGhlIGZpbmFsaXR5XG4gICAgICAgKiBwcm92aWRlciB0byB3aGljaCB0aGUgc3Rha2UgaXMgZGVsZWdhdGVkLlxuICAgICAgICovXG4gICAgICBmaW5hbGl0eV9wcm92aWRlcl9wa3M6IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGxvY2sgdGltZSB1c2VkIGZvciB0aGUgd2l0aGRyYXdhbCBvdXRwdXQgaW4gdGhlIHN0YWtpbmcgZGVwb3NpdCB0cmFuc2FjdGlvblxuICAgICAgICovXG4gICAgICBsb2NrX3RpbWU6IG51bWJlcjtcbiAgICAgIG5ldHdvcms6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmFieWxvbk5ldHdvcmtJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBTY2hub3JyIHB1YmxpYyBrZXkgKGkuZS4sIDMyLWJ5dGUgWC1jb29yZGluYXRlKSBvZiB0aGUgc3Rha2VyLiBUaGlzXG4gICAgICAgKiBpcyB0aGUga2V5IHRoYXQgc2lnbnMgdGhlIHNsYXNoaW5nLCB3aXRoZHJhd2FsLCBhbmQgdW5ib25kaW5nIHNjcmlwdHMuXG4gICAgICAgKi9cbiAgICAgIHN0YWtlcl9wazogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBhcmFtZXRlciB2ZXJzaW9uIHRvIHVzZS4gSWYgYE5vbmVgLCB1c2VzIHRoZSBsYXRlc3QgdmVyc2lvbi5cbiAgICAgICAqL1xuICAgICAgdmVyc2lvbj86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERhdGEgbmVlZGVkIHRvIGNyZWF0ZSBhIEJhYnlsb24gZGVwb3NpdCB0cmFuc2FjdGlvbiAqL1xuICAgIEJhYnlsb25TdGFraW5nRGVwb3NpdDoge1xuICAgICAgZXhwbGljaXRfcGFyYW1zPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uU3Rha2luZ1BhcmFtc1wiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgU2Nobm9yciBwdWJsaWMga2V5IChpLmUuLCAzMi1ieXRlIFgtY29vcmRpbmF0ZSkgb2YgdGhlIGZpbmFsaXR5XG4gICAgICAgKiBwcm92aWRlciB0byB3aGljaCB0aGUgc3Rha2UgaXMgZGVsZWdhdGVkLlxuICAgICAgICovXG4gICAgICBmaW5hbGl0eV9wcm92aWRlcl9wa3M6IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGxvY2sgdGltZSB1c2VkIGZvciB0aGUgd2l0aGRyYXdhbCBvdXRwdXQgaW4gdGhlIHN0YWtpbmcgZGVwb3NpdCB0cmFuc2FjdGlvblxuICAgICAgICovXG4gICAgICBsb2NrX3RpbWU6IG51bWJlcjtcbiAgICAgIG5ldHdvcms6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmFieWxvbk5ldHdvcmtJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBTY2hub3JyIHB1YmxpYyBrZXkgKGkuZS4sIDMyLWJ5dGUgWC1jb29yZGluYXRlKSBvZiB0aGUgc3Rha2VyLiBUaGlzXG4gICAgICAgKiBpcyB0aGUga2V5IHRoYXQgc2lnbnMgdGhlIHNsYXNoaW5nLCB3aXRoZHJhd2FsLCBhbmQgdW5ib25kaW5nIHNjcmlwdHMuXG4gICAgICAgKi9cbiAgICAgIHN0YWtlcl9wazogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBhcmFtZXRlciB2ZXJzaW9uIHRvIHVzZS4gSWYgYE5vbmVgLCB1c2VzIHRoZSBsYXRlc3QgdmVyc2lvbi5cbiAgICAgICAqL1xuICAgICAgdmVyc2lvbj86IG51bWJlciB8IG51bGw7XG4gICAgfSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGNoYW5nZSBhZGRyZXNzLCBzcGVjaWZpZWQgYXMgYSBCaXRjb2luIHNwZW5kIHNjcmlwdCAqL1xuICAgICAgY2hhbmdlOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdHJhbnNhY3Rpb24gZmVlIHZhbHVlLiBUaGUgYGZlZV90eXBlYCBmaWVsZCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhpc1xuICAgICAgICogaXMgYSBmaXhlZCBmZWUgaW4gc2F0cyBvciBhIHJhdGUgaW4gc2F0cyBwZXIgKGVzdGltYXRlZCkgdmlydHVhbCBieXRlIG9mXG4gICAgICAgKiB0cmFuc2FjdGlvbiB3ZWlnaHQgKGkuZS4sIHNhdHMgcGVyIHZiKS5cbiAgICAgICAqL1xuICAgICAgZmVlOiBudW1iZXI7XG4gICAgICBmZWVfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJGZWVUeXBlXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQnkgZGVmYXVsdCwgdGhlIFBTQlQgaW4gdGhpcyByZXF1ZXN0IGNhbiBvbmx5IHNwZWNpZnkgdHJhbnNhY3Rpb24gaW5wdXRzOlxuICAgICAgICogUFNCVHMgdGhhdCBzcGVjaWZ5IG91dHB1dHMgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IuIFdoZW4gdGhpcyBmbGFnIGlzIHNldCxcbiAgICAgICAqIGV4aXN0aW5nIG91dHB1dHMgaW4gdGhlIFBTQlQgd2lsbCBpbnN0ZWFkIGJlIGlnbm9yZWQgKGkuZS4sIGRlbGV0ZWQgZnJvbVxuICAgICAgICogdGhlIFBTQlQpIHdoZW4gY3JlYXRpbmcgdGhlIGRlcG9zaXQgdHJhbnNhY3Rpb24uXG4gICAgICAgKi9cbiAgICAgIGlnbm9yZV9wc2J0X291dHB1dHM/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBoZXgtc2VyaWFsaXplZCBQU0JUICh2ZXJzaW9uIDApIGNvbnRhaW5pbmcgdGhlIHRyYW5zYWN0aW9uIGlucHV0cyBhbmRcbiAgICAgICAqIGFsbCBuZWNlc3NhcnkgaW5mb3JtYXRpb24gZm9yIHNpZ25pbmcgKGUuZy4sIHRhcHJvb3QgcGF0aCBhbmQgbGVhZlxuICAgICAgICogaW5mb3JtYXRpb24pLiBUaGlzIFBTQlQgbXVzdCBub3QgaGF2ZSBhbnkgdHJhbnNhY3Rpb24gb3V0cHV0czsgdGhleVxuICAgICAgICogd2lsbCBiZSBhZGRlZCB0byB0aGUgcmV0dXJuZWQgUFNCVC5cbiAgICAgICAqL1xuICAgICAgcHNidDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHZhbHVlIHRvIGJlIHN0YWtlZCBpbiBzYXRzXG4gICAgICAgKi9cbiAgICAgIHZhbHVlOiBudW1iZXI7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERhdGEgbmVlZGVkIHRvIGNyZWF0ZSBhIEJhYnlsb24gZWFybHktdW5ib25kaW5nIG9yIHNsYXNoaW5nIHRyYW5zYWN0aW9uICovXG4gICAgQmFieWxvblN0YWtpbmdFYXJseVVuYm9uZDoge1xuICAgICAgZXhwbGljaXRfcGFyYW1zPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uU3Rha2luZ1BhcmFtc1wiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgU2Nobm9yciBwdWJsaWMga2V5IChpLmUuLCAzMi1ieXRlIFgtY29vcmRpbmF0ZSkgb2YgdGhlIGZpbmFsaXR5XG4gICAgICAgKiBwcm92aWRlciB0byB3aGljaCB0aGUgc3Rha2UgaXMgZGVsZWdhdGVkLlxuICAgICAgICovXG4gICAgICBmaW5hbGl0eV9wcm92aWRlcl9wa3M6IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGxvY2sgdGltZSB1c2VkIGZvciB0aGUgd2l0aGRyYXdhbCBvdXRwdXQgaW4gdGhlIHN0YWtpbmcgZGVwb3NpdCB0cmFuc2FjdGlvblxuICAgICAgICovXG4gICAgICBsb2NrX3RpbWU6IG51bWJlcjtcbiAgICAgIG5ldHdvcms6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmFieWxvbk5ldHdvcmtJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBTY2hub3JyIHB1YmxpYyBrZXkgKGkuZS4sIDMyLWJ5dGUgWC1jb29yZGluYXRlKSBvZiB0aGUgc3Rha2VyLiBUaGlzXG4gICAgICAgKiBpcyB0aGUga2V5IHRoYXQgc2lnbnMgdGhlIHNsYXNoaW5nLCB3aXRoZHJhd2FsLCBhbmQgdW5ib25kaW5nIHNjcmlwdHMuXG4gICAgICAgKi9cbiAgICAgIHN0YWtlcl9wazogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBhcmFtZXRlciB2ZXJzaW9uIHRvIHVzZS4gSWYgYE5vbmVgLCB1c2VzIHRoZSBsYXRlc3QgdmVyc2lvbi5cbiAgICAgICAqL1xuICAgICAgdmVyc2lvbj86IG51bWJlciB8IG51bGw7XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIGB0cnVlYCwgdGhlIHJlc3VsdGluZyBQU0JUIGlzIGVuY29kZWQgYXMgYSBiYXNlNjQgc3RyaW5nLlxuICAgICAgICogT3RoZXJ3aXNlLCBpdCBpcyBlbmNvZGVkIGFzIGEgaGV4IHN0cmluZy5cbiAgICAgICAqL1xuICAgICAgYXNfYmFzZTY0PzogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVHJhbnNhY3Rpb24taWQgb2YgdGhlIGRlcG9zaXQgdHJhbnNhY3Rpb24gdG8gdW5ib25kIG9yIHNsYXNoLiAqL1xuICAgICAgdHhpZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHZhbHVlIGluIHNhdHMgdGhhdCB3YXMgc3Rha2VkIGluIHRoZSB0cmFuc2FjdGlvbiB0byB1bmJvbmQgb3Igc2xhc2guXG4gICAgICAgKi9cbiAgICAgIHZhbHVlOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUcmFuc2FjdGlvbiBvdXRwdXQgaW5kZXggb2YgdGhlIHN0YWtpbmcgdHJhbnNhY3Rpb24gdG8gdW5ib25kIG9yIHNsYXNoLlxuICAgICAgICogRm9yIHN0YWtpbmcgdHJhbnNhY3Rpb25zIGdlbmVyYXRlZCBieSBDdWJlU2lnbmVyLCB0aGlzIHdpbGwgYWx3YXlzIGJlIHplcm8uXG4gICAgICAgKi9cbiAgICAgIHZvdXQ6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXIgc2V0IGZvciBCYWJ5bG9uIHN0YWtpbmcuIFRoZSBsYXRlc3QgcGFyYW1ldGVyIHNldHMgYXJlXG4gICAgICogYXZhaWxhYmxlIGZyb20gPGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9uY2hhaW4vbmV0d29ya3M+XG4gICAgICovXG4gICAgQmFieWxvblN0YWtpbmdQYXJhbXM6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIEJsb2NrIGhlaWdodCBhdCB3aGljaCB0aGVzZSBwYXJhbXMgd2lsbCBlbnRlciB1c2VcbiAgICAgICAqL1xuICAgICAgYWN0aXZhdGlvbl9oZWlnaHQ6IG51bWJlcjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gUHVibGljIGtleXMgb2YgdGhlIGNvdmVuYW50IHNpZ25lcnMgKi9cbiAgICAgIGNvdmVuYW50X3Brczogc3RyaW5nW107XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFF1b3J1bSBmb3IgY292ZW5hbnQgc2lnbmVyICovXG4gICAgICBjb3ZlbmFudF9xdW9ydW06IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBhbW91bnQgdGhhdCBjYW4gYmUgc3Rha2VkIGluIGEgc2luZ2xlIHR4blxuICAgICAgICovXG4gICAgICBtYXhfc3Rha2luZ19hbW91bnQ6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1heCB0aW1lbG9jayBmb3Igc3Rha2luZ1xuICAgICAgICovXG4gICAgICBtYXhfc3Rha2luZ190aW1lOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBNaW4gYW1vdW50IHRoYXQgbXVzdCBiZSBzdGFrZWRcbiAgICAgICAqL1xuICAgICAgbWluX3N0YWtpbmdfYW1vdW50OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBNaW4gdGltZWxvY2sgZm9yIHN0YWtpbmdcbiAgICAgICAqL1xuICAgICAgbWluX3N0YWtpbmdfdGltZTogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTWluaW11bSBmZWUgKGluIHNhdHMpIHRoYXQgbXVzdCBiZSBwYWlkIGFzIHBhcnQgb2YgdGhlIHNsYXNoaW5nIHR4blxuICAgICAgICovXG4gICAgICBzbGFzaGluZ19mZWU/OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBleHRyYSBudW1iZXIgb2Ygc2F0cyB0byBzbGFzaCBpbiB0aGUgc2xhc2hpbmcgdHhuLiBUaGlzIGNhbiBiZSB1c2VkXG4gICAgICAgKiB0byBlbnN1cmUgdGhhdCB0aGUgdHJhbnNhY3Rpb24gbWVldHMgdGhlIG1pbmltdW0gc2xhc2hpbmcgcmVxdWlyZW1lbnRcbiAgICAgICAqIGV2ZW4gaWYgdGhlIGNvdmVuYW50IGNvbW1pdHRlZSBtZW1iZXJzIHVzZSBmbG9hdHMgdG8gY29tcHV0ZSB0aGUgYW1vdW50XG4gICAgICAgKiB0aGF0IHNob3VsZCBiZSBzbGFzaGVkLiBUaGUgZGVmYXVsdCBpcyAyOyBpdCBzaG91bGQgbm90IGJlIG5lY2Vzc2FyeSB0b1xuICAgICAgICogZ28gaGlnaGVyIHRoYW4gdGhpcy5cbiAgICAgICAqL1xuICAgICAgc2xhc2hpbmdfbWFyZ2luPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBwa19zY3JpcHQgdmFsdWUgZm9yIHRoZSAwdGggb3V0cHV0IGluZGV4IG9mIGEgc2xhc2hpbmcgdHJhbnNhY3Rpb24sXG4gICAgICAgKiBzZXJpYWxpemVkIGFzIGEgaGV4IGJ5dGUgc3RyaW5nLiBUaGlzIHZhbHVlIG11c3QgYmUgcHJlc2VudCB0byBjcmVhdGVcbiAgICAgICAqIHNsYXNoaW5nIHNpZ25hdHVyZXMuXG4gICAgICAgKi9cbiAgICAgIHNsYXNoaW5nX3BrX3NjcmlwdD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBmcmFjdGlvbiBvZiBzdGFrZSBzbGFzaGVkIGlmIGEgZG91YmxlLXNpZ24gaXMgZGV0ZWN0ZWQgKi9cbiAgICAgIHNsYXNoaW5nX3JhdGU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQml0Y29pbiB0cmFuc2FjdGlvbiB0YWcgZm9yIHN0YWtpbmcgbWV0YWRhdGEuIElmIHByZXNlbnQsIGFuIGlkZW50aWZpYWJsZVxuICAgICAgICogc3Rha2luZyBvdXRwdXQgKGkuZS4sIG9uZSB3aXRoIGFuIE9QX1JFVFVSTikgd2lsbCBiZSBjcmVhdGVkLlxuICAgICAgICovXG4gICAgICB0YWc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gRmVlIChpbiBzYXRzKSB0aGF0IG11c3QgYmUgc3BlbnQgYXMgcGFydCBvZiB0aGUgdW5ib25kaW5nIHR4blxuICAgICAgICovXG4gICAgICB1bmJvbmRpbmdfZmVlOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBNaW4gdGltZWxvY2sgZm9yIGFuIHVuYm9uZGluZyBzY3JpcHRcbiAgICAgICAqL1xuICAgICAgdW5ib25kaW5nX3RpbWU6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlciB2ZXJzaW9uXG4gICAgICAgKi9cbiAgICAgIHZlcnNpb246IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGFjdGlvbnMgcG9zc2libGUgdmlhIHRoZSBCYWJ5bG9uIFN0YWtpbmcgZW5kcG9pbnQgKi9cbiAgICBCYWJ5bG9uU3Rha2luZ1JlcXVlc3Q6XG4gICAgICB8IChjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJhYnlsb25TdGFraW5nRGVwb3NpdFwiXSAmIHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBhY3Rpb246IFwiZGVwb3NpdFwiO1xuICAgICAgICB9KVxuICAgICAgfCAoY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uU3Rha2luZ0Vhcmx5VW5ib25kXCJdICYge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIGFjdGlvbjogXCJlYXJseV91bmJvbmRcIjtcbiAgICAgICAgfSlcbiAgICAgIHwgKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmFieWxvblN0YWtpbmdXaXRoZHJhd2FsXCJdICYge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIGFjdGlvbjogXCJ3aXRoZHJhd190aW1lbG9ja1wiO1xuICAgICAgICB9KVxuICAgICAgfCAoY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uU3Rha2luZ1dpdGhkcmF3YWxcIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgYWN0aW9uOiBcIndpdGhkcmF3X2Vhcmx5X3VuYm9uZFwiO1xuICAgICAgICB9KVxuICAgICAgfCAoY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uU3Rha2luZ1dpdGhkcmF3YWxcIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgYWN0aW9uOiBcIndpdGhkcmF3X3NsYXNoaW5nXCI7XG4gICAgICAgIH0pXG4gICAgICB8IChjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJhYnlsb25TdGFraW5nRWFybHlVbmJvbmRcIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgYWN0aW9uOiBcInNsYXNoX2RlcG9zaXRcIjtcbiAgICAgICAgfSlcbiAgICAgIHwgKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmFieWxvblN0YWtpbmdFYXJseVVuYm9uZFwiXSAmIHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBhY3Rpb246IFwic2xhc2hfZWFybHlfdW5ib25kXCI7XG4gICAgICAgIH0pO1xuICAgIEJhYnlsb25TdGFraW5nUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdHJhbnNhY3Rpb24gZmVlIGluIHNhdHNcbiAgICAgICAqIEBleGFtcGxlIDEzMzdcbiAgICAgICAqL1xuICAgICAgZmVlOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgUFNCVCBpbiBlaXRoZXIgaGV4IG9yIGJhc2U2NCBzZXJpYWxpemF0aW9uXG4gICAgICAgKiBAZXhhbXBsZSA3MDczNjI3NGZmMDEwMDVlLi4uXG4gICAgICAgKi9cbiAgICAgIHBzYnQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gRGF0YSBuZWVkZWQgdG8gY3JlYXRlIGEgQmFieWxvbiB3aXRoZHJhd2FsIHRyYW5zYWN0aW9uICovXG4gICAgQmFieWxvblN0YWtpbmdXaXRoZHJhd2FsOiB7XG4gICAgICBleHBsaWNpdF9wYXJhbXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJhYnlsb25TdGFraW5nUGFyYW1zXCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBTY2hub3JyIHB1YmxpYyBrZXkgKGkuZS4sIDMyLWJ5dGUgWC1jb29yZGluYXRlKSBvZiB0aGUgZmluYWxpdHlcbiAgICAgICAqIHByb3ZpZGVyIHRvIHdoaWNoIHRoZSBzdGFrZSBpcyBkZWxlZ2F0ZWQuXG4gICAgICAgKi9cbiAgICAgIGZpbmFsaXR5X3Byb3ZpZGVyX3Brczogc3RyaW5nW107XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbG9jayB0aW1lIHVzZWQgZm9yIHRoZSB3aXRoZHJhd2FsIG91dHB1dCBpbiB0aGUgc3Rha2luZyBkZXBvc2l0IHRyYW5zYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIGxvY2tfdGltZTogbnVtYmVyO1xuICAgICAgbmV0d29yazogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uTmV0d29ya0lkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFNjaG5vcnIgcHVibGljIGtleSAoaS5lLiwgMzItYnl0ZSBYLWNvb3JkaW5hdGUpIG9mIHRoZSBzdGFrZXIuIFRoaXNcbiAgICAgICAqIGlzIHRoZSBrZXkgdGhhdCBzaWducyB0aGUgc2xhc2hpbmcsIHdpdGhkcmF3YWwsIGFuZCB1bmJvbmRpbmcgc2NyaXB0cy5cbiAgICAgICAqL1xuICAgICAgc3Rha2VyX3BrOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcGFyYW1ldGVyIHZlcnNpb24gdG8gdXNlLiBJZiBgTm9uZWAsIHVzZXMgdGhlIGxhdGVzdCB2ZXJzaW9uLlxuICAgICAgICovXG4gICAgICB2ZXJzaW9uPzogbnVtYmVyIHwgbnVsbDtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgYHRydWVgLCB0aGUgcmVzdWx0aW5nIFBTQlQgaXMgZW5jb2RlZCBhcyBhIGJhc2U2NCBzdHJpbmcuXG4gICAgICAgKiBPdGhlcndpc2UsIGl0IGlzIGVuY29kZWQgYXMgYSBoZXggc3RyaW5nLlxuICAgICAgICovXG4gICAgICBhc19iYXNlNjQ/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHRyYW5zYWN0aW9uIGZlZSB2YWx1ZS4gVGhlIGBmZWVfdHlwZWAgZmllbGQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoaXNcbiAgICAgICAqIGlzIGEgZml4ZWQgZmVlIGluIHNhdHMgb3IgYSByYXRlIGluIHNhdHMgcGVyIChlc3RpbWF0ZWQpIHZpcnR1YWwgYnl0ZSBvZlxuICAgICAgICogdHJhbnNhY3Rpb24gd2VpZ2h0IChpLmUuLCBzYXRzIHBlciB2YikuXG4gICAgICAgKi9cbiAgICAgIGZlZTogbnVtYmVyO1xuICAgICAgZmVlX3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRmVlVHlwZVwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHdpdGhkcmF3YWwgcmVjaXBpZW50LCBzcGVjaWZpZWQgYXMgYSBCaXRjb2luIHNwZW5kIHNjcmlwdCAqL1xuICAgICAgcmVjaXBpZW50OiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRyYW5zYWN0aW9uLWlkIG9mIHRoZSBkZXBvc2l0IG9yIGVhcmx5IHVuYm9uZGluZyB0cmFuc2FjdGlvbiB0byB3aXRoZHJhdyBmcm9tICovXG4gICAgICB0eGlkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBvcHRpb25hbCBsb2NrIGhlaWdodCAoaW4gYmxvY2tzKSBmb3IgdGhpcyB0cmFuc2FjdGlvbi4gVGhlIHJlc3VsdGluZ1xuICAgICAgICogdHJhbnNhY3Rpb24gY2Fubm90IGJlIG1pbmVkIGJlZm9yZSB0aGUgc3BlY2lmaWVkIGJsb2NrIGhlaWdodC5cbiAgICAgICAqL1xuICAgICAgdHhuX2xvY2tfaGVpZ2h0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB2YWx1ZSBpbiBzYXRzIHRoYXQgaXMgc3Rha2VkIGluIHRoZSB0cmFuc2FjdGlvbiBiZWluZyB3aXRoZHJhd25cbiAgICAgICAqL1xuICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRyYW5zYWN0aW9uIG91dHB1dCBpbmRleCBvZiB0aGUgc3Rha2luZyB0cmFuc2FjdGlvbiBmcm9tIHdoaWNoIHRvIHdpdGhkcmF3LlxuICAgICAgICogRm9yIHN0YWtpbmcgdHJhbnNhY3Rpb25zIGdlbmVyYXRlZCBieSBDdWJlU2lnbmVyLCB0aGlzIHdpbGwgYWx3YXlzIGJlIDAuXG4gICAgICAgKiBGb3Igc2xhc2hpbmcgdHJhbnNhY3Rpb25zIGdlbmVyYXRlZCBieSBDdWJlU2lnbmVyLCB0aGlzIHdpbGwgYWx3YXlzIGJlIDEuXG4gICAgICAgKi9cbiAgICAgIHZvdXQ6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIEJhZEdhdGV3YXlFcnJvckNvZGU6XG4gICAgICB8IFwiR2VuZXJpY1wiXG4gICAgICB8IFwiQ3VzdG9tQ2hhaW5ScGNFcnJvclwiXG4gICAgICB8IFwiRXNwbG9yYUFwaUVycm9yXCJcbiAgICAgIHwgXCJTZW50cnlBcGlFcnJvclwiXG4gICAgICB8IFwiQ2FsbFdlYmhvb2tFcnJvclwiXG4gICAgICB8IFwiT0F1dGhQcm92aWRlckVycm9yXCJcbiAgICAgIHwgXCJPaWRjRGlzb3ZlcnlGYWlsZWRcIlxuICAgICAgfCBcIk9pZGNJc3N1ZXJKd2tFbmRwb2ludFVuYXZhaWxhYmxlXCJcbiAgICAgIHwgXCJTbXRwU2VydmVyVW5hdmFpbGFibGVcIjtcbiAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICBCYWRSZXF1ZXN0RXJyb3JDb2RlOlxuICAgICAgfCBcIkdlbmVyaWNCYWRSZXF1ZXN0XCJcbiAgICAgIHwgXCJDYW5ub3RWb3RlT25SZWRlZW1lZFJlcXVlc3RcIlxuICAgICAgfCBcIlBlbmRpbmdPcEFscmVhZHlWZXRvZWRcIlxuICAgICAgfCBcIk11bHRpcGxlUGVuZGluZ09wc1JlZmVyZW5jZWRcIlxuICAgICAgfCBcIkRpc2FsbG93ZWRBbGxvd1J1bGVSZWZlcmVuY2VcIlxuICAgICAgfCBcIkludmFsaWRQYWdpbmF0aW9uVG9rZW5cIlxuICAgICAgfCBcIkludmFsaWRFbWFpbFwiXG4gICAgICB8IFwiSW52YWxpZEVtYWlsVGVtcGxhdGVcIlxuICAgICAgfCBcIlF1ZXJ5TWV0cmljc0Vycm9yXCJcbiAgICAgIHwgXCJJbnZhbGlkVGVsZWdyYW1EYXRhXCJcbiAgICAgIHwgXCJWYWxpZGF0aW9uRXJyb3JcIlxuICAgICAgfCBcIldlYmhvb2tQb2xpY3lUaW1lb3V0T3V0T2ZCb3VuZHNcIlxuICAgICAgfCBcIldlYmhvb2tQb2xpY3lEaXNhbGxvd2VkVXJsU2NoZW1lXCJcbiAgICAgIHwgXCJXZWJob29rUG9saWN5RGlzYWxsb3dlZFVybEhvc3RcIlxuICAgICAgfCBcIldlYmhvb2tQb2xpY3lEaXNhbGxvd2VkSGVhZGVyc1wiXG4gICAgICB8IFwiUmVzZXJ2ZWROYW1lXCJcbiAgICAgIHwgXCJVc2VyRW1haWxOb3RDb25maWd1cmVkXCJcbiAgICAgIHwgXCJFbWFpbFBhc3N3b3JkTm90Rm91bmRcIlxuICAgICAgfCBcIlBhc3N3b3JkQXV0aE5vdEFsbG93ZWRCeUludml0YXRpb25cIlxuICAgICAgfCBcIk9uZVRpbWVDb2RlRXhwaXJlZFwiXG4gICAgICB8IFwiSW52YWxpZEJvZHlcIlxuICAgICAgfCBcIkludmFsaWRKd3RcIlxuICAgICAgfCBcIkludml0YXRpb25Ob0xvbmdlclZhbGlkXCJcbiAgICAgIHwgXCJUb2tlblJlcXVlc3RFcnJvclwiXG4gICAgICB8IFwiSW52YWxpZE1mYVJlY2VpcHRcIlxuICAgICAgfCBcIkludmFsaWRNZmFQb2xpY3lDb3VudFwiXG4gICAgICB8IFwiSW52YWxpZE1mYVBvbGljeU51bUF1dGhGYWN0b3JzXCJcbiAgICAgIHwgXCJJbnZhbGlkTWZhUG9saWN5TnVtQWxsb3dlZEFwcHJvdmVyc1wiXG4gICAgICB8IFwiSW52YWxpZE1mYVBvbGljeUdyYWNlUGVyaW9kVG9vTG9uZ1wiXG4gICAgICB8IFwiSW52YWxpZEJhYnlsb25TdGFraW5nUG9saWN5UGFyYW1zXCJcbiAgICAgIHwgXCJJbnZhbGlkU3VpVHhSZWNlaXZlcnNFbXB0eUFsbG93bGlzdFwiXG4gICAgICB8IFwiSW52YWxpZEJ0Y1R4UmVjZWl2ZXJzRW1wdHlBbGxvd2xpc3RcIlxuICAgICAgfCBcIkludmFsaWRSZXF1aXJlUm9sZVNlc3Npb25BbGxvd2xpc3RcIlxuICAgICAgfCBcIkludmFsaWRDcmVhdGVLZXlDb3VudFwiXG4gICAgICB8IFwiSW52YWxpZERpZmZpZUhlbGxtYW5Db3VudFwiXG4gICAgICB8IFwiT3JnSW52aXRlRXhpc3RpbmdVc2VyXCJcbiAgICAgIHwgXCJPcmdVc2VyQWxyZWFkeUV4aXN0c1wiXG4gICAgICB8IFwiT3JnTmFtZVRha2VuXCJcbiAgICAgIHwgXCJLd2tOb3RGb3VuZEluUmVnaW9uXCJcbiAgICAgIHwgXCJPcmdJc05vdE9yZ0V4cG9ydFwiXG4gICAgICB8IFwiUm9sZU5hbWVUYWtlblwiXG4gICAgICB8IFwiUG9saWN5TmFtZVRha2VuXCJcbiAgICAgIHwgXCJOYW1lVGFrZW5cIlxuICAgICAgfCBcIkNvbnRhY3ROYW1lSW52YWxpZFwiXG4gICAgICB8IFwiQ29udGFjdEFkZHJlc3Nlc0ludmFsaWRcIlxuICAgICAgfCBcIkNvbnRhY3RMYWJlbEludmFsaWRcIlxuICAgICAgfCBcIkNvbnRhY3RNb2RpZmllZFwiXG4gICAgICB8IFwiUG9saWN5Tm90Rm91bmRcIlxuICAgICAgfCBcIlBvbGljeVZlcnNpb25Ob3RGb3VuZFwiXG4gICAgICB8IFwiUG9saWN5UnVsZURpc2FsbG93ZWRCeVR5cGVcIlxuICAgICAgfCBcIlBvbGljeVR5cGVEaXNhbGxvd2VkXCJcbiAgICAgIHwgXCJQb2xpY3lEdXBsaWNhdGVFcnJvclwiXG4gICAgICB8IFwiUG9saWN5U3RpbGxBdHRhY2hlZFwiXG4gICAgICB8IFwiUG9saWN5TW9kaWZpZWRcIlxuICAgICAgfCBcIlBvbGljeU5vdEF0dGFjaGVkXCJcbiAgICAgIHwgXCJBZGRLZXlUb1JvbGVDb3VudFRvb0hpZ2hcIlxuICAgICAgfCBcIkludmFsaWRLZXlJZFwiXG4gICAgICB8IFwiSW52YWxpZFRpbWVMb2NrQWxyZWFkeUluVGhlUGFzdFwiXG4gICAgICB8IFwiSW52YWxpZFJlc3RyaWN0ZWRTY29wZXNcIlxuICAgICAgfCBcIkludmFsaWRVcGRhdGVcIlxuICAgICAgfCBcIkludmFsaWRNZXRhZGF0YUxlbmd0aFwiXG4gICAgICB8IFwiSW52YWxpZExlbmd0aFwiXG4gICAgICB8IFwiSW52YWxpZEtleU1hdGVyaWFsSWRcIlxuICAgICAgfCBcIktleU5vdEZvdW5kXCJcbiAgICAgIHwgXCJTaXdlQ2hhbGxlbmdlTm90Rm91bmRcIlxuICAgICAgfCBcIlNpd2VJbnZhbGlkUmVxdWVzdFwiXG4gICAgICB8IFwiU2l3c0NoYWxsZW5nZU5vdEZvdW5kXCJcbiAgICAgIHwgXCJTaXdzSW52YWxpZFJlcXVlc3RcIlxuICAgICAgfCBcIlVzZXJFeHBvcnREZXJpdmVkS2V5XCJcbiAgICAgIHwgXCJVc2VyRXhwb3J0UHVibGljS2V5SW52YWxpZFwiXG4gICAgICB8IFwiTmlzdFAyNTZQdWJsaWNLZXlJbnZhbGlkXCJcbiAgICAgIHwgXCJVbmFibGVUb0FjY2Vzc1NtdHBSZWxheVwiXG4gICAgICB8IFwiVXNlckV4cG9ydEluUHJvZ3Jlc3NcIlxuICAgICAgfCBcIlJvbGVOb3RGb3VuZFwiXG4gICAgICB8IFwiSW52YWxpZFJvbGVOYW1lT3JJZFwiXG4gICAgICB8IFwiSW52YWxpZE1mYVJlY2VpcHRPcmdJZE1pc3NpbmdcIlxuICAgICAgfCBcIkludmFsaWRNZmFSZWNlaXB0SW52YWxpZE9yZ0lkXCJcbiAgICAgIHwgXCJNZmFSZXF1ZXN0Tm90Rm91bmRcIlxuICAgICAgfCBcIkludmFsaWRLZXlUeXBlXCJcbiAgICAgIHwgXCJJbnZhbGlkUHJvcGVydGllc0ZvcktleVR5cGVcIlxuICAgICAgfCBcIk1pc21hdGNoZWRLZXlQcm9wZXJ0aWVzUGF0Y2hcIlxuICAgICAgfCBcIk1pc3NpbmdCaW5hbmNlQXBpS2V5XCJcbiAgICAgIHwgXCJNaXNzaW5nQnliaXRBcGlLZXlcIlxuICAgICAgfCBcIk1pc3NpbmdDb2luYmFzZUFwaUtleVwiXG4gICAgICB8IFwiQmluYW5jZUtleU1hc3Rlck1pc21hdGNoXCJcbiAgICAgIHwgXCJCeWJpdEFjY291bnRNaXNtYXRjaFwiXG4gICAgICB8IFwiSW52YWxpZEtleU1hdGVyaWFsXCJcbiAgICAgIHwgXCJJbnZhbGlkSGV4VmFsdWVcIlxuICAgICAgfCBcIkludmFsaWRCYXNlMzJWYWx1ZVwiXG4gICAgICB8IFwiSW52YWxpZEJhc2U1OFZhbHVlXCJcbiAgICAgIHwgXCJJbnZhbGlkQmFzZTY0VmFsdWVcIlxuICAgICAgfCBcIkludmFsaWRTczU4VmFsdWVcIlxuICAgICAgfCBcIkludmFsaWRGb3JrVmVyc2lvbkxlbmd0aFwiXG4gICAgICB8IFwiSW52YWxpZEV0aEFkZHJlc3NcIlxuICAgICAgfCBcIkludmFsaWRTdGVsbGFyQWRkcmVzc1wiXG4gICAgICB8IFwiSW52YWxpZE9yZ05hbWVPcklkXCJcbiAgICAgIHwgXCJJbnZhbGlkVXBkYXRlT3JnUmVxdWVzdERpc2FsbG93ZWRNZmFUeXBlXCJcbiAgICAgIHwgXCJJbnZhbGlkVXBkYXRlT3JnUmVxdWVzdEVtcHR5QWxsb3dlZE1mYVR5cGVzXCJcbiAgICAgIHwgXCJFbWFpbE90cERlbGF5VG9vU2hvcnRGb3JSZWdpc3Rlck1mYVwiXG4gICAgICB8IFwiSW52YWxpZFN0YWtlRGVwb3NpdFwiXG4gICAgICB8IFwiSW52YWxpZEJsb2JTaWduUmVxdWVzdFwiXG4gICAgICB8IFwiSW52YWxpZERpZmZpZUhlbGxtYW5SZXF1ZXN0XCJcbiAgICAgIHwgXCJJbnZhbGlkU29sYW5hU2lnblJlcXVlc3RcIlxuICAgICAgfCBcIkludmFsaWRFaXA3MTJTaWduUmVxdWVzdFwiXG4gICAgICB8IFwiSW52YWxpZEVpcDc3MDJTaWduUmVxdWVzdFwiXG4gICAgICB8IFwiT25seVNwZWNpZnlPbmVcIlxuICAgICAgfCBcIkluY29tcGF0aWJsZVBhcmFtc1wiXG4gICAgICB8IFwiTm9PaWRjRGF0YUluUHJvb2ZcIlxuICAgICAgfCBcIkludmFsaWRFdm1TaWduUmVxdWVzdFwiXG4gICAgICB8IFwiSW52YWxpZEV0aDJTaWduUmVxdWVzdFwiXG4gICAgICB8IFwiSW52YWxpZERlcml2ZUtleVJlcXVlc3RcIlxuICAgICAgfCBcIkludmFsaWRTdGFraW5nQW1vdW50XCJcbiAgICAgIHwgXCJDdXN0b21TdGFraW5nQW1vdW50Tm90QWxsb3dlZEZvcldyYXBwZXJDb250cmFjdFwiXG4gICAgICB8IFwiSW52YWxpZFVuc3Rha2VSZXF1ZXN0XCJcbiAgICAgIHwgXCJJbnZhbGlkQ3JlYXRlVXNlclJlcXVlc3RcIlxuICAgICAgfCBcIlVzZXJBbHJlYWR5RXhpc3RzXCJcbiAgICAgIHwgXCJJZHBVc2VyQWxyZWFkeUV4aXN0c1wiXG4gICAgICB8IFwiQ29nbml0b1VzZXJBbHJlYWR5T3JnTWVtYmVyXCJcbiAgICAgIHwgXCJVc2VyTm90Rm91bmRcIlxuICAgICAgfCBcIlVzZXJXaXRoRW1haWxOb3RGb3VuZFwiXG4gICAgICB8IFwiUG9saWN5S2V5TWlzbWF0Y2hcIlxuICAgICAgfCBcIkVtcHR5U2NvcGVzXCJcbiAgICAgIHwgXCJJbnZhbGlkU2NvcGVzRm9yUm9sZVNlc3Npb25cIlxuICAgICAgfCBcIkludmFsaWRMaWZldGltZVwiXG4gICAgICB8IFwiTm9TaW5nbGVLZXlGb3JVc2VyXCJcbiAgICAgIHwgXCJJbnZhbGlkT3JnUG9saWN5UnVsZVwiXG4gICAgICB8IFwiU291cmNlSXBBbGxvd2xpc3RFbXB0eVwiXG4gICAgICB8IFwiTGltaXRXaW5kb3dUb29Mb25nXCJcbiAgICAgIHwgXCJFcmMyMENvbnRyYWN0RGlzYWxsb3dlZFwiXG4gICAgICB8IFwiRW1wdHlSdWxlRXJyb3JcIlxuICAgICAgfCBcIlBvbGljeUZpZWxkVmFsaWRhdGlvbkVycm9yXCJcbiAgICAgIHwgXCJPcHRpb25hbExpc3RFbXB0eVwiXG4gICAgICB8IFwiTXVsdGlwbGVFeGNsdXNpdmVGaWVsZHNQcm92aWRlZFwiXG4gICAgICB8IFwiRHVwbGljYXRlRmllbGRFbnRyeVwiXG4gICAgICB8IFwiSW52YWxpZFJhbmdlXCJcbiAgICAgIHwgXCJJbnZhbGlkT3JnUG9saWN5UmVwZWF0ZWRSdWxlXCJcbiAgICAgIHwgXCJJbnZhbGlkU3VpVHJhbnNhY3Rpb25cIlxuICAgICAgfCBcIlN1aVNlbmRlck1pc21hdGNoXCJcbiAgICAgIHwgXCJBdmFTaWduSGFzaEVycm9yXCJcbiAgICAgIHwgXCJBdmFTaWduRXJyb3JcIlxuICAgICAgfCBcIkJ0Y1NlZ3dpdEhhc2hFcnJvclwiXG4gICAgICB8IFwiQnRjVGFwcm9vdEhhc2hFcnJvclwiXG4gICAgICB8IFwiQnRjU2lnbkVycm9yXCJcbiAgICAgIHwgXCJUYXByb290U2lnbkVycm9yXCJcbiAgICAgIHwgXCJFaXA3MTJTaWduRXJyb3JcIlxuICAgICAgfCBcIkludmFsaWRNZW1iZXJSb2xlSW5Vc2VyQWRkXCJcbiAgICAgIHwgXCJJbnZhbGlkTWVtYmVyUm9sZUluUmVjaXBpZW50QWRkXCJcbiAgICAgIHwgXCJUaGlyZFBhcnR5VXNlckFscmVhZHlFeGlzdHNcIlxuICAgICAgfCBcIk9pZGNJZGVudGl0eUFscmVhZHlFeGlzdHNcIlxuICAgICAgfCBcIlVzZXJBbHJlYWR5SGFzSWRlbnRpdHlcIlxuICAgICAgfCBcIlRoaXJkUGFydHlVc2VyTm90Rm91bmRcIlxuICAgICAgfCBcIkRlbGV0ZU9pZGNVc2VyRXJyb3JcIlxuICAgICAgfCBcIkRlbGV0ZVVzZXJFcnJvclwiXG4gICAgICB8IFwiU2Vzc2lvblJvbGVNaXNtYXRjaFwiXG4gICAgICB8IFwiSW52YWxpZE9pZGNUb2tlblwiXG4gICAgICB8IFwiSW52YWxpZE9pZGNJZGVudGl0eVwiXG4gICAgICB8IFwiT2lkY0lzc3VlclVuc3VwcG9ydGVkXCJcbiAgICAgIHwgXCJPaWRjSXNzdWVyTm90QWxsb3dlZFwiXG4gICAgICB8IFwiT2lkY0lzc3Vlck5vQXBwbGljYWJsZUp3a1wiXG4gICAgICB8IFwiRmlkb0tleUFscmVhZHlSZWdpc3RlcmVkXCJcbiAgICAgIHwgXCJGaWRvS2V5U2lnbkNvdW50VG9vTG93XCJcbiAgICAgIHwgXCJGaWRvVmVyaWZpY2F0aW9uRmFpbGVkXCJcbiAgICAgIHwgXCJGaWRvQ2hhbGxlbmdlTWZhTWlzbWF0Y2hcIlxuICAgICAgfCBcIlVuc3VwcG9ydGVkTGVnYWN5Q29nbml0b1Nlc3Npb25cIlxuICAgICAgfCBcIkludmFsaWRJZGVudGl0eVByb29mXCJcbiAgICAgIHwgXCJQYWdpbmF0aW9uRGF0YUV4cGlyZWRcIlxuICAgICAgfCBcIkV4aXN0aW5nS2V5c1Zpb2xhdGVFeGNsdXNpdmVLZXlBY2Nlc3NcIlxuICAgICAgfCBcIkV4cG9ydERlbGF5VG9vU2hvcnRcIlxuICAgICAgfCBcIkV4cG9ydFdpbmRvd1Rvb0xvbmdcIlxuICAgICAgfCBcIkludmFsaWRUb3RwRmFpbHVyZUxpbWl0XCJcbiAgICAgIHwgXCJJbnZhbGlkRWlwMTkxU2lnblJlcXVlc3RcIlxuICAgICAgfCBcIkNhbm5vdFJlc2VuZFVzZXJJbnZpdGF0aW9uXCJcbiAgICAgIHwgXCJJbnZhbGlkTm90aWZpY2F0aW9uRW5kcG9pbnRDb3VudFwiXG4gICAgICB8IFwiQ2Fubm90RGVsZXRlUGVuZGluZ1N1YnNjcmlwdGlvblwiXG4gICAgICB8IFwiSW52YWxpZE5vdGlmaWNhdGlvblVybFByb3RvY29sXCJcbiAgICAgIHwgXCJFbXB0eU9uZU9mT3JnRXZlbnRGaWx0ZXJcIlxuICAgICAgfCBcIkVtcHR5QWxsRXhjZXB0T3JnRXZlbnRGaWx0ZXJcIlxuICAgICAgfCBcIkludmFsaWRUYXBOb2RlSGFzaFwiXG4gICAgICB8IFwiSW52YWxpZE9uZVRpbWVDb2RlXCJcbiAgICAgIHwgXCJNZXNzYWdlTm90Rm91bmRcIlxuICAgICAgfCBcIk1lc3NhZ2VBbHJlYWR5U2lnbmVkXCJcbiAgICAgIHwgXCJNZXNzYWdlUmVqZWN0ZWRcIlxuICAgICAgfCBcIk1lc3NhZ2VSZXBsYWNlZFwiXG4gICAgICB8IFwiSW52YWxpZE1lc3NhZ2VUeXBlXCJcbiAgICAgIHwgXCJFbXB0eUFkZHJlc3NcIlxuICAgICAgfCBcIkludmFsaWRFdGgyU2lnbmluZ1BvbGljeVNsb3RSYW5nZVwiXG4gICAgICB8IFwiSW52YWxpZEV0aDJTaWduaW5nUG9saWN5RXBvY2hSYW5nZVwiXG4gICAgICB8IFwiSW52YWxpZEV0aDJTaWduaW5nUG9saWN5VGltZXN0YW1wUmFuZ2VcIlxuICAgICAgfCBcIkludmFsaWRFdGgyU2lnbmluZ1BvbGljeU92ZXJsYXBwaW5nUnVsZVwiXG4gICAgICB8IFwiUnBjVXJsTWlzc2luZ1wiXG4gICAgICB8IFwiTW1pQ2hhaW5JZE1pc3NpbmdcIlxuICAgICAgfCBcIkV0aGVyc0ludmFsaWRScGNVcmxcIlxuICAgICAgfCBcIkV0aGVyc0dldFRyYW5zYWN0aW9uQ291bnRFcnJvclwiXG4gICAgICB8IFwiSW52YWxpZFBhc3N3b3JkXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ0ZlZVBsdXNEdXN0T3ZlcmZsb3dcIlxuICAgICAgfCBcIkJhYnlsb25TdGFraW5nXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ0luY29ycmVjdEtleVwiXG4gICAgICB8IFwiQmFieWxvblN0YWtpbmdTZWd3aXROb25EZXBvc2l0XCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ1JlZ2lzdHJhdGlvblJlcXVpcmVzVGFwcm9vdFwiXG4gICAgICB8IFwiUHNidFNpZ25pbmdcIlxuICAgICAgfCBcIlRvb01hbnlSZXNldHNcIlxuICAgICAgfCBcIlRvb01hbnlSZXF1ZXN0c1wiXG4gICAgICB8IFwiVG9vTWFueUZhaWxlZExvZ2luc1wiXG4gICAgICB8IFwiQmFkQnRjTWVzc2FnZVNpZ25QMnNoRmxhZ1wiXG4gICAgICB8IFwiSW52YWxpZFRlbmRlcm1pbnRSZXF1ZXN0XCJcbiAgICAgIHwgXCJQb2xpY3lWZXJzaW9uTWF4UmVhY2hlZFwiXG4gICAgICB8IFwiUG9saWN5VmVyc2lvbkludmFsaWRcIlxuICAgICAgfCBcIlBvbGljeVNlY3JldExpbWl0UmVhY2hlZFwiXG4gICAgICB8IFwiUG9saWN5U2VjcmV0VG9vTGFyZ2VcIlxuICAgICAgfCBcIkludmFsaWRSYW5kb21TZWNyZXRMZW5ndGhcIlxuICAgICAgfCBcIkludmFsaWRJbXBvcnRLZXlcIlxuICAgICAgfCBcIkFsaWVuT3duZXJJbnZhbGlkXCJcbiAgICAgIHwgXCJFbXB0eVVwZGF0ZVJlcXVlc3RcIlxuICAgICAgfCBcIkludmFsaWRQb2xpY3lSZWZlcmVuY2VcIlxuICAgICAgfCBcIlBvbGljeUVuZ2luZURpc2FibGVkXCJcbiAgICAgIHwgXCJJbnZhbGlkV2FzbVBvbGljeVwiXG4gICAgICB8IFwiQ2VsUHJvZ3JhbVRvb0xhcmdlXCJcbiAgICAgIHwgXCJJbnZhbGlkUG9saWN5XCJcbiAgICAgIHwgXCJSZWR1bmRhbnREZXJpdmF0aW9uUGF0aFwiXG4gICAgICB8IFwiSW1wb3J0S2V5TWlzc2luZ1wiXG4gICAgICB8IFwiSW52YWxpZEFiaU1ldGhvZHNcIlxuICAgICAgfCBcIkJhYnlsb25Db3ZTaWduXCJcbiAgICAgIHwgXCJJbnZhbGlkUG9saWN5TG9nc1JlcXVlc3RcIlxuICAgICAgfCBcIlVzZXJQcm9maWxlTWlncmF0aW9uTXVsdGlwbGVFbnRyaWVzXCJcbiAgICAgIHwgXCJVc2VyUHJvZmlsZU1pZ3JhdGlvblRvb01hbnlJdGVtc1wiXG4gICAgICB8IFwiSW5wdXRUb29TaG9ydFwiXG4gICAgICB8IFwiSW52YWxpZFR3ZWFrTGVuZ3RoXCJcbiAgICAgIHwgXCJJbnZhbGlkQ3VzdG9tQ2hhaW5zXCJcbiAgICAgIHwgXCJJbnZhbGlkUnBjUmVxdWVzdFwiXG4gICAgICB8IFwiSW52YWxpZEFjbEVudHJ5XCI7XG4gICAgQmlsbGluZ0FyZ3M6IHtcbiAgICAgIGJpbGxpbmdfb3JnOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgZXZlbnRfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaWxsaW5nRXZlbnRcIl07XG4gICAgICBrZXk/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdIHwgbnVsbDtcbiAgICAgIHJvbGU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdIHwgbnVsbDtcbiAgICAgIHVzZXI/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdIHwgbnVsbDtcbiAgICB9O1xuICAgIEJpbGxpbmdEaW1lbnNpb25zOiB7XG4gICAgICBraW5kOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbGxpbmdFdmVudFwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIG1ldHJpY3MgbXVzdCBpbmNsdWRlICdvcmdfaWQnIGFzIGEgZGltZW5zaW9uLiAqL1xuICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQmlsbGluZyBldmVudCB0eXBlcy5cbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEJpbGxpbmdFdmVudDpcbiAgICAgIHwgXCJtbWlcIlxuICAgICAgfCBcIm1taU1lc3NhZ2VHZXRcIlxuICAgICAgfCBcIm1taU1lc3NhZ2VMaXN0XCJcbiAgICAgIHwgXCJtbWlNZXNzYWdlU2lnblwiXG4gICAgICB8IFwibW1pTWVzc2FnZVJlamVjdFwiXG4gICAgICB8IFwibW1pTWVzc2FnZURlbGV0ZVwiXG4gICAgICB8IFwiYWJvdXRNZVwiXG4gICAgICB8IFwidXNlclJlc2V0RW1haWxJbml0XCJcbiAgICAgIHwgXCJ1c2VyUmVzZXRFbWFpbENvbXBsZXRlXCJcbiAgICAgIHwgXCJ1c2VyRGVsZXRlVG90cFwiXG4gICAgICB8IFwidXNlclJlc2V0VG90cEluaXRcIlxuICAgICAgfCBcInVzZXJSZXNldFRvdHBDb21wbGV0ZVwiXG4gICAgICB8IFwidXNlclZlcmlmeVRvdHBcIlxuICAgICAgfCBcInVzZXJSZWdpc3RlckZpZG9Jbml0XCJcbiAgICAgIHwgXCJ1c2VyUmVnaXN0ZXJGaWRvQ29tcGxldGVcIlxuICAgICAgfCBcInVzZXJEZWxldGVGaWRvXCJcbiAgICAgIHwgXCJjcmVhdGVQcm9vZk9pZGNcIlxuICAgICAgfCBcImNyZWF0ZVByb29mQ3ViZVNpZ25lclwiXG4gICAgICB8IFwidmVyaWZ5UHJvb2ZcIlxuICAgICAgfCBcImFkZE9pZGNJZGVudGl0eVwiXG4gICAgICB8IFwicmVtb3ZlT2lkY0lkZW50aXR5XCJcbiAgICAgIHwgXCJsaXN0T2lkY0lkZW50aXRpZXNcIlxuICAgICAgfCBcImdldE9yZ1wiXG4gICAgICB8IFwidXBkYXRlT3JnXCJcbiAgICAgIHwgXCJnZXRPcmdFeHBvcnRcIlxuICAgICAgfCBcImNyZWF0ZU9yZ1wiXG4gICAgICB8IFwibGlzdEtleXNJbk9yZ1wiXG4gICAgICB8IFwiYXR0ZXN0S2V5XCJcbiAgICAgIHwgXCJnZXRLZXlJbk9yZ1wiXG4gICAgICB8IFwiZ2V0S2V5QnlNYXRlcmlhbElkXCJcbiAgICAgIHwgXCJsaXN0S2V5Um9sZXNcIlxuICAgICAgfCBcInVwZGF0ZUtleVwiXG4gICAgICB8IFwibGlzdEhpc3RvcmljYWxLZXlUeFwiXG4gICAgICB8IFwiaW52aXRlXCJcbiAgICAgIHwgXCJjYW5jZWxJbnZpdGF0aW9uXCJcbiAgICAgIHwgXCJsaXN0SW52aXRhdGlvbnNcIlxuICAgICAgfCBcImxpc3RVc2Vyc0luT3JnXCJcbiAgICAgIHwgXCJnZXRVc2VySW5PcmdcIlxuICAgICAgfCBcImdldFVzZXJJbk9yZ0J5RW1haWxcIlxuICAgICAgfCBcImdldFVzZXJJbk9yZ0J5T2lkY1wiXG4gICAgICB8IFwidXBkYXRlVXNlck1lbWJlcnNoaXBcIlxuICAgICAgfCBcInJlc2V0TWVtYmVyTWZhXCJcbiAgICAgIHwgXCJjb21wbGV0ZVJlc2V0TWVtYmVyTWZhXCJcbiAgICAgIHwgXCJjcmVhdGVSb2xlXCJcbiAgICAgIHwgXCJhdHRlc3RSb2xlXCJcbiAgICAgIHwgXCJnZXRSb2xlXCJcbiAgICAgIHwgXCJsaXN0VG9rZW5LZXlzXCJcbiAgICAgIHwgXCJsaXN0Um9sZXNcIlxuICAgICAgfCBcImdldFJvbGVLZXlcIlxuICAgICAgfCBcImxpc3RSb2xlS2V5c1wiXG4gICAgICB8IFwibGlzdFJvbGVVc2Vyc1wiXG4gICAgICB8IFwidXBkYXRlUm9sZVwiXG4gICAgICB8IFwiZGVsZXRlUm9sZVwiXG4gICAgICB8IFwiY29uZmlndXJlRW1haWxcIlxuICAgICAgfCBcImdldEVtYWlsQ29uZmlnXCJcbiAgICAgIHwgXCJkZWxldGVFbWFpbENvbmZpZ1wiXG4gICAgICB8IFwibGlzdEhpc3RvcmljYWxSb2xlVHhcIlxuICAgICAgfCBcImNyZWF0ZVBvbGljeVwiXG4gICAgICB8IFwiZ2V0UG9saWN5XCJcbiAgICAgIHwgXCJsaXN0UG9saWNpZXNcIlxuICAgICAgfCBcImRlbGV0ZVBvbGljeVwiXG4gICAgICB8IFwidXBkYXRlUG9saWN5XCJcbiAgICAgIHwgXCJpbnZva2VQb2xpY3lcIlxuICAgICAgfCBcImdldFBvbGljeUxvZ3NcIlxuICAgICAgfCBcInVwbG9hZFdhc21Qb2xpY3lcIlxuICAgICAgfCBcImdldFBvbGljeVNlY3JldHNcIlxuICAgICAgfCBcInVwZGF0ZVBvbGljeVNlY3JldHNcIlxuICAgICAgfCBcInNldFBvbGljeVNlY3JldFwiXG4gICAgICB8IFwiZGVsZXRlUG9saWN5U2VjcmV0XCJcbiAgICAgIHwgXCJjcmVhdGVQb2xpY3lJbXBvcnRLZXlcIlxuICAgICAgfCBcImdldFBvbGljeUJ1Y2tldFwiXG4gICAgICB8IFwibGlzdFBvbGljeUJ1Y2tldHNcIlxuICAgICAgfCBcInVwZGF0ZVBvbGljeUJ1Y2tldFwiXG4gICAgICB8IFwidXNlckV4cG9ydERlbGV0ZVwiXG4gICAgICB8IFwidXNlckV4cG9ydExpc3RcIlxuICAgICAgfCBcInVzZXJFeHBvcnRJbml0XCJcbiAgICAgIHwgXCJ1c2VyRXhwb3J0Q29tcGxldGVcIlxuICAgICAgfCBcImFkZFVzZXJUb1JvbGVcIlxuICAgICAgfCBcInJlbW92ZVVzZXJGcm9tUm9sZVwiXG4gICAgICB8IFwibWZhQXBwcm92ZUNzXCJcbiAgICAgIHwgXCJtZmFSZWplY3RDc1wiXG4gICAgICB8IFwibWZhR2V0XCJcbiAgICAgIHwgXCJtZmFMaXN0XCJcbiAgICAgIHwgXCJhZGRLZXlzVG9Sb2xlXCJcbiAgICAgIHwgXCJyZW1vdmVLZXlGcm9tUm9sZVwiXG4gICAgICB8IFwiY3JlYXRlUm9sZVRva2VuXCJcbiAgICAgIHwgXCJjcmVhdGVTZXNzaW9uXCJcbiAgICAgIHwgXCJyZXZva2VTZXNzaW9uXCJcbiAgICAgIHwgXCJyZXZva2VDdXJyZW50U2Vzc2lvblwiXG4gICAgICB8IFwicmV2b2tlU2Vzc2lvbnNcIlxuICAgICAgfCBcImxpc3RTZXNzaW9uc1wiXG4gICAgICB8IFwiZ2V0U2Vzc2lvblwiXG4gICAgICB8IFwic2lnbmVyU2Vzc2lvblJlZnJlc2hcIlxuICAgICAgfCBcIm1mYUFwcHJvdmVUb3RwXCJcbiAgICAgIHwgXCJtZmFSZWplY3RUb3RwXCJcbiAgICAgIHwgXCJtZmFGaWRvSW5pdFwiXG4gICAgICB8IFwibWZhQXBwcm92ZUZpZG9Db21wbGV0ZVwiXG4gICAgICB8IFwibWZhUmVqZWN0Rmlkb0NvbXBsZXRlXCJcbiAgICAgIHwgXCJtZmFFbWFpbEluaXRcIlxuICAgICAgfCBcIm1mYUVtYWlsQ29tcGxldGVcIlxuICAgICAgfCBcImN1YmUzc2lnbmVySGVhcnRiZWF0XCJcbiAgICAgIHwgXCJjcmVhdGVDb250YWN0XCJcbiAgICAgIHwgXCJnZXRDb250YWN0XCJcbiAgICAgIHwgXCJsaXN0Q29udGFjdHNcIlxuICAgICAgfCBcImRlbGV0ZUNvbnRhY3RcIlxuICAgICAgfCBcInVwZGF0ZUNvbnRhY3RcIlxuICAgICAgfCBcImxvb2t1cENvbnRhY3RzQnlBZGRyZXNzXCJcbiAgICAgIHwgXCJxdWVyeU1ldHJpY3NcIlxuICAgICAgfCBcInF1ZXJ5QXVkaXRMb2dcIlxuICAgICAgfCBcImNvdW50c1wiXG4gICAgICB8IFwiY3JlYXRlS2V5XCJcbiAgICAgIHwgXCJpbXBvcnRLZXlcIlxuICAgICAgfCBcImNyZWF0ZUtleUltcG9ydEtleVwiXG4gICAgICB8IFwiZGVyaXZlS2V5XCJcbiAgICAgIHwgXCJkZWxldGVLZXlcIlxuICAgICAgfCBcImF2YVNpZ25cIlxuICAgICAgfCBcImF2YVNlcmlhbGl6ZWRUeFNpZ25cIlxuICAgICAgfCBcImJhYnlsb25SZWdpc3RyYXRpb25cIlxuICAgICAgfCBcImJhYnlsb25TdGFraW5nXCJcbiAgICAgIHwgXCJiYWJ5bG9uQ292U2lnblwiXG4gICAgICB8IFwiYmluYW5jZVNpZ25cIlxuICAgICAgfCBcImJ5Yml0U2lnblwiXG4gICAgICB8IFwiY29pbmJhc2VTaWduXCJcbiAgICAgIHwgXCJibG9iU2lnblwiXG4gICAgICB8IFwiYnRjTWVzc2FnZVNpZ25cIlxuICAgICAgfCBcImJ0Y1NpZ25cIlxuICAgICAgfCBcImRpZmZpZUhlbGxtYW5FeGNoYW5nZVwiXG4gICAgICB8IFwicHNidFNpZ25cIlxuICAgICAgfCBcInBzYnRMZWdhY3lJbnB1dFNpZ25cIlxuICAgICAgfCBcInBzYnRTZWd3aXRJbnB1dFNpZ25cIlxuICAgICAgfCBcInBzYnRUYXByb290SW5wdXRTaWduXCJcbiAgICAgIHwgXCJidGNUYXByb290U2lnblwiXG4gICAgICB8IFwiZWlwNzEyU2lnblwiXG4gICAgICB8IFwiZWlwMTkxU2lnblwiXG4gICAgICB8IFwiZWlwNzcwMlNpZ25cIlxuICAgICAgfCBcImV0aDFTaWduXCJcbiAgICAgIHwgXCJldGgyU2lnblwiXG4gICAgICB8IFwic29sYW5hU2lnblwiXG4gICAgICB8IFwic3VpU2lnblwiXG4gICAgICB8IFwidGVuZGVybWludFNpZ25cIlxuICAgICAgfCBcInN0YWtlXCJcbiAgICAgIHwgXCJ1bnN0YWtlXCJcbiAgICAgIHwgXCJwYXNza2V5QXV0aEluaXRcIlxuICAgICAgfCBcInBhc3NrZXlBdXRoQ29tcGxldGVcIlxuICAgICAgfCBcIm9pZGNBdXRoXCJcbiAgICAgIHwgXCJvYXV0aDJUd2l0dGVyXCJcbiAgICAgIHwgXCJvYXV0aDJUb2tlblJlZnJlc2hcIlxuICAgICAgfCBcImVtYWlsT3RwQXV0aFwiXG4gICAgICB8IFwic2l3ZUluaXRcIlxuICAgICAgfCBcInNpd2VDb21wbGV0ZVwiXG4gICAgICB8IFwic2l3c0luaXRcIlxuICAgICAgfCBcInNpd3NDb21wbGV0ZVwiXG4gICAgICB8IFwidGVsZWdyYW1BdXRoXCJcbiAgICAgIHwgXCJjcmVhdGVPaWRjVXNlclwiXG4gICAgICB8IFwiZGVsZXRlT2lkY1VzZXJcIlxuICAgICAgfCBcImRlbGV0ZVVzZXJcIlxuICAgICAgfCBcImNyZWF0ZUVvdHNOb25jZXNcIlxuICAgICAgfCBcImVvdHNTaWduXCJcbiAgICAgIHwgXCJhdXRoTWlncmF0aW9uSWRlbnRpdHlBZGRcIlxuICAgICAgfCBcImF1dGhNaWdyYXRpb25JZGVudGl0eVJlbW92ZVwiXG4gICAgICB8IFwiYXV0aE1pZ3JhdGlvblVzZXJVcGRhdGVcIlxuICAgICAgfCBcImtleUNyZWF0ZWRcIlxuICAgICAgfCBcImtleUltcG9ydGVkXCJcbiAgICAgIHwgXCJpbnZpdGF0aW9uQWNjZXB0XCJcbiAgICAgIHwgXCJpZHBBdXRoZW50aWNhdGVcIlxuICAgICAgfCBcImlkcFBhc3N3b3JkUmVzZXRSZXF1ZXN0XCJcbiAgICAgIHwgXCJpZHBQYXNzd29yZFJlc2V0Q29uZmlybVwiXG4gICAgICB8IFwicnBjQXBpXCJcbiAgICAgIHwgXCJycGNDcmVhdGVUcmFuc2FjdGlvblwiXG4gICAgICB8IFwicnBjR2V0VHJhbnNhY3Rpb25cIlxuICAgICAgfCBcInJwY0xpc3RUcmFuc2FjdGlvbnNcIlxuICAgICAgfCBcInJwY0J0Y0xpc3RVdHhvc1wiXG4gICAgICB8IFwicnBjUmV0cnlUcmFuc2FjdGlvblwiXG4gICAgICB8IFwicnBjQ2FuY2VsVHJhbnNhY3Rpb25cIlxuICAgICAgfCBcInJwY0JpbmFuY2VcIlxuICAgICAgfCBcInJwY0J5Yml0XCJcbiAgICAgIHwgXCJycGNDb2luYmFzZVwiXG4gICAgICB8IFwiY3VzdG9tQ2hhaW5ScGNDYWxsXCJcbiAgICAgIHwgXCJlc3Bsb3JhQXBpQ2FsbFwiXG4gICAgICB8IFwic2VudHJ5QXBpQ2FsbFwiXG4gICAgICB8IFwic2VudHJ5QXBpQ2FsbFB1YmxpY1wiXG4gICAgICB8IFwibW1pSndrU2V0XCJcbiAgICAgIHwgXCJhdHRlc3RhdGlvbkp3a1NldFwiXG4gICAgICB8IFwidXNlck9yZ3NcIlxuICAgICAgfCBcInB1YmxpY19vcmdfaW5mb1wiXG4gICAgICB8IFwiZW1haWxfbXlfb3Jnc1wiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBlbnZlbG9wZSBmb3IgYWxsIEJpbmFuY2UgUlBDIG1ldGhvZHMuICovXG4gICAgQmluYW5jZUFjY291bnRJbmZvUGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY291bnRJbmZvUmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZURyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogZmxvYXRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIE1heSBvbmx5IGJlIHNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMsIHdpdGggdXAgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMgb2YgcHJlY2lzaW9uLlxuICAgICAgICogSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuIE11c3Qgbm90IGJlIGdyZWF0ZXIgdGhhbiA2MDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICBCaW5hbmNlQXBpUHJvcGVydGllc1BhdGNoOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBCaW5hbmNlLWlzc3VlZCBBUEkga2V5IHN0cmluZy4gRW5jcnlwdGVkIHNlcnZlci1zaWRlIGJlZm9yZSBzdG9yYWdlLiAqL1xuICAgICAgYXBpX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEVtYWlsIGFkZHJlc3Mgb2YgdGhlIEJpbmFuY2UgKG1hc3RlciBvciBzdWIpIGFjY291bnQgdGhpcyBrZXkgYXV0aGVudGljYXRlcyBhcy4gKi9cbiAgICAgIGVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGlzIGNvcnJlc3BvbmRzIHRvIGEgbWFzdGVyIChhcyBvcHBvc2VkIHRvIGEgc3ViKSBhY2NvdW50IG9uIEJpbmFuY2UuICovXG4gICAgICBpc19tYXN0ZXI/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXJiaXRyYXJ5IGxhYmVsLiBVc2VmdWwgZm9yIHN0b3JpbmcgdGhlIGNvcnJlc3BvbmRpbmcgQVBJIGtleSBsYWJlbCBvbiB0aGUgQmluYW5jZSBzaWRlLiAqL1xuICAgICAgbGFiZWw/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgdGhpcyBpcyBhIHN1Yi1hY2NvdW50LCB0aGlzIGZpZWxkIGNhbiBiZSB1c2VkIHRvIGxpbmsgaXQgdG8gaXRzIG1hc3RlciBhY2NvdW50XG4gICAgICAgKiAoYnkgcHJvdmlkaW5nIHRoZSBtYXN0ZXIgYWNjb3VudCBlbWFpbCwgd2hpY2ggQmluYW5jZSB1c2VzIGFzIGFuIGFjY291bnQgaWRlbnRpZmllcikuXG4gICAgICAgKi9cbiAgICAgIHN1Yl9vZj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYGNzX2JpbmFuY2VDb2luSW5mb2AuXG4gICAgICpcbiAgICAgKiBCaW5hbmNlIGVuZHBvaW50OiBgR0VUIC9zYXBpL3YxL2NhcGl0YWwvY29uZmlnL2dldGFsbGAuIFJldHVybnMgdGhlIGxpc3RcbiAgICAgKiBvZiBjb2lucyBzdXBwb3J0ZWQgYnkgdGhlIGNhbGxpbmcgYWNjb3VudCBhbG9uZyB3aXRoIHBlci1jb2luIGJhbGFuY2VzLFxuICAgICAqIGRlcG9zaXQvd2l0aGRyYXcgZW5hYmxlbWVudCwgYW5kIG5ldHdvcmsgaW5mby4gU2luY2UgdGhlIGVuZHBvaW50IHRha2VzXG4gICAgICogbm8gcGFyYW1ldGVycyBiZXlvbmQgdGhlIGNvbW1vbiBgcmVjdldpbmRvd2AgLyBgdGltZXN0YW1wYCBlbnZlbG9wZSwgdGhpc1xuICAgICAqIHN0cnVjdCBpcyBkZWZpbmVkIGRpcmVjdGx5IGluc3RlYWQgb2YgZ29pbmcgdGhyb3VnaCB0aGVcbiAgICAgKiBbYEJpbmFuY2VQYXJhbXNgXSBnZW5lcmljIGFsaWFzLlxuICAgICAqL1xuICAgIEJpbmFuY2VDb2luSW5mb1BhcmFtczoge1xuICAgICAgZHJ5UnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlRHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBmbG9hdFxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogTWF5IG9ubHkgYmUgc3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcywgd2l0aCB1cCB0byB0aHJlZSBkZWNpbWFsIHBsYWNlcyBvZiBwcmVjaXNpb24uXG4gICAgICAgKiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAxMDAwMC4gTXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIDYwMDAwLlxuICAgICAgICovXG4gICAgICByZWN2V2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBlbnZlbG9wZSBmb3IgYWxsIEJpbmFuY2UgUlBDIG1ldGhvZHMuICovXG4gICAgQmluYW5jZURlcG9zaXRIaXN0b3J5UGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcG9zaXRIaXN0b3J5UmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZURyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogZmxvYXRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIE1heSBvbmx5IGJlIHNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMsIHdpdGggdXAgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMgb2YgcHJlY2lzaW9uLlxuICAgICAgICogSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuIE11c3Qgbm90IGJlIGdyZWF0ZXIgdGhhbiA2MDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCaW5hbmNlIFJQQyBtZXRob2RzLiAqL1xuICAgIEJpbmFuY2VEZXBvc2l0UGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcG9zaXRSZXF1ZXN0XCJdICYge1xuICAgICAgZHJ5UnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlRHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBmbG9hdFxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogTWF5IG9ubHkgYmUgc3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcywgd2l0aCB1cCB0byB0aHJlZSBkZWNpbWFsIHBsYWNlcyBvZiBwcmVjaXNpb24uXG4gICAgICAgKiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAxMDAwMC4gTXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIDYwMDAwLlxuICAgICAgICovXG4gICAgICByZWN2V2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIEJpbmFuY2VEcnlSdW5BcmdzOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBCaW5hbmNlIEFQSSBtZXRob2QgdGhhdCB3b3VsZCBoYXZlIGJlZW4gdXNlZCAqL1xuICAgICAgbWV0aG9kOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBCaW5hbmNlIEFQSSB1cmwgbWV0aG9kIHRoYXQgd291bGQgaGF2ZSBiZWVuIGNhbGxlZCAqL1xuICAgICAgdXJsOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGlmZmVyZW50IFwiZHJ5IHJ1blwiIG1vZGVzIGZvciBleGVjdXRpbmcgQmluYW5jZSByZXF1ZXN0cy5cbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEJpbmFuY2VEcnlSdW5Nb2RlOiBcIk5PX1NJR05cIiB8IFwiTk9fU1VCTUlUXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQmluYW5jZSBSUEMgbWV0aG9kcy4gKi9cbiAgICBCaW5hbmNlTGlzdFN1YkFjY291bnRzUGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkxpc3RTdWJBY2NvdW50c1JlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VEcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleUlkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGZsb2F0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgXCJyZWNlaXZlIHdpbmRvd1wiLCBpLmUuLCBmb3IgaG93IGxvbmcgdGhlIHJlcXVlc3Qgc3RheXMgdmFsaWQuXG4gICAgICAgKiBNYXkgb25seSBiZSBzcGVjaWZpZWQgaW4gbWlsbGlzZWNvbmRzLCB3aXRoIHVwIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzIG9mIHByZWNpc2lvbi5cbiAgICAgICAqIElmIG9taXR0ZWQsIGRlZmF1bHRzIHRvIDEwMDAwLiBNdXN0IG5vdCBiZSBncmVhdGVyIHRoYW4gNjAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEJpbmFuY2UtZmFtaWx5IFJQQyBtZXRob2RzLiBFYWNoIHZhcmlhbnQgYXV0aGVudGljYXRlcyBhcyB0aGVcbiAgICAgKiBbYEtleVR5cGU6OkVkMjU1MTlCaW5hbmNlQXBpYF0ga2V5IGluIGl0cyBgcGFyYW1zLmtleV9pZGAuXG4gICAgICovXG4gICAgQmluYW5jZVJwYzpcbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19iaW5hbmNlU3ViVG9NYXN0ZXJcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZVN1YlRvTWFzdGVyUGFyYW1zXCJdO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtZXRob2Q6IFwiY3NfYmluYW5jZVN1YlRvU3ViXCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VTdWJUb1N1YlBhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2JpbmFuY2VVbml2ZXJzYWxUcmFuc2ZlclwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlVW5pdmVyc2FsVHJhbnNmZXJQYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19iaW5hbmNlU3ViQWNjb3VudEFzc2V0c1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlU3ViQWNjb3VudEFzc2V0c1BhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2JpbmFuY2VBY2NvdW50SW5mb1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlQWNjb3VudEluZm9QYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19iaW5hbmNlU3ViQWNjb3VudFRyYW5zZmVySGlzdG9yeVwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlU3ViQWNjb3VudFRyYW5zZmVySGlzdG9yeVBhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2JpbmFuY2VVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZVVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVBhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2JpbmFuY2VXaXRoZHJhd1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlV2l0aGRyYXdQYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19iaW5hbmNlV2l0aGRyYXdIaXN0b3J5XCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VXaXRoZHJhd0hpc3RvcnlQYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19iaW5hbmNlRGVwb3NpdFwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlRGVwb3NpdFBhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2JpbmFuY2VEZXBvc2l0SGlzdG9yeVwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlRGVwb3NpdEhpc3RvcnlQYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19iaW5hbmNlTGlzdFN1YkFjY291bnRzXCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VMaXN0U3ViQWNjb3VudHNQYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19iaW5hbmNlQ29pbkluZm9cIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZUNvaW5JbmZvUGFyYW1zXCJdO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtZXRob2Q6IFwiY3NfYmluYW5jZVN1YkFjY291bnREZXBvc2l0QWRkcmVzc1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlU3ViQWNjb3VudERlcG9zaXRBZGRyZXNzUGFyYW1zXCJdO1xuICAgICAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgcmV0dXJuZWQgYnkgdGhlIHR5cGVkIGBiaW5hbmNlX3NpZ25gIGVuZHBvaW50LiAqL1xuICAgIEJpbmFuY2VTaWduUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZnVsbCBzaWduZWQgcXVlcnkgc3RyaW5nLCByZWFkeSB0byBiZSBzdWJtaXR0ZWQgdG8gQmluYW5jZS5cbiAgICAgICAqIEVuY29kZWQgYXMgYDx1cmxlbmNvZGVkIHBhcmFtcz4mcmVjdldpbmRvdz08bXM+JnRpbWVzdGFtcD08bXM+JnNpZ25hdHVyZT08dXJsZW5jb2RlZCBiYXNlNjQgc2lnPmAuXG4gICAgICAgKi9cbiAgICAgIHNpZ25lZF9xdWVyeTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQmluYW5jZSBSUEMgbWV0aG9kcy4gKi9cbiAgICBCaW5hbmNlU3ViQWNjb3VudEFzc2V0c1BhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdWJBY2NvdW50QXNzZXRzUmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZURyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogZmxvYXRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIE1heSBvbmx5IGJlIHNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMsIHdpdGggdXAgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMgb2YgcHJlY2lzaW9uLlxuICAgICAgICogSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuIE11c3Qgbm90IGJlIGdyZWF0ZXIgdGhhbiA2MDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCaW5hbmNlIFJQQyBtZXRob2RzLiAqL1xuICAgIEJpbmFuY2VTdWJBY2NvdW50RGVwb3NpdEFkZHJlc3NQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3ViQWNjb3VudERlcG9zaXRBZGRyZXNzUmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZURyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogZmxvYXRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIE1heSBvbmx5IGJlIHNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMsIHdpdGggdXAgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMgb2YgcHJlY2lzaW9uLlxuICAgICAgICogSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuIE11c3Qgbm90IGJlIGdyZWF0ZXIgdGhhbiA2MDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCaW5hbmNlIFJQQyBtZXRob2RzLiAqL1xuICAgIEJpbmFuY2VTdWJBY2NvdW50VHJhbnNmZXJIaXN0b3J5UGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN1YkFjY291bnRUcmFuc2Zlckhpc3RvcnlSZXF1ZXN0XCJdICYge1xuICAgICAgZHJ5UnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlRHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBmbG9hdFxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogTWF5IG9ubHkgYmUgc3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcywgd2l0aCB1cCB0byB0aHJlZSBkZWNpbWFsIHBsYWNlcyBvZiBwcmVjaXNpb24uXG4gICAgICAgKiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAxMDAwMC4gTXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIDYwMDAwLlxuICAgICAgICovXG4gICAgICByZWN2V2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBlbnZlbG9wZSBmb3IgYWxsIEJpbmFuY2UgUlBDIG1ldGhvZHMuICovXG4gICAgQmluYW5jZVN1YlRvTWFzdGVyUGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN1YlRvTWFzdGVyUmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZURyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogZmxvYXRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIE1heSBvbmx5IGJlIHNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMsIHdpdGggdXAgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMgb2YgcHJlY2lzaW9uLlxuICAgICAgICogSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuIE11c3Qgbm90IGJlIGdyZWF0ZXIgdGhhbiA2MDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCaW5hbmNlIFJQQyBtZXRob2RzLiAqL1xuICAgIEJpbmFuY2VTdWJUb1N1YlBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdWJUb1N1YlJlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VEcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleUlkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGZsb2F0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgXCJyZWNlaXZlIHdpbmRvd1wiLCBpLmUuLCBmb3IgaG93IGxvbmcgdGhlIHJlcXVlc3Qgc3RheXMgdmFsaWQuXG4gICAgICAgKiBNYXkgb25seSBiZSBzcGVjaWZpZWQgaW4gbWlsbGlzZWNvbmRzLCB3aXRoIHVwIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzIG9mIHByZWNpc2lvbi5cbiAgICAgICAqIElmIG9taXR0ZWQsIGRlZmF1bHRzIHRvIDEwMDAwLiBNdXN0IG5vdCBiZSBncmVhdGVyIHRoYW4gNjAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQmluYW5jZSBSUEMgbWV0aG9kcy4gKi9cbiAgICBCaW5hbmNlVW5pdmVyc2FsVHJhbnNmZXJIaXN0b3J5UGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVJlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VEcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleUlkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGZsb2F0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgXCJyZWNlaXZlIHdpbmRvd1wiLCBpLmUuLCBmb3IgaG93IGxvbmcgdGhlIHJlcXVlc3Qgc3RheXMgdmFsaWQuXG4gICAgICAgKiBNYXkgb25seSBiZSBzcGVjaWZpZWQgaW4gbWlsbGlzZWNvbmRzLCB3aXRoIHVwIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzIG9mIHByZWNpc2lvbi5cbiAgICAgICAqIElmIG9taXR0ZWQsIGRlZmF1bHRzIHRvIDEwMDAwLiBNdXN0IG5vdCBiZSBncmVhdGVyIHRoYW4gNjAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQmluYW5jZSBSUEMgbWV0aG9kcy4gKi9cbiAgICBCaW5hbmNlVW5pdmVyc2FsVHJhbnNmZXJQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVW5pdmVyc2FsVHJhbnNmZXJSZXF1ZXN0XCJdICYge1xuICAgICAgZHJ5UnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlRHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBmbG9hdFxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogTWF5IG9ubHkgYmUgc3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcywgd2l0aCB1cCB0byB0aHJlZSBkZWNpbWFsIHBsYWNlcyBvZiBwcmVjaXNpb24uXG4gICAgICAgKiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAxMDAwMC4gTXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIDYwMDAwLlxuICAgICAgICovXG4gICAgICByZWN2V2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBlbnZlbG9wZSBmb3IgYWxsIEJpbmFuY2UgUlBDIG1ldGhvZHMuICovXG4gICAgQmluYW5jZVdpdGhkcmF3SGlzdG9yeVBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJXaXRoZHJhd0hpc3RvcnlSZXF1ZXN0XCJdICYge1xuICAgICAgZHJ5UnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlRHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBmbG9hdFxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogTWF5IG9ubHkgYmUgc3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcywgd2l0aCB1cCB0byB0aHJlZSBkZWNpbWFsIHBsYWNlcyBvZiBwcmVjaXNpb24uXG4gICAgICAgKiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAxMDAwMC4gTXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIDYwMDAwLlxuICAgICAgICovXG4gICAgICByZWN2V2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBlbnZlbG9wZSBmb3IgYWxsIEJpbmFuY2UgUlBDIG1ldGhvZHMuICovXG4gICAgQmluYW5jZVdpdGhkcmF3UGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIldpdGhkcmF3UmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZURyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogZmxvYXRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIE1heSBvbmx5IGJlIHNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMsIHdpdGggdXAgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMgb2YgcHJlY2lzaW9uLlxuICAgICAgICogSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuIE11c3Qgbm90IGJlIGdyZWF0ZXIgdGhhbiA2MDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgYml0Y29pbiBhZGRyZXNzIGFuZCBpdHMgbmV0d29yay4gKi9cbiAgICBCaXRjb2luQWRkcmVzc0luZm86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBiaXRjb2luIGFkZHJlc3MuXG4gICAgICAgKiBAZXhhbXBsZSBiYzFwdWMwcThqaHgza25jMnN0bGZobDM1bmphODludmttcXI0YzVlMmxkeXVxMm1jY2tocjNtc2F2ajk5alxuICAgICAgICovXG4gICAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgICBjaGFpbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCdGNDaGFpblwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgIFwibWVzc2FnZV9iYXNlNjRcIjogXCJZV0pqWkdWbVoyaHBhbXRzYlc1dmNIRnljM1IxZG5kNGVYb3hNak0wTlRZS1wiXG4gICAgICogfVxuICAgICAqL1xuICAgIEJsb2JTaWduUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBvcHRpb25hbCBiYXNlNjQgc3RyaW5nIGNvbXByaXNpbmcgYSBTRUMxLWVuY29kZWQgc2VjcDI1NmsxIHB1YmxpYyBrZXkuXG4gICAgICAgKiBUaGlzIGZpZWxkIGNhbiBiZSB1c2VkICpvbmx5KiB3aXRoIFNjaG5vcnIga2V5cy5cbiAgICAgICAqXG4gICAgICAgKiBJZiB0aGlzIGZpZWxkIGlzIHByZXNlbnQsIHRoZSByZXNwb25zZSB3aWxsIGJlIGEgU2Nobm9yciBhZGFwdG9yIHNpZ25hdHVyZVxuICAgICAgICogaW4gdGhlIGZvcm1hdCBzcGVjaWZpZWQgYnkgQmxvY2tzdHJlYW0gZm9yIHVzZSBpbiBsaWJzZWNwMjU2azEtemtwLiBTZWVcbiAgICAgICAqIDxodHRwczovL2dpdGh1Yi5jb20vWmhlUGFuZy9QeXRob25fU3BlY2lmaWNhdGlvbl9mb3JfU2Nobm9ycl9BZGFwdG9yLz5cbiAgICAgICAqIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgICAgICogQGV4YW1wbGUgQXJueTRXb0hETkJWWFljeW5oTmw5L3k3SnR0SjJyazBDQ1JmTFI3dDNhRGdcbiAgICAgICAqL1xuICAgICAgYWRhcHRvcl9waz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBvcHRpb25hbCBkb21haW4gc2VwYXJhdGlvbiB0YWcgZm9yIHVzZSAqb25seSogd2l0aCBCTFMgc2lnbmluZyByZXF1ZXN0cy5cbiAgICAgICAqIFRoaXMgZmllbGQgbXVzdCBub3QgYmUgc3VwcGxpZWQgZm9yIHJlcXVlc3RzIGludm9sdmluZyBub24tQkxTIGtleSB0eXBlcy5cbiAgICAgICAqXG4gICAgICAgKiBJZiB0aGlzIGZpZWxkIGlzIG5vdCBwcmVzZW50IG9yIG51bGwsIHRoZSBkb21haW4gc2VwYXJhdGlvbiB0YWcgc3BlY2lmaWVkIGluXG4gICAgICAgKiB0aGUgSUVURiBCTFMgU2lnbmF0dXJlcyBkcmFmdCB2ZXJzaW9ucyA0IGFuZCA1LCBzZWN0aW9uIDQuMi4zIChtaW5pbWFsIHB1YmtleVxuICAgICAgICogc2l6ZSB2YXJpYW50KSBpcyB1c2VkLlxuICAgICAgICpcbiAgICAgICAqIE90aGVyd2lzZSwgdGhpcyBmaWVsZCBtdXN0IGNvbnRhaW4gYSBiYXNlLTY0IHN0cmluZyBlbmNvZGluZyBhIG5vbi1lbXB0eSBieXRlXG4gICAgICAgKiB2ZWN0b3IuIFdoZW4gdXNpbmcgYSBjdXN0b20gdGFnLCBSRkM5MzgwIChTZWN0aW9uIDMuMSkgcmVjb21tZW5kcyBhIGxlbmd0aCBvZlxuICAgICAgICogYXQgbGVhc3QgMTYgYnl0ZXMuXG4gICAgICAgKiBAZXhhbXBsZSBFYmJMdkN4STdnYW43MWlJU0RzZnI0NmV0T3Y2MDZRa0dHRFA1UHBWbDVRPVxuICAgICAgICovXG4gICAgICBibHNfZHN0Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBibG9iIHRvIHNpZ24sIGVuY29kZWQgYXMgYSBiYXNlNjQgc3RyaW5nLlxuICAgICAgICpcbiAgICAgICAqIE5vdGUgdGhhdCBjZXJ0YWluIHNpZ25pbmcga2V5cyBpbXBvc2UgYWRkaXRpb25hbCByZXF1aXJlbWVudHMgb24gdGhlIGNvbnRlbnRzIG9mXG4gICAgICAgKiB0aGUgbWVzc2FnZS4gRm9yIGV4YW1wbGUsIFNlY3AyNTZrMSBrZXlzIHJlcXVpcmUgdGhhdCB0aGUgbWVzc2FnZSBpcyAzMiBieXRlcyBsb25nLlxuICAgICAgICovXG4gICAgICBtZXNzYWdlX2Jhc2U2NDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQW4gb3B0aW9uYWwgdHdlYWsgdmFsdWUgZm9yIHVzZSBvbmx5IHdpdGggKHNvbWUpIHNlY3AyNTZrMSBrZXkgdHlwZXMuXG4gICAgICAgKiBUaGlzIGZpZWxkIG11c3Qgbm90IGJlIHN1cHBsaWVkIGZvciByZXF1ZXN0cyBpbnZvbHZpbmcgYW55IG90aGVyIGtleSB0eXBlLlxuICAgICAgICpcbiAgICAgICAqIElmIHRoaXMgZmllbGQgaXMgbm90IHByZXNlbnQgb3IgbnVsbCwgbm8gdHdlYWsgaXMgYXBwbGllZC4gT3RoZXJ3aXNlLCB0aGlzIGZpZWxkXG4gICAgICAgKiBtdXN0IGNvbnRhaW4gYSBiYXNlLTY0IHN0cmluZyBlbmNvZGluZyBhIHZlY3RvciBvZiBleGFjdGx5IDMyIGJ5dGVzLiBTZWUgdGhlXG4gICAgICAgKiBDdWJlU2lnbmVyIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIFNlZ3dpdCB0d2Vha2luZyBwcm9jZWR1cmUuXG4gICAgICAgKiBAZXhhbXBsZSBGNDFIQXkycTVHbjhsYUYyQ3VNc1piUkFRVG1EKzRPYjNWVU1aN1RCR0s0PVxuICAgICAgICovXG4gICAgICBzZWd3aXRfdHdlYWs/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQW4gb3B0aW9uYWwgdHdlYWsgdmFsdWUgZm9yIHVzZSAqb25seSogd2l0aCBUYXByb290IGtleXMuIFRoaXMgZmllbGQgbXVzdCBub3RcbiAgICAgICAqIGJlIHN1cHBsaWVkIGZvciByZXF1ZXN0cyBpbnZvbHZpbmcgYW55IG90aGVyIGtleSB0eXBlLlxuICAgICAgICpcbiAgICAgICAqIElmIHRoaXMgZmllbGQgaXMgbm90IHByZXNlbnQgb3IgbnVsbCwgbm8gdHdlYWsgaXMgYXBwbGllZC4gSWYgdGhlIGZpZWxkIGlzIGFuXG4gICAgICAgKiBlbXB0eSBzdHJpbmcsIHRoZSBrZXkgaXMgdHdlYWtlZCB3aXRoIGFuIHVuc3BlbmRhYmxlIHNjcmlwdCBwYXRoIHBlciBCSVAwMzQxLlxuICAgICAgICogT3RoZXJ3aXNlLCB0aGlzIGZpZWxkIG11c3QgY29udGFpbiBhIDMyLWJ5dGUsIGJhc2UtNjQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGVcbiAgICAgICAqIE1lcmtsZSByb290IHdpdGggd2hpY2ggdG8gdHdlYWsgdGhlIGtleSBiZWZvcmUgc2lnbmluZy5cbiAgICAgICAqIEBleGFtcGxlIEY0MUhBeTJxNUduOGxhRjJDdU1zWmJSQVFUbUQrNE9iM1ZVTVo3VEJHSzQ9XG4gICAgICAgKi9cbiAgICAgIHRhcHJvb3RfdHdlYWs/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFN1cHBvcnRlZCBCVEMgY2hhaW5zLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgQnRjQ2hhaW46IFwibWFpbm5ldFwiIHwgXCJzaWduZXRcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIExlYWYgaGFzaCBhbmQgY29kZSwgYXMgcGVyIEJJUDM0MSBhbmQgaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtYml0Y29pbi9ydXN0LWJpdGNvaW4vYmxvYi80NjQyMDIxMDlkMmIyYzk2ZTliNDg2NzQ2MWJmZmU0MjBkYmQ4MTc3L2JpdGNvaW4vc3JjL2NyeXB0by9zaWdoYXNoLnJzI0w2OTEgKi9cbiAgICBCdGNMZWFmSGFzaENvZGVTZXBhcmF0b3I6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIENvZGUgc2VwYXJhdG9yXG4gICAgICAgKi9cbiAgICAgIGNvZGVfc2VwYXJhdG9yOiBudW1iZXI7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRhcHJvb3QtdGFnZ2VkIGhhc2ggd2l0aCB0YWcgXCJUYXBMZWFmXCIuICovXG4gICAgICBsZWFmX2hhc2g6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgdGhlIFtgY3NfYnRjTGlzdFV0eG9zYF0oQ3NScGM6OkJ0Y0xpc3RVdHhvcykgbWV0aG9kLiAqL1xuICAgIEJ0Y0xpc3RVdHhvc1JlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIEJpdGNvaW4gYWRkcmVzcyB3aG9zZSB1bnNwZW50IG91dHB1dHMgKFVUWE9zKSBhcmUgYmVpbmcgcXVlcmllZC4gKi9cbiAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBtYXhpbXVtIG51bWJlciBvZiBVVFhPcyB0byByZXR1cm4gKDEtMjUwKS5cbiAgICAgICAqIEBkZWZhdWx0IDEwMFxuICAgICAgICovXG4gICAgICBtYXhfcmVzdWx0cz86IG51bWJlcjtcbiAgICAgIG5ldHdvcms6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjTmV0d29ya1wiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gUGFnaW5hdGlvbiB0b2tlbiByZXR1cm5lZCBieSBhIHByZXZpb3VzIGNhbGwuICovXG4gICAgICBuZXh0X3Rva2VuPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIHRvIFtgY3NfYnRjTGlzdFV0eG9zYF0oc3VwZXI6OnJlcXVlc3Q6OkNzUnBjOjpCdGNMaXN0VXR4b3MpLiAqL1xuICAgIEJ0Y0xpc3RVdHhvc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFBhZ2luYXRpb24gdG9rZW4gdG8gcGFzcyB0byB0aGUgbmV4dCBjYWxsLCBpZiBtb3JlIHJlc3VsdHMgcmVtYWluLiAqL1xuICAgICAgbmV4dF90b2tlbj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB1bnNwZW50IHRyYW5zYWN0aW9uIG91dHB1dHMgZm9yIHRoZSBxdWVyaWVkIGFkZHJlc3MuICovXG4gICAgICB1dHhvczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCdGNVdHhvXCJdW107XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERhdGEgdG8gc2lnbiAqL1xuICAgIEJ0Y01lc3NhZ2VTaWduUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBNZXNzYWdlIHRvIHNpZ24gYXMgYSBoZXgtZW5jb2RlZCBieXRlIHN0cmluZy5cbiAgICAgICAqIEBleGFtcGxlIDB4ZGVhZGJlZWYxM2MwZmZlZVxuICAgICAgICovXG4gICAgICBkYXRhOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZvciBzZWd3aXQsIHNpZ24gdGhlIG1lc3NhZ2UgYXMgcDJzaC1wMndwa2ggaW5zdGVhZCBvZiBwMndwa2ggKi9cbiAgICAgIGlzX3Ayc2g/OiBib29sZWFuO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBCVEMgbWVzc2FnZSBzaWduaW5nIHJlc3BvbnNlICovXG4gICAgQnRjTWVzc2FnZVNpZ25SZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBwb2xpY3kgZXZhbHVhdGlvbiB0cmVlLiAqL1xuICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgfSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGJhc2U2NC1lbmNvZGVkIHNpZ25hdHVyZSBpbiBCSVAxMzcgZm9ybWF0LiAqL1xuICAgICAgc2lnOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEJpdGNvaW4gbmV0d29yayB0byBxdWVyeSBmb3IgVVRYT3MuXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBCdGNOZXR3b3JrOiBcIm1haW5uZXRcIiB8IFwidGVzdG5ldFwiO1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIEJ0Y1NpZ2hhc2hUeXBlOlxuICAgICAgfCBcIkFsbFwiXG4gICAgICB8IFwiTm9uZVwiXG4gICAgICB8IFwiU2luZ2xlXCJcbiAgICAgIHwgXCJBbGxQbHVzQW55b25lQ2FuUGF5XCJcbiAgICAgIHwgXCJOb25lUGx1c0FueW9uZUNhblBheVwiXG4gICAgICB8IFwiU2luZ2xlUGx1c0FueW9uZUNhblBheVwiO1xuICAgIEJ0Y1NpZ25SZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERvIG5vdCBwcm9kdWNlIGEgdmFsaWQgc2lnbmF0dXJlLCBqdXN0IGV2YWx1YXRlIGF0dGFjaGVkIHBvbGljaWVzLiAqL1xuICAgICAgZHJ5X3J1bj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3BvbnNlLCBleHBsYWluaW5nXG4gICAgICAgKiB0aGUgb3V0Y29tZSAoaS5lLiwgcGVybWl0dGVkIHZzLiBkZW5pZWQgdnMuIE1GQSByZXF1aXJlZCkgb2YgdGhlIHNpZ24gcmVxdWVzdC5cbiAgICAgICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBleHBsYWluPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIE1GQSBpcyByZXF1aXJlZCwgZmFpbCB0aGUgcmVxdWVzdCBpbnN0ZWFkIG9mIHJldHVybmluZyAyMDIgYW5kIGNyZWF0aW5nXG4gICAgICAgKiBwZW5kaW5nIE1GQSByZXF1ZXN0LiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZmFpbF9vbl9tZmE/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbWV0YWRhdGEuIFBhc3NpbmcgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhcyBtZXRhZGF0YSBjYW4gYmUgdXNlZCB0byBtYWtlIHJldmlld2luZ1xuICAgICAgICogb2YgcGVuZGluZyBNRkEgcmVxdWVzdHMgYW5kL29yIGhpc3RvcmljYWwga2V5IHRyYW5zYWN0aW9ucyBtb3JlIHRyYW5zcGFyZW50LiBJdCBjYW4gYWxzbyBiZSB1c2VkIGUuZy4sIHRvIGNhcnJ5IGFkZGl0aW9uYWwgZGF0YSB0byBXZWJIb29rIHBvbGljaWVzLlxuICAgICAgICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgfSAmIHtcbiAgICAgIHNpZ19raW5kOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ0Y1NpZ25hdHVyZUtpbmRcIl07XG4gICAgICB0eDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCdGNUeFwiXTtcbiAgICB9O1xuICAgIEJ0Y1NpZ25hdHVyZUtpbmQ6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU2VncmVnYXRlZCBXaXRuZXNzICovXG4gICAgICBTZWd3aXQ6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUcmFuc2FjdGlvbiBpbnB1dCBpbmRleFxuICAgICAgICAgKiBAZXhhbXBsZSAwXG4gICAgICAgICAqL1xuICAgICAgICBpbnB1dF9pbmRleDogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFNjcmlwdFxuICAgICAgICAgKiBAZXhhbXBsZSAweDc2YTkxNDc5MDkxOTcyMTg2YzQ0OWViMWRlZDIyYjc4ZTQwZDAwOWJkZjAwODk4OGFjXG4gICAgICAgICAqL1xuICAgICAgICBzY3JpcHRfY29kZTogc3RyaW5nO1xuICAgICAgICBzaWdoYXNoX3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjU2lnaGFzaFR5cGVcIl07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgdHdlYWsgdG8gYXBwbHkgdG8gdGhlIGtleSBiZWZvcmUgc2lnbmluZy5cbiAgICAgICAgICpcbiAgICAgICAgICogV2hlbiBzdXBwbGllZCwgdGhpcyBmaWVsZCBtdXN0IGNvbnRhaW4gYSBiYXNlLTY0IHN0cmluZyBlbmNvZGluZyBhIHZlY3RvciBvZlxuICAgICAgICAgKiBleGFjdGx5IDMyIGJ5dGVzLCB3aGljaCBhcmUgdXNlZCB0byBjb21wdXRlIHRoZSB0d2Vha2VkIHB1YmxpYyBrZXkuIFNlZSB0aGVcbiAgICAgICAgICogQ3ViZVNpZ25lciBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBTZWd3aXQgdHdlYWtpbmcgcHJvY2VkdXJlLlxuICAgICAgICAgKiBAZXhhbXBsZSBGNDFIQXkycTVHbjhsYUYyQ3VNc1piUkFRVG1EKzRPYjNWVU1aN1RCR0s0PVxuICAgICAgICAgKi9cbiAgICAgICAgdHdlYWs/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHRvdGFsIGFtb3VudCBvZiB0aGUgaW5wdXQgKGluIHNhdG9zaGlzKS5cbiAgICAgICAgICogQGV4YW1wbGUgMTAwMDAwMFxuICAgICAgICAgKi9cbiAgICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcImlucHV0XCI6IFtcbiAgICAgKiAgICAge1xuICAgICAqICAgICAgIFwicHJldmlvdXNfb3V0cHV0XCI6IFwiNzc1NDFhZWIzYzRkYWM5MjYwYjY4Zjc0ZjQ0Yzk3MzA4MWE5ZDRjYjJlYmU4MDM4YjJkNzBmYWEyMDFiNmJkYjoxXCIsXG4gICAgICogICAgICAgXCJzY3JpcHRfc2lnXCI6IFwiXCIsXG4gICAgICogICAgICAgXCJzZXF1ZW5jZVwiOiA0Mjk0OTY3Mjk0LFxuICAgICAqICAgICAgIFwid2l0bmVzc1wiOiBbXVxuICAgICAqICAgICB9XG4gICAgICogICBdLFxuICAgICAqICAgXCJsb2NrX3RpbWVcIjogMTE3MCxcbiAgICAgKiAgIFwib3V0cHV0XCI6IFtcbiAgICAgKiAgICAge1xuICAgICAqICAgICAgIFwic2NyaXB0X3B1YmtleVwiOiBcIjc2YTkxNGE0NTdiNjg0ZDdmMGQ1MzlhNDZhNDViYmMwNDNmMzViNTlkMGQ5NjM4OGFjXCIsXG4gICAgICogICAgICAgXCJ2YWx1ZVwiOiAxOTk5OTY2MDBcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAge1xuICAgICAqICAgICAgIFwic2NyaXB0X3B1YmtleVwiOiBcIjc2YTkxNGZkMjcwYjFlZTZhYmNhZWE5N2ZlYTdhZDA0MDJlOGJkOGFkNmQ3N2M4OGFjXCIsXG4gICAgICogICAgICAgXCJ2YWx1ZVwiOiA4MDAwMDAwMDBcbiAgICAgKiAgICAgfVxuICAgICAqICAgXSxcbiAgICAgKiAgIFwidmVyc2lvblwiOiAxXG4gICAgICogfVxuICAgICAqL1xuICAgIEJ0Y1R4OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgQnRjVHhPdXQ6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHNjcmlwdCB3aGljaCBtdXN0IGJlIHNhdGlzZmllZCBmb3IgdGhlIG91dHB1dCB0byBiZSBzcGVudC4gKi9cbiAgICAgIHNjcmlwdF9wdWJrZXk6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB2YWx1ZSBvZiB0aGUgb3V0cHV0LCBpbiBzYXRvc2hpcy5cbiAgICAgICAqL1xuICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSBzaW5nbGUgQml0Y29pbiB1bnNwZW50IHRyYW5zYWN0aW9uIG91dHB1dCAoVVRYTykuICovXG4gICAgQnRjVXR4bzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYWRkcmVzcyB0aGF0IGNvbnRyb2xzIHRoaXMgb3V0cHV0LiAqL1xuICAgICAgYWRkcmVzcz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIG91dHB1dCBoYXMgcmVhY2hlZCBmaW5hbGl0eSAoaXMgY29uZmlybWVkKS4gKi9cbiAgICAgIGNvbmZpcm1lZDogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBibG9jayB0aW1lIG9mIHRoZSBvdXRwdXQsIGluIHNlY29uZHMgc2luY2UgdGhlIFVuaXggZXBvY2guXG4gICAgICAgKi9cbiAgICAgIHRpbWU/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGFzaCBvZiB0aGUgdHJhbnNhY3Rpb24gdGhhdCBjcmVhdGVkIHRoaXMgb3V0cHV0LiAqL1xuICAgICAgdHJhbnNhY3Rpb25faGFzaDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgb3V0cHV0IHZhbHVlLCBpbiBzYXRvc2hpcywgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIHZhbHVlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpbmRleCBvZiB0aGlzIG91dHB1dCB3aXRoaW4gaXRzIHRyYW5zYWN0aW9uLlxuICAgICAgICovXG4gICAgICB2b3V0X2luZGV4PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgYWNjZXNzLWNvbnRyb2xsZWQgYWN0aW9ucyB0aGF0IGNhbiBiZSBwZXJmb3JtZWQgb24gYSBidWNrZXRcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEJ1Y2tldEFjdGlvbjpcbiAgICAgIHwgXCJyZWFkOmtleTp2YWx1ZVwiXG4gICAgICB8IFwicmVhZDprZXk6ZXhpc3RzXCJcbiAgICAgIHwgXCJ1cGRhdGU6a2V5OnZhbHVlXCJcbiAgICAgIHwgXCJkZWxldGU6a2V5OnZhbHVlXCJcbiAgICAgIHwgXCJzY2FuOmtleXNcIlxuICAgICAgfCBcInVwZGF0ZTpidWNrZXQ6b3duZXJcIlxuICAgICAgfCBcInVwZGF0ZTpidWNrZXQ6YWNsXCJcbiAgICAgIHwgXCJ1cGRhdGU6YnVja2V0Om1ldGFkYXRhXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCBhIHBvbGljeSBLViBzdG9yZSBidWNrZXQuICovXG4gICAgQnVja2V0SW5mbzogKHtcbiAgICAgIGNyZWF0ZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl0gfCBudWxsO1xuICAgICAgbGFzdF9tb2RpZmllZD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBWZXJzaW9uIG9mIHRoaXMgb2JqZWN0XG4gICAgICAgKi9cbiAgICAgIHZlcnNpb24/OiBudW1iZXI7XG4gICAgfSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGFjY2Vzcy1jb250cm9sIGVudHJpZXMgZm9yIHRoZSBidWNrZXQuICovXG4gICAgICBhY2w/OiB1bmtub3duW10gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBcmJpdHJhcnkgdXNlci1kZWZpbmVkIG1ldGFkYXRhLiAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgICAgb3JnX2lkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgb3duZXI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgfSkgJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuYW1lIG9mIHRoZSBidWNrZXQuICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU3ViLWVudGl0eSBvZiBvcmcgd2hlcmUgcGVyLWJ1Y2tldCBtZXRhZGF0YSAobGlrZSBBQ0wpIGlzIHN0b3JlZC5cbiAgICAgKiBUaGUgW0lkXSBvZiBhIFtCdWNrZXRNZXRhXSBtdXN0IGJlIHRoZSBidWNrZXQgbmFtZS5cbiAgICAgKi9cbiAgICBCdWNrZXRNZXRhOiB7XG4gICAgICBjcmVhdGVkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdIHwgbnVsbDtcbiAgICAgIGxhc3RfbW9kaWZpZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVmVyc2lvbiBvZiB0aGlzIG9iamVjdFxuICAgICAgICovXG4gICAgICB2ZXJzaW9uPzogbnVtYmVyO1xuICAgIH0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBhY2Nlc3MtY29udHJvbCBlbnRyaWVzIGZvciB0aGUgYnVja2V0LiAqL1xuICAgICAgYWNsPzogdW5rbm93bltdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXJiaXRyYXJ5IHVzZXItZGVmaW5lZCBtZXRhZGF0YS4gKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICAgIG9yZ19pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIG93bmVyOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdpcmUtZm9ybWF0IHBhdGNoIHBheWxvYWQgZm9yIFtgS2V5UHJvcGVydGllczo6QnliaXRBcGlgXS5cbiAgICAgKlxuICAgICAqIEV2ZXJ5IGZpZWxkIGZvbGxvd3MgdGhlIHNhbWUgcGVyLWZpZWxkIFBBVENIIHNlbWFudGljczogYSBtaXNzaW5nIGZpZWxkXG4gICAgICogbGVhdmVzIHRoZSBleGlzdGluZyB2YWx1ZSBhbG9uZSwgYSBKU09OIGBudWxsYCBjbGVhcnMgaXQsIGFuZCBhIHZhbHVlIHNldHMgaXQuXG4gICAgICovXG4gICAgQnliaXRBcGlQcm9wZXJ0aWVzUGF0Y2g6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIEJ5Yml0LWlzc3VlZCBBUEkga2V5IHN0cmluZy4gRW5jcnlwdGVkIHNlcnZlci1zaWRlIGJlZm9yZSBzdG9yYWdlLiAqL1xuICAgICAgYXBpX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFyYml0cmFyeSBsYWJlbC4gVXNlZnVsIGZvciBzdG9yaW5nIHRoZSBjb3JyZXNwb25kaW5nIEFQSSBrZXkgbGFiZWwgb24gdGhlIEJ5Yml0IHNpZGUuICovXG4gICAgICBsYWJlbD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSBlbnRyeSBpbiBbYEJ5Yml0UXVlcnlDb2luc0JhbGFuY2VSZXNwb25zZTo6YmFsYW5jZWBdLiAqL1xuICAgIEJ5Yml0Q29pbkJhbGFuY2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQm9udXMgLyBwcm9tb3Rpb25hbCBiYWxhbmNlLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgYm9udXM/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDb2luIHN5bWJvbCwgdXBwZXJjYXNlIChlLmcuIGBVU0RUYCwgYEJUQ2ApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQb3J0aW9uIG9mIGB3YWxsZXRfYmFsYW5jZWAgdGhhdCBjYW4gYmUgdHJhbnNmZXJyZWQgb3V0LiAqL1xuICAgICAgdHJhbnNmZXJCYWxhbmNlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRvdGFsIHdhbGxldCBiYWxhbmNlIGZvciBgY29pbmAsIGFzIGEgZGVjaW1hbCBzdHJpbmcuICovXG4gICAgICB3YWxsZXRCYWxhbmNlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSBlbnRyeSBpbiBbYEJ5Yml0Q29pbkluZm9FbnRyeTo6Y2hhaW5zYF0uICovXG4gICAgQnliaXRDb2luSW5mb0NoYWluOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFNob3J0IGNoYWluIGNvZGUgKGUuZy4gYEVUSGAsIGBUUlhgKS4gKi9cbiAgICAgIGNoYWluOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgZGVwb3NpdHMgYXJlIGVuYWJsZWQgb24gdGhpcyBjaGFpbjogYFwiMFwiYCBvZmYsIGBcIjFcImAgb24uICovXG4gICAgICBjaGFpbkRlcG9zaXQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIdW1hbi1yZWFkYWJsZSBjaGFpbiBuYW1lIChlLmcuIGBFUkMyMGApLiAqL1xuICAgICAgY2hhaW5UeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB3aXRoZHJhd2FscyBhcmUgZW5hYmxlZCBvbiB0aGlzIGNoYWluOiBgXCIwXCJgIG9mZiwgYFwiMVwiYCBvbi4gKi9cbiAgICAgIGNoYWluV2l0aGRyYXc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgY29uZmlybWF0aW9ucyByZXF1aXJlZCBmb3IgYSBkZXBvc2l0IHRvIGJlIGNyZWRpdGVkLiAqL1xuICAgICAgY29uZmlybWF0aW9uPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gTWluaW11bSBkZXBvc2l0IGFtb3VudCwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGRlcG9zaXRNaW4/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaXRoZHJhd2FsIGZlZSBvbiB0aGlzIGNoYWluLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiBJZiBlbXB0eSBzdHJpbmcsIHRoaXMgY29pbiBkb2VzIG5vdCBzdXBwb3J0IHdpdGhkcmF3YWwuICovXG4gICAgICB3aXRoZHJhd0ZlZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE1pbmltdW0gd2l0aGRyYXdhbCBhbW91bnQsIGFzIGEgZGVjaW1hbCBzdHJpbmcuICovXG4gICAgICB3aXRoZHJhd01pbj86IHN0cmluZyB8IG51bGw7XG4gICAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgZW50cnkgaW4gW2BCeWJpdENvaW5JbmZvUmVzcG9uc2U6OnJvd3NgXS4gKi9cbiAgICBCeWJpdENvaW5JbmZvRW50cnk6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gUGVyLWNoYWluIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgY29pbi4gKi9cbiAgICAgIGNoYWlucz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRDb2luSW5mb0NoYWluXCJdW107XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIENvaW4gc3ltYm9sLCB1cHBlcmNhc2UgKGUuZy4gYFVTRFRgKS4gKi9cbiAgICAgIGNvaW46IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRnVsbCBjb2luIG5hbWUgKGUuZy4gYFRldGhlcmApLiAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSBvZiBgR0VUIC92NS9hc3NldC9jb2luL3F1ZXJ5LWluZm9gLiAqL1xuICAgIEJ5Yml0Q29pbkluZm9SZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQZXItY29pbiBpbmZvIGVudHJpZXMuICovXG4gICAgICByb3dzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0Q29pbkluZm9FbnRyeVwiXVtdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgZW50cnkgaW4gW2BCeWJpdFF1ZXJ5RGVwb3NpdEFkZHJlc3NSZXNwb25zZTo6Y2hhaW5zYF0uICovXG4gICAgQnliaXREZXBvc2l0Q2hhaW46IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGVwb3NpdCBhZGRyZXNzIG9uIHRoaXMgY2hhaW4uICovXG4gICAgICBhZGRyZXNzRGVwb3NpdDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTaW5nbGUtZGVwb3NpdCBjYXAgZm9yIHRoaXMgY29pbiBvbiB0aGlzIGNoYWluOyBgXCItMVwiYCBtZWFucyBubyBsaW1pdC4gKi9cbiAgICAgIGJhdGNoUmVsZWFzZUxpbWl0Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU2hvcnQgY2hhaW4gY29kZSAoZS5nLiBgRVRIYCwgYFRSWGApLiAqL1xuICAgICAgY2hhaW46IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSHVtYW4tcmVhZGFibGUgY2hhaW4gbmFtZSAoZS5nLiBgRXRoZXJldW0gKEVSQzIwKWApLiAqL1xuICAgICAgY2hhaW5UeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRva2VuIGNvbnRyYWN0IGFkZHJlc3Mgb24gdGhpcyBjaGFpbi4gQnliaXQgb25seSByZXR1cm5zIHRoZSBsYXN0IDZcbiAgICAgICAqIGNoYXJhY3RlcnM7IGVtcHR5IGZvciBuYXRpdmUgY29pbnMuXG4gICAgICAgKi9cbiAgICAgIGNvbnRyYWN0QWRkcmVzcz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBNZW1vIC8gdGFnIHJlcXVpcmVkIGZvciBjaGFpbnMgdGhhdCB1c2Ugb25lIChlLmcuIFhSUCwgRU9TKS4gRW1wdHkgZm9yXG4gICAgICAgKiBjaGFpbnMgdGhhdCBkb24ndC5cbiAgICAgICAqL1xuICAgICAgdGFnRGVwb3NpdD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSBlbnRyeSBpbiBbYEJ5Yml0RGVwb3NpdEhpc3RvcnlSZXNwb25zZTo6cm93c2BdLiAqL1xuICAgIEJ5Yml0RGVwb3NpdEVudHJ5OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERlcG9zaXQgYW1vdW50IGFzIGEgZGVjaW1hbCBzdHJpbmcuICovXG4gICAgICBhbW91bnQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU2hvcnQgY2hhaW4gY29kZSAoZS5nLiBgRVRIYCwgYFRSWGApLiAqL1xuICAgICAgY2hhaW46IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29pbiBzeW1ib2wsIHVwcGVyY2FzZSAoZS5nLiBgVVNEVGApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgY29uZmlybWF0aW9ucyByZWNlaXZlZCBzbyBmYXIuICovXG4gICAgICBjb25maXJtYXRpb25zPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGVwb3NpdCBmZWUgY2hhcmdlZCwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGRlcG9zaXRGZWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRGVwb3NpdCBzdGF0ZSAoZS5nLiBgM2AgPSBkZXBvc2l0IHN1Y2Nlc3MpLiBTZWUgdGhlIEJ5Yml0IGRvY3MuXG4gICAgICAgKi9cbiAgICAgIHN0YXR1cz86IG51bWJlciB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRpbWVzdGFtcCB0aGUgZGVwb3NpdCBzdWNjZWVkZWQsIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaCAoYXMgYSBzdHJpbmcpLiAqL1xuICAgICAgc3VjY2Vzc0F0Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gTWVtbyAvIHRhZyBmb3IgY2hhaW5zIHRoYXQgdXNlIG9uZSAoZS5nLiBYUlAsIEVPUykuICovXG4gICAgICB0YWc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiBkZXBvc2l0IGFkZHJlc3MuICovXG4gICAgICB0b0FkZHJlc3M/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPbi1jaGFpbiB0cmFuc2FjdGlvbiBoYXNoLiAqL1xuICAgICAgdHhJRD86IHN0cmluZyB8IG51bGw7XG4gICAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCeWJpdCBSUEMgdmFyaWFudHMgd2hvc2UgcGF5bG9hZCBzY2hlbWEgaXNcbiAgICAgKiBkZXJpdmVkIGZyb20gYSBgKlJlcXVlc3RgIHN0cnVjdC4gKGBCeWJpdFF1ZXJ5VXNlclBhcmFtc2AgYW5kXG4gICAgICogYEJ5Yml0UXVlcnlTdWJNZW1iZXJzUGFyYW1zYCBoYXZlIG5vIHBlci12YXJpYW50IHBheWxvYWQgYW5kIGFyZSBkZWZpbmVkXG4gICAgICogZGlyZWN0bHkgYmVsb3cuKVxuICAgICAqL1xuICAgIEJ5Yml0RGVwb3NpdEhpc3RvcnlQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREZXBvc2l0SGlzdG9yeVJlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0RHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogU3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcy4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIGBHRVQgL3Y1L2Fzc2V0L2RlcG9zaXQvcXVlcnktcmVjb3JkYC5cbiAgICAgKlxuICAgICAqIEJ5IGRlZmF1bHQsIHF1ZXJpZXMgcmVjb3JkcyBmcm9tIHRoZSBsYXN0IDMwIGRheXM7IG90aGVyd2lzZSwgYGVuZFRpbWVgIC0gYHN0YXJ0VGltZWAgbXVzdCBiZSBsZXNzIHRoYW4gMzAgZGF5cy5cbiAgICAgKi9cbiAgICBCeWJpdERlcG9zaXRIaXN0b3J5UmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgYnkgY29pbiBzeW1ib2wgKHVwcGVyY2FzZSkuICovXG4gICAgICBjb2luPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gUGFnaW5hdGlvbiBjdXJzb3IgKHRoZSBgbmV4dFBhZ2VDdXJzb3JgIGZyb20gYSBwcmlvciByZXNwb25zZSkuICovXG4gICAgICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gRW5kIHRpbWVzdGFtcCAobXMgc2luY2UgZXBvY2gpLlxuICAgICAgICovXG4gICAgICBlbmRUaW1lPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRmlsdGVyIGJ5IEJ5Yml0LWludGVybmFsIGRlcG9zaXQgaWQuICovXG4gICAgICBpZD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQYWdlIHNpemUsIGBbMSwgNTBdYC4gRGVmYXVsdHMgdG8gNTAuXG4gICAgICAgKi9cbiAgICAgIGxpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFN0YXJ0IHRpbWVzdGFtcCAobXMgc2luY2UgZXBvY2gpLiBUaGUgc3BhbiBiZXR3ZWVuIGBzdGFydF90aW1lYCBhbmRcbiAgICAgICAqIGBlbmRfdGltZWAgbXVzdCBub3QgZXhjZWVkIDMwIGRheXMuXG4gICAgICAgKi9cbiAgICAgIHN0YXJ0VGltZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgYnkgb24tY2hhaW4gdHJhbnNhY3Rpb24gaWQuIERhdGEgYmVmb3JlIDIwMjQtMDEtMDEgaXMgbm90XG4gICAgICAgKiBxdWVyeWFibGUgdmlhIHRoaXMgZmllbGQuXG4gICAgICAgKi9cbiAgICAgIHR4SUQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSBvZiBgR0VUIC92NS9hc3NldC9kZXBvc2l0L3F1ZXJ5LXJlY29yZGAuICovXG4gICAgQnliaXREZXBvc2l0SGlzdG9yeVJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcGFxdWUgY3Vyc29yIHRvIHBhc3MgYmFjayBhcyBgY3Vyc29yYCBvbiB0aGUgbmV4dCByZXF1ZXN0OyBhYnNlbnQgb25cbiAgICAgICAqIHRoZSBsYXN0IHBhZ2UuXG4gICAgICAgKi9cbiAgICAgIG5leHRQYWdlQ3Vyc29yPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGVwb3NpdCByZWNvcmRzIG1hdGNoaW5nIHRoZSBxdWVyeS4gKi9cbiAgICAgIHJvd3M6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREZXBvc2l0RW50cnlcIl1bXTtcbiAgICB9O1xuICAgIEJ5Yml0RHJ5UnVuQXJnczoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgQnliaXQgQVBJIG1ldGhvZCB0aGF0IHdvdWxkIGhhdmUgYmVlbiB1c2VkICovXG4gICAgICBtZXRob2Q6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlcXVlc3QgYm9keSAoZm9yIFBPU1QgZW5kcG9pbnRzKSBvciBxdWVyeSBzdHJpbmcgKGZvciBHRVQgZW5kcG9pbnRzKS4gKi9cbiAgICAgIHBheWxvYWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIEJ5Yml0IEFQSSB1cmwgdGhhdCB3b3VsZCBoYXZlIGJlZW4gY2FsbGVkICovXG4gICAgICB1cmw6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBcIkRyeSBydW5cIiBtb2RlcyBmb3IgQnliaXQgcmVxdWVzdHMuXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBCeWJpdERyeVJ1bk1vZGU6IFwiTk9fU0lHTlwiIHwgXCJOT19TVUJNSVRcIjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBlbnZlbG9wZSBmb3IgYWxsIEJ5Yml0IFJQQyB2YXJpYW50cyB3aG9zZSBwYXlsb2FkIHNjaGVtYSBpc1xuICAgICAqIGRlcml2ZWQgZnJvbSBhIGAqUmVxdWVzdGAgc3RydWN0LiAoYEJ5Yml0UXVlcnlVc2VyUGFyYW1zYCBhbmRcbiAgICAgKiBgQnliaXRRdWVyeVN1Yk1lbWJlcnNQYXJhbXNgIGhhdmUgbm8gcGVyLXZhcmlhbnQgcGF5bG9hZCBhbmQgYXJlIGRlZmluZWRcbiAgICAgKiBkaXJlY3RseSBiZWxvdy4pXG4gICAgICovXG4gICAgQnliaXRRdWVyeUNvaW5JbmZvUGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0UXVlcnlDb2luSW5mb1JlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0RHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogU3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcy4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgR0VUIC92NS9hc3NldC9jb2luL3F1ZXJ5LWluZm9gLiAqL1xuICAgIEJ5Yml0UXVlcnlDb2luSW5mb1JlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEZpbHRlciBieSBjb2luIHN5bWJvbCAodXBwZXJjYXNlLCBlLmcuIGBcIkJUQ1wiYCkuIEJ5Yml0IHJldHVybnMgaW5mbyBmb3JcbiAgICAgICAqIGFsbCBjb2lucyB3aGVuIG9taXR0ZWQuXG4gICAgICAgKi9cbiAgICAgIGNvaW4/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCeWJpdCBSUEMgdmFyaWFudHMgd2hvc2UgcGF5bG9hZCBzY2hlbWEgaXNcbiAgICAgKiBkZXJpdmVkIGZyb20gYSBgKlJlcXVlc3RgIHN0cnVjdC4gKGBCeWJpdFF1ZXJ5VXNlclBhcmFtc2AgYW5kXG4gICAgICogYEJ5Yml0UXVlcnlTdWJNZW1iZXJzUGFyYW1zYCBoYXZlIG5vIHBlci12YXJpYW50IHBheWxvYWQgYW5kIGFyZSBkZWZpbmVkXG4gICAgICogZGlyZWN0bHkgYmVsb3cuKVxuICAgICAqL1xuICAgIEJ5Yml0UXVlcnlDb2luc0JhbGFuY2VQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeUNvaW5zQmFsYW5jZVJlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0RHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogU3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcy4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgR0VUIC92NS9hc3NldC90cmFuc2Zlci9xdWVyeS1hY2NvdW50LWNvaW5zLWJhbGFuY2VgLiAqL1xuICAgIEJ5Yml0UXVlcnlDb2luc0JhbGFuY2VSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXYWxsZXQgdHlwZS4gQ29tbW9uIHZhbHVlczogYFwiRlVORFwiYCwgYFwiVU5JRklFRFwiYCwgYFwiQ09OVFJBQ1RcImAuIEJ5Yml0XG4gICAgICAgKiBleHBlY3RzIHRoaXMgdmVyYmF0aW07IHdlIGRvbid0IGNvbnN0cmFpbiBpdCBvbiBvdXIgc2lkZS5cbiAgICAgICAqL1xuICAgICAgYWNjb3VudFR5cGU6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGxpc3Qgb2YgY29pbiBzeW1ib2xzLCBjb21tYS1zZXBhcmF0ZWQgKGUuZy4gYFwiQlRDLFVTRFRcImApLlxuICAgICAgICogQnliaXQgcmV0dXJucyBiYWxhbmNlcyBmb3IgYWxsIGNvaW5zIHdoZW4gb21pdHRlZC5cbiAgICAgICAqL1xuICAgICAgY29pbj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBzdWItYWNjb3VudCBVSUQuIFdoZW4gc3VwcGxpZWQsIHRoZSBtYXN0ZXIga2V5IHF1ZXJpZXMgdGhlXG4gICAgICAgKiBuYW1lZCBzdWItYWNjb3VudCdzIGJhbGFuY2UuXG4gICAgICAgKi9cbiAgICAgIG1lbWJlcklkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGZsYWc6IGBcIjBcImAgcXVlcnkgd2l0aG91dCBjb252ZXJzaW9uIHRvIFVTRCAoZGVmYXVsdCksXG4gICAgICAgKiBgXCIxXCJgIGluY2x1ZGUgVVNEIHZhbHVhdGlvbi4gQnliaXQgYWNjZXB0cyB0aGlzIGFzIGEgc3RyaW5nLlxuICAgICAgICovXG4gICAgICB3aXRoQm9udXM/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSBvZiBgR0VUIC92NS9hc3NldC90cmFuc2Zlci9xdWVyeS1hY2NvdW50LWNvaW5zLWJhbGFuY2VgLiAqL1xuICAgIEJ5Yml0UXVlcnlDb2luc0JhbGFuY2VSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBY2NvdW50IHR5cGUgdGhlIGJhbGFuY2VzIGJlbG9uZyB0byAoZS5nLiBgVU5JRklFRGAsIGBGVU5EYCwgYENPTlRSQUNUYCkuICovXG4gICAgICBhY2NvdW50VHlwZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQZXItY29pbiBiYWxhbmNlcy4gKi9cbiAgICAgIGJhbGFuY2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRDb2luQmFsYW5jZVwiXVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVSUQgb2YgdGhlIChzdWItKWFjY291bnQgd2hvc2UgYmFsYW5jZSBpcyBiZWluZyByZXBvcnRlZC4gKi9cbiAgICAgIG1lbWJlcklkPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQnliaXQgUlBDIHZhcmlhbnRzIHdob3NlIHBheWxvYWQgc2NoZW1hIGlzXG4gICAgICogZGVyaXZlZCBmcm9tIGEgYCpSZXF1ZXN0YCBzdHJ1Y3QuIChgQnliaXRRdWVyeVVzZXJQYXJhbXNgIGFuZFxuICAgICAqIGBCeWJpdFF1ZXJ5U3ViTWVtYmVyc1BhcmFtc2AgaGF2ZSBubyBwZXItdmFyaWFudCBwYXlsb2FkIGFuZCBhcmUgZGVmaW5lZFxuICAgICAqIGRpcmVjdGx5IGJlbG93LilcbiAgICAgKi9cbiAgICBCeWJpdFF1ZXJ5RGVwb3NpdEFkZHJlc3NQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeURlcG9zaXRBZGRyZXNzUmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleUlkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgXCJyZWNlaXZlIHdpbmRvd1wiLCBpLmUuLCBmb3IgaG93IGxvbmcgdGhlIHJlcXVlc3Qgc3RheXMgdmFsaWQuXG4gICAgICAgKiBTcGVjaWZpZWQgaW4gbWlsbGlzZWNvbmRzLiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAxMDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIGBHRVQgL3Y1L2Fzc2V0L2RlcG9zaXQvcXVlcnktYWRkcmVzc2AuICovXG4gICAgQnliaXRRdWVyeURlcG9zaXRBZGRyZXNzUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbmV0d29yayBpZGVudGlmaWVyIChlLmcuIGBcIkVUSFwiYCwgYFwiVFJYXCJgKS4gV2hlbiBvbWl0dGVkLFxuICAgICAgICogQnliaXQgcmV0dXJucyB0aGUgZGVwb3NpdCBhZGRyZXNzIG9uIGV2ZXJ5IHN1cHBvcnRlZCBjaGFpbi5cbiAgICAgICAqL1xuICAgICAgY2hhaW5UeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29pbiBzeW1ib2wgKGUuZy4gYFwiQlRDXCJgLCBgXCJVU0RUXCJgKS4gKi9cbiAgICAgIGNvaW46IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2Ugb2YgYEdFVCAvdjUvYXNzZXQvZGVwb3NpdC9xdWVyeS1hZGRyZXNzYC4gKi9cbiAgICBCeWJpdFF1ZXJ5RGVwb3NpdEFkZHJlc3NSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgZGVwb3NpdCBhZGRyZXNzIHBlciBzdXBwb3J0ZWQgY2hhaW4uICovXG4gICAgICBjaGFpbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREZXBvc2l0Q2hhaW5cIl1bXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29pbiBzeW1ib2wgdGhlIGRlcG9zaXQgYWRkcmVzc2VzIGFyZSBmb3IgKGUuZy4gYFVTRFRgKS4gKi9cbiAgICAgIGNvaW46IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQnliaXQgUlBDIHZhcmlhbnRzIHdob3NlIHBheWxvYWQgc2NoZW1hIGlzXG4gICAgICogZGVyaXZlZCBmcm9tIGEgYCpSZXF1ZXN0YCBzdHJ1Y3QuIChgQnliaXRRdWVyeVVzZXJQYXJhbXNgIGFuZFxuICAgICAqIGBCeWJpdFF1ZXJ5U3ViTWVtYmVyc1BhcmFtc2AgaGF2ZSBubyBwZXItdmFyaWFudCBwYXlsb2FkIGFuZCBhcmUgZGVmaW5lZFxuICAgICAqIGRpcmVjdGx5IGJlbG93LilcbiAgICAgKi9cbiAgICBCeWJpdFF1ZXJ5U3ViRGVwb3NpdEFkZHJlc3NQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeVN1YkRlcG9zaXRBZGRyZXNzUmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleUlkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgXCJyZWNlaXZlIHdpbmRvd1wiLCBpLmUuLCBmb3IgaG93IGxvbmcgdGhlIHJlcXVlc3Qgc3RheXMgdmFsaWQuXG4gICAgICAgKiBTcGVjaWZpZWQgaW4gbWlsbGlzZWNvbmRzLiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAxMDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIGBHRVQgL3Y1L2Fzc2V0L2RlcG9zaXQvcXVlcnktc3ViLW1lbWJlci1hZGRyZXNzYC4gKi9cbiAgICBCeWJpdFF1ZXJ5U3ViRGVwb3NpdEFkZHJlc3NSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTaG9ydCBjaGFpbiBjb2RlLCBhcyByZXR1cm5lZCBpbiB0aGUgYGNoYWluYCBmaWVsZCBvZlxuICAgICAgICogW2BCeWJpdFJwYzo6UXVlcnlDb2luSW5mb2BdIChlLmcuIGBcIkVUSFwiYCwgYFwiVFJYXCJgKS5cbiAgICAgICAqL1xuICAgICAgY2hhaW5UeXBlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIENvaW4gc3ltYm9sLCB1cHBlcmNhc2Ugb25seSAoZS5nLiBgXCJVU0RUXCJgKS4gKi9cbiAgICAgIGNvaW46IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVUlEIG9mIHRoZSBzdWItYWNjb3VudCB3aG9zZSBkZXBvc2l0IGFkZHJlc3MgdG8gZmV0Y2guICovXG4gICAgICBzdWJNZW1iZXJJZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIG9mIGBHRVQgL3Y1L2Fzc2V0L2RlcG9zaXQvcXVlcnktc3ViLW1lbWJlci1hZGRyZXNzYC5cbiAgICAgKlxuICAgICAqIE5PVEU6IHVubGlrZSB0aGUgbWFzdGVyLWFjY291bnQgYHF1ZXJ5LWFkZHJlc3NgIGVuZHBvaW50IChtb2RlbGxlZCBieVxuICAgICAqIFtgQnliaXRRdWVyeURlcG9zaXRBZGRyZXNzUmVzcG9uc2VgXSksIEJ5Yml0IHJldHVybnMgYGNoYWluc2AgaGVyZSBhcyBhXG4gICAgICogc2luZ2xlIG9iamVjdCByYXRoZXIgdGhhbiBhbiBhcnJheSDigJQgdGhlIHJlcXVlc3QgcGlucyBvbmUgYGNoYWluVHlwZWAsIHNvXG4gICAgICogdGhlcmUgaXMgb25seSBldmVyIG9uZSBjaGFpbiB0byByZXBvcnQuXG4gICAgICovXG4gICAgQnliaXRRdWVyeVN1YkRlcG9zaXRBZGRyZXNzUmVzcG9uc2U6IHtcbiAgICAgIGNoYWluczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdERlcG9zaXRDaGFpblwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29pbiBzeW1ib2wgdGhlIGRlcG9zaXQgYWRkcmVzcyBpcyBmb3IgKGUuZy4gYFVTRFRgKS4gKi9cbiAgICAgIGNvaW46IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBbYEJ5Yml0UnBjOjpRdWVyeVN1Yk1lbWJlcnNgXS5cbiAgICAgKlxuICAgICAqIEJ5Yml0IGVuZHBvaW50OiBgR0VUIC92NS91c2VyL3F1ZXJ5LXN1Yi1tZW1iZXJzYC4gVGFrZXMgbm8gaW5wdXRzIGJleW9uZFxuICAgICAqIHRoZSBjb21tb24gZW52ZWxvcGUuXG4gICAgICovXG4gICAgQnliaXRRdWVyeVN1Yk1lbWJlcnNQYXJhbXM6IHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleUlkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcmVjZWl2ZSB3aW5kb3cgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0cyB0byAxMDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIG9mIGBHRVQgL3Y1L3VzZXIvcXVlcnktc3ViLW1lbWJlcnNgLiAqL1xuICAgIEJ5Yml0UXVlcnlTdWJNZW1iZXJzUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHN1Yi1hY2NvdW50cyB1bmRlciB0aGUgY2FsbGluZyBtYXN0ZXIgYWNjb3VudC4gKi9cbiAgICAgIHN1Yk1lbWJlcnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRTdWJNZW1iZXJcIl1bXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBbYEJ5Yml0UnBjOjpRdWVyeVVzZXJgXS5cbiAgICAgKlxuICAgICAqIEJ5Yml0IGVuZHBvaW50OiBgR0VUIC92NS91c2VyL3F1ZXJ5LWFwaWAuIFRha2VzIG5vIGlucHV0cyBiZXlvbmQgdGhlIGNvbW1vblxuICAgICAqIGByZWN2V2luZG93YCAvIGB0aW1lc3RhbXBgIGVudmVsb3BlOyBkZWZpbmVkIGRpcmVjdGx5IChpbnN0ZWFkIG9mIHRocm91Z2hcbiAgICAgKiB0aGUgW2BCeWJpdFBhcmFtc2BdIGdlbmVyaWMgYWxpYXMpIHNvIHV0b2lwYSBlbWl0cyBhIG5vbi1lbXB0eSBzY2hlbWEuXG4gICAgICovXG4gICAgQnliaXRRdWVyeVVzZXJQYXJhbXM6IHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleUlkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcmVjZWl2ZSB3aW5kb3cgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0cyB0byAxMDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIG9mIGBHRVQgL3Y1L3VzZXIvcXVlcnktYXBpYC4gKi9cbiAgICBCeWJpdFF1ZXJ5VXNlclJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEJ5Yml0IGFjY291bnQgS1lDIGxldmVsIChgXCIwXCJgID0gbm9uZSkuICovXG4gICAgICBreWNMZXZlbD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGZyZWUtdGV4dCBsYWJlbCBzZXQgb24gdGhlIEFQSSBrZXkuICovXG4gICAgICBub3RlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1hc3RlciBhY2NvdW50IFVJRCBmb3Igc3ViLWFjY291bnRzLCBgXCIwXCJgIGlmIHRoZSBjYWxsaW5nIGtleSBpcyBhXG4gICAgICAgKiBtYXN0ZXIgYWNjb3VudC5cbiAgICAgICAqL1xuICAgICAgcGFyZW50VWlkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFQSSBwZXJtaXNzaW9ucyBhc3NpZ25lZCB0byB0aGUga2V5LiAqL1xuICAgICAgcGVybWlzc2lvbnM/OiB1bmtub3duO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gQnliaXQtYXNzaWduZWQgYWNjb3VudCBVSUQgb2YgdGhlIEFQSSBrZXkuXG4gICAgICAgKi9cbiAgICAgIHVzZXJJRDogbnVtYmVyO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBWSVAgbGV2ZWwuICovXG4gICAgICB2aXBMZXZlbD86IHN0cmluZyB8IG51bGw7XG4gICAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCeWJpdCBSUEMgdmFyaWFudHMgd2hvc2UgcGF5bG9hZCBzY2hlbWEgaXNcbiAgICAgKiBkZXJpdmVkIGZyb20gYSBgKlJlcXVlc3RgIHN0cnVjdC4gKGBCeWJpdFF1ZXJ5VXNlclBhcmFtc2AgYW5kXG4gICAgICogYEJ5Yml0UXVlcnlTdWJNZW1iZXJzUGFyYW1zYCBoYXZlIG5vIHBlci12YXJpYW50IHBheWxvYWQgYW5kIGFyZSBkZWZpbmVkXG4gICAgICogZGlyZWN0bHkgYmVsb3cuKVxuICAgICAqL1xuICAgIEJ5Yml0UXVlcnlXaXRoZHJhd0FkZHJlc3NQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeVdpdGhkcmF3QWRkcmVzc1JlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0RHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogU3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcy4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgR0VUIC92NS9hc3NldC93aXRoZHJhdy9xdWVyeS1hZGRyZXNzYC4gKi9cbiAgICBCeWJpdFF1ZXJ5V2l0aGRyYXdBZGRyZXNzUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRmlsdGVyIGJ5IGFkZHJlc3MgY2F0ZWdvcnk6IGAwYCBvbi1jaGFpbiwgYDFgIGludGVybmFsIHRyYW5zZmVyLCBgMmBcbiAgICAgICAqIGJvdGguIEJ5Yml0IHJldHVybnMgZXZlcnkgY2F0ZWdvcnkgd2hlbiBvbWl0dGVkLlxuICAgICAgICovXG4gICAgICBhZGRyZXNzVHlwZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZpbHRlciBieSBzaG9ydCBjaGFpbiBjb2RlIChlLmcuIGBcIkVUSFwiYCwgYFwiVFJYXCJgKS4gKi9cbiAgICAgIGNoYWluPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEZpbHRlciBieSBjb2luIHN5bWJvbCAodXBwZXJjYXNlKS4gQnliaXQgYWxzbyBhY2NlcHRzIHRoZSBjb2luJ3NcbiAgICAgICAqIGBiYXNlQ29pbmAgaGVyZSwgd2hpY2ggbWF0Y2hlcyBhZGRyZXNzZXMgd2hpdGVsaXN0ZWQgZm9yIGV2ZXJ5IGNoYWluIG9mXG4gICAgICAgKiB0aGF0IGNvaW4uXG4gICAgICAgKi9cbiAgICAgIGNvaW4/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQYWdpbmF0aW9uIGN1cnNvciAodGhlIGBuZXh0UGFnZUN1cnNvcmAgZnJvbSBhIHByaW9yIHJlc3BvbnNlKS4gKi9cbiAgICAgIGN1cnNvcj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQYWdlIHNpemUsIGBbMSwgNTBdYC4gRGVmYXVsdHMgdG8gNTAuXG4gICAgICAgKi9cbiAgICAgIGxpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2Ugb2YgYEdFVCAvdjUvYXNzZXQvd2l0aGRyYXcvcXVlcnktYWRkcmVzc2AuICovXG4gICAgQnliaXRRdWVyeVdpdGhkcmF3QWRkcmVzc1Jlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcGFxdWUgY3Vyc29yIHRvIHBhc3MgYmFjayBhcyBgY3Vyc29yYCBvbiB0aGUgbmV4dCByZXF1ZXN0OyBhYnNlbnQgb25cbiAgICAgICAqIHRoZSBsYXN0IHBhZ2UuXG4gICAgICAgKi9cbiAgICAgIG5leHRQYWdlQ3Vyc29yPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hpdGVsaXN0ZWQgd2l0aGRyYXdhbCBhZGRyZXNzZXMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LiAqL1xuICAgICAgcm93czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFdpdGhkcmF3QWRkcmVzc0VudHJ5XCJdW107XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQnliaXQtZmFtaWx5IFJQQyBtZXRob2RzLiBFYWNoIHZhcmlhbnQgYXV0aGVudGljYXRlcyBhcyB0aGVcbiAgICAgKiBbYEtleVR5cGU6OkhtYWNTaGEyNTZCeWJpdGBdIGtleSBpbiBpdHMgYHBhcmFtcy5rZXlfaWRgICh3aGljaCBtdXN0IGNhcnJ5XG4gICAgICogW2BLZXlQcm9wZXJ0aWVzOjpCeWJpdEFwaWBdKS5cbiAgICAgKi9cbiAgICBCeWJpdFJwYzpcbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19ieWJpdFF1ZXJ5VXNlclwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFF1ZXJ5VXNlclBhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2J5Yml0UXVlcnlTdWJNZW1iZXJzXCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0UXVlcnlTdWJNZW1iZXJzUGFyYW1zXCJdO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtZXRob2Q6IFwiY3NfYnliaXRRdWVyeUNvaW5zQmFsYW5jZVwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFF1ZXJ5Q29pbnNCYWxhbmNlUGFyYW1zXCJdO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtZXRob2Q6IFwiY3NfYnliaXRRdWVyeURlcG9zaXRBZGRyZXNzXCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0UXVlcnlEZXBvc2l0QWRkcmVzc1BhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2J5Yml0VW5pdmVyc2FsVHJhbnNmZXJcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRVbml2ZXJzYWxUcmFuc2ZlclBhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2J5Yml0V2l0aGRyYXdcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRXaXRoZHJhd1BhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2J5Yml0V2l0aGRyYXdhbHNcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRXaXRoZHJhd2Fsc1BhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2J5Yml0UXVlcnlDb2luSW5mb1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFF1ZXJ5Q29pbkluZm9QYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19ieWJpdERlcG9zaXRIaXN0b3J5XCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0RGVwb3NpdEhpc3RvcnlQYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19ieWJpdFVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVBhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2J5Yml0UXVlcnlXaXRoZHJhd0FkZHJlc3NcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeVdpdGhkcmF3QWRkcmVzc1BhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2J5Yml0UXVlcnlTdWJEZXBvc2l0QWRkcmVzc1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFF1ZXJ5U3ViRGVwb3NpdEFkZHJlc3NQYXJhbXNcIl07XG4gICAgICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCBieSB0aGUgdHlwZWQgYGJ5Yml0X3NpZ25gIGVuZHBvaW50LiAqL1xuICAgIEJ5Yml0U2lnblJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEJ5Yml0LWJvdW5kIHBheWxvYWQgKFVSTC1lbmNvZGVkIHF1ZXJ5IGZvciBHRVQsIEpTT04gYm9keSBmb3JcbiAgICAgICAqIFBPU1QpLiBTdWJtaXR0ZWQgdmVyYmF0aW0gYnkgdGhlIHJwYy1hcGkgbGFtYmRhOyB0aGUgcGF5bG9hZCBieXRlcyBhcmVcbiAgICAgICAqIGFsc28gcGFydCBvZiB0aGUgc2lnbmluZyBpbnB1dC5cbiAgICAgICAqL1xuICAgICAgcGF5bG9hZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRWZmZWN0aXZlIHJlY2VpdmUgd2luZG93IGluIG1pbGxpc2Vjb25kcy5cbiAgICAgICAqL1xuICAgICAgcmVjdl93aW5kb3c6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIEhNQUMtU0hBMjU2IHNpZ25hdHVyZSBvZlxuICAgICAgICogYHRpbWVzdGFtcCB8fCBhcGlLZXkgfHwgcmVjdldpbmRvdyB8fCBwYXlsb2FkYC4gR29lcyBpbnRvIHRoZVxuICAgICAgICogYFgtQkFQSS1TSUdOYCBoZWFkZXIuXG4gICAgICAgKi9cbiAgICAgIHNpZ25hdHVyZV9oZXg6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFNpZ25pbmcgdGltZXN0YW1wIChtcyBzaW5jZSBlcG9jaCkuIFBpY2tlZCBieSB0aGUgc2lnbmVyLlxuICAgICAgICovXG4gICAgICB0aW1lc3RhbXBfbXM6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT25lIGVudHJ5IGluIFtgQnliaXRRdWVyeVN1Yk1lbWJlcnNSZXNwb25zZTo6c3ViX21lbWJlcnNgXS4gKi9cbiAgICBCeWJpdFN1Yk1lbWJlcjoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVHJhZGluZyBhY2NvdW50IGNvbmZpZ3VyYXRpb246IGAxYCBDbGFzc2ljLCBgM2AgVVRBMS4wLCBgNGAgVVRBMS4wIFBybyxcbiAgICAgICAqIGA1YCBVVEEyLjAsIGA2YCBVVEEyLjAgUHJvLlxuICAgICAgICovXG4gICAgICBhY2NvdW50TW9kZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTdWItYWNjb3VudCBjYXRlZ29yeTogYDFgIHN0YW5kYXJkLCBgNmAgY3VzdG9kaWFsLlxuICAgICAgICovXG4gICAgICBtZW1iZXJUeXBlPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRnJlZS10ZXh0IHJlbWFyayBhc3NvY2lhdGVkIHdpdGggdGhlIHN1Yi1hY2NvdW50LiAqL1xuICAgICAgcmVtYXJrPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFjY291bnQgc3RhdGU6IGAxYCBhY3RpdmUsIGAyYCBsb2dpbi1yZXN0cmljdGVkLCBgNGAgZnJvemVuLlxuICAgICAgICovXG4gICAgICBzdGF0dXM/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTdWItYWNjb3VudCBVSUQuICovXG4gICAgICB1aWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGlzcGxheSBuYW1lIG9mIHRoZSBzdWItYWNjb3VudC4gKi9cbiAgICAgIHVzZXJuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSBlbnRyeSBpbiBbYEJ5Yml0VW5pdmVyc2FsVHJhbnNmZXJIaXN0b3J5UmVzcG9uc2U6Omxpc3RgXS4gKi9cbiAgICBCeWJpdFRyYW5zZmVyRW50cnk6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVHJhbnNmZXIgYW1vdW50IGFzIGEgZGVjaW1hbCBzdHJpbmcuICovXG4gICAgICBhbW91bnQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29pbiBzeW1ib2wsIHVwcGVyY2FzZSAoZS5nLiBgVVNEVGApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTb3VyY2Ugd2FsbGV0IHR5cGUgKGUuZy4gYEZVTkRgLCBgVU5JRklFRGApLiAqL1xuICAgICAgZnJvbUFjY291bnRUeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU291cmNlIGFjY291bnQgVUlELiAqL1xuICAgICAgZnJvbU1lbWJlcklkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVHJhbnNmZXIgc3RhdGU6IGBTVUNDRVNTYCwgYFBFTkRJTkdgLCBvciBgRkFJTEVEYC4gKi9cbiAgICAgIHN0YXR1cz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIENyZWF0aW9uIHRpbWVzdGFtcCwgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIGVwb2NoIChhcyBhIHN0cmluZykuICovXG4gICAgICB0aW1lc3RhbXA/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiB3YWxsZXQgdHlwZS4gKi9cbiAgICAgIHRvQWNjb3VudFR5cGU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiBhY2NvdW50IFVJRC4gKi9cbiAgICAgIHRvTWVtYmVySWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVVUlEIG9mIHRoZSB0cmFuc2ZlciAodGhlIGNhbGxlci1zdXBwbGllZCBgdHJhbnNmZXJJZGApLiAqL1xuICAgICAgdHJhbnNmZXJJZDogc3RyaW5nO1xuICAgICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQnliaXQgUlBDIHZhcmlhbnRzIHdob3NlIHBheWxvYWQgc2NoZW1hIGlzXG4gICAgICogZGVyaXZlZCBmcm9tIGEgYCpSZXF1ZXN0YCBzdHJ1Y3QuIChgQnliaXRRdWVyeVVzZXJQYXJhbXNgIGFuZFxuICAgICAqIGBCeWJpdFF1ZXJ5U3ViTWVtYmVyc1BhcmFtc2AgaGF2ZSBubyBwZXItdmFyaWFudCBwYXlsb2FkIGFuZCBhcmUgZGVmaW5lZFxuICAgICAqIGRpcmVjdGx5IGJlbG93LilcbiAgICAgKi9cbiAgICBCeWJpdFVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVJlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0RHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogU3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcy4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIGBHRVQgL3Y1L2Fzc2V0L3RyYW5zZmVyL3F1ZXJ5LXVuaXZlcnNhbC10cmFuc2Zlci1saXN0YC5cbiAgICAgKlxuICAgICAqIElmIGBzdGFydFRpbWVgIGFuZCBgZW5kVGltZWAgYXJlIG5vdCBwcm92aWRlZCwgdGhlIEFQSSByZXR1cm5zIGRhdGEgZnJvbSB0aGUgcGFzdCA3IGRheXMgYnkgZGVmYXVsdC5cbiAgICAgKiBJZiBvbmx5IGBzdGFydFRpbWVgIGlzIHByb3ZpZGVkLCB0aGUgQVBJIHJldHVybnMgcmVjb3JkcyBmcm9tIGBzdGFydFRpbWVgIHRvIGBzdGFydFRpbWVgICsgNyBkYXlzLlxuICAgICAqIElmIG9ubHkgYGVuZFRpbWVgIGlzIHByb3ZpZGVkLCB0aGUgQVBJIHJldHVybnMgcmVjb3JkcyBmcm9tIGBlbmRUaW1lYCAtIDcgZGF5cyB0byBgZW5kVGltZWAuXG4gICAgICogSWYgYm90aCBhcmUgcHJvdmlkZWQsIHRoZSBtYXhpbXVtIGFsbG93ZWQgcmFuZ2UgaXMgNyBkYXlzIChgZW5kVGltZWAgLSBgc3RhcnRUaW1lYCDiiaQgNyBkYXlzKS5cbiAgICAgKi9cbiAgICBCeWJpdFVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRmlsdGVyIGJ5IGNvaW4gc3ltYm9sICh1cHBlcmNhc2UpLiAqL1xuICAgICAgY29pbj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFBhZ2luYXRpb24gY3Vyc29yICh0aGUgYG5leHRQYWdlQ3Vyc29yYCBmcm9tIGEgcHJpb3IgcmVzcG9uc2UpLiAqL1xuICAgICAgY3Vyc29yPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIEVuZCB0aW1lc3RhbXAgKG1zIHNpbmNlIGVwb2NoKS5cbiAgICAgICAqL1xuICAgICAgZW5kVGltZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQYWdlIHNpemUsIGBbMSwgNTBdYC4gRGVmYXVsdHMgdG8gMjAuXG4gICAgICAgKi9cbiAgICAgIGxpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFN0YXJ0IHRpbWVzdGFtcCAobXMgc2luY2UgZXBvY2gpLiBUaGUgc3BhbiBiZXR3ZWVuIGBzdGFydF90aW1lYCBhbmRcbiAgICAgICAqIGBlbmRfdGltZWAgbXVzdCBub3QgZXhjZWVkIDcgZGF5cy5cbiAgICAgICAqL1xuICAgICAgc3RhcnRUaW1lPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRmlsdGVyIGJ5IHRyYW5zZmVyIHN0YXR1czogYFwiU1VDQ0VTU1wiYCwgYFwiRkFJTEVEXCJgLCBvciBgXCJQRU5ESU5HXCJgLiAqL1xuICAgICAgc3RhdHVzPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEZpbHRlciBieSB0aGUgdHJhbnNmZXIncyBVVUlEIChhcyBzdXBwbGllZCB0b1xuICAgICAgICogW2BCeWJpdFJwYzo6VW5pdmVyc2FsVHJhbnNmZXJgXSkuXG4gICAgICAgKi9cbiAgICAgIHRyYW5zZmVySWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSBvZiBgR0VUIC92NS9hc3NldC90cmFuc2Zlci9xdWVyeS11bml2ZXJzYWwtdHJhbnNmZXItbGlzdGAuICovXG4gICAgQnliaXRVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlSZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVW5pdmVyc2FsLXRyYW5zZmVyIHJlY29yZHMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LiAoQnliaXQgbmFtZXMgdGhpcyBmaWVsZFxuICAgICAgICogYGxpc3RgLCB1bmxpa2UgdGhlIGByb3dzYCB1c2VkIGJ5IG90aGVyIGhpc3RvcnkgZW5kcG9pbnRzLilcbiAgICAgICAqL1xuICAgICAgbGlzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFRyYW5zZmVyRW50cnlcIl1bXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wYXF1ZSBjdXJzb3IgdG8gcGFzcyBiYWNrIGFzIGBjdXJzb3JgIG9uIHRoZSBuZXh0IHJlcXVlc3Q7IGFic2VudCBvblxuICAgICAgICogdGhlIGxhc3QgcGFnZS5cbiAgICAgICAqL1xuICAgICAgbmV4dFBhZ2VDdXJzb3I/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCeWJpdCBSUEMgdmFyaWFudHMgd2hvc2UgcGF5bG9hZCBzY2hlbWEgaXNcbiAgICAgKiBkZXJpdmVkIGZyb20gYSBgKlJlcXVlc3RgIHN0cnVjdC4gKGBCeWJpdFF1ZXJ5VXNlclBhcmFtc2AgYW5kXG4gICAgICogYEJ5Yml0UXVlcnlTdWJNZW1iZXJzUGFyYW1zYCBoYXZlIG5vIHBlci12YXJpYW50IHBheWxvYWQgYW5kIGFyZSBkZWZpbmVkXG4gICAgICogZGlyZWN0bHkgYmVsb3cuKVxuICAgICAqL1xuICAgIEJ5Yml0VW5pdmVyc2FsVHJhbnNmZXJQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRVbml2ZXJzYWxUcmFuc2ZlclJlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0RHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogU3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcy4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgUE9TVCAvdjUvYXNzZXQvdHJhbnNmZXIvdW5pdmVyc2FsLXRyYW5zZmVyYC4gKi9cbiAgICBCeWJpdFVuaXZlcnNhbFRyYW5zZmVyUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbW91bnQgYXMgYSBkZWNpbWFsIHN0cmluZyAoZS5nLiBgXCIxLjVcImApLiBTZW50IHZlcmJhdGltLiAqL1xuICAgICAgYW1vdW50OiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIENvaW4gc3ltYm9sIChlLmcuIGBcIlVTRFRcImApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gU291cmNlIHdhbGxldCB0eXBlLiBEZWZhdWx0cyB0byBgXCJGVU5EXCJgIGlmIG9taXR0ZWQ7IHRoZSBzaWduZXJcbiAgICAgICAqIHN1YnN0aXR1dGVzIHRoZSBkZWZhdWx0IGJlZm9yZSBzaWduaW5nIHNvIHRoZSBzaWduZWQgYW5kIHN1Ym1pdHRlZFxuICAgICAgICogcGF5bG9hZHMgbWF0Y2guXG4gICAgICAgKi9cbiAgICAgIGZyb21BY2NvdW50VHlwZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTb3VyY2UgYWNjb3VudCBVSUQuIEZvciBcInNlbGZcIiwgdGhlIG1hbmFnZXIgc3Vic3RpdHV0ZXMgdGhlIGNhbGxlcidzXG4gICAgICAgKiBvd24gVUlEIGJlZm9yZSB0aGlzIHN0cnVjdCByZWFjaGVzIHRoZSBzaWduZXIuXG4gICAgICAgKi9cbiAgICAgIGZyb21NZW1iZXJJZDogbnVtYmVyO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiB3YWxsZXQgdHlwZS4gRGVmYXVsdHMgdG8gYFwiRlVORFwiYCBpZiBvbWl0dGVkLiAqL1xuICAgICAgdG9BY2NvdW50VHlwZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiBhY2NvdW50IFVJRC5cbiAgICAgICAqL1xuICAgICAgdG9NZW1iZXJJZDogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ2xpZW50LXN1cHBsaWVkIHRyYW5zZmVyIGlkIChVVUlEKS4gQnliaXQgZWNob2VzIGl0IGJhY2sgYXMgdGhlXG4gICAgICAgKiBjYW5vbmljYWwgcmVmZXJlbmNlIGZvciB0aGlzIHRyYW5zZmVyLlxuICAgICAgICovXG4gICAgICB0cmFuc2ZlcklkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIG9mIGBQT1NUIC92NS9hc3NldC90cmFuc2Zlci91bml2ZXJzYWwtdHJhbnNmZXJgLiAqL1xuICAgIEJ5Yml0VW5pdmVyc2FsVHJhbnNmZXJSZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVHJhbnNmZXIgc3RhdGU6IG9uZSBvZiBgU1VDQ0VTU2AsIGBQRU5ESU5HYCwgYEZBSUxFRGAsIG9yXG4gICAgICAgKiBgU1RBVFVTX1VOS05PV05gLlxuICAgICAgICovXG4gICAgICBzdGF0dXM/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVVVJRCBCeWJpdCBhc3NpZ25lZCB0byB0aGUgdHJhbnNmZXI7IHRoZSBjYWxsZXItc3VwcGxpZWQgYHRyYW5zZmVySWRgXG4gICAgICAgKiBlY2hvZWQgYmFjay5cbiAgICAgICAqL1xuICAgICAgdHJhbnNmZXJJZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgZW50cnkgaW4gW2BCeWJpdFF1ZXJ5V2l0aGRyYXdBZGRyZXNzUmVzcG9uc2U6OnJvd3NgXS4gKi9cbiAgICBCeWJpdFdpdGhkcmF3QWRkcmVzc0VudHJ5OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB3aGl0ZWxpc3RlZCBkZXN0aW5hdGlvbiBhZGRyZXNzLiAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWRkcmVzcyBjYXRlZ29yeTogYDBgIG9uLWNoYWluLCBgMWAgaW50ZXJuYWwgdHJhbnNmZXIsIGAyYCBib3RoLlxuICAgICAgICovXG4gICAgICBhZGRyZXNzVHlwZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFNob3J0IGNoYWluIGNvZGUgKGUuZy4gYEVUSGAsIGBUUlhgKS4gKi9cbiAgICAgIGNoYWluOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIENvaW4gc3ltYm9sLCB1cHBlcmNhc2UgKGUuZy4gYFVTRFRgKS4gKi9cbiAgICAgIGNvaW46IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ3JlYXRpb24gdGltZXN0YW1wLCBpbiBtaWxsaXNlY29uZHMgc2luY2UgZXBvY2ggKGFzIGEgc3RyaW5nKS4gKi9cbiAgICAgIGNyZWF0ZWRBdD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFVzZXItc3VwcGxpZWQgbGFiZWwgZm9yIHRoaXMgYWRkcmVzcy1ib29rIGVudHJ5LiAqL1xuICAgICAgcmVtYXJrPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIEVudHJ5IHN0YXRlOiBgMGAgbm9ybWFsLCBgMWAgbmV3bHkgYWRkZWQgKEJ5Yml0IGJsb2NrcyB3aXRoZHJhd2FscyB0b1xuICAgICAgICogaXQgZm9yIDI0IGhvdXJzKS5cbiAgICAgICAqL1xuICAgICAgc3RhdHVzPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1lbW8gLyB0YWcgZm9yIGNoYWlucyB0aGF0IHVzZSBvbmUgKGUuZy4gWFJQLCBFT1MpLiBFbXB0eSBmb3IgY2hhaW5zXG4gICAgICAgKiB0aGF0IGRvbid0LlxuICAgICAgICovXG4gICAgICB0YWc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgYWRkcmVzcyBoYXMgYmVlbiB2ZXJpZmllZDogYDBgIHVudmVyaWZpZWQsIGAxYCB2ZXJpZmllZC5cbiAgICAgICAqL1xuICAgICAgdmVyaWZpZWQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT25lIGVudHJ5IGluIFtgQnliaXRXaXRoZHJhd2Fsc1Jlc3BvbnNlOjpyb3dzYF0uICovXG4gICAgQnliaXRXaXRoZHJhd0VudHJ5OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdpdGhkcmF3YWwgYW1vdW50IGFzIGEgZGVjaW1hbCBzdHJpbmcuICovXG4gICAgICBhbW91bnQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU2hvcnQgY2hhaW4gY29kZSAoZS5nLiBgRVRIYCwgYFRSWGApLiAqL1xuICAgICAgY2hhaW46IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29pbiBzeW1ib2wsIHVwcGVyY2FzZSAoZS5nLiBgVVNEVGApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDcmVhdGlvbiB0aW1lc3RhbXAsIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaCAoYXMgYSBzdHJpbmcpLiAqL1xuICAgICAgY3JlYXRlVGltZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2l0aGRyYXdhbCBzdGF0ZSwgZS5nLiBgc3VjY2Vzc2AsIGBwZW5kaW5nYCwgYGZhaWxlZGAsIGBjYW5jZWxsZWRgLiBTZWVcbiAgICAgICAqIHRoZSBCeWJpdCBkb2NzIGZvciB0aGUgZnVsbCBzZXQsIHdoaWNoIGRlcGVuZHMgb24gYHdpdGhkcmF3X3R5cGVgLlxuICAgICAgICovXG4gICAgICBzdGF0dXM6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gTWVtbyAvIHRhZyBmb3IgY2hhaW5zIHRoYXQgdXNlIG9uZSAoZS5nLiBYUlAsIEVPUykuICovXG4gICAgICB0YWc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbjogYW4gb24tY2hhaW4gYWRkcmVzcywgb3IgYSBCeWJpdCBVSUQgZm9yIGludGVybmFsIHRyYW5zZmVycy4gKi9cbiAgICAgIHRvQWRkcmVzczogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT24tY2hhaW4gdHJhbnNhY3Rpb24gaGFzaDsgZW1wdHkgZm9yIGZhaWxlZC9jYW5jZWxsZWQgd2l0aGRyYXdhbHMgYW5kXG4gICAgICAgKiBmb3IgaW4tZmxpZ2h0IG9uLWNoYWluIHdpdGhkcmF3YWxzIGJlZm9yZSBicm9hZGNhc3QuXG4gICAgICAgKi9cbiAgICAgIHR4SWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaW1lc3RhbXAgb2YgdGhlIG1vc3QgcmVjZW50IHN0YXR1cyBjaGFuZ2UsIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaC4gKi9cbiAgICAgIHVwZGF0ZVRpbWU6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gTmV0d29yayAvIHByb2Nlc3NpbmcgZmVlIGNoYXJnZWQgZm9yIHRoZSB3aXRoZHJhd2FsLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgd2l0aGRyYXdGZWU6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQnliaXQtYXNzaWduZWQgd2l0aGRyYXdhbCBpZC4gKi9cbiAgICAgIHdpdGhkcmF3SWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFdpdGhkcmF3YWwgY2xhc3NpZmljYXRpb246IGAwYCBvbi1jaGFpbiwgYDFgIG9mZi1jaGFpbiAoaW50ZXJuYWwpLlxuICAgICAgICovXG4gICAgICB3aXRoZHJhd1R5cGU/OiBudW1iZXIgfCBudWxsO1xuICAgICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQnliaXQgUlBDIHZhcmlhbnRzIHdob3NlIHBheWxvYWQgc2NoZW1hIGlzXG4gICAgICogZGVyaXZlZCBmcm9tIGEgYCpSZXF1ZXN0YCBzdHJ1Y3QuIChgQnliaXRRdWVyeVVzZXJQYXJhbXNgIGFuZFxuICAgICAqIGBCeWJpdFF1ZXJ5U3ViTWVtYmVyc1BhcmFtc2AgaGF2ZSBubyBwZXItdmFyaWFudCBwYXlsb2FkIGFuZCBhcmUgZGVmaW5lZFxuICAgICAqIGRpcmVjdGx5IGJlbG93LilcbiAgICAgKi9cbiAgICBCeWJpdFdpdGhkcmF3UGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0V2l0aGRyYXdSZXF1ZXN0XCJdICYge1xuICAgICAgZHJ5UnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdERyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIFNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMuIElmIG9taXR0ZWQsIGRlZmF1bHRzIHRvIDEwMDAwLlxuICAgICAgICovXG4gICAgICByZWN2V2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYFBPU1QgL3Y1L2Fzc2V0L3dpdGhkcmF3L2NyZWF0ZWAuIE1hc3Rlci1vbmx5LiAqL1xuICAgIEJ5Yml0V2l0aGRyYXdSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTb3VyY2Ugd2FsbGV0IChgXCJGVU5EXCJgIG9yIGBcIlNQT1RcImApLiBEZWZhdWx0cyB0byBCeWJpdCdzIGFjY291bnQtbGV2ZWxcbiAgICAgICAqIGRlZmF1bHQgd2hlbiBvbWl0dGVkLlxuICAgICAgICovXG4gICAgICBhY2NvdW50VHlwZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERlc3RpbmF0aW9uIGFkZHJlc3MuIE11c3QgYWxyZWFkeSBiZSBpbiBCeWJpdCdzIGFkZHJlc3MgYm9vay4gKi9cbiAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW1vdW50IGFzIGEgZGVjaW1hbCBzdHJpbmcuIFNlbnQgdmVyYmF0aW0uICovXG4gICAgICBhbW91bnQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gTmV0d29yayBpZGVudGlmaWVyIChlLmcuIGBcIkVUSFwiYCwgYFwiVFJYXCJgKS4gUmVxdWlyZWQgYnkgQnliaXQuICovXG4gICAgICBjaGFpbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDb2luIHN5bWJvbCAoZS5nLiBgXCJVU0RUXCJgLCBgXCJCVENcImApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRm9yY2UtY2hhaW4gZmxhZzogYDBgIChkZWZhdWx0KSwgYDFgLCBvciBgMmAuIFNlZSBCeWJpdCBkb2NzLlxuICAgICAgICovXG4gICAgICBmb3JjZUNoYWluPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ2xpZW50LXN1cHBsaWVkIHJlcXVlc3QgaWQgKFVVSUQpLiBVc2VkIGJ5IEJ5Yml0IGZvciBpZGVtcG90ZW5jeS4gKi9cbiAgICAgIHJlcXVlc3RJZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZW1vIC8gdGFnIChlLmcuIGZvciBYUlAsIFhMTSkuICovXG4gICAgICB0YWc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gU2VydmVyLXN1cHBsaWVkIHRpbWVzdGFtcCAobXMgc2luY2UgZXBvY2gpLiBTZXQgYnkgdGhlIHNpZ25lciBqdXN0IGJlZm9yZVxuICAgICAgICogc2lnbmluZzsgY2xpZW50cyBsZWF2ZSB0aGlzIGBOb25lYCAoYmVjYXVzZSB0aGUgc2VydmVyIHdpbGwgaWdub3JlIGl0IGFueXdheSkuXG4gICAgICAgKi9cbiAgICAgIHRpbWVzdGFtcD86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIG9mIGBQT1NUIC92NS9hc3NldC93aXRoZHJhdy9jcmVhdGVgLiAqL1xuICAgIEJ5Yml0V2l0aGRyYXdSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCeWJpdC1hc3NpZ25lZCB3aXRoZHJhd2FsIGlkLiAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQnliaXQgUlBDIHZhcmlhbnRzIHdob3NlIHBheWxvYWQgc2NoZW1hIGlzXG4gICAgICogZGVyaXZlZCBmcm9tIGEgYCpSZXF1ZXN0YCBzdHJ1Y3QuIChgQnliaXRRdWVyeVVzZXJQYXJhbXNgIGFuZFxuICAgICAqIGBCeWJpdFF1ZXJ5U3ViTWVtYmVyc1BhcmFtc2AgaGF2ZSBubyBwZXItdmFyaWFudCBwYXlsb2FkIGFuZCBhcmUgZGVmaW5lZFxuICAgICAqIGRpcmVjdGx5IGJlbG93LilcbiAgICAgKi9cbiAgICBCeWJpdFdpdGhkcmF3YWxzUGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0V2l0aGRyYXdhbHNSZXF1ZXN0XCJdICYge1xuICAgICAgZHJ5UnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdERyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIFNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMuIElmIG9taXR0ZWQsIGRlZmF1bHRzIHRvIDEwMDAwLlxuICAgICAgICovXG4gICAgICByZWN2V2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYEdFVCAvdjUvYXNzZXQvd2l0aGRyYXcvcXVlcnktcmVjb3JkYC4gKi9cbiAgICBCeWJpdFdpdGhkcmF3YWxzUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgYnkgY29pbiBzeW1ib2wuICovXG4gICAgICBjb2luPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFBhZ2Ugc2l6ZS5cbiAgICAgICAqL1xuICAgICAgbGltaXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRmlsdGVyIGJ5IEJ5Yml0LWFzc2lnbmVkIHdpdGhkcmF3YWwgaWQgKHRoZSBgaWRgIHJldHVybmVkIGJ5XG4gICAgICAgKiBbYEJ5Yml0UnBjOjpXaXRoZHJhd2BdKS5cbiAgICAgICAqL1xuICAgICAgd2l0aGRyYXdJRD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIG9mIGBHRVQgL3Y1L2Fzc2V0L3dpdGhkcmF3L3F1ZXJ5LXJlY29yZGAuICovXG4gICAgQnliaXRXaXRoZHJhd2Fsc1Jlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcGFxdWUgY3Vyc29yIHRvIHBhc3MgYmFjayBhcyBgY3Vyc29yYCBvbiB0aGUgbmV4dCByZXF1ZXN0IHRvIGZldGNoXG4gICAgICAgKiB0aGUgbmV4dCBwYWdlOyBhYnNlbnQgb24gdGhlIGxhc3QgcGFnZS5cbiAgICAgICAqL1xuICAgICAgbmV4dFBhZ2VDdXJzb3I/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaXRoZHJhd2FsIHJlY29yZHMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LiAqL1xuICAgICAgcm93czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFdpdGhkcmF3RW50cnlcIl1bXTtcbiAgICB9O1xuICAgIENhbmNlbEludml0YXRpb25SZXF1ZXN0OiB7XG4gICAgICBlbWFpbDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbWFpbFwiXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgdGhlIFtgY3NfY2FuY2VsVHJhbnNhY3Rpb25gXShScGNNZXRob2Q6OkNhbmNlbFRyYW5zYWN0aW9uKSBtZXRob2QuICovXG4gICAgQ2FuY2VsVHJhbnNhY3Rpb25SZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB0cmFuc2FjdGlvbiBpZC4gKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU3VwcG9ydGVkIENhbnRvbiBlbnZpcm9ubWVudHMuXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBDYW50b25FbnZpcm9ubWVudDogXCJtYWlubmV0XCIgfCBcImRldm5ldFwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBDYW50b24gcGFydHkuICovXG4gICAgQ2FudG9uUGFydHlJbmZvOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIENhbnRvbiBwYXJ0eS5cbiAgICAgICAqIEBleGFtcGxlIEFsaWNlOjoxMjIwZjJmZTI5ODY2ZmQ2YTAwMDllY2M4YTY0Y2NkYzA5ZjE5NThiZDBmODAxMTY2YmFhZWU0NjlkMTI1MWIyZWI3MlxuICAgICAgICovXG4gICAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgICBjaGFpbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDYW50b25FbnZpcm9ubWVudFwiXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gRGVzY3JpYmVzIGhvdyB0byBkZXJpdmUgYSBXZWJBdXRobiBjaGFsbGVuZ2UgdmFsdWUuICovXG4gICAgQ2hhbGxlbmdlUGllY2VzOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGJhc2U2NHVybCBlbmNvZGluZyBvZiBVVEY4IEpTT04uIFRoZSBkYXRhIGluIHRoYXQgSlNPTiBpcyBlbmRwb2ludCBzcGVjaWZpYywgYW5kIGRlc2NyaWJlcyB3aGF0IHRoaXMgRklETyBjaGFsbGVuZ2Ugd2lsbCBiZSB1c2VkIGZvci5cbiAgICAgICAqXG4gICAgICAgKiBDbGllbnRzIGNhbiB1c2UgYHByZWltYWdlYCBhbG9uZyB3aXRoIGByYW5kb21fc2VlZGAgdG8gcmVjb25zdHJ1Y3QgdGhlIGNoYWxsZW5nZSBsaWtlIHNvOlxuICAgICAgICpcbiAgICAgICAqIGBjaGFsbGVuZ2UgPSBITUFDLVNIQTI1NihrZXk9cmFuZG9tX3NlZWQsIG1lc3NhZ2U9cHJlaW1hZ2UpYFxuICAgICAgICovXG4gICAgICBwcmVpbWFnZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIHJhbmRvbSBzZWVkIHRoYXQgcHJldmVudHMgcmVwbGF5IGF0dGFja3MgKi9cbiAgICAgIHJhbmRvbV9zZWVkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIENsaWVudCBpbmZvcm1hdGlvbiByZXByZXNlbnRpbmcgdGhlIG5hdHVyZSBvZiBmcm9udC1lbmQgaW4gW2BDbGllbnRTZXNzaW9uTWV0YWRhdGFgXSBhbmQgcmVmbGVjdGVkIGluIFtgU2Vzc2lvbk1ldGFkYXRhYF0uICovXG4gICAgQ2xpZW50UHJvZmlsZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWdlbnQvUHJvZHVjdCBuYW1lXG4gICAgICAgKiBAZXhhbXBsZSBNb3ppbGxhIEZpcmVmb3hcbiAgICAgICAqL1xuICAgICAgYWdlbnQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvZiB0aGUgZW5naW5lXG4gICAgICAgKiBAZXhhbXBsZSBHZWNrb1xuICAgICAgICovXG4gICAgICBlbmdpbmU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWdlbnQvcHJvZHVjdCB2ZXJzaW9uXG4gICAgICAgKiBAZXhhbXBsZSA0MS4yXG4gICAgICAgKi9cbiAgICAgIHZlcnNpb24/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNlc3Npb24gaW5mb3JtYXRpb24gc2VudCB0byB0aGUgY2xpZW50LlxuICAgICAqIFRoaXMgc3RydWN0IHdvcmtzIGluIHRhbmRlbSB3aXRoIGl0cyBzZXJ2ZXItc2lkZSBjb3VudGVycGFydCBbYFNlc3Npb25EYXRhYF0uXG4gICAgICovXG4gICAgQ2xpZW50U2Vzc2lvbkluZm86IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVG9rZW4gdG8gdXNlIGZvciBhdXRob3JpemF0aW9uLiAqL1xuICAgICAgYXV0aF90b2tlbjogc3RyaW5nO1xuICAgICAgYXV0aF90b2tlbl9leHA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIEVwb2NoIGF0IHdoaWNoIHRoZSB0b2tlbiB3YXMgbGFzdCByZWZyZXNoZWRcbiAgICAgICAqL1xuICAgICAgZXBvY2g6IG51bWJlcjtcbiAgICAgIGVwb2NoX3Rva2VuOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkIzMlwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVG9rZW4gdG8gdXNlIGZvciByZWZyZXNoaW5nIHRoZSBgKGF1dGgsIHJlZnJlc2gpYCB0b2tlbiBwYWlyICovXG4gICAgICByZWZyZXNoX3Rva2VuOiBzdHJpbmc7XG4gICAgICByZWZyZXNoX3Rva2VuX2V4cDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTZXNzaW9uIElEICovXG4gICAgICBzZXNzaW9uX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEF0dHJpYnV0ZXMgdGhhdCBhcmUgZXhwZWN0ZWQgdG8gYmUgcHJvdmlkZWQgYnkgdGhlIGNsaWVudCAqL1xuICAgIENsaWVudFNlc3Npb25NZXRhZGF0YToge1xuICAgICAgY2xpZW50PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDbGllbnRQcm9maWxlXCJdO1xuICAgICAgb3NfaW5mbz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3NJbmZvXCJdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgY29pbiBlbnRyeSBpbiBbYENvaW5JbmZvUmVzcG9uc2VgXS4gKi9cbiAgICBDb2luSW5mb0VudHJ5OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFzc2V0IHN5bWJvbCAoZS5nLiBgXCJCVENcImAsIGBcIlVTRFRcImApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIGRlcG9zaXRzIGFyZSBlbmFibGVkIG9uIGFueSBuZXR3b3JrIGZvciB0aGlzIGNvaW4uICovXG4gICAgICBkZXBvc2l0QWxsRW5hYmxlOiBib29sZWFuO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBdmFpbGFibGUgYmFsYW5jZSwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGZyZWU6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmFsYW5jZSBmcm96ZW4gYnkgQmluYW5jZSwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGZyZWV6ZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYWxhbmNlIGF2YWlsYWJsZSB0byBzdWJzY3JpYmUgdG8gYW4gSVBPLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgaXBvYWJsZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYWxhbmNlIHBlbmRpbmcgYW4gSVBPIHN1YnNjcmlwdGlvbiwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGlwb2luZzogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBgdHJ1ZWAgaWYgdGhlIGFzc2V0IHJlcHJlc2VudHMgYSBmaWF0IGN1cnJlbmN5LiAqL1xuICAgICAgaXNMZWdhbE1vbmV5OiBib29sZWFuO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYWxhbmNlIGxvY2tlZCBpbiBvcGVuIG9yZGVycywgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGxvY2tlZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIdW1hbi1yZWFkYWJsZSBuYW1lIChlLmcuIGBcIkJpdGNvaW5cImApLiAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgZW50cnkgcGVyIHN1cHBvcnRlZCBuZXR3b3JrIGZvciB0aGlzIGNvaW4uICovXG4gICAgICBuZXR3b3JrTGlzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb2luSW5mb05ldHdvcmtcIl1bXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmFsYW5jZSBoZWxkIGluIGxvbmctdGVybSBzdG9yYWdlLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgc3RvcmFnZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBgdHJ1ZWAgaWYgdGhlIGFzc2V0IGlzIGN1cnJlbnRseSB0cmFkYWJsZSBvbiBCaW5hbmNlLiAqL1xuICAgICAgdHJhZGluZzogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB3aXRoZHJhd2FscyBhcmUgZW5hYmxlZCBvbiBhbnkgbmV0d29yayBmb3IgdGhpcyBjb2luLiAqL1xuICAgICAgd2l0aGRyYXdBbGxFbmFibGU6IGJvb2xlYW47XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEJhbGFuY2UgY3VycmVudGx5IGJlaW5nIHdpdGhkcmF3biwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIHdpdGhkcmF3aW5nOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSBuZXR3b3JrIGVudHJ5IGluIFtgQ29pbkluZm9FbnRyeTo6bmV0d29ya19saXN0YF0uICovXG4gICAgQ29pbkluZm9OZXR3b3JrOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFJlZ2V4IGRlc2NyaWJpbmcgdGhlIGV4cGVjdGVkIGFkZHJlc3MgZm9ybWF0LiAqL1xuICAgICAgYWRkcmVzc1JlZ2V4Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gYHRydWVgIGlmIHRoZSBuZXR3b3JrIGlzIGN1cnJlbnRseSBidXN5LiAqL1xuICAgICAgYnVzeT86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBc3NldCBzeW1ib2wgb24gdGhpcyBuZXR3b3JrLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUd28tbGV0dGVyIGNvdW50cnkgY29kZSwgaWYgYXBwbGljYWJsZS4gKi9cbiAgICAgIGNvdW50cnk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBGcmVlLXRleHQgZGVwb3NpdCBkZXNjcmlwdGlvbi4gKi9cbiAgICAgIGRlcG9zaXREZXNjPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciBkZXBvc2l0cyBhcmUgZW5hYmxlZCBvbiB0aGlzIG5ldHdvcmsuICovXG4gICAgICBkZXBvc2l0RW5hYmxlOiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gRXN0aW1hdGVkIGFycml2YWwgdGltZSBpbiBtaW51dGVzLlxuICAgICAgICovXG4gICAgICBlc3RpbWF0ZWRBcnJpdmFsVGltZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBuZXR3b3JrIGZvciB0aGUgY29pbi4gKi9cbiAgICAgIGlzRGVmYXVsdDogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gUmVnZXggZGVzY3JpYmluZyB0aGUgZXhwZWN0ZWQgbWVtby90YWcgZm9ybWF0ICh3aGVuIGFwcGxpY2FibGUpLiAqL1xuICAgICAgbWVtb1JlZ2V4Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1pbmltdW0gbnVtYmVyIG9mIGNvbmZpcm1hdGlvbnMgYmVmb3JlIEJpbmFuY2UgY3JlZGl0cyBhIGRlcG9zaXQuXG4gICAgICAgKi9cbiAgICAgIG1pbkNvbmZpcm0/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIdW1hbi1yZWFkYWJsZSBuYW1lIChlLmcuIGBcIkJOQiBTbWFydCBDaGFpbiAoQkVQMjApXCJgKS4gKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gTmV0d29yayBpZGVudGlmaWVyIChlLmcuIGBcIkJTQ1wiYCwgYFwiRVRIXCJgKS4gKi9cbiAgICAgIG5ldHdvcms6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gYHRydWVgIGlmIHRoZSBkZXBvc2l0IGFkZHJlc3MgaXMgc2hhcmVkIGFjcm9zcyB1c2Vycy4gKi9cbiAgICAgIHNhbWVBZGRyZXNzPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZyZWUtdGV4dCBzcGVjaWFsIHRpcHMgZm9yIHVzZXJzLiAqL1xuICAgICAgc3BlY2lhbFRpcHM/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ29uZmlybWF0aW9ucyBhZnRlciB3aGljaCB0aGUgZGVwb3NpdCBpcyB1bmxvY2tlZCBmb3IgdHJhZGluZy5cbiAgICAgICAqL1xuICAgICAgdW5Mb2NrQ29uZmlybT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZyZWUtdGV4dCB3aXRoZHJhdyBkZXNjcmlwdGlvbi4gKi9cbiAgICAgIHdpdGhkcmF3RGVzYz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgd2l0aGRyYXdhbHMgYXJlIGVuYWJsZWQgb24gdGhpcyBuZXR3b3JrLiAqL1xuICAgICAgd2l0aGRyYXdFbmFibGU6IGJvb2xlYW47XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdpdGhkcmF3YWwgZmVlLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgd2l0aGRyYXdGZWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTdGVwIHNpemUgZm9yIHdpdGhkcmF3YWwgYW1vdW50cywgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIHdpdGhkcmF3SW50ZWdlck11bHRpcGxlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gTWluaW11bSBpbnRlcm5hbCB0cmFuc2ZlciBhbW91bnQgKi9cbiAgICAgIHdpdGhkcmF3SW50ZXJuYWxNaW4/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBNYXhpbXVtIHdpdGhkcmF3YWwgYW1vdW50LCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgd2l0aGRyYXdNYXg/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBNaW5pbXVtIHdpdGhkcmF3YWwgYW1vdW50LCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgd2l0aGRyYXdNaW4/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19iaW5hbmNlQ29pbkluZm9gLlxuICAgICAqXG4gICAgICogQmluYW5jZSByZXR1cm5zIGEgdG9wLWxldmVsIEpTT04gYXJyYXk7IHRoaXMgbmV3dHlwZSBwcmVzZXJ2ZXMgdGhhdCB3aXJlXG4gICAgICogZm9ybWF0IHdoaWxlIGdpdmluZyB0aGUgcmVzcG9uc2UgYSBuYW1lZCB0eXBlIGluIHRoZSBPcGVuQVBJIHNjaGVtYS5cbiAgICAgKi9cbiAgICBDb2luSW5mb1Jlc3BvbnNlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5JbmZvRW50cnlcIl1bXTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gT25lIGFjY291bnQgZW50cnkgaW4gW2BDb2luYmFzZUxpc3RBY2NvdW50c1Jlc3BvbnNlYF0uIENvaW5iYXNlJ3MgYWNjb3VudCBzY2hlbWEgaXNcbiAgICAgKiBmbGV4aWJsZTsgd2UgY2FwdHVyZSB0aGUgc3Vic2V0IG9mIGZpZWxkcyB0aGUgdHlwZWQgZW5kcG9pbnQgZXhwb3NlcyB0b2RheVxuICAgICAqIGFuZCBsZWF2ZSByb29tIHRvIGdyb3cuXG4gICAgICovXG4gICAgQ29pbmJhc2VBY2NvdW50OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIGFjY291bnQgaXMgY3VycmVudGx5IGFjdGl2ZS4gKi9cbiAgICAgIGFjdGl2ZTogYm9vbGVhbjtcbiAgICAgIGF2YWlsYWJsZV9iYWxhbmNlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5iYXNlQW1vdW50XCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBY2NvdW50IGNyZWF0aW9uIHRpbWUgKFJGQzMzMzkpLiAqL1xuICAgICAgY3JlYXRlZF9hdD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFzc2V0IHN5bWJvbCAoZS5nLiBgXCJCVENcImAsIGBcIlVTRFwiYCkuICovXG4gICAgICBjdXJyZW5jeTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoaXMgaXMgdGhlIHByaW1hcnkgYWNjb3VudCBmb3IgdGhlIGFzc2V0LiAqL1xuICAgICAgZGVmYXVsdDogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU29mdC1kZWxldGlvbiB0aW1lLCBpZiBhbnkgKFJGQzMzMzkpLiAqL1xuICAgICAgZGVsZXRlZF9hdD86IHN0cmluZyB8IG51bGw7XG4gICAgICBob2xkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb2luYmFzZUFtb3VudFwiXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEh1bWFuLXJlYWRhYmxlIG5hbWUgKGUuZy4gYFwiQlRDIFdhbGxldFwiYCkuICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFJlYWR5IGZsYWcgKGB0cnVlYCBhZnRlciBDb2luYmFzZSBoYXMgZmluaXNoZWQgb25ib2FyZGluZyB0aGUgYWNjb3VudCkuICovXG4gICAgICByZWFkeT86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVVUlEIG9mIHRoZSBwb3J0Zm9saW8gdGhpcyBhY2NvdW50IGJlbG9uZ3MgdG8uICovXG4gICAgICByZXRhaWxfcG9ydGZvbGlvX2lkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFjY291bnQgdHlwZSAoZS5nLiBgXCJBQ0NPVU5UX1RZUEVfQ1JZUFRPXCJgKS4gTGVmdCBhcyBhIHN0cmluZyBmb3JcbiAgICAgICAqIGZvcndhcmQgY29tcGF0aWJpbGl0eS5cbiAgICAgICAqL1xuICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBMYXN0IG1vZGlmaWNhdGlvbiB0aW1lIChSRkMzMzM5KS4gKi9cbiAgICAgIHVwZGF0ZWRfYXQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBY2NvdW50IFVVSUQuICovXG4gICAgICB1dWlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgYHsgdmFsdWUsIGN1cnJlbmN5IH1gIGFtb3VudCBwYWlyIHVzZWQgdGhyb3VnaG91dCBDb2luYmFzZSByZXNwb25zZXMuICovXG4gICAgQ29pbmJhc2VBbW91bnQ6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXNzZXQgc3ltYm9sIChlLmcuIGBcIlVTRFwiYCwgYFwiQlRDXCJgKS4gKi9cbiAgICAgIGN1cnJlbmN5OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBEZWNpbWFsLXN0cmluZyBhbW91bnQgKENvaW5iYXNlIHByZXNlcnZlcyBwcmVjaXNpb24gYnkgbm90IGNvbnZlcnRpbmdcbiAgICAgICAqIHRvIGZsb2F0cykuXG4gICAgICAgKi9cbiAgICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2lyZS1mb3JtYXQgcGF0Y2ggcGF5bG9hZCBmb3IgW2BLZXlQcm9wZXJ0aWVzOjpDb2luYmFzZUFwaWBdLlxuICAgICAqXG4gICAgICogRXZlcnkgZmllbGQgZm9sbG93cyB0aGUgc2FtZSBwZXItZmllbGQgUEFUQ0ggc2VtYW50aWNzOiBhIG1pc3NpbmcgZmllbGRcbiAgICAgKiBsZWF2ZXMgdGhlIGV4aXN0aW5nIHZhbHVlIGFsb25lLCBhIEpTT04gYG51bGxgIGNsZWFycyBpdCwgYW5kIGEgdmFsdWUgc2V0cyBpdC5cbiAgICAgKi9cbiAgICBDb2luYmFzZUFwaVByb3BlcnRpZXNQYXRjaDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWRlbnRpZmllciBvZiB0aGUgQ29pbmJhc2UgQVBJIGtleSB0aGlzIGtleSBhdXRoZW50aWNhdGVzIGFzLiBQbGFpblxuICAgICAgICogKG5vbi1zZWNyZXQpIHZhbHVlOyBhcHBlYXJzIGluIEpXVCBga2lkYC9gc3ViYCBjbGFpbXMuXG4gICAgICAgKi9cbiAgICAgIGFwaV9rZXlfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDb2luYmFzZSBwb3J0Zm9saW8gbmFtZS4gKi9cbiAgICAgIHBvcnRmb2xpb19uYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29pbmJhc2UgcG9ydGZvbGlvIFVVSUQuICovXG4gICAgICBwb3J0Zm9saW9fdXVpZD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICBDb2luYmFzZURyeVJ1bkFyZ3M6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIENvaW5iYXNlIEFQSSBtZXRob2QgdGhhdCB3b3VsZCBoYXZlIGJlZW4gdXNlZCAqL1xuICAgICAgbWV0aG9kOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBDb2luYmFzZSBBUEkgdXJsIG1ldGhvZCB0aGF0IHdvdWxkIGhhdmUgYmVlbiBjYWxsZWQgKi9cbiAgICAgIHVybDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERpZmZlcmVudCBcImRyeSBydW5cIiBtb2RlcyBmb3IgZXhlY3V0aW5nIENvaW5iYXNlIHJlcXVlc3RzLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgQ29pbmJhc2VEcnlSdW5Nb2RlOiBcIk5PX1NJR05cIiB8IFwiTk9fU1VCTUlUXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQ29pbmJhc2UgUlBDIG1ldGhvZHMuICovXG4gICAgQ29pbmJhc2VMaXN0QWNjb3VudHNQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTGlzdEFjY291bnRzUmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeV9ydW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5iYXNlRHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlfaWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19jb2luYmFzZUxpc3RBY2NvdW50c2AuICovXG4gICAgQ29pbmJhc2VMaXN0QWNjb3VudHNSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgZW50cnkgcGVyIHZpc2libGUgYWNjb3VudC4gKi9cbiAgICAgIGFjY291bnRzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5iYXNlQWNjb3VudFwiXVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQYWdpbmF0aW9uIGN1cnNvcjsgcGFzcyB0byBhIGZvbGxvdy11cCByZXF1ZXN0IHRvIGZldGNoIHRoZSBuZXh0IHBhZ2UuICovXG4gICAgICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBgdHJ1ZWAgaWYgdGhlcmUgYXJlIG1vcmUgYWNjb3VudHMgdG8gZmV0Y2ggd2l0aCBgY3Vyc29yYC4gKi9cbiAgICAgIGhhc19uZXh0OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIGVudHJpZXMgaW4gYGFjY291bnRzYC5cbiAgICAgICAqL1xuICAgICAgc2l6ZTogbnVtYmVyO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQ29pbmJhc2UgUlBDIG1ldGhvZHMuICovXG4gICAgQ29pbmJhc2VMaXN0UG9ydGZvbGlvc1BhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJMaXN0UG9ydGZvbGlvc1JlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlfcnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb2luYmFzZURyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5X2lkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCBieSBgY3NfY29pbmJhc2VMaXN0UG9ydGZvbGlvc2AuICovXG4gICAgQ29pbmJhc2VMaXN0UG9ydGZvbGlvc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSBlbnRyeSBwZXIgdmlzaWJsZSBwb3J0Zm9saW8uICovXG4gICAgICBwb3J0Zm9saW9zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5iYXNlUG9ydGZvbGlvXCJdW107XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBDb2luYmFzZSBSUEMgbWV0aG9kcy4gKi9cbiAgICBDb2luYmFzZU1vdmVGdW5kc1BhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNb3ZlRnVuZHNSZXF1ZXN0XCJdICYge1xuICAgICAgZHJ5X3J1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29pbmJhc2VEcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleV9pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgcmV0dXJuZWQgYnkgYGNzX2NvaW5iYXNlTW92ZUZ1bmRzYC4gKi9cbiAgICBDb2luYmFzZU1vdmVGdW5kc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEVjaG9lZCBzb3VyY2UgcG9ydGZvbGlvIFVVSUQuICovXG4gICAgICBzb3VyY2VfcG9ydGZvbGlvX3V1aWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRWNob2VkIHRhcmdldCBwb3J0Zm9saW8gVVVJRC4gKi9cbiAgICAgIHRhcmdldF9wb3J0Zm9saW9fdXVpZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgcG9ydGZvbGlvIGVudHJ5IGluIFtgQ29pbmJhc2VMaXN0UG9ydGZvbGlvc1Jlc3BvbnNlYF0uICovXG4gICAgQ29pbmJhc2VQb3J0Zm9saW86IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gYHRydWVgIGlmIHRoaXMgcG9ydGZvbGlvIGlzIGRlbGV0ZWQuICovXG4gICAgICBkZWxldGVkPzogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSHVtYW4tcmVhZGFibGUgbmFtZS4gKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFBvcnRmb2xpbyB0eXBlLCBlLmcuIGBcIkRFRkFVTFRcImAuIExlZnQgYXMgYFN0cmluZ2AgZm9yIGZvcndhcmRcbiAgICAgICAqIGNvbXBhdGliaWxpdHkuXG4gICAgICAgKi9cbiAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gUG9ydGZvbGlvIFVVSUQuICovXG4gICAgICB1dWlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29pbmJhc2UtZmFtaWx5IFJQQyBtZXRob2RzLiBFYWNoIHZhcmlhbnQgYXV0aGVudGljYXRlcyBhcyB0aGVcbiAgICAgKiBbYEtleVR5cGU6OkVkMjU1MTlDb2luYmFzZUFwaWBdIGtleSBpbiBpdHMgYHBhcmFtcy5rZXlfaWRgLlxuICAgICAqL1xuICAgIENvaW5iYXNlUnBjOiBPbmVPZjxcbiAgICAgIFtcbiAgICAgICAge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19jb2luYmFzZUxpc3RBY2NvdW50c1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb2luYmFzZUxpc3RBY2NvdW50c1BhcmFtc1wiXTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19jb2luYmFzZUxpc3RQb3J0Zm9saW9zXCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5iYXNlTGlzdFBvcnRmb2xpb3NQYXJhbXNcIl07XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtZXRob2Q6IFwiY3NfY29pbmJhc2VNb3ZlRnVuZHNcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29pbmJhc2VNb3ZlRnVuZHNQYXJhbXNcIl07XG4gICAgICAgIH0sXG4gICAgICBdXG4gICAgPjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IHRoZSB0eXBlZCBgY29pbmJhc2Vfc2lnbmAgZW5kcG9pbnQuICovXG4gICAgQ29pbmJhc2VTaWduUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc2lnbmVkIEpXVCwgcmVhZHkgdG8gYmUgc2VudCBpbiBgQXV0aG9yaXphdGlvbjogQmVhcmVyIDxqd3Q+YCB0b1xuICAgICAgICogdGhlIENvaW5iYXNlIEFkdmFuY2VkIFRyYWRlIEFQSS5cbiAgICAgICAqL1xuICAgICAgand0OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIENvbW1pc3Npb24gcmF0ZXMgYXMgZGVjaW1hbCBzdHJpbmdzIChlLmcuIGBcIjAuMDAxMDAwMDBcImApLiAqL1xuICAgIENvbW1pc3Npb25SYXRlczoge1xuICAgICAgYnV5ZXI6IHN0cmluZztcbiAgICAgIG1ha2VyOiBzdHJpbmc7XG4gICAgICBzZWxsZXI6IHN0cmluZztcbiAgICAgIHRha2VyOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRmllbGRzIHRoYXQgYXJlIGNvbW1vbiB0byBkaWZmZXJlbnQgdHlwZXMgb2YgcmVzb3VyY2VzIHN1Y2ggYXMga2V5cywgcm9sZXMsIGV0Yy5cbiAgICAgKiBJbmNsdWRlcyB2ZXJzaW9uaW5nIGZpZWxkcyBwbHVzIG1ldGFkYXRhLCBlZGl0IHBvbGljeSwgZXRjLlxuICAgICAqL1xuICAgIENvbW1vbkZpZWxkczoge1xuICAgICAgY3JlYXRlZD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXSB8IG51bGw7XG4gICAgICBsYXN0X21vZGlmaWVkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFZlcnNpb24gb2YgdGhpcyBvYmplY3RcbiAgICAgICAqL1xuICAgICAgdmVyc2lvbj86IG51bWJlcjtcbiAgICB9ICYge1xuICAgICAgZWRpdF9wb2xpY3k/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVkaXRQb2xpY3lcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBVc2VyLWRlZmluZWQgbWV0YWRhdGEuIFdoZW4gcmVuZGVyaW5nIChlLmcuLCBpbiB0aGUgYnJvd3NlcikgeW91IHNob3VsZCB0cmVhdFxuICAgICAgICogaXQgYXMgdW50cnVzdGVkIHVzZXIgZGF0YSAoYW5kIGF2b2lkIGluamVjdGluZyBtZXRhZGF0YSBpbnRvIEhUTUwgZGlyZWN0bHkpIGlmXG4gICAgICAgKiB1bnRydXN0ZWQgdXNlcnMgY2FuIGNyZWF0ZS91cGRhdGUga2V5cyAob3IgdGhlaXIgbWV0YWRhdGEpLlxuICAgICAgICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgfTtcbiAgICBDb21wbGV0ZU1mYVJlc2V0UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHJlc2V0IHRva2VuIGVtYWlsZWQgdG8gdGhlIHVzZXJcbiAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgKi9cbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBudW1iZXIgb2YgdXNlcnMgYW5kIGtleXMgaW4gYW4gb3JnLCBvcmdhbml6ZWQgYnkgdXNlciByb2xlIGFuZCBrZXkgdHlwZSAqL1xuICAgIENvbXB1dGVDb3VudHNSZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBtYXAgb2YgYSBgS2V5VHlwZWAgdG8gdGhlIGFtb3VudCBvZiBrZXlzIHdpdGggdGhhdCB0eXBlIGluIHRoZSBvcmcuXG4gICAgICAgKiBAZXhhbXBsZSB7XG4gICAgICAgKiAgIFwiU2VjcEJ0Y1wiOiAzLFxuICAgICAgICogICBcIlNlY3BFdGhBZGRyXCI6IDFcbiAgICAgICAqIH1cbiAgICAgICAqL1xuICAgICAga2V5czoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBudW1iZXI7XG4gICAgICB9O1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBtYXAgb2YgYSBgTWVtYmVyUm9sZWAgdG8gdGhlIGFtb3VudCBvZiBudW1iZXIgb2YgdXNlcnMgd2l0aCB0aGF0IHJvbGUgaW4gdGhlIG9yZy5cbiAgICAgICAqIEBleGFtcGxlIHtcbiAgICAgICAqICAgXCJNZW1iZXJcIjogMTAsXG4gICAgICAgKiAgIFwiT3duZXJcIjogMVxuICAgICAgICogfVxuICAgICAgICovXG4gICAgICB1c2Vyczoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBudW1iZXI7XG4gICAgICB9O1xuICAgIH07XG4gICAgQ29uZmlndXJlRW1haWxSZXF1ZXN0OiB7XG4gICAgICBhdXRoOiB7XG4gICAgICAgIHNtdHA6IHN0cmluZztcbiAgICAgIH07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBhZGRyZXNzIHRoYXQgZW1haWxzIHdpbGwgYmUgc2VudCBmcm9tICovXG4gICAgICBzZW5kZXI6IHN0cmluZztcbiAgICAgIHRlbXBsYXRlPzoge1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFuIEhUTUwgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgYm9keS4gKi9cbiAgICAgICAgYm9keV90ZW1wbGF0ZTogc3RyaW5nO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzdWJqZWN0IGxpbmUgdGVtcGxhdGUgKi9cbiAgICAgICAgc3ViamVjdF90ZW1wbGF0ZTogc3RyaW5nO1xuICAgICAgfSB8IG51bGw7XG4gICAgfTtcbiAgICBDb25maWd1cmVkTWZhOlxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgdHlwZTogXCJ0b3RwXCI7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVVVJRCBvZiB0aGUgZGV2aWNlIHR5cGUgKi9cbiAgICAgICAgICBhYWd1aWQ6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIENyZWF0aW9uIGRhdGVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBjcmVhdGVkX2F0OiBudW1iZXI7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoaXMga2V5IHdhcyByZXF1ZXN0ZWQgdG8gYmUgZGlzY292ZXJhYmxlLiAqL1xuICAgICAgICAgIGRpc2NvdmVyYWJsZTogYm9vbGVhbjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEEgdW5pcXVlIGNyZWRlbnRpYWwgaWQgKi9cbiAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gTGFzdCB1c2VkIGRhdGVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X3VzZWRfYXQ6IG51bWJlcjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcmVhZGFibGUgbmFtZSBnaXZlbiB0byB0aGUga2V5ICovXG4gICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIHR5cGU6IFwiZmlkb1wiO1xuICAgICAgICB9O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIENvbmZsaWN0RXJyb3JDb2RlOiBcIkNvbmN1cnJlbnRSZXF1ZXN0RGlzYWxsb3dlZFwiIHwgXCJDb25jdXJyZW50TG9ja0NyZWF0aW9uXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIGNvbnRhY3QgaW4gdGhlIG9yZy4gKi9cbiAgICBDb250YWN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbW1vbkZpZWxkc1wiXSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIExhYmVscyB0byBjYXRlZ29yaXplIHRoaXMgY29udGFjdC5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJjdWJpc3Q6ZXJjMjBfdG9rZW5cIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBsYWJlbHM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbnRhY3RMYWJlbFwiXVtdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5hbWUgZm9yIHRoZSBjb250YWN0LiBNdXN0IGJlIGEgdW5pcXVlIG5hbWUgYW1vbmcgY29udGFjdHMgaW4gdGhlXG4gICAgICAgKiBvcmcuIFRoZSBuYW1lIG11c3QgY29uc2lzdCBvZiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgc3BhY2VzLCBgLmAgYW5kIGAtYCxcbiAgICAgICAqIGFuZCBjYW5ub3QgYmUgbG9uZ2VyIHRoYW4gNTAgY2hhcmFjdGVycy5cbiAgICAgICAqIEBleGFtcGxlIFNhdG9zaGkgTmFrYW1vdG9cbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgb3duZXI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEFuIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIGEgY29udGFjdC4gKi9cbiAgICBDb250YWN0QWRkcmVzc0RhdGE6XG4gICAgICB8IChjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpdGNvaW5BZGRyZXNzSW5mb1wiXSAmIHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBuZXR3b3JrOiBcIkJpdGNvaW5cIjtcbiAgICAgICAgfSlcbiAgICAgIHwgKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXZtQWRkcmVzc0luZm9cIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbmV0d29yazogXCJFdm1cIjtcbiAgICAgICAgfSlcbiAgICAgIHwgKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3VpQWRkcmVzc0luZm9cIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbmV0d29yazogXCJTdWlcIjtcbiAgICAgICAgfSlcbiAgICAgIHwgKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU29sYW5hQWRkcmVzc0luZm9cIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbmV0d29yazogXCJTb2xhbmFcIjtcbiAgICAgICAgfSlcbiAgICAgIHwgKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2FudG9uUGFydHlJbmZvXCJdICYge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG5ldHdvcms6IFwiQ2FudG9uXCI7XG4gICAgICAgIH0pO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYSBDb250YWN0LiAqL1xuICAgIENvbnRhY3RJbmZvUmVzcG9uc2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29udGFjdFwiXSAmIHtcbiAgICAgIGFkZHJlc3NlczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBZGRyZXNzTWFwXCJdO1xuICAgICAgaWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGFiZWxzIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gYSBjb250YWN0LlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgQ29udGFjdExhYmVsOiBcImN1YmlzdDplcmMyMF90b2tlblwiIHwgXCJjdWJpc3Q6c3BsX3Rva2VuXCI7XG4gICAgQ3JlYXRlQW5kVXBkYXRlS2V5UHJvcGVydGllczoge1xuICAgICAgZWRpdF9wb2xpY3k/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVkaXRQb2xpY3lcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gU2V0IHRoaXMga2V5J3MgbWV0YWRhdGEuIElmIHRoaXMgdmFsdWUgaXMgYG51bGxgLCB0aGUgbWV0YWRhdGEgaXMgZXJhc2VkLiBJZiB0aGUgZmllbGQgaXNcbiAgICAgICAqIG1pc3NpbmcsIHRoZSBtZXRhZGF0YSByZW1haW5zIHVuY2hhbmdlZC5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gU3BlY2lmeSBhIHVzZXIgb3RoZXIgdGhhbiB0aGVtc2VsdmVzIHRvIGJlIHRoZSAocG90ZW50aWFsbHkgbmV3KSBvd25lciBvZiB0aGUga2V5LlxuICAgICAgICogVGhlIHNwZWNpZmllZCBvd25lciBtdXN0IGJlIGFuIGV4aXN0aW5nIHVzZXIgd2hvIGlzIGEgbWVtYmVyIG9mIHRoZSBzYW1lIG9yZy5cbiAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgKi9cbiAgICAgIG93bmVyPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFNldCB0aGlzIGtleSdzIHBvbGljaWVzLiBGb3IgYW4gZXhpc3Rpbmcga2V5LCB0aGlzIG92ZXJ3cml0ZXMgYWxsIGl0cyBwb2xpY2llcy5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJBbGxvd1Jhd0Jsb2JTaWduaW5nXCIsXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlJlcXVpcmVNZmFcIjoge1xuICAgICAgICogICAgICAgXCJjb3VudFwiOiAxXG4gICAgICAgKiAgICAgfVxuICAgICAgICogICB9XG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHBvbGljeT86IHVua25vd25bXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gY3JlYXRlIGEgQ29udGFjdC4gKi9cbiAgICBDcmVhdGVDb250YWN0UmVxdWVzdDoge1xuICAgICAgYWRkcmVzc2VzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBZGRyZXNzTWFwXCJdO1xuICAgICAgZWRpdF9wb2xpY3k/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVkaXRQb2xpY3lcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbGFiZWxzIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBjb250YWN0LlxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcImN1YmlzdDplcmMyMF90b2tlblwiXG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIGxhYmVscz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29udGFjdExhYmVsXCJdW107XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHVzZXItZGVmaW5lZCBtZXRhZGF0YSBhYm91dCB0aGUgY29udGFjdC4gKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBuYW1lIGZvciB0aGUgY29udGFjdC4gTXVzdCBiZSBhIHVuaXF1ZSBuYW1lIGFtb25nIGNvbnRhY3RzIGluIHRoZVxuICAgICAgICogb3JnLiBOYW1lIG11c3QgY29uc2lzdCBvZiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgc3BhY2VzLCBgLmAgYW5kIGAtYCxcbiAgICAgICAqIGFuZCBjYW5ub3QgYmUgbG9uZ2VyIHRoYW4gNTAgY2hhcmFjdGVycy5cbiAgICAgICAqIEBleGFtcGxlIFNhdG9zaGkgTmFrYW1vdG9cbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBjcmVhdGluZyBhbiBFVk0gdHJhbnNhY3Rpb24uICovXG4gICAgQ3JlYXRlRXZtVHJhbnNhY3Rpb25SZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZUV2bVRyYW5zZmVyUmVxdWVzdFwiXSAmIHtcbiAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgdHlwZTogXCJUcmFuc2ZlclwiO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBjcmVhdGluZyBhbiBFVk0gdHJhbnNmZXIuICovXG4gICAgQ3JlYXRlRXZtVHJhbnNmZXJSZXF1ZXN0OiB7XG4gICAgICB0b2tlbjogXCJDcmVhdGVFdm1UcmFuc2ZlclJlcXVlc3RcIjtcbiAgICB9ICYgT21pdDxjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkV2bVRva2VuXCJdLCBcInRva2VuXCI+ICZcbiAgICAgIGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXZtVHhDdXN0b21pemF0aW9uXCJdICYge1xuICAgICAgICAvKipcbiAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEVWTSBjaGFpbiBpZCB0aGlzIHRyYW5zYWN0aW9uIGlzIGZvci5cbiAgICAgICAgICovXG4gICAgICAgIGNoYWluX2lkOiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGFkZHJlc3MgdGhhdCB0aGUgYW1vdW50IHdpbGwgYmUgdHJhbnNmZXJyZWQgZnJvbS5cbiAgICAgICAgICpcbiAgICAgICAgICogTXVzdCBtYXRjaCB0aGUgbWF0ZXJpYWwgaWQgb2YgYSBrZXkgdGhlIHNlc3Npb24gY2FuIGFjY2Vzcy5cbiAgICAgICAgICovXG4gICAgICAgIGZyb206IHN0cmluZztcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYWRkcmVzcyB0aGF0IHRoZSBhbW91bnQgd2lsbCBiZSB0cmFuc2ZlcnJlZCB0by4gKi9cbiAgICAgICAgdG86IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgYW1vdW50IGJlaW5nIHRyYW5zZmVycmVkLCBhcyBhIGhleCB2YWx1ZS5cbiAgICAgICAgICpcbiAgICAgICAgICogVGhpcyB2YWx1ZSBzaG91bGQgYmUgaW4gV0VJIGZvciBuYXRpdmUgdHJhbnNmZXJzLCBhbmQgaW4gdGhlIHRva2VuJ3MgZGVub21pbmF0aW9uXG4gICAgICAgICAqIGZvciBFUkMtMjAgdHJhbnNmZXJzLlxuICAgICAgICAgKi9cbiAgICAgICAgdmFsdWU6IHN0cmluZztcbiAgICAgIH07XG4gICAgQ3JlYXRlS2V5SW1wb3J0S2V5UmVzcG9uc2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW1wb3J0S2V5XCJdICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQW4gYXR0ZXN0YXRpb24gZG9jdW1lbnQgZnJvbSBhIHNlY3VyZSBlbmNsYXZlLCBpbmNsdWRpbmcgYW5cbiAgICAgICAqIFJTQSBzaWduaW5nIGtleSB1c2VkIHRvIHNpZ24gdGhlIGNvbnRlbnRzIG9mIHRoaXMgbWVzc2FnZS5cbiAgICAgICAqL1xuICAgICAgZW5jbGF2ZV9hdHRlc3RhdGlvbjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQW4gUlNBLVBTUy1TSEEyNTYgc2lnbmF0dXJlIG9uIHRoZSBwdWJsaWMga2V5IGFuZCBlbmNyeXB0ZWRcbiAgICAgICAqIHNlY3JldHMgYXR0ZXN0aW5nIHRvIHRoZWlyIGdlbmVyYXRpb24gaW5zaWRlIGEgc2VjdXJlIGVuY2xhdmUuXG4gICAgICAgKi9cbiAgICAgIGVuY2xhdmVfc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgfTtcbiAgICBDcmVhdGVLZXlSZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZUFuZFVwZGF0ZUtleVByb3BlcnRpZXNcIl0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBDaGFpbiBpZCBmb3Igd2hpY2ggdGhlIGtleSBpcyBhbGxvd2VkIHRvIHNpZ24gbWVzc2FnZXNcbiAgICAgICAqIEBleGFtcGxlIDVcbiAgICAgICAqL1xuICAgICAgY2hhaW5faWQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIGtleXMgdG8gY3JlYXRlXG4gICAgICAgKiBAZXhhbXBsZSAxXG4gICAgICAgKi9cbiAgICAgIGNvdW50OiBudW1iZXI7XG4gICAgICBrZXlfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlUeXBlXCJdO1xuICAgIH07XG4gICAgQ3JlYXRlS2V5UmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGluZm8gYWJvdXQgdGhlIGNyZWF0ZWQga2V5cyAqL1xuICAgICAga2V5czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJbmZvXCJdW107XG4gICAgfTtcbiAgICBDcmVhdGVPcmdSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaHVtYW4gcmVhZGFibGUgbmFtZSBvZiB0aGUgbmV3IG9yZ2FuaXphdGlvblxuICAgICAgICogQGV4YW1wbGUgTXkgQ29vbCBPcmdcbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSByZXNwb25zZSB0byBbY3JlYXRlX2ltcG9ydF9rZXldIGNvbnRhaW5pbmcgdGhlIGdlbmVyYXRlZCBrZXkgYW5kIGVuY2xhdmVcbiAgICAgKiBhdHRlc3RhdGlvbnMuXG4gICAgICovXG4gICAgQ3JlYXRlUG9saWN5SW1wb3J0S2V5UmVzcG9uc2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW1wb3J0S2V5XCJdICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQW4gYXR0ZXN0YXRpb24gZG9jdW1lbnQgZnJvbSBhIHNlY3VyZSBlbmNsYXZlLCBpbmNsdWRpbmcgYW5cbiAgICAgICAqIFJTQSBzaWduaW5nIGtleSB1c2VkIHRvIHNpZ24gdGhlIGNvbnRlbnRzIG9mIHRoaXMgbWVzc2FnZS5cbiAgICAgICAqL1xuICAgICAgZW5jbGF2ZV9hdHRlc3RhdGlvbjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQW4gUlNBLVBTUy1TSEEyNTYgc2lnbmF0dXJlIG9uIHRoZSBwdWJsaWMga2V5IGFuZCBlbmNyeXB0ZWRcbiAgICAgICAqIHNlY3JldHMgYXR0ZXN0aW5nIHRvIHRoZWlyIGdlbmVyYXRpb24gaW5zaWRlIGEgc2VjdXJlIGVuY2xhdmUuXG4gICAgICAgKi9cbiAgICAgIGVuY2xhdmVfc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlcXVlc3QgZm9yIGNyZWF0aW5nIGEgbmFtZWQgcG9saWN5ICovXG4gICAgQ3JlYXRlUG9saWN5UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWNjZXNzLWNvbnRyb2wgZW50cmllcyBkZWZpbmluZyBob3cgdGhlIHBvbGljeSBjYW4gYmUgYWNjZXNzZWQsIG1vZGlmaWVkLFxuICAgICAgICogYXR0YWNoZWQgYW5kIGV4ZWN1dGVkLlxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJhY3Rpb25cIjogXCJhdHRhY2hcIixcbiAgICAgICAqICAgICBcInJlc291cmNlc1wiOiBbXG4gICAgICAgKiAgICAgICB7XG4gICAgICAgKiAgICAgICAgIFwia2V5X2lkXCI6IFwiKlwiLFxuICAgICAgICogICAgICAgICBcInJvbGVfaWRcIjogXCJSb2xlI2U0MjdjMjhhLTljNWItNDljYy1hMjU3LTg3OGFlYTU4YTIyY1wiXG4gICAgICAgKiAgICAgICB9XG4gICAgICAgKiAgICAgXSxcbiAgICAgICAqICAgICBcInN1YmplY3RzXCI6IFwiKlwiXG4gICAgICAgKiAgIH0sXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcImFjdGlvblwiOiBcInNpZ25cIixcbiAgICAgICAqICAgICBcInN1YmplY3RzXCI6IFwiUm9sZSNlNDI3YzI4YS05YzViLTQ5Y2MtYTI1Ny04NzhhZWE1OGEyMmNcIlxuICAgICAgICogICB9XG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIGFjbD86IHVua25vd25bXSB8IG51bGw7XG4gICAgICBlZGl0X3BvbGljeT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRWRpdFBvbGljeVwiXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBvbGljeSBuYW1lLlxuICAgICAgICogTXVzdCBiZSB1bmlxdWUgYW1vbmcgdGhlIG5hbWVkIHBvbGljaWVzIGluIHRoaXMgb3JnLiBEdXBsaWNhdGUgcG9saWN5IG5hbWVzXG4gICAgICAgKiB3aWxsIGJlIHJlamVjdGVkLlxuICAgICAgICogQGV4YW1wbGUgbXlfcG9saWN5XG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIHBvbGljeV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBvbGljeVR5cGVcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcG9saWN5IHJ1bGVzLlxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJSZXF1aXJlTWZhXCI6IHtcbiAgICAgICAqICAgICAgIFwiY291bnRcIjogMVxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBydWxlczogdW5rbm93bltdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBjcmVhdGUgcm9sZSByZXF1ZXN0IGJvZHkgKi9cbiAgICBDcmVhdGVSb2xlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcm9sZS5cbiAgICAgICAqIEBleGFtcGxlIG15X3JvbGVcbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbmV3bHkgY3JlYXRlZCByb2xlIGluZm9ybWF0aW9uICovXG4gICAgQ3JlYXRlUm9sZVJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSByb2xlLlxuICAgICAgICogQGV4YW1wbGUgbXlfcm9sZVxuICAgICAgICovXG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgbmV3bHkgY3JlYXRlZCByb2xlXG4gICAgICAgKiBAZXhhbXBsZSBSb2xlI2JmZTNlY2NiLTczMWUtNDMwZC1iMWU1LWFjMTM2M2U2YjA2YlxuICAgICAgICovXG4gICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBDcmVhdGVTZXNzaW9uUmVxdWVzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSYXRjaGV0Q29uZmlnXCJdICZcbiAgICAgIGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2xpZW50U2Vzc2lvbk1ldGFkYXRhXCJdICYge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEJ5IGRlZmF1bHQsIHRoZSByZXF1ZXN0ZWQgc2Vzc2lvbiBhbmQgYXV0aCBsaWZldGltZXMgYXJlIHRydW5jYXRlZCB0byBiZSBhdCBtb3N0IHJlcXVlc3RvcidzXG4gICAgICAgICAqIHNlc3Npb24gYW5kIGF1dGggbGlmZXRpbWUsIHJlc3BlY3RpdmVseS4gVG8gZXh0ZW5kIHRoZSByZXF1ZXN0ZWQgbGlmZXRpbWVzIHBhc3QgdGhlXG4gICAgICAgICAqIHJlcXVlc3RvcidzLCBzZXQgdGhpcyBwcm9wZXJ0eSB0byBgdHJ1ZWAgKGluIHdoaWNoIGNhc2UgTUZBIHdpbGwgYmUgcmVxdWlyZWQpLlxuICAgICAgICAgKi9cbiAgICAgICAgZXh0ZW5kX2xpZmV0aW1lcz86IGJvb2xlYW47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gQSBodW1hbiByZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgc2Vzc2lvbidzIHB1cnBvc2VcbiAgICAgICAgICogQGV4YW1wbGUgTWFuYWdlIGtleXMgb24gc2VydmVyIGZvby5iYXJcbiAgICAgICAgICovXG4gICAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBDb250cm9scyB3aGF0IGNhcGFiaWxpdGllcyB0aGlzIHNlc3Npb24gd2lsbCBoYXZlLlxuICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAqICAgXCJtYW5hZ2U6a2V5OipcIlxuICAgICAgICAgKiBdXG4gICAgICAgICAqL1xuICAgICAgICBzY29wZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2NvcGVcIl1bXTtcbiAgICAgIH07XG4gICAgQ3JlYXRlVG9rZW5SZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJhdGNoZXRDb25maWdcIl0gJlxuICAgICAgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDbGllbnRTZXNzaW9uTWV0YWRhdGFcIl0gJiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gQSBodW1hbiByZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgcHVycG9zZSBvZiB0aGUga2V5XG4gICAgICAgICAqIEBleGFtcGxlIFZhbGlkYXRvciBTaWduaW5nXG4gICAgICAgICAqL1xuICAgICAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gQ29udHJvbHMgd2hhdCBjYXBhYmlsaXRpZXMgdGhpcyBzZXNzaW9uIHdpbGwgaGF2ZS4gQnkgZGVmYXVsdCwgaXQgaGFzIGFsbFxuICAgICAgICAgKiBzaWduaW5nIGNhcGFiaWxpdGllcywgaS5lLiwganVzdCB0aGUgJ3NpZ246Kicgc2NvcGUuXG4gICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICogICBcInNpZ246KlwiXG4gICAgICAgICAqIF1cbiAgICAgICAgICovXG4gICAgICAgIHNjb3Blcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2NvcGVcIl1bXSB8IG51bGw7XG4gICAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgdGhlIFtgY3NfY3JlYXRlVHJhbnNhY3Rpb25gXShScGNNZXRob2Q6OkNyZWF0ZVRyYW5zYWN0aW9uKSBtZXRob2QuICovXG4gICAgQ3JlYXRlVHJhbnNhY3Rpb25SZXF1ZXN0OiB7XG4gICAgICB0eXBlOiBcIkNyZWF0ZVRyYW5zYWN0aW9uUmVxdWVzdFwiO1xuICAgIH0gJiBPbWl0PGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlRXZtVHJhbnNhY3Rpb25SZXF1ZXN0XCJdLCBcInR5cGVcIj4gJiB7XG4gICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICBjaGFpbjogXCJFdm1cIjtcbiAgICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFuIGV4dGVuZGVkIGZvcm0gb2YgYFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnNgIHRoYXQgYWxsb3dzIGNsaWVudHMgdG8gZGVyaXZlIHRoZSBXZWJBdXRobiBjaGFsbGVuZ2VcbiAgICAgKiBmcm9tIGEgc3RydWN0dXJlZCBwcmVpbWFnZS5cbiAgICAgKlxuICAgICAqIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSB3ZWJ1YXRobiBzaWduYXR1cmUgY2FuIG9ubHkgYmUgdXNlZCBmb3IgYSBzcGVjaWZpYyBwdXJwb3NlXG4gICAgICovXG4gICAgQ3JlYXRpb25PcHRpb25zV2l0aEhhc2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2hhbGxlbmdlUGllY2VzXCJdICYge1xuICAgICAgb3B0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zXCJdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBDb3JlIFJQQyBtZXRob2RzICh0cmFuc2FjdGlvbiBDUlVEKS4gKi9cbiAgICBDc1JwYzpcbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19jcmVhdGVUcmFuc2FjdGlvblwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDcmVhdGVUcmFuc2FjdGlvblJlcXVlc3RcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19yZXRyeVRyYW5zYWN0aW9uXCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJldHJ5VHJhbnNhY3Rpb25SZXF1ZXN0XCJdO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtZXRob2Q6IFwiY3NfY2FuY2VsVHJhbnNhY3Rpb25cIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2FuY2VsVHJhbnNhY3Rpb25SZXF1ZXN0XCJdO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtZXRob2Q6IFwiY3NfZ2V0VHJhbnNhY3Rpb25cIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiR2V0VHJhbnNhY3Rpb25SZXF1ZXN0XCJdO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtZXRob2Q6IFwiY3NfbGlzdFRyYW5zYWN0aW9uc1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJMaXN0VHJhbnNhY3Rpb25zUmVxdWVzdFwiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2J0Y0xpc3RVdHhvc1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCdGNMaXN0VXR4b3NSZXF1ZXN0XCJdO1xuICAgICAgICB9O1xuICAgIEN1YmVTaWduZXJVc2VySW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgbXVsdGktZmFjdG9yIGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgY29uZmlndXJlZCBmb3IgdGhpcyB1c2VyICovXG4gICAgICBjb25maWd1cmVkX21mYTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb25maWd1cmVkTWZhXCJdW107XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFNldCBvbmNlIHRoZSB1c2VyIHN1Y2Nlc3NmdWxseSBsb2dzIGludG8gQ3ViZVNpZ25lciAqL1xuICAgICAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGh1bWFuIG5hbWUgZm9yIHRoZSB1c2VyICovXG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ3ViZVNpZ25lcidzIHVzZXIgaWRlbnRpZmllciAqL1xuICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBDdXN0b20gY2hhaW4gUlBDIHJlcXVlc3QgKi9cbiAgICBDdXN0b21DaGFpblJwY1JlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSFRUUCBib2R5ICovXG4gICAgICBib2R5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIGNoYWluOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkN1c3RvbUNoYWluU2VsZWN0b3JcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEhUVFAgcmVsYXRpdmUgcGF0aCAqL1xuICAgICAgcGF0aDogc3RyaW5nO1xuICAgIH07XG4gICAgQ3VzdG9tQ2hhaW5ScGNSZXNwb25zZTogdW5rbm93bjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEN1c3RvbSBjaGFpbiBzZWxlY3RvciAqL1xuICAgIEN1c3RvbUNoYWluU2VsZWN0b3I6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRVZNIGNoYWluICovXG4gICAgICBFdm06IHtcbiAgICAgICAgLyoqIEBleGFtcGxlIDB4MDEgKi9cbiAgICAgICAgY2hhaW5faWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIGFib3V0IGFuIG9yZydzIGN1c3RvbSBjaGFpbnMuICovXG4gICAgQ3VzdG9tQ2hhaW5zRGF0YToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDdXN0b20gRVZNIGNoYWlucy4gKi9cbiAgICAgIGV2bTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFdm1DdXN0b21DaGFpblwiXVtdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgZGVwb3NpdCBlbnRyeSBpbiBbYERlcG9zaXRIaXN0b3J5UmVzcG9uc2VgXS4gKi9cbiAgICBEZXBvc2l0SGlzdG9yeUVudHJ5OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERlc3RpbmF0aW9uIGFkZHJlc3MgdGhlIGRlcG9zaXQgd2FzIHNlbnQgdG8uICovXG4gICAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTZWNvbmRhcnkgYWRkcmVzcyBpZGVudGlmaWVyIChlLmcuIG1lbW8gZm9yIFhSUCwgdGFnIGZvciBYTE0pLiBFbXB0eVxuICAgICAgICogc3RyaW5nIHdoZW4gdGhlIGFzc2V0IGRvZXMgbm90IHVzZSBvbmUuXG4gICAgICAgKi9cbiAgICAgIGFkZHJlc3NUYWc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXBvc2l0IGFtb3VudCwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGFtb3VudDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBc3NldCBzeW1ib2wgKGUuZy4gYFwiVVNEVFwiYCwgYFwiQlRDXCJgKS4gKi9cbiAgICAgIGNvaW46IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgZGVwb3NpdCBjb21wbGV0aW9uIGRhdGV0aW1lLCBhdmFpbGFibGUgZm9yIGRlcG9zaXRzIGFmdGVyIDYtTWFyLTIwMjUuXG4gICAgICAgKi9cbiAgICAgIGNvbXBsZXRlVGltZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9uLWNoYWluIGNvbmZpcm1hdGlvbiBwcm9ncmVzcyAoZS5nLiBgXCIxLzFcImApLiAqL1xuICAgICAgY29uZmlybVRpbWVzPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmluYW5jZS1hc3NpZ25lZCBkZXBvc2l0IGlkLiAqL1xuICAgICAgaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGltZSB0aGUgZGVwb3NpdCByZWNvcmQgd2FzIGNyZWF0ZWQgKG1zIHNpbmNlIGVwb2NoKS5cbiAgICAgICAqL1xuICAgICAgaW5zZXJ0VGltZTogbnVtYmVyO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCbG9ja2NoYWluIG5ldHdvcmsgaWRlbnRpZmllciAoZS5nLiBgXCJCU0NcImAsIGBcIkVUSFwiYCkuICovXG4gICAgICBuZXR3b3JrOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFJldHVybmVkIHdoZW4gJ2luY2x1ZGVTb3VyY2UnIGluIHRoZSByZXF1ZXN0IGlzIHNldCB0byB0cnVlICovXG4gICAgICBzb3VyY2VBZGRyZXNzPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIERlcG9zaXQgc3RhdHVzLiBCaW5hbmNlIHZhbHVlczogYDBgID0gcGVuZGluZywgYDZgID0gY3JlZGl0ZWQgYnV0XG4gICAgICAgKiBjYW5ub3Qgd2l0aGRyYXcsIGA3YCA9IHdyb25nIGRlcG9zaXQsIGA4YCA9IHdhaXRpbmcgdXNlciBjb25maXJtLFxuICAgICAgICogYDFgID0gc3VjY2Vzcy4gTGVmdCBhcyBgdThgIGZvciBmb3J3YXJkIGNvbXBhdGliaWxpdHkuXG4gICAgICAgKi9cbiAgICAgIHN0YXR1czogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gYDBgID0gZXh0ZXJuYWwgdHJhbnNmZXIsIGAxYCA9IGludGVybmFsIChCaW5hbmNl4oaUQmluYW5jZSkgdHJhbnNmZXIuXG4gICAgICAgKi9cbiAgICAgIHRyYW5zZmVyVHlwZTogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gMDogdHJhdmVsIHJ1bGUgbm90IHJlcXVpcmVkIE9SIGluZm8gYWxyZWFkeSBwcm92aWRlZCBhbmQgZnVuZHMgcmVhZHkgdG8gdXNlO1xuICAgICAgICogMTogdHJhdmVsIHJ1bGUgcmVxdWlyZWQgdG8gcHJvdmlkZSBkZXBvc2l0IGluZm9cbiAgICAgICAqL1xuICAgICAgdHJhdmVsUnVsZVN0YXR1czogbnVtYmVyO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPbi1jaGFpbiB0cmFuc2FjdGlvbiBoYXNoIG9mIHRoZSBkZXBvc2l0LiAqL1xuICAgICAgdHhJZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ29uZmlybWF0aW9ucyBhZnRlciB3aGljaCB0aGUgZGVwb3NpdCBpcyB1bmxvY2tlZCBmb3IgdHJhZGluZy5cbiAgICAgICAqL1xuICAgICAgdW5sb2NrQ29uZmlybT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiB3YWxsZXQ6IGAwYCA9IHNwb3Qgd2FsbGV0LCBgMWAgPSBmdW5kaW5nIHdhbGxldC5cbiAgICAgICAqL1xuICAgICAgd2FsbGV0VHlwZTogbnVtYmVyO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIGBHRVQgL3NhcGkvdjEvY2FwaXRhbC9kZXBvc2l0L2hpc3JlY2AuXG4gICAgICpcbiAgICAgKiBSZXR1cm5zIHRoZSBjYWxsaW5nIGFjY291bnQncyBkZXBvc2l0IGhpc3RvcnkuIEFsbCBmaWx0ZXJzIGFyZSBvcHRpb25hbDtcbiAgICAgKiBpZiBgc3RhcnRfdGltZWAvYGVuZF90aW1lYCBhcmUgb21pdHRlZCwgQmluYW5jZSByZXR1cm5zIHRoZSBtb3N0IHJlY2VudCA5MFxuICAgICAqIGRheXMuIFVzZSBgdHhfaWRgIHRvIGxvb2sgdXAgYSBzcGVjaWZpYyBkZXBvc2l0IGJ5IGl0cyBvbi1jaGFpblxuICAgICAqIHRyYW5zYWN0aW9uIGhhc2gsIG9yIGBjb2luYC9gc3RhdHVzYCB0byBuYXJyb3cgdGhlIHJlc3VsdCBzZXQuXG4gICAgICovXG4gICAgRGVwb3NpdEhpc3RvcnlSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZpbHRlciB0byBhIHNwZWNpZmljIGFzc2V0IChlLmcuIGBcIlVTRFRcImAsIGBcIkJUQ1wiYCkuICovXG4gICAgICBjb2luPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFdpbmRvdyBlbmQgKG1zIHNpbmNlIGVwb2NoLCBCaW5hbmNlIGRlZmF1bHQ6IHByZXNlbnQgdGltZXN0YW1wKS5cbiAgICAgICAqL1xuICAgICAgZW5kVGltZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBgdHJ1ZWAsIGluY2x1ZGUgdGhlIGRlcG9zaXQncyBzb3VyY2UgYWRkcmVzcyBpbiBlYWNoIGVudHJ5LiBCaW5hbmNlXG4gICAgICAgKiBkZWZhdWx0cyB0byBgZmFsc2VgLlxuICAgICAgICovXG4gICAgICBpbmNsdWRlU291cmNlPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQYWdlIHNpemUgKEJpbmFuY2UgZGVmYXVsdCBhbmQgbWF4OiAxMDAwKS5cbiAgICAgICAqL1xuICAgICAgbGltaXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUGFnaW5hdGlvbiBvZmZzZXQgKEJpbmFuY2UgZGVmYXVsdDogMCkuXG4gICAgICAgKi9cbiAgICAgIG9mZnNldD86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXaW5kb3cgc3RhcnQgKG1zIHNpbmNlIGVwb2NoLCBCaW5hbmNlIGRlZmF1bHQ6IDkwIGRheXMgZnJvbSBjdXJyZW50IHRpbWVzdGFtcCkuXG4gICAgICAgKi9cbiAgICAgIHN0YXJ0VGltZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgYnkgZGVwb3NpdCBzdGF0dXMuIEJpbmFuY2UgdmFsdWVzOiBgMGAgPSBwZW5kaW5nLCBgNmAgPSBjcmVkaXRlZFxuICAgICAgICogYnV0IGNhbm5vdCB3aXRoZHJhdywgYDdgID0gd3JvbmcgZGVwb3NpdCwgYDhgID0gd2FpdGluZyB1c2VyIGNvbmZpcm0sXG4gICAgICAgKiBgMWAgPSBzdWNjZXNzLCBgMmAgPSByZWplY3RlZC4gTGVmdCBhcyBgdThgIGZvciBmb3J3YXJkIGNvbXBhdGliaWxpdHkuXG4gICAgICAgKi9cbiAgICAgIHN0YXR1cz86IG51bWJlciB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIExvb2sgdXAgYSBzcGVjaWZpYyBkZXBvc2l0IGJ5IGl0cyBvbi1jaGFpbiB0cmFuc2FjdGlvbiBoYXNoLiAqL1xuICAgICAgdHhJZD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgcmV0dXJuZWQgYnkgYGNzX2JpbmFuY2VEZXBvc2l0SGlzdG9yeWAuXG4gICAgICpcbiAgICAgKiBCaW5hbmNlIHJldHVybnMgYSB0b3AtbGV2ZWwgSlNPTiBhcnJheTsgdGhpcyBuZXd0eXBlIHByZXNlcnZlcyB0aGF0IHdpcmVcbiAgICAgKiBmb3JtYXQgd2hpbGUgZ2l2aW5nIHRoZSByZXNwb25zZSBhIG5hbWVkIHR5cGUgaW4gdGhlIE9wZW5BUEkgc2NoZW1hLlxuICAgICAqL1xuICAgIERlcG9zaXRIaXN0b3J5UmVzcG9uc2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRGVwb3NpdEhpc3RvcnlFbnRyeVwiXVtdO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgR0VUIC9zYXBpL3YxL2NhcGl0YWwvZGVwb3NpdC9hZGRyZXNzYC5cbiAgICAgKlxuICAgICAqIEZldGNoZXMgdGhlIGRlcG9zaXQgYWRkcmVzcyBmb3IgYGNvaW5gIG9uIHRoZSBhY2NvdW50IHRoYXQgdGhlIHNpZ25pbmcga2V5XG4gICAgICogYXV0aGVudGljYXRlcyBhcy4gT3B0aW9uYWxseSBuYXJyb3dzIHRoZSBhZGRyZXNzIHRvIGEgc3BlY2lmaWMgYG5ldHdvcmtgLlxuICAgICAqL1xuICAgIERlcG9zaXRSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1aXJlZCBvbmx5IHdoZW4gYG5ldHdvcmtgIGlzIGBcIkxJR0hUTklOR1wiYDogdGhlIGRlcG9zaXQgYW1vdW50IHRoYXRcbiAgICAgICAqIHRoZSByZXR1cm5lZCBpbnZvaWNlIHNob3VsZCBlbmNvZGUsIGFzIGEgZGVjaW1hbCBzdHJpbmcuXG4gICAgICAgKi9cbiAgICAgIGFtb3VudD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBhc3NldCBzeW1ib2wgd2hvc2UgZGVwb3NpdCBhZGRyZXNzIHRvIGZldGNoIChlLmcuIGBcIlVTRFRcImAsIGBcIkJUQ1wiYCkuICovXG4gICAgICBjb2luOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOZXR3b3JrIGlkZW50aWZpZXIgKGUuZy4gYFwiQlNDXCJgLCBgXCJFVEhcImApLiBJZiBvbWl0dGVkLCBCaW5hbmNlIHJldHVybnNcbiAgICAgICAqIHRoZSBhZGRyZXNzIG9uIHRoZSBhc3NldCdzIGRlZmF1bHQgbmV0d29yay5cbiAgICAgICAqL1xuICAgICAgbmV0d29yaz86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19iaW5hbmNlRGVwb3NpdGAuICovXG4gICAgRGVwb3NpdFJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERlcG9zaXQgYWRkcmVzcy4gKi9cbiAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXNzZXQgc3ltYm9sIChlY2hvZXMgdGhlIHJlcXVlc3QncyBgY29pbmAgZmllbGQpLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gU2Vjb25kYXJ5IGFkZHJlc3MgaWRlbnRpZmllciByZXF1aXJlZCBieSBzb21lIGFzc2V0cyAoZS5nLiBtZW1vIGZvclxuICAgICAgICogWFJQLCB0YWcgZm9yIFhMTSkuIEVtcHR5IHN0cmluZyB3aGVuIHRoZSBhc3NldCBkb2VzIG5vdCB1c2Ugb25lLlxuICAgICAgICovXG4gICAgICB0YWc6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmxvY2tjaGFpbiBleHBsb3JlciBVUkwgZm9yIGBhZGRyZXNzYC4gKi9cbiAgICAgIHVybDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIHByb2R1Y2VkIGJ5IGEgc3VjY2Vzc2Z1bCBkZXBvc2l0XG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJjaGFpbl9pZFwiOiA1LFxuICAgICAqICAgXCJkZXBvc2l0X3R4blwiOiB7XG4gICAgICogICAgIFwiZGF0YVwiOiBcIjB4Li4uXCIsXG4gICAgICogICAgIFwidG9cIjogXCIweGZmNTBlZDNkMGVjMDNhYzAxZDRjNzlhYWQ3NDkyOGJmZjQ4YTdiMmJcIixcbiAgICAgKiAgICAgXCJ2YWx1ZVwiOiBcIjB4MWJjMTZkNjc0ZWM4MDAwMDBcIlxuICAgICAqICAgfSxcbiAgICAgKiAgIFwibmV3X3ZhbGlkYXRvcl9wa1wiOiBcIjk3MDBmYmI4YzkwNjk0MjQ0MmMyYTViM2FkNzQ5OGYyN2FlZGRhMjUzNzg2YTZmYmFhOGZlZjQ3ZmI3YWYyMzRlNTBjZjJjY2U4MTVhNTUzMDg3OTkyYWU1NjVkNDhkYVwiXG4gICAgICogfVxuICAgICAqL1xuICAgIERlcG9zaXRUeG46IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIENoYWluIElEIGZvciB3aGljaCB0aGUgZGVwb3NpdCB0cmFuc2FjdGlvbiB3YXMgY3JlYXRlZFxuICAgICAgICovXG4gICAgICBjaGFpbl9pZDogbnVtYmVyO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZGVwb3NpdCB0cmFuc2FjdGlvbi4gSW5jbHVkZXMgb25seSBgdG9gLCBgdmFsdWVgLCBhbmQgYGRhdGFgIGZpZWxkcy4gKi9cbiAgICAgIGRlcG9zaXRfdHhuOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBoZXgtZW5jb2RlZCBjb21wcmVzc2VkIGZvcm0gb2YgdGhlIG5ldyB2YWxpZGF0b3IgQkxTIHB1YmxpYyBrZXkgKi9cbiAgICAgIG5ld192YWxpZGF0b3JfcGs6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdHlwZSBvZiBkZXBvc2l0IHRvIHBlcmZvcm1cbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIERlcG9zaXRUeXBlOiBcIkNhbm9uaWNhbFwiIHwgXCJXcmFwcGVyXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IHRvIGRlcml2ZSBrZXlzIGZvciBvbmUgdHlwZSBmcm9tIGEgc3BlY2lmaWVkIG1uZW1vbmljLiAqL1xuICAgIERlcml2ZUtleVJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlQW5kVXBkYXRlS2V5UHJvcGVydGllc1wiXSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIExpc3Qgb2YgZGVyaXZhdGlvbiBwYXRocyBmb3Igd2hpY2ggdG8gZGVyaXZlLlxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcIm0vNDQnLzYwJy8wJy8wLzBcIixcbiAgICAgICAqICAgXCJtLzQ0Jy85MDAwJy8wJy8wLzBcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBkZXJpdmF0aW9uX3BhdGg6IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2hlbiBmYWxzZSAodGhlIGRlZmF1bHQpLCBub3RoaW5nIGlzIHJldHVybmVkIHdoZW4gYSBkZXJpdmVkIGtleSBhbHJlYWR5XG4gICAgICAgKiBleGlzdHMuIFdoZW4gdHJ1ZSwgcmV0dXJucyB0aGUgS2V5SW5mbyBzdHJ1Y3QgZm9yIGtleXMgdGhhdCBhbHJlYWR5IGV4aXN0XG4gICAgICAgKiBpZiBjYWxsZXIgaXMgYWxsb3dlZCB0byBsaXN0IHRoYXQga2V5LlxuICAgICAgICovXG4gICAgICBpZGVtcG90ZW50PzogYm9vbGVhbjtcbiAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXRlcmlhbC1pZCBvZiB0aGUgbW5lbW9uaWMgdG8gdXNlIGZvciBkZXJpdmF0aW9uLlxuICAgICAgICogQGV4YW1wbGUgMHg5ZjA3YmU4MmQ5MzRmY2I1ZDBmNzVkZDI0YzJkZmVhOGE4NWE0ZDBjMjg5ZDU4ODI4YjM1MzdmYWUyNGQzMmI4XG4gICAgICAgKi9cbiAgICAgIG1uZW1vbmljX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlcXVlc3QgdG8gZGVyaXZlIGtleXMgZm9yIG11bHRpcGxlIHR5cGVzIGZyb20gYSBzcGVjaWZpZWQgbW5lbW9uaWMuICovXG4gICAgRGVyaXZlS2V5c1JlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlQW5kVXBkYXRlS2V5UHJvcGVydGllc1wiXSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFdoZW4gZmFsc2UgKHRoZSBkZWZhdWx0KSwgbm90aGluZyBpcyByZXR1cm5lZCB3aGVuIGEgZGVyaXZlZCBrZXkgYWxyZWFkeVxuICAgICAgICogZXhpc3RzLiBXaGVuIHRydWUsIHJldHVybnMgdGhlIEtleUluZm8gc3RydWN0IGZvciBrZXlzIHRoYXQgYWxyZWFkeSBleGlzdFxuICAgICAgICogaWYgY2FsbGVyIGlzIGFsbG93ZWQgdG8gbGlzdCB0aGF0IGtleS5cbiAgICAgICAqL1xuICAgICAgaWRlbXBvdGVudD86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBLZXkgdHlwZXMgYW5kIGNvcnJlc3BvbmRpbmcgcGF0aHMgZm9yIGRlcml2YXRpb24sIHBsdXMgb3B0aW9uYWxcbiAgICAgICAqIHBvbGljaWVzIHRvIGluY2x1ZGUgZm9yIHNwZWNpZmljIGtleXMuIEl0IGlzIGFuIGVycm9yIHRvIHNwZWNpZnlcbiAgICAgICAqIGEgcG9saWN5IHRoYXQgZG9lcyBub3QgYXBwbHkgdG8gdGhlIGNvcnJlc3BvbmRpbmcga2V5IHR5cGUuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcImRlcml2YXRpb25fcGF0aFwiOiBcIm0vNDQnLzYwJy8wJy8wLzBcIixcbiAgICAgICAqICAgICBcImtleV90eXBlXCI6IFwiU2VjcEV0aEFkZHJcIlxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJkZXJpdmF0aW9uX3BhdGhcIjogXCJtLzExJy8yMicvMzNcIixcbiAgICAgICAqICAgICBcImtleV90eXBlXCI6IFwiVGFwcm9vdEJ0Y1wiLFxuICAgICAgICogICAgIFwicG9saWN5XCI6IFtcbiAgICAgICAqICAgICAgIFwiQWxsb3dSYXdCbG9iU2lnbmluZ1wiXG4gICAgICAgKiAgICAgXVxuICAgICAgICogICB9XG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIGtleV90eXBlc19hbmRfZGVyaXZhdGlvbl9wYXRoczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlUeXBlQW5kRGVyaXZhdGlvblBhdGhcIl1bXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1hdGVyaWFsLWlkIG9mIHRoZSBtbmVtb25pYyB0byB1c2UgZm9yIGRlcml2YXRpb24uIElmIHVuc3BlY2lmaWVkLFxuICAgICAgICogYSBuZXcgbW5lbW9uaWMgaXMgZmlyc3QgY3JlYXRlZC5cbiAgICAgICAqIEBleGFtcGxlIDB4OWYwN2JlODJkOTM0ZmNiNWQwZjc1ZGQyNGMyZGZlYThhODVhNGQwYzI4OWQ1ODgyOGIzNTM3ZmFlMjRkMzJiOFxuICAgICAgICovXG4gICAgICBtbmVtb25pY19pZD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICBEaWZmaWVIZWxsbWFuUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc2V0IG9mIHNlcmlhbGl6ZWQgZWxsaXB0aWMgY3VydmUgcG9pbnRzIGZyb20gd2hpY2ggdG8gY29tcHV0ZSBzaGFyZWQgc2VjcmV0cy5cbiAgICAgICAqIFRoZSBzZXJpYWxpemF0aW9uIGZvcm1hdCBvZiB0aGVzZSBwb2ludHMgZGVwZW5kcyBvbiB0aGUga2V5IHR5cGU7IHNlZSB0aGUgQ3ViZVNpZ25lclxuICAgICAgICogZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICAgICAqL1xuICAgICAgcG9pbnRzOiBzdHJpbmdbXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFuIG9wdGlvbmFsIE5JU1QgUC0yNTYgcHVibGljIGtleSAoYmFzZTY0LWVuY29kZWQgU0VDMSB3aXRoIG9yIHdpdGhvdXQgY29tcHJlc3Npb24pLlxuICAgICAgICpcbiAgICAgICAqIElmIHByb3ZpZGVkLCB0aGUgcmVzcG9uc2Ugd2lsbCBiZSBlbmNyeXB0ZWQgdG8gdGhpcyBwdWJsaWMga2V5IHVzaW5nIFJGQzkxODBcbiAgICAgICAqIEhQS0UtREhLRU0oUC0yNTYsIEhLREYtU0hBMjU2KSB3aXRoIEFFUy0yNTYtR0NNIGFzIHRoZSBzeW1tZXRyaWMgY2lwaGVyLlxuICAgICAgICpcbiAgICAgICAqIElmIG5vIHB1YmxpYyBrZXkgaXMgc3BlY2lmaWVkLCB0aGUgcmVzdWx0cyB3aWxsIGJlIHJldHVybmVkIHVuZW5jcnlwdGVkLiBJbiB0aGlzXG4gICAgICAgKiBjYXNlLCB0aGUgaW5wdXQgcG9pbnRzIHNob3VsZCBiZSBtYXNrZWQgd2l0aCBhIHJhbmRvbSBzY2FsYXIgdG8gYXZvaWQgbGVha2luZyB0aGVcbiAgICAgICAqIHNoYXJlZCBzZWNyZXQgaW4gdGhlIHJlc3BvbnNlOyB0aGUgcmVzdWx0cyBjYW4gYmUgdW5tYXNrZWQgdmlhIHBvaW50IG11bHRpcGxpY2F0aW9uXG4gICAgICAgKiB3aXRoIHRoZSBpbnZlcnNlIG9mIHRoZSBtYXNraW5nIHNjYWxhci5cbiAgICAgICAqIEBleGFtcGxlIEFrcExULzNkWEFwSnpYU2R1YVBRN2FweVQwQURCd3FrdDFlcy9hVDBpV1dmXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzdWx0IG9mIGEgRGlmZmllIEhlbGxtYW4ga2V5IGV4Y2hhbmdlICovXG4gICAgRGlmZmllSGVsbG1hblJlc3BvbnNlOiAoXG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXN1bHRpbmcgcG9pbnRzIGFzIGJhc2U2NC1lbmNvZGVkIGJ5dGUgc3RyaW5ncyBpbiBhIGtleS10eXBlLS1kZXBlbmRlbnQgZm9ybWF0LiAqL1xuICAgICAgICAgIHBvaW50czogc3RyaW5nW107XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgcmVzcG9uc2VfdHlwZTogXCJtYXNrZWRcIjtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEEgY2lwaGVydGV4dCBjb250YWluaW5nIHRoZSByZXN1bHRpbmcgcG9pbnRzLiBUaGUgZW5jbG9zZWQgcGxhaW50ZXh0IGlzIGEgc2VxdWVuY2VcbiAgICAgICAgICAgKiBvZiBiYXNlNjQtZW5jb2RlZCBieXRlIHN0cmluZ3MgaW4gYSBrZXktdHlwZS0tZGVwZW5kZW50IGZvcm1hdC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmNyeXB0ZWRfc2hhcmVkX3NlY3JldHM6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVwaGVtZXJhbCBwdWJsaWMga2V5IHVzZWQgZm9yIEhQS0Uga2V5IGRlcml2YXRpb24gaW4gYmFzZTY0LWVuY29kZWRcbiAgICAgICAgICAgKiB1bmNvbXByZXNzZWQgU0VDMSBzZXJpYWxpemF0aW9uLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGVwaGVtZXJhbF9wdWJsaWNfa2V5OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgcmVzcG9uc2VfdHlwZTogXCJlbmNyeXB0ZWRcIjtcbiAgICAgICAgfVxuICAgICkgJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9ICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBIHBvbGljeSB3aGljaCBnb3Zlcm5zIHdoZW4gYW5kIHdobyBpcyBhbGxvd2VkIHRvIHVwZGF0ZSB0aGUgZW50aXR5IHRoaXMgcG9saWN5IGlzXG4gICAgICogYXR0YWNoZWQgdG8gKGUuZy4sIGEgcm9sZSBvciBhIGtleSkuXG4gICAgICpcbiAgICAgKiBXaGVuIGF0dGFjaGVkIHRvIGEgcm9sZSwgYnkgZGVmYXVsdCwgdGhpcyBwb2xpY3kgYXBwbGllcyB0byByb2xlIGRlbGV0aW9uIGFuZCBhbGxcbiAgICAgKiByb2xlIHVwZGF0ZXMgKGluY2x1ZGluZyBhZGRpbmcvcmVtb3Zpbmcga2V5cyBhbmQgdXNlcnMpOyBpbiB0ZXJtcyBvZiBzY29wZXMsXG4gICAgICogaXQgYXBwbGllcyB0byBgbWFuYWdlOnJvbGU6dXBkYXRlOipgIGFuZCBgbWFuYWdlOnJvbGU6ZGVsZXRlYC5cbiAgICAgKlxuICAgICAqIFdoZW4gYXR0YWNoZWQgdG8gYSBrZXksIGJ5IGRlZmF1bHQsIHRoaXMgcG9saWN5IGFwcGxpZXMgdG8ga2V5IGRlbGV0aW9uLCBhbGxcbiAgICAgKiBrZXkgdXBkYXRlcywgYW5kIGFkZGluZy9yZW1vdmluZyB0aGF0IGtleSB0by9mcm9tIGEgcm9sZTsgaW4gdGVybXMgb2Ygc2NvcGVzLFxuICAgICAqIGl0IGFwcGxpZXMgdG8gYG1hbmFnZTprZXk6dXBkYXRlOipgLCBgbWFuYWdlOmtleTpkZWxldGVgLCBgbWFuYWdlOnJvbGU6dXBkYXRlOmtleToqYC5cbiAgICAgKlxuICAgICAqIFRoaXMgZGVmYXVsdCBjYW4gYmUgY2hhbmdlZCBieSBzZXR0aW5nIHRoZSBgYXBwbGllc190b19zY29wZXNgIHByb3BlcnR5LlxuICAgICAqL1xuICAgIEVkaXRQb2xpY3k6IHtcbiAgICAgIGFwcGxpZXNfdG9fc2NvcGVzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTY29wZVNldFwiXTtcbiAgICAgIG1mYT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhUG9saWN5XCJdIHwgbnVsbDtcbiAgICAgIHRpbWVfbG9ja191bnRpbD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXSB8IG51bGw7XG4gICAgfTtcbiAgICBFaXAxOTFTaWduUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBFSVAtMTkxIGRhdGEgdG8gc2lnbiBhcyBoZXgtZW5jb2RlZCBieXRlcy5cbiAgICAgICAqIEBleGFtcGxlIDB4ZGVhZGJlZWYxM2MwZmZlZVxuICAgICAgICovXG4gICAgICBkYXRhOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBvcHRpb25hbCB0d2VhayB2YWx1ZSB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgc2VjcmV0IGtleSBiZWZvcmUgc2lnbmluZy5cbiAgICAgICAqIFRoaXMgZmllbGQgbXVzdCBjb250YWluIGEgYmFzZS02NCBzdHJpbmcgZW5jb2RpbmcgYSB2ZWN0b3Igb2YgZXhhY3RseSAzMiBieXRlcy5cbiAgICAgICAqIFNlZSB0aGUgQ3ViZVNpZ25lciBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSB0d2Vha2luZyBwcm9jZWR1cmUuXG4gICAgICAgKiBAZXhhbXBsZSBGNDFIQXkycTVHbjhsYUYyQ3VNc1piUkFRVG1EKzRPYjNWVU1aN1RCR0s0PVxuICAgICAgICovXG4gICAgICB0d2Vhaz86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcImNoYWluX2lkXCI6IDEzMzcsXG4gICAgICogICBcInR5cGVkX2RhdGFcIjoge1xuICAgICAqICAgICBcImRvbWFpblwiOiB7XG4gICAgICogICAgICAgXCJjaGFpbklkXCI6IDEzMzcsXG4gICAgICogICAgICAgXCJuYW1lXCI6IFwiRXRoZXIgTWFpbFwiLFxuICAgICAqICAgICAgIFwic2FsdFwiOiBcIjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiLFxuICAgICAqICAgICAgIFwidmVyaWZ5aW5nQ29udHJhY3RcIjogXCIweENjQ0NjY2NjQ0NDQ2NDQ0NDQ0NjQ2NDY2NDY0NDQ2NDY2NjY2NjY0NcIixcbiAgICAgKiAgICAgICBcInZlcnNpb25cIjogXCIxXCJcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgXCJtZXNzYWdlXCI6IHtcbiAgICAgKiAgICAgICBcImNvbnRlbnRzXCI6IFwiSGVsbG8sIEJvYiFcIixcbiAgICAgKiAgICAgICBcImZyb21cIjoge1xuICAgICAqICAgICAgICAgXCJuYW1lXCI6IFwiQ293XCIsXG4gICAgICogICAgICAgICBcIndhbGxldHNcIjogW1xuICAgICAqICAgICAgICAgICBcIjB4Q0QyYTNkOUY5MzhFMTNDRDk0N0VjMDVBYkM3RkU3MzREZjhERDgyNlwiLFxuICAgICAqICAgICAgICAgICBcIjB4RGVhRGJlZWZkRUFkYmVlZmRFYWRiRUVGZGVhZGJlRUZkRWFEYmVlRlwiXG4gICAgICogICAgICAgICBdXG4gICAgICogICAgICAgfSxcbiAgICAgKiAgICAgICBcInRvXCI6IHtcbiAgICAgKiAgICAgICAgIFwibmFtZVwiOiBcIkJvYlwiLFxuICAgICAqICAgICAgICAgXCJ3YWxsZXRzXCI6IFtcbiAgICAgKiAgICAgICAgICAgXCIweGJCYkJCQkJiYkJCQmJiYkJiYkJiYmJiQkJiQmJiYmJCYkJiYkJCYkJcIixcbiAgICAgKiAgICAgICAgICAgXCIweEIwQmRhQmVhNTdCMEJEQUJlQTU3YjBiZEFCRUE1N2IwQkRhYkVhNTdcIixcbiAgICAgKiAgICAgICAgICAgXCIweEIwQjBiMGIwYjBiMEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIlxuICAgICAqICAgICAgICAgXVxuICAgICAqICAgICAgIH1cbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgXCJwcmltYXJ5VHlwZVwiOiBcIk1haWxcIixcbiAgICAgKiAgICAgXCJ0eXBlc1wiOiB7XG4gICAgICogICAgICAgXCJFSVA3MTJEb21haW5cIjogW1xuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJuYW1lXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICogICAgICAgICB9LFxuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJ2ZXJzaW9uXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICogICAgICAgICB9LFxuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJjaGFpbklkXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcInVpbnQyNTZcIlxuICAgICAqICAgICAgICAgfSxcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwidmVyaWZ5aW5nQ29udHJhY3RcIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwiYWRkcmVzc1wiXG4gICAgICogICAgICAgICB9LFxuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJzYWx0XCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcImJ5dGVzMzJcIlxuICAgICAqICAgICAgICAgfVxuICAgICAqICAgICAgIF0sXG4gICAgICogICAgICAgXCJHcm91cFwiOiBbXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcIm5hbWVcIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgKiAgICAgICAgIH0sXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcIm1lbWJlcnNcIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwiUGVyc29uW11cIlxuICAgICAqICAgICAgICAgfVxuICAgICAqICAgICAgIF0sXG4gICAgICogICAgICAgXCJNYWlsXCI6IFtcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwiZnJvbVwiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJQZXJzb25cIlxuICAgICAqICAgICAgICAgfSxcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwidG9cIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwiUGVyc29uXCJcbiAgICAgKiAgICAgICAgIH0sXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcImNvbnRlbnRzXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICogICAgICAgICB9XG4gICAgICogICAgICAgXSxcbiAgICAgKiAgICAgICBcIlBlcnNvblwiOiBbXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcIm5hbWVcIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgKiAgICAgICAgIH0sXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcIndhbGxldHNcIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwiYWRkcmVzc1tdXCJcbiAgICAgKiAgICAgICAgIH1cbiAgICAgKiAgICAgICBdXG4gICAgICogICAgIH1cbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICovXG4gICAgRWlwNzEyU2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGNoYWluLWlkIHRvIHdoaWNoIHRoaXMgdHlwZWQgZGF0YSB3aWxsIGJlIHNlbnRcbiAgICAgICAqL1xuICAgICAgY2hhaW5faWQ6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFuIG9wdGlvbmFsIHR3ZWFrIHZhbHVlIHRoYXQgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBzZWNyZXQga2V5IGJlZm9yZSBzaWduaW5nLlxuICAgICAgICogVGhpcyBmaWVsZCBtdXN0IGNvbnRhaW4gYSBiYXNlLTY0IHN0cmluZyBlbmNvZGluZyBhIHZlY3RvciBvZiBleGFjdGx5IDMyIGJ5dGVzLlxuICAgICAgICogU2VlIHRoZSBDdWJlU2lnbmVyIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIHR3ZWFraW5nIHByb2NlZHVyZS5cbiAgICAgICAqIEBleGFtcGxlIEY0MUhBeTJxNUduOGxhRjJDdU1zWmJSQVFUbUQrNE9iM1ZVTVo3VEJHSzQ9XG4gICAgICAgKi9cbiAgICAgIHR3ZWFrPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIHR5cGVkX2RhdGE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVHlwZWREYXRhXCJdO1xuICAgIH07XG4gICAgRWlwNzcwMlNpZ25SZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERvIG5vdCBwcm9kdWNlIGEgdmFsaWQgc2lnbmF0dXJlLCBqdXN0IGV2YWx1YXRlIGF0dGFjaGVkIHBvbGljaWVzLiAqL1xuICAgICAgZHJ5X3J1bj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3BvbnNlLCBleHBsYWluaW5nXG4gICAgICAgKiB0aGUgb3V0Y29tZSAoaS5lLiwgcGVybWl0dGVkIHZzLiBkZW5pZWQgdnMuIE1GQSByZXF1aXJlZCkgb2YgdGhlIHNpZ24gcmVxdWVzdC5cbiAgICAgICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBleHBsYWluPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIE1GQSBpcyByZXF1aXJlZCwgZmFpbCB0aGUgcmVxdWVzdCBpbnN0ZWFkIG9mIHJldHVybmluZyAyMDIgYW5kIGNyZWF0aW5nXG4gICAgICAgKiBwZW5kaW5nIE1GQSByZXF1ZXN0LiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZmFpbF9vbl9tZmE/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbWV0YWRhdGEuIFBhc3NpbmcgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhcyBtZXRhZGF0YSBjYW4gYmUgdXNlZCB0byBtYWtlIHJldmlld2luZ1xuICAgICAgICogb2YgcGVuZGluZyBNRkEgcmVxdWVzdHMgYW5kL29yIGhpc3RvcmljYWwga2V5IHRyYW5zYWN0aW9ucyBtb3JlIHRyYW5zcGFyZW50LiBJdCBjYW4gYWxzbyBiZSB1c2VkIGUuZy4sIHRvIGNhcnJ5IGFkZGl0aW9uYWwgZGF0YSB0byBXZWJIb29rIHBvbGljaWVzLlxuICAgICAgICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBhZGRyZXNzIHRvIGRlbGVnYXRlIHRvICh0aGUgdGFyZ2V0IG9mIHRoZSBhdXRob3JpemF0aW9uKSwgYXNcbiAgICAgICAqIGhleC1lbmNvZGVkIGJ5dGVzLiBNdXN0IGJlIGV4YWN0bHkgMjAgYnl0ZXMuXG4gICAgICAgKiBAZXhhbXBsZSAweDExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTFcbiAgICAgICAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGNoYWluIGlkIGZvciB3aGljaCB0aGlzIGF1dGhvcml6YXRpb24gaXMgdmFsaWQuIEEgdmFsdWUgb2YgYDBgIG1lYW5zXG4gICAgICAgKiB0aGUgYXV0aG9yaXphdGlvbiBpcyB2YWxpZCBvbiBhbnkgY2hhaW4gdGhhdCBzdXBwb3J0cyBFSVAtNzcwMi5cbiAgICAgICAqL1xuICAgICAgY2hhaW5faWQ6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBub25jZSBvZiB0aGUgYXV0aG9yaXppbmcgYWNjb3VudC5cbiAgICAgICAqL1xuICAgICAgbm9uY2U6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFuIG9wdGlvbmFsIHR3ZWFrIHZhbHVlIHRoYXQgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBzZWNyZXQga2V5IGJlZm9yZSBzaWduaW5nLlxuICAgICAgICogVGhpcyBmaWVsZCBtdXN0IGNvbnRhaW4gYSBiYXNlLTY0IHN0cmluZyBlbmNvZGluZyBhIHZlY3RvciBvZiBleGFjdGx5IDMyIGJ5dGVzLlxuICAgICAgICogU2VlIHRoZSBDdWJlU2lnbmVyIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIHR3ZWFraW5nIHByb2NlZHVyZS5cbiAgICAgICAqIEBleGFtcGxlIEY0MUhBeTJxNUduOGxhRjJDdU1zWmJSQVFUbUQrNE9iM1ZVTVo3VEJHSzQ9XG4gICAgICAgKi9cbiAgICAgIHR3ZWFrPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIEVtYWlsOiBzdHJpbmc7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBhbnN3ZXIgdG8gdGhlIGNoYWxsZW5nZSByZXR1cm5lZCBieSB0aGUgYG1mYV9lbWFpbF9pbml0YCBlbmRwb2ludC4gKi9cbiAgICBFbWFpbE90cEFuc3dlcjoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRnVsbCBKV1QgdG9rZW4sIGNvbnN0cnVjdGVkIGJ5IGNvbmNhdGVuYXRpbmcgdGhlIFwicGFydGlhbCB0b2tlblwiXG4gICAgICAgKiAoaS5lLiwgYHtoZWFkZXJ9LntwYXlsb2FkfS5gKSByZXR1cm5lZCBieSB0aGUgYG1haWxfZW1haWxfaW5pdGAgZW5kcG9pbnRcbiAgICAgICAqIGFuZCB0aGUgc2lnbmF0dXJlIHNlbnQgdG8gdGhlIHVzZXIncyBlbWFpbC5cbiAgICAgICAqL1xuICAgICAgdG9rZW46IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlcXVlc3QgdXNlcnMgc2VuZCB0byBpbml0aWF0ZSBlbWFpbCBPVFAgKi9cbiAgICBFbWFpbE90cFJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGVtYWlsIHdoaWNoIHdpbGwgcmVjZWl2ZSB0aGUgT1RQICovXG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBIVFRQIHJlc3BvbnNlIHRvIGFuIGVtYWlsIE9UUCByZXF1ZXN0LlxuICAgICAqXG4gICAgICogVGhpcyByZXNwb25zZSBjb250YWlucyBhbiBPSURDIHRva2VuIHdpdGhvdXQgYSBzaWduYXR1cmUuXG4gICAgICogVGhlIHNpZ25hdHVyZSBpcyBzZW50IHRvIHRoZSBlbmQtdXNlciBpbiBhbiBlbWFpbC5cbiAgICAgKiBUaGUgdG9rZW4gY2FuIGJlIHJlY29uc3RydWN0ZWQgYnkgY29uY2F0ZW5hdGluZyB0aGUgYHBhcnRpYWxfdG9rZW5gIHdpdGggdGhlIHNpZ25hdHVyZS5cbiAgICAgKi9cbiAgICBFbWFpbE90cFJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgT0lEQyB0b2tlbiB3aXRob3V0IHRoZSBzaWduYXR1cmUuXG4gICAgICAgKiAoVGhlIHNpZ25hdHVyZSwgd2hpY2ggaXMgYWN0dWFsbHkgYSBNQUMsIGlzIHNlbnQgdG8gdGhlIGVuZC11c2VyIGluIGFuIGVtYWlsKVxuICAgICAgICovXG4gICAgICBwYXJ0aWFsX3Rva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERlc2NyaWJlcyBlbWFpbCBwcmVmZXJlbmNlcyBhdCBhbiBPcmcgbGV2ZWwgLSB3aGF0IGVtYWlscyB0byBzZW5kIGFuZCBvcHRpb25zIGFzc29jaWF0ZWQgKi9cbiAgICBFbWFpbFByZWZlcmVuY2VzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9yZ0FsZXJ0c1ByZWZzXCJdICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBJZiB0cnVlLCBzZW5kIG5vdGlmaWNhdGlvbnMgb24gZXZlcnkgbG9naW4gKi9cbiAgICAgIGxvZ2luX25vdGlmaWNhdGlvbnM/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHRydWUsIHNlbmQgbm90aWZpY2F0aW9ucyB3aGVuIGxvZ2dpbmcgaW4gZnJvbSBhIG5ldyBkZXZpY2UuXG4gICAgICAgKiBuZXdfZGV2aWNlIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBsb2dpbl9ub3RpZmljYXRpb25zLiBFLmcuLCBlbWFpbCBmb3JcbiAgICAgICAqIG5ld19kZXZpY2UgaXMgc2VudCBpbnN0ZWFkIG9mIGEgZ2VuZXJhbCBsb2dpbiBub3RpZmljYXRpb24gZW1haWwgd2hlbiBhXG4gICAgICAgKiBuZXcgZGV2aWNlIGlzIGRldGVjdGVkXG4gICAgICAgKi9cbiAgICAgIG5ld19kZXZpY2U/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSWYgdHJ1ZSwgc2VuZCBlbWFpbCBub3RpZmljYXRpb25zIGZvciBtZmEgYXBwcm92YWxzICovXG4gICAgICBwZW5kaW5nX2FwcHJvdmFscz86IGJvb2xlYW4gfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IHRvIHJlc2V0IHZlcmlmaWVkIGVtYWlsLiAqL1xuICAgIEVtYWlsUmVzZXRSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoaXMgZW1haWwgc2hvdWxkIGJlIHVzYWJsZSBmb3IgZW1haWwgT1RQIGxvZ2luLiBUaGUgcmVxdWVzdFxuICAgICAgICogd2lsbCBmYWlsIGlmIHRoaXMgZmllbGQgaXMgc2V0IHRvIGB0cnVlYCwgYW5kIHRoZSBvcmcgZG9lcyBub3QgaGF2ZVxuICAgICAgICogZW1haWwgT1RQIGVuYWJsZWQuIERlZmF1bHQ6IGBmYWxzZWBcbiAgICAgICAqL1xuICAgICAgYWxsb3dfb3RwX2xvZ2luPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCB0byByZWdpc3RlciAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVmYXVsdCBudWxsICovXG4gICAgRW1wdHk6IHVua25vd247XG4gICAgRW1wdHlJbXBsOiB7XG4gICAgICBzdGF0dXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3RhdHVzT2tcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCB0byBjcmVhdGUgYSBzZXQgb2YgRU9UUyBub25jZXMgZm9yIGEgc3BlY2lmaWVkIGNoYWluLWlkLCBzdGFydGluZ1xuICAgICAqIGF0IGEgc3BlY2lmaWVkIGJsb2NrIGhlaWdodC5cbiAgICAgKi9cbiAgICBFb3RzQ3JlYXRlTm9uY2VSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERvIG5vdCBwcm9kdWNlIGEgdmFsaWQgc2lnbmF0dXJlLCBqdXN0IGV2YWx1YXRlIGF0dGFjaGVkIHBvbGljaWVzLiAqL1xuICAgICAgZHJ5X3J1bj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3BvbnNlLCBleHBsYWluaW5nXG4gICAgICAgKiB0aGUgb3V0Y29tZSAoaS5lLiwgcGVybWl0dGVkIHZzLiBkZW5pZWQgdnMuIE1GQSByZXF1aXJlZCkgb2YgdGhlIHNpZ24gcmVxdWVzdC5cbiAgICAgICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBleHBsYWluPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIE1GQSBpcyByZXF1aXJlZCwgZmFpbCB0aGUgcmVxdWVzdCBpbnN0ZWFkIG9mIHJldHVybmluZyAyMDIgYW5kIGNyZWF0aW5nXG4gICAgICAgKiBwZW5kaW5nIE1GQSByZXF1ZXN0LiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZmFpbF9vbl9tZmE/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbWV0YWRhdGEuIFBhc3NpbmcgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhcyBtZXRhZGF0YSBjYW4gYmUgdXNlZCB0byBtYWtlIHJldmlld2luZ1xuICAgICAgICogb2YgcGVuZGluZyBNRkEgcmVxdWVzdHMgYW5kL29yIGhpc3RvcmljYWwga2V5IHRyYW5zYWN0aW9ucyBtb3JlIHRyYW5zcGFyZW50LiBJdCBjYW4gYWxzbyBiZSB1c2VkIGUuZy4sIHRvIGNhcnJ5IGFkZGl0aW9uYWwgZGF0YSB0byBXZWJIb29rIHBvbGljaWVzLlxuICAgICAgICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBjaGFpbiBpZCBmb3Igd2hpY2ggdGhlIG5vbmNlcyB3aWxsIGJlIHVzZWQsIGFzIGEgaGV4IHN0cmluZ1xuICAgICAgICogQGV4YW1wbGUgMHgxMTIyMzM0NFxuICAgICAgICovXG4gICAgICBjaGFpbl9pZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG51bWJlciBvZiBub25jZXMgdG8gZ2VuZXJhdGVcbiAgICAgICAqIEBleGFtcGxlIDE2XG4gICAgICAgKi9cbiAgICAgIG51bTogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0aW5nIGJsb2NrIGhlaWdodCBvZiB0aGUgZ2VuZXJhdGVkIG5vbmNlcyAocXVvdGVkIGRlY2ltYWwgdTY0KVxuICAgICAgICogQGV4YW1wbGUgMzEzMzdcbiAgICAgICAqL1xuICAgICAgc3RhcnRfaGVpZ2h0OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIGdlbmVyYXRlZCB3aGVuIGNyZWF0aW5nIEVPVFMgbm9uY2VzICovXG4gICAgRW90c0NyZWF0ZU5vbmNlUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZ2VuZXJhdGVkIG5vbmNlcyBhcyBhbiBhcnJheSBvZiAweC1wcmVmaXhlZCBoZXggc3RyaW5nc1xuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcIjB4YjM5M2JmMzllNzFhMTZkNzg0ODUzZDU4MjU1YTI5NjIyMmE5OWZkM2M4N2FhN2NhMjA2YzUyMzBjMTg4ZjFjN1wiLFxuICAgICAgICogICBcIjB4ZTAxOTM2NTg0YjRmMGMwZTk3ZjBkMzAxOGM0ZjlkYjJiZjdkZTQxMzk1YzY0MDNhNDhmZDBkZmYwZWY3YjQwZFwiXG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIG5vbmNlczogc3RyaW5nW107XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlcXVlc3QgZm9yIGFuIEVPVFMgc2lnbmF0dXJlIG9uIGEgc3BlY2lmaWVkIG1lc3NhZ2UsIGNoYWluLWlkLCBibG9jay1oZWlnaHQgdHJpcGxlICovXG4gICAgRW90c1NpZ25SZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERvIG5vdCBwcm9kdWNlIGEgdmFsaWQgc2lnbmF0dXJlLCBqdXN0IGV2YWx1YXRlIGF0dGFjaGVkIHBvbGljaWVzLiAqL1xuICAgICAgZHJ5X3J1bj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3BvbnNlLCBleHBsYWluaW5nXG4gICAgICAgKiB0aGUgb3V0Y29tZSAoaS5lLiwgcGVybWl0dGVkIHZzLiBkZW5pZWQgdnMuIE1GQSByZXF1aXJlZCkgb2YgdGhlIHNpZ24gcmVxdWVzdC5cbiAgICAgICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBleHBsYWluPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIE1GQSBpcyByZXF1aXJlZCwgZmFpbCB0aGUgcmVxdWVzdCBpbnN0ZWFkIG9mIHJldHVybmluZyAyMDIgYW5kIGNyZWF0aW5nXG4gICAgICAgKiBwZW5kaW5nIE1GQSByZXF1ZXN0LiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZmFpbF9vbl9tZmE/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbWV0YWRhdGEuIFBhc3NpbmcgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhcyBtZXRhZGF0YSBjYW4gYmUgdXNlZCB0byBtYWtlIHJldmlld2luZ1xuICAgICAgICogb2YgcGVuZGluZyBNRkEgcmVxdWVzdHMgYW5kL29yIGhpc3RvcmljYWwga2V5IHRyYW5zYWN0aW9ucyBtb3JlIHRyYW5zcGFyZW50LiBJdCBjYW4gYWxzbyBiZSB1c2VkIGUuZy4sIHRvIGNhcnJ5IGFkZGl0aW9uYWwgZGF0YSB0byBXZWJIb29rIHBvbGljaWVzLlxuICAgICAgICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBibG9jayBoZWlnaHQgZm9yIHRoZSBzaWduYXR1cmUgKHF1b3RlZCBkZWNpbWFsIHU2NClcbiAgICAgICAqIEBleGFtcGxlIDEyMzQ1NlxuICAgICAgICovXG4gICAgICBibG9ja19oZWlnaHQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBjaGFpbiBpZCBmb3IgdGhlIHNpZ25hdHVyZVxuICAgICAgICogQGV4YW1wbGUgMHgxMTIyMzM0NFxuICAgICAgICovXG4gICAgICBjaGFpbl9pZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG1lc3NhZ2UgdG8gc2lnblxuICAgICAgICogQGV4YW1wbGUgMHg1YTI2ODhmYWVhMDlkNDJiOTI3MGZkYjhkZTZmZmY2ZjE5MjI0M2E5MTBiYTY2MzI5MDczZTEyZTBkMDA0NmEyXG4gICAgICAgKi9cbiAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFcG9jaCBpcyBhIHF1b3RlZCBgdWludDY0YC5cbiAgICAgKiBAZXhhbXBsZSAyNTZcbiAgICAgKi9cbiAgICBFcG9jaDogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgKiBAZGVzY3JpcHRpb24gRGF0ZVRpbWUgbWVhc3VyZWQgaW4gc2Vjb25kcyBzaW5jZSB1bml4IGVwb2NoLlxuICAgICAqIEEgd3JhcHBlciB0eXBlIGZvciBzZXJpYWxpemF0aW9uIHRoYXQgZW5jb2RlcyBhIFtgU3lzdGVtVGltZWBdIGFzIGEgW2B1NjRgXVxuICAgICAqIHJlcHJlc2VudGluZyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UgW2BTeXN0ZW1UaW1lOjpVTklYX0VQT0NIYF0uXG4gICAgICovXG4gICAgRXBvY2hEYXRlVGltZTogbnVtYmVyO1xuICAgIEVycm9yT2JqOiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBDb2RlXG4gICAgICAgKi9cbiAgICAgIGNvZGU6IG51bWJlcjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgZGF0YSAqL1xuICAgICAgZGF0YT86IHVua25vd247XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE1lc3NhZ2UgKi9cbiAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHN0cnVjdHVyZSBvZiBFcnJvclJlc3BvbnNlIG11c3QgbWF0Y2ggdGhlIHJlc3BvbnNlIHRlbXBsYXRlIHRoYXQgQVdTIHVzZXMgKi9cbiAgICBFcnJvclJlc3BvbnNlOiB7XG4gICAgICBhY2NlcHRlZD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRWYWx1ZVwiXSB8IG51bGw7XG4gICAgICBlcnJvcl9jb2RlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNpZ25lckVycm9yQ29kZVwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRXJyb3IgbWVzc2FnZSAqL1xuICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBwb2xpY3kgZXZhbHVhdGlvbiB0cmVlIChpbmNsdWRlZCBpbiBzaWduZXIgcmVzcG9uc2VzLCB3aGVuIHJlcXVlc3RlZCkgKi9cbiAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCByZXF1ZXN0IGlkZW50aWZpZXIgKi9cbiAgICAgIHJlcXVlc3RfaWQ/OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVzcGxvcmEgcmVxdWVzdCAqL1xuICAgIEVzcGxvcmFSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEhUVFAgYm9keSAqL1xuICAgICAgYm9keT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEhUVFAgbWV0aG9kICovXG4gICAgICBtZXRob2Q6IHN0cmluZztcbiAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgbmV0d29yazogXCJtYWlubmV0XCIgfCBcInRlc3RuZXRcIiB8IFwic2lnbmV0XCI7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEhUVFAgcmVsYXRpdmUgcGF0aCAod2hpY2ggY29tZXMgYWZ0ZXIgJy97bmV0d29ya30vYXBpLycpICovXG4gICAgICBwYXRoOiBzdHJpbmc7XG4gICAgfTtcbiAgICBFc3Bsb3JhUmVzcG9uc2U6IHVua25vd247XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEVWTSB0cmFuc2FjdGlvbiBzaWduaW5nIHJlcXVlc3QuXG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJjaGFpbl9pZFwiOiA0MzExMyxcbiAgICAgKiAgIFwidHhcIjoge1xuICAgICAqICAgICBcImNoYWluX2lkXCI6IFwiMHhhODY5XCIsXG4gICAgICogICAgIFwiZ2FzXCI6IFwiMHg2MWE4MFwiLFxuICAgICAqICAgICBcIm1heEZlZVBlckdhc1wiOiBcIjB4OTUwMkY5MDBcIixcbiAgICAgKiAgICAgXCJtYXhQcmlvcml0eUZlZVBlckdhc1wiOiBcIjB4NTBcIixcbiAgICAgKiAgICAgXCJub25jZVwiOiBcIjB4YlwiLFxuICAgICAqICAgICBcInRvXCI6IFwiMHhmMDBiYTEyZjAwMDAwMDAwYjQxMjEyMDAwMDBmMDBjMGZmZWVmMDBkXCIsXG4gICAgICogICAgIFwidHlwZVwiOiBcIjB4MlwiLFxuICAgICAqICAgICBcInZhbHVlXCI6IFwiMHgxMDAwMDAwMDAwMFwiXG4gICAgICogICB9XG4gICAgICogfVxuICAgICAqL1xuICAgIEV0aDFTaWduUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgY2hhaW4gaWQgdG8gc2V0IGluIHRoZSBnaXZlbiB0cmFuc2FjdGlvbi5cbiAgICAgICAqL1xuICAgICAgY2hhaW5faWQ6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFuIG9wdGlvbmFsIHR3ZWFrIHZhbHVlIHRoYXQgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBzZWNyZXQga2V5IGJlZm9yZSBzaWduaW5nLlxuICAgICAgICogVGhpcyBmaWVsZCBtdXN0IGNvbnRhaW4gYSBiYXNlLTY0IHN0cmluZyBlbmNvZGluZyBhIHZlY3RvciBvZiBleGFjdGx5IDMyIGJ5dGVzLlxuICAgICAgICogU2VlIHRoZSBDdWJlU2lnbmVyIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIHR3ZWFraW5nIHByb2NlZHVyZS5cbiAgICAgICAqIEBleGFtcGxlIEY0MUhBeTJxNUduOGxhRjJDdU1zWmJSQVFUbUQrNE9iM1ZVTVo3VEJHSzQ9XG4gICAgICAgKi9cbiAgICAgIHR3ZWFrPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIHR4OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRyYW5zYWN0aW9uXCJdO1xuICAgIH07XG4gICAgRXRoMVNpZ25SZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBwb2xpY3kgZXZhbHVhdGlvbiB0cmVlLiAqL1xuICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIFJMUCBlbmNvZGluZyBvZiB0aGUgdHJhbnNhY3Rpb24gYW5kIGl0cyBzaWduYXR1cmVcbiAgICAgICAqIEBleGFtcGxlIDB4MjI4OTUxMTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBlMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMjAxZDU4NjU2YjBlMjJhYWE2OGZkYzY5MmRiNDE5NzkwOThjMzg4NmVkMzMwMTVkNzQ2N2RlOTIxMTYwOWNkYWMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMDhiMGMyOTAwMzI0ZDNmZjlhZGZiYTdmZGZlNWFmM2Y5YjJjZGJlZWY3YjI4MDQzN2JiZjFiMWM1OWEwOTNkNjE1YWZlM2U1ZGZlZDk2MjJiNTQwY2RkOWI0OWIzYzVhZDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ5MDExYWRiY2MzYmM5YzAzMDdiYjA3ZjM3ZGRhMWExYTljNjlkMmUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwOTAzZGI4NTI1Njc0YjhlNzkwNGY5YjdkN2Q5ZWM1NWEwYTQyZDMzY2Y1OGJlMjU0NjliMGMyMWJiYjZkMDYxNzJiYzViYjVmZDFhZWQ4ZTRmMzU5MzY5Njg5NTgxMTZiMDYxOTU1M2MyY2IxYzUyZTczMjMwNzRjNmY4ZWIzZDVhNzA3NGZjNjU4MDE0OGRmOTA3ODM3ZmEzYjE2NGFkN2ZiYzIyODhkYWQxZThhNWIwMjEwOTViNTdjOGEzNmQ0XG4gICAgICAgKi9cbiAgICAgIHJscF9zaWduZWRfdHg6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgIFwiZXRoMl9zaWduX3JlcXVlc3RcIjoge1xuICAgICAqICAgICBcImFnZ3JlZ2F0aW9uX3Nsb3RcIjoge1xuICAgICAqICAgICAgIFwic2xvdFwiOiBcIjM2XCJcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgXCJmb3JrX2luZm9cIjoge1xuICAgICAqICAgICAgIFwiZm9ya1wiOiB7XG4gICAgICogICAgICAgICBcImN1cnJlbnRfdmVyc2lvblwiOiBcIjB4NDI0MjQyNDJcIixcbiAgICAgKiAgICAgICAgIFwiZXBvY2hcIjogXCIwXCIsXG4gICAgICogICAgICAgICBcInByZXZpb3VzX3ZlcnNpb25cIjogXCIweDQyNDI0MjQyXCJcbiAgICAgKiAgICAgICB9LFxuICAgICAqICAgICAgIFwiZ2VuZXNpc192YWxpZGF0b3JzX3Jvb3RcIjogXCIweDlkMTNkNjEyMTJjMDY3ZTAyY2U4ZTYwOGE3MDA3ZTJjM2IwMjU3MWU5ZTZmMjdmZjQ1ZGZhOTFiZjI3Yzg3MGJcIlxuICAgICAqICAgICB9LFxuICAgICAqICAgICBcInNpZ25pbmdSb290XCI6IFwiMHg5YzU3ZTc3YzQ5NjU3Mjc1NDJiOTMzN2RmNjc1NmY5NDg0NjRiY2EzODU5YmVhNmVkM2MwZWM2NjAwZDg5ODJhXCIsXG4gICAgICogICAgIFwidHlwZVwiOiBcIkFHR1JFR0FUSU9OX1NMT1RcIlxuICAgICAqICAgfSxcbiAgICAgKiAgIFwibmV0d29ya1wiOiBcIm1haW5uZXRcIlxuICAgICAqIH1cbiAgICAgKi9cbiAgICBFdGgyU2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gU3Vic2V0IG9mIHRoZSBXZWIzU2lnbmVyIEV0aDIgQkxTIHNpZ25pbmcgcmVxdWVzdCB3aG9zZSBzY2hlbWEgaXMgZGVmaW5lZFxuICAgICAgICogW2hlcmVdKGh0dHBzOi8vY29uc2Vuc3lzLmdpdGh1Yi5pby93ZWIzc2lnbmVyL3dlYjNzaWduZXItZXRoMi5odG1sI3RhZy9TaWduaW5nL29wZXJhdGlvbi9FVEgyX1NJR04pLlxuICAgICAgICogV2UgaGFuZGxlIGRlcG9zaXRzIGFuZCB2b2x1bnRhcnkgZXhpdHMgc2VwYXJhdGVseS5cbiAgICAgICAqL1xuICAgICAgZXRoMl9zaWduX3JlcXVlc3Q6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAgIG5ldHdvcms6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTmV0d29ya1wiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRhdGlvbiBvZiBhbiBldmVudC4gVGhpcyB0eXBlIGlzIHVzZWQgdG8gc2VyaWFsaXplIGV2ZW50cyB0byBDbG91ZFdhdGNoIExvZ3MgYW5kIHRvXG4gICAgICogZGVzZXJpYWxpemUgdGhlbSB3aGVuIGFuYWx5emluZyB0aGUgbG9ncy5cbiAgICAgKi9cbiAgICBFdmVudDoge1xuICAgICAgZXZlbnQ6IFwiRXZlbnRcIjtcbiAgICB9ICYgT21pdDxjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkV2ZW50RGF0YVwiXSwgXCJldmVudFwiPiAmIHtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVbmlxdWUgaWRlbnRpZmllciBvZiBhbiBldmVudC4gKi9cbiAgICAgICAgZXZlbnRfaWQ/OiBzdHJpbmc7XG4gICAgICAgIG9yZzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgb3JpZ2luIGhlYWRlciBvZiB0aGUgcmVxdWVzdCB0aGF0IHRyaWdnZXJlZCB0aGlzIGV2ZW50ICovXG4gICAgICAgIG9yaWdpbj86IHN0cmluZztcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHJlcXVlc3QgdGhhdCB0cmlnZ2VyZWQgdGhpcyBldmVudCAqL1xuICAgICAgICByZXF1ZXN0X2lkPzogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgKGluIG1pbGxpc2Vjb25kcyBzaW5jZSB0aGUgVW5peCBFcG9jaClcbiAgICAgICAgICovXG4gICAgICAgIHV0Y190aW1lc3RhbXA6IG51bWJlcjtcbiAgICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERhdGEgYXNzb2NpYXRlZCB3aXRoIGFuIGV2ZW50LiBEZXBlbmRpbmcgb24gdGhlIGV2ZW50IHR5cGUgKGkuZS4sIGJpbGxpbmcgb3Igb3JnIGV2ZW50KSxcbiAgICAgKiBkaWZmZXJlbnQgZmllbGRzIGFyZSB1c2VkLlxuICAgICAqL1xuICAgIEV2ZW50RGF0YTpcbiAgICAgIHwgKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmlsbGluZ0FyZ3NcIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgZXZlbnQ6IFwiY3ViaXN0OjpiaWxsaW5nXCI7XG4gICAgICAgIH0pXG4gICAgICB8IChjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9yZ0V2ZW50QXJnc1wiXSAmIHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBldmVudDogXCJjdWJpc3Q6Om9yZ19ldmVudFwiO1xuICAgICAgICB9KTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEFuIEVWTSBhZGRyZXNzIGFuZCBpdHMgY2hhaW4uICovXG4gICAgRXZtQWRkcmVzc0luZm86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBFVk0gYWRkcmVzcy5cbiAgICAgICAqIEBleGFtcGxlIDB4NTJmNmMwYjMwNmU2Njg5M2MwNDE0YWJiNzA5NTFjNGRhYzE1YTk2OVxuICAgICAgICovXG4gICAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgRVZNIGNoYWluIHRoaXMgYWRkcmVzcyBiZWxvbmdzIHRvICoqYXMgYSBoZXggc3RyaW5nKiouIFRoZSBzdHJpbmdcbiAgICAgICAqIG11c3Qgc3RhcnQgd2l0aCBcIjB4XCIgYW5kIGhhdmUgYW4gZXZlbiBsZW5ndGguIElmIHRoZSBjaGFpbiBpcyBvbWl0dGVkLFxuICAgICAgICogdGhlIGFkZHJlc3MgaXMgYWxsb3dlZCB0byBiZSB1c2VkIG9uIGFueSBFVk0gY2hhaW4sIGFuZCBpcyByZWZlcnJlZCB0b1xuICAgICAgICogYXMgYSBnbG9iYWwgRVZNIGFkZHJlc3MuXG4gICAgICAgKiBAZXhhbXBsZSAweDAxXG4gICAgICAgKi9cbiAgICAgIGNoYWluPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYSBjdXJyZW5jeSB1c2VkIG9uIGFuIEVWTSBjaGFpbi4gKi9cbiAgICBFdm1DdXJyZW5jeUluZm86IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBudW1iZXIgb2YgZGVjaW1hbHMgdGhpcyBjdXJyZW5jeSB1c2VzLlxuICAgICAgICogQGV4YW1wbGUgMThcbiAgICAgICAqL1xuICAgICAgZGVjaW1hbHM6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBmdWxsIG5hbWUgb2YgdGhlIGN1cnJlbmN5LlxuICAgICAgICogQGV4YW1wbGUgRXRoZXJcbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN5bWJvbCBmb3IgdGhlIGN1cnJlbmN5LCB0eXBpY2FsbHkgYSB0aHJlZSBsZXR0ZXIgc3RyaW5nLlxuICAgICAgICogQGV4YW1wbGUgRVRIXG4gICAgICAgKi9cbiAgICAgIHN5bWJvbDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIGN1c3RvbSBFVk0gY2hhaW4uICovXG4gICAgRXZtQ3VzdG9tQ2hhaW46IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBjaGFpbiBpZC4gRW5mb3JjZWQgdG8gYmUgdW5pcXVlIGFtb25nIGFsbCBjdXN0b20gRVZNIGNoYWlucyBpbiB0aGUgb3JnYW5pemF0aW9uLiBJdCBtdXN0IGJlIGEgaGV4IHN0cmluZyAoc3RhcnRpbmcgd2l0aCBcIjB4XCIpIHdpdGggZXZlbiBsZW5ndGguXG4gICAgICAgKiBAZXhhbXBsZSAweDAxXG4gICAgICAgKi9cbiAgICAgIGNoYWluX2lkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmFtZSBvZiB0aGUgY2hhaW4uXG4gICAgICAgKiBAZXhhbXBsZSBFdGhlcmV1bSBNYWlubmV0XG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIG5hdGl2ZV9jdXJyZW5jeTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFdm1DdXJyZW5jeUluZm9cIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgVVJMIG9mIHRoZSBSUEMgcHJvdmlkZXIgZm9yIHRoaXMgY2hhaW4uXG4gICAgICAgKiBAZXhhbXBsZSBodHRwczovL2V0aGVyZXVtLXJwYy5wdWJsaWNub2RlLmNvbVxuICAgICAgICovXG4gICAgICBycGNfdXJsOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEFuIEVWTSB0b2tlbi4gKi9cbiAgICBFdm1Ub2tlbjpcbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIHRva2VuOiBcIk5hdGl2ZVwiO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICB0b2tlbjogXCJFcmMyMFwiO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIEVSQy0yMCB0b2tlbiBhZGRyZXNzLiAqL1xuICAgICAgICAgIHRva2VuX2FkZHJlc3M6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVWTS1zcGVjaWZpYyB0cmFuc2FjdGlvbiBkZXRhaWxzLiAqL1xuICAgIEV2bVRyYW5zYWN0aW9uRGV0YWlsczoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEVWTSBjaGFpbiBpZCBmb3IgdGhlIGNoYWluIHRoZSB0cmFuc2FjdGlvbiBpcyBzdWJtaXR0ZWQgdG8uXG4gICAgICAgKi9cbiAgICAgIGNoYWluX2lkOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdHJhbnNhY3Rpb24gaGFzaCwgYXMgc3VibWl0dGVkIHRvIHRoZSBjaGFpbi5cbiAgICAgICAqXG4gICAgICAgKiBDYW4gYmUgdW5kZWZpbmVkIGlmIHRoZSB0cmFuc2FjdGlvbiBoYXNuJ3QgYmVlbiBzaWduZWQgb3Igc3VibWl0dGVkIHlldC5cbiAgICAgICAqL1xuICAgICAgaGFzaD86IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzaWduYXR1cmUgZm9yIHRoZSB0cmFuc2FjdGlvbi5cbiAgICAgICAqXG4gICAgICAgKiBDYW4gYmUgdW5kZWZpbmVkIGlmIHRoZSB0cmFuc2FjdGlvbiBoYXNuJ3QgYmVlbiBzaWduZWQgeWV0LCBvciBmYWlsZWQgdG8gYmUgc2lnbmVkLlxuICAgICAgICovXG4gICAgICBzaWduYXR1cmU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgdHJhbnNhY3Rpb24gaXRzZWxmLiAqL1xuICAgICAgdHg6IHVua25vd247XG4gICAgfTtcbiAgICBFdm1UeENtcDoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVG8gcHJldmVudCByZXBsYXkgYXR0YWNrcywgYW55IGdpdmVuIE1GQSByZWNlaXB0IGlzIG5vcm1hbGx5IGFsbG93ZWQgdG8gYmUgdXNlZCBvbmx5IG9uY2UuXG4gICAgICAgKlxuICAgICAgICogSW4gdGhpcyBjYXNlLCBob3dldmVyLCBiZWNhdXNlIEVWTSB0cmFuc2FjdGlvbnMgYWxyZWFkeSBoYXZlIGEgcmVwbGF5IHByZXZlbnRpb24gbWVjaGFuaXNtXG4gICAgICAgKiAobmFtZWx5IHRoZSAnbm9uY2UnIHByb3BlcnR5KSwgd2UgYWxsb3cgdGhlIHVzZXIgdG8gc3BlY2lmeSBhIGdyYWNlIHBlcmlvZCAoaW4gc2Vjb25kcykgdG9cbiAgICAgICAqIGluZGljYXRlIGhvdyBsb25nIGFuIE1GQSByZWNlaXB0IHNob3VsZCByZW1haW4gdmFsaWQgYWZ0ZXIgaXRzIGZpcnN0IHVzZS5cbiAgICAgICAqXG4gICAgICAgKiBOb3RlIHRoYXQgd2UgYWxsb3cgYm90aCAnZ3JhY2UnIGFuZCAnaWdub3JlX25vbmNlJyB0byBiZSBzZXQgYmVjYXVzZSBvbmNlIGFuIE1GQSByZXF1ZXN0XG4gICAgICAgKiBlbnRlcnMgaXRzIGdyYWNlIHBlcmlvZCB3ZSB1bmNvbmRpdGlvbmFsbHkgc2V0IGl0cyAnaWdub3JlX25vbmNlJyBwcm9wZXJ0eSB0byAnZmFsc2UnIHRvXG4gICAgICAgKiBlbnN1cmUgdGhhdCBhbnkgc3Vic2VxdWVudCByZXF1ZXN0cyB0aGF0IGNsYWltIHRoZSBzYW1lIHJlY2VpcHQgbXVzdCBzaWduIGZvciB0aGUgc2FtZVxuICAgICAgICogbm9uY2UgYXMgdGhlIHJlcXVlc3Qgd2Ugc2lnbmVkIG9yaWdpbmFsbHkgd2l0aCB0aGF0IHJlY2VpcHQuXG4gICAgICAgKlxuICAgICAgICogQWxzbyBub3RlIHRoYXQgdGhlIGdyYWNlIHBlcmlvZCBjYW5ub3QgZXh0ZW5kIHRoZSBsaWZldGltZSBvZiBhbiBNRkEgcmVxdWVzdCBiZXlvbmQgaXRzXG4gICAgICAgKiBvcmlnaW5hbCBleHBpcmF0aW9uIGRhdGUuXG4gICAgICAgKlxuICAgICAgICogVGhlIGdyYWNlIHBlcmlvZCBtdXN0IG5vdCBiZSBncmVhdGVyIHRoYW4gMzAgZGF5cy5cbiAgICAgICAqL1xuICAgICAgZ3JhY2U/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSAnZ2FzJyBwcm9wZXJ0eSBvZiB0aGUgRVZNIHRyYW5zYWN0aW9uIGlzIGFsbG93ZWQgdG8gYmUgZGlmZmVyZW50LiAqL1xuICAgICAgaWdub3JlX2dhcz86IGJvb2xlYW47XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlICdub25jZScgcHJvcGVydHkgb2YgdGhlIEVWTSB0cmFuc2FjdGlvbiBpcyBhbGxvd2VkIHRvIGJlIGRpZmZlcmVudC4gKi9cbiAgICAgIGlnbm9yZV9ub25jZT86IGJvb2xlYW47XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGZpZWxkcyB1c2VkIHRvIGN1c3RvbWl6ZSBFVk0gdHJhbnNhY3Rpb25zLiAqL1xuICAgIEV2bVR4Q3VzdG9taXphdGlvbjoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgZ2FzIGxpbWl0LlxuICAgICAgICpcbiAgICAgICAqIElmIG5vdCBzcGVjaWZpZWQsIGVzdGltYXRlZCBnYXMgaXMgdXNlZC5cbiAgICAgICAqL1xuICAgICAgZ2FzX2xpbWl0Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1heCBmZWUgZm9yIHRoZSB0cmFuc2FjdGlvbi5cbiAgICAgICAqXG4gICAgICAgKiBJZiBub3Qgc3BlY2lmaWVkLCBlc3RpbWF0ZWQgZmVlcyBhcmUgdXNlZC5cbiAgICAgICAqL1xuICAgICAgbWF4X2ZlZV9wZXJfZ2FzPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1heCBwcmlvcml0eSBmZWUgZm9yIHRoZSB0cmFuc2FjdGlvbi5cbiAgICAgICAqXG4gICAgICAgKiBJZiBub3Qgc3BlY2lmaWVkLCBlc3RpbWF0ZWQgZmVlcyBhcmUgdXNlZC5cbiAgICAgICAqL1xuICAgICAgbWF4X3ByaW9yaXR5X2ZlZV9wZXJfZ2FzPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG5vbmNlLlxuICAgICAgICpcbiAgICAgICAqIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBuZXh0IGF2YWlsYWJsZSBub25jZSBpcyB1c2VkLlxuICAgICAgICovXG4gICAgICBub25jZT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICBFdm1UeERlcG9zaXRFcnJvckNvZGU6XG4gICAgICB8IFwiRXZtVHhEZXBvc2l0UmVjZWl2ZXJNaXNtYXRjaFwiXG4gICAgICB8IFwiRXZtVHhEZXBvc2l0RW1wdHlEYXRhXCJcbiAgICAgIHwgXCJFdm1UeERlcG9zaXRFbXB0eUNoYWluSWRcIlxuICAgICAgfCBcIkV2bVR4RGVwb3NpdEVtcHR5UmVjZWl2ZXJcIlxuICAgICAgfCBcIkV2bVR4RGVwb3NpdFVuZXhwZWN0ZWRWYWx1ZVwiXG4gICAgICB8IFwiRXZtVHhEZXBvc2l0VW5leHBlY3RlZERhdGFMZW5ndGhcIlxuICAgICAgfCBcIkV2bVR4RGVwb3NpdE5vQWJpXCJcbiAgICAgIHwgXCJFdm1UeERlcG9zaXROb0RlcG9zaXRGdW5jdGlvblwiXG4gICAgICB8IFwiRXZtVHhEZXBvc2l0VW5leHBlY3RlZEZ1bmN0aW9uTmFtZVwiXG4gICAgICB8IFwiRXZtVHhEZXBvc2l0VW5leHBlY3RlZFZhbGlkYXRvcktleVwiXG4gICAgICB8IFwiRXZtVHhEZXBvc2l0SW52YWxpZFZhbGlkYXRvcktleVwiXG4gICAgICB8IFwiRXZtVHhEZXBvc2l0TWlzc2luZ0RlcG9zaXRBcmdcIlxuICAgICAgfCBcIkV2bVR4RGVwb3NpdFdyb25nRGVwb3NpdEFyZ1R5cGVcIlxuICAgICAgfCBcIkV2bVR4RGVwb3NpdFZhbGlkYXRvcktleU5vdEluUm9sZVwiXG4gICAgICB8IFwiRXZtVHhEZXBvc2l0VW5leHBlY3RlZFdpdGhkcmF3YWxDcmVkZW50aWFsc1wiXG4gICAgICB8IFwiRXZtVHhEZXBvc2l0VW5yZXNvbHZlZFJvbGVcIlxuICAgICAgfCBcIkV2bVR4RGVwb3NpdEludmFsaWREZXBvc2l0RW5jb2RpbmdcIjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHNvdXJjZSBvZiBhIHBvbGljeSBleGVjdXRpb24sIGkuZS4gdGhlIHJlYXNvbiBpdCB3YXMgZXhlY3V0ZWQuXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBFeGVjdXRpb25Tb3VyY2U6IFwiU2lnblJlcXVlc3RcIiB8IFwiVXNlckludm9jYXRpb25cIjtcbiAgICAvKipcbiAgICAgKiBFeHBsaWNpdFNjb3BlXG4gICAgICogQGRlc2NyaXB0aW9uIEV4cGxpY2l0bHkgbmFtZWQgc2NvcGVzIGZvciBhY2Nlc3NpbmcgQ3ViZVNpZ25lciBBUElzXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBFeHBsaWNpdFNjb3BlOlxuICAgICAgfCBcInNpZ246KlwiXG4gICAgICB8IFwic2lnbjphdmFcIlxuICAgICAgfCBcInNpZ246YmluYW5jZToqXCJcbiAgICAgIHwgXCJzaWduOmJpbmFuY2U6c3ViVG9NYXN0ZXJcIlxuICAgICAgfCBcInNpZ246YmluYW5jZTpzdWJUb1N1YlwiXG4gICAgICB8IFwic2lnbjpiaW5hbmNlOnVuaXZlcnNhbFRyYW5zZmVyXCJcbiAgICAgIHwgXCJzaWduOmJpbmFuY2U6c3ViQWNjb3VudEFzc2V0c1wiXG4gICAgICB8IFwic2lnbjpiaW5hbmNlOmFjY291bnRJbmZvXCJcbiAgICAgIHwgXCJzaWduOmJpbmFuY2U6c3ViQWNjb3VudFRyYW5zZmVySGlzdG9yeVwiXG4gICAgICB8IFwic2lnbjpiaW5hbmNlOnVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVwiXG4gICAgICB8IFwic2lnbjpiaW5hbmNlOndpdGhkcmF3XCJcbiAgICAgIHwgXCJzaWduOmJpbmFuY2U6d2l0aGRyYXdIaXN0b3J5XCJcbiAgICAgIHwgXCJzaWduOmJpbmFuY2U6ZGVwb3NpdFwiXG4gICAgICB8IFwic2lnbjpiaW5hbmNlOmRlcG9zaXRIaXN0b3J5XCJcbiAgICAgIHwgXCJzaWduOmJpbmFuY2U6bGlzdFN1YkFjY291bnRzXCJcbiAgICAgIHwgXCJzaWduOmJpbmFuY2U6Y29pbkluZm9cIlxuICAgICAgfCBcInNpZ246YmluYW5jZTpzdWJBY2NvdW50RGVwb3NpdEFkZHJlc3NcIlxuICAgICAgfCBcInNpZ246YnliaXQ6KlwiXG4gICAgICB8IFwic2lnbjpieWJpdDpxdWVyeVVzZXJcIlxuICAgICAgfCBcInNpZ246YnliaXQ6cXVlcnlTdWJNZW1iZXJzXCJcbiAgICAgIHwgXCJzaWduOmJ5Yml0OnF1ZXJ5Q29pbnNCYWxhbmNlXCJcbiAgICAgIHwgXCJzaWduOmJ5Yml0OnF1ZXJ5RGVwb3NpdEFkZHJlc3NcIlxuICAgICAgfCBcInNpZ246YnliaXQ6dW5pdmVyc2FsVHJhbnNmZXJcIlxuICAgICAgfCBcInNpZ246YnliaXQ6d2l0aGRyYXdcIlxuICAgICAgfCBcInNpZ246YnliaXQ6d2l0aGRyYXdhbHNcIlxuICAgICAgfCBcInNpZ246YnliaXQ6cXVlcnlDb2luSW5mb1wiXG4gICAgICB8IFwic2lnbjpieWJpdDpkZXBvc2l0SGlzdG9yeVwiXG4gICAgICB8IFwic2lnbjpieWJpdDp1bml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlcIlxuICAgICAgfCBcInNpZ246YnliaXQ6cXVlcnlXaXRoZHJhd0FkZHJlc3NcIlxuICAgICAgfCBcInNpZ246YnliaXQ6cXVlcnlTdWJEZXBvc2l0QWRkcmVzc1wiXG4gICAgICB8IFwic2lnbjpjb2luYmFzZToqXCJcbiAgICAgIHwgXCJzaWduOmNvaW5iYXNlOmFjY291bnRzOmxpc3RcIlxuICAgICAgfCBcInNpZ246Y29pbmJhc2U6cG9ydGZvbGlvczpsaXN0XCJcbiAgICAgIHwgXCJzaWduOmNvaW5iYXNlOmZ1bmRzOm1vdmVcIlxuICAgICAgfCBcInNpZ246YmxvYlwiXG4gICAgICB8IFwic2lnbjpkaWZmaWVIZWxsbWFuXCJcbiAgICAgIHwgXCJzaWduOmJ0YzoqXCJcbiAgICAgIHwgXCJzaWduOmJ0YzpzZWd3aXRcIlxuICAgICAgfCBcInNpZ246YnRjOnRhcHJvb3RcIlxuICAgICAgfCBcInNpZ246YnRjOnBzYnQ6KlwiXG4gICAgICB8IFwic2lnbjpidGM6cHNidDpkb2dlXCJcbiAgICAgIHwgXCJzaWduOmJ0Yzpwc2J0OmxlZ2FjeVwiXG4gICAgICB8IFwic2lnbjpidGM6cHNidDpzZWd3aXRcIlxuICAgICAgfCBcInNpZ246YnRjOnBzYnQ6dGFwcm9vdFwiXG4gICAgICB8IFwic2lnbjpidGM6cHNidDpsdGNTZWd3aXRcIlxuICAgICAgfCBcInNpZ246YnRjOm1lc3NhZ2U6KlwiXG4gICAgICB8IFwic2lnbjpidGM6bWVzc2FnZTpzZWd3aXRcIlxuICAgICAgfCBcInNpZ246YnRjOm1lc3NhZ2U6bGVnYWN5XCJcbiAgICAgIHwgXCJzaWduOmJhYnlsb246KlwiXG4gICAgICB8IFwic2lnbjpiYWJ5bG9uOmVvdHM6KlwiXG4gICAgICB8IFwic2lnbjpiYWJ5bG9uOmVvdHM6bm9uY2VzXCJcbiAgICAgIHwgXCJzaWduOmJhYnlsb246ZW90czpzaWduXCJcbiAgICAgIHwgXCJzaWduOmJhYnlsb246c3Rha2luZzoqXCJcbiAgICAgIHwgXCJzaWduOmJhYnlsb246c3Rha2luZzpkZXBvc2l0XCJcbiAgICAgIHwgXCJzaWduOmJhYnlsb246c3Rha2luZzp1bmJvbmRcIlxuICAgICAgfCBcInNpZ246YmFieWxvbjpzdGFraW5nOndpdGhkcmF3XCJcbiAgICAgIHwgXCJzaWduOmJhYnlsb246c3Rha2luZzpzbGFzaFwiXG4gICAgICB8IFwic2lnbjpiYWJ5bG9uOnJlZ2lzdHJhdGlvblwiXG4gICAgICB8IFwic2lnbjpiYWJ5bG9uOmNvdmVuYW50XCJcbiAgICAgIHwgXCJzaWduOmV2bToqXCJcbiAgICAgIHwgXCJzaWduOmV2bTp0eFwiXG4gICAgICB8IFwic2lnbjpldm06ZWlwMTkxXCJcbiAgICAgIHwgXCJzaWduOmV2bTplaXA3MTJcIlxuICAgICAgfCBcInNpZ246ZXZtOmVpcDc3MDJcIlxuICAgICAgfCBcInNpZ246ZXRoMjoqXCJcbiAgICAgIHwgXCJzaWduOmV0aDI6dmFsaWRhdGVcIlxuICAgICAgfCBcInNpZ246ZXRoMjpzdGFrZVwiXG4gICAgICB8IFwic2lnbjpldGgyOnVuc3Rha2VcIlxuICAgICAgfCBcInNpZ246c29sYW5hXCJcbiAgICAgIHwgXCJzaWduOnN1aVwiXG4gICAgICB8IFwic2lnbjp0ZW5kZXJtaW50XCJcbiAgICAgIHwgXCJzaWduOm1taVwiXG4gICAgICB8IFwic2lnbjphdXRvXCJcbiAgICAgIHwgXCJtYW5hZ2U6KlwiXG4gICAgICB8IFwibWFuYWdlOnJlYWRvbmx5XCJcbiAgICAgIHwgXCJtYW5hZ2U6ZW1haWw6KlwiXG4gICAgICB8IFwibWFuYWdlOmVtYWlsOmdldFwiXG4gICAgICB8IFwibWFuYWdlOmVtYWlsOnVwZGF0ZVwiXG4gICAgICB8IFwibWFuYWdlOmVtYWlsOmRlbGV0ZVwiXG4gICAgICB8IFwibWFuYWdlOm1mYToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6bWZhOnJlYWRvbmx5XCJcbiAgICAgIHwgXCJtYW5hZ2U6bWZhOmxpc3RcIlxuICAgICAgfCBcIm1hbmFnZTptZmE6dm90ZToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6bWZhOnZvdGU6Y3NcIlxuICAgICAgfCBcIm1hbmFnZTptZmE6dm90ZTplbWFpbFwiXG4gICAgICB8IFwibWFuYWdlOm1mYTp2b3RlOmZpZG9cIlxuICAgICAgfCBcIm1hbmFnZTptZmE6dm90ZTp0b3RwXCJcbiAgICAgIHwgXCJtYW5hZ2U6bWZhOnJlZ2lzdGVyOipcIlxuICAgICAgfCBcIm1hbmFnZTptZmE6cmVnaXN0ZXI6Zmlkb1wiXG4gICAgICB8IFwibWFuYWdlOm1mYTpyZWdpc3Rlcjp0b3RwXCJcbiAgICAgIHwgXCJtYW5hZ2U6bWZhOnJlZ2lzdGVyOmVtYWlsXCJcbiAgICAgIHwgXCJtYW5hZ2U6bWZhOnVucmVnaXN0ZXI6KlwiXG4gICAgICB8IFwibWFuYWdlOm1mYTp1bnJlZ2lzdGVyOmZpZG9cIlxuICAgICAgfCBcIm1hbmFnZTptZmE6dW5yZWdpc3Rlcjp0b3RwXCJcbiAgICAgIHwgXCJtYW5hZ2U6bWZhOnZlcmlmeToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6bWZhOnZlcmlmeTp0b3RwXCJcbiAgICAgIHwgXCJtYW5hZ2U6a2V5OipcIlxuICAgICAgfCBcIm1hbmFnZTprZXk6cmVhZG9ubHlcIlxuICAgICAgfCBcIm1hbmFnZTprZXk6Z2V0XCJcbiAgICAgIHwgXCJtYW5hZ2U6a2V5OmF0dGVzdFwiXG4gICAgICB8IFwibWFuYWdlOmtleTpsaXN0Um9sZXNcIlxuICAgICAgfCBcIm1hbmFnZTprZXk6bGlzdFwiXG4gICAgICB8IFwibWFuYWdlOmtleTpoaXN0b3J5OnR4Omxpc3RcIlxuICAgICAgfCBcIm1hbmFnZTprZXk6Y3JlYXRlXCJcbiAgICAgIHwgXCJtYW5hZ2U6a2V5OmltcG9ydFwiXG4gICAgICB8IFwibWFuYWdlOmtleTp1cGRhdGU6KlwiXG4gICAgICB8IFwibWFuYWdlOmtleTp1cGRhdGU6b3duZXJcIlxuICAgICAgfCBcIm1hbmFnZTprZXk6dXBkYXRlOnBvbGljeVwiXG4gICAgICB8IFwibWFuYWdlOmtleTp1cGRhdGU6ZW5hYmxlZFwiXG4gICAgICB8IFwibWFuYWdlOmtleTp1cGRhdGU6cmVnaW9uXCJcbiAgICAgIHwgXCJtYW5hZ2U6a2V5OnVwZGF0ZTptZXRhZGF0YVwiXG4gICAgICB8IFwibWFuYWdlOmtleTp1cGRhdGU6cHJvcGVydGllc1wiXG4gICAgICB8IFwibWFuYWdlOmtleTp1cGRhdGU6ZWRpdFBvbGljeVwiXG4gICAgICB8IFwibWFuYWdlOmtleTpkZWxldGVcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6KlwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTpyZWFkb25seVwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTpjcmVhdGVcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6Z2V0XCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5Omxpc3RcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6ZGVsZXRlXCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZTpvd25lclwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTp1cGRhdGU6bmFtZVwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTp1cGRhdGU6YWNsXCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZTplZGl0UG9saWN5XCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZTptZXRhZGF0YVwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTp1cGRhdGU6cnVsZVwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTppbnZva2VcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6d2FzbToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5Ondhc206dXBsb2FkXCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OnNlY3JldHM6KlwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTpzZWNyZXRzOmdldFwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTpzZWNyZXRzOnVwZGF0ZToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OnNlY3JldHM6dXBkYXRlOnZhbHVlc1wiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTpzZWNyZXRzOnVwZGF0ZTphY2xcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6c2VjcmV0czp1cGRhdGU6ZWRpdFBvbGljeVwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTpidWNrZXRzOipcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6YnVja2V0czpnZXRcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6YnVja2V0czpsaXN0XCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OmJ1Y2tldHM6dXBkYXRlOipcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6YnVja2V0czp1cGRhdGU6b3duZXJcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6YnVja2V0czp1cGRhdGU6YWNsXCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OmJ1Y2tldHM6dXBkYXRlOm1ldGFkYXRhXCJcbiAgICAgIHwgXCJtYW5hZ2U6Y29udGFjdDoqXCJcbiAgICAgIHwgXCJtYW5hZ2U6Y29udGFjdDpyZWFkb25seVwiXG4gICAgICB8IFwibWFuYWdlOmNvbnRhY3Q6Y3JlYXRlXCJcbiAgICAgIHwgXCJtYW5hZ2U6Y29udGFjdDpnZXRcIlxuICAgICAgfCBcIm1hbmFnZTpjb250YWN0Omxpc3RcIlxuICAgICAgfCBcIm1hbmFnZTpjb250YWN0OmRlbGV0ZVwiXG4gICAgICB8IFwibWFuYWdlOmNvbnRhY3Q6dXBkYXRlOipcIlxuICAgICAgfCBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTpuYW1lXCJcbiAgICAgIHwgXCJtYW5hZ2U6Y29udGFjdDp1cGRhdGU6YWRkcmVzc2VzXCJcbiAgICAgIHwgXCJtYW5hZ2U6Y29udGFjdDp1cGRhdGU6b3duZXJcIlxuICAgICAgfCBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTpsYWJlbHNcIlxuICAgICAgfCBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTptZXRhZGF0YVwiXG4gICAgICB8IFwibWFuYWdlOmNvbnRhY3Q6dXBkYXRlOmVkaXRQb2xpY3lcIlxuICAgICAgfCBcIm1hbmFnZTpjb250YWN0Omxvb2t1cDoqXCJcbiAgICAgIHwgXCJtYW5hZ2U6Y29udGFjdDpsb29rdXA6YWRkcmVzc1wiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTpjcmVhdGVJbXBvcnRLZXlcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOipcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOnJlYWRvbmx5XCJcbiAgICAgIHwgXCJtYW5hZ2U6cm9sZTpjcmVhdGVcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOmRlbGV0ZVwiXG4gICAgICB8IFwibWFuYWdlOnJvbGU6Z2V0OipcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOmF0dGVzdFwiXG4gICAgICB8IFwibWFuYWdlOnJvbGU6Z2V0OmtleXNcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOmdldDprZXlzOmxpc3RcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOmdldDprZXlzOmdldFwiXG4gICAgICB8IFwibWFuYWdlOnJvbGU6Z2V0OnVzZXJzXCJcbiAgICAgIHwgXCJtYW5hZ2U6cm9sZTpsaXN0XCJcbiAgICAgIHwgXCJtYW5hZ2U6cm9sZTp1cGRhdGU6KlwiXG4gICAgICB8IFwibWFuYWdlOnJvbGU6dXBkYXRlOmVuYWJsZWRcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOnVwZGF0ZTpwb2xpY3lcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOnVwZGF0ZTplZGl0UG9saWN5XCJcbiAgICAgIHwgXCJtYW5hZ2U6cm9sZTp1cGRhdGU6YWN0aW9uc1wiXG4gICAgICB8IFwibWFuYWdlOnJvbGU6dXBkYXRlOmtleToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6cm9sZTp1cGRhdGU6a2V5OmFkZFwiXG4gICAgICB8IFwibWFuYWdlOnJvbGU6dXBkYXRlOmtleTpyZW1vdmVcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOnVwZGF0ZTp1c2VyOipcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOnVwZGF0ZTp1c2VyOmFkZFwiXG4gICAgICB8IFwibWFuYWdlOnJvbGU6dXBkYXRlOnVzZXI6cmVtb3ZlXCJcbiAgICAgIHwgXCJtYW5hZ2U6cm9sZTpoaXN0b3J5OnR4Omxpc3RcIlxuICAgICAgfCBcIm1hbmFnZTppZGVudGl0eToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6aWRlbnRpdHk6cmVhZG9ubHlcIlxuICAgICAgfCBcIm1hbmFnZTppZGVudGl0eTp2ZXJpZnlcIlxuICAgICAgfCBcIm1hbmFnZTppZGVudGl0eTphZGRcIlxuICAgICAgfCBcIm1hbmFnZTppZGVudGl0eTpyZW1vdmVcIlxuICAgICAgfCBcIm1hbmFnZTppZGVudGl0eTpsaXN0XCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOipcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6Y3JlYXRlXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOm1ldHJpY3M6cXVlcnlcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6YXVkaXQ6cXVlcnlcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6cmVhZG9ubHlcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6YWRkVXNlclwiXG4gICAgICB8IFwibWFuYWdlOm9yZzppbnZpdGVVc2VyXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOmludml0ZUFsaWVuXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOmludml0YXRpb246bGlzdFwiXG4gICAgICB8IFwibWFuYWdlOm9yZzppbnZpdGF0aW9uOmNhbmNlbFwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGVNZW1iZXJzaGlwOipcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6dXBkYXRlTWVtYmVyc2hpcDpvd25lclwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGVNZW1iZXJzaGlwOm1lbWJlclwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGVNZW1iZXJzaGlwOmFsaWVuXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOmxpc3RVc2Vyc1wiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1c2VyOmdldFwiXG4gICAgICB8IFwibWFuYWdlOm9yZzpkZWxldGVVc2VyOipcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6ZGVsZXRlVXNlcjpvd25lclwiXG4gICAgICB8IFwibWFuYWdlOm9yZzpkZWxldGVVc2VyOm1lbWJlclwiXG4gICAgICB8IFwibWFuYWdlOm9yZzpkZWxldGVVc2VyOmFsaWVuXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOmdldFwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGU6KlwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGU6ZW5hYmxlZFwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGU6cG9saWN5XCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTpzaWduUG9saWN5XCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTpleHBvcnRcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6dXBkYXRlOnRvdHBGYWlsdXJlTGltaXRcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6dXBkYXRlOm5vdGlmaWNhdGlvbkVuZHBvaW50c1wiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGU6ZGVmYXVsdEludml0ZUtpbmRcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6dXBkYXRlOmlkcENvbmZpZ3VyYXRpb25cIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6dXBkYXRlOnBhc3NrZXlDb25maWd1cmF0aW9uXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTplbWFpbFByZWZlcmVuY2VzXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTpoaXN0b3JpY2FsRGF0YVwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGU6cmVxdWlyZVNjb3BlQ2VpbGluZ1wiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGU6YWxpZW5Mb2dpblJlcXVpcmVtZW50XCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTptZW1iZXJMb2dpblJlcXVpcmVtZW50XCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTprZXlFeHBvcnRSZXF1aXJlbWVudFwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGU6YWxsb3dlZE1mYVR5cGVzXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTpwb2xpY3lFbmdpbmVDb25mXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTpjdXN0b21DaGFpbnNcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6dXBkYXRlOmV4dFByb3BzXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTplZGl0UG9saWN5XCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVzZXI6cmVzZXRNZmFcIlxuICAgICAgfCBcIm1hbmFnZTpzZXNzaW9uOipcIlxuICAgICAgfCBcIm1hbmFnZTpzZXNzaW9uOnJlYWRvbmx5XCJcbiAgICAgIHwgXCJtYW5hZ2U6c2Vzc2lvbjpnZXRcIlxuICAgICAgfCBcIm1hbmFnZTpzZXNzaW9uOmxpc3RcIlxuICAgICAgfCBcIm1hbmFnZTpzZXNzaW9uOmNyZWF0ZVwiXG4gICAgICB8IFwibWFuYWdlOnNlc3Npb246ZXh0ZW5kXCJcbiAgICAgIHwgXCJtYW5hZ2U6c2Vzc2lvbjpyZXZva2VcIlxuICAgICAgfCBcIm1hbmFnZTpleHBvcnQ6KlwiXG4gICAgICB8IFwibWFuYWdlOmV4cG9ydDpyZWFkb25seVwiXG4gICAgICB8IFwibWFuYWdlOmV4cG9ydDpvcmc6KlwiXG4gICAgICB8IFwibWFuYWdlOmV4cG9ydDpvcmc6Z2V0XCJcbiAgICAgIHwgXCJtYW5hZ2U6ZXhwb3J0OnVzZXI6KlwiXG4gICAgICB8IFwibWFuYWdlOmV4cG9ydDp1c2VyOmRlbGV0ZVwiXG4gICAgICB8IFwibWFuYWdlOmV4cG9ydDp1c2VyOmxpc3RcIlxuICAgICAgfCBcIm1hbmFnZTphdXRoTWlncmF0aW9uOipcIlxuICAgICAgfCBcIm1hbmFnZTphdXRoTWlncmF0aW9uOmlkZW50aXR5OmFkZFwiXG4gICAgICB8IFwibWFuYWdlOmF1dGhNaWdyYXRpb246aWRlbnRpdHk6cmVtb3ZlXCJcbiAgICAgIHwgXCJtYW5hZ2U6YXV0aE1pZ3JhdGlvbjp1c2VyOnVwZGF0ZVwiXG4gICAgICB8IFwibWFuYWdlOm1taToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6bW1pOnJlYWRvbmx5XCJcbiAgICAgIHwgXCJtYW5hZ2U6bW1pOmdldFwiXG4gICAgICB8IFwibWFuYWdlOm1taTpsaXN0XCJcbiAgICAgIHwgXCJtYW5hZ2U6bW1pOnJlamVjdFwiXG4gICAgICB8IFwibWFuYWdlOm1taTpkZWxldGVcIlxuICAgICAgfCBcImV4cG9ydDoqXCJcbiAgICAgIHwgXCJleHBvcnQ6dXNlcjoqXCJcbiAgICAgIHwgXCJleHBvcnQ6dXNlcjppbml0XCJcbiAgICAgIHwgXCJleHBvcnQ6dXNlcjpjb21wbGV0ZVwiXG4gICAgICB8IFwibW1pOipcIlxuICAgICAgfCBcIm9yZ0FjY2VzczoqXCJcbiAgICAgIHwgXCJvcmdBY2Nlc3M6Y2hpbGQ6KlwiXG4gICAgICB8IFwicnBjOipcIlxuICAgICAgfCBcInJwYzpjcmVhdGVUcmFuc2FjdGlvbjoqXCJcbiAgICAgIHwgXCJycGM6Y3JlYXRlVHJhbnNhY3Rpb246ZXZtXCJcbiAgICAgIHwgXCJycGM6cmV0cnlUcmFuc2FjdGlvblwiXG4gICAgICB8IFwicnBjOmNhbmNlbFRyYW5zYWN0aW9uXCJcbiAgICAgIHwgXCJycGM6Z2V0VHJhbnNhY3Rpb25cIlxuICAgICAgfCBcInJwYzpsaXN0VHJhbnNhY3Rpb25zXCJcbiAgICAgIHwgXCJycGM6YnRjTGlzdFV0eG9zXCJcbiAgICAgIHwgXCJycGM6YmluYW5jZVwiXG4gICAgICB8IFwicnBjOmJ5Yml0XCJcbiAgICAgIHwgXCJycGM6Y29pbmJhc2VcIjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyB0eXBlIHNwZWNpZmllcyB0aGUgaW50ZXJwcmV0YXRpb24gb2YgdGhlIGBmZWVgIGZpZWxkIGluIEJhYnlsb25cbiAgICAgKiBzdGFraW5nIHJlcXVlc3RzLiBJZiBgc2F0c2AsIHRoZSBmaWVsZCBpcyBpbnRwcmV0ZWQgYXMgYSBmaXhlZCB2YWx1ZVxuICAgICAqIGluIHNhdHMuIElmIGBzYXRzX3ByX3ZiYCwgdGhlIGZpZWxkIGlzIGludGVycHJldGVkIGFzIGEgcmF0ZSBhbmQgdGhlXG4gICAgICogZmVlIGlzIGNvbXB1dGVkIGJ5IGVzdGltYXRpbmcgdGhlIHdlaWdodCBvZiB0aGUgb3V0cHV0IHRyYW5zYWN0aW9uLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgRmVlVHlwZTogXCJzYXRzXCIgfCBcInNhdHNfcGVyX2t3dVwiIHwgXCJzYXRzX3Blcl92YlwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gU2VudCBmcm9tIHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlciB0byBhbnN3ZXIgYSBmaWRvIGNoYWxsZW5nZSAqL1xuICAgIEZpZG9Bc3NlcnRBbnN3ZXI6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBjaGFsbGVuZ2UgdGhhdCB3YXMgcmV0dXJuZWQgZnJvbSB0aGUgUE9TVCBlbmRwb2ludCAqL1xuICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgICBjcmVkZW50aWFsOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxcIl07XG4gICAgfTtcbiAgICBGaWRvQXNzZXJ0Q2hhbGxlbmdlOiAoY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDaGFsbGVuZ2VQaWVjZXNcIl0gJiB7XG4gICAgICBvcHRpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uc1wiXTtcbiAgICB9KSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBjaGFsbGVuZ2UuIE11c3QgYmUgc3VwcGxpZWQgd2hlbiBhbnN3ZXJpbmcgdGhlIGNoYWxsZW5nZS4gKi9cbiAgICAgIGNoYWxsZW5nZV9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBTZW50IGZyb20gdGhlIGNsaWVudCB0byB0aGUgc2VydmVyIHRvIGFuc3dlciBhIGZpZG8gY2hhbGxlbmdlICovXG4gICAgRmlkb0NyZWF0ZUNoYWxsZW5nZUFuc3dlcjoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIGNoYWxsZW5nZSB0aGF0IHdhcyByZXR1cm5lZCBmcm9tIHRoZSBQT1NUIGVuZHBvaW50ICovXG4gICAgICBjaGFsbGVuZ2VfaWQ6IHN0cmluZztcbiAgICAgIGNyZWRlbnRpYWw6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTZW50IGJ5IHRoZSBzZXJ2ZXIgdG8gdGhlIGNsaWVudC4gQ29udGFpbnMgdGhlIGNoYWxsZW5nZSBkYXRhIHRoYXQgbXVzdCBiZVxuICAgICAqIHVzZWQgdG8gZ2VuZXJhdGUgYSBuZXcgY3JlZGVudGlhbFxuICAgICAqL1xuICAgIEZpZG9DcmVhdGVDaGFsbGVuZ2VSZXNwb25zZTogKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2hhbGxlbmdlUGllY2VzXCJdICYge1xuICAgICAgb3B0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zXCJdO1xuICAgIH0pICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGNoYWxsZW5nZS4gTXVzdCBiZSBzdXBwbGllZCB3aGVuIGFuc3dlcmluZyB0aGUgY2hhbGxlbmdlLiAqL1xuICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERlY2xhcmVzIGludGVudCB0byByZWdpc3RlciBhIG5ldyBGSURPIGtleSAqL1xuICAgIEZpZG9DcmVhdGVSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBhdHRlc3RhdGlvbiBhbnN3ZXJpbmcgdGhpcyByZWdpc3RyYXRpb24gY2hhbGxlbmdlIGFkZGl0aW9uYWxseSBjb3VudHMgYXMgYW5cbiAgICAgICAqIGFwcHJvdmluZyB2b3RlIG9uIHBlbmRpbmcgTUZBIHJlcXVlc3QgYG1mYV9pZGAuXG4gICAgICAgKlxuICAgICAgICogVGhpcyBleGlzdHMgc28gdGhhdCBhIHVzZXIgd2hvIG11c3QgcmVnaXN0ZXIgdGhlaXIgZmlyc3Qgc2Vjb25kIGZhY3RvciBpbiBvcmRlciB0byBjb21wbGV0ZVxuICAgICAgICogYW4gb3BlcmF0aW9uIChtb3N0IGNvbW1vbmx5IGxvZ2dpbmcgaW4pIGRvZXMgbm90IGhhdmUgdG8gcGVyZm9ybSB0d28gYXV0aGVudGljYXRvclxuICAgICAgICogY2VyZW1vbmllcyBiYWNrIHRvIGJhY2s6IG9uZSB0byBlbnJvbGwgdGhlIGNyZWRlbnRpYWwgYW5kIGFub3RoZXIgdG8gaW1tZWRpYXRlbHkgcHJvdmVcbiAgICAgICAqIHBvc3Nlc3Npb24gb2YgaXQuIFRoZSBhdHRlc3RhdGlvbiBpcyBhIGZ1bGwgV2ViQXV0aG4gY2VyZW1vbnkgb3ZlciBhIHNlcnZlci1pc3N1ZWRcbiAgICAgICAqIGNoYWxsZW5nZSwgc28gaXQgaXMgbm8gd2Vha2VyIHRoYW4gdGhlIHNlcGFyYXRlIGFzc2VydGlvbiBpdCByZXBsYWNlcy5cbiAgICAgICAqXG4gICAgICAgKiBSZXF1aXJlcyB0aGUgJ21hbmFnZTptZmE6dm90ZTpmaWRvJyBzY29wZSBpbiBhZGRpdGlvbiB0byAnbWFuYWdlOm1mYTpyZWdpc3RlcjpmaWRvJy5cbiAgICAgICAqL1xuICAgICAgYXBwcm92ZV9tZmE/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoaXMga2V5IGNhbiBiZSB1c2VkIGZvciBwYXNzd29yZGxlc3MgbG9naW4gKi9cbiAgICAgIGRpc2NvdmVyYWJsZT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBuZXcgZmlkbyBjcmVkZW50aWFsXG4gICAgICAgKiBAZXhhbXBsZSBXb3JrIFl1YmlrZXlcbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0byByZXF1ZXN0IHRoZSB1bmlxdWUgYXV0aGVudGljYXRvciBkZXZpY2UgbWFudWZhY3R1cmVyIGlkZW50aWZpZXIuXG4gICAgICAgKiBUaGlzIGluZm9ybWF0aW9uIGNhbiBiZSB1c2VkIHRvIHJlbmRlciB0aGUgbWFudWZhY3R1cmVyIG5hbWUgKGUuZy4sIFwiWXViaUtleVwiLFxuICAgICAgICogb3IgXCJHb29nbGUgUGFzc3dvcmQgTWFuYWdlclwiLCBvciBcIjFQYXNzd29yZFwiLCBldGMuKS4gV2hlbiByZXF1ZXN0ZWQsIHNvbWUgdXNlclxuICAgICAgICogYWdlbnRzIChlLmcuLCBGaXJlZm94KSB3aWxsIGFzayB0aGUgdXNlciB0byBhZ3JlZSBvciBkaXNhZ3JlZSwgd2hlcmVhcyBzb21lXG4gICAgICAgKiAoZS5nLiwgQ2hyb21lKSB3aWxsIHNpbGVudGx5IGFncmVlLlxuICAgICAgICovXG4gICAgICByZXF1ZXN0X2RldmljZV9pZGVudGlmaWVyPzogYm9vbGVhbjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzdWx0IG9mIHJlZ2lzdGVyaW5nIGEgRklETyBrZXkgKi9cbiAgICBGaWRvUmVnaXN0ZXJSZXNwb25zZToge1xuICAgICAgbWZhPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFSZXF1ZXN0SW5mb1wiXTtcbiAgICAgIHN0YXR1czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdGF0dXNPa1wiXTtcbiAgICB9O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIEZvcmJpZGRlbkVycm9yQ29kZTpcbiAgICAgIHwgXCJBbGllbktleUNyZWF0ZVwiXG4gICAgICB8IFwiQ2Fubm90QXNzdW1lSWRlbnRpdHlcIlxuICAgICAgfCBcIlNlbnRyeURpc2FsbG93ZWRcIlxuICAgICAgfCBcIlBhc3NrZXlMb2dpbkRpc2FibGVkXCJcbiAgICAgIHwgXCJQYXNza2V5Tm90UmVnaXN0ZXJlZFwiXG4gICAgICB8IFwiQ2Fubm90Q3JlYXRlT3JnXCJcbiAgICAgIHwgXCJXcm9uZ01mYUVtYWlsT3RwSnd0XCJcbiAgICAgIHwgXCJPcmdGbGFnTm90U2V0XCJcbiAgICAgIHwgXCJGaWRvUmVxdWlyZWRUb1JlbW92ZVRvdHBcIlxuICAgICAgfCBcIk9pZGNJZGVudGl0eUxpbWl0UmVhY2hlZFwiXG4gICAgICB8IFwiT2lkY1Njb3BlQ2VpbGluZ01pc3NpbmdcIlxuICAgICAgfCBcIk9pZGNJc3N1ZXJOb3RBbGxvd2VkRm9yTWVtYmVyUm9sZVwiXG4gICAgICB8IFwiT2lkY05vTWVtYmVyUm9sZXNBbGxvd2VkXCJcbiAgICAgIHwgXCJFbWFpbE90cE5vdENvbmZpZ3VyZWRcIlxuICAgICAgfCBcIk1mYUNoYWxsZW5nZUV4cGlyZWRcIlxuICAgICAgfCBcIkNoYWluSWROb3RBbGxvd2VkXCJcbiAgICAgIHwgXCJJbnZhbGlkT3JnXCJcbiAgICAgIHwgXCJPcmdJZE1pc21hdGNoXCJcbiAgICAgIHwgXCJTZXNzaW9uRm9yV3JvbmdPcmdcIlxuICAgICAgfCBcIlNlbGZEZWxldGVcIlxuICAgICAgfCBcIlNlbGZEaXNhYmxlXCJcbiAgICAgIHwgXCJTZWxmTWZhUmVzZXRcIlxuICAgICAgfCBcIkludmFsaWRPcmdNZW1iZXJzaGlwUm9sZUNoYW5nZVwiXG4gICAgICB8IFwiVXNlckRpc2FibGVkXCJcbiAgICAgIHwgXCJPcmdEaXNhYmxlZFwiXG4gICAgICB8IFwiT3JnTm90Rm91bmRcIlxuICAgICAgfCBcIk9yZ1dpdGhvdXRPd25lclwiXG4gICAgICB8IFwiT3JwaGFuZWRVc2VyXCJcbiAgICAgIHwgXCJPaWRjVXNlck5vdEZvdW5kXCJcbiAgICAgIHwgXCJVc2VyTm90SW5PcmdcIlxuICAgICAgfCBcIlVzZXJOb3RPcmdPd25lclwiXG4gICAgICB8IFwiVXNlck5vdEtleU93bmVyXCJcbiAgICAgIHwgXCJJbnZhbGlkUm9sZVwiXG4gICAgICB8IFwiRGlzYWJsZWRSb2xlXCJcbiAgICAgIHwgXCJLZXlEaXNhYmxlZFwiXG4gICAgICB8IFwiS2V5Tm90SW5Sb2xlXCJcbiAgICAgIHwgXCJDb250YWN0Tm90SW5PcmdcIlxuICAgICAgfCBcIlVzZXJFeHBvcnRSZXF1ZXN0Tm90SW5PcmdcIlxuICAgICAgfCBcIlVzZXJFeHBvcnRSZXF1ZXN0SW52YWxpZFwiXG4gICAgICB8IFwiVXNlckV4cG9ydERpc2FibGVkXCJcbiAgICAgIHwgXCJVc2VyTm90T3JpZ2luYWxLZXlPd25lclwiXG4gICAgICB8IFwiVXNlck5vdEluUm9sZVwiXG4gICAgICB8IFwiTXVzdEJlRnVsbE1lbWJlclwiXG4gICAgICB8IFwiU2Vzc2lvbkV4cGlyZWRcIlxuICAgICAgfCBcIlNlc3Npb25DaGFuZ2VkXCJcbiAgICAgIHwgXCJTZXNzaW9uUmV2b2tlZFwiXG4gICAgICB8IFwiRXhwZWN0ZWRVc2VyU2Vzc2lvblwiXG4gICAgICB8IFwiU2Vzc2lvblJvbGVDaGFuZ2VkXCJcbiAgICAgIHwgXCJTY29wZWROYW1lTm90Rm91bmRcIlxuICAgICAgfCBcIlNlc3Npb25JbnZhbGlkRXBvY2hUb2tlblwiXG4gICAgICB8IFwiU2Vzc2lvbkludmFsaWRSZWZyZXNoVG9rZW5cIlxuICAgICAgfCBcIlNlc3Npb25SZWZyZXNoVG9rZW5FeHBpcmVkXCJcbiAgICAgIHwgXCJJbnZhbGlkQXV0aEhlYWRlclwiXG4gICAgICB8IFwiU2Vzc2lvbk5vdEZvdW5kXCJcbiAgICAgIHwgXCJJbnZhbGlkQXJuXCJcbiAgICAgIHwgXCJTZXNzaW9uSW52YWxpZEF1dGhUb2tlblwiXG4gICAgICB8IFwiU2Vzc2lvbkF1dGhUb2tlbkV4cGlyZWRcIlxuICAgICAgfCBcIlNlc3Npb25Qb3NzaWJseVN0b2xlblRva2VuXCJcbiAgICAgIHwgXCJNZmFEaXNhbGxvd2VkSWRlbnRpdHlcIlxuICAgICAgfCBcIk1mYURpc2FsbG93ZWRBcHByb3ZlclwiXG4gICAgICB8IFwiUGVuZGluZ09wRGlzYWxsb3dlZEFwcHJvdmVyXCJcbiAgICAgIHwgXCJNZmFUeXBlTm90QWxsb3dlZFwiXG4gICAgICB8IFwiTWZhTm90QXBwcm92ZWRZZXRcIlxuICAgICAgfCBcIk1mYUNvbmZpcm1hdGlvbkNvZGVNaXNtYXRjaFwiXG4gICAgICB8IFwiTWZhUmVtb3ZlQmVsb3dNaW5cIlxuICAgICAgfCBcIk1mYU9yZ1JlcXVpcmVtZW50Tm90TWV0XCJcbiAgICAgIHwgXCJNZmFSZWdpc3RyYXRpb25EaXNhbGxvd2VkXCJcbiAgICAgIHwgXCJUb3RwQWxyZWFkeUNvbmZpZ3VyZWRcIlxuICAgICAgfCBcIlRvdHBDb25maWd1cmF0aW9uQ2hhbmdlZFwiXG4gICAgICB8IFwiTWZhVG90cEJhZENvbmZpZ3VyYXRpb25cIlxuICAgICAgfCBcIk1mYVRvdHBCYWRDb2RlXCJcbiAgICAgIHwgXCJNZmFUb3RwUmF0ZUxpbWl0XCJcbiAgICAgIHwgXCJJbXByb3BlclNlc3Npb25TY29wZVwiXG4gICAgICB8IFwiRnVsbFNlc3Npb25SZXF1aXJlZFwiXG4gICAgICB8IFwiU2Vzc2lvbldpdGhvdXRBbnlTY29wZVVuZGVyXCJcbiAgICAgIHwgXCJVc2VyUm9sZVVucHJpdmlsZWdlZFwiXG4gICAgICB8IFwiTWVtYmVyUm9sZUZvcmJpZGRlblwiXG4gICAgICB8IFwiTWZhTm90Q29uZmlndXJlZFwiXG4gICAgICB8IFwiUmVtb3ZlTGFzdE9pZGNJZGVudGl0eVwiXG4gICAgICB8IFwiT3BlcmF0aW9uTm90QWxsb3dlZFwiXG4gICAgICB8IFwiT3JnRXhwb3J0UmV0cmlldmFsRGlzYWJsZWRcIlxuICAgICAgfCBcIkNoYW5naW5nS2V5RXhwb3J0UmVxdWlyZW1lbnRJc0Rpc2FibGVkXCJcbiAgICAgIHwgXCJBdXRvQWRkQmxzS2V5VG9Qcm90ZWN0ZWRSb2xlXCJcbiAgICAgIHwgXCJVc2VyTm90UG9saWN5T3duZXJcIlxuICAgICAgfCBcIlVzZXJOb3RDb250YWN0T3duZXJcIlxuICAgICAgfCBcIlVzZXJOb3RCdWNrZXRPd25lclwiXG4gICAgICB8IFwiTGVnYWN5U2Vzc2lvbkNhbm5vdEhhdmVTY29wZUNlaWxpbmdcIlxuICAgICAgfCBcIlJvbGVJblBhcmVudE9yZ05vdEFsbG93ZWRcIlxuICAgICAgfCBcIlJlbW92ZUtleUZyb21Sb2xlVXNlck5vdEFsbG93ZWRcIlxuICAgICAgfCBcIlNpd2VDaGFsbGVuZ2VFeHBpcmVkXCJcbiAgICAgIHwgXCJTaXdlTWVzc2FnZU5vdFZhbGlkXCJcbiAgICAgIHwgXCJTaXdlTWVzc2FnZUludmFsaWRTaWduYXR1cmVcIlxuICAgICAgfCBcIlNpd3NDaGFsbGVuZ2VFeHBpcmVkXCJcbiAgICAgIHwgXCJTaXdzRG9tYWluXCJcbiAgICAgIHwgXCJTaXdzTWVzc2FnZUludmFsaWRcIlxuICAgICAgfCBcIkFjbFwiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTcGVjaWZpZXMgYSBmb3JrIG9mIHRoZSBgQmVhY29uQ2hhaW5gLCB0byBwcmV2ZW50IHJlcGxheSBhdHRhY2tzLlxuICAgICAqIFRoZSBzY2hlbWEgb2YgYEZvcmtgIGlzIGRlZmluZWQgaW4gdGhlIFtCZWFjb24gY2hhaW5cbiAgICAgKiBzcGVjXShodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW0vY29uc2Vuc3VzLXNwZWNzL2Jsb2IvdjEuMC4xL3NwZWNzL3BoYXNlMC9iZWFjb24tY2hhaW4ubWQjZm9yaykuXG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJjdXJyZW50X3ZlcnNpb25cIjogXCIweDAwMDAxMDIwXCIsXG4gICAgICogICBcImVwb2NoXCI6IFwiMFwiLFxuICAgICAqICAgXCJwcmV2aW91c192ZXJzaW9uXCI6IFwiMHgwMDAwMTAyMFwiXG4gICAgICogfVxuICAgICAqL1xuICAgIEZvcms6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEN1cnJlbnQgZm9yayB2ZXJzaW9uLlxuICAgICAgICogQGV4YW1wbGUgMHg0MzQzNDM0M1xuICAgICAgICovXG4gICAgICBjdXJyZW50X3ZlcnNpb246IHN0cmluZztcbiAgICAgIGVwb2NoOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUHJldmlvdXMgZm9yayB2ZXJzaW9uLlxuICAgICAgICogQGV4YW1wbGUgMHg0MjQyNDI0MlxuICAgICAgICovXG4gICAgICBwcmV2aW91c192ZXJzaW9uOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gR2VuZXNpcyBkYXRhIGFzIGRlZmluZWQgaW4gdGhlIFtCZWFjb24gQVBJXG4gICAgICogc3BlY10oaHR0cHM6Ly9ldGhlcmV1bS5naXRodWIuaW8vYmVhY29uLUFQSXMvIy9CZWFjb24vZ2V0R2VuZXNpcykuXG4gICAgICogWW91IGNhbiBnZXQgdGhlIGdlbmVzaXMgZGF0YSBmcm9tIHRoZSBCZWFjb24gbm9kZSdzIGAvZXRoL3YxL2JlYWNvbi9nZW5lc2lzYCBlbmQtcG9pbnQuXG4gICAgICogVGhpcyBzdHJ1Y3QgZGVmaW5pdGlvbiBpcyBvcmlnaW5hbGx5IGZyb20gbGlnaHRob3VzZSdzIGV0aDIuXG4gICAgICovXG4gICAgR2VuZXNpc0RhdGE6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEdlbmVzaXMgZm9yayB2ZXJzaW9uLlxuICAgICAgICogQGV4YW1wbGUgMHg0MjQyNDI0MlxuICAgICAgICovXG4gICAgICBnZW5lc2lzX2ZvcmtfdmVyc2lvbjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gR2VuZXNpcyB0aW1lXG4gICAgICAgKiBAZXhhbXBsZSAxNjc5MzI2NDQ5XG4gICAgICAgKi9cbiAgICAgIGdlbmVzaXNfdGltZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gR2VuZXNpcyB2YWxpZGF0b3JzIHJvb3QuXG4gICAgICAgKiBAZXhhbXBsZSAweDI3MGQ0M2U3NGNlMzQwZGU0YmNhMmIxOTM2YmVjYTBmNGY1NDA4ZDllNzhhZWM0ODUwOTIwYmFmNjU5ZDViNjlcbiAgICAgICAqL1xuICAgICAgZ2VuZXNpc192YWxpZGF0b3JzX3Jvb3Q6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGVtYWlsIHNlbmRlciBjb25maWd1cmF0aW9uICh3aXRob3V0IHNlbnNpdGl2ZSBhdXRoIGRldGFpbHMpICovXG4gICAgR2V0RW1haWxDb25maWdSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZW1haWwgYWRkcmVzcyB0aGF0IGVtYWlscyBhcmUgc2VudCBmcm9tICovXG4gICAgICBzZW5kZXI6IHN0cmluZztcbiAgICAgIHRlbXBsYXRlPzoge1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFuIEhUTUwgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgYm9keS4gKi9cbiAgICAgICAgYm9keV90ZW1wbGF0ZTogc3RyaW5nO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzdWJqZWN0IGxpbmUgdGVtcGxhdGUgKi9cbiAgICAgICAgc3ViamVjdF90ZW1wbGF0ZTogc3RyaW5nO1xuICAgICAgfSB8IG51bGw7XG4gICAgfTtcbiAgICBHZXRLZXlzSW5PcmdSZXF1ZXN0OiB7XG4gICAgICBrZXlfdHlwZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIHRoZSBbYGNzX2dldFRyYW5zYWN0aW9uYF0oUnBjTWV0aG9kOjpHZXRUcmFuc2FjdGlvbikgbWV0aG9kLiAqL1xuICAgIEdldFRyYW5zYWN0aW9uUmVxdWVzdDoge1xuICAgICAgaWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgfTtcbiAgICBHZXRVc2VyQnlFbWFpbFJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUeXBpY2FsbHksIHRoaXMgYXJyYXkgaXMgZWl0aGVyIGVtcHR5IChpZiBubyB1c2VyIHdpdGggYSBnaXZlbiBlbWFpbCB3YXMgZm91bmQpXG4gICAgICAgKiBvciBjb250YWlucyBhIHNpbmdsZSBlbGVtZW50LCBpLmUuLCB0aGUgdXNlciB3aXRoIGEgZ2l2ZW4gZW1haWwuXG4gICAgICAgKi9cbiAgICAgIHVzZXJzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJJbk9yZ0luZm9XaXRoSWRlbnRpdHlcIl1bXTtcbiAgICB9O1xuICAgIEdldFVzZXJCeU9pZGNSZXNwb25zZToge1xuICAgICAgdXNlcj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckluT3JnSW5mb1dpdGhJZGVudGl0eVwiXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFN0YXRzIHBlcnRhaW5pbmcgdGhlIHRoZSBzZW5kZXIgYGN1YmUzc2lnbmVyYCBpbnN0YW5jZSAqL1xuICAgIEhlYXJ0YmVhdFJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiByZXF1ZXN0cyBjdXJyZW50bHkgYWN0aXZlIChyZWNlaXZlZCBidXQgbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHByb2Nlc3NlZCB5ZXQpXG4gICAgICAgKi9cbiAgICAgIGN1cnJlbnRfbnVtX3JlcXVlc3RzX2FjdGl2ZTogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIHJlcXVlc3RzIGN1cnJlbnRseSBiZWluZyBwcm9jZXNzZWQgYnkgY3ViZTNzaWduZXJcbiAgICAgICAqL1xuICAgICAgY3VycmVudF9udW1fcmVxdWVzdHNfcHJvY2Vzc2luZzogbnVtYmVyO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcmVjb3JkIG1ldHJpYyBkYXRhIGZyb20gdGhpcyBoZWFydGJlYXQgKi9cbiAgICAgIGlnbm9yZT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgbmV3IHJlcXVlc3RzIGR1cmluZyB0aGlzIGhlYXJ0YmVhdCBwZXJpb2RcbiAgICAgICAqL1xuICAgICAgbnVtX3JlcXVlc3RzOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgcmVxdWVzdHMgdGhhdCBmYWlsZWQgZHVyaW5nIHRoaXMgaGVhcnRiZWF0IHBlcmlvZFxuICAgICAgICovXG4gICAgICBudW1fcmVxdWVzdHNfZmFpbGVkOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgcmVxdWVzdHMgd2VyZSByZXRyaWVkIGR1cmluZyB0aGlzIGhlYXJ0YmVhdCBwZXJpb2RcbiAgICAgICAqL1xuICAgICAgbnVtX3JlcXVlc3RzX3JldHJpZWQ6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiByZXRyaWVzIGR1cmluZyB0aGlzIGhlYXJ0YmVhdCBwZXJpb2RcbiAgICAgICAqL1xuICAgICAgbnVtX3JldHJpZXM6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiB0aW1lcyBhdXRoIHRva2VuIHdhcyByZWZyZXNoZWQgZHVyaW5nIHRoaXMgaGVhcnRiZWF0IHBlcmlvZFxuICAgICAgICovXG4gICAgICBudW1fdG9rZW5fcmVmcmVzaGVzPzogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIHRpbWVzIGF1dGggdG9rZW4gcmVmcmVzaCBmYWlsZWQgZHVyaW5nIHRoaXMgaGVhcnRiZWF0IHBlcmlvZFxuICAgICAgICovXG4gICAgICBudW1fdG9rZW5fcmVmcmVzaGVzX2ZhaWxlZD86IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFZlcnNpb24gb2YgdGhlIHByb3h5IHNlbmRpbmcgdGhlIGhlYXJ0IGJlYXQgcmVxdWVzdFxuICAgICAgICpcbiAgICAgICAqIFRPRE86IE1ha2Ugbm9uLW9wdGlvbmFsIG9uY2Ugd2UgZG8gbm90IHN1cHBvcnQgcHJveGllcyB3aXRob3V0IHZlcnNpb24gaW5mb3JtYXRpb25cbiAgICAgICAqL1xuICAgICAgcHJveHlfdmVyc2lvbj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZ292ZXJuaW5nIHdoZXRoZXIgYW5kIGhvdyB0byBzYXZlIGhpc3RvcmljYWwgZGF0YS4gKi9cbiAgICBIaXN0b3JpY2FsRGF0YUNvbmZpZ3VyYXRpb246IHtcbiAgICAgIHR4OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkhpc3RvcmljYWxUeENvbmZpZ3VyYXRpb25cIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgcmVjZW50bHkgc2lnbmVkIHRyYW5zYWN0aW9uIHRoYXQgd2Ugc3RvcmUgaW4gdGhlIERCLiAqL1xuICAgIEhpc3RvcmljYWxUeDoge1xuICAgICAgZGF0ZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgZXhwX2Vwb2NoOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICBoaXN0b3JpY2FsX3R4X29yZ19pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIGtleV9pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIG1mYV9zdGF0dXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN0YXR1c1wiXSB8IG51bGw7XG4gICAgICBvcGVyYXRpb246IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3BlcmF0aW9uS2luZFwiXTtcbiAgICAgIHJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSHR0cFJlcXVlc3RcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9yaWdpbmFsIHJlcXVlc3QgaWQgKi9cbiAgICAgIHJlcXVlc3RfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcGVyYXRpb24tc3BlY2lmaWMgcmVzdWx0ICovXG4gICAgICByZXN1bHQ6IHVua25vd247XG4gICAgICByb2xlX2lkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXSB8IG51bGw7XG4gICAgICB1c2VyX2lkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZ292ZXJuaW5nIHdoZXRoZXIgYW5kIGhvdyB0byBzYXZlIGhpc3RvcmljYWwgdHJhbnNhY3Rpb25zLiAqL1xuICAgIEhpc3RvcmljYWxUeENvbmZpZ3VyYXRpb246IHtcbiAgICAgIGxpZmV0aW1lPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNvbmRzXCJdIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIENhcHR1cmVzIGFsbCB0aGUgcmVsZXZhbnQgaW5mbyAoaW5jbHVkaW5nIHRoZSByZXF1ZXN0IGJvZHkpIGFib3V0IHJlcXVlc3RzIHRoYXQgcmVxdWlyZSBNRkEuXG4gICAgICogV2UgdXNlIHRoaXMgdG8gdmVyaWZ5IHRoYXQgd2hlbiBhIHJlcXVlc3QgaXMgcmVzdW1lZCAoYWZ0ZXIgb2J0YWluaW5nIG5lY2Vzc2FyeSBNRkEgYXBwcm92YWxzKVxuICAgICAqIGl0IGlzIGV4YWN0bHkgdGhlIHNhbWUgYXMgaXQgb3JpZ2luYWxseSB3YXMuXG4gICAgICovXG4gICAgSHR0cFJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSFRUUCByZXF1ZXN0IGJvZHkgKi9cbiAgICAgIGJvZHk/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEhUVFAgbWV0aG9kIG9mIHRoZSByZXF1ZXN0ICovXG4gICAgICBtZXRob2Q6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSFRUUCBwYXRoIG9mIHRoZSByZXF1ZXN0LCBleGNsdWRpbmcgdGhlIGhvc3QgKi9cbiAgICAgIHBhdGg6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSG93IHRvIGNvbXBhcmUgSFRUUCByZXF1ZXN0cyB3aGVuIHZlcmlmeWluZyBNRkEgcmVjZWlwdCAoc2VlIFtNZmFSZXF1ZXN0Ojp2ZXJpZnlfcmVxdWVzdF0pICovXG4gICAgSHR0cFJlcXVlc3RDbXA6IE9uZU9mPFxuICAgICAgW1xuICAgICAgICBcIkVxXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBFdm1UeDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFdm1UeENtcFwiXTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFNvbGFuYVR4OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNvbGFuYVR4Q21wXCJdO1xuICAgICAgICB9LFxuICAgICAgXVxuICAgID47XG4gICAgSWQ6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYSBsaW5rZWQgT0lEQyBpZGVudGl0eSBpbmNsdWRpbmcgdW5pcXVlIGlkZW50aWZpZXJzIGFuZCB1c2VyIGluZm9cbiAgICAgKiAoZS5nLiwgZW1haWwpXG4gICAgICovXG4gICAgSWRlbnRpdHlJbmZvOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9pZGNJZGVudGl0eVwiXSAmXG4gICAgICBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9pZGNVc2VySW5mb1wiXSAmXG4gICAgICBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByb29mIHRoYXQgYW4gZW5kLXVzZXIgcHJvdmlkZWQgQ3ViZVNpZ25lciB3aXRoIGEgdmFsaWQgYXV0aCB0b2tlblxuICAgICAqIChlaXRoZXIgYW4gT0lEQyB0b2tlbiBvciBhIEN1YmVTaWduZXIgc2Vzc2lvbiB0b2tlbilcbiAgICAgKi9cbiAgICBJZGVudGl0eVByb29mOiB7XG4gICAgICBhdWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1ZFwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZW1haWwgYXNzb2NpYXRlZCB3aXRoIHRoZSB1c2VyXG4gICAgICAgKiBAZXhhbXBsZSB1c2VyQGVtYWlsLmNvbVxuICAgICAgICovXG4gICAgICBlbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgICBleHBfZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIGlkZW50aXR5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPaWRjSWRlbnRpdHlcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXJuYW1lIChpZiBhbnkpIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlclxuICAgICAgICogQGV4YW1wbGUgY3ViaXN0ZGV2XG4gICAgICAgKi9cbiAgICAgIHByZWZlcnJlZF91c2VybmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICB1c2VyX2luZm8/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkN1YmVTaWduZXJVc2VySW5mb1wiXSB8IG51bGw7XG4gICAgfSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gb3BhcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBwcm9vZiAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSURQIGNvbmZpZ3VyYXRpb24gKi9cbiAgICBJZHBDb25maWc6IHtcbiAgICAgIHRocm90dGxlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUaHJvdHRsZUNvbmZpZ1wiXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEVuYWJsZSBmb3IgY2VydGFpbiB1c2VyIHJvbGVzICovXG4gICAgICB1c2Vycz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXVtdIHwgbnVsbDtcbiAgICB9O1xuICAgIEltcG9ydEtleVJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW1wb3J0S2V5XCJdICZcbiAgICAgIGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlQW5kVXBkYXRlS2V5UHJvcGVydGllc1wiXSAmIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGVuIGZhbHNlICh0aGUgZGVmYXVsdCksIG5vdGhpbmcgaXMgcmV0dXJuZWQgd2hlbiBhbiBpbXBvcnRlZCBrZXkgYWxyZWFkeVxuICAgICAgICAgKiBleGlzdHMuIFdoZW4gdHJ1ZSwgcmV0dXJucyB0aGUgS2V5SW5mbyBzdHJ1Y3QgZm9yIGtleXMgdGhhdCBhbHJlYWR5IGV4aXN0XG4gICAgICAgICAqIGlmIGNhbGxlciBpcyBhbGxvd2VkIHRvIGxpc3QgdGhhdCBrZXkuXG4gICAgICAgICAqL1xuICAgICAgICBpZGVtcG90ZW50PzogYm9vbGVhbjtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIHNldCBvZiBlbmNyeXB0ZWQga2V5cyB0byBiZSBpbXBvcnRlZCAqL1xuICAgICAgICBrZXlfbWF0ZXJpYWw6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSW1wb3J0S2V5UmVxdWVzdE1hdGVyaWFsXCJdW107XG4gICAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgICB9O1xuICAgIEltcG9ydEtleVJlcXVlc3RNYXRlcmlhbDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGNsaWVudCdzIGVwaGVtZXJhbCBwdWJsaWMga2V5IHVzZWQgdG8gZGVyaXZlIGEgc2hhcmVkIGtleS5cbiAgICAgICAqIFRoaXMgaXMgYSBiYXNlNjQtZW5jb2RlZCwgU0VDMS1lbmNvZGVkIFAzODQgcHVibGljIGtleS5cbiAgICAgICAqL1xuICAgICAgY2xpZW50X3B1YmxpY19rZXk6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlbmNyeXB0ZWQga2V5aW5nIG1hdGVyaWFsIHRvIGJlIGltcG9ydGVkLlxuICAgICAgICogVGhpcyBpcyBhIGJhc2U2NC1lbmNvZGVkIGNpcGhlcnRleHQuXG4gICAgICAgKi9cbiAgICAgIGlrbV9lbmM6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgc2FsdCB2YWx1ZSB1c2VkIHRvIGRlcml2ZSBhIHNoYXJlZCBrZXkuXG4gICAgICAgKiBUaGlzIGlzIGEgYmFzZTY0LWVuY29kZWQgYnl0ZSBzdHJpbmcuXG4gICAgICAgKi9cbiAgICAgIHNhbHQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIEludGVybmFsRXJyb3JDb2RlOlxuICAgICAgfCBcIk5vTWF0ZXJpYWxJZFwiXG4gICAgICB8IFwiSW52YWxpZEF1ZGl0TG9nRW50cnlcIlxuICAgICAgfCBcIlVuZXhwZWN0ZWRDaGVja2VyUnVsZVwiXG4gICAgICB8IFwiVW5yZXNvbHZlZFBvbGljeVJlZmVyZW5jZVwiXG4gICAgICB8IFwiVW5leHBlY3RlZEFjbEFjdGlvblwiXG4gICAgICB8IFwiRmlkb0tleUFzc29jaWF0ZWRXaXRoTXVsdGlwbGVVc2Vyc1wiXG4gICAgICB8IFwiQ2xhaW1zUGFyc2VFcnJvclwiXG4gICAgICB8IFwiSW52YWxpZFRocm90dGxlSWRcIlxuICAgICAgfCBcIkludmFsaWRFbWFpbEFkZHJlc3NcIlxuICAgICAgfCBcIkVtYWlsVGVtcGxhdGVSZW5kZXJcIlxuICAgICAgfCBcIk9pZGNJZGVudGl0eUhlYWRlck1pc3NpbmdcIlxuICAgICAgfCBcIk9pZGNJZGVudGl0eVBhcnNlRXJyb3JcIlxuICAgICAgfCBcIlN5c3RlbVRpbWVFcnJvclwiXG4gICAgICB8IFwiUGFzc3dvcmRIYXNoUGFyc2VFcnJvclwiXG4gICAgICB8IFwiU2VuZE1haWxFcnJvclwiXG4gICAgICB8IFwiUmVxd2VzdEVycm9yXCJcbiAgICAgIHwgXCJFbWFpbENvbnN0cnVjdGlvbkVycm9yXCJcbiAgICAgIHwgXCJUc1dyaXRlRXJyb3JcIlxuICAgICAgfCBcIlRzUXVlcnlFcnJvclwiXG4gICAgICB8IFwiRGJRdWVyeUVycm9yXCJcbiAgICAgIHwgXCJEYkdldEVycm9yXCJcbiAgICAgIHwgXCJEYkJhdGNoR2V0RXJyb3JcIlxuICAgICAgfCBcIkRiRGVsZXRlRXJyb3JcIlxuICAgICAgfCBcIkRiUHV0RXJyb3JcIlxuICAgICAgfCBcIkRiVXBkYXRlRXJyb3JcIlxuICAgICAgfCBcIlNlcmRlRXJyb3JcIlxuICAgICAgfCBcIlRlc3RBbmRTZXRFcnJvclwiXG4gICAgICB8IFwiRGJHZXRJdGVtc0Vycm9yXCJcbiAgICAgIHwgXCJEYldyaXRlRXJyb3JcIlxuICAgICAgfCBcIkN1YmlzdFNpZ25lckVycm9yXCJcbiAgICAgIHwgXCJDd0xpc3RNZXRyaWNzRXJyb3JcIlxuICAgICAgfCBcIkN3UHV0TWV0cmljRGF0YUVycm9yXCJcbiAgICAgIHwgXCJHZXRBd3NTZWNyZXRFcnJvclwiXG4gICAgICB8IFwiU2VjcmV0Tm90Rm91bmRcIlxuICAgICAgfCBcIkttc0dlbmVyYXRlUmFuZG9tRXJyb3JcIlxuICAgICAgfCBcIk1hbGZvcm1lZFRvdHBCeXRlc1wiXG4gICAgICB8IFwiS21zR2VuZXJhdGVSYW5kb21Ob1Jlc3BvbnNlRXJyb3JcIlxuICAgICAgfCBcIkNyZWF0ZUtleUVycm9yXCJcbiAgICAgIHwgXCJQYXJzZURlcml2YXRpb25QYXRoRXJyb3JcIlxuICAgICAgfCBcIlNwbGl0U2lnbmVyRXJyb3JcIlxuICAgICAgfCBcIkNyZWF0ZUltcG9ydEtleUVycm9yXCJcbiAgICAgIHwgXCJDcmVhdGVFb3RzTm9uY2VzRXJyb3JcIlxuICAgICAgfCBcIkVvdHNTaWduRXJyb3JcIlxuICAgICAgfCBcIkJhYnlsb25Db3ZTaWduRXJyb3JcIlxuICAgICAgfCBcIkNvZ25pdG9EZWxldGVVc2VyRXJyb3JcIlxuICAgICAgfCBcIkNvZ25pdG9MaXN0VXNlcnNFcnJvclwiXG4gICAgICB8IFwiQ29nbml0b0dldFVzZXJFcnJvclwiXG4gICAgICB8IFwiTWlzc2luZ1VzZXJFbWFpbFwiXG4gICAgICB8IFwiQ29nbml0b1Jlc2VuZFVzZXJJbnZpdGF0aW9uXCJcbiAgICAgIHwgXCJDb2duaXRvU2V0VXNlclBhc3N3b3JkRXJyb3JcIlxuICAgICAgfCBcIkdlbmVyaWNJbnRlcm5hbEVycm9yXCJcbiAgICAgIHwgXCJBc3N1bWVSb2xlV2l0aG91dEV2aWRlbmNlXCJcbiAgICAgIHwgXCJPaWRjQXV0aFdpdGhvdXRPcmdcIlxuICAgICAgfCBcIk1pc3NpbmdLZXlNZXRhZGF0YVwiXG4gICAgICB8IFwiS21zRW5hYmxlS2V5RXJyb3JcIlxuICAgICAgfCBcIkttc0Rpc2FibGVLZXlFcnJvclwiXG4gICAgICB8IFwiTGFtYmRhSW52b2tlRXJyb3JcIlxuICAgICAgfCBcIkxhbWJkYU5vUmVzcG9uc2VFcnJvclwiXG4gICAgICB8IFwiTGFtYmRhRmFpbHVyZVwiXG4gICAgICB8IFwiTGFtYmRhVW5wYXJzYWJsZVJlc3BvbnNlXCJcbiAgICAgIHwgXCJTZXJpYWxpemVFbmNyeXB0ZWRFeHBvcnRLZXlFcnJvclwiXG4gICAgICB8IFwiRGVzZXJpYWxpemVFbmNyeXB0ZWRFeHBvcnRLZXlFcnJvclwiXG4gICAgICB8IFwiUmVFbmNyeXB0VXNlckV4cG9ydFwiXG4gICAgICB8IFwiUzNVcGxvYWRFcnJvclwiXG4gICAgICB8IFwiUzNEb3dubG9hZEVycm9yXCJcbiAgICAgIHwgXCJTM0NvcHlFcnJvclwiXG4gICAgICB8IFwiUzNMaXN0T2JqZWN0c0Vycm9yXCJcbiAgICAgIHwgXCJTM0RlbGV0ZU9iamVjdHNFcnJvclwiXG4gICAgICB8IFwiUzNCdWlsZEVycm9yXCJcbiAgICAgIHwgXCJTM1ByZXNpZ25lZFVybEVycm9yXCJcbiAgICAgIHwgXCJNYW5hZ2VkU3RhdGVNaXNzaW5nXCJcbiAgICAgIHwgXCJJbnRlcm5hbEhlYWRlck1pc3NpbmdcIlxuICAgICAgfCBcIkludmFsaWRJbnRlcm5hbEhlYWRlclZhbHVlXCJcbiAgICAgIHwgXCJSZXF1ZXN0TG9jYWxTdGF0ZUFscmVhZHlTZXRcIlxuICAgICAgfCBcIk9pZGNPcmdNaXNtYXRjaFwiXG4gICAgICB8IFwiT2lkY0lzc3VlckludmFsaWRKd2tcIlxuICAgICAgfCBcIkludmFsaWRQa0Zvck1hdGVyaWFsSWRcIlxuICAgICAgfCBcIlNlZ3dpdFR3ZWFrRmFpbGVkXCJcbiAgICAgIHwgXCJVbmNoZWNrZWRPcmdcIlxuICAgICAgfCBcIlNlc3Npb25PcmdJZE1pc3NpbmdcIlxuICAgICAgfCBcIkF2YVNpZ25DcmVkc01pc3NpbmdcIlxuICAgICAgfCBcIkF2YVNpZ25TaWduYXR1cmVNaXNzaW5nXCJcbiAgICAgIHwgXCJFeHBlY3RlZFJvbGVTZXNzaW9uXCJcbiAgICAgIHwgXCJJbnZhbGlkVGhpcmRQYXJ0eUlkZW50aXR5XCJcbiAgICAgIHwgXCJDb2duaXRvR2V0VXNlclwiXG4gICAgICB8IFwiU25zU3Vic2NyaWJlRXJyb3JcIlxuICAgICAgfCBcIlNuc1Vuc3Vic2NyaWJlRXJyb3JcIlxuICAgICAgfCBcIlNuc0dldFN1YnNjcmlwdGlvbkF0dHJpYnV0ZXNFcnJvclwiXG4gICAgICB8IFwiU25zU3Vic2NyaXB0aW9uQXR0cmlidXRlc01pc3NpbmdcIlxuICAgICAgfCBcIlNuc1NldFN1YnNjcmlwdGlvbkF0dHJpYnV0ZXNFcnJvclwiXG4gICAgICB8IFwiU25zUHVibGlzaEJhdGNoRXJyb3JcIlxuICAgICAgfCBcIkluY29uc2lzdGVudE11bHRpVmFsdWVUZXN0QW5kU2V0XCJcbiAgICAgIHwgXCJNYXRlcmlhbElkRXJyb3JcIlxuICAgICAgfCBcIkludmFsaWRCdGNBZGRyZXNzXCJcbiAgICAgIHwgXCJIaXN0b3JpY2FsVHhCb2R5TWlzc2luZ1wiXG4gICAgICB8IFwiSW52YWxpZE9wZXJhdGlvblwiXG4gICAgICB8IFwiUGFyZW50T3JnTm90Rm91bmRcIlxuICAgICAgfCBcIk9yZ1BhcmVudExvb3BcIlxuICAgICAgfCBcIlJlc29sdmVkUGFyZW50T3JnV2l0aE5vU2NvcGVDZWlsaW5nXCJcbiAgICAgIHwgXCJJbnZhbGlkVXBsb2FkT2JqZWN0SWRcIlxuICAgICAgfCBcIlBvbGljeUVuZ2luZU5vdEZvdW5kXCJcbiAgICAgIHwgXCJQb2xpY3lFbmdpbmVFcnJvclwiXG4gICAgICB8IFwiUG9saWN5U2VjcmV0c0VuY3J5cHRpb25FcnJvclwiXG4gICAgICB8IFwiQ3JlYXRlUG9saWN5SW1wb3J0S2V5RXJyb3JcIlxuICAgICAgfCBcIkludmFsaWRBbGlhc1wiXG4gICAgICB8IFwiRW1wdHlVcGRhdGVNb2RpZmllZE9iamVjdFwiXG4gICAgICB8IFwiRW1wdHlVcGRhdGVNb2RpZmllZEFjdGlvbnNcIlxuICAgICAgfCBcIkRiQ29udGFjdEFkZHJlc3Nlc0ludmFsaWRcIlxuICAgICAgfCBcIkludmFsaWRFdm1TaWdlZFJscFwiXG4gICAgICB8IFwiSW52YWxpZEVyYzIwRGF0YVwiXG4gICAgICB8IFwiSW52YWxpZFJwY1VybFwiO1xuICAgIEludml0YXRpb25BY2NlcHRSZXF1ZXN0OiB7XG4gICAgICBhdXRoOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1dGhTb3VyY2VcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEludml0YXRpb24gdG9rZW4gKi9cbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIGFib3V0IGEgcGVuZGluZyBpbnZpdGF0aW9uICovXG4gICAgSW52aXRhdGlvbkluZm86IHtcbiAgICAgIGNyZWF0ZWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGVtYWlsIGFkZHJlc3MgdGhlIGludml0YXRpb24gd2FzIHNlbnQgdG8gKi9cbiAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICBleHBpcmF0aW9uOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICBpbnZpdGVyPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBpbnZpdGVkIHVzZXIncyBuYW1lICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICByb2xlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1lbWJlclJvbGVcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5kaWNhdGVzIHRoZSBhdXRoIHNvdXJjZXMgYWxsb3dlZCB0byBhbiBpbnZpdGVkIHVzZXJcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEludml0ZUtpbmQ6IFwiQ29nbml0b1wiIHwgXCJJZHBBbmRTc29cIiB8IFwiU3NvXCI7XG4gICAgSW52aXRlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIncyBlbWFpbCBhZGRyZXNzXG4gICAgICAgKiBAZXhhbXBsZSBhbGljZUBhY21lLmNvbVxuICAgICAgICovXG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgaW52aXRlX2tpbmQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkludml0ZUtpbmRcIl0gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBsb2dpbiBNRkEgcG9saWN5ICovXG4gICAgICBtZmFfcG9saWN5PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIncyBmdWxsIG5hbWVcbiAgICAgICAqIEBleGFtcGxlIEFsaWNlIFdvbmRlcmxhbmRcbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgcm9sZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTa2lwIHNlbmRpbmcgYW4gaW52aXRhdGlvbiBlbWFpbCB0byB0aGlzIHVzZXIgaWYgdHJ1ZS5cbiAgICAgICAqXG4gICAgICAgKiBOT1RFOiB0aGlzIGZpZWxkIGlzIGZvciBpbnRlcm5hbCB0ZXN0aW5nIHVzZSBPTkxZLiBJZiB5b3UgZG8gbm90XG4gICAgICAgKiBzZW5kIGFuIGludml0YXRpb24gZW1haWwgKGFuZCB0aGUgaW52aXRlIGtpbmQgaXMgbm90IFNTTyksIHRoZSB1c2VyIHdpbGwgbmV2ZXIgYmUgYWJsZSB0byBsb2cgaW4uXG4gICAgICAgKiBAZXhhbXBsZSBmYWxzZVxuICAgICAgICovXG4gICAgICBza2lwX2VtYWlsPzogYm9vbGVhbjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSByZXF1ZXN0IGNvbnRhaW5pbmcgdGhlIGRhdGEgdGhhdCBhIFdhc20gcG9saWN5IHNob3VsZCBiZSBpbnZva2VkIHdpdGguICovXG4gICAgSW52b2tlUG9saWN5UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQW4gb3B0aW9uYWwgS2V5IElELiBJZiBkZWZpbmVkLCB0aGUgcG9saWN5IHdpbGwgYmUgaW52b2tlZCBhcyBpZiBpdCBpcyBzaWduaW5nXG4gICAgICAgKiB0aGUgbWVzc2FnZSB3aXRoIHRoaXMga2V5LlxuICAgICAgICovXG4gICAgICBrZXlfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgXCJyZXF1ZXN0IGJvZHlcIiB0aGF0IHNob3VsZCBiZSBzZW50IHRvIHRoZSBwb2xpY3kuICovXG4gICAgICByZXF1ZXN0PzogdW5rbm93bjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gb3B0aW9uYWwgUm9sZSBJRC4gSWYgYE5vbmVgLCB0aGUgcG9saWN5IHdpbGwgYmUgaW52b2tlZCBmcm9tIHRoZSBjdXJyZW50IHVzZXIgc2Vzc2lvbi4gKi9cbiAgICAgIHJvbGVfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzdWx0IG9mIGludm9raW5nIGEgV2FzbSBwb2xpY3kuICovXG4gICAgSW52b2tlUG9saWN5UmVzcG9uc2U6IHtcbiAgICAgIHJlc3BvbnNlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIldhc21Qb2xpY3lSZXNwb25zZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBieXRlcyB3cml0dGVuIHRvIGBzdGRlcnJgLCBlbmNvZGVkIGFzIGEgaGV4LXN0cmluZy5cbiAgICAgICAqIEluIG1vc3QgY2FzZXMsIHRoZXNlIGJ5dGVzIGNvcnJlc3BvbmQgdG8gYSBVVEYtOC1lbmNvZGVkIGBTdHJpbmdgLlxuICAgICAgICovXG4gICAgICBzdGRlcnI6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBieXRlcyB3cml0dGVuIHRvIGBzdGRvdXRgLCBlbmNvZGVkIGFzIGEgaGV4LXN0cmluZy5cbiAgICAgICAqIEluIG1vc3QgY2FzZXMsIHRoZXNlIGJ5dGVzIGNvcnJlc3BvbmQgdG8gYSBVVEYtOC1lbmNvZGVkIGBTdHJpbmdgLlxuICAgICAgICovXG4gICAgICBzdGRvdXQ6IHN0cmluZztcbiAgICB9O1xuICAgIEpycGNSZXNwb25zZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSZXNwb25zZVwiXSAmIFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQSBbYEtleVBhY2thZ2VgXSBzZXJpYWxpemVkIGludG8gYSBmb3JtYXQgdGhhdCBnaXZlcyBhIHRpZGllciBKU09OXG4gICAgICogcmVwcmVzZW50YXRpb24gc3VpdGFibGUgZm9yIGVuY3J5cHRpb24gaW4gdGhlIHVzZXItZXhwb3J0IGZsb3cuXG4gICAgICpcbiAgICAgKiBXZSBjb25zdHJ1Y3QgdmFsdWVzIG9mIHRoaXMgdHlwZSByYXRoZXIgdGhhbiBjb25zdHJ1Y3RpbmcgYHNlcmRlX2pzb246OlZhbHVlYHNcbiAgICAgKiBkaXJlY3RseSB3aXRoIGBqc29uISgpYCBiZWNhdXNlIHRoaXMgYWxsb3dzIHVzIHRvIHplcm9pemUgdmFsdWVzIG9uIGRyb3AsIHdoaWNoXG4gICAgICogZG9lc24ndCB3b3JrIHdpdGggYHNlcmRlX2pzb246OlZhbHVlYC5cbiAgICAgKlxuICAgICAqIEV4YW1wbGVzIG9mIHNlcmlhbGl6ZWQgbWF0ZXJpYWw6XG4gICAgICpcbiAgICAgKiAtIGBKc29uS2V5TWF0ZXJpYWw6OkVuZ2xpc2hNbmVtb25pY2A6XG4gICAgICpcbiAgICAgKiBgYGBcbiAgICAgKiB1c2UgY3ViaXN0X3NpZ25lcl91dGlsczo6e1xuICAgICAqIERlcml2YXRpb25QYXRoLCBLZXlQYWNrYWdlLCBNbmVtb25pYywgTW5lbW9uaWNQYWNrYWdlLCBTZWNwMjU2azFQa2csXG4gICAgICogfTtcbiAgICAgKiB1c2Ugc2VyZGVfanNvbjo6anNvbjtcbiAgICAgKlxuICAgICAqIGNvbnN0IE1ORU1PTklDOiAmc3RyID0gXCJkZXBvc2l0IGZpc2NhbCBicmFpbiBzd2FybSBzdXJyb3VuZCBjb3VzaW4gaG9ybiBnbGFyZSBmaXggbG92ZSByZW5kZXIgYmVsaWV2ZSBndWlkZSBzaHVmZmxlIHN0ZW0gY3JhbSBicm9jY29saSByZXNlbWJsZSBiZWFjaCBhcnRlZmFjdCBsYW5ndWFnZSBnaWZ0IGphciBwZXJtaXRcIjtcbiAgICAgKiBjb25zdCBERVJfUEFUSDogJnN0ciA9IFwibS80NCcvNjAnLzAnLzAvMFwiO1xuICAgICAqIGNvbnN0IEtFWV9UWVBFOiAmc3RyID0gXCJlY2RzYTpzZWNwMjU2azFcIjtcbiAgICAgKlxuICAgICAqIGxldCBtbmUgPSBNbmVtb25pYzo6dHJ5X2Zyb20oTU5FTU9OSUMpLmV4cGVjdChcImdvb2QgbW5lbW9uaWNcIik7XG4gICAgICogbGV0IGRlcnAgPSBEZXJpdmF0aW9uUGF0aDo6dHJ5X2Zyb20oREVSX1BBVEgpLmV4cGVjdChcImdvb2QgZGVyIHBhdGhcIik7XG4gICAgICogbGV0IG1uZV9wa2cgPSBNbmVtb25pY1BhY2thZ2U6Om5ldyhtbmUsIFwiXCIsIGRlcnApO1xuICAgICAqIGxldCBrZXlfcGtnID0gS2V5UGFja2FnZTo6PFNlY3AyNTZrMVBrZz46OkVuZ2xpc2hNbmVtb25pYyhtbmVfcGtnKTtcbiAgICAgKiBsZXQganNvbl9wa2cgPSBrZXlfcGtnLmludG9fanNvbihLRVlfVFlQRSk7XG4gICAgICpcbiAgICAgKiBsZXQganNvbl9leHBlY3QgPSBqc29uISh7XG4gICAgICogXCJrZXlfdHlwZVwiOiBLRVlfVFlQRSxcbiAgICAgKiBcIm1hdGVyaWFsX3R5cGVcIjogXCJlbmdsaXNoX21uZW1vbmljXCIsXG4gICAgICogXCJtbmVtb25pY1wiOiBNTkVNT05JQyxcbiAgICAgKiBcInBhc3N3b3JkXCI6IFwiXCIsXG4gICAgICogXCJkZXJpdmF0aW9uX3BhdGhcIjogREVSX1BBVEgsXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBhc3NlcnRfZXEhKFxuICAgICAqIHNlcmRlX2pzb246OnRvX3ZhbHVlKCZqc29uX3BrZykuZXhwZWN0KFwianNvbiBzZXJpYWxpemF0aW9uXCIpLFxuICAgICAqIGpzb25fZXhwZWN0LFxuICAgICAqICk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiAtIGBKc29uS2V5TWF0ZXJpYWw6OlJhd1NlY3JldGA6XG4gICAgICpcbiAgICAgKiBgYGBcbiAgICAgKiB1c2UgY3ViaXN0X3NpZ25lcl91dGlsczo6e1xuICAgICAqIGdldF9yYW5kb21fYnl0ZV9hcnJheSwgaGV4X2VuY29kZSwgS2V5UGFja2FnZSwgUm5nQ29yZSwgU2VjcDI1NmsxUGtnLFxuICAgICAqIH07XG4gICAgICogdXNlIHNlcmRlX2pzb246Ompzb247XG4gICAgICpcbiAgICAgKiBjb25zdCBLRVlfVFlQRTogJnN0ciA9IFwiZWNkc2E6c2VjcDI1NmsxXCI7XG4gICAgICpcbiAgICAgKiAvLyByYW5kb20gMzItYnl0ZSBzZWNyZXRcbiAgICAgKiBsZXQgc2s6IFt1ODsgMzJdID0gKmdldF9yYW5kb21fYnl0ZV9hcnJheSgpO1xuICAgICAqXG4gICAgICogbGV0IGtleV9wa2cgPSBLZXlQYWNrYWdlOjo8U2VjcDI1NmsxUGtnPjo6U2VjcmV0KHNrKTtcbiAgICAgKiBsZXQganNvbl9wa2cgPSBrZXlfcGtnLmludG9fanNvbihLRVlfVFlQRSk7XG4gICAgICpcbiAgICAgKiBsZXQganNvbl9leHBlY3QgPSBqc29uISh7XG4gICAgICogXCJrZXlfdHlwZVwiOiBLRVlfVFlQRSxcbiAgICAgKiBcIm1hdGVyaWFsX3R5cGVcIjogXCJyYXdfc2VjcmV0XCIsXG4gICAgICogXCJzZWNyZXRcIjogaGV4X2VuY29kZSgmc2spLFxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogYXNzZXJ0X2VxIShcbiAgICAgKiBzZXJkZV9qc29uOjp0b192YWx1ZSgmanNvbl9wa2cpLmV4cGVjdChcImpzb24gc2VyaWFsaXphdGlvblwiKSxcbiAgICAgKiBqc29uX2V4cGVjdCxcbiAgICAgKiApO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEpzb25LZXlQYWNrYWdlOiAoXG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtYXRlcmlhbF90eXBlOiBcInJhd19zZWNyZXRcIjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB2YWx1ZSBvZiB0aGUgcmF3IHNlY3JldCAqL1xuICAgICAgICAgIHNlY3JldDogc3RyaW5nO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBkZXJpdmF0aW9uIHBhdGggKi9cbiAgICAgICAgICBkZXJpdmF0aW9uX3BhdGg6IHN0cmluZztcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtYXRlcmlhbF90eXBlOiBcImVuZ2xpc2hfbW5lbW9uaWNcIjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtbmVtb25pYyAqL1xuICAgICAgICAgIG1uZW1vbmljOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcGFzc3dvcmQgKHdoaWNoIG1heSBiZSBlbXB0eSkgKi9cbiAgICAgICAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgICAgICB9XG4gICAgKSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHR5cGUgb2Yga2V5IHRoaXMgcGFja2FnZSByZXByZXNlbnRzICovXG4gICAgICBrZXlfdHlwZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgdG9wLWxldmVsIEpTT04tUlBDIHJlcXVlc3QgdHlwZS4gKi9cbiAgICBKc29uUnBjUmVxdWVzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJScGNNZXRob2RcIl0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFJlcXVlc3QgSUQgKi9cbiAgICAgIGlkPzogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBKU09OLVJQQyB2ZXJzaW9uLiAqL1xuICAgICAganNvbnJwYzogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgUlBDIEFQSSdzIHJlc3BvbnNlLiAqL1xuICAgIEpzb25ScGNSZXNwb25zZToge1xuICAgICAgZXJyb3I/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yT2JqXCJdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSUQgZnJvbSB0aGUgY29ycmVzcG9uZGluZyByZXF1ZXN0LiAqL1xuICAgICAgaWQ/OiB1bmtub3duO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDb25zdGFudCBcIjIuMFwiLiAqL1xuICAgICAganNvbnJwYzogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBSZXN1bHQsIGlmIHN1Y2Nlc3MuICovXG4gICAgICByZXN1bHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFZhbGlkIGByZXN1bHRgIGZyb20gdGhlIEpTT04tUlBDIEFQSS4gKi9cbiAgICBKc29uUnBjUmVzdWx0OlxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRyYW5zYWN0aW9uSW5mb1wiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkxpc3RUcmFuc2FjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN1YkFjY291bnRUcmFuc2ZlclJlc3BvbnNlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVW5pdmVyc2FsVHJhbnNmZXJSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN1YkFjY291bnRBc3NldHNSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY291bnRJbmZvUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdWJBY2NvdW50VHJhbnNmZXJIaXN0b3J5UmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIldpdGhkcmF3UmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJXaXRoZHJhd0hpc3RvcnlSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcG9zaXRSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcG9zaXRIaXN0b3J5UmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJMaXN0U3ViQWNjb3VudHNSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5JbmZvUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdWJBY2NvdW50RGVwb3NpdEFkZHJlc3NSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0UXVlcnlVc2VyUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFF1ZXJ5U3ViTWVtYmVyc1Jlc3BvbnNlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeUNvaW5zQmFsYW5jZVJlc3BvbnNlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeURlcG9zaXRBZGRyZXNzUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFVuaXZlcnNhbFRyYW5zZmVyUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFdpdGhkcmF3UmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFdpdGhkcmF3YWxzUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdENvaW5JbmZvUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdERlcG9zaXRIaXN0b3J5UmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVJlc3BvbnNlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeVdpdGhkcmF3QWRkcmVzc1Jlc3BvbnNlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeVN1YkRlcG9zaXRBZGRyZXNzUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb2luYmFzZUxpc3RBY2NvdW50c1Jlc3BvbnNlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29pbmJhc2VMaXN0UG9ydGZvbGlvc1Jlc3BvbnNlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29pbmJhc2VNb3ZlRnVuZHNSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ0Y0xpc3RVdHhvc1Jlc3BvbnNlXCJdO1xuICAgIEp3a1NldFJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBrZXlzIGluY2x1ZGVkIGluIHRoaXMgc2V0ICovXG4gICAgICBrZXlzOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICB9O1xuICAgIEtleUF0dGVzdGF0aW9uQ2xhaW1zOiB7XG4gICAgICBleHA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIGlhdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAga2V5X2luZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5mb1wiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSWYgcmVxdWVzdGVkLCB0aGUgcm9sZXMgdGhlIGtleSBpcyBjdXJyZW50bHkgaW4uICovXG4gICAgICBrZXlfcm9sZXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluUm9sZUluZm9cIl1bXSB8IG51bGw7XG4gICAgfTtcbiAgICBLZXlDb3VudERpbWVuc2lvbnM6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGtleSB0eXBlICovXG4gICAgICBrZXlfdHlwZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgbWV0cmljcyBtdXN0IGluY2x1ZGUgJ29yZ19pZCcgYXMgYSBkaW1lbnNpb24uICovXG4gICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gRGVyaXZhdGlvbi1yZWxhdGVkIG1ldGFkYXRhIGZvciBrZXlzIGRlcml2ZWQgZnJvbSBhIGxvbmctbGl2ZWQgbW5lbW9uaWMgKi9cbiAgICBLZXlEZXJpdmF0aW9uSW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZGVyaXZhdGlvbiBwYXRoIHVzZWQgdG8gZGVyaXZlIHRoaXMga2V5ICovXG4gICAgICBkZXJpdmF0aW9uX3BhdGg6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG1uZW1vbmljLWlkIG9mIHRoZSBrZXkncyBwYXJlbnQgbW5lbW9uaWMgKi9cbiAgICAgIG1uZW1vbmljX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgd3JhcHBlZCBrZXktaW1wb3J0IGtleSAqL1xuICAgIEtleUltcG9ydEtleToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYXNlNjQtZW5jb2RlZCwgZW5jcnlwdGVkIGRhdGEga2V5LiAqL1xuICAgICAgZGtfZW5jOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBFeHBpcmF0aW9uIHRpbWVzdGFtcCBleHByZXNzZWQgYXMgc2Vjb25kcyBzaW5jZSB0aGUgVU5JWCBlcG9jaC5cbiAgICAgICAqL1xuICAgICAgZXhwaXJlczogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVwaGVtZXJhbCBwdWJsaWMga2V5IHRvIHdoaWNoIGFuIGltcG9ydGVkIGtleSBzaG91bGQgYmUgZW5jcnlwdGVkLlxuICAgICAgICogVGhpcyBpcyBhIFAzODQgcHVibGljIGtleSBpbiBiYXNlNjQtZW5jb2RlZCB1bmNvbXByZXNzZWQgU0VDRyBmb3JtYXQuXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXk6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmFzZTY0LWVuY29kZWQsIGVuY3J5cHRlZCBzZWNyZXQga2V5LiAqL1xuICAgICAgc2tfZW5jOiBzdHJpbmc7XG4gICAgfTtcbiAgICBLZXlJblJvbGVJbmZvOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBLZXkgSURcbiAgICAgICAqIEBleGFtcGxlIEtleSMweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAqL1xuICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICBrZXlfaW5mbz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5mb1wiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQb2xpY2llcyB0aGF0IGFyZSBjaGVja2VkIGJlZm9yZSB0aGlzIGtleSBpcyB1c2VkIG9uIGJlaGFsZiBvZiB0aGlzIHJvbGVcbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiVHhSZWNlaXZlclwiOiBcIjB4OGM1OTQ2OTFjMGU1OTJmZmEyMWYxNTNhMTZhZTQxZGI1YmVmY2FhYVwiXG4gICAgICAgKiAgIH0sXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlR4RGVwb3NpdFwiOiB7XG4gICAgICAgKiAgICAgICBcImtpbmRcIjogXCJDYW5vbmljYWxcIlxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJvbGUgSURcbiAgICAgICAqIEBleGFtcGxlIFJvbGUjZTQyN2MyOGEtOWM1Yi00OWNjLWEyNTctODc4YWVhNThhMjJjXG4gICAgICAgKi9cbiAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIEtleUluZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29tbW9uRmllbGRzXCJdICYge1xuICAgICAgZGVyaXZhdGlvbl9pbmZvPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlEZXJpdmF0aW9uSW5mb1wiXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIGtleSBpcyBlbmFibGVkIChvbmx5IGVuYWJsZWQga2V5cyBtYXkgYmUgdXNlZCBmb3Igc2lnbmluZykgKi9cbiAgICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGtleTogXCJLZXkjXCIgZm9sbG93ZWQgYnkgYSB1bmlxdWUgaWRlbnRpZmllciBzcGVjaWZpYyB0b1xuICAgICAgICogdGhlIHR5cGUgb2Yga2V5IChzdWNoIGFzIGEgcHVibGljIGtleSBmb3IgQkxTIG9yIGFuIGV0aGVyZXVtIGFkZHJlc3MgZm9yIFNlY3ApXG4gICAgICAgKiBAZXhhbXBsZSBLZXkjMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAgICAgKi9cbiAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgdW5pcXVlIGlkZW50aWZpZXIgc3BlY2lmaWMgdG8gdGhlIHR5cGUgb2Yga2V5LCBzdWNoIGFzIGEgcHVibGljIGtleSBvciBhbiBldGhlcmV1bSBhZGRyZXNzXG4gICAgICAgKiBAZXhhbXBsZSAweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAqL1xuICAgICAgbWF0ZXJpYWxfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE93bmVyIG9mIHRoZSBrZXlcbiAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgKi9cbiAgICAgIG93bmVyOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBLZXkgcG9saWN5XG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwiQWxsb3dSYXdCbG9iU2lnbmluZ1wiLFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJSZXF1aXJlTWZhXCI6IHtcbiAgICAgICAqICAgICAgIFwiY291bnRcIjogMVxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k6IHVua25vd25bXTtcbiAgICAgIHByb3BlcnRpZXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVByb3BlcnRpZXNQYXRjaFwiXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBrZXkgcHJvdmVuYW5jZS4gKi9cbiAgICAgIHByb3ZlbmFuY2U/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQsIHNlcmlhbGl6ZWQgcHVibGljIGtleS4gVGhlIGZvcm1hdCB1c2VkIGRlcGVuZHMgb24gdGhlIGtleSB0eXBlOlxuICAgICAgICogLSBTZWNwMjU2azEga2V5cyB1c2UgNjUtYnl0ZSB1bmNvbXByZXNzZWQgU0VDRyBmb3JtYXQ7XG4gICAgICAgKiAtIFN0YXJrIGtleXMgdXNlIDMzLWJ5dGUgY29tcHJlc3NlZCBTRUNHIGZvcm1hdDtcbiAgICAgICAqIC0gQkxTIGtleXMgdXNlIDQ4LWJ5dGUgY29tcHJlc3NlZCBCTFMxMi0zODEgKFpDYXNoKSBmb3JtYXQ7XG4gICAgICAgKiAtIEVkMjU1MTkga2V5cyB1c2UgdGhlIGNhbm9uaWNhbCAzMi1ieXRlIGVuY29kaW5nIHNwZWNpZmllZCBpbiBSRkMgODAzMi5cbiAgICAgICAqIEBleGFtcGxlIDB4MDRkMjY4OGI2YmMyY2U3Zjk4NzliOWU3NDVmM2M0ZGMxNzc5MDhjNWNlZjBjMWI2NGNmZjE5YWU3ZmYyN2RlZTYyM2M2NGZlOWQ5YzMyNWM3ZmJiYzc0OGJiZDVmNjA3Y2UxNGRkODNlMjhlYmJiYjdkM2U3ZjJmZmI3MGE3OTQzMVxuICAgICAgICovXG4gICAgICBwdWJsaWNfa2V5OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcHVycG9zZSBmb3Igd2hpY2ggdGhlIGtleSBjYW4gYmUgdXNlZCAoZS5nLiwgY2hhaW4gaWQgZm9yIHdoaWNoIHRoZSBrZXkgaXMgYWxsb3dlZCB0byBzaWduIG1lc3NhZ2VzKVxuICAgICAgICogQGV4YW1wbGUgRXRoMlZhbGlkYXRvcigxKVxuICAgICAgICovXG4gICAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZWdpb24gYWZmaW5pdHkgZm9yIHRoaXMga2V5ICovXG4gICAgICByZWdpb24/OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIHdoZW4gcmVxdWVzdGluZyBhIGtleSBhdHRlc3RhdGlvbi4gKi9cbiAgICBLZXlJbmZvSnd0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgSlNPTiBXZWIgVG9rZW4gd2hvc2UgY2xhaW1zIGNvbnRhaW4gdGhlIGBLZXlJbmZvYCBzdHJ1Y3R1cmUuICovXG4gICAgICBqd3Q6IHN0cmluZztcbiAgICB9O1xuICAgIEtleUluZm9zOiB7XG4gICAgICBrZXlzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluZm9cIl1bXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDbGllbnQtc2lkZSB3aXJlIHBheWxvYWQgZm9yIFtgS2V5UHJvcGVydGllc2BdLiBVc2VkIGluIGJvdGggZGlyZWN0aW9uczpcbiAgICAgKlxuICAgICAqIC0gKipPbiB3cml0ZSoqOiBhICpwYXRjaCosIGkuZS4sIGZvciBlYWNoIGZpZWxkLCBtaXNzaW5nIG1lYW5zIFwibGVhdmUgYWxvbmVcIixcbiAgICAgKiBgbnVsbGAgbWVhbnMgXCJjbGVhclwiLCBhbmQgYSB2YWx1ZSBtZWFucyBcInNldFwiLiBTZWNyZXQgZmllbGRzIGFycml2ZSBpbiB0aGVcbiAgICAgKiBjbGVhciBhbmQgYXJlIGVuY3J5cHRlZCBzZXJ2ZXItc2lkZSBiZWZvcmUgcGVyc2lzdGluZy5cbiAgICAgKiAtICoqT24gcmVhZCoqOiBlYWNoIGZpZWxkIGlzIG9taXR0ZWQgd2hlbiB0aGUgc3RvcmVkIHByb3BlcnR5IGlzIHVuc2V0OyBzZWNyZXRcbiAgICAgKiBmaWVsZHMgYXJlIGVtaXR0ZWQgd2l0aCB0aGUgcmVkYWN0ZWQgbWFya2VyIChlLmcuIFwiW1JFREFDVEVEXVwiKS5cbiAgICAgKi9cbiAgICBLZXlQcm9wZXJ0aWVzUGF0Y2g6IE9uZU9mPFxuICAgICAgW1xuICAgICAgICBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VBcGlQcm9wZXJ0aWVzUGF0Y2hcIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAga2luZDogXCJCaW5hbmNlQXBpXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29pbmJhc2VBcGlQcm9wZXJ0aWVzUGF0Y2hcIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAga2luZDogXCJDb2luYmFzZUFwaVwiO1xuICAgICAgICB9LFxuICAgICAgICBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0QXBpUHJvcGVydGllc1BhdGNoXCJdICYge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIGtpbmQ6IFwiQnliaXRBcGlcIjtcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICA+O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIEtleVR5cGU6XG4gICAgICB8IFwiU2VjcEV0aEFkZHJcIlxuICAgICAgfCBcIlNlY3BCdGNcIlxuICAgICAgfCBcIlNlY3BCdGNUZXN0XCJcbiAgICAgIHwgXCJTZWNwQnRjTGVnYWN5XCJcbiAgICAgIHwgXCJTZWNwQnRjTGVnYWN5VGVzdFwiXG4gICAgICB8IFwiU2VjcEF2YUFkZHJcIlxuICAgICAgfCBcIlNlY3BBdmFUZXN0QWRkclwiXG4gICAgICB8IFwiQmxzUHViXCJcbiAgICAgIHwgXCJCbHNJbmFjdGl2ZVwiXG4gICAgICB8IFwiQmxzQXZhSWNtXCJcbiAgICAgIHwgXCJFZDI1NTE5U29sYW5hQWRkclwiXG4gICAgICB8IFwiRWQyNTUxOVN1aUFkZHJcIlxuICAgICAgfCBcIkVkMjU1MTlBcHRvc0FkZHJcIlxuICAgICAgfCBcIkVkMjU1MTlDYXJkYW5vQWRkclZrXCJcbiAgICAgIHwgXCJFZDI1NTE5U3RlbGxhckFkZHJcIlxuICAgICAgfCBcIkVkMjU1MTlTdWJzdHJhdGVBZGRyXCJcbiAgICAgIHwgXCJFZDI1NTE5Q2FudG9uQWRkclwiXG4gICAgICB8IFwiRWQyNTUxOUJpbmFuY2VBcGlcIlxuICAgICAgfCBcIkVkMjU1MTlDb2luYmFzZUFwaVwiXG4gICAgICB8IFwiTW5lbW9uaWNcIlxuICAgICAgfCBcIlN0YXJrXCJcbiAgICAgIHwgXCJCYWJ5bG9uRW90c1wiXG4gICAgICB8IFwiQmFieWxvbkNvdlwiXG4gICAgICB8IFwiVGFwcm9vdEJ0Y1wiXG4gICAgICB8IFwiVGFwcm9vdEJ0Y1Rlc3RcIlxuICAgICAgfCBcIlNlY3BDb3Ntb3NBZGRyXCJcbiAgICAgIHwgXCJQMjU2Q29zbW9zQWRkclwiXG4gICAgICB8IFwiUDI1Nk9udG9sb2d5QWRkclwiXG4gICAgICB8IFwiUDI1Nk5lbzNBZGRyXCJcbiAgICAgIHwgXCJFZDI1NTE5VGVuZGVybWludEFkZHJcIlxuICAgICAgfCBcIlNlY3BUcm9uQWRkclwiXG4gICAgICB8IFwiRWQyNTUxOVRvbkFkZHJcIlxuICAgICAgfCBcIlNlY3BEb2dlQWRkclwiXG4gICAgICB8IFwiU2VjcERvZ2VUZXN0QWRkclwiXG4gICAgICB8IFwiU2VjcEthc3BhQWRkclwiXG4gICAgICB8IFwiU2VjcEthc3BhVGVzdEFkZHJcIlxuICAgICAgfCBcIlNjaG5vcnJLYXNwYUFkZHJcIlxuICAgICAgfCBcIlNjaG5vcnJLYXNwYVRlc3RBZGRyXCJcbiAgICAgIHwgXCJTZWNwTHRjXCJcbiAgICAgIHwgXCJTZWNwTHRjVGVzdFwiXG4gICAgICB8IFwiU2VjcFhycEFkZHJcIlxuICAgICAgfCBcIkVkMjU1MTlYcnBBZGRyXCJcbiAgICAgIHwgXCJCYWJ5SnVianViXCJcbiAgICAgIHwgXCJIbWFjU2hhMjU2XCJcbiAgICAgIHwgXCJIbWFjU2hhMjU2QnliaXRcIjtcbiAgICBLZXlUeXBlQW5kRGVyaXZhdGlvblBhdGg6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIExpc3Qgb2YgZGVyaXZhdGlvbiBwYXRocyBmb3Igd2hpY2ggdG8gZGVyaXZlLlxuICAgICAgICogQGV4YW1wbGUgbS80NCcvNjAnLzAnLzAvMFxuICAgICAgICovXG4gICAgICBkZXJpdmF0aW9uX3BhdGg6IHN0cmluZztcbiAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQb2xpY2llcyB0byBhcHBseSB0byB0aGlzIGtleS4gSXQgaXMgYW4gZXJyb3IgdG8gc3BlY2lmeSBhIHBvbGljeVxuICAgICAgICogdGhhdCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIGBrZXlfdHlwZWAuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwiQWxsb3dSYXdCbG9iU2lnbmluZ1wiLFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJSZXF1aXJlTWZhXCI6IHtcbiAgICAgICAqICAgICAgIFwiY291bnRcIjogMVxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiB1bmtub3duW10gfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdyYXBwZXIgYXJvdW5kIGVuY3J5cHRlZCBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gYnl0ZXMuXG4gICAgICpcbiAgICAgKiBXZSBzZXJpYWxpemUgdGhpcyBpbnRvIGEgYmFzZTY0dXJsLWVuY29kZWQgc3RyaW5nIGFuZCByZXR1cm4gdG8gdGhlIHVzZXJcbiAgICAgKiBzbyB0aGF0IHRoZXkgY2FuIHBhc3MgdGhpcyBiYWNrIHRvIHVzIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgKi9cbiAgICBMYXN0RXZhbEtleTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgY3NfY29pbmJhc2VMaXN0QWNjb3VudHNgLlxuICAgICAqXG4gICAgICogQ29pbmJhc2UgZW5kcG9pbnQ6IGBHRVQgL2FwaS92My9icm9rZXJhZ2UvYWNjb3VudHNgLlxuICAgICAqXG4gICAgICogTGlzdHMgdGhlIGJyb2tlcmFnZSBhY2NvdW50cyB0aGUgY2FsbGluZyBrZXkgY2FuIHNlZS4gQWxsIGZpbHRlcnMgYXJlXG4gICAgICogb3B0aW9uYWw7IENvaW5iYXNlIHBhZ2luYXRlcyB0aGUgcmVzdWx0IHZpYSBgY3Vyc29yYCAvIGBoYXNfbmV4dGAuXG4gICAgICovXG4gICAgTGlzdEFjY291bnRzUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDdXJzb3IgZnJvbSBhIHByZXZpb3VzIHJlc3BvbnNlJ3MgW2BDb2luYmFzZUxpc3RBY2NvdW50c1Jlc3BvbnNlOjpjdXJzb3JgXS4gKi9cbiAgICAgIGN1cnNvcj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQYWdlIHNpemUgKENvaW5iYXNlIGRlZmF1bHQ6IDQ5LCBtYXg6IDI1MCkuXG4gICAgICAgKi9cbiAgICAgIGxpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRmlsdGVyIHRvIGEgc3BlY2lmaWMgcmV0YWlsIHBvcnRmb2xpby4gKi9cbiAgICAgIHJldGFpbF9wb3J0Zm9saW9faWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGlyZC1wYXJ0eSBpZGVudGl0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlcidzIGFjY291bnQgKi9cbiAgICBMaXN0SWRlbnRpdGllc1Jlc3BvbnNlOiB7XG4gICAgICBpZGVudGl0aWVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkZW50aXR5SW5mb1wiXVtdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMaXN0IG9mIHBlbmRpbmcgaW52aXRhdGlvbnMgKi9cbiAgICBMaXN0SW52aXRhdGlvbnNSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQZW5kaW5nIGludml0YXRpb25zICovXG4gICAgICBpbnZpdGF0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbnZpdGF0aW9uSW5mb1wiXVtdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgcGVuZGluZyBNTUkgcmVxdWVzdHMgY3JlYXRlZCBieSB0aGUgY3VycmVudCB1c2VyLiAqL1xuICAgIExpc3RQZW5kaW5nTWVzc2FnZXNSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgcGVuZGluZyBtZXNzYWdlcyBmb3IgYSB1c2VyLiAqL1xuICAgICAgcGVuZGluZ19tZXNzYWdlczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQZW5kaW5nTWVzc2FnZUluZm9cIl1bXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgY3NfY29pbmJhc2VMaXN0UG9ydGZvbGlvc2AuXG4gICAgICpcbiAgICAgKiBDb2luYmFzZSBlbmRwb2ludDogYEdFVCAvYXBpL3YzL2Jyb2tlcmFnZS9wb3J0Zm9saW9zYC5cbiAgICAgKi9cbiAgICBMaXN0UG9ydGZvbGlvc1JlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEZpbHRlciBieSBwb3J0Zm9saW8gdHlwZSAoZS5nLiBgXCJERUZBVUxUXCJgLCBgXCJDT05TVU1FUlwiYCwgYFwiSU5UWFwiYCkuXG4gICAgICAgKiBMZWZ0IGFzIGBTdHJpbmdgIGZvciBmb3J3YXJkIGNvbXBhdGliaWxpdHkuXG4gICAgICAgKi9cbiAgICAgIHBvcnRmb2xpb190eXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgR0VUIC9zYXBpL3YxL3N1Yi1hY2NvdW50L2xpc3RgLlxuICAgICAqXG4gICAgICogRW51bWVyYXRlcyB0aGUgc3ViLWFjY291bnRzIHVuZGVyIHRoZSBjYWxsaW5nIG1hc3RlciBhY2NvdW50LiBBbGwgZmlsdGVyc1xuICAgICAqIGFyZSBvcHRpb25hbDsgaWYgYGVtYWlsYC9gaXNfZnJlZXplYCBhcmUgb21pdHRlZCwgZXZlcnkgc3ViLWFjY291bnQgaXNcbiAgICAgKiByZXR1cm5lZCBzdWJqZWN0IHRvIHBhZ2luYXRpb24uXG4gICAgICovXG4gICAgTGlzdFN1YkFjY291bnRzUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgdG8gdGhlIHN1Yi1hY2NvdW50IHdpdGggdGhpcyBlbWFpbC4gKi9cbiAgICAgIGVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEZpbHRlciBieSBmcmVlemUgc3RhdHVzIChgdHJ1ZWAgPSBmcm96ZW4gc3ViLWFjY291bnRzIG9ubHksXG4gICAgICAgKiBgZmFsc2VgID0gYWN0aXZlIHN1Yi1hY2NvdW50cyBvbmx5KS4gQmluYW5jZSBhY2NlcHRzIHRoaXMgYXMgdGhlXG4gICAgICAgKiBsaXRlcmFsIHN0cmluZ3MgYFwidHJ1ZVwiYC9gXCJmYWxzZVwiYCwgd2hpY2ggaXMgZXhhY3RseSB3aGF0XG4gICAgICAgKiBgc2VyZGVfdXJsZW5jb2RlZGAgZW1pdHMgZm9yIGBib29sYC5cbiAgICAgICAqL1xuICAgICAgaXNGcmVlemU/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFBhZ2Ugc2l6ZSAoQmluYW5jZSBkZWZhdWx0OiAxLCBtYXg6IDIwMCkuXG4gICAgICAgKi9cbiAgICAgIGxpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIDEtYmFzZWQgcGFnZSBudW1iZXIgKEJpbmFuY2UgZGVmYXVsdDogMSkuXG4gICAgICAgKi9cbiAgICAgIHBhZ2U/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19iaW5hbmNlTGlzdFN1YkFjY291bnRzYC4gQmluYW5jZSByZXR1cm5zIGFcbiAgICAgKiBgeyBcInN1YkFjY291bnRzXCI6IFsuLi5dIH1gIGVudmVsb3BlOyB0aGlzIHN0cnVjdCBwcmVzZXJ2ZXMgdGhhdCB3aXJlXG4gICAgICogZm9ybWF0LlxuICAgICAqL1xuICAgIExpc3RTdWJBY2NvdW50c1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSBlbnRyeSBwZXIgc3ViLWFjY291bnQgbWF0Y2hpbmcgdGhlIHJlcXVlc3QgZmlsdGVycy4gKi9cbiAgICAgIHN1YkFjY291bnRzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN1YkFjY291bnRJbmZvXCJdW107XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdHlwZSB0aGF0IHdyYXBzIGFub3RoZXIgdHlwZSBhbmQgYWRkcyBiYXNlNjR1cmwtZW5jb2RlZCBlbmNyeXB0ZWQgYGxhc3RfZXZhbHVhdGVkX2tleWBcbiAgICAgKiB2YWx1ZSAod2hpY2ggY2FuIHRoZSB1c2VyIHBhc3MgYmFjayB0byB1c2UgYXMgYSB1cmwgcXVlcnkgcGFyYW1ldGVyIHRvIGNvbnRpbnVlIHBhZ2luYXRpb24pLlxuICAgICAqL1xuICAgIExpc3RUcmFuc2FjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGxpc3Qgb2YgdHJhbnNhY3Rpb24gaW5mb3MuICovXG4gICAgICB0cmFuc2FjdGlvbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVHJhbnNhY3Rpb25JbmZvXCJdW107XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgKi9cbiAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIHRoZSBbYGNzX2xpc3RUcmFuc2FjdGlvbnNgXShScGNNZXRob2Q6Okxpc3RUcmFuc2FjdGlvbnMpIG1ldGhvZC4gKi9cbiAgICBMaXN0VHJhbnNhY3Rpb25zUmVxdWVzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQYWdlXCJdICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgdXNlciBvciByb2xlIGlkLlxuICAgICAgICpcbiAgICAgICAqIElmIGRlZmluZWQsIHRoZSByZXNwb25zZSBpcyBmaWx0ZXJlZCB0byB0cmFuc2FjdGlvbnMgY3JlYXRlZCBieSB0aGUgZ2l2ZW4gaWQuXG4gICAgICAgKi9cbiAgICAgIG93bmVyPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIHRvIFtgY3NfbGlzdFRyYW5zYWN0aW9uc2BdKHN1cGVyOjpyZXF1ZXN0OjpDc1JwYzo6TGlzdFRyYW5zYWN0aW9ucykgKi9cbiAgICBMaXN0VHJhbnNhY3Rpb25zUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBsaXN0IG9mIHRyYW5zYWN0aW9uIGluZm9zLiAqL1xuICAgICAgdHJhbnNhY3Rpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRyYW5zYWN0aW9uSW5mb1wiXVtdO1xuICAgIH07XG4gICAgTG9naW5SZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9pZGNMb2dpblJlcXVlc3RcIl07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERlc2NyaWJlcyB3aGV0aGVyIGEgdXNlciBpbiBhbiBvcmcgaXMgYW4gT3duZXIgb3IganVzdCBhIHJlZ3VsYXIgbWVtYmVyXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBNZW1iZXJSb2xlOiBcIkFsaWVuXCIgfCBcIk1lbWJlclwiIHwgXCJPd25lclwiO1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIE1lbWJlcnNoaXBTdGF0dXM6IFwiZW5hYmxlZFwiIHwgXCJkaXNhYmxlZFwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5hbWUgb2YgdGhlIG1ldHJpYyB0byBjb21wdXRlICovXG4gICAgTWV0cmljTmFtZTpcbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPcmdNZXRyaWNEaXNjcmltaW5hbnRzXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVHNRdWVyeU5hbWVcIl07XG4gICAgLyoqXG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJhbGxvd2VkX2FwcHJvdmVyc1wiOiBbXG4gICAgICogICAgIFwiVXNlciNmYWJjM2Y4OC0wNGUwLTQ3MWItOTY1Ny0wYWUxMmEzY2Q3M2VcIixcbiAgICAgKiAgICAgXCJVc2VyI2Q3OTZjMzY5LTk5NzQtNDczYi1hYjllLWU0YTI0MThkMmQwN1wiXG4gICAgICogICBdLFxuICAgICAqICAgXCJjb3VudFwiOiAyLFxuICAgICAqICAgXCJsaWZldGltZVwiOiA5MDBcbiAgICAgKiB9XG4gICAgICovXG4gICAgTWZhUG9saWN5OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBVc2VycyB3aG8gYXJlIGFsbG93ZWQgdG8gYXBwcm92ZS4gSWYgZW1wdHksIHRoZSBjdXJyZW50IHVzZXJcbiAgICAgICAqIHdpbGwgYmUgaW5zZXJ0ZWQgYnkgZGVmYXVsdC5cbiAgICAgICAqL1xuICAgICAgYWxsb3dlZF9hcHByb3ZlcnM/OiBzdHJpbmdbXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsb3dlZCBhcHByb3ZhbCB0eXBlcy4gV2hlbiBvbWl0dGVkLCBkZWZhdWx0cyB0byBhbnkuICovXG4gICAgICBhbGxvd2VkX21mYV90eXBlcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhVHlwZVwiXVtdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIEhvdyBtYW55IHVzZXJzIG11c3QgYXBwcm92ZSAoZGVmYXVsdHMgdG8gMSkuXG4gICAgICAgKi9cbiAgICAgIGNvdW50PzogbnVtYmVyO1xuICAgICAgbGlmZXRpbWU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZHNcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBIb3cgbWFueSBhdXRoIGZhY3RvcnMgdG8gcmVxdWlyZSBwZXIgdXNlciAoZGVmYXVsdHMgdG8gMSkuXG4gICAgICAgKi9cbiAgICAgIG51bV9hdXRoX2ZhY3RvcnM/OiBudW1iZXI7XG4gICAgICByZXF1ZXN0X2NvbXBhcmVyPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJIdHRwUmVxdWVzdENtcFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEN1YmVTaWduZXIgb3BlcmF0aW9ucyB0byB3aGljaCB0aGlzIHBvbGljeSBzaG91bGQgYXBwbHkuXG4gICAgICAgKiBXaGVuIG9taXR0ZWQsIGFwcGxpZXMgdG8gYWxsIG9wZXJhdGlvbnMuXG4gICAgICAgKi9cbiAgICAgIHJlc3RyaWN0ZWRfb3BlcmF0aW9ucz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3BlcmF0aW9uS2luZFwiXVtdIHwgbnVsbDtcbiAgICAgIHRpbWVfZGVsYXk/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZHNcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTUZBLXByb3RlY3RlZCBhY3Rpb25zIHdob3NlIE1GQSByZXF1aXJlbWVudHMgYXJlIGNvbmZpZ3VyYWJsZSBieSBvcmcgb3duZXJzLlxuICAgICAqXG4gICAgICogU3BlY2lmeWluZyB0aGUgJ0N1YmVTaWduZXInIE1GQSB0eXBlIGlzIG5ldmVyIGFsbG93ZWQgZm9yIGFueSBvZiB0aGVzZSBhY3Rpb25zLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgTWZhUHJvdGVjdGVkQWN0aW9uOlxuICAgICAgfCBcIkRlZmF1bHRcIlxuICAgICAgfCBcIlJlZ2lzdGVyTWZhXCJcbiAgICAgIHwgXCJMb2dpblwiXG4gICAgICB8IFwiRXh0ZW5kU2Vzc2lvblwiXG4gICAgICB8IFwiQWRkSWRlbnRpdHlcIlxuICAgICAgfCBcIktleUV4cG9ydFwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmV0dXJuZWQgYXMgYSByZXNwb25zZSBmcm9tIG11bHRpcGxlIHJvdXRlcyAoZS5nLiwgJ2dldCBtZmEnLCAnYXBwcm92ZSBtZmEnLCAnYXBwcm92ZSB0b3RwJykuICovXG4gICAgTWZhUmVxdWVzdEluZm86IHtcbiAgICAgIGNyZWF0ZWRfYXQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzZXNzaW9uIGlkZW50aXR5ICh1c2VyIG9yIHJvbGUpIHRoYXQgY3JlYXRlZCB0aGlzIHJlcXVlc3QuICovXG4gICAgICBjcmVhdGVkX2J5OiBzdHJpbmc7XG4gICAgICBleHBpcmVzX2F0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFwcHJvdmFsIHJlcXVlc3QgSUQuICovXG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgbm90X3ZhbGlkX3VudGlsPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gTUZBIHBvbGljeSBwcm92ZW5hbmNlXG4gICAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAgICovXG4gICAgICBwcm92ZW5hbmNlOiBcIk9yZ1wiIHwgXCJLZXlcIiB8IFwiS2V5SW5Sb2xlXCIgfCBcIlJvbGVcIiB8IFwiVXNlclwiIHwgXCJFZGl0UG9saWN5XCI7XG4gICAgICByZWNlaXB0PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSZWNlaXB0XCJdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlZ2lvbiB0aGlzIE1GQSByZXF1ZXN0IHdhcyBjcmVhdGVkIGluLiAgSXQgY2FuIG9ubHkgYmUgcmVkZWVtZWQgZnJvbSB0aGUgc2FtZSByZWdpb24uICovXG4gICAgICByZWdpb24/OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIGNvbnRhaW5zIHRoZSBJRHMgb2YgYWxsIE1GQSByZXF1ZXN0cyAoaW5jbHVkaW5nIHRoaXMgb25lISkgdGhhdFxuICAgICAgICogd2VyZSBnZW5lcmF0ZWQgYXQgb25jZSBmb3IgdGhlIHNhbWUgQ3ViZVNpZ25lciBvcGVyYXRpb24uXG4gICAgICAgKlxuICAgICAgICogSWYgbm90IHNldCwgaXQgbWVhbnMgdGhhdCB0aGlzIHdhcyB0aGUgbG9uZSBNRkEgcmVxdWVzdCBnZW5lcmF0ZWQgZm9yIGByZXF1ZXN0YC5cbiAgICAgICAqXG4gICAgICAgKiBUaGlzIGlzIHVzZWZ1bCBzbyB0aGF0IGEgY2xpZW50IGNhbiBkaXNjb3ZlciBhbGwgdGhlIE1GQXMgd2hvc2UgcmVjZWlwdHMgbXVzdFxuICAgICAgICogYmUgc3VibWl0dGVkIHRvZ2V0aGVyIHRvIGNhcnJ5IG91dCB0aGUgb3JpZ2luYWwgQ3ViZVNpZ25lciBvcGVyYXRpb24uXG4gICAgICAgKi9cbiAgICAgIHJlbGF0ZWRfaWRzPzogc3RyaW5nW107XG4gICAgICByZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkh0dHBSZXF1ZXN0XCJdO1xuICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN0YXR1c1wiXTtcbiAgICB9O1xuICAgIE1mYVJlcXVpcmVkQXJnczoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbHdheXMgc2V0IHRvIGZpcnN0IE1GQSBpZCBmcm9tIGBTZWxmOjppZHNgICovXG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBOb24tZW1wdHkgTUZBIHJlcXVlc3QgSURzIG9yIFtgUGVuZGluZ09wUG9saWN5UmVmYF0tZm9ybSByZWZzICovXG4gICAgICBpZHM6IHN0cmluZ1tdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcmdhbml6YXRpb24gaWQgKi9cbiAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBwb2xpY3kgZXZhbHVhdGlvbiB0cmVlIChpbmNsdWRlZCBpbiBzaWduZXIgcmVzcG9uc2VzLCB3aGVuIHJlcXVlc3RlZCkgKi9cbiAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgICAgc2Vzc2lvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT3JnLXdpZGUgTUZBIHJlcXVpcmVtZW50cy4gKi9cbiAgICBNZmFSZXF1aXJlbWVudHM6IHtcbiAgICAgIGFsaWVuX2xvZ2luX3JlcXVpcmVtZW50PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNvbmRGYWN0b3JSZXF1aXJlbWVudFwiXTtcbiAgICAgIGFsbG93ZWRfbWZhX3R5cGVzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBbGxvd2VkTWZhTWFwXCJdO1xuICAgICAga2V5X2V4cG9ydF9yZXF1aXJlbWVudD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kRmFjdG9yUmVxdWlyZW1lbnRcIl07XG4gICAgICBtZW1iZXJfbG9naW5fcmVxdWlyZW1lbnQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZEZhY3RvclJlcXVpcmVtZW50XCJdO1xuICAgIH07XG4gICAgTWZhUmVzZXRSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIHVzZXIgeW91IHdhbnQgdG8gcmVzZXQgTUZBIGZvclxuICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAqL1xuICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogRm9ybWF0OiAnQ3ViZVNpZ25lcicgfCAnRmlkbycgfCBgRmlkb0tleSMke3N0cmluZ31gIHwgJ1RvdHAnIHwgJ0VtYWlsT3RwJyB8IGBFbWFpbE90cCMke251bWJlcn1gXG4gICAgICogQGRlc2NyaXB0aW9uIERpZmZlcmVudCB0eXBlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFwcHJvdmUgYW4gTUZBIHJlcXVlc3RcbiAgICAgKi9cbiAgICBNZmFUeXBlOiBzdHJpbmc7XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgTWZhVm90ZTogXCJhcHByb3ZlXCIgfCBcInJlamVjdFwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gaW5kaXZpZHVhbCBpdGVtIGluIGEgTWlncmF0ZUlkZW50aXR5UmVxdWVzdCAqL1xuICAgIE1pZ3JhdGVJZGVudGl0eUl0ZW06IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY0lkZW50aXR5XCJdICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIHVzZXIgeW91IHdhbnQgdG8gb3BlcmF0ZSBvbiAqL1xuICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHJlcXVlc3QgdG8gYWRkIG9yIHJlbW92ZSBhbiBPSURDIGlkZW50aXRpZXMgZm9yIGFuIGV4aXN0aW5nIHVzZXIgKi9cbiAgICBNaWdyYXRlSWRlbnRpdHlSZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1pZ3JhdGVJZGVudGl0eUl0ZW1cIl1bXTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgcmVxdWVzdCB0byB1cGRhdGUgYW4gZXhpc3RpbmcgdXNlci4gKi9cbiAgICBNaWdyYXRlVXBkYXRlVXNlckl0ZW06IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSB1c2VyIHlvdSB3YW50IHRvIG9wZXJhdGUgb24gKi9cbiAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE92ZXJyaWRlIHVzZXIncyB2ZXJpZmllZCBlbWFpbCBpbiB0aGlzIG9yZy4gVXNlIGFuIGVtcHR5IHN0cmluZyB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgdXNlcidzXG4gICAgICAgKiB2ZXJpZmllZCBlbWFpbCBzaG91bGQgYmUgY2xlYXJlZCAoYW5kIGZhbGxiYWNrIHRvIHRoZWlyIGRpc3BsYXkgZW1haWwpLlxuICAgICAgICovXG4gICAgICB2ZXJpZmllZF9lbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICBNaWdyYXRlVXBkYXRlVXNlcnNSZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1pZ3JhdGVVcGRhdGVVc2VySXRlbVwiXVtdO1xuICAgIE1taU1ldGFkYXRhOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIENoYWluIElEIChub3QgcmVxdWlyZWQgd2hlbiBzaWduaW5nIGEgcGVyc29uYWwgbWVzc2FnZSAoRUlQLTE5MSkpICovXG4gICAgICBjaGFpbklkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSWYgdGhlIGN1c3RvZGlhbiBzaG91bGQgcHVibGlzaCB0aGUgdHJhbnNhY3Rpb24gKi9cbiAgICAgIGN1c3RvZGlhblB1Ymxpc2hlc1RyYW5zYWN0aW9uPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgbm90ZSB0byBiZSBhdHRhY2hlZCB0byB0aGUgdHJhbnNhY3Rpb24gd2hpY2ggY2FuIGJlIHNwZWNpZmllZCBieSB0aGUgdXNlciAqL1xuICAgICAgbm90ZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB3ZWIgcGFnZS9kYXBwIHdoZXJlIHRoZSB0cmFuc2FjdGlvbiBvcmlnaW5hdGVkICovXG4gICAgICBvcmlnaW5Vcmw/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVc2VyJ3MgcHJlZmVycmVkIFJQQyBVUkwsIGFuZCBpdCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIFJQQyBVUkwgZm9yIHRoZSBuZXR3b3JrIGNvcnJlc3BvbmRpbmcgdG8gdGhlIENoYWluIElEICovXG4gICAgICBycGNVcmw/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgY2F0ZWdvcnkgb2YgdHJhbnNhY3Rpb24sIGFzIGJlc3QgY2FuIGJlIGRldGVybWluZWQgYnkgdGhlIHdhbGxldCAqL1xuICAgICAgdHJhbnNhY3Rpb25DYXRlZ29yeT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICBNbWlSZWplY3RSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHJlYXNvbiBmb3IgcmVqZWN0aW5nLiAqL1xuICAgICAgcmVhc29uPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIE1taVN0YXR1czoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTaG9ydCB0ZXh0IHRvIGRpc3BsYXkgdG8gdGhlIHVzZXIgKi9cbiAgICAgIGRpc3BsYXlUZXh0OiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIHNpZ25lZCBtZXNzYWdlIGhhcyBmaW5pc2hlZCwgZS5nLiBpdCBpcyBjb21wbGV0ZWQsIGZhaWxlZCBvciBjYW5jZWxsZWQgKi9cbiAgICAgIGZpbmlzaGVkOiBib29sZWFuO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVhc29uIGZvciB0aGUgc2lnbmVkIG1lc3NhZ2Ugc3RhdHVzICovXG4gICAgICByZWFzb24/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSBtZXNzYWdlIHdhcyBzaWduZWQgKi9cbiAgICAgIHNpZ25lZDogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgdHJhbnNhY3Rpb24gd2FzIHN1Ym1pdHRlZCB0byB0aGUgYmxvY2tjaGFpbiAqL1xuICAgICAgc3VibWl0dGVkPzogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgdHJhbnNhY3Rpb24gd2FzIHN1Y2Nlc3NmdWwsIGkuZS4gaXQgd2FzIGluY2x1ZGVkIGluIGEgYmxvY2sgYW5kIG5vdCByZXZlcnRlZCAqL1xuICAgICAgc3VjY2VzczogYm9vbGVhbjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgY3NfY29pbmJhc2VNb3ZlRnVuZHNgLlxuICAgICAqXG4gICAgICogQ29pbmJhc2UgZW5kcG9pbnQ6IGBQT1NUIC9hcGkvdjMvYnJva2VyYWdlL3BvcnRmb2xpb3MvbW92ZV9mdW5kc2AuXG4gICAgICovXG4gICAgTW92ZUZ1bmRzUmVxdWVzdDoge1xuICAgICAgZnVuZHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29pbmJhc2VBbW91bnRcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFVVSUQgb2YgdGhlIHBvcnRmb2xpbyB0aGUgZnVuZHMgYXJlIGRlYml0ZWQgZnJvbS4gKi9cbiAgICAgIHNvdXJjZV9wb3J0Zm9saW9fdXVpZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVVUlEIG9mIHRoZSBwb3J0Zm9saW8gdGhlIGZ1bmRzIGFyZSBjcmVkaXRlZCB0by4gKi9cbiAgICAgIHRhcmdldF9wb3J0Zm9saW9fdXVpZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCBhIHNpZ25lZCBtZXNzYWdlICovXG4gICAgTXNnU2lnbmF0dXJlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzaWduYXR1cmUgKi9cbiAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHN0cnVjdCByZXByZXNlbnRpbmcgdGhlIHBlbmRpbmcgbWVzc2FnZSBzdGF0dXMgKi9cbiAgICBNc2dTdGF0dXM6XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBzdGF0dXM6IFwiUGVuZGluZ1wiO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIGFib3V0IGEgc2lnbmVkIG1lc3NhZ2UgKi9cbiAgICAgICAgICBzaWc6IHtcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHNpZ25hdHVyZSAqL1xuICAgICAgICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgICAgICAgfTtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBzdGF0dXM6IFwiU2lnbmVkXCI7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIHJlYXNvbjogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIHN0YXR1czogXCJSZWplY3RlZFwiO1xuICAgICAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBOZXR3b3JrIG5hbWUgKCdtYWlubmV0JywgJ2hvbGVza3knKVxuICAgICAqIEBleGFtcGxlIGhvbGVza3lcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIE5ldHdvcms6IFwibWFpbm5ldFwiIHwgXCJob2xlc2t5XCIgfCBcImhvb2RpXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCBhIG5ldyBzZXNzaW9uLCByZXR1cm5lZCBmcm9tIG11bHRpcGxlIGVuZHBvaW50cyAoZS5nLiwgbG9naW4sIHJlZnJlc2gsIGV0Yy4pLiAqL1xuICAgIE5ld1Nlc3Npb25SZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gU2Vzc2lvbiBleHBpcmF0aW9uIChpbiBzZWNvbmRzIHNpbmNlIFVOSVggZXBvY2gpLCBiZXlvbmQgd2hpY2ggaXQgY2Fubm90IGJlIHJlZnJlc2hlZC5cbiAgICAgICAqIEBleGFtcGxlIDE3MDE4Nzk2NDBcbiAgICAgICAqL1xuICAgICAgZXhwaXJhdGlvbj86IG51bWJlcjtcbiAgICAgIG9yZ19pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZWZyZXNoIHRoaXMgc2Vzc2lvbi4gKi9cbiAgICAgIHJlZnJlc2hfdG9rZW46IHN0cmluZztcbiAgICAgIHNlc3Npb25faW5mbzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDbGllbnRTZXNzaW9uSW5mb1wiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE5ldyB0b2tlbiB0byBiZSB1c2VkIGZvciBhdXRoZW50aWNhdGlvbi4gUmVxdWVzdHMgdG8gc2lnbmluZyBlbmRwb2ludHNcbiAgICAgICAqIHNob3VsZCBpbmNsdWRlIHRoaXMgdmFsdWUgaW4gdGhlIGBBdXRob3JpemF0aW9uYCBoZWFkZXIuXG4gICAgICAgKi9cbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogRm9ybWF0OiBiaW5hcnkgKi9cbiAgICBOb25jZVZhbHVlOiBzdHJpbmc7XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgTm90Rm91bmRFcnJvckNvZGU6XG4gICAgICB8IFwiVXJpU2VnbWVudE1pc3NpbmdcIlxuICAgICAgfCBcIlVyaVNlZ21lbnRJbnZhbGlkXCJcbiAgICAgIHwgXCJUb3RwTm90Q29uZmlndXJlZFwiXG4gICAgICB8IFwiRmlkb0tleU5vdEZvdW5kXCJcbiAgICAgIHwgXCJGaWRvQ2hhbGxlbmdlTm90Rm91bmRcIlxuICAgICAgfCBcIlRvdHBDaGFsbGVuZ2VOb3RGb3VuZFwiXG4gICAgICB8IFwiVXNlckV4cG9ydFJlcXVlc3ROb3RGb3VuZFwiXG4gICAgICB8IFwiVXNlckV4cG9ydENpcGhlcnRleHROb3RGb3VuZFwiXG4gICAgICB8IFwiT3JnRXhwb3J0Q2lwaGVydGV4dE5vdEZvdW5kXCJcbiAgICAgIHwgXCJVcGxvYWRPYmplY3ROb3RGb3VuZFwiXG4gICAgICB8IFwiUG9saWN5U2VjcmV0Tm90Rm91bmRcIlxuICAgICAgfCBcIkJ1Y2tldE1ldGFOb3RGb3VuZFwiXG4gICAgICB8IFwiVGltZXN0cmVhbURpc2FibGVkXCJcbiAgICAgIHwgXCJDdXN0b21DaGFpbk5vdEZvdW5kXCJcbiAgICAgIHwgXCJJbnZpdGF0aW9uTm90Rm91bmRcIlxuICAgICAgfCBcIlRyYW5zYWN0aW9uTm90Rm91bmRcIlxuICAgICAgfCBcIkVtYWlsQ29uZmlnTm90Rm91bmRcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBjb25maWd1cmF0aW9uIGFuZCBzdGF0dXMgb2YgYSBub3RpZmljYXRpb24gZW5kcG9pbnQgKi9cbiAgICBOb3RpZmljYXRpb25FbmRwb2ludDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJOb3RpZmljYXRpb25FbmRwb2ludFN1YnNjcmlwdGlvblwiXSAmIHtcbiAgICAgIHN0YXR1czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdWJzY3JpcHRpb25TdGF0dXNcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBjb25maWd1cmF0aW9uIGZvciBhbiBvcmcgZXZlbnQgZW5kcG9pbnQgKi9cbiAgICBOb3RpZmljYXRpb25FbmRwb2ludENvbmZpZ3VyYXRpb246IHtcbiAgICAgIGZpbHRlcj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3JnRXZlbnRGaWx0ZXJcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFVSTCBvZiB0aGUgZW5kcG9pbnQgKi9cbiAgICAgIHVybDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIG5vdGlmaWNhdGlvbiBlbmRwb2ludCBzdWJzY3JpcHRpb24gKi9cbiAgICBOb3RpZmljYXRpb25FbmRwb2ludFN1YnNjcmlwdGlvbjoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgQVJOIG9mIHRoZSBzdWJzY3JpcHRpb24gKi9cbiAgICAgIGFybjogc3RyaW5nO1xuICAgICAgY29uZmlnOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk5vdGlmaWNhdGlvbkVuZHBvaW50Q29uZmlndXJhdGlvblwiXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyB0aGUgZGF0YSBleHRyYWN0ZWQgZnJvbSB0aGUgT0lEQyB0b2tlbiAqL1xuICAgIE9pZGNDbGFpbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY1VzZXJJbmZvXCJdICZcbiAgICAgIGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY0lkZW50aXR5XCJdICYge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEF1ZGllbmNlKHMpIHRoYXQgdGhpcyBJRCBUb2tlbiBpcyBpbnRlbmRlZCBmb3IuIEl0IE1VU1QgY29udGFpbiB0aGVcbiAgICAgICAgICogT0F1dGggMi4wIGNsaWVudF9pZCBvZiB0aGUgUmVseWluZyBQYXJ0eSBhcyBhbiBhdWRpZW5jZSB2YWx1ZS4gSXQgTUFZXG4gICAgICAgICAqIGFsc28gY29udGFpbiBpZGVudGlmaWVycyBmb3Igb3RoZXIgYXVkaWVuY2VzLlxuICAgICAgICAgKiBUaGlzIHZhbHVlIGlzIG9wYXF1ZSBhY2NvcmRpbmcgdG8gdGhlIE9JREMgc3BlYywgYnV0IGZvciBleGFtcGxlIEdvb2dsZVxuICAgICAgICAgKiBhdWRpZW5jZXMgbG9vayBsaWtlIGAxMjM0OTg3ODE5MjAwLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tYFxuICAgICAgICAgKiBAZXhhbXBsZSAxMjM0OTg3ODE5MjAwLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tXG4gICAgICAgICAqL1xuICAgICAgICBhdWQ6IHN0cmluZztcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBvcHRpb25hbCByZXN0cmljdGlvbiBvbiB0aGUgc2V0IG9mIHNjb3BlcyBhbGxvd2VkIHdpdGggdGhpcyB0b2tlbiAqL1xuICAgICAgICBjdWJlc2lnbmVyX3Njb3BlX2NlaWxpbmc/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNjb3BlXCJdW10gfCBudWxsO1xuICAgICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyBhIGdsb2JhbGx5IHVuaXF1ZSBPSURDLWF1dGhvcml6ZWQgdXNlciBieSBleHByZXNzaW5nIHRoZSBmdWxsIFwicGF0aFwiIHRvIGEgdXNlci4gVGhhdCBpczpcbiAgICAgKlxuICAgICAqIChpc3MpICAgICAgIChzdWIpXG4gICAgICogSXNzdWVyIC0+IFN1YnJlc291cmNlXG4gICAgICovXG4gICAgT2lkY0lkZW50aXR5OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcm9vdC1sZXZlbCBpc3N1ZXIgd2hvIGFkbWluaXN0cmF0ZXMgdGhpcyB1c2VyLiBGcm9tIHRoZSBPSURDIHNwZWM6XG4gICAgICAgKiBJc3N1ZXIgSWRlbnRpZmllciBmb3IgdGhlIElzc3VlciBvZiB0aGUgcmVzcG9uc2UuIFRoZSBpc3NcbiAgICAgICAqIHZhbHVlIGlzIGEgY2FzZSBzZW5zaXRpdmUgVVJMIHVzaW5nIHRoZSBodHRwcyBzY2hlbWUgdGhhdCBjb250YWluc1xuICAgICAgICogc2NoZW1lLCBob3N0LCBhbmQgb3B0aW9uYWxseSwgcG9ydCBudW1iZXIgYW5kIHBhdGggY29tcG9uZW50cyBhbmRcbiAgICAgICAqIG5vIHF1ZXJ5IG9yIGZyYWdtZW50IGNvbXBvbmVudHMuXG4gICAgICAgKiBAZXhhbXBsZSBodHRwczovL2FjY291bnRzLmdvb2dsZS5jb21cbiAgICAgICAqL1xuICAgICAgaXNzOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIHRoZSBPSURDIHNwZWM6XG4gICAgICAgKlxuICAgICAgICogQSBsb2NhbGx5IHVuaXF1ZSBhbmQgbmV2ZXIgcmVhc3NpZ25lZCBpZGVudGlmaWVyIHdpdGhpbiB0aGUgSXNzdWVyIGZvclxuICAgICAgICogdGhlIEVuZC1Vc2VyLCB3aGljaCBpcyBpbnRlbmRlZCB0byBiZSBjb25zdW1lZCBieSB0aGUgQ2xpZW50LCBlLmcuLFxuICAgICAgICogMjQ0MDAzMjAgb3IgQUl0T2F3bXd0V3djVDBrNTFCYXlld052dXRySlVxc3ZsNnFzN0E0LiBJdCBNVVNUIE5PVCBleGNlZWRcbiAgICAgICAqIDI1NSBBU0NJSSBjaGFyYWN0ZXJzIGluIGxlbmd0aC4gVGhlIHN1YiB2YWx1ZSBpcyBhIGNhc2Ugc2Vuc2l0aXZlXG4gICAgICAgKiBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSAxMDc2OTE1MDM1MDAwNjE1MDcxNTExMzA4MjM2N1xuICAgICAgICovXG4gICAgICBzdWI6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYW4gZXhwbGljaXRseSBjb25maWd1cmVkIChhbGxvd2xpc3RlZCkgT3BlbklEIHByb3ZpZGVyIGZvciBhbiBvcmcgKi9cbiAgICBPaWRjSXNzdWVySW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBJbnRlbmRlZCBhdWRpZW5jZXMgKGNsaWVudCBJRHMpICovXG4gICAgICBhdWRpZW5jZXM6IHN0cmluZ1tdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBJc3N1ZXIgVVJMICovXG4gICAgICBpc3N1ZXI6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgaXNzdWVyIG5pY2tuYW1lICovXG4gICAgICBuaWNrbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB1c2VyIHJvbGVzIGFsbG93ZWQgdG8gdXNlIHRoaXMgSURQICovXG4gICAgICB1c2VyczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdW107XG4gICAgfTtcbiAgICBPaWRjTG9naW5EaW1lbnNpb25zOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBPSURDIGlzc3VlciAocHJvdmlkZXIpICovXG4gICAgICBpc3N1ZXI6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIG1ldHJpY3MgbXVzdCBpbmNsdWRlICdvcmdfaWQnIGFzIGEgZGltZW5zaW9uLiAqL1xuICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9JREMgbG9naW4gcmVxdWVzdCAqL1xuICAgIE9pZGNMb2dpblJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2xpZW50U2Vzc2lvbk1ldGFkYXRhXCJdICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGh1bWFuIHJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSBwdXJwb3NlIG9mIHRoZSBzZXNzaW9uICovXG4gICAgICBwdXJwb3NlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIENvbnRyb2xzIHdoYXQgY2FwYWJpbGl0aWVzIHRoaXMgc2Vzc2lvbiB3aWxsIGhhdmUuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwic2lnbjoqXCJcbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgc2NvcGVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNjb3BlXCJdW107XG4gICAgICB0b2tlbnM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJhdGNoZXRDb25maWdcIl07XG4gICAgfTtcbiAgICBPaWRjVXNlckluZm86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBhc3NvY2lhdGVkIHdpdGggdGhlIHVzZXJcbiAgICAgICAqIEBleGFtcGxlIHVzZXJAZW1haWwuY29tXG4gICAgICAgKi9cbiAgICAgIGVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB1c2VyIG5hbWUgKGlmIGFueSkgYXNzb2NpYXRlZCB3aXRoIHRoZSB1c2VyXG4gICAgICAgKiBAZXhhbXBsZSBkcmlsXG4gICAgICAgKi9cbiAgICAgIHByZWZlcnJlZF91c2VybmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQWxsIGRpZmZlcmVudCBraW5kcyBvZiBzZW5zaXRpdmUgb3BlcmF0aW9uc1xuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgT3BlcmF0aW9uS2luZDpcbiAgICAgIHwgXCJBdmFTaWduXCJcbiAgICAgIHwgXCJBdmFDaGFpblR4U2lnblwiXG4gICAgICB8IFwiQmFieWxvbkNvdlNpZ25cIlxuICAgICAgfCBcIkJhYnlsb25SZWdpc3RyYXRpb25cIlxuICAgICAgfCBcIkJhYnlsb25TdGFraW5nXCJcbiAgICAgIHwgXCJCaW5hbmNlU3ViVG9NYXN0ZXJcIlxuICAgICAgfCBcIkJpbmFuY2VTdWJUb1N1YlwiXG4gICAgICB8IFwiQmluYW5jZVVuaXZlcnNhbFRyYW5zZmVyXCJcbiAgICAgIHwgXCJCaW5hbmNlU3ViQWNjb3VudEFzc2V0c1wiXG4gICAgICB8IFwiQmluYW5jZUFjY291bnRJbmZvXCJcbiAgICAgIHwgXCJCaW5hbmNlU3ViQWNjb3VudFRyYW5zZmVySGlzdG9yeVwiXG4gICAgICB8IFwiQmluYW5jZVVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVwiXG4gICAgICB8IFwiQmluYW5jZVdpdGhkcmF3XCJcbiAgICAgIHwgXCJCaW5hbmNlV2l0aGRyYXdIaXN0b3J5XCJcbiAgICAgIHwgXCJCaW5hbmNlRGVwb3NpdFwiXG4gICAgICB8IFwiQmluYW5jZURlcG9zaXRIaXN0b3J5XCJcbiAgICAgIHwgXCJCaW5hbmNlTGlzdFN1YkFjY291bnRzXCJcbiAgICAgIHwgXCJCaW5hbmNlQ29pbkluZm9cIlxuICAgICAgfCBcIkJpbmFuY2VTdWJBY2NvdW50RGVwb3NpdEFkZHJlc3NcIlxuICAgICAgfCBcIkJsb2JTaWduXCJcbiAgICAgIHwgXCJCdGNNZXNzYWdlU2lnblwiXG4gICAgICB8IFwiQnRjU2lnblwiXG4gICAgICB8IFwiQnliaXRRdWVyeVVzZXJcIlxuICAgICAgfCBcIkJ5Yml0UXVlcnlTdWJNZW1iZXJzXCJcbiAgICAgIHwgXCJCeWJpdFF1ZXJ5Q29pbnNCYWxhbmNlXCJcbiAgICAgIHwgXCJCeWJpdFF1ZXJ5RGVwb3NpdEFkZHJlc3NcIlxuICAgICAgfCBcIkJ5Yml0VW5pdmVyc2FsVHJhbnNmZXJcIlxuICAgICAgfCBcIkJ5Yml0V2l0aGRyYXdcIlxuICAgICAgfCBcIkJ5Yml0V2l0aGRyYXdhbHNcIlxuICAgICAgfCBcIkJ5Yml0UXVlcnlDb2luSW5mb1wiXG4gICAgICB8IFwiQnliaXREZXBvc2l0SGlzdG9yeVwiXG4gICAgICB8IFwiQnliaXRVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlcIlxuICAgICAgfCBcIkJ5Yml0UXVlcnlXaXRoZHJhd0FkZHJlc3NcIlxuICAgICAgfCBcIkJ5Yml0UXVlcnlTdWJEZXBvc2l0QWRkcmVzc1wiXG4gICAgICB8IFwiQ29pbmJhc2VMaXN0QWNjb3VudHNcIlxuICAgICAgfCBcIkNvaW5iYXNlTGlzdFBvcnRmb2xpb3NcIlxuICAgICAgfCBcIkNvaW5iYXNlTW92ZUZ1bmRzXCJcbiAgICAgIHwgXCJEaWZmaWVIZWxsbWFuXCJcbiAgICAgIHwgXCJQc2J0U2lnblwiXG4gICAgICB8IFwiVGFwcm9vdFNpZ25cIlxuICAgICAgfCBcIkVpcDE5MVNpZ25cIlxuICAgICAgfCBcIkVpcDcxMlNpZ25cIlxuICAgICAgfCBcIkVpcDc3MDJTaWduXCJcbiAgICAgIHwgXCJFb3RzTm9uY2VzXCJcbiAgICAgIHwgXCJFb3RzU2lnblwiXG4gICAgICB8IFwiRXRoMVNpZ25cIlxuICAgICAgfCBcIkV0aDJTaWduXCJcbiAgICAgIHwgXCJFdGgyU3Rha2VcIlxuICAgICAgfCBcIkV0aDJVbnN0YWtlXCJcbiAgICAgIHwgXCJTb2xhbmFTaWduXCJcbiAgICAgIHwgXCJTdWlTaWduXCJcbiAgICAgIHwgXCJUZW5kZXJtaW50U2lnblwiXG4gICAgICB8IFwiUm9sZVVwZGF0ZVwiO1xuICAgIE9yZ0FsZXJ0c1ByZWZzOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFJlY2lwaWVudCB1c2VycyBmb3Igb3JnLWxldmVsIGFsZXJ0cyAqL1xuICAgICAgYWxlcnRfcmVjaXBpZW50cz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl1bXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9yZy1sZXZlbCBhbGVydHMgdG8gc2VuZCBlbWFpbHMgZm9yICovXG4gICAgICBzdWJzY3JpYmVkX2FsZXJ0cz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWxlcnRLaW5kXCJdW10gfCBudWxsO1xuICAgIH07XG4gICAgT3JnRGF0YToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBvcmdcbiAgICAgICAqIEBleGFtcGxlIE9yZyMxMjMuLi5cbiAgICAgICAqL1xuICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIG9yZ1xuICAgICAgICogQGV4YW1wbGUgbXlfb3JnX25hbWVcbiAgICAgICAqL1xuICAgICAgb3JnX25hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgT3JnRXZlbnRBcmdzOiB7XG4gICAgICBvcmdfZXZlbnQ6IFwiT3JnRXZlbnRBcmdzXCI7XG4gICAgfSAmIE9taXQ8Y29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPcmdFdmVudERhdGFcIl0sIFwib3JnX2V2ZW50XCI+ICYge1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBpZGVudGl0eSB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQgKi9cbiAgICAgICAgdHJpZ2dlcmVkX2J5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT3JnLWxldmVsIGV2ZW50cyB0aGF0IHdlIG5vdGlmeSBvdXIgY3VzdG9tZXJzIGFib3V0ICovXG4gICAgT3JnRXZlbnREYXRhOlxuICAgICAgfCB7XG4gICAgICAgICAgYmlsbGluZ19ldmVudDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaWxsaW5nRXZlbnRcIl07XG4gICAgICAgICAga2V5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXSB8IG51bGw7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIkJpbGxpbmdcIjtcbiAgICAgICAgICByb2xlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXSB8IG51bGw7XG4gICAgICAgICAgdXNlcj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl0gfCBudWxsO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBkdXJhdGlvbiBvZiB0aGUgcmVxdWVzdCBpbiBtaWxsaXNlY29uZHNcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBkdXJhdGlvbl9tczogbnVtYmVyO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIEhUVFAgcmVxdWVzdCBtZXRob2QgKi9cbiAgICAgICAgICBtZXRob2Q6IHN0cmluZztcbiAgICAgICAgICBvcGVyYXRpb246IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmlsbGluZ0V2ZW50XCJdO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG9yZ19ldmVudDogXCJSZXNwb25zZVwiO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEhUVFAgcmVzcG9uc2Ugc3RhdHVzXG4gICAgICAgICAgICovXG4gICAgICAgICAgc3RhdHVzOiBudW1iZXI7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSFRUUCByZXF1ZXN0IHBhdGggKyBxdWVyeSBwYXJhbWV0ZXJzICovXG4gICAgICAgICAgdXJpOiBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIG1lbWJlcnNoaXA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXTtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBvcmdfZXZlbnQ6IFwiT2lkY0F1dGhcIjtcbiAgICAgICAgICBwdXJwb3NlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICBzY29wZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2NvcGVcIl1bXTtcbiAgICAgICAgICB1c2VyX2luZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY0NsYWltc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbWF0ZXJpYWwgaWQgKGFkZHJlc3MpIG9mIHRoZSBrZXkgdXNlZCBmb3Igc2lnbmluZyAqL1xuICAgICAgICAgIGtleV9tYXRlcmlhbF9pZDogc3RyaW5nO1xuICAgICAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgICAgICAgb3BlcmF0aW9uOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9wZXJhdGlvbktpbmRcIl07XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIlNpZ25lZFwiO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICBjaGFpbl9pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgICAgICBrZXlfaWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIkJhYnlsb25Fb3RzQ29uY3VycmVudFNpZ25pbmdcIjtcbiAgICAgICAgICAvKiogRm9ybWF0OiBpbnQ2NCAqL1xuICAgICAgICAgIHByZXZfYmxvY2tfaGVpZ2h0OiBudW1iZXI7XG4gICAgICAgICAgcHJldl9zaWduaW5nX2hhc2g6IHN0cmluZztcbiAgICAgICAgICAvKiogRm9ybWF0OiBpbnQ2NCAqL1xuICAgICAgICAgIHJlcV9ibG9ja19oZWlnaHQ6IG51bWJlcjtcbiAgICAgICAgICByZXFfc2lnbmluZ19oYXNoOiBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIGF0dGVzdGF0aW9uOiB7XG4gICAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBoYXNoIHRoYXQgd2FzIHNpZ25lZCAqL1xuICAgICAgICAgICAgc2lnbmluZ19yb290OiBzdHJpbmc7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgYXR0ZXN0YXRpb24uZGF0YS5zb3VyY2UuZXBvY2ggb2YgdGhlIHNpZ25lZCBhdHRlc3RhdGlvblxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBzb3VyY2VfZXBvY2g6IG51bWJlcjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBhdHRlc3RhdGlvbi5kYXRhLnRhcmdldC5lcG9jaCBvZiB0aGUgc2lnbmVkIGF0dGVzdGF0aW9uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRhcmdldF9lcG9jaDogbnVtYmVyO1xuICAgICAgICAgIH07XG4gICAgICAgICAga2V5OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgICAgIG1hdGVyaWFsX2lkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBvcmdfZXZlbnQ6IFwiRXRoMkNvbmN1cnJlbnRBdHRlc3RhdGlvblNpZ25pbmdcIjtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGhhc2ggdGhhdCB3YXMgc2lnbmVkICovXG4gICAgICAgICAgICBzaWduaW5nX3Jvb3Q6IHN0cmluZztcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzbG90IG51bWJlciBvZiB0aGUgYmxvY2sgdGhhdCB3YXMgc2lnbmVkXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHNsb3Q6IG51bWJlcjtcbiAgICAgICAgICB9O1xuICAgICAgICAgIGtleTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgICAgICBtYXRlcmlhbF9pZD86IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIkV0aDJDb25jdXJyZW50QmxvY2tTaWduaW5nXCI7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIGVuZm9yY2VkOiBib29sZWFuO1xuICAgICAgICAgIGxhc3Rfc2lnbmluZ19yb290OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEZvcm1hdDogaW50NjQgKi9cbiAgICAgICAgICBsYXN0X3Nsb3Q6IG51bWJlcjtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBvcmdfZXZlbnQ6IFwiRXRoMkludmFsaWRCbG9ja1Byb3Bvc2VyU2xvdFRvb0xvd1wiO1xuICAgICAgICAgIHNpZ25pbmdfcm9vdDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBGb3JtYXQ6IGludDY0ICovXG4gICAgICAgICAgc2xvdDogbnVtYmVyO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICBlbmZvcmNlZDogYm9vbGVhbjtcbiAgICAgICAgICBsYXN0X3NpZ25pbmdfcm9vdDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBGb3JtYXQ6IGludDY0ICovXG4gICAgICAgICAgbGFzdF90YXJnZXRfZXBvY2g6IG51bWJlcjtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBvcmdfZXZlbnQ6IFwiRXRoMkludmFsaWRBdHRlc3RhdGlvblNvdXJjZUVwb2NoVG9vTG93XCI7XG4gICAgICAgICAgc2lnbmluZ19yb290OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEZvcm1hdDogaW50NjQgKi9cbiAgICAgICAgICBzb3VyY2VfZXBvY2g6IG51bWJlcjtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgZW5mb3JjZWQ6IGJvb2xlYW47XG4gICAgICAgICAgbGFzdF9zaWduaW5nX3Jvb3Q6IHN0cmluZztcbiAgICAgICAgICAvKiogRm9ybWF0OiBpbnQ2NCAqL1xuICAgICAgICAgIGxhc3RfdGFyZ2V0X2Vwb2NoOiBudW1iZXI7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIkV0aDJJbnZhbGlkQXR0ZXN0YXRpb25UYXJnZXRFcG9jaFRvb0xvd1wiO1xuICAgICAgICAgIHNpZ25pbmdfcm9vdDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBGb3JtYXQ6IGludDY0ICovXG4gICAgICAgICAgdGFyZ2V0X2Vwb2NoOiBudW1iZXI7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBGb3JtYXQ6IGludDMyICovXG4gICAgICAgICAgZGFpbHlfdW5zdGFrZV9jb3VudDogbnVtYmVyO1xuICAgICAgICAgIGtleV9pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBvcmdfZXZlbnQ6IFwiRXRoMlVuc3Rha2VcIjtcbiAgICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgICAgICAvKiogRm9ybWF0OiBpbnQ2NCAqL1xuICAgICAgICAgIHZhbGlkYXRvcl9pbmRleDogbnVtYmVyO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICBkYXRlOiB1bmtub3duO1xuICAgICAgICAgIC8qKiBGb3JtYXQ6IGludDMyICovXG4gICAgICAgICAgbWF4OiBudW1iZXI7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIkV0aDJFeGNlZWRlZE1heFVuc3Rha2VcIjtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBLZXkgaWRzICovXG4gICAgICAgICAga2V5X2lkczogc3RyaW5nW107XG4gICAgICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBvcmdfZXZlbnQ6IFwiS2V5Q3JlYXRlZFwiO1xuICAgICAgICAgIG93bmVyX2lkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICBhcHByb3ZlZF93aXRoX21mYV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVR5cGVcIl07XG4gICAgICAgICAgbWZhX3JlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhUmVxdWVzdEluZm9cIl07XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIk1mYUFwcHJvdmVkXCI7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIG1mYV9yZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG9yZ19ldmVudDogXCJNZmFSZWplY3RlZFwiO1xuICAgICAgICAgIHJlamVjdGVkX2J5OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgICAgIHJlamVjdGVkX21mYV9pZD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl0gfCBudWxsO1xuICAgICAgICAgIHJlamVjdGVkX3dpdGhfbWZhX3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhVHlwZVwiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgY2hhbmdlZF9ieTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuZXcgcG9saWN5ICovXG4gICAgICAgICAgbmV3X3BvbGljeTogdW5rbm93bltdO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG9yZ19ldmVudDogXCJQb2xpY3lDaGFuZ2VkXCI7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ2hhaW4gaWQgKi9cbiAgICAgICAgICBjaGFpbl9pZDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHN0YXRlIG9mIHRoZSBjdXJyZW50IHJlcXVlc3QgKi9cbiAgICAgICAgICBjdXJyZW50X3N0YXRlOiB1bmtub3duO1xuICAgICAgICAgIGtleV9pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzdGF0ZSBvZiB0aGUgbGFzdCBzaWduZWQgbWVzc2FnZSAqL1xuICAgICAgICAgIGxhc3Rfc3RhdGU6IHVua25vd247XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIlRlbmRlcm1pbnRDb25jdXJyZW50U2lnbmluZ1wiO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSBpbnZpdGVkIHVzZXIgKi9cbiAgICAgICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG9yZ19ldmVudDogXCJJbnZpdGF0aW9uQ3JlYXRlZFwiO1xuICAgICAgICAgIHJvbGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZW1haWwgYWRkcmVzcyB3aG9zZSBpbnZpdGF0aW9uIHdhcyBjYW5jZWxlZCAqL1xuICAgICAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIkludml0YXRpb25DYW5jZWxlZFwiO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICBrZXlfaWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIlVzZXJFeHBvcnRJbml0XCI7XG4gICAgICAgICAgdmFsaWRfZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAga2V5X2lkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG9yZ19ldmVudDogXCJVc2VyRXhwb3J0Q29tcGxldGVcIjtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZXJyb3IgZnJvbSB0aGUgcG9saWN5IGVuZ2luZSAod2hlbiByZXNwb25zZSBpcyBlcXVhbCB0byAnRXJyb3InKSAqL1xuICAgICAgICAgIGVycm9yPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICBrZXlfaWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdIHwgbnVsbDtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBvcmdfZXZlbnQ6IFwiV2FzbVBvbGljeUV4ZWN1dGVkXCI7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQb2xpY3kgbmFtZSBvciBpZCAqL1xuICAgICAgICAgIHBvbGljeTogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gUG9saWN5IGhhc2ggKi9cbiAgICAgICAgICBwb2xpY3lfaGFzaDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlYXNvbiBmb3IgdGhlIGRlbmlhbCAod2hlbiByZXNwb25zZSBpcyBlcXVhbCB0byAnRGVueScpICovXG4gICAgICAgICAgcmVhc29uPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQXV0by1nZW5lcmF0ZWQgZGlzY3JpbWluYW50IGVudW0gdmFyaWFudHNcbiAgICAgICAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHJlc3BvbnNlOiBcIkFsbG93XCIgfCBcIkRlbnlcIiB8IFwiRXJyb3JcIjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHNvdXJjZSBvZiBhIHBvbGljeSBleGVjdXRpb24sIGkuZS4gdGhlIHJlYXNvbiBpdCB3YXMgZXhlY3V0ZWQuXG4gICAgICAgICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBzb3VyY2U6IFwiU2lnblJlcXVlc3RcIiB8IFwiVXNlckludm9jYXRpb25cIjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFBvbGljeSBlcnJvciBvdXRwdXQgKi9cbiAgICAgICAgICBzdGRlcnI6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFBvbGljeSBzdGFuZGFyZCBvdXRwdXQgKi9cbiAgICAgICAgICBzdGRvdXQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXV0by1nZW5lcmF0ZWQgZGlzY3JpbWluYW50IGVudW0gdmFyaWFudHNcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIE9yZ0V2ZW50RGlzY3JpbWluYW50czpcbiAgICAgIHwgXCJCaWxsaW5nXCJcbiAgICAgIHwgXCJSZXNwb25zZVwiXG4gICAgICB8IFwiT2lkY0F1dGhcIlxuICAgICAgfCBcIlNpZ25lZFwiXG4gICAgICB8IFwiQmFieWxvbkVvdHNDb25jdXJyZW50U2lnbmluZ1wiXG4gICAgICB8IFwiRXRoMkNvbmN1cnJlbnRBdHRlc3RhdGlvblNpZ25pbmdcIlxuICAgICAgfCBcIkV0aDJDb25jdXJyZW50QmxvY2tTaWduaW5nXCJcbiAgICAgIHwgXCJFdGgySW52YWxpZEJsb2NrUHJvcG9zZXJTbG90VG9vTG93XCJcbiAgICAgIHwgXCJFdGgySW52YWxpZEF0dGVzdGF0aW9uU291cmNlRXBvY2hUb29Mb3dcIlxuICAgICAgfCBcIkV0aDJJbnZhbGlkQXR0ZXN0YXRpb25UYXJnZXRFcG9jaFRvb0xvd1wiXG4gICAgICB8IFwiRXRoMlVuc3Rha2VcIlxuICAgICAgfCBcIkV0aDJFeGNlZWRlZE1heFVuc3Rha2VcIlxuICAgICAgfCBcIktleUNyZWF0ZWRcIlxuICAgICAgfCBcIk1mYUFwcHJvdmVkXCJcbiAgICAgIHwgXCJNZmFSZWplY3RlZFwiXG4gICAgICB8IFwiUG9saWN5Q2hhbmdlZFwiXG4gICAgICB8IFwiVGVuZGVybWludENvbmN1cnJlbnRTaWduaW5nXCJcbiAgICAgIHwgXCJJbnZpdGF0aW9uQ3JlYXRlZFwiXG4gICAgICB8IFwiSW52aXRhdGlvbkNhbmNlbGVkXCJcbiAgICAgIHwgXCJVc2VyRXhwb3J0SW5pdFwiXG4gICAgICB8IFwiVXNlckV4cG9ydENvbXBsZXRlXCJcbiAgICAgIHwgXCJXYXNtUG9saWN5RXhlY3V0ZWRcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEZpbHRlciBmb3Igb3JnIGV2ZW50cyAqL1xuICAgIE9yZ0V2ZW50RmlsdGVyOiBPbmVPZjxcbiAgICAgIFtcbiAgICAgICAgXCJBbGxcIixcbiAgICAgICAge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWNjZXB0cyBhbGwgb3JnIGV2ZW50cyBvdGhlciB0aGFuIHRoZSBvbmVzIGxpc3RlZCAqL1xuICAgICAgICAgIEFsbEV4Y2VwdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPcmdFdmVudERpc2NyaW1pbmFudHNcIl1bXTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gT25seSBhY2NlcHRzIG9yZyBldmVudHMgdGhhdCBhcmUgb25lIG9mIHRoZSBsaXN0ZWQgZXZlbnRzICovXG4gICAgICAgICAgT25lT2Y6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3JnRXZlbnREaXNjcmltaW5hbnRzXCJdW107XG4gICAgICAgIH0sXG4gICAgICBdXG4gICAgPjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEFuIG9yZy1leHBvcnQgY2lwaGVydGV4dCByZXRyaWV2ZWQgdmlhIHRoZSBvcmctZXhwb3J0IEFQSS4gKi9cbiAgICBPcmdFeHBvcnRSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGJhc2U2NC1lbmNvZGVkIGV4cG9ydCBjaXBoZXJ0ZXh0LiAqL1xuICAgICAgY2lwaGVydGV4dDogc3RyaW5nO1xuICAgIH07XG4gICAgT3JnSW5mbzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFSZXF1aXJlbWVudHNcIl0gJlxuICAgICAgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb21tb25GaWVsZHNcIl0gJiB7XG4gICAgICAgIGFjY2Vzc19tb2RlbDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2Nlc3NNb2RlbFwiXTtcbiAgICAgICAgY3VzdG9tX2NoYWlucz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3VzdG9tQ2hhaW5zRGF0YVwiXSB8IG51bGw7XG4gICAgICAgIGRlZmF1bHRfaW52aXRlX2tpbmQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkludml0ZUtpbmRcIl07XG4gICAgICAgIGVtYWlsX3ByZWZlcmVuY2VzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbWFpbFByZWZlcmVuY2VzXCJdO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZW4gZmFsc2UsIGFsbCBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbnMgaW52b2x2aW5nIGtleXMgaW4gdGhpcyBvcmcgYXJlIGRpc2FibGVkLiAqL1xuICAgICAgICBlbmFibGVkOiBib29sZWFuO1xuICAgICAgICBleHRfZGF0YT86XG4gICAgICAgICAgfCAoe1xuICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gUGVyIGFsaWVuIHVzZXIga2V5IGNvdW50IHRocmVzaG9sZCwgd2hpY2gsIG9uY2UgZXhjZWVkZWQsIGRpc2FsbG93cyBmdXJ0aGVyIGtleSBjcmVhdGlvbiBieSBhbGllbiB1c2Vycy5cbiAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICogVGhpcyBzZXR0aW5nIGlzIGNoZWNrZWQgb25seSB3aGVuIGFuIGFsaWVuIHVzZXIgcmVxdWVzdHMgdG8gY3JlYXRlIG9yIGltcG9ydCBhIG5ldyBrZXkuXG4gICAgICAgICAgICAgICAqIEluIG90aGVyIHdvcmRzLCBvcmcgYWRtaW5zIGNhbiBzdGlsbCBhc3NpZ24gdW5saW1pdGVkIG51bWJlciBvZiBrZXlzIHRvIHRoZWlyIGFsaWVuIHVzZXJzLlxuICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgYWxpZW5fa2V5X2NvdW50X3RocmVzaG9sZD86IG51bWJlciB8IG51bGw7XG4gICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciBhbGllbiB1c2VycyBhcmUgYWxsb3dlZCB0byB1cGRhdGUgdGhlaXIgb3duIGtleSBwb2xpY2llcy5cbiAgICAgICAgICAgICAgICogRGVmYXVsdHMgdG8gJ2ZhbHNlJy5cbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIGFsaWVuc19jYW5fdXBkYXRlX2tleV9wb2xpY3k/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgICAgICAgIH0gJiB7XG4gICAgICAgICAgICAgIGNyZWF0ZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl0gfCBudWxsO1xuICAgICAgICAgICAgICBsYXN0X21vZGlmaWVkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdIHwgbnVsbDtcbiAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFZlcnNpb24gb2YgdGhpcyBvYmplY3RcbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIHZlcnNpb24/OiBudW1iZXI7XG4gICAgICAgICAgICB9ICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+KVxuICAgICAgICAgIHwgbnVsbDtcbiAgICAgICAgaGlzdG9yaWNhbF9kYXRhX2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkhpc3RvcmljYWxEYXRhQ29uZmlndXJhdGlvblwiXTtcbiAgICAgICAgaWRwX2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkcENvbmZpZ1wiXTtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXByZWNhdGVkOiB0aGlzIGZpZWxkIHNob3VsZCBiZSBpZ25vcmVkLiAqL1xuICAgICAgICBrZXlfaW1wb3J0X2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIHVuaXZlcnNhbGx5IHVuaXF1ZSBrZXktd3JhcHBpbmcta2V5IGlkZW50aWZpZXIuXG4gICAgICAgICAqIFRoaXMgdmFsdWUgaXMgcmVxdWlyZWQgd2hlbiBzZXR0aW5nIHVwIGtleSBleHBvcnQuXG4gICAgICAgICAqIEBleGFtcGxlIG1yay1mY2UwOTUyNWU4MTU4N2QyMzUyMGYxMWUwN2UyZTlkOVxuICAgICAgICAgKi9cbiAgICAgICAga3drX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gRGF0ZS90aW1lIChpbiBVVEMpIHdoZW4gbGFzdCAndW5zdGFrZScgd2FzIHBlcmZvcm1lZC4gVW5peCBlcG9jaCBpZiBub25lLlxuICAgICAgICAgKiBAZXhhbXBsZSBUT0RPXG4gICAgICAgICAqL1xuICAgICAgICBsYXN0X3Vuc3Rha2U6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEhvdyBtYW55ICd1bnN0YWtlJyBjYWxscyBoYXBwZW5lZCBvbiB0aGUgZGF5IHdoZW4gYGxhc3RfdW5zdGFrZWAgd2FzIHBlcmZvcm1lZC5cbiAgICAgICAgICovXG4gICAgICAgIGxhc3RfdW5zdGFrZV9kYXlfY291bnQ6IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIG9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBteV9vcmdfbmFtZVxuICAgICAgICAgKi9cbiAgICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIG5vdGlmaWNhdGlvbiBlbmRwb2ludHMsIHdoaWNoIGFyZSBIVFRQUyBVUkxzIGFyZSBub3RpZmllZCBhYm91dCBhXG4gICAgICAgICAqIGNvbmZpZ3VyYWJsZSBzZXQgb2YgZXZlbnRzIGluIGFuIG9yZ2FuaXphdGlvbi4gRm9yIGVhY2ggZXZlbnQsIEN1YmVTaWduZXIgc2VuZHMgYSBQT1NUXG4gICAgICAgICAqIHJlcXVlc3Qgd2l0aCBhIEpTT04tZm9ybWF0dGVkIGJvZHkgdGhhdCBjb250YWlucyB0aGUgZXZlbnQgZGV0YWlscy5cbiAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgKiAgIHtcbiAgICAgICAgICogICAgIFwiYXJuXCI6IFwiYXJuOmF3czpzbnM6dXMtZWFzdC0xOjAxMjM0NTY3ODkwMTpPcmdFdmVudHNUb3BpYzoxMjM0NTY3OC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDFcIixcbiAgICAgICAgICogICAgIFwiY29uZmlnXCI6IHtcbiAgICAgICAgICogICAgICAgXCJ1cmxcIjogXCJodHRwczovL2V4YW1wbGUuY29tL2VuZHBvaW50MVwiXG4gICAgICAgICAqICAgICB9LFxuICAgICAgICAgKiAgICAgXCJzdGF0dXNcIjogXCJDb25maXJtZWRcIlxuICAgICAgICAgKiAgIH0sXG4gICAgICAgICAqICAge1xuICAgICAgICAgKiAgICAgXCJhcm5cIjogXCJhcm46YXdzOnNuczp1cy1lYXN0LTE6MDEyMzQ1Njc4OTAxOk9yZ0V2ZW50c1RvcGljOjEyMzQ1Njc4LTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMlwiLFxuICAgICAgICAgKiAgICAgXCJjb25maWdcIjoge1xuICAgICAgICAgKiAgICAgICBcImZpbHRlclwiOiB7XG4gICAgICAgICAqICAgICAgICAgXCJPbmVPZlwiOiBbXG4gICAgICAgICAqICAgICAgICAgICBcIkV0aDJDb25jdXJyZW50QXR0ZXN0YXRpb25TaWduaW5nXCIsXG4gICAgICAgICAqICAgICAgICAgICBcIkV0aDJDb25jdXJyZW50QmxvY2tTaWduaW5nXCJcbiAgICAgICAgICogICAgICAgICBdXG4gICAgICAgICAqICAgICAgIH0sXG4gICAgICAgICAqICAgICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDJcIlxuICAgICAgICAgKiAgICAgfSxcbiAgICAgICAgICogICAgIFwic3RhdHVzXCI6IFwiUGVuZGluZ1wiXG4gICAgICAgICAqICAgfVxuICAgICAgICAgKiBdXG4gICAgICAgICAqL1xuICAgICAgICBub3RpZmljYXRpb25fZW5kcG9pbnRzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJOb3RpZmljYXRpb25FbmRwb2ludFwiXVtdO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgb3JnYW5pemF0aW9uXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICBwYXNza2V5X2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBhc3NrZXlDb25maWdcIl07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gT3JnLXdpZGUgcG9saWNpZXMgdGhhdCBhcmUgY2hlY2tlZCBiZWZvcmUgYSBrZXkgaXMgdXNlZCBmb3Igc2lnbmluZ1xuICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAqICAge1xuICAgICAgICAgKiAgICAgXCJNYXhEYWlseVVuc3Rha2VcIjogNVxuICAgICAgICAgKiAgIH1cbiAgICAgICAgICogXVxuICAgICAgICAgKi9cbiAgICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W107XG4gICAgICAgIHBvbGljeV9lbmdpbmVfY29uZmlndXJhdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUG9saWN5RW5naW5lQ29uZmlndXJhdGlvblwiXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBHbG9iYWwgc2lnbiBwb2xpY3kgdGhhdCBhcHBsaWVzIHRvIGV2ZXJ5IHNpZ24gb3BlcmF0aW9uIChldmVyeSBrZXksIGV2ZXJ5IHJvbGUpIGluIHRoZSBvcmdcbiAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgKiAgIHtcbiAgICAgICAgICogICAgIFwiVHhSZWNlaXZlclwiOiBcIjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiXG4gICAgICAgICAqICAgfVxuICAgICAgICAgKiBdXG4gICAgICAgICAqL1xuICAgICAgICBzaWduX3BvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdO1xuICAgICAgICAvKipcbiAgICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIGN1cnJlbnRseSBjb25maWd1cmVkIFRPVFAgZmFpbHVyZSBsaW1pdCwgaS5lLiwgdGhlIG51bWJlclxuICAgICAgICAgKiBvZiB0aW1lcyBhIHVzZXIgY2FuIHByb3ZpZGUgYW4gaW5jb3JyZWN0IFRPVFAgY29kZSBiZWZvcmUgYmVpbmcgcmF0ZSBsaW1pdGVkLlxuICAgICAgICAgKiBUaGlzIHZhbHVlIGNhbiBiZSBiZXR3ZWVuIDEgYW5kIDUgKGluY2x1c2l2ZSkuXG4gICAgICAgICAqL1xuICAgICAgICB0b3RwX2ZhaWx1cmVfbGltaXQ6IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmdhbml6YXRpb24ncyBjdXJyZW50bHkgY29uZmlndXJlZCB1c2VyLWV4cG9ydCBkZWxheSwgaS5lLiwgdGhlIG1pbmltdW1cbiAgICAgICAgICogYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIGJldHdlZW4gd2hlbiBhIHVzZXItZXhwb3J0IGlzIGluaXRpYXRlZCBhbmQgd2hlblxuICAgICAgICAgKiBpdCBtYXkgYmUgY29tcGxldGVkLiAoVGhpcyB2YWx1ZSBpcyBtZWFuaW5nbGVzcyBmb3Igb3JnYW5pemF0aW9ucyB0aGF0IHVzZVxuICAgICAgICAgKiBvcmctd2lkZSBleHBvcnQuKVxuICAgICAgICAgKi9cbiAgICAgICAgdXNlcl9leHBvcnRfZGVsYXk6IG51bWJlcjtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHVzZXIgZXhwb3J0IGlzIGRpc2FibGVkICovXG4gICAgICAgIHVzZXJfZXhwb3J0X2Rpc2FibGVkPzogYm9vbGVhbjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmdhbml6YXRpb24ncyBjdXJyZW50bHkgY29uZmlndXJlZCB1c2VyLWV4cG9ydCB3aW5kb3csIGkuZS4sIHRoZSBhbW91bnRcbiAgICAgICAgICogb2YgdGltZSAoaW4gc2Vjb25kcykgYmV0d2VlbiB3aGVuIHRoZSB1c2VyLWV4cG9ydCBkZWxheSBpcyBjb21wbGV0ZWQgYW5kIHdoZW5cbiAgICAgICAgICogdGhlIHVzZXIgZXhwb3J0IHJlcXVlc3QgaGFzIGV4cGlyZWQgYW5kIGNhbiBubyBsb25nZXIgYmUgY29tcGxldGVkLiAoVGhpcyB2YWx1ZVxuICAgICAgICAgKiBpcyBtZWFuaW5nbGVzcyBmb3Igb3JnYW5pemF0aW9ucyB0aGF0IHVzZSBvcmctd2lkZSBleHBvcnQuKVxuICAgICAgICAgKi9cbiAgICAgICAgdXNlcl9leHBvcnRfd2luZG93OiBudW1iZXI7XG4gICAgICAgIHdlYmFwcF9lbmFibGVkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJXZWJhcHBFbmFibGVkXCJdO1xuICAgICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFN1cHBvcnRlZCBvcmcgbWV0cmljcy4gKi9cbiAgICBPcmdNZXRyaWM6IE9uZU9mPFxuICAgICAgW1xuICAgICAgICB7XG4gICAgICAgICAgQmlsbGluZ0V2ZW50OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbGxpbmdEaW1lbnNpb25zXCJdO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgT2lkY0xvZ2luRXZlbnQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY0xvZ2luRGltZW5zaW9uc1wiXTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFNpZ25FdmVudDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTaWduRGltZW5zaW9uc1wiXTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFVzZXJDb3VudDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VyQ291bnREaW1lbnNpb25zXCJdO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgS2V5Q291bnQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5Q291bnREaW1lbnNpb25zXCJdO1xuICAgICAgICB9LFxuICAgICAgXVxuICAgID47XG4gICAgT3JnTWV0cmljRGF0YToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZGF0YSBwb2ludHMsIG9uZSBmb3IgZWFjaCB0aW1lIHBlcmlvZCAodGltZSBwZXJpb2RzIGZvciB3aGljaCB0aGUgdmFsdWUgaXMgMCBhcmUgb21pdHRlZCkuICovXG4gICAgICBkYXRhOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IG51bWJlcjtcbiAgICAgIH07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtZXRyaWMgZGltZW5zaW9ucy4gKi9cbiAgICAgIGRpbWVuc2lvbnM6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBdXRvLWdlbmVyYXRlZCBkaXNjcmltaW5hbnQgZW51bSB2YXJpYW50c1xuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgT3JnTWV0cmljRGlzY3JpbWluYW50czpcbiAgICAgIHwgXCJCaWxsaW5nRXZlbnRcIlxuICAgICAgfCBcIk9pZGNMb2dpbkV2ZW50XCJcbiAgICAgIHwgXCJTaWduRXZlbnRcIlxuICAgICAgfCBcIlVzZXJDb3VudFwiXG4gICAgICB8IFwiS2V5Q291bnRcIjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXZhaWxhYmxlIHN0YXRpc3RpY3MgdG8gY29tcHV0ZVxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgT3JnTWV0cmljU3RhdDogXCJTdW1cIiB8IFwiQXZlcmFnZVwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT1MgaW5mb3JtYXRpb24gc2V0IGluIFtgQ2xpZW50U2Vzc2lvbk1ldGFkYXRhYF0gYW5kIHJlZmxlY3RlZCBpbiBbYFNlc3Npb25NZXRhZGF0YWBdICovXG4gICAgT3NJbmZvOiB7XG4gICAgICAvKiogQGV4YW1wbGUgYXJtNjQgKi9cbiAgICAgIGFyY2hpdGVjdHVyZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGV4YW1wbGUgTWFjIE9TICovXG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZXhhbXBsZSAxNC41LjAgKi9cbiAgICAgIHZlcnNpb24/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBleGFtcGxlIDY0LWJpdCAqL1xuICAgICAgd29yZF9zaXplPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcm9ja2V0IHF1ZXJ5IHBhcmFtZXRlciByZXByZXNlbnRpbmcgdGhlIHBhZ2UgZnJvbSB3aGljaCB0byBzdGFydCBhIHBhZ2luYXRlZCBxdWVyeS5cbiAgICAgKlxuICAgICAqIE1VU1QgYmUgbmFtZWQgYDxwYWdlPmAgaW4gcm9ja2V0IHVybCBzcGVjIHNvIHRoYXQgJ3NlcmRlKHJlbmFtZSA9IFwicGFnZS4qXCIpJyBiZWxvdyBjb250aW51ZXMgdG8gd29ya1xuICAgICAqL1xuICAgIFBhZ2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICpcbiAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAqL1xuICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICovXG4gICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdHlwZSB0aGF0IHdyYXBzIGFub3RoZXIgdHlwZSBhbmQgYWRkcyBiYXNlNjR1cmwtZW5jb2RlZCBlbmNyeXB0ZWQgYGxhc3RfZXZhbHVhdGVkX2tleWBcbiAgICAgKiB2YWx1ZSAod2hpY2ggY2FuIHRoZSB1c2VyIHBhc3MgYmFjayB0byB1c2UgYXMgYSB1cmwgcXVlcnkgcGFyYW1ldGVyIHRvIGNvbnRpbnVlIHBhZ2luYXRpb24pLlxuICAgICAqL1xuICAgIFBhZ2luYXRlZEF1ZGl0TG9nUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXVkaXQgbG9nIGVudHJpZXMgKi9cbiAgICAgIGVudHJpZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXVkaXRMb2dFbnRyeVwiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRHZXRVc2Vyc0luT3JnUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2YgdXNlcnMgaW4gdGhlIG9yZyAqL1xuICAgICAgdXNlcnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckluT3JnSW5mb1wiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRMaXN0QnVja2V0c1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBidWNrZXRzIGluIHRoZSBvcmdhbml6YXRpb24uICovXG4gICAgICBidWNrZXRzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ1Y2tldEluZm9cIl1bXTtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAqL1xuICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSB0eXBlIHRoYXQgd3JhcHMgYW5vdGhlciB0eXBlIGFuZCBhZGRzIGJhc2U2NHVybC1lbmNvZGVkIGVuY3J5cHRlZCBgbGFzdF9ldmFsdWF0ZWRfa2V5YFxuICAgICAqIHZhbHVlICh3aGljaCBjYW4gdGhlIHVzZXIgcGFzcyBiYWNrIHRvIHVzZSBhcyBhIHVybCBxdWVyeSBwYXJhbWV0ZXIgdG8gY29udGludWUgcGFnaW5hdGlvbikuXG4gICAgICovXG4gICAgUGFnaW5hdGVkTGlzdENvbnRhY3RzUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBsaXN0IG9mIGNvbnRhY3RzIGluIHRoZSBvcmdhbml6YXRpb24sIG1hdGNoaW5nIGFueSBwcm92aWRlZCBxdWVyaWVzLiAqL1xuICAgICAgY29udGFjdHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29udGFjdEluZm9SZXNwb25zZVwiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRMaXN0SGlzdG9yaWNhbFR4UmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSGlzdG9yaWNhbCB0cmFuc2FjdGlvbnMgc2lnbmVkIHdpdGggdGhlIHJlcXVlc3RlZCBrZXksIHNvcnRlZCBmcm9tIG1vc3QgdG8gbGVhc3QgcmVjZW50LiAqL1xuICAgICAgdHhzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkhpc3RvcmljYWxUeFwiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRMaXN0SW52aXRhdGlvbnNSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQZW5kaW5nIGludml0YXRpb25zICovXG4gICAgICBpbnZpdGF0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbnZpdGF0aW9uSW5mb1wiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRMaXN0S2V5Um9sZXNSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgcm9sZXMgdGhlIGtleSBpcyBpbiAqL1xuICAgICAgcm9sZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5Sb2xlSW5mb1wiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRMaXN0S2V5c1Jlc3BvbnNlOiB7XG4gICAgICBrZXlzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluZm9cIl1bXTtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAqL1xuICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSB0eXBlIHRoYXQgd3JhcHMgYW5vdGhlciB0eXBlIGFuZCBhZGRzIGJhc2U2NHVybC1lbmNvZGVkIGVuY3J5cHRlZCBgbGFzdF9ldmFsdWF0ZWRfa2V5YFxuICAgICAqIHZhbHVlICh3aGljaCBjYW4gdGhlIHVzZXIgcGFzcyBiYWNrIHRvIHVzZSBhcyBhIHVybCBxdWVyeSBwYXJhbWV0ZXIgdG8gY29udGludWUgcGFnaW5hdGlvbikuXG4gICAgICovXG4gICAgUGFnaW5hdGVkTGlzdE1mYVJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBwZW5kaW5nIE1GQSByZXF1ZXN0cyAqL1xuICAgICAgbWZhX3JlcXVlc3RzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdW107XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgKi9cbiAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdHlwZSB0aGF0IHdyYXBzIGFub3RoZXIgdHlwZSBhbmQgYWRkcyBiYXNlNjR1cmwtZW5jb2RlZCBlbmNyeXB0ZWQgYGxhc3RfZXZhbHVhdGVkX2tleWBcbiAgICAgKiB2YWx1ZSAod2hpY2ggY2FuIHRoZSB1c2VyIHBhc3MgYmFjayB0byB1c2UgYXMgYSB1cmwgcXVlcnkgcGFyYW1ldGVyIHRvIGNvbnRpbnVlIHBhZ2luYXRpb24pLlxuICAgICAqL1xuICAgIFBhZ2luYXRlZExpc3RQb2xpY2llc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBPcmcncyBuYW1lZCBwb2xpY2llcy4gKi9cbiAgICAgIHBvbGljaWVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBvbGljeUluZm9cIl1bXTtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAqL1xuICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSB0eXBlIHRoYXQgd3JhcHMgYW5vdGhlciB0eXBlIGFuZCBhZGRzIGJhc2U2NHVybC1lbmNvZGVkIGVuY3J5cHRlZCBgbGFzdF9ldmFsdWF0ZWRfa2V5YFxuICAgICAqIHZhbHVlICh3aGljaCBjYW4gdGhlIHVzZXIgcGFzcyBiYWNrIHRvIHVzZSBhcyBhIHVybCBxdWVyeSBwYXJhbWV0ZXIgdG8gY29udGludWUgcGFnaW5hdGlvbikuXG4gICAgICovXG4gICAgUGFnaW5hdGVkTGlzdFJvbGVLZXlzUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIGtleXMgaW4gYSByb2xlICovXG4gICAgICBrZXlzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluUm9sZUluZm9cIl1bXTtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAqL1xuICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSB0eXBlIHRoYXQgd3JhcHMgYW5vdGhlciB0eXBlIGFuZCBhZGRzIGJhc2U2NHVybC1lbmNvZGVkIGVuY3J5cHRlZCBgbGFzdF9ldmFsdWF0ZWRfa2V5YFxuICAgICAqIHZhbHVlICh3aGljaCBjYW4gdGhlIHVzZXIgcGFzcyBiYWNrIHRvIHVzZSBhcyBhIHVybCBxdWVyeSBwYXJhbWV0ZXIgdG8gY29udGludWUgcGFnaW5hdGlvbikuXG4gICAgICovXG4gICAgUGFnaW5hdGVkTGlzdFJvbGVVc2Vyc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCB1c2VycyBpbiBhIHJvbGUgKi9cbiAgICAgIHVzZXJzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJJblJvbGVJbmZvXCJdW107XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgKi9cbiAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdHlwZSB0aGF0IHdyYXBzIGFub3RoZXIgdHlwZSBhbmQgYWRkcyBiYXNlNjR1cmwtZW5jb2RlZCBlbmNyeXB0ZWQgYGxhc3RfZXZhbHVhdGVkX2tleWBcbiAgICAgKiB2YWx1ZSAod2hpY2ggY2FuIHRoZSB1c2VyIHBhc3MgYmFjayB0byB1c2UgYXMgYSB1cmwgcXVlcnkgcGFyYW1ldGVyIHRvIGNvbnRpbnVlIHBhZ2luYXRpb24pLlxuICAgICAqL1xuICAgIFBhZ2luYXRlZExpc3RSb2xlc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCByb2xlcyBpbiBhbiBvcmdhbml6YXRpb24uICovXG4gICAgICByb2xlczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSb2xlSW5mb1wiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRQb2xpY3lMb2dzUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHBvbGljeSBleGVjdXRpb24gbG9ncyAqL1xuICAgICAgbG9nczoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gICAgICB9W107XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgKi9cbiAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdHlwZSB0aGF0IHdyYXBzIGFub3RoZXIgdHlwZSBhbmQgYWRkcyBiYXNlNjR1cmwtZW5jb2RlZCBlbmNyeXB0ZWQgYGxhc3RfZXZhbHVhdGVkX2tleWBcbiAgICAgKiB2YWx1ZSAod2hpY2ggY2FuIHRoZSB1c2VyIHBhc3MgYmFjayB0byB1c2UgYXMgYSB1cmwgcXVlcnkgcGFyYW1ldGVyIHRvIGNvbnRpbnVlIHBhZ2luYXRpb24pLlxuICAgICAqL1xuICAgIFBhZ2luYXRlZFF1ZXJ5TWV0cmljc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFkdmlzb3J5IG1lc3NhZ2VzIChlLmcuLCBpZiBtYXggbnVtYmVyIG9mIHJlc3VsdHMgaXMgcmVhY2hlZCkuICovXG4gICAgICBtZXNzYWdlcz86IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBlcmlvZCBmb3Igd2hpY2ggdGhlIHN0YXRpc3RpYyBpcyBjb21wdXRlZCwgaWYgYW55IChub3QgYWxsIG1ldHJpY3Mgc3VwcG9ydCBzcGxpdHRpbmcgdGhlIHJlcXVlc3RlZCB0aW1lIHJhbmdlIGludG8gYmlucykuXG4gICAgICAgKiBJZiBzZXQsIGVxdWFscyB0byB0aGUgdmFsdWUgZnJvbSB0aGUgcmVxdWVzdCByb3VuZGVkIHVwIHRvIHRoZSBjbG9zZXN0IG11bHRpcGxlIG9mIDYwLlxuICAgICAgICovXG4gICAgICBwZXJpb2Q/OiBudW1iZXI7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFNvbWUgbWV0cmljcyBjYW4gb3B0aW9uYWxseSByZXR1cm4gdGhlIHJhdyBkYXRhLCB3aGVuIHJlcXVlc3RlZC4gKi9cbiAgICAgIHJhd19kYXRhOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICAgIH1bXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29tcHV0ZWQgZGF0YSBwb2ludHMuICovXG4gICAgICByZXN1bHRzOiB7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGRhdGEgcG9pbnRzLCBvbmUgZm9yIGVhY2ggdGltZSBwZXJpb2QgKHRpbWUgcGVyaW9kcyBmb3Igd2hpY2ggdGhlIHZhbHVlIGlzIDAgYXJlIG9taXR0ZWQpLiAqL1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgW2tleTogc3RyaW5nXTogbnVtYmVyO1xuICAgICAgICB9O1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtZXRyaWMgZGltZW5zaW9ucy4gKi9cbiAgICAgICAgZGltZW5zaW9uczoge1xuICAgICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH1bXTtcbiAgICAgIHN0YXQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9yZ01ldHJpY1N0YXRcIl0gfCBudWxsO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRTZXNzaW9uc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBsaXN0IG9mIHNlc3Npb25zICovXG4gICAgICBzZXNzaW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZXNzaW9uSW5mb1wiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRVc2VyRXhwb3J0TGlzdFJlc3BvbnNlOiB7XG4gICAgICBleHBvcnRfcmVxdWVzdHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckV4cG9ydEluaXRSZXNwb25zZVwiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBTZW50IGZyb20gdGhlIGNsaWVudCB0byB0aGUgc2VydmVyIHRvIGFuc3dlciBhIGZpZG8gY2hhbGxlbmdlICovXG4gICAgUGFzc2tleUFzc2VydEFuc3dlcjoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIGNoYWxsZW5nZSB0aGF0IHdhcyByZXR1cm5lZCBmcm9tIHRoZSBQT1NUIGVuZHBvaW50ICovXG4gICAgICBjaGFsbGVuZ2VfaWQ6IHN0cmluZztcbiAgICAgIGNyZWRlbnRpYWw6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFwiXTtcbiAgICB9O1xuICAgIFBhc3NrZXlBc3NlcnRDaGFsbGVuZ2U6IChjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNoYWxsZW5nZVBpZWNlc1wiXSAmIHtcbiAgICAgIG9wdGlvbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zXCJdO1xuICAgIH0pICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGNoYWxsZW5nZS4gTXVzdCBiZSBzdXBwbGllZCB3aGVuIGFuc3dlcmluZyB0aGUgY2hhbGxlbmdlLiAqL1xuICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9yZy1sZXZlbCBwYXNza2V5IGNvbmZpZ3VyYXRpb24gKi9cbiAgICBQYXNza2V5Q29uZmlnOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEVuYWJsZSBwYXNza2V5IGxvZ2luIGZvciBjZXJ0YWluIHVzZXIgcm9sZXMgKGRpc2FibGVkIGZvciBldmVyeW9uZSBieSBkZWZhdWx0KSAqL1xuICAgICAgdXNlcnM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1lbWJlclJvbGVcIl1bXTtcbiAgICB9O1xuICAgIFBhc3N3b3JkUmVzZXRDb25maXJtUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IHBhc3N3b3JkIHRvIHNldC4gKi9cbiAgICAgIG5ld19wYXNzd29yZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSW52aXRhdGlvbiB0b2tlbiwgY29uc3RydWN0ZWQgYnkgY29uY2F0ZW5hdGluZyB0aGUgXCJwYXJ0aWFsIHRva2VuXCJcbiAgICAgICAqIChpLmUuLCBge2hlYWRlcn0ue3BheWxvYWR9LmApIHJldHVybmVkIGJ5IHRoZSBgaWRwX3Bhc3N3b3JkX3Jlc2V0X3JlcXVlc3RgIGVuZHBvaW50XG4gICAgICAgKiBhbmQgdGhlIHNpZ25hdHVyZSBzZW50IHRvIHRoZSB1c2VyJ3MgZW1haWwuXG4gICAgICAgKi9cbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXF1ZXN0IGJvZHkgZm9yIHRoZSBpZHAgcGFzc3dvcmQgcmVzZXQgZW5kcG9pbnQgKi9cbiAgICBQYXNzd29yZFJlc2V0UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIgcmVxdWVzdGluZyB0byByZXNldCB0aGVpciBwYXNzd29yZFxuICAgICAgICogQGV4YW1wbGUgYWxpY2VAZXhhbXBsZS5jb21cbiAgICAgICAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gRXh0ZW5kZWQgaW5mb3JtYXRpb24gYWJvdXQgYW4gZXhpc3RpbmcgTU1JIHJlcXVlc3QuICovXG4gICAgUGVuZGluZ01lc3NhZ2VJbmZvOiB7XG4gICAgICBtZXRhZGF0YTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNbWlNZXRhZGF0YVwiXTtcbiAgICAgIHNpZ25lZE1lc3NhZ2U/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNpZ25lZE1lc3NhZ2VcIl0gfCBudWxsO1xuICAgICAgdHJhbnNhY3Rpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRyYW5zYWN0aW9uQW5kU3RhdHVzXCJdIHwgbnVsbDtcbiAgICB9ICYge1xuICAgICAgY3JlYXRlZF9hdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgZXhwaXJlc19hdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHBlbmRpbmcgbWVzc2FnZSAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkZW50aXR5IChhIHVzZXIgb3IgYSByb2xlIGlkKSB3aGljaCBjcmVhdGVkIHRoaXMgbWVzc2FnZS4gKi9cbiAgICAgIGlkZW50aXR5OiBzdHJpbmc7XG4gICAgICBtZXNzYWdlX2VpcDE5MT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIGFkZHJlc3MsIGhleC1lbmNvZGVkLCB3aXRoIGxlYWRpbmcgJzB4J1xuICAgICAgICAgKiBAZXhhbXBsZSAweDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlcbiAgICAgICAgICovXG4gICAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCAoaW5jbHVkaW5nIGEgJzB4JyBwcmVmaXgpIG1lc3NhZ2UgdG8gc2lnbi4gKi9cbiAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgICAgfSB8IG51bGw7XG4gICAgICBtZXNzYWdlX2VpcDcxMj86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIGFkZHJlc3MsIGhleC1lbmNvZGVkLCB3aXRoIGxlYWRpbmcgJzB4J1xuICAgICAgICAgKiBAZXhhbXBsZSAweDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlcbiAgICAgICAgICovXG4gICAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgICAgZGF0YTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUeXBlZERhdGFcIl07XG4gICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICB2ZXJzaW9uOiBcInYzXCIgfCBcInY0XCI7XG4gICAgICB9IHwgbnVsbDtcbiAgICAgIG1lc3NhZ2VfdHg/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlR5cGVkVHJhbnNhY3Rpb25cIl0gfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFeHRlbmRlZCBpbmZvcm1hdGlvbiBhYm91dCBhbiBleGlzdGluZyBNTUkgbWVzc2FnZSwgaW5jbHVkaW5nIHRoZSBzaWduYXR1cmUuICovXG4gICAgUGVuZGluZ01lc3NhZ2VTaWduUmVzcG9uc2U6ICh7XG4gICAgICBtZXRhZGF0YTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNbWlNZXRhZGF0YVwiXTtcbiAgICAgIHNpZ25lZE1lc3NhZ2U/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNpZ25lZE1lc3NhZ2VcIl0gfCBudWxsO1xuICAgICAgdHJhbnNhY3Rpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRyYW5zYWN0aW9uQW5kU3RhdHVzXCJdIHwgbnVsbDtcbiAgICB9ICYge1xuICAgICAgY3JlYXRlZF9hdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgZXhwaXJlc19hdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHBlbmRpbmcgbWVzc2FnZSAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkZW50aXR5IChhIHVzZXIgb3IgYSByb2xlIGlkKSB3aGljaCBjcmVhdGVkIHRoaXMgbWVzc2FnZS4gKi9cbiAgICAgIGlkZW50aXR5OiBzdHJpbmc7XG4gICAgICBtZXNzYWdlX2VpcDE5MT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIGFkZHJlc3MsIGhleC1lbmNvZGVkLCB3aXRoIGxlYWRpbmcgJzB4J1xuICAgICAgICAgKiBAZXhhbXBsZSAweDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlcbiAgICAgICAgICovXG4gICAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCAoaW5jbHVkaW5nIGEgJzB4JyBwcmVmaXgpIG1lc3NhZ2UgdG8gc2lnbi4gKi9cbiAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgICAgfSB8IG51bGw7XG4gICAgICBtZXNzYWdlX2VpcDcxMj86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIGFkZHJlc3MsIGhleC1lbmNvZGVkLCB3aXRoIGxlYWRpbmcgJzB4J1xuICAgICAgICAgKiBAZXhhbXBsZSAweDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlcbiAgICAgICAgICovXG4gICAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgICAgZGF0YTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUeXBlZERhdGFcIl07XG4gICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICB2ZXJzaW9uOiBcInYzXCIgfCBcInY0XCI7XG4gICAgICB9IHwgbnVsbDtcbiAgICAgIG1lc3NhZ2VfdHg/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlR5cGVkVHJhbnNhY3Rpb25cIl0gfCBudWxsO1xuICAgIH0pICZcbiAgICAgIFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGFjY2Vzcy1jb250cm9sbGVkIGFjdGlvbnMgdGhhdCBjYW4gYmUgcGVyZm9ybWVkIG9uIGEgbmFtZWQgcG9saWN5LlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgUG9saWN5QWN0aW9uOlxuICAgICAgfCBcInJlYWQ6KlwiXG4gICAgICB8IFwicmVhZFwiXG4gICAgICB8IFwicmVhZDpwb2xpY3lcIlxuICAgICAgfCBcInJlYWQ6bG9nc1wiXG4gICAgICB8IFwidXBkYXRlOipcIlxuICAgICAgfCBcInVwZGF0ZVwiXG4gICAgICB8IFwidXBkYXRlOm5hbWVcIlxuICAgICAgfCBcInVwZGF0ZTpydWxlc1wiXG4gICAgICB8IFwidXBkYXRlOm1ldGFkYXRhXCJcbiAgICAgIHwgXCJ1cGRhdGU6ZWRpdFBvbGljeVwiXG4gICAgICB8IFwidXBkYXRlOm93bmVyXCJcbiAgICAgIHwgXCJ1cGRhdGU6YWNsXCJcbiAgICAgIHwgXCJkZWxldGVcIlxuICAgICAgfCBcImF0dGFjaFwiXG4gICAgICB8IFwic2lnblwiXG4gICAgICB8IFwiaW52b2tlXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaWQgZm9yIGF0dGFjaGluZyBhIG5hbWVkIHBvbGljeSB0byBhIGtleSwgcm9sZSwgb3Iga2V5IGluIHJvbGUuICovXG4gICAgUG9saWN5QXR0YWNoZWRUb0lkOiBPbmVPZjxcbiAgICAgIFtcbiAgICAgICAge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGtleSBpbiB0aGUgcm9sZSB0aGUgcG9saWN5IHNob3VsZCBiZSBhdHRhY2hlZCB0by5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAgICAgICAgICovXG4gICAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgcm9sZSB0aGUga2V5IGlzIGluLlxuICAgICAgICAgICAqIEBleGFtcGxlIFJvbGUjYmZlM2VjY2ItNzMxZS00MzBkLWIxZTUtYWMxMzYzZTZiMDZiXG4gICAgICAgICAgICovXG4gICAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUga2V5IHRoZSBwb2xpY3kgc2hvdWxkIGJlIGF0dGFjaGVkIHRvLlxuICAgICAgICAgICAqIEBleGFtcGxlIEtleSMweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIHJvbGUgdGhlIHBvbGljeSBzaG91bGQgYmUgYXR0YWNoZWQgdG8uXG4gICAgICAgICAgICogQGV4YW1wbGUgUm9sZSNiZmUzZWNjYi03MzFlLTQzMGQtYjFlNS1hYzEzNjNlNmIwNmJcbiAgICAgICAgICAgKi9cbiAgICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBvcmcgdGhlIHBvbGljeSBzaG91bGQgYmUgYXR0YWNoZWQgdG8uXG4gICAgICAgICAgICogQGV4YW1wbGUgT3JnI2IwMTU2YWJkLTUzYmQtNDA0My04ZTU1LTU3ZjdhZjk1MTJkNVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICB9LFxuICAgICAgXVxuICAgID47XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHN0cnVjdCBjb250YWluaW5nIE9yZy1sZXZlbCBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHdvcmtpbmdzIG9mIHRoZSBQb2xpY3kgRW5naW5lLiAqL1xuICAgIFBvbGljeUVuZ2luZUNvbmZpZ3VyYXRpb246IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFsbG93ZWQgZG9tYWlucyBmb3IgSFRUUCByZXF1ZXN0c1xuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcImN1YmlzdC5kZXY6NDQzXCJcbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgYWxsb3dlZF9odHRwX2F1dGhvcml0aWVzOiBzdHJpbmdbXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG1heGltdW0gbnVtYmVyIG9mIHBvbGljeSBzZWNyZXRzIGZvciB0aGUgT3JnLiAqL1xuICAgICAgb3JnX3NlY3JldHNfbGltaXQ/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgUG9saWN5RXJyb3JDb2RlOlxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBvbGljeUVycm9yT3duQ29kZXNcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFdm1UeERlcG9zaXRFcnJvckNvZGVcIl07XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgUG9saWN5RXJyb3JPd25Db2RlczpcbiAgICAgIHwgXCJNZmFIdHRwUmVxdWVzdE1pc21hdGNoXCJcbiAgICAgIHwgXCJNZmFFeHBpcmVkXCJcbiAgICAgIHwgXCJJbmFwcGxpY2FibGVcIlxuICAgICAgfCBcIlN1aVR4UmVjZWl2ZXJzRGlzYWxsb3dlZFRyYW5zYWN0aW9uS2luZFwiXG4gICAgICB8IFwiU3VpVHhSZWNlaXZlcnNEaXNhbGxvd2VkVHJhbnNmZXJBZGRyZXNzXCJcbiAgICAgIHwgXCJTdWlUeFJlY2VpdmVyc0Rpc2FsbG93ZWRDb21tYW5kXCJcbiAgICAgIHwgXCJCdGNUeERpc2FsbG93ZWRPdXRwdXRzXCJcbiAgICAgIHwgXCJCdGNTaWduYXR1cmVFeGNlZWRlZFZhbHVlXCJcbiAgICAgIHwgXCJCdGNWYWx1ZU92ZXJmbG93XCJcbiAgICAgIHwgXCJCdGNTaWdoYXNoVHlwZURpc2FsbG93ZWRcIlxuICAgICAgfCBcIkVpcDc3MDJBZGRyZXNzTWlzbWF0Y2hcIlxuICAgICAgfCBcIkV2bVR4UmVjZWl2ZXJNaXNtYXRjaFwiXG4gICAgICB8IFwiRXZtVHhDaGFpbklkTWlzbWF0Y2hcIlxuICAgICAgfCBcIkV2bVR4U2VuZGVyTWlzbWF0Y2hcIlxuICAgICAgfCBcIkV2bVR4RXhjZWVkZWRWYWx1ZVwiXG4gICAgICB8IFwiRXZtVHhFeGNlZWRlZEdhc0Nvc3RcIlxuICAgICAgfCBcIkV2bVR4R2FzQ29zdFVuZGVmaW5lZFwiXG4gICAgICB8IFwiRXZtRGF0YURpc2FsbG93ZWRcIlxuICAgICAgfCBcIkVyYzIwRGF0YUludmFsaWRcIlxuICAgICAgfCBcIkV2bUNvbnRyYWN0QWRkcmVzc1VuZGVmaW5lZFwiXG4gICAgICB8IFwiRXZtQ29udHJhY3RDaGFpbklkVW5kZWZpbmVkXCJcbiAgICAgIHwgXCJFdm1EYXRhTm90RGVmaW5lZFwiXG4gICAgICB8IFwiRXZtRGF0YUludmFsaWRcIlxuICAgICAgfCBcIkV2bUNvbnRyYWN0Tm90SW5BbGxvd2xpc3RcIlxuICAgICAgfCBcIkVyYzIwRXhjZWVkZWRUcmFuc2ZlckxpbWl0XCJcbiAgICAgIHwgXCJFcmMyMFJlY2VpdmVyTWlzbWF0Y2hcIlxuICAgICAgfCBcIkVyYzIwRXhjZWVkZWRBcHByb3ZlTGltaXRcIlxuICAgICAgfCBcIkVyYzIwU3BlbmRlck1pc21hdGNoXCJcbiAgICAgIHwgXCJFdm1GdW5jdGlvbk5vdEluQWxsb3dsaXN0XCJcbiAgICAgIHwgXCJFdm1GdW5jdGlvbkNhbGxJbnZhbGlkXCJcbiAgICAgIHwgXCJFdm1GdW5jdGlvbkNhbGxEaXNhbGxvd2VkQXJnXCJcbiAgICAgIHwgXCJQb2xpY3lEaXNqdW5jdGlvbkVycm9yXCJcbiAgICAgIHwgXCJQb2xpY3lOZWdhdGlvbkVycm9yXCJcbiAgICAgIHwgXCJFdGgyRXhjZWVkZWRNYXhVbnN0YWtlXCJcbiAgICAgIHwgXCJFdGgyQ29uY3VycmVudFVuc3Rha2luZ1wiXG4gICAgICB8IFwiTm90SW5JcHY0QWxsb3dsaXN0XCJcbiAgICAgIHwgXCJOb3RJbk9yaWdpbkFsbG93bGlzdFwiXG4gICAgICB8IFwiTm90SW5PcGVyYXRpb25BbGxvd2xpc3RcIlxuICAgICAgfCBcIkludmFsaWRTb3VyY2VJcFwiXG4gICAgICB8IFwiUmF3U2lnbmluZ05vdEFsbG93ZWRcIlxuICAgICAgfCBcIkRpZmZpZUhlbGxtYW5FeGNoYW5nZU5vdEFsbG93ZWRcIlxuICAgICAgfCBcIkVpcDcxMlNpZ25pbmdOb3RBbGxvd2VkXCJcbiAgICAgIHwgXCJPaWRjU291cmNlTm90QWxsb3dlZFwiXG4gICAgICB8IFwiTm9PaWRjQXV0aFNvdXJjZXNEZWZpbmVkXCJcbiAgICAgIHwgXCJBZGRLZXlUb1JvbGVEaXNhbGxvd2VkXCJcbiAgICAgIHwgXCJLZXlzQWxyZWFkeUluUm9sZVwiXG4gICAgICB8IFwiS2V5SW5NdWx0aXBsZVJvbGVzXCJcbiAgICAgIHwgXCJLZXlBY2Nlc3NFcnJvclwiXG4gICAgICB8IFwiUmVxdWlyZVJvbGVTZXNzaW9uS2V5QWNjZXNzRXJyb3JcIlxuICAgICAgfCBcIkJ0Y01lc3NhZ2VTaWduaW5nTm90QWxsb3dlZFwiXG4gICAgICB8IFwiRWlwMTkxU2lnbmluZ05vdEFsbG93ZWRcIlxuICAgICAgfCBcIkVpcDc3MDJTaWduaW5nTm90QWxsb3dlZFwiXG4gICAgICB8IFwiVGFwcm9vdFNpZ25pbmdEaXNhbGxvd2VkXCJcbiAgICAgIHwgXCJTZWd3aXRTaWduaW5nRGlzYWxsb3dlZFwiXG4gICAgICB8IFwiUHNidFNpZ25pbmdEaXNhbGxvd2VkXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ0Rpc2FsbG93ZWRcIlxuICAgICAgfCBcIlRpbWVMb2NrZWRcIlxuICAgICAgfCBcIkNlbFBvbGljeURlbmllZFwiXG4gICAgICB8IFwiQmFieWxvblN0YWtpbmdOZXR3b3JrXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ1BhcmFtc1ZlcnNpb25cIlxuICAgICAgfCBcIkJhYnlsb25TdGFraW5nRXhwbGljaXRQYXJhbXNcIlxuICAgICAgfCBcIkJhYnlsb25TdGFraW5nU3Rha2VyUGtcIlxuICAgICAgfCBcIkJhYnlsb25TdGFraW5nRmluYWxpdHlQcm92aWRlclBrXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ0xvY2tUaW1lXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ1ZhbHVlXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ0NoYW5nZUFkZHJlc3NcIlxuICAgICAgfCBcIkJhYnlsb25TdGFraW5nRmVlXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ1dpdGhkcmF3YWxBZGRyZXNzXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ0JibkFkZHJlc3NcIlxuICAgICAgfCBcIlNvbGFuYUluc3RydWN0aW9uQ291bnRMb3dcIlxuICAgICAgfCBcIlNvbGFuYUluc3RydWN0aW9uQ291bnRIaWdoXCJcbiAgICAgIHwgXCJTb2xhbmFOb3RJbkluc3RydWN0aW9uQWxsb3dsaXN0XCJcbiAgICAgIHwgXCJTb2xhbmFJbnN0cnVjdGlvbk1pc21hdGNoXCJcbiAgICAgIHwgXCJXYXNtUG9saWNpZXNEaXNhYmxlZFwiXG4gICAgICB8IFwiV2FzbVBvbGljeURlbmllZFwiXG4gICAgICB8IFwiV2FzbVBvbGljeUZhaWxlZFwiXG4gICAgICB8IFwiV2ViaG9va1BvbGljaWVzRGlzYWJsZWRcIlxuICAgICAgfCBcIkRlbmllZEJ5V2ViaG9va1wiXG4gICAgICB8IFwiTWZhQXBwcm92YWxzTm90WWV0VmFsaWRcIlxuICAgICAgfCBcIkV4cGxpY2l0bHlEZW5pZWRcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgc3RydWN0IGNvbnRhaW5pbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIHZlcnNpb24gb2YgYSBwb2xpY3kuICovXG4gICAgUG9saWN5SW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYWNjZXNzLWNvbnRyb2wgZW50cmllcyBmb3IgdGhlIHBvbGljeS4gKi9cbiAgICAgIGFjbD86IHVua25vd25bXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgbGlzdCBvZiBlbnRpdGllcyAoa2V5cywgcm9sZXMsIGV0Yy4pIHRoZSBwb2xpY3kgaXMgYXR0YWNoZWQgdG8uICovXG4gICAgICBhdHRhY2hlZF90bzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQb2xpY3lBdHRhY2hlZFRvSWRcIl1bXTtcbiAgICAgIGNyZWF0ZWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIGVkaXRfcG9saWN5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFZGl0UG9saWN5XCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVc2VyLWRlZmluZWQgbWV0YWRhdGEgZm9yIHRoZSBuYW1lZCBwb2xpY3kuICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuYW1lIG9mIHRoZSBwb2xpY3kuICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBvd25lcjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHBvbGljeSBpZCAqL1xuICAgICAgcG9saWN5X2lkOiBzdHJpbmc7XG4gICAgICBwb2xpY3lfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQb2xpY3lUeXBlXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcG9saWN5IHJ1bGUuICovXG4gICAgICBydWxlczogdW5rbm93bltdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBvbGljeSBydWxlJ3MgdmVyc2lvbi5cbiAgICAgICAqL1xuICAgICAgdmVyc2lvbjogbnVtYmVyO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHJlcXVlc3QgZm9yIHF1ZXJ5aW5nIFdhc20gcG9saWN5IGxvZ3MuICovXG4gICAgUG9saWN5TG9nc1JlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIEVuZCB0aW1lIGluIHNlY29uZHMgc2luY2UgdW5peCBlcG9jaC4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gJ25vdycuXG4gICAgICAgKi9cbiAgICAgIGVuZF90aW1lPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFN0YXJ0IHRpbWUgaW4gc2Vjb25kcyBzaW5jZSB1bml4IGVwb2NoLiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAyNCBob3VycyBhZ28uXG4gICAgICAgKi9cbiAgICAgIHN0YXJ0X3RpbWU/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHZlcnNpb24gb2YgdGhlIHBvbGljeSB0byBnZXQgdGhlIGxvZ3MgZm9yLlxuICAgICAgICogSWYgb21pdHRlZCwgYWxsIHBvbGljeSBsb2dzIGFyZSByZXRyaWV2ZWQuXG4gICAgICAgKi9cbiAgICAgIHZlcnNpb24/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBvbGljeVJlc3VsdFJlc3BvbnNlIGlzIGEgd3JhcHBlciBvbiBQb2xpY3lSZXN1bHQgd2l0aCB0d28gaW1wb3J0YW50XG4gICAgICogcHJvcGVydGllczpcbiAgICAgKiAqIGRlcml2ZXMgT2tUb0xvZ1Jlc3BvbnNlLCBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGluIHRoZSByb2NrZXQgaGFuZGxlci5cbiAgICAgKiAqIGRlcml2ZXMgVG9TY2hlbWEgYW5kIFRvUmVzcG9uc2UsIHdpdGggdGhlIGB2YWxgIGZpZWxkIHdpdGggdmFsdWVfdHlwZVxuICAgICAqIE9iamVjdCwgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHByb3ZpZGUgYWxsIG9mIHRoZSBPcGVuQVBJIHR5cGVcbiAgICAgKiBkZXNjcmlwdGlvbnMgb2YgYSBQb2xpY3lSZXN1bHQuXG4gICAgICpcbiAgICAgKiBUaGUgUG9saWN5UmVzdWx0IGluY2x1ZGVzIGVudW1zIGFuZCBvdGhlciBzdGFuZGFyZCB0eXBlcyAoZS5nLlxuICAgICAqIHN0ZDo6dGltZTo6SW50ZXJ2YWwpIHdoaWNoIGFyZSBub250cml2aWFsIHRvIHJlcHJlc2VudCBpbiBPcGVuQVBJLiBTaW5jZVxuICAgICAqIHRoaXMgZW5kcG9pbnQgaXMganVzdCBmb3IgdGVzdGluZywgd2UgZG9uJ3QgcmVhbGx5IGNhcmUgYWJvdXQgaG93IGFjY3VyYXRlXG4gICAgICogdGhlIHNjaGVtYSBpcywgYW5kIGNhbiBsZWFuIG9uIHNlcmRlX2pzb24gd2hlbiBkZWNvZGluZyB0aGlzIHJlc3BvbnNlIHRvIGFcbiAgICAgKiBQb2xpY3lSZXN1bHQgaW4gYSBjbGllbnQuIE5vdGUgdGhhdCB0aGVyZSBpcyBhIGJ1ZyBpbiB1dG9pcGEgd2hlcmUgdGhlXG4gICAgICogdmFsdWVfdHlwZSBhbm5vdGF0aW9uIHdpbGwgbm90IHdvcmsgZm9yIGEgdHVwbGUtc3RydWN0LCBvbmx5IGEgc3RydWN0IHdpdGhcbiAgICAgKiBmaWVsZHMuXG4gICAgICovXG4gICAgUG9saWN5UmVzdWx0UmVzcG9uc2U6IHtcbiAgICAgIHZhbDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHN0cnVjdCBjb250YWluaW5nIGFsbCBub24tc2VjcmV0IGluZm9ybWF0aW9uIGFib3V0IHBvbGljeSBzZWNyZXRzLiAqL1xuICAgIFBvbGljeVNlY3JldHNJbmZvOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbW1vbkZpZWxkc1wiXSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlcHJlY2F0ZWRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmFtZXMgb2YgdGhlIHNlY3JldHMuXG4gICAgICAgKi9cbiAgICAgIG5hbWVzOiBzdHJpbmdbXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHBvbGljeSBzZWNyZXRzLiAqL1xuICAgICAgc2VjcmV0czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNyZXRJbmZvXCJdW107XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHR5cGUgb2YgYSBbTmFtZWRQb2xpY3ldLlxuICAgICAqXG4gICAgICogVGhlIHR5cGUgb2YgYSBwb2xpY3kgaXMgc2V0IGF0IGNyZWF0aW9uIHRpbWUsIGFuZCBpcyB1c2VkIHRvIG9mZmVyIGd1YXJhbnRlZXNcbiAgICAgKiBhYm91dCB0aGUgY3VycmVudCBhbmQgYWxsIGZ1dHVyZSB2ZXJzaW9ucyBvZiBhIFtOYW1lZFBvbGljeV0uXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBQb2xpY3lUeXBlOiBcIktleVwiIHwgXCJSb2xlXCIgfCBcIldhc21cIjtcbiAgICBQcmVjb25kaXRpb25FcnJvckNvZGU6XG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHJlY29uZGl0aW9uRXJyb3JPd25Db2Rlc1wiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBvbGljeUVycm9yQ29kZVwiXTtcbiAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICBQcmVjb25kaXRpb25FcnJvck93bkNvZGVzOlxuICAgICAgfCBcIkZhaWxPbk1mYVJlcXVpcmVkXCJcbiAgICAgIHwgXCJLZXlSZWdpb25Mb2NrZWRcIlxuICAgICAgfCBcIktleVJlZ2lvbkNoYW5nZWRSZWNlbnRseVwiXG4gICAgICB8IFwiTWZhUmVnaW9uTG9ja2VkXCJcbiAgICAgIHwgXCJFdGgyUHJvcG9zZXJTbG90VG9vTG93XCJcbiAgICAgIHwgXCJFdGgyQXR0ZXN0YXRpb25Tb3VyY2VFcG9jaFRvb0xvd1wiXG4gICAgICB8IFwiRXRoMkF0dGVzdGF0aW9uVGFyZ2V0RXBvY2hUb29Mb3dcIlxuICAgICAgfCBcIkV0aDJDb25jdXJyZW50QmxvY2tTaWduaW5nXCJcbiAgICAgIHwgXCJFdGgyQ29uY3VycmVudEF0dGVzdGF0aW9uU2lnbmluZ1wiXG4gICAgICB8IFwiRXRoMk11bHRpRGVwb3NpdFRvTm9uR2VuZXJhdGVkS2V5XCJcbiAgICAgIHwgXCJFdGgyTXVsdGlEZXBvc2l0VW5rbm93bkluaXRpYWxEZXBvc2l0XCJcbiAgICAgIHwgXCJFdGgyTXVsdGlEZXBvc2l0V2l0aGRyYXdhbEFkZHJlc3NNaXNtYXRjaFwiXG4gICAgICB8IFwiQ29uY3VycmVudFNpZ25pbmdXaGVuVGltZUxpbWl0UG9saWN5SXNEZWZpbmVkXCJcbiAgICAgIHwgXCJCYWJ5bG9uRW90c0NvbmN1cnJlbnRTaWduaW5nXCJcbiAgICAgIHwgXCJUZW5kZXJtaW50U3RhdGVFcnJvclwiXG4gICAgICB8IFwiVGVuZGVybWludENvbmN1cnJlbnRTaWduaW5nXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBDb250YWlucyBvdXRwdXRzIG9mIHByZXZpb3VzIHRyYW5zYWN0aW9ucy4gKi9cbiAgICBQcmV2T3V0cHV0czogT25lT2Y8XG4gICAgICBbXG4gICAgICAgIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gYE9uZWAgdmFyaWFudCBhbGxvd3MgcHJvdmlzaW9uIG9mIHRoZSBzaW5nbGUgcHJldmlvdXMgb3V0cHV0IG5lZWRlZC4gSXQncyB1c2VmdWwsXG4gICAgICAgICAgICogZm9yIGV4YW1wbGUsIHdoZW4gbW9kaWZpZXIgYFNJR0hBU0hfQU5ZT05FQ0FOUEFZYCBpcyBwcm92aWRlZCwgb25seSBwcmV2aW91cyBvdXRwdXRcbiAgICAgICAgICAgKiBvZiB0aGUgY3VycmVudCBpbnB1dCBpcyBuZWVkZWQuIFRoZSBmaXJzdCBgaW5kZXhgIGFyZ3VtZW50IGlzIHRoZSBpbnB1dCBpbmRleFxuICAgICAgICAgICAqIHRoaXMgb3V0cHV0IGlzIHJlZmVycmluZyB0by5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBPbmU6IHtcbiAgICAgICAgICAgIGluZGV4OiBudW1iZXI7XG4gICAgICAgICAgICB0eF9vdXQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjVHhPdXRcIl07XG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGVuIGBTSUdIQVNIX0FOWU9ORUNBTlBBWWAgaXMgbm90IHByb3ZpZGVkLCBvciB3aGVuIHRoZSBjYWxsZXIgaXMgZ2l2aW5nIGFsbFxuICAgICAgICAgICAqIHByZXZpb3VzIG91dHB1dHMgc28gdGhlIHNhbWUgdmFyaWFibGUgY2FuIGJlIHVzZWQgZm9yIG11bHRpcGxlIGlucHV0cy5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBBbGw6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjVHhPdXRcIl1bXTtcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICA+O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSByZXF1ZXN0IHRvIHNpZ24gYSBQU0JUICovXG4gICAgUHNidFNpZ25SZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERvIG5vdCBwcm9kdWNlIGEgdmFsaWQgc2lnbmF0dXJlLCBqdXN0IGV2YWx1YXRlIGF0dGFjaGVkIHBvbGljaWVzLiAqL1xuICAgICAgZHJ5X3J1bj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3BvbnNlLCBleHBsYWluaW5nXG4gICAgICAgKiB0aGUgb3V0Y29tZSAoaS5lLiwgcGVybWl0dGVkIHZzLiBkZW5pZWQgdnMuIE1GQSByZXF1aXJlZCkgb2YgdGhlIHNpZ24gcmVxdWVzdC5cbiAgICAgICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBleHBsYWluPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIE1GQSBpcyByZXF1aXJlZCwgZmFpbCB0aGUgcmVxdWVzdCBpbnN0ZWFkIG9mIHJldHVybmluZyAyMDIgYW5kIGNyZWF0aW5nXG4gICAgICAgKiBwZW5kaW5nIE1GQSByZXF1ZXN0LiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZmFpbF9vbl9tZmE/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbWV0YWRhdGEuIFBhc3NpbmcgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhcyBtZXRhZGF0YSBjYW4gYmUgdXNlZCB0byBtYWtlIHJldmlld2luZ1xuICAgICAgICogb2YgcGVuZGluZyBNRkEgcmVxdWVzdHMgYW5kL29yIGhpc3RvcmljYWwga2V5IHRyYW5zYWN0aW9ucyBtb3JlIHRyYW5zcGFyZW50LiBJdCBjYW4gYWxzbyBiZSB1c2VkIGUuZy4sIHRvIGNhcnJ5IGFkZGl0aW9uYWwgZGF0YSB0byBXZWJIb29rIHBvbGljaWVzLlxuICAgICAgICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgaGV4LXNlcmlhbGl6ZWQgUFNCVCAodmVyc2lvbiAwKSwgd2l0aCBvciB3aXRob3V0IGxlYWRpbmcgMHggcHJlZml4LlxuICAgICAgICogVGhpcyBQU0JUIG11c3QgY29udGFpbiB0aGUgdHJhbnNhY3Rpb24gaW5wdXRzIGFuZCBvdXRwdXRzLCBwbHVzIGFsbFxuICAgICAgICogaW5mb3JtYXRpb24gbmVlZGVkIHRvIHNpZ24gKGUuZy4sIHRhcHJvb3QgcGF0aCBhbmQgbGVhZiBpbmZvcm1hdGlvbikuXG4gICAgICAgKi9cbiAgICAgIHBzYnQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFdoZW4gdHJ1ZSwgdW5jb25kaXRpb25hbGx5IHNpZ24gZXZlcnkgaW5wdXQgdG8gdGhlIFBTQlQgY29udHJvbGxlZCBieSBhIHNjcmlwdFxuICAgICAgICogc3BlbmQuIE90aGVyd2lzZSAoZmFsc2UsIHRoZSBkZWZhdWx0KSwgdGhpcyBlbmRwb2ludCB1c2VzIGEgaGV1cmlzdGljIHRvIGRlY2lkZVxuICAgICAgICogd2hldGhlciB0aGUgc2NyaXB0IGNvbnRyb2xsaW5nIGEgZ2l2ZW4gVVRYTyByZXF1aXJlcyBhIHNpZ25hdHVyZSBmcm9tIHRoaXMga2V5LlxuICAgICAgICovXG4gICAgICBzaWduX2FsbF9zY3JpcHRzPzogYm9vbGVhbjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdG8gYSBQU0JUIHNpZ25pbmcgcmVxdWVzdCAqL1xuICAgIFBzYnRTaWduUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgUFNCVCBpbiBzdGFuZGFyZCBoZXggc2VyaWFsaXphdGlvbiwgd2l0aG91dCBsZWFkaW5nIFwiMHhcIi5cbiAgICAgICAqIEBleGFtcGxlIDcwNzM2Mjc0ZmYwMTAwNWUuLi5cbiAgICAgICAqL1xuICAgICAgcHNidDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgdHlwZSByZXByZXNlbnRzIGEgd2lyZS1lbmNvZGFibGUgZm9ybSBvZiB0aGUgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2VcbiAgICAgKiBDbGllbnRzIG1heSBuZWVkIHRvIG1hbnVhbGx5IGVuY29kZSBpbnRvIHRoaXMgZm9ybWF0IHRvIGNvbW11bmljYXRlIHdpdGggdGhlIHNlcnZlclxuICAgICAqXG4gICAgICogVGhlIFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlIGluaGVyaXRzIGZyb20gQ3JlZGVudGlhbFxuICAgICAqIFtDUkVERU5USUFMLU1BTkFHRU1FTlQtMV0sIGFuZCBjb250YWlucyB0aGUgYXR0cmlidXRlcyB0aGF0IGFyZSByZXR1cm5lZCB0b1xuICAgICAqIHRoZSBjYWxsZXIgd2hlbiBhIG5ldyBjcmVkZW50aWFsIGlzIGNyZWF0ZWQsIG9yIGEgbmV3IGFzc2VydGlvbiBpc1xuICAgICAqIHJlcXVlc3RlZC5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNpZmFjZS1wa2NyZWRlbnRpYWxcbiAgICAgKi9cbiAgICBQdWJsaWNLZXlDcmVkZW50aWFsOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGludGVybmFsIHNsb3QgY29udGFpbnMgdGhlIHJlc3VsdHMgb2YgcHJvY2Vzc2luZyBjbGllbnQgZXh0ZW5zaW9uc1xuICAgICAgICogcmVxdWVzdGVkIGJ5IHRoZSBSZWx5aW5nIFBhcnR5IHVwb24gdGhlIFJlbHlpbmcgUGFydHkncyBpbnZvY2F0aW9uIG9mXG4gICAgICAgKiBlaXRoZXIgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZSgpIG9yIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQoKS5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWwtY2xpZW50ZXh0ZW5zaW9uc3Jlc3VsdHMtc2xvdFxuICAgICAgICpcbiAgICAgICAqIElNUExFTUVOVEFUSU9OIE5PVEU6IFRoZSB0eXBlIGZvciB0aGlzIGZpZWxkIGNvbWVzIGZyb20gdGhlIHR5cGUgb2YgZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpIHdoaWNoIGFzIHRoZSBmb2xsb3dpbmcgZG9jOlxuICAgICAgICpcbiAgICAgICAqIFRoaXMgb3BlcmF0aW9uIHJldHVybnMgdGhlIHZhbHVlIG9mIFtbY2xpZW50RXh0ZW5zaW9uc1Jlc3VsdHNdXSwgd2hpY2ggaXMgYSBtYXAgY29udGFpbmluZyBleHRlbnNpb24gaWRlbnRpZmllciDihpIgY2xpZW50IGV4dGVuc2lvbiBvdXRwdXQgZW50cmllcyBwcm9kdWNlZCBieSB0aGUgZXh0ZW5zaW9u4oCZcyBjbGllbnQgZXh0ZW5zaW9uIHByb2Nlc3NpbmcuXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jcmVmLWZvci1kb20tcHVibGlja2V5Y3JlZGVudGlhbC1nZXRjbGllbnRleHRlbnNpb25yZXN1bHRzXG4gICAgICAgKi9cbiAgICAgIGNsaWVudEV4dGVuc2lvblJlc3VsdHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGludGVybmFsIHNsb3QgY29udGFpbnMgdGhlIGNyZWRlbnRpYWwgSUQsIGNob3NlbiBieSB0aGVcbiAgICAgICAqIGF1dGhlbnRpY2F0b3IuIFRoZSBjcmVkZW50aWFsIElEIGlzIHVzZWQgdG8gbG9vayB1cCBjcmVkZW50aWFscyBmb3IgdXNlLFxuICAgICAgICogYW5kIGlzIHRoZXJlZm9yZSBleHBlY3RlZCB0byBiZSBnbG9iYWxseSB1bmlxdWUgd2l0aCBoaWdoIHByb2JhYmlsaXR5XG4gICAgICAgKiBhY3Jvc3MgYWxsIGNyZWRlbnRpYWxzIG9mIHRoZSBzYW1lIHR5cGUsIGFjcm9zcyBhbGwgYXV0aGVudGljYXRvcnMuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsLWlkZW50aWZpZXItc2xvdFxuICAgICAgICovXG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBdXRoZW50aWNhdG9ycyByZXNwb25kIHRvIFJlbHlpbmcgUGFydHkgcmVxdWVzdHMgYnkgcmV0dXJuaW5nIGFuIG9iamVjdCBkZXJpdmVkIGZyb20gdGhlIEF1dGhlbnRpY2F0b3JSZXNwb25zZSBpbnRlcmZhY2UgKi9cbiAgICAgIHJlc3BvbnNlOlxuICAgICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2VcIl1cbiAgICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZVwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgY3JlYXRpb24gb2YgYSBuZXcgcHVibGljIGtleSBjcmVkZW50aWFsXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZGljdGRlZi1wdWJsaWNrZXljcmVkZW50aWFsY3JlYXRpb25vcHRpb25zXG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczoge1xuICAgICAgYXR0ZXN0YXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2VcIl07XG4gICAgICBhdXRoZW50aWNhdG9yU2VsZWN0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWFcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZW1iZXIgY29udGFpbnMgYSBjaGFsbGVuZ2UgaW50ZW5kZWQgdG8gYmUgdXNlZCBmb3IgZ2VuZXJhdGluZyB0aGVcbiAgICAgICAqIG5ld2x5IGNyZWF0ZWQgY3JlZGVudGlhbOKAmXMgYXR0ZXN0YXRpb24gb2JqZWN0LiBTZWUgdGhlIMKn4oCvMTMuNC4zXG4gICAgICAgKiBDcnlwdG9ncmFwaGljIENoYWxsZW5nZXMgc2VjdXJpdHkgY29uc2lkZXJhdGlvbi5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxjcmVhdGlvbm9wdGlvbnMtY2hhbGxlbmdlXG4gICAgICAgKi9cbiAgICAgIGNoYWxsZW5nZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZW1iZXIgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBSZWx5aW5nIFBhcnRpZXMgdGhhdCB3aXNoIHRvIGxpbWl0XG4gICAgICAgKiB0aGUgY3JlYXRpb24gb2YgbXVsdGlwbGUgY3JlZGVudGlhbHMgZm9yIHRoZSBzYW1lIGFjY291bnQgb24gYSBzaW5nbGVcbiAgICAgICAqIGF1dGhlbnRpY2F0b3IuIFRoZSBjbGllbnQgaXMgcmVxdWVzdGVkIHRvIHJldHVybiBhbiBlcnJvciBpZiB0aGUgbmV3XG4gICAgICAgKiBjcmVkZW50aWFsIHdvdWxkIGJlIGNyZWF0ZWQgb24gYW4gYXV0aGVudGljYXRvciB0aGF0IGFsc28gY29udGFpbnMgb25lXG4gICAgICAgKiBvZiB0aGUgY3JlZGVudGlhbHMgZW51bWVyYXRlZCBpbiB0aGlzIHBhcmFtZXRlci5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxjcmVhdGlvbm9wdGlvbnMtZXhjbHVkZWNyZWRlbnRpYWxzXG4gICAgICAgKi9cbiAgICAgIGV4Y2x1ZGVDcmVkZW50aWFscz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3JcIl1bXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIGNvbnRhaW5zIGFkZGl0aW9uYWwgcGFyYW1ldGVycyByZXF1ZXN0aW5nIGFkZGl0aW9uYWxcbiAgICAgICAqIHByb2Nlc3NpbmcgYnkgdGhlIGNsaWVudCBhbmQgYXV0aGVudGljYXRvci4gRm9yIGV4YW1wbGUsIHRoZSBjYWxsZXIgbWF5XG4gICAgICAgKiByZXF1ZXN0IHRoYXQgb25seSBhdXRoZW50aWNhdG9ycyB3aXRoIGNlcnRhaW4gY2FwYWJpbGl0aWVzIGJlIHVzZWQgdG9cbiAgICAgICAqIGNyZWF0ZSB0aGUgY3JlZGVudGlhbCwgb3IgdGhhdCBwYXJ0aWN1bGFyIGluZm9ybWF0aW9uIGJlIHJldHVybmVkIGluIHRoZVxuICAgICAgICogYXR0ZXN0YXRpb24gb2JqZWN0LiBTb21lIGV4dGVuc2lvbnMgYXJlIGRlZmluZWQgaW4gwqfigK85IFdlYkF1dGhuXG4gICAgICAgKiBFeHRlbnNpb25zOyBjb25zdWx0IHRoZSBJQU5BIFwiV2ViQXV0aG4gRXh0ZW5zaW9uIElkZW50aWZpZXJzXCIgcmVnaXN0cnlcbiAgICAgICAqIFtJQU5BLVdlYkF1dGhuLVJlZ2lzdHJpZXNdIGVzdGFibGlzaGVkIGJ5IFtSRkM4ODA5XSBmb3IgYW4gdXAtdG8tZGF0ZVxuICAgICAgICogbGlzdCBvZiByZWdpc3RlcmVkIFdlYkF1dGhuIEV4dGVuc2lvbnMuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsY3JlYXRpb25vcHRpb25zLWV4dGVuc2lvbnNcbiAgICAgICAqL1xuICAgICAgZXh0ZW5zaW9ucz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkZXNpcmVkIHByb3BlcnRpZXMgb2YgdGhlXG4gICAgICAgKiBjcmVkZW50aWFsIHRvIGJlIGNyZWF0ZWQuIFRoZSBzZXF1ZW5jZSBpcyBvcmRlcmVkIGZyb20gbW9zdCBwcmVmZXJyZWQgdG9cbiAgICAgICAqIGxlYXN0IHByZWZlcnJlZC4gVGhlIGNsaWVudCBtYWtlcyBhIGJlc3QtZWZmb3J0IHRvIGNyZWF0ZSB0aGUgbW9zdFxuICAgICAgICogcHJlZmVycmVkIGNyZWRlbnRpYWwgdGhhdCBpdCBjYW4uXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsY3JlYXRpb25vcHRpb25zLXB1YmtleWNyZWRwYXJhbXNcbiAgICAgICAqL1xuICAgICAgcHViS2V5Q3JlZFBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVyc1wiXVtdO1xuICAgICAgcnA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFJwRW50aXR5XCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZW1iZXIgc3BlY2lmaWVzIGEgdGltZSwgaW4gbWlsbGlzZWNvbmRzLCB0aGF0IHRoZSBjYWxsZXIgaXNcbiAgICAgICAqIHdpbGxpbmcgdG8gd2FpdCBmb3IgdGhlIGNhbGwgdG8gY29tcGxldGUuIFRoaXMgaXMgdHJlYXRlZCBhcyBhIGhpbnQsIGFuZFxuICAgICAgICogTUFZIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGNsaWVudC5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxjcmVhdGlvbm9wdGlvbnMtdGltZW91dFxuICAgICAgICovXG4gICAgICB0aW1lb3V0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIHVzZXI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHlcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBkaWN0aW9uYXJ5IGNvbnRhaW5zIHRoZSBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNwZWNpZmllZCBieSBhIGNhbGxlciB3aGVuXG4gICAgICogcmVmZXJyaW5nIHRvIGEgcHVibGljIGtleSBjcmVkZW50aWFsIGFzIGFuIGlucHV0IHBhcmFtZXRlciB0byB0aGUgY3JlYXRlKClcbiAgICAgKiBvciBnZXQoKSBtZXRob2RzLiBJdCBtaXJyb3JzIHRoZSBmaWVsZHMgb2YgdGhlIFB1YmxpY0tleUNyZWRlbnRpYWwgb2JqZWN0XG4gICAgICogcmV0dXJuZWQgYnkgdGhlIGxhdHRlciBtZXRob2RzLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RpY3Rpb25hcnktY3JlZGVudGlhbC1kZXNjcmlwdG9yXG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIGNvbnRhaW5zIHRoZSBjcmVkZW50aWFsIElEIG9mIHRoZSBwdWJsaWMga2V5IGNyZWRlbnRpYWwgdGhlIGNhbGxlciBpcyByZWZlcnJpbmcgdG8uXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsZGVzY3JpcHRvci1pZFxuICAgICAgICovXG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBPUFRJT05BTCBtZW1iZXIgY29udGFpbnMgYSBoaW50IGFzIHRvIGhvdyB0aGUgY2xpZW50IG1pZ2h0XG4gICAgICAgKiBjb21tdW5pY2F0ZSB3aXRoIHRoZSBtYW5hZ2luZyBhdXRoZW50aWNhdG9yIG9mIHRoZSBwdWJsaWMga2V5IGNyZWRlbnRpYWxcbiAgICAgICAqIHRoZSBjYWxsZXIgaXMgcmVmZXJyaW5nIHRvLiBUaGUgdmFsdWVzIFNIT1VMRCBiZSBtZW1iZXJzIG9mXG4gICAgICAgKiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0IGJ1dCBjbGllbnQgcGxhdGZvcm1zIE1VU1QgaWdub3JlIHVua25vd24gdmFsdWVzLlxuICAgICAgICpcbiAgICAgICAqIFRoZSBnZXRUcmFuc3BvcnRzKCkgb3BlcmF0aW9uIGNhbiBwcm92aWRlIHN1aXRhYmxlIHZhbHVlcyBmb3IgdGhpc1xuICAgICAgICogbWVtYmVyLiBXaGVuIHJlZ2lzdGVyaW5nIGEgbmV3IGNyZWRlbnRpYWwsIHRoZSBSZWx5aW5nIFBhcnR5IFNIT1VMRFxuICAgICAgICogc3RvcmUgdGhlIHZhbHVlIHJldHVybmVkIGZyb20gZ2V0VHJhbnNwb3J0cygpLiBXaGVuIGNyZWF0aW5nIGFcbiAgICAgICAqIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yIGZvciB0aGF0IGNyZWRlbnRpYWwsIHRoZSBSZWx5aW5nIFBhcnR5XG4gICAgICAgKiBTSE9VTEQgcmV0cmlldmUgdGhhdCBzdG9yZWQgdmFsdWUgYW5kIHNldCBpdCBhcyB0aGUgdmFsdWUgb2YgdGhlXG4gICAgICAgKiB0cmFuc3BvcnRzIG1lbWJlci5cbiAgICAgICAqL1xuICAgICAgdHJhbnNwb3J0cz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXV0aGVudGljYXRvclRyYW5zcG9ydFwiXVtdIHwgbnVsbDtcbiAgICAgIHR5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFR5cGVcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBkaWN0aW9uYXJ5IGlzIHVzZWQgdG8gc3VwcGx5IGFkZGl0aW9uYWwgcGFyYW1ldGVycyB3aGVuIGNyZWF0aW5nIGEgbmV3XG4gICAgICogY3JlZGVudGlhbC5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkaWN0aW9uYXJ5LWNyZWRlbnRpYWwtcGFyYW1zXG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbFBhcmFtZXRlcnM6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIHNwZWNpZmllcyB0aGUgY3J5cHRvZ3JhcGhpYyBzaWduYXR1cmUgYWxnb3JpdGhtIHdpdGggd2hpY2hcbiAgICAgICAqIHRoZSBuZXdseSBnZW5lcmF0ZWQgY3JlZGVudGlhbCB3aWxsIGJlIHVzZWQsIGFuZCB0aHVzIGFsc28gdGhlIHR5cGUgb2ZcbiAgICAgICAqIGFzeW1tZXRyaWMga2V5IHBhaXIgdG8gYmUgZ2VuZXJhdGVkLCBlLmcuLCBSU0Egb3IgRWxsaXB0aWMgQ3VydmUuXG4gICAgICAgKi9cbiAgICAgIGFsZzogbnVtYmVyO1xuICAgICAgdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsVHlwZVwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgYFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uc2AgZGljdGlvbmFyeSBzdXBwbGllcyBnZXQoKSB3aXRoIHRoZVxuICAgICAqIGRhdGEgaXQgbmVlZHMgdG8gZ2VuZXJhdGUgYW4gYXNzZXJ0aW9uLiBJdHMgY2hhbGxlbmdlIG1lbWJlciBNVVNUIGJlXG4gICAgICogcHJlc2VudCwgd2hpbGUgaXRzIG90aGVyIG1lbWJlcnMgYXJlIE9QVElPTkFMLlxuICAgICAqXG4gICAgICogVGhpcyBzdHJ1Y3QgaXMgYWxzbyB1c2VkIGFzIHBhcnQgb2YgdGhlIHZlcmlmaWNhdGlvbiBwcm9jZWR1cmUgZm9yIGFzc2VydGlvbnNcbiAgICAgKi9cbiAgICBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgT1BUSU9OQUwgbWVtYmVyIGNvbnRhaW5zIGEgbGlzdCBvZiBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvclxuICAgICAgICogb2JqZWN0cyByZXByZXNlbnRpbmcgcHVibGljIGtleSBjcmVkZW50aWFscyBhY2NlcHRhYmxlIHRvIHRoZSBjYWxsZXIsIGluXG4gICAgICAgKiBkZXNjZW5kaW5nIG9yZGVyIG9mIHRoZSBjYWxsZXLigJlzIHByZWZlcmVuY2UgKHRoZSBmaXJzdCBpdGVtIGluIHRoZSBsaXN0XG4gICAgICAgKiBpcyB0aGUgbW9zdCBwcmVmZXJyZWQgY3JlZGVudGlhbCwgYW5kIHNvIG9uIGRvd24gdGhlIGxpc3QpLlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbHJlcXVlc3RvcHRpb25zLWFsbG93Y3JlZGVudGlhbHNcbiAgICAgICAqL1xuICAgICAgYWxsb3dDcmVkZW50aWFscz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3JcIl1bXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIHJlcHJlc2VudHMgYSBjaGFsbGVuZ2UgdGhhdCB0aGUgc2VsZWN0ZWQgYXV0aGVudGljYXRvclxuICAgICAgICogc2lnbnMsIGFsb25nIHdpdGggb3RoZXIgZGF0YSwgd2hlbiBwcm9kdWNpbmcgYW4gYXV0aGVudGljYXRpb25cbiAgICAgICAqIGFzc2VydGlvbi5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxyZXF1ZXN0b3B0aW9ucy1jaGFsbGVuZ2VcbiAgICAgICAqL1xuICAgICAgY2hhbGxlbmdlOiBzdHJpbmc7XG4gICAgICBleHRlbnNpb25zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBPUFRJT05BTCBtZW1iZXIgc3BlY2lmaWVzIHRoZSByZWx5aW5nIHBhcnR5IGlkZW50aWZpZXIgY2xhaW1lZCBieVxuICAgICAgICogdGhlIGNhbGxlci4gSWYgb21pdHRlZCwgaXRzIHZhbHVlIHdpbGwgYmUgdGhlIENyZWRlbnRpYWxzQ29udGFpbmVyXG4gICAgICAgKiBvYmplY3TigJlzIHJlbGV2YW50IHNldHRpbmdzIG9iamVjdCdzIG9yaWdpbidzIGVmZmVjdGl2ZSBkb21haW4uXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFscmVxdWVzdG9wdGlvbnMtcnBpZFxuICAgICAgICovXG4gICAgICBycElkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgT1BUSU9OQUwgbWVtYmVyIHNwZWNpZmllcyBhIHRpbWUsIGluIG1pbGxpc2Vjb25kcywgdGhhdCB0aGUgY2FsbGVyXG4gICAgICAgKiBpcyB3aWxsaW5nIHRvIHdhaXQgZm9yIHRoZSBjYWxsIHRvIGNvbXBsZXRlLiBUaGUgdmFsdWUgaXMgdHJlYXRlZCBhcyBhXG4gICAgICAgKiBoaW50LCBhbmQgTUFZIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGNsaWVudC5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxyZXF1ZXN0b3B0aW9ucy10aW1lb3V0XG4gICAgICAgKi9cbiAgICAgIHRpbWVvdXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgdXNlclZlcmlmaWNhdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50XCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBQdWJsaWNLZXlDcmVkZW50aWFsUnBFbnRpdHkgZGljdGlvbmFyeSBpcyB1c2VkIHRvIHN1cHBseSBhZGRpdGlvbmFsXG4gICAgICogUmVseWluZyBQYXJ0eSBhdHRyaWJ1dGVzIHdoZW4gY3JlYXRpbmcgYSBuZXcgY3JlZGVudGlhbC5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkaWN0aW9uYXJ5LXJwLWNyZWRlbnRpYWwtcGFyYW1zXG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbFJwRW50aXR5OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgUmVseWluZyBQYXJ0eSBlbnRpdHksIHdoaWNoIHNldHMgdGhlIFJQIElELlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbHJwZW50aXR5LWlkXG4gICAgICAgKi9cbiAgICAgIGlkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcGFsYXRhYmxlIG5hbWUgZm9yIHRoZSBlbnRpdHkuIEl0cyBmdW5jdGlvbiBkZXBlbmRzIG9uIHdoYXQgdGhlXG4gICAgICAgKiBQdWJsaWNLZXlDcmVkZW50aWFsRW50aXR5IHJlcHJlc2VudHM6IFdoZW4gaW5oZXJpdGVkIGJ5XG4gICAgICAgKiBQdWJsaWNLZXlDcmVkZW50aWFsUnBFbnRpdHkgaXQgaXMgYSBodW1hbi1wYWxhdGFibGUgaWRlbnRpZmllciBmb3IgdGhlXG4gICAgICAgKiBSZWx5aW5nIFBhcnR5LCBpbnRlbmRlZCBvbmx5IGZvciBkaXNwbGF5LiBGb3IgZXhhbXBsZSwgXCJBQ01FXG4gICAgICAgKiBDb3Jwb3JhdGlvblwiLCBcIldvbmRlcmZ1bCBXaWRnZXRzLCBJbmMuXCIgb3IgXCLQntCQ0J4g0J/RgNC40LzQtdGA0YLQtdGFXCIuXG4gICAgICAgKlxuICAgICAgICogUmVseWluZyBQYXJ0aWVzIFNIT1VMRCBwZXJmb3JtIGVuZm9yY2VtZW50LCBhcyBwcmVzY3JpYmVkIGluIFNlY3Rpb24gMi4zXG4gICAgICAgKiBvZiBbUkZDODI2Nl0gZm9yIHRoZSBOaWNrbmFtZSBQcm9maWxlIG9mIHRoZSBQUkVDSVMgRnJlZWZvcm1DbGFzc1xuICAgICAgICogW1JGQzgyNjRdLCB3aGVuIHNldHRpbmcgbmFtZSdzIHZhbHVlLCBvciBkaXNwbGF5aW5nIHRoZSB2YWx1ZSB0byB0aGVcbiAgICAgICAqIHVzZXIuXG4gICAgICAgKlxuICAgICAgICogVGhpcyBzdHJpbmcgTUFZIGNvbnRhaW4gbGFuZ3VhZ2UgYW5kIGRpcmVjdGlvbiBtZXRhZGF0YS4gUmVseWluZyBQYXJ0aWVzXG4gICAgICAgKiBTSE9VTEQgY29uc2lkZXIgcHJvdmlkaW5nIHRoaXMgaW5mb3JtYXRpb24uIFNlZSDCp+KArzYuNC4yIExhbmd1YWdlIGFuZFxuICAgICAgICogRGlyZWN0aW9uIEVuY29kaW5nIGFib3V0IGhvdyB0aGlzIG1ldGFkYXRhIGlzIGVuY29kZWQuXG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGVudW1lcmF0aW9uIGRlZmluZXMgdGhlIHZhbGlkIGNyZWRlbnRpYWwgdHlwZXMuIEl0IGlzIGFuIGV4dGVuc2lvblxuICAgICAqIHBvaW50OyB2YWx1ZXMgY2FuIGJlIGFkZGVkIHRvIGl0IGluIHRoZSBmdXR1cmUsIGFzIG1vcmUgY3JlZGVudGlhbCB0eXBlcyBhcmVcbiAgICAgKiBkZWZpbmVkLiBUaGUgdmFsdWVzIG9mIHRoaXMgZW51bWVyYXRpb24gYXJlIHVzZWQgZm9yIHZlcnNpb25pbmcgdGhlXG4gICAgICogQXV0aGVudGljYXRpb24gQXNzZXJ0aW9uIGFuZCBhdHRlc3RhdGlvbiBzdHJ1Y3R1cmVzIGFjY29yZGluZyB0byB0aGUgdHlwZSBvZlxuICAgICAqIHRoZSBhdXRoZW50aWNhdG9yLiAgQ3VycmVudGx5IG9uZSBjcmVkZW50aWFsIHR5cGUgaXMgZGVmaW5lZCwgbmFtZWx5XG4gICAgICogXCJwdWJsaWMta2V5XCIuXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZW51bWRlZi1wdWJsaWNrZXljcmVkZW50aWFsdHlwZVxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6IFwicHVibGljLWtleVwiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkgZGljdGlvbmFyeSBpcyB1c2VkIHRvIHN1cHBseSBhZGRpdGlvbmFsXG4gICAgICogdXNlciBhY2NvdW50IGF0dHJpYnV0ZXMgd2hlbiBjcmVhdGluZyBhIG5ldyBjcmVkZW50aWFsLlxuICAgICAqL1xuICAgIFB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXBhbGF0YWJsZSBuYW1lIGZvciB0aGUgdXNlciBhY2NvdW50LCBpbnRlbmRlZCBvbmx5IGZvciBkaXNwbGF5LlxuICAgICAgICogRm9yIGV4YW1wbGUsIFwiQWxleCBNw7xsbGVyXCIgb3IgXCLnlLDkuK3lgKtcIi4gVGhlIFJlbHlpbmcgUGFydHkgU0hPVUxEIGxldCB0aGVcbiAgICAgICAqIHVzZXIgY2hvb3NlIHRoaXMsIGFuZCBTSE9VTEQgTk9UIHJlc3RyaWN0IHRoZSBjaG9pY2UgbW9yZSB0aGFuXG4gICAgICAgKiBuZWNlc3NhcnkuXG4gICAgICAgKlxuICAgICAgICogUmVseWluZyBQYXJ0aWVzIFNIT1VMRCBwZXJmb3JtIGVuZm9yY2VtZW50LCBhcyBwcmVzY3JpYmVkIGluIFNlY3Rpb24gMi4zXG4gICAgICAgKiBvZiBbUkZDODI2Nl0gZm9yIHRoZSBOaWNrbmFtZSBQcm9maWxlIG9mIHRoZSBQUkVDSVMgRnJlZWZvcm1DbGFzc1xuICAgICAgICogW1JGQzgyNjRdLCB3aGVuIHNldHRpbmcgZGlzcGxheU5hbWUncyB2YWx1ZSwgb3IgZGlzcGxheWluZyB0aGUgdmFsdWUgdG9cbiAgICAgICAqIHRoZSB1c2VyLlxuICAgICAgICpcbiAgICAgICAqIFRoaXMgc3RyaW5nIE1BWSBjb250YWluIGxhbmd1YWdlIGFuZCBkaXJlY3Rpb24gbWV0YWRhdGEuIFJlbHlpbmcgUGFydGllc1xuICAgICAgICogU0hPVUxEIGNvbnNpZGVyIHByb3ZpZGluZyB0aGlzIGluZm9ybWF0aW9uLiBTZWUgwqfigK82LjQuMiBMYW5ndWFnZSBhbmRcbiAgICAgICAqIERpcmVjdGlvbiBFbmNvZGluZyBhYm91dCBob3cgdGhpcyBtZXRhZGF0YSBpcyBlbmNvZGVkLlxuICAgICAgICpcbiAgICAgICAqIENsaWVudHMgU0hPVUxEIHBlcmZvcm0gZW5mb3JjZW1lbnQsIGFzIHByZXNjcmliZWQgaW4gU2VjdGlvbiAyLjMgb2ZcbiAgICAgICAqIFtSRkM4MjY2XSBmb3IgdGhlIE5pY2tuYW1lIFByb2ZpbGUgb2YgdGhlIFBSRUNJUyBGcmVlZm9ybUNsYXNzXG4gICAgICAgKiBbUkZDODI2NF0sIG9uIGRpc3BsYXlOYW1lJ3MgdmFsdWUgcHJpb3IgdG8gZGlzcGxheWluZyB0aGUgdmFsdWUgdG8gdGhlXG4gICAgICAgKiB1c2VyIG9yIGluY2x1ZGluZyB0aGUgdmFsdWUgYXMgYSBwYXJhbWV0ZXIgb2YgdGhlXG4gICAgICAgKiBhdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRpYWwgb3BlcmF0aW9uLlxuICAgICAgICpcbiAgICAgICAqIFdoZW4gY2xpZW50cywgY2xpZW50IHBsYXRmb3Jtcywgb3IgYXV0aGVudGljYXRvcnMgZGlzcGxheSBhXG4gICAgICAgKiBkaXNwbGF5TmFtZSdzIHZhbHVlLCB0aGV5IHNob3VsZCBhbHdheXMgdXNlIFVJIGVsZW1lbnRzIHRvIHByb3ZpZGUgYVxuICAgICAgICogY2xlYXIgYm91bmRhcnkgYXJvdW5kIHRoZSBkaXNwbGF5ZWQgdmFsdWUsIGFuZCBub3QgYWxsb3cgb3ZlcmZsb3cgaW50b1xuICAgICAgICogb3RoZXIgZWxlbWVudHMgW2Nzcy1vdmVyZmxvdy0zXS5cbiAgICAgICAqXG4gICAgICAgKiBBdXRoZW50aWNhdG9ycyBNVVNUIGFjY2VwdCBhbmQgc3RvcmUgYSA2NC1ieXRlIG1pbmltdW0gbGVuZ3RoIGZvciBhXG4gICAgICAgKiBkaXNwbGF5TmFtZSBtZW1iZXLigJlzIHZhbHVlLiBBdXRoZW50aWNhdG9ycyBNQVkgdHJ1bmNhdGUgYSBkaXNwbGF5TmFtZVxuICAgICAgICogbWVtYmVy4oCZcyB2YWx1ZSBzbyB0aGF0IGl0IGZpdHMgd2l0aGluIDY0IGJ5dGVzLiBTZWUgwqfigK82LjQuMSBTdHJpbmdcbiAgICAgICAqIFRydW5jYXRpb24gYWJvdXQgdHJ1bmNhdGlvbiBhbmQgb3RoZXIgY29uc2lkZXJhdGlvbnMuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsdXNlcmVudGl0eS1kaXNwbGF5bmFtZVxuICAgICAgICovXG4gICAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIgaGFuZGxlIG9mIHRoZSB1c2VyIGFjY291bnQgZW50aXR5LiBBIHVzZXIgaGFuZGxlIGlzIGFuIG9wYXF1ZVxuICAgICAgICogYnl0ZSBzZXF1ZW5jZSB3aXRoIGEgbWF4aW11bSBzaXplIG9mIDY0IGJ5dGVzLCBhbmQgaXMgbm90IG1lYW50IHRvIGJlXG4gICAgICAgKiBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuXG4gICAgICAgKlxuICAgICAgICogVG8gZW5zdXJlIHNlY3VyZSBvcGVyYXRpb24sIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIGRlY2lzaW9uc1xuICAgICAgICogTVVTVCBiZSBtYWRlIG9uIHRoZSBiYXNpcyBvZiB0aGlzIGlkIG1lbWJlciwgbm90IHRoZSBkaXNwbGF5TmFtZSBub3JcbiAgICAgICAqIG5hbWUgbWVtYmVycy4gU2VlIFNlY3Rpb24gNi4xIG9mIFtSRkM4MjY2XS5cbiAgICAgICAqXG4gICAgICAgKiBUaGUgdXNlciBoYW5kbGUgTVVTVCBOT1QgY29udGFpbiBwZXJzb25hbGx5IGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uXG4gICAgICAgKiBhYm91dCB0aGUgdXNlciwgc3VjaCBhcyBhIHVzZXJuYW1lIG9yIGUtbWFpbCBhZGRyZXNzOyBzZWUgwqfigK8xNC42LjEgVXNlclxuICAgICAgICogSGFuZGxlIENvbnRlbnRzIGZvciBkZXRhaWxzLiBUaGUgdXNlciBoYW5kbGUgTVVTVCBOT1QgYmUgZW1wdHksIHRob3VnaFxuICAgICAgICogaXQgTUFZIGJlIG51bGwuXG4gICAgICAgKlxuICAgICAgICogTm90ZTogdGhlIHVzZXIgaGFuZGxlIG91Z2h0IG5vdCBiZSBhIGNvbnN0YW50IHZhbHVlIGFjcm9zcyBkaWZmZXJlbnRcbiAgICAgICAqIGFjY291bnRzLCBldmVuIGZvciBub24tZGlzY292ZXJhYmxlIGNyZWRlbnRpYWxzLCBiZWNhdXNlIHNvbWVcbiAgICAgICAqIGF1dGhlbnRpY2F0b3JzIGFsd2F5cyBjcmVhdGUgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWxzLiBUaHVzIGEgY29uc3RhbnRcbiAgICAgICAqIHVzZXIgaGFuZGxlIHdvdWxkIHByZXZlbnQgYSB1c2VyIGZyb20gdXNpbmcgc3VjaCBhbiBhdXRoZW50aWNhdG9yIHdpdGhcbiAgICAgICAqIG1vcmUgdGhhbiBvbmUgYWNjb3VudCBhdCB0aGUgUmVseWluZyBQYXJ0eS5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWx1c2VyZW50aXR5LWlkXG4gICAgICAgKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGVuIGluaGVyaXRlZCBieSBQdWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eSwgaXQgaXMgYSBodW1hbi1wYWxhdGFibGVcbiAgICAgICAqIGlkZW50aWZpZXIgZm9yIGEgdXNlciBhY2NvdW50LiBJdCBpcyBpbnRlbmRlZCBvbmx5IGZvciBkaXNwbGF5LCBpLmUuLFxuICAgICAgICogYWlkaW5nIHRoZSB1c2VyIGluIGRldGVybWluaW5nIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdXNlciBhY2NvdW50cyB3aXRoXG4gICAgICAgKiBzaW1pbGFyIGRpc3BsYXlOYW1lcy4gRm9yIGV4YW1wbGUsIFwiYWxleG1cIiwgXCJhbGV4Lm11ZWxsZXJAZXhhbXBsZS5jb21cIlxuICAgICAgICogb3IgXCIrMTQyNTU1NTEyMzRcIi5cbiAgICAgICAqXG4gICAgICAgKiBUaGUgUmVseWluZyBQYXJ0eSBNQVkgbGV0IHRoZSB1c2VyIGNob29zZSB0aGlzIHZhbHVlLiBUaGUgUmVseWluZyBQYXJ0eVxuICAgICAgICogU0hPVUxEIHBlcmZvcm0gZW5mb3JjZW1lbnQsIGFzIHByZXNjcmliZWQgaW4gU2VjdGlvbiAzLjQuMyBvZiBbUkZDODI2NV1cbiAgICAgICAqIGZvciB0aGUgVXNlcm5hbWVDYXNlUHJlc2VydmVkIFByb2ZpbGUgb2YgdGhlIFBSRUNJUyBJZGVudGlmaWVyQ2xhc3NcbiAgICAgICAqIFtSRkM4MjY0XSwgd2hlbiBzZXR0aW5nIG5hbWUncyB2YWx1ZSwgb3IgZGlzcGxheWluZyB0aGUgdmFsdWUgdG8gdGhlXG4gICAgICAgKiB1c2VyLlxuICAgICAgICpcbiAgICAgICAqIFRoaXMgc3RyaW5nIE1BWSBjb250YWluIGxhbmd1YWdlIGFuZCBkaXJlY3Rpb24gbWV0YWRhdGEuIFJlbHlpbmcgUGFydGllc1xuICAgICAgICogU0hPVUxEIGNvbnNpZGVyIHByb3ZpZGluZyB0aGlzIGluZm9ybWF0aW9uLiBTZWUgwqfigK82LjQuMiBMYW5ndWFnZSBhbmRcbiAgICAgICAqIERpcmVjdGlvbiBFbmNvZGluZyBhYm91dCBob3cgdGhpcyBtZXRhZGF0YSBpcyBlbmNvZGVkLlxuICAgICAgICpcbiAgICAgICAqIENsaWVudHMgU0hPVUxEIHBlcmZvcm0gZW5mb3JjZW1lbnQsIGFzIHByZXNjcmliZWQgaW4gU2VjdGlvbiAzLjQuMyBvZiBbUkZDODI2NV0gZm9yIHRoZSBVc2VybmFtZUNhc2VQcmVzZXJ2ZWQgUHJvZmlsZSBvZiB0aGUgUFJFQ0lTIElkZW50aWZpZXJDbGFzcyBbUkZDODI2NF0sIG9uIG5hbWUncyB2YWx1ZSBwcmlvciB0byBkaXNwbGF5aW5nIHRoZSB2YWx1ZSB0byB0aGUgdXNlciBvciBpbmNsdWRpbmcgdGhlIHZhbHVlIGFzIGEgcGFyYW1ldGVyIG9mIHRoZSBhdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRpYWwgb3BlcmF0aW9uLlxuICAgICAgICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFB1YmxpYyBpbmZvcm1hdGlvbiBhYm91dCBhbiBvcmdhbml6YXRpb24uICovXG4gICAgUHVibGljT3JnSW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBFeHBsaWNpdGx5IGNvbmZpZ3VyZWQgKGFsbG93bGlzdGVkKSBPcGVuSUQgcHJvdmlkZXJzIGZvciBhbiBvcmcgKi9cbiAgICAgIG9pZGNfaXNzdWVyczoge1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEludGVuZGVkIGF1ZGllbmNlcyAoY2xpZW50IElEcykgKi9cbiAgICAgICAgYXVkaWVuY2VzOiBzdHJpbmdbXTtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBJc3N1ZXIgVVJMICovXG4gICAgICAgIGlzc3Vlcjogc3RyaW5nO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGlzc3VlciBuaWNrbmFtZSAqL1xuICAgICAgICBuaWNrbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIgcm9sZXMgYWxsb3dlZCB0byB1c2UgdGhpcyBJRFAgKi9cbiAgICAgICAgdXNlcnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXVtdO1xuICAgICAgfVtdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3JnIGlkZW50aWZpZXJcbiAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAqL1xuICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgbG9nZ2luZyBpbiB3aXRoIGp1c3QgYSBwYXNza2V5IGlzIGFsbG93ZWQgKi9cbiAgICAgIHBhc3NrZXlfbG9naW5fZW5hYmxlZDogYm9vbGVhbjtcbiAgICB9O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIFB1cnBvc2U6XG4gICAgICB8IFwib3RwXCJcbiAgICAgIHwgXCJtZmFfcmVzZXRcIlxuICAgICAgfCBcIm90cF9tZmFcIlxuICAgICAgfCBcImFsaWVuX3Bhc3N3b3JkX3Jlc2V0XCJcbiAgICAgIHwgXCJtZW1iZXJfcGFzc3dvcmRfcmVzZXRcIlxuICAgICAgfCBcImFsaWVuX2ludml0ZVwiXG4gICAgICB8IFwibWVtYmVyX2ludml0ZVwiXG4gICAgICB8IFwid2VsY29tZVwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlcXVlc3QgdHlwZSBmb3IgcXVlcnlpbmcgbWV0cmljcy4gKi9cbiAgICBRdWVyeU1ldHJpY3NSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBFbmQgdGltZSBpbiBzZWNvbmRzIHNpbmNlIHVuaXggZXBvY2guIElmIG9taXR0ZWQsIGRlZmF1bHRzIHRvICdub3cnLlxuICAgICAgICovXG4gICAgICBlbmRfdGltZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZ3JhbnVsYXJpdHksIGluIHNlY29uZHMsIG9mIHRoZSByZXR1cm5lZCBkYXRhIHBvaW50cy5cbiAgICAgICAqXG4gICAgICAgKiBUaGlzIHZhbHVlIGlzIGF1dG9tYXRpY2FsbHkgcm91bmRlZCB1cCB0byBhIG11bHRpcGxlIG9mIDM2MDAgKGkuZS4sIDEgaG91cikuXG4gICAgICAgKiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byB0aGUgZHVyYXRpb24gYmV0d2VlbiBgZW5kX3RpbWVgIGFuZCBgc3RhcnRfdGltZWAuXG4gICAgICAgKiBNdXN0IGJlIG5vIGxlc3MgdGhhbiAxIGhvdXIgKDM2MDAgc2Vjb25kcykgZm9yIFwiZXZlbnRcIiBtZXRyaWNzLCBhbmQgMSBkYXlcbiAgICAgICAqICg4NjQwMCBzZWNvbmRzKSBmb3IgXCJjb3VudFwiIG1ldHJpY3MuIEFsc28sIHRoaXMgcGVyaW9kIG11c3Qgbm90XG4gICAgICAgKiBkaXZpZGUgdGhlIGBlbmRfdGltZSAtIHN0YXJ0X3RpbWVgIHBlcmlvZCBpbnRvIG1vcmUgdGhhbiAxMDAgZGF0YSBwb2ludHMuXG4gICAgICAgKi9cbiAgICAgIHBlcmlvZD86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXR1cm4gdGhlIHJhdyBkYXRhIGluc3RlYWQgb2YgY29tcHV0aW5nIHRoZSBtZXRyaWMgdmFsdWVzXG4gICAgICAgKiAobm90IHN1cHBvcnRlZCBieSBhbGwgbWV0cmljcykuXG4gICAgICAgKi9cbiAgICAgIHJhd19kYXRhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFN0YXJ0IHRpbWUgaW4gc2Vjb25kcyBzaW5jZSB1bml4IGVwb2NoLlxuICAgICAgICovXG4gICAgICBzdGFydF90aW1lOiBudW1iZXI7XG4gICAgfSAmIHtcbiAgICAgIG1ldHJpY19uYW1lOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1ldHJpY05hbWVcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtZXRyaWMgZGF0YSBwb2ludHMuICovXG4gICAgUXVlcnlNZXRyaWNzUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWR2aXNvcnkgbWVzc2FnZXMgKGUuZy4sIGlmIG1heCBudW1iZXIgb2YgcmVzdWx0cyBpcyByZWFjaGVkKS4gKi9cbiAgICAgIG1lc3NhZ2VzPzogc3RyaW5nW107XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcGVyaW9kIGZvciB3aGljaCB0aGUgc3RhdGlzdGljIGlzIGNvbXB1dGVkLCBpZiBhbnkgKG5vdCBhbGwgbWV0cmljcyBzdXBwb3J0IHNwbGl0dGluZyB0aGUgcmVxdWVzdGVkIHRpbWUgcmFuZ2UgaW50byBiaW5zKS5cbiAgICAgICAqIElmIHNldCwgZXF1YWxzIHRvIHRoZSB2YWx1ZSBmcm9tIHRoZSByZXF1ZXN0IHJvdW5kZWQgdXAgdG8gdGhlIGNsb3Nlc3QgbXVsdGlwbGUgb2YgNjAuXG4gICAgICAgKi9cbiAgICAgIHBlcmlvZD86IG51bWJlcjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU29tZSBtZXRyaWNzIGNhbiBvcHRpb25hbGx5IHJldHVybiB0aGUgcmF3IGRhdGEsIHdoZW4gcmVxdWVzdGVkLiAqL1xuICAgICAgcmF3X2RhdGE6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICAgICAgfVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDb21wdXRlZCBkYXRhIHBvaW50cy4gKi9cbiAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZGF0YSBwb2ludHMsIG9uZSBmb3IgZWFjaCB0aW1lIHBlcmlvZCAodGltZSBwZXJpb2RzIGZvciB3aGljaCB0aGUgdmFsdWUgaXMgMCBhcmUgb21pdHRlZCkuICovXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBba2V5OiBzdHJpbmddOiBudW1iZXI7XG4gICAgICAgIH07XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG1ldHJpYyBkaW1lbnNpb25zLiAqL1xuICAgICAgICBkaW1lbnNpb25zOiB7XG4gICAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfVtdO1xuICAgICAgc3RhdD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3JnTWV0cmljU3RhdFwiXSB8IG51bGw7XG4gICAgfTtcbiAgICBSYXRjaGV0Q29uZmlnOiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbGlmZXRpbWUgKGluIHNlY29uZHMpIG9mIGF1dGggdG9rZW5zIGZvciB0aGlzIHNlc3Npb24uXG4gICAgICAgKiBBdXRoIHRva2VucyBjYW4gYmUgcmVmcmVzaGVkIChyZW5ld2VkKSB1c2luZyBhIHZhbGlkICh1bmV4cGlyZWQpXG4gICAgICAgKiByZWZyZXNoIHRva2VuLCBidXQgbm90IGJleW9uZCB0aGUgc2Vzc2lvbiBsaWZldGltZS5cbiAgICAgICAqIEBkZWZhdWx0IDMwMFxuICAgICAgICogQGV4YW1wbGUgMzYwMFxuICAgICAgICovXG4gICAgICBhdXRoX2xpZmV0aW1lPzogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGFtb3VudCBvZiB0aW1lIChpbiBzZWNvbmRzKSB0aGF0IGFuIGF1dGggdG9rZW4gZm9yIHRoaXMgc2Vzc2lvbiByZW1haW5zXG4gICAgICAgKiB2YWxpZCBhZnRlciBpdCBoYXMgYmVlbiByZWZyZXNoZWQgYW5kIGEgbmV3IGF1dGggdG9rZW4gaGFzIGJlZW4gaXNzdWVkLiBUaGlzXG4gICAgICAgKiBoZWxwcyB0byBhZGRyZXNzIGNvbmN1cnJlbmN5IGhhemFyZHMsIGZvciBleGFtcGxlLCBpZiBvbmUgdGhyZWFkIG1ha2VzIHJlcXVlc3RzXG4gICAgICAgKiB3aXRoIGF1dGggdG9rZW4gd2hpbGUgYW5vdGhlciByZWZyZXNoZXMgaXQuXG4gICAgICAgKiBAZGVmYXVsdCAzMFxuICAgICAgICogQGV4YW1wbGUgMzBcbiAgICAgICAqL1xuICAgICAgZ3JhY2VfbGlmZXRpbWU/OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbGlmZXRpbWUgKGluIHNlY29uZHMpIG9mIHJlZnJlc2ggdG9rZW5zIGZvciB0aGlzIHNlc3Npb24uXG4gICAgICAgKiBJZiB0aGlzIHZhbHVlIGlzIHNob3J0ZXIgdGhhbiB0aGUgc2Vzc2lvbiBsaWZldGltZSwgaW5hY3RpdmUgc2Vzc2lvbnNcbiAgICAgICAqIHdpbGwgYmVjb21lIGludmFsaWQgb25jZSB0aGUgYXV0aCBhbmQgcmVmcmVzaCB0b2tlbnMgaGF2ZSBib3RoIGV4cGlyZWQuXG4gICAgICAgKiBAZGVmYXVsdCA4NjQwMFxuICAgICAgICogQGV4YW1wbGUgNDMyMDBcbiAgICAgICAqL1xuICAgICAgcmVmcmVzaF9saWZldGltZT86IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBsaWZldGltZSAoaW4gc2Vjb25kcykgb2YgdGhlIHNlc3Npb24uXG4gICAgICAgKiBUaGUgc2Vzc2lvbiBjYW5ub3QgYmUgZXh0ZW5kZWQgYmV5b25kIGl0cyBvcmlnaW5hbCBsaWZldGltZS5cbiAgICAgICAqIEBkZWZhdWx0IDMxNTM2MDAwXG4gICAgICAgKiBAZXhhbXBsZSA4NjQwMFxuICAgICAgICovXG4gICAgICBzZXNzaW9uX2xpZmV0aW1lPzogbnVtYmVyO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZWNlaXB0IHRoYXQgYW4gTUZBIHJlcXVlc3Qgd2FzIGFwcHJvdmVkLiAqL1xuICAgIFJlY2VpcHQ6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIENvbmZpcm1hdGlvbiBjb2RlIHRoZSB1c2VyIG5lZWRzIHRvIHByZXNlbnQgd2hlbiByZXN1bWluZyB0aGUgb3JpZ2luYWwgcmVxdWVzdC5cbiAgICAgICAqIEBleGFtcGxlIGJhMWQ3NWRkLWQ5OTktNGMxYi05NDRkLTI1YzI1NDQwYzhhZlxuICAgICAgICovXG4gICAgICBjb25maXJtYXRpb246IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBsb2dnZWQtaW4gdXNlciB3aG9zZSBhY3Rpb24gY3JlYXRlZCB0aGlzIGFwcHJvdmFsLiAqL1xuICAgICAgZmluYWxfYXBwcm92ZXI6IHN0cmluZztcbiAgICAgIHRpbWVzdGFtcDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgIH07XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgUmVmcmVzaEdyYW50VHlwZTogXCJyZWZyZXNoX3Rva2VuXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBKU09OLVJQQyByZXF1ZXN0IG9iamVjdCAqL1xuICAgIFJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBJRCAqL1xuICAgICAgaWQ/OiB1bmtub3duO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBKU09OLVJQQyB2ZXJzaW9uLiAqL1xuICAgICAganNvbnJwYzogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBOYW1lIG9mIHRoZSBtZXRob2QgdG8gYmUgaW52b2tlZC4gKi9cbiAgICAgIG1ldGhvZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXIgdmFsdWVzIG9mIHRoZSByZXF1ZXN0LiAqL1xuICAgICAgcGFyYW1zPzogdW5rbm93bjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBbiBleHRlbmRlZCBmb3JtIG9mIGBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNgIHRoYXQgYWxsb3dzIGNsaWVudHMgdG8gZGVyaXZlIHRoZSBXZWJBdXRobiBjaGFsbGVuZ2VcbiAgICAgKiBmcm9tIGEgc3RydWN0dXJlZCBwcmVpbWFnZS5cbiAgICAgKlxuICAgICAqIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSB3ZWJ1YXRobiBzaWduYXR1cmUgY2FuIG9ubHkgYmUgdXNlZCBmb3IgYSBzcGVjaWZpYyBwdXJwb3NlXG4gICAgICovXG4gICAgUmVxdWVzdE9wdGlvbnNXaXRoSGFzaDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDaGFsbGVuZ2VQaWVjZXNcIl0gJiB7XG4gICAgICBvcHRpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uc1wiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGVudW1lcmF0aW9u4oCZcyB2YWx1ZXMgZGVzY3JpYmUgdGhlIFJlbHlpbmcgUGFydHkncyByZXF1aXJlbWVudHMgZm9yXG4gICAgICogY2xpZW50LXNpZGUgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWxzIChmb3JtZXJseSBrbm93biBhcyByZXNpZGVudCBjcmVkZW50aWFsc1xuICAgICAqIG9yIHJlc2lkZW50IGtleXMpOlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2VudW1kZWYtcmVzaWRlbnRrZXlyZXF1aXJlbWVudFxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgUmVzaWRlbnRLZXlSZXF1aXJlbWVudDogXCJkaXNjb3VyYWdlZFwiIHwgXCJwcmVmZXJyZWRcIiB8IFwicmVxdWlyZWRcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEpTT04tUlBDIHJlc3BvbnNlIG9iamVjdCAqL1xuICAgIFJlc3BvbnNlOiB7XG4gICAgICBlcnJvcj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JPYmpcIl0gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBJRCBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIHJlcXVlc3QgKi9cbiAgICAgIGlkPzogdW5rbm93bjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29uc3RhbnQgXCIyLjBcIiAqL1xuICAgICAganNvbnJwYzogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBSZXN1bHQsIGlmIHN1Y2Nlc3MgKi9cbiAgICAgIHJlc3VsdD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSBtYXAgb2YgYWN0aW9ucyB0byBzZXRzIG9mIG1lbWJlcnNoaXAgcm9sZXMgKi9cbiAgICBSZXN0cmljdGVkQWN0aW9uc01hcDoge1xuICAgICAgW2tleTogc3RyaW5nXTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdW107XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIHRoZSBbYGNzX3JldHJ5VHJhbnNhY3Rpb25gXShScGNNZXRob2Q6OlJldHJ5VHJhbnNhY3Rpb24pIG1ldGhvZC4gKi9cbiAgICBSZXRyeVRyYW5zYWN0aW9uUmVxdWVzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFdm1UeEN1c3RvbWl6YXRpb25cIl0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB0cmFuc2FjdGlvbiBpZC4gKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBvZiByb2xlIGFjdGlvbnMgdGhhdCBjYW4gYmUgcmVzdHJpY3RlZCB0byBhIHNldCBvZiBtZW1iZXIgcm9sZXNcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIFJvbGVBY3Rpb246IFwiQ3JlYXRlVG9rZW5cIiB8IFwiR2V0S2V5XCI7XG4gICAgUm9sZUF0dGVzdGF0aW9uQ2xhaW1zOiB7XG4gICAgICBleHA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIGlhdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgcXVlcnk6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUm9sZUF0dGVzdGF0aW9uUXVlcnlcIl07XG4gICAgICByb2xlX2luZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUm9sZUluZm9cIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUga2V5cyBjdXJyZW50bHkgaW4gdGhpcyByb2xlLiAqL1xuICAgICAgcm9sZV9rZXlzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJblJvbGVJbmZvXCJdW10gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSURzIG9mIHRoZSB1c2VycyB3aG8gYXJlIGN1cnJlbnRseSBpbiB0aGlzIHJvbGUuICovXG4gICAgICByb2xlX3VzZXJzOiBzdHJpbmdbXTtcbiAgICB9O1xuICAgIFJvbGVBdHRlc3RhdGlvblF1ZXJ5OiB7XG4gICAgICBrZXlfZmlsdGVyPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXSB8IG51bGw7XG4gICAgICB2ZXJib3NpdHk/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJvbGVBdHRlc3RhdGlvblZlcmJvc2l0eVwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTcGVjaWZpZXMgd2hpY2ggcm9sZSBwcm9wZXJ0aWVzIHRvIGluY2x1ZGUgaW4gYW4gYXR0ZXN0YXRpb25cbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIFJvbGVBdHRlc3RhdGlvblZlcmJvc2l0eTogXCJTdW1tYXJ5XCIgfCBcIldpdGhLZXlzXCIgfCBcIkZ1bGxcIjtcbiAgICBSb2xlSW5mbzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb21tb25GaWVsZHNcIl0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSByb2xlIGlzIGVuYWJsZWRcbiAgICAgICAqIEBleGFtcGxlIHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGVwcmVjYXRlZC4gVGhlIEN1YmVTaWduZXIgSURzIG9mIGF0IG1vc3QgMTAwIGtleXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcm9sZS4gKi9cbiAgICAgIGtleXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluUm9sZUluZm9cIl1bXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSBjdXJyZW50IHVzZXIgaXMgYSBtZW1iZXIgb2YgdGhlIHJvbGUuIFRoaXMgaXMgYWx3YXlzIHRydWUsXG4gICAgICAgKiBleGNlcHQgZm9yIG93bmVycyB3aG8gY2FuIHNlZSByb2xlcyB0aGV5IGFyZSBub3QgbWVtYmVycyBvZi5cbiAgICAgICAqL1xuICAgICAgbWVtYmVyOiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSByb2xlIChtdXN0IGJlIGFscGhhbnVtZXJpYylcbiAgICAgICAqIEBleGFtcGxlIG15X3JvbGVcbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQb2xpY3kgdGhhdCBpcyBjaGVja2VkIHdoZW5ldmVyIGEga2V5IGlzIGFjY2Vzc2VkIGZvciBzaWduaW5nIHZpYSB0aGlzIHJvbGUuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlNvdXJjZUlwQWxsb3dsaXN0XCI6IFtcbiAgICAgICAqICAgICAgIFwiMTIzLjQ1Ni43OC45LzE2XCJcbiAgICAgICAqICAgICBdXG4gICAgICAgKiAgIH0sXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlJlcXVpcmVNZmFcIjoge1xuICAgICAgICogICAgICAgXCJjb3VudFwiOiAxXG4gICAgICAgKiAgICAgfVxuICAgICAgICogICB9XG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHBvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdO1xuICAgICAgcmVzdHJpY3RlZF9hY3Rpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJlc3RyaWN0ZWRBY3Rpb25zTWFwXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSByb2xlXG4gICAgICAgKiBAZXhhbXBsZSBSb2xlI2JmZTNlY2NiLTczMWUtNDMwZC1iMWU1LWFjMTM2M2U2YjA2YlxuICAgICAgICovXG4gICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERlcHJlY2F0ZWQuIFRoZSBsaXN0IG9mIGF0IG1vc3QgMTAwIHVzZXJzIHdpdGggYWNjZXNzIHRvIHRoZSByb2xlLiAqL1xuICAgICAgdXNlcnM/OiBzdHJpbmdbXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIHdoZW4gcmVxdWVzdGluZyBhIHJvbGUgYXR0ZXN0YXRpb24uICovXG4gICAgUm9sZUluZm9Kd3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBKU09OIFdlYiBUb2tlbiB3aG9zZSBjbGFpbXMgY29udGFpbiB0aGUgYFJvbGVJbmZvYCBzdHJ1Y3R1cmUuICovXG4gICAgICBqd3Q6IHN0cmluZztcbiAgICB9O1xuICAgIFJwY0FwaUVycm9yQ29kZTpcbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJScGNBcGlFcnJvck93bkNvZGVzXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2lnbmVyQ2xpZW50RXJyb3JDb2RlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUnBjRXZtRXJyb3JDb2RlXCJdO1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIFJwY0FwaUVycm9yT3duQ29kZXM6IFwiTWZhUmVxdWlyZWRcIiB8IFwiQ29uY3VycmVudFRyYW5zYWN0aW9uRmFpbGVkXCIgfCBcIkludmFsaWRUeFN0YXR1c1wiO1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIFJwY0V2bUVycm9yQ29kZTogXCJTdWJtaXNzaW9uRmFpbGVkXCIgfCBcIkZhaWxlZFRvUmVzZXJ2ZU5vbmNlXCIgfCBcIk1pc3NpbmdUeEZpZWxkXCIgfCBcIlNpZ25lclwiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgUlBDIEFQSSBtZXRob2QgYW5kIG1hdGNoaW5nIHBhcmFtZXRlcnMuXG4gICAgICpcbiAgICAgKiBUb3AtbGV2ZWwgZGlzcGF0Y2guIFdpcmUgZm9ybWF0IGlzIHByZXNlcnZlZCBieSBgI1tzZXJkZSh1bnRhZ2dlZCldYDogZWFjaFxuICAgICAqIGluYm91bmQgcmVxdWVzdCBpcyBtYXRjaGVkIGFnYWluc3Qgb25lIG9mIHRoZSBpbnRlcm5hbGx5LXRhZ2dlZCBpbm5lciBlbnVtc1xuICAgICAqIChbYENzUnBjYF0gZm9yIHRoZSBjb3JlIG1ldGhvZHMsIFtgQmluYW5jZVJwY2BdIGZvciB0aGUgQmluYW5jZSBmYW1pbHksXG4gICAgICogW2BCeWJpdFJwY2BdIGZvciB0aGUgQnliaXQgZmFtaWx5LCBbYENvaW5iYXNlUnBjYF0gZm9yIHRoZSBDb2luYmFzZSBmYW1pbHkpLlxuICAgICAqL1xuICAgIFJwY01ldGhvZDpcbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDc1JwY1wiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VScGNcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFJwY1wiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5iYXNlUnBjXCJdO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIHNjb3BlcyBmb3IgYWNjZXNzaW5nIEN1YmVTaWduZXIgQVBJcyAqL1xuICAgIFNjb3BlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkV4cGxpY2l0U2NvcGVcIl0gfCBzdHJpbmc7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHNldCBvZiBzY29wZXMuICovXG4gICAgU2NvcGVTZXQ6IE9uZU9mPFxuICAgICAgW1xuICAgICAgICBcIkFsbFwiLFxuICAgICAgICB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgc2NvcGVzIGV4Y2VwdCB0aGVzZSAoaW5jbHVkaW5nIHRob3NlIHRyYW5zaXRpdmVseSBpbXBsaWVkKS4gKi9cbiAgICAgICAgICBBbGxFeGNlcHQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2NvcGVcIl1bXTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIG9mIHRoZXNlIHNjb3BlcyAoaW5jbHVkaW5nIHRob3NlIHRyYW5zaXRpdmVseSBpbXBsaWVkKS4gKi9cbiAgICAgICAgICBBbGxPZjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTY29wZVwiXVtdO1xuICAgICAgICB9LFxuICAgICAgXVxuICAgID47XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgdGhlIG51bWJlciBvZiBNRkEgYXBwcm92YWxzIHJlcXVpcmVkIGZvciBhIGdpdmVuIG9wZXJhdGlvblxuICAgICAqIChlLmcuIGxvZ2luKS4gQ2FuIGJlIHVzZWQgdG8gcHJvZHVjZSBhIGNvbmNyZXRlIHBvbGljeSBmb3IgYSBnaXZlbiB1c2VyXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBTZWNvbmRGYWN0b3JSZXF1aXJlbWVudDogXCJub25lXCIgfCBcImlmX3JlZ2lzdGVyZWRcIiB8IFwicmVxdWlyZWRcIjtcbiAgICAvKipcbiAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICogQGRlc2NyaXB0aW9uIER1cmF0aW9uIG1lYXN1cmVkIGluIHNlY29uZHNcbiAgICAgKiBBIHdyYXBwZXIgdHlwZSBmb3Igc2VyaWFsaXphdGlvbiB0aGF0IGVuY29kZXMgYSBgRHVyYXRpb25gIGFzIGEgYHU2NGAgcmVwcmVzZW50aW5nIHRoZSBudW1iZXIgb2Ygc2Vjb25kcy5cbiAgICAgKi9cbiAgICBTZWNvbmRzOiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogU2VjcmV0QWN0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBhY2Nlc3MtY29udHJvbGxlZCBhY3Rpb25zIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiBhbiBpbmRpdmlkdWFsIHBvbGljeSBzZWNyZXQuXG4gICAgICogQGV4YW1wbGUgcmVhZDpzZWNyZXRcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIFNlY3JldEFjdGlvbjpcbiAgICAgIHwgXCJyZWFkOipcIlxuICAgICAgfCBcInJlYWQ6aW5mb1wiXG4gICAgICB8IFwicmVhZDpzZWNyZXRcIlxuICAgICAgfCBcInVwZGF0ZToqXCJcbiAgICAgIHwgXCJ1cGRhdGU6c2VjcmV0XCJcbiAgICAgIHwgXCJ1cGRhdGU6YWNsXCJcbiAgICAgIHwgXCJkZWxldGVcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgc2VjcmV0LiAqL1xuICAgIFNlY3JldEluZm86IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGFjY2Vzcy1jb250cm9sIGVudHJpZXMgZm9yIHRoaXMgc2VjcmV0LiAqL1xuICAgICAgYWNsPzogdW5rbm93bltdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5hbWUgb2YgdGhlIHNlY3JldC4gKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIHByb3ZlbmFuY2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2VjcmV0UHJvdmVuYW5jZVwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXaGVyZSBhIHBvbGljeSBzZWNyZXQncyB2YWx1ZSBjYW1lIGZyb20uXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBTZWNyZXRQcm92ZW5hbmNlOiBcIkltcG9ydGVkXCIgfCBcIkdlbmVyYXRlZFwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHZhbHVlIG9mIGEgcG9saWN5IHNlY3JldC4gKi9cbiAgICBTZWNyZXRWYWx1ZTogT25lT2Y8XG4gICAgICBbXG4gICAgICAgIHN0cmluZyxcbiAgICAgICAge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgY2xpZW50J3MgZXBoZW1lcmFsIHB1YmxpYyBrZXkgdXNlZCB0byBkZXJpdmUgYSBzaGFyZWQga2V5LlxuICAgICAgICAgICAqIFRoaXMgaXMgYSBiYXNlNjQtZW5jb2RlZCwgU0VDMS1lbmNvZGVkIFAzODQgcHVibGljIGtleS5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBjbGllbnRfcHVibGljX2tleTogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZW5jcnlwdGVkIHNlY3JldCB2YWx1ZS5cbiAgICAgICAgICAgKiBUaGlzIGlzIGEgYmFzZTY0LWVuY29kZWQgY2lwaGVydGV4dC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmNyeXB0ZWRfdmFsdWU6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQSBzYWx0IHZhbHVlIHVzZWQgdG8gZGVyaXZlIGEgc2hhcmVkIGtleSBmb3IgQUVTLUdDTS5cbiAgICAgICAgICAgKiBUaGlzIGlzIGEgYmFzZTY0LWVuY29kZWQgYnl0ZSBzdHJpbmcuXG4gICAgICAgICAgICovXG4gICAgICAgICAgc2FsdDogc3RyaW5nO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBudW1iZXIgb2YgcmFuZG9tIGJ5dGVzIHRvIGdlbmVyYXRlLlxuICAgICAgICAgICAqIFRoZSBzZWNyZXQgdmFsdWUgaXMgdGhlIGJhc2U2NCBlbmNvZGluZyBvZiB0aG9zZSBieXRlcywgc28gaXQgaXNcbiAgICAgICAgICAgKiBgNCAqIGNlaWwoZ2VuZXJhdGVfcmFuZG9tX2J5dGVzIC8gMylgIGNoYXJhY3RlcnMgbG9uZy5cbiAgICAgICAgICAgKlxuICAgICAgICAgICAqIE11c3QgYmUgYmV0d2VlbiAxIGFuZFxuICAgICAgICAgICAqIFtNQVhfUkFORE9NX1NFQ1JFVF9CWVRFU10oc2VjcmV0czo6TUFYX1JBTkRPTV9TRUNSRVRfQllURVMpLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGdlbmVyYXRlX3JhbmRvbV9ieXRlczogbnVtYmVyO1xuICAgICAgICB9LFxuICAgICAgXVxuICAgID47XG4gICAgU2Vzc2lvbkluZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vzc2lvbk1ldGFkYXRhXCJdICYge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRpb24gZGF0ZSAoaW4gc2Vjb25kcyBzaW5jZSB1bml4IGVwb2NoKVxuICAgICAgICovXG4gICAgICBjcmVhdGVkX2F0OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBFeHBpcmF0aW9uIGRhdGUgKGluIHNlY29uZHMgc2luY2UgdW5peCBlcG9jaClcbiAgICAgICAqL1xuICAgICAgZXhwOiBudW1iZXI7XG4gICAgICBsYXN0X3VzZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIldoZXJlQW5kV2hlblwiXSB8IG51bGw7XG4gICAgICBsaWZldGltZXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJhdGNoZXRDb25maWdcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIGZvciB0aGUgc2Vzc2lvblxuICAgICAgICogQGV4YW1wbGUgT0lEQyBsb2dpbiBzZXNzaW9uXG4gICAgICAgKi9cbiAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIExpc3RzIHVzZXIgcGVybWlzc2lvbiBhbmQgYWNjZXNzIGZvciB0aGUgc2Vzc2lvblxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcInNpZ246KlwiLFxuICAgICAgICogICBcIm1hbmFnZTptZmE6dm90ZTpjc1wiXG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHNjb3Blcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2NvcGVcIl1bXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFNlc3Npb24gSUQuIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHNlc3Npb24sIGJ1dCBjYW5ub3QgYmUgdXNlZCBmb3IgYXV0aC5cbiAgICAgICAqIEBleGFtcGxlIDc3YWFkMjEwMGMzNjFmNDk3NjM1ZGQwMDVjNGQxNTc4MWUyZTVkZjRiOWY0NWQ4ZTc0ZjM3NDI1Y2JjMzBiOWVcbiAgICAgICAqL1xuICAgICAgc2Vzc2lvbl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbGxlY3Rpb24gb2YgYXR0cmlidXRlcyByZWxhdGVkIHRvIGEgU2Vzc2lvbi5cbiAgICAgKiBUaGlzIGlzIHRoZSBiYWNrZW5kIHZhcmlhbnQgb2YgW2BDbGllbnRTZXNzaW9uTWV0YWRhdGFgXSBhbmQgd29ya3MgaW4gdGFuZGVtIHdpdGggaXRzIGZyb250ZW5kIGNvdW50ZXJwYXJ0LlxuICAgICAqL1xuICAgIFNlc3Npb25NZXRhZGF0YToge1xuICAgICAgY2xpZW50PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDbGllbnRQcm9maWxlXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSB1c2VyIHdobyBjcmVhdGVkIHRoZSBzZXNzaW9uLlxuICAgICAgICogQGV4YW1wbGUgVXNlciNlZjQxMzZkZC1kMjJmLTQ1YmMtYTY1Yy0xMmI0YmFhNzI5ZDRcbiAgICAgICAqL1xuICAgICAgY3JlYXRlZF9ieT86IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT1MgU3RyaW5nIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgc2VlIG9zX2luZm8gaW5zdGVhZC4gKi9cbiAgICAgIG9zPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIG9zX2luZm8/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9zSW5mb1wiXTtcbiAgICAgIHNvdXJjZV9pcD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU291cmNlSXBcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBVc2VyIGFnZW50IHRoYXQgY3JlYXRlZCB0aGUgc2Vzc2lvbi5cbiAgICAgICAqIEBleGFtcGxlIE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIHgueTsgcnY6NDIuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC80Mi4wXG4gICAgICAgKi9cbiAgICAgIHVzZXJfYWdlbnQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzcG9uc2UgZnJvbSBhbnkgb3BlcmF0aW9uIG9wZXJhdGluZyBvbiBtdWx0aXBsZSBzZXNzaW9ucyAqL1xuICAgIFNlc3Npb25zUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2Ygc2Vzc2lvbnMgKi9cbiAgICAgIHNlc3Npb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlc3Npb25JbmZvXCJdW107XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQSByZXF1ZXN0IGZvciBzZXR0aW5nIGFuIE9yZy1sZXZlbCBwb2xpY3kgc2VjcmV0LlxuICAgICAqXG4gICAgICogRWl0aGVyIGB2YWx1ZWAgb3IgYGFjbGAgbXVzdCBiZSBwcm92aWRlZC5cbiAgICAgKi9cbiAgICBTZXRQb2xpY3lTZWNyZXRSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc2VjcmV0J3MgYWNjZXNzLWNvbnRyb2wgZW50cmllcy5cbiAgICAgICAqIENhbiBiZSBgTm9uZWAgaWYgdGhlIHJlcXVlc3QgaXMgY3JlYXRpbmcgYSBzZWNyZXQgd2l0aG91dCBBQ0wgb3IgdXBkYXRpbmcgYW5cbiAgICAgICAqIGV4aXN0aW5nIHNlY3JldCdzIHZhbHVlLlxuICAgICAgICovXG4gICAgICBhY2w/OiB1bmtub3duO1xuICAgICAgaW1wb3J0X2tleT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW1wb3J0S2V5XCJdIHwgbnVsbDtcbiAgICAgIHZhbHVlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNyZXRWYWx1ZVwiXSB8IG51bGw7XG4gICAgfTtcbiAgICBTaWduRGltZW5zaW9uczoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgc2lnbiBvcGVyYXRpb24gKi9cbiAgICAgIG9wZXJhdGlvbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgbWV0cmljcyBtdXN0IGluY2x1ZGUgJ29yZ19pZCcgYXMgYSBkaW1lbnNpb24uICovXG4gICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIFNpZ25EcnlSdW5BcmdzOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgTUZBIGlzIHJlcXVpcmVkICovXG4gICAgICBtZmFfcmVxdWVzdHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhUmVxdWVzdEluZm9cIl1bXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZSwgaWYgcmVxdWVzdGVkICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RydWN0dXJlZCBpbnB1dCB0byBhIFNpZ24tSW4gV2l0aCBTb2xhbmEgcmVxdWVzdCAoYFNvbGFuYVNpZ25JbklucHV0YCBpbiB0aGUgc3BlYykuXG4gICAgICpcbiAgICAgKiBUaGUgcmVseWluZyBwYXJ0eSBmaWxscyBpbiBgZG9tYWluYC9gYWRkcmVzc2AvYHVyaWAvLi4uIGFuZCB0aGUgd2FsbGV0IHJlbmRlcnMgaXQgaW50byB0aGVcbiAgICAgKiBodW1hbi1yZWFkYWJsZSBtZXNzYWdlIChzZWUgW1NpZ25JbklucHV0Ojp0b19tZXNzYWdlX3RleHRdKSB0aGF0IGl0IHNpZ25zLlxuICAgICAqL1xuICAgIFNpZ25JbklucHV0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBiYXNlNTgtZW5jb2RlZCBTb2xhbmEgKGVkMjU1MTkpIHB1YmxpYyBrZXkgcGVyZm9ybWluZyB0aGUgc2lnbi1pbi4gKi9cbiAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgIGNoYWluSWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNvbGFuYU5ldHdvcmtcIl0gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgUkZDIDM5ODYgYXV0aG9yaXR5IHRoYXQgaXMgcmVxdWVzdGluZyB0aGUgc2lnbi1pbi4gKi9cbiAgICAgIGRvbWFpbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSVNPIDg2MDEgZGF0ZXRpbWUgc3RyaW5nIGFmdGVyIHdoaWNoIHRoZSBzaWduZWQgbWVzc2FnZSBpcyBubyBsb25nZXIgdmFsaWQuICovXG4gICAgICBleHBpcmF0aW9uVGltZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBJU08gODYwMSBkYXRldGltZSBzdHJpbmcgb2YgdGhlIHRpbWUgdGhlIG1lc3NhZ2Ugd2FzIGlzc3VlZC4gKi9cbiAgICAgIGlzc3VlZEF0Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSByYW5kb21pemVkIHRva2VuIHVzZWQgdG8gcHJldmVudCByZXBsYXkgYXR0YWNrczsgYXQgbGVhc3QgOCBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4gKi9cbiAgICAgIG5vbmNlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIElTTyA4NjAxIGRhdGV0aW1lIHN0cmluZyBiZWZvcmUgd2hpY2ggdGhlIHNpZ25lZCBtZXNzYWdlIGlzIG5vdCB5ZXQgdmFsaWQuICovXG4gICAgICBub3RCZWZvcmU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIHN5c3RlbS1zcGVjaWZpYyBpZGVudGlmaWVyIHRoYXQgbWF5IGJlIHVzZWQgdG8gdW5pcXVlbHkgcmVmZXIgdG8gdGhlIHNpZ24taW4gcmVxdWVzdC4gKi9cbiAgICAgIHJlcXVlc3RJZD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgbGlzdCBvZiBSRkMgMzk4NiBVUklzIHRoZSB1c2VyIHdpc2hlcyB0byBoYXZlIHJlc29sdmVkIGFzIHBhcnQgb2YgdGhlIGF1dGhlbnRpY2F0aW9uLiAqL1xuICAgICAgcmVzb3VyY2VzPzogc3RyaW5nW10gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIEFTQ0lJIGFzc2VydGlvbiB0aGF0IHRoZSB1c2VyIHdpbGwgc2lnbjsgbXVzdCBub3QgY29udGFpbiBhIG5ld2xpbmUuICovXG4gICAgICBzdGF0ZW1lbnQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBSRkMgMzk4NiBVUkkgcmVmZXJyaW5nIHRvIHRoZSByZXNvdXJjZSB0aGF0IGlzIHRoZSBzdWJqZWN0IG9mIHRoZSBzaWduLWluLiAqL1xuICAgICAgdXJpPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHZlcnNpb24gb2YgdGhlIG1lc3NhZ2UgKGN1cnJlbnRseSBhbHdheXMgYDFgKS4gKi9cbiAgICAgIHZlcnNpb24/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgU2lnblJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgcmVzdWx0aW5nIHNpZ25hdHVyZS4gKi9cbiAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgU2lnbmF0dXJlVmVyc2lvbjogXCJlaXBfNzEyX3YzXCIgfCBcImVpcF83MTJfdjRcIiB8IFwicGVyc29uYWxfc2lnblwiO1xuICAgIFNpZ25lZE1lc3NhZ2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBhZGRyZXNzIG9mIHRoZSBzaWduZXIsIHdpdGggbGVhZGluZyAnMHgnXG4gICAgICAgKiBAZXhhbXBsZSAweDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlcbiAgICAgICAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHJlcXVlc3QgcmVjb3JkLiAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHNpZ25hdHVyZSwgaGV4IGVuY29kZWQsIHdpdGggbGVhZGluZyAnMHgnICovXG4gICAgICBzaWduYXR1cmU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgc2lnbmF0dXJlVmVyc2lvbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTaWduYXR1cmVWZXJzaW9uXCJdO1xuICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1taVN0YXR1c1wiXTtcbiAgICB9O1xuICAgIFNpZ25lckNsaWVudEVycm9yQ29kZTpcbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTaWduZXJDbGllbnRFcnJvck93bkNvZGVzXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2lnbmVyQ2xpZW50SW50ZXJuYWxFcnJvckNvZGVcIl07XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgU2lnbmVyQ2xpZW50RXJyb3JPd25Db2RlczogXCJTaWduZXJSZXNwb25zZUVycm9yXCIgfCBcIkxlZ2FjeVNlc3Npb25Ob3RTdXBwb3J0ZWRcIjtcbiAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICBTaWduZXJDbGllbnRJbnRlcm5hbEVycm9yQ29kZTpcbiAgICAgIHwgXCJJbnZhbGlkU2lnbmVyRW52aXJvbm1lbnRcIlxuICAgICAgfCBcIkludmFsaWRTZXNzaW9uSGVhZGVyc1wiXG4gICAgICB8IFwiSW52YWxpZEhlYWRlclwiXG4gICAgICB8IFwiTGFtYmRhSW52b2tlRXJyb3JcIlxuICAgICAgfCBcIkxhbWJkYVJlc3BvbnNlRXJyb3JcIlxuICAgICAgfCBcIkxhbWJkYVByb3h5SW52YWxpZFJlc3BvbnNlXCJcbiAgICAgIHwgXCJSZXF3ZXN0XCJcbiAgICAgIHwgXCJTZXJkZVwiXG4gICAgICB8IFwiSW9cIjtcbiAgICBTaWduZXJFcnJvckNvZGU6XG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2lnbmVyRXJyb3JPd25Db2Rlc1wiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkVmFsdWVDb2RlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmFkUmVxdWVzdEVycm9yQ29kZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJhZEdhdGV3YXlFcnJvckNvZGVcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJOb3RGb3VuZEVycm9yQ29kZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZvcmJpZGRlbkVycm9yQ29kZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVuYXV0aG9yaXplZEVycm9yQ29kZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlByZWNvbmRpdGlvbkVycm9yQ29kZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRpbWVvdXRFcnJvckNvZGVcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb25mbGljdEVycm9yQ29kZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkludGVybmFsRXJyb3JDb2RlXCJdO1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIFNpZ25lckVycm9yT3duQ29kZXM6XG4gICAgICB8IFwiUHJlQ29tcHV0ZWRcIlxuICAgICAgfCBcIlN0YXR1c0NvZGVXaXRoTWVzc2FnZVwiXG4gICAgICB8IFwiSnJwY0Vycm9yXCJcbiAgICAgIHwgXCJVbmhhbmRsZWRFcnJvclwiXG4gICAgICB8IFwiUHJveHlTdGFydEVycm9yXCJcbiAgICAgIHwgXCJFbmNsYXZlRXJyb3JcIlxuICAgICAgfCBcIlBvbGljeUVycm9yV2l0aEV2YWxUcmVlXCJcbiAgICAgIHwgXCJScGNBcGlcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEFuc3dlciB0byBhIFNpZ24taW4gd2l0aCBFdGhlcmV1bSBjaGFsbGVuZ2UuICovXG4gICAgU2l3ZUNvbXBsZXRlUmVxdWVzdDoge1xuICAgICAgY2hhbGxlbmdlX2lkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgRUlQLTE5MSBzaWduYXR1cmUgb2YgdGhlIG1lc3NhZ2UgcmV0dXJuZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgUE9TVCAoJ2luaXQnKSBlbmRwb2ludCAqL1xuICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJldHVybmVkIHVwb24gYSBzdWNjZXNzZnVsIFNJV0UgYXV0aGVudGljYXRpb24uICovXG4gICAgU2l3ZUNvbXBsZXRlUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIE9JREMgdG9rZW4gY29ycmVzcG9uZGluZyB0byB0aGUgdXNlciB3aXRoIHRoZSByZXF1ZXN0ZWQgU0lXRSBpZGVudGl0eS4gKi9cbiAgICAgIGlkX3Rva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZSB0aGUgcmVxdWVzdCB0byBzaWduIGluIHdpdGggZXRoZXJldW0uIFRoZSByZXNwb25zZSB3aWxsXG4gICAgICogY29udGFpbiBhIFNJV0UgbWVzc2FnZSB0aGF0IHRoZSBjbGllbnQgaGFzIHRvIHNpZ24gYW5kIHN1Ym1pdCB2aWEgdGhlXG4gICAgICogY29ycmVzcG9uZGluZyBQQVRDSCBlbmRwb2ludCB3aXRoaW4gNSBtaW51dGVzLlxuICAgICAqL1xuICAgIFNpd2VJbml0UmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgRXRoZXJldW0gYWRkcmVzcyBwZXJmb3JtaW5nIHRoZSBzaWduaW5nIGNvbmZvcm1hbnQgdG8gY2FwaXRhbGl6YXRpb24gZW5jb2RlZCBjaGVja3N1bSBzcGVjaWZpZWQgaW4gRUlQLTU1LiAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgUkZDIDM5ODYgYXV0aG9yaXR5IHRoYXQgaXMgcmVxdWVzdGluZyB0aGUgc2lnbmluZy4gKi9cbiAgICAgIGRvbWFpbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSVNPIDg2MDEgZGF0ZXRpbWUgc3RyaW5nIHRoYXQsIGlmIHByZXNlbnQsIGluZGljYXRlcyB3aGVuIHRoZSBzaWduZWQgYXV0aGVudGljYXRpb24gbWVzc2FnZSBpcyBubyBsb25nZXIgdmFsaWQuICovXG4gICAgICBleHBpcmF0aW9uX3RpbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSVNPIDg2MDEgZGF0ZXRpbWUgc3RyaW5nIHRoYXQsIGlmIHByZXNlbnQsIGluZGljYXRlcyB3aGVuIHRoZSBzaWduZWQgYXV0aGVudGljYXRpb24gbWVzc2FnZSB3aWxsIGJlY29tZSB2YWxpZC4gKi9cbiAgICAgIG5vdF9iZWZvcmU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIHN5c3RlbS1zcGVjaWZpYyBpZGVudGlmaWVyIHRoYXQgbWF5IGJlIHVzZWQgdG8gdW5pcXVlbHkgcmVmZXIgdG8gdGhlIHNpZ24taW4gcmVxdWVzdC4gKi9cbiAgICAgIHJlcXVlc3RfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGxpc3Qgb2YgaW5mb3JtYXRpb24gb3IgcmVmZXJlbmNlcyB0byBpbmZvcm1hdGlvbiB0aGUgdXNlciB3aXNoZXMgdG8gaGF2ZSByZXNvbHZlZCBhcyBwYXJ0IG9mIGF1dGhlbnRpY2F0aW9uIGJ5IHRoZSByZWx5aW5nIHBhcnR5LiBUaGV5IGFyZSBleHByZXNzZWQgYXMgUkZDIDM5ODYgVVJJcyBzZXBhcmF0ZWQgYnkgXCJcXG4tIFwiIHdoZXJlIFxcbiBpcyB0aGUgYnl0ZSAweDBhLiAqL1xuICAgICAgcmVzb3VyY2VzPzogc3RyaW5nW107XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcmVhZGFibGUgQVNDSUkgYXNzZXJ0aW9uIHRoYXQgdGhlIHVzZXIgd2lsbCBzaWduLCBhbmQgaXQgbXVzdCBub3QgY29udGFpbiAnXFxuJyAodGhlIGJ5dGUgMHgwYSkuICovXG4gICAgICBzdGF0ZW1lbnQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBSRkMgMzk4NiBVUkkgcmVmZXJyaW5nIHRvIHRoZSByZXNvdXJjZSB0aGF0IGlzIHRoZSBzdWJqZWN0IG9mIHRoZSBzaWduaW5nIChhcyBpbiB0aGUgc3ViamVjdCBvZiBhIGNsYWltKS4gKi9cbiAgICAgIHVyaTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEEgY2hhbGxlbmdlIHJldHVybmVkIGluIHJlc3BvbnNlIHRvIGEgU2lnbi1JbiB3aXRoIEV0aGVyZXVtIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBDb250YWlucyBhIG1lc3NhZ2UgdGhhdCB0aGUgY2xpZW50IG11c3Qgc2lnbiBmb2xsb3dpbmcgRUlQLTE5MVxuICAgICAqIHdpdGggdGhlIHJlcXVlc3RlZCBrZXkgaW4gb3JkZXIgdG8gY29tcGxldGUgYXV0aGVudGljYXRpb24uXG4gICAgICpcbiAgICAgKiBUaGUgY2xpZW50IGhhcyB1bnRpbCB0aGUgbWVzc2FnZSBleHBpcmVzIChidXQgbm8gbW9yZSB0aGFuIDUgbWludXRlcykgdG8gY29tcGxldGUgdGhlIGNoYWxsZW5nZS5cbiAgICAgKi9cbiAgICBTaXdlSW5pdFJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgY2hhbGxlbmdlICh0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0IHdoZW4gY2FsbGluZyB0aGUgUEFUQ0ggKCdjb21wbGV0ZScpIGVuZHBvaW50KSAqL1xuICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtZXNzYWdlIHRvIHNpZ24gZm9sbG93aW5nIHRoZSBFSVAtMTkxIHN0YW5kYXJkLiAqL1xuICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBbnN3ZXIgdG8gYSBTaWduLWluIHdpdGggU29sYW5hIGNoYWxsZW5nZS4gKi9cbiAgICBTaXdzQ29tcGxldGVSZXF1ZXN0OiB7XG4gICAgICBjaGFsbGVuZ2VfaWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBiYXNlNTgtZW5jb2RlZCBlZDI1NTE5IHNpZ25hdHVyZSBvZiB0aGUgY2hhbGxlbmdlJ3MgY2Fub25pY2FsIG1lc3NhZ2UgdGV4dCAodGhlIHJlbmRlcmVkIGBTaWduSW5JbnB1dGApLiAqL1xuICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJldHVybmVkIHVwb24gYSBzdWNjZXNzZnVsIFNJV1MgYXV0aGVudGljYXRpb24uICovXG4gICAgU2l3c0NvbXBsZXRlUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIE9JREMgdG9rZW4gY29ycmVzcG9uZGluZyB0byB0aGUgdXNlciB3aXRoIHRoZSByZXF1ZXN0ZWQgU0lXUyBpZGVudGl0eS4gKi9cbiAgICAgIGlkX3Rva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZSB0aGUgcmVxdWVzdCB0byBzaWduIGluIHdpdGggU29sYW5hLiBUaGUgcmVzcG9uc2Ugd2lsbCBjb250YWluIGEgc3RydWN0dXJlZFxuICAgICAqIGBTaWduSW5JbnB1dGAgdGhhdCB0aGUgY2xpZW50IG11c3QgcmVuZGVyIHRvIHRleHQsIHNpZ24sIGFuZCBzdWJtaXQgdmlhIHRoZSBjb3JyZXNwb25kaW5nIFBBVENIXG4gICAgICogZW5kcG9pbnQgd2l0aGluIDUgbWludXRlcy5cbiAgICAgKi9cbiAgICBTaXdzSW5pdFJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGJhc2U1OC1lbmNvZGVkIFNvbGFuYSAoZWQyNTUxOSkgcHVibGljIGtleSBwZXJmb3JtaW5nIHRoZSBzaWduaW5nLiAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgY2hhaW5faWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNvbGFuYU5ldHdvcmtcIl0gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgUkZDIDM5ODYgYXV0aG9yaXR5IHRoYXQgaXMgcmVxdWVzdGluZyB0aGUgc2lnbmluZy4gKi9cbiAgICAgIGRvbWFpbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSVNPIDg2MDEgZGF0ZXRpbWUgc3RyaW5nIHRoYXQsIGlmIHByZXNlbnQsIGluZGljYXRlcyB3aGVuIHRoZSBzaWduZWQgYXV0aGVudGljYXRpb24gbWVzc2FnZSBpcyBubyBsb25nZXIgdmFsaWQuICovXG4gICAgICBleHBpcmF0aW9uX3RpbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSVNPIDg2MDEgZGF0ZXRpbWUgc3RyaW5nIHRoYXQsIGlmIHByZXNlbnQsIGluZGljYXRlcyB3aGVuIHRoZSBzaWduZWQgYXV0aGVudGljYXRpb24gbWVzc2FnZSB3aWxsIGJlY29tZSB2YWxpZC4gKi9cbiAgICAgIG5vdF9iZWZvcmU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIHN5c3RlbS1zcGVjaWZpYyBpZGVudGlmaWVyIHRoYXQgbWF5IGJlIHVzZWQgdG8gdW5pcXVlbHkgcmVmZXIgdG8gdGhlIHNpZ24taW4gcmVxdWVzdC4gKi9cbiAgICAgIHJlcXVlc3RfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGxpc3Qgb2YgUkZDIDM5ODYgVVJJcyB0aGUgdXNlciB3aXNoZXMgdG8gaGF2ZSByZXNvbHZlZCBhcyBwYXJ0IG9mIGF1dGhlbnRpY2F0aW9uIGJ5IHRoZSByZWx5aW5nIHBhcnR5LiAqL1xuICAgICAgcmVzb3VyY2VzPzogc3RyaW5nW107XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcmVhZGFibGUgQVNDSUkgYXNzZXJ0aW9uIHRoYXQgdGhlIHVzZXIgd2lsbCBzaWduLCBhbmQgaXQgbXVzdCBub3QgY29udGFpbiAnXFxuJyAodGhlIGJ5dGUgMHgwYSkuICovXG4gICAgICBzdGF0ZW1lbnQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBSRkMgMzk4NiBVUkkgcmVmZXJyaW5nIHRvIHRoZSByZXNvdXJjZSB0aGF0IGlzIHRoZSBzdWJqZWN0IG9mIHRoZSBzaWduaW5nIChhcyBpbiB0aGUgc3ViamVjdCBvZiBhIGNsYWltKS4gKi9cbiAgICAgIHVyaT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQSBjaGFsbGVuZ2UgcmV0dXJuZWQgaW4gcmVzcG9uc2UgdG8gYSBTaWduLUluIHdpdGggU29sYW5hIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBDb250YWlucyBhIHN0cnVjdHVyZWQgW1NpZ25JbklucHV0XSB0aGF0IHRoZSBjbGllbnQgbXVzdCByZW5kZXIgdG8gaXRzIGNhbm9uaWNhbCB0ZXh0IGFuZCBzaWduXG4gICAgICogKGVkMjU1MTkpIHdpdGggdGhlIHJlcXVlc3RlZCBrZXkgaW4gb3JkZXIgdG8gY29tcGxldGUgYXV0aGVudGljYXRpb24uXG4gICAgICpcbiAgICAgKiBUaGUgY2xpZW50IGhhcyB1bnRpbCB0aGUgbWVzc2FnZSBleHBpcmVzIChidXQgbm8gbW9yZSB0aGFuIDUgbWludXRlcykgdG8gY29tcGxldGUgdGhlIGNoYWxsZW5nZS5cbiAgICAgKi9cbiAgICBTaXdzSW5pdFJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgY2hhbGxlbmdlICh0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0IHdoZW4gY2FsbGluZyB0aGUgUEFUQ0ggKCdjb21wbGV0ZScpIGVuZHBvaW50KSAqL1xuICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgICBzaWduX2luX2lucHV0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNpZ25JbklucHV0XCJdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIFNvbGFuYSBhZGRyZXNzIGFuZCB0aGUgY2x1c3RlciBpdCBpcyBvbi4gKi9cbiAgICBTb2xhbmFBZGRyZXNzSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFNvbGFuYSBhZGRyZXNzLlxuICAgICAgICogQGV4YW1wbGUgRVB3NExzTndDWUNZWGFjZTFCS3Z3TGNkN29lWnpSaVlHdUdFNXpmUHZvUHlcbiAgICAgICAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgY2x1c3RlcjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTb2xhbmFDbHVzdGVyXCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFN1cHBvcnRlZCBTb2xhbmEgY2x1c3RlcnMuXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBTb2xhbmFDbHVzdGVyOiBcIm1haW5uZXRcIiB8IFwiZGV2bmV0XCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBTb2xhbmEgbmV0d29yayBhIFNJV1MgbWVzc2FnZSBpcyBib3VuZCB0byAodGhlIGBDaGFpbiBJRGAgZmllbGQpLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgU29sYW5hTmV0d29yazpcbiAgICAgIHwgXCJtYWlubmV0XCJcbiAgICAgIHwgXCJ0ZXN0bmV0XCJcbiAgICAgIHwgXCJkZXZuZXRcIlxuICAgICAgfCBcImxvY2FsbmV0XCJcbiAgICAgIHwgXCJzb2xhbmE6bWFpbm5ldFwiXG4gICAgICB8IFwic29sYW5hOnRlc3RuZXRcIlxuICAgICAgfCBcInNvbGFuYTpkZXZuZXRcIlxuICAgICAgfCBcInNvbGFuYTpsb2NhbG5ldFwiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTb2xhbmEgc2lnbmluZyByZXF1ZXN0XG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJtZXNzYWdlX2Jhc2U2NFwiOiBcIkFRQUJBOE9LVnpMRWpzdHN0TjR4WHIzOWtMS0hUOGQ1OGVRWTFRRXM2TWVYd0VGQnJ4VEFsVUxYMXRyb0xiV3h1QVhRcWdiUW9mR2k2ejhmSmk3S0FBSWY3WU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFKSzB0bjM5azI4cytYODZXNDdFdmJSUktuWUJWUThRL2wybTFFYmZUNyt2QVFJQ0FBRU1BZ0FBQUdRQUFBQUFBQUFBXCJcbiAgICAgKiB9XG4gICAgICovXG4gICAgU29sYW5hU2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTb2xhbmEgYmFzZTY0LWVuY29kZWQgc2VyaWFsaXplZCBNZXNzYWdlICovXG4gICAgICBtZXNzYWdlX2Jhc2U2NDogc3RyaW5nO1xuICAgIH07XG4gICAgU29sYW5hVHhDbXA6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgJ3JlY2VudF9ibG9ja2hhc2gnIHByb3BlcnR5IG9mIHRoZSBTb2xhbmEgdHJhbnNhY3Rpb24gaXMgYWxsb3dlZCB0byBiZSBkaWZmZXJlbnQuICovXG4gICAgICBpZ25vcmVfYmxvY2toYXNoPzogYm9vbGVhbjtcbiAgICB9O1xuICAgIFNvdXJjZUlwOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBJUCBhZGRyZXNzIG9mIHRoZSBjYWxsZXIuICovXG4gICAgICBzb3VyY2VfaXA6IHN0cmluZztcbiAgICB9O1xuICAgIFN0YWtlUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgY2hhaW4gb24gd2hpY2ggd2Ugd2lsbCBkZXBvc2l0XG4gICAgICAgKiBAZXhhbXBsZSA1XG4gICAgICAgKi9cbiAgICAgIGNoYWluX2lkOiBudW1iZXI7XG4gICAgICBkZXBvc2l0X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRGVwb3NpdFR5cGVcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBzdGFraW5nIGFtb3VudCBpbiBHV0VJLlxuICAgICAgICogSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gMzJfMDAwXzAwMF8wMDAgKDMyIEVUSCkuXG4gICAgICAgKiBNdXN0IGJlIGJldHdlZW4gMSBFVEggYW5kIDMyIEVUSC5cbiAgICAgICAqIE11c3Qgbm90IGJlIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gJ2RlcG9zaXRfdHlwZScgaXMgXCJXcmFwcGVyXCIuXG4gICAgICAgKi9cbiAgICAgIHN0YWtpbmdfYW1vdW50X2d3ZWk/OiBudW1iZXI7XG4gICAgICB1bnNhZmVfY29uZj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVW5zYWZlQ29uZlwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdmFsaWRhdG9yIEJMUyBwdWJsaWMga2V5IHRvIHVzZSwgb3IgYE5vbmVgIHRvIGdlbmVyYXRlIGEgZnJlc2ggb25lLlxuICAgICAgICogQGV4YW1wbGUgMHhhOTlhNzZlZDc3OTZmN2JlMjJkNWI3ZTg1ZGVlYjdjNTY3N2U4OGU1MTFlMGIzMzc2MThmOGM0ZWI2MTM0OWI0YmYyZDE1M2Y2NDlmN2I1MzM1OWZlOGI5NGEzOGU0NGNcbiAgICAgICAqL1xuICAgICAgdmFsaWRhdG9yX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZXRoZXJldW0gYWRkcmVzcyB0byB3aGljaCB3aXRoZHJhd24gZnVuZHMgZ29cbiAgICAgICAqIEBleGFtcGxlIDB4OGUzNDg0Njg3ZTY2Y2RkMjZjZjA0YzM2NDc2MzNhYjRmMzU3MDE0OFxuICAgICAgICovXG4gICAgICB3aXRoZHJhd2FsX2FkZHI6IHN0cmluZztcbiAgICB9O1xuICAgIFN0YWtlUmVzcG9uc2U6ICh7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgZGVwb3NpdF90eDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJEZXBvc2l0VHhuXCJdO1xuICAgIH0pICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHZhbGlkYXRvciBrZXkgaWQgKFwiS2V5Iy4uLlwiKVxuICAgICAgICogQGV4YW1wbGUgS2V5I2RiMTczMWY4LTM2NTktNDVjMC04ODViLWUxMWUxZjViN2JlMlxuICAgICAgICovXG4gICAgICBjcmVhdGVkX3ZhbGlkYXRvcl9rZXlfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZhbCBzdGF0ZSBmb3IgYSBbYE1mYVJlcXVlc3RgXSBpbiBbYE1mYVJlcXVlc3RTb3VyY2U6OkxlZ2FjeWBdIG1vZGU6XG4gICAgICogdGhlIHBlci1wb2xpY3kgW2BBcHByb3ZhbENvbnN0cmFpbnRzYF0gcGx1cyBhbiBpbmxpbmUgYGFwcHJvdmVkX2J5YCBtYXAuXG4gICAgICogUG9vbGVkIE1mYVJlcXVlc3RzIGNhcnJ5IG9ubHkgW2BBcHByb3ZhbENvbnN0cmFpbnRzYF0g4oCUIHRoZWlyIGFwcHJvdmFscyBsaXZlXG4gICAgICogb24gdGhlIGxpbmtlZCBbYFBlbmRpbmdPcGBdIOKAlCBzbyB0aGUgdHlwZSBzeXN0ZW0gZW5mb3JjZXMgXCJubyBwb29sZWRcbiAgICAgKiBNZmFSZXF1ZXN0IGhhcyBhbiBgYXBwcm92ZWRfYnlgLlwiXG4gICAgICovXG4gICAgU3RhdHVzOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFVzZXJzIHdobyBhcmUgYWxsb3dlZCB0byBhcHByb3ZlLiBNdXN0IGJlIG5vbi1lbXB0eS4gKi9cbiAgICAgIGFsbG93ZWRfYXBwcm92ZXJzOiBzdHJpbmdbXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsb3dlZCBhcHByb3ZhbCB0eXBlcy4gV2hlbiBvbWl0dGVkLCBkZWZhdWx0cyB0byBhbnkuICovXG4gICAgICBhbGxvd2VkX21mYV90eXBlcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhVHlwZVwiXVtdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIEhvdyBtYW55IHVzZXJzIG11c3QgYXBwcm92ZSAoZGVmYXVsdHMgdG8gMSkuXG4gICAgICAgKi9cbiAgICAgIGNvdW50OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBIb3cgbWFueSBhdXRoIGZhY3RvcnMgdG8gcmVxdWlyZSBwZXIgdXNlciAoZGVmYXVsdHMgdG8gMSkuXG4gICAgICAgKi9cbiAgICAgIG51bV9hdXRoX2ZhY3RvcnM6IG51bWJlcjtcbiAgICAgIHJlcXVlc3RfY29tcGFyZXI/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkh0dHBSZXF1ZXN0Q21wXCJdO1xuICAgIH0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFVzZXJzIHdobyBoYXZlIGFscmVhZHkgYXBwcm92ZWQuICovXG4gICAgICBhcHByb3ZlZF9ieToge1xuICAgICAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICAgICAgW2tleTogc3RyaW5nXTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBcHByb3ZhbEluZm9cIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBgc3RhdHVzYCBmaWVsZCBjYXJyaWVkIGJ5IFtgRW1wdHlgXSByZXNwb25zZXMuIEFsd2F5cyBzZXJpYWxpemVzIGFzIGBcIm9rXCJgLlxuICAgICAqXG4gICAgICogRW5kcG9pbnRzIHRoYXQgdXNlZCB0byByZXR1cm4gW2BFbXB0eWBdIGFuZCBub3cgcmV0dXJuIHNvbWV0aGluZyByaWNoZXIgbXVzdCBrZWVwIGVtaXR0aW5nXG4gICAgICogdGhpcyBmaWVsZCwgYmVjYXVzZSBnZW5lcmF0ZWQgY2xpZW50cyBiaW5kIFtgRW1wdHlgXSB0byBhIHN0cnVjdCB3aXRoIGEgKnJlcXVpcmVkKiBgc3RhdHVzYFxuICAgICAqIGFuZCB3b3VsZCBvdGhlcndpc2UgZmFpbCB0byBkZXNlcmlhbGl6ZSBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UuIFVzZSB0aGlzIHR5cGUgcmF0aGVyIHRoYW4gYVxuICAgICAqIGJhcmUgYFN0cmluZ2Agc28gdGhlIG9uZSBhY2NlcHRhYmxlIHZhbHVlIGlzIG5vdCBzb21ldGhpbmcgYW55b25lIGhhcyB0byByZW1lbWJlci5cbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIFN0YXR1c09rOiBcIm9rXCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEEgc2luZ2xlIGFzc2V0IGJhbGFuY2UgZW50cnkgcmV0dXJuZWQgYnkgW2BTdWJBY2NvdW50QXNzZXRzUmVzcG9uc2VgXS5cbiAgICAgKlxuICAgICAqIEFsbCBiYWxhbmNlIGZpZWxkcyBhcmUgZGVjaW1hbCBzdHJpbmdzIChCaW5hbmNlIHByZXNlcnZlcyBwcmVjaXNpb24gYnkgbm90XG4gICAgICogY29udmVydGluZyB0byBmbG9hdHMpLlxuICAgICAqL1xuICAgIFN1YkFjY291bnRBc3NldDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBc3NldCBzeW1ib2wgKGUuZy4gYFwiVVNEVFwiYCwgYFwiQlRDXCJgKS4gKi9cbiAgICAgIGFzc2V0OiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEF2YWlsYWJsZSBiYWxhbmNlLiAqL1xuICAgICAgZnJlZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYWxhbmNlIGZyb3plbiBieSBCaW5hbmNlIChlLmcuIGR1ZSB0byBjb21wbGlhbmNlIGhvbGRzKS4gKi9cbiAgICAgIGZyZWV6ZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYWxhbmNlIGxvY2tlZCBpbiBvcGVuIG9yZGVycy4gKi9cbiAgICAgIGxvY2tlZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYWxhbmNlIGN1cnJlbnRseSBiZWluZyB3aXRoZHJhd24uICovXG4gICAgICB3aXRoZHJhd2luZzogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIGBHRVQgL3NhcGkvdjQvc3ViLWFjY291bnQvYXNzZXRzYC5cbiAgICAgKlxuICAgICAqIFF1ZXJpZXMgdGhlIHNwb3Qtd2FsbGV0IGJhbGFuY2VzIG9mIGEgc2luZ2xlIHN1Yi1hY2NvdW50LiBNdXN0IGJlIGNhbGxlZCBieVxuICAgICAqIGEgbWFzdGVyLWFjY291bnQgY3JlZGVudGlhbC5cbiAgICAgKi9cbiAgICBTdWJBY2NvdW50QXNzZXRzUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBFbWFpbCBhZGRyZXNzIG9mIHRoZSBzdWItYWNjb3VudCB3aG9zZSBiYWxhbmNlcyB0byBmZXRjaC4gKi9cbiAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19iaW5hbmNlU3ViQWNjb3VudEFzc2V0c2AuICovXG4gICAgU3ViQWNjb3VudEFzc2V0c1Jlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPbmUgZW50cnkgcGVyIGFzc2V0IGhlbGQgaW4gdGhlIHN1Yi1hY2NvdW50J3Mgc3BvdCB3YWxsZXQuIEJpbmFuY2VcbiAgICAgICAqIG9taXRzIGFzc2V0cyB3aXRoIGFsbC16ZXJvIGJhbGFuY2VzLlxuICAgICAgICovXG4gICAgICBiYWxhbmNlczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdWJBY2NvdW50QXNzZXRcIl1bXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgR0VUIC9zYXBpL3YxL2NhcGl0YWwvZGVwb3NpdC9zdWJBZGRyZXNzYC5cbiAgICAgKlxuICAgICAqIEZldGNoZXMgdGhlIGRlcG9zaXQgYWRkcmVzcyBmb3IgYGNvaW5gIG9uIHRoZSBzdWItYWNjb3VudCBpZGVudGlmaWVkIGJ5XG4gICAgICogYGVtYWlsYC4gTWFzdGVyLWFjY291bnQga2V5cyBvbmx5OyB1c2UgW2BEZXBvc2l0UmVxdWVzdGBdIGZvciB0aGUgY2FsbGluZ1xuICAgICAqIGFjY291bnQncyBvd24gYWRkcmVzcy5cbiAgICAgKi9cbiAgICBTdWJBY2NvdW50RGVwb3NpdEFkZHJlc3NSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1aXJlZCBvbmx5IHdoZW4gYG5ldHdvcmtgIGlzIGBcIkxJR0hUTklOR1wiYDogdGhlIGRlcG9zaXQgYW1vdW50IHRoYXRcbiAgICAgICAqIHRoZSByZXR1cm5lZCBpbnZvaWNlIHNob3VsZCBlbmNvZGUsIGFzIGEgZGVjaW1hbCBzdHJpbmcuXG4gICAgICAgKi9cbiAgICAgIGFtb3VudD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBhc3NldCBzeW1ib2wgd2hvc2UgZGVwb3NpdCBhZGRyZXNzIHRvIGZldGNoIChlLmcuIGBcIlVTRFRcImAsIGBcIkJUQ1wiYCkuICovXG4gICAgICBjb2luOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEVtYWlsIG9mIHRoZSBzdWItYWNjb3VudCB3aG9zZSBkZXBvc2l0IGFkZHJlc3MgdG8gZmV0Y2guICovXG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gTmV0d29yayBpZGVudGlmaWVyIChlLmcuIGBcIkJTQ1wiYCwgYFwiRVRIXCJgKS4gSWYgb21pdHRlZCwgQmluYW5jZSByZXR1cm5zXG4gICAgICAgKiB0aGUgYWRkcmVzcyBvbiB0aGUgYXNzZXQncyBkZWZhdWx0IG5ldHdvcmsuIFZhbGlkIHZhbHVlcyBhcmUgdGhlXG4gICAgICAgKiBuZXR3b3JrcyBsaXN0ZWQgYnkgW2BCaW5hbmNlUnBjOjpDb2luSW5mb2BdLlxuICAgICAgICovXG4gICAgICBuZXR3b3JrPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCBieSBgY3NfYmluYW5jZVN1YkFjY291bnREZXBvc2l0QWRkcmVzc2AuXG4gICAgICpcbiAgICAgKiBTYW1lIHNoYXBlIGFzIFtgRGVwb3NpdFJlc3BvbnNlYF0sIGJ1dCBrZXB0IGFzIGEgZGlzdGluY3QgdHlwZTogYHRhZ2AvYHVybGBcbiAgICAgKiBhcmUgbW9kZWxsZWQgYXMgb3B0aW9uYWwgaGVyZSwgYW5kIFtgY3JhdGU6OnJlc3BvbnNlOjpKc29uUnBjUmVzdWx0YF0gaXNcbiAgICAgKiBgdW50YWdnZWRgICsgYGRlcml2ZV9tb3JlOjpGcm9tYCwgc28gdHdvIHZhcmlhbnRzIGNhbm5vdCBzaGFyZSBhIHBheWxvYWRcbiAgICAgKiB0eXBlLlxuICAgICAqL1xuICAgIFN1YkFjY291bnREZXBvc2l0QWRkcmVzc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzdWItYWNjb3VudCdzIGRlcG9zaXQgYWRkcmVzcy4gKi9cbiAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXNzZXQgc3ltYm9sIChlY2hvZXMgdGhlIHJlcXVlc3QncyBgY29pbmAgZmllbGQpLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gU2Vjb25kYXJ5IGFkZHJlc3MgaWRlbnRpZmllciByZXF1aXJlZCBieSBzb21lIGFzc2V0cyAoZS5nLiBtZW1vIGZvclxuICAgICAgICogWFJQLCB0YWcgZm9yIFhMTSkuIEVtcHR5IHN0cmluZyB3aGVuIHRoZSBhc3NldCBkb2VzIG5vdCB1c2Ugb25lLlxuICAgICAgICovXG4gICAgICB0YWc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCbG9ja2NoYWluIGV4cGxvcmVyIFVSTCBmb3IgYGFkZHJlc3NgLiAqL1xuICAgICAgdXJsPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT25lIHN1Yi1hY2NvdW50IGVudHJ5IGluIFtgTGlzdFN1YkFjY291bnRzUmVzcG9uc2VgXS4gKi9cbiAgICBTdWJBY2NvdW50SW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gU3ViLWFjY291bnQgY3JlYXRpb24gdGltZSAobXMgc2luY2UgZXBvY2gpLlxuICAgICAgICovXG4gICAgICBjcmVhdGVUaW1lOiBudW1iZXI7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFN1Yi1hY2NvdW50IGVtYWlsLiAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gYHRydWVgIGlmIHRoaXMgaXMgYW4gYXNzZXQtbWFuYWdlbWVudCBzdWItYWNjb3VudC4gKi9cbiAgICAgIGlzQXNzZXRNYW5hZ2VtZW50U3ViQWNjb3VudDogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgc3ViLWFjY291bnQgaXMgY3VycmVudGx5IGZyb3plbi4gKi9cbiAgICAgIGlzRnJlZXplOiBib29sZWFuO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBgdHJ1ZWAgaWYgdGhpcyBpcyBhIG1hbmFnZWQgc3ViLWFjY291bnQuICovXG4gICAgICBpc01hbmFnZWRTdWJBY2NvdW50OiBib29sZWFuO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgdHJhbnNmZXIgZW50cnkgaW4gW2BTdWJBY2NvdW50VHJhbnNmZXJIaXN0b3J5UmVzcG9uc2VgXS4gKi9cbiAgICBTdWJBY2NvdW50VHJhbnNmZXJIaXN0b3J5RW50cnk6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXNzZXQgc3ltYm9sIChlLmcuIGBcIlVTRFRcImApLiAqL1xuICAgICAgYXNzZXQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRW1haWwgb2YgdGhlIGNvdW50ZXJwYXJ0eSBhY2NvdW50IG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSB0cmFuc2Zlci4gKi9cbiAgICAgIGNvdW50ZXJQYXJ0eTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRW1haWwgb2YgdGhlIGFjY291bnQgdGhpcyBlbnRyeSdzIEFQSSBrZXkgYXV0aGVudGljYXRlcyBhcy4gQmluYW5jZVxuICAgICAgICogcmV0dXJucyB0aGlzIG9uIGVhY2ggcm93IGV2ZW4gdGhvdWdoIGl0IGlzIHRoZSBzYW1lIGZvciB0aGUgd2hvbGUgcGFnZS5cbiAgICAgICAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFdhbGxldCB0eXBlIGRlYml0ZWQgb24gdGhlIHNvdXJjZSBzaWRlIChlLmcuIGBcIlNQT1RcImAsXG4gICAgICAgKiBgXCJVU0RUX0ZVVFVSRVwiYCkuIExlZnQgYXMgYFN0cmluZ2AgZm9yIGZvcndhcmQgY29tcGF0aWJpbGl0eS5cbiAgICAgICAqL1xuICAgICAgZnJvbUFjY291bnRUeXBlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFtb3VudCB0cmFuc2ZlcnJlZCwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIHF0eTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVHJhbnNmZXIgc3RhdHVzOiBgXCJQUk9DRVNTXCJgLCBgXCJTVUNDRVNTXCJgLCBvciBgXCJGQUlMVVJFXCJgLiBMZWZ0IGFzXG4gICAgICAgKiBgU3RyaW5nYCBmb3IgZm9yd2FyZCBjb21wYXRpYmlsaXR5LlxuICAgICAgICovXG4gICAgICBzdGF0dXM6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRpbWUgb2YgdGhlIHRyYW5zZmVyIChtcyBzaW5jZSBlcG9jaCkuXG4gICAgICAgKi9cbiAgICAgIHRpbWU6IG51bWJlcjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2FsbGV0IHR5cGUgY3JlZGl0ZWQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUuICovXG4gICAgICB0b0FjY291bnRUeXBlOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUcmFuc2ZlciBpZC4gTWF0Y2hlcyB0aGUgYHR4bklkYCByZXR1cm5lZCBieSB0aGUgb3JpZ2luYWxcbiAgICAgICAqIFtgU3ViQWNjb3VudFRyYW5zZmVyUmVzcG9uc2VgXS5cbiAgICAgICAqL1xuICAgICAgdHJhbklkOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBgMWAgPSB0cmFuc2ZlciBpbiwgYDJgID0gdHJhbnNmZXIgb3V0LlxuICAgICAgICovXG4gICAgICB0eXBlOiBudW1iZXI7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYEdFVCAvc2FwaS92MS9zdWItYWNjb3VudC90cmFuc2Zlci9zdWJVc2VySGlzdG9yeWAuXG4gICAgICpcbiAgICAgKiBMaXN0cyB0aGUgdHJhbnNmZXIgaGlzdG9yeSBvZiB0aGUgY2FsbGluZyBzdWItYWNjb3VudC4gQ292ZXJzIGJvdGhcbiAgICAgKiBzdWItdG8tbWFzdGVyIGFuZCBzdWItdG8tc3ViIHRyYW5zZmVycy4gQWxsIGZpbHRlcnMgYXJlIG9wdGlvbmFsOyBpZlxuICAgICAqIGBzdGFydF90aW1lYC9gZW5kX3RpbWVgIGFyZSBvbWl0dGVkLCBCaW5hbmNlIHJldHVybnMgdGhlIG1vc3QgcmVjZW50IDMwXG4gICAgICogZGF5cy4gSWYgYHIjdHlwZWAgaXMgb21pdHRlZCwgQmluYW5jZSBkZWZhdWx0cyB0byBgVHJhbnNmZXJPdXRgIChgMmApLlxuICAgICAqL1xuICAgIFN1YkFjY291bnRUcmFuc2Zlckhpc3RvcnlSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZpbHRlciB0byBhIHNwZWNpZmljIGFzc2V0IChlLmcuIGBcIlVTRFRcImApLiAqL1xuICAgICAgYXNzZXQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2luZG93IGVuZCAobXMgc2luY2UgZXBvY2gpLlxuICAgICAgICovXG4gICAgICBlbmRUaW1lPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFBhZ2Ugc2l6ZSAoQmluYW5jZSBkZWZhdWx0OiA1MDApLlxuICAgICAgICovXG4gICAgICBsaW1pdD86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBgdHJ1ZWAsIGluY2x1ZGUgZmFpbGVkIHRyYW5zZmVycyBpbiB0aGUgcmVzcG9uc2UuIEJpbmFuY2UgZGVmYXVsdHNcbiAgICAgICAqIHRvIGBmYWxzZWAuXG4gICAgICAgKi9cbiAgICAgIHJldHVybkZhaWxIaXN0b3J5PzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXaW5kb3cgc3RhcnQgKG1zIHNpbmNlIGVwb2NoKS5cbiAgICAgICAqL1xuICAgICAgc3RhcnRUaW1lPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIERpcmVjdGlvbiBmaWx0ZXIgKGAxYCA9IHRyYW5zZmVyIGluLCBgMmAgPSB0cmFuc2ZlciBvdXQpLlxuICAgICAgICovXG4gICAgICB0eXBlPzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCBieSBgY3NfYmluYW5jZVN1YkFjY291bnRUcmFuc2Zlckhpc3RvcnlgLlxuICAgICAqXG4gICAgICogQmluYW5jZSByZXR1cm5zIGEgdG9wLWxldmVsIEpTT04gYXJyYXk7IHRoaXMgbmV3dHlwZSBwcmVzZXJ2ZXMgdGhhdCB3aXJlXG4gICAgICogZm9ybWF0IHdoaWxlIGdpdmluZyB0aGUgcmVzcG9uc2UgYSBuYW1lZCB0eXBlIGluIHRoZSBPcGVuQVBJIHNjaGVtYS5cbiAgICAgKi9cbiAgICBTdWJBY2NvdW50VHJhbnNmZXJIaXN0b3J5UmVzcG9uc2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3ViQWNjb3VudFRyYW5zZmVySGlzdG9yeUVudHJ5XCJdW107XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCBieSBgY3NfYmluYW5jZVN1YlRvTWFzdGVyYCBhbmQgYGNzX2JpbmFuY2VTdWJUb1N1YmAuICovXG4gICAgU3ViQWNjb3VudFRyYW5zZmVyUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBGb3JtYXQ6IGludDY0ICovXG4gICAgICB0eG5JZDogbnVtYmVyO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIGBQT1NUIC9zYXBpL3YxL3N1Yi1hY2NvdW50L3RyYW5zZmVyL3N1YlRvTWFzdGVyYC5cbiAgICAgKlxuICAgICAqIFRyYW5zZmVycyBhbiBhc3NldCBmcm9tIHRoZSBjYWxsZXIncyBzdWItYWNjb3VudCB0byB0aGUgbWFzdGVyIGFjY291bnQuXG4gICAgICovXG4gICAgU3ViVG9NYXN0ZXJSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgYW1vdW50IGJlaW5nIHRyYW5zZmVycmVkLCBmb3JtYXR0ZWQgYXMgYSBkZWNpbWFsIHN0cmluZyAoZS5nLiBgXCIwLjFcImApLlxuICAgICAgICogU2VudCB2ZXJiYXRpbTogQmluYW5jZSBpcyBzdHJpY3QgYWJvdXQgZGVjaW1hbCBmb3JtYXR0aW5nLlxuICAgICAgICovXG4gICAgICBhbW91bnQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGFzc2V0IHN5bWJvbCBiZWluZyB0cmFuc2ZlcnJlZCAoZS5nLiBgXCJVU0RUXCJgLCBgXCJCVENcImApLiAqL1xuICAgICAgYXNzZXQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgUE9TVCAvc2FwaS92MS9zdWItYWNjb3VudC90cmFuc2Zlci9zdWJUb1N1YmAuXG4gICAgICpcbiAgICAgKiBUcmFuc2ZlcnMgYW4gYXNzZXQgZnJvbSB0aGUgY2FsbGVyJ3Mgc3ViLWFjY291bnQgdG8gYW5vdGhlciBzdWItYWNjb3VudFxuICAgICAqIHVuZGVyIHRoZSBzYW1lIG1hc3RlciBhY2NvdW50LlxuICAgICAqL1xuICAgIFN1YlRvU3ViUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYW1vdW50IGJlaW5nIHRyYW5zZmVycmVkLCBhcyBhIGRlY2ltYWwgc3RyaW5nIChlLmcuIGBcIjAuMVwiYCkuICovXG4gICAgICBhbW91bnQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGFzc2V0IHN5bWJvbCBiZWluZyB0cmFuc2ZlcnJlZCAoZS5nLiBgXCJVU0RUXCJgKS4gKi9cbiAgICAgIGFzc2V0OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBFbWFpbCBhZGRyZXNzIG9mIHRoZSBkZXN0aW5hdGlvbiBzdWItYWNjb3VudC4gTXVzdCBiZSBhIHN1Yi1hY2NvdW50IG9mXG4gICAgICAgKiB0aGUgc2FtZSBtYXN0ZXIuXG4gICAgICAgKi9cbiAgICAgIHRvRW1haWw6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhdHVzIG9mIGEgc3Vic2NyaXB0aW9uXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBTdWJzY3JpcHRpb25TdGF0dXM6IFwiQ29uZmlybWVkXCIgfCBcIlBlbmRpbmdcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgU3VpIGFkZHJlc3MgYW5kIGl0cyBjaGFpbi4gKi9cbiAgICBTdWlBZGRyZXNzSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFN1aSBhZGRyZXNzLlxuICAgICAgICogQGV4YW1wbGUgMHg0ZTg3MTJlMzhiMDliNTQ2N2MxMGZkYzQwZmE3ODY1YTY1NTYzOTgzZWViNzRiMjQ2ZGY5ODFlNjFhNjZiOThkXG4gICAgICAgKi9cbiAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgIGNoYWluOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN1aUNoYWluXCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFN1cHBvcnRlZCBTdWkgY2hhaW5zLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgU3VpQ2hhaW46IFwibWFpbm5ldFwiIHwgXCJkZXZuZXRcIiB8IFwidGVzdG5ldFwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVxdWVzdCB0byBzaWduIGEgc2VyaWFsaXplZCBTVUkgdHJhbnNhY3Rpb24gKi9cbiAgICBTdWlTaWduUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBCYXNlNjQtZW5jb2Rpbmcgb2YgYSBCQ1Mtc2VyaWFsaXplZCBTVUkgdHJhbnNhY3Rpb24uXG4gICAgICAgKlxuICAgICAgICogV2hlbiB1c2luZyB0aGUgU1VJIFR5cGVTY3JpcHQgU0RLLCB0aGVzZSBieXRlc1xuICAgICAgICogYXJlIHJldHVybmVkIGJ5IHRoZSBgVHJhbnNhY3Rpb24uYnVpbGQoKWAgbWV0aG9kLlxuICAgICAgICovXG4gICAgICB0eDogc3RyaW5nO1xuICAgIH07XG4gICAgVGFwcm9vdFNpZ25SZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERvIG5vdCBwcm9kdWNlIGEgdmFsaWQgc2lnbmF0dXJlLCBqdXN0IGV2YWx1YXRlIGF0dGFjaGVkIHBvbGljaWVzLiAqL1xuICAgICAgZHJ5X3J1bj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3BvbnNlLCBleHBsYWluaW5nXG4gICAgICAgKiB0aGUgb3V0Y29tZSAoaS5lLiwgcGVybWl0dGVkIHZzLiBkZW5pZWQgdnMuIE1GQSByZXF1aXJlZCkgb2YgdGhlIHNpZ24gcmVxdWVzdC5cbiAgICAgICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBleHBsYWluPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIE1GQSBpcyByZXF1aXJlZCwgZmFpbCB0aGUgcmVxdWVzdCBpbnN0ZWFkIG9mIHJldHVybmluZyAyMDIgYW5kIGNyZWF0aW5nXG4gICAgICAgKiBwZW5kaW5nIE1GQSByZXF1ZXN0LiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZmFpbF9vbl9tZmE/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbWV0YWRhdGEuIFBhc3NpbmcgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhcyBtZXRhZGF0YSBjYW4gYmUgdXNlZCB0byBtYWtlIHJldmlld2luZ1xuICAgICAgICogb2YgcGVuZGluZyBNRkEgcmVxdWVzdHMgYW5kL29yIGhpc3RvcmljYWwga2V5IHRyYW5zYWN0aW9ucyBtb3JlIHRyYW5zcGFyZW50LiBJdCBjYW4gYWxzbyBiZSB1c2VkIGUuZy4sIHRvIGNhcnJ5IGFkZGl0aW9uYWwgZGF0YSB0byBXZWJIb29rIHBvbGljaWVzLlxuICAgICAgICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgfSAmIHtcbiAgICAgIHNpZ19raW5kOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRhcHJvb3RTaWduYXR1cmVLaW5kXCJdO1xuICAgICAgdHg6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjVHhcIl07XG4gICAgfTtcbiAgICBUYXByb290U2lnbmF0dXJlS2luZDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBhbm5leCwgYXMgcGVyIEJJUDM0MSAqL1xuICAgICAgYW5uZXg/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVHJhbnNhY3Rpb24gaW5wdXQgaW5kZXhcbiAgICAgICAqIEBleGFtcGxlIDBcbiAgICAgICAqL1xuICAgICAgaW5wdXRfaW5kZXg6IG51bWJlcjtcbiAgICAgIGxlYWZfaGFzaF9jb2RlX3NlcGFyYXRvcj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjTGVhZkhhc2hDb2RlU2VwYXJhdG9yXCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHRoaXMgZmllbGQgaXMgbm90IHByZXNlbnQgb3IgbnVsbCwgbm8gdHdlYWsgaXMgYXBwbGllZC4gSWYgdGhlIGZpZWxkIGlzIGFuXG4gICAgICAgKiBlbXB0eSBzdHJpbmcsIHRoZSBrZXkgaXMgdHdlYWtlZCB3aXRoIGFuIHVuc3BlbmRhYmxlIHNjcmlwdCBwYXRoIHBlciBCSVAwMzQxLlxuICAgICAgICogT3RoZXJ3aXNlLCB0aGlzIGZpZWxkIG11c3QgY29udGFpbiBhIGJhc2UtNjQgc3RyaW5nIGVuY29kaW5nIDMyIGJ5dGVzIHRoYXRcbiAgICAgICAqIHJlcHJlc2VudCB0aGUgTWVya2xlIHJvb3Qgd2l0aCB3aGljaCB0byB0d2VhayB0aGUga2V5IGJlZm9yZSBzaWduaW5nLlxuICAgICAgICogQGV4YW1wbGUgRjQxSEF5MnE1R244bGFGMkN1TXNaYlJBUVRtRCs0T2IzVlVNWjdUQkdLND1cbiAgICAgICAqL1xuICAgICAgbWVya2xlX3Jvb3Q/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgcHJldm91dHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHJldk91dHB1dHNcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBIYXNoIHR5cGUgb2YgYW4gaW5wdXQncyBzaWduYXR1cmUsIGVuY29kZWQgaW4gdGhlIGxhc3QgYnl0ZSBvZiB0aGUgc2lnbmF0dXJlLlxuICAgICAgICogUG9zc2libGUgdmFsdWVzOlxuICAgICAgICogLSBTSUdIQVNIX0FMTFxuICAgICAgICogLSBTSUdIQVNIX0FMTHxTSUdIQVNIX0FOWU9ORUNBTlBBWVxuICAgICAgICogLSBTSUdIQVNIX0RFRkFVTFRcbiAgICAgICAqIC0gU0lHSEFTSF9OT05FXG4gICAgICAgKiAtIFNJR0hBU0hfTk9ORXxTSUdIQVNIX0FOWU9ORUNBTlBBWVxuICAgICAgICogLSBTSUdIQVNIX1NJTkdMRVxuICAgICAgICogLSBTSUdIQVNIX1NJTkdMRXxTSUdIQVNIX0FOWU9ORUNBTlBBWVxuICAgICAgICogQGV4YW1wbGUgU0lHSEFTSF9BTExcbiAgICAgICAqL1xuICAgICAgc2lnaGFzaF90eXBlOiBzdHJpbmc7XG4gICAgfTtcbiAgICBUZWxlZ3JhbUF1dGhSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB0ZWxlZ3JhbSBib3QgSUQgKi9cbiAgICAgIGJvdF9pZDogc3RyaW5nO1xuICAgICAgZW52aXJvbm1lbnQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVGVsZWdyYW1FbnZpcm9ubWVudFwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHRlbGVncmFtIHdlYmFwcCBkYXRhIChmb3VuZCBpbiB0aGUgYHRnV2ViQXBwRGF0YWAgcGFyYW1ldGVyIGVuY29kZWQgaW4gdGhlIGhhc2ggc2VjdGlvbiBvZiB0aGUgVVJMKSAqL1xuICAgICAgdGdfd2ViX2FwcF9kYXRhOiBzdHJpbmc7XG4gICAgfTtcbiAgICBUZWxlZ3JhbUF1dGhSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgT0lEQyB0b2tlbiBjb3JyZXNwb25kaW5nIHRvIHRoaXMgdGVsZWdyYW0gdXNlciAqL1xuICAgICAgaWRfdG9rZW46IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUZWxlZ3JhbSBoYXMgdHdvIGVudmlyb25tZW50czogcHJvZHVjdGlvbiBhbmQgdGVzdFxuICAgICAqIEVhY2ggb25lIGhhcyBhbiBhc3NvY2lhdGVkIHB1YmxpYyBrZXkgZm9yIHZlcmlmeWluZyBzaWduYXR1cmVzLFxuICAgICAqIGFuZCB3ZSBhc3NpZ24gZWFjaCBvbmUgYSB1bmlxdWUgT0lEQyBpc3N1ZXJcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIFRlbGVncmFtRW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiIHwgXCJ0ZXN0XCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVxdWVzdCBmb3IgdXNpbmcgdGhlIFRlbmRlcm1pbnQgc2lnbiBlbmRwb2ludC4gKi9cbiAgICBUZW5kZXJtaW50U2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYnl0ZXMgb2YgdGhlIHByb3RvYnVmLWVuY29kZWQgbWVzc2FnZSB0byBzaWduIGFzIGEgQkFTRTY0IHN0cmluZy4gKi9cbiAgICAgIG1lc3NhZ2VfYmFzZTY0OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBhIHRocm90dGxlIHdoaWNoIGxpbWl0cyB0aGUgbnVtYmVyIG9mIGVudGl0aWVzIHdpdGhpbiBhIGdpdmVuIHRpbWUgd2luZG93ICovXG4gICAgVGhyb3R0bGVDb25maWc6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBudW1iZXIgb2YgZW50aXRpZXMgYWxsb3dlZCB3aXRoaW4gdGhlIHdpbmRvd1xuICAgICAgICovXG4gICAgICB0aHJlc2hvbGQ6IG51bWJlcjtcbiAgICAgIHdpbmRvdzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNvbmRzXCJdO1xuICAgIH07XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgVGltZW91dEVycm9yQ29kZTogXCJQb2xpY3lFbmdpbmVUaW1lb3V0XCIgfCBcIldhc21Qb2xpY3lFeGVjdXRpb25UaW1lb3V0XCI7XG4gICAgVG9rZW5SZXF1ZXN0OiB7XG4gICAgICBncmFudF90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJlZnJlc2hHcmFudFR5cGVcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZWZyZXNoIHRva2VuIGlzc3VlZCB0byB0aGUgY2xpZW50LiAqL1xuICAgICAgcmVmcmVzaF90b2tlbjogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIE9BdXRoMiBzdGFuZGFyZCBUb2tlbiBSZXNwb25zZS5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTQuMi4yXG4gICAgICovXG4gICAgVG9rZW5SZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYWNjZXNzIHRva2VuIGlzc3VlZCBieSB0aGUgYXV0aG9yaXphdGlvbiBzZXJ2ZXIuICovXG4gICAgICBhY2Nlc3NfdG9rZW46IHN0cmluZztcbiAgICAgIGV4cGlyZXNfaW46IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kc1wiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gT0lEQyB0b2tlbiBpc3N1ZWQgYnkgQ3ViaXN0LCBjb250YWluaW5nIHVzZXIgaW5mb3JtYXRpb24gKi9cbiAgICAgIGlkX3Rva2VuPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlZnJlc2ggdG9rZW4gaXNzdWVkIGJ5IHRoZSBhdXRob3JpemF0aW9uIHNlcnZlci4gKi9cbiAgICAgIHJlZnJlc2hfdG9rZW4/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgdHlwZSBvZiB0aGUgdG9rZW4gaXNzdWVkLiBWYWx1ZSBpcyBjYXNlIGluc2Vuc2l0aXZlLiAqL1xuICAgICAgdG9rZW5fdHlwZTogc3RyaW5nO1xuICAgICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgICB9ICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIFRvdHBBcHByb3ZlUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUT1RQIHZlcmlmaWNhdGlvbiBjb2RlICovXG4gICAgICBjb2RlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFNlbnQgZnJvbSB0aGUgY2xpZW50IHRvIHRoZSBzZXJ2ZXIgdG8gYW5zd2VyIGEgVE9UUCBjaGFsbGVuZ2UgKi9cbiAgICBUb3RwQ2hhbGxlbmdlQW5zd2VyOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBjdXJyZW50IFRPVFAgY29kZSAqL1xuICAgICAgY29kZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIGNoYWxsZW5nZSB0aGF0IHdhcyByZXR1cm5lZCBmcm9tIHRoZSBQT1NUIGVuZHBvaW50ICovXG4gICAgICB0b3RwX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBUb3RwSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBUT1RQIGNoYWxsZW5nZS5cbiAgICAgICAqIEBleGFtcGxlIFRvdHBDaGFsbGVuZ2UjNzg5MmViYmEtNTYzZS00ODViLWJiN2QtZTI2MjY3MzYzMjg2XG4gICAgICAgKi9cbiAgICAgIHRvdHBfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFN0YW5kYXJkIFRPVFAgdXJsIHdoaWNoIGluY2x1ZGVzIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvIGluaXRpYWxpemUgVE9UUC5cbiAgICAgICAqIEBleGFtcGxlIG90cGF1dGg6Ly90b3RwL0N1YmlzdDphbGljZS0lNDBleGFtcGxlLmNvbT9zZWNyZXQ9REFIRjdLQ09UUVdTT01LNFhGRU1OSFhPNEo0MzNPRDcmaXNzdWVyPUN1YmlzdFxuICAgICAgICovXG4gICAgICB0b3RwX3VybDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXN1bHQgb2YgcmVnaXN0ZXJpbmcgKHJlc2V0dGluZykgVE9UUCAqL1xuICAgIFRvdHBSZWdpc3RlclJlc3BvbnNlOiB7XG4gICAgICBtZmE/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN0YXR1c09rXCJdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IHRvIHJlc2V0IFRPVFAuICovXG4gICAgVG90cFJlc2V0UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29kZSBhbnN3ZXJpbmcgdGhpcyBjaGFsbGVuZ2UgYWRkaXRpb25hbGx5IGNvdW50cyBhcyBhbiBhcHByb3Zpbmcgdm90ZSBvblxuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdCBgbWZhX2lkYC5cbiAgICAgICAqXG4gICAgICAgKiBUaGlzIGV4aXN0cyBzbyB0aGF0IGEgdXNlciB3aG8gbXVzdCByZWdpc3RlciB0aGVpciBmaXJzdCBzZWNvbmQgZmFjdG9yIGluIG9yZGVyIHRvIGNvbXBsZXRlXG4gICAgICAgKiBhbiBvcGVyYXRpb24gKG1vc3QgY29tbW9ubHkgbG9nZ2luZyBpbikgZG9lcyBub3QgaGF2ZSB0byBlbnRlciB0d28gVE9UUCBjb2RlcyBiYWNrIHRvIGJhY2s6XG4gICAgICAgKiBvbmUgdG8gY29uZmlybSBlbnJvbGxtZW50IGFuZCBhbm90aGVyIHRvIGltbWVkaWF0ZWx5IGFwcHJvdmUgdGhlIHBlbmRpbmcgcmVxdWVzdC4gQW5zd2VyaW5nXG4gICAgICAgKiB0aGUgY2hhbGxlbmdlIGFscmVhZHkgcHJvdmVzIHBvc3Nlc3Npb24gb2YgdGhlIG5ldyBzZWNyZXQuXG4gICAgICAgKlxuICAgICAgICogUmVxdWlyZXMgdGhlICdtYW5hZ2U6bWZhOnZvdGU6dG90cCcgc2NvcGUgaW4gYWRkaXRpb24gdG8gJ21hbmFnZTptZmE6cmVnaXN0ZXI6dG90cCcuXG4gICAgICAgKi9cbiAgICAgIGFwcHJvdmVfbWZhPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5hbWUgb2YgdGhlIGlzc3VlcjsgZGVmYXVsdHMgdG8gXCJDdWJpc3RcIi4gKi9cbiAgICAgIGlzc3Vlcj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICBUcmFuc2FjdGlvbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUeXBlZFRyYW5zYWN0aW9uXCJdO1xuICAgIFRyYW5zYWN0aW9uQW5kU3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlR5cGVkVHJhbnNhY3Rpb25cIl0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBoYXNoIG9mIHRoZSB0cmFuc2FjdGlvbiB0aGF0IHdhcyBzaWduZWQgKi9cbiAgICAgIGhhc2g/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHJlcXVlc3QgcmVjb3JkLiAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5vbmNlIChjb21wdXRlZCByaWdodCBiZWZvcmUgc2lnbmluZykgKi9cbiAgICAgIG5vbmNlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHNpZ25hdHVyZSAqL1xuICAgICAgc2lnbmVkUmF3VHJhbnNhY3Rpb24/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1taVN0YXR1c1wiXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQ2hhaW4tc3BlY2lmaWMgdHJhbnNhY3Rpb24gZGV0YWlscy4gKi9cbiAgICBUcmFuc2FjdGlvbkRldGFpbHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXZtVHJhbnNhY3Rpb25EZXRhaWxzXCJdICYge1xuICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICBjaGFpbjogXCJFdm1cIjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYW4gZXhpc3RpbmcgdHJhbnNhY3Rpb24gY3JlYXRlZCBieSB0aGUgUlBDIEFQSS4gKi9cbiAgICBUcmFuc2FjdGlvbkluZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVHJhbnNhY3Rpb25cIl0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB0cmFuc2FjdGlvbiBpZC4gKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU3VwcG9ydGVkIHF1ZXJpZXNcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIFRzUXVlcnlOYW1lOlxuICAgICAgfCBcIkFjdGl2ZUtleXNcIlxuICAgICAgfCBcIkFjdGl2ZVVzZXJzXCJcbiAgICAgIHwgXCJVbmlxdWVTaWduSW5zXCJcbiAgICAgIHwgXCJVc2VyQ291bnRcIlxuICAgICAgfCBcIkxhdGVzdFVzZXJDb3VudFwiXG4gICAgICB8IFwiS2V5Q291bnRcIlxuICAgICAgfCBcIkxhdGVzdEtleUNvdW50XCJcbiAgICAgIHwgXCJCaWxsaW5nRXZlbnRzXCJcbiAgICAgIHwgXCJPaWRjTG9naW5zXCJcbiAgICAgIHwgXCJTaWduRXZlbnRzXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCBhIHNpZ25lZCB0cmFuc2FjdGlvbiAqL1xuICAgIFR4U2lnbmF0dXJlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEtlY2NhayAyNTYgSGFzaCBvZiB0aGUgUkxQIGVuY29kaW5nIG9mIHRoZSB0cmFuc2FjdGlvbiAqL1xuICAgICAgaGFzaDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbm9uY2UgKGVpdGhlciBwcm92aWRlZCBleHBsaWNpdGx5IG9yIGNvbXB1dGVkIHJpZ2h0IGJlZm9yZSBzaWduaW5nKSAqL1xuICAgICAgbm9uY2U6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzaWduZWQgcmF3IHRyYW5zYWN0aW9uXG4gICAgICAgKiBAZXhhbXBsZSAweGRiMzNiMDNjMmI4MTAzZTJhOGMzNjFkM2I0ZjVhYmM2N2Y5NmM2OTIxZGY2ZTE1MWQ1MzA4N2E1ZTEyYjFlNGZcbiAgICAgICAqL1xuICAgICAgc2lnbmVkX3R4OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgc3RydWN0IHJlcHJlc2VudGluZyB0aGUgcGVuZGluZyBtZXNzYWdlIHN0YXR1cyAqL1xuICAgIFR4U3RhdHVzOlxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgc3RhdHVzOiBcIlBlbmRpbmdcIjtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCBhIHNpZ25lZCB0cmFuc2FjdGlvbiAqL1xuICAgICAgICAgIHNpZzoge1xuICAgICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBLZWNjYWsgMjU2IEhhc2ggb2YgdGhlIFJMUCBlbmNvZGluZyBvZiB0aGUgdHJhbnNhY3Rpb24gKi9cbiAgICAgICAgICAgIGhhc2g6IHN0cmluZztcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5vbmNlIChlaXRoZXIgcHJvdmlkZWQgZXhwbGljaXRseSBvciBjb21wdXRlZCByaWdodCBiZWZvcmUgc2lnbmluZykgKi9cbiAgICAgICAgICAgIG5vbmNlOiBzdHJpbmc7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc2lnbmVkIHJhdyB0cmFuc2FjdGlvblxuICAgICAgICAgICAgICogQGV4YW1wbGUgMHhkYjMzYjAzYzJiODEwM2UyYThjMzYxZDNiNGY1YWJjNjdmOTZjNjkyMWRmNmUxNTFkNTMwODdhNWUxMmIxZTRmXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHNpZ25lZF90eDogc3RyaW5nO1xuICAgICAgICAgIH07XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgc3RhdHVzOiBcIlNpZ25lZFwiO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICByZWFzb246IHN0cmluZztcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBzdGF0dXM6IFwiUmVqZWN0ZWRcIjtcbiAgICAgICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyB0aGUgW0VJUC03MTJdKGh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtNzEyKSB0eXBlZCBkYXRhIG9iamVjdC5cbiAgICAgKlxuICAgICAqIFR5cGVkIGRhdGEgaXMgYSBKU09OIG9iamVjdCBjb250YWluaW5nIHR5cGUgaW5mb3JtYXRpb24sIGRvbWFpbiBzZXBhcmF0b3IgcGFyYW1ldGVycyBhbmQgdGhlXG4gICAgICogbWVzc2FnZSBvYmplY3QuXG4gICAgICovXG4gICAgVHlwZWREYXRhOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRzIHRoZSBbRUlQLTcxMl0oaHR0cHM6Ly9laXBzLmV0aGVyZXVtLm9yZy9FSVBTL2VpcC03MTIpIEVJUDcxMkRvbWFpbiBvYmplY3QuXG4gICAgICAgKlxuICAgICAgICogRUlQNzEyRG9tYWluIGlzIGEgSlNPTiBvYmplY3Qgd2l0aCBvbmUgb3IgbW9yZSBvZiB0aGUgYmVsb3cgZmllbGRzLiBQcm90b2NvbCBkZXNpZ25lcnMgb25seSBuZWVkIHRvIGluY2x1ZGUgdGhlIGZpZWxkcyB0aGF0IG1ha2Ugc2Vuc2UgZm9yIHRoZWlyIHNpZ25pbmcgZG9tYWluLlxuICAgICAgICovXG4gICAgICBkb21haW46IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgRUlQLTE1NSBjaGFpbiBpZC4gVGhlIHVzZXItYWdlbnQgc2hvdWxkIHJlZnVzZSBzaWduaW5nIGlmIGl0IGRvZXMgbm90IG1hdGNoIHRoZVxuICAgICAgICAgKiBjdXJyZW50bHkgYWN0aXZlIGNoYWluLlxuICAgICAgICAgKiBAZXhhbXBsZSAweDFcbiAgICAgICAgICovXG4gICAgICAgIGNoYWluSWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB1c2VyIHJlYWRhYmxlIG5hbWUgb2Ygc2lnbmluZyBkb21haW4sIGkuZS4sIHRoZSBuYW1lIG9mIHRoZSBEQXBwIG9yIHRoZSBwcm90b2NvbC5cbiAgICAgICAgICogQGV4YW1wbGUgRXRoZXIgTWFpbFxuICAgICAgICAgKi9cbiAgICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBkaXNhbWJpZ3VhdGluZyBzYWx0IGZvciB0aGUgcHJvdG9jb2wuIFRoaXMgY2FuIGJlIHVzZWQgYXMgYSBkb21haW4gc2VwYXJhdG9yIG9mIGxhc3QgcmVzb3J0LiBDYW4gYmUgZWl0aGVyIGEgaGV4LWVuY29kZWQgc3RyaW5nIG9yIGJ5dGUgYXJyYXkgKi9cbiAgICAgICAgc2FsdD86IHN0cmluZyB8IG51bWJlcltdO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBhZGRyZXNzIG9mIHRoZSBjb250cmFjdCB0aGF0IHdpbGwgdmVyaWZ5IHRoZSBzaWduYXR1cmUuXG4gICAgICAgICAqIEBleGFtcGxlIDB4Q2NDQ2NjY2NDQ0NDY0NDQ0NDQ2NDY0NjY0NjQ0NDY0NjY2NjY2NjQ1xuICAgICAgICAgKi9cbiAgICAgICAgdmVyaWZ5aW5nQ29udHJhY3Q/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBjdXJyZW50IG1ham9yIHZlcnNpb24gb2YgdGhlIHNpZ25pbmcgZG9tYWluLiBTaWduYXR1cmVzIGZyb20gZGlmZmVyZW50IHZlcnNpb25zIGFyZSBub3RcbiAgICAgICAgICogY29tcGF0aWJsZS5cbiAgICAgICAgICogQGV4YW1wbGUgMVxuICAgICAgICAgKi9cbiAgICAgICAgdmVyc2lvbj86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbWVzc2FnZSB0byBiZSBzaWduZWQuICovXG4gICAgICBtZXNzYWdlOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gICAgICB9O1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZS4gKi9cbiAgICAgIHByaW1hcnlUeXBlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBjdXN0b20gdHlwZXMgdXNlZCBieSB0aGlzIG1lc3NhZ2UuICovXG4gICAgICB0eXBlczoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIG5hbWUgKi9cbiAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIHR5cGUgKi9cbiAgICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIH1bXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVJUC0yNzE4IHR5cGVkIHRyYW5zYWN0aW9uLCBpbmNsdWRpbmcgRUlQLTE1NTkgdHJhbnNhY3Rpb25zIChgeyBcInR5cGVcIjogXCIweDAyXCIgLi4uIH1gKSwgYW5kIGxlZ2FjeSB0cmFuc2FjdGlvbnMgKGB7IFwidHlwZVwiOiBcIjB4MDBcIiAuLi4gfWApLiBBbGwgdmFsdWVzIGluIHRoZSB0cmFuc2FjdGlvbiBhcmUgZXhwZWN0ZWQgdG8gYmUgKDB4LXByZWZpeGVkIG9yIG5vdCkgaGV4IHN0cmluZ3Mgb3IgYnl0ZSBhcnJheXMuICovXG4gICAgVHlwZWRUcmFuc2FjdGlvbjogT25lT2Y8XG4gICAgICBbXG4gICAgICAgIHtcbiAgICAgICAgICAvKiogQGV4YW1wbGUgMHgwMSAqL1xuICAgICAgICAgIGRhdGE/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4NGNmMThhOGE2YTFmZmU3N2ZlYzYwMGRhMmI5MGVjMzViYTA1MGIwNyAqL1xuICAgICAgICAgIGZyb20/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4MSAqL1xuICAgICAgICAgIGdhcz86IHN0cmluZztcbiAgICAgICAgICAvKiogQGV4YW1wbGUgMHgxICovXG4gICAgICAgICAgZ2FzUHJpY2U/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4MSAqL1xuICAgICAgICAgIG5vbmNlPzogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZXhhbXBsZSAweDA2OGJkNTI5NDI2ZjRmMjdlMjQ4YmFmMzZlNDU1OGU0NDA3MzhmYmIgKi9cbiAgICAgICAgICB0bz86IHN0cmluZztcbiAgICAgICAgICAvKiogQGV4YW1wbGUgMHgwMCAqL1xuICAgICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgICAvKiogQGV4YW1wbGUgMHgxICovXG4gICAgICAgICAgdmFsdWU/OiBzdHJpbmc7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAgICogICB7XG4gICAgICAgICAgICogICAgIFwiYWRkcmVzc1wiOiBcIjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiLFxuICAgICAgICAgICAqICAgICBcInN0b3JhZ2VLZXlzXCI6IFtcbiAgICAgICAgICAgKiAgICAgICBcIjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiXG4gICAgICAgICAgICogICAgIF1cbiAgICAgICAgICAgKiAgIH1cbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgYWNjZXNzTGlzdD86IHtcbiAgICAgICAgICAgIC8qKiBAZXhhbXBsZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgKi9cbiAgICAgICAgICAgIGFkZHJlc3M/OiBzdHJpbmc7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgICAqICAgXCIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIlxuICAgICAgICAgICAgICogXVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBzdG9yYWdlS2V5cz86IHN0cmluZ1tdO1xuICAgICAgICAgIH1bXTtcbiAgICAgICAgICAvKiogQGV4YW1wbGUgMHgwMSAqL1xuICAgICAgICAgIGRhdGE/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4NGNmMThhOGE3YTFmZmU3N2ZlYzYwMGRhMmI5MGVjMzViYTA1MGIwNyAqL1xuICAgICAgICAgIGZyb20/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4NjFhODAgKi9cbiAgICAgICAgICBnYXM/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4OTUwMmY5MDAgKi9cbiAgICAgICAgICBtYXhGZWVQZXJHYXM/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4OTUwMmY5MDAgKi9cbiAgICAgICAgICBtYXhQcmlvcml0eUZlZVBlckdhcz86IHN0cmluZztcbiAgICAgICAgICAvKiogQGV4YW1wbGUgMHhiICovXG4gICAgICAgICAgbm9uY2U/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4MDY4YmQ1Mzk0MjZmNGYyN2UyNDhiYWYzNmU0NTU4ZTQ0MDczOGZiYiAqL1xuICAgICAgICAgIHRvPzogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZXhhbXBsZSAweDAyICovXG4gICAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZXhhbXBsZSAweDEgKi9cbiAgICAgICAgICB2YWx1ZT86IHN0cmluZztcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICA+O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIFVuYXV0aG9yaXplZEVycm9yQ29kZTpcbiAgICAgIHwgXCJBdXRob3JpemF0aW9uSGVhZGVyTWlzc2luZ1wiXG4gICAgICB8IFwiRW5kcG9pbnRSZXF1aXJlc1VzZXJTZXNzaW9uXCJcbiAgICAgIHwgXCJSZWZyZXNoVG9rZW5NaXNzaW5nXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgdHJhbnNmZXIgZW50cnkgaW4gW2BVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlSZXNwb25zZWBdLiAqL1xuICAgIFVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeUVudHJ5OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFtb3VudCB0cmFuc2ZlcnJlZCwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGFtb3VudDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBc3NldCBzeW1ib2wuICovXG4gICAgICBhc3NldDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDbGllbnQtc3VwcGxpZWQgdHJhbnNmZXIgaWQsIGlmIG9uZSB3YXMgc2V0IG9uIHRoZSBvcmlnaW5hbCB0cmFuc2Zlci4gKi9cbiAgICAgIGNsaWVudFRyYW5JZD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaW1lIG9mIHRoZSB0cmFuc2ZlciAobXMgc2luY2UgZXBvY2gpLlxuICAgICAgICovXG4gICAgICBjcmVhdGVUaW1lU3RhbXA6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFdhbGxldCB0eXBlIGRlYml0ZWQgb24gdGhlIHNvdXJjZSBzaWRlLiBMZWZ0IGFzIGBTdHJpbmdgIGZvciBmb3J3YXJkXG4gICAgICAgKiBjb21wYXRpYmlsaXR5LlxuICAgICAgICovXG4gICAgICBmcm9tQWNjb3VudFR5cGU6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU291cmNlIHN1Yi1hY2NvdW50IGVtYWlsOyBhYnNlbnQgd2hlbiB0aGUgc291cmNlIGlzIHRoZSBtYXN0ZXIuICovXG4gICAgICBmcm9tRW1haWw/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUcmFuc2ZlciBzdGF0dXMgKGUuZy4gYFwiU1VDQ0VTU1wiYCkuICovXG4gICAgICBzdGF0dXM6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2FsbGV0IHR5cGUgY3JlZGl0ZWQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUuICovXG4gICAgICB0b0FjY291bnRUeXBlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERlc3RpbmF0aW9uIHN1Yi1hY2NvdW50IGVtYWlsOyBhYnNlbnQgd2hlbiB0aGUgZGVzdGluYXRpb24gaXMgbWFzdGVyLiAqL1xuICAgICAgdG9FbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUcmFuc2ZlciBpZC4gTWF0Y2hlcyB0aGUgYHRyYW5JZGAgcmV0dXJuZWQgYnkgdGhlIG9yaWdpbmFsXG4gICAgICAgKiBbYFVuaXZlcnNhbFRyYW5zZmVyUmVzcG9uc2VgXS5cbiAgICAgICAqL1xuICAgICAgdHJhbklkOiBudW1iZXI7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYEdFVCAvc2FwaS92MS9zdWItYWNjb3VudC91bml2ZXJzYWxUcmFuc2ZlcmAuXG4gICAgICpcbiAgICAgKiBMaXN0cyB1bml2ZXJzYWwgdHJhbnNmZXJzIGluaXRpYXRlZCBieSB0aGUgbWFzdGVyIGFjY291bnQuIEFsbCBmaWx0ZXJzXG4gICAgICogYXJlIG9wdGlvbmFsOyBpZiBgc3RhcnRfdGltZWAvYGVuZF90aW1lYCBhcmUgb21pdHRlZCwgQmluYW5jZSByZXR1cm5zIHRoZVxuICAgICAqIG1vc3QgcmVjZW50IDMwIGRheXMuIEJpbmFuY2UgZG9lcyBub3Qgc3VwcG9ydCBmaWx0ZXJpbmcgYnkgYHRyYW5faWRgXG4gICAgICogZGlyZWN0bHkg4oCUIHVzZSBgY2xpZW50X3RyYW5faWRgIGlmIHlvdSBzZXQgb25lIHdoZW4gaW5pdGlhdGluZyB0aGVcbiAgICAgKiB0cmFuc2Zlciwgb3IgcGFnZSB0aHJvdWdoIHRoZSByZXN1bHQgYW5kIG1hdGNoIHRoZSBgdHJhbklkYCBjbGllbnQtc2lkZS5cbiAgICAgKi9cbiAgICBVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZpbHRlciBieSBjbGllbnQtc3VwcGxpZWQgdHJhbnNmZXIgaWQuICovXG4gICAgICBjbGllbnRUcmFuSWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2luZG93IGVuZCAobXMgc2luY2UgZXBvY2gpLlxuICAgICAgICovXG4gICAgICBlbmRUaW1lPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRmlsdGVyIHRvIHRyYW5zZmVycyBvcmlnaW5hdGluZyBmcm9tIHRoaXMgc3ViLWFjY291bnQgZW1haWwuICovXG4gICAgICBmcm9tRW1haWw/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUGFnZSBzaXplIChCaW5hbmNlIGRlZmF1bHQ6IDUwMCwgbWF4OiA1MDApLlxuICAgICAgICovXG4gICAgICBsaW1pdD86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiAxLWJhc2VkIHBhZ2UgbnVtYmVyIChCaW5hbmNlIGRlZmF1bHQ6IDEpLlxuICAgICAgICovXG4gICAgICBwYWdlPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFdpbmRvdyBzdGFydCAobXMgc2luY2UgZXBvY2gpLlxuICAgICAgICovXG4gICAgICBzdGFydFRpbWU/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgdG8gdHJhbnNmZXJzIGRlc3RpbmVkIGZvciB0aGlzIHN1Yi1hY2NvdW50IGVtYWlsLiAqL1xuICAgICAgdG9FbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19iaW5hbmNlVW5pdmVyc2FsVHJhbnNmZXJIaXN0b3J5YC4gKi9cbiAgICBVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUcmFuc2ZlcnMgaW4gdGhlIGN1cnJlbnQgcGFnZS4gKi9cbiAgICAgIHJlc3VsdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlFbnRyeVwiXVtdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVG90YWwgbnVtYmVyIG9mIHRyYW5zZmVycyBtYXRjaGluZyB0aGUgZmlsdGVycyBhY3Jvc3MgYWxsIHBhZ2VzLlxuICAgICAgICovXG4gICAgICB0b3RhbENvdW50OiBudW1iZXI7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYFBPU1QgL3NhcGkvdjEvc3ViLWFjY291bnQvdW5pdmVyc2FsVHJhbnNmZXJgLlxuICAgICAqXG4gICAgICogVHJhbnNmZXJzIGFuIGFzc2V0IGJldHdlZW4gYW55IHR3byBhY2NvdW50cyAobWFzdGVyIHRvL2Zyb20gc3ViLCBvciBzdWJcbiAgICAgKiB0by9mcm9tIHN1YikgYW5kIGJldHdlZW4gYW55IHR3byB3YWxsZXQgdHlwZXMgKHNwb3QsIGZ1dHVyZXMsIG1hcmdpbiwgZXRjKS5cbiAgICAgKiBUaGUgc2lnbmluZyBjcmVkZW50aWFsICh0aGUgQVBJIGtleSArIEVkMjU1MTkga2V5IHBhaXIpIG11c3QgYmVsb25nIHRvIHRoZVxuICAgICAqIG1hc3RlciBhY2NvdW50LlxuICAgICAqL1xuICAgIFVuaXZlcnNhbFRyYW5zZmVyUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYW1vdW50IGJlaW5nIHRyYW5zZmVycmVkLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgYW1vdW50OiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBhc3NldCBzeW1ib2wgYmVpbmcgdHJhbnNmZXJyZWQgKGUuZy4gYFwiVVNEVFwiYCkuICovXG4gICAgICBhc3NldDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgY2xpZW50LXN1cHBsaWVkIHRyYW5zZmVyIGlkLiBJZiBzZXQsIEJpbmFuY2UgZWNob2VzIGl0IGJhY2tcbiAgICAgICAqIGFzIGBjbGllbnRfdHJhbl9pZGAgb24gdGhlIGBVbml2ZXJzYWxUcmFuc2ZlclJlc3BvbnNlYCBhbmQgbGV0cyBpdCBiZVxuICAgICAgICogdXNlZCBhcyBhIGZpbHRlciBvblxuICAgICAgICogW2BVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlSZXF1ZXN0OjpjbGllbnRfdHJhbl9pZGBdLlxuICAgICAgICovXG4gICAgICBjbGllbnRUcmFuSWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgZnJvbUFjY291bnRUeXBlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NvdW50VHlwZVwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU291cmNlIHN1Yi1hY2NvdW50IGVtYWlsLiBJZiBgTm9uZWAsIHRoZSBzb3VyY2UgaXMgdGhlIG1hc3RlciBhY2NvdW50LiAqL1xuICAgICAgZnJvbUVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIHRvQWNjb3VudFR5cGU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY291bnRUeXBlXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiBzdWItYWNjb3VudCBlbWFpbC4gSWYgYE5vbmVgLCB0aGUgZGVzdGluYXRpb24gaXMgdGhlIG1hc3RlciBhY2NvdW50LiAqL1xuICAgICAgdG9FbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19iaW5hbmNlVW5pdmVyc2FsVHJhbnNmZXJgLiAqL1xuICAgIFVuaXZlcnNhbFRyYW5zZmVyUmVzcG9uc2U6IHtcbiAgICAgIGNsaWVudFRyYW5JZD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogRm9ybWF0OiBpbnQ2NCAqL1xuICAgICAgdHJhbklkOiBudW1iZXI7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbnMgdGhhdCBzaG91bGQgYmUgc2V0IG9ubHkgZm9yIGxvY2FsIGRldm5ldCB0ZXN0aW5nLiAqL1xuICAgIFVuc2FmZUNvbmY6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBoZXgtZW5jb2RlZCBhZGRyZXNzIG9mIHRoZSBkZXBvc2l0IGNvbnRyYWN0LiBJZiBvbWl0dGVkLCBpbmZlcnJlZCBmcm9tIGBjaGFpbl9pZGBcbiAgICAgICAqIEBleGFtcGxlIDB4ZmY1MGVkM2QwZWMwM2FjMDFkNGM3OWFhZDc0OTI4YmZmNDhhN2IyYlxuICAgICAgICovXG4gICAgICBkZXBvc2l0X2NvbnRyYWN0X2FkZHI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGhleC1lbmNvZGVkIDQtYnl0ZSBmb3JrIHZlcnNpb25cbiAgICAgICAqIEBleGFtcGxlIDB4MDAwMDEwMjBcbiAgICAgICAqL1xuICAgICAgZ2VuZXNpc19mb3JrX3ZlcnNpb24/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgVW5zdGFrZVJlcXVlc3Q6IHtcbiAgICAgIGVwb2NoPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaFwiXSB8IG51bGw7XG4gICAgICBmb3JrOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZvcmtcIl07XG4gICAgICBnZW5lc2lzX2RhdGE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiR2VuZXNpc0RhdGFcIl07XG4gICAgICBuZXR3b3JrOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk5ldHdvcmtcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0b3IgaW5kZXggKGB1aW50NjRgKSB0byBleGl0LiBZb3UgY2FuIGdldCB0aGUgdmFsaWRhdG9yIGluZGV4IGZyb20gdGhlIEJlYWNvbiBub2RlJ3NcbiAgICAgICAqIGAvZXRoL3YxL2JlYWNvbi9zdGF0ZXMvaGVhZC92YWxpZGF0b3JzL3twdWJrZXl9YCBlbmQtcG9pbnQuIFRoaXMgZW5kIHBvaW50IHJldHVybnMgYW5cbiAgICAgICAqIG9iamVjdCB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSB2YWxpZGF0b3IgKHdob3NlIHB1YmxpYyBrZXkgaXMgYHtwdWJrZXl9YCksXG4gICAgICAgKiBpbmNsdWRpbmcgdGhlIHZhbGlkYXRvciBpbmRleC4gVGhlIHNjaGVtYSBvZiB0aGlzIGVuZC1wb2ludCBpcyBkZWZpbmVkXG4gICAgICAgKiBbaGVyZV0oaHR0cHM6Ly9ldGhlcmV1bS5naXRodWIuaW8vYmVhY29uLUFQSXMvIy9CZWFjb24vZ2V0U3RhdGVWYWxpZGF0b3IpLlxuICAgICAgICogQGV4YW1wbGUgMzEzMzdcbiAgICAgICAqL1xuICAgICAgdmFsaWRhdG9yX2luZGV4OiBzdHJpbmc7XG4gICAgfSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSByZXNwb25zZSB0byBzaWduIGFuIGV0aDIgdW5zdGFrZSByZXF1ZXN0LiAqL1xuICAgIFVuc3Rha2VSZXNwb25zZToge1xuICAgICAgbWVzc2FnZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJWb2x1bnRhcnlFeGl0XCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQkxTIHNpZ25hdHVyZS5cbiAgICAgICAqIEBleGFtcGxlIDB4OTEwYzdjZDUzN2VkOTFjYzhjNGE4MmYzY2JkODMyZTliZThjMjRhMjJlOWM4NmRmNDc5ZjdjZTQyMDI1ZWE2YTA5NjE5YjQxOGI2NjZhMDYwZTI2MGQyYWFlMzFiOGU1MGU5ZDA1Y2EzNDQyYzdlZWQzYjUwN2U1MjA3ZTE0Njc0Mjc1ZjY4YzJiYTg0YzRiZjZiOGRkMzY0YTMwNGFjYWM4Y2ZhYjM2ODFlMjUxNGI0NDAwZjkyNDJiYzYxMTY0XG4gICAgICAgKi9cbiAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgIH0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9ICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGluZm9ybWF0aW9uIG5lZWRlZCB0byB1cGRhdGUgYSBidWNrZXQuICovXG4gICAgVXBkYXRlQnVja2V0UmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBY2Nlc3MtY29udHJvbCBlbnRyaWVzIGRlZmluaW5nIGhvdyB0aGUgYnVja2V0IGNhbiBiZSBhY2Nlc3NlZC4gKi9cbiAgICAgIGFjbD86IHVua25vd247XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0aW5nIG9ubHkgc3VjY2VlZHMgaWYgdGhlIGN1cnJlbnQgdmVyc2lvbiBtYXRjaGVzIHRoaXMgdmFsdWUuXG4gICAgICAgKi9cbiAgICAgIGV4cGVjdGVkX3ZlcnNpb24/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSB0aGUgb3duZXIgb2YgdGhlIGJ1Y2tldFxuICAgICAgICogQGV4YW1wbGUgVXNlciMwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcbiAgICAgICAqL1xuICAgICAgb3duZXI/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaW5mb3JtYXRpb24gbmVlZGVkIHRvIHVwZGF0ZSBhIENvbnRhY3QuICovXG4gICAgVXBkYXRlQ29udGFjdFJlcXVlc3Q6IHtcbiAgICAgIGFkZHJlc3Nlcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWRkcmVzc01hcFwiXSB8IG51bGw7XG4gICAgICBlZGl0X3BvbGljeT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRWRpdFBvbGljeVwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIG5ldyBzZXQgb2YgbGFiZWxzIGZvciB0aGUgY29udGFjdC5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJjdWJpc3Q6ZXJjMjBfdG9rZW5cIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBsYWJlbHM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbnRhY3RMYWJlbFwiXVtdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBuZXcgdmFsdWUgZm9yIHRoZSBvcHRpb25hbCB1c2VyLWRlZmluZWQgbWV0YWRhdGEgYWJvdXQgdGhlIGNvbnRhY3QuICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIG5ldyBuYW1lIGZvciB0aGUgY29udGFjdC4gTXVzdCBiZSBhIHVuaXF1ZSBuYW1lIGFtb25nIGNvbnRhY3RzIGluIHRoZVxuICAgICAgICogb3JnLiBOYW1lIG11c3QgY29uc2lzdCBvZiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgc3BhY2VzLCBgLmAgYW5kIGAtYCxcbiAgICAgICAqIGFuZCBjYW5ub3QgYmUgbG9uZ2VyIHRoYW4gNTAgY2hhcmFjdGVycy5cbiAgICAgICAqIEBleGFtcGxlIFNhdG9zaGkgTmFrYW1vdG9cbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICBvd25lcj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl0gfCBudWxsO1xuICAgIH07XG4gICAgVXBkYXRlS2V5UmVxdWVzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDcmVhdGVBbmRVcGRhdGVLZXlQcm9wZXJ0aWVzXCJdICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGVzIHRoZSBrZXkncyBgZW5hYmxlZGAgcHJvcGVydHkgdG8gdGhpcyB2YWx1ZS5cbiAgICAgICAqIE9uY2UgZGlzYWJsZWQsIGEga2V5IGNhbm5vdCBiZSB1c2VkIGZvciBzaWduaW5nLlxuICAgICAgICovXG4gICAgICBlbmFibGVkPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHBhdGNoIHRoZSBrZXkncyBzdHJ1Y3R1cmVkIFtgS2V5UHJvcGVydGllc2BdLiBUaGUgcGF0Y2gncyB2YXJpYW50IG11c3RcbiAgICAgICAqIG1hdGNoIHRoZSBrZXkncyBbYEtleVR5cGVgXSAoZS5nLiBgQmluYW5jZUFwaWAgcHJvcGVydGllcyBhcmUgb25seSBhbGxvd2VkIG9uXG4gICAgICAgKiBgRWQyNTUxOUJpbmFuY2VBcGlgIGtleXMpLiBFYWNoIGZpZWxkIGluIHRoZSBwYXRjaCBpcyBpbmRlcGVuZGVudDogbWlzc2luZ1xuICAgICAgICogbWVhbnMgbGVhdmUgYWxvbmUsIEpTT04gYG51bGxgIGNsZWFycywgYSB2YWx1ZSBzZXRzLiBTZW5kaW5nIEpTT04gYG51bGxgIGZvclxuICAgICAgICogdGhlIHdob2xlIGZpZWxkIGNsZWFycyBhbGwgcHJvcGVydGllcyBvbiB0aGUga2V5LlxuICAgICAgICovXG4gICAgICBwcm9wZXJ0aWVzPzogdW5rbm93bjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgY2hhbmdlIHRoZSBrZXkncyByZWdpb24gYWZmaW5pdHkgdG8gdGhpcyB2YWx1ZS5cbiAgICAgICAqXG4gICAgICAgKiBUaGlzIGlzIGEgcmVnaW9uLWxvY2tlZCBvcGVyYXRpb24sIGkuZS4sIGl0IGNhbiBvbmx5IGJlIHBlcmZvcm1lZFxuICAgICAgICogZnJvbSB0aGUgcmVnaW9uIG1hdGNoaW5nIHRoZSBrZXkncyBjdXJyZW50IHJlZ2lvbiBhZmZpbml0eVxuICAgICAgICovXG4gICAgICByZWdpb24/OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0aW5nIHRoZSBtZXRhZGF0YSBvbmx5IHN1Y2NlZWRzIGlmIHRoZSB2ZXJzaW9uIG1hdGNoZXMgdGhpcyB2YWx1ZS5cbiAgICAgICAqL1xuICAgICAgdmVyc2lvbj86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBvbGljeSBFbmdpbmUgY29uZmlndXJhdGlvbnMuICovXG4gICAgVXBkYXRlT3JnUG9saWN5RW5naW5lQ29uZmlnczoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWxsb3dlZCBkb21haW5zIGZvciBIVFRQIHJlcXVlc3RzXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwiY3ViaXN0LmRldjo0NDNcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBhbGxvd2VkX2h0dHBfYXV0aG9yaXRpZXM6IHN0cmluZ1tdO1xuICAgIH07XG4gICAgVXBkYXRlT3JnUmVxdWVzdDoge1xuICAgICAgYWxpZW5fbG9naW5fcmVxdWlyZW1lbnQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZEZhY3RvclJlcXVpcmVtZW50XCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1GQSB0eXBlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIHVzZWQgZm9yIGltcGxpY2l0bHkgc2VjdXJpdHktc2Vuc2l0aXZlXG4gICAgICAgKiBvcGVyYXRpb25zIChsaWtlIGxvZ2dpbmcgaW4sIGFkZGluZyBhbiBNRkEgZmFjdG9yLCBleHBvcnRpbmcga2V5cywgZXRjLikuXG4gICAgICAgKiBAZXhhbXBsZSB7XG4gICAgICAgKiAgIFwiRGVmYXVsdFwiOiBbXG4gICAgICAgKiAgICAgXCJGaWRvXCIsXG4gICAgICAgKiAgICAgXCJUb3RwXCIsXG4gICAgICAgKiAgICAgXCJFbWFpbE90cFwiXG4gICAgICAgKiAgIF0sXG4gICAgICAgKiAgIFwiS2V5RXhwb3J0XCI6IFtcbiAgICAgICAqICAgICBcIkZpZG9cIlxuICAgICAgICogICBdXG4gICAgICAgKiB9XG4gICAgICAgKi9cbiAgICAgIGFsbG93ZWRfbWZhX3R5cGVzPzoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVR5cGVcIl1bXTtcbiAgICAgIH0gfCBudWxsO1xuICAgICAgY3VzdG9tX2NoYWlucz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3VzdG9tQ2hhaW5zRGF0YVwiXSB8IG51bGw7XG4gICAgICBkZWZhdWx0X2ludml0ZV9raW5kPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbnZpdGVLaW5kXCJdIHwgbnVsbDtcbiAgICAgIGVkaXRfcG9saWN5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFZGl0UG9saWN5XCJdIHwgbnVsbDtcbiAgICAgIGVtYWlsX3ByZWZlcmVuY2VzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbWFpbFByZWZlcmVuY2VzXCJdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyBgZW5hYmxlZGAgZmllbGQgdG8gdGhpcyB2YWx1ZS4gKi9cbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIGV4dF9wcm9wcz86XG4gICAgICAgIHwgKHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFBlciBhbGllbiB1c2VyIGtleSBjb3VudCB0aHJlc2hvbGQsIHdoaWNoLCBvbmNlIGV4Y2VlZGVkLCBkaXNhbGxvd3MgZnVydGhlciBrZXkgY3JlYXRpb24gYnkgYWxpZW4gdXNlcnMuXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogVGhpcyBzZXR0aW5nIGlzIGNoZWNrZWQgb25seSB3aGVuIGFuIGFsaWVuIHVzZXIgcmVxdWVzdHMgdG8gY3JlYXRlIG9yIGltcG9ydCBhIG5ldyBrZXkuXG4gICAgICAgICAgICAgKiBJbiBvdGhlciB3b3Jkcywgb3JnIGFkbWlucyBjYW4gc3RpbGwgYXNzaWduIHVubGltaXRlZCBudW1iZXIgb2Yga2V5cyB0byB0aGVpciBhbGllbiB1c2Vycy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgYWxpZW5fa2V5X2NvdW50X3RocmVzaG9sZD86IG51bWJlciB8IG51bGw7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIGFsaWVuIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHVwZGF0ZSB0aGVpciBvd24ga2V5IHBvbGljaWVzLlxuICAgICAgICAgICAgICogRGVmYXVsdHMgdG8gJ2ZhbHNlJy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgYWxpZW5zX2Nhbl91cGRhdGVfa2V5X3BvbGljeT86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgICAgIH0gJiB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0aW5nIHdpbGwgc3VjY2VlZCBpZiB0aGUgY3VycmVudCB2ZXJzaW9uIG1hdGNoZXMgdGhpcyB2YWx1ZVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB2ZXJzaW9uPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgICAgICB9KVxuICAgICAgICB8IG51bGw7XG4gICAgICBoaXN0b3JpY2FsX2RhdGFfY29uZmlndXJhdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSGlzdG9yaWNhbERhdGFDb25maWd1cmF0aW9uXCJdIHwgbnVsbDtcbiAgICAgIGlkcF9jb25maWd1cmF0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZHBDb25maWdcIl0gfCBudWxsO1xuICAgICAga2V5X2V4cG9ydF9yZXF1aXJlbWVudD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kRmFjdG9yUmVxdWlyZW1lbnRcIl0gfCBudWxsO1xuICAgICAgbWVtYmVyX2xvZ2luX3JlcXVpcmVtZW50PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNvbmRGYWN0b3JSZXF1aXJlbWVudFwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIG9yZydzIG5vdGlmaWNhdGlvbiBlbmRwb2ludHMuIE5vdGlmaWNhdGlvbiBlbmRwb2ludHMgYXJlIGV4cGVjdGVkIHRvIGJlXG4gICAgICAgKiBIVFRQUyBVUkxzLCB3aGljaCBhY2NlcHQgUE9TVCByZXF1ZXN0cy4gVGhlIGJvZHkgb2YgdGhlIHJlcXVlc3RzIHNlbnQgdG8gdGhlc2UgZW5kcG9pbnRzIGFyZVxuICAgICAgICogYXJlIGZvcm1hdHRlZCBpbiBKU09OIGFuZCBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybWF0OlxuICAgICAgICpcbiAgICAgICAqIGBgYGpzb25cbiAgICAgICAqIHtcbiAgICAgICAqIFwib3JnXCI6IFwiLi4uXCIsXG4gICAgICAgKiBcInV0Y190aW1lc3RhbXBcIjogXCIuLi5cIixcbiAgICAgICAqIFwib3JnX2V2ZW50XCI6IFwiLi4uXCIsXG4gICAgICAgKiAuLi5cbiAgICAgICAqIH1cbiAgICAgICAqIGBgYFxuICAgICAgICpcbiAgICAgICAqIGBvcmdgIGlzIHRoZSBvcmcgaWQsIGB1dGNfdGltZXN0YW1wYCBpcyB0aGUgVVRDIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgaW4gbWlsbGlzZWNvbmRzLCBhbmRcbiAgICAgICAqIGBvcmdfZXZlbnRgIGlzIGEgc3RyaW5nIGlkZW50aWZ5aW5nIHRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgaGFzIG9jY3VycmVkLiBUaGUgcmVzdCBvZiB0aGVcbiAgICAgICAqIGZpZWxkcyBwcm92aWRlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgdHlwZSBvZiB0aGUgZXZlbnQuXG4gICAgICAgKlxuICAgICAgICogRW5kcG9pbnRzIGNhbiBvcHRpb25hbGx5IGluY2x1ZGUgZmlsdGVycyB0byBjdXN0b21pemUgdGhlIG9yZyBldmVudHMgdGhhdCB0aGV5IGFyZSBub3RpZmllZFxuICAgICAgICogYWJvdXQuIEN1cnJlbnRseSwgdGhlIG9ubHkgc3VwcG9ydGVkIGZpbHRlciB0eXBlIGlzIGBPbmVPZmAsIHdoaWNoIGV4cGVjdHMgYSBsaXN0IG9mIG9yZ1xuICAgICAgICogZXZlbnQgdHlwZXMgdG8gc2VuZCB0byB0aGUgZW5kcG9pbnQuIElmIG5vIGZpbHRlciBpcyBjb25maWd1cmVkLCB0aGUgc3lzdGVtIHNlbmRzIGFsbCBvcmdcbiAgICAgICAqIGV2ZW50cyB0byB0aGUgZW5kcG9pbnQuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcInVybDpcIjogXCJodHRwczovL2V4YW1wbGUuY29tL2VuZHBvaW50MVwiXG4gICAgICAgKiAgIH0sXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcImZpbHRlclwiOiB7XG4gICAgICAgKiAgICAgICBcIk9uZU9mXCI6IFtcbiAgICAgICAqICAgICAgICAgXCJFdGgyQ29uY3VycmVudEF0dGVzdGF0aW9uU2lnbmluZ1wiLFxuICAgICAgICogICAgICAgICBcIkV0aDJDb25jdXJyZW50QmxvY2tTaWduaW5nXCJcbiAgICAgICAqICAgICAgIF1cbiAgICAgICAqICAgICB9LFxuICAgICAgICogICAgIFwidXJsOlwiOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQyXCJcbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBub3RpZmljYXRpb25fZW5kcG9pbnRzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJOb3RpZmljYXRpb25FbmRwb2ludENvbmZpZ3VyYXRpb25cIl1bXSB8IG51bGw7XG4gICAgICBwYXNza2V5X2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBhc3NrZXlDb25maWdcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyBwb2xpY2llcyAob2xkIHBvbGljaWVzIHdpbGwgYmUgb3ZlcndyaXR0ZW4hKS5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiTWF4RGFpbHlVbnN0YWtlXCI6IDVcbiAgICAgICAqICAgfSxcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiT3JpZ2luQWxsb3dsaXN0XCI6IFtcbiAgICAgICAqICAgICAgIFwiaHR0cHM6Ly9leGFtcGxlLmNvbVwiXG4gICAgICAgKiAgICAgXVxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJTb3VyY2VJcEFsbG93bGlzdFwiOiBbXG4gICAgICAgKiAgICAgICBcIjEwLjEuMi4zLzhcIixcbiAgICAgICAqICAgICAgIFwiMTY5LjI1NC4xNy4xLzE2XCJcbiAgICAgICAqICAgICBdXG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W10gfCBudWxsO1xuICAgICAgcG9saWN5X2VuZ2luZV9jb25maWd1cmF0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVcGRhdGVPcmdQb2xpY3lFbmdpbmVDb25maWdzXCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgYWxsIHVzZXIgbG9naW5zIHdpbGwgcmVxdWlyZSB0aGUgY2xhaW0gYGN1YmVzaWduZXJfc2NvcGVfY2VpbGluZ2AgdG8gYmUgcHJlc2VudCBpblxuICAgICAgICogdGhlIHVzZXIncyB0b2tlbi4gVGhpcyBjbGFpbSBpcyBhbiBhcnJheSBvZiBzY29wZXMgKGUuZy4gYFsgXCJtYW5hZ2U6a2V5czpsaXN0XCIsIFwic2lnbjpldm06dHhcIiBdYCksXG4gICAgICAgKiB3aGljaCBkZWZpbmUgYSBtYXhpbXVtIHNldCBvZiBzY29wZXMgdGhlIHVzZXIgbWF5IHJlcXVlc3QuIElmIHRoZSB1c2VyJ3MgdG9rZW4gZG9lcyBub3QgY29udGFpblxuICAgICAgICogdGhpcyBjbGFpbSwgdGhlIGxvZ2luIHdpbGwgYmUgcmVqZWN0ZWQuXG4gICAgICAgKlxuICAgICAgICogT3duZXJzIG9mIHRoZSBvcmcgYXJlIGV4ZW1wdCBmcm9tIHRoaXMgcmVxdWlyZW1lbnQuXG4gICAgICAgKi9cbiAgICAgIHJlcXVpcmVfc2NvcGVfY2VpbGluZz86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyBzaWduIHJ1bGUgKG9sZCBzaWduIHJ1bGVzIHdpbGwgYmUgb3ZlcndyaXR0ZW4hKS5cbiAgICAgICAqIE9ubHkgXCJkZW55XCItc3R5bGUgcnVsZXMgbWF5IGJlIHNldC5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiVHhSZWNlaXZlclwiOiBbXG4gICAgICAgKiAgICAgICBcIjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiXG4gICAgICAgKiAgICAgXVxuICAgICAgICogICB9XG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHNpZ25fcG9saWN5PzogdW5rbm93bltdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdXBkYXRlIHRoaXMgb3JnJ3MgVE9UUCBmYWlsdXJlIGxpbWl0LiBBZnRlciB0aGlzIG1hbnkgZmFpbHVyZXMsXG4gICAgICAgKiB0aGUgdXNlciBpcyByYXRlIGxpbWl0ZWQgdW50aWwgdGhlIG5leHQgMzAtc2Vjb25kIFRPVFAgd2luZG93LlxuICAgICAgICovXG4gICAgICB0b3RwX2ZhaWx1cmVfbGltaXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyB1c2VyLWV4cG9ydCBkZWxheSwgaS5lLiwgdGhlIGFtb3VudCBvZiB0aW1lXG4gICAgICAgKiAoaW4gc2Vjb25kcykgYmV0d2VlbiBhIHVzZXIncyBpbml0aWF0aW5nIGFuIGV4cG9ydCBhbmQgdGhlIHRpbWUgd2hlblxuICAgICAgICogZXhwb3J0IGlzIGFsbG93ZWQuIEZvciBzZWN1cml0eSwgdGhpcyBkZWxheSBjYW5ub3QgYmUgc2V0IHRvIGxlc3MgdGhhblxuICAgICAgICogMTcyODAwLCBpLmUuLCAyIGRheXMuXG4gICAgICAgKi9cbiAgICAgIHVzZXJfZXhwb3J0X2RlbGF5PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0dXJuIHRoaXMgb3JnJ3MgdXNlciBleHBvcnQgb2ZmIChieSBwYXNzaW5nIGB0cnVlYCkgb3Igb24gKGJ5IHBhc3NpbmcgYGZhbHNlYCkuICovXG4gICAgICB1c2VyX2V4cG9ydF9kaXNhYmxlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyB1c2VyLWV4cG9ydCB3aW5kb3csIGkuZS4sIHRoZSBhbW91bnQgb2YgdGltZVxuICAgICAgICogKGluIHNlY29uZHMpIHRoYXQgZXhwb3J0IGlzIGFsbG93ZWQgYWZ0ZXIgdGhlIHVzZXItZXhwb3J0IGRlbGF5LiBBZnRlclxuICAgICAgICogdGhpcyBhbW91bnQgb2YgdGltZSwgdGhlIGV4cG9ydCBpcyBjYW5jZWxlZCBhbmQgbXVzdCBiZSByZS1pbml0aWF0ZWQuXG4gICAgICAgKiBGb3Igc2VjdXJpdHksIHRoaXMgd2luZG93IGNhbm5vdCBiZSBzZXQgdG8gZ3JlYXRlciB0aGFuIDI1OTIwMCwgaS5lLixcbiAgICAgICAqIDMgZGF5cy5cbiAgICAgICAqL1xuICAgICAgdXNlcl9leHBvcnRfd2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIFVwZGF0ZU9yZ1Jlc3BvbnNlOiB7XG4gICAgICBhbGllbl9sb2dpbl9yZXF1aXJlbWVudD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kRmFjdG9yUmVxdWlyZW1lbnRcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gTUZBIHR5cGVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gYmUgdXNlZCBmb3IgaW1wbGljaXRseSBzZWN1cml0eS1zZW5zaXRpdmVcbiAgICAgICAqIG9wZXJhdGlvbnMgKGxpa2UgbG9nZ2luZyBpbiwgYWRkaW5nIGFuIE1GQSBmYWN0b3IsIGV4cG9ydGluZyBrZXlzLCBldGMuKS5cbiAgICAgICAqL1xuICAgICAgYWxsb3dlZF9tZmFfdHlwZXM/OiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhVHlwZVwiXVtdO1xuICAgICAgfSB8IG51bGw7XG4gICAgICBjdXN0b21fY2hhaW5zPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDdXN0b21DaGFpbnNEYXRhXCJdIHwgbnVsbDtcbiAgICAgIGRlZmF1bHRfaW52aXRlX2tpbmQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkludml0ZUtpbmRcIl0gfCBudWxsO1xuICAgICAgZWRpdF9wb2xpY3k/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVkaXRQb2xpY3lcIl0gfCBudWxsO1xuICAgICAgZW1haWxfcHJlZmVyZW5jZXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVtYWlsUHJlZmVyZW5jZXNcIl0gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IHZhbHVlIG9mIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgKi9cbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIGV4dF9kYXRhPzpcbiAgICAgICAgfCAoe1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gUGVyIGFsaWVuIHVzZXIga2V5IGNvdW50IHRocmVzaG9sZCwgd2hpY2gsIG9uY2UgZXhjZWVkZWQsIGRpc2FsbG93cyBmdXJ0aGVyIGtleSBjcmVhdGlvbiBieSBhbGllbiB1c2Vycy5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBUaGlzIHNldHRpbmcgaXMgY2hlY2tlZCBvbmx5IHdoZW4gYW4gYWxpZW4gdXNlciByZXF1ZXN0cyB0byBjcmVhdGUgb3IgaW1wb3J0IGEgbmV3IGtleS5cbiAgICAgICAgICAgICAqIEluIG90aGVyIHdvcmRzLCBvcmcgYWRtaW5zIGNhbiBzdGlsbCBhc3NpZ24gdW5saW1pdGVkIG51bWJlciBvZiBrZXlzIHRvIHRoZWlyIGFsaWVuIHVzZXJzLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBhbGllbl9rZXlfY291bnRfdGhyZXNob2xkPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgYWxpZW4gdXNlcnMgYXJlIGFsbG93ZWQgdG8gdXBkYXRlIHRoZWlyIG93biBrZXkgcG9saWNpZXMuXG4gICAgICAgICAgICAgKiBEZWZhdWx0cyB0byAnZmFsc2UnLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBhbGllbnNfY2FuX3VwZGF0ZV9rZXlfcG9saWN5PzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAgICAgfSAmIHtcbiAgICAgICAgICAgIGNyZWF0ZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl0gfCBudWxsO1xuICAgICAgICAgICAgbGFzdF9tb2RpZmllZD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXSB8IG51bGw7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBWZXJzaW9uIG9mIHRoaXMgb2JqZWN0XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHZlcnNpb24/OiBudW1iZXI7XG4gICAgICAgICAgfSAmIFJlY29yZDxzdHJpbmcsIG5ldmVyPilcbiAgICAgICAgfCBudWxsO1xuICAgICAgaGlzdG9yaWNhbF9kYXRhX2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkhpc3RvcmljYWxEYXRhQ29uZmlndXJhdGlvblwiXSB8IG51bGw7XG4gICAgICBpZHBfY29uZmlndXJhdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRwQ29uZmlnXCJdIHwgbnVsbDtcbiAgICAgIGtleV9leHBvcnRfcmVxdWlyZW1lbnQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZEZhY3RvclJlcXVpcmVtZW50XCJdIHwgbnVsbDtcbiAgICAgIG1lbWJlcl9sb2dpbl9yZXF1aXJlbWVudD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kRmFjdG9yUmVxdWlyZW1lbnRcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgb3JnIChtdXN0IGJlIGFscGhhbnVtZXJpYylcbiAgICAgICAqIEBleGFtcGxlIG15X29yZ19uYW1lXG4gICAgICAgKi9cbiAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyBub3RpZmljYXRpb24gZW5kcG9pbnQgY29uZmlndXJhdGlvbnNcbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludFwiXG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgbm90aWZpY2F0aW9uX2VuZHBvaW50cz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTm90aWZpY2F0aW9uRW5kcG9pbnRDb25maWd1cmF0aW9uXCJdW10gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBvcmdhbml6YXRpb25cbiAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAqL1xuICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICBwYXNza2V5X2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBhc3NrZXlDb25maWdcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiBvcmctd2lkZSBwb2xpY2llc1xuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJNYXhEYWlseVVuc3Rha2VcIjogNVxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJPcmlnaW5BbGxvd2xpc3RcIjogW1xuICAgICAgICogICAgICAgXCJodHRwczovL2V4YW1wbGUuY29tXCJcbiAgICAgICAqICAgICBdXG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W10gfCBudWxsO1xuICAgICAgcG9saWN5X2VuZ2luZV9jb25maWd1cmF0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQb2xpY3lFbmdpbmVDb25maWd1cmF0aW9uXCJdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiByZXF1aXJlX3Njb3BlX2NlaWxpbmcgKi9cbiAgICAgIHJlcXVpcmVfc2NvcGVfY2VpbGluZz86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiB0aGUgb3JnLXdpZGUgc2lnbiBydWxlc1xuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJUeFJlY2VpdmVyXCI6IFwiMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCJcbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBzaWduX3BvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdGhlIFRPVFAgZmFpbHVyZSBsaW1pdFxuICAgICAgICovXG4gICAgICB0b3RwX2ZhaWx1cmVfbGltaXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiB1c2VyLWV4cG9ydCBkZWxheVxuICAgICAgICovXG4gICAgICB1c2VyX2V4cG9ydF9kZWxheT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdXNlci1leHBvcnQgZGlzYWJsZWQgKi9cbiAgICAgIHVzZXJfZXhwb3J0X2Rpc2FibGVkPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IHZhbHVlIG9mIHVzZXItZXhwb3J0IHdpbmRvd1xuICAgICAgICovXG4gICAgICB1c2VyX2V4cG9ydF93aW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTmV3IG9yZyB2ZXJzaW9uXG4gICAgICAgKi9cbiAgICAgIHZlcnNpb246IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBib2R5IGZvciB1cGRhdGluZyBhIG5hbWVkIHBvbGljeS4gKi9cbiAgICBVcGRhdGVQb2xpY3lSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE5ldyBBY2Nlc3MtY29udHJvbCBlbnRyaWVzLiAqL1xuICAgICAgYWNsPzogdW5rbm93bjtcbiAgICAgIGVkaXRfcG9saWN5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFZGl0UG9saWN5XCJdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBuZXcgbWV0YWRhdGEuICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgbmV3IG5hbWUgZm9yIHRoZSBwb2xpY3kuICovXG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBuZXcgb3duZXIgZm9yIHRoZSBwb2xpY3kuICovXG4gICAgICBvd25lcj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE5ldyBwb2xpY3kgcnVsZXMuICovXG4gICAgICBydWxlcz86IHVua25vd25bXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgcmVxdWVzdCBmb3IgdXBkYXRpbmcgT3JnLWxldmVsIHBvbGljeSBzZWNyZXRzICovXG4gICAgVXBkYXRlUG9saWN5U2VjcmV0c1JlcXVlc3Q6IHtcbiAgICAgIGVkaXRfcG9saWN5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFZGl0UG9saWN5XCJdIHwgbnVsbDtcbiAgICB9O1xuICAgIFVwZGF0ZVJvbGVSZXF1ZXN0OiB7XG4gICAgICBlZGl0X3BvbGljeT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRWRpdFBvbGljeVwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZXMgdGhlIHJvbGUncyBgZW5hYmxlZGAgcHJvcGVydHkgdG8gdGhpcyB2YWx1ZS5cbiAgICAgICAqIE9uY2UgZGlzYWJsZWQsIGEgcm9sZSBjYW5ub3QgYmUgdXNlZDsgYW5kIGl0J3MgdG9rZW5zIGNhbm5vdCBiZSB1c2VkIGZvciBzaWduaW5nLlxuICAgICAgICovXG4gICAgICBlbmFibGVkPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIHJvbGUncyBrZXkgcG9saWNpZXMgKG9sZCBwb2xpY2llcyB3aWxsIGJlIG92ZXJ3cml0dGVuISkuXG4gICAgICAgKiBPbmx5IFwiZGVueVwiIHN0eWxlIHBvbGljaWVzIG1heSBiZSBzZXQuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlNvdXJjZUlwQWxsb3dsaXN0XCI6IFtcbiAgICAgICAqICAgICAgIFwiMTIzLjQ1Ni43OC45LzE2XCJcbiAgICAgICAqICAgICBdXG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogdW5rbm93bltdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdXBkYXRlIHRoaXMgcm9sZSdzIHNldHRpbmdzIGZvciByZXN0cmljdGluZyB3aGljaCBtZW1iZXIgcm9sZXMgYXJlIGFsbG93ZWQgdG9cbiAgICAgICAqIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIHJvbGUuXG4gICAgICAgKiBAZXhhbXBsZSB7XG4gICAgICAgKiAgIFwiQ3JlYXRlVG9rZW5cIjogW1xuICAgICAgICogICAgIFwiT3duZXJcIlxuICAgICAgICogICBdXG4gICAgICAgKiB9XG4gICAgICAgKi9cbiAgICAgIHJlc3RyaWN0ZWRfYWN0aW9ucz86IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdW107XG4gICAgICB9IHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVxdWVzdCB0byB1cGRhdGUgYW4gZXhpc3RpbmcgdXNlciAqL1xuICAgIFVwZGF0ZVVzZXJNZW1iZXJzaGlwUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBFbmFibGUgb3IgZGlzYWJsZSB1c2VyICovXG4gICAgICBkaXNhYmxlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgcm9sZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBGb3JtYXQ6IGJpbmFyeVxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgU0hBLTI1NiBoYXNoIG9mIHRoZSBvYmplY3QgZm9yIGFuIFtVcGxvYWRSZXF1ZXN0XS5cbiAgICAgKi9cbiAgICBVcGxvYWRPYmplY3RIYXNoOiBzdHJpbmc7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IGZvciB1cGxvYWRpbmcgYSB3YXNtIHBvbGljeSAqL1xuICAgIFVwbG9hZFdhc21Qb2xpY3lSZXF1ZXN0OiB7XG4gICAgICBoYXNoOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVwbG9hZE9iamVjdEhhc2hcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXNwb25zZSB0byBhIHJlcXVlc3QgZm9yIHVwbG9hZGluZyBhIHdhc20gcG9saWN5ICovXG4gICAgVXBsb2FkV2FzbVBvbGljeVJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgc2lnbmVkIFVSTCBmb3IgdXBsb2FkaW5nIHRoZSByZXF1ZXN0ZWQgd2FzbSBwb2xpY3kuICovXG4gICAgICBzaWduZWRfdXJsOiBzdHJpbmc7XG4gICAgfTtcbiAgICBVc2VyQ291bnREaW1lbnNpb25zOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFVzZXIncyBtZW1iZXJzaGlwIGluIHRoZSBvcmcgKi9cbiAgICAgIG1lbWJlcnNoaXA6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIG1ldHJpY3MgbXVzdCBpbmNsdWRlICdvcmdfaWQnIGFzIGEgZGltZW5zaW9uLiAqL1xuICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgcmVxdWVzdCB0byBjb21wbGV0ZSBhIHVzZXIgZXhwb3J0ICovXG4gICAgVXNlckV4cG9ydENvbXBsZXRlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBrZXkgdG8gYmUgZXhwb3J0ZWQuIFRoZSBrZXktaWQgbXVzdCBjb3JyZXNwb25kIHRvIHRoZSBvbmUgaW5cbiAgICAgICAqIHRoZSBzcGVjaWZpZWQgZXhwb3J0IHJlcXVlc3QsIGFuZCB0aGUgY2FsbGVyIG11c3Qgb3duIHRoaXMga2V5LlxuICAgICAgICogQGV4YW1wbGUgS2V5IzB4M2M0ZDkwQ2M1QWYxNjQ0QzNBM0IwMTNCYWE1NDg4OTk3MzgxRDdDOFxuICAgICAgICovXG4gICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBOSVNUIFAtMjU2IHB1YmxpYyBrZXkgKGJhc2U2NC1lbmNvZGVkIFNFQzEgd2l0aCBvciB3aXRob3V0IGNvbXByZXNzaW9uKVxuICAgICAgICogdG8gd2hpY2ggdGhlIGV4cG9ydCB3aWxsIGJlIGVuY3J5cHRlZC4gSWYgYSBwdWJsaWMga2V5IHdhcyBwcm92aWRlZCB3aGVuXG4gICAgICAgKiBgdXNlcl9leHBvcnRfaW5pdGAgd2FzIGNhbGxlZCwgdGhpcyBrZXkgbXVzdCBtYXRjaCB0aGF0IG9uZS5cbiAgICAgICAqIEBleGFtcGxlIEFrcExULzNkWEFwSnpYU2R1YVBRN2FweVQwQURCd3FrdDFlcy9hVDBpV1dmXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXk6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gZW5jcnlwdGVkIHVzZXItZXhwb3J0ICovXG4gICAgVXNlckV4cG9ydENvbXBsZXRlUmVzcG9uc2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBleHBvcnRlZCBrZXkgbWF0ZXJpYWwsIGVuY3J5cHRlZCB3aXRoIEFFUy0yNTYtR0NNIHVuZGVyIGEga2V5XG4gICAgICAgKiBkZXJpdmVkIGZyb20gdGhlIHB1YmxpYyBrZXkgc3VwcGxpZWQgaW4gdGhlIHJlcXVlc3QgdmlhIEhQS0UgKFJGQzkxODApXG4gICAgICAgKiB3aXRoIERIS0VNKFAtMjU2LCBIS0RGLVNIQTI1NikgYW5kIGJhc2U2NCBlbmNvZGVkLlxuICAgICAgICovXG4gICAgICBlbmNyeXB0ZWRfa2V5X21hdGVyaWFsOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZXBoZW1lcmFsIHB1YmxpYyBrZXkgdXNlZCBmb3IgSFBLRSBrZXkgZGVyaXZhdGlvbiBhcyBiYXNlNjQtZW5jb2RlZFxuICAgICAgICogdW5jb21wcmVzc2VkIFNFQzEgc2VyaWFsaXphdGlvbi5cbiAgICAgICAqL1xuICAgICAgZXBoZW1lcmFsX3B1YmxpY19rZXk6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHVzZXItaWQgdG8gd2hpY2ggdGhpcyBrZXkgYmVsb25ncy4gKi9cbiAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSByZXF1ZXN0IHRvIGluaXRpYXRlIGEgdXNlciBleHBvcnQgKi9cbiAgICBVc2VyRXhwb3J0SW5pdFJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUga2V5IHRvIGJlIGV4cG9ydGVkLiBUaGlzIGtleSBtdXN0IGJlIG93bmVkIGJ5IHRoZSBjYWxsZXIuXG4gICAgICAgKiBAZXhhbXBsZSBLZXkjMHgzYzRkOTBDYzVBZjE2NDRDM0EzQjAxM0JhYTU0ODg5OTczODFEN0M4XG4gICAgICAgKi9cbiAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQW4gb3B0aW9uYWwgTklTVCBQLTI1NiBwdWJsaWMga2V5IChiYXNlNjQtZW5jb2RlZCBTRUMxIHdpdGggb3Igd2l0aG91dFxuICAgICAgICogY29tcHJlc3Npb24pIHRvIHdoaWNoIHRoZSBleHBvcnQgd2lsbCBiZSBlbmNyeXB0ZWQuIElmIHByb3ZpZGVkLCB0aGlzXG4gICAgICAgKiBwdWJsaWMga2V5IE1VU1QgYmUgdGhlIG9uZSB1c2VkIHRvIGVuY3J5cHQgdGhlIGV4cG9ydCBvbmNlIHRoZSBkZWxheSBoYXNcbiAgICAgICAqIGV4cGlyZWQuIE90aGVyd2lzZSwgdGhlIHVzZXIgY2FuIHByb3ZpZGUgYW55IHB1YmxpYyBrZXkgd2hlbiBjb21wbGV0aW5nXG4gICAgICAgKiB0aGUgZXhwb3J0IHJlcXVlc3QgcG9zdCBkZWxheS5cbiAgICAgICAqXG4gICAgICAgKiBUaGlzIG9wdGlvbiBtYXkgcHJvdmlkZSBleHRyYSBzZWN1cml0eSB3aGVuIHRoZSB1c2VyIGhhcyBhIHNlY3VyZSBoYXJkd2FyZVxuICAgICAgICogZGV2aWNlIChlLmcuLCBhIHBob25lJ3Mgc2VjdXJlIGVsZW1lbnQgb3IgYSBZdWJpS2V5KSBpbiB3aGljaCBhIE5JU1QgUC0yNTZcbiAgICAgICAqIHNlY3JldCBrZXkgY2FuIGJlIGdlbmVyYXRlZC4gUHJvdmlkaW5nIHRoZSBjb3JyZXNwb25kaW5nIHB1YmxpYyBrZXkgaGVyZVxuICAgICAgICogZW5zdXJlcyB0aGF0IG9ubHkgdGhhdCBzcGVjaWZpYyBkZXZpY2Ugd2lsbCBiZSBjYXBhYmxlIG9mIGRlY3J5cHRpbmdcbiAgICAgICAqIHRoZSBleHBvcnQgY2lwaGVydGV4dC5cbiAgICAgICAqXG4gICAgICAgKiBJZiBubyBzZWN1cmUgaGFyZHdhcmUgZGV2aWNlIGlzIGF2YWlsYWJsZSB0byBzdG9yZSB0aGUgc2VjcmV0IGtleSwgdGhpc1xuICAgICAgICogb3B0aW9uIFNIT1VMRCBOT1QgYmUgdXNlZCBiZWNhdXNlIG9mIHRoZSByaXNrIG9mIHNlY3JldCBrZXkgdGhlZnQgZHVyaW5nXG4gICAgICAgKiB0aGUgZXhwb3J0IGRlbGF5IHBlcmlvZC5cbiAgICAgICAqIEBleGFtcGxlIEFrcExULzNkWEFwSnpYU2R1YVBRN2FweVQwQURCd3FrdDFlcy9hVDBpV1dmXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzcG9uc2UgdG8gYSBzdWNjZXNzZnVsIHVzZXItZXhwb3J0IGluaXQgcmVxdWVzdCAqL1xuICAgIFVzZXJFeHBvcnRJbml0UmVzcG9uc2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckV4cG9ydFJlcXVlc3RcIl0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUga2V5LWlkIGJlaW5nIHJlcXVlc3RlZC5cbiAgICAgICAqIEBleGFtcGxlIEtleSMweDNjNGQ5MENjNUFmMTY0NEMzQTNCMDEzQmFhNTQ4ODk5NzM4MUQ3QzhcbiAgICAgICAqL1xuICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBlbmRpbmcgdXNlci1leHBvcnQgcmVxdWVzdCBhcyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLiAqL1xuICAgIFVzZXJFeHBvcnRSZXF1ZXN0OiB7XG4gICAgICBleHBfZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmctaWQgaW4gd2hpY2ggdGhlIGtleSBpcyBob3VzZWQuXG4gICAgICAgKiBAZXhhbXBsZSBPcmcjZjM2MWVkNmItNWQxOS00Y2NmLWE0ZDUtZWJhOTM1ZGMwYjkwXG4gICAgICAgKi9cbiAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFNIQS0yNTYgaGFzaCBvZiB0aGUgcHVibGljIGtleSBwcm92aWRlZCBhdCBleHBvcnQgaW5pdGlhdGlvbixcbiAgICAgICAqIGlmIGFueS4gSWYgYSBrZXkgd2FzIHByb3ZpZGVkLCBvbmx5IHRoYXQga2V5IGNhbiBiZSB1c2VkIHRvIGNvbXBsZXRlXG4gICAgICAgKiB0aGUgZXhwb3J0IHByb2NlZHVyZS4gT3RoZXJ3aXNlLCBhbnkga2V5IGNhbiBiZSB1c2VkLlxuICAgICAgICpcbiAgICAgICAqIElNUE9SVEFOVDogaWYgYSBwdWJsaWMga2V5IGlzIHN1cHBsaWVkIGF0IGV4cG9ydCBpbml0aWF0aW9uLCBpdCBpc1xuICAgICAgICogU1RST05HTFkgUkVDT01NRU5ERUQgdGhhdCB0aGUgY29ycmVzcG9uZGluZyBzZWNyZXQga2V5IGJlIHN0b3JlZCBpblxuICAgICAgICogYSBzZWN1cmUgaGFyZHdhcmUgZGV2aWNlLCBlLmcuLCBhIFl1YmlLZXkgb3IgYSBwaG9uZSdzIHNlY3VyZSBlbGVtZW50LlxuICAgICAgICogSWYgbm8gc3VjaCBoYXJkd2FyZSBpcyBhdmFpbGFibGUsIHN1cHBseWluZyBhIHB1YmxpYyBrZXkgYXQgZXhwb3J0XG4gICAgICAgKiBpbml0aWF0aW9uIGlzIFNUUk9OR0xZIERJU0NPVVJBR0VEIGJlY2F1c2Ugb2YgdGhlIHJpc2sgb2YgdGhlZnQgZHVyaW5nXG4gICAgICAgKiB0aGUgZXhwb3J0IGRlbGF5IHBlcmlvZC5cbiAgICAgICAqXG4gICAgICAgKiAoU2VlIGFsc28gdGhlIGNvbW1lbnQgaW4gdGhlIGBwdWJsaWNfa2V5YCBmaWVsZCBvZiBgVXNlckluaXRSZXF1ZXN0YC4pXG4gICAgICAgKiBAZXhhbXBsZSBkZjQ1N2E5OGQ1NTM4NTQwZjU0ZDEzMTZiNTk3YTBmMzliOGQ5NmY0ODhmMTBhMmUzMWE5NTVjMTQ2ZmRmMWQzXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXlfaGFzaD86IHN0cmluZyB8IG51bGw7XG4gICAgICB2YWxpZF9lcG9jaDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgIH07XG4gICAgVXNlckluT3JnSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIncyBlbWFpbCAob3B0aW9uYWwpXG4gICAgICAgKiBAZXhhbXBsZSBhbGljZUBleGFtcGxlLmNvbVxuICAgICAgICovXG4gICAgICBlbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIHVzZXJcbiAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIHVzZXIgaGFzIGV2ZXIgc3VjY2Vzc2Z1bGx5IGxvZ2dlZCBpbiAqL1xuICAgICAgaW5pdGlhbGl6ZWQ/OiBib29sZWFuO1xuICAgICAgbWVtYmVyc2hpcDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCB1c2VyIG5hbWUuICovXG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIHN0YXR1czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJzaGlwU3RhdHVzXCJdO1xuICAgICAgdmVyaWZpZWRfZW1haWw/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlZlcmlmaWVkRW1haWxcIl0gfCBudWxsO1xuICAgIH07XG4gICAgVXNlckluT3JnSW5mb1dpdGhJZGVudGl0eToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIncyBlbWFpbCAob3B0aW9uYWwpXG4gICAgICAgKiBAZXhhbXBsZSBhbGljZUBleGFtcGxlLmNvbVxuICAgICAgICovXG4gICAgICBlbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIHVzZXJcbiAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIHVzZXIgaGFzIGV2ZXIgc3VjY2Vzc2Z1bGx5IGxvZ2dlZCBpbiAqL1xuICAgICAgaW5pdGlhbGl6ZWQ/OiBib29sZWFuO1xuICAgICAgbWVtYmVyc2hpcDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCB1c2VyIG5hbWUuICovXG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIHN0YXR1czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJzaGlwU3RhdHVzXCJdO1xuICAgICAgdmVyaWZpZWRfZW1haWw/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlZlcmlmaWVkRW1haWxcIl0gfCBudWxsO1xuICAgIH0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHRoaXJkLXBhcnR5IGlkZW50aXRpZXMgdmlhIHdoaWNoIHRoZSB1c2VyIHdhcyBmb3VuZCAqL1xuICAgICAgaWRlbnRpdGllcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRlbnRpdHlJbmZvXCJdW107XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYSB1c2VyJ3MgbWVtYmVyc2hpcCBpbiBhbiBvcmdhbml6YXRpb25cbiAgICAgKiAod2l0aG91dCBpbmNsdWRpbmcgYW55IGluZm8gYWJvdXQgdGhlIHVzZXIpXG4gICAgICovXG4gICAgVXNlckluT3JnTWVtYmVyc2hpcDoge1xuICAgICAgbWVtYmVyc2hpcDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3JnYW5pemF0aW9uIGlkXG4gICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgKi9cbiAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1lbWJlcnNoaXBTdGF0dXNcIl07XG4gICAgfTtcbiAgICBVc2VySW5Sb2xlSW5mbzoge1xuICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgVXNlckluZm86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGVtYWlsXG4gICAgICAgKiBAZXhhbXBsZSBhbGljZUBleGFtcGxlLmNvbVxuICAgICAgICovXG4gICAgICBlbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBtdWx0aS1mYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kcyBjb25maWd1cmVkIGZvciB0aGlzIHVzZXIgKi9cbiAgICAgIG1mYTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb25maWd1cmVkTWZhXCJdW107XG4gICAgICBtZmFfcG9saWN5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFQb2xpY3lcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbmFtZVxuICAgICAgICogQGV4YW1wbGUgQWxpY2VcbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXByZWNhdGVkXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWxsIG9yZ2FuaXphdGlvbnMgdGhlIHVzZXIgYmVsb25ncyB0by4gRGVwcmVjYXRlZCBpbiBmYXZvciBvZiAnb3JncycuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwiT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVwiXG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIG9yZ19pZHM6IHN0cmluZ1tdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgb3JnYW5pemF0aW9ucyB0aGUgdXNlciBiZWxvbmdzIHRvLCBpbmNsdWRpbmcgdGhlIG1lbWJlcnNoaXAgcm9sZSBpbiBlYWNoLiAqL1xuICAgICAgb3JnczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VySW5PcmdNZW1iZXJzaGlwXCJdW107XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlclxuICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAqL1xuICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgICAgdmVyaWZpZWRfZW1haWw/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlZlcmlmaWVkRW1haWxcIl0gfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzcG9uc2UgdG8gdGhlIHVzZXIvb3JncyBlbmRwb2ludCAqL1xuICAgIFVzZXJPcmdzUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2Ygb3JncyB0aGlzIHVzZXIgaXMgYSBtZW1iZXIgb2YgKi9cbiAgICAgIG9yZ3M6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3JnRGF0YVwiXVtdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEEgV2ViQXV0aG4gUmVseWluZyBQYXJ0eSBtYXkgcmVxdWlyZSB1c2VyIHZlcmlmaWNhdGlvbiBmb3Igc29tZSBvZiBpdHNcbiAgICAgKiBvcGVyYXRpb25zIGJ1dCBub3QgZm9yIG90aGVycywgYW5kIG1heSB1c2UgdGhpcyB0eXBlIHRvIGV4cHJlc3MgaXRzIG5lZWRzLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2VudW0tdXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50XG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6IFwicmVxdWlyZWRcIiB8IFwiZGlzY291cmFnZWRcIiB8IFwicHJlZmVycmVkXCI7XG4gICAgVmVyaWZpZWRFbWFpbDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBFbWFpbCBhZGRyZXNzICovXG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTGFzdCB0aW1lIHRoaXMgcmVjb3JkIHdhcyB1cGRhdGVkIChpbiBzZWNvbmRzIHNpbmNlIHVuaXggZXBvY2gpXG4gICAgICAgKi9cbiAgICAgIHVwZGF0ZWRfYXQ6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBbiBleGl0IHZvbHVudGFyaWx5IHN1Ym1pdHRlZCBhIHZhbGlkYXRvciB3aG8gd2lzaGVzIHRvIHdpdGhkcmF3LlxuICAgICAqIFRoZSBzY2hlbWEgZm9yIHRoaXMgbWVzc2FnZSBpcyBkZWZpbmVkXG4gICAgICogW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9jb25zZW5zdXMtc3BlY3MvYmxvYi92MS4wLjEvc3BlY3MvcGhhc2UwL2JlYWNvbi1jaGFpbi5tZCNzaWduZWR2b2x1bnRhcnlleGl0KS5cbiAgICAgKi9cbiAgICBWb2x1bnRhcnlFeGl0OiB7XG4gICAgICBlcG9jaDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEluZGV4IG9mIHRoZSBleGl0aW5nIHZhbGlkYXRvci5cbiAgICAgICAqIEBleGFtcGxlIDI1NlxuICAgICAgICovXG4gICAgICB2YWxpZGF0b3JfaW5kZXg6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIGZyb20gaW52b2tpbmcgYSBXYXNtIHBvbGljeS4gKi9cbiAgICBXYXNtUG9saWN5UmVzcG9uc2U6XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICByZXNwb25zZTogXCJBbGxvd1wiO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZWFzb24gZm9yIHRoZSBkZW5pYWwuICovXG4gICAgICAgICAgcmVhc29uOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgcmVzcG9uc2U6IFwiRGVueVwiO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBlcnJvciBmcm9tIHRoZSBQb2xpY3kgRW5naW5lLiAqL1xuICAgICAgICAgIGVycm9yOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgcmVzcG9uc2U6IFwiRXJyb3JcIjtcbiAgICAgICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgd2FzbSBwb2xpY3kgcnVsZSB0aGF0IGNhbiBiZSBleGVjdXRlZCBpbiB0aGUgd2FzbSBlbmdpbmUuICovXG4gICAgV2FzbVJ1bGU6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIFNIQS0yNTYgaGFzaCBvZiBhIHdhc20gcG9saWN5IHRoYXQgY2FuIGJlIHVzZWQgdG8gbG9vayBpdCB1cCBpbiB0aGUgcG9saWN5IHN0b3JlLiAqL1xuICAgICAgaGFzaDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSWQgb2YgdGhlIHBvbGljeSB0aGlzIHdhc20gcnVsZSBiZWxvbmdzIHRvLiAqL1xuICAgICAgcG9saWN5X2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIG9mZmljaWFsIHdlYmFwcCBvcmlnaW4gaXMgYXV0b21hdGljYWxseSBhbGxvd2VkLiBgXCJsaW1pdGVkXCJgIGlzIHRyZWF0ZWQgdGhlIHNhbWUgYXMgYHRydWVgIGJ5IHRoZSBiYWNrIGVuZCwgYnV0IHJlcG9ydGVkIGFzLWlzIHRvIGNsaWVudHMgKi9cbiAgICBXZWJhcHBFbmFibGVkOiBib29sZWFuIHwgXCJsaW1pdGVkXCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFsbG93ZWQgd2ViaG9vayBtZXRob2RzXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBXZWJob29rTWV0aG9kOiBcIkdFVFwiIHwgXCJQT1NUXCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBwYXlsb2FkIHRoYXQgaXMgc2VudCB0byB0aGUgd2ViaG9vay5cbiAgICAgKlxuICAgICAqIFRoZSB3ZWJob29rIHNob3VsZCByZXNwb25kIHdpdGggSFRUUCBzdGF0dXMgY29kZSAyMDAgaWYgdGhlIG9wZXJhdGlvbiBpcyBwZXJtaXR0ZWQuXG4gICAgICpcbiAgICAgKiBBbGwgbm9uLTIwMCBzdGF0dXMgY29kZXMgaW1wbHkgdGhhdCB0aGUgb3BlcmF0aW9uIGlzIGRlbmllZDsgYW55IHJlc3BvbnNlIGJvZHkgcmV0dXJuZWRcbiAgICAgKiBieSB0aGUgd2ViaG9vayB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBlcnJvciByZXNwb25zZSBzZW50IGJhY2sgdG8gdGhlIGNsaWVudC5cbiAgICAgKi9cbiAgICBXZWJob29rUGF5bG9hZDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYWRkcmVzcyAobWF0ZXJpYWwgaWQpIG9mIHRoZSBrZXkgdXNlZCB0byBzaWduIHRoZSByZXF1ZXN0ICovXG4gICAgICBrZXlfYWRkcmVzczogc3RyaW5nO1xuICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICAgIG9wZXJhdGlvbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPcGVyYXRpb25LaW5kXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcGF5bG9hZCAoaWYgYW55KSBvZiB0aGUgc2lnbiBvcGVyYXRpb24gKi9cbiAgICAgIHJlcXVlc3Q/OiB1bmtub3duO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciB0aGUgW0Rlbnk6OldlYmhvb2tdIHBvbGljeS4gKi9cbiAgICBXZWJob29rUG9saWN5UGFyYW1zOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIEhUVFAgaGVhZGVycyB0byBzZXQgKi9cbiAgICAgIGhlYWRlcnM/OiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICAgIH07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIEhUVFAgbWV0aG9kIHRvIHVzZS4gRGVmYXVsdHMgdG8gUE9TVC4gKi9cbiAgICAgIG1ldGhvZD86IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEN1YmVTaWduZXIgb3BlcmF0aW9ucyB0byB3aGljaCB0aGlzIHBvbGljeSBzaG91bGQgYXBwbHkuXG4gICAgICAgKiBXaGVuIG9taXR0ZWQsIGFwcGxpZXMgdG8gYWxsIG9wZXJhdGlvbnMuXG4gICAgICAgKi9cbiAgICAgIHJlc3RyaWN0ZWRfb3BlcmF0aW9ucz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3BlcmF0aW9uS2luZFwiXVtdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgZXhlY3V0aW9uIHRpbWVvdXQgaW4gc2Vjb25kczsgbXVzdCBub3QgZXhjZWVkIDUgc2Vjb25kcy5cbiAgICAgICAqL1xuICAgICAgdGltZW91dD86IG51bWJlcjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHVybCBvZiB0aGUgd2ViaG9vayAqL1xuICAgICAgdXJsOiBzdHJpbmc7XG4gICAgfTtcbiAgICBXaGVyZUFuZFdoZW46IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU291cmNlSXBcIl0gJiB7XG4gICAgICB0aW1lOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSB3aXRoZHJhd2FsIGVudHJ5IGluIFtgV2l0aGRyYXdIaXN0b3J5UmVzcG9uc2VgXS4gKi9cbiAgICBXaXRoZHJhd0hpc3RvcnlFbnRyeToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiBhZGRyZXNzLiAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaXRoZHJhd2FsIGFtb3VudCwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGFtb3VudDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGltZSB0aGUgd2l0aGRyYXdhbCB3YXMgcmVxdWVzdGVkIChCaW5hbmNlIHJldHVybnMgYSBVVEMgc3RyaW5nLFxuICAgICAgICogZS5nLiBgXCIyMDE5LTA5LTI0IDEyOjQzOjQ1XCJgKS5cbiAgICAgICAqL1xuICAgICAgYXBwbHlUaW1lOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFzc2V0IHN5bWJvbCAoZS5nLiBgXCJVU0RUXCJgLCBgXCJCVENcImApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGltZSB0aGUgd2l0aGRyYXdhbCBjb21wbGV0ZWQgKFVUQyBzdHJpbmcpLCBwcmVzZW50IG9uY2VcbiAgICAgICAqIGBzdGF0dXMgPT0gNmAuXG4gICAgICAgKi9cbiAgICAgIGNvbXBsZXRlVGltZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2Ygb24tY2hhaW4gY29uZmlybWF0aW9ucy5cbiAgICAgICAqL1xuICAgICAgY29uZmlybU5vPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEJpbmFuY2UtYXNzaWduZWQgd2l0aGRyYXdhbCBpZC4gTWF0Y2hlcyB0aGUgYGlkYCByZXR1cm5lZCBieVxuICAgICAgICogW2BXaXRoZHJhd1Jlc3BvbnNlYF0uXG4gICAgICAgKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZhaWx1cmUgcmVhc29uIHdoZW4gdGhlIHdpdGhkcmF3YWwgd2FzIHJlamVjdGVkLiAqL1xuICAgICAgaW5mbz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEJsb2NrY2hhaW4gbmV0d29yayBpZGVudGlmaWVyIChlLmcuIGBcIkJTQ1wiYCwgYFwiRVRIXCJgKS4gKi9cbiAgICAgIG5ldHdvcms/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2l0aGRyYXdhbCBzdGF0dXMuIEJpbmFuY2UgdmFsdWVzOiBgMGAgPSBFbWFpbCBTZW50LFxuICAgICAgICogYDJgID0gQXdhaXRpbmcgQXBwcm92YWwsIGAzYCA9IFJlamVjdGVkLCBgNGAgPSBQcm9jZXNzaW5nLFxuICAgICAgICogYDZgID0gQ29tcGxldGVkLiBMZWZ0IGFzIGB1OGAgZm9yIGZvcndhcmQgY29tcGF0aWJpbGl0eS5cbiAgICAgICAqL1xuICAgICAgc3RhdHVzOiBudW1iZXI7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE5ldHdvcmsgZmVlIGNoYXJnZWQgZm9yIHRoZSB3aXRoZHJhd2FsLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgdHJhbnNhY3Rpb25GZWU6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIGAwYCA9IGV4dGVybmFsIHRyYW5zZmVyLCBgMWAgPSBpbnRlcm5hbCAoQmluYW5jZeKGlEJpbmFuY2UpIHRyYW5zZmVyLlxuICAgICAgICovXG4gICAgICB0cmFuc2ZlclR5cGU6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9uLWNoYWluIHRyYW5zYWN0aW9uIGhhc2gsIG9uY2UgQmluYW5jZSBoYXMgYnJvYWRjYXN0IHRoZSB3aXRoZHJhd2FsLlxuICAgICAgICogTWF5IGJlIGVtcHR5IHVudGlsIHRoZW4uXG4gICAgICAgKi9cbiAgICAgIHR4SWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gU291cmNlIHdhbGxldDogYDBgID0gc3BvdCB3YWxsZXQsIGAxYCA9IGZ1bmRpbmcgd2FsbGV0LlxuICAgICAgICovXG4gICAgICB3YWxsZXRUeXBlOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBDbGllbnQtc3VwcGxpZWQgd2l0aGRyYXdhbCBpZCwgaWYgb25lIHdhcyBzZXQgb24gdGhlIG9yaWdpbmFsXG4gICAgICAgKiB3aXRoZHJhd2FsIGNhbGwuXG4gICAgICAgKi9cbiAgICAgIHdpdGhkcmF3T3JkZXJJZD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYEdFVCAvc2FwaS92MS9jYXBpdGFsL3dpdGhkcmF3L2hpc3RvcnlgLlxuICAgICAqXG4gICAgICogUmV0dXJucyB0aGUgbWFzdGVyIGFjY291bnQncyB3aXRoZHJhd2FsIGhpc3RvcnkuIEFsbCBmaWx0ZXJzIGFyZVxuICAgICAqIG9wdGlvbmFsOyBpZiBgc3RhcnRfdGltZWAvYGVuZF90aW1lYCBhcmUgb21pdHRlZCwgQmluYW5jZSByZXR1cm5zIHRoZVxuICAgICAqIG1vc3QgcmVjZW50IDkwIGRheXMuIFVzZSBgaWRfbGlzdGAgdG8gbG9vayB1cCBzcGVjaWZpYyB3aXRoZHJhd2FscyBieVxuICAgICAqIHRoZSBgaWRgIHJldHVybmVkIGZyb20gW2BCaW5hbmNlUnBjOjpXaXRoZHJhd2BdLCBvciBgd2l0aGRyYXdfb3JkZXJfaWRgXG4gICAgICogdG8gbG9vayBvbmUgdXAgYnkgaXRzIGNsaWVudC1zdXBwbGllZCBpZC5cbiAgICAgKi9cbiAgICBXaXRoZHJhd0hpc3RvcnlSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZpbHRlciB0byBhIHNwZWNpZmljIGFzc2V0IChlLmcuIGBcIlVTRFRcImApLiAqL1xuICAgICAgY29pbj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXaW5kb3cgZW5kIChtcyBzaW5jZSBlcG9jaCkuXG4gICAgICAgKi9cbiAgICAgIGVuZFRpbWU/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgQmluYW5jZS1hc3NpZ25lZCB3aXRoZHJhd2FsIGlkcyAodGhlIGBpZGBcbiAgICAgICAqIGZpZWxkIG9mIGBXaXRoZHJhd1Jlc3BvbnNlYCkuIFVwIHRvIDQ1IGlkcyBwZXIgcXVlcnksIHBlciBCaW5hbmNlLlxuICAgICAgICovXG4gICAgICBpZExpc3Q/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUGFnZSBzaXplIChCaW5hbmNlIGRlZmF1bHQgYW5kIG1heDogMTAwMCkuXG4gICAgICAgKi9cbiAgICAgIGxpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFBhZ2luYXRpb24gb2Zmc2V0LlxuICAgICAgICovXG4gICAgICBvZmZzZXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2luZG93IHN0YXJ0IChtcyBzaW5jZSBlcG9jaCkuXG4gICAgICAgKi9cbiAgICAgIHN0YXJ0VGltZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgYnkgd2l0aGRyYXdhbCBzdGF0dXMuIEJpbmFuY2UgdmFsdWVzOlxuICAgICAgICogYDBgID0gRW1haWwgU2VudCwgYDJgID0gQXdhaXRpbmcgQXBwcm92YWwsIGAzYCA9IFJlamVjdGVkLFxuICAgICAgICogYDRgID0gUHJvY2Vzc2luZywgYDZgID0gQ29tcGxldGVkLiBMZWZ0IGFzIGB1OGAgZm9yIGZvcndhcmRcbiAgICAgICAqIGNvbXBhdGliaWxpdHkuXG4gICAgICAgKi9cbiAgICAgIHN0YXR1cz86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgYnkgdGhlIGNsaWVudC1zdXBwbGllZCB3aXRoZHJhd2FsIGlkIG9yaWdpbmFsbHkgcGFzc2VkIHRvXG4gICAgICAgKiBbYFdpdGhkcmF3UmVxdWVzdDo6d2l0aGRyYXdfb3JkZXJfaWRgXS5cbiAgICAgICAqL1xuICAgICAgd2l0aGRyYXdPcmRlcklkPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCBieSBgY3NfYmluYW5jZVdpdGhkcmF3SGlzdG9yeWAuXG4gICAgICpcbiAgICAgKiBCaW5hbmNlIHJldHVybnMgYSB0b3AtbGV2ZWwgSlNPTiBhcnJheTsgdGhpcyBuZXd0eXBlIHByZXNlcnZlcyB0aGF0IHdpcmVcbiAgICAgKiBmb3JtYXQgd2hpbGUgZ2l2aW5nIHRoZSByZXNwb25zZSBhIG5hbWVkIHR5cGUgaW4gdGhlIE9wZW5BUEkgc2NoZW1hLlxuICAgICAqL1xuICAgIFdpdGhkcmF3SGlzdG9yeVJlc3BvbnNlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIldpdGhkcmF3SGlzdG9yeUVudHJ5XCJdW107XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIGBQT1NUIC9zYXBpL3YxL2NhcGl0YWwvd2l0aGRyYXcvYXBwbHlgLlxuICAgICAqXG4gICAgICogU3VibWl0cyBhIHdpdGhkcmF3YWwgb2YgYGFtb3VudGAgb2YgYGNvaW5gIHRvIHRoZSBnaXZlbiBleHRlcm5hbCBgYWRkcmVzc2AuXG4gICAgICogVGhlIHNpZ25pbmcga2V5J3MgYWNjb3VudCBtdXN0IGhhdmUgd2l0aGRyYXdhbCBwZXJtaXNzaW9ucyBlbmFibGVkLlxuICAgICAqL1xuICAgIFdpdGhkcmF3UmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiBhZGRyZXNzLiAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gU2Vjb25kYXJ5IGFkZHJlc3MgaWRlbnRpZmllciByZXF1aXJlZCBieSBzb21lIGFzc2V0cyAoZS5nLiBtZW1vIGZvclxuICAgICAgICogWFJQLCB0YWcgZm9yIFhMTSkuXG4gICAgICAgKi9cbiAgICAgIGFkZHJlc3NUYWc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGFtb3VudCBiZWluZyB3aXRoZHJhd24sIGZvcm1hdHRlZCBhcyBhIGRlY2ltYWwgc3RyaW5nIChlLmcuIGBcIjAuMVwiYCkuXG4gICAgICAgKiBTZW50IHZlcmJhdGltOiBCaW5hbmNlIGlzIHN0cmljdCBhYm91dCBkZWNpbWFsIGZvcm1hdHRpbmcuXG4gICAgICAgKi9cbiAgICAgIGFtb3VudDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYXNzZXQgc3ltYm9sIGJlaW5nIHdpdGhkcmF3biAoZS5nLiBgXCJVU0RUXCJgLCBgXCJCVENcImApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBmb3IgdGhlIHdpdGhkcmF3YWwuICovXG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE5ldHdvcmsgaWRlbnRpZmllciAoZS5nLiBgXCJCU0NcImAsIGBcIkVUSFwiYCkuIElmIG9taXR0ZWQsIEJpbmFuY2UgcGlja3NcbiAgICAgICAqIHRoZSBkZWZhdWx0IG5ldHdvcmsgZm9yIHRoZSBhc3NldC5cbiAgICAgICAqL1xuICAgICAgbmV0d29yaz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBgdHJ1ZWAsIHRoZSB3aXRoZHJhd2FsIGZlZSBpcyBkZWR1Y3RlZCBmcm9tIHRoZSBkZXN0aW5hdGlvbiBhbW91bnQ7XG4gICAgICAgKiBpZiBgZmFsc2VgIChCaW5hbmNlIGRlZmF1bHQpLCBpdCBpcyBkZWR1Y3RlZCBmcm9tIHRoZSBhY2NvdW50IGJhbGFuY2VcbiAgICAgICAqIGluIGFkZGl0aW9uIHRvIGBhbW91bnRgLlxuICAgICAgICovXG4gICAgICB0cmFuc2FjdGlvbkZlZUZsYWc/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFNvdXJjZSB3YWxsZXQ6IGAwYCA9IHNwb3Qgd2FsbGV0IChkZWZhdWx0KSwgYDFgID0gZnVuZGluZyB3YWxsZXQuXG4gICAgICAgKi9cbiAgICAgIHdhbGxldFR5cGU/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ2xpZW50LXN1cHBsaWVkIHdpdGhkcmF3YWwgaWQsIHJldHVybmVkIGJ5IEJpbmFuY2UgYXMgYHdpdGhkcmF3T3JkZXJJZGBcbiAgICAgICAqIGluIHN1YnNlcXVlbnQgd2l0aGRyYXdhbC1oaXN0b3J5IHF1ZXJpZXMuXG4gICAgICAgKi9cbiAgICAgIHdpdGhkcmF3T3JkZXJJZD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19iaW5hbmNlV2l0aGRyYXdgLiAqL1xuICAgIFdpdGhkcmF3UmVzcG9uc2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEJpbmFuY2UtYXNzaWduZWQgd2l0aGRyYXdhbCBpZC4gVXNlZCB0byBsb29rIHRoZSByZXF1ZXN0IHVwIGxhdGVyIHZpYVxuICAgICAgICogdGhlIHdpdGhkcmF3YWwtaGlzdG9yeSBlbmRwb2ludC5cbiAgICAgICAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICB9O1xuICByZXNwb25zZXM6IHtcbiAgICBBZGRUaGlyZFBhcnR5VXNlclJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmICovXG4gICAgICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIHRvIHRoZSBpZHAgYXV0aGVudGljYXRlIGVuZHBvaW50ICovXG4gICAgQXV0aGVudGljYXRpb25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gT0lEQyB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIEN1YmVTaWduZXIgKi9cbiAgICAgICAgICBpZF90b2tlbjogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEJhYnlsb25Db3ZTaWduUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzbGFzaC11bmJvbmRpbmcgdHJhbnNhY3Rpb24gc2lnbmF0dXJlcyBhcyBhbiBhcnJheSBvZiBoZXggc3RyaW5ncyB3aXRoIG5vIDB4IHByZWZpeFxuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIFwiMDJlMjFhN2IwNTE5NTM5ZWY2NzBmNzlkMWMyNWE1NGY5MGIwYzZkOWZkYjU2YTdkZTgxM2ZiMjA3MDMzMDMyZmZmYWQ4YWFhZmViMWI3N2RkOWVhOGYxN2RhZGNmMjk3Njk2YmJmNWE0MTMzMjkyZjM1MTViODZiYjljMmQ3OGQ5Y1wiXG4gICAgICAgICAgICogXVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNsYXNoX3VuYm9uZGluZ190cmFuc2FjdGlvbnNfc2lnbmF0dXJlczogc3RyaW5nW107XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzbGFzaGluZyB0cmFuc2FjdGlvbiBzaWduYXR1cmVzIGFzIGFuIGFycmF5IG9mIGhleCBzdHJpbmdzIHdpdGggbm8gMHggcHJlZml4XG4gICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAqICAgXCIwMzA3NWVjYTlkMTc2ZDE2MDVkNmMwOTZjMTExZTlhNGY4ZDg3MzlhYzk3MDhjMWRmM2VkNTE2MTA2ZTdhYjEzODdhMzkyNGE2NjUyYWNmMmUzNTI0MzU5NzMxY2ExZmJiMzM4YTNhZmIxYTY3ZjZlYTE5YzIwN2I2ZmY0NjZhNWFkXCIsXG4gICAgICAgICAgICogICBcIjAyMjIyNDQ5M2Y0Y2ZmYWQ1Yjg0MDc2ZGIzMmRkOGM0OWEyOGZmNDhhZjRlMTllMmJjYzk5NTNmZjgwMzQ3YmE2ZTgzNDNjZjdhNDRlNzRhOTZmZjcxZWE1OWEwM2I0MDE2NmU4NWIwZDEzNTU5NTRlMDRhNDQyN2RjOGQ2MzdmZjBcIlxuICAgICAgICAgICAqIF1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBzbGFzaGluZ190cmFuc2FjdGlvbnNfc2lnbmF0dXJlczogc3RyaW5nW107XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzaWduYXR1cmUgdGhhdCBhbGxvd3MgZXhwYW5kaW5nIGEgc3Rha2UgYnkgc3BlbmRpbmcgdGhlIGN1cnJlbnQgYWN0aXZlXG4gICAgICAgICAgICogc3Rha2UgdHJhbnNhY3Rpb24gaW50byBhIG5ldyBzdGFraW5nIHRyYW5zYWN0aW9uLiBBIHZhbHVlIGlzIHByZXNlbnQgaWZmIHRoZVxuICAgICAgICAgICAqIGNvcnJlc3BvbmRpbmcgcmVxdWVzdCBpbmNsdWRlZCBhIGBzdGFrZV9leHBhbnNpb25gIHZhbHVlLlxuICAgICAgICAgICAqIEBleGFtcGxlIGI1NzNlMzE4ODAzZmQ3YWVlMWJlNWI2YjE4ZDQ5NmNjNjBlY2M1MjQyOWRiZDQ3N2E4NzkyMTdjM2VkMjZhNzk1Y2I0ZjRlODgwYWFmZjNhNmFkNjYzMzVlNTQwNGZhNTFjYWViNDk2NGYwYzlmNzU2MjczNzg2NGUzYmRlNWJjXG4gICAgICAgICAgICovXG4gICAgICAgICAgc3Rha2VfZXhwYW5zaW9uX3RyYW5zYWN0aW9uX3NpZ25hdHVyZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB1bmJvbmRpbmcgdHJhbnNhY3Rpb24gc2lnbmF0dXJlIGFzIGhleCBzdHJpbmcgd2l0aCBubyAweCBwcmVmaXhcbiAgICAgICAgICAgKiBAZXhhbXBsZSBiNTczZTMxODgwM2ZkN2FlZTFiZTViNmIxOGQ0OTZjYzYwZWNjNTI0MjlkYmQ0NzdhODc5MjE3YzNlZDI2YTc5NWNiNGY0ZTg4MGFhZmYzYTZhZDY2MzM1ZTU0MDRmYTUxY2FlYjQ5NjRmMGM5Zjc1NjI3Mzc4NjRlM2JkZTViY1xuICAgICAgICAgICAqL1xuICAgICAgICAgIHVuYm9uZGluZ190cmFuc2FjdGlvbl9zaWduYXR1cmU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBCYWJ5bG9uUmVnaXN0cmF0aW9uUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBCYWJ5bG9uIGFkZHJlc3MgdGhhdCB3aWxsIHJlY2VpdmUgdGhlIHN0YWtpbmcgcmV3YXJkcyBmb3IgdGhpcyBkZXBvc2l0LlxuICAgICAgICAgICAqXG4gICAgICAgICAgICogVGhpcyB2YWx1ZSB3aWxsIGNvcnJlc3BvbmQgdG8gdGhlIGBiYm5fYWRkcmAgdmFsdWUgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0LFxuICAgICAgICAgICAqIGJ1dCBpdCB3aWxsIGFsd2F5cyBoYXZlIGEgYGJibmAgaHVtYW4tcmVhZGFibGUgcGFydC5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBiYm4xbjVhbm1jMGtrcmg3MHlqeTdmNmYzOTljNzR5ZDA5eGw1dGVmZm1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBiYm5fYWRkcjogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZGVwb3NpdCB0cmFuc2FjdGlvbiBQU0JULiBUaGlzIFBTQlQgaW5jbHVkZXMgc2lnbmF0dXJlcyBvbiBhbnlcbiAgICAgICAgICAgKiBpbnB1dHMgY29udHJvbGxlZCBieSB0aGUgc3Rha2VyIHRhcHJvb3Qga2V5IHNwZWNpZmllZCBpbiB0aGUgcmVxdWVzdC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBkZXBvc2l0OiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZGVwb3NpdCB0cmFuc2FjdGlvbiBmZWUgaW4gc2F0cy5cbiAgICAgICAgICAgKiBAZXhhbXBsZSAxMzM3XG4gICAgICAgICAgICovXG4gICAgICAgICAgZGVwb3NpdF9mZWU6IG51bWJlcjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHByb29mIG9mIHBvc3Nlc3Npb24sIGkuZS4sIGEgQklQMzIyIHNpZ25hdHVyZSBvbiB0aGUgc3Rha2VyJ3NcbiAgICAgICAgICAgKiBCYWJ5bG9uIGFkZHJlc3Mgc2lnbmVkIGJ5IHRoZSBzdGFrZXIgdGFwcm9vdCBrZXkuIFRoaXMgaXMgYSBCaXRjb2luXG4gICAgICAgICAgICogd2l0bmVzcyBzdGFjayBpbiBCaXRjb2luIGNvbnNlbnN1cyBoZXggZW5jb2RpbmcuXG4gICAgICAgICAgICovXG4gICAgICAgICAgcG9wOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgc2xhc2gtZGVwb3NpdCB0cmFuc2FjdGlvbiBpbiBCaXRjb2luIGNvbnNlbnN1cyBoZXggZW5jb2RpbmcuICovXG4gICAgICAgICAgc2xhc2hfZGVwb3NpdDogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3Rha2VyIHRhcHJvb3Qga2V5J3Mgc2lnbmF0dXJlIG9uIHRoZSBzbGFzaC1kZXBvc2l0IHRyYW5zYWN0aW9uLlxuICAgICAgICAgICAqIFRoaXMgaXMgYSBCSVAzNDAgc2lnbmF0dXJlIGluIGhleCBmb3JtYXQuXG4gICAgICAgICAgICovXG4gICAgICAgICAgc2xhc2hfZGVwb3NpdF9zaWc6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzbGFzaC11bmJvbmQgdHJhbnNhY3Rpb24gaW4gQml0Y29pbiBjb25zZW5zdXMgaGV4IGVuY29kaW5nLiAqL1xuICAgICAgICAgIHNsYXNoX3VuYm9uZDogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3Rha2VyIHRhcHJvb3Qga2V5J3Mgc2lnbmF0dXJlIG9uIHRoZSBzbGFzaC11bmJvbmQgdHJhbnNhY3Rpb24uXG4gICAgICAgICAgICogVGhpcyBpcyBhIEJJUDM0MCBzaWduYXR1cmUgaW4gaGV4IGZvcm1hdC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBzbGFzaF91bmJvbmRfc2lnOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgKHVuc2lnbmVkKSB1bmJvbmRpbmcgdHJhbnNhY3Rpb24gaW4gQml0Y29pbiBjb25zZW5zdXMgaGV4IGVuY29kaW5nLiAqL1xuICAgICAgICAgIHVuYm9uZDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEJhYnlsb25TdGFraW5nUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdHJhbnNhY3Rpb24gZmVlIGluIHNhdHNcbiAgICAgICAgICAgKiBAZXhhbXBsZSAxMzM3XG4gICAgICAgICAgICovXG4gICAgICAgICAgZmVlOiBudW1iZXI7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBQU0JUIGluIGVpdGhlciBoZXggb3IgYmFzZTY0IHNlcmlhbGl6YXRpb25cbiAgICAgICAgICAgKiBAZXhhbXBsZSA3MDczNjI3NGZmMDEwMDVlLi4uXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHNidDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgcmV0dXJuZWQgYnkgdGhlIHR5cGVkIGBiaW5hbmNlX3NpZ25gIGVuZHBvaW50LiAqL1xuICAgIEJpbmFuY2VTaWduUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBmdWxsIHNpZ25lZCBxdWVyeSBzdHJpbmcsIHJlYWR5IHRvIGJlIHN1Ym1pdHRlZCB0byBCaW5hbmNlLlxuICAgICAgICAgICAqIEVuY29kZWQgYXMgYDx1cmxlbmNvZGVkIHBhcmFtcz4mcmVjdldpbmRvdz08bXM+JnRpbWVzdGFtcD08bXM+JnNpZ25hdHVyZT08dXJsZW5jb2RlZCBiYXNlNjQgc2lnPmAuXG4gICAgICAgICAgICovXG4gICAgICAgICAgc2lnbmVkX3F1ZXJ5OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBCVEMgbWVzc2FnZSBzaWduaW5nIHJlc3BvbnNlICovXG4gICAgQnRjTWVzc2FnZVNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBiYXNlNjQtZW5jb2RlZCBzaWduYXR1cmUgaW4gQklQMTM3IGZvcm1hdC4gKi9cbiAgICAgICAgICBzaWc6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIGFib3V0IGEgcG9saWN5IEtWIHN0b3JlIGJ1Y2tldC4gKi9cbiAgICBCdWNrZXRJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiAoe1xuICAgICAgICAgIGNyZWF0ZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl0gfCBudWxsO1xuICAgICAgICAgIGxhc3RfbW9kaWZpZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl0gfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVmVyc2lvbiBvZiB0aGlzIG9iamVjdFxuICAgICAgICAgICAqL1xuICAgICAgICAgIHZlcnNpb24/OiBudW1iZXI7XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYWNjZXNzLWNvbnRyb2wgZW50cmllcyBmb3IgdGhlIGJ1Y2tldC4gKi9cbiAgICAgICAgICBhY2w/OiB1bmtub3duW10gfCBudWxsO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXJiaXRyYXJ5IHVzZXItZGVmaW5lZCBtZXRhZGF0YS4gKi9cbiAgICAgICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgICAgICAgb3JnX2lkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgICAgIG93bmVyOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgICB9KSAmIHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuYW1lIG9mIHRoZSBidWNrZXQuICovXG4gICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgcmV0dXJuZWQgYnkgdGhlIHR5cGVkIGBieWJpdF9zaWduYCBlbmRwb2ludC4gKi9cbiAgICBCeWJpdFNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEJ5Yml0LWJvdW5kIHBheWxvYWQgKFVSTC1lbmNvZGVkIHF1ZXJ5IGZvciBHRVQsIEpTT04gYm9keSBmb3JcbiAgICAgICAgICAgKiBQT1NUKS4gU3VibWl0dGVkIHZlcmJhdGltIGJ5IHRoZSBycGMtYXBpIGxhbWJkYTsgdGhlIHBheWxvYWQgYnl0ZXMgYXJlXG4gICAgICAgICAgICogYWxzbyBwYXJ0IG9mIHRoZSBzaWduaW5nIGlucHV0LlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHBheWxvYWQ6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEVmZmVjdGl2ZSByZWNlaXZlIHdpbmRvdyBpbiBtaWxsaXNlY29uZHMuXG4gICAgICAgICAgICovXG4gICAgICAgICAgcmVjdl93aW5kb3c6IG51bWJlcjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgSE1BQy1TSEEyNTYgc2lnbmF0dXJlIG9mXG4gICAgICAgICAgICogYHRpbWVzdGFtcCB8fCBhcGlLZXkgfHwgcmVjdldpbmRvdyB8fCBwYXlsb2FkYC4gR29lcyBpbnRvIHRoZVxuICAgICAgICAgICAqIGBYLUJBUEktU0lHTmAgaGVhZGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNpZ25hdHVyZV9oZXg6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFNpZ25pbmcgdGltZXN0YW1wIChtcyBzaW5jZSBlcG9jaCkuIFBpY2tlZCBieSB0aGUgc2lnbmVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHRpbWVzdGFtcF9tczogbnVtYmVyO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgcmV0dXJuZWQgYnkgdGhlIHR5cGVkIGBjb2luYmFzZV9zaWduYCBlbmRwb2ludC4gKi9cbiAgICBDb2luYmFzZVNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHNpZ25lZCBKV1QsIHJlYWR5IHRvIGJlIHNlbnQgaW4gYEF1dGhvcml6YXRpb246IEJlYXJlciA8and0PmAgdG9cbiAgICAgICAgICAgKiB0aGUgQ29pbmJhc2UgQWR2YW5jZWQgVHJhZGUgQVBJLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGp3dDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG51bWJlciBvZiB1c2VycyBhbmQga2V5cyBpbiBhbiBvcmcsIG9yZ2FuaXplZCBieSB1c2VyIHJvbGUgYW5kIGtleSB0eXBlICovXG4gICAgQ29tcHV0ZUNvdW50c1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEEgbWFwIG9mIGEgYEtleVR5cGVgIHRvIHRoZSBhbW91bnQgb2Yga2V5cyB3aXRoIHRoYXQgdHlwZSBpbiB0aGUgb3JnLlxuICAgICAgICAgICAqIEBleGFtcGxlIHtcbiAgICAgICAgICAgKiAgIFwiU2VjcEJ0Y1wiOiAzLFxuICAgICAgICAgICAqICAgXCJTZWNwRXRoQWRkclwiOiAxXG4gICAgICAgICAgICogfVxuICAgICAgICAgICAqL1xuICAgICAgICAgIGtleXM6IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IG51bWJlcjtcbiAgICAgICAgICB9O1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBIG1hcCBvZiBhIGBNZW1iZXJSb2xlYCB0byB0aGUgYW1vdW50IG9mIG51bWJlciBvZiB1c2VycyB3aXRoIHRoYXQgcm9sZSBpbiB0aGUgb3JnLlxuICAgICAgICAgICAqIEBleGFtcGxlIHtcbiAgICAgICAgICAgKiAgIFwiTWVtYmVyXCI6IDEwLFxuICAgICAgICAgICAqICAgXCJPd25lclwiOiAxXG4gICAgICAgICAgICogfVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHVzZXJzOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBudW1iZXI7XG4gICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIGFib3V0IGEgQ29udGFjdC4gKi9cbiAgICBDb250YWN0SW5mb1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbnRhY3RcIl0gJiB7XG4gICAgICAgICAgYWRkcmVzc2VzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFkZHJlc3NNYXBcIl07XG4gICAgICAgICAgaWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgQ3JlYXRlS2V5SW1wb3J0S2V5UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW1wb3J0S2V5XCJdICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBhdHRlc3RhdGlvbiBkb2N1bWVudCBmcm9tIGEgc2VjdXJlIGVuY2xhdmUsIGluY2x1ZGluZyBhblxuICAgICAgICAgICAqIFJTQSBzaWduaW5nIGtleSB1c2VkIHRvIHNpZ24gdGhlIGNvbnRlbnRzIG9mIHRoaXMgbWVzc2FnZS5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmNsYXZlX2F0dGVzdGF0aW9uOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEFuIFJTQS1QU1MtU0hBMjU2IHNpZ25hdHVyZSBvbiB0aGUgcHVibGljIGtleSBhbmQgZW5jcnlwdGVkXG4gICAgICAgICAgICogc2VjcmV0cyBhdHRlc3RpbmcgdG8gdGhlaXIgZ2VuZXJhdGlvbiBpbnNpZGUgYSBzZWN1cmUgZW5jbGF2ZS5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmNsYXZlX3NpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIENyZWF0ZUtleVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaW5mbyBhYm91dCB0aGUgY3JlYXRlZCBrZXlzICovXG4gICAgICAgICAga2V5czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJbmZvXCJdW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSByZXNwb25zZSB0byBbY3JlYXRlX2ltcG9ydF9rZXldIGNvbnRhaW5pbmcgdGhlIGdlbmVyYXRlZCBrZXkgYW5kIGVuY2xhdmVcbiAgICAgKiBhdHRlc3RhdGlvbnMuXG4gICAgICovXG4gICAgQ3JlYXRlUG9saWN5SW1wb3J0S2V5UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW1wb3J0S2V5XCJdICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBhdHRlc3RhdGlvbiBkb2N1bWVudCBmcm9tIGEgc2VjdXJlIGVuY2xhdmUsIGluY2x1ZGluZyBhblxuICAgICAgICAgICAqIFJTQSBzaWduaW5nIGtleSB1c2VkIHRvIHNpZ24gdGhlIGNvbnRlbnRzIG9mIHRoaXMgbWVzc2FnZS5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmNsYXZlX2F0dGVzdGF0aW9uOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEFuIFJTQS1QU1MtU0hBMjU2IHNpZ25hdHVyZSBvbiB0aGUgcHVibGljIGtleSBhbmQgZW5jcnlwdGVkXG4gICAgICAgICAgICogc2VjcmV0cyBhdHRlc3RpbmcgdG8gdGhlaXIgZ2VuZXJhdGlvbiBpbnNpZGUgYSBzZWN1cmUgZW5jbGF2ZS5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmNsYXZlX3NpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5ld2x5IGNyZWF0ZWQgcm9sZSBpbmZvcm1hdGlvbiAqL1xuICAgIENyZWF0ZVJvbGVSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSByb2xlLlxuICAgICAgICAgICAqIEBleGFtcGxlIG15X3JvbGVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBuZXdseSBjcmVhdGVkIHJvbGVcbiAgICAgICAgICAgKiBAZXhhbXBsZSBSb2xlI2JmZTNlY2NiLTczMWUtNDMwZC1iMWU1LWFjMTM2M2U2YjA2YlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHRvIFtDdXN0b21DaGFpblJwY1JlcXVlc3RdICovXG4gICAgQ3VzdG9tQ2hhaW5ScGNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogdW5rbm93bjtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXN1bHQgb2YgYSBEaWZmaWUgSGVsbG1hbiBrZXkgZXhjaGFuZ2UgKi9cbiAgICBEaWZmaWVIZWxsbWFuUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IChcbiAgICAgICAgICB8IHtcbiAgICAgICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzdWx0aW5nIHBvaW50cyBhcyBiYXNlNjQtZW5jb2RlZCBieXRlIHN0cmluZ3MgaW4gYSBrZXktdHlwZS0tZGVwZW5kZW50IGZvcm1hdC4gKi9cbiAgICAgICAgICAgICAgcG9pbnRzOiBzdHJpbmdbXTtcbiAgICAgICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgICAgIHJlc3BvbnNlX3R5cGU6IFwibWFza2VkXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfCB7XG4gICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQSBjaXBoZXJ0ZXh0IGNvbnRhaW5pbmcgdGhlIHJlc3VsdGluZyBwb2ludHMuIFRoZSBlbmNsb3NlZCBwbGFpbnRleHQgaXMgYSBzZXF1ZW5jZVxuICAgICAgICAgICAgICAgKiBvZiBiYXNlNjQtZW5jb2RlZCBieXRlIHN0cmluZ3MgaW4gYSBrZXktdHlwZS0tZGVwZW5kZW50IGZvcm1hdC5cbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIGVuY3J5cHRlZF9zaGFyZWRfc2VjcmV0czogc3RyaW5nO1xuICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlcGhlbWVyYWwgcHVibGljIGtleSB1c2VkIGZvciBIUEtFIGtleSBkZXJpdmF0aW9uIGluIGJhc2U2NC1lbmNvZGVkXG4gICAgICAgICAgICAgICAqIHVuY29tcHJlc3NlZCBTRUMxIHNlcmlhbGl6YXRpb24uXG4gICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICBlcGhlbWVyYWxfcHVibGljX2tleTogc3RyaW5nO1xuICAgICAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICAgICAgcmVzcG9uc2VfdHlwZTogXCJlbmNyeXB0ZWRcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKSAmIHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgICAgIH0gJiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBIVFRQIHJlc3BvbnNlIHRvIGFuIGVtYWlsIE9UUCByZXF1ZXN0LlxuICAgICAqXG4gICAgICogVGhpcyByZXNwb25zZSBjb250YWlucyBhbiBPSURDIHRva2VuIHdpdGhvdXQgYSBzaWduYXR1cmUuXG4gICAgICogVGhlIHNpZ25hdHVyZSBpcyBzZW50IHRvIHRoZSBlbmQtdXNlciBpbiBhbiBlbWFpbC5cbiAgICAgKiBUaGUgdG9rZW4gY2FuIGJlIHJlY29uc3RydWN0ZWQgYnkgY29uY2F0ZW5hdGluZyB0aGUgYHBhcnRpYWxfdG9rZW5gIHdpdGggdGhlIHNpZ25hdHVyZS5cbiAgICAgKi9cbiAgICBFbWFpbE90cFJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBPSURDIHRva2VuIHdpdGhvdXQgdGhlIHNpZ25hdHVyZS5cbiAgICAgICAgICAgKiAoVGhlIHNpZ25hdHVyZSwgd2hpY2ggaXMgYWN0dWFsbHkgYSBNQUMsIGlzIHNlbnQgdG8gdGhlIGVuZC11c2VyIGluIGFuIGVtYWlsKVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHBhcnRpYWxfdG9rZW46IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBFbXB0eUltcGw6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzdGF0dXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3RhdHVzT2tcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSBnZW5lcmF0ZWQgd2hlbiBjcmVhdGluZyBFT1RTIG5vbmNlcyAqL1xuICAgIEVvdHNDcmVhdGVOb25jZVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBwb2xpY3kgZXZhbHVhdGlvbiB0cmVlLiAqL1xuICAgICAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZ2VuZXJhdGVkIG5vbmNlcyBhcyBhbiBhcnJheSBvZiAweC1wcmVmaXhlZCBoZXggc3RyaW5nc1xuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIFwiMHhiMzkzYmYzOWU3MWExNmQ3ODQ4NTNkNTgyNTVhMjk2MjIyYTk5ZmQzYzg3YWE3Y2EyMDZjNTIzMGMxODhmMWM3XCIsXG4gICAgICAgICAgICogICBcIjB4ZTAxOTM2NTg0YjRmMGMwZTk3ZjBkMzAxOGM0ZjlkYjJiZjdkZTQxMzk1YzY0MDNhNDhmZDBkZmYwZWY3YjQwZFwiXG4gICAgICAgICAgICogXVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG5vbmNlczogc3RyaW5nW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSB0byBbRXNwbG9yYVJlcXVlc3RdICovXG4gICAgRXNwbG9yYVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB1bmtub3duO1xuICAgICAgfTtcbiAgICB9O1xuICAgIEV0aDFTaWduUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIFJMUCBlbmNvZGluZyBvZiB0aGUgdHJhbnNhY3Rpb24gYW5kIGl0cyBzaWduYXR1cmVcbiAgICAgICAgICAgKiBAZXhhbXBsZSAweDIyODk1MTE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIwMWQ1ODY1NmIwZTIyYWFhNjhmZGM2OTJkYjQxOTc5MDk4YzM4ODZlZDMzMDE1ZDc0NjdkZTkyMTE2MDljZGFjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzA4YjBjMjkwMDMyNGQzZmY5YWRmYmE3ZmRmZTVhZjNmOWIyY2RiZWVmN2IyODA0MzdiYmYxYjFjNTlhMDkzZDYxNWFmZTNlNWRmZWQ5NjIyYjU0MGNkZDliNDliM2M1YWQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OTAxMWFkYmNjM2JjOWMwMzA3YmIwN2YzN2RkYTFhMWE5YzY5ZDJlMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDkwM2RiODUyNTY3NGI4ZTc5MDRmOWI3ZDdkOWVjNTVhMGE0MmQzM2NmNThiZTI1NDY5YjBjMjFiYmI2ZDA2MTcyYmM1YmI1ZmQxYWVkOGU0ZjM1OTM2OTY4OTU4MTE2YjA2MTk1NTNjMmNiMWM1MmU3MzIzMDc0YzZmOGViM2Q1YTcwNzRmYzY1ODAxNDhkZjkwNzgzN2ZhM2IxNjRhZDdmYmMyMjg4ZGFkMWU4YTViMDIxMDk1YjU3YzhhMzZkNFxuICAgICAgICAgICAqL1xuICAgICAgICAgIHJscF9zaWduZWRfdHg6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBGaWRvQXNzZXJ0Q2hhbGxlbmdlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiAoY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDaGFsbGVuZ2VQaWVjZXNcIl0gJiB7XG4gICAgICAgICAgb3B0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNcIl07XG4gICAgICAgIH0pICYge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBjaGFsbGVuZ2UuIE11c3QgYmUgc3VwcGxpZWQgd2hlbiBhbnN3ZXJpbmcgdGhlIGNoYWxsZW5nZS4gKi9cbiAgICAgICAgICBjaGFsbGVuZ2VfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU2VudCBieSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIENvbnRhaW5zIHRoZSBjaGFsbGVuZ2UgZGF0YSB0aGF0IG11c3QgYmVcbiAgICAgKiB1c2VkIHRvIGdlbmVyYXRlIGEgbmV3IGNyZWRlbnRpYWxcbiAgICAgKi9cbiAgICBGaWRvQ3JlYXRlQ2hhbGxlbmdlUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IChjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNoYWxsZW5nZVBpZWNlc1wiXSAmIHtcbiAgICAgICAgICBvcHRpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnNcIl07XG4gICAgICAgIH0pICYge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBjaGFsbGVuZ2UuIE11c3QgYmUgc3VwcGxpZWQgd2hlbiBhbnN3ZXJpbmcgdGhlIGNoYWxsZW5nZS4gKi9cbiAgICAgICAgICBjaGFsbGVuZ2VfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3VsdCBvZiByZWdpc3RlcmluZyBhIEZJRE8ga2V5ICovXG4gICAgRmlkb1JlZ2lzdGVyUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBtZmE/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgICAgIHN0YXR1czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdGF0dXNPa1wiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBzZW5kZXIgY29uZmlndXJhdGlvbiAod2l0aG91dCBzZW5zaXRpdmUgYXV0aCBkZXRhaWxzKSAqL1xuICAgIEdldEVtYWlsQ29uZmlnUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBhZGRyZXNzIHRoYXQgZW1haWxzIGFyZSBzZW50IGZyb20gKi9cbiAgICAgICAgICBzZW5kZXI6IHN0cmluZztcbiAgICAgICAgICB0ZW1wbGF0ZT86IHtcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gSFRNTCB0ZW1wbGF0ZSB0byB1c2UgZm9yIHRoZSBib2R5LiAqL1xuICAgICAgICAgICAgYm9keV90ZW1wbGF0ZTogc3RyaW5nO1xuICAgICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgc3ViamVjdCBsaW5lIHRlbXBsYXRlICovXG4gICAgICAgICAgICBzdWJqZWN0X3RlbXBsYXRlOiBzdHJpbmc7XG4gICAgICAgICAgfSB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgR2V0VXNlckJ5RW1haWxSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUeXBpY2FsbHksIHRoaXMgYXJyYXkgaXMgZWl0aGVyIGVtcHR5IChpZiBubyB1c2VyIHdpdGggYSBnaXZlbiBlbWFpbCB3YXMgZm91bmQpXG4gICAgICAgICAgICogb3IgY29udGFpbnMgYSBzaW5nbGUgZWxlbWVudCwgaS5lLiwgdGhlIHVzZXIgd2l0aCBhIGdpdmVuIGVtYWlsLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHVzZXJzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJJbk9yZ0luZm9XaXRoSWRlbnRpdHlcIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBHZXRVc2VyQnlPaWRjUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICB1c2VyPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VySW5PcmdJbmZvV2l0aElkZW50aXR5XCJdIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUHJvb2YgdGhhdCBhbiBlbmQtdXNlciBwcm92aWRlZCBDdWJlU2lnbmVyIHdpdGggYSB2YWxpZCBhdXRoIHRva2VuXG4gICAgICogKGVpdGhlciBhbiBPSURDIHRva2VuIG9yIGEgQ3ViZVNpZ25lciBzZXNzaW9uIHRva2VuKVxuICAgICAqL1xuICAgIElkZW50aXR5UHJvb2Y6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBhdWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1ZFwiXSB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBhc3NvY2lhdGVkIHdpdGggdGhlIHVzZXJcbiAgICAgICAgICAgKiBAZXhhbXBsZSB1c2VyQGVtYWlsLmNvbVxuICAgICAgICAgICAqL1xuICAgICAgICAgIGVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICBleHBfZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgICAgICBpZGVudGl0eT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY0lkZW50aXR5XCJdIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXJuYW1lIChpZiBhbnkpIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlclxuICAgICAgICAgICAqIEBleGFtcGxlIGN1YmlzdGRldlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHByZWZlcnJlZF91c2VybmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgdXNlcl9pbmZvPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDdWJlU2lnbmVyVXNlckluZm9cIl0gfCBudWxsO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gb3BhcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBwcm9vZiAqL1xuICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzdWx0IG9mIGludm9raW5nIGEgV2FzbSBwb2xpY3kuICovXG4gICAgSW52b2tlUG9saWN5UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICByZXNwb25zZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJXYXNtUG9saWN5UmVzcG9uc2VcIl07XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBieXRlcyB3cml0dGVuIHRvIGBzdGRlcnJgLCBlbmNvZGVkIGFzIGEgaGV4LXN0cmluZy5cbiAgICAgICAgICAgKiBJbiBtb3N0IGNhc2VzLCB0aGVzZSBieXRlcyBjb3JyZXNwb25kIHRvIGEgVVRGLTgtZW5jb2RlZCBgU3RyaW5nYC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBzdGRlcnI6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGJ5dGVzIHdyaXR0ZW4gdG8gYHN0ZG91dGAsIGVuY29kZWQgYXMgYSBoZXgtc3RyaW5nLlxuICAgICAgICAgICAqIEluIG1vc3QgY2FzZXMsIHRoZXNlIGJ5dGVzIGNvcnJlc3BvbmQgdG8gYSBVVEYtOC1lbmNvZGVkIGBTdHJpbmdgLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHN0ZG91dDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEpycGNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSZXNwb25zZVwiXSAmIFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBSUEMgQVBJJ3MgcmVzcG9uc2UuICovXG4gICAgSnNvblJwY1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgZXJyb3I/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yT2JqXCJdIHwgbnVsbDtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIElEIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgcmVxdWVzdC4gKi9cbiAgICAgICAgICBpZD86IHVua25vd247XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDb25zdGFudCBcIjIuMFwiLiAqL1xuICAgICAgICAgIGpzb25ycGM6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3VsdCwgaWYgc3VjY2Vzcy4gKi9cbiAgICAgICAgICByZXN1bHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIEpTT04gV2ViIEtleSBzZXQgZGVzY3JpYmluZyB0aGUga2V5IHVzZWQgdG8gc2lnbiBKU09OIFdlYiBUb2tlbnMgKi9cbiAgICBKd2tTZXRSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGtleXMgaW5jbHVkZWQgaW4gdGhpcyBzZXQgKi9cbiAgICAgICAgICBrZXlzOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERlcml2YXRpb24tcmVsYXRlZCBtZXRhZGF0YSBmb3Iga2V5cyBkZXJpdmVkIGZyb20gYSBsb25nLWxpdmVkIG1uZW1vbmljICovXG4gICAgS2V5RGVyaXZhdGlvbkluZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBkZXJpdmF0aW9uIHBhdGggdXNlZCB0byBkZXJpdmUgdGhpcyBrZXkgKi9cbiAgICAgICAgICBkZXJpdmF0aW9uX3BhdGg6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtbmVtb25pYy1pZCBvZiB0aGUga2V5J3MgcGFyZW50IG1uZW1vbmljICovXG4gICAgICAgICAgbW5lbW9uaWNfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgd3JhcHBlZCBrZXktaW1wb3J0IGtleSAqL1xuICAgIEtleUltcG9ydEtleToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmFzZTY0LWVuY29kZWQsIGVuY3J5cHRlZCBkYXRhIGtleS4gKi9cbiAgICAgICAgICBka19lbmM6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEV4cGlyYXRpb24gdGltZXN0YW1wIGV4cHJlc3NlZCBhcyBzZWNvbmRzIHNpbmNlIHRoZSBVTklYIGVwb2NoLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGV4cGlyZXM6IG51bWJlcjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVwaGVtZXJhbCBwdWJsaWMga2V5IHRvIHdoaWNoIGFuIGltcG9ydGVkIGtleSBzaG91bGQgYmUgZW5jcnlwdGVkLlxuICAgICAgICAgICAqIFRoaXMgaXMgYSBQMzg0IHB1YmxpYyBrZXkgaW4gYmFzZTY0LWVuY29kZWQgdW5jb21wcmVzc2VkIFNFQ0cgZm9ybWF0LlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHB1YmxpY19rZXk6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEJhc2U2NC1lbmNvZGVkLCBlbmNyeXB0ZWQgc2VjcmV0IGtleS4gKi9cbiAgICAgICAgICBza19lbmM6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBLZXlJblJvbGVJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEtleSBJRFxuICAgICAgICAgICAqIEBleGFtcGxlIEtleSMweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgICAgICBrZXlfaW5mbz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5mb1wiXSB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFBvbGljaWVzIHRoYXQgYXJlIGNoZWNrZWQgYmVmb3JlIHRoaXMga2V5IGlzIHVzZWQgb24gYmVoYWxmIG9mIHRoaXMgcm9sZVxuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJUeFJlY2VpdmVyXCI6IFwiMHg4YzU5NDY5MWMwZTU5MmZmYTIxZjE1M2ExNmFlNDFkYjViZWZjYWFhXCJcbiAgICAgICAgICAgKiAgIH0sXG4gICAgICAgICAgICogICB7XG4gICAgICAgICAgICogICAgIFwiVHhEZXBvc2l0XCI6IHtcbiAgICAgICAgICAgKiAgICAgICBcImtpbmRcIjogXCJDYW5vbmljYWxcIlxuICAgICAgICAgICAqICAgICB9XG4gICAgICAgICAgICogICB9XG4gICAgICAgICAgICogXVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHBvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBSb2xlIElEXG4gICAgICAgICAgICogQGV4YW1wbGUgUm9sZSNlNDI3YzI4YS05YzViLTQ5Y2MtYTI1Ny04NzhhZWE1OGEyMmNcbiAgICAgICAgICAgKi9cbiAgICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgS2V5SW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb21tb25GaWVsZHNcIl0gJiB7XG4gICAgICAgICAgZGVyaXZhdGlvbl9pbmZvPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlEZXJpdmF0aW9uSW5mb1wiXSB8IG51bGw7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSBrZXkgaXMgZW5hYmxlZCAob25seSBlbmFibGVkIGtleXMgbWF5IGJlIHVzZWQgZm9yIHNpZ25pbmcpICovXG4gICAgICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBrZXk6IFwiS2V5I1wiIGZvbGxvd2VkIGJ5IGEgdW5pcXVlIGlkZW50aWZpZXIgc3BlY2lmaWMgdG9cbiAgICAgICAgICAgKiB0aGUgdHlwZSBvZiBrZXkgKHN1Y2ggYXMgYSBwdWJsaWMga2V5IGZvciBCTFMgb3IgYW4gZXRoZXJldW0gYWRkcmVzcyBmb3IgU2VjcClcbiAgICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAgICAgICAgICovXG4gICAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQSB1bmlxdWUgaWRlbnRpZmllciBzcGVjaWZpYyB0byB0aGUgdHlwZSBvZiBrZXksIHN1Y2ggYXMgYSBwdWJsaWMga2V5IG9yIGFuIGV0aGVyZXVtIGFkZHJlc3NcbiAgICAgICAgICAgKiBAZXhhbXBsZSAweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBtYXRlcmlhbF9pZDogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBPd25lciBvZiB0aGUga2V5XG4gICAgICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBvd25lcjogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBLZXkgcG9saWN5XG4gICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAqICAgXCJBbGxvd1Jhd0Jsb2JTaWduaW5nXCIsXG4gICAgICAgICAgICogICB7XG4gICAgICAgICAgICogICAgIFwiUmVxdWlyZU1mYVwiOiB7XG4gICAgICAgICAgICogICAgICAgXCJjb3VudFwiOiAxXG4gICAgICAgICAgICogICAgIH1cbiAgICAgICAgICAgKiAgIH1cbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgcG9saWN5OiB1bmtub3duW107XG4gICAgICAgICAgcHJvcGVydGllcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5UHJvcGVydGllc1BhdGNoXCJdIHwgbnVsbDtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBrZXkgcHJvdmVuYW5jZS4gKi9cbiAgICAgICAgICBwcm92ZW5hbmNlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQsIHNlcmlhbGl6ZWQgcHVibGljIGtleS4gVGhlIGZvcm1hdCB1c2VkIGRlcGVuZHMgb24gdGhlIGtleSB0eXBlOlxuICAgICAgICAgICAqIC0gU2VjcDI1NmsxIGtleXMgdXNlIDY1LWJ5dGUgdW5jb21wcmVzc2VkIFNFQ0cgZm9ybWF0O1xuICAgICAgICAgICAqIC0gU3Rhcmsga2V5cyB1c2UgMzMtYnl0ZSBjb21wcmVzc2VkIFNFQ0cgZm9ybWF0O1xuICAgICAgICAgICAqIC0gQkxTIGtleXMgdXNlIDQ4LWJ5dGUgY29tcHJlc3NlZCBCTFMxMi0zODEgKFpDYXNoKSBmb3JtYXQ7XG4gICAgICAgICAgICogLSBFZDI1NTE5IGtleXMgdXNlIHRoZSBjYW5vbmljYWwgMzItYnl0ZSBlbmNvZGluZyBzcGVjaWZpZWQgaW4gUkZDIDgwMzIuXG4gICAgICAgICAgICogQGV4YW1wbGUgMHgwNGQyNjg4YjZiYzJjZTdmOTg3OWI5ZTc0NWYzYzRkYzE3NzkwOGM1Y2VmMGMxYjY0Y2ZmMTlhZTdmZjI3ZGVlNjIzYzY0ZmU5ZDljMzI1YzdmYmJjNzQ4YmJkNWY2MDdjZTE0ZGQ4M2UyOGViYmJiN2QzZTdmMmZmYjcwYTc5NDMxXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHVibGljX2tleTogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcHVycG9zZSBmb3Igd2hpY2ggdGhlIGtleSBjYW4gYmUgdXNlZCAoZS5nLiwgY2hhaW4gaWQgZm9yIHdoaWNoIHRoZSBrZXkgaXMgYWxsb3dlZCB0byBzaWduIG1lc3NhZ2VzKVxuICAgICAgICAgICAqIEBleGFtcGxlIEV0aDJWYWxpZGF0b3IoMSlcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVnaW9uIGFmZmluaXR5IGZvciB0aGlzIGtleSAqL1xuICAgICAgICAgIHJlZ2lvbj86IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIHdoZW4gcmVxdWVzdGluZyBhIGtleSBhdHRlc3RhdGlvbi4gKi9cbiAgICBLZXlJbmZvSnd0OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIEpTT04gV2ViIFRva2VuIHdob3NlIGNsYWltcyBjb250YWluIHRoZSBgS2V5SW5mb2Agc3RydWN0dXJlLiAqL1xuICAgICAgICAgIGp3dDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEtleUluZm9zOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAga2V5czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJbmZvXCJdW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGlyZC1wYXJ0eSBpZGVudGl0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlcidzIGFjY291bnQgKi9cbiAgICBMaXN0SWRlbnRpdGllc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgaWRlbnRpdGllczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZGVudGl0eUluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBwZW5kaW5nIE1NSSByZXF1ZXN0cyBjcmVhdGVkIGJ5IHRoZSBjdXJyZW50IHVzZXIuICovXG4gICAgTGlzdFBlbmRpbmdNZXNzYWdlc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgcGVuZGluZyBtZXNzYWdlcyBmb3IgYSB1c2VyLiAqL1xuICAgICAgICAgIHBlbmRpbmdfbWVzc2FnZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUGVuZGluZ01lc3NhZ2VJbmZvXCJdW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXR1cm5lZCBhcyBhIHJlc3BvbnNlIGZyb20gbXVsdGlwbGUgcm91dGVzIChlLmcuLCAnZ2V0IG1mYScsICdhcHByb3ZlIG1mYScsICdhcHByb3ZlIHRvdHAnKS4gKi9cbiAgICBNZmFSZXF1ZXN0SW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIGNyZWF0ZWRfYXQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgc2Vzc2lvbiBpZGVudGl0eSAodXNlciBvciByb2xlKSB0aGF0IGNyZWF0ZWQgdGhpcyByZXF1ZXN0LiAqL1xuICAgICAgICAgIGNyZWF0ZWRfYnk6IHN0cmluZztcbiAgICAgICAgICBleHBpcmVzX2F0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBcHByb3ZhbCByZXF1ZXN0IElELiAqL1xuICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgICAgbm90X3ZhbGlkX3VudGlsPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBNRkEgcG9saWN5IHByb3ZlbmFuY2VcbiAgICAgICAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHByb3ZlbmFuY2U6IFwiT3JnXCIgfCBcIktleVwiIHwgXCJLZXlJblJvbGVcIiB8IFwiUm9sZVwiIHwgXCJVc2VyXCIgfCBcIkVkaXRQb2xpY3lcIjtcbiAgICAgICAgICByZWNlaXB0PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSZWNlaXB0XCJdIHwgbnVsbDtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZWdpb24gdGhpcyBNRkEgcmVxdWVzdCB3YXMgY3JlYXRlZCBpbi4gIEl0IGNhbiBvbmx5IGJlIHJlZGVlbWVkIGZyb20gdGhlIHNhbWUgcmVnaW9uLiAqL1xuICAgICAgICAgIHJlZ2lvbj86IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCBjb250YWlucyB0aGUgSURzIG9mIGFsbCBNRkEgcmVxdWVzdHMgKGluY2x1ZGluZyB0aGlzIG9uZSEpIHRoYXRcbiAgICAgICAgICAgKiB3ZXJlIGdlbmVyYXRlZCBhdCBvbmNlIGZvciB0aGUgc2FtZSBDdWJlU2lnbmVyIG9wZXJhdGlvbi5cbiAgICAgICAgICAgKlxuICAgICAgICAgICAqIElmIG5vdCBzZXQsIGl0IG1lYW5zIHRoYXQgdGhpcyB3YXMgdGhlIGxvbmUgTUZBIHJlcXVlc3QgZ2VuZXJhdGVkIGZvciBgcmVxdWVzdGAuXG4gICAgICAgICAgICpcbiAgICAgICAgICAgKiBUaGlzIGlzIHVzZWZ1bCBzbyB0aGF0IGEgY2xpZW50IGNhbiBkaXNjb3ZlciBhbGwgdGhlIE1GQXMgd2hvc2UgcmVjZWlwdHMgbXVzdFxuICAgICAgICAgICAqIGJlIHN1Ym1pdHRlZCB0b2dldGhlciB0byBjYXJyeSBvdXQgdGhlIG9yaWdpbmFsIEN1YmVTaWduZXIgb3BlcmF0aW9uLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHJlbGF0ZWRfaWRzPzogc3RyaW5nW107XG4gICAgICAgICAgcmVxdWVzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJIdHRwUmVxdWVzdFwiXTtcbiAgICAgICAgICBzdGF0dXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3RhdHVzXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYSBuZXcgc2Vzc2lvbiwgcmV0dXJuZWQgZnJvbSBtdWx0aXBsZSBlbmRwb2ludHMgKGUuZy4sIGxvZ2luLCByZWZyZXNoLCBldGMuKS4gKi9cbiAgICBOZXdTZXNzaW9uUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFNlc3Npb24gZXhwaXJhdGlvbiAoaW4gc2Vjb25kcyBzaW5jZSBVTklYIGVwb2NoKSwgYmV5b25kIHdoaWNoIGl0IGNhbm5vdCBiZSByZWZyZXNoZWQuXG4gICAgICAgICAgICogQGV4YW1wbGUgMTcwMTg3OTY0MFxuICAgICAgICAgICAqL1xuICAgICAgICAgIGV4cGlyYXRpb24/OiBudW1iZXI7XG4gICAgICAgICAgb3JnX2lkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZWZyZXNoIHRoaXMgc2Vzc2lvbi4gKi9cbiAgICAgICAgICByZWZyZXNoX3Rva2VuOiBzdHJpbmc7XG4gICAgICAgICAgc2Vzc2lvbl9pbmZvOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNsaWVudFNlc3Npb25JbmZvXCJdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBOZXcgdG9rZW4gdG8gYmUgdXNlZCBmb3IgYXV0aGVudGljYXRpb24uIFJlcXVlc3RzIHRvIHNpZ25pbmcgZW5kcG9pbnRzXG4gICAgICAgICAgICogc2hvdWxkIGluY2x1ZGUgdGhpcyB2YWx1ZSBpbiB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICB0b2tlbjogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gb3JnLWV4cG9ydCBjaXBoZXJ0ZXh0IHJldHJpZXZlZCB2aWEgdGhlIG9yZy1leHBvcnQgQVBJLiAqL1xuICAgIE9yZ0V4cG9ydFJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGJhc2U2NC1lbmNvZGVkIGV4cG9ydCBjaXBoZXJ0ZXh0LiAqL1xuICAgICAgICAgIGNpcGhlcnRleHQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBPcmdJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVJlcXVpcmVtZW50c1wiXSAmXG4gICAgICAgICAgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb21tb25GaWVsZHNcIl0gJiB7XG4gICAgICAgICAgICBhY2Nlc3NfbW9kZWw6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXNzTW9kZWxcIl07XG4gICAgICAgICAgICBjdXN0b21fY2hhaW5zPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDdXN0b21DaGFpbnNEYXRhXCJdIHwgbnVsbDtcbiAgICAgICAgICAgIGRlZmF1bHRfaW52aXRlX2tpbmQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkludml0ZUtpbmRcIl07XG4gICAgICAgICAgICBlbWFpbF9wcmVmZXJlbmNlcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1haWxQcmVmZXJlbmNlc1wiXTtcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hlbiBmYWxzZSwgYWxsIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyBpbnZvbHZpbmcga2V5cyBpbiB0aGlzIG9yZyBhcmUgZGlzYWJsZWQuICovXG4gICAgICAgICAgICBlbmFibGVkOiBib29sZWFuO1xuICAgICAgICAgICAgZXh0X2RhdGE/OlxuICAgICAgICAgICAgICB8ICh7XG4gICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBQZXIgYWxpZW4gdXNlciBrZXkgY291bnQgdGhyZXNob2xkLCB3aGljaCwgb25jZSBleGNlZWRlZCwgZGlzYWxsb3dzIGZ1cnRoZXIga2V5IGNyZWF0aW9uIGJ5IGFsaWVuIHVzZXJzLlxuICAgICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgICAqIFRoaXMgc2V0dGluZyBpcyBjaGVja2VkIG9ubHkgd2hlbiBhbiBhbGllbiB1c2VyIHJlcXVlc3RzIHRvIGNyZWF0ZSBvciBpbXBvcnQgYSBuZXcga2V5LlxuICAgICAgICAgICAgICAgICAgICogSW4gb3RoZXIgd29yZHMsIG9yZyBhZG1pbnMgY2FuIHN0aWxsIGFzc2lnbiB1bmxpbWl0ZWQgbnVtYmVyIG9mIGtleXMgdG8gdGhlaXIgYWxpZW4gdXNlcnMuXG4gICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgIGFsaWVuX2tleV9jb3VudF90aHJlc2hvbGQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciBhbGllbiB1c2VycyBhcmUgYWxsb3dlZCB0byB1cGRhdGUgdGhlaXIgb3duIGtleSBwb2xpY2llcy5cbiAgICAgICAgICAgICAgICAgICAqIERlZmF1bHRzIHRvICdmYWxzZScuXG4gICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgIGFsaWVuc19jYW5fdXBkYXRlX2tleV9wb2xpY3k/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgICAgICAgICAgICB9ICYge1xuICAgICAgICAgICAgICAgICAgY3JlYXRlZD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXSB8IG51bGw7XG4gICAgICAgICAgICAgICAgICBsYXN0X21vZGlmaWVkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdIHwgbnVsbDtcbiAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFZlcnNpb24gb2YgdGhpcyBvYmplY3RcbiAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgdmVyc2lvbj86IG51bWJlcjtcbiAgICAgICAgICAgICAgICB9ICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+KVxuICAgICAgICAgICAgICB8IG51bGw7XG4gICAgICAgICAgICBoaXN0b3JpY2FsX2RhdGFfY29uZmlndXJhdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSGlzdG9yaWNhbERhdGFDb25maWd1cmF0aW9uXCJdO1xuICAgICAgICAgICAgaWRwX2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkcENvbmZpZ1wiXTtcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGVwcmVjYXRlZDogdGhpcyBmaWVsZCBzaG91bGQgYmUgaWdub3JlZC4gKi9cbiAgICAgICAgICAgIGtleV9pbXBvcnRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmdhbml6YXRpb24ncyB1bml2ZXJzYWxseSB1bmlxdWUga2V5LXdyYXBwaW5nLWtleSBpZGVudGlmaWVyLlxuICAgICAgICAgICAgICogVGhpcyB2YWx1ZSBpcyByZXF1aXJlZCB3aGVuIHNldHRpbmcgdXAga2V5IGV4cG9ydC5cbiAgICAgICAgICAgICAqIEBleGFtcGxlIG1yay1mY2UwOTUyNWU4MTU4N2QyMzUyMGYxMWUwN2UyZTlkOVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBrd2tfaWQ6IHN0cmluZztcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIERhdGUvdGltZSAoaW4gVVRDKSB3aGVuIGxhc3QgJ3Vuc3Rha2UnIHdhcyBwZXJmb3JtZWQuIFVuaXggZXBvY2ggaWYgbm9uZS5cbiAgICAgICAgICAgICAqIEBleGFtcGxlIFRPRE9cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbGFzdF91bnN0YWtlOiBzdHJpbmc7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBIb3cgbWFueSAndW5zdGFrZScgY2FsbHMgaGFwcGVuZWQgb24gdGhlIGRheSB3aGVuIGBsYXN0X3Vuc3Rha2VgIHdhcyBwZXJmb3JtZWQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxhc3RfdW5zdGFrZV9kYXlfY291bnQ6IG51bWJlcjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgb3JnXG4gICAgICAgICAgICAgKiBAZXhhbXBsZSBteV9vcmdfbmFtZVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmdhbml6YXRpb24ncyBub3RpZmljYXRpb24gZW5kcG9pbnRzLCB3aGljaCBhcmUgSFRUUFMgVVJMcyBhcmUgbm90aWZpZWQgYWJvdXQgYVxuICAgICAgICAgICAgICogY29uZmlndXJhYmxlIHNldCBvZiBldmVudHMgaW4gYW4gb3JnYW5pemF0aW9uLiBGb3IgZWFjaCBldmVudCwgQ3ViZVNpZ25lciBzZW5kcyBhIFBPU1RcbiAgICAgICAgICAgICAqIHJlcXVlc3Qgd2l0aCBhIEpTT04tZm9ybWF0dGVkIGJvZHkgdGhhdCBjb250YWlucyB0aGUgZXZlbnQgZGV0YWlscy5cbiAgICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgICAqICAge1xuICAgICAgICAgICAgICogICAgIFwiYXJuXCI6IFwiYXJuOmF3czpzbnM6dXMtZWFzdC0xOjAxMjM0NTY3ODkwMTpPcmdFdmVudHNUb3BpYzoxMjM0NTY3OC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDFcIixcbiAgICAgICAgICAgICAqICAgICBcImNvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgKiAgICAgICBcInVybFwiOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQxXCJcbiAgICAgICAgICAgICAqICAgICB9LFxuICAgICAgICAgICAgICogICAgIFwic3RhdHVzXCI6IFwiQ29uZmlybWVkXCJcbiAgICAgICAgICAgICAqICAgfSxcbiAgICAgICAgICAgICAqICAge1xuICAgICAgICAgICAgICogICAgIFwiYXJuXCI6IFwiYXJuOmF3czpzbnM6dXMtZWFzdC0xOjAxMjM0NTY3ODkwMTpPcmdFdmVudHNUb3BpYzoxMjM0NTY3OC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDJcIixcbiAgICAgICAgICAgICAqICAgICBcImNvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgKiAgICAgICBcImZpbHRlclwiOiB7XG4gICAgICAgICAgICAgKiAgICAgICAgIFwiT25lT2ZcIjogW1xuICAgICAgICAgICAgICogICAgICAgICAgIFwiRXRoMkNvbmN1cnJlbnRBdHRlc3RhdGlvblNpZ25pbmdcIixcbiAgICAgICAgICAgICAqICAgICAgICAgICBcIkV0aDJDb25jdXJyZW50QmxvY2tTaWduaW5nXCJcbiAgICAgICAgICAgICAqICAgICAgICAgXVxuICAgICAgICAgICAgICogICAgICAgfSxcbiAgICAgICAgICAgICAqICAgICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDJcIlxuICAgICAgICAgICAgICogICAgIH0sXG4gICAgICAgICAgICAgKiAgICAgXCJzdGF0dXNcIjogXCJQZW5kaW5nXCJcbiAgICAgICAgICAgICAqICAgfVxuICAgICAgICAgICAgICogXVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBub3RpZmljYXRpb25fZW5kcG9pbnRzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJOb3RpZmljYXRpb25FbmRwb2ludFwiXVtdO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBvcmdhbml6YXRpb25cbiAgICAgICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgICAgICBwYXNza2V5X2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBhc3NrZXlDb25maWdcIl07XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBPcmctd2lkZSBwb2xpY2llcyB0aGF0IGFyZSBjaGVja2VkIGJlZm9yZSBhIGtleSBpcyB1c2VkIGZvciBzaWduaW5nXG4gICAgICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgICAqICAgICBcIk1heERhaWx5VW5zdGFrZVwiOiA1XG4gICAgICAgICAgICAgKiAgIH1cbiAgICAgICAgICAgICAqIF1cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W107XG4gICAgICAgICAgICBwb2xpY3lfZW5naW5lX2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBvbGljeUVuZ2luZUNvbmZpZ3VyYXRpb25cIl07XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBHbG9iYWwgc2lnbiBwb2xpY3kgdGhhdCBhcHBsaWVzIHRvIGV2ZXJ5IHNpZ24gb3BlcmF0aW9uIChldmVyeSBrZXksIGV2ZXJ5IHJvbGUpIGluIHRoZSBvcmdcbiAgICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgICAqICAge1xuICAgICAgICAgICAgICogICAgIFwiVHhSZWNlaXZlclwiOiBcIjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiXG4gICAgICAgICAgICAgKiAgIH1cbiAgICAgICAgICAgICAqIF1cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgc2lnbl9wb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmdhbml6YXRpb24ncyBjdXJyZW50bHkgY29uZmlndXJlZCBUT1RQIGZhaWx1cmUgbGltaXQsIGkuZS4sIHRoZSBudW1iZXJcbiAgICAgICAgICAgICAqIG9mIHRpbWVzIGEgdXNlciBjYW4gcHJvdmlkZSBhbiBpbmNvcnJlY3QgVE9UUCBjb2RlIGJlZm9yZSBiZWluZyByYXRlIGxpbWl0ZWQuXG4gICAgICAgICAgICAgKiBUaGlzIHZhbHVlIGNhbiBiZSBiZXR3ZWVuIDEgYW5kIDUgKGluY2x1c2l2ZSkuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRvdHBfZmFpbHVyZV9saW1pdDogbnVtYmVyO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIGN1cnJlbnRseSBjb25maWd1cmVkIHVzZXItZXhwb3J0IGRlbGF5LCBpLmUuLCB0aGUgbWluaW11bVxuICAgICAgICAgICAgICogYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIGJldHdlZW4gd2hlbiBhIHVzZXItZXhwb3J0IGlzIGluaXRpYXRlZCBhbmQgd2hlblxuICAgICAgICAgICAgICogaXQgbWF5IGJlIGNvbXBsZXRlZC4gKFRoaXMgdmFsdWUgaXMgbWVhbmluZ2xlc3MgZm9yIG9yZ2FuaXphdGlvbnMgdGhhdCB1c2VcbiAgICAgICAgICAgICAqIG9yZy13aWRlIGV4cG9ydC4pXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHVzZXJfZXhwb3J0X2RlbGF5OiBudW1iZXI7XG4gICAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdXNlciBleHBvcnQgaXMgZGlzYWJsZWQgKi9cbiAgICAgICAgICAgIHVzZXJfZXhwb3J0X2Rpc2FibGVkPzogYm9vbGVhbjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmdhbml6YXRpb24ncyBjdXJyZW50bHkgY29uZmlndXJlZCB1c2VyLWV4cG9ydCB3aW5kb3csIGkuZS4sIHRoZSBhbW91bnRcbiAgICAgICAgICAgICAqIG9mIHRpbWUgKGluIHNlY29uZHMpIGJldHdlZW4gd2hlbiB0aGUgdXNlci1leHBvcnQgZGVsYXkgaXMgY29tcGxldGVkIGFuZCB3aGVuXG4gICAgICAgICAgICAgKiB0aGUgdXNlciBleHBvcnQgcmVxdWVzdCBoYXMgZXhwaXJlZCBhbmQgY2FuIG5vIGxvbmdlciBiZSBjb21wbGV0ZWQuIChUaGlzIHZhbHVlXG4gICAgICAgICAgICAgKiBpcyBtZWFuaW5nbGVzcyBmb3Igb3JnYW5pemF0aW9ucyB0aGF0IHVzZSBvcmctd2lkZSBleHBvcnQuKVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB1c2VyX2V4cG9ydF93aW5kb3c6IG51bWJlcjtcbiAgICAgICAgICAgIHdlYmFwcF9lbmFibGVkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJXZWJhcHBFbmFibGVkXCJdO1xuICAgICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUGFnaW5hdGVkQXVkaXRMb2dSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXVkaXQgbG9nIGVudHJpZXMgKi9cbiAgICAgICAgICBlbnRyaWVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1ZGl0TG9nRW50cnlcIl1bXTtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUGFnaW5hdGVkR2V0VXNlcnNJbk9yZ1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbGlzdCBvZiB1c2VycyBpbiB0aGUgb3JnICovXG4gICAgICAgICAgdXNlcnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckluT3JnSW5mb1wiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRMaXN0QnVja2V0c1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYnVja2V0cyBpbiB0aGUgb3JnYW5pemF0aW9uLiAqL1xuICAgICAgICAgIGJ1Y2tldHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnVja2V0SW5mb1wiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRMaXN0Q29udGFjdHNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBsaXN0IG9mIGNvbnRhY3RzIGluIHRoZSBvcmdhbml6YXRpb24sIG1hdGNoaW5nIGFueSBwcm92aWRlZCBxdWVyaWVzLiAqL1xuICAgICAgICAgIGNvbnRhY3RzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbnRhY3RJbmZvUmVzcG9uc2VcIl1bXTtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUGFnaW5hdGVkTGlzdEhpc3RvcmljYWxUeFJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIaXN0b3JpY2FsIHRyYW5zYWN0aW9ucyBzaWduZWQgd2l0aCB0aGUgcmVxdWVzdGVkIGtleSwgc29ydGVkIGZyb20gbW9zdCB0byBsZWFzdCByZWNlbnQuICovXG4gICAgICAgICAgdHhzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkhpc3RvcmljYWxUeFwiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRMaXN0SW52aXRhdGlvbnNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gUGVuZGluZyBpbnZpdGF0aW9ucyAqL1xuICAgICAgICAgIGludml0YXRpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkludml0YXRpb25JbmZvXCJdW107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZExpc3RLZXlSb2xlc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgcm9sZXMgdGhlIGtleSBpcyBpbiAqL1xuICAgICAgICAgIHJvbGVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluUm9sZUluZm9cIl1bXTtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUGFnaW5hdGVkTGlzdEtleXNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIGtleXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5mb1wiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRMaXN0TWZhUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBwZW5kaW5nIE1GQSByZXF1ZXN0cyAqL1xuICAgICAgICAgIG1mYV9yZXF1ZXN0czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFSZXF1ZXN0SW5mb1wiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRMaXN0UG9saWNpZXNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIE9yZydzIG5hbWVkIHBvbGljaWVzLiAqL1xuICAgICAgICAgIHBvbGljaWVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBvbGljeUluZm9cIl1bXTtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUGFnaW5hdGVkTGlzdFJvbGVLZXlzUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBrZXlzIGluIGEgcm9sZSAqL1xuICAgICAgICAgIGtleXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5Sb2xlSW5mb1wiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRMaXN0Um9sZVVzZXJzUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCB1c2VycyBpbiBhIHJvbGUgKi9cbiAgICAgICAgICB1c2VyczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VySW5Sb2xlSW5mb1wiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRMaXN0Um9sZXNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIHJvbGVzIGluIGFuIG9yZ2FuaXphdGlvbi4gKi9cbiAgICAgICAgICByb2xlczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSb2xlSW5mb1wiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRQb2xpY3lMb2dzUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBwb2xpY3kgZXhlY3V0aW9uIGxvZ3MgKi9cbiAgICAgICAgICBsb2dzOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gICAgICAgICAgfVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRRdWVyeU1ldHJpY3NSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWR2aXNvcnkgbWVzc2FnZXMgKGUuZy4sIGlmIG1heCBudW1iZXIgb2YgcmVzdWx0cyBpcyByZWFjaGVkKS4gKi9cbiAgICAgICAgICBtZXNzYWdlcz86IHN0cmluZ1tdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBlcmlvZCBmb3Igd2hpY2ggdGhlIHN0YXRpc3RpYyBpcyBjb21wdXRlZCwgaWYgYW55IChub3QgYWxsIG1ldHJpY3Mgc3VwcG9ydCBzcGxpdHRpbmcgdGhlIHJlcXVlc3RlZCB0aW1lIHJhbmdlIGludG8gYmlucykuXG4gICAgICAgICAgICogSWYgc2V0LCBlcXVhbHMgdG8gdGhlIHZhbHVlIGZyb20gdGhlIHJlcXVlc3Qgcm91bmRlZCB1cCB0byB0aGUgY2xvc2VzdCBtdWx0aXBsZSBvZiA2MC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwZXJpb2Q/OiBudW1iZXI7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTb21lIG1ldHJpY3MgY2FuIG9wdGlvbmFsbHkgcmV0dXJuIHRoZSByYXcgZGF0YSwgd2hlbiByZXF1ZXN0ZWQuICovXG4gICAgICAgICAgcmF3X2RhdGE6IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICAgICAgICB9W107XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDb21wdXRlZCBkYXRhIHBvaW50cy4gKi9cbiAgICAgICAgICByZXN1bHRzOiB7XG4gICAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBkYXRhIHBvaW50cywgb25lIGZvciBlYWNoIHRpbWUgcGVyaW9kICh0aW1lIHBlcmlvZHMgZm9yIHdoaWNoIHRoZSB2YWx1ZSBpcyAwIGFyZSBvbWl0dGVkKS4gKi9cbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgW2tleTogc3RyaW5nXTogbnVtYmVyO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG1ldHJpYyBkaW1lbnNpb25zLiAqL1xuICAgICAgICAgICAgZGltZW5zaW9uczoge1xuICAgICAgICAgICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1bXTtcbiAgICAgICAgICBzdGF0PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPcmdNZXRyaWNTdGF0XCJdIHwgbnVsbDtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUGFnaW5hdGVkU2Vzc2lvbnNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2Ygc2Vzc2lvbnMgKi9cbiAgICAgICAgICBzZXNzaW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZXNzaW9uSW5mb1wiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRVc2VyRXhwb3J0TGlzdFJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgZXhwb3J0X3JlcXVlc3RzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJFeHBvcnRJbml0UmVzcG9uc2VcIl1bXTtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUGFzc2tleUFzc2VydENoYWxsZW5nZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2hhbGxlbmdlUGllY2VzXCJdICYge1xuICAgICAgICAgIG9wdGlvbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zXCJdO1xuICAgICAgICB9KSAmIHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgY2hhbGxlbmdlLiBNdXN0IGJlIHN1cHBsaWVkIHdoZW4gYW5zd2VyaW5nIHRoZSBjaGFsbGVuZ2UuICovXG4gICAgICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFeHRlbmRlZCBpbmZvcm1hdGlvbiBhYm91dCBhbiBleGlzdGluZyBNTUkgcmVxdWVzdC4gKi9cbiAgICBQZW5kaW5nTWVzc2FnZUluZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBtZXRhZGF0YTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNbWlNZXRhZGF0YVwiXTtcbiAgICAgICAgICBzaWduZWRNZXNzYWdlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTaWduZWRNZXNzYWdlXCJdIHwgbnVsbDtcbiAgICAgICAgICB0cmFuc2FjdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVHJhbnNhY3Rpb25BbmRTdGF0dXNcIl0gfCBudWxsO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIGNyZWF0ZWRfYXQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgICAgICBleHBpcmVzX2F0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHBlbmRpbmcgbWVzc2FnZSAqL1xuICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaWRlbnRpdHkgKGEgdXNlciBvciBhIHJvbGUgaWQpIHdoaWNoIGNyZWF0ZWQgdGhpcyBtZXNzYWdlLiAqL1xuICAgICAgICAgIGlkZW50aXR5OiBzdHJpbmc7XG4gICAgICAgICAgbWVzc2FnZV9laXAxOTE/OiB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIGFkZHJlc3MsIGhleC1lbmNvZGVkLCB3aXRoIGxlYWRpbmcgJzB4J1xuICAgICAgICAgICAgICogQGV4YW1wbGUgMHgwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgKGluY2x1ZGluZyBhICcweCcgcHJlZml4KSBtZXNzYWdlIHRvIHNpZ24uICovXG4gICAgICAgICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgICAgICAgfSB8IG51bGw7XG4gICAgICAgICAgbWVzc2FnZV9laXA3MTI/OiB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIGFkZHJlc3MsIGhleC1lbmNvZGVkLCB3aXRoIGxlYWRpbmcgJzB4J1xuICAgICAgICAgICAgICogQGV4YW1wbGUgMHgwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgICAgICAgIGRhdGE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVHlwZWREYXRhXCJdO1xuICAgICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgICB2ZXJzaW9uOiBcInYzXCIgfCBcInY0XCI7XG4gICAgICAgICAgfSB8IG51bGw7XG4gICAgICAgICAgbWVzc2FnZV90eD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVHlwZWRUcmFuc2FjdGlvblwiXSB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFeHRlbmRlZCBpbmZvcm1hdGlvbiBhYm91dCBhbiBleGlzdGluZyBNTUkgbWVzc2FnZSwgaW5jbHVkaW5nIHRoZSBzaWduYXR1cmUuICovXG4gICAgUGVuZGluZ01lc3NhZ2VTaWduUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6ICh7XG4gICAgICAgICAgbWV0YWRhdGE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTW1pTWV0YWRhdGFcIl07XG4gICAgICAgICAgc2lnbmVkTWVzc2FnZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2lnbmVkTWVzc2FnZVwiXSB8IG51bGw7XG4gICAgICAgICAgdHJhbnNhY3Rpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRyYW5zYWN0aW9uQW5kU3RhdHVzXCJdIHwgbnVsbDtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICBjcmVhdGVkX2F0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAgICAgZXhwaXJlc19hdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBwZW5kaW5nIG1lc3NhZ2UgKi9cbiAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkZW50aXR5IChhIHVzZXIgb3IgYSByb2xlIGlkKSB3aGljaCBjcmVhdGVkIHRoaXMgbWVzc2FnZS4gKi9cbiAgICAgICAgICBpZGVudGl0eTogc3RyaW5nO1xuICAgICAgICAgIG1lc3NhZ2VfZWlwMTkxPzoge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gRnJvbSBhZGRyZXNzLCBoZXgtZW5jb2RlZCwgd2l0aCBsZWFkaW5nICcweCdcbiAgICAgICAgICAgICAqIEBleGFtcGxlIDB4MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIChpbmNsdWRpbmcgYSAnMHgnIHByZWZpeCkgbWVzc2FnZSB0byBzaWduLiAqL1xuICAgICAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgICAgICAgIH0gfCBudWxsO1xuICAgICAgICAgIG1lc3NhZ2VfZWlwNzEyPzoge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gRnJvbSBhZGRyZXNzLCBoZXgtZW5jb2RlZCwgd2l0aCBsZWFkaW5nICcweCdcbiAgICAgICAgICAgICAqIEBleGFtcGxlIDB4MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgICAgICAgICBkYXRhOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlR5cGVkRGF0YVwiXTtcbiAgICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgICAgdmVyc2lvbjogXCJ2M1wiIHwgXCJ2NFwiO1xuICAgICAgICAgIH0gfCBudWxsO1xuICAgICAgICAgIG1lc3NhZ2VfdHg/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlR5cGVkVHJhbnNhY3Rpb25cIl0gfCBudWxsO1xuICAgICAgICB9KSAmXG4gICAgICAgICAgUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSBzdHJ1Y3QgY29udGFpbmluZyBhbGwgdGhlIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBhIHBvbGljeS4gKi9cbiAgICBQb2xpY3lJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYWNjZXNzLWNvbnRyb2wgZW50cmllcyBmb3IgdGhlIHBvbGljeS4gKi9cbiAgICAgICAgICBhY2w/OiB1bmtub3duW10gfCBudWxsO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBsaXN0IG9mIGVudGl0aWVzIChrZXlzLCByb2xlcywgZXRjLikgdGhlIHBvbGljeSBpcyBhdHRhY2hlZCB0by4gKi9cbiAgICAgICAgICBhdHRhY2hlZF90bzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQb2xpY3lBdHRhY2hlZFRvSWRcIl1bXTtcbiAgICAgICAgICBjcmVhdGVkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAgICAgZWRpdF9wb2xpY3k/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVkaXRQb2xpY3lcIl07XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVc2VyLWRlZmluZWQgbWV0YWRhdGEgZm9yIHRoZSBuYW1lZCBwb2xpY3kuICovXG4gICAgICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5hbWUgb2YgdGhlIHBvbGljeS4gKi9cbiAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgb3duZXI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcG9saWN5IGlkICovXG4gICAgICAgICAgcG9saWN5X2lkOiBzdHJpbmc7XG4gICAgICAgICAgcG9saWN5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUG9saWN5VHlwZVwiXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBwb2xpY3kgcnVsZS4gKi9cbiAgICAgICAgICBydWxlczogdW5rbm93bltdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBvbGljeSBydWxlJ3MgdmVyc2lvbi5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICB2ZXJzaW9uOiBudW1iZXI7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBvbGljeVJlc3VsdFJlc3BvbnNlIGlzIGEgd3JhcHBlciBvbiBQb2xpY3lSZXN1bHQgd2l0aCB0d28gaW1wb3J0YW50XG4gICAgICogcHJvcGVydGllczpcbiAgICAgKiAqIGRlcml2ZXMgT2tUb0xvZ1Jlc3BvbnNlLCBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGluIHRoZSByb2NrZXQgaGFuZGxlci5cbiAgICAgKiAqIGRlcml2ZXMgVG9TY2hlbWEgYW5kIFRvUmVzcG9uc2UsIHdpdGggdGhlIGB2YWxgIGZpZWxkIHdpdGggdmFsdWVfdHlwZVxuICAgICAqIE9iamVjdCwgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHByb3ZpZGUgYWxsIG9mIHRoZSBPcGVuQVBJIHR5cGVcbiAgICAgKiBkZXNjcmlwdGlvbnMgb2YgYSBQb2xpY3lSZXN1bHQuXG4gICAgICpcbiAgICAgKiBUaGUgUG9saWN5UmVzdWx0IGluY2x1ZGVzIGVudW1zIGFuZCBvdGhlciBzdGFuZGFyZCB0eXBlcyAoZS5nLlxuICAgICAqIHN0ZDo6dGltZTo6SW50ZXJ2YWwpIHdoaWNoIGFyZSBub250cml2aWFsIHRvIHJlcHJlc2VudCBpbiBPcGVuQVBJLiBTaW5jZVxuICAgICAqIHRoaXMgZW5kcG9pbnQgaXMganVzdCBmb3IgdGVzdGluZywgd2UgZG9uJ3QgcmVhbGx5IGNhcmUgYWJvdXQgaG93IGFjY3VyYXRlXG4gICAgICogdGhlIHNjaGVtYSBpcywgYW5kIGNhbiBsZWFuIG9uIHNlcmRlX2pzb24gd2hlbiBkZWNvZGluZyB0aGlzIHJlc3BvbnNlIHRvIGFcbiAgICAgKiBQb2xpY3lSZXN1bHQgaW4gYSBjbGllbnQuIE5vdGUgdGhhdCB0aGVyZSBpcyBhIGJ1ZyBpbiB1dG9pcGEgd2hlcmUgdGhlXG4gICAgICogdmFsdWVfdHlwZSBhbm5vdGF0aW9uIHdpbGwgbm90IHdvcmsgZm9yIGEgdHVwbGUtc3RydWN0LCBvbmx5IGEgc3RydWN0IHdpdGhcbiAgICAgKiBmaWVsZHMuXG4gICAgICovXG4gICAgUG9saWN5UmVzdWx0UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICB2YWw6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgc3RydWN0IGNvbnRhaW5pbmcgYWxsIG5vbi1zZWNyZXQgaW5mb3JtYXRpb24gYWJvdXQgcG9saWN5IHNlY3JldHMuICovXG4gICAgUG9saWN5U2VjcmV0c0luZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29tbW9uRmllbGRzXCJdICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXByZWNhdGVkXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBuYW1lcyBvZiB0aGUgc2VjcmV0cy5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBuYW1lczogc3RyaW5nW107XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcG9saWN5IHNlY3JldHMuICovXG4gICAgICAgICAgc2VjcmV0czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNyZXRJbmZvXCJdW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSB0byBhIFBTQlQgc2lnbmluZyByZXF1ZXN0ICovXG4gICAgUHNidFNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFBTQlQgaW4gc3RhbmRhcmQgaGV4IHNlcmlhbGl6YXRpb24sIHdpdGhvdXQgbGVhZGluZyBcIjB4XCIuXG4gICAgICAgICAgICogQGV4YW1wbGUgNzA3MzYyNzRmZjAxMDA1ZS4uLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHBzYnQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFB1YmxpYyBpbmZvcm1hdGlvbiBhYm91dCBhbiBvcmdhbml6YXRpb24uICovXG4gICAgUHVibGljT3JnSW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gRXhwbGljaXRseSBjb25maWd1cmVkIChhbGxvd2xpc3RlZCkgT3BlbklEIHByb3ZpZGVycyBmb3IgYW4gb3JnICovXG4gICAgICAgICAgb2lkY19pc3N1ZXJzOiB7XG4gICAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEludGVuZGVkIGF1ZGllbmNlcyAoY2xpZW50IElEcykgKi9cbiAgICAgICAgICAgIGF1ZGllbmNlczogc3RyaW5nW107XG4gICAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIElzc3VlciBVUkwgKi9cbiAgICAgICAgICAgIGlzc3Vlcjogc3RyaW5nO1xuICAgICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBpc3N1ZXIgbmlja25hbWUgKi9cbiAgICAgICAgICAgIG5pY2tuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIgcm9sZXMgYWxsb3dlZCB0byB1c2UgdGhpcyBJRFAgKi9cbiAgICAgICAgICAgIHVzZXJzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1lbWJlclJvbGVcIl1bXTtcbiAgICAgICAgICB9W107XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIE9yZyBpZGVudGlmaWVyXG4gICAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciBsb2dnaW5nIGluIHdpdGgganVzdCBhIHBhc3NrZXkgaXMgYWxsb3dlZCAqL1xuICAgICAgICAgIHBhc3NrZXlfbG9naW5fZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtZXRyaWMgZGF0YSBwb2ludHMuICovXG4gICAgUXVlcnlNZXRyaWNzUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFkdmlzb3J5IG1lc3NhZ2VzIChlLmcuLCBpZiBtYXggbnVtYmVyIG9mIHJlc3VsdHMgaXMgcmVhY2hlZCkuICovXG4gICAgICAgICAgbWVzc2FnZXM/OiBzdHJpbmdbXTtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBwZXJpb2QgZm9yIHdoaWNoIHRoZSBzdGF0aXN0aWMgaXMgY29tcHV0ZWQsIGlmIGFueSAobm90IGFsbCBtZXRyaWNzIHN1cHBvcnQgc3BsaXR0aW5nIHRoZSByZXF1ZXN0ZWQgdGltZSByYW5nZSBpbnRvIGJpbnMpLlxuICAgICAgICAgICAqIElmIHNldCwgZXF1YWxzIHRvIHRoZSB2YWx1ZSBmcm9tIHRoZSByZXF1ZXN0IHJvdW5kZWQgdXAgdG8gdGhlIGNsb3Nlc3QgbXVsdGlwbGUgb2YgNjAuXG4gICAgICAgICAgICovXG4gICAgICAgICAgcGVyaW9kPzogbnVtYmVyO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gU29tZSBtZXRyaWNzIGNhbiBvcHRpb25hbGx5IHJldHVybiB0aGUgcmF3IGRhdGEsIHdoZW4gcmVxdWVzdGVkLiAqL1xuICAgICAgICAgIHJhd19kYXRhOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gICAgICAgICAgfVtdO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29tcHV0ZWQgZGF0YSBwb2ludHMuICovXG4gICAgICAgICAgcmVzdWx0czoge1xuICAgICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZGF0YSBwb2ludHMsIG9uZSBmb3IgZWFjaCB0aW1lIHBlcmlvZCAodGltZSBwZXJpb2RzIGZvciB3aGljaCB0aGUgdmFsdWUgaXMgMCBhcmUgb21pdHRlZCkuICovXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IG51bWJlcjtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtZXRyaWMgZGltZW5zaW9ucy4gKi9cbiAgICAgICAgICAgIGRpbWVuc2lvbnM6IHtcbiAgICAgICAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9W107XG4gICAgICAgICAgc3RhdD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3JnTWV0cmljU3RhdFwiXSB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUm9sZUluZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29tbW9uRmllbGRzXCJdICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSByb2xlIGlzIGVuYWJsZWRcbiAgICAgICAgICAgKiBAZXhhbXBsZSB0cnVlXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIERlcHJlY2F0ZWQuIFRoZSBDdWJlU2lnbmVyIElEcyBvZiBhdCBtb3N0IDEwMCBrZXlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJvbGUuICovXG4gICAgICAgICAga2V5cz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5Sb2xlSW5mb1wiXVtdIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgY3VycmVudCB1c2VyIGlzIGEgbWVtYmVyIG9mIHRoZSByb2xlLiBUaGlzIGlzIGFsd2F5cyB0cnVlLFxuICAgICAgICAgICAqIGV4Y2VwdCBmb3Igb3duZXJzIHdobyBjYW4gc2VlIHJvbGVzIHRoZXkgYXJlIG5vdCBtZW1iZXJzIG9mLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIG1lbWJlcjogYm9vbGVhbjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSByb2xlIChtdXN0IGJlIGFscGhhbnVtZXJpYylcbiAgICAgICAgICAgKiBAZXhhbXBsZSBteV9yb2xlXG4gICAgICAgICAgICovXG4gICAgICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFBvbGljeSB0aGF0IGlzIGNoZWNrZWQgd2hlbmV2ZXIgYSBrZXkgaXMgYWNjZXNzZWQgZm9yIHNpZ25pbmcgdmlhIHRoaXMgcm9sZS5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAgICogICB7XG4gICAgICAgICAgICogICAgIFwiU291cmNlSXBBbGxvd2xpc3RcIjogW1xuICAgICAgICAgICAqICAgICAgIFwiMTIzLjQ1Ni43OC45LzE2XCJcbiAgICAgICAgICAgKiAgICAgXVxuICAgICAgICAgICAqICAgfSxcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJSZXF1aXJlTWZhXCI6IHtcbiAgICAgICAgICAgKiAgICAgICBcImNvdW50XCI6IDFcbiAgICAgICAgICAgKiAgICAgfVxuICAgICAgICAgICAqICAgfVxuICAgICAgICAgICAqIF1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICAgICAgICByZXN0cmljdGVkX2FjdGlvbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUmVzdHJpY3RlZEFjdGlvbnNNYXBcIl07XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgcm9sZVxuICAgICAgICAgICAqIEBleGFtcGxlIFJvbGUjYmZlM2VjY2ItNzMxZS00MzBkLWIxZTUtYWMxMzYzZTZiMDZiXG4gICAgICAgICAgICovXG4gICAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGVwcmVjYXRlZC4gVGhlIGxpc3Qgb2YgYXQgbW9zdCAxMDAgdXNlcnMgd2l0aCBhY2Nlc3MgdG8gdGhlIHJvbGUuICovXG4gICAgICAgICAgdXNlcnM/OiBzdHJpbmdbXSB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCB3aGVuIHJlcXVlc3RpbmcgYSByb2xlIGF0dGVzdGF0aW9uLiAqL1xuICAgIFJvbGVJbmZvSnd0OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIEpTT04gV2ViIFRva2VuIHdob3NlIGNsYWltcyBjb250YWluIHRoZSBgUm9sZUluZm9gIHN0cnVjdHVyZS4gKi9cbiAgICAgICAgICBqd3Q6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBTZXNzaW9uSW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZXNzaW9uTWV0YWRhdGFcIl0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGlvbiBkYXRlIChpbiBzZWNvbmRzIHNpbmNlIHVuaXggZXBvY2gpXG4gICAgICAgICAgICovXG4gICAgICAgICAgY3JlYXRlZF9hdDogbnVtYmVyO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gRXhwaXJhdGlvbiBkYXRlIChpbiBzZWNvbmRzIHNpbmNlIHVuaXggZXBvY2gpXG4gICAgICAgICAgICovXG4gICAgICAgICAgZXhwOiBudW1iZXI7XG4gICAgICAgICAgbGFzdF91c2VkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJXaGVyZUFuZFdoZW5cIl0gfCBudWxsO1xuICAgICAgICAgIGxpZmV0aW1lcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUmF0Y2hldENvbmZpZ1wiXTtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBmb3IgdGhlIHNlc3Npb25cbiAgICAgICAgICAgKiBAZXhhbXBsZSBPSURDIGxvZ2luIHNlc3Npb25cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIExpc3RzIHVzZXIgcGVybWlzc2lvbiBhbmQgYWNjZXNzIGZvciB0aGUgc2Vzc2lvblxuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIFwic2lnbjoqXCIsXG4gICAgICAgICAgICogICBcIm1hbmFnZTptZmE6dm90ZTpjc1wiXG4gICAgICAgICAgICogXVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNjb3Blcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2NvcGVcIl1bXTtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gU2Vzc2lvbiBJRC4gVW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiwgYnV0IGNhbm5vdCBiZSB1c2VkIGZvciBhdXRoLlxuICAgICAgICAgICAqIEBleGFtcGxlIDc3YWFkMjEwMGMzNjFmNDk3NjM1ZGQwMDVjNGQxNTc4MWUyZTVkZjRiOWY0NWQ4ZTc0ZjM3NDI1Y2JjMzBiOWVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBzZXNzaW9uX2lkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzcG9uc2UgZnJvbSBhbnkgb3BlcmF0aW9uIG9wZXJhdGluZyBvbiBtdWx0aXBsZSBzZXNzaW9ucyAqL1xuICAgIFNlc3Npb25zUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBsaXN0IG9mIHNlc3Npb25zICovXG4gICAgICAgICAgc2Vzc2lvbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vzc2lvbkluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBTaWduUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgcmVzdWx0aW5nIHNpZ25hdHVyZS4gKi9cbiAgICAgICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJldHVybmVkIHVwb24gYSBzdWNjZXNzZnVsIFNJV0UgYXV0aGVudGljYXRpb24uICovXG4gICAgU2l3ZUNvbXBsZXRlUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBPSURDIHRva2VuIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHVzZXIgd2l0aCB0aGUgcmVxdWVzdGVkIFNJV0UgaWRlbnRpdHkuICovXG4gICAgICAgICAgaWRfdG9rZW46IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQSBjaGFsbGVuZ2UgcmV0dXJuZWQgaW4gcmVzcG9uc2UgdG8gYSBTaWduLUluIHdpdGggRXRoZXJldW0gcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIENvbnRhaW5zIGEgbWVzc2FnZSB0aGF0IHRoZSBjbGllbnQgbXVzdCBzaWduIGZvbGxvd2luZyBFSVAtMTkxXG4gICAgICogd2l0aCB0aGUgcmVxdWVzdGVkIGtleSBpbiBvcmRlciB0byBjb21wbGV0ZSBhdXRoZW50aWNhdGlvbi5cbiAgICAgKlxuICAgICAqIFRoZSBjbGllbnQgaGFzIHVudGlsIHRoZSBtZXNzYWdlIGV4cGlyZXMgKGJ1dCBubyBtb3JlIHRoYW4gNSBtaW51dGVzKSB0byBjb21wbGV0ZSB0aGUgY2hhbGxlbmdlLlxuICAgICAqL1xuICAgIFNpd2VJbml0UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgY2hhbGxlbmdlICh0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0IHdoZW4gY2FsbGluZyB0aGUgUEFUQ0ggKCdjb21wbGV0ZScpIGVuZHBvaW50KSAqL1xuICAgICAgICAgIGNoYWxsZW5nZV9pZDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG1lc3NhZ2UgdG8gc2lnbiBmb2xsb3dpbmcgdGhlIEVJUC0xOTEgc3RhbmRhcmQuICovXG4gICAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmV0dXJuZWQgdXBvbiBhIHN1Y2Nlc3NmdWwgU0lXUyBhdXRoZW50aWNhdGlvbi4gKi9cbiAgICBTaXdzQ29tcGxldGVSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIE9JREMgdG9rZW4gY29ycmVzcG9uZGluZyB0byB0aGUgdXNlciB3aXRoIHRoZSByZXF1ZXN0ZWQgU0lXUyBpZGVudGl0eS4gKi9cbiAgICAgICAgICBpZF90b2tlbjogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBIGNoYWxsZW5nZSByZXR1cm5lZCBpbiByZXNwb25zZSB0byBhIFNpZ24tSW4gd2l0aCBTb2xhbmEgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIENvbnRhaW5zIGEgc3RydWN0dXJlZCBbU2lnbkluSW5wdXRdIHRoYXQgdGhlIGNsaWVudCBtdXN0IHJlbmRlciB0byBpdHMgY2Fub25pY2FsIHRleHQgYW5kIHNpZ25cbiAgICAgKiAoZWQyNTUxOSkgd2l0aCB0aGUgcmVxdWVzdGVkIGtleSBpbiBvcmRlciB0byBjb21wbGV0ZSBhdXRoZW50aWNhdGlvbi5cbiAgICAgKlxuICAgICAqIFRoZSBjbGllbnQgaGFzIHVudGlsIHRoZSBtZXNzYWdlIGV4cGlyZXMgKGJ1dCBubyBtb3JlIHRoYW4gNSBtaW51dGVzKSB0byBjb21wbGV0ZSB0aGUgY2hhbGxlbmdlLlxuICAgICAqL1xuICAgIFNpd3NJbml0UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgY2hhbGxlbmdlICh0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0IHdoZW4gY2FsbGluZyB0aGUgUEFUQ0ggKCdjb21wbGV0ZScpIGVuZHBvaW50KSAqL1xuICAgICAgICAgIGNoYWxsZW5nZV9pZDogc3RyaW5nO1xuICAgICAgICAgIHNpZ25faW5faW5wdXQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2lnbkluSW5wdXRcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgU3Rha2VSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogKHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgZGVwb3NpdF90eDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJEZXBvc2l0VHhuXCJdO1xuICAgICAgICB9KSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHZhbGlkYXRvciBrZXkgaWQgKFwiS2V5Iy4uLlwiKVxuICAgICAgICAgICAqIEBleGFtcGxlIEtleSNkYjE3MzFmOC0zNjU5LTQ1YzAtODg1Yi1lMTFlMWY1YjdiZTJcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBjcmVhdGVkX3ZhbGlkYXRvcl9rZXlfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBUZWxlZ3JhbUF1dGhSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIE9JREMgdG9rZW4gY29ycmVzcG9uZGluZyB0byB0aGlzIHRlbGVncmFtIHVzZXIgKi9cbiAgICAgICAgICBpZF90b2tlbjogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBPQXV0aDIgc3RhbmRhcmQgVG9rZW4gUmVzcG9uc2UuXG4gICAgICpcbiAgICAgKiBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzY3NDkjc2VjdGlvbi00LjIuMlxuICAgICAqL1xuICAgIFRva2VuUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBhY2Nlc3MgdG9rZW4gaXNzdWVkIGJ5IHRoZSBhdXRob3JpemF0aW9uIHNlcnZlci4gKi9cbiAgICAgICAgICBhY2Nlc3NfdG9rZW46IHN0cmluZztcbiAgICAgICAgICBleHBpcmVzX2luOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZHNcIl07XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBPSURDIHRva2VuIGlzc3VlZCBieSBDdWJpc3QsIGNvbnRhaW5pbmcgdXNlciBpbmZvcm1hdGlvbiAqL1xuICAgICAgICAgIGlkX3Rva2VuPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZWZyZXNoIHRva2VuIGlzc3VlZCBieSB0aGUgYXV0aG9yaXphdGlvbiBzZXJ2ZXIuICovXG4gICAgICAgICAgcmVmcmVzaF90b2tlbj86IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgdHlwZSBvZiB0aGUgdG9rZW4gaXNzdWVkLiBWYWx1ZSBpcyBjYXNlIGluc2Vuc2l0aXZlLiAqL1xuICAgICAgICAgIHRva2VuX3R5cGU6IHN0cmluZztcbiAgICAgICAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICAgICAgICB9ICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFRvdHBJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgVE9UUCBjaGFsbGVuZ2UuXG4gICAgICAgICAgICogQGV4YW1wbGUgVG90cENoYWxsZW5nZSM3ODkyZWJiYS01NjNlLTQ4NWItYmI3ZC1lMjYyNjczNjMyODZcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB0b3RwX2lkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFN0YW5kYXJkIFRPVFAgdXJsIHdoaWNoIGluY2x1ZGVzIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvIGluaXRpYWxpemUgVE9UUC5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBvdHBhdXRoOi8vdG90cC9DdWJpc3Q6YWxpY2UtJTQwZXhhbXBsZS5jb20/c2VjcmV0PURBSEY3S0NPVFFXU09NSzRYRkVNTkhYTzRKNDMzT0Q3Jmlzc3Vlcj1DdWJpc3RcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB0b3RwX3VybDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzdWx0IG9mIHJlZ2lzdGVyaW5nIChyZXNldHRpbmcpIFRPVFAgKi9cbiAgICBUb3RwUmVnaXN0ZXJSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIG1mYT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhUmVxdWVzdEluZm9cIl07XG4gICAgICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN0YXR1c09rXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSByZXNwb25zZSB0byBzaWduIGFuIGV0aDIgdW5zdGFrZSByZXF1ZXN0LiAqL1xuICAgIFVuc3Rha2VSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIG1lc3NhZ2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVm9sdW50YXJ5RXhpdFwiXTtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQkxTIHNpZ25hdHVyZS5cbiAgICAgICAgICAgKiBAZXhhbXBsZSAweDkxMGM3Y2Q1MzdlZDkxY2M4YzRhODJmM2NiZDgzMmU5YmU4YzI0YTIyZTljODZkZjQ3OWY3Y2U0MjAyNWVhNmEwOTYxOWI0MThiNjY2YTA2MGUyNjBkMmFhZTMxYjhlNTBlOWQwNWNhMzQ0MmM3ZWVkM2I1MDdlNTIwN2UxNDY3NDI3NWY2OGMyYmE4NGM0YmY2YjhkZDM2NGEzMDRhY2FjOGNmYWIzNjgxZTI1MTRiNDQwMGY5MjQyYmM2MTE2NFxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICAgICAgfSAmIFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAgIH07XG4gICAgfTtcbiAgICBVcGRhdGVPcmdSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIGFsaWVuX2xvZ2luX3JlcXVpcmVtZW50PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNvbmRGYWN0b3JSZXF1aXJlbWVudFwiXSB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIE1GQSB0eXBlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIHVzZWQgZm9yIGltcGxpY2l0bHkgc2VjdXJpdHktc2Vuc2l0aXZlXG4gICAgICAgICAgICogb3BlcmF0aW9ucyAobGlrZSBsb2dnaW5nIGluLCBhZGRpbmcgYW4gTUZBIGZhY3RvciwgZXhwb3J0aW5nIGtleXMsIGV0Yy4pLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGFsbG93ZWRfbWZhX3R5cGVzPzoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFUeXBlXCJdW107XG4gICAgICAgICAgfSB8IG51bGw7XG4gICAgICAgICAgY3VzdG9tX2NoYWlucz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3VzdG9tQ2hhaW5zRGF0YVwiXSB8IG51bGw7XG4gICAgICAgICAgZGVmYXVsdF9pbnZpdGVfa2luZD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSW52aXRlS2luZFwiXSB8IG51bGw7XG4gICAgICAgICAgZWRpdF9wb2xpY3k/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVkaXRQb2xpY3lcIl0gfCBudWxsO1xuICAgICAgICAgIGVtYWlsX3ByZWZlcmVuY2VzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbWFpbFByZWZlcmVuY2VzXCJdIHwgbnVsbDtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSAqL1xuICAgICAgICAgIGVuYWJsZWQ/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgICAgICBleHRfZGF0YT86XG4gICAgICAgICAgICB8ICh7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBQZXIgYWxpZW4gdXNlciBrZXkgY291bnQgdGhyZXNob2xkLCB3aGljaCwgb25jZSBleGNlZWRlZCwgZGlzYWxsb3dzIGZ1cnRoZXIga2V5IGNyZWF0aW9uIGJ5IGFsaWVuIHVzZXJzLlxuICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgICogVGhpcyBzZXR0aW5nIGlzIGNoZWNrZWQgb25seSB3aGVuIGFuIGFsaWVuIHVzZXIgcmVxdWVzdHMgdG8gY3JlYXRlIG9yIGltcG9ydCBhIG5ldyBrZXkuXG4gICAgICAgICAgICAgICAgICogSW4gb3RoZXIgd29yZHMsIG9yZyBhZG1pbnMgY2FuIHN0aWxsIGFzc2lnbiB1bmxpbWl0ZWQgbnVtYmVyIG9mIGtleXMgdG8gdGhlaXIgYWxpZW4gdXNlcnMuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgYWxpZW5fa2V5X2NvdW50X3RocmVzaG9sZD86IG51bWJlciB8IG51bGw7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgYWxpZW4gdXNlcnMgYXJlIGFsbG93ZWQgdG8gdXBkYXRlIHRoZWlyIG93biBrZXkgcG9saWNpZXMuXG4gICAgICAgICAgICAgICAgICogRGVmYXVsdHMgdG8gJ2ZhbHNlJy5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBhbGllbnNfY2FuX3VwZGF0ZV9rZXlfcG9saWN5PzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAgICAgICAgIH0gJiB7XG4gICAgICAgICAgICAgICAgY3JlYXRlZD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXSB8IG51bGw7XG4gICAgICAgICAgICAgICAgbGFzdF9tb2RpZmllZD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXSB8IG51bGw7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBWZXJzaW9uIG9mIHRoaXMgb2JqZWN0XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgdmVyc2lvbj86IG51bWJlcjtcbiAgICAgICAgICAgICAgfSAmIFJlY29yZDxzdHJpbmcsIG5ldmVyPilcbiAgICAgICAgICAgIHwgbnVsbDtcbiAgICAgICAgICBoaXN0b3JpY2FsX2RhdGFfY29uZmlndXJhdGlvbj86XG4gICAgICAgICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSGlzdG9yaWNhbERhdGFDb25maWd1cmF0aW9uXCJdXG4gICAgICAgICAgICB8IG51bGw7XG4gICAgICAgICAgaWRwX2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkcENvbmZpZ1wiXSB8IG51bGw7XG4gICAgICAgICAga2V5X2V4cG9ydF9yZXF1aXJlbWVudD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kRmFjdG9yUmVxdWlyZW1lbnRcIl0gfCBudWxsO1xuICAgICAgICAgIG1lbWJlcl9sb2dpbl9yZXF1aXJlbWVudD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kRmFjdG9yUmVxdWlyZW1lbnRcIl0gfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBvcmcgKG11c3QgYmUgYWxwaGFudW1lcmljKVxuICAgICAgICAgICAqIEBleGFtcGxlIG15X29yZ19uYW1lXG4gICAgICAgICAgICovXG4gICAgICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBuZXcgbm90aWZpY2F0aW9uIGVuZHBvaW50IGNvbmZpZ3VyYXRpb25zXG4gICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAqICAge1xuICAgICAgICAgICAqICAgICBcInVybFwiOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnRcIlxuICAgICAgICAgICAqICAgfVxuICAgICAgICAgICAqIF1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBub3RpZmljYXRpb25fZW5kcG9pbnRzPzpcbiAgICAgICAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJOb3RpZmljYXRpb25FbmRwb2ludENvbmZpZ3VyYXRpb25cIl1bXVxuICAgICAgICAgICAgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIG9yZ2FuaXphdGlvblxuICAgICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgICBwYXNza2V5X2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBhc3NrZXlDb25maWdcIl0gfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IHZhbHVlIG9mIG9yZy13aWRlIHBvbGljaWVzXG4gICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAqICAge1xuICAgICAgICAgICAqICAgICBcIk1heERhaWx5VW5zdGFrZVwiOiA1XG4gICAgICAgICAgICogICB9LFxuICAgICAgICAgICAqICAge1xuICAgICAgICAgICAqICAgICBcIk9yaWdpbkFsbG93bGlzdFwiOiBbXG4gICAgICAgICAgICogICAgICAgXCJodHRwczovL2V4YW1wbGUuY29tXCJcbiAgICAgICAgICAgKiAgICAgXVxuICAgICAgICAgICAqICAgfVxuICAgICAgICAgICAqIF1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXSB8IG51bGw7XG4gICAgICAgICAgcG9saWN5X2VuZ2luZV9jb25maWd1cmF0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQb2xpY3lFbmdpbmVDb25maWd1cmF0aW9uXCJdIHwgbnVsbDtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgcmVxdWlyZV9zY29wZV9jZWlsaW5nICovXG4gICAgICAgICAgcmVxdWlyZV9zY29wZV9jZWlsaW5nPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdGhlIG9yZy13aWRlIHNpZ24gcnVsZXNcbiAgICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAgICogICB7XG4gICAgICAgICAgICogICAgIFwiVHhSZWNlaXZlclwiOiBcIjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiXG4gICAgICAgICAgICogICB9XG4gICAgICAgICAgICogXVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNpZ25fcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W10gfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiB0aGUgVE9UUCBmYWlsdXJlIGxpbWl0XG4gICAgICAgICAgICovXG4gICAgICAgICAgdG90cF9mYWlsdXJlX2xpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdXNlci1leHBvcnQgZGVsYXlcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB1c2VyX2V4cG9ydF9kZWxheT86IG51bWJlciB8IG51bGw7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IHZhbHVlIG9mIHVzZXItZXhwb3J0IGRpc2FibGVkICovXG4gICAgICAgICAgdXNlcl9leHBvcnRfZGlzYWJsZWQ/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdXNlci1leHBvcnQgd2luZG93XG4gICAgICAgICAgICovXG4gICAgICAgICAgdXNlcl9leHBvcnRfd2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIE5ldyBvcmcgdmVyc2lvblxuICAgICAgICAgICAqL1xuICAgICAgICAgIHZlcnNpb246IG51bWJlcjtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXNwb25zZSB0byBhIHJlcXVlc3QgZm9yIHVwbG9hZGluZyBhIHdhc20gcG9saWN5ICovXG4gICAgVXBsb2FkV2FzbVBvbGljeVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIHNpZ25lZCBVUkwgZm9yIHVwbG9hZGluZyB0aGUgcmVxdWVzdGVkIHdhc20gcG9saWN5LiAqL1xuICAgICAgICAgIHNpZ25lZF91cmw6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEFuIGVuY3J5cHRlZCB1c2VyLWV4cG9ydCAqL1xuICAgIFVzZXJFeHBvcnRDb21wbGV0ZVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBleHBvcnRlZCBrZXkgbWF0ZXJpYWwsIGVuY3J5cHRlZCB3aXRoIEFFUy0yNTYtR0NNIHVuZGVyIGEga2V5XG4gICAgICAgICAgICogZGVyaXZlZCBmcm9tIHRoZSBwdWJsaWMga2V5IHN1cHBsaWVkIGluIHRoZSByZXF1ZXN0IHZpYSBIUEtFIChSRkM5MTgwKVxuICAgICAgICAgICAqIHdpdGggREhLRU0oUC0yNTYsIEhLREYtU0hBMjU2KSBhbmQgYmFzZTY0IGVuY29kZWQuXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW5jcnlwdGVkX2tleV9tYXRlcmlhbDogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZXBoZW1lcmFsIHB1YmxpYyBrZXkgdXNlZCBmb3IgSFBLRSBrZXkgZGVyaXZhdGlvbiBhcyBiYXNlNjQtZW5jb2RlZFxuICAgICAgICAgICAqIHVuY29tcHJlc3NlZCBTRUMxIHNlcmlhbGl6YXRpb24uXG4gICAgICAgICAgICovXG4gICAgICAgICAgZXBoZW1lcmFsX3B1YmxpY19rZXk6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB1c2VyLWlkIHRvIHdoaWNoIHRoaXMga2V5IGJlbG9uZ3MuICovXG4gICAgICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIHRvIGEgc3VjY2Vzc2Z1bCB1c2VyLWV4cG9ydCBpbml0IHJlcXVlc3QgKi9cbiAgICBVc2VyRXhwb3J0SW5pdFJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJFeHBvcnRSZXF1ZXN0XCJdICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUga2V5LWlkIGJlaW5nIHJlcXVlc3RlZC5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMHgzYzRkOTBDYzVBZjE2NDRDM0EzQjAxM0JhYTU0ODg5OTczODFEN0M4XG4gICAgICAgICAgICovXG4gICAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgVXNlckluT3JnSW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdXNlcidzIGVtYWlsIChvcHRpb25hbClcbiAgICAgICAgICAgKiBAZXhhbXBsZSBhbGljZUBleGFtcGxlLmNvbVxuICAgICAgICAgICAqL1xuICAgICAgICAgIGVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSB1c2VyXG4gICAgICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgdXNlciBoYXMgZXZlciBzdWNjZXNzZnVsbHkgbG9nZ2VkIGluICovXG4gICAgICAgICAgaW5pdGlhbGl6ZWQ/OiBib29sZWFuO1xuICAgICAgICAgIG1lbWJlcnNoaXA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHVzZXIgbmFtZS4gKi9cbiAgICAgICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICBzdGF0dXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyc2hpcFN0YXR1c1wiXTtcbiAgICAgICAgICB2ZXJpZmllZF9lbWFpbD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVmVyaWZpZWRFbWFpbFwiXSB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgVXNlckluT3JnSW5mb1dpdGhJZGVudGl0eToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdXNlcidzIGVtYWlsIChvcHRpb25hbClcbiAgICAgICAgICAgKiBAZXhhbXBsZSBhbGljZUBleGFtcGxlLmNvbVxuICAgICAgICAgICAqL1xuICAgICAgICAgIGVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSB1c2VyXG4gICAgICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgdXNlciBoYXMgZXZlciBzdWNjZXNzZnVsbHkgbG9nZ2VkIGluICovXG4gICAgICAgICAgaW5pdGlhbGl6ZWQ/OiBib29sZWFuO1xuICAgICAgICAgIG1lbWJlcnNoaXA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHVzZXIgbmFtZS4gKi9cbiAgICAgICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICBzdGF0dXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyc2hpcFN0YXR1c1wiXTtcbiAgICAgICAgICB2ZXJpZmllZF9lbWFpbD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVmVyaWZpZWRFbWFpbFwiXSB8IG51bGw7XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCB0aGlyZC1wYXJ0eSBpZGVudGl0aWVzIHZpYSB3aGljaCB0aGUgdXNlciB3YXMgZm91bmQgKi9cbiAgICAgICAgICBpZGVudGl0aWVzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZGVudGl0eUluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBVc2VySW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBlbWFpbFxuICAgICAgICAgICAqIEBleGFtcGxlIGFsaWNlQGV4YW1wbGUuY29tXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW1haWw/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIG11bHRpLWZhY3RvciBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGNvbmZpZ3VyZWQgZm9yIHRoaXMgdXNlciAqL1xuICAgICAgICAgIG1mYTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb25maWd1cmVkTWZhXCJdW107XG4gICAgICAgICAgbWZhX3BvbGljeT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhUG9saWN5XCJdIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbmFtZVxuICAgICAgICAgICAqIEBleGFtcGxlIEFsaWNlXG4gICAgICAgICAgICovXG4gICAgICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlcHJlY2F0ZWRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQWxsIG9yZ2FuaXphdGlvbnMgdGhlIHVzZXIgYmVsb25ncyB0by4gRGVwcmVjYXRlZCBpbiBmYXZvciBvZiAnb3JncycuXG4gICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAqICAgXCJPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXCJcbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgb3JnX2lkczogc3RyaW5nW107XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgb3JnYW5pemF0aW9ucyB0aGUgdXNlciBiZWxvbmdzIHRvLCBpbmNsdWRpbmcgdGhlIG1lbWJlcnNoaXAgcm9sZSBpbiBlYWNoLiAqL1xuICAgICAgICAgIG9yZ3M6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckluT3JnTWVtYmVyc2hpcFwiXVtdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlclxuICAgICAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgICAgICovXG4gICAgICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgICAgICAgIHZlcmlmaWVkX2VtYWlsPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJWZXJpZmllZEVtYWlsXCJdIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXNwb25zZSB0byB0aGUgdXNlci9vcmdzIGVuZHBvaW50ICovXG4gICAgVXNlck9yZ3NSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2Ygb3JncyB0aGlzIHVzZXIgaXMgYSBtZW1iZXIgb2YgKi9cbiAgICAgICAgICBvcmdzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9yZ0RhdGFcIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgcGFyYW1ldGVyczogbmV2ZXI7XG4gIHJlcXVlc3RCb2RpZXM6IG5ldmVyO1xuICBoZWFkZXJzOiBuZXZlcjtcbiAgcGF0aEl0ZW1zOiBuZXZlcjtcbn1cblxuZXhwb3J0IHR5cGUgJGRlZnMgPSBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5cbmV4cG9ydCB0eXBlIGV4dGVybmFsID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG5leHBvcnQgaW50ZXJmYWNlIG9wZXJhdGlvbnMge1xuICAvKipcbiAgICogVXNlciBJbmZvXG4gICAqIEBkZXNjcmlwdGlvbiBVc2VyIEluZm9cbiAgICpcbiAgICogUmV0cmlldmVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IHVzZXIuXG4gICAqXG4gICAqIFBSRUZFUiBgR0VUIC92MC9vcmdzL3tvcmdfaWR9L3VzZXIvbWVgXG4gICAqL1xuICBhYm91dE1lTGVnYWN5OiB7XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVc2VySW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBKV0tTIGVuZHBvaW50IGZvciB0aGUgYXR0ZXN0YXRpb24ga2V5XG4gICAqIEBkZXNjcmlwdGlvbiBKV0tTIGVuZHBvaW50IGZvciB0aGUgYXR0ZXN0YXRpb24ga2V5XG4gICAqXG4gICAqIFJldHVybnMgdGhlIHB1YmxpYyBrZXkgdXNlZCB0byBzaWduIEtleSBpbmZvIGF0dGVzdGF0aW9ucy5cbiAgICovXG4gIGF0dGVzdGF0aW9uSndrU2V0OiB7XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJKd2tTZXRSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IGFjY2Vzc2libGUgb3JnYW5pemF0aW9ucy5cbiAgICogQGRlc2NyaXB0aW9uIExpc3QgYWNjZXNzaWJsZSBvcmdhbml6YXRpb25zLlxuICAgKlxuICAgKiBVbmF1dGhlbnRpY2F0ZWQgZW5kcG9pbnQgZm9yIHJldHJpZXZpbmcgYWxsIG9yZ2FuaXphdGlvbnMgYWNjZXNzaWJsZSB0byBhIHVzZXIuXG4gICAqIFRoaXMgaW5mb3JtYXRpb24gaXMgZW1haWxlZCB0byB0aGUgcHJvdmlkZWQgZW1haWwgYWRkcmVzcy5cbiAgICovXG4gIGVtYWlsX215X29yZ3M6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeToge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBvZiB0aGUgdXNlclxuICAgICAgICAgKiBAZXhhbXBsZSBhbGljZUBleGFtcGxlLmNvbVxuICAgICAgICAgKi9cbiAgICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiAoSU5URVJOQUwpIFNlbnRyeSBBUEkgUHJveHlcbiAgICogQGRlc2NyaXB0aW9uIChJTlRFUk5BTCkgU2VudHJ5IEFQSSBQcm94eVxuICAgKi9cbiAgc2VudHJ5QXBpQ2FsbFB1YmxpYzoge1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwidGV4dC9wbGFpblwiOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSldLUyBlbmRwb2ludCBmb3IgTU1JXG4gICAqIEBkZXNjcmlwdGlvbiBKV0tTIGVuZHBvaW50IGZvciBNTUlcbiAgICpcbiAgICogUmV0dXJucyB0aGUgcHVibGljIGtleSB1c2VkIHRvIHNpZ24gSlNPTiBXZWIgVG9rZW5zIGZvciBNTUkuXG4gICAqL1xuICBtbWlKd2tTZXQ6IHtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkp3a1NldFJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIE1NSSBKU09OLVJQQyBlbmRwb2ludFxuICAgKiBAZGVzY3JpcHRpb24gTU1JIEpTT04tUlBDIGVuZHBvaW50XG4gICAqXG4gICAqIEhhbmRsZXIgZm9yIGFsbCBbTU1JIEpTT04tUlBDXShodHRwczovL2RvY3MubWV0YW1hc2staW5zdGl0dXRpb25hbC5pby9jdXN0b2RpYW4taW50ZWdyYXRpb24vaW50ZWdyYXRpb24tZG9jcy9hcGkvbWV0aG9kcylcbiAgICogcmVxdWVzdHMuXG4gICAqL1xuICBtbWk6IHtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiSnJwY1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFRva2VuIHJlZnJlc2ggZW5kcG9pbnQsIGNvbXBsaWFudCB3aXRoIE9BdXRoLlxuICAgKiBAZGVzY3JpcHRpb24gVG9rZW4gcmVmcmVzaCBlbmRwb2ludCwgY29tcGxpYW50IHdpdGggT0F1dGguXG4gICAqXG4gICAqIFRoZSBib2R5IGNvbnRlbnQgdHlwZSBjYW4gYmUgZWl0aGVyICdhcHBsaWNhdGlvbi9qc29uJyBvciAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJy5cbiAgICovXG4gIG9hdXRoMlRva2VuUmVmcmVzaDoge1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRva2VuUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlRva2VuUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IE9yZ1xuICAgKiBAZGVzY3JpcHRpb24gR2V0IE9yZ1xuICAgKlxuICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgYW4gb3JnYW5pemF0aW9uLlxuICAgKi9cbiAgZ2V0T3JnOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiT3JnSW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBVcGRhdGUgT3JnXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgT3JnXG4gICAqXG4gICAqIFVwZGF0ZSBvcmdhbml6YXRpb24gYXR0cmlidXRlcyAoZW5hYmxlZCBmbGFnLCBuYW1lLCBhbmQgcG9saWNpZXMpLlxuICAgKi9cbiAgdXBkYXRlT3JnOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVwZGF0ZU9yZ1JlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVcGRhdGVPcmdSZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUXVlcnkgdGhlIGF1ZGl0IGxvZy5cbiAgICogQGRlc2NyaXB0aW9uIFF1ZXJ5IHRoZSBhdWRpdCBsb2cuXG4gICAqL1xuICBxdWVyeUF1ZGl0TG9nOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgICAqIHRoZSBleGFjdCB2YWx1ZSBwcmV2aW91c2x5IHJldHVybmVkIGFzICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHNhbWUgZW5kcG9pbnQuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1ZGl0TG9nUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBhZ2luYXRlZEF1ZGl0TG9nUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQXNzb2NpYXRlIGFuIE9JREMgaWRlbnRpdHkgd2l0aCBhbiBhcmJpdHJhcnkgdXNlciBpbiBvcmcgPHNlc3Npb24ub3JnPi5cbiAgICogQGRlc2NyaXB0aW9uIEFzc29jaWF0ZSBhbiBPSURDIGlkZW50aXR5IHdpdGggYW4gYXJiaXRyYXJ5IHVzZXIgaW4gb3JnIDxzZXNzaW9uLm9yZz4uXG4gICAqL1xuICBhdXRoTWlncmF0aW9uSWRlbnRpdHlBZGQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWlncmF0ZUlkZW50aXR5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBEaXNzb2NpYXRlIGFuIE9JREMgaWRlbnRpdHkgZnJvbSBhbiBhcmJpdHJhcnkgdXNlciBpbiBvcmcgPHNlc3Npb24ub3JnPi5cbiAgICogQGRlc2NyaXB0aW9uIERpc3NvY2lhdGUgYW4gT0lEQyBpZGVudGl0eSBmcm9tIGFuIGFyYml0cmFyeSB1c2VyIGluIG9yZyA8c2Vzc2lvbi5vcmc+LlxuICAgKi9cbiAgYXV0aE1pZ3JhdGlvbklkZW50aXR5UmVtb3ZlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1pZ3JhdGVJZGVudGl0eVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVXBkYXRlIGV4aXN0aW5nIHVzZXJzJyBwcm9maWxlcy4gQ3VycmVudGx5IHN1cHBvcnRzIG9ubHkgKHJlKXNldHRpbmcgZW1haWxzLlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIGV4aXN0aW5nIHVzZXJzJyBwcm9maWxlcy4gQ3VycmVudGx5IHN1cHBvcnRzIG9ubHkgKHJlKXNldHRpbmcgZW1haWxzLlxuICAgKi9cbiAgYXV0aE1pZ3JhdGlvblVzZXJVcGRhdGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWlncmF0ZVVwZGF0ZVVzZXJzUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIGEgc2VyaWFsaXplZCBBdmFsYW5jaGUgQy9YL1AtQ2hhaW4gTWVzc2FnZVxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBhIHNlcmlhbGl6ZWQgQXZhbGFuY2hlIEMvWC9QLUNoYWluIE1lc3NhZ2VcbiAgICpcbiAgICogU2lnbnMgYW4gQXZhbGFuY2hlIG1lc3NhZ2Ugd2l0aCBhIGdpdmVuIFNlY3BFdGggKEMtQ2hhaW4gbWVzc2FnZXMpIG9yXG4gICAqIFNlY3BBdmEgKFgtIGFuZCBQLUNoYWluIG1lc3NhZ2VzKSBrZXkuIEN1cnJlbnRseSBzaWduaW5nIEMtQ2hhaW4gbWVzc2FnZXNcbiAgICogd2l0aCBTZWNwRXRoIGtleSBtdXN0IGFsc28gYmUgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBgQWxsb3dSYXdCbG9iU2lnbmluZ2BcbiAgICogcG9saWN5LlxuICAgKlxuICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICovXG4gIGF2YVNlcmlhbGl6ZWRUeFNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gQXZhbGFuY2hlIGNoYWluXG4gICAgICAgICAqIEBleGFtcGxlIFBcbiAgICAgICAgICovXG4gICAgICAgIGF2YV9jaGFpbjogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEF2YWxhbmNoZSBhZGRyZXNzIGluIGJlY2gzMiBvciBFVEggZm9ybWF0XG4gICAgICAgICAqIEBleGFtcGxlIDB4QjMxZjY2QUEzQzFlNzg1MzYzRjA4NzVBMUI3NEUyN2I4NUZENjZjN1xuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXZhU2VyaWFsaXplZFR4U2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gSlNPTi1lbmNvZGVkIEF2YWxhbmNoZSBYLSBvciBQLUNoYWluIE1lc3NhZ2VcbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gSlNPTi1lbmNvZGVkIEF2YWxhbmNoZSBYLSBvciBQLUNoYWluIE1lc3NhZ2VcbiAgICpcbiAgICogU2lnbnMgYW4gQXZhbGFuY2hlIG1lc3NhZ2Ugd2l0aCBhIGdpdmVuIFNlY3BBdmEga2V5LlxuICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICovXG4gIGF2YVNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gQXZhbGFuY2hlIGJlY2gzMiBhZGRyZXNzIGZvcm1hdCB3aXRob3V0IHRoZSBjaGFpbiBwcmVmaXhcbiAgICAgICAgICogQGV4YW1wbGUgYXZheDFhbTR3NmhmcnZtaDNha2R1emtqdGhydGd0cWFmYWxjZTZhbjhjclxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXZhU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gQmFieWxvbiBDb3ZlbmFudCBDb21taXR0ZWUgUmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBCYWJ5bG9uIENvdmVuYW50IENvbW1pdHRlZSBSZXF1ZXN0XG4gICAqXG4gICAqIFNpZ25zIHRyYW5zYWN0aW9ucyByZWxldmFudCB0byBhIEJhYnlsb24gY292ZW5hbnQgY29tbWl0dGVlIHNpZ25lcixcbiAgICogaS5lLiwgU2Nobm9yciBhbmQgYWRhcHRvciBzaWduYXR1cmVzIGZvciB0aGUgdW5ib25kaW5nLCBzbGFzaGluZywgYW5kXG4gICAqIHNsYXNoLXVuYm9uZGluZyBvdXRwdXRzIG9mIGEgQmFieWxvbiBzdGFraW5nIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgYmFieWxvbkNvdlNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gaGV4LWVuY29kZWQgcHVibGljIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSAweDAzZTM4MTA2ZGQ3NjY1NmJjNjhkMDI4OThlZGUxYTkxMWRmOGM3OTNlNDZhYzRlYjM3ZDI2YzI2NmFhZTVkMmE1YVxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmFieWxvbkNvdlNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQmFieWxvbkNvdlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlIEVPVFMgbm9uY2VzXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgRU9UUyBub25jZXNcbiAgICpcbiAgICogR2VuZXJhdGVzIGEgc2V0IG9mIEJhYnlsb24gRU9UUyBub25jZXMgZm9yIGEgc3BlY2lmaWVkIGNoYWluLWlkLCBzdGFydGluZyBhdCBhXG4gICAqIHNwZWNpZmllZCBibG9jayBoZWlnaHQuXG4gICAqL1xuICBjcmVhdGVFb3RzTm9uY2VzOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIHB1YmxpYyBrZXkgb2YgdGhlIEVPVFMga2V5XG4gICAgICAgICAqIEBleGFtcGxlIDB4NDU3ZjBmMjRjZmIwNmMzYzM1ODc0YmJkMWY1OWI1NzE4MGE1YTlkN2UxZjY5MjkyODA4MzljODMwZjVjMTQ3ZlxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW90c0NyZWF0ZU5vbmNlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVvdHNDcmVhdGVOb25jZVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBFT1RTIHNpZ25hdHVyZVxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIGFuIEVPVFMgc2lnbmF0dXJlXG4gICAqXG4gICAqIEdlbmVyYXRlcyBhbiBFT1RTIHNpZ25hdHVyZSBmb3IgdGhlIHNwZWNpZmllZCBjaGFpbi1pZCwgYmxvY2sgaGVpZ2h0LCBhbmQgbWVzc2FnZS5cbiAgICovXG4gIGVvdHNTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIHB1YmxpYyBrZXkgb2YgdGhlIEVPVFMga2V5XG4gICAgICAgICAqIEBleGFtcGxlIDB4NDU3ZjBmMjRjZmIwNmMzYzM1ODc0YmJkMWY1OWI1NzE4MGE1YTlkN2UxZjY5MjkyODA4MzljODMwZjVjMTQ3ZlxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW90c1NpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU2lnblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIEJhYnlsb24gU3Rha2luZyBSZWdpc3RyYXRpb25cbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gQmFieWxvbiBTdGFraW5nIFJlZ2lzdHJhdGlvblxuICAgKlxuICAgKiBDcmVhdGVzIGFuZCBzaWducyB0aGUgZGF0YSBuZWVkZWQgdG8gcmVnaXN0ZXIgYSBQaGFzZS0yIG9yIFBoYXNlLTNcbiAgICogQmFieWxvbiBzdGFrZS4gVGhpcyBpbmNsdWRlcyB0aGUgZGVwb3NpdCBhbmQgdW5ib25kaW5nIHRyYW5zYWN0aW9ucyxcbiAgICogdHdvIHNsYXNoaW5nIHRyYW5zYWN0aW9ucywgdGhlIHNsYXNoaW5nIHNpZ25hdHVyZXMsIGFuZCB0aGUgcHJvb2Ygb2ZcbiAgICogcG9zc2Vzc2lvbi5cbiAgICpcbiAgICogTm90ZSB0aGF0IGl0IGlzIGFsc28gcG9zc2libGUgdG8gZ2VuZXJhdGUgdGhpcyByZWdpc3RyYXRpb24gZGF0YSBieVxuICAgKiBtYWtpbmcgZm91ciBjYWxscyB0byB0aGUgQmFieWxvbiBzdGFraW5nIEFQSSwgcGx1cyBvbmUgY2FsbCB0byB0aGVcbiAgICogUFNCVCBzaWduaW5nIEFQSSB0byBnZW5lcmF0ZSB0aGUgQklQLTMyMiBwcm9vZiBvZiBwb3NzZXNzaW9uLiBUaGVcbiAgICogcmVnaXN0cmF0aW9uIEFQSSBnZW5lcmF0ZXMgdGhlIHNhbWUgZGF0YSBidXQgaXMgZWFzaWVyIHRvIHVzZS5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoaXMgYWN0aW9uIGNhbiBvbmx5IGJlIGNhbGxlZCB3aXRoIGEgVGFwcm9vdCBrZXkuIElmIHlvdXJcbiAgICogZGVwb3NpdCB0cmFuc2FjdGlvbiBzcGVuZHMgVVRYT3MgdGhhdCBhcmUgY29udHJvbGxlZCBieSBvdGhlciBrZXlzLFxuICAgKiB5b3UgY2FuIHN1Ym1pdCB0aGUgJ2RlcG9zaXQnIFBTQlQgdG8gdGhlIFBTQlQgc2lnbmluZyBBUEkgb25lIG9yIG1vcmVcbiAgICogdGltZXMgdG8gZ2VuZXJhdGUgdGhlIHJlcXVpcmVkIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBjb25zdWx0IHRoZVxuICAgKiBbQmFieWxvbiBkb2N1bWVudGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vYmFieWxvbmxhYnMtaW8vYmFieWxvbi9ibG9iL3JlbGVhc2UvdjEueC9kb2NzL3JlZ2lzdGVyLWJpdGNvaW4tc3Rha2UubWQpLlxuICAgKlxuICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICovXG4gIGJhYnlsb25SZWdpc3RyYXRpb246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gYmVjaDMyIGVuY29kaW5nIG9mIHRoZSBwdWJsaWMga2V5XG4gICAgICAgICAqIEBleGFtcGxlIHRiMXBlNGZneW44N3B3a3UyeGRwdGMyZHRhZXF6eXg4d3g4OWNxYTZ5bnR1OHRkNDlmbHB0NXdxNWs2aGF1XG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uUmVnaXN0cmF0aW9uUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkJhYnlsb25SZWdpc3RyYXRpb25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBCYWJ5bG9uIFN0YWtpbmcgVHJhbnNhY3Rpb25cbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gQmFieWxvbiBTdGFraW5nIFRyYW5zYWN0aW9uXG4gICAqXG4gICAqIENyZWF0ZXMgYW5kIHNpZ25zIHRyYW5zYWN0aW9ucyByZWxhdGVkIHRvIEJhYnlsb24gc3Rha2luZyAoaS5lLixcbiAgICogZGVwb3NpdCwgZWFybHkgdW5ib25kLCB3aXRoZHJhd2FsKS4gVGhlIHJldHVybiB2YWx1ZSBpcyBhIFByZS1TaWduZWRcbiAgICogQml0Y29pbiBUcmFuc2FjdGlvbiAoUFNCVCksIGFzIGRlZmluZWQgaW4gQklQLTE3NCwgd2hpY2ggbWF0Y2hlcyB0aGVcbiAgICogZm9ybWF0IHVzZWQgaW4gbW9zdCBCYWJ5bG9uIHRvb2xpbmcuXG4gICAqXG4gICAqIFRoZSAnZGVwb3NpdCcgYWN0aW9uIGNhbiBiZSB1c2VkIHdpdGggZWl0aGVyIFNlZ3dpdCAoaS5lLiwgU2VjcEJ0Yy9TZWNwQnRjVGVzdClcbiAgICogb3IgVGFwcm9vdCAoaS5lLiwgVGFwcm9vdEJ0Yy9UYXByb290QnRjVGVzdCkga2V5cy4gVGhlIHJlbWFpbmluZyBhY3Rpb25zIGNhbiBiZVxuICAgKiB1c2VkIG9ubHkgd2l0aCBUYXByb290IGtleXMuXG4gICAqXG4gICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgKi9cbiAgYmFieWxvblN0YWtpbmc6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gYmVjaDMyIGVuY29kaW5nIG9mIHRoZSBwdWJsaWMga2V5XG4gICAgICAgICAqIEBleGFtcGxlIHRiMXBlNGZneW44N3B3a3UyeGRwdGMyZHRhZXF6eXg4d3g4OWNxYTZ5bnR1OHRkNDlmbHB0NXdxNWs2aGF1XG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uU3Rha2luZ1JlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJCYWJ5bG9uU3Rha2luZ1Jlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIGEgQml0Y29pbiBtZXNzYWdlLlxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBhIEJpdGNvaW4gbWVzc2FnZS5cbiAgICpcbiAgICogU2lnbnMgYSBtZXNzYWdlIHVzaW5nIEJJUDEzNyBtZXNzYWdlIHNpZ25pbmcgd2l0aCBhIGdpdmVuIFNlY3AyNTZrMSBrZXkuXG4gICAqL1xuICBidGNNZXNzYWdlU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBBZGRyZXNzIG9mIGEgU2Vnd2l0IG9yIExlZ2FjeSBiaXRjb2luIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSBiYzFxM3IzNXU0dGg3OGgwNmQ2NG13bXAzdnB1OHFtenlhMDVwcThmd2xcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ0Y01lc3NhZ2VTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkJ0Y01lc3NhZ2VTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gYSBQYXJ0aWFsbHkgU2lnbmVkIEJpdGNvaW4gVHJhbnNhY3Rpb24gKFBTQlQpXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIGEgUGFydGlhbGx5IFNpZ25lZCBCaXRjb2luIFRyYW5zYWN0aW9uIChQU0JUKVxuICAgKlxuICAgKiBTaWducyBhbGwgaW5wdXRzIG9mIHRoZSBzdXBwbGllZCBQU0JUIHYwIChCSVAtMTc0KSB0aGF0IHBlcnRhaW4gdG8gdGhlXG4gICAqICdwdWJrZXknIHNwZWNpZmllZCBpbiB0aGUgcmVxdWVzdCwgd2hpY2ggY2FuIGJlIGVpdGhlciBhIFRhcHJvb3Qgb3IgYVxuICAgKiBTZWd3aXQga2V5LiBGb3IgU2Vnd2l0IGtleXMsIEN1YmVTaWduZXItc3BlY2lmaWMgZGV0ZXJtaW5pc3RpYyB0d2Vha2luZ1xuICAgKiBjYW4gYmUgYXBwbGllZCB0byAncHVia2V5JyBiZWZvcmUgc2lnbmluZywgb24gYSBwZXItaW5wdXQgYmFzaXMuIChTZWUgdGhlXG4gICAqIEN1YmVTaWduZXIgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBTZWd3aXQgdHdlYWtpbmcuKVxuICAgKlxuICAgKiBXaGVuIGNhbGxpbmcgd2l0aCBhIHNlZ3dpdCBrZXkgdGhlIHJlcXVpcmVkIHNjb3BlIGlzICdzaWduOmJ0Yzpwc2J0OnNlZ3dpdCcuXG4gICAqIEZvciBhIHRhcHJvb3Qga2V5LCB0aGUgc2NvcGUgaXMgJ3NpZ246YnRjOnBzYnQ6dGFwcm9vdCcuIEVpdGhlciB0eXBlIG9mIGtleVxuICAgKiBjYW4gYmUgdXNlZCB3aXRoIHRoZSAnc2lnbjpidGM6cHNidCcgc2NvcGUuXG4gICAqXG4gICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgKi9cbiAgcHNidFNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gYmVjaDMyKG0pLWVuY29kZWQgc2Vnd2l0IG9yIHRhcHJvb3QgYWRkcmVzc1xuICAgICAgICAgKiBAZXhhbXBsZSBiYzFwMndzbGRlejVtdWQyeWFtMjlxMjJ3Z2ZoOTQzOXNwZ2R1dmN0ODNrM3BtNTBmY3hhNWRwczU5aDR6NVxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHNidFNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUHNidFNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBCaXRjb2luIFNlZ3dpdCBUcmFuc2FjdGlvblxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBCaXRjb2luIFNlZ3dpdCBUcmFuc2FjdGlvblxuICAgKlxuICAgKiBTaWducyBhIEJpdGNvaW4gU2Vnd2l0IHRyYW5zYWN0aW9uIHdpdGggYSBnaXZlbiBrZXkuXG4gICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgKi9cbiAgYnRjU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBiZWNoMzItZW5jb2RlZCBzZWd3aXQgYWRkcmVzc1xuICAgICAgICAgKiBAZXhhbXBsZSBiYzFxNXA1cWthZTc3bHk4MGtyNHB5Znl0ZHFtN3JmMDhkZGhkZWpsOWdcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ0Y1NpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU2lnblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIEJpdGNvaW4gVGFwcm9vdCBUcmFuc2FjdGlvblxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBCaXRjb2luIFRhcHJvb3QgVHJhbnNhY3Rpb25cbiAgICpcbiAgICogU2lnbnMgYSBCaXRjb2luIFRhcHJvb3QgdHJhbnNhY3Rpb24gd2l0aCBhIGdpdmVuIGtleS5cbiAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAqL1xuICBidGNUYXByb290U2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBiZWNoMzJtLWVuY29kZWQgdGFwcm9vdCBhZGRyZXNzXG4gICAgICAgICAqIEBleGFtcGxlIGJjMXAyd3NsZGV6NW11ZDJ5YW0yOXEyMndnZmg5NDM5c3BnZHV2Y3Q4M2szcG01MGZjeGE1ZHBzNTloNHo1XG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUYXByb290U2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgQ29udGFjdHNcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgQ29udGFjdHNcbiAgICpcbiAgICogTGlzdCBhbGwgY29udGFjdHMgaW4gdGhlIG9yZy5cbiAgICogQW55IG9yZyBtZW1iZXIgaXMgYWxsb3dlZCB0byBsaXN0IGFsbCBjb250YWN0cyBpbiB0aGUgb3JnLlxuICAgKlxuICAgKiAjIyBTZWFyY2ggQ29uZGl0aW9uXG4gICAqIFRoZSBzZWFyY2ggY29uZGl0aW9uIGlzIG9wdGlvbmFsLlxuICAgKlxuICAgKiAtIElmIHRoZSBzZWFyY2ggY29uZGl0aW9uIHN0YXJ0cyB3aXRoIFwibGFiZWw6Li4uXCIsIHRoaXMgbGlzdCB3aWxsIG9ubHkgaG9sZCBjb250YWN0cyB3aXRoXG4gICAqIHRoZSBsYWJlbCBwcm92aWRlZCBhZnRlciB0aGUgXCI6XCIuIEZvciBleGFtcGxlLCBcImxhYmVsOmN1YmlzdDplcmMyMF90b2tlblwiIHdvdWxkIHJldHVybiBjb250YWN0cyB0aGF0XG4gICAqIGhvbGQgdGhlIGxhYmVsIFwiY3ViaXN0OmVyYzIwX3Rva2VuXCIuXG4gICAqXG4gICAqIC0gT3RoZXJ3aXNlLCB0aGUgcmVzdWx0IHdpbGwgY29udGFpbiBvbmx5IHRoZSBjb250YWN0cyB3aG8gaGF2ZSBhbiBhZGRyZXNzIHN0YXJ0aW5nIHdpdGgsIG9yXG4gICAqIGVxdWFsaW5nLCB0aGUgZ2l2ZW4gc2VhcmNoIHN0cmluZy4gRm9yIGV4YW1wbGUsIFwiMHhlZVwiIHdvdWxkIHJldHVybiBhbGwgY29udGFjdHMgaG9sZGluZyBhblxuICAgKiBhZGRyZXNzIHN0YXJ0aW5nIHdpdGggXCIweGVlXCIuIFRoZSBzZWFyY2ggaXMgY2FzZS1pbnNlbnNpdGl2ZS5cbiAgICpcbiAgICogSWYgYSBzZWFyY2ggdGVybSBpcyBkZWZpbmVkLCB3ZSBkbyBub3QgZ3VhcmFudGVlXG4gICAqIHRoZSBudW1iZXIgb2YgcmVzdWx0cyBpbiBhIHBhZ2UuIFRoZSBiZWhhdmlvciBvZiB0aGlzIHBhcmFtZXRlciBtYXkgY2hhbmdlXG4gICAqIGluIHRoZSBmdXR1cmUgKGZvciBleGFtcGxlLCBtYWtpbmcgcmVzdWx0cyBtb3JlIHN0cmljdGx5IHBhZ2luYXRlZCBvclxuICAgKiBwZXJmb3JtaW5nIGEgZnV6enkgc2VhcmNoIHJhdGhlciB0aGFuIGEgcHJlZml4IHNlYXJjaCkuXG4gICAqL1xuICBsaXN0Q29udGFjdHM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBFaXRoZXIgJ2xhYmVsOi4uLicsIHdoaWNoIGxpc3RzIGNvbnRhY3RzIHdpdGggdGhlIGxhYmVsIHByb3ZpZGVkIGFmdGVyIHRoZSAnOicuIE9yLCBhbiBlbnRpcmUgYWRkcmVzcywgb3IgcHJlZml4IG9mIGFuIGFkZHJlc3MsIHRoYXQgcmV0dXJuZWQgY29udGFjdHMgbXVzdCBoYXZlLiBXaGVuIHNlYXJjaGluZyBieSBhZGRyZXNzLCBpdCBtdXN0IGJlIGF0IGxlYXN0IDMgY2hhcmFjdGVycy4gKi9cbiAgICAgICAgc2VhcmNoPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0Q29udGFjdHNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgQ29udGFjdFxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIENvbnRhY3RcbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyBjb250YWN0IGluIHRoZSBvcmdhbml6YXRpb24td2lkZSBhZGRyZXNzIGJvb2suIFRoZVxuICAgKiB1c2VyIG1ha2luZyB0aGUgcmVxdWVzdCBpcyB0aGUgb3duZXIgb2YgdGhlIGNvbnRhY3QsIGdpdmluZyB0aGVtIGVkaXQgYWNjZXNzXG4gICAqIHRvIHRoZSBjb250YWN0IGFsb25nIHdpdGggdGhlIG9yZyBvd25lcnMuXG4gICAqL1xuICBjcmVhdGVDb250YWN0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZUNvbnRhY3RSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQ29udGFjdEluZm9SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMb29rdXAgQ29udGFjdHMgYnkgQWRkcmVzc1xuICAgKiBAZGVzY3JpcHRpb24gTG9va3VwIENvbnRhY3RzIGJ5IEFkZHJlc3NcbiAgICpcbiAgICogUmV0dXJucyBhbGwgY29udGFjdHMgaW4gdGhlIG9yZyB0aGF0IGhhdmUgdGhlIGdpdmVuIGFkZHJlc3MuXG4gICAqXG4gICAqIFdoZW4gcXVlcnlpbmcgd2l0aCBhbiBFVk0gYWRkcmVzcyB3aXRob3V0IGEgY2hhaW4sIHRoaXMgZW5kcG9pbnQgcmV0dXJuc1xuICAgKiBjb250YWN0cyB3aXRoIHRoYXQgYWRkcmVzcyBvbiAqYW55KiBjaGFpbiwgaW5jbHVkaW5nIHRob3NlIHdpdGhvdXQgYSBjaGFpblxuICAgKiBkZWZpbmVkLlxuICAgKi9cbiAgbG9va3VwQ29udGFjdHNCeUFkZHJlc3M6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29udGFjdEFkZHJlc3NEYXRhXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkTGlzdENvbnRhY3RzUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IENvbnRhY3RcbiAgICogQGRlc2NyaXB0aW9uIEdldCBDb250YWN0XG4gICAqXG4gICAqIFJldHVybnMgdGhlIHByb3BlcnRpZXMgb2YgYSBDb250YWN0LlxuICAgKi9cbiAgZ2V0Q29udGFjdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBDb250YWN0XG4gICAgICAgICAqIEBleGFtcGxlIENvbnRhY3QjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBjb250YWN0X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJDb250YWN0SW5mb1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIERlbGV0ZSBDb250YWN0XG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgQ29udGFjdFxuICAgKlxuICAgKiBEZWxldGUgYSBjb250YWN0LCBzcGVjaWZpZWQgYnkgaXRzIElELlxuICAgKlxuICAgKiBPbmx5IHRoZSBjb250YWN0IG93bmVyIGFuZCBvcmcgb3duZXJzIGFyZSBhbGxvd2VkIHRvIGRlbGV0ZSBjb250YWN0cy5cbiAgICogQWRkaXRpb25hbGx5LCB0aGUgY29udGFjdCdzIGVkaXQgcG9saWN5IChpZiBzZXQpIG11c3QgcGVybWl0IHRoZSBkZWxldGlvbi5cbiAgICovXG4gIGRlbGV0ZUNvbnRhY3Q6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIGRlc2lyZWQgQ29udGFjdFxuICAgICAgICAgKiBAZXhhbXBsZSBDb250YWN0IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgY29udGFjdF9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVtcHR5XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFVwZGF0ZSBDb250YWN0XG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgQ29udGFjdFxuICAgKlxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGNvbnRhY3QgaW4gdGhlIG9yZ2FuaXphdGlvbi13aWRlIGFkZHJlc3MgYm9vay4gT25seVxuICAgKiB0aGUgY29udGFjdCBvd25lciBvciBhbiBvcmcgb3duZXIgY2FuIHVwZGF0ZSBjb250YWN0cy5cbiAgICpcbiAgICogKlVwZGF0ZXMgd2lsbCBvdmVyd3JpdGUgdGhlIGV4aXN0aW5nIHZhbHVlIG9mIHRoZSBmaWVsZC4qXG4gICAqL1xuICB1cGRhdGVDb250YWN0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIENvbnRhY3RcbiAgICAgICAgICogQGV4YW1wbGUgQ29udGFjdCMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIGNvbnRhY3RfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVcGRhdGVDb250YWN0UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNvbnRhY3RJbmZvUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IGN1cnJlbnQgY291bnRzIG9mIHVzZXJzIGFuZCBrZXlzIHdpdGhpbiBhbiBvcmcuXG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgY3VycmVudCBjb3VudHMgb2YgdXNlcnMgYW5kIGtleXMgd2l0aGluIGFuIG9yZy5cbiAgICovXG4gIGNvdW50czoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNvbXB1dGVDb3VudHNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBEZXJpdmUgS2V5IEZyb20gTG9uZy1MaXZlZCBNbmVtb25pY1xuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAZGVzY3JpcHRpb24gRGVyaXZlIEtleSBGcm9tIExvbmctTGl2ZWQgTW5lbW9uaWNcbiAgICpcbiAgICogRGVyaXZlcyBhIGtleSBvZiBhIHNwZWNpZmllZCB0eXBlIHVzaW5nIGEgc3VwcGxpZWQgZGVyaXZhdGlvbiBwYXRoIGFuZCBhblxuICAgKiBleGlzdGluZyBsb25nLWxpdmVkIG1uZW1vbmljLlxuICAgKi9cbiAgZGVyaXZlS2V5TGVnYWN5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcml2ZUtleVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJDcmVhdGVLZXlSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBEZXJpdmUgS2V5IEZyb20gTmV3IE9yIEV4aXN0aW5nIExvbmctTGl2ZWQgTW5lbW9uaWNcbiAgICogQGRlc2NyaXB0aW9uIERlcml2ZSBLZXkgRnJvbSBOZXcgT3IgRXhpc3RpbmcgTG9uZy1MaXZlZCBNbmVtb25pY1xuICAgKlxuICAgKiBVc2VzIGVpdGhlciBhIG5ldyBvciBleGlzdGluZyBsb25nLWxpdmVkIG1uZW1vbmljIHRvIGRlcml2ZSBrZXlzIG9mXG4gICAqIG9uZSBvciBtb3JlIHNwZWNpZmllZCB0eXBlcyB2aWEgc3BlY2lmaWVkIGRlcml2YXRpb24gcGF0aHMuXG4gICAqL1xuICBkZXJpdmVLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRGVyaXZlS2V5c1JlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJDcmVhdGVLZXlSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDb21wdXRlIERpZmZpZSBIZWxsbWFuIHNoYXJlZCBzZWNyZXRcbiAgICogQGRlc2NyaXB0aW9uIENvbXB1dGUgRGlmZmllIEhlbGxtYW4gc2hhcmVkIHNlY3JldFxuICAgKlxuICAgKiBGb3IgYSBzZXQgb2YgZWxsaXB0aWMgY3VydmUgcG9pbnRzIChQXzEsIC4uLiwgUF9pKSwgY29tcHV0ZXMgdGhlIERpZmZpZSBIZWxsbWFuXG4gICAqIHNoYXJlZCBzZWNyZXQgKFFfMSwgLi4uLCBRaSkgPSAoc2sgKiBQXzEsIC4uLiBzayAqIFBfaSksIGZvciBzayB0aGUgc2VjcmV0IGtleS5cbiAgICogUG9pbnRzIGFyZSBzcGVjaWZpZWQgaW4gYSBjdXJ2ZS1kZXBlbmRlbnQgZm9ybWF0LiBTZWUgQ3ViZVNpZ25lciBkb2N1bWVudGF0aW9uXG4gICAqIGZvciBtb3JlIGRldGFpbHMuXG4gICAqXG4gICAqIFRoZSB1c2VyIGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgYSBOSVNUIFAtMjU2IHB1YmxpYyBrZXksIGluIHdoaWNoIGNhc2UgdGhlIHJlc3VsdFxuICAgKiB3aWxsIGJlIGVuY3J5cHRlZCB0byB0aGUgcHVibGljIGtleSB1c2luZyBSRkM5MTgwIEhQS0UoUC0yNTYsIEhLREYtU0hBMjU2KSB3aXRoXG4gICAqIEFFUy0yNTYtR0NNIGFzIHRoZSBzeW1tZXRyaWMgY2lwaGVyLiBJbiB0aGlzIGNhc2UsIHRoZSByZXN1bHRpbmcgY2lwaGVydGV4dCB3aWxsXG4gICAqIGNvbnRhaW4gYSBzZXJpYWxpemVkIEpTT04gYmxvYiBjb250YWluaW5nIHRoZSB2ZWN0b3Igb2Ygc2hhcmVkIHNlY3JldHMgaW4gdGhlIHNhbWVcbiAgICogb3JkZXIgdGhleSB3ZXJlIHNwZWNpZmllZCBpbiB0aGUgcmVxdWVzdC5cbiAgICpcbiAgICogSWYgdGhlIHVzZXIgZG9lcyBub3Qgc3BlY2lmeSBhIHB1YmxpYyBrZXksIHRoZSByZXN1bHRpbmcgc2hhcmVkIHNlY3JldHMgd2lsbCBiZVxuICAgKiByZXR1cm5lZCB1bmVuY3J5cHRlZC4gSW4gdGhpcyBjYXNlLCB0aGUgY2FsbGVyIHNob3VsZCBzYW1wbGUgYSByYW5kb20gdmFsdWUgclxuICAgKiBtb2R1bG8gdGhlIGdyb3VwIG9yZGVyIGFuZCBtYXNrIHRoZSByZXF1ZXN0ZWQgcG9pbnRzIGFzIChyICogUF8xLCAuLi4sIHIgKiBQX2kpLlxuICAgKiBUaGUgcmVzdWx0IHdpbGwgYmUgKHIgKiBzayAqIFBfMSwgLi4uLCByICogc2sgKiBQX2kpLCB3aGljaCBjYW4gYmUgdW5tYXNrZWQgYnlcbiAgICogZmlyc3QgY29tcHV0aW5nIHJeLTEsIHRoZSBtdWx0aXBsaWNhdGl2ZSBpbnZlcnNlIG9mIHIgbW9kdWxvIHRoZSBncm91cCBvcmRlcixcbiAgICogdGhlbiBjb21wdXRpbmcgYSBzY2FsYXIgbXVsdGlwbGljYXRpb24gb2YgZWFjaCByZXR1cm5lZCBwb2ludCB3aXRoIHJeLTEuXG4gICAqXG4gICAqIFRoZXJlIGlzIGxpdHRsZSBwcmFjdGljYWwgc2VjdXJpdHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBhcHByb2FjaGVzLiBUaGVcbiAgICogY2xpZW50IGlzIGZyZWUgdG8gY2hvb3NlIHRoZSBvbmUgdGhhdCBpcyBlYXNpZXIgZnJvbSBhbiBpbXBsZW1lbnRhdGlvbiBwZXJzcGVjdGl2ZS5cbiAgICovXG4gIGRpZmZpZUhlbGxtYW5FeGNoYW5nZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBLZXlcbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRGlmZmllSGVsbG1hblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJEaWZmaWVIZWxsbWFuUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBFbWFpbCBUZW1wbGF0ZVxuICAgKiBAZGVzY3JpcHRpb24gR2V0IEVtYWlsIFRlbXBsYXRlXG4gICAqXG4gICAqIFJldHVybnMgdGhlIGVtYWlsIHRlbXBsYXRlIGZvciBhIGdpdmVuIHB1cnBvc2UuXG4gICAqL1xuICBnZXRFbWFpbENvbmZpZzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGljaCBlbWFpbCBjb25maWd1cmF0aW9uIHRvIGdldCAqL1xuICAgICAgICBwdXJwb3NlOlxuICAgICAgICAgIHwgXCJvdHBcIlxuICAgICAgICAgIHwgXCJtZmFfcmVzZXRcIlxuICAgICAgICAgIHwgXCJvdHBfbWZhXCJcbiAgICAgICAgICB8IFwiYWxpZW5fcGFzc3dvcmRfcmVzZXRcIlxuICAgICAgICAgIHwgXCJtZW1iZXJfcGFzc3dvcmRfcmVzZXRcIlxuICAgICAgICAgIHwgXCJhbGllbl9pbnZpdGVcIlxuICAgICAgICAgIHwgXCJtZW1iZXJfaW52aXRlXCJcbiAgICAgICAgICB8IFwid2VsY29tZVwiO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiR2V0RW1haWxDb25maWdSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDb25maWd1cmUgRW1haWwgVGVtcGxhdGVcbiAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyZSBFbWFpbCBUZW1wbGF0ZVxuICAgKi9cbiAgY29uZmlndXJlRW1haWw6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hpY2ggZW1haWwgdG8gY29uZmlndXJlICovXG4gICAgICAgIHB1cnBvc2U6XG4gICAgICAgICAgfCBcIm90cFwiXG4gICAgICAgICAgfCBcIm1mYV9yZXNldFwiXG4gICAgICAgICAgfCBcIm90cF9tZmFcIlxuICAgICAgICAgIHwgXCJhbGllbl9wYXNzd29yZF9yZXNldFwiXG4gICAgICAgICAgfCBcIm1lbWJlcl9wYXNzd29yZF9yZXNldFwiXG4gICAgICAgICAgfCBcImFsaWVuX2ludml0ZVwiXG4gICAgICAgICAgfCBcIm1lbWJlcl9pbnZpdGVcIlxuICAgICAgICAgIHwgXCJ3ZWxjb21lXCI7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29uZmlndXJlRW1haWxSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIERlbGV0ZSBFbWFpbCBUZW1wbGF0ZVxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIEVtYWlsIFRlbXBsYXRlXG4gICAqL1xuICBkZWxldGVFbWFpbENvbmZpZzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGljaCBlbWFpbCBjb25maWd1cmF0aW9uIHRvIGRlbGV0ZSAqL1xuICAgICAgICBwdXJwb3NlOlxuICAgICAgICAgIHwgXCJvdHBcIlxuICAgICAgICAgIHwgXCJtZmFfcmVzZXRcIlxuICAgICAgICAgIHwgXCJvdHBfbWZhXCJcbiAgICAgICAgICB8IFwiYWxpZW5fcGFzc3dvcmRfcmVzZXRcIlxuICAgICAgICAgIHwgXCJtZW1iZXJfcGFzc3dvcmRfcmVzZXRcIlxuICAgICAgICAgIHwgXCJhbGllbl9pbnZpdGVcIlxuICAgICAgICAgIHwgXCJtZW1iZXJfaW52aXRlXCJcbiAgICAgICAgICB8IFwid2VsY29tZVwiO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVtcHR5XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gRUlQLTE5MSBEYXRhXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIEVJUC0xOTEgRGF0YVxuICAgKlxuICAgKiBTaWducyBhIG1lc3NhZ2UgdXNpbmcgRUlQLTE5MSBwZXJzb25hbF9zaWduIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgKi9cbiAgZWlwMTkxU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBFVk0gYWRkcmVzcyBvZiB0aGUgU2VjcDI1NmsxIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSAweDQ5MDExYWRiQ0MzYkM5YzAzMDdCQjA3RjM3RGRhMWExYTljNjlkMkVcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVpcDE5MVNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU2lnblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIEVJUC03MTIgVHlwZWQgRGF0YVxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBFSVAtNzEyIFR5cGVkIERhdGFcbiAgICpcbiAgICogU2lnbnMgdHlwZWQgZGF0YSBhY2NvcmRpbmcgdG8gRUlQLTcxMiB3aXRoIGEgZ2l2ZW4gU2VjcDI1NmsxIGtleS5cbiAgICovXG4gIGVpcDcxMlNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgRVZNIGFkZHJlc3Mgb2YgdGhlIFNlY3AyNTZrMSBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgMHg0OTAxMWFkYkNDM2JDOWMwMzA3QkIwN0YzN0RkYTFhMWE5YzY5ZDJFXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFaXA3MTJTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBhbiBFSVAtNzcwMiBBdXRob3JpemF0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIGFuIEVJUC03NzAyIEF1dGhvcml6YXRpb25cbiAgICpcbiAgICogU2lnbnMgYW4gRUlQLTc3MDIgYXV0aG9yaXphdGlvbiB0dXBsZSBgKGNoYWluX2lkLCBhZGRyZXNzLCBub25jZSlgIHdpdGggYSBnaXZlblxuICAgKiBTZWNwMjU2azEga2V5LiBUaGUgcmVzdWx0aW5nIDY1LWJ5dGUgc2lnbmF0dXJlIChgciB8fCBzIHx8IHlfcGFyaXR5YCkgY2FuIGJlIHVzZWQgdG9cbiAgICogYXNzZW1ibGUgYSBgU2lnbmVkQXV0aG9yaXphdGlvbmAgZm9yIGFuIEVJUC03NzAyIHNldC1jb2RlIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgZWlwNzcwMlNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgRVZNIGFkZHJlc3Mgb2YgdGhlIFNlY3AyNTZrMSBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgMHg0OTAxMWFkYkNDM2JDOWMwMzA3QkIwN0YzN0RkYTFhMWE5YzY5ZDJFXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFaXA3NzAyU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBhbiBPcmctRXhwb3J0IENpcGhlcnRleHRcbiAgICogQGRlc2NyaXB0aW9uIEdldCBhbiBPcmctRXhwb3J0IENpcGhlcnRleHRcbiAgICpcbiAgICogUmV0dXJucyB0aGUgZXhwb3J0IGNpcGhlcnRleHQgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm92aWRlZCBrZXktaWQuXG4gICAqIEluIG9yZGVyIHRvIHVzZSB0aGlzIEFQSSwgeW91IG11c3QgYmUgYW4gb3JnIG93bmVyIGFuZCB5b3VyIG9yZyBtdXN0XG4gICAqIGJlIGNvbmZpZ3VyZWQgZm9yIG9yZyBleHBvcnQgYW5kIGZvciBBUEktYmFzZWQgZXhwb3J0IGRlbGl2ZXJ5LlxuICAgKi9cbiAgZ2V0T3JnRXhwb3J0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIEtleVxuICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk9yZ0V4cG9ydFJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgYXNzb2NpYXRlZCBPSURDIGlkZW50aXRpZXMgd2l0aCB0aGUgY3VycmVudCB1c2VyLlxuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBhc3NvY2lhdGVkIE9JREMgaWRlbnRpdGllcyB3aXRoIHRoZSBjdXJyZW50IHVzZXIuXG4gICAqL1xuICBsaXN0T2lkY0lkZW50aXRpZXM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJMaXN0SWRlbnRpdGllc1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEFzc29jaWF0ZSBhbiBPSURDIGlkZW50aXR5IHdpdGggdGhlIGN1cnJlbnQgdXNlciBpbiBvcmcgPHNlc3Npb24ub3JnPi5cbiAgICogQGRlc2NyaXB0aW9uIEFzc29jaWF0ZSBhbiBPSURDIGlkZW50aXR5IHdpdGggdGhlIGN1cnJlbnQgdXNlciBpbiBvcmcgPHNlc3Npb24ub3JnPi5cbiAgICpcbiAgICogQWxpZW4gdXNlcnMgYXJlIGFsbG93ZWQgdG8gY2FsbCB0aGlzIGVuZHBvaW50LCBidXQgZm9yIHRoZW0gTUZBIGlzIHJlcXVpcmVkXG4gICAqICh1bmxlc3MgdGhleSBhcmUgcmVnaXN0ZXJpbmcgYW4gZW1haWwtb3RwIGlkZW50aXR5IG1hdGNoaW5nIHRoZWlyIGN1cnJlbnQgZW1haWwpO1xuICAgKiBhZGRpdGlvbmFsbHksIGxpbWl0cyBtYXkgYXBwbHkgdG8gaG93IG1hbnkgaWRlbnRpdGllcyB0aGF0IG1heSByZWdpc3Rlci5cbiAgICovXG4gIGFkZE9pZGNJZGVudGl0eToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBZGRJZGVudGl0eVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJlbW92ZSBhbiBPSURDIGlkZW50aXR5IGZyb20gdGhlIGN1cnJlbnQgdXNlcidzIGFjY291bnQgaW4gb3JnIDxzZXNzaW9uLm9yZz4uXG4gICAqIEBkZXNjcmlwdGlvbiBSZW1vdmUgYW4gT0lEQyBpZGVudGl0eSBmcm9tIHRoZSBjdXJyZW50IHVzZXIncyBhY2NvdW50IGluIG9yZyA8c2Vzc2lvbi5vcmc+LlxuICAgKi9cbiAgcmVtb3ZlT2lkY0lkZW50aXR5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9pZGNJZGVudGl0eVwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgW0lkZW50aXR5UHJvb2ZdIGZyb20gQ3ViZVNpZ25lciB1c2VyIHNlc3Npb25cbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBDdWJlU2lnbmVyIHVzZXIgc2Vzc2lvblxuICAgKlxuICAgKiBUaGlzIHJvdXRlIGNhbiBiZSB1c2VkIHRvIHByb3ZlIHRvIGFub3RoZXIgcGFydHkgdGhhdCBhIHVzZXIgaGFzIGFcbiAgICogdmFsaWQgQ3ViZVNpZ25lciBzZXNzaW9uLlxuICAgKlxuICAgKiBDbGllbnRzIGFyZSBpbnRlbmRlZCB0byBjYWxsIHRoaXMgcm91dGUgYW5kIHBhc3MgdGhlIHJldHVybmVkIGV2aWRlbmNlXG4gICAqIHRvIGFub3RoZXIgc2VydmljZSB3aGljaCB3aWxsIHZlcmlmeSBpdCBieSBtYWtpbmcgYSByZXF1ZXN0IHRvIGAvdjAvb3JnLzxvcmdfaWQ+L2lkZW50aXR5L3ZlcmlmeWAuXG4gICAqL1xuICBjcmVhdGVQcm9vZkN1YmVTaWduZXI6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJJZGVudGl0eVByb29mXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBPSURDIHRva2VuXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgW0lkZW50aXR5UHJvb2ZdIGZyb20gT0lEQyB0b2tlblxuICAgKlxuICAgKiBFeGNoYW5nZSBhbiBPSURDIElEIHRva2VuIChwYXNzZWQgdmlhIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyKSBmb3IgYSBwcm9vZiBvZiBhdXRoZW50aWNhdGlvbi5cbiAgICpcbiAgICogVGhpcyByb3V0ZSBjYW4gYmUgdXNlZCB0byBwcm92ZSB0byBhbm90aGVyIHBhcnR5IHRoYXQgYSB1c2VyIGhhcyBtZXQgdGhlXG4gICAqIGF1dGhlbnRpY2F0aW9uIHJlcXVpcmVtZW50cyAoYWxsb3dlZCBpc3N1ZXJzICYgYXVkaWVuY2VzKSBmb3IgQ3ViZVNpZ25lclxuICAgKiB3aXRob3V0IGxlYWtpbmcgdGhlaXIgY3JlZGVudGlhbHMuXG4gICAqXG4gICAqIENsaWVudHMgYXJlIGludGVuZGVkIHRvIGNhbGwgdGhpcyByb3V0ZSBhbmQgcGFzcyB0aGUgcmV0dXJuZWQgZXZpZGVuY2UgdG8gYW5vdGhlciBzZXJ2aWNlXG4gICAqIHdoaWNoIHdpbGwgdmVyaWZ5IGl0IGJ5IG1ha2luZyBhIHJlcXVlc3QgdG8gYC92MC9vcmcvPG9yZ19pZD4vaWRlbnRpdHkvdmVyaWZ5YC5cbiAgICovXG4gIGNyZWF0ZVByb29mT2lkYzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIklkZW50aXR5UHJvb2ZcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVmVyaWZ5IGlkZW50aXR5IHByb29mXG4gICAqIEBkZXNjcmlwdGlvbiBWZXJpZnkgaWRlbnRpdHkgcHJvb2ZcbiAgICpcbiAgICogQWxsb3dzIGEgdGhpcmQtcGFydHkgdG8gdmFsaWRhdGUgcHJvb2Ygb2YgYXV0aGVudGljYXRpb24uXG4gICAqXG4gICAqIFdoZW4gYSB0aGlyZC1wYXJ0eSBpcyBwcm92aWRlZCBhbiBbSWRlbnRpdHlQcm9vZl0gb2JqZWN0LCB0aGV5IG11c3QgY2hlY2sgaXRzXG4gICAqIHZlcmFjaXR5IGJ5IGNhbGxpbmcgdGhpcyBlbmRwb2ludFxuICAgKi9cbiAgdmVyaWZ5UHJvb2Y6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRlbnRpdHlQcm9vZlwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHt9O1xuICB9O1xuICAvKipcbiAgICogQXV0aGVudGljYXRlXG4gICAqIEBkZXNjcmlwdGlvbiBBdXRoZW50aWNhdGVcbiAgICpcbiAgICogVGhpcyBlbmRwb2ludCBleGNoYW5nZXMgYW4gZW1haWwgJiBwYXNzd29yZCBmb3IgYW4gT0lEQyB0b2tlblxuICAgKi9cbiAgaWRwQXV0aGVudGljYXRlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1dGhlbnRpY2F0aW9uUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkF1dGhlbnRpY2F0aW9uUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUmVxdWVzdCBQYXNzd29yZCBSZXNldFxuICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBQYXNzd29yZCBSZXNldFxuICAgKlxuICAgKiBUaGlzIGVuZHBvaW50IGdlbmVyYXRlcyBhbiBPSURDIHRva2VuIHdpdGhvdXQgYSBzaWduYXR1cmUgKG9mIHRoZSBmb3JtIGB7aGVhZGVyfS57cGF5bG9hZH0uYCksXG4gICAqIGFuZCBzZW5kcyB0aGUgc2lnbmF0dXJlIHRvIHRoZSB1c2VyJ3MgZW1haWwuIENsaWVudCBhcHBsaWNhdGlvbnMgY2FuIHJlY29uc3RydWN0IHRoZSB0b2tlblxuICAgKiBieSBjb25jYXRlbmF0aW5nIHRoZSBge2hlYWRlcn0ue3BheWxvYWR9LmAgd2l0aCB0aGUgc2lnbmF0dXJlLCBwcm9kdWNpbmcgYSB2YWxpZCBPSURDIHRva2VuIG9mXG4gICAqIHRoZSBmb3JtIGB7aGVhZGVyfS57cGF5bG9hZH0ue3NpZ25hdHVyZX1gLiBUaGUgdG9rZW4gY2FuIHRoZW4gYmUgdXNlZCB0byBhdXRoZW50aWNhdGUgdGhlIHVzZXJcbiAgICogd2hlbiBwZXJmb3JtaW5nIHRoZSBgaWRwX3Bhc3N3b3JkX3Jlc2V0X2NvbmZpcm1gIHJlcXVlc3QuXG4gICAqL1xuICBpZHBQYXNzd29yZFJlc2V0UmVxdWVzdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQYXNzd29yZFJlc2V0UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtYWlsT3RwUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ29uZmlybSBQYXNzd29yZCBSZXNldFxuICAgKiBAZGVzY3JpcHRpb24gQ29uZmlybSBQYXNzd29yZCBSZXNldFxuICAgKlxuICAgKiBUaGlzIGVuZHBvaW50IGFsbG93cyBJRFAgdXNlcnMgdG8gcmVzZXQgdGhlaXIgcGFzc3dvcmRcbiAgICogdXNpbmcgYSB0b2tlbiB0aGV5IGhhdmUgcmVjZWl2ZWQgaW4gdGhlaXIgZW1haWwuXG4gICAqL1xuICBpZHBQYXNzd29yZFJlc2V0Q29uZmlybToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQYXNzd29yZFJlc2V0Q29uZmlybVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlIEtleS1JbXBvcnQgS2V5XG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgS2V5LUltcG9ydCBLZXlcbiAgICpcbiAgICogR2VuZXJhdGUgYW4gZXBoZW1lcmFsIGtleSB0aGF0IGEgY2xpZW50IGNhbiB1c2UgZm9yIGtleS1pbXBvcnQgZW5jcnlwdGlvbi5cbiAgICovXG4gIGNyZWF0ZUtleUltcG9ydEtleToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNyZWF0ZUtleUltcG9ydEtleVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEltcG9ydCBLZXlcbiAgICogQGRlc2NyaXB0aW9uIEltcG9ydCBLZXlcbiAgICpcbiAgICogU2VjdXJlbHkgaW1wb3J0cyBhbiBleGlzdGluZyBrZXkgdXNpbmcgYSBwcmV2aW91c2x5IGdlbmVyYXRlZCBrZXktaW1wb3J0IGtleS5cbiAgICovXG4gIGltcG9ydEtleToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbXBvcnRLZXlSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQ3JlYXRlS2V5UmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUHVibGljIE9yZyBJbmZvXG4gICAqIEBkZXNjcmlwdGlvbiBQdWJsaWMgT3JnIEluZm9cbiAgICpcbiAgICogVW5hdXRoZW50aWNhdGVkIGVuZHBvaW50IHRoYXQgcmV0dXJucyBwdWJsaWNseS1hdmFpbGFibGUgaW5mb3JtYXRpb24gYWJvdXQgYW4gb3JnYW5pemF0aW9uLlxuICAgKi9cbiAgcHVibGljX29yZ19pbmZvOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUHVibGljT3JnSW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiAoSU5URVJOQUwpIEN1c3RvbSBjaGFpbiBSUEMgcHJveHlcbiAgICogQGRlc2NyaXB0aW9uIChJTlRFUk5BTCkgQ3VzdG9tIGNoYWluIFJQQyBwcm94eVxuICAgKi9cbiAgY3VzdG9tQ2hhaW5ScGNDYWxsOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkN1c3RvbUNoYWluUnBjUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkN1c3RvbUNoYWluUnBjUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogKElOVEVSTkFMKSBFc3Bsb3JhIEFQSSBQcm94eVxuICAgKiBAZGVzY3JpcHRpb24gKElOVEVSTkFMKSBFc3Bsb3JhIEFQSSBQcm94eVxuICAgKi9cbiAgZXNwbG9yYUFwaUNhbGw6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXNwbG9yYVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFc3Bsb3JhUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogKElOVEVSTkFMKSBBdXRoZW50aWNhdGVkIFNlbnRyeSBBUEkgUHJveHlcbiAgICogQGRlc2NyaXB0aW9uIChJTlRFUk5BTCkgQXV0aGVudGljYXRlZCBTZW50cnkgQVBJIFByb3h5XG4gICAqL1xuICBzZW50cnlBcGlDYWxsOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwidGV4dC9wbGFpblwiOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQWNjZXB0IGFuIGludml0YXRpb25cbiAgICogQGRlc2NyaXB0aW9uIEFjY2VwdCBhbiBpbnZpdGF0aW9uXG4gICAqXG4gICAqIFRoaXMgZW5kcG9pbnQgYWxsb3dzIGlkcCB1c2VycyB0byByZWdpc3RlciB1c2luZyBhIHRva2VuIHRoZXkgaGF2ZSByZWNlaXZlZCBpbiB0aGVpciBlbWFpbFxuICAgKi9cbiAgaW52aXRhdGlvbkFjY2VwdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbnZpdGF0aW9uQWNjZXB0UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHt9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBwZW5kaW5nIGludml0YXRpb25zXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IHBlbmRpbmcgaW52aXRhdGlvbnNcbiAgICpcbiAgICogUmV0dXJucyBhbGwgcGVuZGluZyBpbnZpdGF0aW9ucyBmb3IgdGhlIG9yZ2FuaXphdGlvbiwgaS5lLiwgdGhvc2UgdGhhdCBoYXZlIG5laXRoZXJcbiAgICogYmVlbiBhY2NlcHRlZCBub3IgY2FuY2VsZWQsIGFuZCBoYXZlIG5vdCBleHBpcmVkLlxuICAgKi9cbiAgbGlzdEludml0YXRpb25zOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgICAqIHRoZSBleGFjdCB2YWx1ZSBwcmV2aW91c2x5IHJldHVybmVkIGFzICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHNhbWUgZW5kcG9pbnQuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gTWVtYmVyc2hpcCByb2xlcy4gSWYgZGVmaW5lZCwgb25seSBpbnZpdGF0aW9ucyBmb3Igb25lIG9mIHRoZXNlIHJvbGVzIGFyZSByZXR1cm5lZCwgZ3JvdXBlZCBieSByb2xlIGluIGRlc2NlbmRpbmcgcm9sZSBvcmRlciAob3duZXJzIGZpcnN0LCBhbGllbnMgbGFzdCkuICovXG4gICAgICAgIG1lbWJlcnNoaXA/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1lbWJlclJvbGVcIl1bXSB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkTGlzdEludml0YXRpb25zUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ2FuY2VsIGEgcGVuZGluZyBpbnZpdGF0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBDYW5jZWwgYSBwZW5kaW5nIGludml0YXRpb25cbiAgICpcbiAgICogUmVtb3ZlcyBhIHBlbmRpbmcgaW52aXRhdGlvbiBmcm9tIHRoZSBvcmdhbml6YXRpb24uIElmIG5vIHBlbmRpbmcgaW52aXRhdGlvblxuICAgKiBleGlzdHMgZm9yIHRoZSBnaXZlbiBlbWFpbCBhZGRyZXNzLCBhIG5vdC1mb3VuZCBlcnJvciBpcyByZXR1cm5lZC5cbiAgICovXG4gIGNhbmNlbEludml0YXRpb246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2FuY2VsSW52aXRhdGlvblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW52aXRlIFVzZXJcbiAgICogQGRlc2NyaXB0aW9uIEludml0ZSBVc2VyXG4gICAqXG4gICAqIENyZWF0ZXMgYSBuZXcgdXNlciBpbiBhbiBleGlzdGluZyBvcmcgYW5kIHNlbmRzIHRoYXQgdXNlciBhbiBpbnZpdGUgZW1haWwuXG4gICAqL1xuICBpbnZpdGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSW52aXRlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IEtleXNcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgS2V5c1xuICAgKlxuICAgKiBHZXRzIHRoZSBsaXN0IG9mIGFjY2Vzc2libGUga2V5cyBpbiBhIGdpdmVuIG9yZyAodG8gb3JnIG93bmVyLCBhbGwgb3JnIGtleXNcbiAgICogYXJlIGFjY2Vzc2libGU7IHRvIG1lbWJlcnMsIG9ubHkgdGhlaXIgb3duIGtleXMgYXJlIGFjY2Vzc2libGUpLlxuICAgKlxuICAgKiBJZiBhIHNlYXJjaCBjb25kaXRpb24gaXMsIHRoZSByZXN1bHQgd2lsbCBjb250YWluIG9ubHkgdGhlIGtleXMgd2hvc2UgZWl0aGVyXG4gICAqIG1hdGVyaWFsIElEIG9yIG1ldGFkYXRhIGNvbnRhaW4gdGhlIHNlYXJjaCBjb25kaXRpb24gc3RyaW5nLlxuICAgKlxuICAgKiBOT1RFIHRoYXQgaWYgcGFnaW5hdGlvbiBpcyB1c2VkIGFuZCBhIHBhZ2UgbGltaXQgaXMgc2V0LCB0aGUgcmV0dXJuZWQgcmVzdWx0XG4gICAqIHNldCBtYXkgY29udGFpbiBlaXRoZXIgRkVXRVIgb3IgTU9SRSBlbGVtZW50cyB0aGFuIHRoZSByZXF1ZXN0ZWQgcGFnZSBsaW1pdC5cbiAgICovXG4gIGxpc3RLZXlzSW5Pcmc6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgYnkga2V5IHR5cGVcbiAgICAgICAgICogQGV4YW1wbGUgU2VjcEV0aEFkZHJcbiAgICAgICAgICovXG4gICAgICAgIGtleV90eXBlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlUeXBlXCJdIHwgbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgYnkga2V5IG93bmVyXG4gICAgICAgICAqIEBleGFtcGxlIFVzZXIjNTI2OWM1NzktYjRmOS00NjIwLTllOTAtZTQ2YTVhMGZmYjRkXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfb3duZXI/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdIHwgbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBTZWFyY2gga2V5IG1ldGFkYXRhXG4gICAgICAgICAqIEBleGFtcGxlIHNvbWUgdmFsdWVcbiAgICAgICAgICovXG4gICAgICAgIHNlYXJjaD86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkTGlzdEtleXNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgS2V5XG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgS2V5XG4gICAqXG4gICAqIENyZWF0ZXMgb25lIG9yIG1vcmUgbmV3IGtleXMgb2YgdGhlIHNwZWNpZmllZCB0eXBlLlxuICAgKi9cbiAgY3JlYXRlS2V5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZUtleVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJDcmVhdGVLZXlSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgS2V5XG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgS2V5XG4gICAqXG4gICAqIFJldHVybnMgdGhlIHByb3BlcnRpZXMgb2YgYSBrZXkuXG4gICAqL1xuICBnZXRLZXlJbk9yZzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBLZXlcbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJLZXlJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIERlbGV0ZSBLZXlcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBLZXlcbiAgICpcbiAgICogRGVsZXRlcyBhIGtleSBzcGVjaWZpZWQgYnkgaXRzIElELlxuICAgKlxuICAgKiBPbmx5IHRoZSBrZXkgb3duZXIgYW5kIG9yZyBvd25lcnMgYXJlIGFsbG93ZWQgdG8gZGVsZXRlIGtleXMuXG4gICAqIEFkZGl0aW9uYWxseSwgdGhlIHJvbGUncyBlZGl0IHBvbGljeSAoaWYgc2V0KSBtdXN0IHBlcm1pdCB0aGUgdXBkYXRlLlxuICAgKi9cbiAgZGVsZXRlS2V5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIEtleVxuICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbXB0eVwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVXBkYXRlIEtleVxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIEtleVxuICAgKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBhIGtleS4gIFRoZSB1c2VyIG11c3QgYmUgdGhlIG93bmVyIG9mIHRoZSBrZXkgb3JcbiAgICogb3JnYW5pemF0aW9uIHRvIHBlcmZvcm0gdGhpcyBhY3Rpb24uXG4gICAqXG4gICAqIEZvciBlYWNoIHJlcXVlc3RlZCB1cGRhdGUsIHRoZSBzZXNzaW9uIG11c3QgaGF2ZSB0aGUgY29ycmVzcG9uZGluZyAnbWFuYWdlOmtleTp1cGRhdGU6Xycgc2NvcGU7XG4gICAqIGlmIG5vIHVwZGF0ZXMgYXJlIHJlcXVlc3RlZCwgdGhlIHNlc3Npb24gbXVzdCBoYXZlICdtYW5hZ2U6a2V5OmdldCcuXG4gICAqL1xuICB1cGRhdGVLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIGRlc2lyZWQgS2V5XG4gICAgICAgICAqIEBleGFtcGxlIEtleSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVwZGF0ZUtleVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJLZXlJbmZvXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBBdHRlc3QgdG8gS2V5IFByb3BlcnRpZXNcbiAgICogQGRlc2NyaXB0aW9uIEF0dGVzdCB0byBLZXkgUHJvcGVydGllc1xuICAgKlxuICAgKiBUaGUgcmVzcG9uc2UgaXMgYSBKV1Qgd2hvc2UgY2xhaW1zIGFyZSB0aGUga2V5IHByb3BlcnRpZXMuXG4gICAqL1xuICBhdHRlc3RLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgaW5jbHVkZV9yb2xlcz86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBLZXlcbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJLZXlJbmZvSnd0XCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgS2V5IFJvbGVzXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IEtleSBSb2xlc1xuICAgKlxuICAgKiBHZXQgYWxsIHJvbGVzIHRoZSBrZXkgaXMgaW5cbiAgICovXG4gIGxpc3RLZXlSb2xlczoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBLZXlcbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0S2V5Um9sZXNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IEhpc3RvcmljYWwgVHJhbnNhY3Rpb25zXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IEhpc3RvcmljYWwgVHJhbnNhY3Rpb25zXG4gICAqXG4gICAqIFJldHVybnMgYSBzb3J0ZWQsIHBhZ2luYXRlZCBsaXN0IG9mIHRyYW5zYWN0aW9ucyBzaWduZWQgYnkgYSBnaXZlbiBrZXksXG4gICAqIG9yZGVyZWQgZnJvbSBtb3N0IHJlY2VudCBmaXJzdC5cbiAgICovXG4gIGxpc3RIaXN0b3JpY2FsS2V5VHg6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIGRlc2lyZWQgS2V5XG4gICAgICAgICAqIEBleGFtcGxlIEtleSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkTGlzdEhpc3RvcmljYWxUeFJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBLZXkgYnkgTWF0ZXJpYWwgSURcbiAgICogQGRlc2NyaXB0aW9uIEdldCBLZXkgYnkgTWF0ZXJpYWwgSURcbiAgICpcbiAgICogUmV0dXJucyB0aGUgcHJvcGVydGllcyBvZiBhIGtleS5cbiAgICovXG4gIGdldEtleUJ5TWF0ZXJpYWxJZDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUeXBlIG9mIHRoZSBrZXkgdG8gbG9vayB1cCAqL1xuICAgICAgICBrZXlfdHlwZTogc3RyaW5nO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE1hdGVyaWFsIElEIG9mIHRoZSBrZXkgdG8gbG9vayB1cCAqL1xuICAgICAgICBtYXRlcmlhbF9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiS2V5SW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBRdWVyeSBvcmcgbWV0cmljcy5cbiAgICogQGRlc2NyaXB0aW9uIFF1ZXJ5IG9yZyBtZXRyaWNzLlxuICAgKlxuICAgKiBNZXRyaWNzIHN1bW1hcml6ZSB1c2FnZSBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIEN1YmVTaWduZXIgb3JnYW5pemF0aW9uIG92ZXIgdGltZS4gRm9yIGV4YW1wbGUsXG4gICAqIHlvdSBjYW4gY2FsbCB0aGlzIGVuZHBvaW50IGZpbmQgb3V0OlxuICAgKlxuICAgKiAtIHRoZSBhdmVyYWdlIG51bWJlciBvZiBrZXlzIG92ZXIgdGhlIGxhc3QgbW9udGgsXG4gICAqIC0gdGhlIGF2ZXJhZ2UgbnVtYmVyIG1vbnRobHkgdXNlcnMgb3ZlciB0aGUgbGFzdCB5ZWFyLFxuICAgKiAtIHRoZSB0b3RhbCBudW1iZXIgb2YgdHJhbnNhY3Rpb25zIHNpZ25lZCBsYXN0IHdlZWssXG4gICAqIC0gaG93IHRoZSBudW1iZXIgb2YgZGlmZmVyZW50IEFQSSByZXF1ZXN0cyB3YXMgdHJlbmRpbmcgZGF5LWJ5LWRheSBvdmVyIHRoZSBsYXN0IHdlZWsvbW9udGgveWVhciwgZXRjLlxuICAgKlxuICAgKiBFYWNoIG1ldHJpYyBraW5kIGNhbiBoYXZlIG9uZSBvciBtb3JlIGRpbWVuc2lvbnMsIHRvIGZ1cnRoZXIgc3BlY2lmeSB0aGUgb3JnIHByb3BlcnR5IGl0IGRlc2NyaWJlcy5cbiAgICogRm9yIGV4YW1wbGUsIHRoZSBgVXNlckNvdW50YCBtZXRyaWNzIGhhdmUgYSBtZW1iZXJzaGlwIGRpbWVuc2lvbnMgdG8gc3BlY2lmeSB0aGUga2luZCBvZiB1c2VyIG1lbWJlcnNoaXBcbiAgICogaW4gdGhlIG9yZ2FuaXphdGlvbiAoXCJPd25lclwiIHZzLiBcIk1lbWJlclwiIHZzLiBcIkFsaWVuXCIpLlxuICAgKi9cbiAgcXVlcnlNZXRyaWNzOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgICAqIHRoZSBleGFjdCB2YWx1ZSBwcmV2aW91c2x5IHJldHVybmVkIGFzICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHNhbWUgZW5kcG9pbnQuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlF1ZXJ5TWV0cmljc1JlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRRdWVyeU1ldHJpY3NSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IFBlbmRpbmcgTUZBIFJlcXVlc3RzXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IFBlbmRpbmcgTUZBIFJlcXVlc3RzXG4gICAqXG4gICAqIFJldHJpZXZlcyBhbmQgcmV0dXJucyBhbGwgcGVuZGluZyBNRkEgcmVxdWVzdHMgdGhhdCBhcmUgYWNjZXNzaWJsZSB0byB0aGUgY3VycmVudCBzZXNzaW9uLFxuICAgKiBpLmUuLCB0aG9zZSBjcmVhdGVkIGJ5IHRoZSBjdXJyZW50IHNlc3Npb24gaWRlbnRpdHkgcGx1cyB0aG9zZSBpbiB3aGljaCB0aGUgY3VycmVudCB1c2VyXG4gICAqIGlzIGxpc3RlZCBhcyBhbiBhcHByb3ZlclxuICAgKlxuICAgKiBOT1RFIHRoYXQgaWYgcGFnaW5hdGlvbiBpcyB1c2VkIGFuZCBhIHBhZ2UgbGltaXQgaXMgc2V0LCB0aGUgcmV0dXJuZWQgcmVzdWx0XG4gICAqIHNldCBtYXkgY29udGFpbiBlaXRoZXIgRkVXRVIgb3IgTU9SRSBlbGVtZW50cyB0aGFuIHRoZSByZXF1ZXN0ZWQgcGFnZSBsaW1pdC5cbiAgICogSW4gcGFydGljdWxhciwgbGVnYWN5IE1GQSByZXF1ZXN0cyBhcmUgbm90IHBhZ2luYXRlZDogZXZlcnkgYWNjZXNzaWJsZSBvbmVcbiAgICogaXMgcmV0dXJuZWQgaW4gdGhlIGZpcnN0IHBhZ2UsIG9uIHRvcCBvZiB0aGUgcGFnZSBsaW1pdC5cbiAgICovXG4gIG1mYUxpc3Q6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0TWZhUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IFBlbmRpbmcgTUZBIFJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIEdldCBQZW5kaW5nIE1GQSBSZXF1ZXN0XG4gICAqXG4gICAqIFJldHJpZXZlcyBhbmQgcmV0dXJucyBhIHBlbmRpbmcgTUZBIHJlcXVlc3QgYnkgaXRzIGlkLlxuICAgKi9cbiAgbWZhR2V0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgTWZhUmVxdWVzdFxuICAgICAgICAgKiBAZXhhbXBsZSBNZmFSZXF1ZXN0IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgbWZhX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJNZmFSZXF1ZXN0SW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBBcHByb3ZlIG9yIFJlamVjdCBNRkEgUmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gQXBwcm92ZSBvciBSZWplY3QgTUZBIFJlcXVlc3RcbiAgICpcbiAgICogQXBwcm92ZSBvciByZWplY3QgcmVxdWVzdCBhZnRlciBsb2dnaW5nIGluIHdpdGggQ3ViZVNpZ25lci5cbiAgICpcbiAgICogSWYgYXBwcm92aW5nLCBhZGRzIHRoZSBjdXJyZW50bHktbG9nZ2VkIHVzZXIgYXMgYW4gYXBwcm92ZXJcbiAgICogb2YgYSBwZW5kaW5nIE1GQSByZXF1ZXN0IG9mIHRoZSBbU3RhdHVzOjpSZXF1aXJlZEFwcHJvdmVyc10ga2luZC4gSWYgdGhlIHJlcXVpcmVkIG51bWJlciBvZlxuICAgKiBhcHByb3ZlcnMgaXMgcmVhY2hlZCwgdGhlIE1GQSByZXF1ZXN0IGlzIGFwcHJvdmVkOyB0aGUgY29uZmlybWF0aW9uIHJlY2VpcHQgY2FuIGJlIHVzZWQgdG9cbiAgICogcmVzdW1lIHRoZSBvcmlnaW5hbCBIVFRQIHJlcXVlc3QuXG4gICAqXG4gICAqIElmIHJlamVjdGluZywgaW1tZWRpYXRlbHkgZGVsZXRlcyB0aGUgcGVuZGluZyBNRkEgcmVxdWVzdC5cbiAgICovXG4gIG1mYVZvdGVDczoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICBtZmFfdm90ZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhVm90ZVwiXSB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgTWZhUmVxdWVzdFxuICAgICAgICAgKiBAZXhhbXBsZSBNZmFSZXF1ZXN0IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgbWZhX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJNZmFSZXF1ZXN0SW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbml0aWF0ZSBhbiBFbWFpbCBPVFAgTUZBIEFwcHJvdmFsL1JlamVjdGlvblxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgYW4gRW1haWwgT1RQIE1GQSBBcHByb3ZhbC9SZWplY3Rpb25cbiAgICpcbiAgICogSW5pdGlhdGVzIHRoZSBhcHByb3ZhbC9yZWplY3Rpb24gcHJvY2VzcyBvZiBhbiBNRkEgUmVxdWVzdCB1c2luZyBFbWFpbCBPVFAuXG4gICAqL1xuICBtZmFFbWFpbEluaXQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgbWZhX3ZvdGU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVZvdGVcIl0gfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE1mYVJlcXVlc3RcbiAgICAgICAgICogQGV4YW1wbGUgTWZhUmVxdWVzdCMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG1mYV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1haWxPdHBSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBGaW5hbGl6ZSBhIEVtYWlsIE9UUCBNRkEgQXBwcm92YWwvUmVqZWN0aW9uLlxuICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgYSBFbWFpbCBPVFAgTUZBIEFwcHJvdmFsL1JlamVjdGlvbi5cbiAgICpcbiAgICogVGhlIHJlcXVlc3Qgc2hvdWxkIGNvbnRhaW4gdGhlIGZ1bGwgSldUIG9idGFpbmVkIGJ5IGNvbmNhdGVuYXRpbmcgdGhlXG4gICAqIHBhcnRpYWwgdG9rZW4gcmV0dXJuZWQgYnkgdGhlIGBtZmFfZW1haWxfaW5pdGAgZW5kcG9pbnQgYW5kIHRoZSBzaWduYXR1cmVcbiAgICogZW1haWxlZCB0byB0aGUgdXNlciBpc3N1aW5nIHRoZSByZXF1ZXN0LlxuICAgKlxuICAgKiBJZiBhcHByb3ZpbmcsIGFkZHMgYW4gYXBwcm92ZXIgdG8gYSBwZW5kaW5nIE1GQSByZXF1ZXN0LlxuICAgKiBJZiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7XG4gICAqIHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0byByZXN1bWUgdGhlIG9yaWdpbmFsIEhUVFAgcmVxdWVzdC5cbiAgICpcbiAgICogSWYgcmVqZWN0aW5nLCBpbW1lZGlhdGVseSBkZWxldGVzIHRoZSBwZW5kaW5nIE1GQSByZXF1ZXN0LlxuICAgKi9cbiAgbWZhVm90ZUVtYWlsQ29tcGxldGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBNZmFSZXF1ZXN0XG4gICAgICAgICAqIEBleGFtcGxlIE1mYVJlcXVlc3QjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBtZmFfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbWFpbE90cEFuc3dlclwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYXRlIGEgRklETyBNRkEgQXBwcm92YWwvUmVqZWN0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSBhIEZJRE8gTUZBIEFwcHJvdmFsL1JlamVjdGlvblxuICAgKlxuICAgKiBJbml0aWF0ZXMgdGhlIGFwcHJvdmFsL3JlamVjdGlvbiBwcm9jZXNzIG9mIGFuIE1GQSBSZXF1ZXN0IHVzaW5nIEZJRE8uXG4gICAqL1xuICBtZmFGaWRvSW5pdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE1mYVJlcXVlc3RcbiAgICAgICAgICogQGV4YW1wbGUgTWZhUmVxdWVzdCMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG1mYV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRmlkb0Fzc2VydENoYWxsZW5nZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBGaW5hbGl6ZSBhIEZJRE8gTUZBIEFwcHJvdmFsL1JlamVjdGlvblxuICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgYSBGSURPIE1GQSBBcHByb3ZhbC9SZWplY3Rpb25cbiAgICpcbiAgICogSWYgYXBwcm92aW5nLCBhZGRzIGFuIGFwcHJvdmVyIHRvIGEgcGVuZGluZyBNRkEgcmVxdWVzdC5cbiAgICogSWYgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBhcHByb3ZlcnMgaXMgcmVhY2hlZCwgdGhlIE1GQSByZXF1ZXN0IGlzIGFwcHJvdmVkO1xuICAgKiB0aGUgY29uZmlybWF0aW9uIHJlY2VpcHQgY2FuIGJlIHVzZWQgdG8gcmVzdW1lIHRoZSBvcmlnaW5hbCBIVFRQIHJlcXVlc3QuXG4gICAqXG4gICAqIElmIHJlamVjdGluZywgaW1tZWRpYXRlbHkgZGVsZXRlcyB0aGUgcGVuZGluZyBNRkEgcmVxdWVzdC5cbiAgICovXG4gIG1mYVZvdGVGaWRvQ29tcGxldGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgbWZhX3ZvdGU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVZvdGVcIl0gfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE1mYVJlcXVlc3RcbiAgICAgICAgICogQGV4YW1wbGUgTWZhUmVxdWVzdCMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG1mYV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZpZG9Bc3NlcnRBbnN3ZXJcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJNZmFSZXF1ZXN0SW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBBcHByb3ZlL1JlamVjdCBhIFRPVFAgTUZBIFJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIEFwcHJvdmUvUmVqZWN0IGEgVE9UUCBNRkEgUmVxdWVzdFxuICAgKlxuICAgKiBJZiBhcHByb3ZpbmcsIGFkZHMgdGhlIGN1cnJlbnQgdXNlciBhcyBhcHByb3ZlciB0byBhIHBlbmRpbmcgTUZBIHJlcXVlc3QgYnlcbiAgICogcHJvdmlkaW5nIFRPVFAgY29kZS4gSWYgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBhcHByb3ZlcnMgaXMgcmVhY2hlZCwgdGhlIE1GQSByZXF1ZXN0IGlzXG4gICAqIGFwcHJvdmVkOyB0aGUgY29uZmlybWF0aW9uIHJlY2VpcHQgY2FuIGJlIHVzZWQgdG8gcmVzdW1lIHRoZSBvcmlnaW5hbCBIVFRQIHJlcXVlc3QuXG4gICAqXG4gICAqIElmIHJlamVjdGluZywgaW1tZWRpYXRlbHkgZGVsZXRlcyB0aGUgcGVuZGluZyBNRkEgcmVxdWVzdC5cbiAgICovXG4gIG1mYVZvdGVUb3RwOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIG1mYV92b3RlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFWb3RlXCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBNZmFSZXF1ZXN0XG4gICAgICAgICAqIEBleGFtcGxlIE1mYVJlcXVlc3QjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBtZmFfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb3RwQXBwcm92ZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJNZmFSZXF1ZXN0SW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IHBlbmRpbmcgTU1JIHJlcXVlc3RzXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IHBlbmRpbmcgTU1JIHJlcXVlc3RzXG4gICAqXG4gICAqIFJldHJpZXZlcyBhbmQgcmV0dXJucyBhbGwgcGVuZGluZyBNTUkgbWVzc2FnZXMgYWNjZXNzaWJsZSB0byB0aGUgY3VycmVudCBzZXNzaW9uIGlkZW50aXR5LCBpLmUuLFxuICAgKiAtIGEgcm9sZSBzZXNzaW9uIGNhbiBhY2Nlc3Mgb25seSB0aGUgbWVzc2FnZXMgY3JlYXRlZCBieSB0aGF0IHJvbGVcbiAgICogLSBhIHVzZXIgc2Vzc2lvbiBjYW4gYWNjZXNzIHRoZSBtZXNzYWdlcyBjcmVhdGVkIGJ5IGVpdGhlciB0aGF0IHVzZXIgb3IgYW55IHJvbGUgd2hpY2ggdGhlIHVzZXIgaXMgYSBtZW1iZXIgb2ZcbiAgICovXG4gIG1taU1lc3NhZ2VMaXN0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTGlzdFBlbmRpbmdNZXNzYWdlc1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBhbiBNTUkgcmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gR2V0IGFuIE1NSSByZXF1ZXN0XG4gICAqXG4gICAqIFJldHJpZXZlcyBhIHBlbmRpbmcgTU1JIHJlcXVlc3QgYnkgaXRzIElELlxuICAgKi9cbiAgbW1pTWVzc2FnZUdldDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFBlbmRpbmdNZXNzYWdlXG4gICAgICAgICAqIEBleGFtcGxlIFBlbmRpbmdNZXNzYWdlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgbXNnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQZW5kaW5nTWVzc2FnZUluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVsZXRlIGFuIE1NSSByZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgYW4gTU1JIHJlcXVlc3RcbiAgICpcbiAgICogUmVqZWN0cyBhbiBleGlzdGluZyBNTUkgcmVxdWVzdCBhbmQgdGhlbiBkZWxldGVzIGl0IGZyb20gdGhlIGRhdGFiYXNlLlxuICAgKi9cbiAgbW1pTWVzc2FnZURlbGV0ZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFBlbmRpbmdNZXNzYWdlXG4gICAgICAgICAqIEBleGFtcGxlIFBlbmRpbmdNZXNzYWdlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgbXNnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUmVqZWN0IGFuIE1NSSByZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBSZWplY3QgYW4gTU1JIHJlcXVlc3RcbiAgICpcbiAgICogUmVqZWN0cyBhIHBlbmRpbmcgTU1JIHJlcXVlc3QuIFRoZSByZWNvcmQgb2YgdGhlIE1NSSByZXF1ZXN0IGlzIGtlcHQgaW5cbiAgICogdGhlIGRhdGFiYXNlIHVudGlsIGl0IGV4cGlyZXMgb3IgaXMgZXhwbGljaXRseSBkZWxldGVkLlxuICAgKlxuICAgKiBSZXR1cm5zIHRoZSB1cGRhdGVkIHJlcXVlc3QgaW5mb3JtYXRpb24uXG4gICAqL1xuICBtbWlNZXNzYWdlUmVqZWN0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUGVuZGluZ01lc3NhZ2VcbiAgICAgICAgICogQGV4YW1wbGUgUGVuZGluZ01lc3NhZ2UjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBtc2dfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keT86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTW1pUmVqZWN0UmVxdWVzdFwiXSB8IG51bGw7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQZW5kaW5nTWVzc2FnZUluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQXBwcm92ZSBhbmQgc2lnbiBhbiBNTUkgcmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gQXBwcm92ZSBhbmQgc2lnbiBhbiBNTUkgcmVxdWVzdFxuICAgKlxuICAgKiBTaWducyBhIHBlbmRpbmcgcmVxdWVzdCB0aGF0IHdhcyBnZW5lcmF0ZWQgdGhyb3VnaCB0aGUgTU1JIEpTT04gUlBDIGVuZHBvaW50LlxuICAgKiBUaGUgc2lnbmF0dXJlIGlzIHN0b3JlZCB3aXRoIHRoZSBwZW5kaW5nIG1lc3NhZ2UgYW5kIHRoZSB1cGRhdGVkIHJlcXVlc3QgaW5mbyBpcyByZXR1cm5lZC5cbiAgICpcbiAgICogVGhlIG1lc3NhZ2Ugc2hvdWxkIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgb3JnYW5pemF0aW9uIHRoaXMgaXMgY2FsbGVkIGZyb20sXG4gICAqIGFuZCB0aGUgdXNlciBzaG91bGQgYmUgdGhlIG93bmVyIG9mIHRoZSBjb3JyZXNwb25kaW5nIG1lc3NhZ2UncyBrZXkuXG4gICAqL1xuICBtbWlNZXNzYWdlU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFBlbmRpbmdNZXNzYWdlXG4gICAgICAgICAqIEBleGFtcGxlIFBlbmRpbmdNZXNzYWdlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgbXNnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUGVuZGluZ01lc3NhZ2VJbmZvXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGVuZGluZ01lc3NhZ2VTaWduUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTWludCBhbiBPSURDIElEIHRva2VuIGZvciBUd2l0dGVyXG4gICAqIEBkZXNjcmlwdGlvbiBNaW50IGFuIE9JREMgSUQgdG9rZW4gZm9yIFR3aXR0ZXJcbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBhY3RzIGlkZW50aWNhbGx5IHRvIFR3aXR0ZXIncyBbYG9hdXRoMi90b2tlbmBdKGh0dHBzOi8vZGV2ZWxvcGVyLnR3aXR0ZXIuY29tL2VuL2RvY3MvYXV0aGVudGljYXRpb24vYXBpLXJlZmVyZW5jZS90b2tlbikgZW5kcG9pbnQsXG4gICAqIGJ1dCBleHRlbmRzIHRoZSBvdXRwdXQgd2l0aCBhbiBgaWRfdG9rZW5gLlxuICAgKlxuICAgKiBUaGlzIGBpZF90b2tlbmAgY2FuIHRoZW4gYmUgdXNlZCB3aXRoIGFueSBDdWJlU2lnbmVyIGVuZHBvaW50IHRoYXQgcmVxdWlyZXMgYW4gT0lEQyB0b2tlbi5cbiAgICogQ2FsbGVycyBtdXN0IHJlcXVlc3QgKmF0IGxlYXN0KiBzY29wZXMgYHR3ZWV0LnJlYWRgIGFuZCBgdXNlcnMucmVhZGAgZHVyaW5nIGF1dGggd2l0aCB0d2l0dGVyLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgaWQgdG9rZW4gZG9lcyBub3QgY29udGFpbiBhIGNvbmZpcm1lZCBlbWFpbDtcbiAgICogY2FsbGVycyBjYW4gcmVxdWVzdCB0aGlzIGZpZWxkIGJlIHBvcHVsYXRlZCBieSByZXF1ZXN0aW5nIHRoZSBgdXNlcnMuZW1haWxgIHNjb3BlXG4gICAqIGFuZCBhZGRpbmcgYGZldGNoX2VtYWlsYCBhcyBhIFVSTCBwYXJhbWV0ZXIgdG8gdGhpcyByb3V0ZS5cbiAgICpcbiAgICpcbiAgICogPiBbIUlNUE9SVEFOVF1cbiAgICogPiBUaGlzIGVuZHBvaW50IHdpbGwgZmFpbCB1bmxlc3MgdGhlIG9yZyBpcyBjb25maWd1cmVkIHRvIGFsbG93IHRoZSBpc3N1ZXIgYGh0dHBzOi8vc2hpbS5vYXV0aDIuY3ViaXN0LmRldi90d2l0dGVyYCBhbmQgY2xpZW50IElEIGJlaW5nIHVzZWQgZm9yIFR3aXR0ZXIuXG4gICAqL1xuICBvYXV0aDJUd2l0dGVyOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIGZldGNoX2VtYWlsPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVG9rZW5SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMb2dpbiB3aXRoIE9JRENcbiAgICogQGRlc2NyaXB0aW9uIExvZ2luIHdpdGggT0lEQ1xuICAgKlxuICAgKiBFeGNoYW5nZSBhbiBPSURDIElEIHRva2VuIChwYXNzZWQgdmlhIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyKSBmb3IgYSBzaWduZXIgc2Vzc2lvbi5cbiAgICpcbiAgICogTUZBIGlzIHJlcXVpcmVkIHdoZW46XG4gICAqIC0gYW4gTUZBIHBvbGljeSBpcyBleHBsaWNpdGx5IGF0dGFjaGVkIHRvIHRoZSB1c2VyIGxvZ2dpbmcgaW5cbiAgICogKGUuZy4sIGFuIG9yZyBvd25lciBjYW4gZG8gdGhhdCBhdCB1c2VyIGNyZWF0aW9uIHRpbWUgdG8gcmVxdWlyZSBjZXJ0YWluIGtpbmQgb2YgTUZBKVxuICAgKiAtIHRoZSB1c2VyIGhhcyBhdCBsZWFzdCAxIE1GQSBmYWN0b3IgY29uZmlndXJlZFxuICAgKi9cbiAgb2lkY0F1dGg6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY0xvZ2luUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk5ld1Nlc3Npb25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW5pdGlhdGUgbG9naW4gdmlhIGVtYWlsIHRva2VuXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSBsb2dpbiB2aWEgZW1haWwgdG9rZW5cbiAgICpcbiAgICogVGhpcyBlbmRwb2ludCBnZW5lcmF0ZXMgYW4gT0lEQyB0b2tlbiB3aXRob3V0IGEgc2lnbmF0dXJlIChvZiB0aGUgZm9ybSBgaGVhZGVyLnBheWxvYWQuYCksIGFuZCBzZW5kcyB0aGUgc2lnbmF0dXJlIHRvIHRoZSB1c2VyJ3MgZW1haWwuXG4gICAqIENsaWVudCBhcHBsaWNhdGlvbnMgY2FuIHJlY29uc3RydWN0IHRoZSB0b2tlbiBieSBjb25jYXRlbmF0aW5nIHRoZSBgcGFydGlhbF90b2tlbmAgd2l0aCB0aGUgc2lnbmF0dXJlLCBwcm9kdWNpbmcgYSB2YWxpZCBPSURDIHRva2VuIG9mIHRoZSBmb3JtIGBoZWFkZXIucGF5bG9hZC5zaWduYXR1cmVgXG4gICAqIFRoZSB0b2tlbiBjYW4gdGhlbiBiZSB1c2VkIHRvIGF1dGhlbnRpY2F0ZSB0aGUgdXNlci5cbiAgICpcbiAgICogPiBbIUlNUE9SVEFOVF1cbiAgICogPiBGb3IgdGhpcyBlbmRwb2ludCB0byBzdWNjZWVkLCB0aGUgb3JnIG11c3QgYmUgY29uZmlndXJlZCB0bzpcbiAgICogPiAxLiBBbGxvdyB0aGUgaXNzdWVyIGBodHRwczovL3NoaW0ub2F1dGgyLmN1YmlzdC5kZXYvZW1haWwtb3RwYCBhbmQgY2xpZW50IElEIGJlaW5nIHRoZSBPcmcgSURcbiAgICogPiAyLiBIYXZlIGFuIGVtYWlsIHNlbmRlciBjb25maWd1cmVkIGZvciBPVFBzXG4gICAqL1xuICBlbWFpbE90cEF1dGg6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1haWxPdHBSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1haWxPdHBSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbml0aWF0ZSBsb2dpbiB2aWEgU2lnbi1pbiBXaXRoIEV0aGVyZXVtIChTSVdFKS5cbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIGxvZ2luIHZpYSBTaWduLWluIFdpdGggRXRoZXJldW0gKFNJV0UpLlxuICAgKlxuICAgKiBUaGlzIGVuZHBvaW50IGdlbmVyYXRlcyBhIGNoYWxsZW5nZSB3aGljaCBjYW4gYmUgYW5zd2VyZWQgKHZpYSB0aGUgY29ycmVzcG9uZGluZyBQQVRDSCBlbmRwb2ludClcbiAgICogdG8gb2J0YWluIGFuIE9JREMgdG9rZW4uIFRoZSBPSURDIHRva2VuIGNhbiB0aGVuIGJlIGV4Y2hhbmdlZCBmb3IgYSB1c2VyIHNlc3Npb24gdmlhIHRoZSBzdGFuZGFyZFxuICAgKiBPSURDIGF1dGggcm91dGUuXG4gICAqXG4gICAqID4gWyFJTVBPUlRBTlRdXG4gICAqID4gRm9yIHRoaXMgZW5kcG9pbnQgdG8gc3VjY2VlZCwgdGhlIG9yZyBtdXN0IGJlIGNvbmZpZ3VyZWQgdG86XG4gICAqID4gQWxsb3cgdGhlIGlzc3VlciBgaHR0cHM6Ly9zaGltLm9hdXRoMi5jdWJpc3QuZGV2L3Npd2VgIHdpdGggdGhlIE9yZyBJRCBhcyB0aGUgY2xpZW50IElEXG4gICAqL1xuICBzaXdlSW5pdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTaXdlSW5pdFJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTaXdlSW5pdFJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENvbXBsZXRlIGxvZ2luIHZpYSBTaWduLWluIFdpdGggRXRoZXJldW0gKFNJV0UpXG4gICAqIEBkZXNjcmlwdGlvbiBDb21wbGV0ZSBsb2dpbiB2aWEgU2lnbi1pbiBXaXRoIEV0aGVyZXVtIChTSVdFKVxuICAgKlxuICAgKiBJZiB0aGUgY2hhbGxlbmdlIChpc3N1ZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgUE9TVCBlbmRwb2ludCkgaXMgYW5zd2VyZWQgY29ycmVjdGx5LCB0aGlzIGVuZHBvaW50XG4gICAqIGdlbmVyYXRlcyBhbiBPSURDIHRva2VuIHRoYXQgY2FuIHRoZW4gYmUgZXhjaGFuZ2VkIGZvciBhIHVzZXIgc2Vzc2lvbiB2aWEgdGhlIHN0YW5kYXJkIE9JREMgYXV0aCByb3V0ZS5cbiAgICpcbiAgICogPiBbIUlNUE9SVEFOVF1cbiAgICogPiBGb3IgdGhpcyBlbmRwb2ludCB0byBzdWNjZWVkLCB0aGUgb3JnIG11c3QgYmUgY29uZmlndXJlZCB0bzpcbiAgICogPiBBbGxvdyB0aGUgaXNzdWVyIGBodHRwczovL3NoaW0ub2F1dGgyLmN1YmlzdC5kZXYvc2l3ZWAgd2l0aCB0aGUgT3JnIElEIGFzIHRoZSBjbGllbnQgSURcbiAgICovXG4gIHNpd2VDb21wbGV0ZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTaXdlQ29tcGxldGVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU2l3ZUNvbXBsZXRlUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW5pdGlhdGUgbG9naW4gdmlhIFNpZ24taW4gV2l0aCBTb2xhbmEgKFNJV1MpLlxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgbG9naW4gdmlhIFNpZ24taW4gV2l0aCBTb2xhbmEgKFNJV1MpLlxuICAgKlxuICAgKiBUaGlzIGVuZHBvaW50IGdlbmVyYXRlcyBhIGNoYWxsZW5nZSB3aGljaCBjYW4gYmUgYW5zd2VyZWQgKHZpYSB0aGUgY29ycmVzcG9uZGluZyBQQVRDSCBlbmRwb2ludClcbiAgICogdG8gb2J0YWluIGFuIE9JREMgdG9rZW4uIFRoZSBPSURDIHRva2VuIGNhbiB0aGVuIGJlIGV4Y2hhbmdlZCBmb3IgYSB1c2VyIHNlc3Npb24gdmlhIHRoZSBzdGFuZGFyZFxuICAgKiBPSURDIGF1dGggcm91dGUuXG4gICAqXG4gICAqID4gWyFJTVBPUlRBTlRdXG4gICAqID4gRm9yIHRoaXMgZW5kcG9pbnQgdG8gc3VjY2VlZCwgdGhlIG9yZyBtdXN0IGJlIGNvbmZpZ3VyZWQgdG86XG4gICAqID4gQWxsb3cgdGhlIGlzc3VlciBgaHR0cHM6Ly9zaGltLm9hdXRoMi5jdWJpc3QuZGV2L3Npd3NgIHdpdGggdGhlIE9yZyBJRCBhcyB0aGUgY2xpZW50IElEXG4gICAqL1xuICBzaXdzSW5pdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTaXdzSW5pdFJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTaXdzSW5pdFJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENvbXBsZXRlIGxvZ2luIHZpYSBTaWduLWluIFdpdGggU29sYW5hIChTSVdTKVxuICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGUgbG9naW4gdmlhIFNpZ24taW4gV2l0aCBTb2xhbmEgKFNJV1MpXG4gICAqXG4gICAqIElmIHRoZSBjaGFsbGVuZ2UgKGlzc3VlZCBieSB0aGUgY29ycmVzcG9uZGluZyBQT1NUIGVuZHBvaW50KSBpcyBhbnN3ZXJlZCBjb3JyZWN0bHksIHRoaXMgZW5kcG9pbnRcbiAgICogZ2VuZXJhdGVzIGFuIE9JREMgdG9rZW4gdGhhdCBjYW4gdGhlbiBiZSBleGNoYW5nZWQgZm9yIGEgdXNlciBzZXNzaW9uIHZpYSB0aGUgc3RhbmRhcmQgT0lEQyBhdXRoIHJvdXRlLlxuICAgKlxuICAgKiA+IFshSU1QT1JUQU5UXVxuICAgKiA+IEZvciB0aGlzIGVuZHBvaW50IHRvIHN1Y2NlZWQsIHRoZSBvcmcgbXVzdCBiZSBjb25maWd1cmVkIHRvOlxuICAgKiA+IEFsbG93IHRoZSBpc3N1ZXIgYGh0dHBzOi8vc2hpbS5vYXV0aDIuY3ViaXN0LmRldi9zaXdzYCB3aXRoIHRoZSBPcmcgSUQgYXMgdGhlIGNsaWVudCBJRFxuICAgKi9cbiAgc2l3c0NvbXBsZXRlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNpd3NDb21wbGV0ZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTaXdzQ29tcGxldGVSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBBbGxvd3MgYSB1c2VyIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIHRoZSB0ZWxlZ3JhbSBBUEkgdXNpbmcgdGhlIHRnV2ViQXBwRGF0YSB2YWx1ZVxuICAgKiBAZGVzY3JpcHRpb24gQWxsb3dzIGEgdXNlciB0byBhdXRoZW50aWNhdGUgd2l0aCB0aGUgdGVsZWdyYW0gQVBJIHVzaW5nIHRoZSB0Z1dlYkFwcERhdGEgdmFsdWVcbiAgICogVGhlIHRva2VuIGhhcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gICAqIC0gVGhlIGBzdWJgIGZpZWxkIGlzIHRoZSB0ZWxlZ3JhbSB1c2VyIElEXG4gICAqIC0gVGhlIGBpc3NgIGZpZWxkIGRlcGVuZHMgb24gdGhlIGNob3NlbiBlbnZpcm9ubWVudDpcbiAgICogLSBgaHR0cHM6Ly9zaGltLm9hdXRoMi5jdWJpc3QuZGV2L3RlbGVncmFtL3Byb2R1Y3Rpb25gIGZvciB0aGUgcHJvZHVjdGlvbiBlbnZpcm9ubWVudFxuICAgKiAtIGBodHRwczovL3NoaW0ub2F1dGgyLmN1YmlzdC5kZXYvdGVsZWdyYW0vdGVzdGAgZm9yIHRoZSB0ZXN0IGVudmlyb25tZW50XG4gICAqIC0gVGhlIGBhdWRgIGZpZWxkIGlzIHRoZSBwcm92aWRlZCB0ZWxlZ3JhbSBib3QgSURcbiAgICogLSBUaGUgYGV4cGAgZmllbGQgaXMgZGVyaXZlZCBmcm9tIHRoZSBgYXV0aF9kYXRlYCBmaWVsZCBpbiB0aGUgdGVsZWdyYW0gZGF0YVxuICAgKlxuICAgKiBGYWlscyBpZiB0aGUgdGVsZWdyYW0gZGF0YSBpcyBpbnZhbGlkIG9yIHRoZSBzaWduYXR1cmUgaXMgaW52YWxpZFxuICAgKi9cbiAgdGVsZWdyYW1BdXRoOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRlbGVncmFtQXV0aFJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJUZWxlZ3JhbUF1dGhSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgT3JnXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgT3JnXG4gICAqXG4gICAqIENyZWF0ZXMgYSBuZXcgb3JnYW5pemF0aW9uLiBUaGUgbmV3IG9yZyBpcyBhIGNoaWxkIG9mIHRoZVxuICAgKiBjdXJyZW50IG9yZyBhbmQgaW5oZXJpdHMgaXRzIGtleS1leHBvcnQgcG9saWN5LiBUaGUgbmV3IG9yZ1xuICAgKiBpcyBjcmVhdGVkIHdpdGggb25lIG93bmVyLCB0aGUgY2FsbGVyIG9mIHRoaXMgQVBJLlxuICAgKi9cbiAgY3JlYXRlT3JnOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZU9yZ1JlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJPcmdJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgUG9saWNpZXNcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgUG9saWNpZXNcbiAgICpcbiAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBhbGwgcG9saWNpZXMgaW4gdGhlIE9yZy5cbiAgICovXG4gIGxpc3RQb2xpY2llczoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcHRpb25hbCB0eXBlIG9mIHBvbGljaWVzIHRvIHJldHVyblxuICAgICAgICAgKiBAZXhhbXBsZSBLZXlcbiAgICAgICAgICovXG4gICAgICAgIHBvbGljeV90eXBlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQb2xpY3lUeXBlXCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0UG9saWNpZXNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgUG9saWN5XG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgUG9saWN5XG4gICAqXG4gICAqIENyZWF0ZXMgYSBuZXcgbmFtZWQgcG9saWN5IGluIHRoZSBvcmdhbml6YXRpb24uIFRoZSB1c2VyIG1ha2luZyB0aGUgcmVxdWVzdCBpcyB0aGVcbiAgICogb3duZXIgb2YgdGhlIHBvbGljeSwgZ2l2aW5nIHRoZW0gZWRpdCBhY2Nlc3MgdG8gdGhlIHBvbGljeSBhbG9uZyB3aXRoIHRoZSBvcmcgb3duZXJzLlxuICAgKi9cbiAgY3JlYXRlUG9saWN5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZVBvbGljeVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQb2xpY3lJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIERlbGV0ZSBQb2xpY3lcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBQb2xpY3lcbiAgICpcbiAgICogRGVsZXRlIHRoZSBuYW1lZCBwb2xpY3kgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBvciBpZC5cbiAgICovXG4gIGRlbGV0ZVBvbGljeToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE5hbWVkUG9saWN5XG4gICAgICAgICAqIEBleGFtcGxlIE5hbWVkUG9saWN5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcG9saWN5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1wdHlcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFVwZGF0ZSBQb2xpY3lcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBQb2xpY3lcbiAgICpcbiAgICogVXBkYXRlcyB0aGUgcG9saWN5IHdpdGggdGhlIGdpdmVuIG5hbWUgb3IgaWQuXG4gICAqL1xuICB1cGRhdGVQb2xpY3k6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBOYW1lZFBvbGljeVxuICAgICAgICAgKiBAZXhhbXBsZSBOYW1lZFBvbGljeSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHBvbGljeV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVwZGF0ZVBvbGljeVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQb2xpY3lJbmZvXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgUG9saWN5IExvZ3NcbiAgICogQGRlc2NyaXB0aW9uIEdldCBQb2xpY3kgTG9nc1xuICAgKlxuICAgKiBSZXR1cm5zIHRoZSBsb2dzIGZvciB0aGUgZ2l2ZW4gcG9saWN5LCB3aXRoaW4gdGhlIGdpdmVuIHRpbWVmcmFtZS5cbiAgICovXG4gIGdldFBvbGljeUxvZ3M6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBOYW1lZFBvbGljeVxuICAgICAgICAgKiBAZXhhbXBsZSBOYW1lZFBvbGljeSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHBvbGljeV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBvbGljeUxvZ3NSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkUG9saWN5TG9nc1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBQb2xpY3lcbiAgICogQGRlc2NyaXB0aW9uIEdldCBQb2xpY3lcbiAgICpcbiAgICogUmV0dXJucyB0aGUgc3BlY2lmaWVkIHZlcnNpb24gb3IgbGF0ZXN0IG9mIGEgbmFtZWQgcG9saWN5IHdpdGggdGhlIGdpdmVuIG5hbWUgb3IgaWQuXG4gICAqL1xuICBnZXRQb2xpY3k6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBOYW1lZFBvbGljeVxuICAgICAgICAgKiBAZXhhbXBsZSBOYW1lZFBvbGljeSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHBvbGljeV9pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBwb2xpY3kgdmVyc2lvbiwgZWl0aGVyICdsYXRlc3QnIG9yICd2PG51bWJlcj4nLlxuICAgICAgICAgKiBAZXhhbXBsZSBsYXRlc3RcbiAgICAgICAgICovXG4gICAgICAgIHZlcnNpb246IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBvbGljeUluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW52b2tlIFBvbGljeVxuICAgKiBAZGVzY3JpcHRpb24gSW52b2tlIFBvbGljeVxuICAgKlxuICAgKiBJbnZva2VzIHRoZSBbTmFtZWRQb2xpY3ldIHdpdGggdGhlIGdpdmVuIElEIHdpdGggdGhlIGdpdmVuIHJlcXVlc3QgaW5mb3JtYXRpb24uXG4gICAqIEl0IGlzIG9ubHkgc3VwcG9ydGVkIGZvciBXYXNtIHBvbGljaWVzLlxuICAgKi9cbiAgaW52b2tlUG9saWN5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgTmFtZWRQb2xpY3lcbiAgICAgICAgICogQGV4YW1wbGUgTmFtZWRQb2xpY3kjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBwb2xpY3lfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcG9saWN5IHZlcnNpb24sIGVpdGhlciAnbGF0ZXN0JyBvciAndjxudW1iZXI+Jy5cbiAgICAgICAgICogQGV4YW1wbGUgbGF0ZXN0XG4gICAgICAgICAqL1xuICAgICAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSW52b2tlUG9saWN5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkludm9rZVBvbGljeVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgQnVja2V0c1xuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBCdWNrZXRzXG4gICAqXG4gICAqIExpc3QgYXZhaWxhYmxlIG1ldGEgaW5mb3JtYXRpb24gYWJvdXQgYWxsIHBvbGljeSBLViBzdG9yZSBidWNrZXRzIGluIHRoZSBvcmcuXG4gICAqL1xuICBsaXN0UG9saWN5QnVja2V0czoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBhZ2luYXRlZExpc3RCdWNrZXRzUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IEJ1Y2tldFxuICAgKiBAZGVzY3JpcHRpb24gR2V0IEJ1Y2tldFxuICAgKlxuICAgKiBSZXR1cm5zIHRoZSBtZXRhIGluZm9ybWF0aW9uIG9mIGEgcG9saWN5IEtWIHN0b3JlIGJ1Y2tldC5cbiAgICovXG4gIGdldFBvbGljeUJ1Y2tldDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgYnVja2V0X25hbWU6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkJ1Y2tldEluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVXBkYXRlIEJ1Y2tldFxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIEJ1Y2tldFxuICAgKlxuICAgKiBVcGRhdGVzIG1ldGEgaW5mb3JtYXRpb24gZm9yIGFuIGV4aXN0aW5nIHBvbGljeSBLViBzdG9yZSBidWNrZXQuXG4gICAqL1xuICB1cGRhdGVQb2xpY3lCdWNrZXQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIGJ1Y2tldF9uYW1lOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXBkYXRlQnVja2V0UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkJ1Y2tldEluZm9cIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBQb2xpY3kgSW1wb3J0IEtleVxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFBvbGljeSBJbXBvcnQgS2V5XG4gICAqXG4gICAqIEdlbmVyYXRlIGFuIGVwaGVtZXJhbCBrZXkgdGhhdCBhIGNsaWVudCBjYW4gdXNlIGZvciBlbmNyeXB0aW5nIGRhdGEgcmVsYXRlZCB0byBXYXNtXG4gICAqIHBvbGljaWVzIChlLmcuLCBwb2xpY3kgc2VjcmV0cykuXG4gICAqL1xuICBjcmVhdGVQb2xpY3lJbXBvcnRLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJDcmVhdGVQb2xpY3lJbXBvcnRLZXlSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgdGhlIG9yZy13aWRlIHBvbGljeSBzZWNyZXRzLlxuICAgKiBAZGVzY3JpcHRpb24gR2V0IHRoZSBvcmctd2lkZSBwb2xpY3kgc2VjcmV0cy5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoaXMgb25seSByZXR1cm5zIHRoZSBrZXlzIGZvciB0aGUgc2VjcmV0cywgb21pdHRpbmcgdGhlIHZhbHVlcy5cbiAgICogVGhlIHZhbHVlcyBhcmUgc2VjcmV0IGFuZCBhcmUgbm90IGFjY2Vzc2libGUgb3V0c2lkZSBXYXNtIHBvbGljeSBleGVjdXRpb24uXG4gICAqL1xuICBnZXRQb2xpY3lTZWNyZXRzOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUG9saWN5U2VjcmV0c0luZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVXBkYXRlIG9yZy1sZXZlbCBwb2xpY3kgc2VjcmV0c1xuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIG9yZy1sZXZlbCBwb2xpY3kgc2VjcmV0c1xuICAgKlxuICAgKiBUaGUgcHJvdmlkZWQgc2VjcmV0cyB3aWxsIHJlcGxhY2UgYW55IGV4aXN0aW5nIG9yZy1sZXZlbCBzZWNyZXRzLlxuICAgKiBJdCBmYWlscyBpZiB0aGUgc2VjcmV0cyB3ZXJlbid0IHByZXZpb3VzbHkgY3JlYXRlZC5cbiAgICpcbiAgICogTXVzdCBiZSBwZXJtaXR0ZWQgYnkgdGhlIHBvbGljeSBzZWNyZXQncyBlZGl0IHBvbGljeSBpZiBzZXQsIGFuZCB0aGUgb3JnJ3MgZWRpdCBwb2xpY3kgb3RoZXJ3aXNlLlxuICAgKi9cbiAgdXBkYXRlUG9saWN5U2VjcmV0czoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVcGRhdGVQb2xpY3lTZWNyZXRzUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBvbGljeVNlY3JldHNJbmZvXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgb3Igb3ZlcndyaXRlIGFuIG9yZy1sZXZlbCBwb2xpY3kgc2VjcmV0LlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIG9yIG92ZXJ3cml0ZSBhbiBvcmctbGV2ZWwgcG9saWN5IHNlY3JldC5cbiAgICogTXVzdCBiZSBwZXJtaXR0ZWQgYnkgdGhlIHBvbGljeSBzZWNyZXQncyBlZGl0IHBvbGljeSBpZiBzZXQsIGFuZCB0aGUgb3JnJ3MgZWRpdCBwb2xpY3kgb3RoZXJ3aXNlLlxuICAgKi9cbiAgc2V0UG9saWN5U2VjcmV0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICBzZWNyZXRfbmFtZTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNldFBvbGljeVNlY3JldFJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQb2xpY3lTZWNyZXRzSW5mb1wiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVsZXRlIGFuIG9yZy1sZXZlbCBwb2xpY3kgc2VjcmV0LlxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIGFuIG9yZy1sZXZlbCBwb2xpY3kgc2VjcmV0LlxuICAgKiBNdXN0IGJlIHBlcm1pdHRlZCBieSB0aGUgcG9saWN5IHNlY3JldCdzIGVkaXQgcG9saWN5IGlmIHNldCwgYW5kIHRoZSBvcmcncyBlZGl0IHBvbGljeSBvdGhlcndpc2UuXG4gICAqL1xuICBkZWxldGVQb2xpY3lTZWNyZXQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIHNlY3JldF9uYW1lOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1wdHlcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQb2xpY3lTZWNyZXRzSW5mb1wiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVXBsb2FkIFdhc20gUG9saWN5XG4gICAqIEBkZXNjcmlwdGlvbiBVcGxvYWQgV2FzbSBQb2xpY3lcbiAgICpcbiAgICogUmV0dXJucyBhIHNpZ25lZCBVUkwgZm9yIHVwbG9hZGluZyBhIHdhc20gcG9saWN5IHRvIEN1YmVTaWduZXIuIFRoZSBwb2xpY3kgd2lsbCBiZVxuICAgKiBkZWxldGVkIGlmIG5vdCBhdHRhY2hlZCB0byBhIFtOYW1lZFBvbGljeV0gc29vbiBhZnRlciB0aGUgdXBsb2FkIGhhcyBiZWVuIGNvbXBsZXRlZC5cbiAgICovXG4gIHVwbG9hZFdhc21Qb2xpY3k6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXBsb2FkV2FzbVBvbGljeVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVcGxvYWRXYXNtUG9saWN5UmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBSb2xlc1xuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBSb2xlc1xuICAgKlxuICAgKiBSZXRyaWV2ZXMgYWxsIHJvbGVzIGluIGFuIG9yZ2FuaXphdGlvbiB0aGF0IHRoZSBjdXJyZW50IHVzZXIgaXMgYWxsb3dlZCB0byBhY2Nlc3MuXG4gICAqL1xuICBsaXN0Um9sZXM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEb24ndCBpbmNsdWRlIGtleXMgYW5kIHVzZXJzIGZvciBlYWNoIHJvbGUgKi9cbiAgICAgICAgc3VtbWFyaXplPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkTGlzdFJvbGVzUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlIFJvbGVcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBSb2xlXG4gICAqXG4gICAqIENyZWF0ZXMgYSBuZXcgcm9sZSBpbiBhbiBvcmdhbml6YXRpb24uIFVubGVzcyB0aGUgbG9nZ2VkLWluIHVzZXJcbiAgICogaXMgdGhlIG93bmVyLCB0aGV5IGFyZSBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBuZXdseSBjcmVhdGVkIHJvbGUuXG4gICAqL1xuICBjcmVhdGVSb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcmVxdWVzdCBib2R5IHRvIHNldCB0aGUgcm9sZSBuYW1lICovXG4gICAgcmVxdWVzdEJvZHk/OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZVJvbGVSZXF1ZXN0XCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNyZWF0ZVJvbGVSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgUm9sZVxuICAgKiBAZGVzY3JpcHRpb24gR2V0IFJvbGVcbiAgICpcbiAgICogUmV0cmlldmVzIGluZm9ybWF0aW9uIGFib3V0IGEgcm9sZSBpbiBhbiBvcmdhbml6YXRpb25cbiAgICovXG4gIGdldFJvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgc3VtbWFyaXplPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUm9sZUluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVsZXRlIFJvbGVcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBSb2xlXG4gICAqXG4gICAqIERlbGV0ZXMgYSByb2xlIGluIGFuIG9yZ2FuaXphdGlvbi5cbiAgICpcbiAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICogQWRkaXRpb25hbGx5LCB0aGUgcm9sZSdzIGVkaXQgcG9saWN5IChpZiBzZXQpIG11c3QgcGVybWl0IHRoZSB1cGRhdGUuXG4gICAqL1xuICBkZWxldGVSb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVtcHR5XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBVcGRhdGUgUm9sZVxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIFJvbGVcbiAgICpcbiAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBhIHJvbGUgKHRoaXMgcmVxdWlyZXMgdGhlIGBtYW5hZ2U6cm9sZTp1cGRhdGU6ZW5hYmxlYCBzY29wZSkuXG4gICAqIFVwZGF0ZXMgdGhlIHJvbGUncyBwb2xpY2llcyAodGhpcyByZXF1aXJlcyB0aGUgYG1hbmFnZTpyb2xlOnVwZGF0ZTpwb2xpY3lgIHNjb3BlKS5cbiAgICogVXBkYXRlcyB0aGUgcm9sZSdzIGVkaXQgcG9saWNpZXMgKHRoaXMgcmVxdWlyZXMgdGhlIGBtYW5hZ2U6cm9sZTp1cGRhdGU6ZWRpdFBvbGljeWAgc2NvcGUpLlxuICAgKlxuICAgKiBUaGUgdXNlciBtdXN0IGJlIGluIHRoZSByb2xlIG9yIGFuIG93bmVyIG9mIHRoZSBvcmdhbml6YXRpb24uXG4gICAqIEFkZGl0aW9uYWxseSwgdGhlIHJvbGUncyBlZGl0IHBvbGljeSAoaWYgc2V0KSBtdXN0IHBlcm1pdCB0aGUgdXBkYXRlLlxuICAgKi9cbiAgdXBkYXRlUm9sZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVcGRhdGVSb2xlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlJvbGVJbmZvXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBBZGQgS2V5c1xuICAgKiBAZGVzY3JpcHRpb24gQWRkIEtleXNcbiAgICpcbiAgICogQWRkcyBhIGxpc3Qgb2YgZXhpc3Rpbmcga2V5cyB0byBhbiBleGlzdGluZyByb2xlLlxuICAgKlxuICAgKiBUaGUga2V5IG93bmVyIGlzIGFsbG93ZWQgdG8gYWRkIHRoZWlyIGtleSB0byBhbnkgcm9sZSB0aGF0IHRoZXkgYXJlIGluLlxuICAgKlxuICAgKiBJbiBcIm9yZyBjdXN0b2R5XCIgbW9kZWwgb25seSwgb3JnIG93bmVycyBhcmUgYWxsb3dlZCB0byBhZGQgYW55IGtleSB0byBhbnkgcm9sZS5cbiAgICpcbiAgICogSW4gYWxsIGNhc2VzOiB0aGUgcm9sZSdzIGVkaXQgcG9saWN5LCBhcyB3ZWxsIGFzIHRoZSBlZGl0IHBvbGljeSBvZiBlYWNoIG9mIHRoZSBrZXlzLCBtdXN0IHBlcm1pdCB0aGUgdXBkYXRlLlxuICAgKlxuICAgKiBFYWNoIHJlcXVlc3QgdG8gdGhpcyBlbmRwb2ludCBjYW4gYWRkLCBhdCBtYXhpbXVtLCAzMiBrZXlzLlxuICAgKi9cbiAgYWRkS2V5c1RvUm9sZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBZGRLZXlzVG9Sb2xlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQWRkIFVzZXJcbiAgICogQGRlc2NyaXB0aW9uIEFkZCBVc2VyXG4gICAqXG4gICAqIEFkZHMgYW4gZXhpc3RpbmcgdXNlciB0byBhbiBleGlzdGluZyByb2xlLlxuICAgKlxuICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG9yZyBvd25lcnMgY2FuIGFkZCB1c2VycyB0byBhIHJvbGUuXG4gICAqIEFkZGl0aW9uYWxseSwgdGhlIHJvbGUncyBlZGl0IHBvbGljeSAoaWYgc2V0KSBtdXN0IHBlcm1pdCB0aGUgdXBkYXRlLlxuICAgKi9cbiAgYWRkVXNlclRvUm9sZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBVc2VyXG4gICAgICAgICAqIEBleGFtcGxlIFVzZXIjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1wdHlcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEF0dGVzdCB0byBSb2xlIFByb3BlcnRpZXNcbiAgICogQGRlc2NyaXB0aW9uIEF0dGVzdCB0byBSb2xlIFByb3BlcnRpZXNcbiAgICpcbiAgICogVGhlIHJlc3BvbnNlIGlzIGEgSldUIHdob3NlIGNsYWltcyBhcmUgdGhlIHJlcXVlc3RlZCByb2xlIHByb3BlcnRpZXMuXG4gICAqL1xuICBhdHRlc3RSb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gUm9sZSBwcm9wZXJ0aWVzIHRvIGluY2x1ZGUgaW4gYW4gYXR0ZXN0YXRpb24uIERlZmF1bHRzIHRvIGJhc2ljIHJvbGVcbiAgICAgICAgICogcHJvcGVydGllcywgaW5jbHVkaW5nIGFzc29jaWF0ZWQgdXNlcnMsIGJ1dCBleGNsdWRpbmcgYXNzb2NpYXRlZCBrZXlzLlxuICAgICAgICAgKi9cbiAgICAgICAgdmVyYm9zaXR5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSb2xlQXR0ZXN0YXRpb25WZXJib3NpdHlcIl07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gQXNzb2NpYXRlZCBrZXlzIGZpbHRlciwgaS5lLiwgd2hlbiBzcGVjaWZpZWQsIG91dCBhbGwgb3RoZXIgYXNzb2NpYXRlZFxuICAgICAgICAgKiBrZXlzIGFyZSBmaWx0ZXJlZCBvdXQuIERlZmF1bHRzIHRvIGluY2x1ZGluZyBhbGwgYXNzb2NpYXRlZCBrZXlzLlxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2ZpbHRlcj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl0gfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlJvbGVJbmZvSnd0XCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgUm9sZSBLZXlzXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IFJvbGUgS2V5c1xuICAgKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGFsbCBrZXlzIGluIGEgcm9sZS5cbiAgICovXG4gIGxpc3RSb2xlS2V5czoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBhZ2luYXRlZExpc3RSb2xlS2V5c1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBhIEtleSBpbiBSb2xlXG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgYSBLZXkgaW4gUm9sZVxuICAgKlxuICAgKiBSZXR1cm5zIHRoZSBrZXktaW4tcm9sZSBpbmZvcm1hdGlvbiBmb3IgYSBnaXZlbiBrZXkgYW5kIHJvbGUuIElmIGBkZXRhaWxzYCBpcyBzZXQgdG8gYHRydWVgLFxuICAgKiB0aGlzIGVuZHBvaW50IHJldHVybnMgZGV0YWlsZWQga2V5IGluZm9ybWF0aW9uLlxuICAgKi9cbiAgZ2V0Um9sZUtleToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdG8gaW5jbHVkZSBkZXRhaWxlZCBrZXkgaW5mb3JtYXRpb25cbiAgICAgICAgICogQGV4YW1wbGUgdHJ1ZVxuICAgICAgICAgKi9cbiAgICAgICAgZGV0YWlscz86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBLZXlcbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJLZXlJblJvbGVJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJlbW92ZSBLZXlcbiAgICogQGRlc2NyaXB0aW9uIFJlbW92ZSBLZXlcbiAgICpcbiAgICogUmVtb3ZlcyBhIGdpdmVuIGtleSBmcm9tIGEgcm9sZS5cbiAgICpcbiAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvcmcgb3duZXJzIGNhbiByZW1vdmUga2V5cyBmcm9tIGEgcm9sZS5cbiAgICogQWRkaXRpb25hbGx5LCBib3RoIHRoZSByb2xlJ3MgYW5kIHRoZSBrZXkncyBlZGl0IHBvbGljeSBtdXN0IHBlcm1pdCB0aGUgdXBkYXRlLlxuICAgKi9cbiAgcmVtb3ZlS2V5RnJvbVJvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIGRlc2lyZWQgS2V5XG4gICAgICAgICAqIEBleGFtcGxlIEtleSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVtcHR5XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgVG9rZW5cbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBUb2tlblxuICAgKlxuICAgKiBDcmVhdGVzIGEgbmV3IGFjY2VzcyB0b2tlbiBmb3IgYSBnaXZlbiByb2xlICh0byBiZSB1c2VkIGFzIFwiQVBJIEtleVwiIGZvciBhbGwgc2lnbmluZyBhY3Rpb25zKS5cbiAgICogVGhlIGByZXN0cmljdGVkX2FjdGlvbnNgIGZpZWxkIG9uIHRoZSBbUm9sZV0gZGV0ZXJtaW5lcyB0aGUgbWVtYmVyc2hpcCByb2xlIHRoYXQgaXMgcmVxdWlyZWQgdG9cbiAgICogY3JlYXRlIHRva2Vucy5cbiAgICovXG4gIGNyZWF0ZVJvbGVUb2tlbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDcmVhdGVUb2tlblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJOZXdTZXNzaW9uUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBIaXN0b3JpY2FsIFRyYW5zYWN0aW9uc1xuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBIaXN0b3JpY2FsIFRyYW5zYWN0aW9uc1xuICAgKlxuICAgKiBSZXR1cm5zIGEgc29ydGVkLCBwYWdpbmF0ZWQgbGlzdCBvZiB0cmFuc2FjdGlvbnMgc2lnbmVkIGJ5IHRoZSBnaXZlbiByb2xlLFxuICAgKiBvcmRlcmVkIGZyb20gbW9zdCByZWNlbnQgZmlyc3QuXG4gICAqL1xuICBsaXN0SGlzdG9yaWNhbFJvbGVUeDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBhZ2luYXRlZExpc3RIaXN0b3JpY2FsVHhSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IFJvbGUgVXNlcnMuXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IFJvbGUgVXNlcnMuXG4gICAqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgYWxsIHVzZXJzIHdobyBoYXZlIGFjY2VzcyB0byBhIHJvbGUuXG4gICAqL1xuICBsaXN0Um9sZVVzZXJzOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgICAqIHRoZSBleGFjdCB2YWx1ZSBwcmV2aW91c2x5IHJldHVybmVkIGFzICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHNhbWUgZW5kcG9pbnQuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkTGlzdFJvbGVVc2Vyc1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJlbW92ZSBVc2VyXG4gICAqIEBkZXNjcmlwdGlvbiBSZW1vdmUgVXNlclxuICAgKlxuICAgKiBSZW1vdmVzIGFuIGV4aXN0aW5nIHVzZXIgZnJvbSBhbiBleGlzdGluZyByb2xlLlxuICAgKlxuICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG9yZyBvd25lcnMgY2FuIHJlbW92ZSB1c2VycyBmcm9tIGEgcm9sZS5cbiAgICogQWRkaXRpb25hbGx5LCB0aGUgcm9sZSdzIGVkaXQgcG9saWN5IChpZiBzZXQpIG11c3QgcGVybWl0IHRoZSB1cGRhdGUuXG4gICAqL1xuICByZW1vdmVVc2VyRnJvbVJvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIGRlc2lyZWQgVXNlclxuICAgICAgICAgKiBAZXhhbXBsZSBVc2VyIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVtcHR5XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBIaWdoLWxldmVsIFJQQyBlbmRwb2ludC5cbiAgICogQGRlc2NyaXB0aW9uIEhpZ2gtbGV2ZWwgUlBDIGVuZHBvaW50LlxuICAgKi9cbiAgcnBjQXBpOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkpzb25ScGNSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiSnNvblJwY1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3Qgc2Vzc2lvbnNcbiAgICogQGRlc2NyaXB0aW9uIExpc3Qgc2Vzc2lvbnNcbiAgICpcbiAgICogSWYgbm8gcXVlcnkgcGFyYW1ldGVycyBhcmUgcHJvdmlkZWQsIGFsbCBhY3RpdmUgc2Vzc2lvbnMgZm9yIHRoZSBjdXJyZW50IHVzZXIgYXJlIHJldHVybmVkLlxuICAgKlxuICAgKiBJZiBhIGByb2xlYCBxdWVyeSBwYXJhbWV0ZXIgaXMgcHJvdmlkZWQsIGFsbCBhY3RpdmUgc2Vzc2lvbnMgZm9yIHRoZSBzZWxlY3RlZCByb2xlIGFyZSByZXR1cm5lZFxuICAgKiAoYXNzZXJ0aW5nIGZpcnN0IHRoYXQgdGhlIGN1cnJlbnQgdXNlciBoYXMgcGVybWlzc2lvbnMgdG8gcmVhZCBzZXNzaW9ucyBmb3IgdGhhdCByb2xlKS5cbiAgICpcbiAgICogSWYgYSBgcm9sZV9jcmVhdGVkX2J5YCBxdWVyeSBwYXJhbWV0ZXIgaXMgcHJvdmlkZWQsIGFsbCBhY3RpdmUgKipyb2xlKiogc2Vzc2lvbnMgY3JlYXRlZCBieSB0aGF0XG4gICAqIHVzZXIgYXJlIHJldHVybmVkIChnYXRlZCBieSB0aGUgc2FtZSBwZXJtaXNzaW9ucyBhcyBsaXN0aW5nIHRoYXQgdXNlcidzIG93biBzZXNzaW9uczogdGhlXG4gICAqIGN1cnJlbnQgdXNlciBtdXN0IGJlIHRoYXQgdXNlciBvciBhbiBvcmcgb3duZXIpLiBXaGVuIGNvbWJpbmVkIHdpdGggYHJvbGVgLCB0aGUgcmVzdWx0IGlzXG4gICAqIGZ1cnRoZXIgcmVzdHJpY3RlZCB0byB0aGUgc2Vzc2lvbnMgY3JlYXRlZCBieSB0aGF0IHVzZXIgZm9yIHRoZSBnaXZlbiByb2xlOyB0aGUgcGVybWlzc2lvbiBtb2RlbFxuICAgKiBpcyB1bmNoYW5nZWQuIFRoZSBgdXNlcmAgc2VsZWN0b3IgY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggYHJvbGVgIG9yIGByb2xlX2NyZWF0ZWRfYnlgLlxuICAgKi9cbiAgbGlzdFNlc3Npb25zOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgICAqIHRoZSBleGFjdCB2YWx1ZSBwcmV2aW91c2x5IHJldHVybmVkIGFzICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHNhbWUgZW5kcG9pbnQuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgcHJvdmlkZWQsIHRoZSBuYW1lIG9yIElEIG9mIGEgcm9sZSB0byBvcGVyYXRlIG9uLlxuICAgICAgICAgKiBDYW5ub3QgYmUgc3BlY2lmaWVkIHRvZ2V0aGVyIHdpdGggYHVzZXJgLCBidXQgbWF5IGJlIGNvbWJpbmVkIHdpdGggYHJvbGVfY3JlYXRlZF9ieWBcbiAgICAgICAgICogdG8gb3BlcmF0ZSBvbiB0aGUgcm9sZSBzZXNzaW9ucyBjcmVhdGVkIGJ5IGEgZ2l2ZW4gdXNlciBmb3IgdGhpcyBzcGVjaWZpYyByb2xlLlxuICAgICAgICAgKiBAZXhhbXBsZSBteS1yb2xlXG4gICAgICAgICAqL1xuICAgICAgICByb2xlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBwcm92aWRlZCwgdGhlIElEIG9mIGEgdXNlciB0byBvcGVyYXRlIG9uLlxuICAgICAgICAgKiBDYW5ub3QgYmUgc3BlY2lmaWVkIHRvZ2V0aGVyIHdpdGggb3RoZXIgc2VsZWN0b3JzLlxuICAgICAgICAgKiBAZXhhbXBsZSBVc2VyIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgdXNlcj86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgcHJvdmlkZWQsIHRoZSBJRCBvZiB0aGUgdXNlciB3aG9zZSBjcmVhdGVkIHJvbGUgc2Vzc2lvbnMgdG8gb3BlcmF0ZSBvbi5cbiAgICAgICAgICogU2VsZWN0cyBhbGwgKnJvbGUqIHNlc3Npb25zIGNyZWF0ZWQgYnkgdGhhdCB1c2VyICh1c2VyIHNlc3Npb25zIGFyZSBub3QgYWZmZWN0ZWQpLlxuICAgICAgICAgKiBDYW5ub3QgYmUgc3BlY2lmaWVkIHRvZ2V0aGVyIHdpdGggYHVzZXJgLiBXaGVuIGNvbWJpbmVkIHdpdGggYHJvbGVgLCB0aGUgc2VsZWN0aW9uIGlzXG4gICAgICAgICAqIGZ1cnRoZXIgcmVzdHJpY3RlZCB0byB0aGUgc2Vzc2lvbnMgY3JlYXRlZCBieSB0aGF0IHVzZXIgZm9yIHRoZSBnaXZlbiByb2xlLlxuICAgICAgICAgKiBAZXhhbXBsZSBVc2VyIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9jcmVhdGVkX2J5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRTZXNzaW9uc1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBuZXcgdXNlciBzZXNzaW9uIChtYW5hZ2VtZW50IGFuZC9vciBzaWduaW5nKVxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIG5ldyB1c2VyIHNlc3Npb24gKG1hbmFnZW1lbnQgYW5kL29yIHNpZ25pbmcpXG4gICAqXG4gICAqIENyZWF0ZXMgYSBuZXcgdXNlciBzZXNzaW9uLCBzaWxlbnRseSB0cnVuY2F0aW5nIHJlcXVlc3RlZCBzZXNzaW9uIGFuZCBhdXRoIGxpZmV0aW1lcyB0byBiZSBhdFxuICAgKiBtb3N0IHJlcXVlc3RvcidzIHNlc3Npb24gYW5kIGF1dGggbGlmZXRpbWUsIHJlc3BlY3RpdmVseS4gVG8gZXh0ZW5kIHRoZSByZXF1ZXN0ZWQgbGlmZXRpbWVzIHBhc3RcbiAgICogdGhlIHJlcXVlc3RvcidzLCBzZXQgdGhlIGBleHRlbmRfbGlmZXRpbWVzYCBmbGFnIGluIHRoZSByZXF1ZXN0IGJvZHkgKGluIHdoaWNoIGNhc2UgTUZBIHdpbGxcbiAgICogYmUgcmVxdWlyZWQpLlxuICAgKi9cbiAgY3JlYXRlU2Vzc2lvbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDcmVhdGVTZXNzaW9uUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk5ld1Nlc3Npb25SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZXZva2UgQUxMIGV4aXN0aW5nIHVzZXIgb3Igcm9sZSBzZXNzaW9uKHMpXG4gICAqIEBkZXNjcmlwdGlvbiBSZXZva2UgQUxMIGV4aXN0aW5nIHVzZXIgb3Igcm9sZSBzZXNzaW9uKHMpXG4gICAqXG4gICAqIEltbWVkaWF0ZWx5IHJldm9rZXMgZXhpc3Rpbmcgc2Vzc2lvbnMsIHByZXZlbnRpbmcgdGhlbSBmcm9tIGJlaW5nIHVzZWQgb3IgcmVmcmVzaGVkLlxuICAgKlxuICAgKiBJZiBubyBxdWVyeSBwYXJhbXMgYXJlIHByb3ZpZGVkLCAqKkFMTCoqIHNlc3Npb25zIGZvciB0aGUgKipDVVJSRU5UIFVTRVIqKiBhcmUgcmV2b2tlZFxuICAgKiAodG8gcmV2b2tlIGp1c3QgdGhlIGN1cnJlbnQgdXNlciBzZXNzaW9uLCB1c2UgYERFTEVURSAvdjAvb3JnLzxvcmdfaWQ+L3Nlc3Npb24vc2VsZmApXG4gICAqXG4gICAqIElmIGEgYHJvbGVgIHF1ZXJ5IHBhcmFtZXRlciBpcyBwcm92aWRlZCwgKipBTEwqKiBzZXNzaW9uIGZvciAqKlRIQVQgUk9MRSoqIGFyZSByZXZva2VkXG4gICAqIChpZiB0aGUgY3VycmVudCB1c2VyIGhhcyBwZXJtaXNzaW9ucyB0byByZXZva2Ugc2Vzc2lvbnMgZm9yIHRoZSByb2xlKS5cbiAgICpcbiAgICogSWYgYSBgcm9sZV9jcmVhdGVkX2J5YCBxdWVyeSBwYXJhbWV0ZXIgaXMgcHJvdmlkZWQsICoqUk9MRSoqIHNlc3Npb25zIGNyZWF0ZWQgYnkgKipUSEFUIFVTRVIqKlxuICAgKiBhcmUgcmV2b2tlZCAoZ2F0ZWQgYnkgdGhlIHNhbWUgcGVybWlzc2lvbnMgYXMgcmV2b2tpbmcgdGhhdCB1c2VyJ3Mgb3duIHNlc3Npb25zOiB0aGUgY3VycmVudFxuICAgKiB1c2VyIG11c3QgYmUgdGhhdCB1c2VyIG9yIGFuIG9yZyBvd25lcikuIFVzZXIgc2Vzc2lvbnMgYXJlIG5vdCBhZmZlY3RlZC4gVW5sZXNzIHRoZSBjdXJyZW50XG4gICAqIHVzZXIgaXMgYW4gb3JnIG93bmVyLCBvbmx5IHNlc3Npb25zIGZvciByb2xlcyB0aGUgY3VycmVudCB1c2VyIGlzICoqc3RpbGwgYSBtZW1iZXIgb2YqKiBhcmVcbiAgICogcmV2b2tlZCAoc28gYSB1c2VyIGNhbm5vdCByZXZva2Ugc2Vzc2lvbnMgZm9yIGEgcm9sZSB0aGV5IGhhdmUgc2luY2UgYmVlbiByZW1vdmVkIGZyb20pOyBvcmdcbiAgICogb3duZXJzIHJldm9rZSBhY3Jvc3MgYWxsIHJvbGVzLlxuICAgKlxuICAgKiBJZiAqKmJvdGgqKiBhIGByb2xlYCBhbmQgYSBgcm9sZV9jcmVhdGVkX2J5YCBxdWVyeSBwYXJhbWV0ZXIgYXJlIHByb3ZpZGVkLCB0aGUgc2VsZWN0aW9uIGFib3ZlXG4gICAqIGlzIG5hcnJvd2VkIHRvIG9ubHkgdGhlIHNlc3Npb25zIGNyZWF0ZWQgYnkgKipUSEFUIFVTRVIqKiBmb3IgKipUSEFUIFJPTEUqKi4gVGhlIHBlcm1pc3Npb25cbiAgICogbW9kZWwgaXMgdW5jaGFuZ2VkIGZyb20gdGhlIGByb2xlX2NyZWF0ZWRfYnlgLW9ubHkgY2FzZSAodGhlIGN1cnJlbnQgdXNlciBtdXN0IGJlIHRoYXQgdXNlciBvclxuICAgKiBhbiBvcmcgb3duZXIsIGFuZCBub24tb3duZXJzIGFyZSBzdGlsbCBsaW1pdGVkIHRvIHJvbGVzIHRoZXkgYXJlIGEgbWVtYmVyIG9mKTsgYHJvbGVgIGlzIHB1cmVseVxuICAgKiBhbiBhZGRpdGlvbmFsIGZpbHRlci5cbiAgICpcbiAgICogVGhlIGB1c2VyYCBzZWxlY3RvciBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBgcm9sZWAgb3IgYHJvbGVfY3JlYXRlZF9ieWAuXG4gICAqL1xuICByZXZva2VTZXNzaW9uczoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHByb3ZpZGVkLCB0aGUgbmFtZSBvciBJRCBvZiBhIHJvbGUgdG8gb3BlcmF0ZSBvbi5cbiAgICAgICAgICogQ2Fubm90IGJlIHNwZWNpZmllZCB0b2dldGhlciB3aXRoIGB1c2VyYCwgYnV0IG1heSBiZSBjb21iaW5lZCB3aXRoIGByb2xlX2NyZWF0ZWRfYnlgXG4gICAgICAgICAqIHRvIG9wZXJhdGUgb24gdGhlIHJvbGUgc2Vzc2lvbnMgY3JlYXRlZCBieSBhIGdpdmVuIHVzZXIgZm9yIHRoaXMgc3BlY2lmaWMgcm9sZS5cbiAgICAgICAgICogQGV4YW1wbGUgbXktcm9sZVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgcHJvdmlkZWQsIHRoZSBJRCBvZiBhIHVzZXIgdG8gb3BlcmF0ZSBvbi5cbiAgICAgICAgICogQ2Fubm90IGJlIHNwZWNpZmllZCB0b2dldGhlciB3aXRoIG90aGVyIHNlbGVjdG9ycy5cbiAgICAgICAgICogQGV4YW1wbGUgVXNlciMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHVzZXI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHByb3ZpZGVkLCB0aGUgSUQgb2YgdGhlIHVzZXIgd2hvc2UgY3JlYXRlZCByb2xlIHNlc3Npb25zIHRvIG9wZXJhdGUgb24uXG4gICAgICAgICAqIFNlbGVjdHMgYWxsICpyb2xlKiBzZXNzaW9ucyBjcmVhdGVkIGJ5IHRoYXQgdXNlciAodXNlciBzZXNzaW9ucyBhcmUgbm90IGFmZmVjdGVkKS5cbiAgICAgICAgICogQ2Fubm90IGJlIHNwZWNpZmllZCB0b2dldGhlciB3aXRoIGB1c2VyYC4gV2hlbiBjb21iaW5lZCB3aXRoIGByb2xlYCwgdGhlIHNlbGVjdGlvbiBpc1xuICAgICAgICAgKiBmdXJ0aGVyIHJlc3RyaWN0ZWQgdG8gdGhlIHNlc3Npb25zIGNyZWF0ZWQgYnkgdGhhdCB1c2VyIGZvciB0aGUgZ2l2ZW4gcm9sZS5cbiAgICAgICAgICogQGV4YW1wbGUgVXNlciMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfY3JlYXRlZF9ieT86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU2Vzc2lvbnNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZXZva2UgY3VycmVudCBzZXNzaW9uXG4gICAqIEBkZXNjcmlwdGlvbiBSZXZva2UgY3VycmVudCBzZXNzaW9uXG4gICAqXG4gICAqIEltbWVkaWF0ZWx5IHJldm9rZXMgdGhlIGN1cnJlbnQgc2Vzc2lvbiwgcHJldmVudGluZyBpdCBmcm9tIGJlaW5nIHVzZWQgb3IgcmVmcmVzaGVkXG4gICAqL1xuICByZXZva2VDdXJyZW50U2Vzc2lvbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgc2Vzc2lvbiBpbmZvcm1hdGlvblxuICAgKiBAZGVzY3JpcHRpb24gR2V0IHNlc3Npb24gaW5mb3JtYXRpb25cbiAgICovXG4gIGdldFNlc3Npb246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBzZXNzaW9uIHRvIGdldCBvciAnc2VsZicgZm9yIGN1cnJlbnQgc2Vzc2lvblxuICAgICAgICAgKiBAZXhhbXBsZSAxYzBkODUzZC1jMTVmLTQyZGMtYTgyYy05ODc0ZTU4OWJjNzVcbiAgICAgICAgICovXG4gICAgICAgIHNlc3Npb25faWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNlc3Npb25JbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJldm9rZSBhIHNlc3Npb25cbiAgICogQGRlc2NyaXB0aW9uIFJldm9rZSBhIHNlc3Npb25cbiAgICpcbiAgICogSW1tZWRpYXRlbHkgcmV2b2tlcyBhbiBleGlzdGluZyBzZXNzaW9uLCBwcmV2ZW50aW5nIGl0IGZyb20gYmVpbmcgdXNlZCBvciByZWZyZXNoZWRcbiAgICovXG4gIHJldm9rZVNlc3Npb246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBzZXNzaW9uIHRvIHJldm9rZVxuICAgICAgICAgKiBAZXhhbXBsZSA3N2FhZDIxMDBjMzYxZjQ5NzYzNWRkMDA1YzRkMTU3ODFlMmU1ZGY0YjlmNDVkOGU3NGYzNzQyNWNiYzMwYjllXG4gICAgICAgICAqL1xuICAgICAgICBzZXNzaW9uX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTZXNzaW9uSW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIFNvbGFuYSBNZXNzYWdlXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIFNvbGFuYSBNZXNzYWdlXG4gICAqXG4gICAqIFNpZ25zIGEgU29sYW5hIG1lc3NhZ2Ugd2l0aCBhIGdpdmVuIGtleS5cbiAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAqL1xuICBzb2xhbmFTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBiYXNlNTgtZW5jb2RlZCBwdWJsaWMga2V5XG4gICAgICAgICAqIEBleGFtcGxlIDg2WlJQc3pCcDVFb1BqN3dSM2JIbjd3bkFaNWlZZnBhc1JjN0RLRlBUVWFaXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTb2xhbmFTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBhIHNlcmlhbGl6ZWQgU1VJIHRyYW5zYWN0aW9uLlxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBhIHNlcmlhbGl6ZWQgU1VJIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICovXG4gIHN1aVNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgU1VJIGtleSBhZGRyZXNzXG4gICAgICAgICAqIEBleGFtcGxlIDB4ZGQ2OGQzNWE3NzhkYjFlMzEyM2M5NTBlNWRiNTM2MTMzM2Y1NzczM2E3NzQ4NmE3MDRkZDhjOTk0ZDk2NzYxZFxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3VpU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gYSB0ZW5kZXJtaW50IG1lc3NhZ2UuXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIGEgdGVuZGVybWludCBtZXNzYWdlLlxuICAgKlxuICAgKiBTaWducyB0aGUgZ2l2ZW4gYmFzZS02NCBlbmNvZGVkIHZvdGUgb3IgcHJvcG9zYWwgd2l0aCB0aGUgZ2l2ZW4gdGVuZGVybWludCBrZXkuXG4gICAqL1xuICB0ZW5kZXJtaW50U2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCB2YWxpZGF0b3IgcHVibGljIGtleSB3aXRoIDB4IHByZWZpeFxuICAgICAgICAgKiBAZXhhbXBsZSAweDdkOGQzNDRlNmU1MzE1MTY5MmZhNzhhMDk4NjMwNzk5OTQ2YWQ0ZDZhMDI3YWU2YmNkN2E3OGRjNzgyODE2NTBcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRlbmRlcm1pbnRTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgVG9rZW4tQWNjZXNzaWJsZSBLZXlzXG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgVG9rZW4tQWNjZXNzaWJsZSBLZXlzXG4gICAqXG4gICAqIFJldHJpZXZlcyB0aGUga2V5cyB0aGF0IGEgdXNlciBvciByb2xlIHNlc3Npb24gY2FuIGFjY2Vzcy5cbiAgICovXG4gIGxpc3RUb2tlbktleXM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJLZXlJbmZvc1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBVc2VyIEluZm9cbiAgICogQGRlc2NyaXB0aW9uIFVzZXIgSW5mb1xuICAgKlxuICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgdXNlci5cbiAgICovXG4gIGFib3V0TWU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVc2VySW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbml0aWF0ZSBSZXNldCBWZXJpZmllZCBFbWFpbCBGbG93XG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSBSZXNldCBWZXJpZmllZCBFbWFpbCBGbG93XG4gICAqL1xuICB1c2VyUmVzZXRFbWFpbEluaXQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1haWxSZXNldFJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbWFpbE90cFJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEZpbmFsaXplIGEgUmVzZXQgVmVyaWZpZWQgRW1haWwgRmxvd1xuICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgYSBSZXNldCBWZXJpZmllZCBFbWFpbCBGbG93XG4gICAqL1xuICB1c2VyUmVzZXRFbWFpbENvbXBsZXRlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVtYWlsT3RwQW5zd2VyXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3Qgb3V0c3RhbmRpbmcgdXNlci1leHBvcnQgcmVxdWVzdHNcbiAgICogQGRlc2NyaXB0aW9uIExpc3Qgb3V0c3RhbmRpbmcgdXNlci1leHBvcnQgcmVxdWVzdHNcbiAgICovXG4gIHVzZXJFeHBvcnRMaXN0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgICAqIHRoZSBleGFjdCB2YWx1ZSBwcmV2aW91c2x5IHJldHVybmVkIGFzICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHNhbWUgZW5kcG9pbnQuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgcHJvdmlkZWQsIHRoZSB1c2VyLWlkIHdob3NlIHVzZXItZXhwb3J0IHJlcXVlc3RzIHRvIGxpc3QuIERlZmF1bHRzIHRvIHRoZVxuICAgICAgICAgKiBjdXJyZW50IHVzZXIuICBPbmx5IHRoZSBvcmcgb3duZXIgbWF5IGxpc3QgcmVxdWVzdHMgZm9yIGFub3RoZXIgdXNlci5cbiAgICAgICAgICogQGV4YW1wbGUgVXNlciM4MDZjOTU0NC1mMWZhLTRiYWQtOGQ0ZC0xMDk3YTE4NDQ3MjZcbiAgICAgICAgICovXG4gICAgICAgIHVzZXJfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHByb3ZpZGVkLCB0aGUga2V5LWlkIGZvciB3aGljaCB0byBsaXN0IGFuIGV4aXN0aW5nIHVzZXItZXhwb3J0IHJlcXVlc3QuXG4gICAgICAgICAqIEBleGFtcGxlIEtleSMweDNjNGQ5MENjNUFmMTY0NEMzQTNCMDEzQmFhNTQ4ODk5NzM4MUQ3QzhcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZD86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkVXNlckV4cG9ydExpc3RSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbml0aWF0ZSBhIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIGEgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgKlxuICAgKiBUaGlzIHN0YXJ0cyBhIGRlbGF5ICh3aG9zZSBsZW5ndGggaXMgZGV0ZXJtaW5lZCBieSBPcmctd2lkZSBzZXR0aW5ncylcbiAgICogYmVmb3JlIGV4cG9ydCBjYW4gYmUgY29tcGxldGVkLCBhbmQgcmV0dXJucyBhIHRpY2tldCB0aGF0IGNhbiBiZSB1c2VkXG4gICAqIHRvIGNvbXBsZXRlIHRoZSBleHBvcnQgb25jZSB0aGUgdGltZXIgaGFzIGV4cGlyZWQuXG4gICAqXG4gICAqIE9ubHkgb25lIHVzZXItZXhwb3J0IHJlcXVlc3QgY2FuIGJlIGFjdGl2ZSBmb3IgYSBnaXZlbiBrZXkuIElmIHRoZXJlXG4gICAqIGlzIGFscmVhZHkgYW4gYWN0aXZlIGV4cG9ydCwgdGhpcyBlbmRwb2ludCB3aWxsIHJldHVybiBhbiBlcnJvci4gVG9cbiAgICogY3JlYXRlIGEgbmV3IHJlcXVlc3QsIGZpcnN0IGRlbGV0ZSB0aGUgZXhpc3Rpbmcgb25lLlxuICAgKi9cbiAgdXNlckV4cG9ydEluaXQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckV4cG9ydEluaXRSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVXNlckV4cG9ydEluaXRSZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVsZXRlIGFuIGV4aXN0aW5nIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBhbiBleGlzdGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0XG4gICAqL1xuICB1c2VyRXhwb3J0RGVsZXRlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUga2V5LWlkIHdob3NlIGV4cG9ydCByZXF1ZXN0IHNob3VsZCBiZSBkZWxldGVkXG4gICAgICAgICAqIEBleGFtcGxlIEtleSMweDNjNGQ5MENjNUFmMTY0NEMzQTNCMDEzQmFhNTQ4ODk5NzM4MUQ3QzhcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB1c2VyLWlkIHdobyBvd25zIHRoaXMgcmVxdWVzdC4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgdXNlci5cbiAgICAgICAgICogT25seSB0aGUgb3JnIG93bmVyIG1heSBkZWxldGUgdXNlci1leHBvcnQgcmVxdWVzdHMgZm9yIGFub3RoZXIgdXNlci5cbiAgICAgICAgICogQGV4YW1wbGUgVXNlciM4MDZjOTU0NC1mMWZhLTRiYWQtOGQ0ZC0xMDk3YTE4NDQ3MjZcbiAgICAgICAgICovXG4gICAgICAgIHVzZXJfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDb21wbGV0ZSBhIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIENvbXBsZXRlIGEgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgKlxuICAgKiBUaGlzIGVuZHBvaW50IGNhbiBiZSBjYWxsZWQgb25seSBhZnRlciBpbml0aWF0aW5nIGEgdXNlci1leHBvcnQgcmVxdWVzdCB2aWFcbiAgICogdGhlIGB1c2VyX2V4cG9ydF9pbml0YCBBUEksIGFuZCBvbmx5IHdpdGhpbiB0aGUgc3Vic2VxdWVudCBleHBvcnQgd2luZG93XG4gICAqIChpLmUuLCBhZnRlciB0aGUgZXhwb3J0IGRlbGF5IGhhcyBwYXNzZWQgYW5kIGJlZm9yZSB0aGUgcmVxdWVzdCBoYXMgZXhwaXJlZCkuXG4gICAqXG4gICAqIFRvIGNoZWNrIG9uIHRoZSBzdGF0dXMgb2YgYW4gZXhwb3J0IHJlcXVlc3QsIHNlZSB0aGUgYHVzZXJfZXhwb3J0X2xpc3RgIEFQSS5cbiAgICovXG4gIHVzZXJFeHBvcnRDb21wbGV0ZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VyRXhwb3J0Q29tcGxldGVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVXNlckV4cG9ydENvbXBsZXRlUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYXRlIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5LlxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXkuXG4gICAqXG4gICAqIElmIGEgZGlzY292ZXJhYmxlIGtleSBpcyByZXF1ZXN0ZWQsIHVzZXIgdmVyaWZpY2F0aW9uIChQSU4pIGlzIHJlcXVpcmVkLlxuICAgKlxuICAgKiBHZW5lcmF0ZXMgYSBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIG93bmVyc2hpcCBvZiBhIGtleS5cbiAgICovXG4gIHVzZXJSZWdpc3RlckZpZG9Jbml0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZpZG9DcmVhdGVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRmlkb0NyZWF0ZUNoYWxsZW5nZVJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICpcbiAgICogQWNjZXB0cyB0aGUgcmVzcG9uc2UgdG8gdGhlIGNoYWxsZW5nZSBnZW5lcmF0ZWQgYnkgdGhlIFBPU1QgdG8gdGhpcyBlbmRwb2ludC5cbiAgICovXG4gIHVzZXJSZWdpc3RlckZpZG9Db21wbGV0ZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJGaWRvQ3JlYXRlQ2hhbGxlbmdlQW5zd2VyXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRmlkb1JlZ2lzdGVyUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVsZXRlIEZJRE8ga2V5XG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgRklETyBrZXlcbiAgICpcbiAgICogRGVsZXRlcyBhIEZJRE8ga2V5IGZyb20gdGhlIHVzZXIncyBhY2NvdW50IChpZiB0aGUga2V5IGlzIG5vdCB0aGUgc29sZSBNRkEgZmFjdG9yKS4gTUZBIGlzIGFsd2F5cyByZXF1aXJlZC5cbiAgICovXG4gIHVzZXJEZWxldGVGaWRvOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgRmlkb0tleVxuICAgICAgICAgKiBAZXhhbXBsZSBGaWRvS2V5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgZmlkb19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVtcHR5XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbml0aWFsaXplIFRPVFAgUmVzZXRcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemUgVE9UUCBSZXNldFxuICAgKlxuICAgKiBDcmVhdGVzIGEgbmV3IFRPVFAgY2hhbGxlbmdlIHRoYXQgbXVzdCBiZSBhbnN3ZXJlZCB0byBwcm92ZSB0aGF0IHRoZSBuZXcgVE9UUFxuICAgKiB3YXMgc3VjY2Vzc2Z1bGx5IGltcG9ydGVkIGludG8gYW4gYXV0aGVudGljYXRvciBhcHAuXG4gICAqXG4gICAqIFRoaXMgb3BlcmF0aW9uIGlzIGFsbG93ZWQgaWYgRUlUSEVSXG4gICAqIC0gdGhlIHVzZXIgYWNjb3VudCBpcyBub3QgeWV0IGluaXRpYWxpemVkIGFuZCBubyBUT1RQIGlzIGFscmVhZHkgc2V0LCBPUlxuICAgKiAtIHRoZSB1c2VyIGhhcyBub3QgY29uZmlndXJlZCBhbnkgYXV0aCBmYWN0b3JzO1xuICAgKiBvdGhlcndpc2UsIE1GQSBpcyByZXF1aXJlZC5cbiAgICovXG4gIHVzZXJSZXNldFRvdHBJbml0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5Pzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb3RwUmVzZXRSZXF1ZXN0XCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlRvdHBJbmZvXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBEZWxldGUgVE9UUFxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIFRPVFBcbiAgICpcbiAgICogRGVsZXRlcyBUT1RQIGZyb20gdGhlIHVzZXIncyBhY2NvdW50IChpZiBUT1RQIGlzIG5vdCB0aGUgc29sZSBNRkEgZmFjdG9yKS4gTUZBIGlzIGFsd2F5cyByZXF1aXJlZC5cbiAgICovXG4gIHVzZXJEZWxldGVUb3RwOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVtcHR5XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgcmVzZXR0aW5nIFRPVFBcbiAgICpcbiAgICogQ2hlY2tzIGlmIHRoZSByZXNwb25zZSBjb250YWlucyB0aGUgY29ycmVjdCBUT1RQIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGVcbiAgICogY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCBtZXRob2Qgb2YgdGhpcyBlbmRwb2ludC5cbiAgICovXG4gIHVzZXJSZXNldFRvdHBDb21wbGV0ZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb3RwQ2hhbGxlbmdlQW5zd2VyXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVG90cFJlZ2lzdGVyUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVmVyaWZ5IFRPVFBcbiAgICogQGRlc2NyaXB0aW9uIFZlcmlmeSBUT1RQXG4gICAqXG4gICAqIENoZWNrcyBpZiBhIGdpdmVuIGNvZGUgbWF0Y2hlcyB0aGUgY3VycmVudCBUT1RQIGNvZGUgZm9yIHRoZSBjdXJyZW50IHVzZXIuXG4gICAqIEVycm9ycyB3aXRoIDQwMyBpZiB0aGUgY3VycmVudCB1c2VyIGhhcyBub3Qgc2V0IHVwIFRPVFAgb3IgdGhlIGNvZGUgZmFpbHMgdmVyaWZpY2F0aW9uLlxuICAgKi9cbiAgdXNlclZlcmlmeVRvdHA6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG90cEFwcHJvdmVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgdXNlcnMgaW4gb3JnYW5pemF0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IHVzZXJzIGluIG9yZ2FuaXphdGlvblxuICAgKlxuICAgKiBJZiBhIHF1ZXJ5IGlzIGRlZmluZWQsIHRoZSByZXN1bHQgd2lsbCBjb250YWluIG9ubHkgdGhlIHVzZXJzIHdob3NlIG5hbWUgb3JcbiAgICogZW1haWwgY29udGFpbiB0aGUgcXVlcnkgc3RyaW5nLiBOT1RFIHRoYXQgaWYgcGFnaW5hdGlvbiBpcyB1c2VkIGFuZCBhIHBhZ2VcbiAgICogbGltaXQgaXMgc2V0LCB0aGUgcmV0dXJuZWQgcmVzdWx0IHNldCBtYXkgY29udGFpbiBGRVdFUiBlbGVtZW50cyB0aGFuIHRoZVxuICAgKiByZXF1ZXN0ZWQgcGFnZSBsaW1pdC5cbiAgICovXG4gIGxpc3RVc2Vyc0luT3JnOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgICAqIHRoZSBleGFjdCB2YWx1ZSBwcmV2aW91c2x5IHJldHVybmVkIGFzICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHNhbWUgZW5kcG9pbnQuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBxdWVyeSBzdHJpbmcuIElmIGRlZmluZWQsIGFsbCByZXR1cm5lZCB1c2VycyB3aWxsIGNvbnRhaW4gdGhpcyBzdHJpbmcgaW4gdGhlaXIgbmFtZSBvciBlbWFpbC4gKi9cbiAgICAgICAgcT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gTWVtYmVyc2hpcCByb2xlcy4gSWYgZGVmaW5lZCwgb25seSB1c2VycyB3aXRoIG9uZSBvZiB0aGVzZSByb2xlcyBpbiB0aGUgb3JnIGFyZSByZXR1cm5lZCwgZ3JvdXBlZCBieSByb2xlIGluIGRlc2NlbmRpbmcgcm9sZSBvcmRlciAob3duZXJzIGZpcnN0LCBhbGllbnMgbGFzdCkuICovXG4gICAgICAgIG1lbWJlcnNoaXA/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1lbWJlclJvbGVcIl1bXSB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkR2V0VXNlcnNJbk9yZ1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEFkZCBhIHRoaXJkLXBhcnR5IHVzZXIgdG8gdGhlIG9yZ1xuICAgKiBAZGVzY3JpcHRpb24gQWRkIGEgdGhpcmQtcGFydHkgdXNlciB0byB0aGUgb3JnXG4gICAqL1xuICBjcmVhdGVPaWRjVXNlcjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBZGRUaGlyZFBhcnR5VXNlclJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJBZGRUaGlyZFBhcnR5VXNlclJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCB1c2VyIGJ5IGVtYWlsLlxuICAgKiBAZGVzY3JpcHRpb24gR2V0IHVzZXIgYnkgZW1haWwuXG4gICAqXG4gICAqIFRoZSBzZWFyY2ggaW5jbHVkZXMgYWxsIHVzZXJzIGFuZCB0aGVpciB0aGlyZC1wYXJ0eSBpZGVudGl0aWVzLlxuICAgKi9cbiAgZ2V0VXNlckluT3JnQnlFbWFpbDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZW1haWwgYXNzb2NpYXRlZCB3aXRoIHRoZSB1c2VyLiAqL1xuICAgICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiR2V0VXNlckJ5RW1haWxSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZW1vdmUgYSB0aGlyZC1wYXJ0eSB1c2VyIGZyb20gdGhlIG9yZ1xuICAgKiBAZGVzY3JpcHRpb24gUmVtb3ZlIGEgdGhpcmQtcGFydHkgdXNlciBmcm9tIHRoZSBvcmdcbiAgICovXG4gIGRlbGV0ZU9pZGNVc2VyOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIHJldm9rZV9yb2xlX3Nlc3Npb25zX3RoZXlfY3JlYXRlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPaWRjSWRlbnRpdHlcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IGEgdXNlciBieSB0aGVpciBPSURDIGlkZW50aXR5XG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgYSB1c2VyIGJ5IHRoZWlyIE9JREMgaWRlbnRpdHlcbiAgICpcbiAgICogUmV0cmlldmVzIGEgdXNlciBpbiB0aGUgb3JnYW5pemF0aW9uIGJ5IHRoZWlyIE9JREMgaXNzdWVyIGFuZCBzdWJqZWN0LlxuICAgKi9cbiAgZ2V0VXNlckluT3JnQnlPaWRjOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBPSURDIGlzc3Vlci4gKi9cbiAgICAgICAgaXNzOiBzdHJpbmc7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIE9JREMgc3ViamVjdC4gKi9cbiAgICAgICAgc3ViOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJHZXRVc2VyQnlPaWRjUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW5pdGlhbGl6ZSBNRkEgcmVzZXQgZm9yIHVzZXJcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemUgTUZBIHJlc2V0IGZvciB1c2VyXG4gICAqL1xuICByZXNldE1lbWJlck1mYToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFSZXNldFJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ29tcGxldGUgTUZBIHJlc2V0IGZvciB1c2VyXG4gICAqIEBkZXNjcmlwdGlvbiBDb21wbGV0ZSBNRkEgcmVzZXQgZm9yIHVzZXJcbiAgICovXG4gIGNvbXBsZXRlUmVzZXRNZW1iZXJNZmE6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29tcGxldGVNZmFSZXNldFJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IHVzZXIgYnkgaWRcbiAgICogQGRlc2NyaXB0aW9uIEdldCB1c2VyIGJ5IGlkXG4gICAqXG4gICAqIElmIHRoZSByZXF1ZXN0aW5nIHVzZXIgaXMgYW4gb3duZXIgb2YgdGhlIG9yZywgdGhlIHJlc3BvbnNlIGFkZGl0aW9uYWxseVxuICAgKiBpbmNsdWRlcyB0aGUgdXNlcidzIE9JREMgaWRlbnRpdGllcy5cbiAgICovXG4gIGdldFVzZXJJbk9yZzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBVc2VyXG4gICAgICAgICAqIEBleGFtcGxlIFVzZXIjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVc2VySW5PcmdJbmZvV2l0aElkZW50aXR5XCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJlbW92ZSBhIHVzZXIgZnJvbSB0aGUgb3JnXG4gICAqIEBkZXNjcmlwdGlvbiBSZW1vdmUgYSB1c2VyIGZyb20gdGhlIG9yZ1xuICAgKi9cbiAgZGVsZXRlVXNlcjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICByZXZva2Vfcm9sZV9zZXNzaW9uc190aGV5X2NyZWF0ZWQ/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIGRlc2lyZWQgVXNlclxuICAgICAgICAgKiBAZXhhbXBsZSBVc2VyIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVtcHR5XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFVwZGF0ZSBhIHVzZXIncyBtZW1iZXJzaGlwIGluIHRoZSBvcmdcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBhIHVzZXIncyBtZW1iZXJzaGlwIGluIHRoZSBvcmdcbiAgICpcbiAgICogRW5hYmxlL2Rpc2FibGUgYW5vdGhlciB1c2VyIGluIHRoZSBvcmcsIG9yIGNoYW5nZSB0aGVpciBtZW1iZXJzaGlwIHJvbGUuXG4gICAqL1xuICB1cGRhdGVVc2VyTWVtYmVyc2hpcDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBVc2VyXG4gICAgICAgICAqIEBleGFtcGxlIFVzZXIjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXBkYXRlVXNlck1lbWJlcnNoaXBSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVXNlckluT3JnSW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbml0aWF0ZSBMb2dpbiB3aXRoIFBhc3NrZXlcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIExvZ2luIHdpdGggUGFzc2tleVxuICAgKlxuICAgKiBUaGUgcmVzcG9uc2UgY29udGFpbnMgYSBGSURPIGNoYWxsZW5nZSB0aGF0IHRoZSBjbGllbnQgbXVzdCBhbnN3ZXIgd2l0aCBhbnkgb2YgdGhlaXJcbiAgICogZGlzY292ZXJhYmxlIGNyZWRlbnRpYWxzLiAgVGhlIGFuc3dlciBzaG91bGQgYmUgc3VibWl0dGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgUEFUQ0ggcmVxdWVzdC5cbiAgICovXG4gIHBhc3NrZXlBdXRoSW5pdDoge1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkxvZ2luUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBhc3NrZXlBc3NlcnRDaGFsbGVuZ2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ29tcGxldGUgTG9naW4gd2l0aCBQYXNza2V5XG4gICAqIEBkZXNjcmlwdGlvbiBDb21wbGV0ZSBMb2dpbiB3aXRoIFBhc3NrZXlcbiAgICpcbiAgICogVGhlIHJlcXVlc3Qgc2hvdWxkIGNvbnRhaW4gYW4gYW5zd2VyIHRvIHRoZSBjaGFsbGVuZ2UgaXNzdWVkIGJ5IHRoZSBjb3JyZXNwb25kaW5nIFBPU1QgcmVxdWVzdC5cbiAgICogVGhlIGNoYWxsZW5nZSBtYXkgYmUgYW5zd2VyZWQgd2l0aCBhbnkgb2YgdGhlIHVzZXIncyBkaXNjb3ZlcmFibGUgY3JlZGVudGlhbHM7IGlmIHRoZSBjcmVkZW50aWFsXG4gICAqIGluY2x1ZGVkIGluIHRoZSBhbnN3ZXIgaXMgcmVnaXN0ZXJlZCB3aXRoIGEgdXNlciBhbmQgYW4gb3JnYW5pemF0aW9uLCB0aGUgcmVzcG9uc2Ugd2lsbCBjb250YWluXG4gICAqIGEgQ3ViZVNpZ25lciBzZXNzaW9uICh3aXRoIHRoZSBwYXJhbWV0ZXJzIHN1cHBsaWVkIGluIHRoZSBwcmV2aW91cyBQT1NUIHJlcXVlc3QpIGZvciB0aGF0IHVzZXJcbiAgICogaW4gdGhhdCBvcmdhbml6YXRpb24uXG4gICAqL1xuICBwYXNza2V5QXV0aENvbXBsZXRlOiB7XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUGFzc2tleUFzc2VydEFuc3dlclwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk5ld1Nlc3Npb25SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbml0aWF0ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICpcbiAgICogREVQUkVDQVRFRC4gVXNlIGBQT1NUIC92MC9vcmcve29yZ19pZH0vdXNlci9tZS9maWRvYCBpbnN0ZWFkLlxuICAgKlxuICAgKiBHZW5lcmF0ZXMgYSBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIG93bmVyc2hpcCBvZiBhIGtleVxuICAgKi9cbiAgcmVnaXN0ZXJGaWRvSW5pdExlZ2FjeToge1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZpZG9DcmVhdGVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRmlkb0NyZWF0ZUNoYWxsZW5nZVJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICpcbiAgICogREVQUkVDQVRFRC4gVXNlIGBQQVRDSCAvdjAvb3JnL3tvcmdfaWR9L3VzZXIvbWUvZmlkb2AgaW5zdGVhZC5cbiAgICpcbiAgICogQWNjZXB0cyB0aGUgcmVzcG9uc2UgdG8gdGhlIGNoYWxsZW5nZSBnZW5lcmF0ZWQgYnkgdGhlIFBPU1QgdG8gdGhpcyBlbmRwb2ludC5cbiAgICovXG4gIHJlZ2lzdGVyRmlkb0NvbXBsZXRlTGVnYWN5OiB7XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRmlkb0NyZWF0ZUNoYWxsZW5nZUFuc3dlclwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbml0aWFsaXplIFRPVFAgUmVzZXRcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemUgVE9UUCBSZXNldFxuICAgKlxuICAgKiBERVBSRUNBVEVELiBVc2UgYFBPU1QgL3YwL29yZy97b3JnX2lkfS91c2VyL21lL3RvdHBgIGluc3RlYWQuXG4gICAqXG4gICAqIENyZWF0ZXMgYSBuZXcgVE9UUCBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIHRoYXQgdGhlIG5ldyBUT1RQXG4gICAqIHdhcyBzdWNjZXNzZnVsbHkgaW1wb3J0ZWQgaW50byBhbiBhdXRoZW50aWNhdG9yIGFwcC5cbiAgICpcbiAgICogVGhpcyBvcGVyYXRpb24gaXMgYWxsb3dlZCBpZiBFSVRIRVJcbiAgICogLSB0aGUgdXNlciBhY2NvdW50IGlzIG5vdCB5ZXQgaW5pdGlhbGl6ZWQgYW5kIG5vIFRPVFAgaXMgYWxyZWFkeSBzZXQsIE9SXG4gICAqIC0gdGhlIHVzZXIgaGFzIG5vdCBjb25maWd1cmVkIGFueSBhdXRoIGZhY3RvcnM7XG4gICAqIG90aGVyd2lzZSwgTUZBIGlzIHJlcXVpcmVkLlxuICAgKi9cbiAgcmVzZXRUb3RwSW5pdExlZ2FjeToge1xuICAgIHJlcXVlc3RCb2R5Pzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb3RwUmVzZXRSZXF1ZXN0XCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlRvdHBJbmZvXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgcmVzZXR0aW5nIFRPVFBcbiAgICpcbiAgICogREVQUkVDQVRFRC4gVXNlIGBQQVRDSCAvdjAvb3JnL3tvcmdfaWR9L3VzZXIvbWUvdG90cGAgaW5zdGVhZC5cbiAgICpcbiAgICogQ2hlY2tzIGlmIHRoZSByZXNwb25zZSBjb250YWlucyB0aGUgY29ycmVjdCBUT1RQIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGVcbiAgICogY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCBtZXRob2Qgb2YgdGhpcyBlbmRwb2ludC5cbiAgICovXG4gIHJlc2V0VG90cENvbXBsZXRlTGVnYWN5OiB7XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG90cENoYWxsZW5nZUFuc3dlclwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBWZXJpZnkgVE9UUFxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAZGVzY3JpcHRpb24gVmVyaWZ5IFRPVFBcbiAgICpcbiAgICogREVQUkVDQVRFRC4gVXNlIGBQT1NUIC92MC9vcmcve29yZ19pZH0vdXNlci9tZS90b3RwL3ZlcmlmeWAgaW5zdGVhZC5cbiAgICpcbiAgICogQ2hlY2tzIGlmIGEgZ2l2ZW4gY29kZSBtYXRjaGVzIHRoZSBjdXJyZW50IFRPVFAgY29kZSBmb3IgdGhlIGN1cnJlbnQgdXNlci5cbiAgICogRXJyb3JzIHdpdGggNDAzIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIG5vdCBzZXQgdXAgVE9UUCBvciB0aGUgY29kZSBmYWlscyB2ZXJpZmljYXRpb24uXG4gICAqL1xuICB2ZXJpZnlUb3RwTGVnYWN5OiB7XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG90cEFwcHJvdmVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhbGwgdGhlIG9yZ3MgdGhlIHVzZXIgaXMgYSBwYXJ0IG9mXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgYWxsIHRoZSBvcmdzIHRoZSB1c2VyIGlzIGEgcGFydCBvZlxuICAgKi9cbiAgdXNlck9yZ3M6IHtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlVzZXJPcmdzUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBSYXcgQmxvYlxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBSYXcgQmxvYlxuICAgKlxuICAgKiBTaWducyBhbiBhcmJpdHJhcnkgYmxvYiB3aXRoIGEgZ2l2ZW4ga2V5LlxuICAgKlxuICAgKiAtIEVDRFNBIHNpZ25hdHVyZXMgYXJlIHNlcmlhbGl6ZWQgYXMgYmlnLWVuZGlhbiByIGFuZCBzIHBsdXMgcmVjb3ZlcnktaWRcbiAgICogYnl0ZSB2LCB3aGljaCBjYW4gaW4gZ2VuZXJhbCB0YWtlIGFueSBvZiB0aGUgdmFsdWVzIDAsIDEsIDIsIG9yIDMuXG4gICAqXG4gICAqIC0gRWREU0Egc2lnbmF0dXJlcyBhcmUgc2VyaWFsaXplZCBpbiB0aGUgc3RhbmRhcmQgZm9ybWF0LlxuICAgKlxuICAgKiAtIEJMUyBzaWduYXR1cmVzIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHRoZSBibG9iLXNpZ24gZW5kcG9pbnQuXG4gICAqL1xuICBibG9iU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBLZXlcbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmxvYlNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU2lnblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZWNvcmQgaGVhcnRiZWF0XG4gICAqIEBkZXNjcmlwdGlvbiBSZWNvcmQgaGVhcnRiZWF0XG4gICAqXG4gICAqIFRoaXMgZW5kcG9pbnQgaXMgY2FsbGVkIGJ5IHRoZSBjdWJlM3NpZ25lciBwcm94eSB0byByZWNvcmQgdmFyaW91cyBtZXRyaWNzIHRvIENsb3VkV2F0Y2guXG4gICAqL1xuICBjdWJlM3NpZ25lckhlYXJ0YmVhdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keT86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSGVhcnRiZWF0UmVxdWVzdFwiXSB8IG51bGw7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBFVk0gVHJhbnNhY3Rpb25cbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gRVZNIFRyYW5zYWN0aW9uXG4gICAqXG4gICAqIFNpZ25zIGFuIEV0aGVyZXVtIChhbmQgb3RoZXIgRVZNKSB0cmFuc2FjdGlvbiB3aXRoIGEgZ2l2ZW4gU2VjcDI1NmsxIGtleS5cbiAgICogUmV0dXJucyBhbiBSTFAtZW5jb2RlZCB0cmFuc2FjdGlvbiB3aXRoIEVJUC0xNTUgc2lnbmF0dXJlLlxuICAgKlxuICAgKiBUaGUga2V5IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSByb2xlIGFuZCBvcmdhbml6YXRpb24gb24gd2hvc2UgYmVoYWxmIHRoaXMgYWN0aW9uIGlzIGNhbGxlZC5cbiAgICovXG4gIGV0aDFTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIGV0aGVyZXVtIGFkZHJlc3Mgb2YgdGhlIHNlY3Aga2V5XG4gICAgICAgICAqIEBleGFtcGxlIDB4NDkwMTFhZGJDQzNiQzljMDMwN0JCMDdGMzdEZGExYTFhOWM2OWQyRVxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXRoMVNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRXRoMVNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBWYWxpZGF0b3IgUmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBWYWxpZGF0b3IgUmVxdWVzdFxuICAgKlxuICAgKiBTaWducyBhbiBldGgyIHZhbGlkYXRvciByZXF1ZXN0IHdpdGggYSBnaXZlbiBCTFMga2V5LlxuICAgKlxuICAgKiBUaGUga2V5IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSByb2xlIGFuZCBvcmdhbml6YXRpb24gb24gd2hvc2UgYmVoYWxmIHRoaXMgYWN0aW9uIGlzIGNhbGxlZC5cbiAgICovXG4gIGV0aDJTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIHZhbGlkYXRvciAoQkxTKSBwdWJsaWMga2V5IHdpdGggMHggcHJlZml4XG4gICAgICAgICAqIEBleGFtcGxlIDB4OTcwMGZiYjhjOTA2OTQyNDQyYzJhNWIzYWQ3NDk4ZjI3YWVkZGEyNTM3ODZhNmZiYWE4ZmVmNDdmYjdhZjIzNGU1MGNmMmNjZTgxNWE1NTMwODc5OTJhZTU2NWQ0OGRhXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFdGgyU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gU3Rha2UgRGVwb3NpdFxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBTdGFrZSBEZXBvc2l0XG4gICAqXG4gICAqIFNpZ25zIGEgZGVwb3NpdCB0cmFuc2FjdGlvbiB3aXRoIGEgYHZhbGlkYXRvcl9rZXlgLiBJZiBgdmFsaWRhdG9yX2tleWAgaXMgc2V0IHRvIGEgcHJlZ2VuZXJhdGVkIGtleSwgd2UgdXNlIHRoZVxuICAgKiBwcm92aWRlZCB2YWxpZGF0b3Iga2V5LiBPdGhlcndpc2UsIHdlIGdlbmVyYXRlIGEgbmV3IEJMUyBrZXkuXG4gICAqXG4gICAqIFdoZW4gdXNpbmcgYSBwcmVnZW5lcmF0ZWQga2V5LCB0aGUga2V5IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSByb2xlIGFuZCBvcmdhbml6YXRpb24gb24gd2hvc2VcbiAgICogYmVoYWxmIHRoaXMgYWN0aW9uIGlzIGNhbGxlZC5cbiAgICovXG4gIHN0YWtlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN0YWtlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlN0YWtlUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gVW5zdGFrZSBSZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIFVuc3Rha2UgUmVxdWVzdFxuICAgKlxuICAgKiBIYW5kbGUgdW5zdGFraW5nIHJlcXVlc3QsIHByb2R1Y2luZyBhIHNpZ25lZCB2b2x1bnRhcnkgZXhpdCBtZXNzYWdlXG4gICAqIHRoYXQgY2FuIGJlIHBvc3RlZCBkaXJlY3RseSB0byB0aGUgQmVhY29uIGNoYWluLlxuICAgKlxuICAgKiBUaGUga2V5IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSByb2xlIGFuZCBvcmdhbml6YXRpb24gb24gd2hvc2UgYmVoYWxmIHRoaXMgYWN0aW9uIGlzIGNhbGxlZC5cbiAgICovXG4gIHVuc3Rha2U6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgdmFsaWRhdG9yIChCTFMpIHB1YmxpYyBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgMHhhOTlhNzZlZDc3OTZmN2JlMjJkNWI3ZTg1ZGVlYjdjNTY3N2U4OGU1MTFlMGIzMzc2MThmOGM0ZWI2MTM0OWI0YmYyZDE1M2Y2NDlmN2I1MzM1OWZlOGI5NGEzOGU0NGNcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVuc3Rha2VSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVW5zdGFrZVJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZWZyZXNoIFNpZ25lciBTZXNzaW9uXG4gICAqIEBkZXNjcmlwdGlvbiBSZWZyZXNoIFNpZ25lciBTZXNzaW9uXG4gICAqL1xuICBzaWduZXJTZXNzaW9uUmVmcmVzaDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgb3JnYW5pemF0aW9uIG93bmluZyB0aGUga2V5XG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1dGhEYXRhXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgZmlsZSB3YXMgYXV0by1nZW5lcmF0ZWQgYnkgb3BlbmFwaS10eXBlc2NyaXB0LlxuICogRG8gbm90IG1ha2UgZGlyZWN0IGNoYW5nZXMgdG8gdGhlIGZpbGUuXG4gKi9cblxuLyoqIE9uZU9mIHR5cGUgaGVscGVycyAqL1xudHlwZSBXaXRob3V0PFQsIFU+ID0geyBbUCBpbiBFeGNsdWRlPGtleW9mIFQsIGtleW9mIFU+XT86IG5ldmVyIH07XG50eXBlIFhPUjxULCBVPiA9IFQgfCBVIGV4dGVuZHMgb2JqZWN0ID8gKFdpdGhvdXQ8VCwgVT4gJiBVKSB8IChXaXRob3V0PFUsIFQ+ICYgVCkgOiBUIHwgVTtcbnR5cGUgT25lT2Y8VCBleHRlbmRzIGFueVtdPiA9IFQgZXh0ZW5kcyBbaW5mZXIgT25seV1cbiAgPyBPbmx5XG4gIDogVCBleHRlbmRzIFtpbmZlciBBLCBpbmZlciBCLCAuLi5pbmZlciBSZXN0XVxuICAgID8gT25lT2Y8W1hPUjxBLCBCPiwgLi4uUmVzdF0+XG4gICAgOiBuZXZlcjtcblxuZXhwb3J0IGludGVyZmFjZSBwYXRocyB7XG4gIFwiL3YwL2Fib3V0X21lXCI6IHtcbiAgICAvKipcbiAgICAgKiBVc2VyIEluZm9cbiAgICAgKiBAZGVzY3JpcHRpb24gVXNlciBJbmZvXG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgdXNlci5cbiAgICAgKlxuICAgICAqIFBSRUZFUiBgR0VUIC92MC9vcmdzL3tvcmdfaWR9L3VzZXIvbWVgXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiYWJvdXRNZUxlZ2FjeVwiXTtcbiAgfTtcbiAgXCIvdjAvYXR0ZXN0YXRpb24vLndlbGwta25vd24vandrcy5qc29uXCI6IHtcbiAgICAvKipcbiAgICAgKiBKV0tTIGVuZHBvaW50IGZvciB0aGUgYXR0ZXN0YXRpb24ga2V5XG4gICAgICogQGRlc2NyaXB0aW9uIEpXS1MgZW5kcG9pbnQgZm9yIHRoZSBhdHRlc3RhdGlvbiBrZXlcbiAgICAgKlxuICAgICAqIFJldHVybnMgdGhlIHB1YmxpYyBrZXkgdXNlZCB0byBzaWduIEtleSBpbmZvIGF0dGVzdGF0aW9ucy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJhdHRlc3RhdGlvbkp3a1NldFwiXTtcbiAgfTtcbiAgXCIvdjAvZW1haWwvb3Jnc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBhY2Nlc3NpYmxlIG9yZ2FuaXphdGlvbnMuXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgYWNjZXNzaWJsZSBvcmdhbml6YXRpb25zLlxuICAgICAqXG4gICAgICogVW5hdXRoZW50aWNhdGVkIGVuZHBvaW50IGZvciByZXRyaWV2aW5nIGFsbCBvcmdhbml6YXRpb25zIGFjY2Vzc2libGUgdG8gYSB1c2VyLlxuICAgICAqIFRoaXMgaW5mb3JtYXRpb24gaXMgZW1haWxlZCB0byB0aGUgcHJvdmlkZWQgZW1haWwgYWRkcmVzcy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJlbWFpbF9teV9vcmdzXCJdO1xuICB9O1xuICBcIi92MC9pbnRlcm5hbC9zZW50cnlcIjoge1xuICAgIC8qKlxuICAgICAqIChJTlRFUk5BTCkgU2VudHJ5IEFQSSBQcm94eVxuICAgICAqIEBkZXNjcmlwdGlvbiAoSU5URVJOQUwpIFNlbnRyeSBBUEkgUHJveHlcbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wic2VudHJ5QXBpQ2FsbFB1YmxpY1wiXTtcbiAgfTtcbiAgXCIvdjAvbW1pL3YzLy53ZWxsLWtub3duL2p3a3MuanNvblwiOiB7XG4gICAgLyoqXG4gICAgICogSldLUyBlbmRwb2ludCBmb3IgTU1JXG4gICAgICogQGRlc2NyaXB0aW9uIEpXS1MgZW5kcG9pbnQgZm9yIE1NSVxuICAgICAqXG4gICAgICogUmV0dXJucyB0aGUgcHVibGljIGtleSB1c2VkIHRvIHNpZ24gSlNPTiBXZWIgVG9rZW5zIGZvciBNTUkuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibW1pSndrU2V0XCJdO1xuICB9O1xuICBcIi92MC9tbWkvdjMvanNvbi1ycGNcIjoge1xuICAgIC8qKlxuICAgICAqIE1NSSBKU09OLVJQQyBlbmRwb2ludFxuICAgICAqIEBkZXNjcmlwdGlvbiBNTUkgSlNPTi1SUEMgZW5kcG9pbnRcbiAgICAgKlxuICAgICAqIEhhbmRsZXIgZm9yIGFsbCBbTU1JIEpTT04tUlBDXShodHRwczovL2RvY3MubWV0YW1hc2staW5zdGl0dXRpb25hbC5pby9jdXN0b2RpYW4taW50ZWdyYXRpb24vaW50ZWdyYXRpb24tZG9jcy9hcGkvbWV0aG9kcylcbiAgICAgKiByZXF1ZXN0cy5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wibW1pXCJdO1xuICB9O1xuICBcIi92MC9vYXV0aC90b2tlblwiOiB7XG4gICAgLyoqXG4gICAgICogVG9rZW4gcmVmcmVzaCBlbmRwb2ludCwgY29tcGxpYW50IHdpdGggT0F1dGguXG4gICAgICogQGRlc2NyaXB0aW9uIFRva2VuIHJlZnJlc2ggZW5kcG9pbnQsIGNvbXBsaWFudCB3aXRoIE9BdXRoLlxuICAgICAqXG4gICAgICogVGhlIGJvZHkgY29udGVudCB0eXBlIGNhbiBiZSBlaXRoZXIgJ2FwcGxpY2F0aW9uL2pzb24nIG9yICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJvYXV0aDJUb2tlblJlZnJlc2hcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IE9yZ1xuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgT3JnXG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgYW4gb3JnYW5pemF0aW9uLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImdldE9yZ1wiXTtcbiAgICAvKipcbiAgICAgKiBVcGRhdGUgT3JnXG4gICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBPcmdcbiAgICAgKlxuICAgICAqIFVwZGF0ZSBvcmdhbml6YXRpb24gYXR0cmlidXRlcyAoZW5hYmxlZCBmbGFnLCBuYW1lLCBhbmQgcG9saWNpZXMpLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXBkYXRlT3JnXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYXVkaXRcIjoge1xuICAgIC8qKlxuICAgICAqIFF1ZXJ5IHRoZSBhdWRpdCBsb2cuXG4gICAgICogQGRlc2NyaXB0aW9uIFF1ZXJ5IHRoZSBhdWRpdCBsb2cuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInF1ZXJ5QXVkaXRMb2dcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9hdXRoX21pZ3JhdGlvbi9hZGRfaWRlbnRpdHlcIjoge1xuICAgIC8qKlxuICAgICAqIEFzc29jaWF0ZSBhbiBPSURDIGlkZW50aXR5IHdpdGggYW4gYXJiaXRyYXJ5IHVzZXIgaW4gb3JnIDxzZXNzaW9uLm9yZz4uXG4gICAgICogQGRlc2NyaXB0aW9uIEFzc29jaWF0ZSBhbiBPSURDIGlkZW50aXR5IHdpdGggYW4gYXJiaXRyYXJ5IHVzZXIgaW4gb3JnIDxzZXNzaW9uLm9yZz4uXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImF1dGhNaWdyYXRpb25JZGVudGl0eUFkZFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2F1dGhfbWlncmF0aW9uL3JlbW92ZV9pZGVudGl0eVwiOiB7XG4gICAgLyoqXG4gICAgICogRGlzc29jaWF0ZSBhbiBPSURDIGlkZW50aXR5IGZyb20gYW4gYXJiaXRyYXJ5IHVzZXIgaW4gb3JnIDxzZXNzaW9uLm9yZz4uXG4gICAgICogQGRlc2NyaXB0aW9uIERpc3NvY2lhdGUgYW4gT0lEQyBpZGVudGl0eSBmcm9tIGFuIGFyYml0cmFyeSB1c2VyIGluIG9yZyA8c2Vzc2lvbi5vcmc+LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJhdXRoTWlncmF0aW9uSWRlbnRpdHlSZW1vdmVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9hdXRoX21pZ3JhdGlvbi91cGRhdGVfdXNlcnNcIjoge1xuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBleGlzdGluZyB1c2VycycgcHJvZmlsZXMuIEN1cnJlbnRseSBzdXBwb3J0cyBvbmx5IChyZSlzZXR0aW5nIGVtYWlscy5cbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIGV4aXN0aW5nIHVzZXJzJyBwcm9maWxlcy4gQ3VycmVudGx5IHN1cHBvcnRzIG9ubHkgKHJlKXNldHRpbmcgZW1haWxzLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJhdXRoTWlncmF0aW9uVXNlclVwZGF0ZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2F2YS9zaWduL3thdmFfY2hhaW59L3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIGEgc2VyaWFsaXplZCBBdmFsYW5jaGUgQy9YL1AtQ2hhaW4gTWVzc2FnZVxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIGEgc2VyaWFsaXplZCBBdmFsYW5jaGUgQy9YL1AtQ2hhaW4gTWVzc2FnZVxuICAgICAqXG4gICAgICogU2lnbnMgYW4gQXZhbGFuY2hlIG1lc3NhZ2Ugd2l0aCBhIGdpdmVuIFNlY3BFdGggKEMtQ2hhaW4gbWVzc2FnZXMpIG9yXG4gICAgICogU2VjcEF2YSAoWC0gYW5kIFAtQ2hhaW4gbWVzc2FnZXMpIGtleS4gQ3VycmVudGx5IHNpZ25pbmcgQy1DaGFpbiBtZXNzYWdlc1xuICAgICAqIHdpdGggU2VjcEV0aCBrZXkgbXVzdCBhbHNvIGJlIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgYEFsbG93UmF3QmxvYlNpZ25pbmdgXG4gICAgICogcG9saWN5LlxuICAgICAqXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImF2YVNlcmlhbGl6ZWRUeFNpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9hdmEvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBKU09OLWVuY29kZWQgQXZhbGFuY2hlIFgtIG9yIFAtQ2hhaW4gTWVzc2FnZVxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIEpTT04tZW5jb2RlZCBBdmFsYW5jaGUgWC0gb3IgUC1DaGFpbiBNZXNzYWdlXG4gICAgICpcbiAgICAgKiBTaWducyBhbiBBdmFsYW5jaGUgbWVzc2FnZSB3aXRoIGEgZ2l2ZW4gU2VjcEF2YSBrZXkuXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImF2YVNpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9iYWJ5bG9uL2Nvdi9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIEJhYnlsb24gQ292ZW5hbnQgQ29tbWl0dGVlIFJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBCYWJ5bG9uIENvdmVuYW50IENvbW1pdHRlZSBSZXF1ZXN0XG4gICAgICpcbiAgICAgKiBTaWducyB0cmFuc2FjdGlvbnMgcmVsZXZhbnQgdG8gYSBCYWJ5bG9uIGNvdmVuYW50IGNvbW1pdHRlZSBzaWduZXIsXG4gICAgICogaS5lLiwgU2Nobm9yciBhbmQgYWRhcHRvciBzaWduYXR1cmVzIGZvciB0aGUgdW5ib25kaW5nLCBzbGFzaGluZywgYW5kXG4gICAgICogc2xhc2gtdW5ib25kaW5nIG91dHB1dHMgb2YgYSBCYWJ5bG9uIHN0YWtpbmcgdHJhbnNhY3Rpb24uXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImJhYnlsb25Db3ZTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYmFieWxvbi9lb3RzL25vbmNlcy97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIEVPVFMgbm9uY2VzXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBFT1RTIG5vbmNlc1xuICAgICAqXG4gICAgICogR2VuZXJhdGVzIGEgc2V0IG9mIEJhYnlsb24gRU9UUyBub25jZXMgZm9yIGEgc3BlY2lmaWVkIGNoYWluLWlkLCBzdGFydGluZyBhdCBhXG4gICAgICogc3BlY2lmaWVkIGJsb2NrIGhlaWdodC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiY3JlYXRlRW90c05vbmNlc1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2JhYnlsb24vZW90cy9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYW4gRU9UUyBzaWduYXR1cmVcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIGFuIEVPVFMgc2lnbmF0dXJlXG4gICAgICpcbiAgICAgKiBHZW5lcmF0ZXMgYW4gRU9UUyBzaWduYXR1cmUgZm9yIHRoZSBzcGVjaWZpZWQgY2hhaW4taWQsIGJsb2NrIGhlaWdodCwgYW5kIG1lc3NhZ2UuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImVvdHNTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYmFieWxvbi9yZWdpc3RyYXRpb24ve3B1YmtleX1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gQmFieWxvbiBTdGFraW5nIFJlZ2lzdHJhdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIEJhYnlsb24gU3Rha2luZyBSZWdpc3RyYXRpb25cbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYW5kIHNpZ25zIHRoZSBkYXRhIG5lZWRlZCB0byByZWdpc3RlciBhIFBoYXNlLTIgb3IgUGhhc2UtM1xuICAgICAqIEJhYnlsb24gc3Rha2UuIFRoaXMgaW5jbHVkZXMgdGhlIGRlcG9zaXQgYW5kIHVuYm9uZGluZyB0cmFuc2FjdGlvbnMsXG4gICAgICogdHdvIHNsYXNoaW5nIHRyYW5zYWN0aW9ucywgdGhlIHNsYXNoaW5nIHNpZ25hdHVyZXMsIGFuZCB0aGUgcHJvb2Ygb2ZcbiAgICAgKiBwb3NzZXNzaW9uLlxuICAgICAqXG4gICAgICogTm90ZSB0aGF0IGl0IGlzIGFsc28gcG9zc2libGUgdG8gZ2VuZXJhdGUgdGhpcyByZWdpc3RyYXRpb24gZGF0YSBieVxuICAgICAqIG1ha2luZyBmb3VyIGNhbGxzIHRvIHRoZSBCYWJ5bG9uIHN0YWtpbmcgQVBJLCBwbHVzIG9uZSBjYWxsIHRvIHRoZVxuICAgICAqIFBTQlQgc2lnbmluZyBBUEkgdG8gZ2VuZXJhdGUgdGhlIEJJUC0zMjIgcHJvb2Ygb2YgcG9zc2Vzc2lvbi4gVGhlXG4gICAgICogcmVnaXN0cmF0aW9uIEFQSSBnZW5lcmF0ZXMgdGhlIHNhbWUgZGF0YSBidXQgaXMgZWFzaWVyIHRvIHVzZS5cbiAgICAgKlxuICAgICAqIE5vdGUgdGhhdCB0aGlzIGFjdGlvbiBjYW4gb25seSBiZSBjYWxsZWQgd2l0aCBhIFRhcHJvb3Qga2V5LiBJZiB5b3VyXG4gICAgICogZGVwb3NpdCB0cmFuc2FjdGlvbiBzcGVuZHMgVVRYT3MgdGhhdCBhcmUgY29udHJvbGxlZCBieSBvdGhlciBrZXlzLFxuICAgICAqIHlvdSBjYW4gc3VibWl0IHRoZSAnZGVwb3NpdCcgUFNCVCB0byB0aGUgUFNCVCBzaWduaW5nIEFQSSBvbmUgb3IgbW9yZVxuICAgICAqIHRpbWVzIHRvIGdlbmVyYXRlIHRoZSByZXF1aXJlZCBzaWduYXR1cmVzLlxuICAgICAqXG4gICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIGNvbnN1bHQgdGhlXG4gICAgICogW0JhYnlsb24gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2JhYnlsb24vYmxvYi9yZWxlYXNlL3YxLngvZG9jcy9yZWdpc3Rlci1iaXRjb2luLXN0YWtlLm1kKS5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJiYWJ5bG9uUmVnaXN0cmF0aW9uXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYmFieWxvbi9zdGFraW5nL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIEJhYnlsb24gU3Rha2luZyBUcmFuc2FjdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIEJhYnlsb24gU3Rha2luZyBUcmFuc2FjdGlvblxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhbmQgc2lnbnMgdHJhbnNhY3Rpb25zIHJlbGF0ZWQgdG8gQmFieWxvbiBzdGFraW5nIChpLmUuLFxuICAgICAqIGRlcG9zaXQsIGVhcmx5IHVuYm9uZCwgd2l0aGRyYXdhbCkuIFRoZSByZXR1cm4gdmFsdWUgaXMgYSBQcmUtU2lnbmVkXG4gICAgICogQml0Y29pbiBUcmFuc2FjdGlvbiAoUFNCVCksIGFzIGRlZmluZWQgaW4gQklQLTE3NCwgd2hpY2ggbWF0Y2hlcyB0aGVcbiAgICAgKiBmb3JtYXQgdXNlZCBpbiBtb3N0IEJhYnlsb24gdG9vbGluZy5cbiAgICAgKlxuICAgICAqIFRoZSAnZGVwb3NpdCcgYWN0aW9uIGNhbiBiZSB1c2VkIHdpdGggZWl0aGVyIFNlZ3dpdCAoaS5lLiwgU2VjcEJ0Yy9TZWNwQnRjVGVzdClcbiAgICAgKiBvciBUYXByb290IChpLmUuLCBUYXByb290QnRjL1RhcHJvb3RCdGNUZXN0KSBrZXlzLiBUaGUgcmVtYWluaW5nIGFjdGlvbnMgY2FuIGJlXG4gICAgICogdXNlZCBvbmx5IHdpdGggVGFwcm9vdCBrZXlzLlxuICAgICAqXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImJhYnlsb25TdGFraW5nXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYnRjL21lc3NhZ2Uvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBhIEJpdGNvaW4gbWVzc2FnZS5cbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBhIEJpdGNvaW4gbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIFNpZ25zIGEgbWVzc2FnZSB1c2luZyBCSVAxMzcgbWVzc2FnZSBzaWduaW5nIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJidGNNZXNzYWdlU2lnblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2J0Yy9wc2J0L3NpZ24ve3B1YmtleX1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gYSBQYXJ0aWFsbHkgU2lnbmVkIEJpdGNvaW4gVHJhbnNhY3Rpb24gKFBTQlQpXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gYSBQYXJ0aWFsbHkgU2lnbmVkIEJpdGNvaW4gVHJhbnNhY3Rpb24gKFBTQlQpXG4gICAgICpcbiAgICAgKiBTaWducyBhbGwgaW5wdXRzIG9mIHRoZSBzdXBwbGllZCBQU0JUIHYwIChCSVAtMTc0KSB0aGF0IHBlcnRhaW4gdG8gdGhlXG4gICAgICogJ3B1YmtleScgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0LCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgVGFwcm9vdCBvciBhXG4gICAgICogU2Vnd2l0IGtleS4gRm9yIFNlZ3dpdCBrZXlzLCBDdWJlU2lnbmVyLXNwZWNpZmljIGRldGVybWluaXN0aWMgdHdlYWtpbmdcbiAgICAgKiBjYW4gYmUgYXBwbGllZCB0byAncHVia2V5JyBiZWZvcmUgc2lnbmluZywgb24gYSBwZXItaW5wdXQgYmFzaXMuIChTZWUgdGhlXG4gICAgICogQ3ViZVNpZ25lciBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIFNlZ3dpdCB0d2Vha2luZy4pXG4gICAgICpcbiAgICAgKiBXaGVuIGNhbGxpbmcgd2l0aCBhIHNlZ3dpdCBrZXkgdGhlIHJlcXVpcmVkIHNjb3BlIGlzICdzaWduOmJ0Yzpwc2J0OnNlZ3dpdCcuXG4gICAgICogRm9yIGEgdGFwcm9vdCBrZXksIHRoZSBzY29wZSBpcyAnc2lnbjpidGM6cHNidDp0YXByb290Jy4gRWl0aGVyIHR5cGUgb2Yga2V5XG4gICAgICogY2FuIGJlIHVzZWQgd2l0aCB0aGUgJ3NpZ246YnRjOnBzYnQnIHNjb3BlLlxuICAgICAqXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInBzYnRTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYnRjL3NpZ24ve3B1YmtleX1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gQml0Y29pbiBTZWd3aXQgVHJhbnNhY3Rpb25cbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBCaXRjb2luIFNlZ3dpdCBUcmFuc2FjdGlvblxuICAgICAqXG4gICAgICogU2lnbnMgYSBCaXRjb2luIFNlZ3dpdCB0cmFuc2FjdGlvbiB3aXRoIGEgZ2l2ZW4ga2V5LlxuICAgICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJidGNTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYnRjL3RhcHJvb3Qvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBCaXRjb2luIFRhcHJvb3QgVHJhbnNhY3Rpb25cbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBCaXRjb2luIFRhcHJvb3QgVHJhbnNhY3Rpb25cbiAgICAgKlxuICAgICAqIFNpZ25zIGEgQml0Y29pbiBUYXByb290IHRyYW5zYWN0aW9uIHdpdGggYSBnaXZlbiBrZXkuXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImJ0Y1RhcHJvb3RTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vY29udGFjdHNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgQ29udGFjdHNcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBDb250YWN0c1xuICAgICAqXG4gICAgICogTGlzdCBhbGwgY29udGFjdHMgaW4gdGhlIG9yZy5cbiAgICAgKiBBbnkgb3JnIG1lbWJlciBpcyBhbGxvd2VkIHRvIGxpc3QgYWxsIGNvbnRhY3RzIGluIHRoZSBvcmcuXG4gICAgICpcbiAgICAgKiAjIyBTZWFyY2ggQ29uZGl0aW9uXG4gICAgICogVGhlIHNlYXJjaCBjb25kaXRpb24gaXMgb3B0aW9uYWwuXG4gICAgICpcbiAgICAgKiAtIElmIHRoZSBzZWFyY2ggY29uZGl0aW9uIHN0YXJ0cyB3aXRoIFwibGFiZWw6Li4uXCIsIHRoaXMgbGlzdCB3aWxsIG9ubHkgaG9sZCBjb250YWN0cyB3aXRoXG4gICAgICogdGhlIGxhYmVsIHByb3ZpZGVkIGFmdGVyIHRoZSBcIjpcIi4gRm9yIGV4YW1wbGUsIFwibGFiZWw6Y3ViaXN0OmVyYzIwX3Rva2VuXCIgd291bGQgcmV0dXJuIGNvbnRhY3RzIHRoYXRcbiAgICAgKiBob2xkIHRoZSBsYWJlbCBcImN1YmlzdDplcmMyMF90b2tlblwiLlxuICAgICAqXG4gICAgICogLSBPdGhlcndpc2UsIHRoZSByZXN1bHQgd2lsbCBjb250YWluIG9ubHkgdGhlIGNvbnRhY3RzIHdobyBoYXZlIGFuIGFkZHJlc3Mgc3RhcnRpbmcgd2l0aCwgb3JcbiAgICAgKiBlcXVhbGluZywgdGhlIGdpdmVuIHNlYXJjaCBzdHJpbmcuIEZvciBleGFtcGxlLCBcIjB4ZWVcIiB3b3VsZCByZXR1cm4gYWxsIGNvbnRhY3RzIGhvbGRpbmcgYW5cbiAgICAgKiBhZGRyZXNzIHN0YXJ0aW5nIHdpdGggXCIweGVlXCIuIFRoZSBzZWFyY2ggaXMgY2FzZS1pbnNlbnNpdGl2ZS5cbiAgICAgKlxuICAgICAqIElmIGEgc2VhcmNoIHRlcm0gaXMgZGVmaW5lZCwgd2UgZG8gbm90IGd1YXJhbnRlZVxuICAgICAqIHRoZSBudW1iZXIgb2YgcmVzdWx0cyBpbiBhIHBhZ2UuIFRoZSBiZWhhdmlvciBvZiB0aGlzIHBhcmFtZXRlciBtYXkgY2hhbmdlXG4gICAgICogaW4gdGhlIGZ1dHVyZSAoZm9yIGV4YW1wbGUsIG1ha2luZyByZXN1bHRzIG1vcmUgc3RyaWN0bHkgcGFnaW5hdGVkIG9yXG4gICAgICogcGVyZm9ybWluZyBhIGZ1enp5IHNlYXJjaCByYXRoZXIgdGhhbiBhIHByZWZpeCBzZWFyY2gpLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RDb250YWN0c1wiXTtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgQ29udGFjdFxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgQ29udGFjdFxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBjb250YWN0IGluIHRoZSBvcmdhbml6YXRpb24td2lkZSBhZGRyZXNzIGJvb2suIFRoZVxuICAgICAqIHVzZXIgbWFraW5nIHRoZSByZXF1ZXN0IGlzIHRoZSBvd25lciBvZiB0aGUgY29udGFjdCwgZ2l2aW5nIHRoZW0gZWRpdCBhY2Nlc3NcbiAgICAgKiB0byB0aGUgY29udGFjdCBhbG9uZyB3aXRoIHRoZSBvcmcgb3duZXJzLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVDb250YWN0XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vY29udGFjdHMvYnktYWRkcmVzc1wiOiB7XG4gICAgLyoqXG4gICAgICogTG9va3VwIENvbnRhY3RzIGJ5IEFkZHJlc3NcbiAgICAgKiBAZGVzY3JpcHRpb24gTG9va3VwIENvbnRhY3RzIGJ5IEFkZHJlc3NcbiAgICAgKlxuICAgICAqIFJldHVybnMgYWxsIGNvbnRhY3RzIGluIHRoZSBvcmcgdGhhdCBoYXZlIHRoZSBnaXZlbiBhZGRyZXNzLlxuICAgICAqXG4gICAgICogV2hlbiBxdWVyeWluZyB3aXRoIGFuIEVWTSBhZGRyZXNzIHdpdGhvdXQgYSBjaGFpbiwgdGhpcyBlbmRwb2ludCByZXR1cm5zXG4gICAgICogY29udGFjdHMgd2l0aCB0aGF0IGFkZHJlc3Mgb24gKmFueSogY2hhaW4sIGluY2x1ZGluZyB0aG9zZSB3aXRob3V0IGEgY2hhaW5cbiAgICAgKiBkZWZpbmVkLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJsb29rdXBDb250YWN0c0J5QWRkcmVzc1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2NvbnRhY3RzL3tjb250YWN0X2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IENvbnRhY3RcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IENvbnRhY3RcbiAgICAgKlxuICAgICAqIFJldHVybnMgdGhlIHByb3BlcnRpZXMgb2YgYSBDb250YWN0LlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImdldENvbnRhY3RcIl07XG4gICAgLyoqXG4gICAgICogRGVsZXRlIENvbnRhY3RcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIENvbnRhY3RcbiAgICAgKlxuICAgICAqIERlbGV0ZSBhIGNvbnRhY3QsIHNwZWNpZmllZCBieSBpdHMgSUQuXG4gICAgICpcbiAgICAgKiBPbmx5IHRoZSBjb250YWN0IG93bmVyIGFuZCBvcmcgb3duZXJzIGFyZSBhbGxvd2VkIHRvIGRlbGV0ZSBjb250YWN0cy5cbiAgICAgKiBBZGRpdGlvbmFsbHksIHRoZSBjb250YWN0J3MgZWRpdCBwb2xpY3kgKGlmIHNldCkgbXVzdCBwZXJtaXQgdGhlIGRlbGV0aW9uLlxuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcImRlbGV0ZUNvbnRhY3RcIl07XG4gICAgLyoqXG4gICAgICogVXBkYXRlIENvbnRhY3RcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIENvbnRhY3RcbiAgICAgKlxuICAgICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgY29udGFjdCBpbiB0aGUgb3JnYW5pemF0aW9uLXdpZGUgYWRkcmVzcyBib29rLiBPbmx5XG4gICAgICogdGhlIGNvbnRhY3Qgb3duZXIgb3IgYW4gb3JnIG93bmVyIGNhbiB1cGRhdGUgY29udGFjdHMuXG4gICAgICpcbiAgICAgKiAqVXBkYXRlcyB3aWxsIG92ZXJ3cml0ZSB0aGUgZXhpc3RpbmcgdmFsdWUgb2YgdGhlIGZpZWxkLipcbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInVwZGF0ZUNvbnRhY3RcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9jb3VudHNcIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBjdXJyZW50IGNvdW50cyBvZiB1c2VycyBhbmQga2V5cyB3aXRoaW4gYW4gb3JnLlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgY3VycmVudCBjb3VudHMgb2YgdXNlcnMgYW5kIGtleXMgd2l0aGluIGFuIG9yZy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJjb3VudHNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9kZXJpdmVfa2V5XCI6IHtcbiAgICAvKipcbiAgICAgKiBEZXJpdmUgS2V5IEZyb20gTG9uZy1MaXZlZCBNbmVtb25pY1xuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQGRlc2NyaXB0aW9uIERlcml2ZSBLZXkgRnJvbSBMb25nLUxpdmVkIE1uZW1vbmljXG4gICAgICpcbiAgICAgKiBEZXJpdmVzIGEga2V5IG9mIGEgc3BlY2lmaWVkIHR5cGUgdXNpbmcgYSBzdXBwbGllZCBkZXJpdmF0aW9uIHBhdGggYW5kIGFuXG4gICAgICogZXhpc3RpbmcgbG9uZy1saXZlZCBtbmVtb25pYy5cbiAgICAgKi9cbiAgICBwdXQ6IG9wZXJhdGlvbnNbXCJkZXJpdmVLZXlMZWdhY3lcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9kZXJpdmVfa2V5c1wiOiB7XG4gICAgLyoqXG4gICAgICogRGVyaXZlIEtleSBGcm9tIE5ldyBPciBFeGlzdGluZyBMb25nLUxpdmVkIE1uZW1vbmljXG4gICAgICogQGRlc2NyaXB0aW9uIERlcml2ZSBLZXkgRnJvbSBOZXcgT3IgRXhpc3RpbmcgTG9uZy1MaXZlZCBNbmVtb25pY1xuICAgICAqXG4gICAgICogVXNlcyBlaXRoZXIgYSBuZXcgb3IgZXhpc3RpbmcgbG9uZy1saXZlZCBtbmVtb25pYyB0byBkZXJpdmUga2V5cyBvZlxuICAgICAqIG9uZSBvciBtb3JlIHNwZWNpZmllZCB0eXBlcyB2aWEgc3BlY2lmaWVkIGRlcml2YXRpb24gcGF0aHMuXG4gICAgICovXG4gICAgcHV0OiBvcGVyYXRpb25zW1wiZGVyaXZlS2V5XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vZGlmZmllX2hlbGxtYW4ve2tleV9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIENvbXB1dGUgRGlmZmllIEhlbGxtYW4gc2hhcmVkIHNlY3JldFxuICAgICAqIEBkZXNjcmlwdGlvbiBDb21wdXRlIERpZmZpZSBIZWxsbWFuIHNoYXJlZCBzZWNyZXRcbiAgICAgKlxuICAgICAqIEZvciBhIHNldCBvZiBlbGxpcHRpYyBjdXJ2ZSBwb2ludHMgKFBfMSwgLi4uLCBQX2kpLCBjb21wdXRlcyB0aGUgRGlmZmllIEhlbGxtYW5cbiAgICAgKiBzaGFyZWQgc2VjcmV0IChRXzEsIC4uLiwgUWkpID0gKHNrICogUF8xLCAuLi4gc2sgKiBQX2kpLCBmb3Igc2sgdGhlIHNlY3JldCBrZXkuXG4gICAgICogUG9pbnRzIGFyZSBzcGVjaWZpZWQgaW4gYSBjdXJ2ZS1kZXBlbmRlbnQgZm9ybWF0LiBTZWUgQ3ViZVNpZ25lciBkb2N1bWVudGF0aW9uXG4gICAgICogZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKlxuICAgICAqIFRoZSB1c2VyIGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgYSBOSVNUIFAtMjU2IHB1YmxpYyBrZXksIGluIHdoaWNoIGNhc2UgdGhlIHJlc3VsdFxuICAgICAqIHdpbGwgYmUgZW5jcnlwdGVkIHRvIHRoZSBwdWJsaWMga2V5IHVzaW5nIFJGQzkxODAgSFBLRShQLTI1NiwgSEtERi1TSEEyNTYpIHdpdGhcbiAgICAgKiBBRVMtMjU2LUdDTSBhcyB0aGUgc3ltbWV0cmljIGNpcGhlci4gSW4gdGhpcyBjYXNlLCB0aGUgcmVzdWx0aW5nIGNpcGhlcnRleHQgd2lsbFxuICAgICAqIGNvbnRhaW4gYSBzZXJpYWxpemVkIEpTT04gYmxvYiBjb250YWluaW5nIHRoZSB2ZWN0b3Igb2Ygc2hhcmVkIHNlY3JldHMgaW4gdGhlIHNhbWVcbiAgICAgKiBvcmRlciB0aGV5IHdlcmUgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0LlxuICAgICAqXG4gICAgICogSWYgdGhlIHVzZXIgZG9lcyBub3Qgc3BlY2lmeSBhIHB1YmxpYyBrZXksIHRoZSByZXN1bHRpbmcgc2hhcmVkIHNlY3JldHMgd2lsbCBiZVxuICAgICAqIHJldHVybmVkIHVuZW5jcnlwdGVkLiBJbiB0aGlzIGNhc2UsIHRoZSBjYWxsZXIgc2hvdWxkIHNhbXBsZSBhIHJhbmRvbSB2YWx1ZSByXG4gICAgICogbW9kdWxvIHRoZSBncm91cCBvcmRlciBhbmQgbWFzayB0aGUgcmVxdWVzdGVkIHBvaW50cyBhcyAociAqIFBfMSwgLi4uLCByICogUF9pKS5cbiAgICAgKiBUaGUgcmVzdWx0IHdpbGwgYmUgKHIgKiBzayAqIFBfMSwgLi4uLCByICogc2sgKiBQX2kpLCB3aGljaCBjYW4gYmUgdW5tYXNrZWQgYnlcbiAgICAgKiBmaXJzdCBjb21wdXRpbmcgcl4tMSwgdGhlIG11bHRpcGxpY2F0aXZlIGludmVyc2Ugb2YgciBtb2R1bG8gdGhlIGdyb3VwIG9yZGVyLFxuICAgICAqIHRoZW4gY29tcHV0aW5nIGEgc2NhbGFyIG11bHRpcGxpY2F0aW9uIG9mIGVhY2ggcmV0dXJuZWQgcG9pbnQgd2l0aCByXi0xLlxuICAgICAqXG4gICAgICogVGhlcmUgaXMgbGl0dGxlIHByYWN0aWNhbCBzZWN1cml0eSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlc2UgdHdvIGFwcHJvYWNoZXMuIFRoZVxuICAgICAqIGNsaWVudCBpcyBmcmVlIHRvIGNob29zZSB0aGUgb25lIHRoYXQgaXMgZWFzaWVyIGZyb20gYW4gaW1wbGVtZW50YXRpb24gcGVyc3BlY3RpdmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImRpZmZpZUhlbGxtYW5FeGNoYW5nZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2VtYWlscy97cHVycG9zZX1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBFbWFpbCBUZW1wbGF0ZVxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgRW1haWwgVGVtcGxhdGVcbiAgICAgKlxuICAgICAqIFJldHVybnMgdGhlIGVtYWlsIHRlbXBsYXRlIGZvciBhIGdpdmVuIHB1cnBvc2UuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0RW1haWxDb25maWdcIl07XG4gICAgLyoqXG4gICAgICogQ29uZmlndXJlIEVtYWlsIFRlbXBsYXRlXG4gICAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyZSBFbWFpbCBUZW1wbGF0ZVxuICAgICAqL1xuICAgIHB1dDogb3BlcmF0aW9uc1tcImNvbmZpZ3VyZUVtYWlsXCJdO1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSBFbWFpbCBUZW1wbGF0ZVxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgRW1haWwgVGVtcGxhdGVcbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJkZWxldGVFbWFpbENvbmZpZ1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2V2bS9laXAxOTEvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBFSVAtMTkxIERhdGFcbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBFSVAtMTkxIERhdGFcbiAgICAgKlxuICAgICAqIFNpZ25zIGEgbWVzc2FnZSB1c2luZyBFSVAtMTkxIHBlcnNvbmFsX3NpZ24gd2l0aCBhIGdpdmVuIFNlY3AyNTZrMSBrZXkuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImVpcDE5MVNpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9ldm0vZWlwNzEyL3NpZ24ve3B1YmtleX1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gRUlQLTcxMiBUeXBlZCBEYXRhXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gRUlQLTcxMiBUeXBlZCBEYXRhXG4gICAgICpcbiAgICAgKiBTaWducyB0eXBlZCBkYXRhIGFjY29yZGluZyB0byBFSVAtNzEyIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJlaXA3MTJTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vZXZtL2VpcDc3MDIvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBhbiBFSVAtNzcwMiBBdXRob3JpemF0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gYW4gRUlQLTc3MDIgQXV0aG9yaXphdGlvblxuICAgICAqXG4gICAgICogU2lnbnMgYW4gRUlQLTc3MDIgYXV0aG9yaXphdGlvbiB0dXBsZSBgKGNoYWluX2lkLCBhZGRyZXNzLCBub25jZSlgIHdpdGggYSBnaXZlblxuICAgICAqIFNlY3AyNTZrMSBrZXkuIFRoZSByZXN1bHRpbmcgNjUtYnl0ZSBzaWduYXR1cmUgKGByIHx8IHMgfHwgeV9wYXJpdHlgKSBjYW4gYmUgdXNlZCB0b1xuICAgICAqIGFzc2VtYmxlIGEgYFNpZ25lZEF1dGhvcml6YXRpb25gIGZvciBhbiBFSVAtNzcwMiBzZXQtY29kZSB0cmFuc2FjdGlvbi5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiZWlwNzcwMlNpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9leHBvcnQve2tleV9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBhbiBPcmctRXhwb3J0IENpcGhlcnRleHRcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IGFuIE9yZy1FeHBvcnQgQ2lwaGVydGV4dFxuICAgICAqXG4gICAgICogUmV0dXJucyB0aGUgZXhwb3J0IGNpcGhlcnRleHQgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm92aWRlZCBrZXktaWQuXG4gICAgICogSW4gb3JkZXIgdG8gdXNlIHRoaXMgQVBJLCB5b3UgbXVzdCBiZSBhbiBvcmcgb3duZXIgYW5kIHlvdXIgb3JnIG11c3RcbiAgICAgKiBiZSBjb25maWd1cmVkIGZvciBvcmcgZXhwb3J0IGFuZCBmb3IgQVBJLWJhc2VkIGV4cG9ydCBkZWxpdmVyeS5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJnZXRPcmdFeHBvcnRcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pZGVudGl0eVwiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBhc3NvY2lhdGVkIE9JREMgaWRlbnRpdGllcyB3aXRoIHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgYXNzb2NpYXRlZCBPSURDIGlkZW50aXRpZXMgd2l0aCB0aGUgY3VycmVudCB1c2VyLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RPaWRjSWRlbnRpdGllc1wiXTtcbiAgICAvKipcbiAgICAgKiBBc3NvY2lhdGUgYW4gT0lEQyBpZGVudGl0eSB3aXRoIHRoZSBjdXJyZW50IHVzZXIgaW4gb3JnIDxzZXNzaW9uLm9yZz4uXG4gICAgICogQGRlc2NyaXB0aW9uIEFzc29jaWF0ZSBhbiBPSURDIGlkZW50aXR5IHdpdGggdGhlIGN1cnJlbnQgdXNlciBpbiBvcmcgPHNlc3Npb24ub3JnPi5cbiAgICAgKlxuICAgICAqIEFsaWVuIHVzZXJzIGFyZSBhbGxvd2VkIHRvIGNhbGwgdGhpcyBlbmRwb2ludCwgYnV0IGZvciB0aGVtIE1GQSBpcyByZXF1aXJlZFxuICAgICAqICh1bmxlc3MgdGhleSBhcmUgcmVnaXN0ZXJpbmcgYW4gZW1haWwtb3RwIGlkZW50aXR5IG1hdGNoaW5nIHRoZWlyIGN1cnJlbnQgZW1haWwpO1xuICAgICAqIGFkZGl0aW9uYWxseSwgbGltaXRzIG1heSBhcHBseSB0byBob3cgbWFueSBpZGVudGl0aWVzIHRoYXQgbWF5IHJlZ2lzdGVyLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJhZGRPaWRjSWRlbnRpdHlcIl07XG4gICAgLyoqXG4gICAgICogUmVtb3ZlIGFuIE9JREMgaWRlbnRpdHkgZnJvbSB0aGUgY3VycmVudCB1c2VyJ3MgYWNjb3VudCBpbiBvcmcgPHNlc3Npb24ub3JnPi5cbiAgICAgKiBAZGVzY3JpcHRpb24gUmVtb3ZlIGFuIE9JREMgaWRlbnRpdHkgZnJvbSB0aGUgY3VycmVudCB1c2VyJ3MgYWNjb3VudCBpbiBvcmcgPHNlc3Npb24ub3JnPi5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJyZW1vdmVPaWRjSWRlbnRpdHlcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pZGVudGl0eS9wcm92ZVwiOiB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIFtJZGVudGl0eVByb29mXSBmcm9tIEN1YmVTaWduZXIgdXNlciBzZXNzaW9uXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBDdWJlU2lnbmVyIHVzZXIgc2Vzc2lvblxuICAgICAqXG4gICAgICogVGhpcyByb3V0ZSBjYW4gYmUgdXNlZCB0byBwcm92ZSB0byBhbm90aGVyIHBhcnR5IHRoYXQgYSB1c2VyIGhhcyBhXG4gICAgICogdmFsaWQgQ3ViZVNpZ25lciBzZXNzaW9uLlxuICAgICAqXG4gICAgICogQ2xpZW50cyBhcmUgaW50ZW5kZWQgdG8gY2FsbCB0aGlzIHJvdXRlIGFuZCBwYXNzIHRoZSByZXR1cm5lZCBldmlkZW5jZVxuICAgICAqIHRvIGFub3RoZXIgc2VydmljZSB3aGljaCB3aWxsIHZlcmlmeSBpdCBieSBtYWtpbmcgYSByZXF1ZXN0IHRvIGAvdjAvb3JnLzxvcmdfaWQ+L2lkZW50aXR5L3ZlcmlmeWAuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZVByb29mQ3ViZVNpZ25lclwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2lkZW50aXR5L3Byb3ZlL29pZGNcIjoge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBPSURDIHRva2VuXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBPSURDIHRva2VuXG4gICAgICpcbiAgICAgKiBFeGNoYW5nZSBhbiBPSURDIElEIHRva2VuIChwYXNzZWQgdmlhIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyKSBmb3IgYSBwcm9vZiBvZiBhdXRoZW50aWNhdGlvbi5cbiAgICAgKlxuICAgICAqIFRoaXMgcm91dGUgY2FuIGJlIHVzZWQgdG8gcHJvdmUgdG8gYW5vdGhlciBwYXJ0eSB0aGF0IGEgdXNlciBoYXMgbWV0IHRoZVxuICAgICAqIGF1dGhlbnRpY2F0aW9uIHJlcXVpcmVtZW50cyAoYWxsb3dlZCBpc3N1ZXJzICYgYXVkaWVuY2VzKSBmb3IgQ3ViZVNpZ25lclxuICAgICAqIHdpdGhvdXQgbGVha2luZyB0aGVpciBjcmVkZW50aWFscy5cbiAgICAgKlxuICAgICAqIENsaWVudHMgYXJlIGludGVuZGVkIHRvIGNhbGwgdGhpcyByb3V0ZSBhbmQgcGFzcyB0aGUgcmV0dXJuZWQgZXZpZGVuY2UgdG8gYW5vdGhlciBzZXJ2aWNlXG4gICAgICogd2hpY2ggd2lsbCB2ZXJpZnkgaXQgYnkgbWFraW5nIGEgcmVxdWVzdCB0byBgL3YwL29yZy88b3JnX2lkPi9pZGVudGl0eS92ZXJpZnlgLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVQcm9vZk9pZGNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pZGVudGl0eS92ZXJpZnlcIjoge1xuICAgIC8qKlxuICAgICAqIFZlcmlmeSBpZGVudGl0eSBwcm9vZlxuICAgICAqIEBkZXNjcmlwdGlvbiBWZXJpZnkgaWRlbnRpdHkgcHJvb2ZcbiAgICAgKlxuICAgICAqIEFsbG93cyBhIHRoaXJkLXBhcnR5IHRvIHZhbGlkYXRlIHByb29mIG9mIGF1dGhlbnRpY2F0aW9uLlxuICAgICAqXG4gICAgICogV2hlbiBhIHRoaXJkLXBhcnR5IGlzIHByb3ZpZGVkIGFuIFtJZGVudGl0eVByb29mXSBvYmplY3QsIHRoZXkgbXVzdCBjaGVjayBpdHNcbiAgICAgKiB2ZXJhY2l0eSBieSBjYWxsaW5nIHRoaXMgZW5kcG9pbnRcbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1widmVyaWZ5UHJvb2ZcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pZHAvYXV0aGVudGljYXRlXCI6IHtcbiAgICAvKipcbiAgICAgKiBBdXRoZW50aWNhdGVcbiAgICAgKiBAZGVzY3JpcHRpb24gQXV0aGVudGljYXRlXG4gICAgICpcbiAgICAgKiBUaGlzIGVuZHBvaW50IGV4Y2hhbmdlcyBhbiBlbWFpbCAmIHBhc3N3b3JkIGZvciBhbiBPSURDIHRva2VuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImlkcEF1dGhlbnRpY2F0ZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2lkcC9wYXNzd29yZF9yZXNldFwiOiB7XG4gICAgLyoqXG4gICAgICogUmVxdWVzdCBQYXNzd29yZCBSZXNldFxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IFBhc3N3b3JkIFJlc2V0XG4gICAgICpcbiAgICAgKiBUaGlzIGVuZHBvaW50IGdlbmVyYXRlcyBhbiBPSURDIHRva2VuIHdpdGhvdXQgYSBzaWduYXR1cmUgKG9mIHRoZSBmb3JtIGB7aGVhZGVyfS57cGF5bG9hZH0uYCksXG4gICAgICogYW5kIHNlbmRzIHRoZSBzaWduYXR1cmUgdG8gdGhlIHVzZXIncyBlbWFpbC4gQ2xpZW50IGFwcGxpY2F0aW9ucyBjYW4gcmVjb25zdHJ1Y3QgdGhlIHRva2VuXG4gICAgICogYnkgY29uY2F0ZW5hdGluZyB0aGUgYHtoZWFkZXJ9LntwYXlsb2FkfS5gIHdpdGggdGhlIHNpZ25hdHVyZSwgcHJvZHVjaW5nIGEgdmFsaWQgT0lEQyB0b2tlbiBvZlxuICAgICAqIHRoZSBmb3JtIGB7aGVhZGVyfS57cGF5bG9hZH0ue3NpZ25hdHVyZX1gLiBUaGUgdG9rZW4gY2FuIHRoZW4gYmUgdXNlZCB0byBhdXRoZW50aWNhdGUgdGhlIHVzZXJcbiAgICAgKiB3aGVuIHBlcmZvcm1pbmcgdGhlIGBpZHBfcGFzc3dvcmRfcmVzZXRfY29uZmlybWAgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiaWRwUGFzc3dvcmRSZXNldFJlcXVlc3RcIl07XG4gICAgLyoqXG4gICAgICogQ29uZmlybSBQYXNzd29yZCBSZXNldFxuICAgICAqIEBkZXNjcmlwdGlvbiBDb25maXJtIFBhc3N3b3JkIFJlc2V0XG4gICAgICpcbiAgICAgKiBUaGlzIGVuZHBvaW50IGFsbG93cyBJRFAgdXNlcnMgdG8gcmVzZXQgdGhlaXIgcGFzc3dvcmRcbiAgICAgKiB1c2luZyBhIHRva2VuIHRoZXkgaGF2ZSByZWNlaXZlZCBpbiB0aGVpciBlbWFpbC5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcImlkcFBhc3N3b3JkUmVzZXRDb25maXJtXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vaW1wb3J0X2tleVwiOiB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIEtleS1JbXBvcnQgS2V5XG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBLZXktSW1wb3J0IEtleVxuICAgICAqXG4gICAgICogR2VuZXJhdGUgYW4gZXBoZW1lcmFsIGtleSB0aGF0IGEgY2xpZW50IGNhbiB1c2UgZm9yIGtleS1pbXBvcnQgZW5jcnlwdGlvbi5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJjcmVhdGVLZXlJbXBvcnRLZXlcIl07XG4gICAgLyoqXG4gICAgICogSW1wb3J0IEtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBJbXBvcnQgS2V5XG4gICAgICpcbiAgICAgKiBTZWN1cmVseSBpbXBvcnRzIGFuIGV4aXN0aW5nIGtleSB1c2luZyBhIHByZXZpb3VzbHkgZ2VuZXJhdGVkIGtleS1pbXBvcnQga2V5LlxuICAgICAqL1xuICAgIHB1dDogb3BlcmF0aW9uc1tcImltcG9ydEtleVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2luZm9cIjoge1xuICAgIC8qKlxuICAgICAqIFB1YmxpYyBPcmcgSW5mb1xuICAgICAqIEBkZXNjcmlwdGlvbiBQdWJsaWMgT3JnIEluZm9cbiAgICAgKlxuICAgICAqIFVuYXV0aGVudGljYXRlZCBlbmRwb2ludCB0aGF0IHJldHVybnMgcHVibGljbHktYXZhaWxhYmxlIGluZm9ybWF0aW9uIGFib3V0IGFuIG9yZ2FuaXphdGlvbi5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJwdWJsaWNfb3JnX2luZm9cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pbnRlcm5hbC9jdXN0b21fY2hhaW5fcnBjXCI6IHtcbiAgICAvKipcbiAgICAgKiAoSU5URVJOQUwpIEN1c3RvbSBjaGFpbiBSUEMgcHJveHlcbiAgICAgKiBAZGVzY3JpcHRpb24gKElOVEVSTkFMKSBDdXN0b20gY2hhaW4gUlBDIHByb3h5XG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImN1c3RvbUNoYWluUnBjQ2FsbFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2ludGVybmFsL2VzcGxvcmFcIjoge1xuICAgIC8qKlxuICAgICAqIChJTlRFUk5BTCkgRXNwbG9yYSBBUEkgUHJveHlcbiAgICAgKiBAZGVzY3JpcHRpb24gKElOVEVSTkFMKSBFc3Bsb3JhIEFQSSBQcm94eVxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJlc3Bsb3JhQXBpQ2FsbFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2ludGVybmFsL3NlbnRyeVwiOiB7XG4gICAgLyoqXG4gICAgICogKElOVEVSTkFMKSBBdXRoZW50aWNhdGVkIFNlbnRyeSBBUEkgUHJveHlcbiAgICAgKiBAZGVzY3JpcHRpb24gKElOVEVSTkFMKSBBdXRoZW50aWNhdGVkIFNlbnRyeSBBUEkgUHJveHlcbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wic2VudHJ5QXBpQ2FsbFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2ludml0YXRpb24vYWNjZXB0XCI6IHtcbiAgICAvKipcbiAgICAgKiBBY2NlcHQgYW4gaW52aXRhdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBBY2NlcHQgYW4gaW52aXRhdGlvblxuICAgICAqXG4gICAgICogVGhpcyBlbmRwb2ludCBhbGxvd3MgaWRwIHVzZXJzIHRvIHJlZ2lzdGVyIHVzaW5nIGEgdG9rZW4gdGhleSBoYXZlIHJlY2VpdmVkIGluIHRoZWlyIGVtYWlsXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImludml0YXRpb25BY2NlcHRcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pbnZpdGF0aW9uc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBwZW5kaW5nIGludml0YXRpb25zXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgcGVuZGluZyBpbnZpdGF0aW9uc1xuICAgICAqXG4gICAgICogUmV0dXJucyBhbGwgcGVuZGluZyBpbnZpdGF0aW9ucyBmb3IgdGhlIG9yZ2FuaXphdGlvbiwgaS5lLiwgdGhvc2UgdGhhdCBoYXZlIG5laXRoZXJcbiAgICAgKiBiZWVuIGFjY2VwdGVkIG5vciBjYW5jZWxlZCwgYW5kIGhhdmUgbm90IGV4cGlyZWQuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdEludml0YXRpb25zXCJdO1xuICAgIC8qKlxuICAgICAqIENhbmNlbCBhIHBlbmRpbmcgaW52aXRhdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBDYW5jZWwgYSBwZW5kaW5nIGludml0YXRpb25cbiAgICAgKlxuICAgICAqIFJlbW92ZXMgYSBwZW5kaW5nIGludml0YXRpb24gZnJvbSB0aGUgb3JnYW5pemF0aW9uLiBJZiBubyBwZW5kaW5nIGludml0YXRpb25cbiAgICAgKiBleGlzdHMgZm9yIHRoZSBnaXZlbiBlbWFpbCBhZGRyZXNzLCBhIG5vdC1mb3VuZCBlcnJvciBpcyByZXR1cm5lZC5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJjYW5jZWxJbnZpdGF0aW9uXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vaW52aXRlXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbnZpdGUgVXNlclxuICAgICAqIEBkZXNjcmlwdGlvbiBJbnZpdGUgVXNlclxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhIG5ldyB1c2VyIGluIGFuIGV4aXN0aW5nIG9yZyBhbmQgc2VuZHMgdGhhdCB1c2VyIGFuIGludml0ZSBlbWFpbC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiaW52aXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0va2V5c1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBLZXlzXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgS2V5c1xuICAgICAqXG4gICAgICogR2V0cyB0aGUgbGlzdCBvZiBhY2Nlc3NpYmxlIGtleXMgaW4gYSBnaXZlbiBvcmcgKHRvIG9yZyBvd25lciwgYWxsIG9yZyBrZXlzXG4gICAgICogYXJlIGFjY2Vzc2libGU7IHRvIG1lbWJlcnMsIG9ubHkgdGhlaXIgb3duIGtleXMgYXJlIGFjY2Vzc2libGUpLlxuICAgICAqXG4gICAgICogSWYgYSBzZWFyY2ggY29uZGl0aW9uIGlzLCB0aGUgcmVzdWx0IHdpbGwgY29udGFpbiBvbmx5IHRoZSBrZXlzIHdob3NlIGVpdGhlclxuICAgICAqIG1hdGVyaWFsIElEIG9yIG1ldGFkYXRhIGNvbnRhaW4gdGhlIHNlYXJjaCBjb25kaXRpb24gc3RyaW5nLlxuICAgICAqXG4gICAgICogTk9URSB0aGF0IGlmIHBhZ2luYXRpb24gaXMgdXNlZCBhbmQgYSBwYWdlIGxpbWl0IGlzIHNldCwgdGhlIHJldHVybmVkIHJlc3VsdFxuICAgICAqIHNldCBtYXkgY29udGFpbiBlaXRoZXIgRkVXRVIgb3IgTU9SRSBlbGVtZW50cyB0aGFuIHRoZSByZXF1ZXN0ZWQgcGFnZSBsaW1pdC5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0S2V5c0luT3JnXCJdO1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIEtleVxuICAgICAqXG4gICAgICogQ3JlYXRlcyBvbmUgb3IgbW9yZSBuZXcga2V5cyBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZUtleVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2tleXMve2tleV9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IEtleVxuICAgICAqXG4gICAgICogUmV0dXJucyB0aGUgcHJvcGVydGllcyBvZiBhIGtleS5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJnZXRLZXlJbk9yZ1wiXTtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgS2V5XG4gICAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBLZXlcbiAgICAgKlxuICAgICAqIERlbGV0ZXMgYSBrZXkgc3BlY2lmaWVkIGJ5IGl0cyBJRC5cbiAgICAgKlxuICAgICAqIE9ubHkgdGhlIGtleSBvd25lciBhbmQgb3JnIG93bmVycyBhcmUgYWxsb3dlZCB0byBkZWxldGUga2V5cy5cbiAgICAgKiBBZGRpdGlvbmFsbHksIHRoZSByb2xlJ3MgZWRpdCBwb2xpY3kgKGlmIHNldCkgbXVzdCBwZXJtaXQgdGhlIHVwZGF0ZS5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJkZWxldGVLZXlcIl07XG4gICAgLyoqXG4gICAgICogVXBkYXRlIEtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgS2V5XG4gICAgICpcbiAgICAgKiBFbmFibGUgb3IgZGlzYWJsZSBhIGtleS4gIFRoZSB1c2VyIG11c3QgYmUgdGhlIG93bmVyIG9mIHRoZSBrZXkgb3JcbiAgICAgKiBvcmdhbml6YXRpb24gdG8gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEZvciBlYWNoIHJlcXVlc3RlZCB1cGRhdGUsIHRoZSBzZXNzaW9uIG11c3QgaGF2ZSB0aGUgY29ycmVzcG9uZGluZyAnbWFuYWdlOmtleTp1cGRhdGU6Xycgc2NvcGU7XG4gICAgICogaWYgbm8gdXBkYXRlcyBhcmUgcmVxdWVzdGVkLCB0aGUgc2Vzc2lvbiBtdXN0IGhhdmUgJ21hbmFnZTprZXk6Z2V0Jy5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInVwZGF0ZUtleVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2tleXMve2tleV9pZH0vYXR0ZXN0XCI6IHtcbiAgICAvKipcbiAgICAgKiBBdHRlc3QgdG8gS2V5IFByb3BlcnRpZXNcbiAgICAgKiBAZGVzY3JpcHRpb24gQXR0ZXN0IHRvIEtleSBQcm9wZXJ0aWVzXG4gICAgICpcbiAgICAgKiBUaGUgcmVzcG9uc2UgaXMgYSBKV1Qgd2hvc2UgY2xhaW1zIGFyZSB0aGUga2V5IHByb3BlcnRpZXMuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiYXR0ZXN0S2V5XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0va2V5cy97a2V5X2lkfS9yb2xlc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBLZXkgUm9sZXNcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBLZXkgUm9sZXNcbiAgICAgKlxuICAgICAqIEdldCBhbGwgcm9sZXMgdGhlIGtleSBpcyBpblxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RLZXlSb2xlc1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2tleXMve2tleV9pZH0vdHhcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgSGlzdG9yaWNhbCBUcmFuc2FjdGlvbnNcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBIaXN0b3JpY2FsIFRyYW5zYWN0aW9uc1xuICAgICAqXG4gICAgICogUmV0dXJucyBhIHNvcnRlZCwgcGFnaW5hdGVkIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIHNpZ25lZCBieSBhIGdpdmVuIGtleSxcbiAgICAgKiBvcmRlcmVkIGZyb20gbW9zdCByZWNlbnQgZmlyc3QuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdEhpc3RvcmljYWxLZXlUeFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2tleXMve2tleV90eXBlfS97bWF0ZXJpYWxfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgS2V5IGJ5IE1hdGVyaWFsIElEXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBLZXkgYnkgTWF0ZXJpYWwgSURcbiAgICAgKlxuICAgICAqIFJldHVybnMgdGhlIHByb3BlcnRpZXMgb2YgYSBrZXkuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0S2V5QnlNYXRlcmlhbElkXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbWV0cmljc1wiOiB7XG4gICAgLyoqXG4gICAgICogUXVlcnkgb3JnIG1ldHJpY3MuXG4gICAgICogQGRlc2NyaXB0aW9uIFF1ZXJ5IG9yZyBtZXRyaWNzLlxuICAgICAqXG4gICAgICogTWV0cmljcyBzdW1tYXJpemUgdXNhZ2UgaW5mb3JtYXRpb24gYWJvdXQgeW91ciBDdWJlU2lnbmVyIG9yZ2FuaXphdGlvbiBvdmVyIHRpbWUuIEZvciBleGFtcGxlLFxuICAgICAqIHlvdSBjYW4gY2FsbCB0aGlzIGVuZHBvaW50IGZpbmQgb3V0OlxuICAgICAqXG4gICAgICogLSB0aGUgYXZlcmFnZSBudW1iZXIgb2Yga2V5cyBvdmVyIHRoZSBsYXN0IG1vbnRoLFxuICAgICAqIC0gdGhlIGF2ZXJhZ2UgbnVtYmVyIG1vbnRobHkgdXNlcnMgb3ZlciB0aGUgbGFzdCB5ZWFyLFxuICAgICAqIC0gdGhlIHRvdGFsIG51bWJlciBvZiB0cmFuc2FjdGlvbnMgc2lnbmVkIGxhc3Qgd2VlayxcbiAgICAgKiAtIGhvdyB0aGUgbnVtYmVyIG9mIGRpZmZlcmVudCBBUEkgcmVxdWVzdHMgd2FzIHRyZW5kaW5nIGRheS1ieS1kYXkgb3ZlciB0aGUgbGFzdCB3ZWVrL21vbnRoL3llYXIsIGV0Yy5cbiAgICAgKlxuICAgICAqIEVhY2ggbWV0cmljIGtpbmQgY2FuIGhhdmUgb25lIG9yIG1vcmUgZGltZW5zaW9ucywgdG8gZnVydGhlciBzcGVjaWZ5IHRoZSBvcmcgcHJvcGVydHkgaXQgZGVzY3JpYmVzLlxuICAgICAqIEZvciBleGFtcGxlLCB0aGUgYFVzZXJDb3VudGAgbWV0cmljcyBoYXZlIGEgbWVtYmVyc2hpcCBkaW1lbnNpb25zIHRvIHNwZWNpZnkgdGhlIGtpbmQgb2YgdXNlciBtZW1iZXJzaGlwXG4gICAgICogaW4gdGhlIG9yZ2FuaXphdGlvbiAoXCJPd25lclwiIHZzLiBcIk1lbWJlclwiIHZzLiBcIkFsaWVuXCIpLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJxdWVyeU1ldHJpY3NcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9tZmFcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgUGVuZGluZyBNRkEgUmVxdWVzdHNcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBQZW5kaW5nIE1GQSBSZXF1ZXN0c1xuICAgICAqXG4gICAgICogUmV0cmlldmVzIGFuZCByZXR1cm5zIGFsbCBwZW5kaW5nIE1GQSByZXF1ZXN0cyB0aGF0IGFyZSBhY2Nlc3NpYmxlIHRvIHRoZSBjdXJyZW50IHNlc3Npb24sXG4gICAgICogaS5lLiwgdGhvc2UgY3JlYXRlZCBieSB0aGUgY3VycmVudCBzZXNzaW9uIGlkZW50aXR5IHBsdXMgdGhvc2UgaW4gd2hpY2ggdGhlIGN1cnJlbnQgdXNlclxuICAgICAqIGlzIGxpc3RlZCBhcyBhbiBhcHByb3ZlclxuICAgICAqXG4gICAgICogTk9URSB0aGF0IGlmIHBhZ2luYXRpb24gaXMgdXNlZCBhbmQgYSBwYWdlIGxpbWl0IGlzIHNldCwgdGhlIHJldHVybmVkIHJlc3VsdFxuICAgICAqIHNldCBtYXkgY29udGFpbiBlaXRoZXIgRkVXRVIgb3IgTU9SRSBlbGVtZW50cyB0aGFuIHRoZSByZXF1ZXN0ZWQgcGFnZSBsaW1pdC5cbiAgICAgKiBJbiBwYXJ0aWN1bGFyLCBsZWdhY3kgTUZBIHJlcXVlc3RzIGFyZSBub3QgcGFnaW5hdGVkOiBldmVyeSBhY2Nlc3NpYmxlIG9uZVxuICAgICAqIGlzIHJldHVybmVkIGluIHRoZSBmaXJzdCBwYWdlLCBvbiB0b3Agb2YgdGhlIHBhZ2UgbGltaXQuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibWZhTGlzdFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L21mYS97bWZhX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IFBlbmRpbmcgTUZBIFJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IFBlbmRpbmcgTUZBIFJlcXVlc3RcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBhbmQgcmV0dXJucyBhIHBlbmRpbmcgTUZBIHJlcXVlc3QgYnkgaXRzIGlkLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcIm1mYUdldFwiXTtcbiAgICAvKipcbiAgICAgKiBBcHByb3ZlIG9yIFJlamVjdCBNRkEgUmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZlIG9yIFJlamVjdCBNRkEgUmVxdWVzdFxuICAgICAqXG4gICAgICogQXBwcm92ZSBvciByZWplY3QgcmVxdWVzdCBhZnRlciBsb2dnaW5nIGluIHdpdGggQ3ViZVNpZ25lci5cbiAgICAgKlxuICAgICAqIElmIGFwcHJvdmluZywgYWRkcyB0aGUgY3VycmVudGx5LWxvZ2dlZCB1c2VyIGFzIGFuIGFwcHJvdmVyXG4gICAgICogb2YgYSBwZW5kaW5nIE1GQSByZXF1ZXN0IG9mIHRoZSBbU3RhdHVzOjpSZXF1aXJlZEFwcHJvdmVyc10ga2luZC4gSWYgdGhlIHJlcXVpcmVkIG51bWJlciBvZlxuICAgICAqIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7IHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0b1xuICAgICAqIHJlc3VtZSB0aGUgb3JpZ2luYWwgSFRUUCByZXF1ZXN0LlxuICAgICAqXG4gICAgICogSWYgcmVqZWN0aW5nLCBpbW1lZGlhdGVseSBkZWxldGVzIHRoZSBwZW5kaW5nIE1GQSByZXF1ZXN0LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wibWZhVm90ZUNzXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbWZhL3ttZmFfaWR9L2VtYWlsXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbml0aWF0ZSBhbiBFbWFpbCBPVFAgTUZBIEFwcHJvdmFsL1JlamVjdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSBhbiBFbWFpbCBPVFAgTUZBIEFwcHJvdmFsL1JlamVjdGlvblxuICAgICAqXG4gICAgICogSW5pdGlhdGVzIHRoZSBhcHByb3ZhbC9yZWplY3Rpb24gcHJvY2VzcyBvZiBhbiBNRkEgUmVxdWVzdCB1c2luZyBFbWFpbCBPVFAuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcIm1mYUVtYWlsSW5pdFwiXTtcbiAgICAvKipcbiAgICAgKiBGaW5hbGl6ZSBhIEVtYWlsIE9UUCBNRkEgQXBwcm92YWwvUmVqZWN0aW9uLlxuICAgICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSBhIEVtYWlsIE9UUCBNRkEgQXBwcm92YWwvUmVqZWN0aW9uLlxuICAgICAqXG4gICAgICogVGhlIHJlcXVlc3Qgc2hvdWxkIGNvbnRhaW4gdGhlIGZ1bGwgSldUIG9idGFpbmVkIGJ5IGNvbmNhdGVuYXRpbmcgdGhlXG4gICAgICogcGFydGlhbCB0b2tlbiByZXR1cm5lZCBieSB0aGUgYG1mYV9lbWFpbF9pbml0YCBlbmRwb2ludCBhbmQgdGhlIHNpZ25hdHVyZVxuICAgICAqIGVtYWlsZWQgdG8gdGhlIHVzZXIgaXNzdWluZyB0aGUgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIElmIGFwcHJvdmluZywgYWRkcyBhbiBhcHByb3ZlciB0byBhIHBlbmRpbmcgTUZBIHJlcXVlc3QuXG4gICAgICogSWYgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBhcHByb3ZlcnMgaXMgcmVhY2hlZCwgdGhlIE1GQSByZXF1ZXN0IGlzIGFwcHJvdmVkO1xuICAgICAqIHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0byByZXN1bWUgdGhlIG9yaWdpbmFsIEhUVFAgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIElmIHJlamVjdGluZywgaW1tZWRpYXRlbHkgZGVsZXRlcyB0aGUgcGVuZGluZyBNRkEgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcIm1mYVZvdGVFbWFpbENvbXBsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbWZhL3ttZmFfaWR9L2ZpZG9cIjoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYXRlIGEgRklETyBNRkEgQXBwcm92YWwvUmVqZWN0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIGEgRklETyBNRkEgQXBwcm92YWwvUmVqZWN0aW9uXG4gICAgICpcbiAgICAgKiBJbml0aWF0ZXMgdGhlIGFwcHJvdmFsL3JlamVjdGlvbiBwcm9jZXNzIG9mIGFuIE1GQSBSZXF1ZXN0IHVzaW5nIEZJRE8uXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcIm1mYUZpZG9Jbml0XCJdO1xuICAgIC8qKlxuICAgICAqIEZpbmFsaXplIGEgRklETyBNRkEgQXBwcm92YWwvUmVqZWN0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIEZpbmFsaXplIGEgRklETyBNRkEgQXBwcm92YWwvUmVqZWN0aW9uXG4gICAgICpcbiAgICAgKiBJZiBhcHByb3ZpbmcsIGFkZHMgYW4gYXBwcm92ZXIgdG8gYSBwZW5kaW5nIE1GQSByZXF1ZXN0LlxuICAgICAqIElmIHRoZSByZXF1aXJlZCBudW1iZXIgb2YgYXBwcm92ZXJzIGlzIHJlYWNoZWQsIHRoZSBNRkEgcmVxdWVzdCBpcyBhcHByb3ZlZDtcbiAgICAgKiB0aGUgY29uZmlybWF0aW9uIHJlY2VpcHQgY2FuIGJlIHVzZWQgdG8gcmVzdW1lIHRoZSBvcmlnaW5hbCBIVFRQIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBJZiByZWplY3RpbmcsIGltbWVkaWF0ZWx5IGRlbGV0ZXMgdGhlIHBlbmRpbmcgTUZBIHJlcXVlc3QuXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJtZmFWb3RlRmlkb0NvbXBsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbWZhL3ttZmFfaWR9L3RvdHBcIjoge1xuICAgIC8qKlxuICAgICAqIEFwcHJvdmUvUmVqZWN0IGEgVE9UUCBNRkEgUmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZlL1JlamVjdCBhIFRPVFAgTUZBIFJlcXVlc3RcbiAgICAgKlxuICAgICAqIElmIGFwcHJvdmluZywgYWRkcyB0aGUgY3VycmVudCB1c2VyIGFzIGFwcHJvdmVyIHRvIGEgcGVuZGluZyBNRkEgcmVxdWVzdCBieVxuICAgICAqIHByb3ZpZGluZyBUT1RQIGNvZGUuIElmIHRoZSByZXF1aXJlZCBudW1iZXIgb2YgYXBwcm92ZXJzIGlzIHJlYWNoZWQsIHRoZSBNRkEgcmVxdWVzdCBpc1xuICAgICAqIGFwcHJvdmVkOyB0aGUgY29uZmlybWF0aW9uIHJlY2VpcHQgY2FuIGJlIHVzZWQgdG8gcmVzdW1lIHRoZSBvcmlnaW5hbCBIVFRQIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBJZiByZWplY3RpbmcsIGltbWVkaWF0ZWx5IGRlbGV0ZXMgdGhlIHBlbmRpbmcgTUZBIHJlcXVlc3QuXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJtZmFWb3RlVG90cFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L21taS92My9tZXNzYWdlc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBwZW5kaW5nIE1NSSByZXF1ZXN0c1xuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IHBlbmRpbmcgTU1JIHJlcXVlc3RzXG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgYW5kIHJldHVybnMgYWxsIHBlbmRpbmcgTU1JIG1lc3NhZ2VzIGFjY2Vzc2libGUgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbiBpZGVudGl0eSwgaS5lLixcbiAgICAgKiAtIGEgcm9sZSBzZXNzaW9uIGNhbiBhY2Nlc3Mgb25seSB0aGUgbWVzc2FnZXMgY3JlYXRlZCBieSB0aGF0IHJvbGVcbiAgICAgKiAtIGEgdXNlciBzZXNzaW9uIGNhbiBhY2Nlc3MgdGhlIG1lc3NhZ2VzIGNyZWF0ZWQgYnkgZWl0aGVyIHRoYXQgdXNlciBvciBhbnkgcm9sZSB3aGljaCB0aGUgdXNlciBpcyBhIG1lbWJlciBvZlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcIm1taU1lc3NhZ2VMaXN0XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbW1pL3YzL21lc3NhZ2VzL3ttc2dfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgYW4gTU1JIHJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IGFuIE1NSSByZXF1ZXN0XG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgYSBwZW5kaW5nIE1NSSByZXF1ZXN0IGJ5IGl0cyBJRC5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJtbWlNZXNzYWdlR2V0XCJdO1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSBhbiBNTUkgcmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgYW4gTU1JIHJlcXVlc3RcbiAgICAgKlxuICAgICAqIFJlamVjdHMgYW4gZXhpc3RpbmcgTU1JIHJlcXVlc3QgYW5kIHRoZW4gZGVsZXRlcyBpdCBmcm9tIHRoZSBkYXRhYmFzZS5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJtbWlNZXNzYWdlRGVsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbW1pL3YzL21lc3NhZ2VzL3ttc2dfaWR9L3JlamVjdFwiOiB7XG4gICAgLyoqXG4gICAgICogUmVqZWN0IGFuIE1NSSByZXF1ZXN0XG4gICAgICogQGRlc2NyaXB0aW9uIFJlamVjdCBhbiBNTUkgcmVxdWVzdFxuICAgICAqXG4gICAgICogUmVqZWN0cyBhIHBlbmRpbmcgTU1JIHJlcXVlc3QuIFRoZSByZWNvcmQgb2YgdGhlIE1NSSByZXF1ZXN0IGlzIGtlcHQgaW5cbiAgICAgKiB0aGUgZGF0YWJhc2UgdW50aWwgaXQgZXhwaXJlcyBvciBpcyBleHBsaWNpdGx5IGRlbGV0ZWQuXG4gICAgICpcbiAgICAgKiBSZXR1cm5zIHRoZSB1cGRhdGVkIHJlcXVlc3QgaW5mb3JtYXRpb24uXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcIm1taU1lc3NhZ2VSZWplY3RcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9tbWkvdjMvbWVzc2FnZXMve21zZ19pZH0vc2lnblwiOiB7XG4gICAgLyoqXG4gICAgICogQXBwcm92ZSBhbmQgc2lnbiBhbiBNTUkgcmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZlIGFuZCBzaWduIGFuIE1NSSByZXF1ZXN0XG4gICAgICpcbiAgICAgKiBTaWducyBhIHBlbmRpbmcgcmVxdWVzdCB0aGF0IHdhcyBnZW5lcmF0ZWQgdGhyb3VnaCB0aGUgTU1JIEpTT04gUlBDIGVuZHBvaW50LlxuICAgICAqIFRoZSBzaWduYXR1cmUgaXMgc3RvcmVkIHdpdGggdGhlIHBlbmRpbmcgbWVzc2FnZSBhbmQgdGhlIHVwZGF0ZWQgcmVxdWVzdCBpbmZvIGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogVGhlIG1lc3NhZ2Ugc2hvdWxkIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgb3JnYW5pemF0aW9uIHRoaXMgaXMgY2FsbGVkIGZyb20sXG4gICAgICogYW5kIHRoZSB1c2VyIHNob3VsZCBiZSB0aGUgb3duZXIgb2YgdGhlIGNvcnJlc3BvbmRpbmcgbWVzc2FnZSdzIGtleS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wibW1pTWVzc2FnZVNpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9vYXV0aDIvdHdpdHRlclwiOiB7XG4gICAgLyoqXG4gICAgICogTWludCBhbiBPSURDIElEIHRva2VuIGZvciBUd2l0dGVyXG4gICAgICogQGRlc2NyaXB0aW9uIE1pbnQgYW4gT0lEQyBJRCB0b2tlbiBmb3IgVHdpdHRlclxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBhY3RzIGlkZW50aWNhbGx5IHRvIFR3aXR0ZXIncyBbYG9hdXRoMi90b2tlbmBdKGh0dHBzOi8vZGV2ZWxvcGVyLnR3aXR0ZXIuY29tL2VuL2RvY3MvYXV0aGVudGljYXRpb24vYXBpLXJlZmVyZW5jZS90b2tlbikgZW5kcG9pbnQsXG4gICAgICogYnV0IGV4dGVuZHMgdGhlIG91dHB1dCB3aXRoIGFuIGBpZF90b2tlbmAuXG4gICAgICpcbiAgICAgKiBUaGlzIGBpZF90b2tlbmAgY2FuIHRoZW4gYmUgdXNlZCB3aXRoIGFueSBDdWJlU2lnbmVyIGVuZHBvaW50IHRoYXQgcmVxdWlyZXMgYW4gT0lEQyB0b2tlbi5cbiAgICAgKiBDYWxsZXJzIG11c3QgcmVxdWVzdCAqYXQgbGVhc3QqIHNjb3BlcyBgdHdlZXQucmVhZGAgYW5kIGB1c2Vycy5yZWFkYCBkdXJpbmcgYXV0aCB3aXRoIHR3aXR0ZXIuXG4gICAgICpcbiAgICAgKiBCeSBkZWZhdWx0LCB0aGUgaWQgdG9rZW4gZG9lcyBub3QgY29udGFpbiBhIGNvbmZpcm1lZCBlbWFpbDtcbiAgICAgKiBjYWxsZXJzIGNhbiByZXF1ZXN0IHRoaXMgZmllbGQgYmUgcG9wdWxhdGVkIGJ5IHJlcXVlc3RpbmcgdGhlIGB1c2Vycy5lbWFpbGAgc2NvcGVcbiAgICAgKiBhbmQgYWRkaW5nIGBmZXRjaF9lbWFpbGAgYXMgYSBVUkwgcGFyYW1ldGVyIHRvIHRoaXMgcm91dGUuXG4gICAgICpcbiAgICAgKlxuICAgICAqID4gWyFJTVBPUlRBTlRdXG4gICAgICogPiBUaGlzIGVuZHBvaW50IHdpbGwgZmFpbCB1bmxlc3MgdGhlIG9yZyBpcyBjb25maWd1cmVkIHRvIGFsbG93IHRoZSBpc3N1ZXIgYGh0dHBzOi8vc2hpbS5vYXV0aDIuY3ViaXN0LmRldi90d2l0dGVyYCBhbmQgY2xpZW50IElEIGJlaW5nIHVzZWQgZm9yIFR3aXR0ZXIuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcIm9hdXRoMlR3aXR0ZXJcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9vaWRjXCI6IHtcbiAgICAvKipcbiAgICAgKiBMb2dpbiB3aXRoIE9JRENcbiAgICAgKiBAZGVzY3JpcHRpb24gTG9naW4gd2l0aCBPSURDXG4gICAgICpcbiAgICAgKiBFeGNoYW5nZSBhbiBPSURDIElEIHRva2VuIChwYXNzZWQgdmlhIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyKSBmb3IgYSBzaWduZXIgc2Vzc2lvbi5cbiAgICAgKlxuICAgICAqIE1GQSBpcyByZXF1aXJlZCB3aGVuOlxuICAgICAqIC0gYW4gTUZBIHBvbGljeSBpcyBleHBsaWNpdGx5IGF0dGFjaGVkIHRvIHRoZSB1c2VyIGxvZ2dpbmcgaW5cbiAgICAgKiAoZS5nLiwgYW4gb3JnIG93bmVyIGNhbiBkbyB0aGF0IGF0IHVzZXIgY3JlYXRpb24gdGltZSB0byByZXF1aXJlIGNlcnRhaW4ga2luZCBvZiBNRkEpXG4gICAgICogLSB0aGUgdXNlciBoYXMgYXQgbGVhc3QgMSBNRkEgZmFjdG9yIGNvbmZpZ3VyZWRcbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wib2lkY0F1dGhcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9vaWRjL2VtYWlsLW90cFwiOiB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhdGUgbG9naW4gdmlhIGVtYWlsIHRva2VuXG4gICAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIGxvZ2luIHZpYSBlbWFpbCB0b2tlblxuICAgICAqXG4gICAgICogVGhpcyBlbmRwb2ludCBnZW5lcmF0ZXMgYW4gT0lEQyB0b2tlbiB3aXRob3V0IGEgc2lnbmF0dXJlIChvZiB0aGUgZm9ybSBgaGVhZGVyLnBheWxvYWQuYCksIGFuZCBzZW5kcyB0aGUgc2lnbmF0dXJlIHRvIHRoZSB1c2VyJ3MgZW1haWwuXG4gICAgICogQ2xpZW50IGFwcGxpY2F0aW9ucyBjYW4gcmVjb25zdHJ1Y3QgdGhlIHRva2VuIGJ5IGNvbmNhdGVuYXRpbmcgdGhlIGBwYXJ0aWFsX3Rva2VuYCB3aXRoIHRoZSBzaWduYXR1cmUsIHByb2R1Y2luZyBhIHZhbGlkIE9JREMgdG9rZW4gb2YgdGhlIGZvcm0gYGhlYWRlci5wYXlsb2FkLnNpZ25hdHVyZWBcbiAgICAgKiBUaGUgdG9rZW4gY2FuIHRoZW4gYmUgdXNlZCB0byBhdXRoZW50aWNhdGUgdGhlIHVzZXIuXG4gICAgICpcbiAgICAgKiA+IFshSU1QT1JUQU5UXVxuICAgICAqID4gRm9yIHRoaXMgZW5kcG9pbnQgdG8gc3VjY2VlZCwgdGhlIG9yZyBtdXN0IGJlIGNvbmZpZ3VyZWQgdG86XG4gICAgICogPiAxLiBBbGxvdyB0aGUgaXNzdWVyIGBodHRwczovL3NoaW0ub2F1dGgyLmN1YmlzdC5kZXYvZW1haWwtb3RwYCBhbmQgY2xpZW50IElEIGJlaW5nIHRoZSBPcmcgSURcbiAgICAgKiA+IDIuIEhhdmUgYW4gZW1haWwgc2VuZGVyIGNvbmZpZ3VyZWQgZm9yIE9UUHNcbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiZW1haWxPdHBBdXRoXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vb2lkYy9zaXdlXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbml0aWF0ZSBsb2dpbiB2aWEgU2lnbi1pbiBXaXRoIEV0aGVyZXVtIChTSVdFKS5cbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgbG9naW4gdmlhIFNpZ24taW4gV2l0aCBFdGhlcmV1bSAoU0lXRSkuXG4gICAgICpcbiAgICAgKiBUaGlzIGVuZHBvaW50IGdlbmVyYXRlcyBhIGNoYWxsZW5nZSB3aGljaCBjYW4gYmUgYW5zd2VyZWQgKHZpYSB0aGUgY29ycmVzcG9uZGluZyBQQVRDSCBlbmRwb2ludClcbiAgICAgKiB0byBvYnRhaW4gYW4gT0lEQyB0b2tlbi4gVGhlIE9JREMgdG9rZW4gY2FuIHRoZW4gYmUgZXhjaGFuZ2VkIGZvciBhIHVzZXIgc2Vzc2lvbiB2aWEgdGhlIHN0YW5kYXJkXG4gICAgICogT0lEQyBhdXRoIHJvdXRlLlxuICAgICAqXG4gICAgICogPiBbIUlNUE9SVEFOVF1cbiAgICAgKiA+IEZvciB0aGlzIGVuZHBvaW50IHRvIHN1Y2NlZWQsIHRoZSBvcmcgbXVzdCBiZSBjb25maWd1cmVkIHRvOlxuICAgICAqID4gQWxsb3cgdGhlIGlzc3VlciBgaHR0cHM6Ly9zaGltLm9hdXRoMi5jdWJpc3QuZGV2L3Npd2VgIHdpdGggdGhlIE9yZyBJRCBhcyB0aGUgY2xpZW50IElEXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInNpd2VJbml0XCJdO1xuICAgIC8qKlxuICAgICAqIENvbXBsZXRlIGxvZ2luIHZpYSBTaWduLWluIFdpdGggRXRoZXJldW0gKFNJV0UpXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXBsZXRlIGxvZ2luIHZpYSBTaWduLWluIFdpdGggRXRoZXJldW0gKFNJV0UpXG4gICAgICpcbiAgICAgKiBJZiB0aGUgY2hhbGxlbmdlIChpc3N1ZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgUE9TVCBlbmRwb2ludCkgaXMgYW5zd2VyZWQgY29ycmVjdGx5LCB0aGlzIGVuZHBvaW50XG4gICAgICogZ2VuZXJhdGVzIGFuIE9JREMgdG9rZW4gdGhhdCBjYW4gdGhlbiBiZSBleGNoYW5nZWQgZm9yIGEgdXNlciBzZXNzaW9uIHZpYSB0aGUgc3RhbmRhcmQgT0lEQyBhdXRoIHJvdXRlLlxuICAgICAqXG4gICAgICogPiBbIUlNUE9SVEFOVF1cbiAgICAgKiA+IEZvciB0aGlzIGVuZHBvaW50IHRvIHN1Y2NlZWQsIHRoZSBvcmcgbXVzdCBiZSBjb25maWd1cmVkIHRvOlxuICAgICAqID4gQWxsb3cgdGhlIGlzc3VlciBgaHR0cHM6Ly9zaGltLm9hdXRoMi5jdWJpc3QuZGV2L3Npd2VgIHdpdGggdGhlIE9yZyBJRCBhcyB0aGUgY2xpZW50IElEXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJzaXdlQ29tcGxldGVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9vaWRjL3Npd3NcIjoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYXRlIGxvZ2luIHZpYSBTaWduLWluIFdpdGggU29sYW5hIChTSVdTKS5cbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgbG9naW4gdmlhIFNpZ24taW4gV2l0aCBTb2xhbmEgKFNJV1MpLlxuICAgICAqXG4gICAgICogVGhpcyBlbmRwb2ludCBnZW5lcmF0ZXMgYSBjaGFsbGVuZ2Ugd2hpY2ggY2FuIGJlIGFuc3dlcmVkICh2aWEgdGhlIGNvcnJlc3BvbmRpbmcgUEFUQ0ggZW5kcG9pbnQpXG4gICAgICogdG8gb2J0YWluIGFuIE9JREMgdG9rZW4uIFRoZSBPSURDIHRva2VuIGNhbiB0aGVuIGJlIGV4Y2hhbmdlZCBmb3IgYSB1c2VyIHNlc3Npb24gdmlhIHRoZSBzdGFuZGFyZFxuICAgICAqIE9JREMgYXV0aCByb3V0ZS5cbiAgICAgKlxuICAgICAqID4gWyFJTVBPUlRBTlRdXG4gICAgICogPiBGb3IgdGhpcyBlbmRwb2ludCB0byBzdWNjZWVkLCB0aGUgb3JnIG11c3QgYmUgY29uZmlndXJlZCB0bzpcbiAgICAgKiA+IEFsbG93IHRoZSBpc3N1ZXIgYGh0dHBzOi8vc2hpbS5vYXV0aDIuY3ViaXN0LmRldi9zaXdzYCB3aXRoIHRoZSBPcmcgSUQgYXMgdGhlIGNsaWVudCBJRFxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJzaXdzSW5pdFwiXTtcbiAgICAvKipcbiAgICAgKiBDb21wbGV0ZSBsb2dpbiB2aWEgU2lnbi1pbiBXaXRoIFNvbGFuYSAoU0lXUylcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGUgbG9naW4gdmlhIFNpZ24taW4gV2l0aCBTb2xhbmEgKFNJV1MpXG4gICAgICpcbiAgICAgKiBJZiB0aGUgY2hhbGxlbmdlIChpc3N1ZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgUE9TVCBlbmRwb2ludCkgaXMgYW5zd2VyZWQgY29ycmVjdGx5LCB0aGlzIGVuZHBvaW50XG4gICAgICogZ2VuZXJhdGVzIGFuIE9JREMgdG9rZW4gdGhhdCBjYW4gdGhlbiBiZSBleGNoYW5nZWQgZm9yIGEgdXNlciBzZXNzaW9uIHZpYSB0aGUgc3RhbmRhcmQgT0lEQyBhdXRoIHJvdXRlLlxuICAgICAqXG4gICAgICogPiBbIUlNUE9SVEFOVF1cbiAgICAgKiA+IEZvciB0aGlzIGVuZHBvaW50IHRvIHN1Y2NlZWQsIHRoZSBvcmcgbXVzdCBiZSBjb25maWd1cmVkIHRvOlxuICAgICAqID4gQWxsb3cgdGhlIGlzc3VlciBgaHR0cHM6Ly9zaGltLm9hdXRoMi5jdWJpc3QuZGV2L3Npd3NgIHdpdGggdGhlIE9yZyBJRCBhcyB0aGUgY2xpZW50IElEXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJzaXdzQ29tcGxldGVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9vaWRjL3RlbGVncmFtXCI6IHtcbiAgICAvKipcbiAgICAgKiBBbGxvd3MgYSB1c2VyIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIHRoZSB0ZWxlZ3JhbSBBUEkgdXNpbmcgdGhlIHRnV2ViQXBwRGF0YSB2YWx1ZVxuICAgICAqIEBkZXNjcmlwdGlvbiBBbGxvd3MgYSB1c2VyIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIHRoZSB0ZWxlZ3JhbSBBUEkgdXNpbmcgdGhlIHRnV2ViQXBwRGF0YSB2YWx1ZVxuICAgICAqIFRoZSB0b2tlbiBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOlxuICAgICAqIC0gVGhlIGBzdWJgIGZpZWxkIGlzIHRoZSB0ZWxlZ3JhbSB1c2VyIElEXG4gICAgICogLSBUaGUgYGlzc2AgZmllbGQgZGVwZW5kcyBvbiB0aGUgY2hvc2VuIGVudmlyb25tZW50OlxuICAgICAqIC0gYGh0dHBzOi8vc2hpbS5vYXV0aDIuY3ViaXN0LmRldi90ZWxlZ3JhbS9wcm9kdWN0aW9uYCBmb3IgdGhlIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRcbiAgICAgKiAtIGBodHRwczovL3NoaW0ub2F1dGgyLmN1YmlzdC5kZXYvdGVsZWdyYW0vdGVzdGAgZm9yIHRoZSB0ZXN0IGVudmlyb25tZW50XG4gICAgICogLSBUaGUgYGF1ZGAgZmllbGQgaXMgdGhlIHByb3ZpZGVkIHRlbGVncmFtIGJvdCBJRFxuICAgICAqIC0gVGhlIGBleHBgIGZpZWxkIGlzIGRlcml2ZWQgZnJvbSB0aGUgYGF1dGhfZGF0ZWAgZmllbGQgaW4gdGhlIHRlbGVncmFtIGRhdGFcbiAgICAgKlxuICAgICAqIEZhaWxzIGlmIHRoZSB0ZWxlZ3JhbSBkYXRhIGlzIGludmFsaWQgb3IgdGhlIHNpZ25hdHVyZSBpcyBpbnZhbGlkXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInRlbGVncmFtQXV0aFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L29yZ3NcIjoge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBPcmdcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIE9yZ1xuICAgICAqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBvcmdhbml6YXRpb24uIFRoZSBuZXcgb3JnIGlzIGEgY2hpbGQgb2YgdGhlXG4gICAgICogY3VycmVudCBvcmcgYW5kIGluaGVyaXRzIGl0cyBrZXktZXhwb3J0IHBvbGljeS4gVGhlIG5ldyBvcmdcbiAgICAgKiBpcyBjcmVhdGVkIHdpdGggb25lIG93bmVyLCB0aGUgY2FsbGVyIG9mIHRoaXMgQVBJLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVPcmdcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9wb2xpY2llc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBQb2xpY2llc1xuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IFBvbGljaWVzXG4gICAgICpcbiAgICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGFsbCBwb2xpY2llcyBpbiB0aGUgT3JnLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RQb2xpY2llc1wiXTtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgUG9saWN5XG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBQb2xpY3lcbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgbmFtZWQgcG9saWN5IGluIHRoZSBvcmdhbml6YXRpb24uIFRoZSB1c2VyIG1ha2luZyB0aGUgcmVxdWVzdCBpcyB0aGVcbiAgICAgKiBvd25lciBvZiB0aGUgcG9saWN5LCBnaXZpbmcgdGhlbSBlZGl0IGFjY2VzcyB0byB0aGUgcG9saWN5IGFsb25nIHdpdGggdGhlIG9yZyBvd25lcnMuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZVBvbGljeVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3BvbGljaWVzL3twb2xpY3lfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgUG9saWN5XG4gICAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBQb2xpY3lcbiAgICAgKlxuICAgICAqIERlbGV0ZSB0aGUgbmFtZWQgcG9saWN5IHdpdGggdGhlIGdpdmVuIG5hbWUgb3IgaWQuXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wiZGVsZXRlUG9saWN5XCJdO1xuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBQb2xpY3lcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIFBvbGljeVxuICAgICAqXG4gICAgICogVXBkYXRlcyB0aGUgcG9saWN5IHdpdGggdGhlIGdpdmVuIG5hbWUgb3IgaWQuXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJ1cGRhdGVQb2xpY3lcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9wb2xpY2llcy97cG9saWN5X2lkfS9sb2dzXCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgUG9saWN5IExvZ3NcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IFBvbGljeSBMb2dzXG4gICAgICpcbiAgICAgKiBSZXR1cm5zIHRoZSBsb2dzIGZvciB0aGUgZ2l2ZW4gcG9saWN5LCB3aXRoaW4gdGhlIGdpdmVuIHRpbWVmcmFtZS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiZ2V0UG9saWN5TG9nc1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3BvbGljaWVzL3twb2xpY3lfaWR9L3t2ZXJzaW9ufVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IFBvbGljeVxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgUG9saWN5XG4gICAgICpcbiAgICAgKiBSZXR1cm5zIHRoZSBzcGVjaWZpZWQgdmVyc2lvbiBvciBsYXRlc3Qgb2YgYSBuYW1lZCBwb2xpY3kgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBvciBpZC5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJnZXRQb2xpY3lcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9wb2xpY2llcy97cG9saWN5X2lkfS97dmVyc2lvbn0vaW52b2tlXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbnZva2UgUG9saWN5XG4gICAgICogQGRlc2NyaXB0aW9uIEludm9rZSBQb2xpY3lcbiAgICAgKlxuICAgICAqIEludm9rZXMgdGhlIFtOYW1lZFBvbGljeV0gd2l0aCB0aGUgZ2l2ZW4gSUQgd2l0aCB0aGUgZ2l2ZW4gcmVxdWVzdCBpbmZvcm1hdGlvbi5cbiAgICAgKiBJdCBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgV2FzbSBwb2xpY2llcy5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiaW52b2tlUG9saWN5XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcG9saWN5L2J1Y2tldHNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgQnVja2V0c1xuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IEJ1Y2tldHNcbiAgICAgKlxuICAgICAqIExpc3QgYXZhaWxhYmxlIG1ldGEgaW5mb3JtYXRpb24gYWJvdXQgYWxsIHBvbGljeSBLViBzdG9yZSBidWNrZXRzIGluIHRoZSBvcmcuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdFBvbGljeUJ1Y2tldHNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9wb2xpY3kvYnVja2V0cy97YnVja2V0X25hbWV9XCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgQnVja2V0XG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBCdWNrZXRcbiAgICAgKlxuICAgICAqIFJldHVybnMgdGhlIG1ldGEgaW5mb3JtYXRpb24gb2YgYSBwb2xpY3kgS1Ygc3RvcmUgYnVja2V0LlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImdldFBvbGljeUJ1Y2tldFwiXTtcbiAgICAvKipcbiAgICAgKiBVcGRhdGUgQnVja2V0XG4gICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBCdWNrZXRcbiAgICAgKlxuICAgICAqIFVwZGF0ZXMgbWV0YSBpbmZvcm1hdGlvbiBmb3IgYW4gZXhpc3RpbmcgcG9saWN5IEtWIHN0b3JlIGJ1Y2tldC5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInVwZGF0ZVBvbGljeUJ1Y2tldFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3BvbGljeS9pbXBvcnRfa2V5XCI6IHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgUG9saWN5IEltcG9ydCBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFBvbGljeSBJbXBvcnQgS2V5XG4gICAgICpcbiAgICAgKiBHZW5lcmF0ZSBhbiBlcGhlbWVyYWwga2V5IHRoYXQgYSBjbGllbnQgY2FuIHVzZSBmb3IgZW5jcnlwdGluZyBkYXRhIHJlbGF0ZWQgdG8gV2FzbVxuICAgICAqIHBvbGljaWVzIChlLmcuLCBwb2xpY3kgc2VjcmV0cykuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiY3JlYXRlUG9saWN5SW1wb3J0S2V5XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcG9saWN5L3NlY3JldHNcIjoge1xuICAgIC8qKlxuICAgICAqIEdldCB0aGUgb3JnLXdpZGUgcG9saWN5IHNlY3JldHMuXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCB0aGUgb3JnLXdpZGUgcG9saWN5IHNlY3JldHMuXG4gICAgICpcbiAgICAgKiBOb3RlIHRoYXQgdGhpcyBvbmx5IHJldHVybnMgdGhlIGtleXMgZm9yIHRoZSBzZWNyZXRzLCBvbWl0dGluZyB0aGUgdmFsdWVzLlxuICAgICAqIFRoZSB2YWx1ZXMgYXJlIHNlY3JldCBhbmQgYXJlIG5vdCBhY2Nlc3NpYmxlIG91dHNpZGUgV2FzbSBwb2xpY3kgZXhlY3V0aW9uLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImdldFBvbGljeVNlY3JldHNcIl07XG4gICAgLyoqXG4gICAgICogVXBkYXRlIG9yZy1sZXZlbCBwb2xpY3kgc2VjcmV0c1xuICAgICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgb3JnLWxldmVsIHBvbGljeSBzZWNyZXRzXG4gICAgICpcbiAgICAgKiBUaGUgcHJvdmlkZWQgc2VjcmV0cyB3aWxsIHJlcGxhY2UgYW55IGV4aXN0aW5nIG9yZy1sZXZlbCBzZWNyZXRzLlxuICAgICAqIEl0IGZhaWxzIGlmIHRoZSBzZWNyZXRzIHdlcmVuJ3QgcHJldmlvdXNseSBjcmVhdGVkLlxuICAgICAqXG4gICAgICogTXVzdCBiZSBwZXJtaXR0ZWQgYnkgdGhlIHBvbGljeSBzZWNyZXQncyBlZGl0IHBvbGljeSBpZiBzZXQsIGFuZCB0aGUgb3JnJ3MgZWRpdCBwb2xpY3kgb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXBkYXRlUG9saWN5U2VjcmV0c1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3BvbGljeS9zZWNyZXRzL3tzZWNyZXRfbmFtZX1cIjoge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBvciBvdmVyd3JpdGUgYW4gb3JnLWxldmVsIHBvbGljeSBzZWNyZXQuXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBvciBvdmVyd3JpdGUgYW4gb3JnLWxldmVsIHBvbGljeSBzZWNyZXQuXG4gICAgICogTXVzdCBiZSBwZXJtaXR0ZWQgYnkgdGhlIHBvbGljeSBzZWNyZXQncyBlZGl0IHBvbGljeSBpZiBzZXQsIGFuZCB0aGUgb3JnJ3MgZWRpdCBwb2xpY3kgb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHB1dDogb3BlcmF0aW9uc1tcInNldFBvbGljeVNlY3JldFwiXTtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgYW4gb3JnLWxldmVsIHBvbGljeSBzZWNyZXQuXG4gICAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBhbiBvcmctbGV2ZWwgcG9saWN5IHNlY3JldC5cbiAgICAgKiBNdXN0IGJlIHBlcm1pdHRlZCBieSB0aGUgcG9saWN5IHNlY3JldCdzIGVkaXQgcG9saWN5IGlmIHNldCwgYW5kIHRoZSBvcmcncyBlZGl0IHBvbGljeSBvdGhlcndpc2UuXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wiZGVsZXRlUG9saWN5U2VjcmV0XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcG9saWN5L3dhc21cIjoge1xuICAgIC8qKlxuICAgICAqIFVwbG9hZCBXYXNtIFBvbGljeVxuICAgICAqIEBkZXNjcmlwdGlvbiBVcGxvYWQgV2FzbSBQb2xpY3lcbiAgICAgKlxuICAgICAqIFJldHVybnMgYSBzaWduZWQgVVJMIGZvciB1cGxvYWRpbmcgYSB3YXNtIHBvbGljeSB0byBDdWJlU2lnbmVyLiBUaGUgcG9saWN5IHdpbGwgYmVcbiAgICAgKiBkZWxldGVkIGlmIG5vdCBhdHRhY2hlZCB0byBhIFtOYW1lZFBvbGljeV0gc29vbiBhZnRlciB0aGUgdXBsb2FkIGhhcyBiZWVuIGNvbXBsZXRlZC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1widXBsb2FkV2FzbVBvbGljeVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzXCI6IHtcbiAgICAvKipcbiAgICAgKiBMaXN0IFJvbGVzXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgUm9sZXNcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBhbGwgcm9sZXMgaW4gYW4gb3JnYW5pemF0aW9uIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBpcyBhbGxvd2VkIHRvIGFjY2Vzcy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0Um9sZXNcIl07XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIFJvbGVcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFJvbGVcbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgcm9sZSBpbiBhbiBvcmdhbml6YXRpb24uIFVubGVzcyB0aGUgbG9nZ2VkLWluIHVzZXJcbiAgICAgKiBpcyB0aGUgb3duZXIsIHRoZXkgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgcm9sZS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiY3JlYXRlUm9sZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IFJvbGVcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IFJvbGVcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBpbmZvcm1hdGlvbiBhYm91dCBhIHJvbGUgaW4gYW4gb3JnYW5pemF0aW9uXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0Um9sZVwiXTtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgUm9sZVxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgUm9sZVxuICAgICAqXG4gICAgICogRGVsZXRlcyBhIHJvbGUgaW4gYW4gb3JnYW5pemF0aW9uLlxuICAgICAqXG4gICAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICAgKiBBZGRpdGlvbmFsbHksIHRoZSByb2xlJ3MgZWRpdCBwb2xpY3kgKGlmIHNldCkgbXVzdCBwZXJtaXQgdGhlIHVwZGF0ZS5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJkZWxldGVSb2xlXCJdO1xuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBSb2xlXG4gICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBSb2xlXG4gICAgICpcbiAgICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIGEgcm9sZSAodGhpcyByZXF1aXJlcyB0aGUgYG1hbmFnZTpyb2xlOnVwZGF0ZTplbmFibGVgIHNjb3BlKS5cbiAgICAgKiBVcGRhdGVzIHRoZSByb2xlJ3MgcG9saWNpZXMgKHRoaXMgcmVxdWlyZXMgdGhlIGBtYW5hZ2U6cm9sZTp1cGRhdGU6cG9saWN5YCBzY29wZSkuXG4gICAgICogVXBkYXRlcyB0aGUgcm9sZSdzIGVkaXQgcG9saWNpZXMgKHRoaXMgcmVxdWlyZXMgdGhlIGBtYW5hZ2U6cm9sZTp1cGRhdGU6ZWRpdFBvbGljeWAgc2NvcGUpLlxuICAgICAqXG4gICAgICogVGhlIHVzZXIgbXVzdCBiZSBpbiB0aGUgcm9sZSBvciBhbiBvd25lciBvZiB0aGUgb3JnYW5pemF0aW9uLlxuICAgICAqIEFkZGl0aW9uYWxseSwgdGhlIHJvbGUncyBlZGl0IHBvbGljeSAoaWYgc2V0KSBtdXN0IHBlcm1pdCB0aGUgdXBkYXRlLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXBkYXRlUm9sZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfS9hZGRfa2V5c1wiOiB7XG4gICAgLyoqXG4gICAgICogQWRkIEtleXNcbiAgICAgKiBAZGVzY3JpcHRpb24gQWRkIEtleXNcbiAgICAgKlxuICAgICAqIEFkZHMgYSBsaXN0IG9mIGV4aXN0aW5nIGtleXMgdG8gYW4gZXhpc3Rpbmcgcm9sZS5cbiAgICAgKlxuICAgICAqIFRoZSBrZXkgb3duZXIgaXMgYWxsb3dlZCB0byBhZGQgdGhlaXIga2V5IHRvIGFueSByb2xlIHRoYXQgdGhleSBhcmUgaW4uXG4gICAgICpcbiAgICAgKiBJbiBcIm9yZyBjdXN0b2R5XCIgbW9kZWwgb25seSwgb3JnIG93bmVycyBhcmUgYWxsb3dlZCB0byBhZGQgYW55IGtleSB0byBhbnkgcm9sZS5cbiAgICAgKlxuICAgICAqIEluIGFsbCBjYXNlczogdGhlIHJvbGUncyBlZGl0IHBvbGljeSwgYXMgd2VsbCBhcyB0aGUgZWRpdCBwb2xpY3kgb2YgZWFjaCBvZiB0aGUga2V5cywgbXVzdCBwZXJtaXQgdGhlIHVwZGF0ZS5cbiAgICAgKlxuICAgICAqIEVhY2ggcmVxdWVzdCB0byB0aGlzIGVuZHBvaW50IGNhbiBhZGQsIGF0IG1heGltdW0sIDMyIGtleXMuXG4gICAgICovXG4gICAgcHV0OiBvcGVyYXRpb25zW1wiYWRkS2V5c1RvUm9sZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfS9hZGRfdXNlci97dXNlcl9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEFkZCBVc2VyXG4gICAgICogQGRlc2NyaXB0aW9uIEFkZCBVc2VyXG4gICAgICpcbiAgICAgKiBBZGRzIGFuIGV4aXN0aW5nIHVzZXIgdG8gYW4gZXhpc3Rpbmcgcm9sZS5cbiAgICAgKlxuICAgICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgb3Igb3JnIG93bmVycyBjYW4gYWRkIHVzZXJzIHRvIGEgcm9sZS5cbiAgICAgKiBBZGRpdGlvbmFsbHksIHRoZSByb2xlJ3MgZWRpdCBwb2xpY3kgKGlmIHNldCkgbXVzdCBwZXJtaXQgdGhlIHVwZGF0ZS5cbiAgICAgKi9cbiAgICBwdXQ6IG9wZXJhdGlvbnNbXCJhZGRVc2VyVG9Sb2xlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L2F0dGVzdFwiOiB7XG4gICAgLyoqXG4gICAgICogQXR0ZXN0IHRvIFJvbGUgUHJvcGVydGllc1xuICAgICAqIEBkZXNjcmlwdGlvbiBBdHRlc3QgdG8gUm9sZSBQcm9wZXJ0aWVzXG4gICAgICpcbiAgICAgKiBUaGUgcmVzcG9uc2UgaXMgYSBKV1Qgd2hvc2UgY2xhaW1zIGFyZSB0aGUgcmVxdWVzdGVkIHJvbGUgcHJvcGVydGllcy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJhdHRlc3RSb2xlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L2tleXNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgUm9sZSBLZXlzXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgUm9sZSBLZXlzXG4gICAgICpcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGFsbCBrZXlzIGluIGEgcm9sZS5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0Um9sZUtleXNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH0va2V5cy97a2V5X2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IGEgS2V5IGluIFJvbGVcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IGEgS2V5IGluIFJvbGVcbiAgICAgKlxuICAgICAqIFJldHVybnMgdGhlIGtleS1pbi1yb2xlIGluZm9ybWF0aW9uIGZvciBhIGdpdmVuIGtleSBhbmQgcm9sZS4gSWYgYGRldGFpbHNgIGlzIHNldCB0byBgdHJ1ZWAsXG4gICAgICogdGhpcyBlbmRwb2ludCByZXR1cm5zIGRldGFpbGVkIGtleSBpbmZvcm1hdGlvbi5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJnZXRSb2xlS2V5XCJdO1xuICAgIC8qKlxuICAgICAqIFJlbW92ZSBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVtb3ZlIEtleVxuICAgICAqXG4gICAgICogUmVtb3ZlcyBhIGdpdmVuIGtleSBmcm9tIGEgcm9sZS5cbiAgICAgKlxuICAgICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgb3Igb3JnIG93bmVycyBjYW4gcmVtb3ZlIGtleXMgZnJvbSBhIHJvbGUuXG4gICAgICogQWRkaXRpb25hbGx5LCBib3RoIHRoZSByb2xlJ3MgYW5kIHRoZSBrZXkncyBlZGl0IHBvbGljeSBtdXN0IHBlcm1pdCB0aGUgdXBkYXRlLlxuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcInJlbW92ZUtleUZyb21Sb2xlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L3Rva2Vuc1wiOiB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIFRva2VuXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBUb2tlblxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBhY2Nlc3MgdG9rZW4gZm9yIGEgZ2l2ZW4gcm9sZSAodG8gYmUgdXNlZCBhcyBcIkFQSSBLZXlcIiBmb3IgYWxsIHNpZ25pbmcgYWN0aW9ucykuXG4gICAgICogVGhlIGByZXN0cmljdGVkX2FjdGlvbnNgIGZpZWxkIG9uIHRoZSBbUm9sZV0gZGV0ZXJtaW5lcyB0aGUgbWVtYmVyc2hpcCByb2xlIHRoYXQgaXMgcmVxdWlyZWQgdG9cbiAgICAgKiBjcmVhdGUgdG9rZW5zLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVSb2xlVG9rZW5cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH0vdHhcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgSGlzdG9yaWNhbCBUcmFuc2FjdGlvbnNcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBIaXN0b3JpY2FsIFRyYW5zYWN0aW9uc1xuICAgICAqXG4gICAgICogUmV0dXJucyBhIHNvcnRlZCwgcGFnaW5hdGVkIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIHNpZ25lZCBieSB0aGUgZ2l2ZW4gcm9sZSxcbiAgICAgKiBvcmRlcmVkIGZyb20gbW9zdCByZWNlbnQgZmlyc3QuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdEhpc3RvcmljYWxSb2xlVHhcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH0vdXNlcnNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgUm9sZSBVc2Vycy5cbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBSb2xlIFVzZXJzLlxuICAgICAqXG4gICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBhbGwgdXNlcnMgd2hvIGhhdmUgYWNjZXNzIHRvIGEgcm9sZS5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0Um9sZVVzZXJzXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L3VzZXJzL3t1c2VyX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogUmVtb3ZlIFVzZXJcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVtb3ZlIFVzZXJcbiAgICAgKlxuICAgICAqIFJlbW92ZXMgYW4gZXhpc3RpbmcgdXNlciBmcm9tIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAgICpcbiAgICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG9yZyBvd25lcnMgY2FuIHJlbW92ZSB1c2VycyBmcm9tIGEgcm9sZS5cbiAgICAgKiBBZGRpdGlvbmFsbHksIHRoZSByb2xlJ3MgZWRpdCBwb2xpY3kgKGlmIHNldCkgbXVzdCBwZXJtaXQgdGhlIHVwZGF0ZS5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJyZW1vdmVVc2VyRnJvbVJvbGVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9ycGNcIjoge1xuICAgIC8qKlxuICAgICAqIEhpZ2gtbGV2ZWwgUlBDIGVuZHBvaW50LlxuICAgICAqIEBkZXNjcmlwdGlvbiBIaWdoLWxldmVsIFJQQyBlbmRwb2ludC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wicnBjQXBpXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vc2Vzc2lvblwiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBzZXNzaW9uc1xuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IHNlc3Npb25zXG4gICAgICpcbiAgICAgKiBJZiBubyBxdWVyeSBwYXJhbWV0ZXJzIGFyZSBwcm92aWRlZCwgYWxsIGFjdGl2ZSBzZXNzaW9ucyBmb3IgdGhlIGN1cnJlbnQgdXNlciBhcmUgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBJZiBhIGByb2xlYCBxdWVyeSBwYXJhbWV0ZXIgaXMgcHJvdmlkZWQsIGFsbCBhY3RpdmUgc2Vzc2lvbnMgZm9yIHRoZSBzZWxlY3RlZCByb2xlIGFyZSByZXR1cm5lZFxuICAgICAqIChhc3NlcnRpbmcgZmlyc3QgdGhhdCB0aGUgY3VycmVudCB1c2VyIGhhcyBwZXJtaXNzaW9ucyB0byByZWFkIHNlc3Npb25zIGZvciB0aGF0IHJvbGUpLlxuICAgICAqXG4gICAgICogSWYgYSBgcm9sZV9jcmVhdGVkX2J5YCBxdWVyeSBwYXJhbWV0ZXIgaXMgcHJvdmlkZWQsIGFsbCBhY3RpdmUgKipyb2xlKiogc2Vzc2lvbnMgY3JlYXRlZCBieSB0aGF0XG4gICAgICogdXNlciBhcmUgcmV0dXJuZWQgKGdhdGVkIGJ5IHRoZSBzYW1lIHBlcm1pc3Npb25zIGFzIGxpc3RpbmcgdGhhdCB1c2VyJ3Mgb3duIHNlc3Npb25zOiB0aGVcbiAgICAgKiBjdXJyZW50IHVzZXIgbXVzdCBiZSB0aGF0IHVzZXIgb3IgYW4gb3JnIG93bmVyKS4gV2hlbiBjb21iaW5lZCB3aXRoIGByb2xlYCwgdGhlIHJlc3VsdCBpc1xuICAgICAqIGZ1cnRoZXIgcmVzdHJpY3RlZCB0byB0aGUgc2Vzc2lvbnMgY3JlYXRlZCBieSB0aGF0IHVzZXIgZm9yIHRoZSBnaXZlbiByb2xlOyB0aGUgcGVybWlzc2lvbiBtb2RlbFxuICAgICAqIGlzIHVuY2hhbmdlZC4gVGhlIGB1c2VyYCBzZWxlY3RvciBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBgcm9sZWAgb3IgYHJvbGVfY3JlYXRlZF9ieWAuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdFNlc3Npb25zXCJdO1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBuZXcgdXNlciBzZXNzaW9uIChtYW5hZ2VtZW50IGFuZC9vciBzaWduaW5nKVxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgbmV3IHVzZXIgc2Vzc2lvbiAobWFuYWdlbWVudCBhbmQvb3Igc2lnbmluZylcbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgdXNlciBzZXNzaW9uLCBzaWxlbnRseSB0cnVuY2F0aW5nIHJlcXVlc3RlZCBzZXNzaW9uIGFuZCBhdXRoIGxpZmV0aW1lcyB0byBiZSBhdFxuICAgICAqIG1vc3QgcmVxdWVzdG9yJ3Mgc2Vzc2lvbiBhbmQgYXV0aCBsaWZldGltZSwgcmVzcGVjdGl2ZWx5LiBUbyBleHRlbmQgdGhlIHJlcXVlc3RlZCBsaWZldGltZXMgcGFzdFxuICAgICAqIHRoZSByZXF1ZXN0b3Incywgc2V0IHRoZSBgZXh0ZW5kX2xpZmV0aW1lc2AgZmxhZyBpbiB0aGUgcmVxdWVzdCBib2R5IChpbiB3aGljaCBjYXNlIE1GQSB3aWxsXG4gICAgICogYmUgcmVxdWlyZWQpLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVTZXNzaW9uXCJdO1xuICAgIC8qKlxuICAgICAqIFJldm9rZSBBTEwgZXhpc3RpbmcgdXNlciBvciByb2xlIHNlc3Npb24ocylcbiAgICAgKiBAZGVzY3JpcHRpb24gUmV2b2tlIEFMTCBleGlzdGluZyB1c2VyIG9yIHJvbGUgc2Vzc2lvbihzKVxuICAgICAqXG4gICAgICogSW1tZWRpYXRlbHkgcmV2b2tlcyBleGlzdGluZyBzZXNzaW9ucywgcHJldmVudGluZyB0aGVtIGZyb20gYmVpbmcgdXNlZCBvciByZWZyZXNoZWQuXG4gICAgICpcbiAgICAgKiBJZiBubyBxdWVyeSBwYXJhbXMgYXJlIHByb3ZpZGVkLCAqKkFMTCoqIHNlc3Npb25zIGZvciB0aGUgKipDVVJSRU5UIFVTRVIqKiBhcmUgcmV2b2tlZFxuICAgICAqICh0byByZXZva2UganVzdCB0aGUgY3VycmVudCB1c2VyIHNlc3Npb24sIHVzZSBgREVMRVRFIC92MC9vcmcvPG9yZ19pZD4vc2Vzc2lvbi9zZWxmYClcbiAgICAgKlxuICAgICAqIElmIGEgYHJvbGVgIHF1ZXJ5IHBhcmFtZXRlciBpcyBwcm92aWRlZCwgKipBTEwqKiBzZXNzaW9uIGZvciAqKlRIQVQgUk9MRSoqIGFyZSByZXZva2VkXG4gICAgICogKGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIHBlcm1pc3Npb25zIHRvIHJldm9rZSBzZXNzaW9ucyBmb3IgdGhlIHJvbGUpLlxuICAgICAqXG4gICAgICogSWYgYSBgcm9sZV9jcmVhdGVkX2J5YCBxdWVyeSBwYXJhbWV0ZXIgaXMgcHJvdmlkZWQsICoqUk9MRSoqIHNlc3Npb25zIGNyZWF0ZWQgYnkgKipUSEFUIFVTRVIqKlxuICAgICAqIGFyZSByZXZva2VkIChnYXRlZCBieSB0aGUgc2FtZSBwZXJtaXNzaW9ucyBhcyByZXZva2luZyB0aGF0IHVzZXIncyBvd24gc2Vzc2lvbnM6IHRoZSBjdXJyZW50XG4gICAgICogdXNlciBtdXN0IGJlIHRoYXQgdXNlciBvciBhbiBvcmcgb3duZXIpLiBVc2VyIHNlc3Npb25zIGFyZSBub3QgYWZmZWN0ZWQuIFVubGVzcyB0aGUgY3VycmVudFxuICAgICAqIHVzZXIgaXMgYW4gb3JnIG93bmVyLCBvbmx5IHNlc3Npb25zIGZvciByb2xlcyB0aGUgY3VycmVudCB1c2VyIGlzICoqc3RpbGwgYSBtZW1iZXIgb2YqKiBhcmVcbiAgICAgKiByZXZva2VkIChzbyBhIHVzZXIgY2Fubm90IHJldm9rZSBzZXNzaW9ucyBmb3IgYSByb2xlIHRoZXkgaGF2ZSBzaW5jZSBiZWVuIHJlbW92ZWQgZnJvbSk7IG9yZ1xuICAgICAqIG93bmVycyByZXZva2UgYWNyb3NzIGFsbCByb2xlcy5cbiAgICAgKlxuICAgICAqIElmICoqYm90aCoqIGEgYHJvbGVgIGFuZCBhIGByb2xlX2NyZWF0ZWRfYnlgIHF1ZXJ5IHBhcmFtZXRlciBhcmUgcHJvdmlkZWQsIHRoZSBzZWxlY3Rpb24gYWJvdmVcbiAgICAgKiBpcyBuYXJyb3dlZCB0byBvbmx5IHRoZSBzZXNzaW9ucyBjcmVhdGVkIGJ5ICoqVEhBVCBVU0VSKiogZm9yICoqVEhBVCBST0xFKiouIFRoZSBwZXJtaXNzaW9uXG4gICAgICogbW9kZWwgaXMgdW5jaGFuZ2VkIGZyb20gdGhlIGByb2xlX2NyZWF0ZWRfYnlgLW9ubHkgY2FzZSAodGhlIGN1cnJlbnQgdXNlciBtdXN0IGJlIHRoYXQgdXNlciBvclxuICAgICAqIGFuIG9yZyBvd25lciwgYW5kIG5vbi1vd25lcnMgYXJlIHN0aWxsIGxpbWl0ZWQgdG8gcm9sZXMgdGhleSBhcmUgYSBtZW1iZXIgb2YpOyBgcm9sZWAgaXMgcHVyZWx5XG4gICAgICogYW4gYWRkaXRpb25hbCBmaWx0ZXIuXG4gICAgICpcbiAgICAgKiBUaGUgYHVzZXJgIHNlbGVjdG9yIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIGByb2xlYCBvciBgcm9sZV9jcmVhdGVkX2J5YC5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJyZXZva2VTZXNzaW9uc1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3Nlc3Npb24vc2VsZlwiOiB7XG4gICAgLyoqXG4gICAgICogUmV2b2tlIGN1cnJlbnQgc2Vzc2lvblxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXZva2UgY3VycmVudCBzZXNzaW9uXG4gICAgICpcbiAgICAgKiBJbW1lZGlhdGVseSByZXZva2VzIHRoZSBjdXJyZW50IHNlc3Npb24sIHByZXZlbnRpbmcgaXQgZnJvbSBiZWluZyB1c2VkIG9yIHJlZnJlc2hlZFxuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcInJldm9rZUN1cnJlbnRTZXNzaW9uXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vc2Vzc2lvbi97c2Vzc2lvbl9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBzZXNzaW9uIGluZm9ybWF0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBzZXNzaW9uIGluZm9ybWF0aW9uXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0U2Vzc2lvblwiXTtcbiAgICAvKipcbiAgICAgKiBSZXZva2UgYSBzZXNzaW9uXG4gICAgICogQGRlc2NyaXB0aW9uIFJldm9rZSBhIHNlc3Npb25cbiAgICAgKlxuICAgICAqIEltbWVkaWF0ZWx5IHJldm9rZXMgYW4gZXhpc3Rpbmcgc2Vzc2lvbiwgcHJldmVudGluZyBpdCBmcm9tIGJlaW5nIHVzZWQgb3IgcmVmcmVzaGVkXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wicmV2b2tlU2Vzc2lvblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3NvbGFuYS9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIFNvbGFuYSBNZXNzYWdlXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gU29sYW5hIE1lc3NhZ2VcbiAgICAgKlxuICAgICAqIFNpZ25zIGEgU29sYW5hIG1lc3NhZ2Ugd2l0aCBhIGdpdmVuIGtleS5cbiAgICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wic29sYW5hU2lnblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3N1aS9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIGEgc2VyaWFsaXplZCBTVUkgdHJhbnNhY3Rpb24uXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gYSBzZXJpYWxpemVkIFNVSSB0cmFuc2FjdGlvbi5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJzdWlTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdGVuZGVybWludC9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIGEgdGVuZGVybWludCBtZXNzYWdlLlxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIGEgdGVuZGVybWludCBtZXNzYWdlLlxuICAgICAqXG4gICAgICogU2lnbnMgdGhlIGdpdmVuIGJhc2UtNjQgZW5jb2RlZCB2b3RlIG9yIHByb3Bvc2FsIHdpdGggdGhlIGdpdmVuIHRlbmRlcm1pbnQga2V5LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJ0ZW5kZXJtaW50U2lnblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3Rva2VuL2tleXNcIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBUb2tlbi1BY2Nlc3NpYmxlIEtleXNcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IFRva2VuLUFjY2Vzc2libGUgS2V5c1xuICAgICAqXG4gICAgICogUmV0cmlldmVzIHRoZSBrZXlzIHRoYXQgYSB1c2VyIG9yIHJvbGUgc2Vzc2lvbiBjYW4gYWNjZXNzLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RUb2tlbktleXNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS91c2VyL21lXCI6IHtcbiAgICAvKipcbiAgICAgKiBVc2VyIEluZm9cbiAgICAgKiBAZGVzY3JpcHRpb24gVXNlciBJbmZvXG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgdXNlci5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJhYm91dE1lXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlci9tZS9lbWFpbFwiOiB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhdGUgUmVzZXQgVmVyaWZpZWQgRW1haWwgRmxvd1xuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSBSZXNldCBWZXJpZmllZCBFbWFpbCBGbG93XG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInVzZXJSZXNldEVtYWlsSW5pdFwiXTtcbiAgICAvKipcbiAgICAgKiBGaW5hbGl6ZSBhIFJlc2V0IFZlcmlmaWVkIEVtYWlsIEZsb3dcbiAgICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgYSBSZXNldCBWZXJpZmllZCBFbWFpbCBGbG93XG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJ1c2VyUmVzZXRFbWFpbENvbXBsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlci9tZS9leHBvcnRcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3Qgb3V0c3RhbmRpbmcgdXNlci1leHBvcnQgcmVxdWVzdHNcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBvdXRzdGFuZGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0c1xuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcInVzZXJFeHBvcnRMaXN0XCJdO1xuICAgIC8qKlxuICAgICAqIEluaXRpYXRlIGEgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSBhIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICAgKlxuICAgICAqIFRoaXMgc3RhcnRzIGEgZGVsYXkgKHdob3NlIGxlbmd0aCBpcyBkZXRlcm1pbmVkIGJ5IE9yZy13aWRlIHNldHRpbmdzKVxuICAgICAqIGJlZm9yZSBleHBvcnQgY2FuIGJlIGNvbXBsZXRlZCwgYW5kIHJldHVybnMgYSB0aWNrZXQgdGhhdCBjYW4gYmUgdXNlZFxuICAgICAqIHRvIGNvbXBsZXRlIHRoZSBleHBvcnQgb25jZSB0aGUgdGltZXIgaGFzIGV4cGlyZWQuXG4gICAgICpcbiAgICAgKiBPbmx5IG9uZSB1c2VyLWV4cG9ydCByZXF1ZXN0IGNhbiBiZSBhY3RpdmUgZm9yIGEgZ2l2ZW4ga2V5LiBJZiB0aGVyZVxuICAgICAqIGlzIGFscmVhZHkgYW4gYWN0aXZlIGV4cG9ydCwgdGhpcyBlbmRwb2ludCB3aWxsIHJldHVybiBhbiBlcnJvci4gVG9cbiAgICAgKiBjcmVhdGUgYSBuZXcgcmVxdWVzdCwgZmlyc3QgZGVsZXRlIHRoZSBleGlzdGluZyBvbmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInVzZXJFeHBvcnRJbml0XCJdO1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSBhbiBleGlzdGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0XG4gICAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBhbiBleGlzdGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0XG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1widXNlckV4cG9ydERlbGV0ZVwiXTtcbiAgICAvKipcbiAgICAgKiBDb21wbGV0ZSBhIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGUgYSB1c2VyLWV4cG9ydCByZXF1ZXN0XG4gICAgICpcbiAgICAgKiBUaGlzIGVuZHBvaW50IGNhbiBiZSBjYWxsZWQgb25seSBhZnRlciBpbml0aWF0aW5nIGEgdXNlci1leHBvcnQgcmVxdWVzdCB2aWFcbiAgICAgKiB0aGUgYHVzZXJfZXhwb3J0X2luaXRgIEFQSSwgYW5kIG9ubHkgd2l0aGluIHRoZSBzdWJzZXF1ZW50IGV4cG9ydCB3aW5kb3dcbiAgICAgKiAoaS5lLiwgYWZ0ZXIgdGhlIGV4cG9ydCBkZWxheSBoYXMgcGFzc2VkIGFuZCBiZWZvcmUgdGhlIHJlcXVlc3QgaGFzIGV4cGlyZWQpLlxuICAgICAqXG4gICAgICogVG8gY2hlY2sgb24gdGhlIHN0YXR1cyBvZiBhbiBleHBvcnQgcmVxdWVzdCwgc2VlIHRoZSBgdXNlcl9leHBvcnRfbGlzdGAgQVBJLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXNlckV4cG9ydENvbXBsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlci9tZS9maWRvXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbml0aWF0ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleS5cbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXkuXG4gICAgICpcbiAgICAgKiBJZiBhIGRpc2NvdmVyYWJsZSBrZXkgaXMgcmVxdWVzdGVkLCB1c2VyIHZlcmlmaWNhdGlvbiAoUElOKSBpcyByZXF1aXJlZC5cbiAgICAgKlxuICAgICAqIEdlbmVyYXRlcyBhIGNoYWxsZW5nZSB0aGF0IG11c3QgYmUgYW5zd2VyZWQgdG8gcHJvdmUgb3duZXJzaGlwIG9mIGEga2V5LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJ1c2VyUmVnaXN0ZXJGaWRvSW5pdFwiXTtcbiAgICAvKipcbiAgICAgKiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgICAqXG4gICAgICogQWNjZXB0cyB0aGUgcmVzcG9uc2UgdG8gdGhlIGNoYWxsZW5nZSBnZW5lcmF0ZWQgYnkgdGhlIFBPU1QgdG8gdGhpcyBlbmRwb2ludC5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInVzZXJSZWdpc3RlckZpZG9Db21wbGV0ZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3VzZXIvbWUvZmlkby97Zmlkb19pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSBGSURPIGtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgRklETyBrZXlcbiAgICAgKlxuICAgICAqIERlbGV0ZXMgYSBGSURPIGtleSBmcm9tIHRoZSB1c2VyJ3MgYWNjb3VudCAoaWYgdGhlIGtleSBpcyBub3QgdGhlIHNvbGUgTUZBIGZhY3RvcikuIE1GQSBpcyBhbHdheXMgcmVxdWlyZWQuXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1widXNlckRlbGV0ZUZpZG9cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS91c2VyL21lL3RvdHBcIjoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgVE9UUCBSZXNldFxuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplIFRPVFAgUmVzZXRcbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgVE9UUCBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIHRoYXQgdGhlIG5ldyBUT1RQXG4gICAgICogd2FzIHN1Y2Nlc3NmdWxseSBpbXBvcnRlZCBpbnRvIGFuIGF1dGhlbnRpY2F0b3IgYXBwLlxuICAgICAqXG4gICAgICogVGhpcyBvcGVyYXRpb24gaXMgYWxsb3dlZCBpZiBFSVRIRVJcbiAgICAgKiAtIHRoZSB1c2VyIGFjY291bnQgaXMgbm90IHlldCBpbml0aWFsaXplZCBhbmQgbm8gVE9UUCBpcyBhbHJlYWR5IHNldCwgT1JcbiAgICAgKiAtIHRoZSB1c2VyIGhhcyBub3QgY29uZmlndXJlZCBhbnkgYXV0aCBmYWN0b3JzO1xuICAgICAqIG90aGVyd2lzZSwgTUZBIGlzIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJ1c2VyUmVzZXRUb3RwSW5pdFwiXTtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgVE9UUFxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgVE9UUFxuICAgICAqXG4gICAgICogRGVsZXRlcyBUT1RQIGZyb20gdGhlIHVzZXIncyBhY2NvdW50IChpZiBUT1RQIGlzIG5vdCB0aGUgc29sZSBNRkEgZmFjdG9yKS4gTUZBIGlzIGFsd2F5cyByZXF1aXJlZC5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJ1c2VyRGVsZXRlVG90cFwiXTtcbiAgICAvKipcbiAgICAgKiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgICAqXG4gICAgICogQ2hlY2tzIGlmIHRoZSByZXNwb25zZSBjb250YWlucyB0aGUgY29ycmVjdCBUT1RQIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGVcbiAgICAgKiBjaGFsbGVuZ2UgZ2VuZXJhdGVkIGJ5IHRoZSBQT1NUIG1ldGhvZCBvZiB0aGlzIGVuZHBvaW50LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXNlclJlc2V0VG90cENvbXBsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlci9tZS90b3RwL3ZlcmlmeVwiOiB7XG4gICAgLyoqXG4gICAgICogVmVyaWZ5IFRPVFBcbiAgICAgKiBAZGVzY3JpcHRpb24gVmVyaWZ5IFRPVFBcbiAgICAgKlxuICAgICAqIENoZWNrcyBpZiBhIGdpdmVuIGNvZGUgbWF0Y2hlcyB0aGUgY3VycmVudCBUT1RQIGNvZGUgZm9yIHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICogRXJyb3JzIHdpdGggNDAzIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIG5vdCBzZXQgdXAgVE9UUCBvciB0aGUgY29kZSBmYWlscyB2ZXJpZmljYXRpb24uXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInVzZXJWZXJpZnlUb3RwXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlcnNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgdXNlcnMgaW4gb3JnYW5pemF0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgdXNlcnMgaW4gb3JnYW5pemF0aW9uXG4gICAgICpcbiAgICAgKiBJZiBhIHF1ZXJ5IGlzIGRlZmluZWQsIHRoZSByZXN1bHQgd2lsbCBjb250YWluIG9ubHkgdGhlIHVzZXJzIHdob3NlIG5hbWUgb3JcbiAgICAgKiBlbWFpbCBjb250YWluIHRoZSBxdWVyeSBzdHJpbmcuIE5PVEUgdGhhdCBpZiBwYWdpbmF0aW9uIGlzIHVzZWQgYW5kIGEgcGFnZVxuICAgICAqIGxpbWl0IGlzIHNldCwgdGhlIHJldHVybmVkIHJlc3VsdCBzZXQgbWF5IGNvbnRhaW4gRkVXRVIgZWxlbWVudHMgdGhhbiB0aGVcbiAgICAgKiByZXF1ZXN0ZWQgcGFnZSBsaW1pdC5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0VXNlcnNJbk9yZ1wiXTtcbiAgICAvKipcbiAgICAgKiBBZGQgYSB0aGlyZC1wYXJ0eSB1c2VyIHRvIHRoZSBvcmdcbiAgICAgKiBAZGVzY3JpcHRpb24gQWRkIGEgdGhpcmQtcGFydHkgdXNlciB0byB0aGUgb3JnXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZU9pZGNVc2VyXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlcnMvZW1haWwve2VtYWlsfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IHVzZXIgYnkgZW1haWwuXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCB1c2VyIGJ5IGVtYWlsLlxuICAgICAqXG4gICAgICogVGhlIHNlYXJjaCBpbmNsdWRlcyBhbGwgdXNlcnMgYW5kIHRoZWlyIHRoaXJkLXBhcnR5IGlkZW50aXRpZXMuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0VXNlckluT3JnQnlFbWFpbFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3VzZXJzL29pZGNcIjoge1xuICAgIC8qKlxuICAgICAqIFJlbW92ZSBhIHRoaXJkLXBhcnR5IHVzZXIgZnJvbSB0aGUgb3JnXG4gICAgICogQGRlc2NyaXB0aW9uIFJlbW92ZSBhIHRoaXJkLXBhcnR5IHVzZXIgZnJvbSB0aGUgb3JnXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wiZGVsZXRlT2lkY1VzZXJcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS91c2Vycy9vaWRjL3tpc3N9L3tzdWJ9XCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgYSB1c2VyIGJ5IHRoZWlyIE9JREMgaWRlbnRpdHlcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IGEgdXNlciBieSB0aGVpciBPSURDIGlkZW50aXR5XG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgYSB1c2VyIGluIHRoZSBvcmdhbml6YXRpb24gYnkgdGhlaXIgT0lEQyBpc3N1ZXIgYW5kIHN1YmplY3QuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0VXNlckluT3JnQnlPaWRjXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlcnMvcmVzZXRfbWZhXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplIE1GQSByZXNldCBmb3IgdXNlclxuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplIE1GQSByZXNldCBmb3IgdXNlclxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJyZXNldE1lbWJlck1mYVwiXTtcbiAgICAvKipcbiAgICAgKiBDb21wbGV0ZSBNRkEgcmVzZXQgZm9yIHVzZXJcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGUgTUZBIHJlc2V0IGZvciB1c2VyXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJjb21wbGV0ZVJlc2V0TWVtYmVyTWZhXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlcnMve3VzZXJfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgdXNlciBieSBpZFxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgdXNlciBieSBpZFxuICAgICAqXG4gICAgICogSWYgdGhlIHJlcXVlc3RpbmcgdXNlciBpcyBhbiBvd25lciBvZiB0aGUgb3JnLCB0aGUgcmVzcG9uc2UgYWRkaXRpb25hbGx5XG4gICAgICogaW5jbHVkZXMgdGhlIHVzZXIncyBPSURDIGlkZW50aXRpZXMuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0VXNlckluT3JnXCJdO1xuICAgIC8qKlxuICAgICAqIFJlbW92ZSBhIHVzZXIgZnJvbSB0aGUgb3JnXG4gICAgICogQGRlc2NyaXB0aW9uIFJlbW92ZSBhIHVzZXIgZnJvbSB0aGUgb3JnXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wiZGVsZXRlVXNlclwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3VzZXJzL3t1c2VyX2lkfS9tZW1iZXJzaGlwXCI6IHtcbiAgICAvKipcbiAgICAgKiBVcGRhdGUgYSB1c2VyJ3MgbWVtYmVyc2hpcCBpbiB0aGUgb3JnXG4gICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBhIHVzZXIncyBtZW1iZXJzaGlwIGluIHRoZSBvcmdcbiAgICAgKlxuICAgICAqIEVuYWJsZS9kaXNhYmxlIGFub3RoZXIgdXNlciBpbiB0aGUgb3JnLCBvciBjaGFuZ2UgdGhlaXIgbWVtYmVyc2hpcCByb2xlLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXBkYXRlVXNlck1lbWJlcnNoaXBcIl07XG4gIH07XG4gIFwiL3YwL3Bhc3NrZXlcIjoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYXRlIExvZ2luIHdpdGggUGFzc2tleVxuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSBMb2dpbiB3aXRoIFBhc3NrZXlcbiAgICAgKlxuICAgICAqIFRoZSByZXNwb25zZSBjb250YWlucyBhIEZJRE8gY2hhbGxlbmdlIHRoYXQgdGhlIGNsaWVudCBtdXN0IGFuc3dlciB3aXRoIGFueSBvZiB0aGVpclxuICAgICAqIGRpc2NvdmVyYWJsZSBjcmVkZW50aWFscy4gIFRoZSBhbnN3ZXIgc2hvdWxkIGJlIHN1Ym1pdHRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIFBBVENIIHJlcXVlc3QuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInBhc3NrZXlBdXRoSW5pdFwiXTtcbiAgICAvKipcbiAgICAgKiBDb21wbGV0ZSBMb2dpbiB3aXRoIFBhc3NrZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGUgTG9naW4gd2l0aCBQYXNza2V5XG4gICAgICpcbiAgICAgKiBUaGUgcmVxdWVzdCBzaG91bGQgY29udGFpbiBhbiBhbnN3ZXIgdG8gdGhlIGNoYWxsZW5nZSBpc3N1ZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgUE9TVCByZXF1ZXN0LlxuICAgICAqIFRoZSBjaGFsbGVuZ2UgbWF5IGJlIGFuc3dlcmVkIHdpdGggYW55IG9mIHRoZSB1c2VyJ3MgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWxzOyBpZiB0aGUgY3JlZGVudGlhbFxuICAgICAqIGluY2x1ZGVkIGluIHRoZSBhbnN3ZXIgaXMgcmVnaXN0ZXJlZCB3aXRoIGEgdXNlciBhbmQgYW4gb3JnYW5pemF0aW9uLCB0aGUgcmVzcG9uc2Ugd2lsbCBjb250YWluXG4gICAgICogYSBDdWJlU2lnbmVyIHNlc3Npb24gKHdpdGggdGhlIHBhcmFtZXRlcnMgc3VwcGxpZWQgaW4gdGhlIHByZXZpb3VzIFBPU1QgcmVxdWVzdCkgZm9yIHRoYXQgdXNlclxuICAgICAqIGluIHRoYXQgb3JnYW5pemF0aW9uLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wicGFzc2tleUF1dGhDb21wbGV0ZVwiXTtcbiAgfTtcbiAgXCIvdjAvdXNlci9tZS9maWRvXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbml0aWF0ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAgICpcbiAgICAgKiBERVBSRUNBVEVELiBVc2UgYFBPU1QgL3YwL29yZy97b3JnX2lkfS91c2VyL21lL2ZpZG9gIGluc3RlYWQuXG4gICAgICpcbiAgICAgKiBHZW5lcmF0ZXMgYSBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIG93bmVyc2hpcCBvZiBhIGtleVxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJyZWdpc3RlckZpZG9Jbml0TGVnYWN5XCJdO1xuICAgIC8qKlxuICAgICAqIEZpbmFsaXplIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICAgKlxuICAgICAqIERFUFJFQ0FURUQuIFVzZSBgUEFUQ0ggL3YwL29yZy97b3JnX2lkfS91c2VyL21lL2ZpZG9gIGluc3RlYWQuXG4gICAgICpcbiAgICAgKiBBY2NlcHRzIHRoZSByZXNwb25zZSB0byB0aGUgY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCB0byB0aGlzIGVuZHBvaW50LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wicmVnaXN0ZXJGaWRvQ29tcGxldGVMZWdhY3lcIl07XG4gIH07XG4gIFwiL3YwL3VzZXIvbWUvdG90cFwiOiB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZSBUT1RQIFJlc2V0XG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZSBUT1RQIFJlc2V0XG4gICAgICpcbiAgICAgKiBERVBSRUNBVEVELiBVc2UgYFBPU1QgL3YwL29yZy97b3JnX2lkfS91c2VyL21lL3RvdHBgIGluc3RlYWQuXG4gICAgICpcbiAgICAgKiBDcmVhdGVzIGEgbmV3IFRPVFAgY2hhbGxlbmdlIHRoYXQgbXVzdCBiZSBhbnN3ZXJlZCB0byBwcm92ZSB0aGF0IHRoZSBuZXcgVE9UUFxuICAgICAqIHdhcyBzdWNjZXNzZnVsbHkgaW1wb3J0ZWQgaW50byBhbiBhdXRoZW50aWNhdG9yIGFwcC5cbiAgICAgKlxuICAgICAqIFRoaXMgb3BlcmF0aW9uIGlzIGFsbG93ZWQgaWYgRUlUSEVSXG4gICAgICogLSB0aGUgdXNlciBhY2NvdW50IGlzIG5vdCB5ZXQgaW5pdGlhbGl6ZWQgYW5kIG5vIFRPVFAgaXMgYWxyZWFkeSBzZXQsIE9SXG4gICAgICogLSB0aGUgdXNlciBoYXMgbm90IGNvbmZpZ3VyZWQgYW55IGF1dGggZmFjdG9ycztcbiAgICAgKiBvdGhlcndpc2UsIE1GQSBpcyByZXF1aXJlZC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wicmVzZXRUb3RwSW5pdExlZ2FjeVwiXTtcbiAgICAvKipcbiAgICAgKiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQGRlc2NyaXB0aW9uIEZpbmFsaXplIHJlc2V0dGluZyBUT1RQXG4gICAgICpcbiAgICAgKiBERVBSRUNBVEVELiBVc2UgYFBBVENIIC92MC9vcmcve29yZ19pZH0vdXNlci9tZS90b3RwYCBpbnN0ZWFkLlxuICAgICAqXG4gICAgICogQ2hlY2tzIGlmIHRoZSByZXNwb25zZSBjb250YWlucyB0aGUgY29ycmVjdCBUT1RQIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGVcbiAgICAgKiBjaGFsbGVuZ2UgZ2VuZXJhdGVkIGJ5IHRoZSBQT1NUIG1ldGhvZCBvZiB0aGlzIGVuZHBvaW50LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wicmVzZXRUb3RwQ29tcGxldGVMZWdhY3lcIl07XG4gIH07XG4gIFwiL3YwL3VzZXIvbWUvdG90cC92ZXJpZnlcIjoge1xuICAgIC8qKlxuICAgICAqIFZlcmlmeSBUT1RQXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAZGVzY3JpcHRpb24gVmVyaWZ5IFRPVFBcbiAgICAgKlxuICAgICAqIERFUFJFQ0FURUQuIFVzZSBgUE9TVCAvdjAvb3JnL3tvcmdfaWR9L3VzZXIvbWUvdG90cC92ZXJpZnlgIGluc3RlYWQuXG4gICAgICpcbiAgICAgKiBDaGVja3MgaWYgYSBnaXZlbiBjb2RlIG1hdGNoZXMgdGhlIGN1cnJlbnQgVE9UUCBjb2RlIGZvciB0aGUgY3VycmVudCB1c2VyLlxuICAgICAqIEVycm9ycyB3aXRoIDQwMyBpZiB0aGUgY3VycmVudCB1c2VyIGhhcyBub3Qgc2V0IHVwIFRPVFAgb3IgdGhlIGNvZGUgZmFpbHMgdmVyaWZpY2F0aW9uLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJ2ZXJpZnlUb3RwTGVnYWN5XCJdO1xuICB9O1xuICBcIi92MC91c2VyL29yZ3NcIjoge1xuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBhbGwgdGhlIG9yZ3MgdGhlIHVzZXIgaXMgYSBwYXJ0IG9mXG4gICAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBhbGwgdGhlIG9yZ3MgdGhlIHVzZXIgaXMgYSBwYXJ0IG9mXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1widXNlck9yZ3NcIl07XG4gIH07XG4gIFwiL3YxL29yZy97b3JnX2lkfS9ibG9iL3NpZ24ve2tleV9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gUmF3IEJsb2JcbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBSYXcgQmxvYlxuICAgICAqXG4gICAgICogU2lnbnMgYW4gYXJiaXRyYXJ5IGJsb2Igd2l0aCBhIGdpdmVuIGtleS5cbiAgICAgKlxuICAgICAqIC0gRUNEU0Egc2lnbmF0dXJlcyBhcmUgc2VyaWFsaXplZCBhcyBiaWctZW5kaWFuIHIgYW5kIHMgcGx1cyByZWNvdmVyeS1pZFxuICAgICAqIGJ5dGUgdiwgd2hpY2ggY2FuIGluIGdlbmVyYWwgdGFrZSBhbnkgb2YgdGhlIHZhbHVlcyAwLCAxLCAyLCBvciAzLlxuICAgICAqXG4gICAgICogLSBFZERTQSBzaWduYXR1cmVzIGFyZSBzZXJpYWxpemVkIGluIHRoZSBzdGFuZGFyZCBmb3JtYXQuXG4gICAgICpcbiAgICAgKiAtIEJMUyBzaWduYXR1cmVzIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHRoZSBibG9iLXNpZ24gZW5kcG9pbnQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImJsb2JTaWduXCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vY3ViZTNzaWduZXIvaGVhcnRiZWF0XCI6IHtcbiAgICAvKipcbiAgICAgKiBSZWNvcmQgaGVhcnRiZWF0XG4gICAgICogQGRlc2NyaXB0aW9uIFJlY29yZCBoZWFydGJlYXRcbiAgICAgKlxuICAgICAqIFRoaXMgZW5kcG9pbnQgaXMgY2FsbGVkIGJ5IHRoZSBjdWJlM3NpZ25lciBwcm94eSB0byByZWNvcmQgdmFyaW91cyBtZXRyaWNzIHRvIENsb3VkV2F0Y2guXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImN1YmUzc2lnbmVySGVhcnRiZWF0XCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vZXRoMS9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIEVWTSBUcmFuc2FjdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIEVWTSBUcmFuc2FjdGlvblxuICAgICAqXG4gICAgICogU2lnbnMgYW4gRXRoZXJldW0gKGFuZCBvdGhlciBFVk0pIHRyYW5zYWN0aW9uIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgICAqIFJldHVybnMgYW4gUkxQLWVuY29kZWQgdHJhbnNhY3Rpb24gd2l0aCBFSVAtMTU1IHNpZ25hdHVyZS5cbiAgICAgKlxuICAgICAqIFRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZSBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJldGgxU2lnblwiXTtcbiAgfTtcbiAgXCIvdjEvb3JnL3tvcmdfaWR9L2V0aDIvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBWYWxpZGF0b3IgUmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIFZhbGlkYXRvciBSZXF1ZXN0XG4gICAgICpcbiAgICAgKiBTaWducyBhbiBldGgyIHZhbGlkYXRvciByZXF1ZXN0IHdpdGggYSBnaXZlbiBCTFMga2V5LlxuICAgICAqXG4gICAgICogVGhlIGtleSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZSBhbmQgb3JnYW5pemF0aW9uIG9uIHdob3NlIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImV0aDJTaWduXCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vZXRoMi9zdGFrZVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBTdGFrZSBEZXBvc2l0XG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gU3Rha2UgRGVwb3NpdFxuICAgICAqXG4gICAgICogU2lnbnMgYSBkZXBvc2l0IHRyYW5zYWN0aW9uIHdpdGggYSBgdmFsaWRhdG9yX2tleWAuIElmIGB2YWxpZGF0b3Jfa2V5YCBpcyBzZXQgdG8gYSBwcmVnZW5lcmF0ZWQga2V5LCB3ZSB1c2UgdGhlXG4gICAgICogcHJvdmlkZWQgdmFsaWRhdG9yIGtleS4gT3RoZXJ3aXNlLCB3ZSBnZW5lcmF0ZSBhIG5ldyBCTFMga2V5LlxuICAgICAqXG4gICAgICogV2hlbiB1c2luZyBhIHByZWdlbmVyYXRlZCBrZXksIHRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZVxuICAgICAqIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInN0YWtlXCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vZXRoMi91bnN0YWtlL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIFVuc3Rha2UgUmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIFVuc3Rha2UgUmVxdWVzdFxuICAgICAqXG4gICAgICogSGFuZGxlIHVuc3Rha2luZyByZXF1ZXN0LCBwcm9kdWNpbmcgYSBzaWduZWQgdm9sdW50YXJ5IGV4aXQgbWVzc2FnZVxuICAgICAqIHRoYXQgY2FuIGJlIHBvc3RlZCBkaXJlY3RseSB0byB0aGUgQmVhY29uIGNoYWluLlxuICAgICAqXG4gICAgICogVGhlIGtleSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZSBhbmQgb3JnYW5pemF0aW9uIG9uIHdob3NlIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInVuc3Rha2VcIl07XG4gIH07XG4gIFwiL3YxL29yZy97b3JnX2lkfS90b2tlbi9yZWZyZXNoXCI6IHtcbiAgICAvKipcbiAgICAgKiBSZWZyZXNoIFNpZ25lciBTZXNzaW9uXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZnJlc2ggU2lnbmVyIFNlc3Npb25cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInNpZ25lclNlc3Npb25SZWZyZXNoXCJdO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSB3ZWJob29rcyA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuZXhwb3J0IGludGVyZmFjZSBjb21wb25lbnRzIHtcbiAgc2NoZW1hczoge1xuICAgIEFjY2VwdGVkUmVzcG9uc2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXSAmIFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERpZmZlcmVudCByZXNwb25zZXMgd2UgcmV0dXJuIGZvciBzdWNjZXNzIHN0YXR1cyBjb2Rlcy4gKi9cbiAgICBBY2NlcHRlZFZhbHVlOiBPbmVPZjxcbiAgICAgIFtcbiAgICAgICAge1xuICAgICAgICAgIFNpZ25EcnlSdW46IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2lnbkRyeVJ1bkFyZ3NcIl07XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBCaW5hbmNlRHJ5UnVuOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VEcnlSdW5BcmdzXCJdO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQnliaXREcnlSdW46IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREcnlSdW5BcmdzXCJdO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQ29pbmJhc2VEcnlSdW46IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29pbmJhc2VEcnlSdW5BcmdzXCJdO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgTWZhUmVxdWlyZWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhUmVxdWlyZWRBcmdzXCJdO1xuICAgICAgICB9LFxuICAgICAgXVxuICAgID47XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgQWNjZXB0ZWRWYWx1ZUNvZGU6XG4gICAgICB8IFwiU2lnbkRyeVJ1blwiXG4gICAgICB8IFwiQmluYW5jZURyeVJ1blwiXG4gICAgICB8IFwiQnliaXREcnlSdW5cIlxuICAgICAgfCBcIkNvaW5iYXNlRHJ5UnVuXCJcbiAgICAgIHwgXCJNZmFSZXF1aXJlZFwiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZXRlcm1pbmVzIHdobyBjb250cm9scyB0aGUga2V5cyB3aXRoaW4gYW4gb3JnXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBBY2Nlc3NNb2RlbDogXCJVc2VyXCIgfCBcIk9yZ1wiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBPbmUgYXNzZXQgYmFsYW5jZSBlbnRyeSBpbiBbYEFjY291bnRJbmZvUmVzcG9uc2U6OmJhbGFuY2VzYF0uIERpc3RpbmN0IGZyb21cbiAgICAgKiBbYFN1YkFjY291bnRBc3NldGBdIGJlY2F1c2UgdGhlIHNwb3QtYWNjb3VudCBzY2hlbWEgbGFja3MgdGhlIGBmcmVlemVgIGFuZFxuICAgICAqIGB3aXRoZHJhd2luZ2AgZmllbGRzLlxuICAgICAqL1xuICAgIEFjY291bnRCYWxhbmNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFzc2V0IHN5bWJvbCAoZS5nLiBgXCJVU0RUXCJgLCBgXCJCVENcImApLiAqL1xuICAgICAgYXNzZXQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXZhaWxhYmxlIGJhbGFuY2UuICovXG4gICAgICBmcmVlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEJhbGFuY2UgbG9ja2VkIGluIG9wZW4gb3JkZXJzLiAqL1xuICAgICAgbG9ja2VkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYEdFVCAvYXBpL3YzL2FjY291bnRgLlxuICAgICAqXG4gICAgICogUmV0dXJucyBTcG90IGFjY291bnQgaW5mbyBmb3Igd2hpY2hldmVyIGFjY291bnQgdGhlIHNpZ25pbmcga2V5XG4gICAgICogYXV0aGVudGljYXRlcyBhcyAobWFzdGVyIG9yIHN1YikuXG4gICAgICovXG4gICAgQWNjb3VudEluZm9SZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBgdHJ1ZWAsIHRoZSByZXNwb25zZSBvbWl0cyBhc3NldHMgd2l0aCBhbGwtemVybyBiYWxhbmNlcy4gRGVmYXVsdHMgdG9cbiAgICAgICAqIGBmYWxzZWAgKEJpbmFuY2UncyBkZWZhdWx0KS5cbiAgICAgICAqL1xuICAgICAgb21pdFplcm9CYWxhbmNlcz86IGJvb2xlYW4gfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCBieSBgY3NfYmluYW5jZUFjY291bnRJbmZvYC4gKi9cbiAgICBBY2NvdW50SW5mb1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFjY291bnQgdHlwZSwgZS5nLiBgXCJTUE9UXCJgLiBMZWZ0IGFzIGBTdHJpbmdgIGZvciBmb3J3YXJkIGNvbXBhdGliaWxpdHkuICovXG4gICAgICBhY2NvdW50VHlwZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgZW50cnkgcGVyIGFzc2V0LiBBZmZlY3RlZCBieSB0aGUgYG9taXRfemVyb19iYWxhbmNlc2AgcmVxdWVzdCBmbGFnLiAqL1xuICAgICAgYmFsYW5jZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjb3VudEJhbGFuY2VcIl1bXTtcbiAgICAgIGJyb2tlcmVkOiBib29sZWFuO1xuICAgICAgLyoqIEZvcm1hdDogaW50NjQgKi9cbiAgICAgIGJ1eWVyQ29tbWlzc2lvbjogbnVtYmVyO1xuICAgICAgY2FuRGVwb3NpdDogYm9vbGVhbjtcbiAgICAgIGNhblRyYWRlOiBib29sZWFuO1xuICAgICAgY2FuV2l0aGRyYXc6IGJvb2xlYW47XG4gICAgICBjb21taXNzaW9uUmF0ZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29tbWlzc2lvblJhdGVzXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTWFrZXIgY29tbWlzc2lvbiwgaW4gYmFzaXMgcG9pbnRzIChlLmcuIGAxMGAgPSAwLjElKS4gU3VwZXJzZWRlZCBieVxuICAgICAgICogW2BBY2NvdW50SW5mb1Jlc3BvbnNlOjpjb21taXNzaW9uX3JhdGVzYF0gZm9yIGZyYWN0aW9uYWwgcmF0ZXMuXG4gICAgICAgKi9cbiAgICAgIG1ha2VyQ29tbWlzc2lvbjogbnVtYmVyO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQZXJtaXNzaW9uIGZsYWdzLCBlLmcuIGBbXCJTUE9UXCIsIFwiTUFSR0lOXCJdYC4gKi9cbiAgICAgIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgICAgIHByZXZlbnRTb3I6IGJvb2xlYW47XG4gICAgICByZXF1aXJlU2VsZlRyYWRlUHJldmVudGlvbjogYm9vbGVhbjtcbiAgICAgIC8qKiBGb3JtYXQ6IGludDY0ICovXG4gICAgICBzZWxsZXJDb21taXNzaW9uOiBudW1iZXI7XG4gICAgICAvKiogRm9ybWF0OiBpbnQ2NCAqL1xuICAgICAgdGFrZXJDb21taXNzaW9uOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBY2NvdW50IHVzZXIgaWQuXG4gICAgICAgKi9cbiAgICAgIHVpZDogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTGFzdCBhY2NvdW50IHVwZGF0ZSB0aW1lIChtcyBzaW5jZSBlcG9jaCkuXG4gICAgICAgKi9cbiAgICAgIHVwZGF0ZVRpbWU6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXYWxsZXQgdHlwZSB1c2VkIGFzIHRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gb2YgYSBbYFVuaXZlcnNhbFRyYW5zZmVyUmVxdWVzdGBdLlxuICAgICAqXG4gICAgICogU2VyaWFsaXplcyB0byB0aGUgU0NSRUFNSU5HX1NOQUtFX0NBU0Ugc3RyaW5ncyBCaW5hbmNlIGV4cGVjdHMuIFRoZSBkZWZhdWx0XG4gICAgICogaXMgW2BBY2NvdW50VHlwZTo6U3BvdGBdLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgQWNjb3VudFR5cGU6IFwiU1BPVFwiIHwgXCJVU0RUX0ZVVFVSRVwiIHwgXCJDT0lOX0ZVVFVSRVwiIHwgXCJNQVJHSU5cIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlcXVlc3QgdG8gYWRkIE9JREMgaWRlbnRpdHkgdG8gYW4gZXhpc3RpbmcgdXNlciBhY2NvdW50ICovXG4gICAgQWRkSWRlbnRpdHlSZXF1ZXN0OiB7XG4gICAgICBvaWRjX3Rva2VuOiBzdHJpbmc7XG4gICAgICB1c2VyX2lkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXSB8IG51bGw7XG4gICAgfTtcbiAgICBBZGRLZXlzVG9Sb2xlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBsaXN0IG9mIGtleXMgdG8gYWRkIHRvIGEgcm9sZVxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcIktleSM2MzAyM2EyNy0xZTcwLTQzMGEtYjI5My1mZmJjOWQ2YzQ0ODRcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBrZXlfaWRzOiBzdHJpbmdbXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljaWVzIHRvIGFwcGx5IGZvciBlYWNoIGtleVxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJUeFJlY2VpdmVyXCI6IFwiMHg4YzU5NDY5MWMwZTU5MmZmYTIxZjE1M2ExNmFlNDFkYjViZWZjYWFhXCJcbiAgICAgICAqICAgfSxcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiVHhEZXBvc2l0XCI6IHtcbiAgICAgICAqICAgICAgIFwia2luZFwiOiBcIkNhbm9uaWNhbFwiXG4gICAgICAgKiAgICAgfVxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJSZXF1aXJlTWZhXCI6IHtcbiAgICAgICAqICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgKiAgICAgICAgIFwiUmVxdWlyZWRBcHByb3ZlcnNcIjoge1xuICAgICAgICogICAgICAgICAgIFwiY291bnRcIjogMVxuICAgICAgICogICAgICAgICB9XG4gICAgICAgKiAgICAgICB9LFxuICAgICAgICogICAgICAgXCJyZXN0cmljdGVkX29wZXJhdGlvbnNcIjogW1xuICAgICAgICogICAgICAgICBcIkV0aDFTaWduXCIsXG4gICAgICAgKiAgICAgICAgIFwiQmxvYlNpZ25cIlxuICAgICAgICogICAgICAgXVxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiB1bmtub3duW10gfCBudWxsO1xuICAgIH07XG4gICAgQWRkVGhpcmRQYXJ0eVVzZXJSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCB1c2VyIGVtYWlsXG4gICAgICAgKiBAZXhhbXBsZSBhbGljZUBleGFtcGxlLmNvbVxuICAgICAgICovXG4gICAgICBlbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgICBpZGVudGl0eT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY0lkZW50aXR5XCJdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbG9naW4gTUZBIHBvbGljeSAqL1xuICAgICAgbWZhX3BvbGljeT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHVzZXIgZnVsbCBuYW1lXG4gICAgICAgKiBAZXhhbXBsZSBBbGljZSBXb25kZXJsYW5kXG4gICAgICAgKi9cbiAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgcHJvb2Y/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkZW50aXR5UHJvb2ZcIl0gfCBudWxsO1xuICAgICAgcm9sZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdO1xuICAgIH07XG4gICAgQWRkVGhpcmRQYXJ0eVVzZXJSZXNwb25zZToge1xuICAgICAgLyoqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmICovXG4gICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBhZGRyZXNzZXMgYXNzb2NpYXRlZCB3aXRoIGEgY29udGFjdC4gKi9cbiAgICBBZGRyZXNzTWFwOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEJpdGNvaW4gYWRkcmVzc2VzLiAqL1xuICAgICAgYnRjPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaXRjb2luQWRkcmVzc0luZm9cIl1bXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ2FudG9uIHBhcnRpZXMuICovXG4gICAgICBjYW50b24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNhbnRvblBhcnR5SW5mb1wiXVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBFVk0gYWRkcmVzc2VzLiAqL1xuICAgICAgZXZtPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFdm1BZGRyZXNzSW5mb1wiXVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTb2xhbmEgYWRkcmVzc2VzLiAqL1xuICAgICAgc29sPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTb2xhbmFBZGRyZXNzSW5mb1wiXVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTVUkgYWRkcmVzc2VzLiAqL1xuICAgICAgc3VpPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdWlBZGRyZXNzSW5mb1wiXVtdO1xuICAgIH07XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgQWxlcnRLaW5kOiBcIlBvbGljeUNoYW5nZXNcIiB8IFwiRXRoMkNvbmN1cnJlbnRCbG9ja1NpZ25pbmdcIiB8IFwiQmFieWxvbkVvdHNDb25jdXJyZW50U2lnbmluZ1wiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBNRkEgdHlwZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSB1c2VkIGZvciBpbmRpdmlkdWFsIGltcGxpY2l0bHkgc2VjdXJpdHktc2Vuc2l0aXZlXG4gICAgICogb3BlcmF0aW9ucyAobGlrZSBsb2dnaW5nIGluLCBhZGRpbmcgYW4gTUZBIGZhY3RvciwgZXhwb3J0aW5nIGtleXMsIGV0Yzsgc2VlIGBNZmFQcm90ZWN0ZWRBY3Rpb25gKS5cbiAgICAgKi9cbiAgICBBbGxvd2VkTWZhTWFwOiB7XG4gICAgICBba2V5OiBzdHJpbmddOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVR5cGVcIl1bXTtcbiAgICB9O1xuICAgIEFwcHJvdmFsSW5mbzoge1xuICAgICAgdGltZXN0YW1wOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2ViQXV0aG4gUmVseWluZyBQYXJ0aWVzIG1heSB1c2UgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZSB0byBzcGVjaWZ5XG4gICAgICogdGhlaXIgcHJlZmVyZW5jZSByZWdhcmRpbmcgYXR0ZXN0YXRpb24gY29udmV5YW5jZSBkdXJpbmcgY3JlZGVudGlhbFxuICAgICAqIGdlbmVyYXRpb24uXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZW51bWRlZi1hdHRlc3RhdGlvbmNvbnZleWFuY2VwcmVmZXJlbmNlXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOiBcIm5vbmVcIiB8IFwiaW5kaXJlY3RcIiB8IFwiZGlyZWN0XCIgfCBcImVudGVycHJpc2VcIjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXVkaWVuY2UocykgdGhhdCB0aGlzIElEIFRva2VuIGlzIGludGVuZGVkIGZvci4gSXQgTVVTVCBjb250YWluIHRoZVxuICAgICAqIE9BdXRoIDIuMCBjbGllbnRfaWQgb2YgdGhlIFJlbHlpbmcgUGFydHkgYXMgYW4gYXVkaWVuY2UgdmFsdWUuIEl0IE1BWSBhbHNvIGNvbnRhaW5cbiAgICAgKiBpZGVudGlmaWVycyBmb3Igb3RoZXIgYXVkaWVuY2VzLiBJbiB0aGUgZ2VuZXJhbCBjYXNlLCB0aGUgYXVkIHZhbHVlIGlzIGFuIGFycmF5IG9mXG4gICAgICogY2FzZS1zZW5zaXRpdmUgc3RyaW5ncy4gSW4gdGhlIGNvbW1vbiBzcGVjaWFsIGNhc2Ugd2hlbiB0aGVyZSBpcyBvbmUgYXVkaWVuY2UsXG4gICAgICogdGhlIGF1ZCB2YWx1ZSBNQVkgYmUgYSBzaW5nbGUgY2FzZS1zZW5zaXRpdmUgc3RyaW5nLlxuICAgICAqL1xuICAgIEF1ZDogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgQXVkaXRMb2dFbnRyeToge1xuICAgICAgZXZlbnQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3JnRXZlbnREaXNjcmltaW5hbnRzXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVVUlEIG9mIHRoZSBldmVudC4gVW5pcXVlIGFjcm9zcyBhbGwgZXZlbnRzLiAqL1xuICAgICAgZXZlbnRfaWQ6IHN0cmluZztcbiAgICAgIG9yZ19pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgSFRUUCByZXF1ZXN0IHdoaWNoIHRyaWdnZXJlZCB0aGUgZXZlbnRcbiAgICAgICAqIChhIHNpbmdsZSByZXF1ZXN0IGNhbiB0cmlnZ2VyIG11bHRpcGxlIGV2ZW50cykuXG4gICAgICAgKi9cbiAgICAgIHJlcXVlc3RfaWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHRpbWUgd2hlbiB0aGUgZXZlbnQgd2FzIGxvZ2dlZC4gKi9cbiAgICAgIHRpbWU6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgaWRlbnRpdHkgKHVzZXIgb3Igcm9sZSkgd2hpY2ggdHJpZ2dlcmVkIHRoZSBldmVudFxuICAgICAgICogKG1heSBiZSB1bmRlZmluZWQgZm9yIGNlcnRhaW4gdW5hdXRoZW50aWNhdGVkIGVuZHBvaW50cylcbiAgICAgICAqL1xuICAgICAgdHJpZ2dlcmVkX2J5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXF1ZXN0IHR5cGUgZm9yIHF1ZXJ5aW5nIHRoZSBhdWRpdCBsb2cuICovXG4gICAgQXVkaXRMb2dSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBFbmQgdGltZSBpbiBzZWNvbmRzIHNpbmNlIHVuaXggZXBvY2guIElmIG9taXR0ZWQsIGRlZmF1bHRzIHRvICdub3cnLlxuICAgICAgICovXG4gICAgICBlbmRfdGltZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgdGhlIGxvZyBieSB0aGUgZXZlbnQgbmFtZS5cbiAgICAgICAqIElmIG9taXR0ZWQsIGFsbCBldmVudHMgd2lsbCBiZSBpbmNsdWRlZC5cbiAgICAgICAqIE11c3Qgbm90IGJlIHNldCB0byBhbiBlbXB0eSBhcnJheVxuICAgICAgICovXG4gICAgICBldmVudHM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9yZ0V2ZW50RGlzY3JpbWluYW50c1wiXVtdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFN0YXJ0IHRpbWUgaW4gc2Vjb25kcyBzaW5jZSB1bml4IGVwb2NoLlxuICAgICAgICovXG4gICAgICBzdGFydF90aW1lOiBudW1iZXI7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBhdWRpdCBsb2cgcmVzcG9uc2UgKi9cbiAgICBBdWRpdExvZ1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEF1ZGl0IGxvZyBlbnRyaWVzICovXG4gICAgICBlbnRyaWVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1ZGl0TG9nRW50cnlcIl1bXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gRGF0YSByZXF1aXJlZCBmb3IgYm90aCBgYXV0aGVudGljYXRlYCBhbmQgYHJlZnJlc2hgLiAqL1xuICAgIEF1dGhEYXRhOiB7XG4gICAgICAvKiogRm9ybWF0OiBpbnQzMiAqL1xuICAgICAgZXBvY2hfbnVtOiBudW1iZXI7XG4gICAgICBlcG9jaF90b2tlbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCMzJcIl07XG4gICAgICBvdGhlcl90b2tlbjogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEF0IHJlZGVtcHRpb24gdGltZSwgdGhlIHVzZXIgbXVzdCBwcm92aWRlIGEgY3JlZGVudGlhbCB0aGV5IHdpc2ggdG8gdXNlIHRvIGF1dGhlbnRpY2F0ZS5cbiAgICAgKiBUaGlzIGVudW0gcmVwcmVzZW50cyB0aGUgdHdvIHBvc3NpYmxlIHNvdXJjZXMgb2YgYXV0aGVudGljYXRpb24uXG4gICAgICovXG4gICAgQXV0aFNvdXJjZToge1xuICAgICAgY3JlZGVudGlhbDogc3RyaW5nO1xuICAgICAga2luZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBdXRoU291cmNlS2luZFwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBdCByZWRlbXB0aW9uIHRpbWUsIHRoZSB1c2VyIG11c3QgcHJvdmlkZSBhIGNyZWRlbnRpYWwgdGhleSB3aXNoIHRvIHVzZSB0byBhdXRoZW50aWNhdGUuXG4gICAgICogVGhpcyBlbnVtIHJlcHJlc2VudHMgdGhlIHR3byBwb3NzaWJsZSBzb3VyY2VzIG9mIGF1dGhlbnRpY2F0aW9uLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgQXV0aFNvdXJjZUtpbmQ6IFwicGFzc3dvcmRcIiB8IFwib2lkY1wiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlcXVlc3QgYm9keSBmb3IgdGhlIGlkcCBhdXRoZW50aWNhdGUgZW5kcG9pbnQgKi9cbiAgICBBdXRoZW50aWNhdGlvblJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSB1c2VyIGF0dGVtcHRpbmcgdG8gYXV0aGVudGljYXRlXG4gICAgICAgKiBAZXhhbXBsZSBhbGljZUBleGFtcGxlLmNvbVxuICAgICAgICovXG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcGFzc3dvcmQgZm9yIHRoYXQgdXNlciAqL1xuICAgICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIHRvIHRoZSBpZHAgYXV0aGVudGljYXRlIGVuZHBvaW50ICovXG4gICAgQXV0aGVudGljYXRpb25SZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBPSURDIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXV0aGVudGljYXRlIHdpdGggQ3ViZVNpZ25lciAqL1xuICAgICAgaWRfdG9rZW46IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRzIHRoZSBhc3NlcnRpb24gcmVzcG9uc2UgdXNlZCBieSBjbGllbnRzIHdoZW4gYXR0ZW1wdGluZyB0byBsb2cgaW4gd2l0aCBhIGtub3duIGNyZWRlbnRpYWxcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jYXV0aGVudGljYXRvcmFzc2VydGlvbnJlc3BvbnNlXG4gICAgICovXG4gICAgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBDb250YWlucyB0aGUgc3RhbmRhcmQgQ1RBUDIgYXV0aGVudGljYXRvciBkYXRhLiBNdXN0IGJlIGEgdmFsaWQgW2BBdXRoZW50aWNhdG9yRGF0YWBdLlxuICAgICAgICogVGhpcyBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBob3cga2V5IHdhcyBpbnZva2VkLlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1hdXRoZW50aWNhdG9yYXNzZXJ0aW9ucmVzcG9uc2UtYXV0aGVudGljYXRvcmRhdGFcbiAgICAgICAqL1xuICAgICAgYXV0aGVudGljYXRvckRhdGE6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIENvbnRhaW5zIFVURjggZW5jb2RlZCBKU09OIHdoaWNoIG11c3QgYmUgYSB2YWxpZCBbYENsaWVudERhdGFgXVxuICAgICAgICogVGhpcyBkYXRhIGlzIGNvbWJpbmVkIHdpdGggYGF1dGhlbnRpY2F0b3JfZGF0YWAgdG8gcHJvZHVjZSB0aGUgc2lnbmF0dXJlXG4gICAgICAgKiBtZWFuaW5nIHRoZSBjbGllbnQgYXR0ZXN0cyB0byB0aGUgY29ycmVjdG5lc3Mgb2YgdGhpcyBkYXRhLlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1hdXRoZW50aWNhdG9ycmVzcG9uc2UtY2xpZW50ZGF0YWpzb25cbiAgICAgICAqL1xuICAgICAgY2xpZW50RGF0YUpTT046IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzaWduYXR1cmUgb2YgdGhlIGNvbmNhdGVuYXRlZCBgYXV0aGVudGljYXRvckRhdGEgfHwgaGFzaGAgd2hlcmVcbiAgICAgICAqIGBoYXNoYCBpcyB0aGUgU0hBMjU2IGhhc2ggb2YgdGhlIGBjbGllbnREYXRhSlNPTmAgYnVmZmVyOlxuICAgICAgICpcbiAgICAgICAqIEZpZWxkIERlZmluaXRpb246IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tYXV0aGVudGljYXRvcmFzc2VydGlvbnJlc3BvbnNlLXNpZ25hdHVyZVxuICAgICAgICogU3RlcCAxMSBvZiBgZ2V0QXNzZXJ0aW9uYCBzcGVjaWZpZXMgdGhlIGNvbmNhdGVuYXRpb246IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNzY3RuLW9wLWdldC1hc3NlcnRpb25cbiAgICAgICAqIFJlcXVpcmVtZW50IGZvciBTSEEtMjU2OiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jY29sbGVjdGVkY2xpZW50ZGF0YS1oYXNoLW9mLXRoZS1zZXJpYWxpemVkLWNsaWVudC1kYXRhXG4gICAgICAgKi9cbiAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWxsb3dzIHRoZSBhdXRoZW50aWNhdG9yIHRvIG9wdGlvbmFsbHkgZGVjbGFyZSB0aGUgY3JlZGVudGlhbCBpZGVudGlmaWVyIHRoZXkgdXNlZC5cbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tYXV0aGVudGljYXRvcmFzc2VydGlvbnJlc3BvbnNlLXVzZXJoYW5kbGVcbiAgICAgICAqL1xuICAgICAgdXNlckhhbmRsZT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBlbnVtZXJhdGlvbuKAmXMgdmFsdWVzIGRlc2NyaWJlIGF1dGhlbnRpY2F0b3JzJyBhdHRhY2htZW50IG1vZGFsaXRpZXMuXG4gICAgICogUmVseWluZyBQYXJ0aWVzIHVzZSB0aGlzIHRvIGV4cHJlc3MgYSBwcmVmZXJyZWQgYXV0aGVudGljYXRvciBhdHRhY2htZW50XG4gICAgICogbW9kYWxpdHkgd2hlbiBjYWxsaW5nIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoKSB0byBjcmVhdGUgYSBjcmVkZW50aWFsLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2VudW1kZWYtYXV0aGVudGljYXRvcmF0dGFjaG1lbnRcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OiBcInBsYXRmb3JtXCIgfCBcImNyb3NzLXBsYXRmb3JtXCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSBpbnRlcmZhY2UgcmVwcmVzZW50cyB0aGUgYXV0aGVudGljYXRvcidzXG4gICAgICogcmVzcG9uc2UgdG8gYSBjbGllbnTigJlzIHJlcXVlc3QgZm9yIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBwdWJsaWMga2V5XG4gICAgICogY3JlZGVudGlhbC4gSXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG5ldyBjcmVkZW50aWFsIHRoYXQgY2FuIGJlXG4gICAgICogdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgbGF0ZXIgdXNlLCBhbmQgbWV0YWRhdGEgdGhhdCBjYW4gYmUgdXNlZCBieSB0aGVcbiAgICAgKiBXZWJBdXRobiBSZWx5aW5nIFBhcnR5IHRvIGFzc2VzcyB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBjcmVkZW50aWFsXG4gICAgICogZHVyaW5nIHJlZ2lzdHJhdGlvbi5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNpZmFjZS1hdXRoZW50aWNhdG9yYXR0ZXN0YXRpb25yZXNwb25zZVxuICAgICAqL1xuICAgIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGF0dHJpYnV0ZSBjb250YWlucyBhbiBhdHRlc3RhdGlvbiBvYmplY3QsIHdoaWNoIGlzIG9wYXF1ZSB0bywgYW5kXG4gICAgICAgKiBjcnlwdG9ncmFwaGljYWxseSBwcm90ZWN0ZWQgYWdhaW5zdCB0YW1wZXJpbmcgYnksIHRoZSBjbGllbnQuIFRoZVxuICAgICAgICogYXR0ZXN0YXRpb24gb2JqZWN0IGNvbnRhaW5zIGJvdGggYXV0aGVudGljYXRvciBkYXRhIGFuZCBhbiBhdHRlc3RhdGlvblxuICAgICAgICogc3RhdGVtZW50LiBUaGUgZm9ybWVyIGNvbnRhaW5zIHRoZSBBQUdVSUQsIGEgdW5pcXVlIGNyZWRlbnRpYWwgSUQsIGFuZFxuICAgICAgICogdGhlIGNyZWRlbnRpYWwgcHVibGljIGtleS4gVGhlIGNvbnRlbnRzIG9mIHRoZSBhdHRlc3RhdGlvbiBzdGF0ZW1lbnQgYXJlXG4gICAgICAgKiBkZXRlcm1pbmVkIGJ5IHRoZSBhdHRlc3RhdGlvbiBzdGF0ZW1lbnQgZm9ybWF0IHVzZWQgYnkgdGhlXG4gICAgICAgKiBhdXRoZW50aWNhdG9yLiBJdCBhbHNvIGNvbnRhaW5zIGFueSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRoYXQgdGhlXG4gICAgICAgKiBSZWx5aW5nIFBhcnR5J3Mgc2VydmVyIHJlcXVpcmVzIHRvIHZhbGlkYXRlIHRoZSBhdHRlc3RhdGlvbiBzdGF0ZW1lbnQsXG4gICAgICAgKiBhcyB3ZWxsIGFzIHRvIGRlY29kZSBhbmQgdmFsaWRhdGUgdGhlIGF1dGhlbnRpY2F0b3IgZGF0YSBhbG9uZyB3aXRoIHRoZVxuICAgICAgICogSlNPTi1jb21wYXRpYmxlIHNlcmlhbGl6YXRpb24gb2YgY2xpZW50IGRhdGEuIEZvciBtb3JlIGRldGFpbHMsIHNlZVxuICAgICAgICogwqfigK82LjUgQXR0ZXN0YXRpb24sIMKn4oCvNi41LjQgR2VuZXJhdGluZyBhbiBBdHRlc3RhdGlvbiBPYmplY3QsIGFuZCBGaWd1cmVcbiAgICAgICAqIDYuXG4gICAgICAgKi9cbiAgICAgIGF0dGVzdGF0aW9uT2JqZWN0OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGF0dHJpYnV0ZSwgaW5oZXJpdGVkIGZyb20gQXV0aGVudGljYXRvclJlc3BvbnNlLCBjb250YWlucyB0aGVcbiAgICAgICAqIEpTT04tY29tcGF0aWJsZSBzZXJpYWxpemF0aW9uIG9mIGNsaWVudCBkYXRhIChzZWUgwqfigK82LjUgQXR0ZXN0YXRpb24pXG4gICAgICAgKiBwYXNzZWQgdG8gdGhlIGF1dGhlbnRpY2F0b3IgYnkgdGhlIGNsaWVudCBpbiBvcmRlciB0byBnZW5lcmF0ZSB0aGlzXG4gICAgICAgKiBjcmVkZW50aWFsLiBUaGUgZXhhY3QgSlNPTiBzZXJpYWxpemF0aW9uIE1VU1QgYmUgcHJlc2VydmVkLCBhcyB0aGUgaGFzaFxuICAgICAgICogb2YgdGhlIHNlcmlhbGl6ZWQgY2xpZW50IGRhdGEgaGFzIGJlZW4gY29tcHV0ZWQgb3ZlciBpdC5cbiAgICAgICAqL1xuICAgICAgY2xpZW50RGF0YUpTT046IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXZWJBdXRobiBSZWx5aW5nIFBhcnRpZXMgbWF5IHVzZSB0aGUgQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhXG4gICAgICogZGljdGlvbmFyeSB0byBzcGVjaWZ5IHRoZWlyIHJlcXVpcmVtZW50cyByZWdhcmRpbmcgYXV0aGVudGljYXRvclxuICAgICAqIGF0dHJpYnV0ZXMuXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZGljdGRlZi1hdXRoZW50aWNhdG9yc2VsZWN0aW9uY3JpdGVyaWFcbiAgICAgKi9cbiAgICBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6IHtcbiAgICAgIGF1dGhlbnRpY2F0b3JBdHRhY2htZW50PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBdXRoZW50aWNhdG9yQXR0YWNobWVudFwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1lbWJlciBpcyByZXRhaW5lZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBXZWJBdXRobiBMZXZlbFxuICAgICAgICogMSBhbmQsIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGl0cyBuYW1pbmcgcmV0YWlucyB0aGUgZGVwcmVjYXRlZFxuICAgICAgICog4oCccmVzaWRlbnTigJ0gdGVybWlub2xvZ3kgZm9yIGRpc2NvdmVyYWJsZSBjcmVkZW50aWFscy4gUmVseWluZyBQYXJ0aWVzXG4gICAgICAgKiBTSE9VTEQgc2V0IGl0IHRvIHRydWUgaWYsIGFuZCBvbmx5IGlmLCByZXNpZGVudEtleSBpcyBzZXQgdG8gcmVxdWlyZWQuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1hdXRoZW50aWNhdG9yc2VsZWN0aW9uY3JpdGVyaWEtcmVxdWlyZXJlc2lkZW50a2V5XG4gICAgICAgKi9cbiAgICAgIHJlcXVpcmVSZXNpZGVudEtleT86IGJvb2xlYW47XG4gICAgICByZXNpZGVudEtleT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUmVzaWRlbnRLZXlSZXF1aXJlbWVudFwiXSB8IG51bGw7XG4gICAgICB1c2VyVmVyaWZpY2F0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnRcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXV0aGVudGljYXRvcnMgbWF5IGltcGxlbWVudCB2YXJpb3VzIHRyYW5zcG9ydHMgZm9yIGNvbW11bmljYXRpbmcgd2l0aFxuICAgICAqIGNsaWVudHMuIFRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBoaW50cyBhcyB0byBob3cgY2xpZW50cyBtaWdodCBjb21tdW5pY2F0ZVxuICAgICAqIHdpdGggYSBwYXJ0aWN1bGFyIGF1dGhlbnRpY2F0b3IgaW4gb3JkZXIgdG8gb2J0YWluIGFuIGFzc2VydGlvbiBmb3IgYVxuICAgICAqIHNwZWNpZmljIGNyZWRlbnRpYWwuIE5vdGUgdGhhdCB0aGVzZSBoaW50cyByZXByZXNlbnQgdGhlIFdlYkF1dGhuIFJlbHlpbmdcbiAgICAgKiBQYXJ0eSdzIGJlc3QgYmVsaWVmIGFzIHRvIGhvdyBhbiBhdXRoZW50aWNhdG9yIG1heSBiZSByZWFjaGVkLiBBIFJlbHlpbmdcbiAgICAgKiBQYXJ0eSB3aWxsIHR5cGljYWxseSBsZWFybiBvZiB0aGUgc3VwcG9ydGVkIHRyYW5zcG9ydHMgZm9yIGEgcHVibGljIGtleVxuICAgICAqIGNyZWRlbnRpYWwgdmlhIGdldFRyYW5zcG9ydHMoKS5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNlbnVtZGVmLWF1dGhlbnRpY2F0b3J0cmFuc3BvcnRcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6IFwidXNiXCIgfCBcIm5mY1wiIHwgXCJibGVcIiB8IFwiaW50ZXJuYWxcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlcXVlc3QgdG8gc2lnbiBhIHNlcmlhbGl6ZWQgQXZhbGFuY2hlIHRyYW5zYWN0aW9uICovXG4gICAgQXZhU2VyaWFsaXplZFR4U2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTZXJpYWxpemVkIHRyYW5zYWN0aW9uIHRvIHNpZ24gKi9cbiAgICAgIHR4OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlcXVlc3QgdG8gc2lnbiBhbiBBdmFsYW5jaGUgdHJhbnNhY3Rpb24gKi9cbiAgICBBdmFTaWduUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUcmFuc2FjdGlvbiB0byBzaWduLlxuICAgICAgICpcbiAgICAgICAqIEV4YW1wbGVzOlxuICAgICAgICogLSB7XCJQXCI6IHsgXCJBZGRQZXJtaXNzaW9ubGVzc1ZhbGlkYXRvclwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9wbGF0Zm9ybXZtL3R4cy9hZGRfcGVybWlzc2lvbmxlc3NfdmFsaWRhdG9yLnJzI0wxNCkgfX1cbiAgICAgICAqIC0ge1wiUFwiOiB7IFwiQWRkU3VibmV0VmFsaWRhdG9yXCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL3BsYXRmb3Jtdm0vdHhzL2FkZF9zdWJuZXRfdmFsaWRhdG9yLnJzI0wyOSkgfX1cbiAgICAgICAqIC0ge1wiUFwiOiB7IFwiQWRkVmFsaWRhdG9yXCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL3BsYXRmb3Jtdm0vdHhzL2FkZF92YWxpZGF0b3IucnMjTDEyKSB9fVxuICAgICAgICogLSB7XCJQXCI6IHsgXCJDcmVhdGVDaGFpblwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9wbGF0Zm9ybXZtL3R4cy9jcmVhdGVfY2hhaW4ucnMjTDgpIH19XG4gICAgICAgKiAtIHtcIlBcIjogeyBcIkNyZWF0ZVN1Ym5ldFwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9wbGF0Zm9ybXZtL3R4cy9jcmVhdGVfc3VibmV0LnJzI0w4KSB9fVxuICAgICAgICogLSB7XCJQXCI6IHsgXCJFeHBvcnRcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvcGxhdGZvcm12bS90eHMvZXhwb3J0LnJzI0wxMikgfX1cbiAgICAgICAqIC0ge1wiUFwiOiB7IFwiSW1wb3J0XCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL3BsYXRmb3Jtdm0vdHhzL2ltcG9ydC5ycyNMMTIpIH19XG4gICAgICAgKiAtIHtcIlhcIjogeyBcIkJhc2VcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvYXZtL3R4cy9tb2QucnMjTDIxKSB9fVxuICAgICAgICogLSB7XCJYXCI6IHsgXCJFeHBvcnRcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvYXZtL3R4cy9leHBvcnQucnMjTDE2KSB9fVxuICAgICAgICogLSB7XCJYXCI6IHsgXCJJbXBvcnRcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvYXZtL3R4cy9pbXBvcnQucnMjTDE0KSB9fVxuICAgICAgICovXG4gICAgICB0eDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBXcmFwcGVyIGFyb3VuZCBhIHplcm9pemluZyAzMi1ieXRlIGZpeGVkLXNpemUgYXJyYXkgKi9cbiAgICBCMzI6IHN0cmluZztcbiAgICBCYWJ5bG9uQ292U2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGtleXMgZm9yIHRoZSBmaW5hbGl0eSBwcm92aWRlcnMgdG8gd2hpY2ggdGhpcyB0cmFuc2FjdGlvbiBpcyBiZWluZyBzdGFrZWQuXG4gICAgICAgKiBFYWNoIGtleSBpcyBhIGhleCBzdHJpbmcgY29udGFpbmluZyBhIFNFQzEtZW5jb2RlZCBzZWNwMjU2azEgcHVibGljIGtleS5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCIwM2I1NzNlMzE4ODAzZmQ3YWVlMWJlNWI2YjE4ZDQ5NmNjNjBlY2M1MjQyOWRiZDQ3N2E4NzkyMTdjM2VkMjZhNzk1Y2I0ZjRlODgwYWFmZjNhNmFkNjYzMzVlNTQwNGZhNTFjYWViNDk2NGYwYzlmNzU2MjczNzg2NGUzYmRlNWJjXCJcbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgZnBfZW5jX2tleXM6IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHNsYXNoLXVuYm9uZGluZyB0cmFuc2FjdGlvbiBiZWluZyBhcHByb3ZlZCBieSB0aGUgY292ZW5hbnQgc2lnbmVyLlxuICAgICAgICogVGhpcyBpcyBhIEJpdGNvaW4gY29uc2Vuc3VzLS1lbmNvZGVkIGhleCBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSA2ODk5YjViYWY3MTNhMmM2MGU2YWJmMDVlODkwOTQ0MGQ0MWRjNDEyNWI5ODg5MWMzMzJmNzA4N2RhZjAxN2ZiMjQzNjI4NmUyYWEwOTc0NjRkOWM5MjdkNjQ0ZmE2ZGVcbiAgICAgICAqL1xuICAgICAgc2xhc2hfdW5ib25kaW5nX3R4OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc2xhc2hpbmcgc2NyaXB0IGluIHRoZSBzdGFraW5nIHRyYW5zYWN0aW9uLlxuICAgICAgICogVGhpcyBpcyBhIEJpdGNvaW4gY29uc2Vuc3VzLS1lbmNvZGVkIGhleCBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSA4NzdmMDVjYzYyNmRlZGNmNTNiNTBlZWJhMDgyMWNhMFxuICAgICAgICovXG4gICAgICBzbGFzaGluZ19zY3JpcHQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzbGFzaGluZyB0cmFuc2FjdGlvbiBiZWluZyBhcHByb3ZlZCBieSB0aGUgY292ZW5hbnQgc2lnbmVyLlxuICAgICAgICogVGhpcyBpcyBhIEJpdGNvaW4gY29uc2Vuc3VzLS1lbmNvZGVkIGhleCBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSBmMzdlN2NhMmIyNGE1ZjdiOGI2YzliYTA1NGY5OTMyZWZiMDQ3Y2U4MGNmNTBhMTE4ZTNmNzI3NTE0MjlmYjEzYTM1NWZhMDkzYmQzNThjZGMzMGVmYWNmNWE2MmNhYmVcbiAgICAgICAqL1xuICAgICAgc2xhc2hpbmdfdHg6IHN0cmluZztcbiAgICAgIHN0YWtlX2V4cGFuc2lvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmFieWxvbkNvdlN0YWtlRXhwYW5zaW9uUmVxdWVzdFwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgb3V0cHV0IGluZGV4IG9mIHRoZSBCYWJ5bG9uIHN0YWtpbmcgc2NyaXB0cyBpbiB0aGUgc3Rha2luZyB0cmFuc2FjdGlvbi5cbiAgICAgICAqIEBleGFtcGxlIDFcbiAgICAgICAqL1xuICAgICAgc3Rha2luZ19vdXRwdXRfaWR4OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3Rha2luZyB0cmFuc2FjdGlvbiBiZWluZyBhcHByb3ZlZCBieSB0aGUgY292ZW5hbnQgc2lnbmVyLlxuICAgICAgICogVGhpcyBpcyBhIEJpdGNvaW4gY29uc2Vuc3VzLS1lbmNvZGVkIGhleCBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSA5NTRiYTExOGU3MTMzYjRiYjNhNjdhY2M0ZjQwY2I5NTI5YWFiYmMwMTAwNzIyOWY3YmZkODU3MDY4NTAxNzVkNzdkNWNiZTVlNGMwY2E2NzIzOGQxNGFmYTQ3YzUxY2NcbiAgICAgICAqL1xuICAgICAgc3Rha2luZ190eDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVuYm9uZGluZyBzY3JpcHQgaW4gdGhlIHN0YWtpbmcgdHJhbnNhY3Rpb24uXG4gICAgICAgKiBUaGlzIGlzIGEgQml0Y29pbiBjb25zZW5zdXMtLWVuY29kZWQgaGV4IHN0cmluZy5cbiAgICAgICAqIEBleGFtcGxlIDU1ZjY2MzhjMGMwYzBiMGU1MWNhOTIyZTBlOWU2YWJkXG4gICAgICAgKi9cbiAgICAgIHVuYm9uZGluZ19zY3JpcHQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzbGFzaGluZyBzY3JpcHQgaW4gdGhlIHVuYm9uZGluZyB0cmFuc2FjdGlvbi5cbiAgICAgICAqIFRoaXMgaXMgYSBCaXRjb2luIGNvbnNlbnN1cy0tZW5jb2RlZCBoZXggc3RyaW5nLlxuICAgICAgICogQGV4YW1wbGUgZTEzM2Y1YTkyM2EwN2I5YzdmNjc2N2NkYTE3MTAwNWJcbiAgICAgICAqL1xuICAgICAgdW5ib25kaW5nX3NsYXNoaW5nX3NjcmlwdDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVuYm9uZGluZyB0cmFuc2FjdGlvbiBiZWluZyBhcHByb3ZlZCBieSB0aGUgY292ZW5hbnQgc2lnbmVyLlxuICAgICAgICogVGhpcyBpcyBhIEJpdGNvaW4gY29uc2Vuc3VzLS1lbmNvZGVkIGhleCBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSA5NjljYjk1MTI5YTU1YTk2ZDUxOTE5ZjVmNjdmM2FkYzU5N2VjZGVlNmVkYTIxZTc3NzdmMzcwYzNiMTgwOTMzNmVlN2QwOGVjNTc0YzhiYmIzNjFmZjYzZDAzMmE5NzZcbiAgICAgICAqL1xuICAgICAgdW5ib25kaW5nX3R4OiBzdHJpbmc7XG4gICAgfTtcbiAgICBCYWJ5bG9uQ292U2lnblJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHNsYXNoLXVuYm9uZGluZyB0cmFuc2FjdGlvbiBzaWduYXR1cmVzIGFzIGFuIGFycmF5IG9mIGhleCBzdHJpbmdzIHdpdGggbm8gMHggcHJlZml4XG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwiMDJlMjFhN2IwNTE5NTM5ZWY2NzBmNzlkMWMyNWE1NGY5MGIwYzZkOWZkYjU2YTdkZTgxM2ZiMjA3MDMzMDMyZmZmYWQ4YWFhZmViMWI3N2RkOWVhOGYxN2RhZGNmMjk3Njk2YmJmNWE0MTMzMjkyZjM1MTViODZiYjljMmQ3OGQ5Y1wiXG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHNsYXNoX3VuYm9uZGluZ190cmFuc2FjdGlvbnNfc2lnbmF0dXJlczogc3RyaW5nW107XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc2xhc2hpbmcgdHJhbnNhY3Rpb24gc2lnbmF0dXJlcyBhcyBhbiBhcnJheSBvZiBoZXggc3RyaW5ncyB3aXRoIG5vIDB4IHByZWZpeFxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcIjAzMDc1ZWNhOWQxNzZkMTYwNWQ2YzA5NmMxMTFlOWE0ZjhkODczOWFjOTcwOGMxZGYzZWQ1MTYxMDZlN2FiMTM4N2EzOTI0YTY2NTJhY2YyZTM1MjQzNTk3MzFjYTFmYmIzMzhhM2FmYjFhNjdmNmVhMTljMjA3YjZmZjQ2NmE1YWRcIixcbiAgICAgICAqICAgXCIwMjIyMjQ0OTNmNGNmZmFkNWI4NDA3NmRiMzJkZDhjNDlhMjhmZjQ4YWY0ZTE5ZTJiY2M5OTUzZmY4MDM0N2JhNmU4MzQzY2Y3YTQ0ZTc0YTk2ZmY3MWVhNTlhMDNiNDAxNjZlODViMGQxMzU1OTU0ZTA0YTQ0MjdkYzhkNjM3ZmYwXCJcbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgc2xhc2hpbmdfdHJhbnNhY3Rpb25zX3NpZ25hdHVyZXM6IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHNpZ25hdHVyZSB0aGF0IGFsbG93cyBleHBhbmRpbmcgYSBzdGFrZSBieSBzcGVuZGluZyB0aGUgY3VycmVudCBhY3RpdmVcbiAgICAgICAqIHN0YWtlIHRyYW5zYWN0aW9uIGludG8gYSBuZXcgc3Rha2luZyB0cmFuc2FjdGlvbi4gQSB2YWx1ZSBpcyBwcmVzZW50IGlmZiB0aGVcbiAgICAgICAqIGNvcnJlc3BvbmRpbmcgcmVxdWVzdCBpbmNsdWRlZCBhIGBzdGFrZV9leHBhbnNpb25gIHZhbHVlLlxuICAgICAgICogQGV4YW1wbGUgYjU3M2UzMTg4MDNmZDdhZWUxYmU1YjZiMThkNDk2Y2M2MGVjYzUyNDI5ZGJkNDc3YTg3OTIxN2MzZWQyNmE3OTVjYjRmNGU4ODBhYWZmM2E2YWQ2NjMzNWU1NDA0ZmE1MWNhZWI0OTY0ZjBjOWY3NTYyNzM3ODY0ZTNiZGU1YmNcbiAgICAgICAqL1xuICAgICAgc3Rha2VfZXhwYW5zaW9uX3RyYW5zYWN0aW9uX3NpZ25hdHVyZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdW5ib25kaW5nIHRyYW5zYWN0aW9uIHNpZ25hdHVyZSBhcyBoZXggc3RyaW5nIHdpdGggbm8gMHggcHJlZml4XG4gICAgICAgKiBAZXhhbXBsZSBiNTczZTMxODgwM2ZkN2FlZTFiZTViNmIxOGQ0OTZjYzYwZWNjNTI0MjlkYmQ0NzdhODc5MjE3YzNlZDI2YTc5NWNiNGY0ZTg4MGFhZmYzYTZhZDY2MzM1ZTU0MDRmYTUxY2FlYjQ5NjRmMGM5Zjc1NjI3Mzc4NjRlM2JkZTViY1xuICAgICAgICovXG4gICAgICB1bmJvbmRpbmdfdHJhbnNhY3Rpb25fc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlcXVlc3QgdG8gZXhwYW5kIGFuIGFjdGl2ZSBzdGFrZSB3aXRoIGFkZGl0aW9uYWwgZnVuZHMuICovXG4gICAgQmFieWxvbkNvdlN0YWtlRXhwYW5zaW9uUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHRyYW5zYWN0aW9uIG91dHB1dCB0aGF0IGlzIGJlaW5nIHVzZWQgdG8gZnVuZCB0aGUgc3Rha2UgZXhwYW5zaW9uLlxuICAgICAgICogVGhpcyBpcyBhIEJpdGNvaW4gY29uc2Vuc3VzLS1lbmNvZGVkIGhleCBzdHJpbmcuXG4gICAgICAgKi9cbiAgICAgIG90aGVyX2Z1bmRpbmdfb3V0cHV0OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgYWN0aXZlIHN0YWtpbmcgdHJhbnNhY3Rpb24gdGhhdCBpcyBiZWluZyBleHBhbmRlZCB3aXRoIHRoaXMgcmVxdWVzdC5cbiAgICAgICAqIFRoaXMgaXMgYSBCaXRjb2luIGNvbnNlbnN1cy0tZW5jb2RlZCBoZXggc3RyaW5nLlxuICAgICAgICogQGV4YW1wbGUgOTU0YmExMThlNzEzM2I0YmIzYTY3YWNjNGY0MGNiOTUyOWFhYmJjMDEwMDcyMjlmN2JmZDg1NzA2ODUwMTc1ZDc3ZDVjYmU1ZTRjMGNhNjcyMzhkMTRhZmE0N2M1MWNjXG4gICAgICAgKi9cbiAgICAgIHByZXZpb3VzX2FjdGl2ZV9zdGFrZV90eDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVuYm9uZGluZyBzY3JpcHQgaW4gdGhlIGFjdGl2ZSBzdGFraW5nIHRyYW5zYWN0aW9uLlxuICAgICAgICogVGhpcyBpcyBhIEJpdGNvaW4gY29uc2Vuc3VzLS1lbmNvZGVkIGhleCBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSBlMTMzZjVhOTIzYTA3YjljN2Y2NzY3Y2RhMTcxMDA1YlxuICAgICAgICovXG4gICAgICBwcmV2aW91c19hY3RpdmVfc3Rha2VfdW5ib25kaW5nX3NjcmlwdDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGluZGV4IG9mIHRoZSBhY3RpdmUgc3Rha2Ugb3V0cHV0IGluIHRoZSBhY3RpdmUgc3Rha2luZyB0cmFuc2FjdGlvbi5cbiAgICAgICAqIEBleGFtcGxlIDFcbiAgICAgICAqL1xuICAgICAgcHJldmlvdXNfc3Rha2luZ19vdXRwdXRfaWR4OiBudW1iZXI7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldHdvcmstaWQgZm9yIEJhYnlsb24gc3Rha2luZ1xuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgQmFieWxvbk5ldHdvcmtJZDogXCJiYnQ0XCIgfCBcImJibjFcIiB8IFwiYmJ0NVwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQmFieWxvbiBzdGFraW5nIHJlZ2lzdHJhdGlvbiBzcGVjaWZpY2F0aW9uICovXG4gICAgQmFieWxvblJlZ2lzdHJhdGlvblJlcXVlc3Q6ICh7XG4gICAgICBleHBsaWNpdF9wYXJhbXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJhYnlsb25TdGFraW5nUGFyYW1zXCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBTY2hub3JyIHB1YmxpYyBrZXkgKGkuZS4sIDMyLWJ5dGUgWC1jb29yZGluYXRlKSBvZiB0aGUgZmluYWxpdHlcbiAgICAgICAqIHByb3ZpZGVyIHRvIHdoaWNoIHRoZSBzdGFrZSBpcyBkZWxlZ2F0ZWQuXG4gICAgICAgKi9cbiAgICAgIGZpbmFsaXR5X3Byb3ZpZGVyX3Brczogc3RyaW5nW107XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbG9jayB0aW1lIHVzZWQgZm9yIHRoZSB3aXRoZHJhd2FsIG91dHB1dCBpbiB0aGUgc3Rha2luZyBkZXBvc2l0IHRyYW5zYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIGxvY2tfdGltZTogbnVtYmVyO1xuICAgICAgbmV0d29yazogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uTmV0d29ya0lkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFNjaG5vcnIgcHVibGljIGtleSAoaS5lLiwgMzItYnl0ZSBYLWNvb3JkaW5hdGUpIG9mIHRoZSBzdGFrZXIuIFRoaXNcbiAgICAgICAqIGlzIHRoZSBrZXkgdGhhdCBzaWducyB0aGUgc2xhc2hpbmcsIHdpdGhkcmF3YWwsIGFuZCB1bmJvbmRpbmcgc2NyaXB0cy5cbiAgICAgICAqL1xuICAgICAgc3Rha2VyX3BrOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcGFyYW1ldGVyIHZlcnNpb24gdG8gdXNlLiBJZiBgTm9uZWAsIHVzZXMgdGhlIGxhdGVzdCB2ZXJzaW9uLlxuICAgICAgICovXG4gICAgICB2ZXJzaW9uPzogbnVtYmVyIHwgbnVsbDtcbiAgICB9ICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgY2hhbmdlIGFkZHJlc3MsIHNwZWNpZmllZCBhcyBhIEJpdGNvaW4gc3BlbmQgc2NyaXB0ICovXG4gICAgICBjaGFuZ2U6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB0cmFuc2FjdGlvbiBmZWUgdmFsdWUuIFRoZSBgZmVlX3R5cGVgIGZpZWxkIGRldGVybWluZXMgd2hldGhlciB0aGlzXG4gICAgICAgKiBpcyBhIGZpeGVkIGZlZSBpbiBzYXRzIG9yIGEgcmF0ZSBpbiBzYXRzIHBlciAoZXN0aW1hdGVkKSB2aXJ0dWFsIGJ5dGUgb2ZcbiAgICAgICAqIHRyYW5zYWN0aW9uIHdlaWdodCAoaS5lLiwgc2F0cyBwZXIgdmIpLlxuICAgICAgICovXG4gICAgICBmZWU6IG51bWJlcjtcbiAgICAgIGZlZV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZlZVR5cGVcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBCeSBkZWZhdWx0LCB0aGUgUFNCVCBpbiB0aGlzIHJlcXVlc3QgY2FuIG9ubHkgc3BlY2lmeSB0cmFuc2FjdGlvbiBpbnB1dHM6XG4gICAgICAgKiBQU0JUcyB0aGF0IHNwZWNpZnkgb3V0cHV0cyB3aWxsIHJlc3VsdCBpbiBhbiBlcnJvci4gV2hlbiB0aGlzIGZsYWcgaXMgc2V0LFxuICAgICAgICogZXhpc3Rpbmcgb3V0cHV0cyBpbiB0aGUgUFNCVCB3aWxsIGluc3RlYWQgYmUgaWdub3JlZCAoaS5lLiwgZGVsZXRlZCBmcm9tXG4gICAgICAgKiB0aGUgUFNCVCkgd2hlbiBjcmVhdGluZyB0aGUgZGVwb3NpdCB0cmFuc2FjdGlvbi5cbiAgICAgICAqL1xuICAgICAgaWdub3JlX3BzYnRfb3V0cHV0cz86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGhleC1zZXJpYWxpemVkIFBTQlQgKHZlcnNpb24gMCkgY29udGFpbmluZyB0aGUgdHJhbnNhY3Rpb24gaW5wdXRzIGFuZFxuICAgICAgICogYWxsIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiBmb3Igc2lnbmluZyAoZS5nLiwgdGFwcm9vdCBwYXRoIGFuZCBsZWFmXG4gICAgICAgKiBpbmZvcm1hdGlvbikuIFRoaXMgUFNCVCBtdXN0IG5vdCBoYXZlIGFueSB0cmFuc2FjdGlvbiBvdXRwdXRzOyB0aGV5XG4gICAgICAgKiB3aWxsIGJlIGFkZGVkIHRvIHRoZSByZXR1cm5lZCBQU0JULlxuICAgICAgICovXG4gICAgICBwc2J0OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdmFsdWUgdG8gYmUgc3Rha2VkIGluIHNhdHNcbiAgICAgICAqL1xuICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICB9KSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEJhYnlsb24gYWRkcmVzcyB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUgc3Rha2luZyByZXdhcmRzIGZvciB0aGlzIGRlcG9zaXQuXG4gICAgICAgKiBCYWJ5bG9uIHJlcXVpcmVzIHRoaXMgdG8gYmUgdGhlIHNhbWUgYWRkcmVzcyB0aGF0IHJlZ2lzdGVycyB0aGUgZGVwb3NpdCBvblxuICAgICAgICogdGhlIEJhYnlsb24gY2hhaW4uXG4gICAgICAgKlxuICAgICAgICogVGhpcyBtdXN0IGJlIGEgc2VjcDI1NmsxIENvc21vcyBhZGRyZXNzIHdpdGggZWl0aGVyIGEgYGJibmAgb3IgYSBgY29zbW9zYFxuICAgICAgICogaHVtYW4tcmVhZGFibGUgcGFydCAoaS5lLiwgYGJibjEuLi5gIG9yIGBjb3Ntb3MxLi4uYCkuIFRoZSBsYXR0ZXIgbGV0cyB5b3VcbiAgICAgICAqIHNwZWNpZnkgdGhlIG1hdGVyaWFsLWlkIG9mIGEgU2VjcENvc21vcyBDdWJlU2lnbmVyIGtleS5cbiAgICAgICAqIEBleGFtcGxlIGJibjFuNWFubWMwa2tyaDcweWp5N2Y2ZjM5OWM3NHlkMDl4bDV0ZWZmbVxuICAgICAgICovXG4gICAgICBiYm5fYWRkcjogc3RyaW5nO1xuICAgIH07XG4gICAgQmFieWxvblJlZ2lzdHJhdGlvblJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEJhYnlsb24gYWRkcmVzcyB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUgc3Rha2luZyByZXdhcmRzIGZvciB0aGlzIGRlcG9zaXQuXG4gICAgICAgKlxuICAgICAgICogVGhpcyB2YWx1ZSB3aWxsIGNvcnJlc3BvbmQgdG8gdGhlIGBiYm5fYWRkcmAgdmFsdWUgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0LFxuICAgICAgICogYnV0IGl0IHdpbGwgYWx3YXlzIGhhdmUgYSBgYmJuYCBodW1hbi1yZWFkYWJsZSBwYXJ0LlxuICAgICAgICogQGV4YW1wbGUgYmJuMW41YW5tYzBra3JoNzB5ank3ZjZmMzk5Yzc0eWQwOXhsNXRlZmZtXG4gICAgICAgKi9cbiAgICAgIGJibl9hZGRyOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZGVwb3NpdCB0cmFuc2FjdGlvbiBQU0JULiBUaGlzIFBTQlQgaW5jbHVkZXMgc2lnbmF0dXJlcyBvbiBhbnlcbiAgICAgICAqIGlucHV0cyBjb250cm9sbGVkIGJ5IHRoZSBzdGFrZXIgdGFwcm9vdCBrZXkgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0LlxuICAgICAgICovXG4gICAgICBkZXBvc2l0OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZGVwb3NpdCB0cmFuc2FjdGlvbiBmZWUgaW4gc2F0cy5cbiAgICAgICAqIEBleGFtcGxlIDEzMzdcbiAgICAgICAqL1xuICAgICAgZGVwb3NpdF9mZWU6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBwcm9vZiBvZiBwb3NzZXNzaW9uLCBpLmUuLCBhIEJJUDMyMiBzaWduYXR1cmUgb24gdGhlIHN0YWtlcidzXG4gICAgICAgKiBCYWJ5bG9uIGFkZHJlc3Mgc2lnbmVkIGJ5IHRoZSBzdGFrZXIgdGFwcm9vdCBrZXkuIFRoaXMgaXMgYSBCaXRjb2luXG4gICAgICAgKiB3aXRuZXNzIHN0YWNrIGluIEJpdGNvaW4gY29uc2Vuc3VzIGhleCBlbmNvZGluZy5cbiAgICAgICAqL1xuICAgICAgcG9wOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzbGFzaC1kZXBvc2l0IHRyYW5zYWN0aW9uIGluIEJpdGNvaW4gY29uc2Vuc3VzIGhleCBlbmNvZGluZy4gKi9cbiAgICAgIHNsYXNoX2RlcG9zaXQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFrZXIgdGFwcm9vdCBrZXkncyBzaWduYXR1cmUgb24gdGhlIHNsYXNoLWRlcG9zaXQgdHJhbnNhY3Rpb24uXG4gICAgICAgKiBUaGlzIGlzIGEgQklQMzQwIHNpZ25hdHVyZSBpbiBoZXggZm9ybWF0LlxuICAgICAgICovXG4gICAgICBzbGFzaF9kZXBvc2l0X3NpZzogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgc2xhc2gtdW5ib25kIHRyYW5zYWN0aW9uIGluIEJpdGNvaW4gY29uc2Vuc3VzIGhleCBlbmNvZGluZy4gKi9cbiAgICAgIHNsYXNoX3VuYm9uZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YWtlciB0YXByb290IGtleSdzIHNpZ25hdHVyZSBvbiB0aGUgc2xhc2gtdW5ib25kIHRyYW5zYWN0aW9uLlxuICAgICAgICogVGhpcyBpcyBhIEJJUDM0MCBzaWduYXR1cmUgaW4gaGV4IGZvcm1hdC5cbiAgICAgICAqL1xuICAgICAgc2xhc2hfdW5ib25kX3NpZzogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgKHVuc2lnbmVkKSB1bmJvbmRpbmcgdHJhbnNhY3Rpb24gaW4gQml0Y29pbiBjb25zZW5zdXMgaGV4IGVuY29kaW5nLiAqL1xuICAgICAgdW5ib25kOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERhdGEgbmVlZGVkIHRvIGNyZWF0ZSB0aGUgQmFieWxvbiBkZXBvc2l0IHNjcmlwdHMgKi9cbiAgICBCYWJ5bG9uU2NyaXB0RGF0YToge1xuICAgICAgZXhwbGljaXRfcGFyYW1zPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uU3Rha2luZ1BhcmFtc1wiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgU2Nobm9yciBwdWJsaWMga2V5IChpLmUuLCAzMi1ieXRlIFgtY29vcmRpbmF0ZSkgb2YgdGhlIGZpbmFsaXR5XG4gICAgICAgKiBwcm92aWRlciB0byB3aGljaCB0aGUgc3Rha2UgaXMgZGVsZWdhdGVkLlxuICAgICAgICovXG4gICAgICBmaW5hbGl0eV9wcm92aWRlcl9wa3M6IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGxvY2sgdGltZSB1c2VkIGZvciB0aGUgd2l0aGRyYXdhbCBvdXRwdXQgaW4gdGhlIHN0YWtpbmcgZGVwb3NpdCB0cmFuc2FjdGlvblxuICAgICAgICovXG4gICAgICBsb2NrX3RpbWU6IG51bWJlcjtcbiAgICAgIG5ldHdvcms6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmFieWxvbk5ldHdvcmtJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBTY2hub3JyIHB1YmxpYyBrZXkgKGkuZS4sIDMyLWJ5dGUgWC1jb29yZGluYXRlKSBvZiB0aGUgc3Rha2VyLiBUaGlzXG4gICAgICAgKiBpcyB0aGUga2V5IHRoYXQgc2lnbnMgdGhlIHNsYXNoaW5nLCB3aXRoZHJhd2FsLCBhbmQgdW5ib25kaW5nIHNjcmlwdHMuXG4gICAgICAgKi9cbiAgICAgIHN0YWtlcl9wazogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBhcmFtZXRlciB2ZXJzaW9uIHRvIHVzZS4gSWYgYE5vbmVgLCB1c2VzIHRoZSBsYXRlc3QgdmVyc2lvbi5cbiAgICAgICAqL1xuICAgICAgdmVyc2lvbj86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERhdGEgbmVlZGVkIHRvIGNyZWF0ZSBhIEJhYnlsb24gZGVwb3NpdCB0cmFuc2FjdGlvbiAqL1xuICAgIEJhYnlsb25TdGFraW5nRGVwb3NpdDoge1xuICAgICAgZXhwbGljaXRfcGFyYW1zPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uU3Rha2luZ1BhcmFtc1wiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgU2Nobm9yciBwdWJsaWMga2V5IChpLmUuLCAzMi1ieXRlIFgtY29vcmRpbmF0ZSkgb2YgdGhlIGZpbmFsaXR5XG4gICAgICAgKiBwcm92aWRlciB0byB3aGljaCB0aGUgc3Rha2UgaXMgZGVsZWdhdGVkLlxuICAgICAgICovXG4gICAgICBmaW5hbGl0eV9wcm92aWRlcl9wa3M6IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGxvY2sgdGltZSB1c2VkIGZvciB0aGUgd2l0aGRyYXdhbCBvdXRwdXQgaW4gdGhlIHN0YWtpbmcgZGVwb3NpdCB0cmFuc2FjdGlvblxuICAgICAgICovXG4gICAgICBsb2NrX3RpbWU6IG51bWJlcjtcbiAgICAgIG5ldHdvcms6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmFieWxvbk5ldHdvcmtJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBTY2hub3JyIHB1YmxpYyBrZXkgKGkuZS4sIDMyLWJ5dGUgWC1jb29yZGluYXRlKSBvZiB0aGUgc3Rha2VyLiBUaGlzXG4gICAgICAgKiBpcyB0aGUga2V5IHRoYXQgc2lnbnMgdGhlIHNsYXNoaW5nLCB3aXRoZHJhd2FsLCBhbmQgdW5ib25kaW5nIHNjcmlwdHMuXG4gICAgICAgKi9cbiAgICAgIHN0YWtlcl9wazogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBhcmFtZXRlciB2ZXJzaW9uIHRvIHVzZS4gSWYgYE5vbmVgLCB1c2VzIHRoZSBsYXRlc3QgdmVyc2lvbi5cbiAgICAgICAqL1xuICAgICAgdmVyc2lvbj86IG51bWJlciB8IG51bGw7XG4gICAgfSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGNoYW5nZSBhZGRyZXNzLCBzcGVjaWZpZWQgYXMgYSBCaXRjb2luIHNwZW5kIHNjcmlwdCAqL1xuICAgICAgY2hhbmdlOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdHJhbnNhY3Rpb24gZmVlIHZhbHVlLiBUaGUgYGZlZV90eXBlYCBmaWVsZCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhpc1xuICAgICAgICogaXMgYSBmaXhlZCBmZWUgaW4gc2F0cyBvciBhIHJhdGUgaW4gc2F0cyBwZXIgKGVzdGltYXRlZCkgdmlydHVhbCBieXRlIG9mXG4gICAgICAgKiB0cmFuc2FjdGlvbiB3ZWlnaHQgKGkuZS4sIHNhdHMgcGVyIHZiKS5cbiAgICAgICAqL1xuICAgICAgZmVlOiBudW1iZXI7XG4gICAgICBmZWVfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJGZWVUeXBlXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQnkgZGVmYXVsdCwgdGhlIFBTQlQgaW4gdGhpcyByZXF1ZXN0IGNhbiBvbmx5IHNwZWNpZnkgdHJhbnNhY3Rpb24gaW5wdXRzOlxuICAgICAgICogUFNCVHMgdGhhdCBzcGVjaWZ5IG91dHB1dHMgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IuIFdoZW4gdGhpcyBmbGFnIGlzIHNldCxcbiAgICAgICAqIGV4aXN0aW5nIG91dHB1dHMgaW4gdGhlIFBTQlQgd2lsbCBpbnN0ZWFkIGJlIGlnbm9yZWQgKGkuZS4sIGRlbGV0ZWQgZnJvbVxuICAgICAgICogdGhlIFBTQlQpIHdoZW4gY3JlYXRpbmcgdGhlIGRlcG9zaXQgdHJhbnNhY3Rpb24uXG4gICAgICAgKi9cbiAgICAgIGlnbm9yZV9wc2J0X291dHB1dHM/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBoZXgtc2VyaWFsaXplZCBQU0JUICh2ZXJzaW9uIDApIGNvbnRhaW5pbmcgdGhlIHRyYW5zYWN0aW9uIGlucHV0cyBhbmRcbiAgICAgICAqIGFsbCBuZWNlc3NhcnkgaW5mb3JtYXRpb24gZm9yIHNpZ25pbmcgKGUuZy4sIHRhcHJvb3QgcGF0aCBhbmQgbGVhZlxuICAgICAgICogaW5mb3JtYXRpb24pLiBUaGlzIFBTQlQgbXVzdCBub3QgaGF2ZSBhbnkgdHJhbnNhY3Rpb24gb3V0cHV0czsgdGhleVxuICAgICAgICogd2lsbCBiZSBhZGRlZCB0byB0aGUgcmV0dXJuZWQgUFNCVC5cbiAgICAgICAqL1xuICAgICAgcHNidDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHZhbHVlIHRvIGJlIHN0YWtlZCBpbiBzYXRzXG4gICAgICAgKi9cbiAgICAgIHZhbHVlOiBudW1iZXI7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERhdGEgbmVlZGVkIHRvIGNyZWF0ZSBhIEJhYnlsb24gZWFybHktdW5ib25kaW5nIG9yIHNsYXNoaW5nIHRyYW5zYWN0aW9uICovXG4gICAgQmFieWxvblN0YWtpbmdFYXJseVVuYm9uZDoge1xuICAgICAgZXhwbGljaXRfcGFyYW1zPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uU3Rha2luZ1BhcmFtc1wiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgU2Nobm9yciBwdWJsaWMga2V5IChpLmUuLCAzMi1ieXRlIFgtY29vcmRpbmF0ZSkgb2YgdGhlIGZpbmFsaXR5XG4gICAgICAgKiBwcm92aWRlciB0byB3aGljaCB0aGUgc3Rha2UgaXMgZGVsZWdhdGVkLlxuICAgICAgICovXG4gICAgICBmaW5hbGl0eV9wcm92aWRlcl9wa3M6IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGxvY2sgdGltZSB1c2VkIGZvciB0aGUgd2l0aGRyYXdhbCBvdXRwdXQgaW4gdGhlIHN0YWtpbmcgZGVwb3NpdCB0cmFuc2FjdGlvblxuICAgICAgICovXG4gICAgICBsb2NrX3RpbWU6IG51bWJlcjtcbiAgICAgIG5ldHdvcms6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmFieWxvbk5ldHdvcmtJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBTY2hub3JyIHB1YmxpYyBrZXkgKGkuZS4sIDMyLWJ5dGUgWC1jb29yZGluYXRlKSBvZiB0aGUgc3Rha2VyLiBUaGlzXG4gICAgICAgKiBpcyB0aGUga2V5IHRoYXQgc2lnbnMgdGhlIHNsYXNoaW5nLCB3aXRoZHJhd2FsLCBhbmQgdW5ib25kaW5nIHNjcmlwdHMuXG4gICAgICAgKi9cbiAgICAgIHN0YWtlcl9wazogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBhcmFtZXRlciB2ZXJzaW9uIHRvIHVzZS4gSWYgYE5vbmVgLCB1c2VzIHRoZSBsYXRlc3QgdmVyc2lvbi5cbiAgICAgICAqL1xuICAgICAgdmVyc2lvbj86IG51bWJlciB8IG51bGw7XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIGB0cnVlYCwgdGhlIHJlc3VsdGluZyBQU0JUIGlzIGVuY29kZWQgYXMgYSBiYXNlNjQgc3RyaW5nLlxuICAgICAgICogT3RoZXJ3aXNlLCBpdCBpcyBlbmNvZGVkIGFzIGEgaGV4IHN0cmluZy5cbiAgICAgICAqL1xuICAgICAgYXNfYmFzZTY0PzogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVHJhbnNhY3Rpb24taWQgb2YgdGhlIGRlcG9zaXQgdHJhbnNhY3Rpb24gdG8gdW5ib25kIG9yIHNsYXNoLiAqL1xuICAgICAgdHhpZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHZhbHVlIGluIHNhdHMgdGhhdCB3YXMgc3Rha2VkIGluIHRoZSB0cmFuc2FjdGlvbiB0byB1bmJvbmQgb3Igc2xhc2guXG4gICAgICAgKi9cbiAgICAgIHZhbHVlOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUcmFuc2FjdGlvbiBvdXRwdXQgaW5kZXggb2YgdGhlIHN0YWtpbmcgdHJhbnNhY3Rpb24gdG8gdW5ib25kIG9yIHNsYXNoLlxuICAgICAgICogRm9yIHN0YWtpbmcgdHJhbnNhY3Rpb25zIGdlbmVyYXRlZCBieSBDdWJlU2lnbmVyLCB0aGlzIHdpbGwgYWx3YXlzIGJlIHplcm8uXG4gICAgICAgKi9cbiAgICAgIHZvdXQ6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXIgc2V0IGZvciBCYWJ5bG9uIHN0YWtpbmcuIFRoZSBsYXRlc3QgcGFyYW1ldGVyIHNldHMgYXJlXG4gICAgICogYXZhaWxhYmxlIGZyb20gPGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9uY2hhaW4vbmV0d29ya3M+XG4gICAgICovXG4gICAgQmFieWxvblN0YWtpbmdQYXJhbXM6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIEJsb2NrIGhlaWdodCBhdCB3aGljaCB0aGVzZSBwYXJhbXMgd2lsbCBlbnRlciB1c2VcbiAgICAgICAqL1xuICAgICAgYWN0aXZhdGlvbl9oZWlnaHQ6IG51bWJlcjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gUHVibGljIGtleXMgb2YgdGhlIGNvdmVuYW50IHNpZ25lcnMgKi9cbiAgICAgIGNvdmVuYW50X3Brczogc3RyaW5nW107XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFF1b3J1bSBmb3IgY292ZW5hbnQgc2lnbmVyICovXG4gICAgICBjb3ZlbmFudF9xdW9ydW06IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBhbW91bnQgdGhhdCBjYW4gYmUgc3Rha2VkIGluIGEgc2luZ2xlIHR4blxuICAgICAgICovXG4gICAgICBtYXhfc3Rha2luZ19hbW91bnQ6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1heCB0aW1lbG9jayBmb3Igc3Rha2luZ1xuICAgICAgICovXG4gICAgICBtYXhfc3Rha2luZ190aW1lOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBNaW4gYW1vdW50IHRoYXQgbXVzdCBiZSBzdGFrZWRcbiAgICAgICAqL1xuICAgICAgbWluX3N0YWtpbmdfYW1vdW50OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBNaW4gdGltZWxvY2sgZm9yIHN0YWtpbmdcbiAgICAgICAqL1xuICAgICAgbWluX3N0YWtpbmdfdGltZTogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTWluaW11bSBmZWUgKGluIHNhdHMpIHRoYXQgbXVzdCBiZSBwYWlkIGFzIHBhcnQgb2YgdGhlIHNsYXNoaW5nIHR4blxuICAgICAgICovXG4gICAgICBzbGFzaGluZ19mZWU/OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBleHRyYSBudW1iZXIgb2Ygc2F0cyB0byBzbGFzaCBpbiB0aGUgc2xhc2hpbmcgdHhuLiBUaGlzIGNhbiBiZSB1c2VkXG4gICAgICAgKiB0byBlbnN1cmUgdGhhdCB0aGUgdHJhbnNhY3Rpb24gbWVldHMgdGhlIG1pbmltdW0gc2xhc2hpbmcgcmVxdWlyZW1lbnRcbiAgICAgICAqIGV2ZW4gaWYgdGhlIGNvdmVuYW50IGNvbW1pdHRlZSBtZW1iZXJzIHVzZSBmbG9hdHMgdG8gY29tcHV0ZSB0aGUgYW1vdW50XG4gICAgICAgKiB0aGF0IHNob3VsZCBiZSBzbGFzaGVkLiBUaGUgZGVmYXVsdCBpcyAyOyBpdCBzaG91bGQgbm90IGJlIG5lY2Vzc2FyeSB0b1xuICAgICAgICogZ28gaGlnaGVyIHRoYW4gdGhpcy5cbiAgICAgICAqL1xuICAgICAgc2xhc2hpbmdfbWFyZ2luPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBwa19zY3JpcHQgdmFsdWUgZm9yIHRoZSAwdGggb3V0cHV0IGluZGV4IG9mIGEgc2xhc2hpbmcgdHJhbnNhY3Rpb24sXG4gICAgICAgKiBzZXJpYWxpemVkIGFzIGEgaGV4IGJ5dGUgc3RyaW5nLiBUaGlzIHZhbHVlIG11c3QgYmUgcHJlc2VudCB0byBjcmVhdGVcbiAgICAgICAqIHNsYXNoaW5nIHNpZ25hdHVyZXMuXG4gICAgICAgKi9cbiAgICAgIHNsYXNoaW5nX3BrX3NjcmlwdD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBmcmFjdGlvbiBvZiBzdGFrZSBzbGFzaGVkIGlmIGEgZG91YmxlLXNpZ24gaXMgZGV0ZWN0ZWQgKi9cbiAgICAgIHNsYXNoaW5nX3JhdGU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQml0Y29pbiB0cmFuc2FjdGlvbiB0YWcgZm9yIHN0YWtpbmcgbWV0YWRhdGEuIElmIHByZXNlbnQsIGFuIGlkZW50aWZpYWJsZVxuICAgICAgICogc3Rha2luZyBvdXRwdXQgKGkuZS4sIG9uZSB3aXRoIGFuIE9QX1JFVFVSTikgd2lsbCBiZSBjcmVhdGVkLlxuICAgICAgICovXG4gICAgICB0YWc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gRmVlIChpbiBzYXRzKSB0aGF0IG11c3QgYmUgc3BlbnQgYXMgcGFydCBvZiB0aGUgdW5ib25kaW5nIHR4blxuICAgICAgICovXG4gICAgICB1bmJvbmRpbmdfZmVlOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBNaW4gdGltZWxvY2sgZm9yIGFuIHVuYm9uZGluZyBzY3JpcHRcbiAgICAgICAqL1xuICAgICAgdW5ib25kaW5nX3RpbWU6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlciB2ZXJzaW9uXG4gICAgICAgKi9cbiAgICAgIHZlcnNpb246IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGFjdGlvbnMgcG9zc2libGUgdmlhIHRoZSBCYWJ5bG9uIFN0YWtpbmcgZW5kcG9pbnQgKi9cbiAgICBCYWJ5bG9uU3Rha2luZ1JlcXVlc3Q6XG4gICAgICB8IChjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJhYnlsb25TdGFraW5nRGVwb3NpdFwiXSAmIHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBhY3Rpb246IFwiZGVwb3NpdFwiO1xuICAgICAgICB9KVxuICAgICAgfCAoY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uU3Rha2luZ0Vhcmx5VW5ib25kXCJdICYge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIGFjdGlvbjogXCJlYXJseV91bmJvbmRcIjtcbiAgICAgICAgfSlcbiAgICAgIHwgKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmFieWxvblN0YWtpbmdXaXRoZHJhd2FsXCJdICYge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIGFjdGlvbjogXCJ3aXRoZHJhd190aW1lbG9ja1wiO1xuICAgICAgICB9KVxuICAgICAgfCAoY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uU3Rha2luZ1dpdGhkcmF3YWxcIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgYWN0aW9uOiBcIndpdGhkcmF3X2Vhcmx5X3VuYm9uZFwiO1xuICAgICAgICB9KVxuICAgICAgfCAoY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uU3Rha2luZ1dpdGhkcmF3YWxcIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgYWN0aW9uOiBcIndpdGhkcmF3X3NsYXNoaW5nXCI7XG4gICAgICAgIH0pXG4gICAgICB8IChjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJhYnlsb25TdGFraW5nRWFybHlVbmJvbmRcIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgYWN0aW9uOiBcInNsYXNoX2RlcG9zaXRcIjtcbiAgICAgICAgfSlcbiAgICAgIHwgKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmFieWxvblN0YWtpbmdFYXJseVVuYm9uZFwiXSAmIHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBhY3Rpb246IFwic2xhc2hfZWFybHlfdW5ib25kXCI7XG4gICAgICAgIH0pO1xuICAgIEJhYnlsb25TdGFraW5nUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdHJhbnNhY3Rpb24gZmVlIGluIHNhdHNcbiAgICAgICAqIEBleGFtcGxlIDEzMzdcbiAgICAgICAqL1xuICAgICAgZmVlOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgUFNCVCBpbiBlaXRoZXIgaGV4IG9yIGJhc2U2NCBzZXJpYWxpemF0aW9uXG4gICAgICAgKiBAZXhhbXBsZSA3MDczNjI3NGZmMDEwMDVlLi4uXG4gICAgICAgKi9cbiAgICAgIHBzYnQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gRGF0YSBuZWVkZWQgdG8gY3JlYXRlIGEgQmFieWxvbiB3aXRoZHJhd2FsIHRyYW5zYWN0aW9uICovXG4gICAgQmFieWxvblN0YWtpbmdXaXRoZHJhd2FsOiB7XG4gICAgICBleHBsaWNpdF9wYXJhbXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJhYnlsb25TdGFraW5nUGFyYW1zXCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBTY2hub3JyIHB1YmxpYyBrZXkgKGkuZS4sIDMyLWJ5dGUgWC1jb29yZGluYXRlKSBvZiB0aGUgZmluYWxpdHlcbiAgICAgICAqIHByb3ZpZGVyIHRvIHdoaWNoIHRoZSBzdGFrZSBpcyBkZWxlZ2F0ZWQuXG4gICAgICAgKi9cbiAgICAgIGZpbmFsaXR5X3Byb3ZpZGVyX3Brczogc3RyaW5nW107XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbG9jayB0aW1lIHVzZWQgZm9yIHRoZSB3aXRoZHJhd2FsIG91dHB1dCBpbiB0aGUgc3Rha2luZyBkZXBvc2l0IHRyYW5zYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIGxvY2tfdGltZTogbnVtYmVyO1xuICAgICAgbmV0d29yazogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uTmV0d29ya0lkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFNjaG5vcnIgcHVibGljIGtleSAoaS5lLiwgMzItYnl0ZSBYLWNvb3JkaW5hdGUpIG9mIHRoZSBzdGFrZXIuIFRoaXNcbiAgICAgICAqIGlzIHRoZSBrZXkgdGhhdCBzaWducyB0aGUgc2xhc2hpbmcsIHdpdGhkcmF3YWwsIGFuZCB1bmJvbmRpbmcgc2NyaXB0cy5cbiAgICAgICAqL1xuICAgICAgc3Rha2VyX3BrOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcGFyYW1ldGVyIHZlcnNpb24gdG8gdXNlLiBJZiBgTm9uZWAsIHVzZXMgdGhlIGxhdGVzdCB2ZXJzaW9uLlxuICAgICAgICovXG4gICAgICB2ZXJzaW9uPzogbnVtYmVyIHwgbnVsbDtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgYHRydWVgLCB0aGUgcmVzdWx0aW5nIFBTQlQgaXMgZW5jb2RlZCBhcyBhIGJhc2U2NCBzdHJpbmcuXG4gICAgICAgKiBPdGhlcndpc2UsIGl0IGlzIGVuY29kZWQgYXMgYSBoZXggc3RyaW5nLlxuICAgICAgICovXG4gICAgICBhc19iYXNlNjQ/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHRyYW5zYWN0aW9uIGZlZSB2YWx1ZS4gVGhlIGBmZWVfdHlwZWAgZmllbGQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoaXNcbiAgICAgICAqIGlzIGEgZml4ZWQgZmVlIGluIHNhdHMgb3IgYSByYXRlIGluIHNhdHMgcGVyIChlc3RpbWF0ZWQpIHZpcnR1YWwgYnl0ZSBvZlxuICAgICAgICogdHJhbnNhY3Rpb24gd2VpZ2h0IChpLmUuLCBzYXRzIHBlciB2YikuXG4gICAgICAgKi9cbiAgICAgIGZlZTogbnVtYmVyO1xuICAgICAgZmVlX3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRmVlVHlwZVwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHdpdGhkcmF3YWwgcmVjaXBpZW50LCBzcGVjaWZpZWQgYXMgYSBCaXRjb2luIHNwZW5kIHNjcmlwdCAqL1xuICAgICAgcmVjaXBpZW50OiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRyYW5zYWN0aW9uLWlkIG9mIHRoZSBkZXBvc2l0IG9yIGVhcmx5IHVuYm9uZGluZyB0cmFuc2FjdGlvbiB0byB3aXRoZHJhdyBmcm9tICovXG4gICAgICB0eGlkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBvcHRpb25hbCBsb2NrIGhlaWdodCAoaW4gYmxvY2tzKSBmb3IgdGhpcyB0cmFuc2FjdGlvbi4gVGhlIHJlc3VsdGluZ1xuICAgICAgICogdHJhbnNhY3Rpb24gY2Fubm90IGJlIG1pbmVkIGJlZm9yZSB0aGUgc3BlY2lmaWVkIGJsb2NrIGhlaWdodC5cbiAgICAgICAqL1xuICAgICAgdHhuX2xvY2tfaGVpZ2h0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB2YWx1ZSBpbiBzYXRzIHRoYXQgaXMgc3Rha2VkIGluIHRoZSB0cmFuc2FjdGlvbiBiZWluZyB3aXRoZHJhd25cbiAgICAgICAqL1xuICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRyYW5zYWN0aW9uIG91dHB1dCBpbmRleCBvZiB0aGUgc3Rha2luZyB0cmFuc2FjdGlvbiBmcm9tIHdoaWNoIHRvIHdpdGhkcmF3LlxuICAgICAgICogRm9yIHN0YWtpbmcgdHJhbnNhY3Rpb25zIGdlbmVyYXRlZCBieSBDdWJlU2lnbmVyLCB0aGlzIHdpbGwgYWx3YXlzIGJlIDAuXG4gICAgICAgKiBGb3Igc2xhc2hpbmcgdHJhbnNhY3Rpb25zIGdlbmVyYXRlZCBieSBDdWJlU2lnbmVyLCB0aGlzIHdpbGwgYWx3YXlzIGJlIDEuXG4gICAgICAgKi9cbiAgICAgIHZvdXQ6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIEJhZEdhdGV3YXlFcnJvckNvZGU6XG4gICAgICB8IFwiR2VuZXJpY1wiXG4gICAgICB8IFwiQ3VzdG9tQ2hhaW5ScGNFcnJvclwiXG4gICAgICB8IFwiRXNwbG9yYUFwaUVycm9yXCJcbiAgICAgIHwgXCJTZW50cnlBcGlFcnJvclwiXG4gICAgICB8IFwiQ2FsbFdlYmhvb2tFcnJvclwiXG4gICAgICB8IFwiT0F1dGhQcm92aWRlckVycm9yXCJcbiAgICAgIHwgXCJPaWRjRGlzb3ZlcnlGYWlsZWRcIlxuICAgICAgfCBcIk9pZGNJc3N1ZXJKd2tFbmRwb2ludFVuYXZhaWxhYmxlXCJcbiAgICAgIHwgXCJTbXRwU2VydmVyVW5hdmFpbGFibGVcIjtcbiAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICBCYWRSZXF1ZXN0RXJyb3JDb2RlOlxuICAgICAgfCBcIkdlbmVyaWNCYWRSZXF1ZXN0XCJcbiAgICAgIHwgXCJDYW5ub3RWb3RlT25SZWRlZW1lZFJlcXVlc3RcIlxuICAgICAgfCBcIlBlbmRpbmdPcEFscmVhZHlWZXRvZWRcIlxuICAgICAgfCBcIk11bHRpcGxlUGVuZGluZ09wc1JlZmVyZW5jZWRcIlxuICAgICAgfCBcIkRpc2FsbG93ZWRBbGxvd1J1bGVSZWZlcmVuY2VcIlxuICAgICAgfCBcIkludmFsaWRQYWdpbmF0aW9uVG9rZW5cIlxuICAgICAgfCBcIkludmFsaWRFbWFpbFwiXG4gICAgICB8IFwiSW52YWxpZEVtYWlsVGVtcGxhdGVcIlxuICAgICAgfCBcIlF1ZXJ5TWV0cmljc0Vycm9yXCJcbiAgICAgIHwgXCJJbnZhbGlkVGVsZWdyYW1EYXRhXCJcbiAgICAgIHwgXCJWYWxpZGF0aW9uRXJyb3JcIlxuICAgICAgfCBcIldlYmhvb2tQb2xpY3lUaW1lb3V0T3V0T2ZCb3VuZHNcIlxuICAgICAgfCBcIldlYmhvb2tQb2xpY3lEaXNhbGxvd2VkVXJsU2NoZW1lXCJcbiAgICAgIHwgXCJXZWJob29rUG9saWN5RGlzYWxsb3dlZFVybEhvc3RcIlxuICAgICAgfCBcIldlYmhvb2tQb2xpY3lEaXNhbGxvd2VkSGVhZGVyc1wiXG4gICAgICB8IFwiUmVzZXJ2ZWROYW1lXCJcbiAgICAgIHwgXCJVc2VyRW1haWxOb3RDb25maWd1cmVkXCJcbiAgICAgIHwgXCJFbWFpbFBhc3N3b3JkTm90Rm91bmRcIlxuICAgICAgfCBcIlBhc3N3b3JkQXV0aE5vdEFsbG93ZWRCeUludml0YXRpb25cIlxuICAgICAgfCBcIk9uZVRpbWVDb2RlRXhwaXJlZFwiXG4gICAgICB8IFwiSW52YWxpZEJvZHlcIlxuICAgICAgfCBcIkludmFsaWRKd3RcIlxuICAgICAgfCBcIkludml0YXRpb25Ob0xvbmdlclZhbGlkXCJcbiAgICAgIHwgXCJUb2tlblJlcXVlc3RFcnJvclwiXG4gICAgICB8IFwiSW52YWxpZE1mYVJlY2VpcHRcIlxuICAgICAgfCBcIkludmFsaWRNZmFQb2xpY3lDb3VudFwiXG4gICAgICB8IFwiSW52YWxpZE1mYVBvbGljeU51bUF1dGhGYWN0b3JzXCJcbiAgICAgIHwgXCJJbnZhbGlkTWZhUG9saWN5TnVtQWxsb3dlZEFwcHJvdmVyc1wiXG4gICAgICB8IFwiSW52YWxpZE1mYVBvbGljeUdyYWNlUGVyaW9kVG9vTG9uZ1wiXG4gICAgICB8IFwiSW52YWxpZEJhYnlsb25TdGFraW5nUG9saWN5UGFyYW1zXCJcbiAgICAgIHwgXCJJbnZhbGlkU3VpVHhSZWNlaXZlcnNFbXB0eUFsbG93bGlzdFwiXG4gICAgICB8IFwiSW52YWxpZEJ0Y1R4UmVjZWl2ZXJzRW1wdHlBbGxvd2xpc3RcIlxuICAgICAgfCBcIkludmFsaWRSZXF1aXJlUm9sZVNlc3Npb25BbGxvd2xpc3RcIlxuICAgICAgfCBcIkludmFsaWRDcmVhdGVLZXlDb3VudFwiXG4gICAgICB8IFwiSW52YWxpZERpZmZpZUhlbGxtYW5Db3VudFwiXG4gICAgICB8IFwiT3JnSW52aXRlRXhpc3RpbmdVc2VyXCJcbiAgICAgIHwgXCJPcmdVc2VyQWxyZWFkeUV4aXN0c1wiXG4gICAgICB8IFwiT3JnTmFtZVRha2VuXCJcbiAgICAgIHwgXCJLd2tOb3RGb3VuZEluUmVnaW9uXCJcbiAgICAgIHwgXCJPcmdJc05vdE9yZ0V4cG9ydFwiXG4gICAgICB8IFwiUm9sZU5hbWVUYWtlblwiXG4gICAgICB8IFwiUG9saWN5TmFtZVRha2VuXCJcbiAgICAgIHwgXCJOYW1lVGFrZW5cIlxuICAgICAgfCBcIkNvbnRhY3ROYW1lSW52YWxpZFwiXG4gICAgICB8IFwiQ29udGFjdEFkZHJlc3Nlc0ludmFsaWRcIlxuICAgICAgfCBcIkNvbnRhY3RMYWJlbEludmFsaWRcIlxuICAgICAgfCBcIkNvbnRhY3RNb2RpZmllZFwiXG4gICAgICB8IFwiUG9saWN5Tm90Rm91bmRcIlxuICAgICAgfCBcIlBvbGljeVZlcnNpb25Ob3RGb3VuZFwiXG4gICAgICB8IFwiUG9saWN5UnVsZURpc2FsbG93ZWRCeVR5cGVcIlxuICAgICAgfCBcIlBvbGljeVR5cGVEaXNhbGxvd2VkXCJcbiAgICAgIHwgXCJQb2xpY3lEdXBsaWNhdGVFcnJvclwiXG4gICAgICB8IFwiUG9saWN5U3RpbGxBdHRhY2hlZFwiXG4gICAgICB8IFwiUG9saWN5TW9kaWZpZWRcIlxuICAgICAgfCBcIlBvbGljeU5vdEF0dGFjaGVkXCJcbiAgICAgIHwgXCJBZGRLZXlUb1JvbGVDb3VudFRvb0hpZ2hcIlxuICAgICAgfCBcIkludmFsaWRLZXlJZFwiXG4gICAgICB8IFwiSW52YWxpZFRpbWVMb2NrQWxyZWFkeUluVGhlUGFzdFwiXG4gICAgICB8IFwiSW52YWxpZFJlc3RyaWN0ZWRTY29wZXNcIlxuICAgICAgfCBcIkludmFsaWRVcGRhdGVcIlxuICAgICAgfCBcIkludmFsaWRNZXRhZGF0YUxlbmd0aFwiXG4gICAgICB8IFwiSW52YWxpZExlbmd0aFwiXG4gICAgICB8IFwiSW52YWxpZEtleU1hdGVyaWFsSWRcIlxuICAgICAgfCBcIktleU5vdEZvdW5kXCJcbiAgICAgIHwgXCJTaXdlQ2hhbGxlbmdlTm90Rm91bmRcIlxuICAgICAgfCBcIlNpd2VJbnZhbGlkUmVxdWVzdFwiXG4gICAgICB8IFwiU2l3c0NoYWxsZW5nZU5vdEZvdW5kXCJcbiAgICAgIHwgXCJTaXdzSW52YWxpZFJlcXVlc3RcIlxuICAgICAgfCBcIlVzZXJFeHBvcnREZXJpdmVkS2V5XCJcbiAgICAgIHwgXCJVc2VyRXhwb3J0UHVibGljS2V5SW52YWxpZFwiXG4gICAgICB8IFwiTmlzdFAyNTZQdWJsaWNLZXlJbnZhbGlkXCJcbiAgICAgIHwgXCJVbmFibGVUb0FjY2Vzc1NtdHBSZWxheVwiXG4gICAgICB8IFwiVXNlckV4cG9ydEluUHJvZ3Jlc3NcIlxuICAgICAgfCBcIlJvbGVOb3RGb3VuZFwiXG4gICAgICB8IFwiSW52YWxpZFJvbGVOYW1lT3JJZFwiXG4gICAgICB8IFwiSW52YWxpZE1mYVJlY2VpcHRPcmdJZE1pc3NpbmdcIlxuICAgICAgfCBcIkludmFsaWRNZmFSZWNlaXB0SW52YWxpZE9yZ0lkXCJcbiAgICAgIHwgXCJNZmFSZXF1ZXN0Tm90Rm91bmRcIlxuICAgICAgfCBcIkludmFsaWRLZXlUeXBlXCJcbiAgICAgIHwgXCJJbnZhbGlkUHJvcGVydGllc0ZvcktleVR5cGVcIlxuICAgICAgfCBcIk1pc21hdGNoZWRLZXlQcm9wZXJ0aWVzUGF0Y2hcIlxuICAgICAgfCBcIk1pc3NpbmdCaW5hbmNlQXBpS2V5XCJcbiAgICAgIHwgXCJNaXNzaW5nQnliaXRBcGlLZXlcIlxuICAgICAgfCBcIk1pc3NpbmdDb2luYmFzZUFwaUtleVwiXG4gICAgICB8IFwiQmluYW5jZUtleU1hc3Rlck1pc21hdGNoXCJcbiAgICAgIHwgXCJCeWJpdEFjY291bnRNaXNtYXRjaFwiXG4gICAgICB8IFwiSW52YWxpZEtleU1hdGVyaWFsXCJcbiAgICAgIHwgXCJJbnZhbGlkSGV4VmFsdWVcIlxuICAgICAgfCBcIkludmFsaWRCYXNlMzJWYWx1ZVwiXG4gICAgICB8IFwiSW52YWxpZEJhc2U1OFZhbHVlXCJcbiAgICAgIHwgXCJJbnZhbGlkQmFzZTY0VmFsdWVcIlxuICAgICAgfCBcIkludmFsaWRTczU4VmFsdWVcIlxuICAgICAgfCBcIkludmFsaWRGb3JrVmVyc2lvbkxlbmd0aFwiXG4gICAgICB8IFwiSW52YWxpZEV0aEFkZHJlc3NcIlxuICAgICAgfCBcIkludmFsaWRTdGVsbGFyQWRkcmVzc1wiXG4gICAgICB8IFwiSW52YWxpZE9yZ05hbWVPcklkXCJcbiAgICAgIHwgXCJJbnZhbGlkVXBkYXRlT3JnUmVxdWVzdERpc2FsbG93ZWRNZmFUeXBlXCJcbiAgICAgIHwgXCJJbnZhbGlkVXBkYXRlT3JnUmVxdWVzdEVtcHR5QWxsb3dlZE1mYVR5cGVzXCJcbiAgICAgIHwgXCJFbWFpbE90cERlbGF5VG9vU2hvcnRGb3JSZWdpc3Rlck1mYVwiXG4gICAgICB8IFwiSW52YWxpZFN0YWtlRGVwb3NpdFwiXG4gICAgICB8IFwiSW52YWxpZEJsb2JTaWduUmVxdWVzdFwiXG4gICAgICB8IFwiSW52YWxpZERpZmZpZUhlbGxtYW5SZXF1ZXN0XCJcbiAgICAgIHwgXCJJbnZhbGlkU29sYW5hU2lnblJlcXVlc3RcIlxuICAgICAgfCBcIkludmFsaWRFaXA3MTJTaWduUmVxdWVzdFwiXG4gICAgICB8IFwiSW52YWxpZEVpcDc3MDJTaWduUmVxdWVzdFwiXG4gICAgICB8IFwiT25seVNwZWNpZnlPbmVcIlxuICAgICAgfCBcIkluY29tcGF0aWJsZVBhcmFtc1wiXG4gICAgICB8IFwiTm9PaWRjRGF0YUluUHJvb2ZcIlxuICAgICAgfCBcIkludmFsaWRFdm1TaWduUmVxdWVzdFwiXG4gICAgICB8IFwiSW52YWxpZEV0aDJTaWduUmVxdWVzdFwiXG4gICAgICB8IFwiSW52YWxpZERlcml2ZUtleVJlcXVlc3RcIlxuICAgICAgfCBcIkludmFsaWRTdGFraW5nQW1vdW50XCJcbiAgICAgIHwgXCJDdXN0b21TdGFraW5nQW1vdW50Tm90QWxsb3dlZEZvcldyYXBwZXJDb250cmFjdFwiXG4gICAgICB8IFwiSW52YWxpZFVuc3Rha2VSZXF1ZXN0XCJcbiAgICAgIHwgXCJJbnZhbGlkQ3JlYXRlVXNlclJlcXVlc3RcIlxuICAgICAgfCBcIlVzZXJBbHJlYWR5RXhpc3RzXCJcbiAgICAgIHwgXCJJZHBVc2VyQWxyZWFkeUV4aXN0c1wiXG4gICAgICB8IFwiQ29nbml0b1VzZXJBbHJlYWR5T3JnTWVtYmVyXCJcbiAgICAgIHwgXCJVc2VyTm90Rm91bmRcIlxuICAgICAgfCBcIlVzZXJXaXRoRW1haWxOb3RGb3VuZFwiXG4gICAgICB8IFwiUG9saWN5S2V5TWlzbWF0Y2hcIlxuICAgICAgfCBcIkVtcHR5U2NvcGVzXCJcbiAgICAgIHwgXCJJbnZhbGlkU2NvcGVzRm9yUm9sZVNlc3Npb25cIlxuICAgICAgfCBcIkludmFsaWRMaWZldGltZVwiXG4gICAgICB8IFwiTm9TaW5nbGVLZXlGb3JVc2VyXCJcbiAgICAgIHwgXCJJbnZhbGlkT3JnUG9saWN5UnVsZVwiXG4gICAgICB8IFwiU291cmNlSXBBbGxvd2xpc3RFbXB0eVwiXG4gICAgICB8IFwiTGltaXRXaW5kb3dUb29Mb25nXCJcbiAgICAgIHwgXCJFcmMyMENvbnRyYWN0RGlzYWxsb3dlZFwiXG4gICAgICB8IFwiRW1wdHlSdWxlRXJyb3JcIlxuICAgICAgfCBcIlBvbGljeUZpZWxkVmFsaWRhdGlvbkVycm9yXCJcbiAgICAgIHwgXCJPcHRpb25hbExpc3RFbXB0eVwiXG4gICAgICB8IFwiTXVsdGlwbGVFeGNsdXNpdmVGaWVsZHNQcm92aWRlZFwiXG4gICAgICB8IFwiRHVwbGljYXRlRmllbGRFbnRyeVwiXG4gICAgICB8IFwiSW52YWxpZFJhbmdlXCJcbiAgICAgIHwgXCJJbnZhbGlkT3JnUG9saWN5UmVwZWF0ZWRSdWxlXCJcbiAgICAgIHwgXCJJbnZhbGlkU3VpVHJhbnNhY3Rpb25cIlxuICAgICAgfCBcIlN1aVNlbmRlck1pc21hdGNoXCJcbiAgICAgIHwgXCJBdmFTaWduSGFzaEVycm9yXCJcbiAgICAgIHwgXCJBdmFTaWduRXJyb3JcIlxuICAgICAgfCBcIkJ0Y1NlZ3dpdEhhc2hFcnJvclwiXG4gICAgICB8IFwiQnRjVGFwcm9vdEhhc2hFcnJvclwiXG4gICAgICB8IFwiQnRjU2lnbkVycm9yXCJcbiAgICAgIHwgXCJUYXByb290U2lnbkVycm9yXCJcbiAgICAgIHwgXCJFaXA3MTJTaWduRXJyb3JcIlxuICAgICAgfCBcIkludmFsaWRNZW1iZXJSb2xlSW5Vc2VyQWRkXCJcbiAgICAgIHwgXCJJbnZhbGlkTWVtYmVyUm9sZUluUmVjaXBpZW50QWRkXCJcbiAgICAgIHwgXCJUaGlyZFBhcnR5VXNlckFscmVhZHlFeGlzdHNcIlxuICAgICAgfCBcIk9pZGNJZGVudGl0eUFscmVhZHlFeGlzdHNcIlxuICAgICAgfCBcIlVzZXJBbHJlYWR5SGFzSWRlbnRpdHlcIlxuICAgICAgfCBcIlRoaXJkUGFydHlVc2VyTm90Rm91bmRcIlxuICAgICAgfCBcIkRlbGV0ZU9pZGNVc2VyRXJyb3JcIlxuICAgICAgfCBcIkRlbGV0ZVVzZXJFcnJvclwiXG4gICAgICB8IFwiU2Vzc2lvblJvbGVNaXNtYXRjaFwiXG4gICAgICB8IFwiSW52YWxpZE9pZGNUb2tlblwiXG4gICAgICB8IFwiSW52YWxpZE9pZGNJZGVudGl0eVwiXG4gICAgICB8IFwiT2lkY0lzc3VlclVuc3VwcG9ydGVkXCJcbiAgICAgIHwgXCJPaWRjSXNzdWVyTm90QWxsb3dlZFwiXG4gICAgICB8IFwiT2lkY0lzc3Vlck5vQXBwbGljYWJsZUp3a1wiXG4gICAgICB8IFwiRmlkb0tleUFscmVhZHlSZWdpc3RlcmVkXCJcbiAgICAgIHwgXCJGaWRvS2V5U2lnbkNvdW50VG9vTG93XCJcbiAgICAgIHwgXCJGaWRvVmVyaWZpY2F0aW9uRmFpbGVkXCJcbiAgICAgIHwgXCJGaWRvQ2hhbGxlbmdlTWZhTWlzbWF0Y2hcIlxuICAgICAgfCBcIlVuc3VwcG9ydGVkTGVnYWN5Q29nbml0b1Nlc3Npb25cIlxuICAgICAgfCBcIkludmFsaWRJZGVudGl0eVByb29mXCJcbiAgICAgIHwgXCJQYWdpbmF0aW9uRGF0YUV4cGlyZWRcIlxuICAgICAgfCBcIkV4aXN0aW5nS2V5c1Zpb2xhdGVFeGNsdXNpdmVLZXlBY2Nlc3NcIlxuICAgICAgfCBcIkV4cG9ydERlbGF5VG9vU2hvcnRcIlxuICAgICAgfCBcIkV4cG9ydFdpbmRvd1Rvb0xvbmdcIlxuICAgICAgfCBcIkludmFsaWRUb3RwRmFpbHVyZUxpbWl0XCJcbiAgICAgIHwgXCJJbnZhbGlkRWlwMTkxU2lnblJlcXVlc3RcIlxuICAgICAgfCBcIkNhbm5vdFJlc2VuZFVzZXJJbnZpdGF0aW9uXCJcbiAgICAgIHwgXCJJbnZhbGlkTm90aWZpY2F0aW9uRW5kcG9pbnRDb3VudFwiXG4gICAgICB8IFwiQ2Fubm90RGVsZXRlUGVuZGluZ1N1YnNjcmlwdGlvblwiXG4gICAgICB8IFwiSW52YWxpZE5vdGlmaWNhdGlvblVybFByb3RvY29sXCJcbiAgICAgIHwgXCJFbXB0eU9uZU9mT3JnRXZlbnRGaWx0ZXJcIlxuICAgICAgfCBcIkVtcHR5QWxsRXhjZXB0T3JnRXZlbnRGaWx0ZXJcIlxuICAgICAgfCBcIkludmFsaWRUYXBOb2RlSGFzaFwiXG4gICAgICB8IFwiSW52YWxpZE9uZVRpbWVDb2RlXCJcbiAgICAgIHwgXCJNZXNzYWdlTm90Rm91bmRcIlxuICAgICAgfCBcIk1lc3NhZ2VBbHJlYWR5U2lnbmVkXCJcbiAgICAgIHwgXCJNZXNzYWdlUmVqZWN0ZWRcIlxuICAgICAgfCBcIk1lc3NhZ2VSZXBsYWNlZFwiXG4gICAgICB8IFwiSW52YWxpZE1lc3NhZ2VUeXBlXCJcbiAgICAgIHwgXCJFbXB0eUFkZHJlc3NcIlxuICAgICAgfCBcIkludmFsaWRFdGgyU2lnbmluZ1BvbGljeVNsb3RSYW5nZVwiXG4gICAgICB8IFwiSW52YWxpZEV0aDJTaWduaW5nUG9saWN5RXBvY2hSYW5nZVwiXG4gICAgICB8IFwiSW52YWxpZEV0aDJTaWduaW5nUG9saWN5VGltZXN0YW1wUmFuZ2VcIlxuICAgICAgfCBcIkludmFsaWRFdGgyU2lnbmluZ1BvbGljeU92ZXJsYXBwaW5nUnVsZVwiXG4gICAgICB8IFwiUnBjVXJsTWlzc2luZ1wiXG4gICAgICB8IFwiTW1pQ2hhaW5JZE1pc3NpbmdcIlxuICAgICAgfCBcIkV0aGVyc0ludmFsaWRScGNVcmxcIlxuICAgICAgfCBcIkV0aGVyc0dldFRyYW5zYWN0aW9uQ291bnRFcnJvclwiXG4gICAgICB8IFwiSW52YWxpZFBhc3N3b3JkXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ0ZlZVBsdXNEdXN0T3ZlcmZsb3dcIlxuICAgICAgfCBcIkJhYnlsb25TdGFraW5nXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ0luY29ycmVjdEtleVwiXG4gICAgICB8IFwiQmFieWxvblN0YWtpbmdTZWd3aXROb25EZXBvc2l0XCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ1JlZ2lzdHJhdGlvblJlcXVpcmVzVGFwcm9vdFwiXG4gICAgICB8IFwiUHNidFNpZ25pbmdcIlxuICAgICAgfCBcIlRvb01hbnlSZXNldHNcIlxuICAgICAgfCBcIlRvb01hbnlSZXF1ZXN0c1wiXG4gICAgICB8IFwiVG9vTWFueUZhaWxlZExvZ2luc1wiXG4gICAgICB8IFwiQmFkQnRjTWVzc2FnZVNpZ25QMnNoRmxhZ1wiXG4gICAgICB8IFwiSW52YWxpZFRlbmRlcm1pbnRSZXF1ZXN0XCJcbiAgICAgIHwgXCJQb2xpY3lWZXJzaW9uTWF4UmVhY2hlZFwiXG4gICAgICB8IFwiUG9saWN5VmVyc2lvbkludmFsaWRcIlxuICAgICAgfCBcIlBvbGljeVNlY3JldExpbWl0UmVhY2hlZFwiXG4gICAgICB8IFwiUG9saWN5U2VjcmV0VG9vTGFyZ2VcIlxuICAgICAgfCBcIkludmFsaWRSYW5kb21TZWNyZXRMZW5ndGhcIlxuICAgICAgfCBcIkludmFsaWRJbXBvcnRLZXlcIlxuICAgICAgfCBcIkFsaWVuT3duZXJJbnZhbGlkXCJcbiAgICAgIHwgXCJFbXB0eVVwZGF0ZVJlcXVlc3RcIlxuICAgICAgfCBcIkludmFsaWRQb2xpY3lSZWZlcmVuY2VcIlxuICAgICAgfCBcIlBvbGljeUVuZ2luZURpc2FibGVkXCJcbiAgICAgIHwgXCJJbnZhbGlkV2FzbVBvbGljeVwiXG4gICAgICB8IFwiQ2VsUHJvZ3JhbVRvb0xhcmdlXCJcbiAgICAgIHwgXCJJbnZhbGlkUG9saWN5XCJcbiAgICAgIHwgXCJSZWR1bmRhbnREZXJpdmF0aW9uUGF0aFwiXG4gICAgICB8IFwiSW1wb3J0S2V5TWlzc2luZ1wiXG4gICAgICB8IFwiSW52YWxpZEFiaU1ldGhvZHNcIlxuICAgICAgfCBcIkJhYnlsb25Db3ZTaWduXCJcbiAgICAgIHwgXCJJbnZhbGlkUG9saWN5TG9nc1JlcXVlc3RcIlxuICAgICAgfCBcIlVzZXJQcm9maWxlTWlncmF0aW9uTXVsdGlwbGVFbnRyaWVzXCJcbiAgICAgIHwgXCJVc2VyUHJvZmlsZU1pZ3JhdGlvblRvb01hbnlJdGVtc1wiXG4gICAgICB8IFwiSW5wdXRUb29TaG9ydFwiXG4gICAgICB8IFwiSW52YWxpZFR3ZWFrTGVuZ3RoXCJcbiAgICAgIHwgXCJJbnZhbGlkQ3VzdG9tQ2hhaW5zXCJcbiAgICAgIHwgXCJJbnZhbGlkUnBjUmVxdWVzdFwiXG4gICAgICB8IFwiSW52YWxpZEFjbEVudHJ5XCI7XG4gICAgQmlsbGluZ0FyZ3M6IHtcbiAgICAgIGJpbGxpbmdfb3JnOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgZXZlbnRfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaWxsaW5nRXZlbnRcIl07XG4gICAgICBrZXk/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdIHwgbnVsbDtcbiAgICAgIHJvbGU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdIHwgbnVsbDtcbiAgICAgIHVzZXI/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdIHwgbnVsbDtcbiAgICB9O1xuICAgIEJpbGxpbmdEaW1lbnNpb25zOiB7XG4gICAgICBraW5kOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbGxpbmdFdmVudFwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIG1ldHJpY3MgbXVzdCBpbmNsdWRlICdvcmdfaWQnIGFzIGEgZGltZW5zaW9uLiAqL1xuICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQmlsbGluZyBldmVudCB0eXBlcy5cbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEJpbGxpbmdFdmVudDpcbiAgICAgIHwgXCJtbWlcIlxuICAgICAgfCBcIm1taU1lc3NhZ2VHZXRcIlxuICAgICAgfCBcIm1taU1lc3NhZ2VMaXN0XCJcbiAgICAgIHwgXCJtbWlNZXNzYWdlU2lnblwiXG4gICAgICB8IFwibW1pTWVzc2FnZVJlamVjdFwiXG4gICAgICB8IFwibW1pTWVzc2FnZURlbGV0ZVwiXG4gICAgICB8IFwiYWJvdXRNZVwiXG4gICAgICB8IFwidXNlclJlc2V0RW1haWxJbml0XCJcbiAgICAgIHwgXCJ1c2VyUmVzZXRFbWFpbENvbXBsZXRlXCJcbiAgICAgIHwgXCJ1c2VyRGVsZXRlVG90cFwiXG4gICAgICB8IFwidXNlclJlc2V0VG90cEluaXRcIlxuICAgICAgfCBcInVzZXJSZXNldFRvdHBDb21wbGV0ZVwiXG4gICAgICB8IFwidXNlclZlcmlmeVRvdHBcIlxuICAgICAgfCBcInVzZXJSZWdpc3RlckZpZG9Jbml0XCJcbiAgICAgIHwgXCJ1c2VyUmVnaXN0ZXJGaWRvQ29tcGxldGVcIlxuICAgICAgfCBcInVzZXJEZWxldGVGaWRvXCJcbiAgICAgIHwgXCJjcmVhdGVQcm9vZk9pZGNcIlxuICAgICAgfCBcImNyZWF0ZVByb29mQ3ViZVNpZ25lclwiXG4gICAgICB8IFwidmVyaWZ5UHJvb2ZcIlxuICAgICAgfCBcImFkZE9pZGNJZGVudGl0eVwiXG4gICAgICB8IFwicmVtb3ZlT2lkY0lkZW50aXR5XCJcbiAgICAgIHwgXCJsaXN0T2lkY0lkZW50aXRpZXNcIlxuICAgICAgfCBcImdldE9yZ1wiXG4gICAgICB8IFwidXBkYXRlT3JnXCJcbiAgICAgIHwgXCJnZXRPcmdFeHBvcnRcIlxuICAgICAgfCBcImNyZWF0ZU9yZ1wiXG4gICAgICB8IFwibGlzdEtleXNJbk9yZ1wiXG4gICAgICB8IFwiYXR0ZXN0S2V5XCJcbiAgICAgIHwgXCJnZXRLZXlJbk9yZ1wiXG4gICAgICB8IFwiZ2V0S2V5QnlNYXRlcmlhbElkXCJcbiAgICAgIHwgXCJsaXN0S2V5Um9sZXNcIlxuICAgICAgfCBcInVwZGF0ZUtleVwiXG4gICAgICB8IFwibGlzdEhpc3RvcmljYWxLZXlUeFwiXG4gICAgICB8IFwiaW52aXRlXCJcbiAgICAgIHwgXCJjYW5jZWxJbnZpdGF0aW9uXCJcbiAgICAgIHwgXCJsaXN0SW52aXRhdGlvbnNcIlxuICAgICAgfCBcImxpc3RVc2Vyc0luT3JnXCJcbiAgICAgIHwgXCJnZXRVc2VySW5PcmdcIlxuICAgICAgfCBcImdldFVzZXJJbk9yZ0J5RW1haWxcIlxuICAgICAgfCBcImdldFVzZXJJbk9yZ0J5T2lkY1wiXG4gICAgICB8IFwidXBkYXRlVXNlck1lbWJlcnNoaXBcIlxuICAgICAgfCBcInJlc2V0TWVtYmVyTWZhXCJcbiAgICAgIHwgXCJjb21wbGV0ZVJlc2V0TWVtYmVyTWZhXCJcbiAgICAgIHwgXCJjcmVhdGVSb2xlXCJcbiAgICAgIHwgXCJhdHRlc3RSb2xlXCJcbiAgICAgIHwgXCJnZXRSb2xlXCJcbiAgICAgIHwgXCJsaXN0VG9rZW5LZXlzXCJcbiAgICAgIHwgXCJsaXN0Um9sZXNcIlxuICAgICAgfCBcImdldFJvbGVLZXlcIlxuICAgICAgfCBcImxpc3RSb2xlS2V5c1wiXG4gICAgICB8IFwibGlzdFJvbGVVc2Vyc1wiXG4gICAgICB8IFwidXBkYXRlUm9sZVwiXG4gICAgICB8IFwiZGVsZXRlUm9sZVwiXG4gICAgICB8IFwiY29uZmlndXJlRW1haWxcIlxuICAgICAgfCBcImdldEVtYWlsQ29uZmlnXCJcbiAgICAgIHwgXCJkZWxldGVFbWFpbENvbmZpZ1wiXG4gICAgICB8IFwibGlzdEhpc3RvcmljYWxSb2xlVHhcIlxuICAgICAgfCBcImNyZWF0ZVBvbGljeVwiXG4gICAgICB8IFwiZ2V0UG9saWN5XCJcbiAgICAgIHwgXCJsaXN0UG9saWNpZXNcIlxuICAgICAgfCBcImRlbGV0ZVBvbGljeVwiXG4gICAgICB8IFwidXBkYXRlUG9saWN5XCJcbiAgICAgIHwgXCJpbnZva2VQb2xpY3lcIlxuICAgICAgfCBcImdldFBvbGljeUxvZ3NcIlxuICAgICAgfCBcInVwbG9hZFdhc21Qb2xpY3lcIlxuICAgICAgfCBcImdldFBvbGljeVNlY3JldHNcIlxuICAgICAgfCBcInVwZGF0ZVBvbGljeVNlY3JldHNcIlxuICAgICAgfCBcInNldFBvbGljeVNlY3JldFwiXG4gICAgICB8IFwiZGVsZXRlUG9saWN5U2VjcmV0XCJcbiAgICAgIHwgXCJjcmVhdGVQb2xpY3lJbXBvcnRLZXlcIlxuICAgICAgfCBcImdldFBvbGljeUJ1Y2tldFwiXG4gICAgICB8IFwibGlzdFBvbGljeUJ1Y2tldHNcIlxuICAgICAgfCBcInVwZGF0ZVBvbGljeUJ1Y2tldFwiXG4gICAgICB8IFwidXNlckV4cG9ydERlbGV0ZVwiXG4gICAgICB8IFwidXNlckV4cG9ydExpc3RcIlxuICAgICAgfCBcInVzZXJFeHBvcnRJbml0XCJcbiAgICAgIHwgXCJ1c2VyRXhwb3J0Q29tcGxldGVcIlxuICAgICAgfCBcImFkZFVzZXJUb1JvbGVcIlxuICAgICAgfCBcInJlbW92ZVVzZXJGcm9tUm9sZVwiXG4gICAgICB8IFwibWZhQXBwcm92ZUNzXCJcbiAgICAgIHwgXCJtZmFSZWplY3RDc1wiXG4gICAgICB8IFwibWZhR2V0XCJcbiAgICAgIHwgXCJtZmFMaXN0XCJcbiAgICAgIHwgXCJhZGRLZXlzVG9Sb2xlXCJcbiAgICAgIHwgXCJyZW1vdmVLZXlGcm9tUm9sZVwiXG4gICAgICB8IFwiY3JlYXRlUm9sZVRva2VuXCJcbiAgICAgIHwgXCJjcmVhdGVTZXNzaW9uXCJcbiAgICAgIHwgXCJyZXZva2VTZXNzaW9uXCJcbiAgICAgIHwgXCJyZXZva2VDdXJyZW50U2Vzc2lvblwiXG4gICAgICB8IFwicmV2b2tlU2Vzc2lvbnNcIlxuICAgICAgfCBcImxpc3RTZXNzaW9uc1wiXG4gICAgICB8IFwiZ2V0U2Vzc2lvblwiXG4gICAgICB8IFwic2lnbmVyU2Vzc2lvblJlZnJlc2hcIlxuICAgICAgfCBcIm1mYUFwcHJvdmVUb3RwXCJcbiAgICAgIHwgXCJtZmFSZWplY3RUb3RwXCJcbiAgICAgIHwgXCJtZmFGaWRvSW5pdFwiXG4gICAgICB8IFwibWZhQXBwcm92ZUZpZG9Db21wbGV0ZVwiXG4gICAgICB8IFwibWZhUmVqZWN0Rmlkb0NvbXBsZXRlXCJcbiAgICAgIHwgXCJtZmFFbWFpbEluaXRcIlxuICAgICAgfCBcIm1mYUVtYWlsQ29tcGxldGVcIlxuICAgICAgfCBcImN1YmUzc2lnbmVySGVhcnRiZWF0XCJcbiAgICAgIHwgXCJjcmVhdGVDb250YWN0XCJcbiAgICAgIHwgXCJnZXRDb250YWN0XCJcbiAgICAgIHwgXCJsaXN0Q29udGFjdHNcIlxuICAgICAgfCBcImRlbGV0ZUNvbnRhY3RcIlxuICAgICAgfCBcInVwZGF0ZUNvbnRhY3RcIlxuICAgICAgfCBcImxvb2t1cENvbnRhY3RzQnlBZGRyZXNzXCJcbiAgICAgIHwgXCJxdWVyeU1ldHJpY3NcIlxuICAgICAgfCBcInF1ZXJ5QXVkaXRMb2dcIlxuICAgICAgfCBcImNvdW50c1wiXG4gICAgICB8IFwiY3JlYXRlS2V5XCJcbiAgICAgIHwgXCJpbXBvcnRLZXlcIlxuICAgICAgfCBcImNyZWF0ZUtleUltcG9ydEtleVwiXG4gICAgICB8IFwiZGVyaXZlS2V5XCJcbiAgICAgIHwgXCJkZWxldGVLZXlcIlxuICAgICAgfCBcImF2YVNpZ25cIlxuICAgICAgfCBcImF2YVNlcmlhbGl6ZWRUeFNpZ25cIlxuICAgICAgfCBcImJhYnlsb25SZWdpc3RyYXRpb25cIlxuICAgICAgfCBcImJhYnlsb25TdGFraW5nXCJcbiAgICAgIHwgXCJiYWJ5bG9uQ292U2lnblwiXG4gICAgICB8IFwiYmluYW5jZVNpZ25cIlxuICAgICAgfCBcImJ5Yml0U2lnblwiXG4gICAgICB8IFwiY29pbmJhc2VTaWduXCJcbiAgICAgIHwgXCJibG9iU2lnblwiXG4gICAgICB8IFwiYnRjTWVzc2FnZVNpZ25cIlxuICAgICAgfCBcImJ0Y1NpZ25cIlxuICAgICAgfCBcImRpZmZpZUhlbGxtYW5FeGNoYW5nZVwiXG4gICAgICB8IFwicHNidFNpZ25cIlxuICAgICAgfCBcInBzYnRMZWdhY3lJbnB1dFNpZ25cIlxuICAgICAgfCBcInBzYnRTZWd3aXRJbnB1dFNpZ25cIlxuICAgICAgfCBcInBzYnRUYXByb290SW5wdXRTaWduXCJcbiAgICAgIHwgXCJidGNUYXByb290U2lnblwiXG4gICAgICB8IFwiZWlwNzEyU2lnblwiXG4gICAgICB8IFwiZWlwMTkxU2lnblwiXG4gICAgICB8IFwiZWlwNzcwMlNpZ25cIlxuICAgICAgfCBcImV0aDFTaWduXCJcbiAgICAgIHwgXCJldGgyU2lnblwiXG4gICAgICB8IFwic29sYW5hU2lnblwiXG4gICAgICB8IFwic3VpU2lnblwiXG4gICAgICB8IFwidGVuZGVybWludFNpZ25cIlxuICAgICAgfCBcInN0YWtlXCJcbiAgICAgIHwgXCJ1bnN0YWtlXCJcbiAgICAgIHwgXCJwYXNza2V5QXV0aEluaXRcIlxuICAgICAgfCBcInBhc3NrZXlBdXRoQ29tcGxldGVcIlxuICAgICAgfCBcIm9pZGNBdXRoXCJcbiAgICAgIHwgXCJvYXV0aDJUd2l0dGVyXCJcbiAgICAgIHwgXCJvYXV0aDJUb2tlblJlZnJlc2hcIlxuICAgICAgfCBcImVtYWlsT3RwQXV0aFwiXG4gICAgICB8IFwic2l3ZUluaXRcIlxuICAgICAgfCBcInNpd2VDb21wbGV0ZVwiXG4gICAgICB8IFwic2l3c0luaXRcIlxuICAgICAgfCBcInNpd3NDb21wbGV0ZVwiXG4gICAgICB8IFwidGVsZWdyYW1BdXRoXCJcbiAgICAgIHwgXCJjcmVhdGVPaWRjVXNlclwiXG4gICAgICB8IFwiZGVsZXRlT2lkY1VzZXJcIlxuICAgICAgfCBcImRlbGV0ZVVzZXJcIlxuICAgICAgfCBcImNyZWF0ZUVvdHNOb25jZXNcIlxuICAgICAgfCBcImVvdHNTaWduXCJcbiAgICAgIHwgXCJhdXRoTWlncmF0aW9uSWRlbnRpdHlBZGRcIlxuICAgICAgfCBcImF1dGhNaWdyYXRpb25JZGVudGl0eVJlbW92ZVwiXG4gICAgICB8IFwiYXV0aE1pZ3JhdGlvblVzZXJVcGRhdGVcIlxuICAgICAgfCBcImtleUNyZWF0ZWRcIlxuICAgICAgfCBcImtleUltcG9ydGVkXCJcbiAgICAgIHwgXCJpbnZpdGF0aW9uQWNjZXB0XCJcbiAgICAgIHwgXCJpZHBBdXRoZW50aWNhdGVcIlxuICAgICAgfCBcImlkcFBhc3N3b3JkUmVzZXRSZXF1ZXN0XCJcbiAgICAgIHwgXCJpZHBQYXNzd29yZFJlc2V0Q29uZmlybVwiXG4gICAgICB8IFwicnBjQXBpXCJcbiAgICAgIHwgXCJycGNDcmVhdGVUcmFuc2FjdGlvblwiXG4gICAgICB8IFwicnBjR2V0VHJhbnNhY3Rpb25cIlxuICAgICAgfCBcInJwY0xpc3RUcmFuc2FjdGlvbnNcIlxuICAgICAgfCBcInJwY0J0Y0xpc3RVdHhvc1wiXG4gICAgICB8IFwicnBjUmV0cnlUcmFuc2FjdGlvblwiXG4gICAgICB8IFwicnBjQ2FuY2VsVHJhbnNhY3Rpb25cIlxuICAgICAgfCBcInJwY0JpbmFuY2VcIlxuICAgICAgfCBcInJwY0J5Yml0XCJcbiAgICAgIHwgXCJycGNDb2luYmFzZVwiXG4gICAgICB8IFwiY3VzdG9tQ2hhaW5ScGNDYWxsXCJcbiAgICAgIHwgXCJlc3Bsb3JhQXBpQ2FsbFwiXG4gICAgICB8IFwic2VudHJ5QXBpQ2FsbFwiXG4gICAgICB8IFwic2VudHJ5QXBpQ2FsbFB1YmxpY1wiXG4gICAgICB8IFwibW1pSndrU2V0XCJcbiAgICAgIHwgXCJhdHRlc3RhdGlvbkp3a1NldFwiXG4gICAgICB8IFwidXNlck9yZ3NcIlxuICAgICAgfCBcInB1YmxpY19vcmdfaW5mb1wiXG4gICAgICB8IFwiZW1haWxfbXlfb3Jnc1wiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBlbnZlbG9wZSBmb3IgYWxsIEJpbmFuY2UgUlBDIG1ldGhvZHMuICovXG4gICAgQmluYW5jZUFjY291bnRJbmZvUGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY291bnRJbmZvUmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZURyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogZmxvYXRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIE1heSBvbmx5IGJlIHNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMsIHdpdGggdXAgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMgb2YgcHJlY2lzaW9uLlxuICAgICAgICogSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuIE11c3Qgbm90IGJlIGdyZWF0ZXIgdGhhbiA2MDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICBCaW5hbmNlQXBpUHJvcGVydGllc1BhdGNoOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBCaW5hbmNlLWlzc3VlZCBBUEkga2V5IHN0cmluZy4gRW5jcnlwdGVkIHNlcnZlci1zaWRlIGJlZm9yZSBzdG9yYWdlLiAqL1xuICAgICAgYXBpX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEVtYWlsIGFkZHJlc3Mgb2YgdGhlIEJpbmFuY2UgKG1hc3RlciBvciBzdWIpIGFjY291bnQgdGhpcyBrZXkgYXV0aGVudGljYXRlcyBhcy4gKi9cbiAgICAgIGVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGlzIGNvcnJlc3BvbmRzIHRvIGEgbWFzdGVyIChhcyBvcHBvc2VkIHRvIGEgc3ViKSBhY2NvdW50IG9uIEJpbmFuY2UuICovXG4gICAgICBpc19tYXN0ZXI/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXJiaXRyYXJ5IGxhYmVsLiBVc2VmdWwgZm9yIHN0b3JpbmcgdGhlIGNvcnJlc3BvbmRpbmcgQVBJIGtleSBsYWJlbCBvbiB0aGUgQmluYW5jZSBzaWRlLiAqL1xuICAgICAgbGFiZWw/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgdGhpcyBpcyBhIHN1Yi1hY2NvdW50LCB0aGlzIGZpZWxkIGNhbiBiZSB1c2VkIHRvIGxpbmsgaXQgdG8gaXRzIG1hc3RlciBhY2NvdW50XG4gICAgICAgKiAoYnkgcHJvdmlkaW5nIHRoZSBtYXN0ZXIgYWNjb3VudCBlbWFpbCwgd2hpY2ggQmluYW5jZSB1c2VzIGFzIGFuIGFjY291bnQgaWRlbnRpZmllcikuXG4gICAgICAgKi9cbiAgICAgIHN1Yl9vZj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYGNzX2JpbmFuY2VDb2luSW5mb2AuXG4gICAgICpcbiAgICAgKiBCaW5hbmNlIGVuZHBvaW50OiBgR0VUIC9zYXBpL3YxL2NhcGl0YWwvY29uZmlnL2dldGFsbGAuIFJldHVybnMgdGhlIGxpc3RcbiAgICAgKiBvZiBjb2lucyBzdXBwb3J0ZWQgYnkgdGhlIGNhbGxpbmcgYWNjb3VudCBhbG9uZyB3aXRoIHBlci1jb2luIGJhbGFuY2VzLFxuICAgICAqIGRlcG9zaXQvd2l0aGRyYXcgZW5hYmxlbWVudCwgYW5kIG5ldHdvcmsgaW5mby4gU2luY2UgdGhlIGVuZHBvaW50IHRha2VzXG4gICAgICogbm8gcGFyYW1ldGVycyBiZXlvbmQgdGhlIGNvbW1vbiBgcmVjdldpbmRvd2AgLyBgdGltZXN0YW1wYCBlbnZlbG9wZSwgdGhpc1xuICAgICAqIHN0cnVjdCBpcyBkZWZpbmVkIGRpcmVjdGx5IGluc3RlYWQgb2YgZ29pbmcgdGhyb3VnaCB0aGVcbiAgICAgKiBbYEJpbmFuY2VQYXJhbXNgXSBnZW5lcmljIGFsaWFzLlxuICAgICAqL1xuICAgIEJpbmFuY2VDb2luSW5mb1BhcmFtczoge1xuICAgICAgZHJ5UnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlRHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBmbG9hdFxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogTWF5IG9ubHkgYmUgc3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcywgd2l0aCB1cCB0byB0aHJlZSBkZWNpbWFsIHBsYWNlcyBvZiBwcmVjaXNpb24uXG4gICAgICAgKiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAxMDAwMC4gTXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIDYwMDAwLlxuICAgICAgICovXG4gICAgICByZWN2V2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBlbnZlbG9wZSBmb3IgYWxsIEJpbmFuY2UgUlBDIG1ldGhvZHMuICovXG4gICAgQmluYW5jZURlcG9zaXRIaXN0b3J5UGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcG9zaXRIaXN0b3J5UmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZURyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogZmxvYXRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIE1heSBvbmx5IGJlIHNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMsIHdpdGggdXAgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMgb2YgcHJlY2lzaW9uLlxuICAgICAgICogSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuIE11c3Qgbm90IGJlIGdyZWF0ZXIgdGhhbiA2MDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCaW5hbmNlIFJQQyBtZXRob2RzLiAqL1xuICAgIEJpbmFuY2VEZXBvc2l0UGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcG9zaXRSZXF1ZXN0XCJdICYge1xuICAgICAgZHJ5UnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlRHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBmbG9hdFxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogTWF5IG9ubHkgYmUgc3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcywgd2l0aCB1cCB0byB0aHJlZSBkZWNpbWFsIHBsYWNlcyBvZiBwcmVjaXNpb24uXG4gICAgICAgKiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAxMDAwMC4gTXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIDYwMDAwLlxuICAgICAgICovXG4gICAgICByZWN2V2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIEJpbmFuY2VEcnlSdW5BcmdzOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBCaW5hbmNlIEFQSSBtZXRob2QgdGhhdCB3b3VsZCBoYXZlIGJlZW4gdXNlZCAqL1xuICAgICAgbWV0aG9kOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBCaW5hbmNlIEFQSSB1cmwgbWV0aG9kIHRoYXQgd291bGQgaGF2ZSBiZWVuIGNhbGxlZCAqL1xuICAgICAgdXJsOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGlmZmVyZW50IFwiZHJ5IHJ1blwiIG1vZGVzIGZvciBleGVjdXRpbmcgQmluYW5jZSByZXF1ZXN0cy5cbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEJpbmFuY2VEcnlSdW5Nb2RlOiBcIk5PX1NJR05cIiB8IFwiTk9fU1VCTUlUXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQmluYW5jZSBSUEMgbWV0aG9kcy4gKi9cbiAgICBCaW5hbmNlTGlzdFN1YkFjY291bnRzUGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkxpc3RTdWJBY2NvdW50c1JlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VEcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleUlkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGZsb2F0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgXCJyZWNlaXZlIHdpbmRvd1wiLCBpLmUuLCBmb3IgaG93IGxvbmcgdGhlIHJlcXVlc3Qgc3RheXMgdmFsaWQuXG4gICAgICAgKiBNYXkgb25seSBiZSBzcGVjaWZpZWQgaW4gbWlsbGlzZWNvbmRzLCB3aXRoIHVwIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzIG9mIHByZWNpc2lvbi5cbiAgICAgICAqIElmIG9taXR0ZWQsIGRlZmF1bHRzIHRvIDEwMDAwLiBNdXN0IG5vdCBiZSBncmVhdGVyIHRoYW4gNjAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEJpbmFuY2UtZmFtaWx5IFJQQyBtZXRob2RzLiBFYWNoIHZhcmlhbnQgYXV0aGVudGljYXRlcyBhcyB0aGVcbiAgICAgKiBbYEtleVR5cGU6OkVkMjU1MTlCaW5hbmNlQXBpYF0ga2V5IGluIGl0cyBgcGFyYW1zLmtleV9pZGAuXG4gICAgICovXG4gICAgQmluYW5jZVJwYzpcbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19iaW5hbmNlU3ViVG9NYXN0ZXJcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZVN1YlRvTWFzdGVyUGFyYW1zXCJdO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtZXRob2Q6IFwiY3NfYmluYW5jZVN1YlRvU3ViXCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VTdWJUb1N1YlBhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2JpbmFuY2VVbml2ZXJzYWxUcmFuc2ZlclwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlVW5pdmVyc2FsVHJhbnNmZXJQYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19iaW5hbmNlU3ViQWNjb3VudEFzc2V0c1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlU3ViQWNjb3VudEFzc2V0c1BhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2JpbmFuY2VBY2NvdW50SW5mb1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlQWNjb3VudEluZm9QYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19iaW5hbmNlU3ViQWNjb3VudFRyYW5zZmVySGlzdG9yeVwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlU3ViQWNjb3VudFRyYW5zZmVySGlzdG9yeVBhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2JpbmFuY2VVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZVVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVBhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2JpbmFuY2VXaXRoZHJhd1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlV2l0aGRyYXdQYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19iaW5hbmNlV2l0aGRyYXdIaXN0b3J5XCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VXaXRoZHJhd0hpc3RvcnlQYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19iaW5hbmNlRGVwb3NpdFwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlRGVwb3NpdFBhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2JpbmFuY2VEZXBvc2l0SGlzdG9yeVwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlRGVwb3NpdEhpc3RvcnlQYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19iaW5hbmNlTGlzdFN1YkFjY291bnRzXCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VMaXN0U3ViQWNjb3VudHNQYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19iaW5hbmNlQ29pbkluZm9cIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZUNvaW5JbmZvUGFyYW1zXCJdO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtZXRob2Q6IFwiY3NfYmluYW5jZVN1YkFjY291bnREZXBvc2l0QWRkcmVzc1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlU3ViQWNjb3VudERlcG9zaXRBZGRyZXNzUGFyYW1zXCJdO1xuICAgICAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgcmV0dXJuZWQgYnkgdGhlIHR5cGVkIGBiaW5hbmNlX3NpZ25gIGVuZHBvaW50LiAqL1xuICAgIEJpbmFuY2VTaWduUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZnVsbCBzaWduZWQgcXVlcnkgc3RyaW5nLCByZWFkeSB0byBiZSBzdWJtaXR0ZWQgdG8gQmluYW5jZS5cbiAgICAgICAqIEVuY29kZWQgYXMgYDx1cmxlbmNvZGVkIHBhcmFtcz4mcmVjdldpbmRvdz08bXM+JnRpbWVzdGFtcD08bXM+JnNpZ25hdHVyZT08dXJsZW5jb2RlZCBiYXNlNjQgc2lnPmAuXG4gICAgICAgKi9cbiAgICAgIHNpZ25lZF9xdWVyeTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQmluYW5jZSBSUEMgbWV0aG9kcy4gKi9cbiAgICBCaW5hbmNlU3ViQWNjb3VudEFzc2V0c1BhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdWJBY2NvdW50QXNzZXRzUmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZURyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogZmxvYXRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIE1heSBvbmx5IGJlIHNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMsIHdpdGggdXAgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMgb2YgcHJlY2lzaW9uLlxuICAgICAgICogSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuIE11c3Qgbm90IGJlIGdyZWF0ZXIgdGhhbiA2MDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCaW5hbmNlIFJQQyBtZXRob2RzLiAqL1xuICAgIEJpbmFuY2VTdWJBY2NvdW50RGVwb3NpdEFkZHJlc3NQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3ViQWNjb3VudERlcG9zaXRBZGRyZXNzUmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZURyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogZmxvYXRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIE1heSBvbmx5IGJlIHNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMsIHdpdGggdXAgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMgb2YgcHJlY2lzaW9uLlxuICAgICAgICogSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuIE11c3Qgbm90IGJlIGdyZWF0ZXIgdGhhbiA2MDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCaW5hbmNlIFJQQyBtZXRob2RzLiAqL1xuICAgIEJpbmFuY2VTdWJBY2NvdW50VHJhbnNmZXJIaXN0b3J5UGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN1YkFjY291bnRUcmFuc2Zlckhpc3RvcnlSZXF1ZXN0XCJdICYge1xuICAgICAgZHJ5UnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlRHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBmbG9hdFxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogTWF5IG9ubHkgYmUgc3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcywgd2l0aCB1cCB0byB0aHJlZSBkZWNpbWFsIHBsYWNlcyBvZiBwcmVjaXNpb24uXG4gICAgICAgKiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAxMDAwMC4gTXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIDYwMDAwLlxuICAgICAgICovXG4gICAgICByZWN2V2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBlbnZlbG9wZSBmb3IgYWxsIEJpbmFuY2UgUlBDIG1ldGhvZHMuICovXG4gICAgQmluYW5jZVN1YlRvTWFzdGVyUGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN1YlRvTWFzdGVyUmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZURyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogZmxvYXRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIE1heSBvbmx5IGJlIHNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMsIHdpdGggdXAgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMgb2YgcHJlY2lzaW9uLlxuICAgICAgICogSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuIE11c3Qgbm90IGJlIGdyZWF0ZXIgdGhhbiA2MDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCaW5hbmNlIFJQQyBtZXRob2RzLiAqL1xuICAgIEJpbmFuY2VTdWJUb1N1YlBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdWJUb1N1YlJlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VEcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleUlkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGZsb2F0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgXCJyZWNlaXZlIHdpbmRvd1wiLCBpLmUuLCBmb3IgaG93IGxvbmcgdGhlIHJlcXVlc3Qgc3RheXMgdmFsaWQuXG4gICAgICAgKiBNYXkgb25seSBiZSBzcGVjaWZpZWQgaW4gbWlsbGlzZWNvbmRzLCB3aXRoIHVwIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzIG9mIHByZWNpc2lvbi5cbiAgICAgICAqIElmIG9taXR0ZWQsIGRlZmF1bHRzIHRvIDEwMDAwLiBNdXN0IG5vdCBiZSBncmVhdGVyIHRoYW4gNjAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQmluYW5jZSBSUEMgbWV0aG9kcy4gKi9cbiAgICBCaW5hbmNlVW5pdmVyc2FsVHJhbnNmZXJIaXN0b3J5UGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVJlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VEcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleUlkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGZsb2F0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgXCJyZWNlaXZlIHdpbmRvd1wiLCBpLmUuLCBmb3IgaG93IGxvbmcgdGhlIHJlcXVlc3Qgc3RheXMgdmFsaWQuXG4gICAgICAgKiBNYXkgb25seSBiZSBzcGVjaWZpZWQgaW4gbWlsbGlzZWNvbmRzLCB3aXRoIHVwIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzIG9mIHByZWNpc2lvbi5cbiAgICAgICAqIElmIG9taXR0ZWQsIGRlZmF1bHRzIHRvIDEwMDAwLiBNdXN0IG5vdCBiZSBncmVhdGVyIHRoYW4gNjAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQmluYW5jZSBSUEMgbWV0aG9kcy4gKi9cbiAgICBCaW5hbmNlVW5pdmVyc2FsVHJhbnNmZXJQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVW5pdmVyc2FsVHJhbnNmZXJSZXF1ZXN0XCJdICYge1xuICAgICAgZHJ5UnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlRHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBmbG9hdFxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogTWF5IG9ubHkgYmUgc3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcywgd2l0aCB1cCB0byB0aHJlZSBkZWNpbWFsIHBsYWNlcyBvZiBwcmVjaXNpb24uXG4gICAgICAgKiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAxMDAwMC4gTXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIDYwMDAwLlxuICAgICAgICovXG4gICAgICByZWN2V2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBlbnZlbG9wZSBmb3IgYWxsIEJpbmFuY2UgUlBDIG1ldGhvZHMuICovXG4gICAgQmluYW5jZVdpdGhkcmF3SGlzdG9yeVBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJXaXRoZHJhd0hpc3RvcnlSZXF1ZXN0XCJdICYge1xuICAgICAgZHJ5UnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaW5hbmNlRHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBmbG9hdFxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogTWF5IG9ubHkgYmUgc3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcywgd2l0aCB1cCB0byB0aHJlZSBkZWNpbWFsIHBsYWNlcyBvZiBwcmVjaXNpb24uXG4gICAgICAgKiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAxMDAwMC4gTXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIDYwMDAwLlxuICAgICAgICovXG4gICAgICByZWN2V2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBlbnZlbG9wZSBmb3IgYWxsIEJpbmFuY2UgUlBDIG1ldGhvZHMuICovXG4gICAgQmluYW5jZVdpdGhkcmF3UGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIldpdGhkcmF3UmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmluYW5jZURyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogZmxvYXRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIE1heSBvbmx5IGJlIHNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMsIHdpdGggdXAgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMgb2YgcHJlY2lzaW9uLlxuICAgICAgICogSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuIE11c3Qgbm90IGJlIGdyZWF0ZXIgdGhhbiA2MDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgYml0Y29pbiBhZGRyZXNzIGFuZCBpdHMgbmV0d29yay4gKi9cbiAgICBCaXRjb2luQWRkcmVzc0luZm86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBiaXRjb2luIGFkZHJlc3MuXG4gICAgICAgKiBAZXhhbXBsZSBiYzFwdWMwcThqaHgza25jMnN0bGZobDM1bmphODludmttcXI0YzVlMmxkeXVxMm1jY2tocjNtc2F2ajk5alxuICAgICAgICovXG4gICAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgICBjaGFpbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCdGNDaGFpblwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgIFwibWVzc2FnZV9iYXNlNjRcIjogXCJZV0pqWkdWbVoyaHBhbXRzYlc1dmNIRnljM1IxZG5kNGVYb3hNak0wTlRZS1wiXG4gICAgICogfVxuICAgICAqL1xuICAgIEJsb2JTaWduUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBvcHRpb25hbCBiYXNlNjQgc3RyaW5nIGNvbXByaXNpbmcgYSBTRUMxLWVuY29kZWQgc2VjcDI1NmsxIHB1YmxpYyBrZXkuXG4gICAgICAgKiBUaGlzIGZpZWxkIGNhbiBiZSB1c2VkICpvbmx5KiB3aXRoIFNjaG5vcnIga2V5cy5cbiAgICAgICAqXG4gICAgICAgKiBJZiB0aGlzIGZpZWxkIGlzIHByZXNlbnQsIHRoZSByZXNwb25zZSB3aWxsIGJlIGEgU2Nobm9yciBhZGFwdG9yIHNpZ25hdHVyZVxuICAgICAgICogaW4gdGhlIGZvcm1hdCBzcGVjaWZpZWQgYnkgQmxvY2tzdHJlYW0gZm9yIHVzZSBpbiBsaWJzZWNwMjU2azEtemtwLiBTZWVcbiAgICAgICAqIDxodHRwczovL2dpdGh1Yi5jb20vWmhlUGFuZy9QeXRob25fU3BlY2lmaWNhdGlvbl9mb3JfU2Nobm9ycl9BZGFwdG9yLz5cbiAgICAgICAqIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgICAgICogQGV4YW1wbGUgQXJueTRXb0hETkJWWFljeW5oTmw5L3k3SnR0SjJyazBDQ1JmTFI3dDNhRGdcbiAgICAgICAqL1xuICAgICAgYWRhcHRvcl9waz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBvcHRpb25hbCBkb21haW4gc2VwYXJhdGlvbiB0YWcgZm9yIHVzZSAqb25seSogd2l0aCBCTFMgc2lnbmluZyByZXF1ZXN0cy5cbiAgICAgICAqIFRoaXMgZmllbGQgbXVzdCBub3QgYmUgc3VwcGxpZWQgZm9yIHJlcXVlc3RzIGludm9sdmluZyBub24tQkxTIGtleSB0eXBlcy5cbiAgICAgICAqXG4gICAgICAgKiBJZiB0aGlzIGZpZWxkIGlzIG5vdCBwcmVzZW50IG9yIG51bGwsIHRoZSBkb21haW4gc2VwYXJhdGlvbiB0YWcgc3BlY2lmaWVkIGluXG4gICAgICAgKiB0aGUgSUVURiBCTFMgU2lnbmF0dXJlcyBkcmFmdCB2ZXJzaW9ucyA0IGFuZCA1LCBzZWN0aW9uIDQuMi4zIChtaW5pbWFsIHB1YmtleVxuICAgICAgICogc2l6ZSB2YXJpYW50KSBpcyB1c2VkLlxuICAgICAgICpcbiAgICAgICAqIE90aGVyd2lzZSwgdGhpcyBmaWVsZCBtdXN0IGNvbnRhaW4gYSBiYXNlLTY0IHN0cmluZyBlbmNvZGluZyBhIG5vbi1lbXB0eSBieXRlXG4gICAgICAgKiB2ZWN0b3IuIFdoZW4gdXNpbmcgYSBjdXN0b20gdGFnLCBSRkM5MzgwIChTZWN0aW9uIDMuMSkgcmVjb21tZW5kcyBhIGxlbmd0aCBvZlxuICAgICAgICogYXQgbGVhc3QgMTYgYnl0ZXMuXG4gICAgICAgKiBAZXhhbXBsZSBFYmJMdkN4STdnYW43MWlJU0RzZnI0NmV0T3Y2MDZRa0dHRFA1UHBWbDVRPVxuICAgICAgICovXG4gICAgICBibHNfZHN0Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBibG9iIHRvIHNpZ24sIGVuY29kZWQgYXMgYSBiYXNlNjQgc3RyaW5nLlxuICAgICAgICpcbiAgICAgICAqIE5vdGUgdGhhdCBjZXJ0YWluIHNpZ25pbmcga2V5cyBpbXBvc2UgYWRkaXRpb25hbCByZXF1aXJlbWVudHMgb24gdGhlIGNvbnRlbnRzIG9mXG4gICAgICAgKiB0aGUgbWVzc2FnZS4gRm9yIGV4YW1wbGUsIFNlY3AyNTZrMSBrZXlzIHJlcXVpcmUgdGhhdCB0aGUgbWVzc2FnZSBpcyAzMiBieXRlcyBsb25nLlxuICAgICAgICovXG4gICAgICBtZXNzYWdlX2Jhc2U2NDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQW4gb3B0aW9uYWwgdHdlYWsgdmFsdWUgZm9yIHVzZSBvbmx5IHdpdGggKHNvbWUpIHNlY3AyNTZrMSBrZXkgdHlwZXMuXG4gICAgICAgKiBUaGlzIGZpZWxkIG11c3Qgbm90IGJlIHN1cHBsaWVkIGZvciByZXF1ZXN0cyBpbnZvbHZpbmcgYW55IG90aGVyIGtleSB0eXBlLlxuICAgICAgICpcbiAgICAgICAqIElmIHRoaXMgZmllbGQgaXMgbm90IHByZXNlbnQgb3IgbnVsbCwgbm8gdHdlYWsgaXMgYXBwbGllZC4gT3RoZXJ3aXNlLCB0aGlzIGZpZWxkXG4gICAgICAgKiBtdXN0IGNvbnRhaW4gYSBiYXNlLTY0IHN0cmluZyBlbmNvZGluZyBhIHZlY3RvciBvZiBleGFjdGx5IDMyIGJ5dGVzLiBTZWUgdGhlXG4gICAgICAgKiBDdWJlU2lnbmVyIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIFNlZ3dpdCB0d2Vha2luZyBwcm9jZWR1cmUuXG4gICAgICAgKiBAZXhhbXBsZSBGNDFIQXkycTVHbjhsYUYyQ3VNc1piUkFRVG1EKzRPYjNWVU1aN1RCR0s0PVxuICAgICAgICovXG4gICAgICBzZWd3aXRfdHdlYWs/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQW4gb3B0aW9uYWwgdHdlYWsgdmFsdWUgZm9yIHVzZSAqb25seSogd2l0aCBUYXByb290IGtleXMuIFRoaXMgZmllbGQgbXVzdCBub3RcbiAgICAgICAqIGJlIHN1cHBsaWVkIGZvciByZXF1ZXN0cyBpbnZvbHZpbmcgYW55IG90aGVyIGtleSB0eXBlLlxuICAgICAgICpcbiAgICAgICAqIElmIHRoaXMgZmllbGQgaXMgbm90IHByZXNlbnQgb3IgbnVsbCwgbm8gdHdlYWsgaXMgYXBwbGllZC4gSWYgdGhlIGZpZWxkIGlzIGFuXG4gICAgICAgKiBlbXB0eSBzdHJpbmcsIHRoZSBrZXkgaXMgdHdlYWtlZCB3aXRoIGFuIHVuc3BlbmRhYmxlIHNjcmlwdCBwYXRoIHBlciBCSVAwMzQxLlxuICAgICAgICogT3RoZXJ3aXNlLCB0aGlzIGZpZWxkIG11c3QgY29udGFpbiBhIDMyLWJ5dGUsIGJhc2UtNjQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGVcbiAgICAgICAqIE1lcmtsZSByb290IHdpdGggd2hpY2ggdG8gdHdlYWsgdGhlIGtleSBiZWZvcmUgc2lnbmluZy5cbiAgICAgICAqIEBleGFtcGxlIEY0MUhBeTJxNUduOGxhRjJDdU1zWmJSQVFUbUQrNE9iM1ZVTVo3VEJHSzQ9XG4gICAgICAgKi9cbiAgICAgIHRhcHJvb3RfdHdlYWs/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFN1cHBvcnRlZCBCVEMgY2hhaW5zLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgQnRjQ2hhaW46IFwibWFpbm5ldFwiIHwgXCJzaWduZXRcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIExlYWYgaGFzaCBhbmQgY29kZSwgYXMgcGVyIEJJUDM0MSBhbmQgaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtYml0Y29pbi9ydXN0LWJpdGNvaW4vYmxvYi80NjQyMDIxMDlkMmIyYzk2ZTliNDg2NzQ2MWJmZmU0MjBkYmQ4MTc3L2JpdGNvaW4vc3JjL2NyeXB0by9zaWdoYXNoLnJzI0w2OTEgKi9cbiAgICBCdGNMZWFmSGFzaENvZGVTZXBhcmF0b3I6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIENvZGUgc2VwYXJhdG9yXG4gICAgICAgKi9cbiAgICAgIGNvZGVfc2VwYXJhdG9yOiBudW1iZXI7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRhcHJvb3QtdGFnZ2VkIGhhc2ggd2l0aCB0YWcgXCJUYXBMZWFmXCIuICovXG4gICAgICBsZWFmX2hhc2g6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgdGhlIFtgY3NfYnRjTGlzdFV0eG9zYF0oQ3NScGM6OkJ0Y0xpc3RVdHhvcykgbWV0aG9kLiAqL1xuICAgIEJ0Y0xpc3RVdHhvc1JlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIEJpdGNvaW4gYWRkcmVzcyB3aG9zZSB1bnNwZW50IG91dHB1dHMgKFVUWE9zKSBhcmUgYmVpbmcgcXVlcmllZC4gKi9cbiAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBtYXhpbXVtIG51bWJlciBvZiBVVFhPcyB0byByZXR1cm4gKDEtMjUwKS5cbiAgICAgICAqIEBkZWZhdWx0IDEwMFxuICAgICAgICovXG4gICAgICBtYXhfcmVzdWx0cz86IG51bWJlcjtcbiAgICAgIG5ldHdvcms6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjTmV0d29ya1wiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gUGFnaW5hdGlvbiB0b2tlbiByZXR1cm5lZCBieSBhIHByZXZpb3VzIGNhbGwuICovXG4gICAgICBuZXh0X3Rva2VuPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIHRvIFtgY3NfYnRjTGlzdFV0eG9zYF0oc3VwZXI6OnJlcXVlc3Q6OkNzUnBjOjpCdGNMaXN0VXR4b3MpLiAqL1xuICAgIEJ0Y0xpc3RVdHhvc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFBhZ2luYXRpb24gdG9rZW4gdG8gcGFzcyB0byB0aGUgbmV4dCBjYWxsLCBpZiBtb3JlIHJlc3VsdHMgcmVtYWluLiAqL1xuICAgICAgbmV4dF90b2tlbj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB1bnNwZW50IHRyYW5zYWN0aW9uIG91dHB1dHMgZm9yIHRoZSBxdWVyaWVkIGFkZHJlc3MuICovXG4gICAgICB1dHhvczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCdGNVdHhvXCJdW107XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERhdGEgdG8gc2lnbiAqL1xuICAgIEJ0Y01lc3NhZ2VTaWduUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBNZXNzYWdlIHRvIHNpZ24gYXMgYSBoZXgtZW5jb2RlZCBieXRlIHN0cmluZy5cbiAgICAgICAqIEBleGFtcGxlIDB4ZGVhZGJlZWYxM2MwZmZlZVxuICAgICAgICovXG4gICAgICBkYXRhOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZvciBzZWd3aXQsIHNpZ24gdGhlIG1lc3NhZ2UgYXMgcDJzaC1wMndwa2ggaW5zdGVhZCBvZiBwMndwa2ggKi9cbiAgICAgIGlzX3Ayc2g/OiBib29sZWFuO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBCVEMgbWVzc2FnZSBzaWduaW5nIHJlc3BvbnNlICovXG4gICAgQnRjTWVzc2FnZVNpZ25SZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBwb2xpY3kgZXZhbHVhdGlvbiB0cmVlLiAqL1xuICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgfSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGJhc2U2NC1lbmNvZGVkIHNpZ25hdHVyZSBpbiBCSVAxMzcgZm9ybWF0LiAqL1xuICAgICAgc2lnOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEJpdGNvaW4gbmV0d29yayB0byBxdWVyeSBmb3IgVVRYT3MuXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBCdGNOZXR3b3JrOiBcIm1haW5uZXRcIiB8IFwidGVzdG5ldFwiO1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIEJ0Y1NpZ2hhc2hUeXBlOlxuICAgICAgfCBcIkFsbFwiXG4gICAgICB8IFwiTm9uZVwiXG4gICAgICB8IFwiU2luZ2xlXCJcbiAgICAgIHwgXCJBbGxQbHVzQW55b25lQ2FuUGF5XCJcbiAgICAgIHwgXCJOb25lUGx1c0FueW9uZUNhblBheVwiXG4gICAgICB8IFwiU2luZ2xlUGx1c0FueW9uZUNhblBheVwiO1xuICAgIEJ0Y1NpZ25SZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERvIG5vdCBwcm9kdWNlIGEgdmFsaWQgc2lnbmF0dXJlLCBqdXN0IGV2YWx1YXRlIGF0dGFjaGVkIHBvbGljaWVzLiAqL1xuICAgICAgZHJ5X3J1bj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3BvbnNlLCBleHBsYWluaW5nXG4gICAgICAgKiB0aGUgb3V0Y29tZSAoaS5lLiwgcGVybWl0dGVkIHZzLiBkZW5pZWQgdnMuIE1GQSByZXF1aXJlZCkgb2YgdGhlIHNpZ24gcmVxdWVzdC5cbiAgICAgICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBleHBsYWluPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIE1GQSBpcyByZXF1aXJlZCwgZmFpbCB0aGUgcmVxdWVzdCBpbnN0ZWFkIG9mIHJldHVybmluZyAyMDIgYW5kIGNyZWF0aW5nXG4gICAgICAgKiBwZW5kaW5nIE1GQSByZXF1ZXN0LiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZmFpbF9vbl9tZmE/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbWV0YWRhdGEuIFBhc3NpbmcgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhcyBtZXRhZGF0YSBjYW4gYmUgdXNlZCB0byBtYWtlIHJldmlld2luZ1xuICAgICAgICogb2YgcGVuZGluZyBNRkEgcmVxdWVzdHMgYW5kL29yIGhpc3RvcmljYWwga2V5IHRyYW5zYWN0aW9ucyBtb3JlIHRyYW5zcGFyZW50LiBJdCBjYW4gYWxzbyBiZSB1c2VkIGUuZy4sIHRvIGNhcnJ5IGFkZGl0aW9uYWwgZGF0YSB0byBXZWJIb29rIHBvbGljaWVzLlxuICAgICAgICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgfSAmIHtcbiAgICAgIHNpZ19raW5kOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ0Y1NpZ25hdHVyZUtpbmRcIl07XG4gICAgICB0eDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCdGNUeFwiXTtcbiAgICB9O1xuICAgIEJ0Y1NpZ25hdHVyZUtpbmQ6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU2VncmVnYXRlZCBXaXRuZXNzICovXG4gICAgICBTZWd3aXQ6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUcmFuc2FjdGlvbiBpbnB1dCBpbmRleFxuICAgICAgICAgKiBAZXhhbXBsZSAwXG4gICAgICAgICAqL1xuICAgICAgICBpbnB1dF9pbmRleDogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFNjcmlwdFxuICAgICAgICAgKiBAZXhhbXBsZSAweDc2YTkxNDc5MDkxOTcyMTg2YzQ0OWViMWRlZDIyYjc4ZTQwZDAwOWJkZjAwODk4OGFjXG4gICAgICAgICAqL1xuICAgICAgICBzY3JpcHRfY29kZTogc3RyaW5nO1xuICAgICAgICBzaWdoYXNoX3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjU2lnaGFzaFR5cGVcIl07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgdHdlYWsgdG8gYXBwbHkgdG8gdGhlIGtleSBiZWZvcmUgc2lnbmluZy5cbiAgICAgICAgICpcbiAgICAgICAgICogV2hlbiBzdXBwbGllZCwgdGhpcyBmaWVsZCBtdXN0IGNvbnRhaW4gYSBiYXNlLTY0IHN0cmluZyBlbmNvZGluZyBhIHZlY3RvciBvZlxuICAgICAgICAgKiBleGFjdGx5IDMyIGJ5dGVzLCB3aGljaCBhcmUgdXNlZCB0byBjb21wdXRlIHRoZSB0d2Vha2VkIHB1YmxpYyBrZXkuIFNlZSB0aGVcbiAgICAgICAgICogQ3ViZVNpZ25lciBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBTZWd3aXQgdHdlYWtpbmcgcHJvY2VkdXJlLlxuICAgICAgICAgKiBAZXhhbXBsZSBGNDFIQXkycTVHbjhsYUYyQ3VNc1piUkFRVG1EKzRPYjNWVU1aN1RCR0s0PVxuICAgICAgICAgKi9cbiAgICAgICAgdHdlYWs/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHRvdGFsIGFtb3VudCBvZiB0aGUgaW5wdXQgKGluIHNhdG9zaGlzKS5cbiAgICAgICAgICogQGV4YW1wbGUgMTAwMDAwMFxuICAgICAgICAgKi9cbiAgICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcImlucHV0XCI6IFtcbiAgICAgKiAgICAge1xuICAgICAqICAgICAgIFwicHJldmlvdXNfb3V0cHV0XCI6IFwiNzc1NDFhZWIzYzRkYWM5MjYwYjY4Zjc0ZjQ0Yzk3MzA4MWE5ZDRjYjJlYmU4MDM4YjJkNzBmYWEyMDFiNmJkYjoxXCIsXG4gICAgICogICAgICAgXCJzY3JpcHRfc2lnXCI6IFwiXCIsXG4gICAgICogICAgICAgXCJzZXF1ZW5jZVwiOiA0Mjk0OTY3Mjk0LFxuICAgICAqICAgICAgIFwid2l0bmVzc1wiOiBbXVxuICAgICAqICAgICB9XG4gICAgICogICBdLFxuICAgICAqICAgXCJsb2NrX3RpbWVcIjogMTE3MCxcbiAgICAgKiAgIFwib3V0cHV0XCI6IFtcbiAgICAgKiAgICAge1xuICAgICAqICAgICAgIFwic2NyaXB0X3B1YmtleVwiOiBcIjc2YTkxNGE0NTdiNjg0ZDdmMGQ1MzlhNDZhNDViYmMwNDNmMzViNTlkMGQ5NjM4OGFjXCIsXG4gICAgICogICAgICAgXCJ2YWx1ZVwiOiAxOTk5OTY2MDBcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAge1xuICAgICAqICAgICAgIFwic2NyaXB0X3B1YmtleVwiOiBcIjc2YTkxNGZkMjcwYjFlZTZhYmNhZWE5N2ZlYTdhZDA0MDJlOGJkOGFkNmQ3N2M4OGFjXCIsXG4gICAgICogICAgICAgXCJ2YWx1ZVwiOiA4MDAwMDAwMDBcbiAgICAgKiAgICAgfVxuICAgICAqICAgXSxcbiAgICAgKiAgIFwidmVyc2lvblwiOiAxXG4gICAgICogfVxuICAgICAqL1xuICAgIEJ0Y1R4OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgQnRjVHhPdXQ6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHNjcmlwdCB3aGljaCBtdXN0IGJlIHNhdGlzZmllZCBmb3IgdGhlIG91dHB1dCB0byBiZSBzcGVudC4gKi9cbiAgICAgIHNjcmlwdF9wdWJrZXk6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB2YWx1ZSBvZiB0aGUgb3V0cHV0LCBpbiBzYXRvc2hpcy5cbiAgICAgICAqL1xuICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSBzaW5nbGUgQml0Y29pbiB1bnNwZW50IHRyYW5zYWN0aW9uIG91dHB1dCAoVVRYTykuICovXG4gICAgQnRjVXR4bzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYWRkcmVzcyB0aGF0IGNvbnRyb2xzIHRoaXMgb3V0cHV0LiAqL1xuICAgICAgYWRkcmVzcz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIG91dHB1dCBoYXMgcmVhY2hlZCBmaW5hbGl0eSAoaXMgY29uZmlybWVkKS4gKi9cbiAgICAgIGNvbmZpcm1lZDogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBibG9jayB0aW1lIG9mIHRoZSBvdXRwdXQsIGluIHNlY29uZHMgc2luY2UgdGhlIFVuaXggZXBvY2guXG4gICAgICAgKi9cbiAgICAgIHRpbWU/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGFzaCBvZiB0aGUgdHJhbnNhY3Rpb24gdGhhdCBjcmVhdGVkIHRoaXMgb3V0cHV0LiAqL1xuICAgICAgdHJhbnNhY3Rpb25faGFzaDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgb3V0cHV0IHZhbHVlLCBpbiBzYXRvc2hpcywgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIHZhbHVlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpbmRleCBvZiB0aGlzIG91dHB1dCB3aXRoaW4gaXRzIHRyYW5zYWN0aW9uLlxuICAgICAgICovXG4gICAgICB2b3V0X2luZGV4PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgYWNjZXNzLWNvbnRyb2xsZWQgYWN0aW9ucyB0aGF0IGNhbiBiZSBwZXJmb3JtZWQgb24gYSBidWNrZXRcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEJ1Y2tldEFjdGlvbjpcbiAgICAgIHwgXCJyZWFkOmtleTp2YWx1ZVwiXG4gICAgICB8IFwicmVhZDprZXk6ZXhpc3RzXCJcbiAgICAgIHwgXCJ1cGRhdGU6a2V5OnZhbHVlXCJcbiAgICAgIHwgXCJkZWxldGU6a2V5OnZhbHVlXCJcbiAgICAgIHwgXCJzY2FuOmtleXNcIlxuICAgICAgfCBcInVwZGF0ZTpidWNrZXQ6b3duZXJcIlxuICAgICAgfCBcInVwZGF0ZTpidWNrZXQ6YWNsXCJcbiAgICAgIHwgXCJ1cGRhdGU6YnVja2V0Om1ldGFkYXRhXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCBhIHBvbGljeSBLViBzdG9yZSBidWNrZXQuICovXG4gICAgQnVja2V0SW5mbzogKHtcbiAgICAgIGNyZWF0ZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl0gfCBudWxsO1xuICAgICAgbGFzdF9tb2RpZmllZD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBWZXJzaW9uIG9mIHRoaXMgb2JqZWN0XG4gICAgICAgKi9cbiAgICAgIHZlcnNpb24/OiBudW1iZXI7XG4gICAgfSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGFjY2Vzcy1jb250cm9sIGVudHJpZXMgZm9yIHRoZSBidWNrZXQuICovXG4gICAgICBhY2w/OiB1bmtub3duW10gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBcmJpdHJhcnkgdXNlci1kZWZpbmVkIG1ldGFkYXRhLiAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgICAgb3JnX2lkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgb3duZXI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgfSkgJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuYW1lIG9mIHRoZSBidWNrZXQuICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU3ViLWVudGl0eSBvZiBvcmcgd2hlcmUgcGVyLWJ1Y2tldCBtZXRhZGF0YSAobGlrZSBBQ0wpIGlzIHN0b3JlZC5cbiAgICAgKiBUaGUgW0lkXSBvZiBhIFtCdWNrZXRNZXRhXSBtdXN0IGJlIHRoZSBidWNrZXQgbmFtZS5cbiAgICAgKi9cbiAgICBCdWNrZXRNZXRhOiB7XG4gICAgICBjcmVhdGVkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdIHwgbnVsbDtcbiAgICAgIGxhc3RfbW9kaWZpZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVmVyc2lvbiBvZiB0aGlzIG9iamVjdFxuICAgICAgICovXG4gICAgICB2ZXJzaW9uPzogbnVtYmVyO1xuICAgIH0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBhY2Nlc3MtY29udHJvbCBlbnRyaWVzIGZvciB0aGUgYnVja2V0LiAqL1xuICAgICAgYWNsPzogdW5rbm93bltdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXJiaXRyYXJ5IHVzZXItZGVmaW5lZCBtZXRhZGF0YS4gKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICAgIG9yZ19pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIG93bmVyOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdpcmUtZm9ybWF0IHBhdGNoIHBheWxvYWQgZm9yIFtgS2V5UHJvcGVydGllczo6QnliaXRBcGlgXS5cbiAgICAgKlxuICAgICAqIEV2ZXJ5IGZpZWxkIGZvbGxvd3MgdGhlIHNhbWUgcGVyLWZpZWxkIFBBVENIIHNlbWFudGljczogYSBtaXNzaW5nIGZpZWxkXG4gICAgICogbGVhdmVzIHRoZSBleGlzdGluZyB2YWx1ZSBhbG9uZSwgYSBKU09OIGBudWxsYCBjbGVhcnMgaXQsIGFuZCBhIHZhbHVlIHNldHMgaXQuXG4gICAgICovXG4gICAgQnliaXRBcGlQcm9wZXJ0aWVzUGF0Y2g6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIEJ5Yml0LWlzc3VlZCBBUEkga2V5IHN0cmluZy4gRW5jcnlwdGVkIHNlcnZlci1zaWRlIGJlZm9yZSBzdG9yYWdlLiAqL1xuICAgICAgYXBpX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFyYml0cmFyeSBsYWJlbC4gVXNlZnVsIGZvciBzdG9yaW5nIHRoZSBjb3JyZXNwb25kaW5nIEFQSSBrZXkgbGFiZWwgb24gdGhlIEJ5Yml0IHNpZGUuICovXG4gICAgICBsYWJlbD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSBlbnRyeSBpbiBbYEJ5Yml0UXVlcnlDb2luc0JhbGFuY2VSZXNwb25zZTo6YmFsYW5jZWBdLiAqL1xuICAgIEJ5Yml0Q29pbkJhbGFuY2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQm9udXMgLyBwcm9tb3Rpb25hbCBiYWxhbmNlLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgYm9udXM/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDb2luIHN5bWJvbCwgdXBwZXJjYXNlIChlLmcuIGBVU0RUYCwgYEJUQ2ApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQb3J0aW9uIG9mIGB3YWxsZXRfYmFsYW5jZWAgdGhhdCBjYW4gYmUgdHJhbnNmZXJyZWQgb3V0LiAqL1xuICAgICAgdHJhbnNmZXJCYWxhbmNlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRvdGFsIHdhbGxldCBiYWxhbmNlIGZvciBgY29pbmAsIGFzIGEgZGVjaW1hbCBzdHJpbmcuICovXG4gICAgICB3YWxsZXRCYWxhbmNlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSBlbnRyeSBpbiBbYEJ5Yml0Q29pbkluZm9FbnRyeTo6Y2hhaW5zYF0uICovXG4gICAgQnliaXRDb2luSW5mb0NoYWluOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFNob3J0IGNoYWluIGNvZGUgKGUuZy4gYEVUSGAsIGBUUlhgKS4gKi9cbiAgICAgIGNoYWluOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgZGVwb3NpdHMgYXJlIGVuYWJsZWQgb24gdGhpcyBjaGFpbjogYFwiMFwiYCBvZmYsIGBcIjFcImAgb24uICovXG4gICAgICBjaGFpbkRlcG9zaXQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIdW1hbi1yZWFkYWJsZSBjaGFpbiBuYW1lIChlLmcuIGBFUkMyMGApLiAqL1xuICAgICAgY2hhaW5UeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB3aXRoZHJhd2FscyBhcmUgZW5hYmxlZCBvbiB0aGlzIGNoYWluOiBgXCIwXCJgIG9mZiwgYFwiMVwiYCBvbi4gKi9cbiAgICAgIGNoYWluV2l0aGRyYXc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgY29uZmlybWF0aW9ucyByZXF1aXJlZCBmb3IgYSBkZXBvc2l0IHRvIGJlIGNyZWRpdGVkLiAqL1xuICAgICAgY29uZmlybWF0aW9uPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gTWluaW11bSBkZXBvc2l0IGFtb3VudCwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGRlcG9zaXRNaW4/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaXRoZHJhd2FsIGZlZSBvbiB0aGlzIGNoYWluLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiBJZiBlbXB0eSBzdHJpbmcsIHRoaXMgY29pbiBkb2VzIG5vdCBzdXBwb3J0IHdpdGhkcmF3YWwuICovXG4gICAgICB3aXRoZHJhd0ZlZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE1pbmltdW0gd2l0aGRyYXdhbCBhbW91bnQsIGFzIGEgZGVjaW1hbCBzdHJpbmcuICovXG4gICAgICB3aXRoZHJhd01pbj86IHN0cmluZyB8IG51bGw7XG4gICAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgZW50cnkgaW4gW2BCeWJpdENvaW5JbmZvUmVzcG9uc2U6OnJvd3NgXS4gKi9cbiAgICBCeWJpdENvaW5JbmZvRW50cnk6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gUGVyLWNoYWluIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgY29pbi4gKi9cbiAgICAgIGNoYWlucz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRDb2luSW5mb0NoYWluXCJdW107XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIENvaW4gc3ltYm9sLCB1cHBlcmNhc2UgKGUuZy4gYFVTRFRgKS4gKi9cbiAgICAgIGNvaW46IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRnVsbCBjb2luIG5hbWUgKGUuZy4gYFRldGhlcmApLiAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSBvZiBgR0VUIC92NS9hc3NldC9jb2luL3F1ZXJ5LWluZm9gLiAqL1xuICAgIEJ5Yml0Q29pbkluZm9SZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQZXItY29pbiBpbmZvIGVudHJpZXMuICovXG4gICAgICByb3dzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0Q29pbkluZm9FbnRyeVwiXVtdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgZW50cnkgaW4gW2BCeWJpdFF1ZXJ5RGVwb3NpdEFkZHJlc3NSZXNwb25zZTo6Y2hhaW5zYF0uICovXG4gICAgQnliaXREZXBvc2l0Q2hhaW46IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGVwb3NpdCBhZGRyZXNzIG9uIHRoaXMgY2hhaW4uICovXG4gICAgICBhZGRyZXNzRGVwb3NpdDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTaW5nbGUtZGVwb3NpdCBjYXAgZm9yIHRoaXMgY29pbiBvbiB0aGlzIGNoYWluOyBgXCItMVwiYCBtZWFucyBubyBsaW1pdC4gKi9cbiAgICAgIGJhdGNoUmVsZWFzZUxpbWl0Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU2hvcnQgY2hhaW4gY29kZSAoZS5nLiBgRVRIYCwgYFRSWGApLiAqL1xuICAgICAgY2hhaW46IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSHVtYW4tcmVhZGFibGUgY2hhaW4gbmFtZSAoZS5nLiBgRXRoZXJldW0gKEVSQzIwKWApLiAqL1xuICAgICAgY2hhaW5UeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRva2VuIGNvbnRyYWN0IGFkZHJlc3Mgb24gdGhpcyBjaGFpbi4gQnliaXQgb25seSByZXR1cm5zIHRoZSBsYXN0IDZcbiAgICAgICAqIGNoYXJhY3RlcnM7IGVtcHR5IGZvciBuYXRpdmUgY29pbnMuXG4gICAgICAgKi9cbiAgICAgIGNvbnRyYWN0QWRkcmVzcz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBNZW1vIC8gdGFnIHJlcXVpcmVkIGZvciBjaGFpbnMgdGhhdCB1c2Ugb25lIChlLmcuIFhSUCwgRU9TKS4gRW1wdHkgZm9yXG4gICAgICAgKiBjaGFpbnMgdGhhdCBkb24ndC5cbiAgICAgICAqL1xuICAgICAgdGFnRGVwb3NpdD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSBlbnRyeSBpbiBbYEJ5Yml0RGVwb3NpdEhpc3RvcnlSZXNwb25zZTo6cm93c2BdLiAqL1xuICAgIEJ5Yml0RGVwb3NpdEVudHJ5OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERlcG9zaXQgYW1vdW50IGFzIGEgZGVjaW1hbCBzdHJpbmcuICovXG4gICAgICBhbW91bnQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU2hvcnQgY2hhaW4gY29kZSAoZS5nLiBgRVRIYCwgYFRSWGApLiAqL1xuICAgICAgY2hhaW46IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29pbiBzeW1ib2wsIHVwcGVyY2FzZSAoZS5nLiBgVVNEVGApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgY29uZmlybWF0aW9ucyByZWNlaXZlZCBzbyBmYXIuICovXG4gICAgICBjb25maXJtYXRpb25zPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGVwb3NpdCBmZWUgY2hhcmdlZCwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGRlcG9zaXRGZWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRGVwb3NpdCBzdGF0ZSAoZS5nLiBgM2AgPSBkZXBvc2l0IHN1Y2Nlc3MpLiBTZWUgdGhlIEJ5Yml0IGRvY3MuXG4gICAgICAgKi9cbiAgICAgIHN0YXR1cz86IG51bWJlciB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRpbWVzdGFtcCB0aGUgZGVwb3NpdCBzdWNjZWVkZWQsIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaCAoYXMgYSBzdHJpbmcpLiAqL1xuICAgICAgc3VjY2Vzc0F0Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gTWVtbyAvIHRhZyBmb3IgY2hhaW5zIHRoYXQgdXNlIG9uZSAoZS5nLiBYUlAsIEVPUykuICovXG4gICAgICB0YWc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiBkZXBvc2l0IGFkZHJlc3MuICovXG4gICAgICB0b0FkZHJlc3M/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPbi1jaGFpbiB0cmFuc2FjdGlvbiBoYXNoLiAqL1xuICAgICAgdHhJRD86IHN0cmluZyB8IG51bGw7XG4gICAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCeWJpdCBSUEMgdmFyaWFudHMgd2hvc2UgcGF5bG9hZCBzY2hlbWEgaXNcbiAgICAgKiBkZXJpdmVkIGZyb20gYSBgKlJlcXVlc3RgIHN0cnVjdC4gKGBCeWJpdFF1ZXJ5VXNlclBhcmFtc2AgYW5kXG4gICAgICogYEJ5Yml0UXVlcnlTdWJNZW1iZXJzUGFyYW1zYCBoYXZlIG5vIHBlci12YXJpYW50IHBheWxvYWQgYW5kIGFyZSBkZWZpbmVkXG4gICAgICogZGlyZWN0bHkgYmVsb3cuKVxuICAgICAqL1xuICAgIEJ5Yml0RGVwb3NpdEhpc3RvcnlQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREZXBvc2l0SGlzdG9yeVJlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0RHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogU3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcy4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIGBHRVQgL3Y1L2Fzc2V0L2RlcG9zaXQvcXVlcnktcmVjb3JkYC5cbiAgICAgKlxuICAgICAqIEJ5IGRlZmF1bHQsIHF1ZXJpZXMgcmVjb3JkcyBmcm9tIHRoZSBsYXN0IDMwIGRheXM7IG90aGVyd2lzZSwgYGVuZFRpbWVgIC0gYHN0YXJ0VGltZWAgbXVzdCBiZSBsZXNzIHRoYW4gMzAgZGF5cy5cbiAgICAgKi9cbiAgICBCeWJpdERlcG9zaXRIaXN0b3J5UmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgYnkgY29pbiBzeW1ib2wgKHVwcGVyY2FzZSkuICovXG4gICAgICBjb2luPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gUGFnaW5hdGlvbiBjdXJzb3IgKHRoZSBgbmV4dFBhZ2VDdXJzb3JgIGZyb20gYSBwcmlvciByZXNwb25zZSkuICovXG4gICAgICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gRW5kIHRpbWVzdGFtcCAobXMgc2luY2UgZXBvY2gpLlxuICAgICAgICovXG4gICAgICBlbmRUaW1lPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRmlsdGVyIGJ5IEJ5Yml0LWludGVybmFsIGRlcG9zaXQgaWQuICovXG4gICAgICBpZD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQYWdlIHNpemUsIGBbMSwgNTBdYC4gRGVmYXVsdHMgdG8gNTAuXG4gICAgICAgKi9cbiAgICAgIGxpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFN0YXJ0IHRpbWVzdGFtcCAobXMgc2luY2UgZXBvY2gpLiBUaGUgc3BhbiBiZXR3ZWVuIGBzdGFydF90aW1lYCBhbmRcbiAgICAgICAqIGBlbmRfdGltZWAgbXVzdCBub3QgZXhjZWVkIDMwIGRheXMuXG4gICAgICAgKi9cbiAgICAgIHN0YXJ0VGltZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgYnkgb24tY2hhaW4gdHJhbnNhY3Rpb24gaWQuIERhdGEgYmVmb3JlIDIwMjQtMDEtMDEgaXMgbm90XG4gICAgICAgKiBxdWVyeWFibGUgdmlhIHRoaXMgZmllbGQuXG4gICAgICAgKi9cbiAgICAgIHR4SUQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSBvZiBgR0VUIC92NS9hc3NldC9kZXBvc2l0L3F1ZXJ5LXJlY29yZGAuICovXG4gICAgQnliaXREZXBvc2l0SGlzdG9yeVJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcGFxdWUgY3Vyc29yIHRvIHBhc3MgYmFjayBhcyBgY3Vyc29yYCBvbiB0aGUgbmV4dCByZXF1ZXN0OyBhYnNlbnQgb25cbiAgICAgICAqIHRoZSBsYXN0IHBhZ2UuXG4gICAgICAgKi9cbiAgICAgIG5leHRQYWdlQ3Vyc29yPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGVwb3NpdCByZWNvcmRzIG1hdGNoaW5nIHRoZSBxdWVyeS4gKi9cbiAgICAgIHJvd3M6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREZXBvc2l0RW50cnlcIl1bXTtcbiAgICB9O1xuICAgIEJ5Yml0RHJ5UnVuQXJnczoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgQnliaXQgQVBJIG1ldGhvZCB0aGF0IHdvdWxkIGhhdmUgYmVlbiB1c2VkICovXG4gICAgICBtZXRob2Q6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlcXVlc3QgYm9keSAoZm9yIFBPU1QgZW5kcG9pbnRzKSBvciBxdWVyeSBzdHJpbmcgKGZvciBHRVQgZW5kcG9pbnRzKS4gKi9cbiAgICAgIHBheWxvYWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIEJ5Yml0IEFQSSB1cmwgdGhhdCB3b3VsZCBoYXZlIGJlZW4gY2FsbGVkICovXG4gICAgICB1cmw6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBcIkRyeSBydW5cIiBtb2RlcyBmb3IgQnliaXQgcmVxdWVzdHMuXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBCeWJpdERyeVJ1bk1vZGU6IFwiTk9fU0lHTlwiIHwgXCJOT19TVUJNSVRcIjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBlbnZlbG9wZSBmb3IgYWxsIEJ5Yml0IFJQQyB2YXJpYW50cyB3aG9zZSBwYXlsb2FkIHNjaGVtYSBpc1xuICAgICAqIGRlcml2ZWQgZnJvbSBhIGAqUmVxdWVzdGAgc3RydWN0LiAoYEJ5Yml0UXVlcnlVc2VyUGFyYW1zYCBhbmRcbiAgICAgKiBgQnliaXRRdWVyeVN1Yk1lbWJlcnNQYXJhbXNgIGhhdmUgbm8gcGVyLXZhcmlhbnQgcGF5bG9hZCBhbmQgYXJlIGRlZmluZWRcbiAgICAgKiBkaXJlY3RseSBiZWxvdy4pXG4gICAgICovXG4gICAgQnliaXRRdWVyeUNvaW5JbmZvUGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0UXVlcnlDb2luSW5mb1JlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0RHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogU3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcy4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgR0VUIC92NS9hc3NldC9jb2luL3F1ZXJ5LWluZm9gLiAqL1xuICAgIEJ5Yml0UXVlcnlDb2luSW5mb1JlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEZpbHRlciBieSBjb2luIHN5bWJvbCAodXBwZXJjYXNlLCBlLmcuIGBcIkJUQ1wiYCkuIEJ5Yml0IHJldHVybnMgaW5mbyBmb3JcbiAgICAgICAqIGFsbCBjb2lucyB3aGVuIG9taXR0ZWQuXG4gICAgICAgKi9cbiAgICAgIGNvaW4/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCeWJpdCBSUEMgdmFyaWFudHMgd2hvc2UgcGF5bG9hZCBzY2hlbWEgaXNcbiAgICAgKiBkZXJpdmVkIGZyb20gYSBgKlJlcXVlc3RgIHN0cnVjdC4gKGBCeWJpdFF1ZXJ5VXNlclBhcmFtc2AgYW5kXG4gICAgICogYEJ5Yml0UXVlcnlTdWJNZW1iZXJzUGFyYW1zYCBoYXZlIG5vIHBlci12YXJpYW50IHBheWxvYWQgYW5kIGFyZSBkZWZpbmVkXG4gICAgICogZGlyZWN0bHkgYmVsb3cuKVxuICAgICAqL1xuICAgIEJ5Yml0UXVlcnlDb2luc0JhbGFuY2VQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeUNvaW5zQmFsYW5jZVJlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0RHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogU3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcy4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgR0VUIC92NS9hc3NldC90cmFuc2Zlci9xdWVyeS1hY2NvdW50LWNvaW5zLWJhbGFuY2VgLiAqL1xuICAgIEJ5Yml0UXVlcnlDb2luc0JhbGFuY2VSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXYWxsZXQgdHlwZS4gQ29tbW9uIHZhbHVlczogYFwiRlVORFwiYCwgYFwiVU5JRklFRFwiYCwgYFwiQ09OVFJBQ1RcImAuIEJ5Yml0XG4gICAgICAgKiBleHBlY3RzIHRoaXMgdmVyYmF0aW07IHdlIGRvbid0IGNvbnN0cmFpbiBpdCBvbiBvdXIgc2lkZS5cbiAgICAgICAqL1xuICAgICAgYWNjb3VudFR5cGU6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGxpc3Qgb2YgY29pbiBzeW1ib2xzLCBjb21tYS1zZXBhcmF0ZWQgKGUuZy4gYFwiQlRDLFVTRFRcImApLlxuICAgICAgICogQnliaXQgcmV0dXJucyBiYWxhbmNlcyBmb3IgYWxsIGNvaW5zIHdoZW4gb21pdHRlZC5cbiAgICAgICAqL1xuICAgICAgY29pbj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBzdWItYWNjb3VudCBVSUQuIFdoZW4gc3VwcGxpZWQsIHRoZSBtYXN0ZXIga2V5IHF1ZXJpZXMgdGhlXG4gICAgICAgKiBuYW1lZCBzdWItYWNjb3VudCdzIGJhbGFuY2UuXG4gICAgICAgKi9cbiAgICAgIG1lbWJlcklkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGZsYWc6IGBcIjBcImAgcXVlcnkgd2l0aG91dCBjb252ZXJzaW9uIHRvIFVTRCAoZGVmYXVsdCksXG4gICAgICAgKiBgXCIxXCJgIGluY2x1ZGUgVVNEIHZhbHVhdGlvbi4gQnliaXQgYWNjZXB0cyB0aGlzIGFzIGEgc3RyaW5nLlxuICAgICAgICovXG4gICAgICB3aXRoQm9udXM/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSBvZiBgR0VUIC92NS9hc3NldC90cmFuc2Zlci9xdWVyeS1hY2NvdW50LWNvaW5zLWJhbGFuY2VgLiAqL1xuICAgIEJ5Yml0UXVlcnlDb2luc0JhbGFuY2VSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBY2NvdW50IHR5cGUgdGhlIGJhbGFuY2VzIGJlbG9uZyB0byAoZS5nLiBgVU5JRklFRGAsIGBGVU5EYCwgYENPTlRSQUNUYCkuICovXG4gICAgICBhY2NvdW50VHlwZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQZXItY29pbiBiYWxhbmNlcy4gKi9cbiAgICAgIGJhbGFuY2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRDb2luQmFsYW5jZVwiXVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVSUQgb2YgdGhlIChzdWItKWFjY291bnQgd2hvc2UgYmFsYW5jZSBpcyBiZWluZyByZXBvcnRlZC4gKi9cbiAgICAgIG1lbWJlcklkPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQnliaXQgUlBDIHZhcmlhbnRzIHdob3NlIHBheWxvYWQgc2NoZW1hIGlzXG4gICAgICogZGVyaXZlZCBmcm9tIGEgYCpSZXF1ZXN0YCBzdHJ1Y3QuIChgQnliaXRRdWVyeVVzZXJQYXJhbXNgIGFuZFxuICAgICAqIGBCeWJpdFF1ZXJ5U3ViTWVtYmVyc1BhcmFtc2AgaGF2ZSBubyBwZXItdmFyaWFudCBwYXlsb2FkIGFuZCBhcmUgZGVmaW5lZFxuICAgICAqIGRpcmVjdGx5IGJlbG93LilcbiAgICAgKi9cbiAgICBCeWJpdFF1ZXJ5RGVwb3NpdEFkZHJlc3NQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeURlcG9zaXRBZGRyZXNzUmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleUlkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgXCJyZWNlaXZlIHdpbmRvd1wiLCBpLmUuLCBmb3IgaG93IGxvbmcgdGhlIHJlcXVlc3Qgc3RheXMgdmFsaWQuXG4gICAgICAgKiBTcGVjaWZpZWQgaW4gbWlsbGlzZWNvbmRzLiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAxMDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIGBHRVQgL3Y1L2Fzc2V0L2RlcG9zaXQvcXVlcnktYWRkcmVzc2AuICovXG4gICAgQnliaXRRdWVyeURlcG9zaXRBZGRyZXNzUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbmV0d29yayBpZGVudGlmaWVyIChlLmcuIGBcIkVUSFwiYCwgYFwiVFJYXCJgKS4gV2hlbiBvbWl0dGVkLFxuICAgICAgICogQnliaXQgcmV0dXJucyB0aGUgZGVwb3NpdCBhZGRyZXNzIG9uIGV2ZXJ5IHN1cHBvcnRlZCBjaGFpbi5cbiAgICAgICAqL1xuICAgICAgY2hhaW5UeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29pbiBzeW1ib2wgKGUuZy4gYFwiQlRDXCJgLCBgXCJVU0RUXCJgKS4gKi9cbiAgICAgIGNvaW46IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2Ugb2YgYEdFVCAvdjUvYXNzZXQvZGVwb3NpdC9xdWVyeS1hZGRyZXNzYC4gKi9cbiAgICBCeWJpdFF1ZXJ5RGVwb3NpdEFkZHJlc3NSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgZGVwb3NpdCBhZGRyZXNzIHBlciBzdXBwb3J0ZWQgY2hhaW4uICovXG4gICAgICBjaGFpbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREZXBvc2l0Q2hhaW5cIl1bXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29pbiBzeW1ib2wgdGhlIGRlcG9zaXQgYWRkcmVzc2VzIGFyZSBmb3IgKGUuZy4gYFVTRFRgKS4gKi9cbiAgICAgIGNvaW46IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQnliaXQgUlBDIHZhcmlhbnRzIHdob3NlIHBheWxvYWQgc2NoZW1hIGlzXG4gICAgICogZGVyaXZlZCBmcm9tIGEgYCpSZXF1ZXN0YCBzdHJ1Y3QuIChgQnliaXRRdWVyeVVzZXJQYXJhbXNgIGFuZFxuICAgICAqIGBCeWJpdFF1ZXJ5U3ViTWVtYmVyc1BhcmFtc2AgaGF2ZSBubyBwZXItdmFyaWFudCBwYXlsb2FkIGFuZCBhcmUgZGVmaW5lZFxuICAgICAqIGRpcmVjdGx5IGJlbG93LilcbiAgICAgKi9cbiAgICBCeWJpdFF1ZXJ5U3ViRGVwb3NpdEFkZHJlc3NQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeVN1YkRlcG9zaXRBZGRyZXNzUmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleUlkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgXCJyZWNlaXZlIHdpbmRvd1wiLCBpLmUuLCBmb3IgaG93IGxvbmcgdGhlIHJlcXVlc3Qgc3RheXMgdmFsaWQuXG4gICAgICAgKiBTcGVjaWZpZWQgaW4gbWlsbGlzZWNvbmRzLiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAxMDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIGBHRVQgL3Y1L2Fzc2V0L2RlcG9zaXQvcXVlcnktc3ViLW1lbWJlci1hZGRyZXNzYC4gKi9cbiAgICBCeWJpdFF1ZXJ5U3ViRGVwb3NpdEFkZHJlc3NSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTaG9ydCBjaGFpbiBjb2RlLCBhcyByZXR1cm5lZCBpbiB0aGUgYGNoYWluYCBmaWVsZCBvZlxuICAgICAgICogW2BCeWJpdFJwYzo6UXVlcnlDb2luSW5mb2BdIChlLmcuIGBcIkVUSFwiYCwgYFwiVFJYXCJgKS5cbiAgICAgICAqL1xuICAgICAgY2hhaW5UeXBlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIENvaW4gc3ltYm9sLCB1cHBlcmNhc2Ugb25seSAoZS5nLiBgXCJVU0RUXCJgKS4gKi9cbiAgICAgIGNvaW46IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVUlEIG9mIHRoZSBzdWItYWNjb3VudCB3aG9zZSBkZXBvc2l0IGFkZHJlc3MgdG8gZmV0Y2guICovXG4gICAgICBzdWJNZW1iZXJJZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIG9mIGBHRVQgL3Y1L2Fzc2V0L2RlcG9zaXQvcXVlcnktc3ViLW1lbWJlci1hZGRyZXNzYC5cbiAgICAgKlxuICAgICAqIE5PVEU6IHVubGlrZSB0aGUgbWFzdGVyLWFjY291bnQgYHF1ZXJ5LWFkZHJlc3NgIGVuZHBvaW50IChtb2RlbGxlZCBieVxuICAgICAqIFtgQnliaXRRdWVyeURlcG9zaXRBZGRyZXNzUmVzcG9uc2VgXSksIEJ5Yml0IHJldHVybnMgYGNoYWluc2AgaGVyZSBhcyBhXG4gICAgICogc2luZ2xlIG9iamVjdCByYXRoZXIgdGhhbiBhbiBhcnJheSDigJQgdGhlIHJlcXVlc3QgcGlucyBvbmUgYGNoYWluVHlwZWAsIHNvXG4gICAgICogdGhlcmUgaXMgb25seSBldmVyIG9uZSBjaGFpbiB0byByZXBvcnQuXG4gICAgICovXG4gICAgQnliaXRRdWVyeVN1YkRlcG9zaXRBZGRyZXNzUmVzcG9uc2U6IHtcbiAgICAgIGNoYWluczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdERlcG9zaXRDaGFpblwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29pbiBzeW1ib2wgdGhlIGRlcG9zaXQgYWRkcmVzcyBpcyBmb3IgKGUuZy4gYFVTRFRgKS4gKi9cbiAgICAgIGNvaW46IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBbYEJ5Yml0UnBjOjpRdWVyeVN1Yk1lbWJlcnNgXS5cbiAgICAgKlxuICAgICAqIEJ5Yml0IGVuZHBvaW50OiBgR0VUIC92NS91c2VyL3F1ZXJ5LXN1Yi1tZW1iZXJzYC4gVGFrZXMgbm8gaW5wdXRzIGJleW9uZFxuICAgICAqIHRoZSBjb21tb24gZW52ZWxvcGUuXG4gICAgICovXG4gICAgQnliaXRRdWVyeVN1Yk1lbWJlcnNQYXJhbXM6IHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleUlkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcmVjZWl2ZSB3aW5kb3cgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0cyB0byAxMDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIG9mIGBHRVQgL3Y1L3VzZXIvcXVlcnktc3ViLW1lbWJlcnNgLiAqL1xuICAgIEJ5Yml0UXVlcnlTdWJNZW1iZXJzUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHN1Yi1hY2NvdW50cyB1bmRlciB0aGUgY2FsbGluZyBtYXN0ZXIgYWNjb3VudC4gKi9cbiAgICAgIHN1Yk1lbWJlcnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRTdWJNZW1iZXJcIl1bXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBbYEJ5Yml0UnBjOjpRdWVyeVVzZXJgXS5cbiAgICAgKlxuICAgICAqIEJ5Yml0IGVuZHBvaW50OiBgR0VUIC92NS91c2VyL3F1ZXJ5LWFwaWAuIFRha2VzIG5vIGlucHV0cyBiZXlvbmQgdGhlIGNvbW1vblxuICAgICAqIGByZWN2V2luZG93YCAvIGB0aW1lc3RhbXBgIGVudmVsb3BlOyBkZWZpbmVkIGRpcmVjdGx5IChpbnN0ZWFkIG9mIHRocm91Z2hcbiAgICAgKiB0aGUgW2BCeWJpdFBhcmFtc2BdIGdlbmVyaWMgYWxpYXMpIHNvIHV0b2lwYSBlbWl0cyBhIG5vbi1lbXB0eSBzY2hlbWEuXG4gICAgICovXG4gICAgQnliaXRRdWVyeVVzZXJQYXJhbXM6IHtcbiAgICAgIGRyeVJ1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXREcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleUlkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcmVjZWl2ZSB3aW5kb3cgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0cyB0byAxMDAwMC5cbiAgICAgICAqL1xuICAgICAgcmVjdldpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIG9mIGBHRVQgL3Y1L3VzZXIvcXVlcnktYXBpYC4gKi9cbiAgICBCeWJpdFF1ZXJ5VXNlclJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEJ5Yml0IGFjY291bnQgS1lDIGxldmVsIChgXCIwXCJgID0gbm9uZSkuICovXG4gICAgICBreWNMZXZlbD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGZyZWUtdGV4dCBsYWJlbCBzZXQgb24gdGhlIEFQSSBrZXkuICovXG4gICAgICBub3RlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1hc3RlciBhY2NvdW50IFVJRCBmb3Igc3ViLWFjY291bnRzLCBgXCIwXCJgIGlmIHRoZSBjYWxsaW5nIGtleSBpcyBhXG4gICAgICAgKiBtYXN0ZXIgYWNjb3VudC5cbiAgICAgICAqL1xuICAgICAgcGFyZW50VWlkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFQSSBwZXJtaXNzaW9ucyBhc3NpZ25lZCB0byB0aGUga2V5LiAqL1xuICAgICAgcGVybWlzc2lvbnM/OiB1bmtub3duO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gQnliaXQtYXNzaWduZWQgYWNjb3VudCBVSUQgb2YgdGhlIEFQSSBrZXkuXG4gICAgICAgKi9cbiAgICAgIHVzZXJJRDogbnVtYmVyO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBWSVAgbGV2ZWwuICovXG4gICAgICB2aXBMZXZlbD86IHN0cmluZyB8IG51bGw7XG4gICAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCeWJpdCBSUEMgdmFyaWFudHMgd2hvc2UgcGF5bG9hZCBzY2hlbWEgaXNcbiAgICAgKiBkZXJpdmVkIGZyb20gYSBgKlJlcXVlc3RgIHN0cnVjdC4gKGBCeWJpdFF1ZXJ5VXNlclBhcmFtc2AgYW5kXG4gICAgICogYEJ5Yml0UXVlcnlTdWJNZW1iZXJzUGFyYW1zYCBoYXZlIG5vIHBlci12YXJpYW50IHBheWxvYWQgYW5kIGFyZSBkZWZpbmVkXG4gICAgICogZGlyZWN0bHkgYmVsb3cuKVxuICAgICAqL1xuICAgIEJ5Yml0UXVlcnlXaXRoZHJhd0FkZHJlc3NQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeVdpdGhkcmF3QWRkcmVzc1JlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0RHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogU3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcy4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgR0VUIC92NS9hc3NldC93aXRoZHJhdy9xdWVyeS1hZGRyZXNzYC4gKi9cbiAgICBCeWJpdFF1ZXJ5V2l0aGRyYXdBZGRyZXNzUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRmlsdGVyIGJ5IGFkZHJlc3MgY2F0ZWdvcnk6IGAwYCBvbi1jaGFpbiwgYDFgIGludGVybmFsIHRyYW5zZmVyLCBgMmBcbiAgICAgICAqIGJvdGguIEJ5Yml0IHJldHVybnMgZXZlcnkgY2F0ZWdvcnkgd2hlbiBvbWl0dGVkLlxuICAgICAgICovXG4gICAgICBhZGRyZXNzVHlwZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZpbHRlciBieSBzaG9ydCBjaGFpbiBjb2RlIChlLmcuIGBcIkVUSFwiYCwgYFwiVFJYXCJgKS4gKi9cbiAgICAgIGNoYWluPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEZpbHRlciBieSBjb2luIHN5bWJvbCAodXBwZXJjYXNlKS4gQnliaXQgYWxzbyBhY2NlcHRzIHRoZSBjb2luJ3NcbiAgICAgICAqIGBiYXNlQ29pbmAgaGVyZSwgd2hpY2ggbWF0Y2hlcyBhZGRyZXNzZXMgd2hpdGVsaXN0ZWQgZm9yIGV2ZXJ5IGNoYWluIG9mXG4gICAgICAgKiB0aGF0IGNvaW4uXG4gICAgICAgKi9cbiAgICAgIGNvaW4/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQYWdpbmF0aW9uIGN1cnNvciAodGhlIGBuZXh0UGFnZUN1cnNvcmAgZnJvbSBhIHByaW9yIHJlc3BvbnNlKS4gKi9cbiAgICAgIGN1cnNvcj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQYWdlIHNpemUsIGBbMSwgNTBdYC4gRGVmYXVsdHMgdG8gNTAuXG4gICAgICAgKi9cbiAgICAgIGxpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2Ugb2YgYEdFVCAvdjUvYXNzZXQvd2l0aGRyYXcvcXVlcnktYWRkcmVzc2AuICovXG4gICAgQnliaXRRdWVyeVdpdGhkcmF3QWRkcmVzc1Jlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcGFxdWUgY3Vyc29yIHRvIHBhc3MgYmFjayBhcyBgY3Vyc29yYCBvbiB0aGUgbmV4dCByZXF1ZXN0OyBhYnNlbnQgb25cbiAgICAgICAqIHRoZSBsYXN0IHBhZ2UuXG4gICAgICAgKi9cbiAgICAgIG5leHRQYWdlQ3Vyc29yPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hpdGVsaXN0ZWQgd2l0aGRyYXdhbCBhZGRyZXNzZXMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LiAqL1xuICAgICAgcm93czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFdpdGhkcmF3QWRkcmVzc0VudHJ5XCJdW107XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQnliaXQtZmFtaWx5IFJQQyBtZXRob2RzLiBFYWNoIHZhcmlhbnQgYXV0aGVudGljYXRlcyBhcyB0aGVcbiAgICAgKiBbYEtleVR5cGU6OkhtYWNTaGEyNTZCeWJpdGBdIGtleSBpbiBpdHMgYHBhcmFtcy5rZXlfaWRgICh3aGljaCBtdXN0IGNhcnJ5XG4gICAgICogW2BLZXlQcm9wZXJ0aWVzOjpCeWJpdEFwaWBdKS5cbiAgICAgKi9cbiAgICBCeWJpdFJwYzpcbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19ieWJpdFF1ZXJ5VXNlclwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFF1ZXJ5VXNlclBhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2J5Yml0UXVlcnlTdWJNZW1iZXJzXCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0UXVlcnlTdWJNZW1iZXJzUGFyYW1zXCJdO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtZXRob2Q6IFwiY3NfYnliaXRRdWVyeUNvaW5zQmFsYW5jZVwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFF1ZXJ5Q29pbnNCYWxhbmNlUGFyYW1zXCJdO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtZXRob2Q6IFwiY3NfYnliaXRRdWVyeURlcG9zaXRBZGRyZXNzXCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0UXVlcnlEZXBvc2l0QWRkcmVzc1BhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2J5Yml0VW5pdmVyc2FsVHJhbnNmZXJcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRVbml2ZXJzYWxUcmFuc2ZlclBhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2J5Yml0V2l0aGRyYXdcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRXaXRoZHJhd1BhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2J5Yml0V2l0aGRyYXdhbHNcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRXaXRoZHJhd2Fsc1BhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2J5Yml0UXVlcnlDb2luSW5mb1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFF1ZXJ5Q29pbkluZm9QYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19ieWJpdERlcG9zaXRIaXN0b3J5XCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0RGVwb3NpdEhpc3RvcnlQYXJhbXNcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19ieWJpdFVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVBhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2J5Yml0UXVlcnlXaXRoZHJhd0FkZHJlc3NcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeVdpdGhkcmF3QWRkcmVzc1BhcmFtc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2J5Yml0UXVlcnlTdWJEZXBvc2l0QWRkcmVzc1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFF1ZXJ5U3ViRGVwb3NpdEFkZHJlc3NQYXJhbXNcIl07XG4gICAgICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCBieSB0aGUgdHlwZWQgYGJ5Yml0X3NpZ25gIGVuZHBvaW50LiAqL1xuICAgIEJ5Yml0U2lnblJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEJ5Yml0LWJvdW5kIHBheWxvYWQgKFVSTC1lbmNvZGVkIHF1ZXJ5IGZvciBHRVQsIEpTT04gYm9keSBmb3JcbiAgICAgICAqIFBPU1QpLiBTdWJtaXR0ZWQgdmVyYmF0aW0gYnkgdGhlIHJwYy1hcGkgbGFtYmRhOyB0aGUgcGF5bG9hZCBieXRlcyBhcmVcbiAgICAgICAqIGFsc28gcGFydCBvZiB0aGUgc2lnbmluZyBpbnB1dC5cbiAgICAgICAqL1xuICAgICAgcGF5bG9hZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRWZmZWN0aXZlIHJlY2VpdmUgd2luZG93IGluIG1pbGxpc2Vjb25kcy5cbiAgICAgICAqL1xuICAgICAgcmVjdl93aW5kb3c6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIEhNQUMtU0hBMjU2IHNpZ25hdHVyZSBvZlxuICAgICAgICogYHRpbWVzdGFtcCB8fCBhcGlLZXkgfHwgcmVjdldpbmRvdyB8fCBwYXlsb2FkYC4gR29lcyBpbnRvIHRoZVxuICAgICAgICogYFgtQkFQSS1TSUdOYCBoZWFkZXIuXG4gICAgICAgKi9cbiAgICAgIHNpZ25hdHVyZV9oZXg6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFNpZ25pbmcgdGltZXN0YW1wIChtcyBzaW5jZSBlcG9jaCkuIFBpY2tlZCBieSB0aGUgc2lnbmVyLlxuICAgICAgICovXG4gICAgICB0aW1lc3RhbXBfbXM6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT25lIGVudHJ5IGluIFtgQnliaXRRdWVyeVN1Yk1lbWJlcnNSZXNwb25zZTo6c3ViX21lbWJlcnNgXS4gKi9cbiAgICBCeWJpdFN1Yk1lbWJlcjoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVHJhZGluZyBhY2NvdW50IGNvbmZpZ3VyYXRpb246IGAxYCBDbGFzc2ljLCBgM2AgVVRBMS4wLCBgNGAgVVRBMS4wIFBybyxcbiAgICAgICAqIGA1YCBVVEEyLjAsIGA2YCBVVEEyLjAgUHJvLlxuICAgICAgICovXG4gICAgICBhY2NvdW50TW9kZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTdWItYWNjb3VudCBjYXRlZ29yeTogYDFgIHN0YW5kYXJkLCBgNmAgY3VzdG9kaWFsLlxuICAgICAgICovXG4gICAgICBtZW1iZXJUeXBlPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRnJlZS10ZXh0IHJlbWFyayBhc3NvY2lhdGVkIHdpdGggdGhlIHN1Yi1hY2NvdW50LiAqL1xuICAgICAgcmVtYXJrPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFjY291bnQgc3RhdGU6IGAxYCBhY3RpdmUsIGAyYCBsb2dpbi1yZXN0cmljdGVkLCBgNGAgZnJvemVuLlxuICAgICAgICovXG4gICAgICBzdGF0dXM/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTdWItYWNjb3VudCBVSUQuICovXG4gICAgICB1aWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGlzcGxheSBuYW1lIG9mIHRoZSBzdWItYWNjb3VudC4gKi9cbiAgICAgIHVzZXJuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSBlbnRyeSBpbiBbYEJ5Yml0VW5pdmVyc2FsVHJhbnNmZXJIaXN0b3J5UmVzcG9uc2U6Omxpc3RgXS4gKi9cbiAgICBCeWJpdFRyYW5zZmVyRW50cnk6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVHJhbnNmZXIgYW1vdW50IGFzIGEgZGVjaW1hbCBzdHJpbmcuICovXG4gICAgICBhbW91bnQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29pbiBzeW1ib2wsIHVwcGVyY2FzZSAoZS5nLiBgVVNEVGApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTb3VyY2Ugd2FsbGV0IHR5cGUgKGUuZy4gYEZVTkRgLCBgVU5JRklFRGApLiAqL1xuICAgICAgZnJvbUFjY291bnRUeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU291cmNlIGFjY291bnQgVUlELiAqL1xuICAgICAgZnJvbU1lbWJlcklkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVHJhbnNmZXIgc3RhdGU6IGBTVUNDRVNTYCwgYFBFTkRJTkdgLCBvciBgRkFJTEVEYC4gKi9cbiAgICAgIHN0YXR1cz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIENyZWF0aW9uIHRpbWVzdGFtcCwgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIGVwb2NoIChhcyBhIHN0cmluZykuICovXG4gICAgICB0aW1lc3RhbXA/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiB3YWxsZXQgdHlwZS4gKi9cbiAgICAgIHRvQWNjb3VudFR5cGU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiBhY2NvdW50IFVJRC4gKi9cbiAgICAgIHRvTWVtYmVySWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVVUlEIG9mIHRoZSB0cmFuc2ZlciAodGhlIGNhbGxlci1zdXBwbGllZCBgdHJhbnNmZXJJZGApLiAqL1xuICAgICAgdHJhbnNmZXJJZDogc3RyaW5nO1xuICAgICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQnliaXQgUlBDIHZhcmlhbnRzIHdob3NlIHBheWxvYWQgc2NoZW1hIGlzXG4gICAgICogZGVyaXZlZCBmcm9tIGEgYCpSZXF1ZXN0YCBzdHJ1Y3QuIChgQnliaXRRdWVyeVVzZXJQYXJhbXNgIGFuZFxuICAgICAqIGBCeWJpdFF1ZXJ5U3ViTWVtYmVyc1BhcmFtc2AgaGF2ZSBubyBwZXItdmFyaWFudCBwYXlsb2FkIGFuZCBhcmUgZGVmaW5lZFxuICAgICAqIGRpcmVjdGx5IGJlbG93LilcbiAgICAgKi9cbiAgICBCeWJpdFVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVJlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0RHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogU3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcy4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIGBHRVQgL3Y1L2Fzc2V0L3RyYW5zZmVyL3F1ZXJ5LXVuaXZlcnNhbC10cmFuc2Zlci1saXN0YC5cbiAgICAgKlxuICAgICAqIElmIGBzdGFydFRpbWVgIGFuZCBgZW5kVGltZWAgYXJlIG5vdCBwcm92aWRlZCwgdGhlIEFQSSByZXR1cm5zIGRhdGEgZnJvbSB0aGUgcGFzdCA3IGRheXMgYnkgZGVmYXVsdC5cbiAgICAgKiBJZiBvbmx5IGBzdGFydFRpbWVgIGlzIHByb3ZpZGVkLCB0aGUgQVBJIHJldHVybnMgcmVjb3JkcyBmcm9tIGBzdGFydFRpbWVgIHRvIGBzdGFydFRpbWVgICsgNyBkYXlzLlxuICAgICAqIElmIG9ubHkgYGVuZFRpbWVgIGlzIHByb3ZpZGVkLCB0aGUgQVBJIHJldHVybnMgcmVjb3JkcyBmcm9tIGBlbmRUaW1lYCAtIDcgZGF5cyB0byBgZW5kVGltZWAuXG4gICAgICogSWYgYm90aCBhcmUgcHJvdmlkZWQsIHRoZSBtYXhpbXVtIGFsbG93ZWQgcmFuZ2UgaXMgNyBkYXlzIChgZW5kVGltZWAgLSBgc3RhcnRUaW1lYCDiiaQgNyBkYXlzKS5cbiAgICAgKi9cbiAgICBCeWJpdFVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRmlsdGVyIGJ5IGNvaW4gc3ltYm9sICh1cHBlcmNhc2UpLiAqL1xuICAgICAgY29pbj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFBhZ2luYXRpb24gY3Vyc29yICh0aGUgYG5leHRQYWdlQ3Vyc29yYCBmcm9tIGEgcHJpb3IgcmVzcG9uc2UpLiAqL1xuICAgICAgY3Vyc29yPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIEVuZCB0aW1lc3RhbXAgKG1zIHNpbmNlIGVwb2NoKS5cbiAgICAgICAqL1xuICAgICAgZW5kVGltZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQYWdlIHNpemUsIGBbMSwgNTBdYC4gRGVmYXVsdHMgdG8gMjAuXG4gICAgICAgKi9cbiAgICAgIGxpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFN0YXJ0IHRpbWVzdGFtcCAobXMgc2luY2UgZXBvY2gpLiBUaGUgc3BhbiBiZXR3ZWVuIGBzdGFydF90aW1lYCBhbmRcbiAgICAgICAqIGBlbmRfdGltZWAgbXVzdCBub3QgZXhjZWVkIDcgZGF5cy5cbiAgICAgICAqL1xuICAgICAgc3RhcnRUaW1lPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRmlsdGVyIGJ5IHRyYW5zZmVyIHN0YXR1czogYFwiU1VDQ0VTU1wiYCwgYFwiRkFJTEVEXCJgLCBvciBgXCJQRU5ESU5HXCJgLiAqL1xuICAgICAgc3RhdHVzPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEZpbHRlciBieSB0aGUgdHJhbnNmZXIncyBVVUlEIChhcyBzdXBwbGllZCB0b1xuICAgICAgICogW2BCeWJpdFJwYzo6VW5pdmVyc2FsVHJhbnNmZXJgXSkuXG4gICAgICAgKi9cbiAgICAgIHRyYW5zZmVySWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSBvZiBgR0VUIC92NS9hc3NldC90cmFuc2Zlci9xdWVyeS11bml2ZXJzYWwtdHJhbnNmZXItbGlzdGAuICovXG4gICAgQnliaXRVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlSZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVW5pdmVyc2FsLXRyYW5zZmVyIHJlY29yZHMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LiAoQnliaXQgbmFtZXMgdGhpcyBmaWVsZFxuICAgICAgICogYGxpc3RgLCB1bmxpa2UgdGhlIGByb3dzYCB1c2VkIGJ5IG90aGVyIGhpc3RvcnkgZW5kcG9pbnRzLilcbiAgICAgICAqL1xuICAgICAgbGlzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFRyYW5zZmVyRW50cnlcIl1bXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wYXF1ZSBjdXJzb3IgdG8gcGFzcyBiYWNrIGFzIGBjdXJzb3JgIG9uIHRoZSBuZXh0IHJlcXVlc3Q7IGFic2VudCBvblxuICAgICAgICogdGhlIGxhc3QgcGFnZS5cbiAgICAgICAqL1xuICAgICAgbmV4dFBhZ2VDdXJzb3I/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBCeWJpdCBSUEMgdmFyaWFudHMgd2hvc2UgcGF5bG9hZCBzY2hlbWEgaXNcbiAgICAgKiBkZXJpdmVkIGZyb20gYSBgKlJlcXVlc3RgIHN0cnVjdC4gKGBCeWJpdFF1ZXJ5VXNlclBhcmFtc2AgYW5kXG4gICAgICogYEJ5Yml0UXVlcnlTdWJNZW1iZXJzUGFyYW1zYCBoYXZlIG5vIHBlci12YXJpYW50IHBheWxvYWQgYW5kIGFyZSBkZWZpbmVkXG4gICAgICogZGlyZWN0bHkgYmVsb3cuKVxuICAgICAqL1xuICAgIEJ5Yml0VW5pdmVyc2FsVHJhbnNmZXJQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRVbml2ZXJzYWxUcmFuc2ZlclJlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlSdW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0RHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlJZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIFwicmVjZWl2ZSB3aW5kb3dcIiwgaS5lLiwgZm9yIGhvdyBsb25nIHRoZSByZXF1ZXN0IHN0YXlzIHZhbGlkLlxuICAgICAgICogU3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcy4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gMTAwMDAuXG4gICAgICAgKi9cbiAgICAgIHJlY3ZXaW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgUE9TVCAvdjUvYXNzZXQvdHJhbnNmZXIvdW5pdmVyc2FsLXRyYW5zZmVyYC4gKi9cbiAgICBCeWJpdFVuaXZlcnNhbFRyYW5zZmVyUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbW91bnQgYXMgYSBkZWNpbWFsIHN0cmluZyAoZS5nLiBgXCIxLjVcImApLiBTZW50IHZlcmJhdGltLiAqL1xuICAgICAgYW1vdW50OiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIENvaW4gc3ltYm9sIChlLmcuIGBcIlVTRFRcImApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gU291cmNlIHdhbGxldCB0eXBlLiBEZWZhdWx0cyB0byBgXCJGVU5EXCJgIGlmIG9taXR0ZWQ7IHRoZSBzaWduZXJcbiAgICAgICAqIHN1YnN0aXR1dGVzIHRoZSBkZWZhdWx0IGJlZm9yZSBzaWduaW5nIHNvIHRoZSBzaWduZWQgYW5kIHN1Ym1pdHRlZFxuICAgICAgICogcGF5bG9hZHMgbWF0Y2guXG4gICAgICAgKi9cbiAgICAgIGZyb21BY2NvdW50VHlwZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTb3VyY2UgYWNjb3VudCBVSUQuIEZvciBcInNlbGZcIiwgdGhlIG1hbmFnZXIgc3Vic3RpdHV0ZXMgdGhlIGNhbGxlcidzXG4gICAgICAgKiBvd24gVUlEIGJlZm9yZSB0aGlzIHN0cnVjdCByZWFjaGVzIHRoZSBzaWduZXIuXG4gICAgICAgKi9cbiAgICAgIGZyb21NZW1iZXJJZDogbnVtYmVyO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiB3YWxsZXQgdHlwZS4gRGVmYXVsdHMgdG8gYFwiRlVORFwiYCBpZiBvbWl0dGVkLiAqL1xuICAgICAgdG9BY2NvdW50VHlwZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiBhY2NvdW50IFVJRC5cbiAgICAgICAqL1xuICAgICAgdG9NZW1iZXJJZDogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ2xpZW50LXN1cHBsaWVkIHRyYW5zZmVyIGlkIChVVUlEKS4gQnliaXQgZWNob2VzIGl0IGJhY2sgYXMgdGhlXG4gICAgICAgKiBjYW5vbmljYWwgcmVmZXJlbmNlIGZvciB0aGlzIHRyYW5zZmVyLlxuICAgICAgICovXG4gICAgICB0cmFuc2ZlcklkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIG9mIGBQT1NUIC92NS9hc3NldC90cmFuc2Zlci91bml2ZXJzYWwtdHJhbnNmZXJgLiAqL1xuICAgIEJ5Yml0VW5pdmVyc2FsVHJhbnNmZXJSZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVHJhbnNmZXIgc3RhdGU6IG9uZSBvZiBgU1VDQ0VTU2AsIGBQRU5ESU5HYCwgYEZBSUxFRGAsIG9yXG4gICAgICAgKiBgU1RBVFVTX1VOS05PV05gLlxuICAgICAgICovXG4gICAgICBzdGF0dXM/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVVVJRCBCeWJpdCBhc3NpZ25lZCB0byB0aGUgdHJhbnNmZXI7IHRoZSBjYWxsZXItc3VwcGxpZWQgYHRyYW5zZmVySWRgXG4gICAgICAgKiBlY2hvZWQgYmFjay5cbiAgICAgICAqL1xuICAgICAgdHJhbnNmZXJJZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgZW50cnkgaW4gW2BCeWJpdFF1ZXJ5V2l0aGRyYXdBZGRyZXNzUmVzcG9uc2U6OnJvd3NgXS4gKi9cbiAgICBCeWJpdFdpdGhkcmF3QWRkcmVzc0VudHJ5OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB3aGl0ZWxpc3RlZCBkZXN0aW5hdGlvbiBhZGRyZXNzLiAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWRkcmVzcyBjYXRlZ29yeTogYDBgIG9uLWNoYWluLCBgMWAgaW50ZXJuYWwgdHJhbnNmZXIsIGAyYCBib3RoLlxuICAgICAgICovXG4gICAgICBhZGRyZXNzVHlwZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFNob3J0IGNoYWluIGNvZGUgKGUuZy4gYEVUSGAsIGBUUlhgKS4gKi9cbiAgICAgIGNoYWluOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIENvaW4gc3ltYm9sLCB1cHBlcmNhc2UgKGUuZy4gYFVTRFRgKS4gKi9cbiAgICAgIGNvaW46IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ3JlYXRpb24gdGltZXN0YW1wLCBpbiBtaWxsaXNlY29uZHMgc2luY2UgZXBvY2ggKGFzIGEgc3RyaW5nKS4gKi9cbiAgICAgIGNyZWF0ZWRBdD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFVzZXItc3VwcGxpZWQgbGFiZWwgZm9yIHRoaXMgYWRkcmVzcy1ib29rIGVudHJ5LiAqL1xuICAgICAgcmVtYXJrPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIEVudHJ5IHN0YXRlOiBgMGAgbm9ybWFsLCBgMWAgbmV3bHkgYWRkZWQgKEJ5Yml0IGJsb2NrcyB3aXRoZHJhd2FscyB0b1xuICAgICAgICogaXQgZm9yIDI0IGhvdXJzKS5cbiAgICAgICAqL1xuICAgICAgc3RhdHVzPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1lbW8gLyB0YWcgZm9yIGNoYWlucyB0aGF0IHVzZSBvbmUgKGUuZy4gWFJQLCBFT1MpLiBFbXB0eSBmb3IgY2hhaW5zXG4gICAgICAgKiB0aGF0IGRvbid0LlxuICAgICAgICovXG4gICAgICB0YWc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgYWRkcmVzcyBoYXMgYmVlbiB2ZXJpZmllZDogYDBgIHVudmVyaWZpZWQsIGAxYCB2ZXJpZmllZC5cbiAgICAgICAqL1xuICAgICAgdmVyaWZpZWQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT25lIGVudHJ5IGluIFtgQnliaXRXaXRoZHJhd2Fsc1Jlc3BvbnNlOjpyb3dzYF0uICovXG4gICAgQnliaXRXaXRoZHJhd0VudHJ5OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdpdGhkcmF3YWwgYW1vdW50IGFzIGEgZGVjaW1hbCBzdHJpbmcuICovXG4gICAgICBhbW91bnQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU2hvcnQgY2hhaW4gY29kZSAoZS5nLiBgRVRIYCwgYFRSWGApLiAqL1xuICAgICAgY2hhaW46IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29pbiBzeW1ib2wsIHVwcGVyY2FzZSAoZS5nLiBgVVNEVGApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDcmVhdGlvbiB0aW1lc3RhbXAsIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaCAoYXMgYSBzdHJpbmcpLiAqL1xuICAgICAgY3JlYXRlVGltZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2l0aGRyYXdhbCBzdGF0ZSwgZS5nLiBgc3VjY2Vzc2AsIGBwZW5kaW5nYCwgYGZhaWxlZGAsIGBjYW5jZWxsZWRgLiBTZWVcbiAgICAgICAqIHRoZSBCeWJpdCBkb2NzIGZvciB0aGUgZnVsbCBzZXQsIHdoaWNoIGRlcGVuZHMgb24gYHdpdGhkcmF3X3R5cGVgLlxuICAgICAgICovXG4gICAgICBzdGF0dXM6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gTWVtbyAvIHRhZyBmb3IgY2hhaW5zIHRoYXQgdXNlIG9uZSAoZS5nLiBYUlAsIEVPUykuICovXG4gICAgICB0YWc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbjogYW4gb24tY2hhaW4gYWRkcmVzcywgb3IgYSBCeWJpdCBVSUQgZm9yIGludGVybmFsIHRyYW5zZmVycy4gKi9cbiAgICAgIHRvQWRkcmVzczogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT24tY2hhaW4gdHJhbnNhY3Rpb24gaGFzaDsgZW1wdHkgZm9yIGZhaWxlZC9jYW5jZWxsZWQgd2l0aGRyYXdhbHMgYW5kXG4gICAgICAgKiBmb3IgaW4tZmxpZ2h0IG9uLWNoYWluIHdpdGhkcmF3YWxzIGJlZm9yZSBicm9hZGNhc3QuXG4gICAgICAgKi9cbiAgICAgIHR4SWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaW1lc3RhbXAgb2YgdGhlIG1vc3QgcmVjZW50IHN0YXR1cyBjaGFuZ2UsIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaC4gKi9cbiAgICAgIHVwZGF0ZVRpbWU6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gTmV0d29yayAvIHByb2Nlc3NpbmcgZmVlIGNoYXJnZWQgZm9yIHRoZSB3aXRoZHJhd2FsLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgd2l0aGRyYXdGZWU6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQnliaXQtYXNzaWduZWQgd2l0aGRyYXdhbCBpZC4gKi9cbiAgICAgIHdpdGhkcmF3SWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFdpdGhkcmF3YWwgY2xhc3NpZmljYXRpb246IGAwYCBvbi1jaGFpbiwgYDFgIG9mZi1jaGFpbiAoaW50ZXJuYWwpLlxuICAgICAgICovXG4gICAgICB3aXRoZHJhd1R5cGU/OiBudW1iZXIgfCBudWxsO1xuICAgICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQnliaXQgUlBDIHZhcmlhbnRzIHdob3NlIHBheWxvYWQgc2NoZW1hIGlzXG4gICAgICogZGVyaXZlZCBmcm9tIGEgYCpSZXF1ZXN0YCBzdHJ1Y3QuIChgQnliaXRRdWVyeVVzZXJQYXJhbXNgIGFuZFxuICAgICAqIGBCeWJpdFF1ZXJ5U3ViTWVtYmVyc1BhcmFtc2AgaGF2ZSBubyBwZXItdmFyaWFudCBwYXlsb2FkIGFuZCBhcmUgZGVmaW5lZFxuICAgICAqIGRpcmVjdGx5IGJlbG93LilcbiAgICAgKi9cbiAgICBCeWJpdFdpdGhkcmF3UGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0V2l0aGRyYXdSZXF1ZXN0XCJdICYge1xuICAgICAgZHJ5UnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdERyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIFNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMuIElmIG9taXR0ZWQsIGRlZmF1bHRzIHRvIDEwMDAwLlxuICAgICAgICovXG4gICAgICByZWN2V2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYFBPU1QgL3Y1L2Fzc2V0L3dpdGhkcmF3L2NyZWF0ZWAuIE1hc3Rlci1vbmx5LiAqL1xuICAgIEJ5Yml0V2l0aGRyYXdSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTb3VyY2Ugd2FsbGV0IChgXCJGVU5EXCJgIG9yIGBcIlNQT1RcImApLiBEZWZhdWx0cyB0byBCeWJpdCdzIGFjY291bnQtbGV2ZWxcbiAgICAgICAqIGRlZmF1bHQgd2hlbiBvbWl0dGVkLlxuICAgICAgICovXG4gICAgICBhY2NvdW50VHlwZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERlc3RpbmF0aW9uIGFkZHJlc3MuIE11c3QgYWxyZWFkeSBiZSBpbiBCeWJpdCdzIGFkZHJlc3MgYm9vay4gKi9cbiAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW1vdW50IGFzIGEgZGVjaW1hbCBzdHJpbmcuIFNlbnQgdmVyYmF0aW0uICovXG4gICAgICBhbW91bnQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gTmV0d29yayBpZGVudGlmaWVyIChlLmcuIGBcIkVUSFwiYCwgYFwiVFJYXCJgKS4gUmVxdWlyZWQgYnkgQnliaXQuICovXG4gICAgICBjaGFpbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDb2luIHN5bWJvbCAoZS5nLiBgXCJVU0RUXCJgLCBgXCJCVENcImApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRm9yY2UtY2hhaW4gZmxhZzogYDBgIChkZWZhdWx0KSwgYDFgLCBvciBgMmAuIFNlZSBCeWJpdCBkb2NzLlxuICAgICAgICovXG4gICAgICBmb3JjZUNoYWluPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ2xpZW50LXN1cHBsaWVkIHJlcXVlc3QgaWQgKFVVSUQpLiBVc2VkIGJ5IEJ5Yml0IGZvciBpZGVtcG90ZW5jeS4gKi9cbiAgICAgIHJlcXVlc3RJZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZW1vIC8gdGFnIChlLmcuIGZvciBYUlAsIFhMTSkuICovXG4gICAgICB0YWc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gU2VydmVyLXN1cHBsaWVkIHRpbWVzdGFtcCAobXMgc2luY2UgZXBvY2gpLiBTZXQgYnkgdGhlIHNpZ25lciBqdXN0IGJlZm9yZVxuICAgICAgICogc2lnbmluZzsgY2xpZW50cyBsZWF2ZSB0aGlzIGBOb25lYCAoYmVjYXVzZSB0aGUgc2VydmVyIHdpbGwgaWdub3JlIGl0IGFueXdheSkuXG4gICAgICAgKi9cbiAgICAgIHRpbWVzdGFtcD86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIG9mIGBQT1NUIC92NS9hc3NldC93aXRoZHJhdy9jcmVhdGVgLiAqL1xuICAgIEJ5Yml0V2l0aGRyYXdSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCeWJpdC1hc3NpZ25lZCB3aXRoZHJhd2FsIGlkLiAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQnliaXQgUlBDIHZhcmlhbnRzIHdob3NlIHBheWxvYWQgc2NoZW1hIGlzXG4gICAgICogZGVyaXZlZCBmcm9tIGEgYCpSZXF1ZXN0YCBzdHJ1Y3QuIChgQnliaXRRdWVyeVVzZXJQYXJhbXNgIGFuZFxuICAgICAqIGBCeWJpdFF1ZXJ5U3ViTWVtYmVyc1BhcmFtc2AgaGF2ZSBubyBwZXItdmFyaWFudCBwYXlsb2FkIGFuZCBhcmUgZGVmaW5lZFxuICAgICAqIGRpcmVjdGx5IGJlbG93LilcbiAgICAgKi9cbiAgICBCeWJpdFdpdGhkcmF3YWxzUGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0V2l0aGRyYXdhbHNSZXF1ZXN0XCJdICYge1xuICAgICAgZHJ5UnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdERyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5SWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBcInJlY2VpdmUgd2luZG93XCIsIGkuZS4sIGZvciBob3cgbG9uZyB0aGUgcmVxdWVzdCBzdGF5cyB2YWxpZC5cbiAgICAgICAqIFNwZWNpZmllZCBpbiBtaWxsaXNlY29uZHMuIElmIG9taXR0ZWQsIGRlZmF1bHRzIHRvIDEwMDAwLlxuICAgICAgICovXG4gICAgICByZWN2V2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYEdFVCAvdjUvYXNzZXQvd2l0aGRyYXcvcXVlcnktcmVjb3JkYC4gKi9cbiAgICBCeWJpdFdpdGhkcmF3YWxzUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgYnkgY29pbiBzeW1ib2wuICovXG4gICAgICBjb2luPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFBhZ2Ugc2l6ZS5cbiAgICAgICAqL1xuICAgICAgbGltaXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRmlsdGVyIGJ5IEJ5Yml0LWFzc2lnbmVkIHdpdGhkcmF3YWwgaWQgKHRoZSBgaWRgIHJldHVybmVkIGJ5XG4gICAgICAgKiBbYEJ5Yml0UnBjOjpXaXRoZHJhd2BdKS5cbiAgICAgICAqL1xuICAgICAgd2l0aGRyYXdJRD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIG9mIGBHRVQgL3Y1L2Fzc2V0L3dpdGhkcmF3L3F1ZXJ5LXJlY29yZGAuICovXG4gICAgQnliaXRXaXRoZHJhd2Fsc1Jlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcGFxdWUgY3Vyc29yIHRvIHBhc3MgYmFjayBhcyBgY3Vyc29yYCBvbiB0aGUgbmV4dCByZXF1ZXN0IHRvIGZldGNoXG4gICAgICAgKiB0aGUgbmV4dCBwYWdlOyBhYnNlbnQgb24gdGhlIGxhc3QgcGFnZS5cbiAgICAgICAqL1xuICAgICAgbmV4dFBhZ2VDdXJzb3I/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaXRoZHJhd2FsIHJlY29yZHMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LiAqL1xuICAgICAgcm93czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFdpdGhkcmF3RW50cnlcIl1bXTtcbiAgICB9O1xuICAgIENhbmNlbEludml0YXRpb25SZXF1ZXN0OiB7XG4gICAgICBlbWFpbDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbWFpbFwiXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgdGhlIFtgY3NfY2FuY2VsVHJhbnNhY3Rpb25gXShScGNNZXRob2Q6OkNhbmNlbFRyYW5zYWN0aW9uKSBtZXRob2QuICovXG4gICAgQ2FuY2VsVHJhbnNhY3Rpb25SZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB0cmFuc2FjdGlvbiBpZC4gKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU3VwcG9ydGVkIENhbnRvbiBlbnZpcm9ubWVudHMuXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBDYW50b25FbnZpcm9ubWVudDogXCJtYWlubmV0XCIgfCBcImRldm5ldFwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBDYW50b24gcGFydHkuICovXG4gICAgQ2FudG9uUGFydHlJbmZvOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIENhbnRvbiBwYXJ0eS5cbiAgICAgICAqIEBleGFtcGxlIEFsaWNlOjoxMjIwZjJmZTI5ODY2ZmQ2YTAwMDllY2M4YTY0Y2NkYzA5ZjE5NThiZDBmODAxMTY2YmFhZWU0NjlkMTI1MWIyZWI3MlxuICAgICAgICovXG4gICAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgICBjaGFpbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDYW50b25FbnZpcm9ubWVudFwiXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gRGVzY3JpYmVzIGhvdyB0byBkZXJpdmUgYSBXZWJBdXRobiBjaGFsbGVuZ2UgdmFsdWUuICovXG4gICAgQ2hhbGxlbmdlUGllY2VzOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGJhc2U2NHVybCBlbmNvZGluZyBvZiBVVEY4IEpTT04uIFRoZSBkYXRhIGluIHRoYXQgSlNPTiBpcyBlbmRwb2ludCBzcGVjaWZpYywgYW5kIGRlc2NyaWJlcyB3aGF0IHRoaXMgRklETyBjaGFsbGVuZ2Ugd2lsbCBiZSB1c2VkIGZvci5cbiAgICAgICAqXG4gICAgICAgKiBDbGllbnRzIGNhbiB1c2UgYHByZWltYWdlYCBhbG9uZyB3aXRoIGByYW5kb21fc2VlZGAgdG8gcmVjb25zdHJ1Y3QgdGhlIGNoYWxsZW5nZSBsaWtlIHNvOlxuICAgICAgICpcbiAgICAgICAqIGBjaGFsbGVuZ2UgPSBITUFDLVNIQTI1NihrZXk9cmFuZG9tX3NlZWQsIG1lc3NhZ2U9cHJlaW1hZ2UpYFxuICAgICAgICovXG4gICAgICBwcmVpbWFnZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIHJhbmRvbSBzZWVkIHRoYXQgcHJldmVudHMgcmVwbGF5IGF0dGFja3MgKi9cbiAgICAgIHJhbmRvbV9zZWVkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIENsaWVudCBpbmZvcm1hdGlvbiByZXByZXNlbnRpbmcgdGhlIG5hdHVyZSBvZiBmcm9udC1lbmQgaW4gW2BDbGllbnRTZXNzaW9uTWV0YWRhdGFgXSBhbmQgcmVmbGVjdGVkIGluIFtgU2Vzc2lvbk1ldGFkYXRhYF0uICovXG4gICAgQ2xpZW50UHJvZmlsZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWdlbnQvUHJvZHVjdCBuYW1lXG4gICAgICAgKiBAZXhhbXBsZSBNb3ppbGxhIEZpcmVmb3hcbiAgICAgICAqL1xuICAgICAgYWdlbnQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvZiB0aGUgZW5naW5lXG4gICAgICAgKiBAZXhhbXBsZSBHZWNrb1xuICAgICAgICovXG4gICAgICBlbmdpbmU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWdlbnQvcHJvZHVjdCB2ZXJzaW9uXG4gICAgICAgKiBAZXhhbXBsZSA0MS4yXG4gICAgICAgKi9cbiAgICAgIHZlcnNpb24/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNlc3Npb24gaW5mb3JtYXRpb24gc2VudCB0byB0aGUgY2xpZW50LlxuICAgICAqIFRoaXMgc3RydWN0IHdvcmtzIGluIHRhbmRlbSB3aXRoIGl0cyBzZXJ2ZXItc2lkZSBjb3VudGVycGFydCBbYFNlc3Npb25EYXRhYF0uXG4gICAgICovXG4gICAgQ2xpZW50U2Vzc2lvbkluZm86IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVG9rZW4gdG8gdXNlIGZvciBhdXRob3JpemF0aW9uLiAqL1xuICAgICAgYXV0aF90b2tlbjogc3RyaW5nO1xuICAgICAgYXV0aF90b2tlbl9leHA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIEVwb2NoIGF0IHdoaWNoIHRoZSB0b2tlbiB3YXMgbGFzdCByZWZyZXNoZWRcbiAgICAgICAqL1xuICAgICAgZXBvY2g6IG51bWJlcjtcbiAgICAgIGVwb2NoX3Rva2VuOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkIzMlwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVG9rZW4gdG8gdXNlIGZvciByZWZyZXNoaW5nIHRoZSBgKGF1dGgsIHJlZnJlc2gpYCB0b2tlbiBwYWlyICovXG4gICAgICByZWZyZXNoX3Rva2VuOiBzdHJpbmc7XG4gICAgICByZWZyZXNoX3Rva2VuX2V4cDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTZXNzaW9uIElEICovXG4gICAgICBzZXNzaW9uX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEF0dHJpYnV0ZXMgdGhhdCBhcmUgZXhwZWN0ZWQgdG8gYmUgcHJvdmlkZWQgYnkgdGhlIGNsaWVudCAqL1xuICAgIENsaWVudFNlc3Npb25NZXRhZGF0YToge1xuICAgICAgY2xpZW50PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDbGllbnRQcm9maWxlXCJdO1xuICAgICAgb3NfaW5mbz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3NJbmZvXCJdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgY29pbiBlbnRyeSBpbiBbYENvaW5JbmZvUmVzcG9uc2VgXS4gKi9cbiAgICBDb2luSW5mb0VudHJ5OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFzc2V0IHN5bWJvbCAoZS5nLiBgXCJCVENcImAsIGBcIlVTRFRcImApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIGRlcG9zaXRzIGFyZSBlbmFibGVkIG9uIGFueSBuZXR3b3JrIGZvciB0aGlzIGNvaW4uICovXG4gICAgICBkZXBvc2l0QWxsRW5hYmxlOiBib29sZWFuO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBdmFpbGFibGUgYmFsYW5jZSwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGZyZWU6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmFsYW5jZSBmcm96ZW4gYnkgQmluYW5jZSwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGZyZWV6ZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYWxhbmNlIGF2YWlsYWJsZSB0byBzdWJzY3JpYmUgdG8gYW4gSVBPLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgaXBvYWJsZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYWxhbmNlIHBlbmRpbmcgYW4gSVBPIHN1YnNjcmlwdGlvbiwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGlwb2luZzogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBgdHJ1ZWAgaWYgdGhlIGFzc2V0IHJlcHJlc2VudHMgYSBmaWF0IGN1cnJlbmN5LiAqL1xuICAgICAgaXNMZWdhbE1vbmV5OiBib29sZWFuO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYWxhbmNlIGxvY2tlZCBpbiBvcGVuIG9yZGVycywgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGxvY2tlZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIdW1hbi1yZWFkYWJsZSBuYW1lIChlLmcuIGBcIkJpdGNvaW5cImApLiAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgZW50cnkgcGVyIHN1cHBvcnRlZCBuZXR3b3JrIGZvciB0aGlzIGNvaW4uICovXG4gICAgICBuZXR3b3JrTGlzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb2luSW5mb05ldHdvcmtcIl1bXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmFsYW5jZSBoZWxkIGluIGxvbmctdGVybSBzdG9yYWdlLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgc3RvcmFnZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBgdHJ1ZWAgaWYgdGhlIGFzc2V0IGlzIGN1cnJlbnRseSB0cmFkYWJsZSBvbiBCaW5hbmNlLiAqL1xuICAgICAgdHJhZGluZzogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB3aXRoZHJhd2FscyBhcmUgZW5hYmxlZCBvbiBhbnkgbmV0d29yayBmb3IgdGhpcyBjb2luLiAqL1xuICAgICAgd2l0aGRyYXdBbGxFbmFibGU6IGJvb2xlYW47XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEJhbGFuY2UgY3VycmVudGx5IGJlaW5nIHdpdGhkcmF3biwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIHdpdGhkcmF3aW5nOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSBuZXR3b3JrIGVudHJ5IGluIFtgQ29pbkluZm9FbnRyeTo6bmV0d29ya19saXN0YF0uICovXG4gICAgQ29pbkluZm9OZXR3b3JrOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFJlZ2V4IGRlc2NyaWJpbmcgdGhlIGV4cGVjdGVkIGFkZHJlc3MgZm9ybWF0LiAqL1xuICAgICAgYWRkcmVzc1JlZ2V4Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gYHRydWVgIGlmIHRoZSBuZXR3b3JrIGlzIGN1cnJlbnRseSBidXN5LiAqL1xuICAgICAgYnVzeT86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBc3NldCBzeW1ib2wgb24gdGhpcyBuZXR3b3JrLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUd28tbGV0dGVyIGNvdW50cnkgY29kZSwgaWYgYXBwbGljYWJsZS4gKi9cbiAgICAgIGNvdW50cnk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBGcmVlLXRleHQgZGVwb3NpdCBkZXNjcmlwdGlvbi4gKi9cbiAgICAgIGRlcG9zaXREZXNjPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciBkZXBvc2l0cyBhcmUgZW5hYmxlZCBvbiB0aGlzIG5ldHdvcmsuICovXG4gICAgICBkZXBvc2l0RW5hYmxlOiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gRXN0aW1hdGVkIGFycml2YWwgdGltZSBpbiBtaW51dGVzLlxuICAgICAgICovXG4gICAgICBlc3RpbWF0ZWRBcnJpdmFsVGltZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBuZXR3b3JrIGZvciB0aGUgY29pbi4gKi9cbiAgICAgIGlzRGVmYXVsdDogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gUmVnZXggZGVzY3JpYmluZyB0aGUgZXhwZWN0ZWQgbWVtby90YWcgZm9ybWF0ICh3aGVuIGFwcGxpY2FibGUpLiAqL1xuICAgICAgbWVtb1JlZ2V4Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1pbmltdW0gbnVtYmVyIG9mIGNvbmZpcm1hdGlvbnMgYmVmb3JlIEJpbmFuY2UgY3JlZGl0cyBhIGRlcG9zaXQuXG4gICAgICAgKi9cbiAgICAgIG1pbkNvbmZpcm0/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIdW1hbi1yZWFkYWJsZSBuYW1lIChlLmcuIGBcIkJOQiBTbWFydCBDaGFpbiAoQkVQMjApXCJgKS4gKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gTmV0d29yayBpZGVudGlmaWVyIChlLmcuIGBcIkJTQ1wiYCwgYFwiRVRIXCJgKS4gKi9cbiAgICAgIG5ldHdvcms6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gYHRydWVgIGlmIHRoZSBkZXBvc2l0IGFkZHJlc3MgaXMgc2hhcmVkIGFjcm9zcyB1c2Vycy4gKi9cbiAgICAgIHNhbWVBZGRyZXNzPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZyZWUtdGV4dCBzcGVjaWFsIHRpcHMgZm9yIHVzZXJzLiAqL1xuICAgICAgc3BlY2lhbFRpcHM/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ29uZmlybWF0aW9ucyBhZnRlciB3aGljaCB0aGUgZGVwb3NpdCBpcyB1bmxvY2tlZCBmb3IgdHJhZGluZy5cbiAgICAgICAqL1xuICAgICAgdW5Mb2NrQ29uZmlybT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZyZWUtdGV4dCB3aXRoZHJhdyBkZXNjcmlwdGlvbi4gKi9cbiAgICAgIHdpdGhkcmF3RGVzYz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgd2l0aGRyYXdhbHMgYXJlIGVuYWJsZWQgb24gdGhpcyBuZXR3b3JrLiAqL1xuICAgICAgd2l0aGRyYXdFbmFibGU6IGJvb2xlYW47XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdpdGhkcmF3YWwgZmVlLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgd2l0aGRyYXdGZWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTdGVwIHNpemUgZm9yIHdpdGhkcmF3YWwgYW1vdW50cywgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIHdpdGhkcmF3SW50ZWdlck11bHRpcGxlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gTWluaW11bSBpbnRlcm5hbCB0cmFuc2ZlciBhbW91bnQgKi9cbiAgICAgIHdpdGhkcmF3SW50ZXJuYWxNaW4/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBNYXhpbXVtIHdpdGhkcmF3YWwgYW1vdW50LCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgd2l0aGRyYXdNYXg/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBNaW5pbXVtIHdpdGhkcmF3YWwgYW1vdW50LCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgd2l0aGRyYXdNaW4/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19iaW5hbmNlQ29pbkluZm9gLlxuICAgICAqXG4gICAgICogQmluYW5jZSByZXR1cm5zIGEgdG9wLWxldmVsIEpTT04gYXJyYXk7IHRoaXMgbmV3dHlwZSBwcmVzZXJ2ZXMgdGhhdCB3aXJlXG4gICAgICogZm9ybWF0IHdoaWxlIGdpdmluZyB0aGUgcmVzcG9uc2UgYSBuYW1lZCB0eXBlIGluIHRoZSBPcGVuQVBJIHNjaGVtYS5cbiAgICAgKi9cbiAgICBDb2luSW5mb1Jlc3BvbnNlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5JbmZvRW50cnlcIl1bXTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gT25lIGFjY291bnQgZW50cnkgaW4gW2BDb2luYmFzZUxpc3RBY2NvdW50c1Jlc3BvbnNlYF0uIENvaW5iYXNlJ3MgYWNjb3VudCBzY2hlbWEgaXNcbiAgICAgKiBmbGV4aWJsZTsgd2UgY2FwdHVyZSB0aGUgc3Vic2V0IG9mIGZpZWxkcyB0aGUgdHlwZWQgZW5kcG9pbnQgZXhwb3NlcyB0b2RheVxuICAgICAqIGFuZCBsZWF2ZSByb29tIHRvIGdyb3cuXG4gICAgICovXG4gICAgQ29pbmJhc2VBY2NvdW50OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIGFjY291bnQgaXMgY3VycmVudGx5IGFjdGl2ZS4gKi9cbiAgICAgIGFjdGl2ZTogYm9vbGVhbjtcbiAgICAgIGF2YWlsYWJsZV9iYWxhbmNlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5iYXNlQW1vdW50XCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBY2NvdW50IGNyZWF0aW9uIHRpbWUgKFJGQzMzMzkpLiAqL1xuICAgICAgY3JlYXRlZF9hdD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFzc2V0IHN5bWJvbCAoZS5nLiBgXCJCVENcImAsIGBcIlVTRFwiYCkuICovXG4gICAgICBjdXJyZW5jeTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoaXMgaXMgdGhlIHByaW1hcnkgYWNjb3VudCBmb3IgdGhlIGFzc2V0LiAqL1xuICAgICAgZGVmYXVsdDogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU29mdC1kZWxldGlvbiB0aW1lLCBpZiBhbnkgKFJGQzMzMzkpLiAqL1xuICAgICAgZGVsZXRlZF9hdD86IHN0cmluZyB8IG51bGw7XG4gICAgICBob2xkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb2luYmFzZUFtb3VudFwiXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEh1bWFuLXJlYWRhYmxlIG5hbWUgKGUuZy4gYFwiQlRDIFdhbGxldFwiYCkuICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFJlYWR5IGZsYWcgKGB0cnVlYCBhZnRlciBDb2luYmFzZSBoYXMgZmluaXNoZWQgb25ib2FyZGluZyB0aGUgYWNjb3VudCkuICovXG4gICAgICByZWFkeT86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVVUlEIG9mIHRoZSBwb3J0Zm9saW8gdGhpcyBhY2NvdW50IGJlbG9uZ3MgdG8uICovXG4gICAgICByZXRhaWxfcG9ydGZvbGlvX2lkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFjY291bnQgdHlwZSAoZS5nLiBgXCJBQ0NPVU5UX1RZUEVfQ1JZUFRPXCJgKS4gTGVmdCBhcyBhIHN0cmluZyBmb3JcbiAgICAgICAqIGZvcndhcmQgY29tcGF0aWJpbGl0eS5cbiAgICAgICAqL1xuICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBMYXN0IG1vZGlmaWNhdGlvbiB0aW1lIChSRkMzMzM5KS4gKi9cbiAgICAgIHVwZGF0ZWRfYXQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBY2NvdW50IFVVSUQuICovXG4gICAgICB1dWlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgYHsgdmFsdWUsIGN1cnJlbmN5IH1gIGFtb3VudCBwYWlyIHVzZWQgdGhyb3VnaG91dCBDb2luYmFzZSByZXNwb25zZXMuICovXG4gICAgQ29pbmJhc2VBbW91bnQ6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXNzZXQgc3ltYm9sIChlLmcuIGBcIlVTRFwiYCwgYFwiQlRDXCJgKS4gKi9cbiAgICAgIGN1cnJlbmN5OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBEZWNpbWFsLXN0cmluZyBhbW91bnQgKENvaW5iYXNlIHByZXNlcnZlcyBwcmVjaXNpb24gYnkgbm90IGNvbnZlcnRpbmdcbiAgICAgICAqIHRvIGZsb2F0cykuXG4gICAgICAgKi9cbiAgICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2lyZS1mb3JtYXQgcGF0Y2ggcGF5bG9hZCBmb3IgW2BLZXlQcm9wZXJ0aWVzOjpDb2luYmFzZUFwaWBdLlxuICAgICAqXG4gICAgICogRXZlcnkgZmllbGQgZm9sbG93cyB0aGUgc2FtZSBwZXItZmllbGQgUEFUQ0ggc2VtYW50aWNzOiBhIG1pc3NpbmcgZmllbGRcbiAgICAgKiBsZWF2ZXMgdGhlIGV4aXN0aW5nIHZhbHVlIGFsb25lLCBhIEpTT04gYG51bGxgIGNsZWFycyBpdCwgYW5kIGEgdmFsdWUgc2V0cyBpdC5cbiAgICAgKi9cbiAgICBDb2luYmFzZUFwaVByb3BlcnRpZXNQYXRjaDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWRlbnRpZmllciBvZiB0aGUgQ29pbmJhc2UgQVBJIGtleSB0aGlzIGtleSBhdXRoZW50aWNhdGVzIGFzLiBQbGFpblxuICAgICAgICogKG5vbi1zZWNyZXQpIHZhbHVlOyBhcHBlYXJzIGluIEpXVCBga2lkYC9gc3ViYCBjbGFpbXMuXG4gICAgICAgKi9cbiAgICAgIGFwaV9rZXlfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDb2luYmFzZSBwb3J0Zm9saW8gbmFtZS4gKi9cbiAgICAgIHBvcnRmb2xpb19uYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29pbmJhc2UgcG9ydGZvbGlvIFVVSUQuICovXG4gICAgICBwb3J0Zm9saW9fdXVpZD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICBDb2luYmFzZURyeVJ1bkFyZ3M6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIENvaW5iYXNlIEFQSSBtZXRob2QgdGhhdCB3b3VsZCBoYXZlIGJlZW4gdXNlZCAqL1xuICAgICAgbWV0aG9kOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBDb2luYmFzZSBBUEkgdXJsIG1ldGhvZCB0aGF0IHdvdWxkIGhhdmUgYmVlbiBjYWxsZWQgKi9cbiAgICAgIHVybDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERpZmZlcmVudCBcImRyeSBydW5cIiBtb2RlcyBmb3IgZXhlY3V0aW5nIENvaW5iYXNlIHJlcXVlc3RzLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgQ29pbmJhc2VEcnlSdW5Nb2RlOiBcIk5PX1NJR05cIiB8IFwiTk9fU1VCTUlUXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQ29pbmJhc2UgUlBDIG1ldGhvZHMuICovXG4gICAgQ29pbmJhc2VMaXN0QWNjb3VudHNQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTGlzdEFjY291bnRzUmVxdWVzdFwiXSAmIHtcbiAgICAgIGRyeV9ydW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5iYXNlRHJ5UnVuTW9kZVwiXSB8IG51bGw7XG4gICAgICBrZXlfaWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19jb2luYmFzZUxpc3RBY2NvdW50c2AuICovXG4gICAgQ29pbmJhc2VMaXN0QWNjb3VudHNSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgZW50cnkgcGVyIHZpc2libGUgYWNjb3VudC4gKi9cbiAgICAgIGFjY291bnRzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5iYXNlQWNjb3VudFwiXVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQYWdpbmF0aW9uIGN1cnNvcjsgcGFzcyB0byBhIGZvbGxvdy11cCByZXF1ZXN0IHRvIGZldGNoIHRoZSBuZXh0IHBhZ2UuICovXG4gICAgICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBgdHJ1ZWAgaWYgdGhlcmUgYXJlIG1vcmUgYWNjb3VudHMgdG8gZmV0Y2ggd2l0aCBgY3Vyc29yYC4gKi9cbiAgICAgIGhhc19uZXh0OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIGVudHJpZXMgaW4gYGFjY291bnRzYC5cbiAgICAgICAqL1xuICAgICAgc2l6ZTogbnVtYmVyO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGVudmVsb3BlIGZvciBhbGwgQ29pbmJhc2UgUlBDIG1ldGhvZHMuICovXG4gICAgQ29pbmJhc2VMaXN0UG9ydGZvbGlvc1BhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJMaXN0UG9ydGZvbGlvc1JlcXVlc3RcIl0gJiB7XG4gICAgICBkcnlfcnVuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb2luYmFzZURyeVJ1bk1vZGVcIl0gfCBudWxsO1xuICAgICAga2V5X2lkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCBieSBgY3NfY29pbmJhc2VMaXN0UG9ydGZvbGlvc2AuICovXG4gICAgQ29pbmJhc2VMaXN0UG9ydGZvbGlvc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSBlbnRyeSBwZXIgdmlzaWJsZSBwb3J0Zm9saW8uICovXG4gICAgICBwb3J0Zm9saW9zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5iYXNlUG9ydGZvbGlvXCJdW107XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZW52ZWxvcGUgZm9yIGFsbCBDb2luYmFzZSBSUEMgbWV0aG9kcy4gKi9cbiAgICBDb2luYmFzZU1vdmVGdW5kc1BhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNb3ZlRnVuZHNSZXF1ZXN0XCJdICYge1xuICAgICAgZHJ5X3J1bj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29pbmJhc2VEcnlSdW5Nb2RlXCJdIHwgbnVsbDtcbiAgICAgIGtleV9pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgcmV0dXJuZWQgYnkgYGNzX2NvaW5iYXNlTW92ZUZ1bmRzYC4gKi9cbiAgICBDb2luYmFzZU1vdmVGdW5kc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEVjaG9lZCBzb3VyY2UgcG9ydGZvbGlvIFVVSUQuICovXG4gICAgICBzb3VyY2VfcG9ydGZvbGlvX3V1aWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRWNob2VkIHRhcmdldCBwb3J0Zm9saW8gVVVJRC4gKi9cbiAgICAgIHRhcmdldF9wb3J0Zm9saW9fdXVpZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgcG9ydGZvbGlvIGVudHJ5IGluIFtgQ29pbmJhc2VMaXN0UG9ydGZvbGlvc1Jlc3BvbnNlYF0uICovXG4gICAgQ29pbmJhc2VQb3J0Zm9saW86IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gYHRydWVgIGlmIHRoaXMgcG9ydGZvbGlvIGlzIGRlbGV0ZWQuICovXG4gICAgICBkZWxldGVkPzogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSHVtYW4tcmVhZGFibGUgbmFtZS4gKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFBvcnRmb2xpbyB0eXBlLCBlLmcuIGBcIkRFRkFVTFRcImAuIExlZnQgYXMgYFN0cmluZ2AgZm9yIGZvcndhcmRcbiAgICAgICAqIGNvbXBhdGliaWxpdHkuXG4gICAgICAgKi9cbiAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gUG9ydGZvbGlvIFVVSUQuICovXG4gICAgICB1dWlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29pbmJhc2UtZmFtaWx5IFJQQyBtZXRob2RzLiBFYWNoIHZhcmlhbnQgYXV0aGVudGljYXRlcyBhcyB0aGVcbiAgICAgKiBbYEtleVR5cGU6OkVkMjU1MTlDb2luYmFzZUFwaWBdIGtleSBpbiBpdHMgYHBhcmFtcy5rZXlfaWRgLlxuICAgICAqL1xuICAgIENvaW5iYXNlUnBjOiBPbmVPZjxcbiAgICAgIFtcbiAgICAgICAge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19jb2luYmFzZUxpc3RBY2NvdW50c1wiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb2luYmFzZUxpc3RBY2NvdW50c1BhcmFtc1wiXTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19jb2luYmFzZUxpc3RQb3J0Zm9saW9zXCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5iYXNlTGlzdFBvcnRmb2xpb3NQYXJhbXNcIl07XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtZXRob2Q6IFwiY3NfY29pbmJhc2VNb3ZlRnVuZHNcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29pbmJhc2VNb3ZlRnVuZHNQYXJhbXNcIl07XG4gICAgICAgIH0sXG4gICAgICBdXG4gICAgPjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IHRoZSB0eXBlZCBgY29pbmJhc2Vfc2lnbmAgZW5kcG9pbnQuICovXG4gICAgQ29pbmJhc2VTaWduUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc2lnbmVkIEpXVCwgcmVhZHkgdG8gYmUgc2VudCBpbiBgQXV0aG9yaXphdGlvbjogQmVhcmVyIDxqd3Q+YCB0b1xuICAgICAgICogdGhlIENvaW5iYXNlIEFkdmFuY2VkIFRyYWRlIEFQSS5cbiAgICAgICAqL1xuICAgICAgand0OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIENvbW1pc3Npb24gcmF0ZXMgYXMgZGVjaW1hbCBzdHJpbmdzIChlLmcuIGBcIjAuMDAxMDAwMDBcImApLiAqL1xuICAgIENvbW1pc3Npb25SYXRlczoge1xuICAgICAgYnV5ZXI6IHN0cmluZztcbiAgICAgIG1ha2VyOiBzdHJpbmc7XG4gICAgICBzZWxsZXI6IHN0cmluZztcbiAgICAgIHRha2VyOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRmllbGRzIHRoYXQgYXJlIGNvbW1vbiB0byBkaWZmZXJlbnQgdHlwZXMgb2YgcmVzb3VyY2VzIHN1Y2ggYXMga2V5cywgcm9sZXMsIGV0Yy5cbiAgICAgKiBJbmNsdWRlcyB2ZXJzaW9uaW5nIGZpZWxkcyBwbHVzIG1ldGFkYXRhLCBlZGl0IHBvbGljeSwgZXRjLlxuICAgICAqL1xuICAgIENvbW1vbkZpZWxkczoge1xuICAgICAgY3JlYXRlZD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXSB8IG51bGw7XG4gICAgICBsYXN0X21vZGlmaWVkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFZlcnNpb24gb2YgdGhpcyBvYmplY3RcbiAgICAgICAqL1xuICAgICAgdmVyc2lvbj86IG51bWJlcjtcbiAgICB9ICYge1xuICAgICAgZWRpdF9wb2xpY3k/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVkaXRQb2xpY3lcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBVc2VyLWRlZmluZWQgbWV0YWRhdGEuIFdoZW4gcmVuZGVyaW5nIChlLmcuLCBpbiB0aGUgYnJvd3NlcikgeW91IHNob3VsZCB0cmVhdFxuICAgICAgICogaXQgYXMgdW50cnVzdGVkIHVzZXIgZGF0YSAoYW5kIGF2b2lkIGluamVjdGluZyBtZXRhZGF0YSBpbnRvIEhUTUwgZGlyZWN0bHkpIGlmXG4gICAgICAgKiB1bnRydXN0ZWQgdXNlcnMgY2FuIGNyZWF0ZS91cGRhdGUga2V5cyAob3IgdGhlaXIgbWV0YWRhdGEpLlxuICAgICAgICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgfTtcbiAgICBDb21wbGV0ZU1mYVJlc2V0UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHJlc2V0IHRva2VuIGVtYWlsZWQgdG8gdGhlIHVzZXJcbiAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgKi9cbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBudW1iZXIgb2YgdXNlcnMgYW5kIGtleXMgaW4gYW4gb3JnLCBvcmdhbml6ZWQgYnkgdXNlciByb2xlIGFuZCBrZXkgdHlwZSAqL1xuICAgIENvbXB1dGVDb3VudHNSZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBtYXAgb2YgYSBgS2V5VHlwZWAgdG8gdGhlIGFtb3VudCBvZiBrZXlzIHdpdGggdGhhdCB0eXBlIGluIHRoZSBvcmcuXG4gICAgICAgKiBAZXhhbXBsZSB7XG4gICAgICAgKiAgIFwiU2VjcEJ0Y1wiOiAzLFxuICAgICAgICogICBcIlNlY3BFdGhBZGRyXCI6IDFcbiAgICAgICAqIH1cbiAgICAgICAqL1xuICAgICAga2V5czoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBudW1iZXI7XG4gICAgICB9O1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBtYXAgb2YgYSBgTWVtYmVyUm9sZWAgdG8gdGhlIGFtb3VudCBvZiBudW1iZXIgb2YgdXNlcnMgd2l0aCB0aGF0IHJvbGUgaW4gdGhlIG9yZy5cbiAgICAgICAqIEBleGFtcGxlIHtcbiAgICAgICAqICAgXCJNZW1iZXJcIjogMTAsXG4gICAgICAgKiAgIFwiT3duZXJcIjogMVxuICAgICAgICogfVxuICAgICAgICovXG4gICAgICB1c2Vyczoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBudW1iZXI7XG4gICAgICB9O1xuICAgIH07XG4gICAgQ29uZmlndXJlRW1haWxSZXF1ZXN0OiB7XG4gICAgICBhdXRoOiB7XG4gICAgICAgIHNtdHA6IHN0cmluZztcbiAgICAgIH07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBhZGRyZXNzIHRoYXQgZW1haWxzIHdpbGwgYmUgc2VudCBmcm9tICovXG4gICAgICBzZW5kZXI6IHN0cmluZztcbiAgICAgIHRlbXBsYXRlPzoge1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFuIEhUTUwgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgYm9keS4gKi9cbiAgICAgICAgYm9keV90ZW1wbGF0ZTogc3RyaW5nO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzdWJqZWN0IGxpbmUgdGVtcGxhdGUgKi9cbiAgICAgICAgc3ViamVjdF90ZW1wbGF0ZTogc3RyaW5nO1xuICAgICAgfSB8IG51bGw7XG4gICAgfTtcbiAgICBDb25maWd1cmVkTWZhOlxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgdHlwZTogXCJ0b3RwXCI7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVVVJRCBvZiB0aGUgZGV2aWNlIHR5cGUgKi9cbiAgICAgICAgICBhYWd1aWQ6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIENyZWF0aW9uIGRhdGVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBjcmVhdGVkX2F0OiBudW1iZXI7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoaXMga2V5IHdhcyByZXF1ZXN0ZWQgdG8gYmUgZGlzY292ZXJhYmxlLiAqL1xuICAgICAgICAgIGRpc2NvdmVyYWJsZTogYm9vbGVhbjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEEgdW5pcXVlIGNyZWRlbnRpYWwgaWQgKi9cbiAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gTGFzdCB1c2VkIGRhdGVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X3VzZWRfYXQ6IG51bWJlcjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcmVhZGFibGUgbmFtZSBnaXZlbiB0byB0aGUga2V5ICovXG4gICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIHR5cGU6IFwiZmlkb1wiO1xuICAgICAgICB9O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIENvbmZsaWN0RXJyb3JDb2RlOiBcIkNvbmN1cnJlbnRSZXF1ZXN0RGlzYWxsb3dlZFwiIHwgXCJDb25jdXJyZW50TG9ja0NyZWF0aW9uXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIGNvbnRhY3QgaW4gdGhlIG9yZy4gKi9cbiAgICBDb250YWN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbW1vbkZpZWxkc1wiXSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIExhYmVscyB0byBjYXRlZ29yaXplIHRoaXMgY29udGFjdC5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJjdWJpc3Q6ZXJjMjBfdG9rZW5cIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBsYWJlbHM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbnRhY3RMYWJlbFwiXVtdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5hbWUgZm9yIHRoZSBjb250YWN0LiBNdXN0IGJlIGEgdW5pcXVlIG5hbWUgYW1vbmcgY29udGFjdHMgaW4gdGhlXG4gICAgICAgKiBvcmcuIFRoZSBuYW1lIG11c3QgY29uc2lzdCBvZiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgc3BhY2VzLCBgLmAgYW5kIGAtYCxcbiAgICAgICAqIGFuZCBjYW5ub3QgYmUgbG9uZ2VyIHRoYW4gNTAgY2hhcmFjdGVycy5cbiAgICAgICAqIEBleGFtcGxlIFNhdG9zaGkgTmFrYW1vdG9cbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgb3duZXI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEFuIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIGEgY29udGFjdC4gKi9cbiAgICBDb250YWN0QWRkcmVzc0RhdGE6XG4gICAgICB8IChjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpdGNvaW5BZGRyZXNzSW5mb1wiXSAmIHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBuZXR3b3JrOiBcIkJpdGNvaW5cIjtcbiAgICAgICAgfSlcbiAgICAgIHwgKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXZtQWRkcmVzc0luZm9cIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbmV0d29yazogXCJFdm1cIjtcbiAgICAgICAgfSlcbiAgICAgIHwgKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3VpQWRkcmVzc0luZm9cIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbmV0d29yazogXCJTdWlcIjtcbiAgICAgICAgfSlcbiAgICAgIHwgKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU29sYW5hQWRkcmVzc0luZm9cIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbmV0d29yazogXCJTb2xhbmFcIjtcbiAgICAgICAgfSlcbiAgICAgIHwgKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2FudG9uUGFydHlJbmZvXCJdICYge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG5ldHdvcms6IFwiQ2FudG9uXCI7XG4gICAgICAgIH0pO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYSBDb250YWN0LiAqL1xuICAgIENvbnRhY3RJbmZvUmVzcG9uc2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29udGFjdFwiXSAmIHtcbiAgICAgIGFkZHJlc3NlczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBZGRyZXNzTWFwXCJdO1xuICAgICAgaWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGFiZWxzIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gYSBjb250YWN0LlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgQ29udGFjdExhYmVsOiBcImN1YmlzdDplcmMyMF90b2tlblwiIHwgXCJjdWJpc3Q6c3BsX3Rva2VuXCI7XG4gICAgQ3JlYXRlQW5kVXBkYXRlS2V5UHJvcGVydGllczoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gU2V0IHRoaXMga2V5J3MgYWNjZXNzLWNvbnRyb2wgZW50cmllcy5cbiAgICAgICAqIEZvciBhbiBleGlzdGluZyBrZXksIHRoaXMgb3ZlcndyaXRlcyB0aGUgY3VycmVudCBhY2wsIGlmIGFueS5cbiAgICAgICAqL1xuICAgICAgYWNsPzogdW5rbm93bjtcbiAgICAgIGVkaXRfcG9saWN5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFZGl0UG9saWN5XCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFNldCB0aGlzIGtleSdzIG1ldGFkYXRhLiBJZiB0aGlzIHZhbHVlIGlzIGBudWxsYCwgdGhlIG1ldGFkYXRhIGlzIGVyYXNlZC4gSWYgdGhlIGZpZWxkIGlzXG4gICAgICAgKiBtaXNzaW5nLCB0aGUgbWV0YWRhdGEgcmVtYWlucyB1bmNoYW5nZWQuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFNwZWNpZnkgYSB1c2VyIG90aGVyIHRoYW4gdGhlbXNlbHZlcyB0byBiZSB0aGUgKHBvdGVudGlhbGx5IG5ldykgb3duZXIgb2YgdGhlIGtleS5cbiAgICAgICAqIFRoZSBzcGVjaWZpZWQgb3duZXIgbXVzdCBiZSBhbiBleGlzdGluZyB1c2VyIHdobyBpcyBhIG1lbWJlciBvZiB0aGUgc2FtZSBvcmcuXG4gICAgICAgKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlxuICAgICAgICovXG4gICAgICBvd25lcj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTZXQgdGhpcyBrZXkncyBwb2xpY2llcy4gRm9yIGFuIGV4aXN0aW5nIGtleSwgdGhpcyBvdmVyd3JpdGVzIGFsbCBpdHMgcG9saWNpZXMuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwiQWxsb3dSYXdCbG9iU2lnbmluZ1wiLFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJSZXF1aXJlTWZhXCI6IHtcbiAgICAgICAqICAgICAgIFwiY291bnRcIjogMVxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiB1bmtub3duW10gfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaW5mb3JtYXRpb24gbmVlZGVkIHRvIGNyZWF0ZSBhIENvbnRhY3QuICovXG4gICAgQ3JlYXRlQ29udGFjdFJlcXVlc3Q6IHtcbiAgICAgIGFkZHJlc3Nlcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWRkcmVzc01hcFwiXTtcbiAgICAgIGVkaXRfcG9saWN5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFZGl0UG9saWN5XCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGxhYmVscyB0byBhc3NvY2lhdGUgd2l0aCB0aGUgY29udGFjdC5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJjdWJpc3Q6ZXJjMjBfdG9rZW5cIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBsYWJlbHM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbnRhY3RMYWJlbFwiXVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCB1c2VyLWRlZmluZWQgbWV0YWRhdGEgYWJvdXQgdGhlIGNvbnRhY3QuICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmFtZSBmb3IgdGhlIGNvbnRhY3QuIE11c3QgYmUgYSB1bmlxdWUgbmFtZSBhbW9uZyBjb250YWN0cyBpbiB0aGVcbiAgICAgICAqIG9yZy4gTmFtZSBtdXN0IGNvbnNpc3Qgb2YgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIHNwYWNlcywgYC5gIGFuZCBgLWAsXG4gICAgICAgKiBhbmQgY2Fubm90IGJlIGxvbmdlciB0aGFuIDUwIGNoYXJhY3RlcnMuXG4gICAgICAgKiBAZXhhbXBsZSBTYXRvc2hpIE5ha2Ftb3RvXG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgY3JlYXRpbmcgYW4gRVZNIHRyYW5zYWN0aW9uLiAqL1xuICAgIENyZWF0ZUV2bVRyYW5zYWN0aW9uUmVxdWVzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDcmVhdGVFdm1UcmFuc2ZlclJlcXVlc3RcIl0gJiB7XG4gICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgIHR5cGU6IFwiVHJhbnNmZXJcIjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgY3JlYXRpbmcgYW4gRVZNIHRyYW5zZmVyLiAqL1xuICAgIENyZWF0ZUV2bVRyYW5zZmVyUmVxdWVzdDoge1xuICAgICAgdG9rZW46IFwiQ3JlYXRlRXZtVHJhbnNmZXJSZXF1ZXN0XCI7XG4gICAgfSAmIE9taXQ8Y29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFdm1Ub2tlblwiXSwgXCJ0b2tlblwiPiAmXG4gICAgICBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkV2bVR4Q3VzdG9taXphdGlvblwiXSAmIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBFVk0gY2hhaW4gaWQgdGhpcyB0cmFuc2FjdGlvbiBpcyBmb3IuXG4gICAgICAgICAqL1xuICAgICAgICBjaGFpbl9pZDogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBhZGRyZXNzIHRoYXQgdGhlIGFtb3VudCB3aWxsIGJlIHRyYW5zZmVycmVkIGZyb20uXG4gICAgICAgICAqXG4gICAgICAgICAqIE11c3QgbWF0Y2ggdGhlIG1hdGVyaWFsIGlkIG9mIGEga2V5IHRoZSBzZXNzaW9uIGNhbiBhY2Nlc3MuXG4gICAgICAgICAqL1xuICAgICAgICBmcm9tOiBzdHJpbmc7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGFkZHJlc3MgdGhhdCB0aGUgYW1vdW50IHdpbGwgYmUgdHJhbnNmZXJyZWQgdG8uICovXG4gICAgICAgIHRvOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGFtb3VudCBiZWluZyB0cmFuc2ZlcnJlZCwgYXMgYSBoZXggdmFsdWUuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoaXMgdmFsdWUgc2hvdWxkIGJlIGluIFdFSSBmb3IgbmF0aXZlIHRyYW5zZmVycywgYW5kIGluIHRoZSB0b2tlbidzIGRlbm9taW5hdGlvblxuICAgICAgICAgKiBmb3IgRVJDLTIwIHRyYW5zZmVycy5cbiAgICAgICAgICovXG4gICAgICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIENyZWF0ZUtleUltcG9ydEtleVJlc3BvbnNlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUltcG9ydEtleVwiXSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFuIGF0dGVzdGF0aW9uIGRvY3VtZW50IGZyb20gYSBzZWN1cmUgZW5jbGF2ZSwgaW5jbHVkaW5nIGFuXG4gICAgICAgKiBSU0Egc2lnbmluZyBrZXkgdXNlZCB0byBzaWduIHRoZSBjb250ZW50cyBvZiB0aGlzIG1lc3NhZ2UuXG4gICAgICAgKi9cbiAgICAgIGVuY2xhdmVfYXR0ZXN0YXRpb246IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFuIFJTQS1QU1MtU0hBMjU2IHNpZ25hdHVyZSBvbiB0aGUgcHVibGljIGtleSBhbmQgZW5jcnlwdGVkXG4gICAgICAgKiBzZWNyZXRzIGF0dGVzdGluZyB0byB0aGVpciBnZW5lcmF0aW9uIGluc2lkZSBhIHNlY3VyZSBlbmNsYXZlLlxuICAgICAgICovXG4gICAgICBlbmNsYXZlX3NpZ25hdHVyZTogc3RyaW5nO1xuICAgIH07XG4gICAgQ3JlYXRlS2V5UmVxdWVzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDcmVhdGVBbmRVcGRhdGVLZXlQcm9wZXJ0aWVzXCJdICYge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ2hhaW4gaWQgZm9yIHdoaWNoIHRoZSBrZXkgaXMgYWxsb3dlZCB0byBzaWduIG1lc3NhZ2VzXG4gICAgICAgKiBAZXhhbXBsZSA1XG4gICAgICAgKi9cbiAgICAgIGNoYWluX2lkPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiBrZXlzIHRvIGNyZWF0ZVxuICAgICAgICogQGV4YW1wbGUgMVxuICAgICAgICovXG4gICAgICBjb3VudDogbnVtYmVyO1xuICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICB9O1xuICAgIENyZWF0ZUtleVJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBpbmZvIGFib3V0IHRoZSBjcmVhdGVkIGtleXMgKi9cbiAgICAgIGtleXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5mb1wiXVtdO1xuICAgIH07XG4gICAgQ3JlYXRlT3JnUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGh1bWFuIHJlYWRhYmxlIG5hbWUgb2YgdGhlIG5ldyBvcmdhbml6YXRpb25cbiAgICAgICAqIEBleGFtcGxlIE15IENvb2wgT3JnXG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcmVzcG9uc2UgdG8gW2NyZWF0ZV9pbXBvcnRfa2V5XSBjb250YWluaW5nIHRoZSBnZW5lcmF0ZWQga2V5IGFuZCBlbmNsYXZlXG4gICAgICogYXR0ZXN0YXRpb25zLlxuICAgICAqL1xuICAgIENyZWF0ZVBvbGljeUltcG9ydEtleVJlc3BvbnNlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUltcG9ydEtleVwiXSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFuIGF0dGVzdGF0aW9uIGRvY3VtZW50IGZyb20gYSBzZWN1cmUgZW5jbGF2ZSwgaW5jbHVkaW5nIGFuXG4gICAgICAgKiBSU0Egc2lnbmluZyBrZXkgdXNlZCB0byBzaWduIHRoZSBjb250ZW50cyBvZiB0aGlzIG1lc3NhZ2UuXG4gICAgICAgKi9cbiAgICAgIGVuY2xhdmVfYXR0ZXN0YXRpb246IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFuIFJTQS1QU1MtU0hBMjU2IHNpZ25hdHVyZSBvbiB0aGUgcHVibGljIGtleSBhbmQgZW5jcnlwdGVkXG4gICAgICAgKiBzZWNyZXRzIGF0dGVzdGluZyB0byB0aGVpciBnZW5lcmF0aW9uIGluc2lkZSBhIHNlY3VyZSBlbmNsYXZlLlxuICAgICAgICovXG4gICAgICBlbmNsYXZlX3NpZ25hdHVyZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IGZvciBjcmVhdGluZyBhIG5hbWVkIHBvbGljeSAqL1xuICAgIENyZWF0ZVBvbGljeVJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFjY2Vzcy1jb250cm9sIGVudHJpZXMgZGVmaW5pbmcgaG93IHRoZSBwb2xpY3kgY2FuIGJlIGFjY2Vzc2VkLCBtb2RpZmllZCxcbiAgICAgICAqIGF0dGFjaGVkIGFuZCBleGVjdXRlZC5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiYWN0aW9uXCI6IFwiYXR0YWNoXCIsXG4gICAgICAgKiAgICAgXCJyZXNvdXJjZXNcIjogW1xuICAgICAgICogICAgICAge1xuICAgICAgICogICAgICAgICBcImtleV9pZFwiOiBcIipcIixcbiAgICAgICAqICAgICAgICAgXCJyb2xlX2lkXCI6IFwiUm9sZSNlNDI3YzI4YS05YzViLTQ5Y2MtYTI1Ny04NzhhZWE1OGEyMmNcIlxuICAgICAgICogICAgICAgfVxuICAgICAgICogICAgIF0sXG4gICAgICAgKiAgICAgXCJzdWJqZWN0c1wiOiBcIipcIlxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJhY3Rpb25cIjogXCJzaWduXCIsXG4gICAgICAgKiAgICAgXCJzdWJqZWN0c1wiOiBcIlJvbGUjZTQyN2MyOGEtOWM1Yi00OWNjLWEyNTctODc4YWVhNThhMjJjXCJcbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBhY2w/OiB1bmtub3duW10gfCBudWxsO1xuICAgICAgZWRpdF9wb2xpY3k/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVkaXRQb2xpY3lcIl0gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBwb2xpY3kgbmFtZS5cbiAgICAgICAqIE11c3QgYmUgdW5pcXVlIGFtb25nIHRoZSBuYW1lZCBwb2xpY2llcyBpbiB0aGlzIG9yZy4gRHVwbGljYXRlIHBvbGljeSBuYW1lc1xuICAgICAgICogd2lsbCBiZSByZWplY3RlZC5cbiAgICAgICAqIEBleGFtcGxlIG15X3BvbGljeVxuICAgICAgICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBwb2xpY3lfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQb2xpY3lUeXBlXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBvbGljeSBydWxlcy5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiUmVxdWlyZU1mYVwiOiB7XG4gICAgICAgKiAgICAgICBcImNvdW50XCI6IDFcbiAgICAgICAqICAgICB9XG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcnVsZXM6IHVua25vd25bXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgY3JlYXRlIHJvbGUgcmVxdWVzdCBib2R5ICovXG4gICAgQ3JlYXRlUm9sZVJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHJvbGUuXG4gICAgICAgKiBAZXhhbXBsZSBteV9yb2xlXG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5ld2x5IGNyZWF0ZWQgcm9sZSBpbmZvcm1hdGlvbiAqL1xuICAgIENyZWF0ZVJvbGVSZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcm9sZS5cbiAgICAgICAqIEBleGFtcGxlIG15X3JvbGVcbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIG5ld2x5IGNyZWF0ZWQgcm9sZVxuICAgICAgICogQGV4YW1wbGUgUm9sZSNiZmUzZWNjYi03MzFlLTQzMGQtYjFlNS1hYzEzNjNlNmIwNmJcbiAgICAgICAqL1xuICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgQ3JlYXRlU2Vzc2lvblJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUmF0Y2hldENvbmZpZ1wiXSAmXG4gICAgICBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNsaWVudFNlc3Npb25NZXRhZGF0YVwiXSAmIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBCeSBkZWZhdWx0LCB0aGUgcmVxdWVzdGVkIHNlc3Npb24gYW5kIGF1dGggbGlmZXRpbWVzIGFyZSB0cnVuY2F0ZWQgdG8gYmUgYXQgbW9zdCByZXF1ZXN0b3Inc1xuICAgICAgICAgKiBzZXNzaW9uIGFuZCBhdXRoIGxpZmV0aW1lLCByZXNwZWN0aXZlbHkuIFRvIGV4dGVuZCB0aGUgcmVxdWVzdGVkIGxpZmV0aW1lcyBwYXN0IHRoZVxuICAgICAgICAgKiByZXF1ZXN0b3Incywgc2V0IHRoaXMgcHJvcGVydHkgdG8gYHRydWVgIChpbiB3aGljaCBjYXNlIE1GQSB3aWxsIGJlIHJlcXVpcmVkKS5cbiAgICAgICAgICovXG4gICAgICAgIGV4dGVuZF9saWZldGltZXM/OiBib29sZWFuO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEEgaHVtYW4gcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgdGhlIHNlc3Npb24ncyBwdXJwb3NlXG4gICAgICAgICAqIEBleGFtcGxlIE1hbmFnZSBrZXlzIG9uIHNlcnZlciBmb28uYmFyXG4gICAgICAgICAqL1xuICAgICAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gQ29udHJvbHMgd2hhdCBjYXBhYmlsaXRpZXMgdGhpcyBzZXNzaW9uIHdpbGwgaGF2ZS5cbiAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgKiAgIFwibWFuYWdlOmtleToqXCJcbiAgICAgICAgICogXVxuICAgICAgICAgKi9cbiAgICAgICAgc2NvcGVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNjb3BlXCJdW107XG4gICAgICB9O1xuICAgIENyZWF0ZVRva2VuUmVxdWVzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSYXRjaGV0Q29uZmlnXCJdICZcbiAgICAgIGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2xpZW50U2Vzc2lvbk1ldGFkYXRhXCJdICYge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEEgaHVtYW4gcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgdGhlIHB1cnBvc2Ugb2YgdGhlIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSBWYWxpZGF0b3IgU2lnbmluZ1xuICAgICAgICAgKi9cbiAgICAgICAgcHVycG9zZTogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIENvbnRyb2xzIHdoYXQgY2FwYWJpbGl0aWVzIHRoaXMgc2Vzc2lvbiB3aWxsIGhhdmUuIEJ5IGRlZmF1bHQsIGl0IGhhcyBhbGxcbiAgICAgICAgICogc2lnbmluZyBjYXBhYmlsaXRpZXMsIGkuZS4sIGp1c3QgdGhlICdzaWduOionIHNjb3BlLlxuICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAqICAgXCJzaWduOipcIlxuICAgICAgICAgKiBdXG4gICAgICAgICAqL1xuICAgICAgICBzY29wZXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNjb3BlXCJdW10gfCBudWxsO1xuICAgICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIHRoZSBbYGNzX2NyZWF0ZVRyYW5zYWN0aW9uYF0oUnBjTWV0aG9kOjpDcmVhdGVUcmFuc2FjdGlvbikgbWV0aG9kLiAqL1xuICAgIENyZWF0ZVRyYW5zYWN0aW9uUmVxdWVzdDoge1xuICAgICAgdHlwZTogXCJDcmVhdGVUcmFuc2FjdGlvblJlcXVlc3RcIjtcbiAgICB9ICYgT21pdDxjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZUV2bVRyYW5zYWN0aW9uUmVxdWVzdFwiXSwgXCJ0eXBlXCI+ICYge1xuICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgY2hhaW46IFwiRXZtXCI7XG4gICAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBbiBleHRlbmRlZCBmb3JtIG9mIGBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zYCB0aGF0IGFsbG93cyBjbGllbnRzIHRvIGRlcml2ZSB0aGUgV2ViQXV0aG4gY2hhbGxlbmdlXG4gICAgICogZnJvbSBhIHN0cnVjdHVyZWQgcHJlaW1hZ2UuXG4gICAgICpcbiAgICAgKiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgd2VidWF0aG4gc2lnbmF0dXJlIGNhbiBvbmx5IGJlIHVzZWQgZm9yIGEgc3BlY2lmaWMgcHVycG9zZVxuICAgICAqL1xuICAgIENyZWF0aW9uT3B0aW9uc1dpdGhIYXNoOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNoYWxsZW5nZVBpZWNlc1wiXSAmIHtcbiAgICAgIG9wdGlvbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uc1wiXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQ29yZSBSUEMgbWV0aG9kcyAodHJhbnNhY3Rpb24gQ1JVRCkuICovXG4gICAgQ3NScGM6XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtZXRob2Q6IFwiY3NfY3JlYXRlVHJhbnNhY3Rpb25cIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlVHJhbnNhY3Rpb25SZXF1ZXN0XCJdO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtZXRob2Q6IFwiY3NfcmV0cnlUcmFuc2FjdGlvblwiO1xuICAgICAgICAgIHBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSZXRyeVRyYW5zYWN0aW9uUmVxdWVzdFwiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2NhbmNlbFRyYW5zYWN0aW9uXCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNhbmNlbFRyYW5zYWN0aW9uUmVxdWVzdFwiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2dldFRyYW5zYWN0aW9uXCI7XG4gICAgICAgICAgcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkdldFRyYW5zYWN0aW9uUmVxdWVzdFwiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWV0aG9kOiBcImNzX2xpc3RUcmFuc2FjdGlvbnNcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTGlzdFRyYW5zYWN0aW9uc1JlcXVlc3RcIl07XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG1ldGhvZDogXCJjc19idGNMaXN0VXR4b3NcIjtcbiAgICAgICAgICBwYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjTGlzdFV0eG9zUmVxdWVzdFwiXTtcbiAgICAgICAgfTtcbiAgICBDdWJlU2lnbmVyVXNlckluZm86IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIG11bHRpLWZhY3RvciBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGNvbmZpZ3VyZWQgZm9yIHRoaXMgdXNlciAqL1xuICAgICAgY29uZmlndXJlZF9tZmE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29uZmlndXJlZE1mYVwiXVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTZXQgb25jZSB0aGUgdXNlciBzdWNjZXNzZnVsbHkgbG9ncyBpbnRvIEN1YmVTaWduZXIgKi9cbiAgICAgIGluaXRpYWxpemVkOiBib29sZWFuO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBodW1hbiBuYW1lIGZvciB0aGUgdXNlciAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEN1YmVTaWduZXIncyB1c2VyIGlkZW50aWZpZXIgKi9cbiAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQ3VzdG9tIGNoYWluIFJQQyByZXF1ZXN0ICovXG4gICAgQ3VzdG9tQ2hhaW5ScGNSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEhUVFAgYm9keSAqL1xuICAgICAgYm9keT86IHN0cmluZyB8IG51bGw7XG4gICAgICBjaGFpbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDdXN0b21DaGFpblNlbGVjdG9yXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIVFRQIHJlbGF0aXZlIHBhdGggKi9cbiAgICAgIHBhdGg6IHN0cmluZztcbiAgICB9O1xuICAgIEN1c3RvbUNoYWluUnBjUmVzcG9uc2U6IHVua25vd247XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBDdXN0b20gY2hhaW4gc2VsZWN0b3IgKi9cbiAgICBDdXN0b21DaGFpblNlbGVjdG9yOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEVWTSBjaGFpbiAqL1xuICAgICAgRXZtOiB7XG4gICAgICAgIC8qKiBAZXhhbXBsZSAweDAxICovXG4gICAgICAgIGNoYWluX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCBhbiBvcmcncyBjdXN0b20gY2hhaW5zLiAqL1xuICAgIEN1c3RvbUNoYWluc0RhdGE6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ3VzdG9tIEVWTSBjaGFpbnMuICovXG4gICAgICBldm06IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXZtQ3VzdG9tQ2hhaW5cIl1bXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT25lIGRlcG9zaXQgZW50cnkgaW4gW2BEZXBvc2l0SGlzdG9yeVJlc3BvbnNlYF0uICovXG4gICAgRGVwb3NpdEhpc3RvcnlFbnRyeToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiBhZGRyZXNzIHRoZSBkZXBvc2l0IHdhcyBzZW50IHRvLiAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gU2Vjb25kYXJ5IGFkZHJlc3MgaWRlbnRpZmllciAoZS5nLiBtZW1vIGZvciBYUlAsIHRhZyBmb3IgWExNKS4gRW1wdHlcbiAgICAgICAqIHN0cmluZyB3aGVuIHRoZSBhc3NldCBkb2VzIG5vdCB1c2Ugb25lLlxuICAgICAgICovXG4gICAgICBhZGRyZXNzVGFnPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGVwb3NpdCBhbW91bnQsIGFzIGEgZGVjaW1hbCBzdHJpbmcuICovXG4gICAgICBhbW91bnQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXNzZXQgc3ltYm9sIChlLmcuIGBcIlVTRFRcImAsIGBcIkJUQ1wiYCkuICovXG4gICAgICBjb2luOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRzIGRlcG9zaXQgY29tcGxldGlvbiBkYXRldGltZSwgYXZhaWxhYmxlIGZvciBkZXBvc2l0cyBhZnRlciA2LU1hci0yMDI1LlxuICAgICAgICovXG4gICAgICBjb21wbGV0ZVRpbWU/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPbi1jaGFpbiBjb25maXJtYXRpb24gcHJvZ3Jlc3MgKGUuZy4gYFwiMS8xXCJgKS4gKi9cbiAgICAgIGNvbmZpcm1UaW1lcz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEJpbmFuY2UtYXNzaWduZWQgZGVwb3NpdCBpZC4gKi9cbiAgICAgIGlkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRpbWUgdGhlIGRlcG9zaXQgcmVjb3JkIHdhcyBjcmVhdGVkIChtcyBzaW5jZSBlcG9jaCkuXG4gICAgICAgKi9cbiAgICAgIGluc2VydFRpbWU6IG51bWJlcjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmxvY2tjaGFpbiBuZXR3b3JrIGlkZW50aWZpZXIgKGUuZy4gYFwiQlNDXCJgLCBgXCJFVEhcImApLiAqL1xuICAgICAgbmV0d29yazogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBSZXR1cm5lZCB3aGVuICdpbmNsdWRlU291cmNlJyBpbiB0aGUgcmVxdWVzdCBpcyBzZXQgdG8gdHJ1ZSAqL1xuICAgICAgc291cmNlQWRkcmVzcz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBEZXBvc2l0IHN0YXR1cy4gQmluYW5jZSB2YWx1ZXM6IGAwYCA9IHBlbmRpbmcsIGA2YCA9IGNyZWRpdGVkIGJ1dFxuICAgICAgICogY2Fubm90IHdpdGhkcmF3LCBgN2AgPSB3cm9uZyBkZXBvc2l0LCBgOGAgPSB3YWl0aW5nIHVzZXIgY29uZmlybSxcbiAgICAgICAqIGAxYCA9IHN1Y2Nlc3MuIExlZnQgYXMgYHU4YCBmb3IgZm9yd2FyZCBjb21wYXRpYmlsaXR5LlxuICAgICAgICovXG4gICAgICBzdGF0dXM6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIGAwYCA9IGV4dGVybmFsIHRyYW5zZmVyLCBgMWAgPSBpbnRlcm5hbCAoQmluYW5jZeKGlEJpbmFuY2UpIHRyYW5zZmVyLlxuICAgICAgICovXG4gICAgICB0cmFuc2ZlclR5cGU6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIDA6IHRyYXZlbCBydWxlIG5vdCByZXF1aXJlZCBPUiBpbmZvIGFscmVhZHkgcHJvdmlkZWQgYW5kIGZ1bmRzIHJlYWR5IHRvIHVzZTtcbiAgICAgICAqIDE6IHRyYXZlbCBydWxlIHJlcXVpcmVkIHRvIHByb3ZpZGUgZGVwb3NpdCBpbmZvXG4gICAgICAgKi9cbiAgICAgIHRyYXZlbFJ1bGVTdGF0dXM6IG51bWJlcjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT24tY2hhaW4gdHJhbnNhY3Rpb24gaGFzaCBvZiB0aGUgZGVwb3NpdC4gKi9cbiAgICAgIHR4SWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIENvbmZpcm1hdGlvbnMgYWZ0ZXIgd2hpY2ggdGhlIGRlcG9zaXQgaXMgdW5sb2NrZWQgZm9yIHRyYWRpbmcuXG4gICAgICAgKi9cbiAgICAgIHVubG9ja0NvbmZpcm0/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRGVzdGluYXRpb24gd2FsbGV0OiBgMGAgPSBzcG90IHdhbGxldCwgYDFgID0gZnVuZGluZyB3YWxsZXQuXG4gICAgICAgKi9cbiAgICAgIHdhbGxldFR5cGU6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgR0VUIC9zYXBpL3YxL2NhcGl0YWwvZGVwb3NpdC9oaXNyZWNgLlxuICAgICAqXG4gICAgICogUmV0dXJucyB0aGUgY2FsbGluZyBhY2NvdW50J3MgZGVwb3NpdCBoaXN0b3J5LiBBbGwgZmlsdGVycyBhcmUgb3B0aW9uYWw7XG4gICAgICogaWYgYHN0YXJ0X3RpbWVgL2BlbmRfdGltZWAgYXJlIG9taXR0ZWQsIEJpbmFuY2UgcmV0dXJucyB0aGUgbW9zdCByZWNlbnQgOTBcbiAgICAgKiBkYXlzLiBVc2UgYHR4X2lkYCB0byBsb29rIHVwIGEgc3BlY2lmaWMgZGVwb3NpdCBieSBpdHMgb24tY2hhaW5cbiAgICAgKiB0cmFuc2FjdGlvbiBoYXNoLCBvciBgY29pbmAvYHN0YXR1c2AgdG8gbmFycm93IHRoZSByZXN1bHQgc2V0LlxuICAgICAqL1xuICAgIERlcG9zaXRIaXN0b3J5UmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgdG8gYSBzcGVjaWZpYyBhc3NldCAoZS5nLiBgXCJVU0RUXCJgLCBgXCJCVENcImApLiAqL1xuICAgICAgY29pbj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXaW5kb3cgZW5kIChtcyBzaW5jZSBlcG9jaCwgQmluYW5jZSBkZWZhdWx0OiBwcmVzZW50IHRpbWVzdGFtcCkuXG4gICAgICAgKi9cbiAgICAgIGVuZFRpbWU/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgYHRydWVgLCBpbmNsdWRlIHRoZSBkZXBvc2l0J3Mgc291cmNlIGFkZHJlc3MgaW4gZWFjaCBlbnRyeS4gQmluYW5jZVxuICAgICAgICogZGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICAgICAqL1xuICAgICAgaW5jbHVkZVNvdXJjZT86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUGFnZSBzaXplIChCaW5hbmNlIGRlZmF1bHQgYW5kIG1heDogMTAwMCkuXG4gICAgICAgKi9cbiAgICAgIGxpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFBhZ2luYXRpb24gb2Zmc2V0IChCaW5hbmNlIGRlZmF1bHQ6IDApLlxuICAgICAgICovXG4gICAgICBvZmZzZXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2luZG93IHN0YXJ0IChtcyBzaW5jZSBlcG9jaCwgQmluYW5jZSBkZWZhdWx0OiA5MCBkYXlzIGZyb20gY3VycmVudCB0aW1lc3RhbXApLlxuICAgICAgICovXG4gICAgICBzdGFydFRpbWU/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRmlsdGVyIGJ5IGRlcG9zaXQgc3RhdHVzLiBCaW5hbmNlIHZhbHVlczogYDBgID0gcGVuZGluZywgYDZgID0gY3JlZGl0ZWRcbiAgICAgICAqIGJ1dCBjYW5ub3Qgd2l0aGRyYXcsIGA3YCA9IHdyb25nIGRlcG9zaXQsIGA4YCA9IHdhaXRpbmcgdXNlciBjb25maXJtLFxuICAgICAgICogYDFgID0gc3VjY2VzcywgYDJgID0gcmVqZWN0ZWQuIExlZnQgYXMgYHU4YCBmb3IgZm9yd2FyZCBjb21wYXRpYmlsaXR5LlxuICAgICAgICovXG4gICAgICBzdGF0dXM/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBMb29rIHVwIGEgc3BlY2lmaWMgZGVwb3NpdCBieSBpdHMgb24tY2hhaW4gdHJhbnNhY3Rpb24gaGFzaC4gKi9cbiAgICAgIHR4SWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19iaW5hbmNlRGVwb3NpdEhpc3RvcnlgLlxuICAgICAqXG4gICAgICogQmluYW5jZSByZXR1cm5zIGEgdG9wLWxldmVsIEpTT04gYXJyYXk7IHRoaXMgbmV3dHlwZSBwcmVzZXJ2ZXMgdGhhdCB3aXJlXG4gICAgICogZm9ybWF0IHdoaWxlIGdpdmluZyB0aGUgcmVzcG9uc2UgYSBuYW1lZCB0eXBlIGluIHRoZSBPcGVuQVBJIHNjaGVtYS5cbiAgICAgKi9cbiAgICBEZXBvc2l0SGlzdG9yeVJlc3BvbnNlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcG9zaXRIaXN0b3J5RW50cnlcIl1bXTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYEdFVCAvc2FwaS92MS9jYXBpdGFsL2RlcG9zaXQvYWRkcmVzc2AuXG4gICAgICpcbiAgICAgKiBGZXRjaGVzIHRoZSBkZXBvc2l0IGFkZHJlc3MgZm9yIGBjb2luYCBvbiB0aGUgYWNjb3VudCB0aGF0IHRoZSBzaWduaW5nIGtleVxuICAgICAqIGF1dGhlbnRpY2F0ZXMgYXMuIE9wdGlvbmFsbHkgbmFycm93cyB0aGUgYWRkcmVzcyB0byBhIHNwZWNpZmljIGBuZXR3b3JrYC5cbiAgICAgKi9cbiAgICBEZXBvc2l0UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWlyZWQgb25seSB3aGVuIGBuZXR3b3JrYCBpcyBgXCJMSUdIVE5JTkdcImA6IHRoZSBkZXBvc2l0IGFtb3VudCB0aGF0XG4gICAgICAgKiB0aGUgcmV0dXJuZWQgaW52b2ljZSBzaG91bGQgZW5jb2RlLCBhcyBhIGRlY2ltYWwgc3RyaW5nLlxuICAgICAgICovXG4gICAgICBhbW91bnQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYXNzZXQgc3ltYm9sIHdob3NlIGRlcG9zaXQgYWRkcmVzcyB0byBmZXRjaCAoZS5nLiBgXCJVU0RUXCJgLCBgXCJCVENcImApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gTmV0d29yayBpZGVudGlmaWVyIChlLmcuIGBcIkJTQ1wiYCwgYFwiRVRIXCJgKS4gSWYgb21pdHRlZCwgQmluYW5jZSByZXR1cm5zXG4gICAgICAgKiB0aGUgYWRkcmVzcyBvbiB0aGUgYXNzZXQncyBkZWZhdWx0IG5ldHdvcmsuXG4gICAgICAgKi9cbiAgICAgIG5ldHdvcms/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCBieSBgY3NfYmluYW5jZURlcG9zaXRgLiAqL1xuICAgIERlcG9zaXRSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXBvc2l0IGFkZHJlc3MuICovXG4gICAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFzc2V0IHN5bWJvbCAoZWNob2VzIHRoZSByZXF1ZXN0J3MgYGNvaW5gIGZpZWxkKS4gKi9cbiAgICAgIGNvaW46IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFNlY29uZGFyeSBhZGRyZXNzIGlkZW50aWZpZXIgcmVxdWlyZWQgYnkgc29tZSBhc3NldHMgKGUuZy4gbWVtbyBmb3JcbiAgICAgICAqIFhSUCwgdGFnIGZvciBYTE0pLiBFbXB0eSBzdHJpbmcgd2hlbiB0aGUgYXNzZXQgZG9lcyBub3QgdXNlIG9uZS5cbiAgICAgICAqL1xuICAgICAgdGFnOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEJsb2NrY2hhaW4gZXhwbG9yZXIgVVJMIGZvciBgYWRkcmVzc2AuICovXG4gICAgICB1cmw6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBwcm9kdWNlZCBieSBhIHN1Y2Nlc3NmdWwgZGVwb3NpdFxuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgIFwiY2hhaW5faWRcIjogNSxcbiAgICAgKiAgIFwiZGVwb3NpdF90eG5cIjoge1xuICAgICAqICAgICBcImRhdGFcIjogXCIweC4uLlwiLFxuICAgICAqICAgICBcInRvXCI6IFwiMHhmZjUwZWQzZDBlYzAzYWMwMWQ0Yzc5YWFkNzQ5MjhiZmY0OGE3YjJiXCIsXG4gICAgICogICAgIFwidmFsdWVcIjogXCIweDFiYzE2ZDY3NGVjODAwMDAwXCJcbiAgICAgKiAgIH0sXG4gICAgICogICBcIm5ld192YWxpZGF0b3JfcGtcIjogXCI5NzAwZmJiOGM5MDY5NDI0NDJjMmE1YjNhZDc0OThmMjdhZWRkYTI1Mzc4NmE2ZmJhYThmZWY0N2ZiN2FmMjM0ZTUwY2YyY2NlODE1YTU1MzA4Nzk5MmFlNTY1ZDQ4ZGFcIlxuICAgICAqIH1cbiAgICAgKi9cbiAgICBEZXBvc2l0VHhuOiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBDaGFpbiBJRCBmb3Igd2hpY2ggdGhlIGRlcG9zaXQgdHJhbnNhY3Rpb24gd2FzIGNyZWF0ZWRcbiAgICAgICAqL1xuICAgICAgY2hhaW5faWQ6IG51bWJlcjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGRlcG9zaXQgdHJhbnNhY3Rpb24uIEluY2x1ZGVzIG9ubHkgYHRvYCwgYHZhbHVlYCwgYW5kIGBkYXRhYCBmaWVsZHMuICovXG4gICAgICBkZXBvc2l0X3R4bjogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgY29tcHJlc3NlZCBmb3JtIG9mIHRoZSBuZXcgdmFsaWRhdG9yIEJMUyBwdWJsaWMga2V5ICovXG4gICAgICBuZXdfdmFsaWRhdG9yX3BrOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHR5cGUgb2YgZGVwb3NpdCB0byBwZXJmb3JtXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBEZXBvc2l0VHlwZTogXCJDYW5vbmljYWxcIiB8IFwiV3JhcHBlclwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVxdWVzdCB0byBkZXJpdmUga2V5cyBmb3Igb25lIHR5cGUgZnJvbSBhIHNwZWNpZmllZCBtbmVtb25pYy4gKi9cbiAgICBEZXJpdmVLZXlSZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZUFuZFVwZGF0ZUtleVByb3BlcnRpZXNcIl0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IG9mIGRlcml2YXRpb24gcGF0aHMgZm9yIHdoaWNoIHRvIGRlcml2ZS5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJtLzQ0Jy82MCcvMCcvMC8wXCIsXG4gICAgICAgKiAgIFwibS80NCcvOTAwMCcvMCcvMC8wXCJcbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgZGVyaXZhdGlvbl9wYXRoOiBzdHJpbmdbXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFdoZW4gZmFsc2UgKHRoZSBkZWZhdWx0KSwgbm90aGluZyBpcyByZXR1cm5lZCB3aGVuIGEgZGVyaXZlZCBrZXkgYWxyZWFkeVxuICAgICAgICogZXhpc3RzLiBXaGVuIHRydWUsIHJldHVybnMgdGhlIEtleUluZm8gc3RydWN0IGZvciBrZXlzIHRoYXQgYWxyZWFkeSBleGlzdFxuICAgICAgICogaWYgY2FsbGVyIGlzIGFsbG93ZWQgdG8gbGlzdCB0aGF0IGtleS5cbiAgICAgICAqL1xuICAgICAgaWRlbXBvdGVudD86IGJvb2xlYW47XG4gICAgICBrZXlfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlUeXBlXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gTWF0ZXJpYWwtaWQgb2YgdGhlIG1uZW1vbmljIHRvIHVzZSBmb3IgZGVyaXZhdGlvbi5cbiAgICAgICAqIEBleGFtcGxlIDB4OWYwN2JlODJkOTM0ZmNiNWQwZjc1ZGQyNGMyZGZlYThhODVhNGQwYzI4OWQ1ODgyOGIzNTM3ZmFlMjRkMzJiOFxuICAgICAgICovXG4gICAgICBtbmVtb25pY19pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IHRvIGRlcml2ZSBrZXlzIGZvciBtdWx0aXBsZSB0eXBlcyBmcm9tIGEgc3BlY2lmaWVkIG1uZW1vbmljLiAqL1xuICAgIERlcml2ZUtleXNSZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZUFuZFVwZGF0ZUtleVByb3BlcnRpZXNcIl0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGVuIGZhbHNlICh0aGUgZGVmYXVsdCksIG5vdGhpbmcgaXMgcmV0dXJuZWQgd2hlbiBhIGRlcml2ZWQga2V5IGFscmVhZHlcbiAgICAgICAqIGV4aXN0cy4gV2hlbiB0cnVlLCByZXR1cm5zIHRoZSBLZXlJbmZvIHN0cnVjdCBmb3Iga2V5cyB0aGF0IGFscmVhZHkgZXhpc3RcbiAgICAgICAqIGlmIGNhbGxlciBpcyBhbGxvd2VkIHRvIGxpc3QgdGhhdCBrZXkuXG4gICAgICAgKi9cbiAgICAgIGlkZW1wb3RlbnQ/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gS2V5IHR5cGVzIGFuZCBjb3JyZXNwb25kaW5nIHBhdGhzIGZvciBkZXJpdmF0aW9uLCBwbHVzIG9wdGlvbmFsXG4gICAgICAgKiBwb2xpY2llcyB0byBpbmNsdWRlIGZvciBzcGVjaWZpYyBrZXlzLiBJdCBpcyBhbiBlcnJvciB0byBzcGVjaWZ5XG4gICAgICAgKiBhIHBvbGljeSB0aGF0IGRvZXMgbm90IGFwcGx5IHRvIHRoZSBjb3JyZXNwb25kaW5nIGtleSB0eXBlLlxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJkZXJpdmF0aW9uX3BhdGhcIjogXCJtLzQ0Jy82MCcvMCcvMC8wXCIsXG4gICAgICAgKiAgICAgXCJrZXlfdHlwZVwiOiBcIlNlY3BFdGhBZGRyXCJcbiAgICAgICAqICAgfSxcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiZGVyaXZhdGlvbl9wYXRoXCI6IFwibS8xMScvMjInLzMzXCIsXG4gICAgICAgKiAgICAgXCJrZXlfdHlwZVwiOiBcIlRhcHJvb3RCdGNcIixcbiAgICAgICAqICAgICBcInBvbGljeVwiOiBbXG4gICAgICAgKiAgICAgICBcIkFsbG93UmF3QmxvYlNpZ25pbmdcIlxuICAgICAgICogICAgIF1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBrZXlfdHlwZXNfYW5kX2Rlcml2YXRpb25fcGF0aHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZUFuZERlcml2YXRpb25QYXRoXCJdW107XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXRlcmlhbC1pZCBvZiB0aGUgbW5lbW9uaWMgdG8gdXNlIGZvciBkZXJpdmF0aW9uLiBJZiB1bnNwZWNpZmllZCxcbiAgICAgICAqIGEgbmV3IG1uZW1vbmljIGlzIGZpcnN0IGNyZWF0ZWQuXG4gICAgICAgKiBAZXhhbXBsZSAweDlmMDdiZTgyZDkzNGZjYjVkMGY3NWRkMjRjMmRmZWE4YTg1YTRkMGMyODlkNTg4MjhiMzUzN2ZhZTI0ZDMyYjhcbiAgICAgICAqL1xuICAgICAgbW5lbW9uaWNfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgRGlmZmllSGVsbG1hblJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHNldCBvZiBzZXJpYWxpemVkIGVsbGlwdGljIGN1cnZlIHBvaW50cyBmcm9tIHdoaWNoIHRvIGNvbXB1dGUgc2hhcmVkIHNlY3JldHMuXG4gICAgICAgKiBUaGUgc2VyaWFsaXphdGlvbiBmb3JtYXQgb2YgdGhlc2UgcG9pbnRzIGRlcGVuZHMgb24gdGhlIGtleSB0eXBlOyBzZWUgdGhlIEN1YmVTaWduZXJcbiAgICAgICAqIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAgICAgKi9cbiAgICAgIHBvaW50czogc3RyaW5nW107XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBvcHRpb25hbCBOSVNUIFAtMjU2IHB1YmxpYyBrZXkgKGJhc2U2NC1lbmNvZGVkIFNFQzEgd2l0aCBvciB3aXRob3V0IGNvbXByZXNzaW9uKS5cbiAgICAgICAqXG4gICAgICAgKiBJZiBwcm92aWRlZCwgdGhlIHJlc3BvbnNlIHdpbGwgYmUgZW5jcnlwdGVkIHRvIHRoaXMgcHVibGljIGtleSB1c2luZyBSRkM5MTgwXG4gICAgICAgKiBIUEtFLURIS0VNKFAtMjU2LCBIS0RGLVNIQTI1Nikgd2l0aCBBRVMtMjU2LUdDTSBhcyB0aGUgc3ltbWV0cmljIGNpcGhlci5cbiAgICAgICAqXG4gICAgICAgKiBJZiBubyBwdWJsaWMga2V5IGlzIHNwZWNpZmllZCwgdGhlIHJlc3VsdHMgd2lsbCBiZSByZXR1cm5lZCB1bmVuY3J5cHRlZC4gSW4gdGhpc1xuICAgICAgICogY2FzZSwgdGhlIGlucHV0IHBvaW50cyBzaG91bGQgYmUgbWFza2VkIHdpdGggYSByYW5kb20gc2NhbGFyIHRvIGF2b2lkIGxlYWtpbmcgdGhlXG4gICAgICAgKiBzaGFyZWQgc2VjcmV0IGluIHRoZSByZXNwb25zZTsgdGhlIHJlc3VsdHMgY2FuIGJlIHVubWFza2VkIHZpYSBwb2ludCBtdWx0aXBsaWNhdGlvblxuICAgICAgICogd2l0aCB0aGUgaW52ZXJzZSBvZiB0aGUgbWFza2luZyBzY2FsYXIuXG4gICAgICAgKiBAZXhhbXBsZSBBa3BMVC8zZFhBcEp6WFNkdWFQUTdhcHlUMEFEQndxa3QxZXMvYVQwaVdXZlxuICAgICAgICovXG4gICAgICBwdWJsaWNfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3VsdCBvZiBhIERpZmZpZSBIZWxsbWFuIGtleSBleGNoYW5nZSAqL1xuICAgIERpZmZpZUhlbGxtYW5SZXNwb25zZTogKFxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzdWx0aW5nIHBvaW50cyBhcyBiYXNlNjQtZW5jb2RlZCBieXRlIHN0cmluZ3MgaW4gYSBrZXktdHlwZS0tZGVwZW5kZW50IGZvcm1hdC4gKi9cbiAgICAgICAgICBwb2ludHM6IHN0cmluZ1tdO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIHJlc3BvbnNlX3R5cGU6IFwibWFza2VkXCI7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGNpcGhlcnRleHQgY29udGFpbmluZyB0aGUgcmVzdWx0aW5nIHBvaW50cy4gVGhlIGVuY2xvc2VkIHBsYWludGV4dCBpcyBhIHNlcXVlbmNlXG4gICAgICAgICAgICogb2YgYmFzZTY0LWVuY29kZWQgYnl0ZSBzdHJpbmdzIGluIGEga2V5LXR5cGUtLWRlcGVuZGVudCBmb3JtYXQuXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW5jcnlwdGVkX3NoYXJlZF9zZWNyZXRzOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlcGhlbWVyYWwgcHVibGljIGtleSB1c2VkIGZvciBIUEtFIGtleSBkZXJpdmF0aW9uIGluIGJhc2U2NC1lbmNvZGVkXG4gICAgICAgICAgICogdW5jb21wcmVzc2VkIFNFQzEgc2VyaWFsaXphdGlvbi5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlcGhlbWVyYWxfcHVibGljX2tleTogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIHJlc3BvbnNlX3R5cGU6IFwiZW5jcnlwdGVkXCI7XG4gICAgICAgIH1cbiAgICApICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBwb2xpY3kgZXZhbHVhdGlvbiB0cmVlLiAqL1xuICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgfSAmIFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQSBwb2xpY3kgd2hpY2ggZ292ZXJucyB3aGVuIGFuZCB3aG8gaXMgYWxsb3dlZCB0byB1cGRhdGUgdGhlIGVudGl0eSB0aGlzIHBvbGljeSBpc1xuICAgICAqIGF0dGFjaGVkIHRvIChlLmcuLCBhIHJvbGUgb3IgYSBrZXkpLlxuICAgICAqXG4gICAgICogV2hlbiBhdHRhY2hlZCB0byBhIHJvbGUsIGJ5IGRlZmF1bHQsIHRoaXMgcG9saWN5IGFwcGxpZXMgdG8gcm9sZSBkZWxldGlvbiBhbmQgYWxsXG4gICAgICogcm9sZSB1cGRhdGVzIChpbmNsdWRpbmcgYWRkaW5nL3JlbW92aW5nIGtleXMgYW5kIHVzZXJzKTsgaW4gdGVybXMgb2Ygc2NvcGVzLFxuICAgICAqIGl0IGFwcGxpZXMgdG8gYG1hbmFnZTpyb2xlOnVwZGF0ZToqYCBhbmQgYG1hbmFnZTpyb2xlOmRlbGV0ZWAuXG4gICAgICpcbiAgICAgKiBXaGVuIGF0dGFjaGVkIHRvIGEga2V5LCBieSBkZWZhdWx0LCB0aGlzIHBvbGljeSBhcHBsaWVzIHRvIGtleSBkZWxldGlvbiwgYWxsXG4gICAgICoga2V5IHVwZGF0ZXMsIGFuZCBhZGRpbmcvcmVtb3ZpbmcgdGhhdCBrZXkgdG8vZnJvbSBhIHJvbGU7IGluIHRlcm1zIG9mIHNjb3BlcyxcbiAgICAgKiBpdCBhcHBsaWVzIHRvIGBtYW5hZ2U6a2V5OnVwZGF0ZToqYCwgYG1hbmFnZTprZXk6ZGVsZXRlYCwgYG1hbmFnZTpyb2xlOnVwZGF0ZTprZXk6KmAuXG4gICAgICpcbiAgICAgKiBUaGlzIGRlZmF1bHQgY2FuIGJlIGNoYW5nZWQgYnkgc2V0dGluZyB0aGUgYGFwcGxpZXNfdG9fc2NvcGVzYCBwcm9wZXJ0eS5cbiAgICAgKi9cbiAgICBFZGl0UG9saWN5OiB7XG4gICAgICBhcHBsaWVzX3RvX3Njb3Blcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2NvcGVTZXRcIl07XG4gICAgICBtZmE/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVBvbGljeVwiXSB8IG51bGw7XG4gICAgICB0aW1lX2xvY2tfdW50aWw/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl0gfCBudWxsO1xuICAgIH07XG4gICAgRWlwMTkxU2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRUlQLTE5MSBkYXRhIHRvIHNpZ24gYXMgaGV4LWVuY29kZWQgYnl0ZXMuXG4gICAgICAgKiBAZXhhbXBsZSAweGRlYWRiZWVmMTNjMGZmZWVcbiAgICAgICAqL1xuICAgICAgZGF0YTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQW4gb3B0aW9uYWwgdHdlYWsgdmFsdWUgdGhhdCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIHNlY3JldCBrZXkgYmVmb3JlIHNpZ25pbmcuXG4gICAgICAgKiBUaGlzIGZpZWxkIG11c3QgY29udGFpbiBhIGJhc2UtNjQgc3RyaW5nIGVuY29kaW5nIGEgdmVjdG9yIG9mIGV4YWN0bHkgMzIgYnl0ZXMuXG4gICAgICAgKiBTZWUgdGhlIEN1YmVTaWduZXIgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgdHdlYWtpbmcgcHJvY2VkdXJlLlxuICAgICAgICogQGV4YW1wbGUgRjQxSEF5MnE1R244bGFGMkN1TXNaYlJBUVRtRCs0T2IzVlVNWjdUQkdLND1cbiAgICAgICAqL1xuICAgICAgdHdlYWs/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJjaGFpbl9pZFwiOiAxMzM3LFxuICAgICAqICAgXCJ0eXBlZF9kYXRhXCI6IHtcbiAgICAgKiAgICAgXCJkb21haW5cIjoge1xuICAgICAqICAgICAgIFwiY2hhaW5JZFwiOiAxMzM3LFxuICAgICAqICAgICAgIFwibmFtZVwiOiBcIkV0aGVyIE1haWxcIixcbiAgICAgKiAgICAgICBcInNhbHRcIjogXCIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIixcbiAgICAgKiAgICAgICBcInZlcmlmeWluZ0NvbnRyYWN0XCI6IFwiMHhDY0NDY2NjY0NDQ0NjQ0NDQ0NDY0NjQ2NjQ2NDQ0NjQ2NjY2NjY2NDXCIsXG4gICAgICogICAgICAgXCJ2ZXJzaW9uXCI6IFwiMVwiXG4gICAgICogICAgIH0sXG4gICAgICogICAgIFwibWVzc2FnZVwiOiB7XG4gICAgICogICAgICAgXCJjb250ZW50c1wiOiBcIkhlbGxvLCBCb2IhXCIsXG4gICAgICogICAgICAgXCJmcm9tXCI6IHtcbiAgICAgKiAgICAgICAgIFwibmFtZVwiOiBcIkNvd1wiLFxuICAgICAqICAgICAgICAgXCJ3YWxsZXRzXCI6IFtcbiAgICAgKiAgICAgICAgICAgXCIweENEMmEzZDlGOTM4RTEzQ0Q5NDdFYzA1QWJDN0ZFNzM0RGY4REQ4MjZcIixcbiAgICAgKiAgICAgICAgICAgXCIweERlYURiZWVmZEVBZGJlZWZkRWFkYkVFRmRlYWRiZUVGZEVhRGJlZUZcIlxuICAgICAqICAgICAgICAgXVxuICAgICAqICAgICAgIH0sXG4gICAgICogICAgICAgXCJ0b1wiOiB7XG4gICAgICogICAgICAgICBcIm5hbWVcIjogXCJCb2JcIixcbiAgICAgKiAgICAgICAgIFwid2FsbGV0c1wiOiBbXG4gICAgICogICAgICAgICAgIFwiMHhiQmJCQkJCYmJCQkJiYmJCYmJCYmJiYkJCYkJiYmJiQmJCYmJCQmJCXCIsXG4gICAgICogICAgICAgICAgIFwiMHhCMEJkYUJlYTU3QjBCREFCZUE1N2IwYmRBQkVBNTdiMEJEYWJFYTU3XCIsXG4gICAgICogICAgICAgICAgIFwiMHhCMEIwYjBiMGIwYjBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCJcbiAgICAgKiAgICAgICAgIF1cbiAgICAgKiAgICAgICB9XG4gICAgICogICAgIH0sXG4gICAgICogICAgIFwicHJpbWFyeVR5cGVcIjogXCJNYWlsXCIsXG4gICAgICogICAgIFwidHlwZXNcIjoge1xuICAgICAqICAgICAgIFwiRUlQNzEyRG9tYWluXCI6IFtcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwibmFtZVwiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAqICAgICAgICAgfSxcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwidmVyc2lvblwiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAqICAgICAgICAgfSxcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwiY2hhaW5JZFwiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJ1aW50MjU2XCJcbiAgICAgKiAgICAgICAgIH0sXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcInZlcmlmeWluZ0NvbnRyYWN0XCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcImFkZHJlc3NcIlxuICAgICAqICAgICAgICAgfSxcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwic2FsdFwiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJieXRlczMyXCJcbiAgICAgKiAgICAgICAgIH1cbiAgICAgKiAgICAgICBdLFxuICAgICAqICAgICAgIFwiR3JvdXBcIjogW1xuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJuYW1lXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICogICAgICAgICB9LFxuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJtZW1iZXJzXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcIlBlcnNvbltdXCJcbiAgICAgKiAgICAgICAgIH1cbiAgICAgKiAgICAgICBdLFxuICAgICAqICAgICAgIFwiTWFpbFwiOiBbXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcImZyb21cIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwiUGVyc29uXCJcbiAgICAgKiAgICAgICAgIH0sXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcInRvXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcIlBlcnNvblwiXG4gICAgICogICAgICAgICB9LFxuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJjb250ZW50c1wiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAqICAgICAgICAgfVxuICAgICAqICAgICAgIF0sXG4gICAgICogICAgICAgXCJQZXJzb25cIjogW1xuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJuYW1lXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICogICAgICAgICB9LFxuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJ3YWxsZXRzXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcImFkZHJlc3NbXVwiXG4gICAgICogICAgICAgICB9XG4gICAgICogICAgICAgXVxuICAgICAqICAgICB9XG4gICAgICogICB9XG4gICAgICogfVxuICAgICAqL1xuICAgIEVpcDcxMlNpZ25SZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERvIG5vdCBwcm9kdWNlIGEgdmFsaWQgc2lnbmF0dXJlLCBqdXN0IGV2YWx1YXRlIGF0dGFjaGVkIHBvbGljaWVzLiAqL1xuICAgICAgZHJ5X3J1bj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3BvbnNlLCBleHBsYWluaW5nXG4gICAgICAgKiB0aGUgb3V0Y29tZSAoaS5lLiwgcGVybWl0dGVkIHZzLiBkZW5pZWQgdnMuIE1GQSByZXF1aXJlZCkgb2YgdGhlIHNpZ24gcmVxdWVzdC5cbiAgICAgICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBleHBsYWluPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIE1GQSBpcyByZXF1aXJlZCwgZmFpbCB0aGUgcmVxdWVzdCBpbnN0ZWFkIG9mIHJldHVybmluZyAyMDIgYW5kIGNyZWF0aW5nXG4gICAgICAgKiBwZW5kaW5nIE1GQSByZXF1ZXN0LiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZmFpbF9vbl9tZmE/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbWV0YWRhdGEuIFBhc3NpbmcgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhcyBtZXRhZGF0YSBjYW4gYmUgdXNlZCB0byBtYWtlIHJldmlld2luZ1xuICAgICAgICogb2YgcGVuZGluZyBNRkEgcmVxdWVzdHMgYW5kL29yIGhpc3RvcmljYWwga2V5IHRyYW5zYWN0aW9ucyBtb3JlIHRyYW5zcGFyZW50LiBJdCBjYW4gYWxzbyBiZSB1c2VkIGUuZy4sIHRvIGNhcnJ5IGFkZGl0aW9uYWwgZGF0YSB0byBXZWJIb29rIHBvbGljaWVzLlxuICAgICAgICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBjaGFpbi1pZCB0byB3aGljaCB0aGlzIHR5cGVkIGRhdGEgd2lsbCBiZSBzZW50XG4gICAgICAgKi9cbiAgICAgIGNoYWluX2lkOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBvcHRpb25hbCB0d2VhayB2YWx1ZSB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgc2VjcmV0IGtleSBiZWZvcmUgc2lnbmluZy5cbiAgICAgICAqIFRoaXMgZmllbGQgbXVzdCBjb250YWluIGEgYmFzZS02NCBzdHJpbmcgZW5jb2RpbmcgYSB2ZWN0b3Igb2YgZXhhY3RseSAzMiBieXRlcy5cbiAgICAgICAqIFNlZSB0aGUgQ3ViZVNpZ25lciBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSB0d2Vha2luZyBwcm9jZWR1cmUuXG4gICAgICAgKiBAZXhhbXBsZSBGNDFIQXkycTVHbjhsYUYyQ3VNc1piUkFRVG1EKzRPYjNWVU1aN1RCR0s0PVxuICAgICAgICovXG4gICAgICB0d2Vhaz86IHN0cmluZyB8IG51bGw7XG4gICAgICB0eXBlZF9kYXRhOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlR5cGVkRGF0YVwiXTtcbiAgICB9O1xuICAgIEVpcDc3MDJTaWduUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgYWRkcmVzcyB0byBkZWxlZ2F0ZSB0byAodGhlIHRhcmdldCBvZiB0aGUgYXV0aG9yaXphdGlvbiksIGFzXG4gICAgICAgKiBoZXgtZW5jb2RlZCBieXRlcy4gTXVzdCBiZSBleGFjdGx5IDIwIGJ5dGVzLlxuICAgICAgICogQGV4YW1wbGUgMHgxMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExXG4gICAgICAgKi9cbiAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBjaGFpbiBpZCBmb3Igd2hpY2ggdGhpcyBhdXRob3JpemF0aW9uIGlzIHZhbGlkLiBBIHZhbHVlIG9mIGAwYCBtZWFuc1xuICAgICAgICogdGhlIGF1dGhvcml6YXRpb24gaXMgdmFsaWQgb24gYW55IGNoYWluIHRoYXQgc3VwcG9ydHMgRUlQLTc3MDIuXG4gICAgICAgKi9cbiAgICAgIGNoYWluX2lkOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbm9uY2Ugb2YgdGhlIGF1dGhvcml6aW5nIGFjY291bnQuXG4gICAgICAgKi9cbiAgICAgIG5vbmNlOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBvcHRpb25hbCB0d2VhayB2YWx1ZSB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgc2VjcmV0IGtleSBiZWZvcmUgc2lnbmluZy5cbiAgICAgICAqIFRoaXMgZmllbGQgbXVzdCBjb250YWluIGEgYmFzZS02NCBzdHJpbmcgZW5jb2RpbmcgYSB2ZWN0b3Igb2YgZXhhY3RseSAzMiBieXRlcy5cbiAgICAgICAqIFNlZSB0aGUgQ3ViZVNpZ25lciBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSB0d2Vha2luZyBwcm9jZWR1cmUuXG4gICAgICAgKiBAZXhhbXBsZSBGNDFIQXkycTVHbjhsYUYyQ3VNc1piUkFRVG1EKzRPYjNWVU1aN1RCR0s0PVxuICAgICAgICovXG4gICAgICB0d2Vhaz86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICBFbWFpbDogc3RyaW5nO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gYW5zd2VyIHRvIHRoZSBjaGFsbGVuZ2UgcmV0dXJuZWQgYnkgdGhlIGBtZmFfZW1haWxfaW5pdGAgZW5kcG9pbnQuICovXG4gICAgRW1haWxPdHBBbnN3ZXI6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEZ1bGwgSldUIHRva2VuLCBjb25zdHJ1Y3RlZCBieSBjb25jYXRlbmF0aW5nIHRoZSBcInBhcnRpYWwgdG9rZW5cIlxuICAgICAgICogKGkuZS4sIGB7aGVhZGVyfS57cGF5bG9hZH0uYCkgcmV0dXJuZWQgYnkgdGhlIGBtYWlsX2VtYWlsX2luaXRgIGVuZHBvaW50XG4gICAgICAgKiBhbmQgdGhlIHNpZ25hdHVyZSBzZW50IHRvIHRoZSB1c2VyJ3MgZW1haWwuXG4gICAgICAgKi9cbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXF1ZXN0IHVzZXJzIHNlbmQgdG8gaW5pdGlhdGUgZW1haWwgT1RQICovXG4gICAgRW1haWxPdHBSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCB3aGljaCB3aWxsIHJlY2VpdmUgdGhlIE9UUCAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSFRUUCByZXNwb25zZSB0byBhbiBlbWFpbCBPVFAgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIFRoaXMgcmVzcG9uc2UgY29udGFpbnMgYW4gT0lEQyB0b2tlbiB3aXRob3V0IGEgc2lnbmF0dXJlLlxuICAgICAqIFRoZSBzaWduYXR1cmUgaXMgc2VudCB0byB0aGUgZW5kLXVzZXIgaW4gYW4gZW1haWwuXG4gICAgICogVGhlIHRva2VuIGNhbiBiZSByZWNvbnN0cnVjdGVkIGJ5IGNvbmNhdGVuYXRpbmcgdGhlIGBwYXJ0aWFsX3Rva2VuYCB3aXRoIHRoZSBzaWduYXR1cmUuXG4gICAgICovXG4gICAgRW1haWxPdHBSZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIE9JREMgdG9rZW4gd2l0aG91dCB0aGUgc2lnbmF0dXJlLlxuICAgICAgICogKFRoZSBzaWduYXR1cmUsIHdoaWNoIGlzIGFjdHVhbGx5IGEgTUFDLCBpcyBzZW50IHRvIHRoZSBlbmQtdXNlciBpbiBhbiBlbWFpbClcbiAgICAgICAqL1xuICAgICAgcGFydGlhbF90b2tlbjogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEZXNjcmliZXMgZW1haWwgcHJlZmVyZW5jZXMgYXQgYW4gT3JnIGxldmVsIC0gd2hhdCBlbWFpbHMgdG8gc2VuZCBhbmQgb3B0aW9ucyBhc3NvY2lhdGVkICovXG4gICAgRW1haWxQcmVmZXJlbmNlczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPcmdBbGVydHNQcmVmc1wiXSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSWYgdHJ1ZSwgc2VuZCBub3RpZmljYXRpb25zIG9uIGV2ZXJ5IGxvZ2luICovXG4gICAgICBsb2dpbl9ub3RpZmljYXRpb25zPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiB0cnVlLCBzZW5kIG5vdGlmaWNhdGlvbnMgd2hlbiBsb2dnaW5nIGluIGZyb20gYSBuZXcgZGV2aWNlLlxuICAgICAgICogbmV3X2RldmljZSB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgbG9naW5fbm90aWZpY2F0aW9ucy4gRS5nLiwgZW1haWwgZm9yXG4gICAgICAgKiBuZXdfZGV2aWNlIGlzIHNlbnQgaW5zdGVhZCBvZiBhIGdlbmVyYWwgbG9naW4gbm90aWZpY2F0aW9uIGVtYWlsIHdoZW4gYVxuICAgICAgICogbmV3IGRldmljZSBpcyBkZXRlY3RlZFxuICAgICAgICovXG4gICAgICBuZXdfZGV2aWNlPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIElmIHRydWUsIHNlbmQgZW1haWwgbm90aWZpY2F0aW9ucyBmb3IgbWZhIGFwcHJvdmFscyAqL1xuICAgICAgcGVuZGluZ19hcHByb3ZhbHM/OiBib29sZWFuIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVxdWVzdCB0byByZXNldCB2ZXJpZmllZCBlbWFpbC4gKi9cbiAgICBFbWFpbFJlc2V0UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGlzIGVtYWlsIHNob3VsZCBiZSB1c2FibGUgZm9yIGVtYWlsIE9UUCBsb2dpbi4gVGhlIHJlcXVlc3RcbiAgICAgICAqIHdpbGwgZmFpbCBpZiB0aGlzIGZpZWxkIGlzIHNldCB0byBgdHJ1ZWAsIGFuZCB0aGUgb3JnIGRvZXMgbm90IGhhdmVcbiAgICAgICAqIGVtYWlsIE9UUCBlbmFibGVkLiBEZWZhdWx0OiBgZmFsc2VgXG4gICAgICAgKi9cbiAgICAgIGFsbG93X290cF9sb2dpbj86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZW1haWwgdG8gcmVnaXN0ZXIgKi9cbiAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlZmF1bHQgbnVsbCAqL1xuICAgIEVtcHR5OiB1bmtub3duO1xuICAgIEVtcHR5SW1wbDoge1xuICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN0YXR1c09rXCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgdG8gY3JlYXRlIGEgc2V0IG9mIEVPVFMgbm9uY2VzIGZvciBhIHNwZWNpZmllZCBjaGFpbi1pZCwgc3RhcnRpbmdcbiAgICAgKiBhdCBhIHNwZWNpZmllZCBibG9jayBoZWlnaHQuXG4gICAgICovXG4gICAgRW90c0NyZWF0ZU5vbmNlUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgY2hhaW4gaWQgZm9yIHdoaWNoIHRoZSBub25jZXMgd2lsbCBiZSB1c2VkLCBhcyBhIGhleCBzdHJpbmdcbiAgICAgICAqIEBleGFtcGxlIDB4MTEyMjMzNDRcbiAgICAgICAqL1xuICAgICAgY2hhaW5faWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBudW1iZXIgb2Ygbm9uY2VzIHRvIGdlbmVyYXRlXG4gICAgICAgKiBAZXhhbXBsZSAxNlxuICAgICAgICovXG4gICAgICBudW06IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydGluZyBibG9jayBoZWlnaHQgb2YgdGhlIGdlbmVyYXRlZCBub25jZXMgKHF1b3RlZCBkZWNpbWFsIHU2NClcbiAgICAgICAqIEBleGFtcGxlIDMxMzM3XG4gICAgICAgKi9cbiAgICAgIHN0YXJ0X2hlaWdodDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSBnZW5lcmF0ZWQgd2hlbiBjcmVhdGluZyBFT1RTIG5vbmNlcyAqL1xuICAgIEVvdHNDcmVhdGVOb25jZVJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGdlbmVyYXRlZCBub25jZXMgYXMgYW4gYXJyYXkgb2YgMHgtcHJlZml4ZWQgaGV4IHN0cmluZ3NcbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCIweGIzOTNiZjM5ZTcxYTE2ZDc4NDg1M2Q1ODI1NWEyOTYyMjJhOTlmZDNjODdhYTdjYTIwNmM1MjMwYzE4OGYxYzdcIixcbiAgICAgICAqICAgXCIweGUwMTkzNjU4NGI0ZjBjMGU5N2YwZDMwMThjNGY5ZGIyYmY3ZGU0MTM5NWM2NDAzYTQ4ZmQwZGZmMGVmN2I0MGRcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBub25jZXM6IHN0cmluZ1tdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IGZvciBhbiBFT1RTIHNpZ25hdHVyZSBvbiBhIHNwZWNpZmllZCBtZXNzYWdlLCBjaGFpbi1pZCwgYmxvY2staGVpZ2h0IHRyaXBsZSAqL1xuICAgIEVvdHNTaWduUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgYmxvY2sgaGVpZ2h0IGZvciB0aGUgc2lnbmF0dXJlIChxdW90ZWQgZGVjaW1hbCB1NjQpXG4gICAgICAgKiBAZXhhbXBsZSAxMjM0NTZcbiAgICAgICAqL1xuICAgICAgYmxvY2tfaGVpZ2h0OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgY2hhaW4gaWQgZm9yIHRoZSBzaWduYXR1cmVcbiAgICAgICAqIEBleGFtcGxlIDB4MTEyMjMzNDRcbiAgICAgICAqL1xuICAgICAgY2hhaW5faWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBtZXNzYWdlIHRvIHNpZ25cbiAgICAgICAqIEBleGFtcGxlIDB4NWEyNjg4ZmFlYTA5ZDQyYjkyNzBmZGI4ZGU2ZmZmNmYxOTIyNDNhOTEwYmE2NjMyOTA3M2UxMmUwZDAwNDZhMlxuICAgICAgICovXG4gICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXBvY2ggaXMgYSBxdW90ZWQgYHVpbnQ2NGAuXG4gICAgICogQGV4YW1wbGUgMjU2XG4gICAgICovXG4gICAgRXBvY2g6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICogQGRlc2NyaXB0aW9uIERhdGVUaW1lIG1lYXN1cmVkIGluIHNlY29uZHMgc2luY2UgdW5peCBlcG9jaC5cbiAgICAgKiBBIHdyYXBwZXIgdHlwZSBmb3Igc2VyaWFsaXphdGlvbiB0aGF0IGVuY29kZXMgYSBbYFN5c3RlbVRpbWVgXSBhcyBhIFtgdTY0YF1cbiAgICAgKiByZXByZXNlbnRpbmcgdGhlIG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIFtgU3lzdGVtVGltZTo6VU5JWF9FUE9DSGBdLlxuICAgICAqL1xuICAgIEVwb2NoRGF0ZVRpbWU6IG51bWJlcjtcbiAgICBFcnJvck9iajoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ29kZVxuICAgICAgICovXG4gICAgICBjb2RlOiBudW1iZXI7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGRhdGEgKi9cbiAgICAgIGRhdGE/OiB1bmtub3duO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBNZXNzYWdlICovXG4gICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzdHJ1Y3R1cmUgb2YgRXJyb3JSZXNwb25zZSBtdXN0IG1hdGNoIHRoZSByZXNwb25zZSB0ZW1wbGF0ZSB0aGF0IEFXUyB1c2VzICovXG4gICAgRXJyb3JSZXNwb25zZToge1xuICAgICAgYWNjZXB0ZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkVmFsdWVcIl0gfCBudWxsO1xuICAgICAgZXJyb3JfY29kZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTaWduZXJFcnJvckNvZGVcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEVycm9yIG1lc3NhZ2UgKi9cbiAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZSAoaW5jbHVkZWQgaW4gc2lnbmVyIHJlc3BvbnNlcywgd2hlbiByZXF1ZXN0ZWQpICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcmVxdWVzdCBpZGVudGlmaWVyICovXG4gICAgICByZXF1ZXN0X2lkPzogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFc3Bsb3JhIHJlcXVlc3QgKi9cbiAgICBFc3Bsb3JhUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIVFRQIGJvZHkgKi9cbiAgICAgIGJvZHk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIVFRQIG1ldGhvZCAqL1xuICAgICAgbWV0aG9kOiBzdHJpbmc7XG4gICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgIG5ldHdvcms6IFwibWFpbm5ldFwiIHwgXCJ0ZXN0bmV0XCIgfCBcInNpZ25ldFwiO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIVFRQIHJlbGF0aXZlIHBhdGggKHdoaWNoIGNvbWVzIGFmdGVyICcve25ldHdvcmt9L2FwaS8nKSAqL1xuICAgICAgcGF0aDogc3RyaW5nO1xuICAgIH07XG4gICAgRXNwbG9yYVJlc3BvbnNlOiB1bmtub3duO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFVk0gdHJhbnNhY3Rpb24gc2lnbmluZyByZXF1ZXN0LlxuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgIFwiY2hhaW5faWRcIjogNDMxMTMsXG4gICAgICogICBcInR4XCI6IHtcbiAgICAgKiAgICAgXCJjaGFpbl9pZFwiOiBcIjB4YTg2OVwiLFxuICAgICAqICAgICBcImdhc1wiOiBcIjB4NjFhODBcIixcbiAgICAgKiAgICAgXCJtYXhGZWVQZXJHYXNcIjogXCIweDk1MDJGOTAwXCIsXG4gICAgICogICAgIFwibWF4UHJpb3JpdHlGZWVQZXJHYXNcIjogXCIweDUwXCIsXG4gICAgICogICAgIFwibm9uY2VcIjogXCIweGJcIixcbiAgICAgKiAgICAgXCJ0b1wiOiBcIjB4ZjAwYmExMmYwMDAwMDAwMGI0MTIxMjAwMDAwZjAwYzBmZmVlZjAwZFwiLFxuICAgICAqICAgICBcInR5cGVcIjogXCIweDJcIixcbiAgICAgKiAgICAgXCJ2YWx1ZVwiOiBcIjB4MTAwMDAwMDAwMDBcIlxuICAgICAqICAgfVxuICAgICAqIH1cbiAgICAgKi9cbiAgICBFdGgxU2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGNoYWluIGlkIHRvIHNldCBpbiB0aGUgZ2l2ZW4gdHJhbnNhY3Rpb24uXG4gICAgICAgKi9cbiAgICAgIGNoYWluX2lkOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBvcHRpb25hbCB0d2VhayB2YWx1ZSB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgc2VjcmV0IGtleSBiZWZvcmUgc2lnbmluZy5cbiAgICAgICAqIFRoaXMgZmllbGQgbXVzdCBjb250YWluIGEgYmFzZS02NCBzdHJpbmcgZW5jb2RpbmcgYSB2ZWN0b3Igb2YgZXhhY3RseSAzMiBieXRlcy5cbiAgICAgICAqIFNlZSB0aGUgQ3ViZVNpZ25lciBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSB0d2Vha2luZyBwcm9jZWR1cmUuXG4gICAgICAgKiBAZXhhbXBsZSBGNDFIQXkycTVHbjhsYUYyQ3VNc1piUkFRVG1EKzRPYjNWVU1aN1RCR0s0PVxuICAgICAgICovXG4gICAgICB0d2Vhaz86IHN0cmluZyB8IG51bGw7XG4gICAgICB0eDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUcmFuc2FjdGlvblwiXTtcbiAgICB9O1xuICAgIEV0aDFTaWduUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBSTFAgZW5jb2Rpbmcgb2YgdGhlIHRyYW5zYWN0aW9uIGFuZCBpdHMgc2lnbmF0dXJlXG4gICAgICAgKiBAZXhhbXBsZSAweDIyODk1MTE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIwMWQ1ODY1NmIwZTIyYWFhNjhmZGM2OTJkYjQxOTc5MDk4YzM4ODZlZDMzMDE1ZDc0NjdkZTkyMTE2MDljZGFjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzA4YjBjMjkwMDMyNGQzZmY5YWRmYmE3ZmRmZTVhZjNmOWIyY2RiZWVmN2IyODA0MzdiYmYxYjFjNTlhMDkzZDYxNWFmZTNlNWRmZWQ5NjIyYjU0MGNkZDliNDliM2M1YWQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OTAxMWFkYmNjM2JjOWMwMzA3YmIwN2YzN2RkYTFhMWE5YzY5ZDJlMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDkwM2RiODUyNTY3NGI4ZTc5MDRmOWI3ZDdkOWVjNTVhMGE0MmQzM2NmNThiZTI1NDY5YjBjMjFiYmI2ZDA2MTcyYmM1YmI1ZmQxYWVkOGU0ZjM1OTM2OTY4OTU4MTE2YjA2MTk1NTNjMmNiMWM1MmU3MzIzMDc0YzZmOGViM2Q1YTcwNzRmYzY1ODAxNDhkZjkwNzgzN2ZhM2IxNjRhZDdmYmMyMjg4ZGFkMWU4YTViMDIxMDk1YjU3YzhhMzZkNFxuICAgICAgICovXG4gICAgICBybHBfc2lnbmVkX3R4OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcImV0aDJfc2lnbl9yZXF1ZXN0XCI6IHtcbiAgICAgKiAgICAgXCJhZ2dyZWdhdGlvbl9zbG90XCI6IHtcbiAgICAgKiAgICAgICBcInNsb3RcIjogXCIzNlwiXG4gICAgICogICAgIH0sXG4gICAgICogICAgIFwiZm9ya19pbmZvXCI6IHtcbiAgICAgKiAgICAgICBcImZvcmtcIjoge1xuICAgICAqICAgICAgICAgXCJjdXJyZW50X3ZlcnNpb25cIjogXCIweDQyNDI0MjQyXCIsXG4gICAgICogICAgICAgICBcImVwb2NoXCI6IFwiMFwiLFxuICAgICAqICAgICAgICAgXCJwcmV2aW91c192ZXJzaW9uXCI6IFwiMHg0MjQyNDI0MlwiXG4gICAgICogICAgICAgfSxcbiAgICAgKiAgICAgICBcImdlbmVzaXNfdmFsaWRhdG9yc19yb290XCI6IFwiMHg5ZDEzZDYxMjEyYzA2N2UwMmNlOGU2MDhhNzAwN2UyYzNiMDI1NzFlOWU2ZjI3ZmY0NWRmYTkxYmYyN2M4NzBiXCJcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgXCJzaWduaW5nUm9vdFwiOiBcIjB4OWM1N2U3N2M0OTY1NzI3NTQyYjkzMzdkZjY3NTZmOTQ4NDY0YmNhMzg1OWJlYTZlZDNjMGVjNjYwMGQ4OTgyYVwiLFxuICAgICAqICAgICBcInR5cGVcIjogXCJBR0dSRUdBVElPTl9TTE9UXCJcbiAgICAgKiAgIH0sXG4gICAgICogICBcIm5ldHdvcmtcIjogXCJtYWlubmV0XCJcbiAgICAgKiB9XG4gICAgICovXG4gICAgRXRoMlNpZ25SZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERvIG5vdCBwcm9kdWNlIGEgdmFsaWQgc2lnbmF0dXJlLCBqdXN0IGV2YWx1YXRlIGF0dGFjaGVkIHBvbGljaWVzLiAqL1xuICAgICAgZHJ5X3J1bj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3BvbnNlLCBleHBsYWluaW5nXG4gICAgICAgKiB0aGUgb3V0Y29tZSAoaS5lLiwgcGVybWl0dGVkIHZzLiBkZW5pZWQgdnMuIE1GQSByZXF1aXJlZCkgb2YgdGhlIHNpZ24gcmVxdWVzdC5cbiAgICAgICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBleHBsYWluPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIE1GQSBpcyByZXF1aXJlZCwgZmFpbCB0aGUgcmVxdWVzdCBpbnN0ZWFkIG9mIHJldHVybmluZyAyMDIgYW5kIGNyZWF0aW5nXG4gICAgICAgKiBwZW5kaW5nIE1GQSByZXF1ZXN0LiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZmFpbF9vbl9tZmE/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbWV0YWRhdGEuIFBhc3NpbmcgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhcyBtZXRhZGF0YSBjYW4gYmUgdXNlZCB0byBtYWtlIHJldmlld2luZ1xuICAgICAgICogb2YgcGVuZGluZyBNRkEgcmVxdWVzdHMgYW5kL29yIGhpc3RvcmljYWwga2V5IHRyYW5zYWN0aW9ucyBtb3JlIHRyYW5zcGFyZW50LiBJdCBjYW4gYWxzbyBiZSB1c2VkIGUuZy4sIHRvIGNhcnJ5IGFkZGl0aW9uYWwgZGF0YSB0byBXZWJIb29rIHBvbGljaWVzLlxuICAgICAgICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFN1YnNldCBvZiB0aGUgV2ViM1NpZ25lciBFdGgyIEJMUyBzaWduaW5nIHJlcXVlc3Qgd2hvc2Ugc2NoZW1hIGlzIGRlZmluZWRcbiAgICAgICAqIFtoZXJlXShodHRwczovL2NvbnNlbnN5cy5naXRodWIuaW8vd2ViM3NpZ25lci93ZWIzc2lnbmVyLWV0aDIuaHRtbCN0YWcvU2lnbmluZy9vcGVyYXRpb24vRVRIMl9TSUdOKS5cbiAgICAgICAqIFdlIGhhbmRsZSBkZXBvc2l0cyBhbmQgdm9sdW50YXJ5IGV4aXRzIHNlcGFyYXRlbHkuXG4gICAgICAgKi9cbiAgICAgIGV0aDJfc2lnbl9yZXF1ZXN0OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgICBuZXR3b3JrOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk5ldHdvcmtcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50YXRpb24gb2YgYW4gZXZlbnQuIFRoaXMgdHlwZSBpcyB1c2VkIHRvIHNlcmlhbGl6ZSBldmVudHMgdG8gQ2xvdWRXYXRjaCBMb2dzIGFuZCB0b1xuICAgICAqIGRlc2VyaWFsaXplIHRoZW0gd2hlbiBhbmFseXppbmcgdGhlIGxvZ3MuXG4gICAgICovXG4gICAgRXZlbnQ6IHtcbiAgICAgIGV2ZW50OiBcIkV2ZW50XCI7XG4gICAgfSAmIE9taXQ8Y29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFdmVudERhdGFcIl0sIFwiZXZlbnRcIj4gJiB7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVW5pcXVlIGlkZW50aWZpZXIgb2YgYW4gZXZlbnQuICovXG4gICAgICAgIGV2ZW50X2lkPzogc3RyaW5nO1xuICAgICAgICBvcmc6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG9yaWdpbiBoZWFkZXIgb2YgdGhlIHJlcXVlc3QgdGhhdCB0cmlnZ2VyZWQgdGhpcyBldmVudCAqL1xuICAgICAgICBvcmlnaW4/OiBzdHJpbmc7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSByZXF1ZXN0IHRoYXQgdHJpZ2dlcmVkIHRoaXMgZXZlbnQgKi9cbiAgICAgICAgcmVxdWVzdF9pZD86IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB0aW1lc3RhbXAgb2YgdGhlIGV2ZW50IChpbiBtaWxsaXNlY29uZHMgc2luY2UgdGhlIFVuaXggRXBvY2gpXG4gICAgICAgICAqL1xuICAgICAgICB1dGNfdGltZXN0YW1wOiBudW1iZXI7XG4gICAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEYXRhIGFzc29jaWF0ZWQgd2l0aCBhbiBldmVudC4gRGVwZW5kaW5nIG9uIHRoZSBldmVudCB0eXBlIChpLmUuLCBiaWxsaW5nIG9yIG9yZyBldmVudCksXG4gICAgICogZGlmZmVyZW50IGZpZWxkcyBhcmUgdXNlZC5cbiAgICAgKi9cbiAgICBFdmVudERhdGE6XG4gICAgICB8IChjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbGxpbmdBcmdzXCJdICYge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIGV2ZW50OiBcImN1YmlzdDo6YmlsbGluZ1wiO1xuICAgICAgICB9KVxuICAgICAgfCAoY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPcmdFdmVudEFyZ3NcIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgZXZlbnQ6IFwiY3ViaXN0OjpvcmdfZXZlbnRcIjtcbiAgICAgICAgfSk7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBFVk0gYWRkcmVzcyBhbmQgaXRzIGNoYWluLiAqL1xuICAgIEV2bUFkZHJlc3NJbmZvOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgRVZNIGFkZHJlc3MuXG4gICAgICAgKiBAZXhhbXBsZSAweDUyZjZjMGIzMDZlNjY4OTNjMDQxNGFiYjcwOTUxYzRkYWMxNWE5NjlcbiAgICAgICAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEVWTSBjaGFpbiB0aGlzIGFkZHJlc3MgYmVsb25ncyB0byAqKmFzIGEgaGV4IHN0cmluZyoqLiBUaGUgc3RyaW5nXG4gICAgICAgKiBtdXN0IHN0YXJ0IHdpdGggXCIweFwiIGFuZCBoYXZlIGFuIGV2ZW4gbGVuZ3RoLiBJZiB0aGUgY2hhaW4gaXMgb21pdHRlZCxcbiAgICAgICAqIHRoZSBhZGRyZXNzIGlzIGFsbG93ZWQgdG8gYmUgdXNlZCBvbiBhbnkgRVZNIGNoYWluLCBhbmQgaXMgcmVmZXJyZWQgdG9cbiAgICAgICAqIGFzIGEgZ2xvYmFsIEVWTSBhZGRyZXNzLlxuICAgICAgICogQGV4YW1wbGUgMHgwMVxuICAgICAgICovXG4gICAgICBjaGFpbj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIGFib3V0IGEgY3VycmVuY3kgdXNlZCBvbiBhbiBFVk0gY2hhaW4uICovXG4gICAgRXZtQ3VycmVuY3lJbmZvOiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRoaXMgY3VycmVuY3kgdXNlcy5cbiAgICAgICAqIEBleGFtcGxlIDE4XG4gICAgICAgKi9cbiAgICAgIGRlY2ltYWxzOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZnVsbCBuYW1lIG9mIHRoZSBjdXJyZW5jeS5cbiAgICAgICAqIEBleGFtcGxlIEV0aGVyXG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzeW1ib2wgZm9yIHRoZSBjdXJyZW5jeSwgdHlwaWNhbGx5IGEgdGhyZWUgbGV0dGVyIHN0cmluZy5cbiAgICAgICAqIEBleGFtcGxlIEVUSFxuICAgICAgICovXG4gICAgICBzeW1ib2w6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSBjdXN0b20gRVZNIGNoYWluLiAqL1xuICAgIEV2bUN1c3RvbUNoYWluOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgY2hhaW4gaWQuIEVuZm9yY2VkIHRvIGJlIHVuaXF1ZSBhbW9uZyBhbGwgY3VzdG9tIEVWTSBjaGFpbnMgaW4gdGhlIG9yZ2FuaXphdGlvbi4gSXQgbXVzdCBiZSBhIGhleCBzdHJpbmcgKHN0YXJ0aW5nIHdpdGggXCIweFwiKSB3aXRoIGV2ZW4gbGVuZ3RoLlxuICAgICAgICogQGV4YW1wbGUgMHgwMVxuICAgICAgICovXG4gICAgICBjaGFpbl9pZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5hbWUgb2YgdGhlIGNoYWluLlxuICAgICAgICogQGV4YW1wbGUgRXRoZXJldW0gTWFpbm5ldFxuICAgICAgICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBuYXRpdmVfY3VycmVuY3k6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXZtQ3VycmVuY3lJbmZvXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFVSTCBvZiB0aGUgUlBDIHByb3ZpZGVyIGZvciB0aGlzIGNoYWluLlxuICAgICAgICogQGV4YW1wbGUgaHR0cHM6Ly9ldGhlcmV1bS1ycGMucHVibGljbm9kZS5jb21cbiAgICAgICAqL1xuICAgICAgcnBjX3VybDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBFVk0gdG9rZW4uICovXG4gICAgRXZtVG9rZW46XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICB0b2tlbjogXCJOYXRpdmVcIjtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgdG9rZW46IFwiRXJjMjBcIjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBFUkMtMjAgdG9rZW4gYWRkcmVzcy4gKi9cbiAgICAgICAgICB0b2tlbl9hZGRyZXNzOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFVk0tc3BlY2lmaWMgdHJhbnNhY3Rpb24gZGV0YWlscy4gKi9cbiAgICBFdm1UcmFuc2FjdGlvbkRldGFpbHM6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBFVk0gY2hhaW4gaWQgZm9yIHRoZSBjaGFpbiB0aGUgdHJhbnNhY3Rpb24gaXMgc3VibWl0dGVkIHRvLlxuICAgICAgICovXG4gICAgICBjaGFpbl9pZDogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHRyYW5zYWN0aW9uIGhhc2gsIGFzIHN1Ym1pdHRlZCB0byB0aGUgY2hhaW4uXG4gICAgICAgKlxuICAgICAgICogQ2FuIGJlIHVuZGVmaW5lZCBpZiB0aGUgdHJhbnNhY3Rpb24gaGFzbid0IGJlZW4gc2lnbmVkIG9yIHN1Ym1pdHRlZCB5ZXQuXG4gICAgICAgKi9cbiAgICAgIGhhc2g/OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc2lnbmF0dXJlIGZvciB0aGUgdHJhbnNhY3Rpb24uXG4gICAgICAgKlxuICAgICAgICogQ2FuIGJlIHVuZGVmaW5lZCBpZiB0aGUgdHJhbnNhY3Rpb24gaGFzbid0IGJlZW4gc2lnbmVkIHlldCwgb3IgZmFpbGVkIHRvIGJlIHNpZ25lZC5cbiAgICAgICAqL1xuICAgICAgc2lnbmF0dXJlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHRyYW5zYWN0aW9uIGl0c2VsZi4gKi9cbiAgICAgIHR4OiB1bmtub3duO1xuICAgIH07XG4gICAgRXZtVHhDbXA6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRvIHByZXZlbnQgcmVwbGF5IGF0dGFja3MsIGFueSBnaXZlbiBNRkEgcmVjZWlwdCBpcyBub3JtYWxseSBhbGxvd2VkIHRvIGJlIHVzZWQgb25seSBvbmNlLlxuICAgICAgICpcbiAgICAgICAqIEluIHRoaXMgY2FzZSwgaG93ZXZlciwgYmVjYXVzZSBFVk0gdHJhbnNhY3Rpb25zIGFscmVhZHkgaGF2ZSBhIHJlcGxheSBwcmV2ZW50aW9uIG1lY2hhbmlzbVxuICAgICAgICogKG5hbWVseSB0aGUgJ25vbmNlJyBwcm9wZXJ0eSksIHdlIGFsbG93IHRoZSB1c2VyIHRvIHNwZWNpZnkgYSBncmFjZSBwZXJpb2QgKGluIHNlY29uZHMpIHRvXG4gICAgICAgKiBpbmRpY2F0ZSBob3cgbG9uZyBhbiBNRkEgcmVjZWlwdCBzaG91bGQgcmVtYWluIHZhbGlkIGFmdGVyIGl0cyBmaXJzdCB1c2UuXG4gICAgICAgKlxuICAgICAgICogTm90ZSB0aGF0IHdlIGFsbG93IGJvdGggJ2dyYWNlJyBhbmQgJ2lnbm9yZV9ub25jZScgdG8gYmUgc2V0IGJlY2F1c2Ugb25jZSBhbiBNRkEgcmVxdWVzdFxuICAgICAgICogZW50ZXJzIGl0cyBncmFjZSBwZXJpb2Qgd2UgdW5jb25kaXRpb25hbGx5IHNldCBpdHMgJ2lnbm9yZV9ub25jZScgcHJvcGVydHkgdG8gJ2ZhbHNlJyB0b1xuICAgICAgICogZW5zdXJlIHRoYXQgYW55IHN1YnNlcXVlbnQgcmVxdWVzdHMgdGhhdCBjbGFpbSB0aGUgc2FtZSByZWNlaXB0IG11c3Qgc2lnbiBmb3IgdGhlIHNhbWVcbiAgICAgICAqIG5vbmNlIGFzIHRoZSByZXF1ZXN0IHdlIHNpZ25lZCBvcmlnaW5hbGx5IHdpdGggdGhhdCByZWNlaXB0LlxuICAgICAgICpcbiAgICAgICAqIEFsc28gbm90ZSB0aGF0IHRoZSBncmFjZSBwZXJpb2QgY2Fubm90IGV4dGVuZCB0aGUgbGlmZXRpbWUgb2YgYW4gTUZBIHJlcXVlc3QgYmV5b25kIGl0c1xuICAgICAgICogb3JpZ2luYWwgZXhwaXJhdGlvbiBkYXRlLlxuICAgICAgICpcbiAgICAgICAqIFRoZSBncmFjZSBwZXJpb2QgbXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIDMwIGRheXMuXG4gICAgICAgKi9cbiAgICAgIGdyYWNlPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgJ2dhcycgcHJvcGVydHkgb2YgdGhlIEVWTSB0cmFuc2FjdGlvbiBpcyBhbGxvd2VkIHRvIGJlIGRpZmZlcmVudC4gKi9cbiAgICAgIGlnbm9yZV9nYXM/OiBib29sZWFuO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSAnbm9uY2UnIHByb3BlcnR5IG9mIHRoZSBFVk0gdHJhbnNhY3Rpb24gaXMgYWxsb3dlZCB0byBiZSBkaWZmZXJlbnQuICovXG4gICAgICBpZ25vcmVfbm9uY2U/OiBib29sZWFuO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBmaWVsZHMgdXNlZCB0byBjdXN0b21pemUgRVZNIHRyYW5zYWN0aW9ucy4gKi9cbiAgICBFdm1UeEN1c3RvbWl6YXRpb246IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGdhcyBsaW1pdC5cbiAgICAgICAqXG4gICAgICAgKiBJZiBub3Qgc3BlY2lmaWVkLCBlc3RpbWF0ZWQgZ2FzIGlzIHVzZWQuXG4gICAgICAgKi9cbiAgICAgIGdhc19saW1pdD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtYXggZmVlIGZvciB0aGUgdHJhbnNhY3Rpb24uXG4gICAgICAgKlxuICAgICAgICogSWYgbm90IHNwZWNpZmllZCwgZXN0aW1hdGVkIGZlZXMgYXJlIHVzZWQuXG4gICAgICAgKi9cbiAgICAgIG1heF9mZWVfcGVyX2dhcz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtYXggcHJpb3JpdHkgZmVlIGZvciB0aGUgdHJhbnNhY3Rpb24uXG4gICAgICAgKlxuICAgICAgICogSWYgbm90IHNwZWNpZmllZCwgZXN0aW1hdGVkIGZlZXMgYXJlIHVzZWQuXG4gICAgICAgKi9cbiAgICAgIG1heF9wcmlvcml0eV9mZWVfcGVyX2dhcz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBub25jZS5cbiAgICAgICAqXG4gICAgICAgKiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgbmV4dCBhdmFpbGFibGUgbm9uY2UgaXMgdXNlZC5cbiAgICAgICAqL1xuICAgICAgbm9uY2U/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgRXZtVHhEZXBvc2l0RXJyb3JDb2RlOlxuICAgICAgfCBcIkV2bVR4RGVwb3NpdFJlY2VpdmVyTWlzbWF0Y2hcIlxuICAgICAgfCBcIkV2bVR4RGVwb3NpdEVtcHR5RGF0YVwiXG4gICAgICB8IFwiRXZtVHhEZXBvc2l0RW1wdHlDaGFpbklkXCJcbiAgICAgIHwgXCJFdm1UeERlcG9zaXRFbXB0eVJlY2VpdmVyXCJcbiAgICAgIHwgXCJFdm1UeERlcG9zaXRVbmV4cGVjdGVkVmFsdWVcIlxuICAgICAgfCBcIkV2bVR4RGVwb3NpdFVuZXhwZWN0ZWREYXRhTGVuZ3RoXCJcbiAgICAgIHwgXCJFdm1UeERlcG9zaXROb0FiaVwiXG4gICAgICB8IFwiRXZtVHhEZXBvc2l0Tm9EZXBvc2l0RnVuY3Rpb25cIlxuICAgICAgfCBcIkV2bVR4RGVwb3NpdFVuZXhwZWN0ZWRGdW5jdGlvbk5hbWVcIlxuICAgICAgfCBcIkV2bVR4RGVwb3NpdFVuZXhwZWN0ZWRWYWxpZGF0b3JLZXlcIlxuICAgICAgfCBcIkV2bVR4RGVwb3NpdEludmFsaWRWYWxpZGF0b3JLZXlcIlxuICAgICAgfCBcIkV2bVR4RGVwb3NpdE1pc3NpbmdEZXBvc2l0QXJnXCJcbiAgICAgIHwgXCJFdm1UeERlcG9zaXRXcm9uZ0RlcG9zaXRBcmdUeXBlXCJcbiAgICAgIHwgXCJFdm1UeERlcG9zaXRWYWxpZGF0b3JLZXlOb3RJblJvbGVcIlxuICAgICAgfCBcIkV2bVR4RGVwb3NpdFVuZXhwZWN0ZWRXaXRoZHJhd2FsQ3JlZGVudGlhbHNcIlxuICAgICAgfCBcIkV2bVR4RGVwb3NpdFVucmVzb2x2ZWRSb2xlXCJcbiAgICAgIHwgXCJFdm1UeERlcG9zaXRJbnZhbGlkRGVwb3NpdEVuY29kaW5nXCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBzb3VyY2Ugb2YgYSBwb2xpY3kgZXhlY3V0aW9uLCBpLmUuIHRoZSByZWFzb24gaXQgd2FzIGV4ZWN1dGVkLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgRXhlY3V0aW9uU291cmNlOiBcIlNpZ25SZXF1ZXN0XCIgfCBcIlVzZXJJbnZvY2F0aW9uXCI7XG4gICAgLyoqXG4gICAgICogRXhwbGljaXRTY29wZVxuICAgICAqIEBkZXNjcmlwdGlvbiBFeHBsaWNpdGx5IG5hbWVkIHNjb3BlcyBmb3IgYWNjZXNzaW5nIEN1YmVTaWduZXIgQVBJc1xuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgRXhwbGljaXRTY29wZTpcbiAgICAgIHwgXCJzaWduOipcIlxuICAgICAgfCBcInNpZ246YXZhXCJcbiAgICAgIHwgXCJzaWduOmJpbmFuY2U6KlwiXG4gICAgICB8IFwic2lnbjpiaW5hbmNlOnN1YlRvTWFzdGVyXCJcbiAgICAgIHwgXCJzaWduOmJpbmFuY2U6c3ViVG9TdWJcIlxuICAgICAgfCBcInNpZ246YmluYW5jZTp1bml2ZXJzYWxUcmFuc2ZlclwiXG4gICAgICB8IFwic2lnbjpiaW5hbmNlOnN1YkFjY291bnRBc3NldHNcIlxuICAgICAgfCBcInNpZ246YmluYW5jZTphY2NvdW50SW5mb1wiXG4gICAgICB8IFwic2lnbjpiaW5hbmNlOnN1YkFjY291bnRUcmFuc2Zlckhpc3RvcnlcIlxuICAgICAgfCBcInNpZ246YmluYW5jZTp1bml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlcIlxuICAgICAgfCBcInNpZ246YmluYW5jZTp3aXRoZHJhd1wiXG4gICAgICB8IFwic2lnbjpiaW5hbmNlOndpdGhkcmF3SGlzdG9yeVwiXG4gICAgICB8IFwic2lnbjpiaW5hbmNlOmRlcG9zaXRcIlxuICAgICAgfCBcInNpZ246YmluYW5jZTpkZXBvc2l0SGlzdG9yeVwiXG4gICAgICB8IFwic2lnbjpiaW5hbmNlOmxpc3RTdWJBY2NvdW50c1wiXG4gICAgICB8IFwic2lnbjpiaW5hbmNlOmNvaW5JbmZvXCJcbiAgICAgIHwgXCJzaWduOmJpbmFuY2U6c3ViQWNjb3VudERlcG9zaXRBZGRyZXNzXCJcbiAgICAgIHwgXCJzaWduOmJ5Yml0OipcIlxuICAgICAgfCBcInNpZ246YnliaXQ6cXVlcnlVc2VyXCJcbiAgICAgIHwgXCJzaWduOmJ5Yml0OnF1ZXJ5U3ViTWVtYmVyc1wiXG4gICAgICB8IFwic2lnbjpieWJpdDpxdWVyeUNvaW5zQmFsYW5jZVwiXG4gICAgICB8IFwic2lnbjpieWJpdDpxdWVyeURlcG9zaXRBZGRyZXNzXCJcbiAgICAgIHwgXCJzaWduOmJ5Yml0OnVuaXZlcnNhbFRyYW5zZmVyXCJcbiAgICAgIHwgXCJzaWduOmJ5Yml0OndpdGhkcmF3XCJcbiAgICAgIHwgXCJzaWduOmJ5Yml0OndpdGhkcmF3YWxzXCJcbiAgICAgIHwgXCJzaWduOmJ5Yml0OnF1ZXJ5Q29pbkluZm9cIlxuICAgICAgfCBcInNpZ246YnliaXQ6ZGVwb3NpdEhpc3RvcnlcIlxuICAgICAgfCBcInNpZ246YnliaXQ6dW5pdmVyc2FsVHJhbnNmZXJIaXN0b3J5XCJcbiAgICAgIHwgXCJzaWduOmJ5Yml0OnF1ZXJ5V2l0aGRyYXdBZGRyZXNzXCJcbiAgICAgIHwgXCJzaWduOmJ5Yml0OnF1ZXJ5U3ViRGVwb3NpdEFkZHJlc3NcIlxuICAgICAgfCBcInNpZ246Y29pbmJhc2U6KlwiXG4gICAgICB8IFwic2lnbjpjb2luYmFzZTphY2NvdW50czpsaXN0XCJcbiAgICAgIHwgXCJzaWduOmNvaW5iYXNlOnBvcnRmb2xpb3M6bGlzdFwiXG4gICAgICB8IFwic2lnbjpjb2luYmFzZTpmdW5kczptb3ZlXCJcbiAgICAgIHwgXCJzaWduOmJsb2JcIlxuICAgICAgfCBcInNpZ246ZGlmZmllSGVsbG1hblwiXG4gICAgICB8IFwic2lnbjpidGM6KlwiXG4gICAgICB8IFwic2lnbjpidGM6c2Vnd2l0XCJcbiAgICAgIHwgXCJzaWduOmJ0Yzp0YXByb290XCJcbiAgICAgIHwgXCJzaWduOmJ0Yzpwc2J0OipcIlxuICAgICAgfCBcInNpZ246YnRjOnBzYnQ6ZG9nZVwiXG4gICAgICB8IFwic2lnbjpidGM6cHNidDpsZWdhY3lcIlxuICAgICAgfCBcInNpZ246YnRjOnBzYnQ6c2Vnd2l0XCJcbiAgICAgIHwgXCJzaWduOmJ0Yzpwc2J0OnRhcHJvb3RcIlxuICAgICAgfCBcInNpZ246YnRjOnBzYnQ6bHRjU2Vnd2l0XCJcbiAgICAgIHwgXCJzaWduOmJ0YzptZXNzYWdlOipcIlxuICAgICAgfCBcInNpZ246YnRjOm1lc3NhZ2U6c2Vnd2l0XCJcbiAgICAgIHwgXCJzaWduOmJ0YzptZXNzYWdlOmxlZ2FjeVwiXG4gICAgICB8IFwic2lnbjpiYWJ5bG9uOipcIlxuICAgICAgfCBcInNpZ246YmFieWxvbjplb3RzOipcIlxuICAgICAgfCBcInNpZ246YmFieWxvbjplb3RzOm5vbmNlc1wiXG4gICAgICB8IFwic2lnbjpiYWJ5bG9uOmVvdHM6c2lnblwiXG4gICAgICB8IFwic2lnbjpiYWJ5bG9uOnN0YWtpbmc6KlwiXG4gICAgICB8IFwic2lnbjpiYWJ5bG9uOnN0YWtpbmc6ZGVwb3NpdFwiXG4gICAgICB8IFwic2lnbjpiYWJ5bG9uOnN0YWtpbmc6dW5ib25kXCJcbiAgICAgIHwgXCJzaWduOmJhYnlsb246c3Rha2luZzp3aXRoZHJhd1wiXG4gICAgICB8IFwic2lnbjpiYWJ5bG9uOnN0YWtpbmc6c2xhc2hcIlxuICAgICAgfCBcInNpZ246YmFieWxvbjpyZWdpc3RyYXRpb25cIlxuICAgICAgfCBcInNpZ246YmFieWxvbjpjb3ZlbmFudFwiXG4gICAgICB8IFwic2lnbjpldm06KlwiXG4gICAgICB8IFwic2lnbjpldm06dHhcIlxuICAgICAgfCBcInNpZ246ZXZtOmVpcDE5MVwiXG4gICAgICB8IFwic2lnbjpldm06ZWlwNzEyXCJcbiAgICAgIHwgXCJzaWduOmV2bTplaXA3NzAyXCJcbiAgICAgIHwgXCJzaWduOmV0aDI6KlwiXG4gICAgICB8IFwic2lnbjpldGgyOnZhbGlkYXRlXCJcbiAgICAgIHwgXCJzaWduOmV0aDI6c3Rha2VcIlxuICAgICAgfCBcInNpZ246ZXRoMjp1bnN0YWtlXCJcbiAgICAgIHwgXCJzaWduOnNvbGFuYVwiXG4gICAgICB8IFwic2lnbjpzdWlcIlxuICAgICAgfCBcInNpZ246dGVuZGVybWludFwiXG4gICAgICB8IFwic2lnbjptbWlcIlxuICAgICAgfCBcInNpZ246YXV0b1wiXG4gICAgICB8IFwibWFuYWdlOipcIlxuICAgICAgfCBcIm1hbmFnZTpyZWFkb25seVwiXG4gICAgICB8IFwibWFuYWdlOmVtYWlsOipcIlxuICAgICAgfCBcIm1hbmFnZTplbWFpbDpnZXRcIlxuICAgICAgfCBcIm1hbmFnZTplbWFpbDp1cGRhdGVcIlxuICAgICAgfCBcIm1hbmFnZTplbWFpbDpkZWxldGVcIlxuICAgICAgfCBcIm1hbmFnZTptZmE6KlwiXG4gICAgICB8IFwibWFuYWdlOm1mYTpyZWFkb25seVwiXG4gICAgICB8IFwibWFuYWdlOm1mYTpsaXN0XCJcbiAgICAgIHwgXCJtYW5hZ2U6bWZhOnZvdGU6KlwiXG4gICAgICB8IFwibWFuYWdlOm1mYTp2b3RlOmNzXCJcbiAgICAgIHwgXCJtYW5hZ2U6bWZhOnZvdGU6ZW1haWxcIlxuICAgICAgfCBcIm1hbmFnZTptZmE6dm90ZTpmaWRvXCJcbiAgICAgIHwgXCJtYW5hZ2U6bWZhOnZvdGU6dG90cFwiXG4gICAgICB8IFwibWFuYWdlOm1mYTpyZWdpc3RlcjoqXCJcbiAgICAgIHwgXCJtYW5hZ2U6bWZhOnJlZ2lzdGVyOmZpZG9cIlxuICAgICAgfCBcIm1hbmFnZTptZmE6cmVnaXN0ZXI6dG90cFwiXG4gICAgICB8IFwibWFuYWdlOm1mYTpyZWdpc3RlcjplbWFpbFwiXG4gICAgICB8IFwibWFuYWdlOm1mYTp1bnJlZ2lzdGVyOipcIlxuICAgICAgfCBcIm1hbmFnZTptZmE6dW5yZWdpc3RlcjpmaWRvXCJcbiAgICAgIHwgXCJtYW5hZ2U6bWZhOnVucmVnaXN0ZXI6dG90cFwiXG4gICAgICB8IFwibWFuYWdlOm1mYTp2ZXJpZnk6KlwiXG4gICAgICB8IFwibWFuYWdlOm1mYTp2ZXJpZnk6dG90cFwiXG4gICAgICB8IFwibWFuYWdlOmtleToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6a2V5OnJlYWRvbmx5XCJcbiAgICAgIHwgXCJtYW5hZ2U6a2V5OmdldFwiXG4gICAgICB8IFwibWFuYWdlOmtleTphdHRlc3RcIlxuICAgICAgfCBcIm1hbmFnZTprZXk6bGlzdFJvbGVzXCJcbiAgICAgIHwgXCJtYW5hZ2U6a2V5Omxpc3RcIlxuICAgICAgfCBcIm1hbmFnZTprZXk6aGlzdG9yeTp0eDpsaXN0XCJcbiAgICAgIHwgXCJtYW5hZ2U6a2V5OmNyZWF0ZVwiXG4gICAgICB8IFwibWFuYWdlOmtleTppbXBvcnRcIlxuICAgICAgfCBcIm1hbmFnZTprZXk6dXBkYXRlOipcIlxuICAgICAgfCBcIm1hbmFnZTprZXk6dXBkYXRlOm93bmVyXCJcbiAgICAgIHwgXCJtYW5hZ2U6a2V5OnVwZGF0ZTpwb2xpY3lcIlxuICAgICAgfCBcIm1hbmFnZTprZXk6dXBkYXRlOmFjbFwiXG4gICAgICB8IFwibWFuYWdlOmtleTp1cGRhdGU6ZW5hYmxlZFwiXG4gICAgICB8IFwibWFuYWdlOmtleTp1cGRhdGU6cmVnaW9uXCJcbiAgICAgIHwgXCJtYW5hZ2U6a2V5OnVwZGF0ZTptZXRhZGF0YVwiXG4gICAgICB8IFwibWFuYWdlOmtleTp1cGRhdGU6cHJvcGVydGllc1wiXG4gICAgICB8IFwibWFuYWdlOmtleTp1cGRhdGU6ZWRpdFBvbGljeVwiXG4gICAgICB8IFwibWFuYWdlOmtleTpkZWxldGVcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6KlwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTpyZWFkb25seVwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTpjcmVhdGVcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6Z2V0XCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5Omxpc3RcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6ZGVsZXRlXCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZTpvd25lclwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTp1cGRhdGU6bmFtZVwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTp1cGRhdGU6YWNsXCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZTplZGl0UG9saWN5XCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZTptZXRhZGF0YVwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTp1cGRhdGU6cnVsZVwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTppbnZva2VcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6d2FzbToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5Ondhc206dXBsb2FkXCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OnNlY3JldHM6KlwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTpzZWNyZXRzOmdldFwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTpzZWNyZXRzOnVwZGF0ZToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OnNlY3JldHM6dXBkYXRlOnZhbHVlc1wiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTpzZWNyZXRzOnVwZGF0ZTphY2xcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6c2VjcmV0czp1cGRhdGU6ZWRpdFBvbGljeVwiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTpidWNrZXRzOipcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6YnVja2V0czpnZXRcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6YnVja2V0czpsaXN0XCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OmJ1Y2tldHM6dXBkYXRlOipcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6YnVja2V0czp1cGRhdGU6b3duZXJcIlxuICAgICAgfCBcIm1hbmFnZTpwb2xpY3k6YnVja2V0czp1cGRhdGU6YWNsXCJcbiAgICAgIHwgXCJtYW5hZ2U6cG9saWN5OmJ1Y2tldHM6dXBkYXRlOm1ldGFkYXRhXCJcbiAgICAgIHwgXCJtYW5hZ2U6Y29udGFjdDoqXCJcbiAgICAgIHwgXCJtYW5hZ2U6Y29udGFjdDpyZWFkb25seVwiXG4gICAgICB8IFwibWFuYWdlOmNvbnRhY3Q6Y3JlYXRlXCJcbiAgICAgIHwgXCJtYW5hZ2U6Y29udGFjdDpnZXRcIlxuICAgICAgfCBcIm1hbmFnZTpjb250YWN0Omxpc3RcIlxuICAgICAgfCBcIm1hbmFnZTpjb250YWN0OmRlbGV0ZVwiXG4gICAgICB8IFwibWFuYWdlOmNvbnRhY3Q6dXBkYXRlOipcIlxuICAgICAgfCBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTpuYW1lXCJcbiAgICAgIHwgXCJtYW5hZ2U6Y29udGFjdDp1cGRhdGU6YWRkcmVzc2VzXCJcbiAgICAgIHwgXCJtYW5hZ2U6Y29udGFjdDp1cGRhdGU6b3duZXJcIlxuICAgICAgfCBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTpsYWJlbHNcIlxuICAgICAgfCBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTptZXRhZGF0YVwiXG4gICAgICB8IFwibWFuYWdlOmNvbnRhY3Q6dXBkYXRlOmVkaXRQb2xpY3lcIlxuICAgICAgfCBcIm1hbmFnZTpjb250YWN0Omxvb2t1cDoqXCJcbiAgICAgIHwgXCJtYW5hZ2U6Y29udGFjdDpsb29rdXA6YWRkcmVzc1wiXG4gICAgICB8IFwibWFuYWdlOnBvbGljeTpjcmVhdGVJbXBvcnRLZXlcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOipcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOnJlYWRvbmx5XCJcbiAgICAgIHwgXCJtYW5hZ2U6cm9sZTpjcmVhdGVcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOmRlbGV0ZVwiXG4gICAgICB8IFwibWFuYWdlOnJvbGU6Z2V0OipcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOmF0dGVzdFwiXG4gICAgICB8IFwibWFuYWdlOnJvbGU6Z2V0OmtleXNcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOmdldDprZXlzOmxpc3RcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOmdldDprZXlzOmdldFwiXG4gICAgICB8IFwibWFuYWdlOnJvbGU6Z2V0OnVzZXJzXCJcbiAgICAgIHwgXCJtYW5hZ2U6cm9sZTpsaXN0XCJcbiAgICAgIHwgXCJtYW5hZ2U6cm9sZTp1cGRhdGU6KlwiXG4gICAgICB8IFwibWFuYWdlOnJvbGU6dXBkYXRlOmVuYWJsZWRcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOnVwZGF0ZTpwb2xpY3lcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOnVwZGF0ZTplZGl0UG9saWN5XCJcbiAgICAgIHwgXCJtYW5hZ2U6cm9sZTp1cGRhdGU6YWN0aW9uc1wiXG4gICAgICB8IFwibWFuYWdlOnJvbGU6dXBkYXRlOmtleToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6cm9sZTp1cGRhdGU6a2V5OmFkZFwiXG4gICAgICB8IFwibWFuYWdlOnJvbGU6dXBkYXRlOmtleTpyZW1vdmVcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOnVwZGF0ZTp1c2VyOipcIlxuICAgICAgfCBcIm1hbmFnZTpyb2xlOnVwZGF0ZTp1c2VyOmFkZFwiXG4gICAgICB8IFwibWFuYWdlOnJvbGU6dXBkYXRlOnVzZXI6cmVtb3ZlXCJcbiAgICAgIHwgXCJtYW5hZ2U6cm9sZTpoaXN0b3J5OnR4Omxpc3RcIlxuICAgICAgfCBcIm1hbmFnZTppZGVudGl0eToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6aWRlbnRpdHk6cmVhZG9ubHlcIlxuICAgICAgfCBcIm1hbmFnZTppZGVudGl0eTp2ZXJpZnlcIlxuICAgICAgfCBcIm1hbmFnZTppZGVudGl0eTphZGRcIlxuICAgICAgfCBcIm1hbmFnZTppZGVudGl0eTpyZW1vdmVcIlxuICAgICAgfCBcIm1hbmFnZTppZGVudGl0eTpsaXN0XCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOipcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6Y3JlYXRlXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOm1ldHJpY3M6cXVlcnlcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6YXVkaXQ6cXVlcnlcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6cmVhZG9ubHlcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6YWRkVXNlclwiXG4gICAgICB8IFwibWFuYWdlOm9yZzppbnZpdGVVc2VyXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOmludml0ZUFsaWVuXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOmludml0YXRpb246bGlzdFwiXG4gICAgICB8IFwibWFuYWdlOm9yZzppbnZpdGF0aW9uOmNhbmNlbFwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGVNZW1iZXJzaGlwOipcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6dXBkYXRlTWVtYmVyc2hpcDpvd25lclwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGVNZW1iZXJzaGlwOm1lbWJlclwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGVNZW1iZXJzaGlwOmFsaWVuXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOmxpc3RVc2Vyc1wiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1c2VyOmdldFwiXG4gICAgICB8IFwibWFuYWdlOm9yZzpkZWxldGVVc2VyOipcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6ZGVsZXRlVXNlcjpvd25lclwiXG4gICAgICB8IFwibWFuYWdlOm9yZzpkZWxldGVVc2VyOm1lbWJlclwiXG4gICAgICB8IFwibWFuYWdlOm9yZzpkZWxldGVVc2VyOmFsaWVuXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOmdldFwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGU6KlwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGU6ZW5hYmxlZFwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGU6cG9saWN5XCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTpzaWduUG9saWN5XCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTpleHBvcnRcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6dXBkYXRlOnRvdHBGYWlsdXJlTGltaXRcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6dXBkYXRlOm5vdGlmaWNhdGlvbkVuZHBvaW50c1wiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGU6ZGVmYXVsdEludml0ZUtpbmRcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6dXBkYXRlOmlkcENvbmZpZ3VyYXRpb25cIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6dXBkYXRlOnBhc3NrZXlDb25maWd1cmF0aW9uXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTplbWFpbFByZWZlcmVuY2VzXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTpoaXN0b3JpY2FsRGF0YVwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGU6cmVxdWlyZVNjb3BlQ2VpbGluZ1wiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGU6YWxpZW5Mb2dpblJlcXVpcmVtZW50XCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTptZW1iZXJMb2dpblJlcXVpcmVtZW50XCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTprZXlFeHBvcnRSZXF1aXJlbWVudFwiXG4gICAgICB8IFwibWFuYWdlOm9yZzp1cGRhdGU6YWxsb3dlZE1mYVR5cGVzXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTpwb2xpY3lFbmdpbmVDb25mXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTpjdXN0b21DaGFpbnNcIlxuICAgICAgfCBcIm1hbmFnZTpvcmc6dXBkYXRlOmV4dFByb3BzXCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVwZGF0ZTplZGl0UG9saWN5XCJcbiAgICAgIHwgXCJtYW5hZ2U6b3JnOnVzZXI6cmVzZXRNZmFcIlxuICAgICAgfCBcIm1hbmFnZTpzZXNzaW9uOipcIlxuICAgICAgfCBcIm1hbmFnZTpzZXNzaW9uOnJlYWRvbmx5XCJcbiAgICAgIHwgXCJtYW5hZ2U6c2Vzc2lvbjpnZXRcIlxuICAgICAgfCBcIm1hbmFnZTpzZXNzaW9uOmxpc3RcIlxuICAgICAgfCBcIm1hbmFnZTpzZXNzaW9uOmNyZWF0ZVwiXG4gICAgICB8IFwibWFuYWdlOnNlc3Npb246ZXh0ZW5kXCJcbiAgICAgIHwgXCJtYW5hZ2U6c2Vzc2lvbjpyZXZva2VcIlxuICAgICAgfCBcIm1hbmFnZTpleHBvcnQ6KlwiXG4gICAgICB8IFwibWFuYWdlOmV4cG9ydDpyZWFkb25seVwiXG4gICAgICB8IFwibWFuYWdlOmV4cG9ydDpvcmc6KlwiXG4gICAgICB8IFwibWFuYWdlOmV4cG9ydDpvcmc6Z2V0XCJcbiAgICAgIHwgXCJtYW5hZ2U6ZXhwb3J0OnVzZXI6KlwiXG4gICAgICB8IFwibWFuYWdlOmV4cG9ydDp1c2VyOmRlbGV0ZVwiXG4gICAgICB8IFwibWFuYWdlOmV4cG9ydDp1c2VyOmxpc3RcIlxuICAgICAgfCBcIm1hbmFnZTphdXRoTWlncmF0aW9uOipcIlxuICAgICAgfCBcIm1hbmFnZTphdXRoTWlncmF0aW9uOmlkZW50aXR5OmFkZFwiXG4gICAgICB8IFwibWFuYWdlOmF1dGhNaWdyYXRpb246aWRlbnRpdHk6cmVtb3ZlXCJcbiAgICAgIHwgXCJtYW5hZ2U6YXV0aE1pZ3JhdGlvbjp1c2VyOnVwZGF0ZVwiXG4gICAgICB8IFwibWFuYWdlOm1taToqXCJcbiAgICAgIHwgXCJtYW5hZ2U6bW1pOnJlYWRvbmx5XCJcbiAgICAgIHwgXCJtYW5hZ2U6bW1pOmdldFwiXG4gICAgICB8IFwibWFuYWdlOm1taTpsaXN0XCJcbiAgICAgIHwgXCJtYW5hZ2U6bW1pOnJlamVjdFwiXG4gICAgICB8IFwibWFuYWdlOm1taTpkZWxldGVcIlxuICAgICAgfCBcImV4cG9ydDoqXCJcbiAgICAgIHwgXCJleHBvcnQ6dXNlcjoqXCJcbiAgICAgIHwgXCJleHBvcnQ6dXNlcjppbml0XCJcbiAgICAgIHwgXCJleHBvcnQ6dXNlcjpjb21wbGV0ZVwiXG4gICAgICB8IFwibW1pOipcIlxuICAgICAgfCBcIm9yZ0FjY2VzczoqXCJcbiAgICAgIHwgXCJvcmdBY2Nlc3M6Y2hpbGQ6KlwiXG4gICAgICB8IFwicnBjOipcIlxuICAgICAgfCBcInJwYzpjcmVhdGVUcmFuc2FjdGlvbjoqXCJcbiAgICAgIHwgXCJycGM6Y3JlYXRlVHJhbnNhY3Rpb246ZXZtXCJcbiAgICAgIHwgXCJycGM6cmV0cnlUcmFuc2FjdGlvblwiXG4gICAgICB8IFwicnBjOmNhbmNlbFRyYW5zYWN0aW9uXCJcbiAgICAgIHwgXCJycGM6Z2V0VHJhbnNhY3Rpb25cIlxuICAgICAgfCBcInJwYzpsaXN0VHJhbnNhY3Rpb25zXCJcbiAgICAgIHwgXCJycGM6YnRjTGlzdFV0eG9zXCJcbiAgICAgIHwgXCJycGM6YmluYW5jZVwiXG4gICAgICB8IFwicnBjOmJ5Yml0XCJcbiAgICAgIHwgXCJycGM6Y29pbmJhc2VcIjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyB0eXBlIHNwZWNpZmllcyB0aGUgaW50ZXJwcmV0YXRpb24gb2YgdGhlIGBmZWVgIGZpZWxkIGluIEJhYnlsb25cbiAgICAgKiBzdGFraW5nIHJlcXVlc3RzLiBJZiBgc2F0c2AsIHRoZSBmaWVsZCBpcyBpbnRwcmV0ZWQgYXMgYSBmaXhlZCB2YWx1ZVxuICAgICAqIGluIHNhdHMuIElmIGBzYXRzX3ByX3ZiYCwgdGhlIGZpZWxkIGlzIGludGVycHJldGVkIGFzIGEgcmF0ZSBhbmQgdGhlXG4gICAgICogZmVlIGlzIGNvbXB1dGVkIGJ5IGVzdGltYXRpbmcgdGhlIHdlaWdodCBvZiB0aGUgb3V0cHV0IHRyYW5zYWN0aW9uLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgRmVlVHlwZTogXCJzYXRzXCIgfCBcInNhdHNfcGVyX2t3dVwiIHwgXCJzYXRzX3Blcl92YlwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gU2VudCBmcm9tIHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlciB0byBhbnN3ZXIgYSBmaWRvIGNoYWxsZW5nZSAqL1xuICAgIEZpZG9Bc3NlcnRBbnN3ZXI6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBjaGFsbGVuZ2UgdGhhdCB3YXMgcmV0dXJuZWQgZnJvbSB0aGUgUE9TVCBlbmRwb2ludCAqL1xuICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgICBjcmVkZW50aWFsOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxcIl07XG4gICAgfTtcbiAgICBGaWRvQXNzZXJ0Q2hhbGxlbmdlOiAoY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDaGFsbGVuZ2VQaWVjZXNcIl0gJiB7XG4gICAgICBvcHRpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uc1wiXTtcbiAgICB9KSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBjaGFsbGVuZ2UuIE11c3QgYmUgc3VwcGxpZWQgd2hlbiBhbnN3ZXJpbmcgdGhlIGNoYWxsZW5nZS4gKi9cbiAgICAgIGNoYWxsZW5nZV9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBTZW50IGZyb20gdGhlIGNsaWVudCB0byB0aGUgc2VydmVyIHRvIGFuc3dlciBhIGZpZG8gY2hhbGxlbmdlICovXG4gICAgRmlkb0NyZWF0ZUNoYWxsZW5nZUFuc3dlcjoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIGNoYWxsZW5nZSB0aGF0IHdhcyByZXR1cm5lZCBmcm9tIHRoZSBQT1NUIGVuZHBvaW50ICovXG4gICAgICBjaGFsbGVuZ2VfaWQ6IHN0cmluZztcbiAgICAgIGNyZWRlbnRpYWw6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTZW50IGJ5IHRoZSBzZXJ2ZXIgdG8gdGhlIGNsaWVudC4gQ29udGFpbnMgdGhlIGNoYWxsZW5nZSBkYXRhIHRoYXQgbXVzdCBiZVxuICAgICAqIHVzZWQgdG8gZ2VuZXJhdGUgYSBuZXcgY3JlZGVudGlhbFxuICAgICAqL1xuICAgIEZpZG9DcmVhdGVDaGFsbGVuZ2VSZXNwb25zZTogKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2hhbGxlbmdlUGllY2VzXCJdICYge1xuICAgICAgb3B0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zXCJdO1xuICAgIH0pICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGNoYWxsZW5nZS4gTXVzdCBiZSBzdXBwbGllZCB3aGVuIGFuc3dlcmluZyB0aGUgY2hhbGxlbmdlLiAqL1xuICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERlY2xhcmVzIGludGVudCB0byByZWdpc3RlciBhIG5ldyBGSURPIGtleSAqL1xuICAgIEZpZG9DcmVhdGVSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBhdHRlc3RhdGlvbiBhbnN3ZXJpbmcgdGhpcyByZWdpc3RyYXRpb24gY2hhbGxlbmdlIGFkZGl0aW9uYWxseSBjb3VudHMgYXMgYW5cbiAgICAgICAqIGFwcHJvdmluZyB2b3RlIG9uIHBlbmRpbmcgTUZBIHJlcXVlc3QgYG1mYV9pZGAuXG4gICAgICAgKlxuICAgICAgICogVGhpcyBleGlzdHMgc28gdGhhdCBhIHVzZXIgd2hvIG11c3QgcmVnaXN0ZXIgdGhlaXIgZmlyc3Qgc2Vjb25kIGZhY3RvciBpbiBvcmRlciB0byBjb21wbGV0ZVxuICAgICAgICogYW4gb3BlcmF0aW9uIChtb3N0IGNvbW1vbmx5IGxvZ2dpbmcgaW4pIGRvZXMgbm90IGhhdmUgdG8gcGVyZm9ybSB0d28gYXV0aGVudGljYXRvclxuICAgICAgICogY2VyZW1vbmllcyBiYWNrIHRvIGJhY2s6IG9uZSB0byBlbnJvbGwgdGhlIGNyZWRlbnRpYWwgYW5kIGFub3RoZXIgdG8gaW1tZWRpYXRlbHkgcHJvdmVcbiAgICAgICAqIHBvc3Nlc3Npb24gb2YgaXQuIFRoZSBhdHRlc3RhdGlvbiBpcyBhIGZ1bGwgV2ViQXV0aG4gY2VyZW1vbnkgb3ZlciBhIHNlcnZlci1pc3N1ZWRcbiAgICAgICAqIGNoYWxsZW5nZSwgc28gaXQgaXMgbm8gd2Vha2VyIHRoYW4gdGhlIHNlcGFyYXRlIGFzc2VydGlvbiBpdCByZXBsYWNlcy5cbiAgICAgICAqXG4gICAgICAgKiBSZXF1aXJlcyB0aGUgJ21hbmFnZTptZmE6dm90ZTpmaWRvJyBzY29wZSBpbiBhZGRpdGlvbiB0byAnbWFuYWdlOm1mYTpyZWdpc3RlcjpmaWRvJy5cbiAgICAgICAqL1xuICAgICAgYXBwcm92ZV9tZmE/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoaXMga2V5IGNhbiBiZSB1c2VkIGZvciBwYXNzd29yZGxlc3MgbG9naW4gKi9cbiAgICAgIGRpc2NvdmVyYWJsZT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBuZXcgZmlkbyBjcmVkZW50aWFsXG4gICAgICAgKiBAZXhhbXBsZSBXb3JrIFl1YmlrZXlcbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0byByZXF1ZXN0IHRoZSB1bmlxdWUgYXV0aGVudGljYXRvciBkZXZpY2UgbWFudWZhY3R1cmVyIGlkZW50aWZpZXIuXG4gICAgICAgKiBUaGlzIGluZm9ybWF0aW9uIGNhbiBiZSB1c2VkIHRvIHJlbmRlciB0aGUgbWFudWZhY3R1cmVyIG5hbWUgKGUuZy4sIFwiWXViaUtleVwiLFxuICAgICAgICogb3IgXCJHb29nbGUgUGFzc3dvcmQgTWFuYWdlclwiLCBvciBcIjFQYXNzd29yZFwiLCBldGMuKS4gV2hlbiByZXF1ZXN0ZWQsIHNvbWUgdXNlclxuICAgICAgICogYWdlbnRzIChlLmcuLCBGaXJlZm94KSB3aWxsIGFzayB0aGUgdXNlciB0byBhZ3JlZSBvciBkaXNhZ3JlZSwgd2hlcmVhcyBzb21lXG4gICAgICAgKiAoZS5nLiwgQ2hyb21lKSB3aWxsIHNpbGVudGx5IGFncmVlLlxuICAgICAgICovXG4gICAgICByZXF1ZXN0X2RldmljZV9pZGVudGlmaWVyPzogYm9vbGVhbjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzdWx0IG9mIHJlZ2lzdGVyaW5nIGEgRklETyBrZXkgKi9cbiAgICBGaWRvUmVnaXN0ZXJSZXNwb25zZToge1xuICAgICAgbWZhPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFSZXF1ZXN0SW5mb1wiXTtcbiAgICAgIHN0YXR1czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdGF0dXNPa1wiXTtcbiAgICB9O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIEZvcmJpZGRlbkVycm9yQ29kZTpcbiAgICAgIHwgXCJBbGllbktleUNyZWF0ZVwiXG4gICAgICB8IFwiQ2Fubm90QXNzdW1lSWRlbnRpdHlcIlxuICAgICAgfCBcIlNlbnRyeURpc2FsbG93ZWRcIlxuICAgICAgfCBcIlBhc3NrZXlMb2dpbkRpc2FibGVkXCJcbiAgICAgIHwgXCJQYXNza2V5Tm90UmVnaXN0ZXJlZFwiXG4gICAgICB8IFwiQ2Fubm90Q3JlYXRlT3JnXCJcbiAgICAgIHwgXCJXcm9uZ01mYUVtYWlsT3RwSnd0XCJcbiAgICAgIHwgXCJPcmdGbGFnTm90U2V0XCJcbiAgICAgIHwgXCJGaWRvUmVxdWlyZWRUb1JlbW92ZVRvdHBcIlxuICAgICAgfCBcIk9pZGNJZGVudGl0eUxpbWl0UmVhY2hlZFwiXG4gICAgICB8IFwiT2lkY1Njb3BlQ2VpbGluZ01pc3NpbmdcIlxuICAgICAgfCBcIk9pZGNJc3N1ZXJOb3RBbGxvd2VkRm9yTWVtYmVyUm9sZVwiXG4gICAgICB8IFwiT2lkY05vTWVtYmVyUm9sZXNBbGxvd2VkXCJcbiAgICAgIHwgXCJFbWFpbE90cE5vdENvbmZpZ3VyZWRcIlxuICAgICAgfCBcIk1mYUNoYWxsZW5nZUV4cGlyZWRcIlxuICAgICAgfCBcIkNoYWluSWROb3RBbGxvd2VkXCJcbiAgICAgIHwgXCJJbnZhbGlkT3JnXCJcbiAgICAgIHwgXCJPcmdJZE1pc21hdGNoXCJcbiAgICAgIHwgXCJTZXNzaW9uRm9yV3JvbmdPcmdcIlxuICAgICAgfCBcIlNlbGZEZWxldGVcIlxuICAgICAgfCBcIlNlbGZEaXNhYmxlXCJcbiAgICAgIHwgXCJTZWxmTWZhUmVzZXRcIlxuICAgICAgfCBcIkludmFsaWRPcmdNZW1iZXJzaGlwUm9sZUNoYW5nZVwiXG4gICAgICB8IFwiVXNlckRpc2FibGVkXCJcbiAgICAgIHwgXCJPcmdEaXNhYmxlZFwiXG4gICAgICB8IFwiT3JnTm90Rm91bmRcIlxuICAgICAgfCBcIk9yZ1dpdGhvdXRPd25lclwiXG4gICAgICB8IFwiT3JwaGFuZWRVc2VyXCJcbiAgICAgIHwgXCJPaWRjVXNlck5vdEZvdW5kXCJcbiAgICAgIHwgXCJVc2VyTm90SW5PcmdcIlxuICAgICAgfCBcIlVzZXJOb3RPcmdPd25lclwiXG4gICAgICB8IFwiVXNlck5vdEtleU93bmVyXCJcbiAgICAgIHwgXCJJbnZhbGlkUm9sZVwiXG4gICAgICB8IFwiRGlzYWJsZWRSb2xlXCJcbiAgICAgIHwgXCJLZXlEaXNhYmxlZFwiXG4gICAgICB8IFwiS2V5Tm90SW5Sb2xlXCJcbiAgICAgIHwgXCJDb250YWN0Tm90SW5PcmdcIlxuICAgICAgfCBcIlVzZXJFeHBvcnRSZXF1ZXN0Tm90SW5PcmdcIlxuICAgICAgfCBcIlVzZXJFeHBvcnRSZXF1ZXN0SW52YWxpZFwiXG4gICAgICB8IFwiVXNlckV4cG9ydERpc2FibGVkXCJcbiAgICAgIHwgXCJVc2VyTm90T3JpZ2luYWxLZXlPd25lclwiXG4gICAgICB8IFwiVXNlck5vdEluUm9sZVwiXG4gICAgICB8IFwiTXVzdEJlRnVsbE1lbWJlclwiXG4gICAgICB8IFwiU2Vzc2lvbkV4cGlyZWRcIlxuICAgICAgfCBcIlNlc3Npb25DaGFuZ2VkXCJcbiAgICAgIHwgXCJTZXNzaW9uUmV2b2tlZFwiXG4gICAgICB8IFwiRXhwZWN0ZWRVc2VyU2Vzc2lvblwiXG4gICAgICB8IFwiU2Vzc2lvblJvbGVDaGFuZ2VkXCJcbiAgICAgIHwgXCJTY29wZWROYW1lTm90Rm91bmRcIlxuICAgICAgfCBcIlNlc3Npb25JbnZhbGlkRXBvY2hUb2tlblwiXG4gICAgICB8IFwiU2Vzc2lvbkludmFsaWRSZWZyZXNoVG9rZW5cIlxuICAgICAgfCBcIlNlc3Npb25SZWZyZXNoVG9rZW5FeHBpcmVkXCJcbiAgICAgIHwgXCJJbnZhbGlkQXV0aEhlYWRlclwiXG4gICAgICB8IFwiU2Vzc2lvbk5vdEZvdW5kXCJcbiAgICAgIHwgXCJJbnZhbGlkQXJuXCJcbiAgICAgIHwgXCJTZXNzaW9uSW52YWxpZEF1dGhUb2tlblwiXG4gICAgICB8IFwiU2Vzc2lvbkF1dGhUb2tlbkV4cGlyZWRcIlxuICAgICAgfCBcIlNlc3Npb25Qb3NzaWJseVN0b2xlblRva2VuXCJcbiAgICAgIHwgXCJNZmFEaXNhbGxvd2VkSWRlbnRpdHlcIlxuICAgICAgfCBcIk1mYURpc2FsbG93ZWRBcHByb3ZlclwiXG4gICAgICB8IFwiUGVuZGluZ09wRGlzYWxsb3dlZEFwcHJvdmVyXCJcbiAgICAgIHwgXCJNZmFUeXBlTm90QWxsb3dlZFwiXG4gICAgICB8IFwiTWZhTm90QXBwcm92ZWRZZXRcIlxuICAgICAgfCBcIk1mYUNvbmZpcm1hdGlvbkNvZGVNaXNtYXRjaFwiXG4gICAgICB8IFwiTWZhUmVtb3ZlQmVsb3dNaW5cIlxuICAgICAgfCBcIk1mYU9yZ1JlcXVpcmVtZW50Tm90TWV0XCJcbiAgICAgIHwgXCJNZmFSZWdpc3RyYXRpb25EaXNhbGxvd2VkXCJcbiAgICAgIHwgXCJUb3RwQWxyZWFkeUNvbmZpZ3VyZWRcIlxuICAgICAgfCBcIlRvdHBDb25maWd1cmF0aW9uQ2hhbmdlZFwiXG4gICAgICB8IFwiTWZhVG90cEJhZENvbmZpZ3VyYXRpb25cIlxuICAgICAgfCBcIk1mYVRvdHBCYWRDb2RlXCJcbiAgICAgIHwgXCJNZmFUb3RwUmF0ZUxpbWl0XCJcbiAgICAgIHwgXCJJbXByb3BlclNlc3Npb25TY29wZVwiXG4gICAgICB8IFwiRnVsbFNlc3Npb25SZXF1aXJlZFwiXG4gICAgICB8IFwiU2Vzc2lvbldpdGhvdXRBbnlTY29wZVVuZGVyXCJcbiAgICAgIHwgXCJVc2VyUm9sZVVucHJpdmlsZWdlZFwiXG4gICAgICB8IFwiTWVtYmVyUm9sZUZvcmJpZGRlblwiXG4gICAgICB8IFwiTWZhTm90Q29uZmlndXJlZFwiXG4gICAgICB8IFwiUmVtb3ZlTGFzdE9pZGNJZGVudGl0eVwiXG4gICAgICB8IFwiT3BlcmF0aW9uTm90QWxsb3dlZFwiXG4gICAgICB8IFwiT3JnRXhwb3J0UmV0cmlldmFsRGlzYWJsZWRcIlxuICAgICAgfCBcIkNoYW5naW5nS2V5RXhwb3J0UmVxdWlyZW1lbnRJc0Rpc2FibGVkXCJcbiAgICAgIHwgXCJBdXRvQWRkQmxzS2V5VG9Qcm90ZWN0ZWRSb2xlXCJcbiAgICAgIHwgXCJVc2VyTm90UG9saWN5T3duZXJcIlxuICAgICAgfCBcIlVzZXJOb3RDb250YWN0T3duZXJcIlxuICAgICAgfCBcIlVzZXJOb3RCdWNrZXRPd25lclwiXG4gICAgICB8IFwiTGVnYWN5U2Vzc2lvbkNhbm5vdEhhdmVTY29wZUNlaWxpbmdcIlxuICAgICAgfCBcIlJvbGVJblBhcmVudE9yZ05vdEFsbG93ZWRcIlxuICAgICAgfCBcIlJlbW92ZUtleUZyb21Sb2xlVXNlck5vdEFsbG93ZWRcIlxuICAgICAgfCBcIlNpd2VDaGFsbGVuZ2VFeHBpcmVkXCJcbiAgICAgIHwgXCJTaXdlTWVzc2FnZU5vdFZhbGlkXCJcbiAgICAgIHwgXCJTaXdlTWVzc2FnZUludmFsaWRTaWduYXR1cmVcIlxuICAgICAgfCBcIlNpd3NDaGFsbGVuZ2VFeHBpcmVkXCJcbiAgICAgIHwgXCJTaXdzRG9tYWluXCJcbiAgICAgIHwgXCJTaXdzTWVzc2FnZUludmFsaWRcIlxuICAgICAgfCBcIkFjbFwiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTcGVjaWZpZXMgYSBmb3JrIG9mIHRoZSBgQmVhY29uQ2hhaW5gLCB0byBwcmV2ZW50IHJlcGxheSBhdHRhY2tzLlxuICAgICAqIFRoZSBzY2hlbWEgb2YgYEZvcmtgIGlzIGRlZmluZWQgaW4gdGhlIFtCZWFjb24gY2hhaW5cbiAgICAgKiBzcGVjXShodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW0vY29uc2Vuc3VzLXNwZWNzL2Jsb2IvdjEuMC4xL3NwZWNzL3BoYXNlMC9iZWFjb24tY2hhaW4ubWQjZm9yaykuXG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJjdXJyZW50X3ZlcnNpb25cIjogXCIweDAwMDAxMDIwXCIsXG4gICAgICogICBcImVwb2NoXCI6IFwiMFwiLFxuICAgICAqICAgXCJwcmV2aW91c192ZXJzaW9uXCI6IFwiMHgwMDAwMTAyMFwiXG4gICAgICogfVxuICAgICAqL1xuICAgIEZvcms6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEN1cnJlbnQgZm9yayB2ZXJzaW9uLlxuICAgICAgICogQGV4YW1wbGUgMHg0MzQzNDM0M1xuICAgICAgICovXG4gICAgICBjdXJyZW50X3ZlcnNpb246IHN0cmluZztcbiAgICAgIGVwb2NoOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUHJldmlvdXMgZm9yayB2ZXJzaW9uLlxuICAgICAgICogQGV4YW1wbGUgMHg0MjQyNDI0MlxuICAgICAgICovXG4gICAgICBwcmV2aW91c192ZXJzaW9uOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gR2VuZXNpcyBkYXRhIGFzIGRlZmluZWQgaW4gdGhlIFtCZWFjb24gQVBJXG4gICAgICogc3BlY10oaHR0cHM6Ly9ldGhlcmV1bS5naXRodWIuaW8vYmVhY29uLUFQSXMvIy9CZWFjb24vZ2V0R2VuZXNpcykuXG4gICAgICogWW91IGNhbiBnZXQgdGhlIGdlbmVzaXMgZGF0YSBmcm9tIHRoZSBCZWFjb24gbm9kZSdzIGAvZXRoL3YxL2JlYWNvbi9nZW5lc2lzYCBlbmQtcG9pbnQuXG4gICAgICogVGhpcyBzdHJ1Y3QgZGVmaW5pdGlvbiBpcyBvcmlnaW5hbGx5IGZyb20gbGlnaHRob3VzZSdzIGV0aDIuXG4gICAgICovXG4gICAgR2VuZXNpc0RhdGE6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEdlbmVzaXMgZm9yayB2ZXJzaW9uLlxuICAgICAgICogQGV4YW1wbGUgMHg0MjQyNDI0MlxuICAgICAgICovXG4gICAgICBnZW5lc2lzX2ZvcmtfdmVyc2lvbjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gR2VuZXNpcyB0aW1lXG4gICAgICAgKiBAZXhhbXBsZSAxNjc5MzI2NDQ5XG4gICAgICAgKi9cbiAgICAgIGdlbmVzaXNfdGltZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gR2VuZXNpcyB2YWxpZGF0b3JzIHJvb3QuXG4gICAgICAgKiBAZXhhbXBsZSAweDI3MGQ0M2U3NGNlMzQwZGU0YmNhMmIxOTM2YmVjYTBmNGY1NDA4ZDllNzhhZWM0ODUwOTIwYmFmNjU5ZDViNjlcbiAgICAgICAqL1xuICAgICAgZ2VuZXNpc192YWxpZGF0b3JzX3Jvb3Q6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGVtYWlsIHNlbmRlciBjb25maWd1cmF0aW9uICh3aXRob3V0IHNlbnNpdGl2ZSBhdXRoIGRldGFpbHMpICovXG4gICAgR2V0RW1haWxDb25maWdSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZW1haWwgYWRkcmVzcyB0aGF0IGVtYWlscyBhcmUgc2VudCBmcm9tICovXG4gICAgICBzZW5kZXI6IHN0cmluZztcbiAgICAgIHRlbXBsYXRlPzoge1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFuIEhUTUwgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgYm9keS4gKi9cbiAgICAgICAgYm9keV90ZW1wbGF0ZTogc3RyaW5nO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzdWJqZWN0IGxpbmUgdGVtcGxhdGUgKi9cbiAgICAgICAgc3ViamVjdF90ZW1wbGF0ZTogc3RyaW5nO1xuICAgICAgfSB8IG51bGw7XG4gICAgfTtcbiAgICBHZXRLZXlzSW5PcmdSZXF1ZXN0OiB7XG4gICAgICBrZXlfdHlwZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIHRoZSBbYGNzX2dldFRyYW5zYWN0aW9uYF0oUnBjTWV0aG9kOjpHZXRUcmFuc2FjdGlvbikgbWV0aG9kLiAqL1xuICAgIEdldFRyYW5zYWN0aW9uUmVxdWVzdDoge1xuICAgICAgaWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgfTtcbiAgICBHZXRVc2VyQnlFbWFpbFJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUeXBpY2FsbHksIHRoaXMgYXJyYXkgaXMgZWl0aGVyIGVtcHR5IChpZiBubyB1c2VyIHdpdGggYSBnaXZlbiBlbWFpbCB3YXMgZm91bmQpXG4gICAgICAgKiBvciBjb250YWlucyBhIHNpbmdsZSBlbGVtZW50LCBpLmUuLCB0aGUgdXNlciB3aXRoIGEgZ2l2ZW4gZW1haWwuXG4gICAgICAgKi9cbiAgICAgIHVzZXJzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJJbk9yZ0luZm9XaXRoSWRlbnRpdHlcIl1bXTtcbiAgICB9O1xuICAgIEdldFVzZXJCeU9pZGNSZXNwb25zZToge1xuICAgICAgdXNlcj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckluT3JnSW5mb1dpdGhJZGVudGl0eVwiXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFN0YXRzIHBlcnRhaW5pbmcgdGhlIHRoZSBzZW5kZXIgYGN1YmUzc2lnbmVyYCBpbnN0YW5jZSAqL1xuICAgIEhlYXJ0YmVhdFJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiByZXF1ZXN0cyBjdXJyZW50bHkgYWN0aXZlIChyZWNlaXZlZCBidXQgbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHByb2Nlc3NlZCB5ZXQpXG4gICAgICAgKi9cbiAgICAgIGN1cnJlbnRfbnVtX3JlcXVlc3RzX2FjdGl2ZTogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIHJlcXVlc3RzIGN1cnJlbnRseSBiZWluZyBwcm9jZXNzZWQgYnkgY3ViZTNzaWduZXJcbiAgICAgICAqL1xuICAgICAgY3VycmVudF9udW1fcmVxdWVzdHNfcHJvY2Vzc2luZzogbnVtYmVyO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcmVjb3JkIG1ldHJpYyBkYXRhIGZyb20gdGhpcyBoZWFydGJlYXQgKi9cbiAgICAgIGlnbm9yZT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgbmV3IHJlcXVlc3RzIGR1cmluZyB0aGlzIGhlYXJ0YmVhdCBwZXJpb2RcbiAgICAgICAqL1xuICAgICAgbnVtX3JlcXVlc3RzOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgcmVxdWVzdHMgdGhhdCBmYWlsZWQgZHVyaW5nIHRoaXMgaGVhcnRiZWF0IHBlcmlvZFxuICAgICAgICovXG4gICAgICBudW1fcmVxdWVzdHNfZmFpbGVkOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgcmVxdWVzdHMgd2VyZSByZXRyaWVkIGR1cmluZyB0aGlzIGhlYXJ0YmVhdCBwZXJpb2RcbiAgICAgICAqL1xuICAgICAgbnVtX3JlcXVlc3RzX3JldHJpZWQ6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiByZXRyaWVzIGR1cmluZyB0aGlzIGhlYXJ0YmVhdCBwZXJpb2RcbiAgICAgICAqL1xuICAgICAgbnVtX3JldHJpZXM6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiB0aW1lcyBhdXRoIHRva2VuIHdhcyByZWZyZXNoZWQgZHVyaW5nIHRoaXMgaGVhcnRiZWF0IHBlcmlvZFxuICAgICAgICovXG4gICAgICBudW1fdG9rZW5fcmVmcmVzaGVzPzogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIHRpbWVzIGF1dGggdG9rZW4gcmVmcmVzaCBmYWlsZWQgZHVyaW5nIHRoaXMgaGVhcnRiZWF0IHBlcmlvZFxuICAgICAgICovXG4gICAgICBudW1fdG9rZW5fcmVmcmVzaGVzX2ZhaWxlZD86IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFZlcnNpb24gb2YgdGhlIHByb3h5IHNlbmRpbmcgdGhlIGhlYXJ0IGJlYXQgcmVxdWVzdFxuICAgICAgICpcbiAgICAgICAqIFRPRE86IE1ha2Ugbm9uLW9wdGlvbmFsIG9uY2Ugd2UgZG8gbm90IHN1cHBvcnQgcHJveGllcyB3aXRob3V0IHZlcnNpb24gaW5mb3JtYXRpb25cbiAgICAgICAqL1xuICAgICAgcHJveHlfdmVyc2lvbj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZ292ZXJuaW5nIHdoZXRoZXIgYW5kIGhvdyB0byBzYXZlIGhpc3RvcmljYWwgZGF0YS4gKi9cbiAgICBIaXN0b3JpY2FsRGF0YUNvbmZpZ3VyYXRpb246IHtcbiAgICAgIHR4OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkhpc3RvcmljYWxUeENvbmZpZ3VyYXRpb25cIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgcmVjZW50bHkgc2lnbmVkIHRyYW5zYWN0aW9uIHRoYXQgd2Ugc3RvcmUgaW4gdGhlIERCLiAqL1xuICAgIEhpc3RvcmljYWxUeDoge1xuICAgICAgZGF0ZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgZXhwX2Vwb2NoOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICBoaXN0b3JpY2FsX3R4X29yZ19pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIGtleV9pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIG1mYV9zdGF0dXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN0YXR1c1wiXSB8IG51bGw7XG4gICAgICBvcGVyYXRpb246IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3BlcmF0aW9uS2luZFwiXTtcbiAgICAgIHJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSHR0cFJlcXVlc3RcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9yaWdpbmFsIHJlcXVlc3QgaWQgKi9cbiAgICAgIHJlcXVlc3RfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcGVyYXRpb24tc3BlY2lmaWMgcmVzdWx0ICovXG4gICAgICByZXN1bHQ6IHVua25vd247XG4gICAgICByb2xlX2lkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXSB8IG51bGw7XG4gICAgICB1c2VyX2lkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZ292ZXJuaW5nIHdoZXRoZXIgYW5kIGhvdyB0byBzYXZlIGhpc3RvcmljYWwgdHJhbnNhY3Rpb25zLiAqL1xuICAgIEhpc3RvcmljYWxUeENvbmZpZ3VyYXRpb246IHtcbiAgICAgIGxpZmV0aW1lPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNvbmRzXCJdIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIENhcHR1cmVzIGFsbCB0aGUgcmVsZXZhbnQgaW5mbyAoaW5jbHVkaW5nIHRoZSByZXF1ZXN0IGJvZHkpIGFib3V0IHJlcXVlc3RzIHRoYXQgcmVxdWlyZSBNRkEuXG4gICAgICogV2UgdXNlIHRoaXMgdG8gdmVyaWZ5IHRoYXQgd2hlbiBhIHJlcXVlc3QgaXMgcmVzdW1lZCAoYWZ0ZXIgb2J0YWluaW5nIG5lY2Vzc2FyeSBNRkEgYXBwcm92YWxzKVxuICAgICAqIGl0IGlzIGV4YWN0bHkgdGhlIHNhbWUgYXMgaXQgb3JpZ2luYWxseSB3YXMuXG4gICAgICovXG4gICAgSHR0cFJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSFRUUCByZXF1ZXN0IGJvZHkgKi9cbiAgICAgIGJvZHk/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEhUVFAgbWV0aG9kIG9mIHRoZSByZXF1ZXN0ICovXG4gICAgICBtZXRob2Q6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSFRUUCBwYXRoIG9mIHRoZSByZXF1ZXN0LCBleGNsdWRpbmcgdGhlIGhvc3QgKi9cbiAgICAgIHBhdGg6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSG93IHRvIGNvbXBhcmUgSFRUUCByZXF1ZXN0cyB3aGVuIHZlcmlmeWluZyBNRkEgcmVjZWlwdCAoc2VlIFtNZmFSZXF1ZXN0Ojp2ZXJpZnlfcmVxdWVzdF0pICovXG4gICAgSHR0cFJlcXVlc3RDbXA6IE9uZU9mPFxuICAgICAgW1xuICAgICAgICBcIkVxXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBFdm1UeDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFdm1UeENtcFwiXTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFNvbGFuYVR4OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNvbGFuYVR4Q21wXCJdO1xuICAgICAgICB9LFxuICAgICAgXVxuICAgID47XG4gICAgSWQ6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYSBsaW5rZWQgT0lEQyBpZGVudGl0eSBpbmNsdWRpbmcgdW5pcXVlIGlkZW50aWZpZXJzIGFuZCB1c2VyIGluZm9cbiAgICAgKiAoZS5nLiwgZW1haWwpXG4gICAgICovXG4gICAgSWRlbnRpdHlJbmZvOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9pZGNJZGVudGl0eVwiXSAmXG4gICAgICBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9pZGNVc2VySW5mb1wiXSAmXG4gICAgICBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByb29mIHRoYXQgYW4gZW5kLXVzZXIgcHJvdmlkZWQgQ3ViZVNpZ25lciB3aXRoIGEgdmFsaWQgYXV0aCB0b2tlblxuICAgICAqIChlaXRoZXIgYW4gT0lEQyB0b2tlbiBvciBhIEN1YmVTaWduZXIgc2Vzc2lvbiB0b2tlbilcbiAgICAgKi9cbiAgICBJZGVudGl0eVByb29mOiB7XG4gICAgICBhdWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1ZFwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZW1haWwgYXNzb2NpYXRlZCB3aXRoIHRoZSB1c2VyXG4gICAgICAgKiBAZXhhbXBsZSB1c2VyQGVtYWlsLmNvbVxuICAgICAgICovXG4gICAgICBlbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgICBleHBfZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIGlkZW50aXR5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPaWRjSWRlbnRpdHlcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXJuYW1lIChpZiBhbnkpIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlclxuICAgICAgICogQGV4YW1wbGUgY3ViaXN0ZGV2XG4gICAgICAgKi9cbiAgICAgIHByZWZlcnJlZF91c2VybmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICB1c2VyX2luZm8/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkN1YmVTaWduZXJVc2VySW5mb1wiXSB8IG51bGw7XG4gICAgfSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gb3BhcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBwcm9vZiAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSURQIGNvbmZpZ3VyYXRpb24gKi9cbiAgICBJZHBDb25maWc6IHtcbiAgICAgIHRocm90dGxlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUaHJvdHRsZUNvbmZpZ1wiXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEVuYWJsZSBmb3IgY2VydGFpbiB1c2VyIHJvbGVzICovXG4gICAgICB1c2Vycz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXVtdIHwgbnVsbDtcbiAgICB9O1xuICAgIEltcG9ydEtleVJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW1wb3J0S2V5XCJdICZcbiAgICAgIGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlQW5kVXBkYXRlS2V5UHJvcGVydGllc1wiXSAmIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGVuIGZhbHNlICh0aGUgZGVmYXVsdCksIG5vdGhpbmcgaXMgcmV0dXJuZWQgd2hlbiBhbiBpbXBvcnRlZCBrZXkgYWxyZWFkeVxuICAgICAgICAgKiBleGlzdHMuIFdoZW4gdHJ1ZSwgcmV0dXJucyB0aGUgS2V5SW5mbyBzdHJ1Y3QgZm9yIGtleXMgdGhhdCBhbHJlYWR5IGV4aXN0XG4gICAgICAgICAqIGlmIGNhbGxlciBpcyBhbGxvd2VkIHRvIGxpc3QgdGhhdCBrZXkuXG4gICAgICAgICAqL1xuICAgICAgICBpZGVtcG90ZW50PzogYm9vbGVhbjtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIHNldCBvZiBlbmNyeXB0ZWQga2V5cyB0byBiZSBpbXBvcnRlZCAqL1xuICAgICAgICBrZXlfbWF0ZXJpYWw6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSW1wb3J0S2V5UmVxdWVzdE1hdGVyaWFsXCJdW107XG4gICAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgICB9O1xuICAgIEltcG9ydEtleVJlcXVlc3RNYXRlcmlhbDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGNsaWVudCdzIGVwaGVtZXJhbCBwdWJsaWMga2V5IHVzZWQgdG8gZGVyaXZlIGEgc2hhcmVkIGtleS5cbiAgICAgICAqIFRoaXMgaXMgYSBiYXNlNjQtZW5jb2RlZCwgU0VDMS1lbmNvZGVkIFAzODQgcHVibGljIGtleS5cbiAgICAgICAqL1xuICAgICAgY2xpZW50X3B1YmxpY19rZXk6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlbmNyeXB0ZWQga2V5aW5nIG1hdGVyaWFsIHRvIGJlIGltcG9ydGVkLlxuICAgICAgICogVGhpcyBpcyBhIGJhc2U2NC1lbmNvZGVkIGNpcGhlcnRleHQuXG4gICAgICAgKi9cbiAgICAgIGlrbV9lbmM6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgc2FsdCB2YWx1ZSB1c2VkIHRvIGRlcml2ZSBhIHNoYXJlZCBrZXkuXG4gICAgICAgKiBUaGlzIGlzIGEgYmFzZTY0LWVuY29kZWQgYnl0ZSBzdHJpbmcuXG4gICAgICAgKi9cbiAgICAgIHNhbHQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIEludGVybmFsRXJyb3JDb2RlOlxuICAgICAgfCBcIk5vTWF0ZXJpYWxJZFwiXG4gICAgICB8IFwiSW52YWxpZEF1ZGl0TG9nRW50cnlcIlxuICAgICAgfCBcIlVuZXhwZWN0ZWRDaGVja2VyUnVsZVwiXG4gICAgICB8IFwiVW5yZXNvbHZlZFBvbGljeVJlZmVyZW5jZVwiXG4gICAgICB8IFwiVW5leHBlY3RlZEFjbEFjdGlvblwiXG4gICAgICB8IFwiRmlkb0tleUFzc29jaWF0ZWRXaXRoTXVsdGlwbGVVc2Vyc1wiXG4gICAgICB8IFwiQ2xhaW1zUGFyc2VFcnJvclwiXG4gICAgICB8IFwiSW52YWxpZFRocm90dGxlSWRcIlxuICAgICAgfCBcIkludmFsaWRFbWFpbEFkZHJlc3NcIlxuICAgICAgfCBcIkVtYWlsVGVtcGxhdGVSZW5kZXJcIlxuICAgICAgfCBcIk9pZGNJZGVudGl0eUhlYWRlck1pc3NpbmdcIlxuICAgICAgfCBcIk9pZGNJZGVudGl0eVBhcnNlRXJyb3JcIlxuICAgICAgfCBcIlN5c3RlbVRpbWVFcnJvclwiXG4gICAgICB8IFwiUGFzc3dvcmRIYXNoUGFyc2VFcnJvclwiXG4gICAgICB8IFwiU2VuZE1haWxFcnJvclwiXG4gICAgICB8IFwiUmVxd2VzdEVycm9yXCJcbiAgICAgIHwgXCJFbWFpbENvbnN0cnVjdGlvbkVycm9yXCJcbiAgICAgIHwgXCJUc1dyaXRlRXJyb3JcIlxuICAgICAgfCBcIlRzUXVlcnlFcnJvclwiXG4gICAgICB8IFwiRGJRdWVyeUVycm9yXCJcbiAgICAgIHwgXCJEYkdldEVycm9yXCJcbiAgICAgIHwgXCJEYkJhdGNoR2V0RXJyb3JcIlxuICAgICAgfCBcIkRiRGVsZXRlRXJyb3JcIlxuICAgICAgfCBcIkRiUHV0RXJyb3JcIlxuICAgICAgfCBcIkRiVXBkYXRlRXJyb3JcIlxuICAgICAgfCBcIlNlcmRlRXJyb3JcIlxuICAgICAgfCBcIlRlc3RBbmRTZXRFcnJvclwiXG4gICAgICB8IFwiRGJHZXRJdGVtc0Vycm9yXCJcbiAgICAgIHwgXCJEYldyaXRlRXJyb3JcIlxuICAgICAgfCBcIkN1YmlzdFNpZ25lckVycm9yXCJcbiAgICAgIHwgXCJDd0xpc3RNZXRyaWNzRXJyb3JcIlxuICAgICAgfCBcIkN3UHV0TWV0cmljRGF0YUVycm9yXCJcbiAgICAgIHwgXCJHZXRBd3NTZWNyZXRFcnJvclwiXG4gICAgICB8IFwiU2VjcmV0Tm90Rm91bmRcIlxuICAgICAgfCBcIkttc0dlbmVyYXRlUmFuZG9tRXJyb3JcIlxuICAgICAgfCBcIk1hbGZvcm1lZFRvdHBCeXRlc1wiXG4gICAgICB8IFwiS21zR2VuZXJhdGVSYW5kb21Ob1Jlc3BvbnNlRXJyb3JcIlxuICAgICAgfCBcIkNyZWF0ZUtleUVycm9yXCJcbiAgICAgIHwgXCJQYXJzZURlcml2YXRpb25QYXRoRXJyb3JcIlxuICAgICAgfCBcIlNwbGl0U2lnbmVyRXJyb3JcIlxuICAgICAgfCBcIkNyZWF0ZUltcG9ydEtleUVycm9yXCJcbiAgICAgIHwgXCJDcmVhdGVFb3RzTm9uY2VzRXJyb3JcIlxuICAgICAgfCBcIkVvdHNTaWduRXJyb3JcIlxuICAgICAgfCBcIkJhYnlsb25Db3ZTaWduRXJyb3JcIlxuICAgICAgfCBcIkNvZ25pdG9EZWxldGVVc2VyRXJyb3JcIlxuICAgICAgfCBcIkNvZ25pdG9MaXN0VXNlcnNFcnJvclwiXG4gICAgICB8IFwiQ29nbml0b0dldFVzZXJFcnJvclwiXG4gICAgICB8IFwiTWlzc2luZ1VzZXJFbWFpbFwiXG4gICAgICB8IFwiQ29nbml0b1Jlc2VuZFVzZXJJbnZpdGF0aW9uXCJcbiAgICAgIHwgXCJDb2duaXRvU2V0VXNlclBhc3N3b3JkRXJyb3JcIlxuICAgICAgfCBcIkdlbmVyaWNJbnRlcm5hbEVycm9yXCJcbiAgICAgIHwgXCJBc3N1bWVSb2xlV2l0aG91dEV2aWRlbmNlXCJcbiAgICAgIHwgXCJPaWRjQXV0aFdpdGhvdXRPcmdcIlxuICAgICAgfCBcIk1pc3NpbmdLZXlNZXRhZGF0YVwiXG4gICAgICB8IFwiS21zRW5hYmxlS2V5RXJyb3JcIlxuICAgICAgfCBcIkttc0Rpc2FibGVLZXlFcnJvclwiXG4gICAgICB8IFwiTGFtYmRhSW52b2tlRXJyb3JcIlxuICAgICAgfCBcIkxhbWJkYU5vUmVzcG9uc2VFcnJvclwiXG4gICAgICB8IFwiTGFtYmRhRmFpbHVyZVwiXG4gICAgICB8IFwiTGFtYmRhVW5wYXJzYWJsZVJlc3BvbnNlXCJcbiAgICAgIHwgXCJTZXJpYWxpemVFbmNyeXB0ZWRFeHBvcnRLZXlFcnJvclwiXG4gICAgICB8IFwiRGVzZXJpYWxpemVFbmNyeXB0ZWRFeHBvcnRLZXlFcnJvclwiXG4gICAgICB8IFwiUmVFbmNyeXB0VXNlckV4cG9ydFwiXG4gICAgICB8IFwiUzNVcGxvYWRFcnJvclwiXG4gICAgICB8IFwiUzNEb3dubG9hZEVycm9yXCJcbiAgICAgIHwgXCJTM0NvcHlFcnJvclwiXG4gICAgICB8IFwiUzNMaXN0T2JqZWN0c0Vycm9yXCJcbiAgICAgIHwgXCJTM0RlbGV0ZU9iamVjdHNFcnJvclwiXG4gICAgICB8IFwiUzNCdWlsZEVycm9yXCJcbiAgICAgIHwgXCJTM1ByZXNpZ25lZFVybEVycm9yXCJcbiAgICAgIHwgXCJNYW5hZ2VkU3RhdGVNaXNzaW5nXCJcbiAgICAgIHwgXCJJbnRlcm5hbEhlYWRlck1pc3NpbmdcIlxuICAgICAgfCBcIkludmFsaWRJbnRlcm5hbEhlYWRlclZhbHVlXCJcbiAgICAgIHwgXCJSZXF1ZXN0TG9jYWxTdGF0ZUFscmVhZHlTZXRcIlxuICAgICAgfCBcIk9pZGNPcmdNaXNtYXRjaFwiXG4gICAgICB8IFwiT2lkY0lzc3VlckludmFsaWRKd2tcIlxuICAgICAgfCBcIkludmFsaWRQa0Zvck1hdGVyaWFsSWRcIlxuICAgICAgfCBcIlNlZ3dpdFR3ZWFrRmFpbGVkXCJcbiAgICAgIHwgXCJVbmNoZWNrZWRPcmdcIlxuICAgICAgfCBcIlNlc3Npb25PcmdJZE1pc3NpbmdcIlxuICAgICAgfCBcIkF2YVNpZ25DcmVkc01pc3NpbmdcIlxuICAgICAgfCBcIkF2YVNpZ25TaWduYXR1cmVNaXNzaW5nXCJcbiAgICAgIHwgXCJFeHBlY3RlZFJvbGVTZXNzaW9uXCJcbiAgICAgIHwgXCJJbnZhbGlkVGhpcmRQYXJ0eUlkZW50aXR5XCJcbiAgICAgIHwgXCJDb2duaXRvR2V0VXNlclwiXG4gICAgICB8IFwiU25zU3Vic2NyaWJlRXJyb3JcIlxuICAgICAgfCBcIlNuc1Vuc3Vic2NyaWJlRXJyb3JcIlxuICAgICAgfCBcIlNuc0dldFN1YnNjcmlwdGlvbkF0dHJpYnV0ZXNFcnJvclwiXG4gICAgICB8IFwiU25zU3Vic2NyaXB0aW9uQXR0cmlidXRlc01pc3NpbmdcIlxuICAgICAgfCBcIlNuc1NldFN1YnNjcmlwdGlvbkF0dHJpYnV0ZXNFcnJvclwiXG4gICAgICB8IFwiU25zUHVibGlzaEJhdGNoRXJyb3JcIlxuICAgICAgfCBcIkluY29uc2lzdGVudE11bHRpVmFsdWVUZXN0QW5kU2V0XCJcbiAgICAgIHwgXCJNYXRlcmlhbElkRXJyb3JcIlxuICAgICAgfCBcIkludmFsaWRCdGNBZGRyZXNzXCJcbiAgICAgIHwgXCJIaXN0b3JpY2FsVHhCb2R5TWlzc2luZ1wiXG4gICAgICB8IFwiSW52YWxpZE9wZXJhdGlvblwiXG4gICAgICB8IFwiUGFyZW50T3JnTm90Rm91bmRcIlxuICAgICAgfCBcIk9yZ1BhcmVudExvb3BcIlxuICAgICAgfCBcIlJlc29sdmVkUGFyZW50T3JnV2l0aE5vU2NvcGVDZWlsaW5nXCJcbiAgICAgIHwgXCJJbnZhbGlkVXBsb2FkT2JqZWN0SWRcIlxuICAgICAgfCBcIlBvbGljeUVuZ2luZU5vdEZvdW5kXCJcbiAgICAgIHwgXCJQb2xpY3lFbmdpbmVFcnJvclwiXG4gICAgICB8IFwiUG9saWN5U2VjcmV0c0VuY3J5cHRpb25FcnJvclwiXG4gICAgICB8IFwiQ3JlYXRlUG9saWN5SW1wb3J0S2V5RXJyb3JcIlxuICAgICAgfCBcIkludmFsaWRBbGlhc1wiXG4gICAgICB8IFwiRW1wdHlVcGRhdGVNb2RpZmllZE9iamVjdFwiXG4gICAgICB8IFwiRW1wdHlVcGRhdGVNb2RpZmllZEFjdGlvbnNcIlxuICAgICAgfCBcIkRiQ29udGFjdEFkZHJlc3Nlc0ludmFsaWRcIlxuICAgICAgfCBcIkludmFsaWRFdm1TaWdlZFJscFwiXG4gICAgICB8IFwiSW52YWxpZEVyYzIwRGF0YVwiXG4gICAgICB8IFwiSW52YWxpZFJwY1VybFwiO1xuICAgIEludml0YXRpb25BY2NlcHRSZXF1ZXN0OiB7XG4gICAgICBhdXRoOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1dGhTb3VyY2VcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEludml0YXRpb24gdG9rZW4gKi9cbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIGFib3V0IGEgcGVuZGluZyBpbnZpdGF0aW9uICovXG4gICAgSW52aXRhdGlvbkluZm86IHtcbiAgICAgIGNyZWF0ZWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGVtYWlsIGFkZHJlc3MgdGhlIGludml0YXRpb24gd2FzIHNlbnQgdG8gKi9cbiAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICBleHBpcmF0aW9uOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICBpbnZpdGVyPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBpbnZpdGVkIHVzZXIncyBuYW1lICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICByb2xlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1lbWJlclJvbGVcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5kaWNhdGVzIHRoZSBhdXRoIHNvdXJjZXMgYWxsb3dlZCB0byBhbiBpbnZpdGVkIHVzZXJcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEludml0ZUtpbmQ6IFwiQ29nbml0b1wiIHwgXCJJZHBBbmRTc29cIiB8IFwiU3NvXCI7XG4gICAgSW52aXRlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIncyBlbWFpbCBhZGRyZXNzXG4gICAgICAgKiBAZXhhbXBsZSBhbGljZUBhY21lLmNvbVxuICAgICAgICovXG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgaW52aXRlX2tpbmQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkludml0ZUtpbmRcIl0gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBsb2dpbiBNRkEgcG9saWN5ICovXG4gICAgICBtZmFfcG9saWN5PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIncyBmdWxsIG5hbWVcbiAgICAgICAqIEBleGFtcGxlIEFsaWNlIFdvbmRlcmxhbmRcbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgcm9sZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTa2lwIHNlbmRpbmcgYW4gaW52aXRhdGlvbiBlbWFpbCB0byB0aGlzIHVzZXIgaWYgdHJ1ZS5cbiAgICAgICAqXG4gICAgICAgKiBOT1RFOiB0aGlzIGZpZWxkIGlzIGZvciBpbnRlcm5hbCB0ZXN0aW5nIHVzZSBPTkxZLiBJZiB5b3UgZG8gbm90XG4gICAgICAgKiBzZW5kIGFuIGludml0YXRpb24gZW1haWwgKGFuZCB0aGUgaW52aXRlIGtpbmQgaXMgbm90IFNTTyksIHRoZSB1c2VyIHdpbGwgbmV2ZXIgYmUgYWJsZSB0byBsb2cgaW4uXG4gICAgICAgKiBAZXhhbXBsZSBmYWxzZVxuICAgICAgICovXG4gICAgICBza2lwX2VtYWlsPzogYm9vbGVhbjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSByZXF1ZXN0IGNvbnRhaW5pbmcgdGhlIGRhdGEgdGhhdCBhIFdhc20gcG9saWN5IHNob3VsZCBiZSBpbnZva2VkIHdpdGguICovXG4gICAgSW52b2tlUG9saWN5UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQW4gb3B0aW9uYWwgS2V5IElELiBJZiBkZWZpbmVkLCB0aGUgcG9saWN5IHdpbGwgYmUgaW52b2tlZCBhcyBpZiBpdCBpcyBzaWduaW5nXG4gICAgICAgKiB0aGUgbWVzc2FnZSB3aXRoIHRoaXMga2V5LlxuICAgICAgICovXG4gICAgICBrZXlfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgXCJyZXF1ZXN0IGJvZHlcIiB0aGF0IHNob3VsZCBiZSBzZW50IHRvIHRoZSBwb2xpY3kuICovXG4gICAgICByZXF1ZXN0PzogdW5rbm93bjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gb3B0aW9uYWwgUm9sZSBJRC4gSWYgYE5vbmVgLCB0aGUgcG9saWN5IHdpbGwgYmUgaW52b2tlZCBmcm9tIHRoZSBjdXJyZW50IHVzZXIgc2Vzc2lvbi4gKi9cbiAgICAgIHJvbGVfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzdWx0IG9mIGludm9raW5nIGEgV2FzbSBwb2xpY3kuICovXG4gICAgSW52b2tlUG9saWN5UmVzcG9uc2U6IHtcbiAgICAgIHJlc3BvbnNlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIldhc21Qb2xpY3lSZXNwb25zZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBieXRlcyB3cml0dGVuIHRvIGBzdGRlcnJgLCBlbmNvZGVkIGFzIGEgaGV4LXN0cmluZy5cbiAgICAgICAqIEluIG1vc3QgY2FzZXMsIHRoZXNlIGJ5dGVzIGNvcnJlc3BvbmQgdG8gYSBVVEYtOC1lbmNvZGVkIGBTdHJpbmdgLlxuICAgICAgICovXG4gICAgICBzdGRlcnI6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBieXRlcyB3cml0dGVuIHRvIGBzdGRvdXRgLCBlbmNvZGVkIGFzIGEgaGV4LXN0cmluZy5cbiAgICAgICAqIEluIG1vc3QgY2FzZXMsIHRoZXNlIGJ5dGVzIGNvcnJlc3BvbmQgdG8gYSBVVEYtOC1lbmNvZGVkIGBTdHJpbmdgLlxuICAgICAgICovXG4gICAgICBzdGRvdXQ6IHN0cmluZztcbiAgICB9O1xuICAgIEpycGNSZXNwb25zZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSZXNwb25zZVwiXSAmIFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQSBbYEtleVBhY2thZ2VgXSBzZXJpYWxpemVkIGludG8gYSBmb3JtYXQgdGhhdCBnaXZlcyBhIHRpZGllciBKU09OXG4gICAgICogcmVwcmVzZW50YXRpb24gc3VpdGFibGUgZm9yIGVuY3J5cHRpb24gaW4gdGhlIHVzZXItZXhwb3J0IGZsb3cuXG4gICAgICpcbiAgICAgKiBXZSBjb25zdHJ1Y3QgdmFsdWVzIG9mIHRoaXMgdHlwZSByYXRoZXIgdGhhbiBjb25zdHJ1Y3RpbmcgYHNlcmRlX2pzb246OlZhbHVlYHNcbiAgICAgKiBkaXJlY3RseSB3aXRoIGBqc29uISgpYCBiZWNhdXNlIHRoaXMgYWxsb3dzIHVzIHRvIHplcm9pemUgdmFsdWVzIG9uIGRyb3AsIHdoaWNoXG4gICAgICogZG9lc24ndCB3b3JrIHdpdGggYHNlcmRlX2pzb246OlZhbHVlYC5cbiAgICAgKlxuICAgICAqIEV4YW1wbGVzIG9mIHNlcmlhbGl6ZWQgbWF0ZXJpYWw6XG4gICAgICpcbiAgICAgKiAtIGBKc29uS2V5TWF0ZXJpYWw6OkVuZ2xpc2hNbmVtb25pY2A6XG4gICAgICpcbiAgICAgKiBgYGBcbiAgICAgKiB1c2UgY3ViaXN0X3NpZ25lcl91dGlsczo6e1xuICAgICAqIERlcml2YXRpb25QYXRoLCBLZXlQYWNrYWdlLCBNbmVtb25pYywgTW5lbW9uaWNQYWNrYWdlLCBTZWNwMjU2azFQa2csXG4gICAgICogfTtcbiAgICAgKiB1c2Ugc2VyZGVfanNvbjo6anNvbjtcbiAgICAgKlxuICAgICAqIGNvbnN0IE1ORU1PTklDOiAmc3RyID0gXCJkZXBvc2l0IGZpc2NhbCBicmFpbiBzd2FybSBzdXJyb3VuZCBjb3VzaW4gaG9ybiBnbGFyZSBmaXggbG92ZSByZW5kZXIgYmVsaWV2ZSBndWlkZSBzaHVmZmxlIHN0ZW0gY3JhbSBicm9jY29saSByZXNlbWJsZSBiZWFjaCBhcnRlZmFjdCBsYW5ndWFnZSBnaWZ0IGphciBwZXJtaXRcIjtcbiAgICAgKiBjb25zdCBERVJfUEFUSDogJnN0ciA9IFwibS80NCcvNjAnLzAnLzAvMFwiO1xuICAgICAqIGNvbnN0IEtFWV9UWVBFOiAmc3RyID0gXCJlY2RzYTpzZWNwMjU2azFcIjtcbiAgICAgKlxuICAgICAqIGxldCBtbmUgPSBNbmVtb25pYzo6dHJ5X2Zyb20oTU5FTU9OSUMpLmV4cGVjdChcImdvb2QgbW5lbW9uaWNcIik7XG4gICAgICogbGV0IGRlcnAgPSBEZXJpdmF0aW9uUGF0aDo6dHJ5X2Zyb20oREVSX1BBVEgpLmV4cGVjdChcImdvb2QgZGVyIHBhdGhcIik7XG4gICAgICogbGV0IG1uZV9wa2cgPSBNbmVtb25pY1BhY2thZ2U6Om5ldyhtbmUsIFwiXCIsIGRlcnApO1xuICAgICAqIGxldCBrZXlfcGtnID0gS2V5UGFja2FnZTo6PFNlY3AyNTZrMVBrZz46OkVuZ2xpc2hNbmVtb25pYyhtbmVfcGtnKTtcbiAgICAgKiBsZXQganNvbl9wa2cgPSBrZXlfcGtnLmludG9fanNvbihLRVlfVFlQRSk7XG4gICAgICpcbiAgICAgKiBsZXQganNvbl9leHBlY3QgPSBqc29uISh7XG4gICAgICogXCJrZXlfdHlwZVwiOiBLRVlfVFlQRSxcbiAgICAgKiBcIm1hdGVyaWFsX3R5cGVcIjogXCJlbmdsaXNoX21uZW1vbmljXCIsXG4gICAgICogXCJtbmVtb25pY1wiOiBNTkVNT05JQyxcbiAgICAgKiBcInBhc3N3b3JkXCI6IFwiXCIsXG4gICAgICogXCJkZXJpdmF0aW9uX3BhdGhcIjogREVSX1BBVEgsXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBhc3NlcnRfZXEhKFxuICAgICAqIHNlcmRlX2pzb246OnRvX3ZhbHVlKCZqc29uX3BrZykuZXhwZWN0KFwianNvbiBzZXJpYWxpemF0aW9uXCIpLFxuICAgICAqIGpzb25fZXhwZWN0LFxuICAgICAqICk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiAtIGBKc29uS2V5TWF0ZXJpYWw6OlJhd1NlY3JldGA6XG4gICAgICpcbiAgICAgKiBgYGBcbiAgICAgKiB1c2UgY3ViaXN0X3NpZ25lcl91dGlsczo6e1xuICAgICAqIGdldF9yYW5kb21fYnl0ZV9hcnJheSwgaGV4X2VuY29kZSwgS2V5UGFja2FnZSwgUm5nQ29yZSwgU2VjcDI1NmsxUGtnLFxuICAgICAqIH07XG4gICAgICogdXNlIHNlcmRlX2pzb246Ompzb247XG4gICAgICpcbiAgICAgKiBjb25zdCBLRVlfVFlQRTogJnN0ciA9IFwiZWNkc2E6c2VjcDI1NmsxXCI7XG4gICAgICpcbiAgICAgKiAvLyByYW5kb20gMzItYnl0ZSBzZWNyZXRcbiAgICAgKiBsZXQgc2s6IFt1ODsgMzJdID0gKmdldF9yYW5kb21fYnl0ZV9hcnJheSgpO1xuICAgICAqXG4gICAgICogbGV0IGtleV9wa2cgPSBLZXlQYWNrYWdlOjo8U2VjcDI1NmsxUGtnPjo6U2VjcmV0KHNrKTtcbiAgICAgKiBsZXQganNvbl9wa2cgPSBrZXlfcGtnLmludG9fanNvbihLRVlfVFlQRSk7XG4gICAgICpcbiAgICAgKiBsZXQganNvbl9leHBlY3QgPSBqc29uISh7XG4gICAgICogXCJrZXlfdHlwZVwiOiBLRVlfVFlQRSxcbiAgICAgKiBcIm1hdGVyaWFsX3R5cGVcIjogXCJyYXdfc2VjcmV0XCIsXG4gICAgICogXCJzZWNyZXRcIjogaGV4X2VuY29kZSgmc2spLFxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogYXNzZXJ0X2VxIShcbiAgICAgKiBzZXJkZV9qc29uOjp0b192YWx1ZSgmanNvbl9wa2cpLmV4cGVjdChcImpzb24gc2VyaWFsaXphdGlvblwiKSxcbiAgICAgKiBqc29uX2V4cGVjdCxcbiAgICAgKiApO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEpzb25LZXlQYWNrYWdlOiAoXG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtYXRlcmlhbF90eXBlOiBcInJhd19zZWNyZXRcIjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB2YWx1ZSBvZiB0aGUgcmF3IHNlY3JldCAqL1xuICAgICAgICAgIHNlY3JldDogc3RyaW5nO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBkZXJpdmF0aW9uIHBhdGggKi9cbiAgICAgICAgICBkZXJpdmF0aW9uX3BhdGg6IHN0cmluZztcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtYXRlcmlhbF90eXBlOiBcImVuZ2xpc2hfbW5lbW9uaWNcIjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtbmVtb25pYyAqL1xuICAgICAgICAgIG1uZW1vbmljOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcGFzc3dvcmQgKHdoaWNoIG1heSBiZSBlbXB0eSkgKi9cbiAgICAgICAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgICAgICB9XG4gICAgKSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHR5cGUgb2Yga2V5IHRoaXMgcGFja2FnZSByZXByZXNlbnRzICovXG4gICAgICBrZXlfdHlwZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgdG9wLWxldmVsIEpTT04tUlBDIHJlcXVlc3QgdHlwZS4gKi9cbiAgICBKc29uUnBjUmVxdWVzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJScGNNZXRob2RcIl0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFJlcXVlc3QgSUQgKi9cbiAgICAgIGlkPzogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBKU09OLVJQQyB2ZXJzaW9uLiAqL1xuICAgICAganNvbnJwYzogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgUlBDIEFQSSdzIHJlc3BvbnNlLiAqL1xuICAgIEpzb25ScGNSZXNwb25zZToge1xuICAgICAgZXJyb3I/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yT2JqXCJdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSUQgZnJvbSB0aGUgY29ycmVzcG9uZGluZyByZXF1ZXN0LiAqL1xuICAgICAgaWQ/OiB1bmtub3duO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDb25zdGFudCBcIjIuMFwiLiAqL1xuICAgICAganNvbnJwYzogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBSZXN1bHQsIGlmIHN1Y2Nlc3MuICovXG4gICAgICByZXN1bHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFZhbGlkIGByZXN1bHRgIGZyb20gdGhlIEpTT04tUlBDIEFQSS4gKi9cbiAgICBKc29uUnBjUmVzdWx0OlxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRyYW5zYWN0aW9uSW5mb1wiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkxpc3RUcmFuc2FjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN1YkFjY291bnRUcmFuc2ZlclJlc3BvbnNlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVW5pdmVyc2FsVHJhbnNmZXJSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN1YkFjY291bnRBc3NldHNSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY291bnRJbmZvUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdWJBY2NvdW50VHJhbnNmZXJIaXN0b3J5UmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIldpdGhkcmF3UmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJXaXRoZHJhd0hpc3RvcnlSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcG9zaXRSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcG9zaXRIaXN0b3J5UmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJMaXN0U3ViQWNjb3VudHNSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5JbmZvUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdWJBY2NvdW50RGVwb3NpdEFkZHJlc3NSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0UXVlcnlVc2VyUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFF1ZXJ5U3ViTWVtYmVyc1Jlc3BvbnNlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeUNvaW5zQmFsYW5jZVJlc3BvbnNlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeURlcG9zaXRBZGRyZXNzUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFVuaXZlcnNhbFRyYW5zZmVyUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFdpdGhkcmF3UmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFdpdGhkcmF3YWxzUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdENvaW5JbmZvUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdERlcG9zaXRIaXN0b3J5UmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVJlc3BvbnNlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeVdpdGhkcmF3QWRkcmVzc1Jlc3BvbnNlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnliaXRRdWVyeVN1YkRlcG9zaXRBZGRyZXNzUmVzcG9uc2VcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb2luYmFzZUxpc3RBY2NvdW50c1Jlc3BvbnNlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29pbmJhc2VMaXN0UG9ydGZvbGlvc1Jlc3BvbnNlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29pbmJhc2VNb3ZlRnVuZHNSZXNwb25zZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ0Y0xpc3RVdHhvc1Jlc3BvbnNlXCJdO1xuICAgIEp3a1NldFJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBrZXlzIGluY2x1ZGVkIGluIHRoaXMgc2V0ICovXG4gICAgICBrZXlzOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICB9O1xuICAgIEtleUF0dGVzdGF0aW9uQ2xhaW1zOiB7XG4gICAgICBleHA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIGlhdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAga2V5X2luZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5mb1wiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSWYgcmVxdWVzdGVkLCB0aGUgcm9sZXMgdGhlIGtleSBpcyBjdXJyZW50bHkgaW4uICovXG4gICAgICBrZXlfcm9sZXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluUm9sZUluZm9cIl1bXSB8IG51bGw7XG4gICAgfTtcbiAgICBLZXlDb3VudERpbWVuc2lvbnM6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGtleSB0eXBlICovXG4gICAgICBrZXlfdHlwZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgbWV0cmljcyBtdXN0IGluY2x1ZGUgJ29yZ19pZCcgYXMgYSBkaW1lbnNpb24uICovXG4gICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gRGVyaXZhdGlvbi1yZWxhdGVkIG1ldGFkYXRhIGZvciBrZXlzIGRlcml2ZWQgZnJvbSBhIGxvbmctbGl2ZWQgbW5lbW9uaWMgKi9cbiAgICBLZXlEZXJpdmF0aW9uSW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZGVyaXZhdGlvbiBwYXRoIHVzZWQgdG8gZGVyaXZlIHRoaXMga2V5ICovXG4gICAgICBkZXJpdmF0aW9uX3BhdGg6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG1uZW1vbmljLWlkIG9mIHRoZSBrZXkncyBwYXJlbnQgbW5lbW9uaWMgKi9cbiAgICAgIG1uZW1vbmljX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgd3JhcHBlZCBrZXktaW1wb3J0IGtleSAqL1xuICAgIEtleUltcG9ydEtleToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYXNlNjQtZW5jb2RlZCwgZW5jcnlwdGVkIGRhdGEga2V5LiAqL1xuICAgICAgZGtfZW5jOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBFeHBpcmF0aW9uIHRpbWVzdGFtcCBleHByZXNzZWQgYXMgc2Vjb25kcyBzaW5jZSB0aGUgVU5JWCBlcG9jaC5cbiAgICAgICAqL1xuICAgICAgZXhwaXJlczogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVwaGVtZXJhbCBwdWJsaWMga2V5IHRvIHdoaWNoIGFuIGltcG9ydGVkIGtleSBzaG91bGQgYmUgZW5jcnlwdGVkLlxuICAgICAgICogVGhpcyBpcyBhIFAzODQgcHVibGljIGtleSBpbiBiYXNlNjQtZW5jb2RlZCB1bmNvbXByZXNzZWQgU0VDRyBmb3JtYXQuXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXk6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmFzZTY0LWVuY29kZWQsIGVuY3J5cHRlZCBzZWNyZXQga2V5LiAqL1xuICAgICAgc2tfZW5jOiBzdHJpbmc7XG4gICAgfTtcbiAgICBLZXlJblJvbGVJbmZvOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBLZXkgSURcbiAgICAgICAqIEBleGFtcGxlIEtleSMweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAqL1xuICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICBrZXlfaW5mbz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5mb1wiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQb2xpY2llcyB0aGF0IGFyZSBjaGVja2VkIGJlZm9yZSB0aGlzIGtleSBpcyB1c2VkIG9uIGJlaGFsZiBvZiB0aGlzIHJvbGVcbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiVHhSZWNlaXZlclwiOiBcIjB4OGM1OTQ2OTFjMGU1OTJmZmEyMWYxNTNhMTZhZTQxZGI1YmVmY2FhYVwiXG4gICAgICAgKiAgIH0sXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlR4RGVwb3NpdFwiOiB7XG4gICAgICAgKiAgICAgICBcImtpbmRcIjogXCJDYW5vbmljYWxcIlxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJvbGUgSURcbiAgICAgICAqIEBleGFtcGxlIFJvbGUjZTQyN2MyOGEtOWM1Yi00OWNjLWEyNTctODc4YWVhNThhMjJjXG4gICAgICAgKi9cbiAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIEtleUluZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29tbW9uRmllbGRzXCJdICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gS2V5IGFjY2Vzcy1jb250cm9sIGVudHJpZXNcbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiYWN0aW9uc1wiOiBbXG4gICAgICAgKiAgICAgICBcIm1hbmFnZTprZXk6cHJvcGVydGllc1wiXG4gICAgICAgKiAgICAgXSxcbiAgICAgICAqICAgICBcInN1YmplY3RzXCI6IFtcbiAgICAgICAqICAgICAgIFwiVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcIlxuICAgICAgICogICAgIF1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBhY2w/OiB1bmtub3duW10gfCBudWxsO1xuICAgICAgZGVyaXZhdGlvbl9pbmZvPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlEZXJpdmF0aW9uSW5mb1wiXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIGtleSBpcyBlbmFibGVkIChvbmx5IGVuYWJsZWQga2V5cyBtYXkgYmUgdXNlZCBmb3Igc2lnbmluZykgKi9cbiAgICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGtleTogXCJLZXkjXCIgZm9sbG93ZWQgYnkgYSB1bmlxdWUgaWRlbnRpZmllciBzcGVjaWZpYyB0b1xuICAgICAgICogdGhlIHR5cGUgb2Yga2V5IChzdWNoIGFzIGEgcHVibGljIGtleSBmb3IgQkxTIG9yIGFuIGV0aGVyZXVtIGFkZHJlc3MgZm9yIFNlY3ApXG4gICAgICAgKiBAZXhhbXBsZSBLZXkjMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAgICAgKi9cbiAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgdW5pcXVlIGlkZW50aWZpZXIgc3BlY2lmaWMgdG8gdGhlIHR5cGUgb2Yga2V5LCBzdWNoIGFzIGEgcHVibGljIGtleSBvciBhbiBldGhlcmV1bSBhZGRyZXNzXG4gICAgICAgKiBAZXhhbXBsZSAweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAqL1xuICAgICAgbWF0ZXJpYWxfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE93bmVyIG9mIHRoZSBrZXlcbiAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgKi9cbiAgICAgIG93bmVyOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBLZXkgcG9saWN5XG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwiQWxsb3dSYXdCbG9iU2lnbmluZ1wiLFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJSZXF1aXJlTWZhXCI6IHtcbiAgICAgICAqICAgICAgIFwiY291bnRcIjogMVxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k6IHVua25vd25bXTtcbiAgICAgIHByb3BlcnRpZXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVByb3BlcnRpZXNQYXRjaFwiXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBrZXkgcHJvdmVuYW5jZS4gKi9cbiAgICAgIHByb3ZlbmFuY2U/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQsIHNlcmlhbGl6ZWQgcHVibGljIGtleS4gVGhlIGZvcm1hdCB1c2VkIGRlcGVuZHMgb24gdGhlIGtleSB0eXBlOlxuICAgICAgICogLSBTZWNwMjU2azEga2V5cyB1c2UgNjUtYnl0ZSB1bmNvbXByZXNzZWQgU0VDRyBmb3JtYXQ7XG4gICAgICAgKiAtIFN0YXJrIGtleXMgdXNlIDMzLWJ5dGUgY29tcHJlc3NlZCBTRUNHIGZvcm1hdDtcbiAgICAgICAqIC0gQkxTIGtleXMgdXNlIDQ4LWJ5dGUgY29tcHJlc3NlZCBCTFMxMi0zODEgKFpDYXNoKSBmb3JtYXQ7XG4gICAgICAgKiAtIEVkMjU1MTkga2V5cyB1c2UgdGhlIGNhbm9uaWNhbCAzMi1ieXRlIGVuY29kaW5nIHNwZWNpZmllZCBpbiBSRkMgODAzMi5cbiAgICAgICAqIEBleGFtcGxlIDB4MDRkMjY4OGI2YmMyY2U3Zjk4NzliOWU3NDVmM2M0ZGMxNzc5MDhjNWNlZjBjMWI2NGNmZjE5YWU3ZmYyN2RlZTYyM2M2NGZlOWQ5YzMyNWM3ZmJiYzc0OGJiZDVmNjA3Y2UxNGRkODNlMjhlYmJiYjdkM2U3ZjJmZmI3MGE3OTQzMVxuICAgICAgICovXG4gICAgICBwdWJsaWNfa2V5OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcHVycG9zZSBmb3Igd2hpY2ggdGhlIGtleSBjYW4gYmUgdXNlZCAoZS5nLiwgY2hhaW4gaWQgZm9yIHdoaWNoIHRoZSBrZXkgaXMgYWxsb3dlZCB0byBzaWduIG1lc3NhZ2VzKVxuICAgICAgICogQGV4YW1wbGUgRXRoMlZhbGlkYXRvcigxKVxuICAgICAgICovXG4gICAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZWdpb24gYWZmaW5pdHkgZm9yIHRoaXMga2V5ICovXG4gICAgICByZWdpb24/OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIHdoZW4gcmVxdWVzdGluZyBhIGtleSBhdHRlc3RhdGlvbi4gKi9cbiAgICBLZXlJbmZvSnd0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgSlNPTiBXZWIgVG9rZW4gd2hvc2UgY2xhaW1zIGNvbnRhaW4gdGhlIGBLZXlJbmZvYCBzdHJ1Y3R1cmUuICovXG4gICAgICBqd3Q6IHN0cmluZztcbiAgICB9O1xuICAgIEtleUluZm9zOiB7XG4gICAgICBrZXlzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluZm9cIl1bXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDbGllbnQtc2lkZSB3aXJlIHBheWxvYWQgZm9yIFtgS2V5UHJvcGVydGllc2BdLiBVc2VkIGluIGJvdGggZGlyZWN0aW9uczpcbiAgICAgKlxuICAgICAqIC0gKipPbiB3cml0ZSoqOiBhICpwYXRjaCosIGkuZS4sIGZvciBlYWNoIGZpZWxkLCBtaXNzaW5nIG1lYW5zIFwibGVhdmUgYWxvbmVcIixcbiAgICAgKiBgbnVsbGAgbWVhbnMgXCJjbGVhclwiLCBhbmQgYSB2YWx1ZSBtZWFucyBcInNldFwiLiBTZWNyZXQgZmllbGRzIGFycml2ZSBpbiB0aGVcbiAgICAgKiBjbGVhciBhbmQgYXJlIGVuY3J5cHRlZCBzZXJ2ZXItc2lkZSBiZWZvcmUgcGVyc2lzdGluZy5cbiAgICAgKiAtICoqT24gcmVhZCoqOiBlYWNoIGZpZWxkIGlzIG9taXR0ZWQgd2hlbiB0aGUgc3RvcmVkIHByb3BlcnR5IGlzIHVuc2V0OyBzZWNyZXRcbiAgICAgKiBmaWVsZHMgYXJlIGVtaXR0ZWQgd2l0aCB0aGUgcmVkYWN0ZWQgbWFya2VyIChlLmcuIFwiW1JFREFDVEVEXVwiKS5cbiAgICAgKi9cbiAgICBLZXlQcm9wZXJ0aWVzUGF0Y2g6IE9uZU9mPFxuICAgICAgW1xuICAgICAgICBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VBcGlQcm9wZXJ0aWVzUGF0Y2hcIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAga2luZDogXCJCaW5hbmNlQXBpXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29pbmJhc2VBcGlQcm9wZXJ0aWVzUGF0Y2hcIl0gJiB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAga2luZDogXCJDb2luYmFzZUFwaVwiO1xuICAgICAgICB9LFxuICAgICAgICBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ5Yml0QXBpUHJvcGVydGllc1BhdGNoXCJdICYge1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIGtpbmQ6IFwiQnliaXRBcGlcIjtcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICA+O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIEtleVR5cGU6XG4gICAgICB8IFwiU2VjcEV0aEFkZHJcIlxuICAgICAgfCBcIlNlY3BCdGNcIlxuICAgICAgfCBcIlNlY3BCdGNUZXN0XCJcbiAgICAgIHwgXCJTZWNwQnRjTGVnYWN5XCJcbiAgICAgIHwgXCJTZWNwQnRjTGVnYWN5VGVzdFwiXG4gICAgICB8IFwiU2VjcEF2YUFkZHJcIlxuICAgICAgfCBcIlNlY3BBdmFUZXN0QWRkclwiXG4gICAgICB8IFwiQmxzUHViXCJcbiAgICAgIHwgXCJCbHNJbmFjdGl2ZVwiXG4gICAgICB8IFwiQmxzQXZhSWNtXCJcbiAgICAgIHwgXCJFZDI1NTE5U29sYW5hQWRkclwiXG4gICAgICB8IFwiRWQyNTUxOVN1aUFkZHJcIlxuICAgICAgfCBcIkVkMjU1MTlBcHRvc0FkZHJcIlxuICAgICAgfCBcIkVkMjU1MTlDYXJkYW5vQWRkclZrXCJcbiAgICAgIHwgXCJFZDI1NTE5U3RlbGxhckFkZHJcIlxuICAgICAgfCBcIkVkMjU1MTlTdWJzdHJhdGVBZGRyXCJcbiAgICAgIHwgXCJFZDI1NTE5Q2FudG9uQWRkclwiXG4gICAgICB8IFwiRWQyNTUxOUJpbmFuY2VBcGlcIlxuICAgICAgfCBcIkVkMjU1MTlDb2luYmFzZUFwaVwiXG4gICAgICB8IFwiTW5lbW9uaWNcIlxuICAgICAgfCBcIlN0YXJrXCJcbiAgICAgIHwgXCJCYWJ5bG9uRW90c1wiXG4gICAgICB8IFwiQmFieWxvbkNvdlwiXG4gICAgICB8IFwiVGFwcm9vdEJ0Y1wiXG4gICAgICB8IFwiVGFwcm9vdEJ0Y1Rlc3RcIlxuICAgICAgfCBcIlNlY3BDb3Ntb3NBZGRyXCJcbiAgICAgIHwgXCJQMjU2Q29zbW9zQWRkclwiXG4gICAgICB8IFwiUDI1Nk9udG9sb2d5QWRkclwiXG4gICAgICB8IFwiUDI1Nk5lbzNBZGRyXCJcbiAgICAgIHwgXCJFZDI1NTE5VGVuZGVybWludEFkZHJcIlxuICAgICAgfCBcIlNlY3BUcm9uQWRkclwiXG4gICAgICB8IFwiRWQyNTUxOVRvbkFkZHJcIlxuICAgICAgfCBcIlNlY3BEb2dlQWRkclwiXG4gICAgICB8IFwiU2VjcERvZ2VUZXN0QWRkclwiXG4gICAgICB8IFwiU2VjcEthc3BhQWRkclwiXG4gICAgICB8IFwiU2VjcEthc3BhVGVzdEFkZHJcIlxuICAgICAgfCBcIlNjaG5vcnJLYXNwYUFkZHJcIlxuICAgICAgfCBcIlNjaG5vcnJLYXNwYVRlc3RBZGRyXCJcbiAgICAgIHwgXCJTZWNwTHRjXCJcbiAgICAgIHwgXCJTZWNwTHRjVGVzdFwiXG4gICAgICB8IFwiU2VjcFhycEFkZHJcIlxuICAgICAgfCBcIkVkMjU1MTlYcnBBZGRyXCJcbiAgICAgIHwgXCJCYWJ5SnVianViXCJcbiAgICAgIHwgXCJIbWFjU2hhMjU2XCJcbiAgICAgIHwgXCJIbWFjU2hhMjU2QnliaXRcIjtcbiAgICBLZXlUeXBlQW5kRGVyaXZhdGlvblBhdGg6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIExpc3Qgb2YgZGVyaXZhdGlvbiBwYXRocyBmb3Igd2hpY2ggdG8gZGVyaXZlLlxuICAgICAgICogQGV4YW1wbGUgbS80NCcvNjAnLzAnLzAvMFxuICAgICAgICovXG4gICAgICBkZXJpdmF0aW9uX3BhdGg6IHN0cmluZztcbiAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQb2xpY2llcyB0byBhcHBseSB0byB0aGlzIGtleS4gSXQgaXMgYW4gZXJyb3IgdG8gc3BlY2lmeSBhIHBvbGljeVxuICAgICAgICogdGhhdCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIGBrZXlfdHlwZWAuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwiQWxsb3dSYXdCbG9iU2lnbmluZ1wiLFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJSZXF1aXJlTWZhXCI6IHtcbiAgICAgICAqICAgICAgIFwiY291bnRcIjogMVxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiB1bmtub3duW10gfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdyYXBwZXIgYXJvdW5kIGVuY3J5cHRlZCBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gYnl0ZXMuXG4gICAgICpcbiAgICAgKiBXZSBzZXJpYWxpemUgdGhpcyBpbnRvIGEgYmFzZTY0dXJsLWVuY29kZWQgc3RyaW5nIGFuZCByZXR1cm4gdG8gdGhlIHVzZXJcbiAgICAgKiBzbyB0aGF0IHRoZXkgY2FuIHBhc3MgdGhpcyBiYWNrIHRvIHVzIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgKi9cbiAgICBMYXN0RXZhbEtleTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgY3NfY29pbmJhc2VMaXN0QWNjb3VudHNgLlxuICAgICAqXG4gICAgICogQ29pbmJhc2UgZW5kcG9pbnQ6IGBHRVQgL2FwaS92My9icm9rZXJhZ2UvYWNjb3VudHNgLlxuICAgICAqXG4gICAgICogTGlzdHMgdGhlIGJyb2tlcmFnZSBhY2NvdW50cyB0aGUgY2FsbGluZyBrZXkgY2FuIHNlZS4gQWxsIGZpbHRlcnMgYXJlXG4gICAgICogb3B0aW9uYWw7IENvaW5iYXNlIHBhZ2luYXRlcyB0aGUgcmVzdWx0IHZpYSBgY3Vyc29yYCAvIGBoYXNfbmV4dGAuXG4gICAgICovXG4gICAgTGlzdEFjY291bnRzUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDdXJzb3IgZnJvbSBhIHByZXZpb3VzIHJlc3BvbnNlJ3MgW2BDb2luYmFzZUxpc3RBY2NvdW50c1Jlc3BvbnNlOjpjdXJzb3JgXS4gKi9cbiAgICAgIGN1cnNvcj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQYWdlIHNpemUgKENvaW5iYXNlIGRlZmF1bHQ6IDQ5LCBtYXg6IDI1MCkuXG4gICAgICAgKi9cbiAgICAgIGxpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRmlsdGVyIHRvIGEgc3BlY2lmaWMgcmV0YWlsIHBvcnRmb2xpby4gKi9cbiAgICAgIHJldGFpbF9wb3J0Zm9saW9faWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGlyZC1wYXJ0eSBpZGVudGl0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlcidzIGFjY291bnQgKi9cbiAgICBMaXN0SWRlbnRpdGllc1Jlc3BvbnNlOiB7XG4gICAgICBpZGVudGl0aWVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkZW50aXR5SW5mb1wiXVtdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMaXN0IG9mIHBlbmRpbmcgaW52aXRhdGlvbnMgKi9cbiAgICBMaXN0SW52aXRhdGlvbnNSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQZW5kaW5nIGludml0YXRpb25zICovXG4gICAgICBpbnZpdGF0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbnZpdGF0aW9uSW5mb1wiXVtdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgcGVuZGluZyBNTUkgcmVxdWVzdHMgY3JlYXRlZCBieSB0aGUgY3VycmVudCB1c2VyLiAqL1xuICAgIExpc3RQZW5kaW5nTWVzc2FnZXNSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgcGVuZGluZyBtZXNzYWdlcyBmb3IgYSB1c2VyLiAqL1xuICAgICAgcGVuZGluZ19tZXNzYWdlczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQZW5kaW5nTWVzc2FnZUluZm9cIl1bXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgY3NfY29pbmJhc2VMaXN0UG9ydGZvbGlvc2AuXG4gICAgICpcbiAgICAgKiBDb2luYmFzZSBlbmRwb2ludDogYEdFVCAvYXBpL3YzL2Jyb2tlcmFnZS9wb3J0Zm9saW9zYC5cbiAgICAgKi9cbiAgICBMaXN0UG9ydGZvbGlvc1JlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEZpbHRlciBieSBwb3J0Zm9saW8gdHlwZSAoZS5nLiBgXCJERUZBVUxUXCJgLCBgXCJDT05TVU1FUlwiYCwgYFwiSU5UWFwiYCkuXG4gICAgICAgKiBMZWZ0IGFzIGBTdHJpbmdgIGZvciBmb3J3YXJkIGNvbXBhdGliaWxpdHkuXG4gICAgICAgKi9cbiAgICAgIHBvcnRmb2xpb190eXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgR0VUIC9zYXBpL3YxL3N1Yi1hY2NvdW50L2xpc3RgLlxuICAgICAqXG4gICAgICogRW51bWVyYXRlcyB0aGUgc3ViLWFjY291bnRzIHVuZGVyIHRoZSBjYWxsaW5nIG1hc3RlciBhY2NvdW50LiBBbGwgZmlsdGVyc1xuICAgICAqIGFyZSBvcHRpb25hbDsgaWYgYGVtYWlsYC9gaXNfZnJlZXplYCBhcmUgb21pdHRlZCwgZXZlcnkgc3ViLWFjY291bnQgaXNcbiAgICAgKiByZXR1cm5lZCBzdWJqZWN0IHRvIHBhZ2luYXRpb24uXG4gICAgICovXG4gICAgTGlzdFN1YkFjY291bnRzUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgdG8gdGhlIHN1Yi1hY2NvdW50IHdpdGggdGhpcyBlbWFpbC4gKi9cbiAgICAgIGVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEZpbHRlciBieSBmcmVlemUgc3RhdHVzIChgdHJ1ZWAgPSBmcm96ZW4gc3ViLWFjY291bnRzIG9ubHksXG4gICAgICAgKiBgZmFsc2VgID0gYWN0aXZlIHN1Yi1hY2NvdW50cyBvbmx5KS4gQmluYW5jZSBhY2NlcHRzIHRoaXMgYXMgdGhlXG4gICAgICAgKiBsaXRlcmFsIHN0cmluZ3MgYFwidHJ1ZVwiYC9gXCJmYWxzZVwiYCwgd2hpY2ggaXMgZXhhY3RseSB3aGF0XG4gICAgICAgKiBgc2VyZGVfdXJsZW5jb2RlZGAgZW1pdHMgZm9yIGBib29sYC5cbiAgICAgICAqL1xuICAgICAgaXNGcmVlemU/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFBhZ2Ugc2l6ZSAoQmluYW5jZSBkZWZhdWx0OiAxLCBtYXg6IDIwMCkuXG4gICAgICAgKi9cbiAgICAgIGxpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIDEtYmFzZWQgcGFnZSBudW1iZXIgKEJpbmFuY2UgZGVmYXVsdDogMSkuXG4gICAgICAgKi9cbiAgICAgIHBhZ2U/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19iaW5hbmNlTGlzdFN1YkFjY291bnRzYC4gQmluYW5jZSByZXR1cm5zIGFcbiAgICAgKiBgeyBcInN1YkFjY291bnRzXCI6IFsuLi5dIH1gIGVudmVsb3BlOyB0aGlzIHN0cnVjdCBwcmVzZXJ2ZXMgdGhhdCB3aXJlXG4gICAgICogZm9ybWF0LlxuICAgICAqL1xuICAgIExpc3RTdWJBY2NvdW50c1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSBlbnRyeSBwZXIgc3ViLWFjY291bnQgbWF0Y2hpbmcgdGhlIHJlcXVlc3QgZmlsdGVycy4gKi9cbiAgICAgIHN1YkFjY291bnRzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN1YkFjY291bnRJbmZvXCJdW107XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdHlwZSB0aGF0IHdyYXBzIGFub3RoZXIgdHlwZSBhbmQgYWRkcyBiYXNlNjR1cmwtZW5jb2RlZCBlbmNyeXB0ZWQgYGxhc3RfZXZhbHVhdGVkX2tleWBcbiAgICAgKiB2YWx1ZSAod2hpY2ggY2FuIHRoZSB1c2VyIHBhc3MgYmFjayB0byB1c2UgYXMgYSB1cmwgcXVlcnkgcGFyYW1ldGVyIHRvIGNvbnRpbnVlIHBhZ2luYXRpb24pLlxuICAgICAqL1xuICAgIExpc3RUcmFuc2FjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGxpc3Qgb2YgdHJhbnNhY3Rpb24gaW5mb3MuICovXG4gICAgICB0cmFuc2FjdGlvbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVHJhbnNhY3Rpb25JbmZvXCJdW107XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgKi9cbiAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIHRoZSBbYGNzX2xpc3RUcmFuc2FjdGlvbnNgXShScGNNZXRob2Q6Okxpc3RUcmFuc2FjdGlvbnMpIG1ldGhvZC4gKi9cbiAgICBMaXN0VHJhbnNhY3Rpb25zUmVxdWVzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQYWdlXCJdICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgdXNlciBvciByb2xlIGlkLlxuICAgICAgICpcbiAgICAgICAqIElmIGRlZmluZWQsIHRoZSByZXNwb25zZSBpcyBmaWx0ZXJlZCB0byB0cmFuc2FjdGlvbnMgY3JlYXRlZCBieSB0aGUgZ2l2ZW4gaWQuXG4gICAgICAgKi9cbiAgICAgIG93bmVyPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIHRvIFtgY3NfbGlzdFRyYW5zYWN0aW9uc2BdKHN1cGVyOjpyZXF1ZXN0OjpDc1JwYzo6TGlzdFRyYW5zYWN0aW9ucykgKi9cbiAgICBMaXN0VHJhbnNhY3Rpb25zUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBsaXN0IG9mIHRyYW5zYWN0aW9uIGluZm9zLiAqL1xuICAgICAgdHJhbnNhY3Rpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRyYW5zYWN0aW9uSW5mb1wiXVtdO1xuICAgIH07XG4gICAgTG9naW5SZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9pZGNMb2dpblJlcXVlc3RcIl07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERlc2NyaWJlcyB3aGV0aGVyIGEgdXNlciBpbiBhbiBvcmcgaXMgYW4gT3duZXIgb3IganVzdCBhIHJlZ3VsYXIgbWVtYmVyXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBNZW1iZXJSb2xlOiBcIkFsaWVuXCIgfCBcIk1lbWJlclwiIHwgXCJPd25lclwiO1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIE1lbWJlcnNoaXBTdGF0dXM6IFwiZW5hYmxlZFwiIHwgXCJkaXNhYmxlZFwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5hbWUgb2YgdGhlIG1ldHJpYyB0byBjb21wdXRlICovXG4gICAgTWV0cmljTmFtZTpcbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPcmdNZXRyaWNEaXNjcmltaW5hbnRzXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVHNRdWVyeU5hbWVcIl07XG4gICAgLyoqXG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJhbGxvd2VkX2FwcHJvdmVyc1wiOiBbXG4gICAgICogICAgIFwiVXNlciNmYWJjM2Y4OC0wNGUwLTQ3MWItOTY1Ny0wYWUxMmEzY2Q3M2VcIixcbiAgICAgKiAgICAgXCJVc2VyI2Q3OTZjMzY5LTk5NzQtNDczYi1hYjllLWU0YTI0MThkMmQwN1wiXG4gICAgICogICBdLFxuICAgICAqICAgXCJjb3VudFwiOiAyLFxuICAgICAqICAgXCJsaWZldGltZVwiOiA5MDBcbiAgICAgKiB9XG4gICAgICovXG4gICAgTWZhUG9saWN5OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBVc2VycyB3aG8gYXJlIGFsbG93ZWQgdG8gYXBwcm92ZS4gSWYgZW1wdHksIHRoZSBjdXJyZW50IHVzZXJcbiAgICAgICAqIHdpbGwgYmUgaW5zZXJ0ZWQgYnkgZGVmYXVsdC5cbiAgICAgICAqL1xuICAgICAgYWxsb3dlZF9hcHByb3ZlcnM/OiBzdHJpbmdbXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsb3dlZCBhcHByb3ZhbCB0eXBlcy4gV2hlbiBvbWl0dGVkLCBkZWZhdWx0cyB0byBhbnkuICovXG4gICAgICBhbGxvd2VkX21mYV90eXBlcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhVHlwZVwiXVtdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIEhvdyBtYW55IHVzZXJzIG11c3QgYXBwcm92ZSAoZGVmYXVsdHMgdG8gMSkuXG4gICAgICAgKi9cbiAgICAgIGNvdW50PzogbnVtYmVyO1xuICAgICAgbGlmZXRpbWU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZHNcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBIb3cgbWFueSBhdXRoIGZhY3RvcnMgdG8gcmVxdWlyZSBwZXIgdXNlciAoZGVmYXVsdHMgdG8gMSkuXG4gICAgICAgKi9cbiAgICAgIG51bV9hdXRoX2ZhY3RvcnM/OiBudW1iZXI7XG4gICAgICByZXF1ZXN0X2NvbXBhcmVyPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJIdHRwUmVxdWVzdENtcFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEN1YmVTaWduZXIgb3BlcmF0aW9ucyB0byB3aGljaCB0aGlzIHBvbGljeSBzaG91bGQgYXBwbHkuXG4gICAgICAgKiBXaGVuIG9taXR0ZWQsIGFwcGxpZXMgdG8gYWxsIG9wZXJhdGlvbnMuXG4gICAgICAgKi9cbiAgICAgIHJlc3RyaWN0ZWRfb3BlcmF0aW9ucz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3BlcmF0aW9uS2luZFwiXVtdIHwgbnVsbDtcbiAgICAgIHRpbWVfZGVsYXk/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZHNcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTUZBLXByb3RlY3RlZCBhY3Rpb25zIHdob3NlIE1GQSByZXF1aXJlbWVudHMgYXJlIGNvbmZpZ3VyYWJsZSBieSBvcmcgb3duZXJzLlxuICAgICAqXG4gICAgICogU3BlY2lmeWluZyB0aGUgJ0N1YmVTaWduZXInIE1GQSB0eXBlIGlzIG5ldmVyIGFsbG93ZWQgZm9yIGFueSBvZiB0aGVzZSBhY3Rpb25zLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgTWZhUHJvdGVjdGVkQWN0aW9uOlxuICAgICAgfCBcIkRlZmF1bHRcIlxuICAgICAgfCBcIlJlZ2lzdGVyTWZhXCJcbiAgICAgIHwgXCJMb2dpblwiXG4gICAgICB8IFwiRXh0ZW5kU2Vzc2lvblwiXG4gICAgICB8IFwiQWRkSWRlbnRpdHlcIlxuICAgICAgfCBcIktleUV4cG9ydFwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmV0dXJuZWQgYXMgYSByZXNwb25zZSBmcm9tIG11bHRpcGxlIHJvdXRlcyAoZS5nLiwgJ2dldCBtZmEnLCAnYXBwcm92ZSBtZmEnLCAnYXBwcm92ZSB0b3RwJykuICovXG4gICAgTWZhUmVxdWVzdEluZm86IHtcbiAgICAgIGNyZWF0ZWRfYXQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzZXNzaW9uIGlkZW50aXR5ICh1c2VyIG9yIHJvbGUpIHRoYXQgY3JlYXRlZCB0aGlzIHJlcXVlc3QuICovXG4gICAgICBjcmVhdGVkX2J5OiBzdHJpbmc7XG4gICAgICBleHBpcmVzX2F0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFwcHJvdmFsIHJlcXVlc3QgSUQuICovXG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgbm90X3ZhbGlkX3VudGlsPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gTUZBIHBvbGljeSBwcm92ZW5hbmNlXG4gICAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAgICovXG4gICAgICBwcm92ZW5hbmNlOiBcIk9yZ1wiIHwgXCJLZXlcIiB8IFwiS2V5SW5Sb2xlXCIgfCBcIlJvbGVcIiB8IFwiVXNlclwiIHwgXCJFZGl0UG9saWN5XCI7XG4gICAgICByZWNlaXB0PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSZWNlaXB0XCJdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlZ2lvbiB0aGlzIE1GQSByZXF1ZXN0IHdhcyBjcmVhdGVkIGluLiAgSXQgY2FuIG9ubHkgYmUgcmVkZWVtZWQgZnJvbSB0aGUgc2FtZSByZWdpb24uICovXG4gICAgICByZWdpb24/OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIGNvbnRhaW5zIHRoZSBJRHMgb2YgYWxsIE1GQSByZXF1ZXN0cyAoaW5jbHVkaW5nIHRoaXMgb25lISkgdGhhdFxuICAgICAgICogd2VyZSBnZW5lcmF0ZWQgYXQgb25jZSBmb3IgdGhlIHNhbWUgQ3ViZVNpZ25lciBvcGVyYXRpb24uXG4gICAgICAgKlxuICAgICAgICogSWYgbm90IHNldCwgaXQgbWVhbnMgdGhhdCB0aGlzIHdhcyB0aGUgbG9uZSBNRkEgcmVxdWVzdCBnZW5lcmF0ZWQgZm9yIGByZXF1ZXN0YC5cbiAgICAgICAqXG4gICAgICAgKiBUaGlzIGlzIHVzZWZ1bCBzbyB0aGF0IGEgY2xpZW50IGNhbiBkaXNjb3ZlciBhbGwgdGhlIE1GQXMgd2hvc2UgcmVjZWlwdHMgbXVzdFxuICAgICAgICogYmUgc3VibWl0dGVkIHRvZ2V0aGVyIHRvIGNhcnJ5IG91dCB0aGUgb3JpZ2luYWwgQ3ViZVNpZ25lciBvcGVyYXRpb24uXG4gICAgICAgKi9cbiAgICAgIHJlbGF0ZWRfaWRzPzogc3RyaW5nW107XG4gICAgICByZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkh0dHBSZXF1ZXN0XCJdO1xuICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN0YXR1c1wiXTtcbiAgICB9O1xuICAgIE1mYVJlcXVpcmVkQXJnczoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbHdheXMgc2V0IHRvIGZpcnN0IE1GQSBpZCBmcm9tIGBTZWxmOjppZHNgICovXG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBOb24tZW1wdHkgTUZBIHJlcXVlc3QgSURzIG9yIFtgUGVuZGluZ09wUG9saWN5UmVmYF0tZm9ybSByZWZzICovXG4gICAgICBpZHM6IHN0cmluZ1tdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcmdhbml6YXRpb24gaWQgKi9cbiAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBwb2xpY3kgZXZhbHVhdGlvbiB0cmVlIChpbmNsdWRlZCBpbiBzaWduZXIgcmVzcG9uc2VzLCB3aGVuIHJlcXVlc3RlZCkgKi9cbiAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgICAgc2Vzc2lvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT3JnLXdpZGUgTUZBIHJlcXVpcmVtZW50cy4gKi9cbiAgICBNZmFSZXF1aXJlbWVudHM6IHtcbiAgICAgIGFsaWVuX2xvZ2luX3JlcXVpcmVtZW50PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNvbmRGYWN0b3JSZXF1aXJlbWVudFwiXTtcbiAgICAgIGFsbG93ZWRfbWZhX3R5cGVzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBbGxvd2VkTWZhTWFwXCJdO1xuICAgICAga2V5X2V4cG9ydF9yZXF1aXJlbWVudD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kRmFjdG9yUmVxdWlyZW1lbnRcIl07XG4gICAgICBtZW1iZXJfbG9naW5fcmVxdWlyZW1lbnQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZEZhY3RvclJlcXVpcmVtZW50XCJdO1xuICAgIH07XG4gICAgTWZhUmVzZXRSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIHVzZXIgeW91IHdhbnQgdG8gcmVzZXQgTUZBIGZvclxuICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAqL1xuICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogRm9ybWF0OiAnQ3ViZVNpZ25lcicgfCAnRmlkbycgfCBgRmlkb0tleSMke3N0cmluZ31gIHwgJ1RvdHAnIHwgJ0VtYWlsT3RwJyB8IGBFbWFpbE90cCMke251bWJlcn1gXG4gICAgICogQGRlc2NyaXB0aW9uIERpZmZlcmVudCB0eXBlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFwcHJvdmUgYW4gTUZBIHJlcXVlc3RcbiAgICAgKi9cbiAgICBNZmFUeXBlOiBzdHJpbmc7XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgTWZhVm90ZTogXCJhcHByb3ZlXCIgfCBcInJlamVjdFwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gaW5kaXZpZHVhbCBpdGVtIGluIGEgTWlncmF0ZUlkZW50aXR5UmVxdWVzdCAqL1xuICAgIE1pZ3JhdGVJZGVudGl0eUl0ZW06IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY0lkZW50aXR5XCJdICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIHVzZXIgeW91IHdhbnQgdG8gb3BlcmF0ZSBvbiAqL1xuICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHJlcXVlc3QgdG8gYWRkIG9yIHJlbW92ZSBhbiBPSURDIGlkZW50aXRpZXMgZm9yIGFuIGV4aXN0aW5nIHVzZXIgKi9cbiAgICBNaWdyYXRlSWRlbnRpdHlSZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1pZ3JhdGVJZGVudGl0eUl0ZW1cIl1bXTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgcmVxdWVzdCB0byB1cGRhdGUgYW4gZXhpc3RpbmcgdXNlci4gKi9cbiAgICBNaWdyYXRlVXBkYXRlVXNlckl0ZW06IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSB1c2VyIHlvdSB3YW50IHRvIG9wZXJhdGUgb24gKi9cbiAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE92ZXJyaWRlIHVzZXIncyB2ZXJpZmllZCBlbWFpbCBpbiB0aGlzIG9yZy4gVXNlIGFuIGVtcHR5IHN0cmluZyB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgdXNlcidzXG4gICAgICAgKiB2ZXJpZmllZCBlbWFpbCBzaG91bGQgYmUgY2xlYXJlZCAoYW5kIGZhbGxiYWNrIHRvIHRoZWlyIGRpc3BsYXkgZW1haWwpLlxuICAgICAgICovXG4gICAgICB2ZXJpZmllZF9lbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICBNaWdyYXRlVXBkYXRlVXNlcnNSZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1pZ3JhdGVVcGRhdGVVc2VySXRlbVwiXVtdO1xuICAgIE1taU1ldGFkYXRhOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIENoYWluIElEIChub3QgcmVxdWlyZWQgd2hlbiBzaWduaW5nIGEgcGVyc29uYWwgbWVzc2FnZSAoRUlQLTE5MSkpICovXG4gICAgICBjaGFpbklkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSWYgdGhlIGN1c3RvZGlhbiBzaG91bGQgcHVibGlzaCB0aGUgdHJhbnNhY3Rpb24gKi9cbiAgICAgIGN1c3RvZGlhblB1Ymxpc2hlc1RyYW5zYWN0aW9uPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgbm90ZSB0byBiZSBhdHRhY2hlZCB0byB0aGUgdHJhbnNhY3Rpb24gd2hpY2ggY2FuIGJlIHNwZWNpZmllZCBieSB0aGUgdXNlciAqL1xuICAgICAgbm90ZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB3ZWIgcGFnZS9kYXBwIHdoZXJlIHRoZSB0cmFuc2FjdGlvbiBvcmlnaW5hdGVkICovXG4gICAgICBvcmlnaW5Vcmw/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVc2VyJ3MgcHJlZmVycmVkIFJQQyBVUkwsIGFuZCBpdCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIFJQQyBVUkwgZm9yIHRoZSBuZXR3b3JrIGNvcnJlc3BvbmRpbmcgdG8gdGhlIENoYWluIElEICovXG4gICAgICBycGNVcmw/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgY2F0ZWdvcnkgb2YgdHJhbnNhY3Rpb24sIGFzIGJlc3QgY2FuIGJlIGRldGVybWluZWQgYnkgdGhlIHdhbGxldCAqL1xuICAgICAgdHJhbnNhY3Rpb25DYXRlZ29yeT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICBNbWlSZWplY3RSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHJlYXNvbiBmb3IgcmVqZWN0aW5nLiAqL1xuICAgICAgcmVhc29uPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIE1taVN0YXR1czoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTaG9ydCB0ZXh0IHRvIGRpc3BsYXkgdG8gdGhlIHVzZXIgKi9cbiAgICAgIGRpc3BsYXlUZXh0OiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIHNpZ25lZCBtZXNzYWdlIGhhcyBmaW5pc2hlZCwgZS5nLiBpdCBpcyBjb21wbGV0ZWQsIGZhaWxlZCBvciBjYW5jZWxsZWQgKi9cbiAgICAgIGZpbmlzaGVkOiBib29sZWFuO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVhc29uIGZvciB0aGUgc2lnbmVkIG1lc3NhZ2Ugc3RhdHVzICovXG4gICAgICByZWFzb24/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSBtZXNzYWdlIHdhcyBzaWduZWQgKi9cbiAgICAgIHNpZ25lZDogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgdHJhbnNhY3Rpb24gd2FzIHN1Ym1pdHRlZCB0byB0aGUgYmxvY2tjaGFpbiAqL1xuICAgICAgc3VibWl0dGVkPzogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgdHJhbnNhY3Rpb24gd2FzIHN1Y2Nlc3NmdWwsIGkuZS4gaXQgd2FzIGluY2x1ZGVkIGluIGEgYmxvY2sgYW5kIG5vdCByZXZlcnRlZCAqL1xuICAgICAgc3VjY2VzczogYm9vbGVhbjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgY3NfY29pbmJhc2VNb3ZlRnVuZHNgLlxuICAgICAqXG4gICAgICogQ29pbmJhc2UgZW5kcG9pbnQ6IGBQT1NUIC9hcGkvdjMvYnJva2VyYWdlL3BvcnRmb2xpb3MvbW92ZV9mdW5kc2AuXG4gICAgICovXG4gICAgTW92ZUZ1bmRzUmVxdWVzdDoge1xuICAgICAgZnVuZHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29pbmJhc2VBbW91bnRcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFVVSUQgb2YgdGhlIHBvcnRmb2xpbyB0aGUgZnVuZHMgYXJlIGRlYml0ZWQgZnJvbS4gKi9cbiAgICAgIHNvdXJjZV9wb3J0Zm9saW9fdXVpZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVVUlEIG9mIHRoZSBwb3J0Zm9saW8gdGhlIGZ1bmRzIGFyZSBjcmVkaXRlZCB0by4gKi9cbiAgICAgIHRhcmdldF9wb3J0Zm9saW9fdXVpZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCBhIHNpZ25lZCBtZXNzYWdlICovXG4gICAgTXNnU2lnbmF0dXJlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzaWduYXR1cmUgKi9cbiAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHN0cnVjdCByZXByZXNlbnRpbmcgdGhlIHBlbmRpbmcgbWVzc2FnZSBzdGF0dXMgKi9cbiAgICBNc2dTdGF0dXM6XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBzdGF0dXM6IFwiUGVuZGluZ1wiO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIGFib3V0IGEgc2lnbmVkIG1lc3NhZ2UgKi9cbiAgICAgICAgICBzaWc6IHtcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHNpZ25hdHVyZSAqL1xuICAgICAgICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgICAgICAgfTtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBzdGF0dXM6IFwiU2lnbmVkXCI7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIHJlYXNvbjogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIHN0YXR1czogXCJSZWplY3RlZFwiO1xuICAgICAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBOZXR3b3JrIG5hbWUgKCdtYWlubmV0JywgJ2hvbGVza3knKVxuICAgICAqIEBleGFtcGxlIGhvbGVza3lcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIE5ldHdvcms6IFwibWFpbm5ldFwiIHwgXCJob2xlc2t5XCIgfCBcImhvb2RpXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCBhIG5ldyBzZXNzaW9uLCByZXR1cm5lZCBmcm9tIG11bHRpcGxlIGVuZHBvaW50cyAoZS5nLiwgbG9naW4sIHJlZnJlc2gsIGV0Yy4pLiAqL1xuICAgIE5ld1Nlc3Npb25SZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gU2Vzc2lvbiBleHBpcmF0aW9uIChpbiBzZWNvbmRzIHNpbmNlIFVOSVggZXBvY2gpLCBiZXlvbmQgd2hpY2ggaXQgY2Fubm90IGJlIHJlZnJlc2hlZC5cbiAgICAgICAqIEBleGFtcGxlIDE3MDE4Nzk2NDBcbiAgICAgICAqL1xuICAgICAgZXhwaXJhdGlvbj86IG51bWJlcjtcbiAgICAgIG9yZ19pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZWZyZXNoIHRoaXMgc2Vzc2lvbi4gKi9cbiAgICAgIHJlZnJlc2hfdG9rZW46IHN0cmluZztcbiAgICAgIHNlc3Npb25faW5mbzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDbGllbnRTZXNzaW9uSW5mb1wiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE5ldyB0b2tlbiB0byBiZSB1c2VkIGZvciBhdXRoZW50aWNhdGlvbi4gUmVxdWVzdHMgdG8gc2lnbmluZyBlbmRwb2ludHNcbiAgICAgICAqIHNob3VsZCBpbmNsdWRlIHRoaXMgdmFsdWUgaW4gdGhlIGBBdXRob3JpemF0aW9uYCBoZWFkZXIuXG4gICAgICAgKi9cbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogRm9ybWF0OiBiaW5hcnkgKi9cbiAgICBOb25jZVZhbHVlOiBzdHJpbmc7XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgTm90Rm91bmRFcnJvckNvZGU6XG4gICAgICB8IFwiVXJpU2VnbWVudE1pc3NpbmdcIlxuICAgICAgfCBcIlVyaVNlZ21lbnRJbnZhbGlkXCJcbiAgICAgIHwgXCJUb3RwTm90Q29uZmlndXJlZFwiXG4gICAgICB8IFwiRmlkb0tleU5vdEZvdW5kXCJcbiAgICAgIHwgXCJGaWRvQ2hhbGxlbmdlTm90Rm91bmRcIlxuICAgICAgfCBcIlRvdHBDaGFsbGVuZ2VOb3RGb3VuZFwiXG4gICAgICB8IFwiVXNlckV4cG9ydFJlcXVlc3ROb3RGb3VuZFwiXG4gICAgICB8IFwiVXNlckV4cG9ydENpcGhlcnRleHROb3RGb3VuZFwiXG4gICAgICB8IFwiT3JnRXhwb3J0Q2lwaGVydGV4dE5vdEZvdW5kXCJcbiAgICAgIHwgXCJVcGxvYWRPYmplY3ROb3RGb3VuZFwiXG4gICAgICB8IFwiUG9saWN5U2VjcmV0Tm90Rm91bmRcIlxuICAgICAgfCBcIkJ1Y2tldE1ldGFOb3RGb3VuZFwiXG4gICAgICB8IFwiVGltZXN0cmVhbURpc2FibGVkXCJcbiAgICAgIHwgXCJDdXN0b21DaGFpbk5vdEZvdW5kXCJcbiAgICAgIHwgXCJJbnZpdGF0aW9uTm90Rm91bmRcIlxuICAgICAgfCBcIlRyYW5zYWN0aW9uTm90Rm91bmRcIlxuICAgICAgfCBcIkVtYWlsQ29uZmlnTm90Rm91bmRcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBjb25maWd1cmF0aW9uIGFuZCBzdGF0dXMgb2YgYSBub3RpZmljYXRpb24gZW5kcG9pbnQgKi9cbiAgICBOb3RpZmljYXRpb25FbmRwb2ludDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJOb3RpZmljYXRpb25FbmRwb2ludFN1YnNjcmlwdGlvblwiXSAmIHtcbiAgICAgIHN0YXR1czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdWJzY3JpcHRpb25TdGF0dXNcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBjb25maWd1cmF0aW9uIGZvciBhbiBvcmcgZXZlbnQgZW5kcG9pbnQgKi9cbiAgICBOb3RpZmljYXRpb25FbmRwb2ludENvbmZpZ3VyYXRpb246IHtcbiAgICAgIGZpbHRlcj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3JnRXZlbnRGaWx0ZXJcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFVSTCBvZiB0aGUgZW5kcG9pbnQgKi9cbiAgICAgIHVybDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIG5vdGlmaWNhdGlvbiBlbmRwb2ludCBzdWJzY3JpcHRpb24gKi9cbiAgICBOb3RpZmljYXRpb25FbmRwb2ludFN1YnNjcmlwdGlvbjoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgQVJOIG9mIHRoZSBzdWJzY3JpcHRpb24gKi9cbiAgICAgIGFybjogc3RyaW5nO1xuICAgICAgY29uZmlnOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk5vdGlmaWNhdGlvbkVuZHBvaW50Q29uZmlndXJhdGlvblwiXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyB0aGUgZGF0YSBleHRyYWN0ZWQgZnJvbSB0aGUgT0lEQyB0b2tlbiAqL1xuICAgIE9pZGNDbGFpbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY1VzZXJJbmZvXCJdICZcbiAgICAgIGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY0lkZW50aXR5XCJdICYge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEF1ZGllbmNlKHMpIHRoYXQgdGhpcyBJRCBUb2tlbiBpcyBpbnRlbmRlZCBmb3IuIEl0IE1VU1QgY29udGFpbiB0aGVcbiAgICAgICAgICogT0F1dGggMi4wIGNsaWVudF9pZCBvZiB0aGUgUmVseWluZyBQYXJ0eSBhcyBhbiBhdWRpZW5jZSB2YWx1ZS4gSXQgTUFZXG4gICAgICAgICAqIGFsc28gY29udGFpbiBpZGVudGlmaWVycyBmb3Igb3RoZXIgYXVkaWVuY2VzLlxuICAgICAgICAgKiBUaGlzIHZhbHVlIGlzIG9wYXF1ZSBhY2NvcmRpbmcgdG8gdGhlIE9JREMgc3BlYywgYnV0IGZvciBleGFtcGxlIEdvb2dsZVxuICAgICAgICAgKiBhdWRpZW5jZXMgbG9vayBsaWtlIGAxMjM0OTg3ODE5MjAwLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tYFxuICAgICAgICAgKiBAZXhhbXBsZSAxMjM0OTg3ODE5MjAwLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tXG4gICAgICAgICAqL1xuICAgICAgICBhdWQ6IHN0cmluZztcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBvcHRpb25hbCByZXN0cmljdGlvbiBvbiB0aGUgc2V0IG9mIHNjb3BlcyBhbGxvd2VkIHdpdGggdGhpcyB0b2tlbiAqL1xuICAgICAgICBjdWJlc2lnbmVyX3Njb3BlX2NlaWxpbmc/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNjb3BlXCJdW10gfCBudWxsO1xuICAgICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyBhIGdsb2JhbGx5IHVuaXF1ZSBPSURDLWF1dGhvcml6ZWQgdXNlciBieSBleHByZXNzaW5nIHRoZSBmdWxsIFwicGF0aFwiIHRvIGEgdXNlci4gVGhhdCBpczpcbiAgICAgKlxuICAgICAqIChpc3MpICAgICAgIChzdWIpXG4gICAgICogSXNzdWVyIC0+IFN1YnJlc291cmNlXG4gICAgICovXG4gICAgT2lkY0lkZW50aXR5OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcm9vdC1sZXZlbCBpc3N1ZXIgd2hvIGFkbWluaXN0cmF0ZXMgdGhpcyB1c2VyLiBGcm9tIHRoZSBPSURDIHNwZWM6XG4gICAgICAgKiBJc3N1ZXIgSWRlbnRpZmllciBmb3IgdGhlIElzc3VlciBvZiB0aGUgcmVzcG9uc2UuIFRoZSBpc3NcbiAgICAgICAqIHZhbHVlIGlzIGEgY2FzZSBzZW5zaXRpdmUgVVJMIHVzaW5nIHRoZSBodHRwcyBzY2hlbWUgdGhhdCBjb250YWluc1xuICAgICAgICogc2NoZW1lLCBob3N0LCBhbmQgb3B0aW9uYWxseSwgcG9ydCBudW1iZXIgYW5kIHBhdGggY29tcG9uZW50cyBhbmRcbiAgICAgICAqIG5vIHF1ZXJ5IG9yIGZyYWdtZW50IGNvbXBvbmVudHMuXG4gICAgICAgKiBAZXhhbXBsZSBodHRwczovL2FjY291bnRzLmdvb2dsZS5jb21cbiAgICAgICAqL1xuICAgICAgaXNzOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIHRoZSBPSURDIHNwZWM6XG4gICAgICAgKlxuICAgICAgICogQSBsb2NhbGx5IHVuaXF1ZSBhbmQgbmV2ZXIgcmVhc3NpZ25lZCBpZGVudGlmaWVyIHdpdGhpbiB0aGUgSXNzdWVyIGZvclxuICAgICAgICogdGhlIEVuZC1Vc2VyLCB3aGljaCBpcyBpbnRlbmRlZCB0byBiZSBjb25zdW1lZCBieSB0aGUgQ2xpZW50LCBlLmcuLFxuICAgICAgICogMjQ0MDAzMjAgb3IgQUl0T2F3bXd0V3djVDBrNTFCYXlld052dXRySlVxc3ZsNnFzN0E0LiBJdCBNVVNUIE5PVCBleGNlZWRcbiAgICAgICAqIDI1NSBBU0NJSSBjaGFyYWN0ZXJzIGluIGxlbmd0aC4gVGhlIHN1YiB2YWx1ZSBpcyBhIGNhc2Ugc2Vuc2l0aXZlXG4gICAgICAgKiBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSAxMDc2OTE1MDM1MDAwNjE1MDcxNTExMzA4MjM2N1xuICAgICAgICovXG4gICAgICBzdWI6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYW4gZXhwbGljaXRseSBjb25maWd1cmVkIChhbGxvd2xpc3RlZCkgT3BlbklEIHByb3ZpZGVyIGZvciBhbiBvcmcgKi9cbiAgICBPaWRjSXNzdWVySW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBJbnRlbmRlZCBhdWRpZW5jZXMgKGNsaWVudCBJRHMpICovXG4gICAgICBhdWRpZW5jZXM6IHN0cmluZ1tdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBJc3N1ZXIgVVJMICovXG4gICAgICBpc3N1ZXI6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgaXNzdWVyIG5pY2tuYW1lICovXG4gICAgICBuaWNrbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB1c2VyIHJvbGVzIGFsbG93ZWQgdG8gdXNlIHRoaXMgSURQICovXG4gICAgICB1c2VyczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdW107XG4gICAgfTtcbiAgICBPaWRjTG9naW5EaW1lbnNpb25zOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBPSURDIGlzc3VlciAocHJvdmlkZXIpICovXG4gICAgICBpc3N1ZXI6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIG1ldHJpY3MgbXVzdCBpbmNsdWRlICdvcmdfaWQnIGFzIGEgZGltZW5zaW9uLiAqL1xuICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9JREMgbG9naW4gcmVxdWVzdCAqL1xuICAgIE9pZGNMb2dpblJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2xpZW50U2Vzc2lvbk1ldGFkYXRhXCJdICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGh1bWFuIHJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSBwdXJwb3NlIG9mIHRoZSBzZXNzaW9uICovXG4gICAgICBwdXJwb3NlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIENvbnRyb2xzIHdoYXQgY2FwYWJpbGl0aWVzIHRoaXMgc2Vzc2lvbiB3aWxsIGhhdmUuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwic2lnbjoqXCJcbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgc2NvcGVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNjb3BlXCJdW107XG4gICAgICB0b2tlbnM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJhdGNoZXRDb25maWdcIl07XG4gICAgfTtcbiAgICBPaWRjVXNlckluZm86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBhc3NvY2lhdGVkIHdpdGggdGhlIHVzZXJcbiAgICAgICAqIEBleGFtcGxlIHVzZXJAZW1haWwuY29tXG4gICAgICAgKi9cbiAgICAgIGVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB1c2VyIG5hbWUgKGlmIGFueSkgYXNzb2NpYXRlZCB3aXRoIHRoZSB1c2VyXG4gICAgICAgKiBAZXhhbXBsZSBkcmlsXG4gICAgICAgKi9cbiAgICAgIHByZWZlcnJlZF91c2VybmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQWxsIGRpZmZlcmVudCBraW5kcyBvZiBzZW5zaXRpdmUgb3BlcmF0aW9uc1xuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgT3BlcmF0aW9uS2luZDpcbiAgICAgIHwgXCJBdmFTaWduXCJcbiAgICAgIHwgXCJBdmFDaGFpblR4U2lnblwiXG4gICAgICB8IFwiQmFieWxvbkNvdlNpZ25cIlxuICAgICAgfCBcIkJhYnlsb25SZWdpc3RyYXRpb25cIlxuICAgICAgfCBcIkJhYnlsb25TdGFraW5nXCJcbiAgICAgIHwgXCJCaW5hbmNlU3ViVG9NYXN0ZXJcIlxuICAgICAgfCBcIkJpbmFuY2VTdWJUb1N1YlwiXG4gICAgICB8IFwiQmluYW5jZVVuaXZlcnNhbFRyYW5zZmVyXCJcbiAgICAgIHwgXCJCaW5hbmNlU3ViQWNjb3VudEFzc2V0c1wiXG4gICAgICB8IFwiQmluYW5jZUFjY291bnRJbmZvXCJcbiAgICAgIHwgXCJCaW5hbmNlU3ViQWNjb3VudFRyYW5zZmVySGlzdG9yeVwiXG4gICAgICB8IFwiQmluYW5jZVVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeVwiXG4gICAgICB8IFwiQmluYW5jZVdpdGhkcmF3XCJcbiAgICAgIHwgXCJCaW5hbmNlV2l0aGRyYXdIaXN0b3J5XCJcbiAgICAgIHwgXCJCaW5hbmNlRGVwb3NpdFwiXG4gICAgICB8IFwiQmluYW5jZURlcG9zaXRIaXN0b3J5XCJcbiAgICAgIHwgXCJCaW5hbmNlTGlzdFN1YkFjY291bnRzXCJcbiAgICAgIHwgXCJCaW5hbmNlQ29pbkluZm9cIlxuICAgICAgfCBcIkJpbmFuY2VTdWJBY2NvdW50RGVwb3NpdEFkZHJlc3NcIlxuICAgICAgfCBcIkJsb2JTaWduXCJcbiAgICAgIHwgXCJCdGNNZXNzYWdlU2lnblwiXG4gICAgICB8IFwiQnRjU2lnblwiXG4gICAgICB8IFwiQnliaXRRdWVyeVVzZXJcIlxuICAgICAgfCBcIkJ5Yml0UXVlcnlTdWJNZW1iZXJzXCJcbiAgICAgIHwgXCJCeWJpdFF1ZXJ5Q29pbnNCYWxhbmNlXCJcbiAgICAgIHwgXCJCeWJpdFF1ZXJ5RGVwb3NpdEFkZHJlc3NcIlxuICAgICAgfCBcIkJ5Yml0VW5pdmVyc2FsVHJhbnNmZXJcIlxuICAgICAgfCBcIkJ5Yml0V2l0aGRyYXdcIlxuICAgICAgfCBcIkJ5Yml0V2l0aGRyYXdhbHNcIlxuICAgICAgfCBcIkJ5Yml0UXVlcnlDb2luSW5mb1wiXG4gICAgICB8IFwiQnliaXREZXBvc2l0SGlzdG9yeVwiXG4gICAgICB8IFwiQnliaXRVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlcIlxuICAgICAgfCBcIkJ5Yml0UXVlcnlXaXRoZHJhd0FkZHJlc3NcIlxuICAgICAgfCBcIkJ5Yml0UXVlcnlTdWJEZXBvc2l0QWRkcmVzc1wiXG4gICAgICB8IFwiQ29pbmJhc2VMaXN0QWNjb3VudHNcIlxuICAgICAgfCBcIkNvaW5iYXNlTGlzdFBvcnRmb2xpb3NcIlxuICAgICAgfCBcIkNvaW5iYXNlTW92ZUZ1bmRzXCJcbiAgICAgIHwgXCJEaWZmaWVIZWxsbWFuXCJcbiAgICAgIHwgXCJQc2J0U2lnblwiXG4gICAgICB8IFwiVGFwcm9vdFNpZ25cIlxuICAgICAgfCBcIkVpcDE5MVNpZ25cIlxuICAgICAgfCBcIkVpcDcxMlNpZ25cIlxuICAgICAgfCBcIkVpcDc3MDJTaWduXCJcbiAgICAgIHwgXCJFb3RzTm9uY2VzXCJcbiAgICAgIHwgXCJFb3RzU2lnblwiXG4gICAgICB8IFwiRXRoMVNpZ25cIlxuICAgICAgfCBcIkV0aDJTaWduXCJcbiAgICAgIHwgXCJFdGgyU3Rha2VcIlxuICAgICAgfCBcIkV0aDJVbnN0YWtlXCJcbiAgICAgIHwgXCJTb2xhbmFTaWduXCJcbiAgICAgIHwgXCJTdWlTaWduXCJcbiAgICAgIHwgXCJUZW5kZXJtaW50U2lnblwiXG4gICAgICB8IFwiUm9sZVVwZGF0ZVwiO1xuICAgIE9yZ0FsZXJ0c1ByZWZzOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFJlY2lwaWVudCB1c2VycyBmb3Igb3JnLWxldmVsIGFsZXJ0cyAqL1xuICAgICAgYWxlcnRfcmVjaXBpZW50cz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl1bXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9yZy1sZXZlbCBhbGVydHMgdG8gc2VuZCBlbWFpbHMgZm9yICovXG4gICAgICBzdWJzY3JpYmVkX2FsZXJ0cz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWxlcnRLaW5kXCJdW10gfCBudWxsO1xuICAgIH07XG4gICAgT3JnRGF0YToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBvcmdcbiAgICAgICAqIEBleGFtcGxlIE9yZyMxMjMuLi5cbiAgICAgICAqL1xuICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIG9yZ1xuICAgICAgICogQGV4YW1wbGUgbXlfb3JnX25hbWVcbiAgICAgICAqL1xuICAgICAgb3JnX25hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgT3JnRXZlbnRBcmdzOiB7XG4gICAgICBvcmdfZXZlbnQ6IFwiT3JnRXZlbnRBcmdzXCI7XG4gICAgfSAmIE9taXQ8Y29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPcmdFdmVudERhdGFcIl0sIFwib3JnX2V2ZW50XCI+ICYge1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBpZGVudGl0eSB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQgKi9cbiAgICAgICAgdHJpZ2dlcmVkX2J5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT3JnLWxldmVsIGV2ZW50cyB0aGF0IHdlIG5vdGlmeSBvdXIgY3VzdG9tZXJzIGFib3V0ICovXG4gICAgT3JnRXZlbnREYXRhOlxuICAgICAgfCB7XG4gICAgICAgICAgYmlsbGluZ19ldmVudDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCaWxsaW5nRXZlbnRcIl07XG4gICAgICAgICAga2V5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXSB8IG51bGw7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIkJpbGxpbmdcIjtcbiAgICAgICAgICByb2xlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXSB8IG51bGw7XG4gICAgICAgICAgdXNlcj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl0gfCBudWxsO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBkdXJhdGlvbiBvZiB0aGUgcmVxdWVzdCBpbiBtaWxsaXNlY29uZHNcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBkdXJhdGlvbl9tczogbnVtYmVyO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIEhUVFAgcmVxdWVzdCBtZXRob2QgKi9cbiAgICAgICAgICBtZXRob2Q6IHN0cmluZztcbiAgICAgICAgICBvcGVyYXRpb246IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmlsbGluZ0V2ZW50XCJdO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG9yZ19ldmVudDogXCJSZXNwb25zZVwiO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEhUVFAgcmVzcG9uc2Ugc3RhdHVzXG4gICAgICAgICAgICovXG4gICAgICAgICAgc3RhdHVzOiBudW1iZXI7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSFRUUCByZXF1ZXN0IHBhdGggKyBxdWVyeSBwYXJhbWV0ZXJzICovXG4gICAgICAgICAgdXJpOiBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIG1lbWJlcnNoaXA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXTtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBvcmdfZXZlbnQ6IFwiT2lkY0F1dGhcIjtcbiAgICAgICAgICBwdXJwb3NlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICBzY29wZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2NvcGVcIl1bXTtcbiAgICAgICAgICB1c2VyX2luZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY0NsYWltc1wiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbWF0ZXJpYWwgaWQgKGFkZHJlc3MpIG9mIHRoZSBrZXkgdXNlZCBmb3Igc2lnbmluZyAqL1xuICAgICAgICAgIGtleV9tYXRlcmlhbF9pZDogc3RyaW5nO1xuICAgICAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgICAgICAgb3BlcmF0aW9uOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9wZXJhdGlvbktpbmRcIl07XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIlNpZ25lZFwiO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICBjaGFpbl9pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgICAgICBrZXlfaWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIkJhYnlsb25Fb3RzQ29uY3VycmVudFNpZ25pbmdcIjtcbiAgICAgICAgICAvKiogRm9ybWF0OiBpbnQ2NCAqL1xuICAgICAgICAgIHByZXZfYmxvY2tfaGVpZ2h0OiBudW1iZXI7XG4gICAgICAgICAgcHJldl9zaWduaW5nX2hhc2g6IHN0cmluZztcbiAgICAgICAgICAvKiogRm9ybWF0OiBpbnQ2NCAqL1xuICAgICAgICAgIHJlcV9ibG9ja19oZWlnaHQ6IG51bWJlcjtcbiAgICAgICAgICByZXFfc2lnbmluZ19oYXNoOiBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIGF0dGVzdGF0aW9uOiB7XG4gICAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBoYXNoIHRoYXQgd2FzIHNpZ25lZCAqL1xuICAgICAgICAgICAgc2lnbmluZ19yb290OiBzdHJpbmc7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgYXR0ZXN0YXRpb24uZGF0YS5zb3VyY2UuZXBvY2ggb2YgdGhlIHNpZ25lZCBhdHRlc3RhdGlvblxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBzb3VyY2VfZXBvY2g6IG51bWJlcjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBhdHRlc3RhdGlvbi5kYXRhLnRhcmdldC5lcG9jaCBvZiB0aGUgc2lnbmVkIGF0dGVzdGF0aW9uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRhcmdldF9lcG9jaDogbnVtYmVyO1xuICAgICAgICAgIH07XG4gICAgICAgICAga2V5OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgICAgIG1hdGVyaWFsX2lkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBvcmdfZXZlbnQ6IFwiRXRoMkNvbmN1cnJlbnRBdHRlc3RhdGlvblNpZ25pbmdcIjtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGhhc2ggdGhhdCB3YXMgc2lnbmVkICovXG4gICAgICAgICAgICBzaWduaW5nX3Jvb3Q6IHN0cmluZztcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzbG90IG51bWJlciBvZiB0aGUgYmxvY2sgdGhhdCB3YXMgc2lnbmVkXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHNsb3Q6IG51bWJlcjtcbiAgICAgICAgICB9O1xuICAgICAgICAgIGtleTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgICAgICBtYXRlcmlhbF9pZD86IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIkV0aDJDb25jdXJyZW50QmxvY2tTaWduaW5nXCI7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIGVuZm9yY2VkOiBib29sZWFuO1xuICAgICAgICAgIGxhc3Rfc2lnbmluZ19yb290OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEZvcm1hdDogaW50NjQgKi9cbiAgICAgICAgICBsYXN0X3Nsb3Q6IG51bWJlcjtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBvcmdfZXZlbnQ6IFwiRXRoMkludmFsaWRCbG9ja1Byb3Bvc2VyU2xvdFRvb0xvd1wiO1xuICAgICAgICAgIHNpZ25pbmdfcm9vdDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBGb3JtYXQ6IGludDY0ICovXG4gICAgICAgICAgc2xvdDogbnVtYmVyO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICBlbmZvcmNlZDogYm9vbGVhbjtcbiAgICAgICAgICBsYXN0X3NpZ25pbmdfcm9vdDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBGb3JtYXQ6IGludDY0ICovXG4gICAgICAgICAgbGFzdF90YXJnZXRfZXBvY2g6IG51bWJlcjtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBvcmdfZXZlbnQ6IFwiRXRoMkludmFsaWRBdHRlc3RhdGlvblNvdXJjZUVwb2NoVG9vTG93XCI7XG4gICAgICAgICAgc2lnbmluZ19yb290OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEZvcm1hdDogaW50NjQgKi9cbiAgICAgICAgICBzb3VyY2VfZXBvY2g6IG51bWJlcjtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgZW5mb3JjZWQ6IGJvb2xlYW47XG4gICAgICAgICAgbGFzdF9zaWduaW5nX3Jvb3Q6IHN0cmluZztcbiAgICAgICAgICAvKiogRm9ybWF0OiBpbnQ2NCAqL1xuICAgICAgICAgIGxhc3RfdGFyZ2V0X2Vwb2NoOiBudW1iZXI7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIkV0aDJJbnZhbGlkQXR0ZXN0YXRpb25UYXJnZXRFcG9jaFRvb0xvd1wiO1xuICAgICAgICAgIHNpZ25pbmdfcm9vdDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBGb3JtYXQ6IGludDY0ICovXG4gICAgICAgICAgdGFyZ2V0X2Vwb2NoOiBudW1iZXI7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBGb3JtYXQ6IGludDMyICovXG4gICAgICAgICAgZGFpbHlfdW5zdGFrZV9jb3VudDogbnVtYmVyO1xuICAgICAgICAgIGtleV9pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBvcmdfZXZlbnQ6IFwiRXRoMlVuc3Rha2VcIjtcbiAgICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgICAgICAvKiogRm9ybWF0OiBpbnQ2NCAqL1xuICAgICAgICAgIHZhbGlkYXRvcl9pbmRleDogbnVtYmVyO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICBkYXRlOiB1bmtub3duO1xuICAgICAgICAgIC8qKiBGb3JtYXQ6IGludDMyICovXG4gICAgICAgICAgbWF4OiBudW1iZXI7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIkV0aDJFeGNlZWRlZE1heFVuc3Rha2VcIjtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBLZXkgaWRzICovXG4gICAgICAgICAga2V5X2lkczogc3RyaW5nW107XG4gICAgICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBvcmdfZXZlbnQ6IFwiS2V5Q3JlYXRlZFwiO1xuICAgICAgICAgIG93bmVyX2lkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICBhcHByb3ZlZF93aXRoX21mYV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVR5cGVcIl07XG4gICAgICAgICAgbWZhX3JlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhUmVxdWVzdEluZm9cIl07XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIk1mYUFwcHJvdmVkXCI7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIG1mYV9yZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG9yZ19ldmVudDogXCJNZmFSZWplY3RlZFwiO1xuICAgICAgICAgIHJlamVjdGVkX2J5OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgICAgIHJlamVjdGVkX21mYV9pZD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl0gfCBudWxsO1xuICAgICAgICAgIHJlamVjdGVkX3dpdGhfbWZhX3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhVHlwZVwiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgY2hhbmdlZF9ieTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuZXcgcG9saWN5ICovXG4gICAgICAgICAgbmV3X3BvbGljeTogdW5rbm93bltdO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG9yZ19ldmVudDogXCJQb2xpY3lDaGFuZ2VkXCI7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ2hhaW4gaWQgKi9cbiAgICAgICAgICBjaGFpbl9pZDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHN0YXRlIG9mIHRoZSBjdXJyZW50IHJlcXVlc3QgKi9cbiAgICAgICAgICBjdXJyZW50X3N0YXRlOiB1bmtub3duO1xuICAgICAgICAgIGtleV9pZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzdGF0ZSBvZiB0aGUgbGFzdCBzaWduZWQgbWVzc2FnZSAqL1xuICAgICAgICAgIGxhc3Rfc3RhdGU6IHVua25vd247XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIlRlbmRlcm1pbnRDb25jdXJyZW50U2lnbmluZ1wiO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSBpbnZpdGVkIHVzZXIgKi9cbiAgICAgICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG9yZ19ldmVudDogXCJJbnZpdGF0aW9uQ3JlYXRlZFwiO1xuICAgICAgICAgIHJvbGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZW1haWwgYWRkcmVzcyB3aG9zZSBpbnZpdGF0aW9uIHdhcyBjYW5jZWxlZCAqL1xuICAgICAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIkludml0YXRpb25DYW5jZWxlZFwiO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICBrZXlfaWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgb3JnX2V2ZW50OiBcIlVzZXJFeHBvcnRJbml0XCI7XG4gICAgICAgICAgdmFsaWRfZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAga2V5X2lkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIG9yZ19ldmVudDogXCJVc2VyRXhwb3J0Q29tcGxldGVcIjtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZXJyb3IgZnJvbSB0aGUgcG9saWN5IGVuZ2luZSAod2hlbiByZXNwb25zZSBpcyBlcXVhbCB0byAnRXJyb3InKSAqL1xuICAgICAgICAgIGVycm9yPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICBrZXlfaWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdIHwgbnVsbDtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBvcmdfZXZlbnQ6IFwiV2FzbVBvbGljeUV4ZWN1dGVkXCI7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQb2xpY3kgbmFtZSBvciBpZCAqL1xuICAgICAgICAgIHBvbGljeTogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gUG9saWN5IGhhc2ggKi9cbiAgICAgICAgICBwb2xpY3lfaGFzaDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlYXNvbiBmb3IgdGhlIGRlbmlhbCAod2hlbiByZXNwb25zZSBpcyBlcXVhbCB0byAnRGVueScpICovXG4gICAgICAgICAgcmVhc29uPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQXV0by1nZW5lcmF0ZWQgZGlzY3JpbWluYW50IGVudW0gdmFyaWFudHNcbiAgICAgICAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHJlc3BvbnNlOiBcIkFsbG93XCIgfCBcIkRlbnlcIiB8IFwiRXJyb3JcIjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHNvdXJjZSBvZiBhIHBvbGljeSBleGVjdXRpb24sIGkuZS4gdGhlIHJlYXNvbiBpdCB3YXMgZXhlY3V0ZWQuXG4gICAgICAgICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBzb3VyY2U6IFwiU2lnblJlcXVlc3RcIiB8IFwiVXNlckludm9jYXRpb25cIjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFBvbGljeSBlcnJvciBvdXRwdXQgKi9cbiAgICAgICAgICBzdGRlcnI6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFBvbGljeSBzdGFuZGFyZCBvdXRwdXQgKi9cbiAgICAgICAgICBzdGRvdXQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXV0by1nZW5lcmF0ZWQgZGlzY3JpbWluYW50IGVudW0gdmFyaWFudHNcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIE9yZ0V2ZW50RGlzY3JpbWluYW50czpcbiAgICAgIHwgXCJCaWxsaW5nXCJcbiAgICAgIHwgXCJSZXNwb25zZVwiXG4gICAgICB8IFwiT2lkY0F1dGhcIlxuICAgICAgfCBcIlNpZ25lZFwiXG4gICAgICB8IFwiQmFieWxvbkVvdHNDb25jdXJyZW50U2lnbmluZ1wiXG4gICAgICB8IFwiRXRoMkNvbmN1cnJlbnRBdHRlc3RhdGlvblNpZ25pbmdcIlxuICAgICAgfCBcIkV0aDJDb25jdXJyZW50QmxvY2tTaWduaW5nXCJcbiAgICAgIHwgXCJFdGgySW52YWxpZEJsb2NrUHJvcG9zZXJTbG90VG9vTG93XCJcbiAgICAgIHwgXCJFdGgySW52YWxpZEF0dGVzdGF0aW9uU291cmNlRXBvY2hUb29Mb3dcIlxuICAgICAgfCBcIkV0aDJJbnZhbGlkQXR0ZXN0YXRpb25UYXJnZXRFcG9jaFRvb0xvd1wiXG4gICAgICB8IFwiRXRoMlVuc3Rha2VcIlxuICAgICAgfCBcIkV0aDJFeGNlZWRlZE1heFVuc3Rha2VcIlxuICAgICAgfCBcIktleUNyZWF0ZWRcIlxuICAgICAgfCBcIk1mYUFwcHJvdmVkXCJcbiAgICAgIHwgXCJNZmFSZWplY3RlZFwiXG4gICAgICB8IFwiUG9saWN5Q2hhbmdlZFwiXG4gICAgICB8IFwiVGVuZGVybWludENvbmN1cnJlbnRTaWduaW5nXCJcbiAgICAgIHwgXCJJbnZpdGF0aW9uQ3JlYXRlZFwiXG4gICAgICB8IFwiSW52aXRhdGlvbkNhbmNlbGVkXCJcbiAgICAgIHwgXCJVc2VyRXhwb3J0SW5pdFwiXG4gICAgICB8IFwiVXNlckV4cG9ydENvbXBsZXRlXCJcbiAgICAgIHwgXCJXYXNtUG9saWN5RXhlY3V0ZWRcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEZpbHRlciBmb3Igb3JnIGV2ZW50cyAqL1xuICAgIE9yZ0V2ZW50RmlsdGVyOiBPbmVPZjxcbiAgICAgIFtcbiAgICAgICAgXCJBbGxcIixcbiAgICAgICAge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWNjZXB0cyBhbGwgb3JnIGV2ZW50cyBvdGhlciB0aGFuIHRoZSBvbmVzIGxpc3RlZCAqL1xuICAgICAgICAgIEFsbEV4Y2VwdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPcmdFdmVudERpc2NyaW1pbmFudHNcIl1bXTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gT25seSBhY2NlcHRzIG9yZyBldmVudHMgdGhhdCBhcmUgb25lIG9mIHRoZSBsaXN0ZWQgZXZlbnRzICovXG4gICAgICAgICAgT25lT2Y6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3JnRXZlbnREaXNjcmltaW5hbnRzXCJdW107XG4gICAgICAgIH0sXG4gICAgICBdXG4gICAgPjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEFuIG9yZy1leHBvcnQgY2lwaGVydGV4dCByZXRyaWV2ZWQgdmlhIHRoZSBvcmctZXhwb3J0IEFQSS4gKi9cbiAgICBPcmdFeHBvcnRSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGJhc2U2NC1lbmNvZGVkIGV4cG9ydCBjaXBoZXJ0ZXh0LiAqL1xuICAgICAgY2lwaGVydGV4dDogc3RyaW5nO1xuICAgIH07XG4gICAgT3JnSW5mbzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFSZXF1aXJlbWVudHNcIl0gJlxuICAgICAgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb21tb25GaWVsZHNcIl0gJiB7XG4gICAgICAgIGFjY2Vzc19tb2RlbDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2Nlc3NNb2RlbFwiXTtcbiAgICAgICAgY3VzdG9tX2NoYWlucz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3VzdG9tQ2hhaW5zRGF0YVwiXSB8IG51bGw7XG4gICAgICAgIGRlZmF1bHRfaW52aXRlX2tpbmQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkludml0ZUtpbmRcIl07XG4gICAgICAgIGVtYWlsX3ByZWZlcmVuY2VzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbWFpbFByZWZlcmVuY2VzXCJdO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZW4gZmFsc2UsIGFsbCBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbnMgaW52b2x2aW5nIGtleXMgaW4gdGhpcyBvcmcgYXJlIGRpc2FibGVkLiAqL1xuICAgICAgICBlbmFibGVkOiBib29sZWFuO1xuICAgICAgICBleHRfZGF0YT86XG4gICAgICAgICAgfCAoe1xuICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gUGVyIGFsaWVuIHVzZXIga2V5IGNvdW50IHRocmVzaG9sZCwgd2hpY2gsIG9uY2UgZXhjZWVkZWQsIGRpc2FsbG93cyBmdXJ0aGVyIGtleSBjcmVhdGlvbiBieSBhbGllbiB1c2Vycy5cbiAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICogVGhpcyBzZXR0aW5nIGlzIGNoZWNrZWQgb25seSB3aGVuIGFuIGFsaWVuIHVzZXIgcmVxdWVzdHMgdG8gY3JlYXRlIG9yIGltcG9ydCBhIG5ldyBrZXkuXG4gICAgICAgICAgICAgICAqIEluIG90aGVyIHdvcmRzLCBvcmcgYWRtaW5zIGNhbiBzdGlsbCBhc3NpZ24gdW5saW1pdGVkIG51bWJlciBvZiBrZXlzIHRvIHRoZWlyIGFsaWVuIHVzZXJzLlxuICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgYWxpZW5fa2V5X2NvdW50X3RocmVzaG9sZD86IG51bWJlciB8IG51bGw7XG4gICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciBhbGllbiB1c2VycyBhcmUgYWxsb3dlZCB0byB1cGRhdGUgdGhlaXIgb3duIGtleSBwb2xpY2llcy5cbiAgICAgICAgICAgICAgICogRGVmYXVsdHMgdG8gJ2ZhbHNlJy5cbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIGFsaWVuc19jYW5fdXBkYXRlX2tleV9wb2xpY3k/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgICAgICAgIH0gJiB7XG4gICAgICAgICAgICAgIGNyZWF0ZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl0gfCBudWxsO1xuICAgICAgICAgICAgICBsYXN0X21vZGlmaWVkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdIHwgbnVsbDtcbiAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFZlcnNpb24gb2YgdGhpcyBvYmplY3RcbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIHZlcnNpb24/OiBudW1iZXI7XG4gICAgICAgICAgICB9ICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+KVxuICAgICAgICAgIHwgbnVsbDtcbiAgICAgICAgaGlzdG9yaWNhbF9kYXRhX2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkhpc3RvcmljYWxEYXRhQ29uZmlndXJhdGlvblwiXTtcbiAgICAgICAgaWRwX2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkcENvbmZpZ1wiXTtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXByZWNhdGVkOiB0aGlzIGZpZWxkIHNob3VsZCBiZSBpZ25vcmVkLiAqL1xuICAgICAgICBrZXlfaW1wb3J0X2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIHVuaXZlcnNhbGx5IHVuaXF1ZSBrZXktd3JhcHBpbmcta2V5IGlkZW50aWZpZXIuXG4gICAgICAgICAqIFRoaXMgdmFsdWUgaXMgcmVxdWlyZWQgd2hlbiBzZXR0aW5nIHVwIGtleSBleHBvcnQuXG4gICAgICAgICAqIEBleGFtcGxlIG1yay1mY2UwOTUyNWU4MTU4N2QyMzUyMGYxMWUwN2UyZTlkOVxuICAgICAgICAgKi9cbiAgICAgICAga3drX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gRGF0ZS90aW1lIChpbiBVVEMpIHdoZW4gbGFzdCAndW5zdGFrZScgd2FzIHBlcmZvcm1lZC4gVW5peCBlcG9jaCBpZiBub25lLlxuICAgICAgICAgKiBAZXhhbXBsZSBUT0RPXG4gICAgICAgICAqL1xuICAgICAgICBsYXN0X3Vuc3Rha2U6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEhvdyBtYW55ICd1bnN0YWtlJyBjYWxscyBoYXBwZW5lZCBvbiB0aGUgZGF5IHdoZW4gYGxhc3RfdW5zdGFrZWAgd2FzIHBlcmZvcm1lZC5cbiAgICAgICAgICovXG4gICAgICAgIGxhc3RfdW5zdGFrZV9kYXlfY291bnQ6IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIG9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBteV9vcmdfbmFtZVxuICAgICAgICAgKi9cbiAgICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIG5vdGlmaWNhdGlvbiBlbmRwb2ludHMsIHdoaWNoIGFyZSBIVFRQUyBVUkxzIGFyZSBub3RpZmllZCBhYm91dCBhXG4gICAgICAgICAqIGNvbmZpZ3VyYWJsZSBzZXQgb2YgZXZlbnRzIGluIGFuIG9yZ2FuaXphdGlvbi4gRm9yIGVhY2ggZXZlbnQsIEN1YmVTaWduZXIgc2VuZHMgYSBQT1NUXG4gICAgICAgICAqIHJlcXVlc3Qgd2l0aCBhIEpTT04tZm9ybWF0dGVkIGJvZHkgdGhhdCBjb250YWlucyB0aGUgZXZlbnQgZGV0YWlscy5cbiAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgKiAgIHtcbiAgICAgICAgICogICAgIFwiYXJuXCI6IFwiYXJuOmF3czpzbnM6dXMtZWFzdC0xOjAxMjM0NTY3ODkwMTpPcmdFdmVudHNUb3BpYzoxMjM0NTY3OC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDFcIixcbiAgICAgICAgICogICAgIFwiY29uZmlnXCI6IHtcbiAgICAgICAgICogICAgICAgXCJ1cmxcIjogXCJodHRwczovL2V4YW1wbGUuY29tL2VuZHBvaW50MVwiXG4gICAgICAgICAqICAgICB9LFxuICAgICAgICAgKiAgICAgXCJzdGF0dXNcIjogXCJDb25maXJtZWRcIlxuICAgICAgICAgKiAgIH0sXG4gICAgICAgICAqICAge1xuICAgICAgICAgKiAgICAgXCJhcm5cIjogXCJhcm46YXdzOnNuczp1cy1lYXN0LTE6MDEyMzQ1Njc4OTAxOk9yZ0V2ZW50c1RvcGljOjEyMzQ1Njc4LTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMlwiLFxuICAgICAgICAgKiAgICAgXCJjb25maWdcIjoge1xuICAgICAgICAgKiAgICAgICBcImZpbHRlclwiOiB7XG4gICAgICAgICAqICAgICAgICAgXCJPbmVPZlwiOiBbXG4gICAgICAgICAqICAgICAgICAgICBcIkV0aDJDb25jdXJyZW50QXR0ZXN0YXRpb25TaWduaW5nXCIsXG4gICAgICAgICAqICAgICAgICAgICBcIkV0aDJDb25jdXJyZW50QmxvY2tTaWduaW5nXCJcbiAgICAgICAgICogICAgICAgICBdXG4gICAgICAgICAqICAgICAgIH0sXG4gICAgICAgICAqICAgICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDJcIlxuICAgICAgICAgKiAgICAgfSxcbiAgICAgICAgICogICAgIFwic3RhdHVzXCI6IFwiUGVuZGluZ1wiXG4gICAgICAgICAqICAgfVxuICAgICAgICAgKiBdXG4gICAgICAgICAqL1xuICAgICAgICBub3RpZmljYXRpb25fZW5kcG9pbnRzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJOb3RpZmljYXRpb25FbmRwb2ludFwiXVtdO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgb3JnYW5pemF0aW9uXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICBwYXNza2V5X2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBhc3NrZXlDb25maWdcIl07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gT3JnLXdpZGUgcG9saWNpZXMgdGhhdCBhcmUgY2hlY2tlZCBiZWZvcmUgYSBrZXkgaXMgdXNlZCBmb3Igc2lnbmluZ1xuICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAqICAge1xuICAgICAgICAgKiAgICAgXCJNYXhEYWlseVVuc3Rha2VcIjogNVxuICAgICAgICAgKiAgIH1cbiAgICAgICAgICogXVxuICAgICAgICAgKi9cbiAgICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W107XG4gICAgICAgIHBvbGljeV9lbmdpbmVfY29uZmlndXJhdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUG9saWN5RW5naW5lQ29uZmlndXJhdGlvblwiXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBHbG9iYWwgc2lnbiBwb2xpY3kgdGhhdCBhcHBsaWVzIHRvIGV2ZXJ5IHNpZ24gb3BlcmF0aW9uIChldmVyeSBrZXksIGV2ZXJ5IHJvbGUpIGluIHRoZSBvcmdcbiAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgKiAgIHtcbiAgICAgICAgICogICAgIFwiVHhSZWNlaXZlclwiOiBcIjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiXG4gICAgICAgICAqICAgfVxuICAgICAgICAgKiBdXG4gICAgICAgICAqL1xuICAgICAgICBzaWduX3BvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdO1xuICAgICAgICAvKipcbiAgICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIGN1cnJlbnRseSBjb25maWd1cmVkIFRPVFAgZmFpbHVyZSBsaW1pdCwgaS5lLiwgdGhlIG51bWJlclxuICAgICAgICAgKiBvZiB0aW1lcyBhIHVzZXIgY2FuIHByb3ZpZGUgYW4gaW5jb3JyZWN0IFRPVFAgY29kZSBiZWZvcmUgYmVpbmcgcmF0ZSBsaW1pdGVkLlxuICAgICAgICAgKiBUaGlzIHZhbHVlIGNhbiBiZSBiZXR3ZWVuIDEgYW5kIDUgKGluY2x1c2l2ZSkuXG4gICAgICAgICAqL1xuICAgICAgICB0b3RwX2ZhaWx1cmVfbGltaXQ6IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmdhbml6YXRpb24ncyBjdXJyZW50bHkgY29uZmlndXJlZCB1c2VyLWV4cG9ydCBkZWxheSwgaS5lLiwgdGhlIG1pbmltdW1cbiAgICAgICAgICogYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIGJldHdlZW4gd2hlbiBhIHVzZXItZXhwb3J0IGlzIGluaXRpYXRlZCBhbmQgd2hlblxuICAgICAgICAgKiBpdCBtYXkgYmUgY29tcGxldGVkLiAoVGhpcyB2YWx1ZSBpcyBtZWFuaW5nbGVzcyBmb3Igb3JnYW5pemF0aW9ucyB0aGF0IHVzZVxuICAgICAgICAgKiBvcmctd2lkZSBleHBvcnQuKVxuICAgICAgICAgKi9cbiAgICAgICAgdXNlcl9leHBvcnRfZGVsYXk6IG51bWJlcjtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHVzZXIgZXhwb3J0IGlzIGRpc2FibGVkICovXG4gICAgICAgIHVzZXJfZXhwb3J0X2Rpc2FibGVkPzogYm9vbGVhbjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmdhbml6YXRpb24ncyBjdXJyZW50bHkgY29uZmlndXJlZCB1c2VyLWV4cG9ydCB3aW5kb3csIGkuZS4sIHRoZSBhbW91bnRcbiAgICAgICAgICogb2YgdGltZSAoaW4gc2Vjb25kcykgYmV0d2VlbiB3aGVuIHRoZSB1c2VyLWV4cG9ydCBkZWxheSBpcyBjb21wbGV0ZWQgYW5kIHdoZW5cbiAgICAgICAgICogdGhlIHVzZXIgZXhwb3J0IHJlcXVlc3QgaGFzIGV4cGlyZWQgYW5kIGNhbiBubyBsb25nZXIgYmUgY29tcGxldGVkLiAoVGhpcyB2YWx1ZVxuICAgICAgICAgKiBpcyBtZWFuaW5nbGVzcyBmb3Igb3JnYW5pemF0aW9ucyB0aGF0IHVzZSBvcmctd2lkZSBleHBvcnQuKVxuICAgICAgICAgKi9cbiAgICAgICAgdXNlcl9leHBvcnRfd2luZG93OiBudW1iZXI7XG4gICAgICAgIHdlYmFwcF9lbmFibGVkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJXZWJhcHBFbmFibGVkXCJdO1xuICAgICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFN1cHBvcnRlZCBvcmcgbWV0cmljcy4gKi9cbiAgICBPcmdNZXRyaWM6IE9uZU9mPFxuICAgICAgW1xuICAgICAgICB7XG4gICAgICAgICAgQmlsbGluZ0V2ZW50OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbGxpbmdEaW1lbnNpb25zXCJdO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgT2lkY0xvZ2luRXZlbnQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY0xvZ2luRGltZW5zaW9uc1wiXTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFNpZ25FdmVudDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTaWduRGltZW5zaW9uc1wiXTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFVzZXJDb3VudDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VyQ291bnREaW1lbnNpb25zXCJdO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgS2V5Q291bnQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5Q291bnREaW1lbnNpb25zXCJdO1xuICAgICAgICB9LFxuICAgICAgXVxuICAgID47XG4gICAgT3JnTWV0cmljRGF0YToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZGF0YSBwb2ludHMsIG9uZSBmb3IgZWFjaCB0aW1lIHBlcmlvZCAodGltZSBwZXJpb2RzIGZvciB3aGljaCB0aGUgdmFsdWUgaXMgMCBhcmUgb21pdHRlZCkuICovXG4gICAgICBkYXRhOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IG51bWJlcjtcbiAgICAgIH07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtZXRyaWMgZGltZW5zaW9ucy4gKi9cbiAgICAgIGRpbWVuc2lvbnM6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBdXRvLWdlbmVyYXRlZCBkaXNjcmltaW5hbnQgZW51bSB2YXJpYW50c1xuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgT3JnTWV0cmljRGlzY3JpbWluYW50czpcbiAgICAgIHwgXCJCaWxsaW5nRXZlbnRcIlxuICAgICAgfCBcIk9pZGNMb2dpbkV2ZW50XCJcbiAgICAgIHwgXCJTaWduRXZlbnRcIlxuICAgICAgfCBcIlVzZXJDb3VudFwiXG4gICAgICB8IFwiS2V5Q291bnRcIjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXZhaWxhYmxlIHN0YXRpc3RpY3MgdG8gY29tcHV0ZVxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgT3JnTWV0cmljU3RhdDogXCJTdW1cIiB8IFwiQXZlcmFnZVwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT1MgaW5mb3JtYXRpb24gc2V0IGluIFtgQ2xpZW50U2Vzc2lvbk1ldGFkYXRhYF0gYW5kIHJlZmxlY3RlZCBpbiBbYFNlc3Npb25NZXRhZGF0YWBdICovXG4gICAgT3NJbmZvOiB7XG4gICAgICAvKiogQGV4YW1wbGUgYXJtNjQgKi9cbiAgICAgIGFyY2hpdGVjdHVyZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGV4YW1wbGUgTWFjIE9TICovXG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZXhhbXBsZSAxNC41LjAgKi9cbiAgICAgIHZlcnNpb24/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBleGFtcGxlIDY0LWJpdCAqL1xuICAgICAgd29yZF9zaXplPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcm9ja2V0IHF1ZXJ5IHBhcmFtZXRlciByZXByZXNlbnRpbmcgdGhlIHBhZ2UgZnJvbSB3aGljaCB0byBzdGFydCBhIHBhZ2luYXRlZCBxdWVyeS5cbiAgICAgKlxuICAgICAqIE1VU1QgYmUgbmFtZWQgYDxwYWdlPmAgaW4gcm9ja2V0IHVybCBzcGVjIHNvIHRoYXQgJ3NlcmRlKHJlbmFtZSA9IFwicGFnZS4qXCIpJyBiZWxvdyBjb250aW51ZXMgdG8gd29ya1xuICAgICAqL1xuICAgIFBhZ2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICpcbiAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAqL1xuICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICovXG4gICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdHlwZSB0aGF0IHdyYXBzIGFub3RoZXIgdHlwZSBhbmQgYWRkcyBiYXNlNjR1cmwtZW5jb2RlZCBlbmNyeXB0ZWQgYGxhc3RfZXZhbHVhdGVkX2tleWBcbiAgICAgKiB2YWx1ZSAod2hpY2ggY2FuIHRoZSB1c2VyIHBhc3MgYmFjayB0byB1c2UgYXMgYSB1cmwgcXVlcnkgcGFyYW1ldGVyIHRvIGNvbnRpbnVlIHBhZ2luYXRpb24pLlxuICAgICAqL1xuICAgIFBhZ2luYXRlZEF1ZGl0TG9nUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXVkaXQgbG9nIGVudHJpZXMgKi9cbiAgICAgIGVudHJpZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXVkaXRMb2dFbnRyeVwiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRHZXRVc2Vyc0luT3JnUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2YgdXNlcnMgaW4gdGhlIG9yZyAqL1xuICAgICAgdXNlcnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckluT3JnSW5mb1wiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRMaXN0QnVja2V0c1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBidWNrZXRzIGluIHRoZSBvcmdhbml6YXRpb24uICovXG4gICAgICBidWNrZXRzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ1Y2tldEluZm9cIl1bXTtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAqL1xuICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSB0eXBlIHRoYXQgd3JhcHMgYW5vdGhlciB0eXBlIGFuZCBhZGRzIGJhc2U2NHVybC1lbmNvZGVkIGVuY3J5cHRlZCBgbGFzdF9ldmFsdWF0ZWRfa2V5YFxuICAgICAqIHZhbHVlICh3aGljaCBjYW4gdGhlIHVzZXIgcGFzcyBiYWNrIHRvIHVzZSBhcyBhIHVybCBxdWVyeSBwYXJhbWV0ZXIgdG8gY29udGludWUgcGFnaW5hdGlvbikuXG4gICAgICovXG4gICAgUGFnaW5hdGVkTGlzdENvbnRhY3RzUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBsaXN0IG9mIGNvbnRhY3RzIGluIHRoZSBvcmdhbml6YXRpb24sIG1hdGNoaW5nIGFueSBwcm92aWRlZCBxdWVyaWVzLiAqL1xuICAgICAgY29udGFjdHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29udGFjdEluZm9SZXNwb25zZVwiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRMaXN0SGlzdG9yaWNhbFR4UmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSGlzdG9yaWNhbCB0cmFuc2FjdGlvbnMgc2lnbmVkIHdpdGggdGhlIHJlcXVlc3RlZCBrZXksIHNvcnRlZCBmcm9tIG1vc3QgdG8gbGVhc3QgcmVjZW50LiAqL1xuICAgICAgdHhzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkhpc3RvcmljYWxUeFwiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRMaXN0SW52aXRhdGlvbnNSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQZW5kaW5nIGludml0YXRpb25zICovXG4gICAgICBpbnZpdGF0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbnZpdGF0aW9uSW5mb1wiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRMaXN0S2V5Um9sZXNSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgcm9sZXMgdGhlIGtleSBpcyBpbiAqL1xuICAgICAgcm9sZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5Sb2xlSW5mb1wiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRMaXN0S2V5c1Jlc3BvbnNlOiB7XG4gICAgICBrZXlzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluZm9cIl1bXTtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAqL1xuICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSB0eXBlIHRoYXQgd3JhcHMgYW5vdGhlciB0eXBlIGFuZCBhZGRzIGJhc2U2NHVybC1lbmNvZGVkIGVuY3J5cHRlZCBgbGFzdF9ldmFsdWF0ZWRfa2V5YFxuICAgICAqIHZhbHVlICh3aGljaCBjYW4gdGhlIHVzZXIgcGFzcyBiYWNrIHRvIHVzZSBhcyBhIHVybCBxdWVyeSBwYXJhbWV0ZXIgdG8gY29udGludWUgcGFnaW5hdGlvbikuXG4gICAgICovXG4gICAgUGFnaW5hdGVkTGlzdE1mYVJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBwZW5kaW5nIE1GQSByZXF1ZXN0cyAqL1xuICAgICAgbWZhX3JlcXVlc3RzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdW107XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgKi9cbiAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdHlwZSB0aGF0IHdyYXBzIGFub3RoZXIgdHlwZSBhbmQgYWRkcyBiYXNlNjR1cmwtZW5jb2RlZCBlbmNyeXB0ZWQgYGxhc3RfZXZhbHVhdGVkX2tleWBcbiAgICAgKiB2YWx1ZSAod2hpY2ggY2FuIHRoZSB1c2VyIHBhc3MgYmFjayB0byB1c2UgYXMgYSB1cmwgcXVlcnkgcGFyYW1ldGVyIHRvIGNvbnRpbnVlIHBhZ2luYXRpb24pLlxuICAgICAqL1xuICAgIFBhZ2luYXRlZExpc3RQb2xpY2llc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBPcmcncyBuYW1lZCBwb2xpY2llcy4gKi9cbiAgICAgIHBvbGljaWVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBvbGljeUluZm9cIl1bXTtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAqL1xuICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSB0eXBlIHRoYXQgd3JhcHMgYW5vdGhlciB0eXBlIGFuZCBhZGRzIGJhc2U2NHVybC1lbmNvZGVkIGVuY3J5cHRlZCBgbGFzdF9ldmFsdWF0ZWRfa2V5YFxuICAgICAqIHZhbHVlICh3aGljaCBjYW4gdGhlIHVzZXIgcGFzcyBiYWNrIHRvIHVzZSBhcyBhIHVybCBxdWVyeSBwYXJhbWV0ZXIgdG8gY29udGludWUgcGFnaW5hdGlvbikuXG4gICAgICovXG4gICAgUGFnaW5hdGVkTGlzdFJvbGVLZXlzUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIGtleXMgaW4gYSByb2xlICovXG4gICAgICBrZXlzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluUm9sZUluZm9cIl1bXTtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAqL1xuICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSB0eXBlIHRoYXQgd3JhcHMgYW5vdGhlciB0eXBlIGFuZCBhZGRzIGJhc2U2NHVybC1lbmNvZGVkIGVuY3J5cHRlZCBgbGFzdF9ldmFsdWF0ZWRfa2V5YFxuICAgICAqIHZhbHVlICh3aGljaCBjYW4gdGhlIHVzZXIgcGFzcyBiYWNrIHRvIHVzZSBhcyBhIHVybCBxdWVyeSBwYXJhbWV0ZXIgdG8gY29udGludWUgcGFnaW5hdGlvbikuXG4gICAgICovXG4gICAgUGFnaW5hdGVkTGlzdFJvbGVVc2Vyc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCB1c2VycyBpbiBhIHJvbGUgKi9cbiAgICAgIHVzZXJzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJJblJvbGVJbmZvXCJdW107XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgKi9cbiAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdHlwZSB0aGF0IHdyYXBzIGFub3RoZXIgdHlwZSBhbmQgYWRkcyBiYXNlNjR1cmwtZW5jb2RlZCBlbmNyeXB0ZWQgYGxhc3RfZXZhbHVhdGVkX2tleWBcbiAgICAgKiB2YWx1ZSAod2hpY2ggY2FuIHRoZSB1c2VyIHBhc3MgYmFjayB0byB1c2UgYXMgYSB1cmwgcXVlcnkgcGFyYW1ldGVyIHRvIGNvbnRpbnVlIHBhZ2luYXRpb24pLlxuICAgICAqL1xuICAgIFBhZ2luYXRlZExpc3RSb2xlc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCByb2xlcyBpbiBhbiBvcmdhbml6YXRpb24uICovXG4gICAgICByb2xlczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSb2xlSW5mb1wiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRQb2xpY3lMb2dzUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHBvbGljeSBleGVjdXRpb24gbG9ncyAqL1xuICAgICAgbG9nczoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gICAgICB9W107XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgKi9cbiAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdHlwZSB0aGF0IHdyYXBzIGFub3RoZXIgdHlwZSBhbmQgYWRkcyBiYXNlNjR1cmwtZW5jb2RlZCBlbmNyeXB0ZWQgYGxhc3RfZXZhbHVhdGVkX2tleWBcbiAgICAgKiB2YWx1ZSAod2hpY2ggY2FuIHRoZSB1c2VyIHBhc3MgYmFjayB0byB1c2UgYXMgYSB1cmwgcXVlcnkgcGFyYW1ldGVyIHRvIGNvbnRpbnVlIHBhZ2luYXRpb24pLlxuICAgICAqL1xuICAgIFBhZ2luYXRlZFF1ZXJ5TWV0cmljc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFkdmlzb3J5IG1lc3NhZ2VzIChlLmcuLCBpZiBtYXggbnVtYmVyIG9mIHJlc3VsdHMgaXMgcmVhY2hlZCkuICovXG4gICAgICBtZXNzYWdlcz86IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBlcmlvZCBmb3Igd2hpY2ggdGhlIHN0YXRpc3RpYyBpcyBjb21wdXRlZCwgaWYgYW55IChub3QgYWxsIG1ldHJpY3Mgc3VwcG9ydCBzcGxpdHRpbmcgdGhlIHJlcXVlc3RlZCB0aW1lIHJhbmdlIGludG8gYmlucykuXG4gICAgICAgKiBJZiBzZXQsIGVxdWFscyB0byB0aGUgdmFsdWUgZnJvbSB0aGUgcmVxdWVzdCByb3VuZGVkIHVwIHRvIHRoZSBjbG9zZXN0IG11bHRpcGxlIG9mIDYwLlxuICAgICAgICovXG4gICAgICBwZXJpb2Q/OiBudW1iZXI7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFNvbWUgbWV0cmljcyBjYW4gb3B0aW9uYWxseSByZXR1cm4gdGhlIHJhdyBkYXRhLCB3aGVuIHJlcXVlc3RlZC4gKi9cbiAgICAgIHJhd19kYXRhOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICAgIH1bXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29tcHV0ZWQgZGF0YSBwb2ludHMuICovXG4gICAgICByZXN1bHRzOiB7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGRhdGEgcG9pbnRzLCBvbmUgZm9yIGVhY2ggdGltZSBwZXJpb2QgKHRpbWUgcGVyaW9kcyBmb3Igd2hpY2ggdGhlIHZhbHVlIGlzIDAgYXJlIG9taXR0ZWQpLiAqL1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgW2tleTogc3RyaW5nXTogbnVtYmVyO1xuICAgICAgICB9O1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtZXRyaWMgZGltZW5zaW9ucy4gKi9cbiAgICAgICAgZGltZW5zaW9uczoge1xuICAgICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH1bXTtcbiAgICAgIHN0YXQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9yZ01ldHJpY1N0YXRcIl0gfCBudWxsO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRTZXNzaW9uc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBsaXN0IG9mIHNlc3Npb25zICovXG4gICAgICBzZXNzaW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZXNzaW9uSW5mb1wiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRVc2VyRXhwb3J0TGlzdFJlc3BvbnNlOiB7XG4gICAgICBleHBvcnRfcmVxdWVzdHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckV4cG9ydEluaXRSZXNwb25zZVwiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBTZW50IGZyb20gdGhlIGNsaWVudCB0byB0aGUgc2VydmVyIHRvIGFuc3dlciBhIGZpZG8gY2hhbGxlbmdlICovXG4gICAgUGFzc2tleUFzc2VydEFuc3dlcjoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIGNoYWxsZW5nZSB0aGF0IHdhcyByZXR1cm5lZCBmcm9tIHRoZSBQT1NUIGVuZHBvaW50ICovXG4gICAgICBjaGFsbGVuZ2VfaWQ6IHN0cmluZztcbiAgICAgIGNyZWRlbnRpYWw6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFwiXTtcbiAgICB9O1xuICAgIFBhc3NrZXlBc3NlcnRDaGFsbGVuZ2U6IChjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNoYWxsZW5nZVBpZWNlc1wiXSAmIHtcbiAgICAgIG9wdGlvbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zXCJdO1xuICAgIH0pICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGNoYWxsZW5nZS4gTXVzdCBiZSBzdXBwbGllZCB3aGVuIGFuc3dlcmluZyB0aGUgY2hhbGxlbmdlLiAqL1xuICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9yZy1sZXZlbCBwYXNza2V5IGNvbmZpZ3VyYXRpb24gKi9cbiAgICBQYXNza2V5Q29uZmlnOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEVuYWJsZSBwYXNza2V5IGxvZ2luIGZvciBjZXJ0YWluIHVzZXIgcm9sZXMgKGRpc2FibGVkIGZvciBldmVyeW9uZSBieSBkZWZhdWx0KSAqL1xuICAgICAgdXNlcnM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1lbWJlclJvbGVcIl1bXTtcbiAgICB9O1xuICAgIFBhc3N3b3JkUmVzZXRDb25maXJtUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IHBhc3N3b3JkIHRvIHNldC4gKi9cbiAgICAgIG5ld19wYXNzd29yZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSW52aXRhdGlvbiB0b2tlbiwgY29uc3RydWN0ZWQgYnkgY29uY2F0ZW5hdGluZyB0aGUgXCJwYXJ0aWFsIHRva2VuXCJcbiAgICAgICAqIChpLmUuLCBge2hlYWRlcn0ue3BheWxvYWR9LmApIHJldHVybmVkIGJ5IHRoZSBgaWRwX3Bhc3N3b3JkX3Jlc2V0X3JlcXVlc3RgIGVuZHBvaW50XG4gICAgICAgKiBhbmQgdGhlIHNpZ25hdHVyZSBzZW50IHRvIHRoZSB1c2VyJ3MgZW1haWwuXG4gICAgICAgKi9cbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXF1ZXN0IGJvZHkgZm9yIHRoZSBpZHAgcGFzc3dvcmQgcmVzZXQgZW5kcG9pbnQgKi9cbiAgICBQYXNzd29yZFJlc2V0UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIgcmVxdWVzdGluZyB0byByZXNldCB0aGVpciBwYXNzd29yZFxuICAgICAgICogQGV4YW1wbGUgYWxpY2VAZXhhbXBsZS5jb21cbiAgICAgICAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gRXh0ZW5kZWQgaW5mb3JtYXRpb24gYWJvdXQgYW4gZXhpc3RpbmcgTU1JIHJlcXVlc3QuICovXG4gICAgUGVuZGluZ01lc3NhZ2VJbmZvOiB7XG4gICAgICBtZXRhZGF0YTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNbWlNZXRhZGF0YVwiXTtcbiAgICAgIHNpZ25lZE1lc3NhZ2U/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNpZ25lZE1lc3NhZ2VcIl0gfCBudWxsO1xuICAgICAgdHJhbnNhY3Rpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRyYW5zYWN0aW9uQW5kU3RhdHVzXCJdIHwgbnVsbDtcbiAgICB9ICYge1xuICAgICAgY3JlYXRlZF9hdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgZXhwaXJlc19hdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHBlbmRpbmcgbWVzc2FnZSAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkZW50aXR5IChhIHVzZXIgb3IgYSByb2xlIGlkKSB3aGljaCBjcmVhdGVkIHRoaXMgbWVzc2FnZS4gKi9cbiAgICAgIGlkZW50aXR5OiBzdHJpbmc7XG4gICAgICBtZXNzYWdlX2VpcDE5MT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIGFkZHJlc3MsIGhleC1lbmNvZGVkLCB3aXRoIGxlYWRpbmcgJzB4J1xuICAgICAgICAgKiBAZXhhbXBsZSAweDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlcbiAgICAgICAgICovXG4gICAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCAoaW5jbHVkaW5nIGEgJzB4JyBwcmVmaXgpIG1lc3NhZ2UgdG8gc2lnbi4gKi9cbiAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgICAgfSB8IG51bGw7XG4gICAgICBtZXNzYWdlX2VpcDcxMj86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIGFkZHJlc3MsIGhleC1lbmNvZGVkLCB3aXRoIGxlYWRpbmcgJzB4J1xuICAgICAgICAgKiBAZXhhbXBsZSAweDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlcbiAgICAgICAgICovXG4gICAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgICAgZGF0YTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUeXBlZERhdGFcIl07XG4gICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICB2ZXJzaW9uOiBcInYzXCIgfCBcInY0XCI7XG4gICAgICB9IHwgbnVsbDtcbiAgICAgIG1lc3NhZ2VfdHg/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlR5cGVkVHJhbnNhY3Rpb25cIl0gfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFeHRlbmRlZCBpbmZvcm1hdGlvbiBhYm91dCBhbiBleGlzdGluZyBNTUkgbWVzc2FnZSwgaW5jbHVkaW5nIHRoZSBzaWduYXR1cmUuICovXG4gICAgUGVuZGluZ01lc3NhZ2VTaWduUmVzcG9uc2U6ICh7XG4gICAgICBtZXRhZGF0YTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNbWlNZXRhZGF0YVwiXTtcbiAgICAgIHNpZ25lZE1lc3NhZ2U/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNpZ25lZE1lc3NhZ2VcIl0gfCBudWxsO1xuICAgICAgdHJhbnNhY3Rpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRyYW5zYWN0aW9uQW5kU3RhdHVzXCJdIHwgbnVsbDtcbiAgICB9ICYge1xuICAgICAgY3JlYXRlZF9hdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgZXhwaXJlc19hdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHBlbmRpbmcgbWVzc2FnZSAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkZW50aXR5IChhIHVzZXIgb3IgYSByb2xlIGlkKSB3aGljaCBjcmVhdGVkIHRoaXMgbWVzc2FnZS4gKi9cbiAgICAgIGlkZW50aXR5OiBzdHJpbmc7XG4gICAgICBtZXNzYWdlX2VpcDE5MT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIGFkZHJlc3MsIGhleC1lbmNvZGVkLCB3aXRoIGxlYWRpbmcgJzB4J1xuICAgICAgICAgKiBAZXhhbXBsZSAweDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlcbiAgICAgICAgICovXG4gICAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCAoaW5jbHVkaW5nIGEgJzB4JyBwcmVmaXgpIG1lc3NhZ2UgdG8gc2lnbi4gKi9cbiAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgICAgfSB8IG51bGw7XG4gICAgICBtZXNzYWdlX2VpcDcxMj86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIGFkZHJlc3MsIGhleC1lbmNvZGVkLCB3aXRoIGxlYWRpbmcgJzB4J1xuICAgICAgICAgKiBAZXhhbXBsZSAweDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlcbiAgICAgICAgICovXG4gICAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgICAgZGF0YTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUeXBlZERhdGFcIl07XG4gICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICB2ZXJzaW9uOiBcInYzXCIgfCBcInY0XCI7XG4gICAgICB9IHwgbnVsbDtcbiAgICAgIG1lc3NhZ2VfdHg/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlR5cGVkVHJhbnNhY3Rpb25cIl0gfCBudWxsO1xuICAgIH0pICZcbiAgICAgIFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGFjY2Vzcy1jb250cm9sbGVkIGFjdGlvbnMgdGhhdCBjYW4gYmUgcGVyZm9ybWVkIG9uIGEgbmFtZWQgcG9saWN5LlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgUG9saWN5QWN0aW9uOlxuICAgICAgfCBcInJlYWQ6KlwiXG4gICAgICB8IFwicmVhZFwiXG4gICAgICB8IFwicmVhZDpwb2xpY3lcIlxuICAgICAgfCBcInJlYWQ6bG9nc1wiXG4gICAgICB8IFwidXBkYXRlOipcIlxuICAgICAgfCBcInVwZGF0ZVwiXG4gICAgICB8IFwidXBkYXRlOm5hbWVcIlxuICAgICAgfCBcInVwZGF0ZTpydWxlc1wiXG4gICAgICB8IFwidXBkYXRlOm1ldGFkYXRhXCJcbiAgICAgIHwgXCJ1cGRhdGU6ZWRpdFBvbGljeVwiXG4gICAgICB8IFwidXBkYXRlOm93bmVyXCJcbiAgICAgIHwgXCJ1cGRhdGU6YWNsXCJcbiAgICAgIHwgXCJkZWxldGVcIlxuICAgICAgfCBcImF0dGFjaFwiXG4gICAgICB8IFwic2lnblwiXG4gICAgICB8IFwiaW52b2tlXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaWQgZm9yIGF0dGFjaGluZyBhIG5hbWVkIHBvbGljeSB0byBhIGtleSwgcm9sZSwgb3Iga2V5IGluIHJvbGUuICovXG4gICAgUG9saWN5QXR0YWNoZWRUb0lkOiBPbmVPZjxcbiAgICAgIFtcbiAgICAgICAge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGtleSBpbiB0aGUgcm9sZSB0aGUgcG9saWN5IHNob3VsZCBiZSBhdHRhY2hlZCB0by5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAgICAgICAgICovXG4gICAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgcm9sZSB0aGUga2V5IGlzIGluLlxuICAgICAgICAgICAqIEBleGFtcGxlIFJvbGUjYmZlM2VjY2ItNzMxZS00MzBkLWIxZTUtYWMxMzYzZTZiMDZiXG4gICAgICAgICAgICovXG4gICAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUga2V5IHRoZSBwb2xpY3kgc2hvdWxkIGJlIGF0dGFjaGVkIHRvLlxuICAgICAgICAgICAqIEBleGFtcGxlIEtleSMweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIHJvbGUgdGhlIHBvbGljeSBzaG91bGQgYmUgYXR0YWNoZWQgdG8uXG4gICAgICAgICAgICogQGV4YW1wbGUgUm9sZSNiZmUzZWNjYi03MzFlLTQzMGQtYjFlNS1hYzEzNjNlNmIwNmJcbiAgICAgICAgICAgKi9cbiAgICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBvcmcgdGhlIHBvbGljeSBzaG91bGQgYmUgYXR0YWNoZWQgdG8uXG4gICAgICAgICAgICogQGV4YW1wbGUgT3JnI2IwMTU2YWJkLTUzYmQtNDA0My04ZTU1LTU3ZjdhZjk1MTJkNVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICB9LFxuICAgICAgXVxuICAgID47XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHN0cnVjdCBjb250YWluaW5nIE9yZy1sZXZlbCBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHdvcmtpbmdzIG9mIHRoZSBQb2xpY3kgRW5naW5lLiAqL1xuICAgIFBvbGljeUVuZ2luZUNvbmZpZ3VyYXRpb246IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFsbG93ZWQgZG9tYWlucyBmb3IgSFRUUCByZXF1ZXN0c1xuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcImN1YmlzdC5kZXY6NDQzXCJcbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgYWxsb3dlZF9odHRwX2F1dGhvcml0aWVzOiBzdHJpbmdbXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG1heGltdW0gbnVtYmVyIG9mIHBvbGljeSBzZWNyZXRzIGZvciB0aGUgT3JnLiAqL1xuICAgICAgb3JnX3NlY3JldHNfbGltaXQ/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgUG9saWN5RXJyb3JDb2RlOlxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBvbGljeUVycm9yT3duQ29kZXNcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFdm1UeERlcG9zaXRFcnJvckNvZGVcIl07XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgUG9saWN5RXJyb3JPd25Db2RlczpcbiAgICAgIHwgXCJNZmFIdHRwUmVxdWVzdE1pc21hdGNoXCJcbiAgICAgIHwgXCJNZmFFeHBpcmVkXCJcbiAgICAgIHwgXCJJbmFwcGxpY2FibGVcIlxuICAgICAgfCBcIlN1aVR4UmVjZWl2ZXJzRGlzYWxsb3dlZFRyYW5zYWN0aW9uS2luZFwiXG4gICAgICB8IFwiU3VpVHhSZWNlaXZlcnNEaXNhbGxvd2VkVHJhbnNmZXJBZGRyZXNzXCJcbiAgICAgIHwgXCJTdWlUeFJlY2VpdmVyc0Rpc2FsbG93ZWRDb21tYW5kXCJcbiAgICAgIHwgXCJCdGNUeERpc2FsbG93ZWRPdXRwdXRzXCJcbiAgICAgIHwgXCJCdGNTaWduYXR1cmVFeGNlZWRlZFZhbHVlXCJcbiAgICAgIHwgXCJCdGNWYWx1ZU92ZXJmbG93XCJcbiAgICAgIHwgXCJCdGNTaWdoYXNoVHlwZURpc2FsbG93ZWRcIlxuICAgICAgfCBcIkVpcDc3MDJBZGRyZXNzTWlzbWF0Y2hcIlxuICAgICAgfCBcIkV2bVR4UmVjZWl2ZXJNaXNtYXRjaFwiXG4gICAgICB8IFwiRXZtVHhDaGFpbklkTWlzbWF0Y2hcIlxuICAgICAgfCBcIkV2bVR4U2VuZGVyTWlzbWF0Y2hcIlxuICAgICAgfCBcIkV2bVR4RXhjZWVkZWRWYWx1ZVwiXG4gICAgICB8IFwiRXZtVHhFeGNlZWRlZEdhc0Nvc3RcIlxuICAgICAgfCBcIkV2bVR4R2FzQ29zdFVuZGVmaW5lZFwiXG4gICAgICB8IFwiRXZtRGF0YURpc2FsbG93ZWRcIlxuICAgICAgfCBcIkVyYzIwRGF0YUludmFsaWRcIlxuICAgICAgfCBcIkV2bUNvbnRyYWN0QWRkcmVzc1VuZGVmaW5lZFwiXG4gICAgICB8IFwiRXZtQ29udHJhY3RDaGFpbklkVW5kZWZpbmVkXCJcbiAgICAgIHwgXCJFdm1EYXRhTm90RGVmaW5lZFwiXG4gICAgICB8IFwiRXZtRGF0YUludmFsaWRcIlxuICAgICAgfCBcIkV2bUNvbnRyYWN0Tm90SW5BbGxvd2xpc3RcIlxuICAgICAgfCBcIkVyYzIwRXhjZWVkZWRUcmFuc2ZlckxpbWl0XCJcbiAgICAgIHwgXCJFcmMyMFJlY2VpdmVyTWlzbWF0Y2hcIlxuICAgICAgfCBcIkVyYzIwRXhjZWVkZWRBcHByb3ZlTGltaXRcIlxuICAgICAgfCBcIkVyYzIwU3BlbmRlck1pc21hdGNoXCJcbiAgICAgIHwgXCJFdm1GdW5jdGlvbk5vdEluQWxsb3dsaXN0XCJcbiAgICAgIHwgXCJFdm1GdW5jdGlvbkNhbGxJbnZhbGlkXCJcbiAgICAgIHwgXCJFdm1GdW5jdGlvbkNhbGxEaXNhbGxvd2VkQXJnXCJcbiAgICAgIHwgXCJQb2xpY3lEaXNqdW5jdGlvbkVycm9yXCJcbiAgICAgIHwgXCJQb2xpY3lOZWdhdGlvbkVycm9yXCJcbiAgICAgIHwgXCJFdGgyRXhjZWVkZWRNYXhVbnN0YWtlXCJcbiAgICAgIHwgXCJFdGgyQ29uY3VycmVudFVuc3Rha2luZ1wiXG4gICAgICB8IFwiTm90SW5JcHY0QWxsb3dsaXN0XCJcbiAgICAgIHwgXCJOb3RJbk9yaWdpbkFsbG93bGlzdFwiXG4gICAgICB8IFwiTm90SW5PcGVyYXRpb25BbGxvd2xpc3RcIlxuICAgICAgfCBcIkludmFsaWRTb3VyY2VJcFwiXG4gICAgICB8IFwiUmF3U2lnbmluZ05vdEFsbG93ZWRcIlxuICAgICAgfCBcIkRpZmZpZUhlbGxtYW5FeGNoYW5nZU5vdEFsbG93ZWRcIlxuICAgICAgfCBcIkVpcDcxMlNpZ25pbmdOb3RBbGxvd2VkXCJcbiAgICAgIHwgXCJPaWRjU291cmNlTm90QWxsb3dlZFwiXG4gICAgICB8IFwiTm9PaWRjQXV0aFNvdXJjZXNEZWZpbmVkXCJcbiAgICAgIHwgXCJBZGRLZXlUb1JvbGVEaXNhbGxvd2VkXCJcbiAgICAgIHwgXCJLZXlzQWxyZWFkeUluUm9sZVwiXG4gICAgICB8IFwiS2V5SW5NdWx0aXBsZVJvbGVzXCJcbiAgICAgIHwgXCJLZXlBY2Nlc3NFcnJvclwiXG4gICAgICB8IFwiUmVxdWlyZVJvbGVTZXNzaW9uS2V5QWNjZXNzRXJyb3JcIlxuICAgICAgfCBcIkJ0Y01lc3NhZ2VTaWduaW5nTm90QWxsb3dlZFwiXG4gICAgICB8IFwiRWlwMTkxU2lnbmluZ05vdEFsbG93ZWRcIlxuICAgICAgfCBcIkVpcDc3MDJTaWduaW5nTm90QWxsb3dlZFwiXG4gICAgICB8IFwiVGFwcm9vdFNpZ25pbmdEaXNhbGxvd2VkXCJcbiAgICAgIHwgXCJTZWd3aXRTaWduaW5nRGlzYWxsb3dlZFwiXG4gICAgICB8IFwiUHNidFNpZ25pbmdEaXNhbGxvd2VkXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ0Rpc2FsbG93ZWRcIlxuICAgICAgfCBcIlRpbWVMb2NrZWRcIlxuICAgICAgfCBcIkNlbFBvbGljeURlbmllZFwiXG4gICAgICB8IFwiQmFieWxvblN0YWtpbmdOZXR3b3JrXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ1BhcmFtc1ZlcnNpb25cIlxuICAgICAgfCBcIkJhYnlsb25TdGFraW5nRXhwbGljaXRQYXJhbXNcIlxuICAgICAgfCBcIkJhYnlsb25TdGFraW5nU3Rha2VyUGtcIlxuICAgICAgfCBcIkJhYnlsb25TdGFraW5nRmluYWxpdHlQcm92aWRlclBrXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ0xvY2tUaW1lXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ1ZhbHVlXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ0NoYW5nZUFkZHJlc3NcIlxuICAgICAgfCBcIkJhYnlsb25TdGFraW5nRmVlXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ1dpdGhkcmF3YWxBZGRyZXNzXCJcbiAgICAgIHwgXCJCYWJ5bG9uU3Rha2luZ0JibkFkZHJlc3NcIlxuICAgICAgfCBcIlNvbGFuYUluc3RydWN0aW9uQ291bnRMb3dcIlxuICAgICAgfCBcIlNvbGFuYUluc3RydWN0aW9uQ291bnRIaWdoXCJcbiAgICAgIHwgXCJTb2xhbmFOb3RJbkluc3RydWN0aW9uQWxsb3dsaXN0XCJcbiAgICAgIHwgXCJTb2xhbmFJbnN0cnVjdGlvbk1pc21hdGNoXCJcbiAgICAgIHwgXCJXYXNtUG9saWNpZXNEaXNhYmxlZFwiXG4gICAgICB8IFwiV2FzbVBvbGljeURlbmllZFwiXG4gICAgICB8IFwiV2FzbVBvbGljeUZhaWxlZFwiXG4gICAgICB8IFwiV2ViaG9va1BvbGljaWVzRGlzYWJsZWRcIlxuICAgICAgfCBcIkRlbmllZEJ5V2ViaG9va1wiXG4gICAgICB8IFwiTWZhQXBwcm92YWxzTm90WWV0VmFsaWRcIlxuICAgICAgfCBcIkV4cGxpY2l0bHlEZW5pZWRcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgc3RydWN0IGNvbnRhaW5pbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIHZlcnNpb24gb2YgYSBwb2xpY3kuICovXG4gICAgUG9saWN5SW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYWNjZXNzLWNvbnRyb2wgZW50cmllcyBmb3IgdGhlIHBvbGljeS4gKi9cbiAgICAgIGFjbD86IHVua25vd25bXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgbGlzdCBvZiBlbnRpdGllcyAoa2V5cywgcm9sZXMsIGV0Yy4pIHRoZSBwb2xpY3kgaXMgYXR0YWNoZWQgdG8uICovXG4gICAgICBhdHRhY2hlZF90bzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQb2xpY3lBdHRhY2hlZFRvSWRcIl1bXTtcbiAgICAgIGNyZWF0ZWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIGVkaXRfcG9saWN5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFZGl0UG9saWN5XCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVc2VyLWRlZmluZWQgbWV0YWRhdGEgZm9yIHRoZSBuYW1lZCBwb2xpY3kuICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuYW1lIG9mIHRoZSBwb2xpY3kuICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBvd25lcjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHBvbGljeSBpZCAqL1xuICAgICAgcG9saWN5X2lkOiBzdHJpbmc7XG4gICAgICBwb2xpY3lfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQb2xpY3lUeXBlXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcG9saWN5IHJ1bGUuICovXG4gICAgICBydWxlczogdW5rbm93bltdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBvbGljeSBydWxlJ3MgdmVyc2lvbi5cbiAgICAgICAqL1xuICAgICAgdmVyc2lvbjogbnVtYmVyO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHJlcXVlc3QgZm9yIHF1ZXJ5aW5nIFdhc20gcG9saWN5IGxvZ3MuICovXG4gICAgUG9saWN5TG9nc1JlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIEVuZCB0aW1lIGluIHNlY29uZHMgc2luY2UgdW5peCBlcG9jaC4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gJ25vdycuXG4gICAgICAgKi9cbiAgICAgIGVuZF90aW1lPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFN0YXJ0IHRpbWUgaW4gc2Vjb25kcyBzaW5jZSB1bml4IGVwb2NoLiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byAyNCBob3VycyBhZ28uXG4gICAgICAgKi9cbiAgICAgIHN0YXJ0X3RpbWU/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHZlcnNpb24gb2YgdGhlIHBvbGljeSB0byBnZXQgdGhlIGxvZ3MgZm9yLlxuICAgICAgICogSWYgb21pdHRlZCwgYWxsIHBvbGljeSBsb2dzIGFyZSByZXRyaWV2ZWQuXG4gICAgICAgKi9cbiAgICAgIHZlcnNpb24/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBvbGljeVJlc3VsdFJlc3BvbnNlIGlzIGEgd3JhcHBlciBvbiBQb2xpY3lSZXN1bHQgd2l0aCB0d28gaW1wb3J0YW50XG4gICAgICogcHJvcGVydGllczpcbiAgICAgKiAqIGRlcml2ZXMgT2tUb0xvZ1Jlc3BvbnNlLCBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGluIHRoZSByb2NrZXQgaGFuZGxlci5cbiAgICAgKiAqIGRlcml2ZXMgVG9TY2hlbWEgYW5kIFRvUmVzcG9uc2UsIHdpdGggdGhlIGB2YWxgIGZpZWxkIHdpdGggdmFsdWVfdHlwZVxuICAgICAqIE9iamVjdCwgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHByb3ZpZGUgYWxsIG9mIHRoZSBPcGVuQVBJIHR5cGVcbiAgICAgKiBkZXNjcmlwdGlvbnMgb2YgYSBQb2xpY3lSZXN1bHQuXG4gICAgICpcbiAgICAgKiBUaGUgUG9saWN5UmVzdWx0IGluY2x1ZGVzIGVudW1zIGFuZCBvdGhlciBzdGFuZGFyZCB0eXBlcyAoZS5nLlxuICAgICAqIHN0ZDo6dGltZTo6SW50ZXJ2YWwpIHdoaWNoIGFyZSBub250cml2aWFsIHRvIHJlcHJlc2VudCBpbiBPcGVuQVBJLiBTaW5jZVxuICAgICAqIHRoaXMgZW5kcG9pbnQgaXMganVzdCBmb3IgdGVzdGluZywgd2UgZG9uJ3QgcmVhbGx5IGNhcmUgYWJvdXQgaG93IGFjY3VyYXRlXG4gICAgICogdGhlIHNjaGVtYSBpcywgYW5kIGNhbiBsZWFuIG9uIHNlcmRlX2pzb24gd2hlbiBkZWNvZGluZyB0aGlzIHJlc3BvbnNlIHRvIGFcbiAgICAgKiBQb2xpY3lSZXN1bHQgaW4gYSBjbGllbnQuIE5vdGUgdGhhdCB0aGVyZSBpcyBhIGJ1ZyBpbiB1dG9pcGEgd2hlcmUgdGhlXG4gICAgICogdmFsdWVfdHlwZSBhbm5vdGF0aW9uIHdpbGwgbm90IHdvcmsgZm9yIGEgdHVwbGUtc3RydWN0LCBvbmx5IGEgc3RydWN0IHdpdGhcbiAgICAgKiBmaWVsZHMuXG4gICAgICovXG4gICAgUG9saWN5UmVzdWx0UmVzcG9uc2U6IHtcbiAgICAgIHZhbDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHN0cnVjdCBjb250YWluaW5nIGFsbCBub24tc2VjcmV0IGluZm9ybWF0aW9uIGFib3V0IHBvbGljeSBzZWNyZXRzLiAqL1xuICAgIFBvbGljeVNlY3JldHNJbmZvOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbW1vbkZpZWxkc1wiXSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlcHJlY2F0ZWRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmFtZXMgb2YgdGhlIHNlY3JldHMuXG4gICAgICAgKi9cbiAgICAgIG5hbWVzOiBzdHJpbmdbXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHBvbGljeSBzZWNyZXRzLiAqL1xuICAgICAgc2VjcmV0czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNyZXRJbmZvXCJdW107XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHR5cGUgb2YgYSBbTmFtZWRQb2xpY3ldLlxuICAgICAqXG4gICAgICogVGhlIHR5cGUgb2YgYSBwb2xpY3kgaXMgc2V0IGF0IGNyZWF0aW9uIHRpbWUsIGFuZCBpcyB1c2VkIHRvIG9mZmVyIGd1YXJhbnRlZXNcbiAgICAgKiBhYm91dCB0aGUgY3VycmVudCBhbmQgYWxsIGZ1dHVyZSB2ZXJzaW9ucyBvZiBhIFtOYW1lZFBvbGljeV0uXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBQb2xpY3lUeXBlOiBcIktleVwiIHwgXCJSb2xlXCIgfCBcIldhc21cIjtcbiAgICBQcmVjb25kaXRpb25FcnJvckNvZGU6XG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHJlY29uZGl0aW9uRXJyb3JPd25Db2Rlc1wiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBvbGljeUVycm9yQ29kZVwiXTtcbiAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICBQcmVjb25kaXRpb25FcnJvck93bkNvZGVzOlxuICAgICAgfCBcIkZhaWxPbk1mYVJlcXVpcmVkXCJcbiAgICAgIHwgXCJLZXlSZWdpb25Mb2NrZWRcIlxuICAgICAgfCBcIktleVJlZ2lvbkNoYW5nZWRSZWNlbnRseVwiXG4gICAgICB8IFwiTWZhUmVnaW9uTG9ja2VkXCJcbiAgICAgIHwgXCJFdGgyUHJvcG9zZXJTbG90VG9vTG93XCJcbiAgICAgIHwgXCJFdGgyQXR0ZXN0YXRpb25Tb3VyY2VFcG9jaFRvb0xvd1wiXG4gICAgICB8IFwiRXRoMkF0dGVzdGF0aW9uVGFyZ2V0RXBvY2hUb29Mb3dcIlxuICAgICAgfCBcIkV0aDJDb25jdXJyZW50QmxvY2tTaWduaW5nXCJcbiAgICAgIHwgXCJFdGgyQ29uY3VycmVudEF0dGVzdGF0aW9uU2lnbmluZ1wiXG4gICAgICB8IFwiRXRoMk11bHRpRGVwb3NpdFRvTm9uR2VuZXJhdGVkS2V5XCJcbiAgICAgIHwgXCJFdGgyTXVsdGlEZXBvc2l0VW5rbm93bkluaXRpYWxEZXBvc2l0XCJcbiAgICAgIHwgXCJFdGgyTXVsdGlEZXBvc2l0V2l0aGRyYXdhbEFkZHJlc3NNaXNtYXRjaFwiXG4gICAgICB8IFwiQ29uY3VycmVudFNpZ25pbmdXaGVuVGltZUxpbWl0UG9saWN5SXNEZWZpbmVkXCJcbiAgICAgIHwgXCJCYWJ5bG9uRW90c0NvbmN1cnJlbnRTaWduaW5nXCJcbiAgICAgIHwgXCJUZW5kZXJtaW50U3RhdGVFcnJvclwiXG4gICAgICB8IFwiVGVuZGVybWludENvbmN1cnJlbnRTaWduaW5nXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBDb250YWlucyBvdXRwdXRzIG9mIHByZXZpb3VzIHRyYW5zYWN0aW9ucy4gKi9cbiAgICBQcmV2T3V0cHV0czogT25lT2Y8XG4gICAgICBbXG4gICAgICAgIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gYE9uZWAgdmFyaWFudCBhbGxvd3MgcHJvdmlzaW9uIG9mIHRoZSBzaW5nbGUgcHJldmlvdXMgb3V0cHV0IG5lZWRlZC4gSXQncyB1c2VmdWwsXG4gICAgICAgICAgICogZm9yIGV4YW1wbGUsIHdoZW4gbW9kaWZpZXIgYFNJR0hBU0hfQU5ZT05FQ0FOUEFZYCBpcyBwcm92aWRlZCwgb25seSBwcmV2aW91cyBvdXRwdXRcbiAgICAgICAgICAgKiBvZiB0aGUgY3VycmVudCBpbnB1dCBpcyBuZWVkZWQuIFRoZSBmaXJzdCBgaW5kZXhgIGFyZ3VtZW50IGlzIHRoZSBpbnB1dCBpbmRleFxuICAgICAgICAgICAqIHRoaXMgb3V0cHV0IGlzIHJlZmVycmluZyB0by5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBPbmU6IHtcbiAgICAgICAgICAgIGluZGV4OiBudW1iZXI7XG4gICAgICAgICAgICB0eF9vdXQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjVHhPdXRcIl07XG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGVuIGBTSUdIQVNIX0FOWU9ORUNBTlBBWWAgaXMgbm90IHByb3ZpZGVkLCBvciB3aGVuIHRoZSBjYWxsZXIgaXMgZ2l2aW5nIGFsbFxuICAgICAgICAgICAqIHByZXZpb3VzIG91dHB1dHMgc28gdGhlIHNhbWUgdmFyaWFibGUgY2FuIGJlIHVzZWQgZm9yIG11bHRpcGxlIGlucHV0cy5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBBbGw6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjVHhPdXRcIl1bXTtcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICA+O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSByZXF1ZXN0IHRvIHNpZ24gYSBQU0JUICovXG4gICAgUHNidFNpZ25SZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERvIG5vdCBwcm9kdWNlIGEgdmFsaWQgc2lnbmF0dXJlLCBqdXN0IGV2YWx1YXRlIGF0dGFjaGVkIHBvbGljaWVzLiAqL1xuICAgICAgZHJ5X3J1bj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3BvbnNlLCBleHBsYWluaW5nXG4gICAgICAgKiB0aGUgb3V0Y29tZSAoaS5lLiwgcGVybWl0dGVkIHZzLiBkZW5pZWQgdnMuIE1GQSByZXF1aXJlZCkgb2YgdGhlIHNpZ24gcmVxdWVzdC5cbiAgICAgICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBleHBsYWluPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIE1GQSBpcyByZXF1aXJlZCwgZmFpbCB0aGUgcmVxdWVzdCBpbnN0ZWFkIG9mIHJldHVybmluZyAyMDIgYW5kIGNyZWF0aW5nXG4gICAgICAgKiBwZW5kaW5nIE1GQSByZXF1ZXN0LiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZmFpbF9vbl9tZmE/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbWV0YWRhdGEuIFBhc3NpbmcgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhcyBtZXRhZGF0YSBjYW4gYmUgdXNlZCB0byBtYWtlIHJldmlld2luZ1xuICAgICAgICogb2YgcGVuZGluZyBNRkEgcmVxdWVzdHMgYW5kL29yIGhpc3RvcmljYWwga2V5IHRyYW5zYWN0aW9ucyBtb3JlIHRyYW5zcGFyZW50LiBJdCBjYW4gYWxzbyBiZSB1c2VkIGUuZy4sIHRvIGNhcnJ5IGFkZGl0aW9uYWwgZGF0YSB0byBXZWJIb29rIHBvbGljaWVzLlxuICAgICAgICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgaGV4LXNlcmlhbGl6ZWQgUFNCVCAodmVyc2lvbiAwKSwgd2l0aCBvciB3aXRob3V0IGxlYWRpbmcgMHggcHJlZml4LlxuICAgICAgICogVGhpcyBQU0JUIG11c3QgY29udGFpbiB0aGUgdHJhbnNhY3Rpb24gaW5wdXRzIGFuZCBvdXRwdXRzLCBwbHVzIGFsbFxuICAgICAgICogaW5mb3JtYXRpb24gbmVlZGVkIHRvIHNpZ24gKGUuZy4sIHRhcHJvb3QgcGF0aCBhbmQgbGVhZiBpbmZvcm1hdGlvbikuXG4gICAgICAgKi9cbiAgICAgIHBzYnQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFdoZW4gdHJ1ZSwgdW5jb25kaXRpb25hbGx5IHNpZ24gZXZlcnkgaW5wdXQgdG8gdGhlIFBTQlQgY29udHJvbGxlZCBieSBhIHNjcmlwdFxuICAgICAgICogc3BlbmQuIE90aGVyd2lzZSAoZmFsc2UsIHRoZSBkZWZhdWx0KSwgdGhpcyBlbmRwb2ludCB1c2VzIGEgaGV1cmlzdGljIHRvIGRlY2lkZVxuICAgICAgICogd2hldGhlciB0aGUgc2NyaXB0IGNvbnRyb2xsaW5nIGEgZ2l2ZW4gVVRYTyByZXF1aXJlcyBhIHNpZ25hdHVyZSBmcm9tIHRoaXMga2V5LlxuICAgICAgICovXG4gICAgICBzaWduX2FsbF9zY3JpcHRzPzogYm9vbGVhbjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdG8gYSBQU0JUIHNpZ25pbmcgcmVxdWVzdCAqL1xuICAgIFBzYnRTaWduUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgUFNCVCBpbiBzdGFuZGFyZCBoZXggc2VyaWFsaXphdGlvbiwgd2l0aG91dCBsZWFkaW5nIFwiMHhcIi5cbiAgICAgICAqIEBleGFtcGxlIDcwNzM2Mjc0ZmYwMTAwNWUuLi5cbiAgICAgICAqL1xuICAgICAgcHNidDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgdHlwZSByZXByZXNlbnRzIGEgd2lyZS1lbmNvZGFibGUgZm9ybSBvZiB0aGUgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2VcbiAgICAgKiBDbGllbnRzIG1heSBuZWVkIHRvIG1hbnVhbGx5IGVuY29kZSBpbnRvIHRoaXMgZm9ybWF0IHRvIGNvbW11bmljYXRlIHdpdGggdGhlIHNlcnZlclxuICAgICAqXG4gICAgICogVGhlIFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlIGluaGVyaXRzIGZyb20gQ3JlZGVudGlhbFxuICAgICAqIFtDUkVERU5USUFMLU1BTkFHRU1FTlQtMV0sIGFuZCBjb250YWlucyB0aGUgYXR0cmlidXRlcyB0aGF0IGFyZSByZXR1cm5lZCB0b1xuICAgICAqIHRoZSBjYWxsZXIgd2hlbiBhIG5ldyBjcmVkZW50aWFsIGlzIGNyZWF0ZWQsIG9yIGEgbmV3IGFzc2VydGlvbiBpc1xuICAgICAqIHJlcXVlc3RlZC5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNpZmFjZS1wa2NyZWRlbnRpYWxcbiAgICAgKi9cbiAgICBQdWJsaWNLZXlDcmVkZW50aWFsOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGludGVybmFsIHNsb3QgY29udGFpbnMgdGhlIHJlc3VsdHMgb2YgcHJvY2Vzc2luZyBjbGllbnQgZXh0ZW5zaW9uc1xuICAgICAgICogcmVxdWVzdGVkIGJ5IHRoZSBSZWx5aW5nIFBhcnR5IHVwb24gdGhlIFJlbHlpbmcgUGFydHkncyBpbnZvY2F0aW9uIG9mXG4gICAgICAgKiBlaXRoZXIgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZSgpIG9yIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQoKS5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWwtY2xpZW50ZXh0ZW5zaW9uc3Jlc3VsdHMtc2xvdFxuICAgICAgICpcbiAgICAgICAqIElNUExFTUVOVEFUSU9OIE5PVEU6IFRoZSB0eXBlIGZvciB0aGlzIGZpZWxkIGNvbWVzIGZyb20gdGhlIHR5cGUgb2YgZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpIHdoaWNoIGFzIHRoZSBmb2xsb3dpbmcgZG9jOlxuICAgICAgICpcbiAgICAgICAqIFRoaXMgb3BlcmF0aW9uIHJldHVybnMgdGhlIHZhbHVlIG9mIFtbY2xpZW50RXh0ZW5zaW9uc1Jlc3VsdHNdXSwgd2hpY2ggaXMgYSBtYXAgY29udGFpbmluZyBleHRlbnNpb24gaWRlbnRpZmllciDihpIgY2xpZW50IGV4dGVuc2lvbiBvdXRwdXQgZW50cmllcyBwcm9kdWNlZCBieSB0aGUgZXh0ZW5zaW9u4oCZcyBjbGllbnQgZXh0ZW5zaW9uIHByb2Nlc3NpbmcuXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jcmVmLWZvci1kb20tcHVibGlja2V5Y3JlZGVudGlhbC1nZXRjbGllbnRleHRlbnNpb25yZXN1bHRzXG4gICAgICAgKi9cbiAgICAgIGNsaWVudEV4dGVuc2lvblJlc3VsdHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGludGVybmFsIHNsb3QgY29udGFpbnMgdGhlIGNyZWRlbnRpYWwgSUQsIGNob3NlbiBieSB0aGVcbiAgICAgICAqIGF1dGhlbnRpY2F0b3IuIFRoZSBjcmVkZW50aWFsIElEIGlzIHVzZWQgdG8gbG9vayB1cCBjcmVkZW50aWFscyBmb3IgdXNlLFxuICAgICAgICogYW5kIGlzIHRoZXJlZm9yZSBleHBlY3RlZCB0byBiZSBnbG9iYWxseSB1bmlxdWUgd2l0aCBoaWdoIHByb2JhYmlsaXR5XG4gICAgICAgKiBhY3Jvc3MgYWxsIGNyZWRlbnRpYWxzIG9mIHRoZSBzYW1lIHR5cGUsIGFjcm9zcyBhbGwgYXV0aGVudGljYXRvcnMuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsLWlkZW50aWZpZXItc2xvdFxuICAgICAgICovXG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBdXRoZW50aWNhdG9ycyByZXNwb25kIHRvIFJlbHlpbmcgUGFydHkgcmVxdWVzdHMgYnkgcmV0dXJuaW5nIGFuIG9iamVjdCBkZXJpdmVkIGZyb20gdGhlIEF1dGhlbnRpY2F0b3JSZXNwb25zZSBpbnRlcmZhY2UgKi9cbiAgICAgIHJlc3BvbnNlOlxuICAgICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2VcIl1cbiAgICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZVwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgY3JlYXRpb24gb2YgYSBuZXcgcHVibGljIGtleSBjcmVkZW50aWFsXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZGljdGRlZi1wdWJsaWNrZXljcmVkZW50aWFsY3JlYXRpb25vcHRpb25zXG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczoge1xuICAgICAgYXR0ZXN0YXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2VcIl07XG4gICAgICBhdXRoZW50aWNhdG9yU2VsZWN0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWFcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZW1iZXIgY29udGFpbnMgYSBjaGFsbGVuZ2UgaW50ZW5kZWQgdG8gYmUgdXNlZCBmb3IgZ2VuZXJhdGluZyB0aGVcbiAgICAgICAqIG5ld2x5IGNyZWF0ZWQgY3JlZGVudGlhbOKAmXMgYXR0ZXN0YXRpb24gb2JqZWN0LiBTZWUgdGhlIMKn4oCvMTMuNC4zXG4gICAgICAgKiBDcnlwdG9ncmFwaGljIENoYWxsZW5nZXMgc2VjdXJpdHkgY29uc2lkZXJhdGlvbi5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxjcmVhdGlvbm9wdGlvbnMtY2hhbGxlbmdlXG4gICAgICAgKi9cbiAgICAgIGNoYWxsZW5nZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZW1iZXIgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBSZWx5aW5nIFBhcnRpZXMgdGhhdCB3aXNoIHRvIGxpbWl0XG4gICAgICAgKiB0aGUgY3JlYXRpb24gb2YgbXVsdGlwbGUgY3JlZGVudGlhbHMgZm9yIHRoZSBzYW1lIGFjY291bnQgb24gYSBzaW5nbGVcbiAgICAgICAqIGF1dGhlbnRpY2F0b3IuIFRoZSBjbGllbnQgaXMgcmVxdWVzdGVkIHRvIHJldHVybiBhbiBlcnJvciBpZiB0aGUgbmV3XG4gICAgICAgKiBjcmVkZW50aWFsIHdvdWxkIGJlIGNyZWF0ZWQgb24gYW4gYXV0aGVudGljYXRvciB0aGF0IGFsc28gY29udGFpbnMgb25lXG4gICAgICAgKiBvZiB0aGUgY3JlZGVudGlhbHMgZW51bWVyYXRlZCBpbiB0aGlzIHBhcmFtZXRlci5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxjcmVhdGlvbm9wdGlvbnMtZXhjbHVkZWNyZWRlbnRpYWxzXG4gICAgICAgKi9cbiAgICAgIGV4Y2x1ZGVDcmVkZW50aWFscz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3JcIl1bXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIGNvbnRhaW5zIGFkZGl0aW9uYWwgcGFyYW1ldGVycyByZXF1ZXN0aW5nIGFkZGl0aW9uYWxcbiAgICAgICAqIHByb2Nlc3NpbmcgYnkgdGhlIGNsaWVudCBhbmQgYXV0aGVudGljYXRvci4gRm9yIGV4YW1wbGUsIHRoZSBjYWxsZXIgbWF5XG4gICAgICAgKiByZXF1ZXN0IHRoYXQgb25seSBhdXRoZW50aWNhdG9ycyB3aXRoIGNlcnRhaW4gY2FwYWJpbGl0aWVzIGJlIHVzZWQgdG9cbiAgICAgICAqIGNyZWF0ZSB0aGUgY3JlZGVudGlhbCwgb3IgdGhhdCBwYXJ0aWN1bGFyIGluZm9ybWF0aW9uIGJlIHJldHVybmVkIGluIHRoZVxuICAgICAgICogYXR0ZXN0YXRpb24gb2JqZWN0LiBTb21lIGV4dGVuc2lvbnMgYXJlIGRlZmluZWQgaW4gwqfigK85IFdlYkF1dGhuXG4gICAgICAgKiBFeHRlbnNpb25zOyBjb25zdWx0IHRoZSBJQU5BIFwiV2ViQXV0aG4gRXh0ZW5zaW9uIElkZW50aWZpZXJzXCIgcmVnaXN0cnlcbiAgICAgICAqIFtJQU5BLVdlYkF1dGhuLVJlZ2lzdHJpZXNdIGVzdGFibGlzaGVkIGJ5IFtSRkM4ODA5XSBmb3IgYW4gdXAtdG8tZGF0ZVxuICAgICAgICogbGlzdCBvZiByZWdpc3RlcmVkIFdlYkF1dGhuIEV4dGVuc2lvbnMuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsY3JlYXRpb25vcHRpb25zLWV4dGVuc2lvbnNcbiAgICAgICAqL1xuICAgICAgZXh0ZW5zaW9ucz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkZXNpcmVkIHByb3BlcnRpZXMgb2YgdGhlXG4gICAgICAgKiBjcmVkZW50aWFsIHRvIGJlIGNyZWF0ZWQuIFRoZSBzZXF1ZW5jZSBpcyBvcmRlcmVkIGZyb20gbW9zdCBwcmVmZXJyZWQgdG9cbiAgICAgICAqIGxlYXN0IHByZWZlcnJlZC4gVGhlIGNsaWVudCBtYWtlcyBhIGJlc3QtZWZmb3J0IHRvIGNyZWF0ZSB0aGUgbW9zdFxuICAgICAgICogcHJlZmVycmVkIGNyZWRlbnRpYWwgdGhhdCBpdCBjYW4uXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsY3JlYXRpb25vcHRpb25zLXB1YmtleWNyZWRwYXJhbXNcbiAgICAgICAqL1xuICAgICAgcHViS2V5Q3JlZFBhcmFtczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVyc1wiXVtdO1xuICAgICAgcnA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFJwRW50aXR5XCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZW1iZXIgc3BlY2lmaWVzIGEgdGltZSwgaW4gbWlsbGlzZWNvbmRzLCB0aGF0IHRoZSBjYWxsZXIgaXNcbiAgICAgICAqIHdpbGxpbmcgdG8gd2FpdCBmb3IgdGhlIGNhbGwgdG8gY29tcGxldGUuIFRoaXMgaXMgdHJlYXRlZCBhcyBhIGhpbnQsIGFuZFxuICAgICAgICogTUFZIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGNsaWVudC5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxjcmVhdGlvbm9wdGlvbnMtdGltZW91dFxuICAgICAgICovXG4gICAgICB0aW1lb3V0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIHVzZXI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHlcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBkaWN0aW9uYXJ5IGNvbnRhaW5zIHRoZSBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNwZWNpZmllZCBieSBhIGNhbGxlciB3aGVuXG4gICAgICogcmVmZXJyaW5nIHRvIGEgcHVibGljIGtleSBjcmVkZW50aWFsIGFzIGFuIGlucHV0IHBhcmFtZXRlciB0byB0aGUgY3JlYXRlKClcbiAgICAgKiBvciBnZXQoKSBtZXRob2RzLiBJdCBtaXJyb3JzIHRoZSBmaWVsZHMgb2YgdGhlIFB1YmxpY0tleUNyZWRlbnRpYWwgb2JqZWN0XG4gICAgICogcmV0dXJuZWQgYnkgdGhlIGxhdHRlciBtZXRob2RzLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RpY3Rpb25hcnktY3JlZGVudGlhbC1kZXNjcmlwdG9yXG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIGNvbnRhaW5zIHRoZSBjcmVkZW50aWFsIElEIG9mIHRoZSBwdWJsaWMga2V5IGNyZWRlbnRpYWwgdGhlIGNhbGxlciBpcyByZWZlcnJpbmcgdG8uXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsZGVzY3JpcHRvci1pZFxuICAgICAgICovXG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBPUFRJT05BTCBtZW1iZXIgY29udGFpbnMgYSBoaW50IGFzIHRvIGhvdyB0aGUgY2xpZW50IG1pZ2h0XG4gICAgICAgKiBjb21tdW5pY2F0ZSB3aXRoIHRoZSBtYW5hZ2luZyBhdXRoZW50aWNhdG9yIG9mIHRoZSBwdWJsaWMga2V5IGNyZWRlbnRpYWxcbiAgICAgICAqIHRoZSBjYWxsZXIgaXMgcmVmZXJyaW5nIHRvLiBUaGUgdmFsdWVzIFNIT1VMRCBiZSBtZW1iZXJzIG9mXG4gICAgICAgKiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0IGJ1dCBjbGllbnQgcGxhdGZvcm1zIE1VU1QgaWdub3JlIHVua25vd24gdmFsdWVzLlxuICAgICAgICpcbiAgICAgICAqIFRoZSBnZXRUcmFuc3BvcnRzKCkgb3BlcmF0aW9uIGNhbiBwcm92aWRlIHN1aXRhYmxlIHZhbHVlcyBmb3IgdGhpc1xuICAgICAgICogbWVtYmVyLiBXaGVuIHJlZ2lzdGVyaW5nIGEgbmV3IGNyZWRlbnRpYWwsIHRoZSBSZWx5aW5nIFBhcnR5IFNIT1VMRFxuICAgICAgICogc3RvcmUgdGhlIHZhbHVlIHJldHVybmVkIGZyb20gZ2V0VHJhbnNwb3J0cygpLiBXaGVuIGNyZWF0aW5nIGFcbiAgICAgICAqIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yIGZvciB0aGF0IGNyZWRlbnRpYWwsIHRoZSBSZWx5aW5nIFBhcnR5XG4gICAgICAgKiBTSE9VTEQgcmV0cmlldmUgdGhhdCBzdG9yZWQgdmFsdWUgYW5kIHNldCBpdCBhcyB0aGUgdmFsdWUgb2YgdGhlXG4gICAgICAgKiB0cmFuc3BvcnRzIG1lbWJlci5cbiAgICAgICAqL1xuICAgICAgdHJhbnNwb3J0cz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXV0aGVudGljYXRvclRyYW5zcG9ydFwiXVtdIHwgbnVsbDtcbiAgICAgIHR5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFR5cGVcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBkaWN0aW9uYXJ5IGlzIHVzZWQgdG8gc3VwcGx5IGFkZGl0aW9uYWwgcGFyYW1ldGVycyB3aGVuIGNyZWF0aW5nIGEgbmV3XG4gICAgICogY3JlZGVudGlhbC5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkaWN0aW9uYXJ5LWNyZWRlbnRpYWwtcGFyYW1zXG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbFBhcmFtZXRlcnM6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIHNwZWNpZmllcyB0aGUgY3J5cHRvZ3JhcGhpYyBzaWduYXR1cmUgYWxnb3JpdGhtIHdpdGggd2hpY2hcbiAgICAgICAqIHRoZSBuZXdseSBnZW5lcmF0ZWQgY3JlZGVudGlhbCB3aWxsIGJlIHVzZWQsIGFuZCB0aHVzIGFsc28gdGhlIHR5cGUgb2ZcbiAgICAgICAqIGFzeW1tZXRyaWMga2V5IHBhaXIgdG8gYmUgZ2VuZXJhdGVkLCBlLmcuLCBSU0Egb3IgRWxsaXB0aWMgQ3VydmUuXG4gICAgICAgKi9cbiAgICAgIGFsZzogbnVtYmVyO1xuICAgICAgdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsVHlwZVwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgYFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uc2AgZGljdGlvbmFyeSBzdXBwbGllcyBnZXQoKSB3aXRoIHRoZVxuICAgICAqIGRhdGEgaXQgbmVlZHMgdG8gZ2VuZXJhdGUgYW4gYXNzZXJ0aW9uLiBJdHMgY2hhbGxlbmdlIG1lbWJlciBNVVNUIGJlXG4gICAgICogcHJlc2VudCwgd2hpbGUgaXRzIG90aGVyIG1lbWJlcnMgYXJlIE9QVElPTkFMLlxuICAgICAqXG4gICAgICogVGhpcyBzdHJ1Y3QgaXMgYWxzbyB1c2VkIGFzIHBhcnQgb2YgdGhlIHZlcmlmaWNhdGlvbiBwcm9jZWR1cmUgZm9yIGFzc2VydGlvbnNcbiAgICAgKi9cbiAgICBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgT1BUSU9OQUwgbWVtYmVyIGNvbnRhaW5zIGEgbGlzdCBvZiBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvclxuICAgICAgICogb2JqZWN0cyByZXByZXNlbnRpbmcgcHVibGljIGtleSBjcmVkZW50aWFscyBhY2NlcHRhYmxlIHRvIHRoZSBjYWxsZXIsIGluXG4gICAgICAgKiBkZXNjZW5kaW5nIG9yZGVyIG9mIHRoZSBjYWxsZXLigJlzIHByZWZlcmVuY2UgKHRoZSBmaXJzdCBpdGVtIGluIHRoZSBsaXN0XG4gICAgICAgKiBpcyB0aGUgbW9zdCBwcmVmZXJyZWQgY3JlZGVudGlhbCwgYW5kIHNvIG9uIGRvd24gdGhlIGxpc3QpLlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbHJlcXVlc3RvcHRpb25zLWFsbG93Y3JlZGVudGlhbHNcbiAgICAgICAqL1xuICAgICAgYWxsb3dDcmVkZW50aWFscz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3JcIl1bXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIHJlcHJlc2VudHMgYSBjaGFsbGVuZ2UgdGhhdCB0aGUgc2VsZWN0ZWQgYXV0aGVudGljYXRvclxuICAgICAgICogc2lnbnMsIGFsb25nIHdpdGggb3RoZXIgZGF0YSwgd2hlbiBwcm9kdWNpbmcgYW4gYXV0aGVudGljYXRpb25cbiAgICAgICAqIGFzc2VydGlvbi5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxyZXF1ZXN0b3B0aW9ucy1jaGFsbGVuZ2VcbiAgICAgICAqL1xuICAgICAgY2hhbGxlbmdlOiBzdHJpbmc7XG4gICAgICBleHRlbnNpb25zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBPUFRJT05BTCBtZW1iZXIgc3BlY2lmaWVzIHRoZSByZWx5aW5nIHBhcnR5IGlkZW50aWZpZXIgY2xhaW1lZCBieVxuICAgICAgICogdGhlIGNhbGxlci4gSWYgb21pdHRlZCwgaXRzIHZhbHVlIHdpbGwgYmUgdGhlIENyZWRlbnRpYWxzQ29udGFpbmVyXG4gICAgICAgKiBvYmplY3TigJlzIHJlbGV2YW50IHNldHRpbmdzIG9iamVjdCdzIG9yaWdpbidzIGVmZmVjdGl2ZSBkb21haW4uXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFscmVxdWVzdG9wdGlvbnMtcnBpZFxuICAgICAgICovXG4gICAgICBycElkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgT1BUSU9OQUwgbWVtYmVyIHNwZWNpZmllcyBhIHRpbWUsIGluIG1pbGxpc2Vjb25kcywgdGhhdCB0aGUgY2FsbGVyXG4gICAgICAgKiBpcyB3aWxsaW5nIHRvIHdhaXQgZm9yIHRoZSBjYWxsIHRvIGNvbXBsZXRlLiBUaGUgdmFsdWUgaXMgdHJlYXRlZCBhcyBhXG4gICAgICAgKiBoaW50LCBhbmQgTUFZIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGNsaWVudC5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxyZXF1ZXN0b3B0aW9ucy10aW1lb3V0XG4gICAgICAgKi9cbiAgICAgIHRpbWVvdXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgdXNlclZlcmlmaWNhdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50XCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBQdWJsaWNLZXlDcmVkZW50aWFsUnBFbnRpdHkgZGljdGlvbmFyeSBpcyB1c2VkIHRvIHN1cHBseSBhZGRpdGlvbmFsXG4gICAgICogUmVseWluZyBQYXJ0eSBhdHRyaWJ1dGVzIHdoZW4gY3JlYXRpbmcgYSBuZXcgY3JlZGVudGlhbC5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkaWN0aW9uYXJ5LXJwLWNyZWRlbnRpYWwtcGFyYW1zXG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbFJwRW50aXR5OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgUmVseWluZyBQYXJ0eSBlbnRpdHksIHdoaWNoIHNldHMgdGhlIFJQIElELlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbHJwZW50aXR5LWlkXG4gICAgICAgKi9cbiAgICAgIGlkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcGFsYXRhYmxlIG5hbWUgZm9yIHRoZSBlbnRpdHkuIEl0cyBmdW5jdGlvbiBkZXBlbmRzIG9uIHdoYXQgdGhlXG4gICAgICAgKiBQdWJsaWNLZXlDcmVkZW50aWFsRW50aXR5IHJlcHJlc2VudHM6IFdoZW4gaW5oZXJpdGVkIGJ5XG4gICAgICAgKiBQdWJsaWNLZXlDcmVkZW50aWFsUnBFbnRpdHkgaXQgaXMgYSBodW1hbi1wYWxhdGFibGUgaWRlbnRpZmllciBmb3IgdGhlXG4gICAgICAgKiBSZWx5aW5nIFBhcnR5LCBpbnRlbmRlZCBvbmx5IGZvciBkaXNwbGF5LiBGb3IgZXhhbXBsZSwgXCJBQ01FXG4gICAgICAgKiBDb3Jwb3JhdGlvblwiLCBcIldvbmRlcmZ1bCBXaWRnZXRzLCBJbmMuXCIgb3IgXCLQntCQ0J4g0J/RgNC40LzQtdGA0YLQtdGFXCIuXG4gICAgICAgKlxuICAgICAgICogUmVseWluZyBQYXJ0aWVzIFNIT1VMRCBwZXJmb3JtIGVuZm9yY2VtZW50LCBhcyBwcmVzY3JpYmVkIGluIFNlY3Rpb24gMi4zXG4gICAgICAgKiBvZiBbUkZDODI2Nl0gZm9yIHRoZSBOaWNrbmFtZSBQcm9maWxlIG9mIHRoZSBQUkVDSVMgRnJlZWZvcm1DbGFzc1xuICAgICAgICogW1JGQzgyNjRdLCB3aGVuIHNldHRpbmcgbmFtZSdzIHZhbHVlLCBvciBkaXNwbGF5aW5nIHRoZSB2YWx1ZSB0byB0aGVcbiAgICAgICAqIHVzZXIuXG4gICAgICAgKlxuICAgICAgICogVGhpcyBzdHJpbmcgTUFZIGNvbnRhaW4gbGFuZ3VhZ2UgYW5kIGRpcmVjdGlvbiBtZXRhZGF0YS4gUmVseWluZyBQYXJ0aWVzXG4gICAgICAgKiBTSE9VTEQgY29uc2lkZXIgcHJvdmlkaW5nIHRoaXMgaW5mb3JtYXRpb24uIFNlZSDCp+KArzYuNC4yIExhbmd1YWdlIGFuZFxuICAgICAgICogRGlyZWN0aW9uIEVuY29kaW5nIGFib3V0IGhvdyB0aGlzIG1ldGFkYXRhIGlzIGVuY29kZWQuXG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGVudW1lcmF0aW9uIGRlZmluZXMgdGhlIHZhbGlkIGNyZWRlbnRpYWwgdHlwZXMuIEl0IGlzIGFuIGV4dGVuc2lvblxuICAgICAqIHBvaW50OyB2YWx1ZXMgY2FuIGJlIGFkZGVkIHRvIGl0IGluIHRoZSBmdXR1cmUsIGFzIG1vcmUgY3JlZGVudGlhbCB0eXBlcyBhcmVcbiAgICAgKiBkZWZpbmVkLiBUaGUgdmFsdWVzIG9mIHRoaXMgZW51bWVyYXRpb24gYXJlIHVzZWQgZm9yIHZlcnNpb25pbmcgdGhlXG4gICAgICogQXV0aGVudGljYXRpb24gQXNzZXJ0aW9uIGFuZCBhdHRlc3RhdGlvbiBzdHJ1Y3R1cmVzIGFjY29yZGluZyB0byB0aGUgdHlwZSBvZlxuICAgICAqIHRoZSBhdXRoZW50aWNhdG9yLiAgQ3VycmVudGx5IG9uZSBjcmVkZW50aWFsIHR5cGUgaXMgZGVmaW5lZCwgbmFtZWx5XG4gICAgICogXCJwdWJsaWMta2V5XCIuXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZW51bWRlZi1wdWJsaWNrZXljcmVkZW50aWFsdHlwZVxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6IFwicHVibGljLWtleVwiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkgZGljdGlvbmFyeSBpcyB1c2VkIHRvIHN1cHBseSBhZGRpdGlvbmFsXG4gICAgICogdXNlciBhY2NvdW50IGF0dHJpYnV0ZXMgd2hlbiBjcmVhdGluZyBhIG5ldyBjcmVkZW50aWFsLlxuICAgICAqL1xuICAgIFB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXBhbGF0YWJsZSBuYW1lIGZvciB0aGUgdXNlciBhY2NvdW50LCBpbnRlbmRlZCBvbmx5IGZvciBkaXNwbGF5LlxuICAgICAgICogRm9yIGV4YW1wbGUsIFwiQWxleCBNw7xsbGVyXCIgb3IgXCLnlLDkuK3lgKtcIi4gVGhlIFJlbHlpbmcgUGFydHkgU0hPVUxEIGxldCB0aGVcbiAgICAgICAqIHVzZXIgY2hvb3NlIHRoaXMsIGFuZCBTSE9VTEQgTk9UIHJlc3RyaWN0IHRoZSBjaG9pY2UgbW9yZSB0aGFuXG4gICAgICAgKiBuZWNlc3NhcnkuXG4gICAgICAgKlxuICAgICAgICogUmVseWluZyBQYXJ0aWVzIFNIT1VMRCBwZXJmb3JtIGVuZm9yY2VtZW50LCBhcyBwcmVzY3JpYmVkIGluIFNlY3Rpb24gMi4zXG4gICAgICAgKiBvZiBbUkZDODI2Nl0gZm9yIHRoZSBOaWNrbmFtZSBQcm9maWxlIG9mIHRoZSBQUkVDSVMgRnJlZWZvcm1DbGFzc1xuICAgICAgICogW1JGQzgyNjRdLCB3aGVuIHNldHRpbmcgZGlzcGxheU5hbWUncyB2YWx1ZSwgb3IgZGlzcGxheWluZyB0aGUgdmFsdWUgdG9cbiAgICAgICAqIHRoZSB1c2VyLlxuICAgICAgICpcbiAgICAgICAqIFRoaXMgc3RyaW5nIE1BWSBjb250YWluIGxhbmd1YWdlIGFuZCBkaXJlY3Rpb24gbWV0YWRhdGEuIFJlbHlpbmcgUGFydGllc1xuICAgICAgICogU0hPVUxEIGNvbnNpZGVyIHByb3ZpZGluZyB0aGlzIGluZm9ybWF0aW9uLiBTZWUgwqfigK82LjQuMiBMYW5ndWFnZSBhbmRcbiAgICAgICAqIERpcmVjdGlvbiBFbmNvZGluZyBhYm91dCBob3cgdGhpcyBtZXRhZGF0YSBpcyBlbmNvZGVkLlxuICAgICAgICpcbiAgICAgICAqIENsaWVudHMgU0hPVUxEIHBlcmZvcm0gZW5mb3JjZW1lbnQsIGFzIHByZXNjcmliZWQgaW4gU2VjdGlvbiAyLjMgb2ZcbiAgICAgICAqIFtSRkM4MjY2XSBmb3IgdGhlIE5pY2tuYW1lIFByb2ZpbGUgb2YgdGhlIFBSRUNJUyBGcmVlZm9ybUNsYXNzXG4gICAgICAgKiBbUkZDODI2NF0sIG9uIGRpc3BsYXlOYW1lJ3MgdmFsdWUgcHJpb3IgdG8gZGlzcGxheWluZyB0aGUgdmFsdWUgdG8gdGhlXG4gICAgICAgKiB1c2VyIG9yIGluY2x1ZGluZyB0aGUgdmFsdWUgYXMgYSBwYXJhbWV0ZXIgb2YgdGhlXG4gICAgICAgKiBhdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRpYWwgb3BlcmF0aW9uLlxuICAgICAgICpcbiAgICAgICAqIFdoZW4gY2xpZW50cywgY2xpZW50IHBsYXRmb3Jtcywgb3IgYXV0aGVudGljYXRvcnMgZGlzcGxheSBhXG4gICAgICAgKiBkaXNwbGF5TmFtZSdzIHZhbHVlLCB0aGV5IHNob3VsZCBhbHdheXMgdXNlIFVJIGVsZW1lbnRzIHRvIHByb3ZpZGUgYVxuICAgICAgICogY2xlYXIgYm91bmRhcnkgYXJvdW5kIHRoZSBkaXNwbGF5ZWQgdmFsdWUsIGFuZCBub3QgYWxsb3cgb3ZlcmZsb3cgaW50b1xuICAgICAgICogb3RoZXIgZWxlbWVudHMgW2Nzcy1vdmVyZmxvdy0zXS5cbiAgICAgICAqXG4gICAgICAgKiBBdXRoZW50aWNhdG9ycyBNVVNUIGFjY2VwdCBhbmQgc3RvcmUgYSA2NC1ieXRlIG1pbmltdW0gbGVuZ3RoIGZvciBhXG4gICAgICAgKiBkaXNwbGF5TmFtZSBtZW1iZXLigJlzIHZhbHVlLiBBdXRoZW50aWNhdG9ycyBNQVkgdHJ1bmNhdGUgYSBkaXNwbGF5TmFtZVxuICAgICAgICogbWVtYmVy4oCZcyB2YWx1ZSBzbyB0aGF0IGl0IGZpdHMgd2l0aGluIDY0IGJ5dGVzLiBTZWUgwqfigK82LjQuMSBTdHJpbmdcbiAgICAgICAqIFRydW5jYXRpb24gYWJvdXQgdHJ1bmNhdGlvbiBhbmQgb3RoZXIgY29uc2lkZXJhdGlvbnMuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsdXNlcmVudGl0eS1kaXNwbGF5bmFtZVxuICAgICAgICovXG4gICAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIgaGFuZGxlIG9mIHRoZSB1c2VyIGFjY291bnQgZW50aXR5LiBBIHVzZXIgaGFuZGxlIGlzIGFuIG9wYXF1ZVxuICAgICAgICogYnl0ZSBzZXF1ZW5jZSB3aXRoIGEgbWF4aW11bSBzaXplIG9mIDY0IGJ5dGVzLCBhbmQgaXMgbm90IG1lYW50IHRvIGJlXG4gICAgICAgKiBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuXG4gICAgICAgKlxuICAgICAgICogVG8gZW5zdXJlIHNlY3VyZSBvcGVyYXRpb24sIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIGRlY2lzaW9uc1xuICAgICAgICogTVVTVCBiZSBtYWRlIG9uIHRoZSBiYXNpcyBvZiB0aGlzIGlkIG1lbWJlciwgbm90IHRoZSBkaXNwbGF5TmFtZSBub3JcbiAgICAgICAqIG5hbWUgbWVtYmVycy4gU2VlIFNlY3Rpb24gNi4xIG9mIFtSRkM4MjY2XS5cbiAgICAgICAqXG4gICAgICAgKiBUaGUgdXNlciBoYW5kbGUgTVVTVCBOT1QgY29udGFpbiBwZXJzb25hbGx5IGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uXG4gICAgICAgKiBhYm91dCB0aGUgdXNlciwgc3VjaCBhcyBhIHVzZXJuYW1lIG9yIGUtbWFpbCBhZGRyZXNzOyBzZWUgwqfigK8xNC42LjEgVXNlclxuICAgICAgICogSGFuZGxlIENvbnRlbnRzIGZvciBkZXRhaWxzLiBUaGUgdXNlciBoYW5kbGUgTVVTVCBOT1QgYmUgZW1wdHksIHRob3VnaFxuICAgICAgICogaXQgTUFZIGJlIG51bGwuXG4gICAgICAgKlxuICAgICAgICogTm90ZTogdGhlIHVzZXIgaGFuZGxlIG91Z2h0IG5vdCBiZSBhIGNvbnN0YW50IHZhbHVlIGFjcm9zcyBkaWZmZXJlbnRcbiAgICAgICAqIGFjY291bnRzLCBldmVuIGZvciBub24tZGlzY292ZXJhYmxlIGNyZWRlbnRpYWxzLCBiZWNhdXNlIHNvbWVcbiAgICAgICAqIGF1dGhlbnRpY2F0b3JzIGFsd2F5cyBjcmVhdGUgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWxzLiBUaHVzIGEgY29uc3RhbnRcbiAgICAgICAqIHVzZXIgaGFuZGxlIHdvdWxkIHByZXZlbnQgYSB1c2VyIGZyb20gdXNpbmcgc3VjaCBhbiBhdXRoZW50aWNhdG9yIHdpdGhcbiAgICAgICAqIG1vcmUgdGhhbiBvbmUgYWNjb3VudCBhdCB0aGUgUmVseWluZyBQYXJ0eS5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWx1c2VyZW50aXR5LWlkXG4gICAgICAgKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGVuIGluaGVyaXRlZCBieSBQdWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eSwgaXQgaXMgYSBodW1hbi1wYWxhdGFibGVcbiAgICAgICAqIGlkZW50aWZpZXIgZm9yIGEgdXNlciBhY2NvdW50LiBJdCBpcyBpbnRlbmRlZCBvbmx5IGZvciBkaXNwbGF5LCBpLmUuLFxuICAgICAgICogYWlkaW5nIHRoZSB1c2VyIGluIGRldGVybWluaW5nIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdXNlciBhY2NvdW50cyB3aXRoXG4gICAgICAgKiBzaW1pbGFyIGRpc3BsYXlOYW1lcy4gRm9yIGV4YW1wbGUsIFwiYWxleG1cIiwgXCJhbGV4Lm11ZWxsZXJAZXhhbXBsZS5jb21cIlxuICAgICAgICogb3IgXCIrMTQyNTU1NTEyMzRcIi5cbiAgICAgICAqXG4gICAgICAgKiBUaGUgUmVseWluZyBQYXJ0eSBNQVkgbGV0IHRoZSB1c2VyIGNob29zZSB0aGlzIHZhbHVlLiBUaGUgUmVseWluZyBQYXJ0eVxuICAgICAgICogU0hPVUxEIHBlcmZvcm0gZW5mb3JjZW1lbnQsIGFzIHByZXNjcmliZWQgaW4gU2VjdGlvbiAzLjQuMyBvZiBbUkZDODI2NV1cbiAgICAgICAqIGZvciB0aGUgVXNlcm5hbWVDYXNlUHJlc2VydmVkIFByb2ZpbGUgb2YgdGhlIFBSRUNJUyBJZGVudGlmaWVyQ2xhc3NcbiAgICAgICAqIFtSRkM4MjY0XSwgd2hlbiBzZXR0aW5nIG5hbWUncyB2YWx1ZSwgb3IgZGlzcGxheWluZyB0aGUgdmFsdWUgdG8gdGhlXG4gICAgICAgKiB1c2VyLlxuICAgICAgICpcbiAgICAgICAqIFRoaXMgc3RyaW5nIE1BWSBjb250YWluIGxhbmd1YWdlIGFuZCBkaXJlY3Rpb24gbWV0YWRhdGEuIFJlbHlpbmcgUGFydGllc1xuICAgICAgICogU0hPVUxEIGNvbnNpZGVyIHByb3ZpZGluZyB0aGlzIGluZm9ybWF0aW9uLiBTZWUgwqfigK82LjQuMiBMYW5ndWFnZSBhbmRcbiAgICAgICAqIERpcmVjdGlvbiBFbmNvZGluZyBhYm91dCBob3cgdGhpcyBtZXRhZGF0YSBpcyBlbmNvZGVkLlxuICAgICAgICpcbiAgICAgICAqIENsaWVudHMgU0hPVUxEIHBlcmZvcm0gZW5mb3JjZW1lbnQsIGFzIHByZXNjcmliZWQgaW4gU2VjdGlvbiAzLjQuMyBvZiBbUkZDODI2NV0gZm9yIHRoZSBVc2VybmFtZUNhc2VQcmVzZXJ2ZWQgUHJvZmlsZSBvZiB0aGUgUFJFQ0lTIElkZW50aWZpZXJDbGFzcyBbUkZDODI2NF0sIG9uIG5hbWUncyB2YWx1ZSBwcmlvciB0byBkaXNwbGF5aW5nIHRoZSB2YWx1ZSB0byB0aGUgdXNlciBvciBpbmNsdWRpbmcgdGhlIHZhbHVlIGFzIGEgcGFyYW1ldGVyIG9mIHRoZSBhdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRpYWwgb3BlcmF0aW9uLlxuICAgICAgICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFB1YmxpYyBpbmZvcm1hdGlvbiBhYm91dCBhbiBvcmdhbml6YXRpb24uICovXG4gICAgUHVibGljT3JnSW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBFeHBsaWNpdGx5IGNvbmZpZ3VyZWQgKGFsbG93bGlzdGVkKSBPcGVuSUQgcHJvdmlkZXJzIGZvciBhbiBvcmcgKi9cbiAgICAgIG9pZGNfaXNzdWVyczoge1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEludGVuZGVkIGF1ZGllbmNlcyAoY2xpZW50IElEcykgKi9cbiAgICAgICAgYXVkaWVuY2VzOiBzdHJpbmdbXTtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBJc3N1ZXIgVVJMICovXG4gICAgICAgIGlzc3Vlcjogc3RyaW5nO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGlzc3VlciBuaWNrbmFtZSAqL1xuICAgICAgICBuaWNrbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIgcm9sZXMgYWxsb3dlZCB0byB1c2UgdGhpcyBJRFAgKi9cbiAgICAgICAgdXNlcnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXVtdO1xuICAgICAgfVtdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3JnIGlkZW50aWZpZXJcbiAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAqL1xuICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgbG9nZ2luZyBpbiB3aXRoIGp1c3QgYSBwYXNza2V5IGlzIGFsbG93ZWQgKi9cbiAgICAgIHBhc3NrZXlfbG9naW5fZW5hYmxlZDogYm9vbGVhbjtcbiAgICB9O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIFB1cnBvc2U6XG4gICAgICB8IFwib3RwXCJcbiAgICAgIHwgXCJtZmFfcmVzZXRcIlxuICAgICAgfCBcIm90cF9tZmFcIlxuICAgICAgfCBcImFsaWVuX3Bhc3N3b3JkX3Jlc2V0XCJcbiAgICAgIHwgXCJtZW1iZXJfcGFzc3dvcmRfcmVzZXRcIlxuICAgICAgfCBcImFsaWVuX2ludml0ZVwiXG4gICAgICB8IFwibWVtYmVyX2ludml0ZVwiXG4gICAgICB8IFwid2VsY29tZVwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlcXVlc3QgdHlwZSBmb3IgcXVlcnlpbmcgbWV0cmljcy4gKi9cbiAgICBRdWVyeU1ldHJpY3NSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBFbmQgdGltZSBpbiBzZWNvbmRzIHNpbmNlIHVuaXggZXBvY2guIElmIG9taXR0ZWQsIGRlZmF1bHRzIHRvICdub3cnLlxuICAgICAgICovXG4gICAgICBlbmRfdGltZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZ3JhbnVsYXJpdHksIGluIHNlY29uZHMsIG9mIHRoZSByZXR1cm5lZCBkYXRhIHBvaW50cy5cbiAgICAgICAqXG4gICAgICAgKiBUaGlzIHZhbHVlIGlzIGF1dG9tYXRpY2FsbHkgcm91bmRlZCB1cCB0byBhIG11bHRpcGxlIG9mIDM2MDAgKGkuZS4sIDEgaG91cikuXG4gICAgICAgKiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byB0aGUgZHVyYXRpb24gYmV0d2VlbiBgZW5kX3RpbWVgIGFuZCBgc3RhcnRfdGltZWAuXG4gICAgICAgKiBNdXN0IGJlIG5vIGxlc3MgdGhhbiAxIGhvdXIgKDM2MDAgc2Vjb25kcykgZm9yIFwiZXZlbnRcIiBtZXRyaWNzLCBhbmQgMSBkYXlcbiAgICAgICAqICg4NjQwMCBzZWNvbmRzKSBmb3IgXCJjb3VudFwiIG1ldHJpY3MuIEFsc28sIHRoaXMgcGVyaW9kIG11c3Qgbm90XG4gICAgICAgKiBkaXZpZGUgdGhlIGBlbmRfdGltZSAtIHN0YXJ0X3RpbWVgIHBlcmlvZCBpbnRvIG1vcmUgdGhhbiAxMDAgZGF0YSBwb2ludHMuXG4gICAgICAgKi9cbiAgICAgIHBlcmlvZD86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXR1cm4gdGhlIHJhdyBkYXRhIGluc3RlYWQgb2YgY29tcHV0aW5nIHRoZSBtZXRyaWMgdmFsdWVzXG4gICAgICAgKiAobm90IHN1cHBvcnRlZCBieSBhbGwgbWV0cmljcykuXG4gICAgICAgKi9cbiAgICAgIHJhd19kYXRhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFN0YXJ0IHRpbWUgaW4gc2Vjb25kcyBzaW5jZSB1bml4IGVwb2NoLlxuICAgICAgICovXG4gICAgICBzdGFydF90aW1lOiBudW1iZXI7XG4gICAgfSAmIHtcbiAgICAgIG1ldHJpY19uYW1lOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1ldHJpY05hbWVcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtZXRyaWMgZGF0YSBwb2ludHMuICovXG4gICAgUXVlcnlNZXRyaWNzUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWR2aXNvcnkgbWVzc2FnZXMgKGUuZy4sIGlmIG1heCBudW1iZXIgb2YgcmVzdWx0cyBpcyByZWFjaGVkKS4gKi9cbiAgICAgIG1lc3NhZ2VzPzogc3RyaW5nW107XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcGVyaW9kIGZvciB3aGljaCB0aGUgc3RhdGlzdGljIGlzIGNvbXB1dGVkLCBpZiBhbnkgKG5vdCBhbGwgbWV0cmljcyBzdXBwb3J0IHNwbGl0dGluZyB0aGUgcmVxdWVzdGVkIHRpbWUgcmFuZ2UgaW50byBiaW5zKS5cbiAgICAgICAqIElmIHNldCwgZXF1YWxzIHRvIHRoZSB2YWx1ZSBmcm9tIHRoZSByZXF1ZXN0IHJvdW5kZWQgdXAgdG8gdGhlIGNsb3Nlc3QgbXVsdGlwbGUgb2YgNjAuXG4gICAgICAgKi9cbiAgICAgIHBlcmlvZD86IG51bWJlcjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU29tZSBtZXRyaWNzIGNhbiBvcHRpb25hbGx5IHJldHVybiB0aGUgcmF3IGRhdGEsIHdoZW4gcmVxdWVzdGVkLiAqL1xuICAgICAgcmF3X2RhdGE6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICAgICAgfVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDb21wdXRlZCBkYXRhIHBvaW50cy4gKi9cbiAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZGF0YSBwb2ludHMsIG9uZSBmb3IgZWFjaCB0aW1lIHBlcmlvZCAodGltZSBwZXJpb2RzIGZvciB3aGljaCB0aGUgdmFsdWUgaXMgMCBhcmUgb21pdHRlZCkuICovXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBba2V5OiBzdHJpbmddOiBudW1iZXI7XG4gICAgICAgIH07XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG1ldHJpYyBkaW1lbnNpb25zLiAqL1xuICAgICAgICBkaW1lbnNpb25zOiB7XG4gICAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfVtdO1xuICAgICAgc3RhdD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3JnTWV0cmljU3RhdFwiXSB8IG51bGw7XG4gICAgfTtcbiAgICBSYXRjaGV0Q29uZmlnOiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbGlmZXRpbWUgKGluIHNlY29uZHMpIG9mIGF1dGggdG9rZW5zIGZvciB0aGlzIHNlc3Npb24uXG4gICAgICAgKiBBdXRoIHRva2VucyBjYW4gYmUgcmVmcmVzaGVkIChyZW5ld2VkKSB1c2luZyBhIHZhbGlkICh1bmV4cGlyZWQpXG4gICAgICAgKiByZWZyZXNoIHRva2VuLCBidXQgbm90IGJleW9uZCB0aGUgc2Vzc2lvbiBsaWZldGltZS5cbiAgICAgICAqIEBkZWZhdWx0IDMwMFxuICAgICAgICogQGV4YW1wbGUgMzYwMFxuICAgICAgICovXG4gICAgICBhdXRoX2xpZmV0aW1lPzogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGFtb3VudCBvZiB0aW1lIChpbiBzZWNvbmRzKSB0aGF0IGFuIGF1dGggdG9rZW4gZm9yIHRoaXMgc2Vzc2lvbiByZW1haW5zXG4gICAgICAgKiB2YWxpZCBhZnRlciBpdCBoYXMgYmVlbiByZWZyZXNoZWQgYW5kIGEgbmV3IGF1dGggdG9rZW4gaGFzIGJlZW4gaXNzdWVkLiBUaGlzXG4gICAgICAgKiBoZWxwcyB0byBhZGRyZXNzIGNvbmN1cnJlbmN5IGhhemFyZHMsIGZvciBleGFtcGxlLCBpZiBvbmUgdGhyZWFkIG1ha2VzIHJlcXVlc3RzXG4gICAgICAgKiB3aXRoIGF1dGggdG9rZW4gd2hpbGUgYW5vdGhlciByZWZyZXNoZXMgaXQuXG4gICAgICAgKiBAZGVmYXVsdCAzMFxuICAgICAgICogQGV4YW1wbGUgMzBcbiAgICAgICAqL1xuICAgICAgZ3JhY2VfbGlmZXRpbWU/OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbGlmZXRpbWUgKGluIHNlY29uZHMpIG9mIHJlZnJlc2ggdG9rZW5zIGZvciB0aGlzIHNlc3Npb24uXG4gICAgICAgKiBJZiB0aGlzIHZhbHVlIGlzIHNob3J0ZXIgdGhhbiB0aGUgc2Vzc2lvbiBsaWZldGltZSwgaW5hY3RpdmUgc2Vzc2lvbnNcbiAgICAgICAqIHdpbGwgYmVjb21lIGludmFsaWQgb25jZSB0aGUgYXV0aCBhbmQgcmVmcmVzaCB0b2tlbnMgaGF2ZSBib3RoIGV4cGlyZWQuXG4gICAgICAgKiBAZGVmYXVsdCA4NjQwMFxuICAgICAgICogQGV4YW1wbGUgNDMyMDBcbiAgICAgICAqL1xuICAgICAgcmVmcmVzaF9saWZldGltZT86IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBsaWZldGltZSAoaW4gc2Vjb25kcykgb2YgdGhlIHNlc3Npb24uXG4gICAgICAgKiBUaGUgc2Vzc2lvbiBjYW5ub3QgYmUgZXh0ZW5kZWQgYmV5b25kIGl0cyBvcmlnaW5hbCBsaWZldGltZS5cbiAgICAgICAqIEBkZWZhdWx0IDMxNTM2MDAwXG4gICAgICAgKiBAZXhhbXBsZSA4NjQwMFxuICAgICAgICovXG4gICAgICBzZXNzaW9uX2xpZmV0aW1lPzogbnVtYmVyO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZWNlaXB0IHRoYXQgYW4gTUZBIHJlcXVlc3Qgd2FzIGFwcHJvdmVkLiAqL1xuICAgIFJlY2VpcHQ6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIENvbmZpcm1hdGlvbiBjb2RlIHRoZSB1c2VyIG5lZWRzIHRvIHByZXNlbnQgd2hlbiByZXN1bWluZyB0aGUgb3JpZ2luYWwgcmVxdWVzdC5cbiAgICAgICAqIEBleGFtcGxlIGJhMWQ3NWRkLWQ5OTktNGMxYi05NDRkLTI1YzI1NDQwYzhhZlxuICAgICAgICovXG4gICAgICBjb25maXJtYXRpb246IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBsb2dnZWQtaW4gdXNlciB3aG9zZSBhY3Rpb24gY3JlYXRlZCB0aGlzIGFwcHJvdmFsLiAqL1xuICAgICAgZmluYWxfYXBwcm92ZXI6IHN0cmluZztcbiAgICAgIHRpbWVzdGFtcDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgIH07XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgUmVmcmVzaEdyYW50VHlwZTogXCJyZWZyZXNoX3Rva2VuXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBKU09OLVJQQyByZXF1ZXN0IG9iamVjdCAqL1xuICAgIFJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBJRCAqL1xuICAgICAgaWQ/OiB1bmtub3duO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBKU09OLVJQQyB2ZXJzaW9uLiAqL1xuICAgICAganNvbnJwYzogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBOYW1lIG9mIHRoZSBtZXRob2QgdG8gYmUgaW52b2tlZC4gKi9cbiAgICAgIG1ldGhvZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXIgdmFsdWVzIG9mIHRoZSByZXF1ZXN0LiAqL1xuICAgICAgcGFyYW1zPzogdW5rbm93bjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBbiBleHRlbmRlZCBmb3JtIG9mIGBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNgIHRoYXQgYWxsb3dzIGNsaWVudHMgdG8gZGVyaXZlIHRoZSBXZWJBdXRobiBjaGFsbGVuZ2VcbiAgICAgKiBmcm9tIGEgc3RydWN0dXJlZCBwcmVpbWFnZS5cbiAgICAgKlxuICAgICAqIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSB3ZWJ1YXRobiBzaWduYXR1cmUgY2FuIG9ubHkgYmUgdXNlZCBmb3IgYSBzcGVjaWZpYyBwdXJwb3NlXG4gICAgICovXG4gICAgUmVxdWVzdE9wdGlvbnNXaXRoSGFzaDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDaGFsbGVuZ2VQaWVjZXNcIl0gJiB7XG4gICAgICBvcHRpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uc1wiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGVudW1lcmF0aW9u4oCZcyB2YWx1ZXMgZGVzY3JpYmUgdGhlIFJlbHlpbmcgUGFydHkncyByZXF1aXJlbWVudHMgZm9yXG4gICAgICogY2xpZW50LXNpZGUgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWxzIChmb3JtZXJseSBrbm93biBhcyByZXNpZGVudCBjcmVkZW50aWFsc1xuICAgICAqIG9yIHJlc2lkZW50IGtleXMpOlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2VudW1kZWYtcmVzaWRlbnRrZXlyZXF1aXJlbWVudFxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgUmVzaWRlbnRLZXlSZXF1aXJlbWVudDogXCJkaXNjb3VyYWdlZFwiIHwgXCJwcmVmZXJyZWRcIiB8IFwicmVxdWlyZWRcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEpTT04tUlBDIHJlc3BvbnNlIG9iamVjdCAqL1xuICAgIFJlc3BvbnNlOiB7XG4gICAgICBlcnJvcj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JPYmpcIl0gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBJRCBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIHJlcXVlc3QgKi9cbiAgICAgIGlkPzogdW5rbm93bjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ29uc3RhbnQgXCIyLjBcIiAqL1xuICAgICAganNvbnJwYzogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBSZXN1bHQsIGlmIHN1Y2Nlc3MgKi9cbiAgICAgIHJlc3VsdD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSBtYXAgb2YgYWN0aW9ucyB0byBzZXRzIG9mIG1lbWJlcnNoaXAgcm9sZXMgKi9cbiAgICBSZXN0cmljdGVkQWN0aW9uc01hcDoge1xuICAgICAgW2tleTogc3RyaW5nXTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdW107XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIHRoZSBbYGNzX3JldHJ5VHJhbnNhY3Rpb25gXShScGNNZXRob2Q6OlJldHJ5VHJhbnNhY3Rpb24pIG1ldGhvZC4gKi9cbiAgICBSZXRyeVRyYW5zYWN0aW9uUmVxdWVzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFdm1UeEN1c3RvbWl6YXRpb25cIl0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB0cmFuc2FjdGlvbiBpZC4gKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBvZiByb2xlIGFjdGlvbnMgdGhhdCBjYW4gYmUgcmVzdHJpY3RlZCB0byBhIHNldCBvZiBtZW1iZXIgcm9sZXNcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIFJvbGVBY3Rpb246IFwiQ3JlYXRlVG9rZW5cIiB8IFwiR2V0S2V5XCI7XG4gICAgUm9sZUF0dGVzdGF0aW9uQ2xhaW1zOiB7XG4gICAgICBleHA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIGlhdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgcXVlcnk6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUm9sZUF0dGVzdGF0aW9uUXVlcnlcIl07XG4gICAgICByb2xlX2luZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUm9sZUluZm9cIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUga2V5cyBjdXJyZW50bHkgaW4gdGhpcyByb2xlLiAqL1xuICAgICAgcm9sZV9rZXlzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJblJvbGVJbmZvXCJdW10gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSURzIG9mIHRoZSB1c2VycyB3aG8gYXJlIGN1cnJlbnRseSBpbiB0aGlzIHJvbGUuICovXG4gICAgICByb2xlX3VzZXJzOiBzdHJpbmdbXTtcbiAgICB9O1xuICAgIFJvbGVBdHRlc3RhdGlvblF1ZXJ5OiB7XG4gICAgICBrZXlfZmlsdGVyPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXSB8IG51bGw7XG4gICAgICB2ZXJib3NpdHk/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJvbGVBdHRlc3RhdGlvblZlcmJvc2l0eVwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTcGVjaWZpZXMgd2hpY2ggcm9sZSBwcm9wZXJ0aWVzIHRvIGluY2x1ZGUgaW4gYW4gYXR0ZXN0YXRpb25cbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIFJvbGVBdHRlc3RhdGlvblZlcmJvc2l0eTogXCJTdW1tYXJ5XCIgfCBcIldpdGhLZXlzXCIgfCBcIkZ1bGxcIjtcbiAgICBSb2xlSW5mbzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb21tb25GaWVsZHNcIl0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSByb2xlIGlzIGVuYWJsZWRcbiAgICAgICAqIEBleGFtcGxlIHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGVwcmVjYXRlZC4gVGhlIEN1YmVTaWduZXIgSURzIG9mIGF0IG1vc3QgMTAwIGtleXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcm9sZS4gKi9cbiAgICAgIGtleXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluUm9sZUluZm9cIl1bXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSBjdXJyZW50IHVzZXIgaXMgYSBtZW1iZXIgb2YgdGhlIHJvbGUuIFRoaXMgaXMgYWx3YXlzIHRydWUsXG4gICAgICAgKiBleGNlcHQgZm9yIG93bmVycyB3aG8gY2FuIHNlZSByb2xlcyB0aGV5IGFyZSBub3QgbWVtYmVycyBvZi5cbiAgICAgICAqL1xuICAgICAgbWVtYmVyOiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSByb2xlIChtdXN0IGJlIGFscGhhbnVtZXJpYylcbiAgICAgICAqIEBleGFtcGxlIG15X3JvbGVcbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQb2xpY3kgdGhhdCBpcyBjaGVja2VkIHdoZW5ldmVyIGEga2V5IGlzIGFjY2Vzc2VkIGZvciBzaWduaW5nIHZpYSB0aGlzIHJvbGUuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlNvdXJjZUlwQWxsb3dsaXN0XCI6IFtcbiAgICAgICAqICAgICAgIFwiMTIzLjQ1Ni43OC45LzE2XCJcbiAgICAgICAqICAgICBdXG4gICAgICAgKiAgIH0sXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlJlcXVpcmVNZmFcIjoge1xuICAgICAgICogICAgICAgXCJjb3VudFwiOiAxXG4gICAgICAgKiAgICAgfVxuICAgICAgICogICB9XG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHBvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdO1xuICAgICAgcmVzdHJpY3RlZF9hY3Rpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJlc3RyaWN0ZWRBY3Rpb25zTWFwXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSByb2xlXG4gICAgICAgKiBAZXhhbXBsZSBSb2xlI2JmZTNlY2NiLTczMWUtNDMwZC1iMWU1LWFjMTM2M2U2YjA2YlxuICAgICAgICovXG4gICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERlcHJlY2F0ZWQuIFRoZSBsaXN0IG9mIGF0IG1vc3QgMTAwIHVzZXJzIHdpdGggYWNjZXNzIHRvIHRoZSByb2xlLiAqL1xuICAgICAgdXNlcnM/OiBzdHJpbmdbXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIHdoZW4gcmVxdWVzdGluZyBhIHJvbGUgYXR0ZXN0YXRpb24uICovXG4gICAgUm9sZUluZm9Kd3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBKU09OIFdlYiBUb2tlbiB3aG9zZSBjbGFpbXMgY29udGFpbiB0aGUgYFJvbGVJbmZvYCBzdHJ1Y3R1cmUuICovXG4gICAgICBqd3Q6IHN0cmluZztcbiAgICB9O1xuICAgIFJwY0FwaUVycm9yQ29kZTpcbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJScGNBcGlFcnJvck93bkNvZGVzXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2lnbmVyQ2xpZW50RXJyb3JDb2RlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUnBjRXZtRXJyb3JDb2RlXCJdO1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIFJwY0FwaUVycm9yT3duQ29kZXM6IFwiTWZhUmVxdWlyZWRcIiB8IFwiQ29uY3VycmVudFRyYW5zYWN0aW9uRmFpbGVkXCIgfCBcIkludmFsaWRUeFN0YXR1c1wiO1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIFJwY0V2bUVycm9yQ29kZTogXCJTdWJtaXNzaW9uRmFpbGVkXCIgfCBcIkZhaWxlZFRvUmVzZXJ2ZU5vbmNlXCIgfCBcIk1pc3NpbmdUeEZpZWxkXCIgfCBcIlNpZ25lclwiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgUlBDIEFQSSBtZXRob2QgYW5kIG1hdGNoaW5nIHBhcmFtZXRlcnMuXG4gICAgICpcbiAgICAgKiBUb3AtbGV2ZWwgZGlzcGF0Y2guIFdpcmUgZm9ybWF0IGlzIHByZXNlcnZlZCBieSBgI1tzZXJkZSh1bnRhZ2dlZCldYDogZWFjaFxuICAgICAqIGluYm91bmQgcmVxdWVzdCBpcyBtYXRjaGVkIGFnYWluc3Qgb25lIG9mIHRoZSBpbnRlcm5hbGx5LXRhZ2dlZCBpbm5lciBlbnVtc1xuICAgICAqIChbYENzUnBjYF0gZm9yIHRoZSBjb3JlIG1ldGhvZHMsIFtgQmluYW5jZVJwY2BdIGZvciB0aGUgQmluYW5jZSBmYW1pbHksXG4gICAgICogW2BCeWJpdFJwY2BdIGZvciB0aGUgQnliaXQgZmFtaWx5LCBbYENvaW5iYXNlUnBjYF0gZm9yIHRoZSBDb2luYmFzZSBmYW1pbHkpLlxuICAgICAqL1xuICAgIFJwY01ldGhvZDpcbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDc1JwY1wiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJpbmFuY2VScGNcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCeWJpdFJwY1wiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvaW5iYXNlUnBjXCJdO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIHNjb3BlcyBmb3IgYWNjZXNzaW5nIEN1YmVTaWduZXIgQVBJcyAqL1xuICAgIFNjb3BlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkV4cGxpY2l0U2NvcGVcIl0gfCBzdHJpbmc7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHNldCBvZiBzY29wZXMuICovXG4gICAgU2NvcGVTZXQ6IE9uZU9mPFxuICAgICAgW1xuICAgICAgICBcIkFsbFwiLFxuICAgICAgICB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgc2NvcGVzIGV4Y2VwdCB0aGVzZSAoaW5jbHVkaW5nIHRob3NlIHRyYW5zaXRpdmVseSBpbXBsaWVkKS4gKi9cbiAgICAgICAgICBBbGxFeGNlcHQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2NvcGVcIl1bXTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIG9mIHRoZXNlIHNjb3BlcyAoaW5jbHVkaW5nIHRob3NlIHRyYW5zaXRpdmVseSBpbXBsaWVkKS4gKi9cbiAgICAgICAgICBBbGxPZjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTY29wZVwiXVtdO1xuICAgICAgICB9LFxuICAgICAgXVxuICAgID47XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgdGhlIG51bWJlciBvZiBNRkEgYXBwcm92YWxzIHJlcXVpcmVkIGZvciBhIGdpdmVuIG9wZXJhdGlvblxuICAgICAqIChlLmcuIGxvZ2luKS4gQ2FuIGJlIHVzZWQgdG8gcHJvZHVjZSBhIGNvbmNyZXRlIHBvbGljeSBmb3IgYSBnaXZlbiB1c2VyXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBTZWNvbmRGYWN0b3JSZXF1aXJlbWVudDogXCJub25lXCIgfCBcImlmX3JlZ2lzdGVyZWRcIiB8IFwicmVxdWlyZWRcIjtcbiAgICAvKipcbiAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICogQGRlc2NyaXB0aW9uIER1cmF0aW9uIG1lYXN1cmVkIGluIHNlY29uZHNcbiAgICAgKiBBIHdyYXBwZXIgdHlwZSBmb3Igc2VyaWFsaXphdGlvbiB0aGF0IGVuY29kZXMgYSBgRHVyYXRpb25gIGFzIGEgYHU2NGAgcmVwcmVzZW50aW5nIHRoZSBudW1iZXIgb2Ygc2Vjb25kcy5cbiAgICAgKi9cbiAgICBTZWNvbmRzOiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogU2VjcmV0QWN0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBhY2Nlc3MtY29udHJvbGxlZCBhY3Rpb25zIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiBhbiBpbmRpdmlkdWFsIHBvbGljeSBzZWNyZXQuXG4gICAgICogQGV4YW1wbGUgcmVhZDpzZWNyZXRcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIFNlY3JldEFjdGlvbjpcbiAgICAgIHwgXCJyZWFkOipcIlxuICAgICAgfCBcInJlYWQ6aW5mb1wiXG4gICAgICB8IFwicmVhZDpzZWNyZXRcIlxuICAgICAgfCBcInVwZGF0ZToqXCJcbiAgICAgIHwgXCJ1cGRhdGU6c2VjcmV0XCJcbiAgICAgIHwgXCJ1cGRhdGU6YWNsXCJcbiAgICAgIHwgXCJkZWxldGVcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgc2VjcmV0LiAqL1xuICAgIFNlY3JldEluZm86IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGFjY2Vzcy1jb250cm9sIGVudHJpZXMgZm9yIHRoaXMgc2VjcmV0LiAqL1xuICAgICAgYWNsPzogdW5rbm93bltdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5hbWUgb2YgdGhlIHNlY3JldC4gKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIHByb3ZlbmFuY2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2VjcmV0UHJvdmVuYW5jZVwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXaGVyZSBhIHBvbGljeSBzZWNyZXQncyB2YWx1ZSBjYW1lIGZyb20uXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBTZWNyZXRQcm92ZW5hbmNlOiBcIkltcG9ydGVkXCIgfCBcIkdlbmVyYXRlZFwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHZhbHVlIG9mIGEgcG9saWN5IHNlY3JldC4gKi9cbiAgICBTZWNyZXRWYWx1ZTogT25lT2Y8XG4gICAgICBbXG4gICAgICAgIHN0cmluZyxcbiAgICAgICAge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgY2xpZW50J3MgZXBoZW1lcmFsIHB1YmxpYyBrZXkgdXNlZCB0byBkZXJpdmUgYSBzaGFyZWQga2V5LlxuICAgICAgICAgICAqIFRoaXMgaXMgYSBiYXNlNjQtZW5jb2RlZCwgU0VDMS1lbmNvZGVkIFAzODQgcHVibGljIGtleS5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBjbGllbnRfcHVibGljX2tleTogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZW5jcnlwdGVkIHNlY3JldCB2YWx1ZS5cbiAgICAgICAgICAgKiBUaGlzIGlzIGEgYmFzZTY0LWVuY29kZWQgY2lwaGVydGV4dC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmNyeXB0ZWRfdmFsdWU6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQSBzYWx0IHZhbHVlIHVzZWQgdG8gZGVyaXZlIGEgc2hhcmVkIGtleSBmb3IgQUVTLUdDTS5cbiAgICAgICAgICAgKiBUaGlzIGlzIGEgYmFzZTY0LWVuY29kZWQgYnl0ZSBzdHJpbmcuXG4gICAgICAgICAgICovXG4gICAgICAgICAgc2FsdDogc3RyaW5nO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBudW1iZXIgb2YgcmFuZG9tIGJ5dGVzIHRvIGdlbmVyYXRlLlxuICAgICAgICAgICAqIFRoZSBzZWNyZXQgdmFsdWUgaXMgdGhlIGJhc2U2NCBlbmNvZGluZyBvZiB0aG9zZSBieXRlcywgc28gaXQgaXNcbiAgICAgICAgICAgKiBgNCAqIGNlaWwoZ2VuZXJhdGVfcmFuZG9tX2J5dGVzIC8gMylgIGNoYXJhY3RlcnMgbG9uZy5cbiAgICAgICAgICAgKlxuICAgICAgICAgICAqIE11c3QgYmUgYmV0d2VlbiAxIGFuZFxuICAgICAgICAgICAqIFtNQVhfUkFORE9NX1NFQ1JFVF9CWVRFU10oc2VjcmV0czo6TUFYX1JBTkRPTV9TRUNSRVRfQllURVMpLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGdlbmVyYXRlX3JhbmRvbV9ieXRlczogbnVtYmVyO1xuICAgICAgICB9LFxuICAgICAgXVxuICAgID47XG4gICAgU2Vzc2lvbkluZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vzc2lvbk1ldGFkYXRhXCJdICYge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRpb24gZGF0ZSAoaW4gc2Vjb25kcyBzaW5jZSB1bml4IGVwb2NoKVxuICAgICAgICovXG4gICAgICBjcmVhdGVkX2F0OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBFeHBpcmF0aW9uIGRhdGUgKGluIHNlY29uZHMgc2luY2UgdW5peCBlcG9jaClcbiAgICAgICAqL1xuICAgICAgZXhwOiBudW1iZXI7XG4gICAgICBsYXN0X3VzZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIldoZXJlQW5kV2hlblwiXSB8IG51bGw7XG4gICAgICBsaWZldGltZXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJhdGNoZXRDb25maWdcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIGZvciB0aGUgc2Vzc2lvblxuICAgICAgICogQGV4YW1wbGUgT0lEQyBsb2dpbiBzZXNzaW9uXG4gICAgICAgKi9cbiAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIExpc3RzIHVzZXIgcGVybWlzc2lvbiBhbmQgYWNjZXNzIGZvciB0aGUgc2Vzc2lvblxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcInNpZ246KlwiLFxuICAgICAgICogICBcIm1hbmFnZTptZmE6dm90ZTpjc1wiXG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHNjb3Blcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2NvcGVcIl1bXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFNlc3Npb24gSUQuIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHNlc3Npb24sIGJ1dCBjYW5ub3QgYmUgdXNlZCBmb3IgYXV0aC5cbiAgICAgICAqIEBleGFtcGxlIDc3YWFkMjEwMGMzNjFmNDk3NjM1ZGQwMDVjNGQxNTc4MWUyZTVkZjRiOWY0NWQ4ZTc0ZjM3NDI1Y2JjMzBiOWVcbiAgICAgICAqL1xuICAgICAgc2Vzc2lvbl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbGxlY3Rpb24gb2YgYXR0cmlidXRlcyByZWxhdGVkIHRvIGEgU2Vzc2lvbi5cbiAgICAgKiBUaGlzIGlzIHRoZSBiYWNrZW5kIHZhcmlhbnQgb2YgW2BDbGllbnRTZXNzaW9uTWV0YWRhdGFgXSBhbmQgd29ya3MgaW4gdGFuZGVtIHdpdGggaXRzIGZyb250ZW5kIGNvdW50ZXJwYXJ0LlxuICAgICAqL1xuICAgIFNlc3Npb25NZXRhZGF0YToge1xuICAgICAgY2xpZW50PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDbGllbnRQcm9maWxlXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSB1c2VyIHdobyBjcmVhdGVkIHRoZSBzZXNzaW9uLlxuICAgICAgICogQGV4YW1wbGUgVXNlciNlZjQxMzZkZC1kMjJmLTQ1YmMtYTY1Yy0xMmI0YmFhNzI5ZDRcbiAgICAgICAqL1xuICAgICAgY3JlYXRlZF9ieT86IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT1MgU3RyaW5nIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgc2VlIG9zX2luZm8gaW5zdGVhZC4gKi9cbiAgICAgIG9zPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIG9zX2luZm8/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9zSW5mb1wiXTtcbiAgICAgIHNvdXJjZV9pcD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU291cmNlSXBcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBVc2VyIGFnZW50IHRoYXQgY3JlYXRlZCB0aGUgc2Vzc2lvbi5cbiAgICAgICAqIEBleGFtcGxlIE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIHgueTsgcnY6NDIuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC80Mi4wXG4gICAgICAgKi9cbiAgICAgIHVzZXJfYWdlbnQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzcG9uc2UgZnJvbSBhbnkgb3BlcmF0aW9uIG9wZXJhdGluZyBvbiBtdWx0aXBsZSBzZXNzaW9ucyAqL1xuICAgIFNlc3Npb25zUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2Ygc2Vzc2lvbnMgKi9cbiAgICAgIHNlc3Npb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlc3Npb25JbmZvXCJdW107XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQSByZXF1ZXN0IGZvciBzZXR0aW5nIGFuIE9yZy1sZXZlbCBwb2xpY3kgc2VjcmV0LlxuICAgICAqXG4gICAgICogRWl0aGVyIGB2YWx1ZWAgb3IgYGFjbGAgbXVzdCBiZSBwcm92aWRlZC5cbiAgICAgKi9cbiAgICBTZXRQb2xpY3lTZWNyZXRSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc2VjcmV0J3MgYWNjZXNzLWNvbnRyb2wgZW50cmllcy5cbiAgICAgICAqIENhbiBiZSBgTm9uZWAgaWYgdGhlIHJlcXVlc3QgaXMgY3JlYXRpbmcgYSBzZWNyZXQgd2l0aG91dCBBQ0wgb3IgdXBkYXRpbmcgYW5cbiAgICAgICAqIGV4aXN0aW5nIHNlY3JldCdzIHZhbHVlLlxuICAgICAgICovXG4gICAgICBhY2w/OiB1bmtub3duO1xuICAgICAgaW1wb3J0X2tleT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW1wb3J0S2V5XCJdIHwgbnVsbDtcbiAgICAgIHZhbHVlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNyZXRWYWx1ZVwiXSB8IG51bGw7XG4gICAgfTtcbiAgICBTaWduRGltZW5zaW9uczoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgc2lnbiBvcGVyYXRpb24gKi9cbiAgICAgIG9wZXJhdGlvbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgbWV0cmljcyBtdXN0IGluY2x1ZGUgJ29yZ19pZCcgYXMgYSBkaW1lbnNpb24uICovXG4gICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIFNpZ25EcnlSdW5BcmdzOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgTUZBIGlzIHJlcXVpcmVkICovXG4gICAgICBtZmFfcmVxdWVzdHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhUmVxdWVzdEluZm9cIl1bXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZSwgaWYgcmVxdWVzdGVkICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RydWN0dXJlZCBpbnB1dCB0byBhIFNpZ24tSW4gV2l0aCBTb2xhbmEgcmVxdWVzdCAoYFNvbGFuYVNpZ25JbklucHV0YCBpbiB0aGUgc3BlYykuXG4gICAgICpcbiAgICAgKiBUaGUgcmVseWluZyBwYXJ0eSBmaWxscyBpbiBgZG9tYWluYC9gYWRkcmVzc2AvYHVyaWAvLi4uIGFuZCB0aGUgd2FsbGV0IHJlbmRlcnMgaXQgaW50byB0aGVcbiAgICAgKiBodW1hbi1yZWFkYWJsZSBtZXNzYWdlIChzZWUgW1NpZ25JbklucHV0Ojp0b19tZXNzYWdlX3RleHRdKSB0aGF0IGl0IHNpZ25zLlxuICAgICAqL1xuICAgIFNpZ25JbklucHV0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBiYXNlNTgtZW5jb2RlZCBTb2xhbmEgKGVkMjU1MTkpIHB1YmxpYyBrZXkgcGVyZm9ybWluZyB0aGUgc2lnbi1pbi4gKi9cbiAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgIGNoYWluSWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNvbGFuYU5ldHdvcmtcIl0gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgUkZDIDM5ODYgYXV0aG9yaXR5IHRoYXQgaXMgcmVxdWVzdGluZyB0aGUgc2lnbi1pbi4gKi9cbiAgICAgIGRvbWFpbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSVNPIDg2MDEgZGF0ZXRpbWUgc3RyaW5nIGFmdGVyIHdoaWNoIHRoZSBzaWduZWQgbWVzc2FnZSBpcyBubyBsb25nZXIgdmFsaWQuICovXG4gICAgICBleHBpcmF0aW9uVGltZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBJU08gODYwMSBkYXRldGltZSBzdHJpbmcgb2YgdGhlIHRpbWUgdGhlIG1lc3NhZ2Ugd2FzIGlzc3VlZC4gKi9cbiAgICAgIGlzc3VlZEF0Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSByYW5kb21pemVkIHRva2VuIHVzZWQgdG8gcHJldmVudCByZXBsYXkgYXR0YWNrczsgYXQgbGVhc3QgOCBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4gKi9cbiAgICAgIG5vbmNlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIElTTyA4NjAxIGRhdGV0aW1lIHN0cmluZyBiZWZvcmUgd2hpY2ggdGhlIHNpZ25lZCBtZXNzYWdlIGlzIG5vdCB5ZXQgdmFsaWQuICovXG4gICAgICBub3RCZWZvcmU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIHN5c3RlbS1zcGVjaWZpYyBpZGVudGlmaWVyIHRoYXQgbWF5IGJlIHVzZWQgdG8gdW5pcXVlbHkgcmVmZXIgdG8gdGhlIHNpZ24taW4gcmVxdWVzdC4gKi9cbiAgICAgIHJlcXVlc3RJZD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgbGlzdCBvZiBSRkMgMzk4NiBVUklzIHRoZSB1c2VyIHdpc2hlcyB0byBoYXZlIHJlc29sdmVkIGFzIHBhcnQgb2YgdGhlIGF1dGhlbnRpY2F0aW9uLiAqL1xuICAgICAgcmVzb3VyY2VzPzogc3RyaW5nW10gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIEFTQ0lJIGFzc2VydGlvbiB0aGF0IHRoZSB1c2VyIHdpbGwgc2lnbjsgbXVzdCBub3QgY29udGFpbiBhIG5ld2xpbmUuICovXG4gICAgICBzdGF0ZW1lbnQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBSRkMgMzk4NiBVUkkgcmVmZXJyaW5nIHRvIHRoZSByZXNvdXJjZSB0aGF0IGlzIHRoZSBzdWJqZWN0IG9mIHRoZSBzaWduLWluLiAqL1xuICAgICAgdXJpPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHZlcnNpb24gb2YgdGhlIG1lc3NhZ2UgKGN1cnJlbnRseSBhbHdheXMgYDFgKS4gKi9cbiAgICAgIHZlcnNpb24/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgU2lnblJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgcmVzdWx0aW5nIHNpZ25hdHVyZS4gKi9cbiAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgU2lnbmF0dXJlVmVyc2lvbjogXCJlaXBfNzEyX3YzXCIgfCBcImVpcF83MTJfdjRcIiB8IFwicGVyc29uYWxfc2lnblwiO1xuICAgIFNpZ25lZE1lc3NhZ2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBhZGRyZXNzIG9mIHRoZSBzaWduZXIsIHdpdGggbGVhZGluZyAnMHgnXG4gICAgICAgKiBAZXhhbXBsZSAweDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlcbiAgICAgICAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHJlcXVlc3QgcmVjb3JkLiAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHNpZ25hdHVyZSwgaGV4IGVuY29kZWQsIHdpdGggbGVhZGluZyAnMHgnICovXG4gICAgICBzaWduYXR1cmU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgc2lnbmF0dXJlVmVyc2lvbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTaWduYXR1cmVWZXJzaW9uXCJdO1xuICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1taVN0YXR1c1wiXTtcbiAgICB9O1xuICAgIFNpZ25lckNsaWVudEVycm9yQ29kZTpcbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTaWduZXJDbGllbnRFcnJvck93bkNvZGVzXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2lnbmVyQ2xpZW50SW50ZXJuYWxFcnJvckNvZGVcIl07XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgU2lnbmVyQ2xpZW50RXJyb3JPd25Db2RlczogXCJTaWduZXJSZXNwb25zZUVycm9yXCIgfCBcIkxlZ2FjeVNlc3Npb25Ob3RTdXBwb3J0ZWRcIjtcbiAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICBTaWduZXJDbGllbnRJbnRlcm5hbEVycm9yQ29kZTpcbiAgICAgIHwgXCJJbnZhbGlkU2lnbmVyRW52aXJvbm1lbnRcIlxuICAgICAgfCBcIkludmFsaWRTZXNzaW9uSGVhZGVyc1wiXG4gICAgICB8IFwiSW52YWxpZEhlYWRlclwiXG4gICAgICB8IFwiTGFtYmRhSW52b2tlRXJyb3JcIlxuICAgICAgfCBcIkxhbWJkYVJlc3BvbnNlRXJyb3JcIlxuICAgICAgfCBcIkxhbWJkYVByb3h5SW52YWxpZFJlc3BvbnNlXCJcbiAgICAgIHwgXCJSZXF3ZXN0XCJcbiAgICAgIHwgXCJTZXJkZVwiXG4gICAgICB8IFwiSW9cIjtcbiAgICBTaWduZXJFcnJvckNvZGU6XG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2lnbmVyRXJyb3JPd25Db2Rlc1wiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkVmFsdWVDb2RlXCJdXG4gICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmFkUmVxdWVzdEVycm9yQ29kZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJhZEdhdGV3YXlFcnJvckNvZGVcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJOb3RGb3VuZEVycm9yQ29kZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZvcmJpZGRlbkVycm9yQ29kZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVuYXV0aG9yaXplZEVycm9yQ29kZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlByZWNvbmRpdGlvbkVycm9yQ29kZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRpbWVvdXRFcnJvckNvZGVcIl1cbiAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb25mbGljdEVycm9yQ29kZVwiXVxuICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkludGVybmFsRXJyb3JDb2RlXCJdO1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIFNpZ25lckVycm9yT3duQ29kZXM6XG4gICAgICB8IFwiUHJlQ29tcHV0ZWRcIlxuICAgICAgfCBcIlN0YXR1c0NvZGVXaXRoTWVzc2FnZVwiXG4gICAgICB8IFwiSnJwY0Vycm9yXCJcbiAgICAgIHwgXCJVbmhhbmRsZWRFcnJvclwiXG4gICAgICB8IFwiUHJveHlTdGFydEVycm9yXCJcbiAgICAgIHwgXCJFbmNsYXZlRXJyb3JcIlxuICAgICAgfCBcIlBvbGljeUVycm9yV2l0aEV2YWxUcmVlXCJcbiAgICAgIHwgXCJScGNBcGlcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEFuc3dlciB0byBhIFNpZ24taW4gd2l0aCBFdGhlcmV1bSBjaGFsbGVuZ2UuICovXG4gICAgU2l3ZUNvbXBsZXRlUmVxdWVzdDoge1xuICAgICAgY2hhbGxlbmdlX2lkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgRUlQLTE5MSBzaWduYXR1cmUgb2YgdGhlIG1lc3NhZ2UgcmV0dXJuZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgUE9TVCAoJ2luaXQnKSBlbmRwb2ludCAqL1xuICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJldHVybmVkIHVwb24gYSBzdWNjZXNzZnVsIFNJV0UgYXV0aGVudGljYXRpb24uICovXG4gICAgU2l3ZUNvbXBsZXRlUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIE9JREMgdG9rZW4gY29ycmVzcG9uZGluZyB0byB0aGUgdXNlciB3aXRoIHRoZSByZXF1ZXN0ZWQgU0lXRSBpZGVudGl0eS4gKi9cbiAgICAgIGlkX3Rva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZSB0aGUgcmVxdWVzdCB0byBzaWduIGluIHdpdGggZXRoZXJldW0uIFRoZSByZXNwb25zZSB3aWxsXG4gICAgICogY29udGFpbiBhIFNJV0UgbWVzc2FnZSB0aGF0IHRoZSBjbGllbnQgaGFzIHRvIHNpZ24gYW5kIHN1Ym1pdCB2aWEgdGhlXG4gICAgICogY29ycmVzcG9uZGluZyBQQVRDSCBlbmRwb2ludCB3aXRoaW4gNSBtaW51dGVzLlxuICAgICAqL1xuICAgIFNpd2VJbml0UmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgRXRoZXJldW0gYWRkcmVzcyBwZXJmb3JtaW5nIHRoZSBzaWduaW5nIGNvbmZvcm1hbnQgdG8gY2FwaXRhbGl6YXRpb24gZW5jb2RlZCBjaGVja3N1bSBzcGVjaWZpZWQgaW4gRUlQLTU1LiAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgUkZDIDM5ODYgYXV0aG9yaXR5IHRoYXQgaXMgcmVxdWVzdGluZyB0aGUgc2lnbmluZy4gKi9cbiAgICAgIGRvbWFpbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSVNPIDg2MDEgZGF0ZXRpbWUgc3RyaW5nIHRoYXQsIGlmIHByZXNlbnQsIGluZGljYXRlcyB3aGVuIHRoZSBzaWduZWQgYXV0aGVudGljYXRpb24gbWVzc2FnZSBpcyBubyBsb25nZXIgdmFsaWQuICovXG4gICAgICBleHBpcmF0aW9uX3RpbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSVNPIDg2MDEgZGF0ZXRpbWUgc3RyaW5nIHRoYXQsIGlmIHByZXNlbnQsIGluZGljYXRlcyB3aGVuIHRoZSBzaWduZWQgYXV0aGVudGljYXRpb24gbWVzc2FnZSB3aWxsIGJlY29tZSB2YWxpZC4gKi9cbiAgICAgIG5vdF9iZWZvcmU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIHN5c3RlbS1zcGVjaWZpYyBpZGVudGlmaWVyIHRoYXQgbWF5IGJlIHVzZWQgdG8gdW5pcXVlbHkgcmVmZXIgdG8gdGhlIHNpZ24taW4gcmVxdWVzdC4gKi9cbiAgICAgIHJlcXVlc3RfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGxpc3Qgb2YgaW5mb3JtYXRpb24gb3IgcmVmZXJlbmNlcyB0byBpbmZvcm1hdGlvbiB0aGUgdXNlciB3aXNoZXMgdG8gaGF2ZSByZXNvbHZlZCBhcyBwYXJ0IG9mIGF1dGhlbnRpY2F0aW9uIGJ5IHRoZSByZWx5aW5nIHBhcnR5LiBUaGV5IGFyZSBleHByZXNzZWQgYXMgUkZDIDM5ODYgVVJJcyBzZXBhcmF0ZWQgYnkgXCJcXG4tIFwiIHdoZXJlIFxcbiBpcyB0aGUgYnl0ZSAweDBhLiAqL1xuICAgICAgcmVzb3VyY2VzPzogc3RyaW5nW107XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcmVhZGFibGUgQVNDSUkgYXNzZXJ0aW9uIHRoYXQgdGhlIHVzZXIgd2lsbCBzaWduLCBhbmQgaXQgbXVzdCBub3QgY29udGFpbiAnXFxuJyAodGhlIGJ5dGUgMHgwYSkuICovXG4gICAgICBzdGF0ZW1lbnQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBSRkMgMzk4NiBVUkkgcmVmZXJyaW5nIHRvIHRoZSByZXNvdXJjZSB0aGF0IGlzIHRoZSBzdWJqZWN0IG9mIHRoZSBzaWduaW5nIChhcyBpbiB0aGUgc3ViamVjdCBvZiBhIGNsYWltKS4gKi9cbiAgICAgIHVyaTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEEgY2hhbGxlbmdlIHJldHVybmVkIGluIHJlc3BvbnNlIHRvIGEgU2lnbi1JbiB3aXRoIEV0aGVyZXVtIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBDb250YWlucyBhIG1lc3NhZ2UgdGhhdCB0aGUgY2xpZW50IG11c3Qgc2lnbiBmb2xsb3dpbmcgRUlQLTE5MVxuICAgICAqIHdpdGggdGhlIHJlcXVlc3RlZCBrZXkgaW4gb3JkZXIgdG8gY29tcGxldGUgYXV0aGVudGljYXRpb24uXG4gICAgICpcbiAgICAgKiBUaGUgY2xpZW50IGhhcyB1bnRpbCB0aGUgbWVzc2FnZSBleHBpcmVzIChidXQgbm8gbW9yZSB0aGFuIDUgbWludXRlcykgdG8gY29tcGxldGUgdGhlIGNoYWxsZW5nZS5cbiAgICAgKi9cbiAgICBTaXdlSW5pdFJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgY2hhbGxlbmdlICh0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0IHdoZW4gY2FsbGluZyB0aGUgUEFUQ0ggKCdjb21wbGV0ZScpIGVuZHBvaW50KSAqL1xuICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtZXNzYWdlIHRvIHNpZ24gZm9sbG93aW5nIHRoZSBFSVAtMTkxIHN0YW5kYXJkLiAqL1xuICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBbnN3ZXIgdG8gYSBTaWduLWluIHdpdGggU29sYW5hIGNoYWxsZW5nZS4gKi9cbiAgICBTaXdzQ29tcGxldGVSZXF1ZXN0OiB7XG4gICAgICBjaGFsbGVuZ2VfaWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBiYXNlNTgtZW5jb2RlZCBlZDI1NTE5IHNpZ25hdHVyZSBvZiB0aGUgY2hhbGxlbmdlJ3MgY2Fub25pY2FsIG1lc3NhZ2UgdGV4dCAodGhlIHJlbmRlcmVkIGBTaWduSW5JbnB1dGApLiAqL1xuICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJldHVybmVkIHVwb24gYSBzdWNjZXNzZnVsIFNJV1MgYXV0aGVudGljYXRpb24uICovXG4gICAgU2l3c0NvbXBsZXRlUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIE9JREMgdG9rZW4gY29ycmVzcG9uZGluZyB0byB0aGUgdXNlciB3aXRoIHRoZSByZXF1ZXN0ZWQgU0lXUyBpZGVudGl0eS4gKi9cbiAgICAgIGlkX3Rva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZSB0aGUgcmVxdWVzdCB0byBzaWduIGluIHdpdGggU29sYW5hLiBUaGUgcmVzcG9uc2Ugd2lsbCBjb250YWluIGEgc3RydWN0dXJlZFxuICAgICAqIGBTaWduSW5JbnB1dGAgdGhhdCB0aGUgY2xpZW50IG11c3QgcmVuZGVyIHRvIHRleHQsIHNpZ24sIGFuZCBzdWJtaXQgdmlhIHRoZSBjb3JyZXNwb25kaW5nIFBBVENIXG4gICAgICogZW5kcG9pbnQgd2l0aGluIDUgbWludXRlcy5cbiAgICAgKi9cbiAgICBTaXdzSW5pdFJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGJhc2U1OC1lbmNvZGVkIFNvbGFuYSAoZWQyNTUxOSkgcHVibGljIGtleSBwZXJmb3JtaW5nIHRoZSBzaWduaW5nLiAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgY2hhaW5faWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNvbGFuYU5ldHdvcmtcIl0gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgUkZDIDM5ODYgYXV0aG9yaXR5IHRoYXQgaXMgcmVxdWVzdGluZyB0aGUgc2lnbmluZy4gKi9cbiAgICAgIGRvbWFpbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSVNPIDg2MDEgZGF0ZXRpbWUgc3RyaW5nIHRoYXQsIGlmIHByZXNlbnQsIGluZGljYXRlcyB3aGVuIHRoZSBzaWduZWQgYXV0aGVudGljYXRpb24gbWVzc2FnZSBpcyBubyBsb25nZXIgdmFsaWQuICovXG4gICAgICBleHBpcmF0aW9uX3RpbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSVNPIDg2MDEgZGF0ZXRpbWUgc3RyaW5nIHRoYXQsIGlmIHByZXNlbnQsIGluZGljYXRlcyB3aGVuIHRoZSBzaWduZWQgYXV0aGVudGljYXRpb24gbWVzc2FnZSB3aWxsIGJlY29tZSB2YWxpZC4gKi9cbiAgICAgIG5vdF9iZWZvcmU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIHN5c3RlbS1zcGVjaWZpYyBpZGVudGlmaWVyIHRoYXQgbWF5IGJlIHVzZWQgdG8gdW5pcXVlbHkgcmVmZXIgdG8gdGhlIHNpZ24taW4gcmVxdWVzdC4gKi9cbiAgICAgIHJlcXVlc3RfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGxpc3Qgb2YgUkZDIDM5ODYgVVJJcyB0aGUgdXNlciB3aXNoZXMgdG8gaGF2ZSByZXNvbHZlZCBhcyBwYXJ0IG9mIGF1dGhlbnRpY2F0aW9uIGJ5IHRoZSByZWx5aW5nIHBhcnR5LiAqL1xuICAgICAgcmVzb3VyY2VzPzogc3RyaW5nW107XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcmVhZGFibGUgQVNDSUkgYXNzZXJ0aW9uIHRoYXQgdGhlIHVzZXIgd2lsbCBzaWduLCBhbmQgaXQgbXVzdCBub3QgY29udGFpbiAnXFxuJyAodGhlIGJ5dGUgMHgwYSkuICovXG4gICAgICBzdGF0ZW1lbnQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBSRkMgMzk4NiBVUkkgcmVmZXJyaW5nIHRvIHRoZSByZXNvdXJjZSB0aGF0IGlzIHRoZSBzdWJqZWN0IG9mIHRoZSBzaWduaW5nIChhcyBpbiB0aGUgc3ViamVjdCBvZiBhIGNsYWltKS4gKi9cbiAgICAgIHVyaT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQSBjaGFsbGVuZ2UgcmV0dXJuZWQgaW4gcmVzcG9uc2UgdG8gYSBTaWduLUluIHdpdGggU29sYW5hIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBDb250YWlucyBhIHN0cnVjdHVyZWQgW1NpZ25JbklucHV0XSB0aGF0IHRoZSBjbGllbnQgbXVzdCByZW5kZXIgdG8gaXRzIGNhbm9uaWNhbCB0ZXh0IGFuZCBzaWduXG4gICAgICogKGVkMjU1MTkpIHdpdGggdGhlIHJlcXVlc3RlZCBrZXkgaW4gb3JkZXIgdG8gY29tcGxldGUgYXV0aGVudGljYXRpb24uXG4gICAgICpcbiAgICAgKiBUaGUgY2xpZW50IGhhcyB1bnRpbCB0aGUgbWVzc2FnZSBleHBpcmVzIChidXQgbm8gbW9yZSB0aGFuIDUgbWludXRlcykgdG8gY29tcGxldGUgdGhlIGNoYWxsZW5nZS5cbiAgICAgKi9cbiAgICBTaXdzSW5pdFJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgY2hhbGxlbmdlICh0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0IHdoZW4gY2FsbGluZyB0aGUgUEFUQ0ggKCdjb21wbGV0ZScpIGVuZHBvaW50KSAqL1xuICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgICBzaWduX2luX2lucHV0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNpZ25JbklucHV0XCJdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIFNvbGFuYSBhZGRyZXNzIGFuZCB0aGUgY2x1c3RlciBpdCBpcyBvbi4gKi9cbiAgICBTb2xhbmFBZGRyZXNzSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFNvbGFuYSBhZGRyZXNzLlxuICAgICAgICogQGV4YW1wbGUgRVB3NExzTndDWUNZWGFjZTFCS3Z3TGNkN29lWnpSaVlHdUdFNXpmUHZvUHlcbiAgICAgICAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgY2x1c3RlcjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTb2xhbmFDbHVzdGVyXCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFN1cHBvcnRlZCBTb2xhbmEgY2x1c3RlcnMuXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBTb2xhbmFDbHVzdGVyOiBcIm1haW5uZXRcIiB8IFwiZGV2bmV0XCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBTb2xhbmEgbmV0d29yayBhIFNJV1MgbWVzc2FnZSBpcyBib3VuZCB0byAodGhlIGBDaGFpbiBJRGAgZmllbGQpLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgU29sYW5hTmV0d29yazpcbiAgICAgIHwgXCJtYWlubmV0XCJcbiAgICAgIHwgXCJ0ZXN0bmV0XCJcbiAgICAgIHwgXCJkZXZuZXRcIlxuICAgICAgfCBcImxvY2FsbmV0XCJcbiAgICAgIHwgXCJzb2xhbmE6bWFpbm5ldFwiXG4gICAgICB8IFwic29sYW5hOnRlc3RuZXRcIlxuICAgICAgfCBcInNvbGFuYTpkZXZuZXRcIlxuICAgICAgfCBcInNvbGFuYTpsb2NhbG5ldFwiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTb2xhbmEgc2lnbmluZyByZXF1ZXN0XG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJtZXNzYWdlX2Jhc2U2NFwiOiBcIkFRQUJBOE9LVnpMRWpzdHN0TjR4WHIzOWtMS0hUOGQ1OGVRWTFRRXM2TWVYd0VGQnJ4VEFsVUxYMXRyb0xiV3h1QVhRcWdiUW9mR2k2ejhmSmk3S0FBSWY3WU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFKSzB0bjM5azI4cytYODZXNDdFdmJSUktuWUJWUThRL2wybTFFYmZUNyt2QVFJQ0FBRU1BZ0FBQUdRQUFBQUFBQUFBXCJcbiAgICAgKiB9XG4gICAgICovXG4gICAgU29sYW5hU2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTb2xhbmEgYmFzZTY0LWVuY29kZWQgc2VyaWFsaXplZCBNZXNzYWdlICovXG4gICAgICBtZXNzYWdlX2Jhc2U2NDogc3RyaW5nO1xuICAgIH07XG4gICAgU29sYW5hVHhDbXA6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgJ3JlY2VudF9ibG9ja2hhc2gnIHByb3BlcnR5IG9mIHRoZSBTb2xhbmEgdHJhbnNhY3Rpb24gaXMgYWxsb3dlZCB0byBiZSBkaWZmZXJlbnQuICovXG4gICAgICBpZ25vcmVfYmxvY2toYXNoPzogYm9vbGVhbjtcbiAgICB9O1xuICAgIFNvdXJjZUlwOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBJUCBhZGRyZXNzIG9mIHRoZSBjYWxsZXIuICovXG4gICAgICBzb3VyY2VfaXA6IHN0cmluZztcbiAgICB9O1xuICAgIFN0YWtlUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgY2hhaW4gb24gd2hpY2ggd2Ugd2lsbCBkZXBvc2l0XG4gICAgICAgKiBAZXhhbXBsZSA1XG4gICAgICAgKi9cbiAgICAgIGNoYWluX2lkOiBudW1iZXI7XG4gICAgICBkZXBvc2l0X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRGVwb3NpdFR5cGVcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBzdGFraW5nIGFtb3VudCBpbiBHV0VJLlxuICAgICAgICogSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gMzJfMDAwXzAwMF8wMDAgKDMyIEVUSCkuXG4gICAgICAgKiBNdXN0IGJlIGJldHdlZW4gMSBFVEggYW5kIDMyIEVUSC5cbiAgICAgICAqIE11c3Qgbm90IGJlIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gJ2RlcG9zaXRfdHlwZScgaXMgXCJXcmFwcGVyXCIuXG4gICAgICAgKi9cbiAgICAgIHN0YWtpbmdfYW1vdW50X2d3ZWk/OiBudW1iZXI7XG4gICAgICB1bnNhZmVfY29uZj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVW5zYWZlQ29uZlwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdmFsaWRhdG9yIEJMUyBwdWJsaWMga2V5IHRvIHVzZSwgb3IgYE5vbmVgIHRvIGdlbmVyYXRlIGEgZnJlc2ggb25lLlxuICAgICAgICogQGV4YW1wbGUgMHhhOTlhNzZlZDc3OTZmN2JlMjJkNWI3ZTg1ZGVlYjdjNTY3N2U4OGU1MTFlMGIzMzc2MThmOGM0ZWI2MTM0OWI0YmYyZDE1M2Y2NDlmN2I1MzM1OWZlOGI5NGEzOGU0NGNcbiAgICAgICAqL1xuICAgICAgdmFsaWRhdG9yX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZXRoZXJldW0gYWRkcmVzcyB0byB3aGljaCB3aXRoZHJhd24gZnVuZHMgZ29cbiAgICAgICAqIEBleGFtcGxlIDB4OGUzNDg0Njg3ZTY2Y2RkMjZjZjA0YzM2NDc2MzNhYjRmMzU3MDE0OFxuICAgICAgICovXG4gICAgICB3aXRoZHJhd2FsX2FkZHI6IHN0cmluZztcbiAgICB9O1xuICAgIFN0YWtlUmVzcG9uc2U6ICh7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgZGVwb3NpdF90eDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJEZXBvc2l0VHhuXCJdO1xuICAgIH0pICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHZhbGlkYXRvciBrZXkgaWQgKFwiS2V5Iy4uLlwiKVxuICAgICAgICogQGV4YW1wbGUgS2V5I2RiMTczMWY4LTM2NTktNDVjMC04ODViLWUxMWUxZjViN2JlMlxuICAgICAgICovXG4gICAgICBjcmVhdGVkX3ZhbGlkYXRvcl9rZXlfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZhbCBzdGF0ZSBmb3IgYSBbYE1mYVJlcXVlc3RgXSBpbiBbYE1mYVJlcXVlc3RTb3VyY2U6OkxlZ2FjeWBdIG1vZGU6XG4gICAgICogdGhlIHBlci1wb2xpY3kgW2BBcHByb3ZhbENvbnN0cmFpbnRzYF0gcGx1cyBhbiBpbmxpbmUgYGFwcHJvdmVkX2J5YCBtYXAuXG4gICAgICogUG9vbGVkIE1mYVJlcXVlc3RzIGNhcnJ5IG9ubHkgW2BBcHByb3ZhbENvbnN0cmFpbnRzYF0g4oCUIHRoZWlyIGFwcHJvdmFscyBsaXZlXG4gICAgICogb24gdGhlIGxpbmtlZCBbYFBlbmRpbmdPcGBdIOKAlCBzbyB0aGUgdHlwZSBzeXN0ZW0gZW5mb3JjZXMgXCJubyBwb29sZWRcbiAgICAgKiBNZmFSZXF1ZXN0IGhhcyBhbiBgYXBwcm92ZWRfYnlgLlwiXG4gICAgICovXG4gICAgU3RhdHVzOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFVzZXJzIHdobyBhcmUgYWxsb3dlZCB0byBhcHByb3ZlLiBNdXN0IGJlIG5vbi1lbXB0eS4gKi9cbiAgICAgIGFsbG93ZWRfYXBwcm92ZXJzOiBzdHJpbmdbXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsb3dlZCBhcHByb3ZhbCB0eXBlcy4gV2hlbiBvbWl0dGVkLCBkZWZhdWx0cyB0byBhbnkuICovXG4gICAgICBhbGxvd2VkX21mYV90eXBlcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhVHlwZVwiXVtdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIEhvdyBtYW55IHVzZXJzIG11c3QgYXBwcm92ZSAoZGVmYXVsdHMgdG8gMSkuXG4gICAgICAgKi9cbiAgICAgIGNvdW50OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBIb3cgbWFueSBhdXRoIGZhY3RvcnMgdG8gcmVxdWlyZSBwZXIgdXNlciAoZGVmYXVsdHMgdG8gMSkuXG4gICAgICAgKi9cbiAgICAgIG51bV9hdXRoX2ZhY3RvcnM6IG51bWJlcjtcbiAgICAgIHJlcXVlc3RfY29tcGFyZXI/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkh0dHBSZXF1ZXN0Q21wXCJdO1xuICAgIH0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFVzZXJzIHdobyBoYXZlIGFscmVhZHkgYXBwcm92ZWQuICovXG4gICAgICBhcHByb3ZlZF9ieToge1xuICAgICAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICAgICAgW2tleTogc3RyaW5nXTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBcHByb3ZhbEluZm9cIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBgc3RhdHVzYCBmaWVsZCBjYXJyaWVkIGJ5IFtgRW1wdHlgXSByZXNwb25zZXMuIEFsd2F5cyBzZXJpYWxpemVzIGFzIGBcIm9rXCJgLlxuICAgICAqXG4gICAgICogRW5kcG9pbnRzIHRoYXQgdXNlZCB0byByZXR1cm4gW2BFbXB0eWBdIGFuZCBub3cgcmV0dXJuIHNvbWV0aGluZyByaWNoZXIgbXVzdCBrZWVwIGVtaXR0aW5nXG4gICAgICogdGhpcyBmaWVsZCwgYmVjYXVzZSBnZW5lcmF0ZWQgY2xpZW50cyBiaW5kIFtgRW1wdHlgXSB0byBhIHN0cnVjdCB3aXRoIGEgKnJlcXVpcmVkKiBgc3RhdHVzYFxuICAgICAqIGFuZCB3b3VsZCBvdGhlcndpc2UgZmFpbCB0byBkZXNlcmlhbGl6ZSBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UuIFVzZSB0aGlzIHR5cGUgcmF0aGVyIHRoYW4gYVxuICAgICAqIGJhcmUgYFN0cmluZ2Agc28gdGhlIG9uZSBhY2NlcHRhYmxlIHZhbHVlIGlzIG5vdCBzb21ldGhpbmcgYW55b25lIGhhcyB0byByZW1lbWJlci5cbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIFN0YXR1c09rOiBcIm9rXCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEEgc2luZ2xlIGFzc2V0IGJhbGFuY2UgZW50cnkgcmV0dXJuZWQgYnkgW2BTdWJBY2NvdW50QXNzZXRzUmVzcG9uc2VgXS5cbiAgICAgKlxuICAgICAqIEFsbCBiYWxhbmNlIGZpZWxkcyBhcmUgZGVjaW1hbCBzdHJpbmdzIChCaW5hbmNlIHByZXNlcnZlcyBwcmVjaXNpb24gYnkgbm90XG4gICAgICogY29udmVydGluZyB0byBmbG9hdHMpLlxuICAgICAqL1xuICAgIFN1YkFjY291bnRBc3NldDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBc3NldCBzeW1ib2wgKGUuZy4gYFwiVVNEVFwiYCwgYFwiQlRDXCJgKS4gKi9cbiAgICAgIGFzc2V0OiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEF2YWlsYWJsZSBiYWxhbmNlLiAqL1xuICAgICAgZnJlZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYWxhbmNlIGZyb3plbiBieSBCaW5hbmNlIChlLmcuIGR1ZSB0byBjb21wbGlhbmNlIGhvbGRzKS4gKi9cbiAgICAgIGZyZWV6ZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYWxhbmNlIGxvY2tlZCBpbiBvcGVuIG9yZGVycy4gKi9cbiAgICAgIGxvY2tlZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYWxhbmNlIGN1cnJlbnRseSBiZWluZyB3aXRoZHJhd24uICovXG4gICAgICB3aXRoZHJhd2luZzogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIGBHRVQgL3NhcGkvdjQvc3ViLWFjY291bnQvYXNzZXRzYC5cbiAgICAgKlxuICAgICAqIFF1ZXJpZXMgdGhlIHNwb3Qtd2FsbGV0IGJhbGFuY2VzIG9mIGEgc2luZ2xlIHN1Yi1hY2NvdW50LiBNdXN0IGJlIGNhbGxlZCBieVxuICAgICAqIGEgbWFzdGVyLWFjY291bnQgY3JlZGVudGlhbC5cbiAgICAgKi9cbiAgICBTdWJBY2NvdW50QXNzZXRzUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBFbWFpbCBhZGRyZXNzIG9mIHRoZSBzdWItYWNjb3VudCB3aG9zZSBiYWxhbmNlcyB0byBmZXRjaC4gKi9cbiAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19iaW5hbmNlU3ViQWNjb3VudEFzc2V0c2AuICovXG4gICAgU3ViQWNjb3VudEFzc2V0c1Jlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPbmUgZW50cnkgcGVyIGFzc2V0IGhlbGQgaW4gdGhlIHN1Yi1hY2NvdW50J3Mgc3BvdCB3YWxsZXQuIEJpbmFuY2VcbiAgICAgICAqIG9taXRzIGFzc2V0cyB3aXRoIGFsbC16ZXJvIGJhbGFuY2VzLlxuICAgICAgICovXG4gICAgICBiYWxhbmNlczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdWJBY2NvdW50QXNzZXRcIl1bXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgR0VUIC9zYXBpL3YxL2NhcGl0YWwvZGVwb3NpdC9zdWJBZGRyZXNzYC5cbiAgICAgKlxuICAgICAqIEZldGNoZXMgdGhlIGRlcG9zaXQgYWRkcmVzcyBmb3IgYGNvaW5gIG9uIHRoZSBzdWItYWNjb3VudCBpZGVudGlmaWVkIGJ5XG4gICAgICogYGVtYWlsYC4gTWFzdGVyLWFjY291bnQga2V5cyBvbmx5OyB1c2UgW2BEZXBvc2l0UmVxdWVzdGBdIGZvciB0aGUgY2FsbGluZ1xuICAgICAqIGFjY291bnQncyBvd24gYWRkcmVzcy5cbiAgICAgKi9cbiAgICBTdWJBY2NvdW50RGVwb3NpdEFkZHJlc3NSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1aXJlZCBvbmx5IHdoZW4gYG5ldHdvcmtgIGlzIGBcIkxJR0hUTklOR1wiYDogdGhlIGRlcG9zaXQgYW1vdW50IHRoYXRcbiAgICAgICAqIHRoZSByZXR1cm5lZCBpbnZvaWNlIHNob3VsZCBlbmNvZGUsIGFzIGEgZGVjaW1hbCBzdHJpbmcuXG4gICAgICAgKi9cbiAgICAgIGFtb3VudD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBhc3NldCBzeW1ib2wgd2hvc2UgZGVwb3NpdCBhZGRyZXNzIHRvIGZldGNoIChlLmcuIGBcIlVTRFRcImAsIGBcIkJUQ1wiYCkuICovXG4gICAgICBjb2luOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEVtYWlsIG9mIHRoZSBzdWItYWNjb3VudCB3aG9zZSBkZXBvc2l0IGFkZHJlc3MgdG8gZmV0Y2guICovXG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gTmV0d29yayBpZGVudGlmaWVyIChlLmcuIGBcIkJTQ1wiYCwgYFwiRVRIXCJgKS4gSWYgb21pdHRlZCwgQmluYW5jZSByZXR1cm5zXG4gICAgICAgKiB0aGUgYWRkcmVzcyBvbiB0aGUgYXNzZXQncyBkZWZhdWx0IG5ldHdvcmsuIFZhbGlkIHZhbHVlcyBhcmUgdGhlXG4gICAgICAgKiBuZXR3b3JrcyBsaXN0ZWQgYnkgW2BCaW5hbmNlUnBjOjpDb2luSW5mb2BdLlxuICAgICAgICovXG4gICAgICBuZXR3b3JrPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCBieSBgY3NfYmluYW5jZVN1YkFjY291bnREZXBvc2l0QWRkcmVzc2AuXG4gICAgICpcbiAgICAgKiBTYW1lIHNoYXBlIGFzIFtgRGVwb3NpdFJlc3BvbnNlYF0sIGJ1dCBrZXB0IGFzIGEgZGlzdGluY3QgdHlwZTogYHRhZ2AvYHVybGBcbiAgICAgKiBhcmUgbW9kZWxsZWQgYXMgb3B0aW9uYWwgaGVyZSwgYW5kIFtgY3JhdGU6OnJlc3BvbnNlOjpKc29uUnBjUmVzdWx0YF0gaXNcbiAgICAgKiBgdW50YWdnZWRgICsgYGRlcml2ZV9tb3JlOjpGcm9tYCwgc28gdHdvIHZhcmlhbnRzIGNhbm5vdCBzaGFyZSBhIHBheWxvYWRcbiAgICAgKiB0eXBlLlxuICAgICAqL1xuICAgIFN1YkFjY291bnREZXBvc2l0QWRkcmVzc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzdWItYWNjb3VudCdzIGRlcG9zaXQgYWRkcmVzcy4gKi9cbiAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXNzZXQgc3ltYm9sIChlY2hvZXMgdGhlIHJlcXVlc3QncyBgY29pbmAgZmllbGQpLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gU2Vjb25kYXJ5IGFkZHJlc3MgaWRlbnRpZmllciByZXF1aXJlZCBieSBzb21lIGFzc2V0cyAoZS5nLiBtZW1vIGZvclxuICAgICAgICogWFJQLCB0YWcgZm9yIFhMTSkuIEVtcHR5IHN0cmluZyB3aGVuIHRoZSBhc3NldCBkb2VzIG5vdCB1c2Ugb25lLlxuICAgICAgICovXG4gICAgICB0YWc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCbG9ja2NoYWluIGV4cGxvcmVyIFVSTCBmb3IgYGFkZHJlc3NgLiAqL1xuICAgICAgdXJsPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT25lIHN1Yi1hY2NvdW50IGVudHJ5IGluIFtgTGlzdFN1YkFjY291bnRzUmVzcG9uc2VgXS4gKi9cbiAgICBTdWJBY2NvdW50SW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gU3ViLWFjY291bnQgY3JlYXRpb24gdGltZSAobXMgc2luY2UgZXBvY2gpLlxuICAgICAgICovXG4gICAgICBjcmVhdGVUaW1lOiBudW1iZXI7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFN1Yi1hY2NvdW50IGVtYWlsLiAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gYHRydWVgIGlmIHRoaXMgaXMgYW4gYXNzZXQtbWFuYWdlbWVudCBzdWItYWNjb3VudC4gKi9cbiAgICAgIGlzQXNzZXRNYW5hZ2VtZW50U3ViQWNjb3VudDogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgc3ViLWFjY291bnQgaXMgY3VycmVudGx5IGZyb3plbi4gKi9cbiAgICAgIGlzRnJlZXplOiBib29sZWFuO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBgdHJ1ZWAgaWYgdGhpcyBpcyBhIG1hbmFnZWQgc3ViLWFjY291bnQuICovXG4gICAgICBpc01hbmFnZWRTdWJBY2NvdW50OiBib29sZWFuO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgdHJhbnNmZXIgZW50cnkgaW4gW2BTdWJBY2NvdW50VHJhbnNmZXJIaXN0b3J5UmVzcG9uc2VgXS4gKi9cbiAgICBTdWJBY2NvdW50VHJhbnNmZXJIaXN0b3J5RW50cnk6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXNzZXQgc3ltYm9sIChlLmcuIGBcIlVTRFRcImApLiAqL1xuICAgICAgYXNzZXQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRW1haWwgb2YgdGhlIGNvdW50ZXJwYXJ0eSBhY2NvdW50IG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSB0cmFuc2Zlci4gKi9cbiAgICAgIGNvdW50ZXJQYXJ0eTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRW1haWwgb2YgdGhlIGFjY291bnQgdGhpcyBlbnRyeSdzIEFQSSBrZXkgYXV0aGVudGljYXRlcyBhcy4gQmluYW5jZVxuICAgICAgICogcmV0dXJucyB0aGlzIG9uIGVhY2ggcm93IGV2ZW4gdGhvdWdoIGl0IGlzIHRoZSBzYW1lIGZvciB0aGUgd2hvbGUgcGFnZS5cbiAgICAgICAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFdhbGxldCB0eXBlIGRlYml0ZWQgb24gdGhlIHNvdXJjZSBzaWRlIChlLmcuIGBcIlNQT1RcImAsXG4gICAgICAgKiBgXCJVU0RUX0ZVVFVSRVwiYCkuIExlZnQgYXMgYFN0cmluZ2AgZm9yIGZvcndhcmQgY29tcGF0aWJpbGl0eS5cbiAgICAgICAqL1xuICAgICAgZnJvbUFjY291bnRUeXBlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFtb3VudCB0cmFuc2ZlcnJlZCwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIHF0eTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVHJhbnNmZXIgc3RhdHVzOiBgXCJQUk9DRVNTXCJgLCBgXCJTVUNDRVNTXCJgLCBvciBgXCJGQUlMVVJFXCJgLiBMZWZ0IGFzXG4gICAgICAgKiBgU3RyaW5nYCBmb3IgZm9yd2FyZCBjb21wYXRpYmlsaXR5LlxuICAgICAgICovXG4gICAgICBzdGF0dXM6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRpbWUgb2YgdGhlIHRyYW5zZmVyIChtcyBzaW5jZSBlcG9jaCkuXG4gICAgICAgKi9cbiAgICAgIHRpbWU6IG51bWJlcjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2FsbGV0IHR5cGUgY3JlZGl0ZWQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUuICovXG4gICAgICB0b0FjY291bnRUeXBlOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUcmFuc2ZlciBpZC4gTWF0Y2hlcyB0aGUgYHR4bklkYCByZXR1cm5lZCBieSB0aGUgb3JpZ2luYWxcbiAgICAgICAqIFtgU3ViQWNjb3VudFRyYW5zZmVyUmVzcG9uc2VgXS5cbiAgICAgICAqL1xuICAgICAgdHJhbklkOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBgMWAgPSB0cmFuc2ZlciBpbiwgYDJgID0gdHJhbnNmZXIgb3V0LlxuICAgICAgICovXG4gICAgICB0eXBlOiBudW1iZXI7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYEdFVCAvc2FwaS92MS9zdWItYWNjb3VudC90cmFuc2Zlci9zdWJVc2VySGlzdG9yeWAuXG4gICAgICpcbiAgICAgKiBMaXN0cyB0aGUgdHJhbnNmZXIgaGlzdG9yeSBvZiB0aGUgY2FsbGluZyBzdWItYWNjb3VudC4gQ292ZXJzIGJvdGhcbiAgICAgKiBzdWItdG8tbWFzdGVyIGFuZCBzdWItdG8tc3ViIHRyYW5zZmVycy4gQWxsIGZpbHRlcnMgYXJlIG9wdGlvbmFsOyBpZlxuICAgICAqIGBzdGFydF90aW1lYC9gZW5kX3RpbWVgIGFyZSBvbWl0dGVkLCBCaW5hbmNlIHJldHVybnMgdGhlIG1vc3QgcmVjZW50IDMwXG4gICAgICogZGF5cy4gSWYgYHIjdHlwZWAgaXMgb21pdHRlZCwgQmluYW5jZSBkZWZhdWx0cyB0byBgVHJhbnNmZXJPdXRgIChgMmApLlxuICAgICAqL1xuICAgIFN1YkFjY291bnRUcmFuc2Zlckhpc3RvcnlSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZpbHRlciB0byBhIHNwZWNpZmljIGFzc2V0IChlLmcuIGBcIlVTRFRcImApLiAqL1xuICAgICAgYXNzZXQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2luZG93IGVuZCAobXMgc2luY2UgZXBvY2gpLlxuICAgICAgICovXG4gICAgICBlbmRUaW1lPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFBhZ2Ugc2l6ZSAoQmluYW5jZSBkZWZhdWx0OiA1MDApLlxuICAgICAgICovXG4gICAgICBsaW1pdD86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBgdHJ1ZWAsIGluY2x1ZGUgZmFpbGVkIHRyYW5zZmVycyBpbiB0aGUgcmVzcG9uc2UuIEJpbmFuY2UgZGVmYXVsdHNcbiAgICAgICAqIHRvIGBmYWxzZWAuXG4gICAgICAgKi9cbiAgICAgIHJldHVybkZhaWxIaXN0b3J5PzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXaW5kb3cgc3RhcnQgKG1zIHNpbmNlIGVwb2NoKS5cbiAgICAgICAqL1xuICAgICAgc3RhcnRUaW1lPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIERpcmVjdGlvbiBmaWx0ZXIgKGAxYCA9IHRyYW5zZmVyIGluLCBgMmAgPSB0cmFuc2ZlciBvdXQpLlxuICAgICAgICovXG4gICAgICB0eXBlPzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCBieSBgY3NfYmluYW5jZVN1YkFjY291bnRUcmFuc2Zlckhpc3RvcnlgLlxuICAgICAqXG4gICAgICogQmluYW5jZSByZXR1cm5zIGEgdG9wLWxldmVsIEpTT04gYXJyYXk7IHRoaXMgbmV3dHlwZSBwcmVzZXJ2ZXMgdGhhdCB3aXJlXG4gICAgICogZm9ybWF0IHdoaWxlIGdpdmluZyB0aGUgcmVzcG9uc2UgYSBuYW1lZCB0eXBlIGluIHRoZSBPcGVuQVBJIHNjaGVtYS5cbiAgICAgKi9cbiAgICBTdWJBY2NvdW50VHJhbnNmZXJIaXN0b3J5UmVzcG9uc2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3ViQWNjb3VudFRyYW5zZmVySGlzdG9yeUVudHJ5XCJdW107XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCBieSBgY3NfYmluYW5jZVN1YlRvTWFzdGVyYCBhbmQgYGNzX2JpbmFuY2VTdWJUb1N1YmAuICovXG4gICAgU3ViQWNjb3VudFRyYW5zZmVyUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBGb3JtYXQ6IGludDY0ICovXG4gICAgICB0eG5JZDogbnVtYmVyO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIGBQT1NUIC9zYXBpL3YxL3N1Yi1hY2NvdW50L3RyYW5zZmVyL3N1YlRvTWFzdGVyYC5cbiAgICAgKlxuICAgICAqIFRyYW5zZmVycyBhbiBhc3NldCBmcm9tIHRoZSBjYWxsZXIncyBzdWItYWNjb3VudCB0byB0aGUgbWFzdGVyIGFjY291bnQuXG4gICAgICovXG4gICAgU3ViVG9NYXN0ZXJSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgYW1vdW50IGJlaW5nIHRyYW5zZmVycmVkLCBmb3JtYXR0ZWQgYXMgYSBkZWNpbWFsIHN0cmluZyAoZS5nLiBgXCIwLjFcImApLlxuICAgICAgICogU2VudCB2ZXJiYXRpbTogQmluYW5jZSBpcyBzdHJpY3QgYWJvdXQgZGVjaW1hbCBmb3JtYXR0aW5nLlxuICAgICAgICovXG4gICAgICBhbW91bnQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGFzc2V0IHN5bWJvbCBiZWluZyB0cmFuc2ZlcnJlZCAoZS5nLiBgXCJVU0RUXCJgLCBgXCJCVENcImApLiAqL1xuICAgICAgYXNzZXQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciBgUE9TVCAvc2FwaS92MS9zdWItYWNjb3VudC90cmFuc2Zlci9zdWJUb1N1YmAuXG4gICAgICpcbiAgICAgKiBUcmFuc2ZlcnMgYW4gYXNzZXQgZnJvbSB0aGUgY2FsbGVyJ3Mgc3ViLWFjY291bnQgdG8gYW5vdGhlciBzdWItYWNjb3VudFxuICAgICAqIHVuZGVyIHRoZSBzYW1lIG1hc3RlciBhY2NvdW50LlxuICAgICAqL1xuICAgIFN1YlRvU3ViUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYW1vdW50IGJlaW5nIHRyYW5zZmVycmVkLCBhcyBhIGRlY2ltYWwgc3RyaW5nIChlLmcuIGBcIjAuMVwiYCkuICovXG4gICAgICBhbW91bnQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGFzc2V0IHN5bWJvbCBiZWluZyB0cmFuc2ZlcnJlZCAoZS5nLiBgXCJVU0RUXCJgKS4gKi9cbiAgICAgIGFzc2V0OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBFbWFpbCBhZGRyZXNzIG9mIHRoZSBkZXN0aW5hdGlvbiBzdWItYWNjb3VudC4gTXVzdCBiZSBhIHN1Yi1hY2NvdW50IG9mXG4gICAgICAgKiB0aGUgc2FtZSBtYXN0ZXIuXG4gICAgICAgKi9cbiAgICAgIHRvRW1haWw6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhdHVzIG9mIGEgc3Vic2NyaXB0aW9uXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBTdWJzY3JpcHRpb25TdGF0dXM6IFwiQ29uZmlybWVkXCIgfCBcIlBlbmRpbmdcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgU3VpIGFkZHJlc3MgYW5kIGl0cyBjaGFpbi4gKi9cbiAgICBTdWlBZGRyZXNzSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFN1aSBhZGRyZXNzLlxuICAgICAgICogQGV4YW1wbGUgMHg0ZTg3MTJlMzhiMDliNTQ2N2MxMGZkYzQwZmE3ODY1YTY1NTYzOTgzZWViNzRiMjQ2ZGY5ODFlNjFhNjZiOThkXG4gICAgICAgKi9cbiAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgIGNoYWluOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN1aUNoYWluXCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFN1cHBvcnRlZCBTdWkgY2hhaW5zLlxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgU3VpQ2hhaW46IFwibWFpbm5ldFwiIHwgXCJkZXZuZXRcIiB8IFwidGVzdG5ldFwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVxdWVzdCB0byBzaWduIGEgc2VyaWFsaXplZCBTVUkgdHJhbnNhY3Rpb24gKi9cbiAgICBTdWlTaWduUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcHJvZHVjZSBhIHZhbGlkIHNpZ25hdHVyZSwganVzdCBldmFsdWF0ZSBhdHRhY2hlZCBwb2xpY2llcy4gKi9cbiAgICAgIGRyeV9ydW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSwgZXhwbGFpbmluZ1xuICAgICAgICogdGhlIG91dGNvbWUgKGkuZS4sIHBlcm1pdHRlZCB2cy4gZGVuaWVkIHZzLiBNRkEgcmVxdWlyZWQpIG9mIHRoZSBzaWduIHJlcXVlc3QuXG4gICAgICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBNRkEgaXMgcmVxdWlyZWQsIGZhaWwgdGhlIHJlcXVlc3QgaW5zdGVhZCBvZiByZXR1cm5pbmcgMjAyIGFuZCBjcmVhdGluZ1xuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGZhaWxfb25fbWZhPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG1ldGFkYXRhLiBQYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gbWFrZSByZXZpZXdpbmdcbiAgICAgICAqIG9mIHBlbmRpbmcgTUZBIHJlcXVlc3RzIGFuZC9vciBoaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMgbW9yZSB0cmFuc3BhcmVudC4gSXQgY2FuIGFsc28gYmUgdXNlZCBlLmcuLCB0byBjYXJyeSBhZGRpdGlvbmFsIGRhdGEgdG8gV2ViSG9vayBwb2xpY2llcy5cbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiB1bmtub3duO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBCYXNlNjQtZW5jb2Rpbmcgb2YgYSBCQ1Mtc2VyaWFsaXplZCBTVUkgdHJhbnNhY3Rpb24uXG4gICAgICAgKlxuICAgICAgICogV2hlbiB1c2luZyB0aGUgU1VJIFR5cGVTY3JpcHQgU0RLLCB0aGVzZSBieXRlc1xuICAgICAgICogYXJlIHJldHVybmVkIGJ5IHRoZSBgVHJhbnNhY3Rpb24uYnVpbGQoKWAgbWV0aG9kLlxuICAgICAgICovXG4gICAgICB0eDogc3RyaW5nO1xuICAgIH07XG4gICAgVGFwcm9vdFNpZ25SZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERvIG5vdCBwcm9kdWNlIGEgdmFsaWQgc2lnbmF0dXJlLCBqdXN0IGV2YWx1YXRlIGF0dGFjaGVkIHBvbGljaWVzLiAqL1xuICAgICAgZHJ5X3J1bj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3BvbnNlLCBleHBsYWluaW5nXG4gICAgICAgKiB0aGUgb3V0Y29tZSAoaS5lLiwgcGVybWl0dGVkIHZzLiBkZW5pZWQgdnMuIE1GQSByZXF1aXJlZCkgb2YgdGhlIHNpZ24gcmVxdWVzdC5cbiAgICAgICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBleHBsYWluPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIE1GQSBpcyByZXF1aXJlZCwgZmFpbCB0aGUgcmVxdWVzdCBpbnN0ZWFkIG9mIHJldHVybmluZyAyMDIgYW5kIGNyZWF0aW5nXG4gICAgICAgKiBwZW5kaW5nIE1GQSByZXF1ZXN0LiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZmFpbF9vbl9tZmE/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbWV0YWRhdGEuIFBhc3NpbmcgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhcyBtZXRhZGF0YSBjYW4gYmUgdXNlZCB0byBtYWtlIHJldmlld2luZ1xuICAgICAgICogb2YgcGVuZGluZyBNRkEgcmVxdWVzdHMgYW5kL29yIGhpc3RvcmljYWwga2V5IHRyYW5zYWN0aW9ucyBtb3JlIHRyYW5zcGFyZW50LiBJdCBjYW4gYWxzbyBiZSB1c2VkIGUuZy4sIHRvIGNhcnJ5IGFkZGl0aW9uYWwgZGF0YSB0byBXZWJIb29rIHBvbGljaWVzLlxuICAgICAgICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgfSAmIHtcbiAgICAgIHNpZ19raW5kOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRhcHJvb3RTaWduYXR1cmVLaW5kXCJdO1xuICAgICAgdHg6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjVHhcIl07XG4gICAgfTtcbiAgICBUYXByb290U2lnbmF0dXJlS2luZDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBhbm5leCwgYXMgcGVyIEJJUDM0MSAqL1xuICAgICAgYW5uZXg/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVHJhbnNhY3Rpb24gaW5wdXQgaW5kZXhcbiAgICAgICAqIEBleGFtcGxlIDBcbiAgICAgICAqL1xuICAgICAgaW5wdXRfaW5kZXg6IG51bWJlcjtcbiAgICAgIGxlYWZfaGFzaF9jb2RlX3NlcGFyYXRvcj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjTGVhZkhhc2hDb2RlU2VwYXJhdG9yXCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHRoaXMgZmllbGQgaXMgbm90IHByZXNlbnQgb3IgbnVsbCwgbm8gdHdlYWsgaXMgYXBwbGllZC4gSWYgdGhlIGZpZWxkIGlzIGFuXG4gICAgICAgKiBlbXB0eSBzdHJpbmcsIHRoZSBrZXkgaXMgdHdlYWtlZCB3aXRoIGFuIHVuc3BlbmRhYmxlIHNjcmlwdCBwYXRoIHBlciBCSVAwMzQxLlxuICAgICAgICogT3RoZXJ3aXNlLCB0aGlzIGZpZWxkIG11c3QgY29udGFpbiBhIGJhc2UtNjQgc3RyaW5nIGVuY29kaW5nIDMyIGJ5dGVzIHRoYXRcbiAgICAgICAqIHJlcHJlc2VudCB0aGUgTWVya2xlIHJvb3Qgd2l0aCB3aGljaCB0byB0d2VhayB0aGUga2V5IGJlZm9yZSBzaWduaW5nLlxuICAgICAgICogQGV4YW1wbGUgRjQxSEF5MnE1R244bGFGMkN1TXNaYlJBUVRtRCs0T2IzVlVNWjdUQkdLND1cbiAgICAgICAqL1xuICAgICAgbWVya2xlX3Jvb3Q/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgcHJldm91dHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHJldk91dHB1dHNcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBIYXNoIHR5cGUgb2YgYW4gaW5wdXQncyBzaWduYXR1cmUsIGVuY29kZWQgaW4gdGhlIGxhc3QgYnl0ZSBvZiB0aGUgc2lnbmF0dXJlLlxuICAgICAgICogUG9zc2libGUgdmFsdWVzOlxuICAgICAgICogLSBTSUdIQVNIX0FMTFxuICAgICAgICogLSBTSUdIQVNIX0FMTHxTSUdIQVNIX0FOWU9ORUNBTlBBWVxuICAgICAgICogLSBTSUdIQVNIX0RFRkFVTFRcbiAgICAgICAqIC0gU0lHSEFTSF9OT05FXG4gICAgICAgKiAtIFNJR0hBU0hfTk9ORXxTSUdIQVNIX0FOWU9ORUNBTlBBWVxuICAgICAgICogLSBTSUdIQVNIX1NJTkdMRVxuICAgICAgICogLSBTSUdIQVNIX1NJTkdMRXxTSUdIQVNIX0FOWU9ORUNBTlBBWVxuICAgICAgICogQGV4YW1wbGUgU0lHSEFTSF9BTExcbiAgICAgICAqL1xuICAgICAgc2lnaGFzaF90eXBlOiBzdHJpbmc7XG4gICAgfTtcbiAgICBUZWxlZ3JhbUF1dGhSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB0ZWxlZ3JhbSBib3QgSUQgKi9cbiAgICAgIGJvdF9pZDogc3RyaW5nO1xuICAgICAgZW52aXJvbm1lbnQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVGVsZWdyYW1FbnZpcm9ubWVudFwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHRlbGVncmFtIHdlYmFwcCBkYXRhIChmb3VuZCBpbiB0aGUgYHRnV2ViQXBwRGF0YWAgcGFyYW1ldGVyIGVuY29kZWQgaW4gdGhlIGhhc2ggc2VjdGlvbiBvZiB0aGUgVVJMKSAqL1xuICAgICAgdGdfd2ViX2FwcF9kYXRhOiBzdHJpbmc7XG4gICAgfTtcbiAgICBUZWxlZ3JhbUF1dGhSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgT0lEQyB0b2tlbiBjb3JyZXNwb25kaW5nIHRvIHRoaXMgdGVsZWdyYW0gdXNlciAqL1xuICAgICAgaWRfdG9rZW46IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUZWxlZ3JhbSBoYXMgdHdvIGVudmlyb25tZW50czogcHJvZHVjdGlvbiBhbmQgdGVzdFxuICAgICAqIEVhY2ggb25lIGhhcyBhbiBhc3NvY2lhdGVkIHB1YmxpYyBrZXkgZm9yIHZlcmlmeWluZyBzaWduYXR1cmVzLFxuICAgICAqIGFuZCB3ZSBhc3NpZ24gZWFjaCBvbmUgYSB1bmlxdWUgT0lEQyBpc3N1ZXJcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIFRlbGVncmFtRW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiIHwgXCJ0ZXN0XCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVxdWVzdCBmb3IgdXNpbmcgdGhlIFRlbmRlcm1pbnQgc2lnbiBlbmRwb2ludC4gKi9cbiAgICBUZW5kZXJtaW50U2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYnl0ZXMgb2YgdGhlIHByb3RvYnVmLWVuY29kZWQgbWVzc2FnZSB0byBzaWduIGFzIGEgQkFTRTY0IHN0cmluZy4gKi9cbiAgICAgIG1lc3NhZ2VfYmFzZTY0OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBhIHRocm90dGxlIHdoaWNoIGxpbWl0cyB0aGUgbnVtYmVyIG9mIGVudGl0aWVzIHdpdGhpbiBhIGdpdmVuIHRpbWUgd2luZG93ICovXG4gICAgVGhyb3R0bGVDb25maWc6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBudW1iZXIgb2YgZW50aXRpZXMgYWxsb3dlZCB3aXRoaW4gdGhlIHdpbmRvd1xuICAgICAgICovXG4gICAgICB0aHJlc2hvbGQ6IG51bWJlcjtcbiAgICAgIHdpbmRvdzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNvbmRzXCJdO1xuICAgIH07XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgVGltZW91dEVycm9yQ29kZTogXCJQb2xpY3lFbmdpbmVUaW1lb3V0XCIgfCBcIldhc21Qb2xpY3lFeGVjdXRpb25UaW1lb3V0XCI7XG4gICAgVG9rZW5SZXF1ZXN0OiB7XG4gICAgICBncmFudF90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJlZnJlc2hHcmFudFR5cGVcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZWZyZXNoIHRva2VuIGlzc3VlZCB0byB0aGUgY2xpZW50LiAqL1xuICAgICAgcmVmcmVzaF90b2tlbjogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIE9BdXRoMiBzdGFuZGFyZCBUb2tlbiBSZXNwb25zZS5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTQuMi4yXG4gICAgICovXG4gICAgVG9rZW5SZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYWNjZXNzIHRva2VuIGlzc3VlZCBieSB0aGUgYXV0aG9yaXphdGlvbiBzZXJ2ZXIuICovXG4gICAgICBhY2Nlc3NfdG9rZW46IHN0cmluZztcbiAgICAgIGV4cGlyZXNfaW46IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kc1wiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gT0lEQyB0b2tlbiBpc3N1ZWQgYnkgQ3ViaXN0LCBjb250YWluaW5nIHVzZXIgaW5mb3JtYXRpb24gKi9cbiAgICAgIGlkX3Rva2VuPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlZnJlc2ggdG9rZW4gaXNzdWVkIGJ5IHRoZSBhdXRob3JpemF0aW9uIHNlcnZlci4gKi9cbiAgICAgIHJlZnJlc2hfdG9rZW4/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgdHlwZSBvZiB0aGUgdG9rZW4gaXNzdWVkLiBWYWx1ZSBpcyBjYXNlIGluc2Vuc2l0aXZlLiAqL1xuICAgICAgdG9rZW5fdHlwZTogc3RyaW5nO1xuICAgICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgICB9ICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIFRvdHBBcHByb3ZlUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUT1RQIHZlcmlmaWNhdGlvbiBjb2RlICovXG4gICAgICBjb2RlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFNlbnQgZnJvbSB0aGUgY2xpZW50IHRvIHRoZSBzZXJ2ZXIgdG8gYW5zd2VyIGEgVE9UUCBjaGFsbGVuZ2UgKi9cbiAgICBUb3RwQ2hhbGxlbmdlQW5zd2VyOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBjdXJyZW50IFRPVFAgY29kZSAqL1xuICAgICAgY29kZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIGNoYWxsZW5nZSB0aGF0IHdhcyByZXR1cm5lZCBmcm9tIHRoZSBQT1NUIGVuZHBvaW50ICovXG4gICAgICB0b3RwX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBUb3RwSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBUT1RQIGNoYWxsZW5nZS5cbiAgICAgICAqIEBleGFtcGxlIFRvdHBDaGFsbGVuZ2UjNzg5MmViYmEtNTYzZS00ODViLWJiN2QtZTI2MjY3MzYzMjg2XG4gICAgICAgKi9cbiAgICAgIHRvdHBfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFN0YW5kYXJkIFRPVFAgdXJsIHdoaWNoIGluY2x1ZGVzIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvIGluaXRpYWxpemUgVE9UUC5cbiAgICAgICAqIEBleGFtcGxlIG90cGF1dGg6Ly90b3RwL0N1YmlzdDphbGljZS0lNDBleGFtcGxlLmNvbT9zZWNyZXQ9REFIRjdLQ09UUVdTT01LNFhGRU1OSFhPNEo0MzNPRDcmaXNzdWVyPUN1YmlzdFxuICAgICAgICovXG4gICAgICB0b3RwX3VybDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXN1bHQgb2YgcmVnaXN0ZXJpbmcgKHJlc2V0dGluZykgVE9UUCAqL1xuICAgIFRvdHBSZWdpc3RlclJlc3BvbnNlOiB7XG4gICAgICBtZmE/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN0YXR1c09rXCJdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IHRvIHJlc2V0IFRPVFAuICovXG4gICAgVG90cFJlc2V0UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29kZSBhbnN3ZXJpbmcgdGhpcyBjaGFsbGVuZ2UgYWRkaXRpb25hbGx5IGNvdW50cyBhcyBhbiBhcHByb3Zpbmcgdm90ZSBvblxuICAgICAgICogcGVuZGluZyBNRkEgcmVxdWVzdCBgbWZhX2lkYC5cbiAgICAgICAqXG4gICAgICAgKiBUaGlzIGV4aXN0cyBzbyB0aGF0IGEgdXNlciB3aG8gbXVzdCByZWdpc3RlciB0aGVpciBmaXJzdCBzZWNvbmQgZmFjdG9yIGluIG9yZGVyIHRvIGNvbXBsZXRlXG4gICAgICAgKiBhbiBvcGVyYXRpb24gKG1vc3QgY29tbW9ubHkgbG9nZ2luZyBpbikgZG9lcyBub3QgaGF2ZSB0byBlbnRlciB0d28gVE9UUCBjb2RlcyBiYWNrIHRvIGJhY2s6XG4gICAgICAgKiBvbmUgdG8gY29uZmlybSBlbnJvbGxtZW50IGFuZCBhbm90aGVyIHRvIGltbWVkaWF0ZWx5IGFwcHJvdmUgdGhlIHBlbmRpbmcgcmVxdWVzdC4gQW5zd2VyaW5nXG4gICAgICAgKiB0aGUgY2hhbGxlbmdlIGFscmVhZHkgcHJvdmVzIHBvc3Nlc3Npb24gb2YgdGhlIG5ldyBzZWNyZXQuXG4gICAgICAgKlxuICAgICAgICogUmVxdWlyZXMgdGhlICdtYW5hZ2U6bWZhOnZvdGU6dG90cCcgc2NvcGUgaW4gYWRkaXRpb24gdG8gJ21hbmFnZTptZmE6cmVnaXN0ZXI6dG90cCcuXG4gICAgICAgKi9cbiAgICAgIGFwcHJvdmVfbWZhPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5hbWUgb2YgdGhlIGlzc3VlcjsgZGVmYXVsdHMgdG8gXCJDdWJpc3RcIi4gKi9cbiAgICAgIGlzc3Vlcj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICBUcmFuc2FjdGlvbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUeXBlZFRyYW5zYWN0aW9uXCJdO1xuICAgIFRyYW5zYWN0aW9uQW5kU3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlR5cGVkVHJhbnNhY3Rpb25cIl0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBoYXNoIG9mIHRoZSB0cmFuc2FjdGlvbiB0aGF0IHdhcyBzaWduZWQgKi9cbiAgICAgIGhhc2g/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHJlcXVlc3QgcmVjb3JkLiAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5vbmNlIChjb21wdXRlZCByaWdodCBiZWZvcmUgc2lnbmluZykgKi9cbiAgICAgIG5vbmNlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHNpZ25hdHVyZSAqL1xuICAgICAgc2lnbmVkUmF3VHJhbnNhY3Rpb24/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1taVN0YXR1c1wiXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQ2hhaW4tc3BlY2lmaWMgdHJhbnNhY3Rpb24gZGV0YWlscy4gKi9cbiAgICBUcmFuc2FjdGlvbkRldGFpbHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXZtVHJhbnNhY3Rpb25EZXRhaWxzXCJdICYge1xuICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICBjaGFpbjogXCJFdm1cIjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYW4gZXhpc3RpbmcgdHJhbnNhY3Rpb24gY3JlYXRlZCBieSB0aGUgUlBDIEFQSS4gKi9cbiAgICBUcmFuc2FjdGlvbkluZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVHJhbnNhY3Rpb25cIl0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB0cmFuc2FjdGlvbiBpZC4gKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU3VwcG9ydGVkIHF1ZXJpZXNcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIFRzUXVlcnlOYW1lOlxuICAgICAgfCBcIkFjdGl2ZUtleXNcIlxuICAgICAgfCBcIkFjdGl2ZVVzZXJzXCJcbiAgICAgIHwgXCJVbmlxdWVTaWduSW5zXCJcbiAgICAgIHwgXCJVc2VyQ291bnRcIlxuICAgICAgfCBcIkxhdGVzdFVzZXJDb3VudFwiXG4gICAgICB8IFwiS2V5Q291bnRcIlxuICAgICAgfCBcIkxhdGVzdEtleUNvdW50XCJcbiAgICAgIHwgXCJCaWxsaW5nRXZlbnRzXCJcbiAgICAgIHwgXCJPaWRjTG9naW5zXCJcbiAgICAgIHwgXCJTaWduRXZlbnRzXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCBhIHNpZ25lZCB0cmFuc2FjdGlvbiAqL1xuICAgIFR4U2lnbmF0dXJlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEtlY2NhayAyNTYgSGFzaCBvZiB0aGUgUkxQIGVuY29kaW5nIG9mIHRoZSB0cmFuc2FjdGlvbiAqL1xuICAgICAgaGFzaDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbm9uY2UgKGVpdGhlciBwcm92aWRlZCBleHBsaWNpdGx5IG9yIGNvbXB1dGVkIHJpZ2h0IGJlZm9yZSBzaWduaW5nKSAqL1xuICAgICAgbm9uY2U6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzaWduZWQgcmF3IHRyYW5zYWN0aW9uXG4gICAgICAgKiBAZXhhbXBsZSAweGRiMzNiMDNjMmI4MTAzZTJhOGMzNjFkM2I0ZjVhYmM2N2Y5NmM2OTIxZGY2ZTE1MWQ1MzA4N2E1ZTEyYjFlNGZcbiAgICAgICAqL1xuICAgICAgc2lnbmVkX3R4OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgc3RydWN0IHJlcHJlc2VudGluZyB0aGUgcGVuZGluZyBtZXNzYWdlIHN0YXR1cyAqL1xuICAgIFR4U3RhdHVzOlxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgc3RhdHVzOiBcIlBlbmRpbmdcIjtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCBhIHNpZ25lZCB0cmFuc2FjdGlvbiAqL1xuICAgICAgICAgIHNpZzoge1xuICAgICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBLZWNjYWsgMjU2IEhhc2ggb2YgdGhlIFJMUCBlbmNvZGluZyBvZiB0aGUgdHJhbnNhY3Rpb24gKi9cbiAgICAgICAgICAgIGhhc2g6IHN0cmluZztcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5vbmNlIChlaXRoZXIgcHJvdmlkZWQgZXhwbGljaXRseSBvciBjb21wdXRlZCByaWdodCBiZWZvcmUgc2lnbmluZykgKi9cbiAgICAgICAgICAgIG5vbmNlOiBzdHJpbmc7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc2lnbmVkIHJhdyB0cmFuc2FjdGlvblxuICAgICAgICAgICAgICogQGV4YW1wbGUgMHhkYjMzYjAzYzJiODEwM2UyYThjMzYxZDNiNGY1YWJjNjdmOTZjNjkyMWRmNmUxNTFkNTMwODdhNWUxMmIxZTRmXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHNpZ25lZF90eDogc3RyaW5nO1xuICAgICAgICAgIH07XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgc3RhdHVzOiBcIlNpZ25lZFwiO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICByZWFzb246IHN0cmluZztcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBzdGF0dXM6IFwiUmVqZWN0ZWRcIjtcbiAgICAgICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyB0aGUgW0VJUC03MTJdKGh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtNzEyKSB0eXBlZCBkYXRhIG9iamVjdC5cbiAgICAgKlxuICAgICAqIFR5cGVkIGRhdGEgaXMgYSBKU09OIG9iamVjdCBjb250YWluaW5nIHR5cGUgaW5mb3JtYXRpb24sIGRvbWFpbiBzZXBhcmF0b3IgcGFyYW1ldGVycyBhbmQgdGhlXG4gICAgICogbWVzc2FnZSBvYmplY3QuXG4gICAgICovXG4gICAgVHlwZWREYXRhOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRzIHRoZSBbRUlQLTcxMl0oaHR0cHM6Ly9laXBzLmV0aGVyZXVtLm9yZy9FSVBTL2VpcC03MTIpIEVJUDcxMkRvbWFpbiBvYmplY3QuXG4gICAgICAgKlxuICAgICAgICogRUlQNzEyRG9tYWluIGlzIGEgSlNPTiBvYmplY3Qgd2l0aCBvbmUgb3IgbW9yZSBvZiB0aGUgYmVsb3cgZmllbGRzLiBQcm90b2NvbCBkZXNpZ25lcnMgb25seSBuZWVkIHRvIGluY2x1ZGUgdGhlIGZpZWxkcyB0aGF0IG1ha2Ugc2Vuc2UgZm9yIHRoZWlyIHNpZ25pbmcgZG9tYWluLlxuICAgICAgICovXG4gICAgICBkb21haW46IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgRUlQLTE1NSBjaGFpbiBpZC4gVGhlIHVzZXItYWdlbnQgc2hvdWxkIHJlZnVzZSBzaWduaW5nIGlmIGl0IGRvZXMgbm90IG1hdGNoIHRoZVxuICAgICAgICAgKiBjdXJyZW50bHkgYWN0aXZlIGNoYWluLlxuICAgICAgICAgKiBAZXhhbXBsZSAweDFcbiAgICAgICAgICovXG4gICAgICAgIGNoYWluSWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB1c2VyIHJlYWRhYmxlIG5hbWUgb2Ygc2lnbmluZyBkb21haW4sIGkuZS4sIHRoZSBuYW1lIG9mIHRoZSBEQXBwIG9yIHRoZSBwcm90b2NvbC5cbiAgICAgICAgICogQGV4YW1wbGUgRXRoZXIgTWFpbFxuICAgICAgICAgKi9cbiAgICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBkaXNhbWJpZ3VhdGluZyBzYWx0IGZvciB0aGUgcHJvdG9jb2wuIFRoaXMgY2FuIGJlIHVzZWQgYXMgYSBkb21haW4gc2VwYXJhdG9yIG9mIGxhc3QgcmVzb3J0LiBDYW4gYmUgZWl0aGVyIGEgaGV4LWVuY29kZWQgc3RyaW5nIG9yIGJ5dGUgYXJyYXkgKi9cbiAgICAgICAgc2FsdD86IHN0cmluZyB8IG51bWJlcltdO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBhZGRyZXNzIG9mIHRoZSBjb250cmFjdCB0aGF0IHdpbGwgdmVyaWZ5IHRoZSBzaWduYXR1cmUuXG4gICAgICAgICAqIEBleGFtcGxlIDB4Q2NDQ2NjY2NDQ0NDY0NDQ0NDQ2NDY0NjY0NjQ0NDY0NjY2NjY2NjQ1xuICAgICAgICAgKi9cbiAgICAgICAgdmVyaWZ5aW5nQ29udHJhY3Q/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBjdXJyZW50IG1ham9yIHZlcnNpb24gb2YgdGhlIHNpZ25pbmcgZG9tYWluLiBTaWduYXR1cmVzIGZyb20gZGlmZmVyZW50IHZlcnNpb25zIGFyZSBub3RcbiAgICAgICAgICogY29tcGF0aWJsZS5cbiAgICAgICAgICogQGV4YW1wbGUgMVxuICAgICAgICAgKi9cbiAgICAgICAgdmVyc2lvbj86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbWVzc2FnZSB0byBiZSBzaWduZWQuICovXG4gICAgICBtZXNzYWdlOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gICAgICB9O1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZS4gKi9cbiAgICAgIHByaW1hcnlUeXBlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBjdXN0b20gdHlwZXMgdXNlZCBieSB0aGlzIG1lc3NhZ2UuICovXG4gICAgICB0eXBlczoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIG5hbWUgKi9cbiAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIHR5cGUgKi9cbiAgICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIH1bXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVJUC0yNzE4IHR5cGVkIHRyYW5zYWN0aW9uLCBpbmNsdWRpbmcgRUlQLTE1NTkgdHJhbnNhY3Rpb25zIChgeyBcInR5cGVcIjogXCIweDAyXCIgLi4uIH1gKSwgYW5kIGxlZ2FjeSB0cmFuc2FjdGlvbnMgKGB7IFwidHlwZVwiOiBcIjB4MDBcIiAuLi4gfWApLiBBbGwgdmFsdWVzIGluIHRoZSB0cmFuc2FjdGlvbiBhcmUgZXhwZWN0ZWQgdG8gYmUgKDB4LXByZWZpeGVkIG9yIG5vdCkgaGV4IHN0cmluZ3Mgb3IgYnl0ZSBhcnJheXMuICovXG4gICAgVHlwZWRUcmFuc2FjdGlvbjogT25lT2Y8XG4gICAgICBbXG4gICAgICAgIHtcbiAgICAgICAgICAvKiogQGV4YW1wbGUgMHgwMSAqL1xuICAgICAgICAgIGRhdGE/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4NGNmMThhOGE2YTFmZmU3N2ZlYzYwMGRhMmI5MGVjMzViYTA1MGIwNyAqL1xuICAgICAgICAgIGZyb20/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4MSAqL1xuICAgICAgICAgIGdhcz86IHN0cmluZztcbiAgICAgICAgICAvKiogQGV4YW1wbGUgMHgxICovXG4gICAgICAgICAgZ2FzUHJpY2U/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4MSAqL1xuICAgICAgICAgIG5vbmNlPzogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZXhhbXBsZSAweDA2OGJkNTI5NDI2ZjRmMjdlMjQ4YmFmMzZlNDU1OGU0NDA3MzhmYmIgKi9cbiAgICAgICAgICB0bz86IHN0cmluZztcbiAgICAgICAgICAvKiogQGV4YW1wbGUgMHgwMCAqL1xuICAgICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgICAvKiogQGV4YW1wbGUgMHgxICovXG4gICAgICAgICAgdmFsdWU/OiBzdHJpbmc7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAgICogICB7XG4gICAgICAgICAgICogICAgIFwiYWRkcmVzc1wiOiBcIjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiLFxuICAgICAgICAgICAqICAgICBcInN0b3JhZ2VLZXlzXCI6IFtcbiAgICAgICAgICAgKiAgICAgICBcIjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiXG4gICAgICAgICAgICogICAgIF1cbiAgICAgICAgICAgKiAgIH1cbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgYWNjZXNzTGlzdD86IHtcbiAgICAgICAgICAgIC8qKiBAZXhhbXBsZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgKi9cbiAgICAgICAgICAgIGFkZHJlc3M/OiBzdHJpbmc7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgICAqICAgXCIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIlxuICAgICAgICAgICAgICogXVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBzdG9yYWdlS2V5cz86IHN0cmluZ1tdO1xuICAgICAgICAgIH1bXTtcbiAgICAgICAgICAvKiogQGV4YW1wbGUgMHgwMSAqL1xuICAgICAgICAgIGRhdGE/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4NGNmMThhOGE3YTFmZmU3N2ZlYzYwMGRhMmI5MGVjMzViYTA1MGIwNyAqL1xuICAgICAgICAgIGZyb20/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4NjFhODAgKi9cbiAgICAgICAgICBnYXM/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4OTUwMmY5MDAgKi9cbiAgICAgICAgICBtYXhGZWVQZXJHYXM/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4OTUwMmY5MDAgKi9cbiAgICAgICAgICBtYXhQcmlvcml0eUZlZVBlckdhcz86IHN0cmluZztcbiAgICAgICAgICAvKiogQGV4YW1wbGUgMHhiICovXG4gICAgICAgICAgbm9uY2U/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIDB4MDY4YmQ1Mzk0MjZmNGYyN2UyNDhiYWYzNmU0NTU4ZTQ0MDczOGZiYiAqL1xuICAgICAgICAgIHRvPzogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZXhhbXBsZSAweDAyICovXG4gICAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZXhhbXBsZSAweDEgKi9cbiAgICAgICAgICB2YWx1ZT86IHN0cmluZztcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICA+O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIFVuYXV0aG9yaXplZEVycm9yQ29kZTpcbiAgICAgIHwgXCJBdXRob3JpemF0aW9uSGVhZGVyTWlzc2luZ1wiXG4gICAgICB8IFwiRW5kcG9pbnRSZXF1aXJlc1VzZXJTZXNzaW9uXCJcbiAgICAgIHwgXCJSZWZyZXNoVG9rZW5NaXNzaW5nXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPbmUgdHJhbnNmZXIgZW50cnkgaW4gW2BVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlSZXNwb25zZWBdLiAqL1xuICAgIFVuaXZlcnNhbFRyYW5zZmVySGlzdG9yeUVudHJ5OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFtb3VudCB0cmFuc2ZlcnJlZCwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGFtb3VudDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBc3NldCBzeW1ib2wuICovXG4gICAgICBhc3NldDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDbGllbnQtc3VwcGxpZWQgdHJhbnNmZXIgaWQsIGlmIG9uZSB3YXMgc2V0IG9uIHRoZSBvcmlnaW5hbCB0cmFuc2Zlci4gKi9cbiAgICAgIGNsaWVudFRyYW5JZD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaW1lIG9mIHRoZSB0cmFuc2ZlciAobXMgc2luY2UgZXBvY2gpLlxuICAgICAgICovXG4gICAgICBjcmVhdGVUaW1lU3RhbXA6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFdhbGxldCB0eXBlIGRlYml0ZWQgb24gdGhlIHNvdXJjZSBzaWRlLiBMZWZ0IGFzIGBTdHJpbmdgIGZvciBmb3J3YXJkXG4gICAgICAgKiBjb21wYXRpYmlsaXR5LlxuICAgICAgICovXG4gICAgICBmcm9tQWNjb3VudFR5cGU6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU291cmNlIHN1Yi1hY2NvdW50IGVtYWlsOyBhYnNlbnQgd2hlbiB0aGUgc291cmNlIGlzIHRoZSBtYXN0ZXIuICovXG4gICAgICBmcm9tRW1haWw/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUcmFuc2ZlciBzdGF0dXMgKGUuZy4gYFwiU1VDQ0VTU1wiYCkuICovXG4gICAgICBzdGF0dXM6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2FsbGV0IHR5cGUgY3JlZGl0ZWQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUuICovXG4gICAgICB0b0FjY291bnRUeXBlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERlc3RpbmF0aW9uIHN1Yi1hY2NvdW50IGVtYWlsOyBhYnNlbnQgd2hlbiB0aGUgZGVzdGluYXRpb24gaXMgbWFzdGVyLiAqL1xuICAgICAgdG9FbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUcmFuc2ZlciBpZC4gTWF0Y2hlcyB0aGUgYHRyYW5JZGAgcmV0dXJuZWQgYnkgdGhlIG9yaWdpbmFsXG4gICAgICAgKiBbYFVuaXZlcnNhbFRyYW5zZmVyUmVzcG9uc2VgXS5cbiAgICAgICAqL1xuICAgICAgdHJhbklkOiBudW1iZXI7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYEdFVCAvc2FwaS92MS9zdWItYWNjb3VudC91bml2ZXJzYWxUcmFuc2ZlcmAuXG4gICAgICpcbiAgICAgKiBMaXN0cyB1bml2ZXJzYWwgdHJhbnNmZXJzIGluaXRpYXRlZCBieSB0aGUgbWFzdGVyIGFjY291bnQuIEFsbCBmaWx0ZXJzXG4gICAgICogYXJlIG9wdGlvbmFsOyBpZiBgc3RhcnRfdGltZWAvYGVuZF90aW1lYCBhcmUgb21pdHRlZCwgQmluYW5jZSByZXR1cm5zIHRoZVxuICAgICAqIG1vc3QgcmVjZW50IDMwIGRheXMuIEJpbmFuY2UgZG9lcyBub3Qgc3VwcG9ydCBmaWx0ZXJpbmcgYnkgYHRyYW5faWRgXG4gICAgICogZGlyZWN0bHkg4oCUIHVzZSBgY2xpZW50X3RyYW5faWRgIGlmIHlvdSBzZXQgb25lIHdoZW4gaW5pdGlhdGluZyB0aGVcbiAgICAgKiB0cmFuc2Zlciwgb3IgcGFnZSB0aHJvdWdoIHRoZSByZXN1bHQgYW5kIG1hdGNoIHRoZSBgdHJhbklkYCBjbGllbnQtc2lkZS5cbiAgICAgKi9cbiAgICBVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZpbHRlciBieSBjbGllbnQtc3VwcGxpZWQgdHJhbnNmZXIgaWQuICovXG4gICAgICBjbGllbnRUcmFuSWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2luZG93IGVuZCAobXMgc2luY2UgZXBvY2gpLlxuICAgICAgICovXG4gICAgICBlbmRUaW1lPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRmlsdGVyIHRvIHRyYW5zZmVycyBvcmlnaW5hdGluZyBmcm9tIHRoaXMgc3ViLWFjY291bnQgZW1haWwuICovXG4gICAgICBmcm9tRW1haWw/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUGFnZSBzaXplIChCaW5hbmNlIGRlZmF1bHQ6IDUwMCwgbWF4OiA1MDApLlxuICAgICAgICovXG4gICAgICBsaW1pdD86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiAxLWJhc2VkIHBhZ2UgbnVtYmVyIChCaW5hbmNlIGRlZmF1bHQ6IDEpLlxuICAgICAgICovXG4gICAgICBwYWdlPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFdpbmRvdyBzdGFydCAobXMgc2luY2UgZXBvY2gpLlxuICAgICAgICovXG4gICAgICBzdGFydFRpbWU/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgdG8gdHJhbnNmZXJzIGRlc3RpbmVkIGZvciB0aGlzIHN1Yi1hY2NvdW50IGVtYWlsLiAqL1xuICAgICAgdG9FbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19iaW5hbmNlVW5pdmVyc2FsVHJhbnNmZXJIaXN0b3J5YC4gKi9cbiAgICBVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUcmFuc2ZlcnMgaW4gdGhlIGN1cnJlbnQgcGFnZS4gKi9cbiAgICAgIHJlc3VsdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlFbnRyeVwiXVtdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVG90YWwgbnVtYmVyIG9mIHRyYW5zZmVycyBtYXRjaGluZyB0aGUgZmlsdGVycyBhY3Jvc3MgYWxsIHBhZ2VzLlxuICAgICAgICovXG4gICAgICB0b3RhbENvdW50OiBudW1iZXI7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYFBPU1QgL3NhcGkvdjEvc3ViLWFjY291bnQvdW5pdmVyc2FsVHJhbnNmZXJgLlxuICAgICAqXG4gICAgICogVHJhbnNmZXJzIGFuIGFzc2V0IGJldHdlZW4gYW55IHR3byBhY2NvdW50cyAobWFzdGVyIHRvL2Zyb20gc3ViLCBvciBzdWJcbiAgICAgKiB0by9mcm9tIHN1YikgYW5kIGJldHdlZW4gYW55IHR3byB3YWxsZXQgdHlwZXMgKHNwb3QsIGZ1dHVyZXMsIG1hcmdpbiwgZXRjKS5cbiAgICAgKiBUaGUgc2lnbmluZyBjcmVkZW50aWFsICh0aGUgQVBJIGtleSArIEVkMjU1MTkga2V5IHBhaXIpIG11c3QgYmVsb25nIHRvIHRoZVxuICAgICAqIG1hc3RlciBhY2NvdW50LlxuICAgICAqL1xuICAgIFVuaXZlcnNhbFRyYW5zZmVyUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYW1vdW50IGJlaW5nIHRyYW5zZmVycmVkLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgYW1vdW50OiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBhc3NldCBzeW1ib2wgYmVpbmcgdHJhbnNmZXJyZWQgKGUuZy4gYFwiVVNEVFwiYCkuICovXG4gICAgICBhc3NldDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgY2xpZW50LXN1cHBsaWVkIHRyYW5zZmVyIGlkLiBJZiBzZXQsIEJpbmFuY2UgZWNob2VzIGl0IGJhY2tcbiAgICAgICAqIGFzIGBjbGllbnRfdHJhbl9pZGAgb24gdGhlIGBVbml2ZXJzYWxUcmFuc2ZlclJlc3BvbnNlYCBhbmQgbGV0cyBpdCBiZVxuICAgICAgICogdXNlZCBhcyBhIGZpbHRlciBvblxuICAgICAgICogW2BVbml2ZXJzYWxUcmFuc2Zlckhpc3RvcnlSZXF1ZXN0OjpjbGllbnRfdHJhbl9pZGBdLlxuICAgICAgICovXG4gICAgICBjbGllbnRUcmFuSWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgZnJvbUFjY291bnRUeXBlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NvdW50VHlwZVwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU291cmNlIHN1Yi1hY2NvdW50IGVtYWlsLiBJZiBgTm9uZWAsIHRoZSBzb3VyY2UgaXMgdGhlIG1hc3RlciBhY2NvdW50LiAqL1xuICAgICAgZnJvbUVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIHRvQWNjb3VudFR5cGU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY291bnRUeXBlXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiBzdWItYWNjb3VudCBlbWFpbC4gSWYgYE5vbmVgLCB0aGUgZGVzdGluYXRpb24gaXMgdGhlIG1hc3RlciBhY2NvdW50LiAqL1xuICAgICAgdG9FbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19iaW5hbmNlVW5pdmVyc2FsVHJhbnNmZXJgLiAqL1xuICAgIFVuaXZlcnNhbFRyYW5zZmVyUmVzcG9uc2U6IHtcbiAgICAgIGNsaWVudFRyYW5JZD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogRm9ybWF0OiBpbnQ2NCAqL1xuICAgICAgdHJhbklkOiBudW1iZXI7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbnMgdGhhdCBzaG91bGQgYmUgc2V0IG9ubHkgZm9yIGxvY2FsIGRldm5ldCB0ZXN0aW5nLiAqL1xuICAgIFVuc2FmZUNvbmY6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBoZXgtZW5jb2RlZCBhZGRyZXNzIG9mIHRoZSBkZXBvc2l0IGNvbnRyYWN0LiBJZiBvbWl0dGVkLCBpbmZlcnJlZCBmcm9tIGBjaGFpbl9pZGBcbiAgICAgICAqIEBleGFtcGxlIDB4ZmY1MGVkM2QwZWMwM2FjMDFkNGM3OWFhZDc0OTI4YmZmNDhhN2IyYlxuICAgICAgICovXG4gICAgICBkZXBvc2l0X2NvbnRyYWN0X2FkZHI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGhleC1lbmNvZGVkIDQtYnl0ZSBmb3JrIHZlcnNpb25cbiAgICAgICAqIEBleGFtcGxlIDB4MDAwMDEwMjBcbiAgICAgICAqL1xuICAgICAgZ2VuZXNpc19mb3JrX3ZlcnNpb24/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgVW5zdGFrZVJlcXVlc3Q6IHtcbiAgICAgIGVwb2NoPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaFwiXSB8IG51bGw7XG4gICAgICBmb3JrOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZvcmtcIl07XG4gICAgICBnZW5lc2lzX2RhdGE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiR2VuZXNpc0RhdGFcIl07XG4gICAgICBuZXR3b3JrOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk5ldHdvcmtcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0b3IgaW5kZXggKGB1aW50NjRgKSB0byBleGl0LiBZb3UgY2FuIGdldCB0aGUgdmFsaWRhdG9yIGluZGV4IGZyb20gdGhlIEJlYWNvbiBub2RlJ3NcbiAgICAgICAqIGAvZXRoL3YxL2JlYWNvbi9zdGF0ZXMvaGVhZC92YWxpZGF0b3JzL3twdWJrZXl9YCBlbmQtcG9pbnQuIFRoaXMgZW5kIHBvaW50IHJldHVybnMgYW5cbiAgICAgICAqIG9iamVjdCB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSB2YWxpZGF0b3IgKHdob3NlIHB1YmxpYyBrZXkgaXMgYHtwdWJrZXl9YCksXG4gICAgICAgKiBpbmNsdWRpbmcgdGhlIHZhbGlkYXRvciBpbmRleC4gVGhlIHNjaGVtYSBvZiB0aGlzIGVuZC1wb2ludCBpcyBkZWZpbmVkXG4gICAgICAgKiBbaGVyZV0oaHR0cHM6Ly9ldGhlcmV1bS5naXRodWIuaW8vYmVhY29uLUFQSXMvIy9CZWFjb24vZ2V0U3RhdGVWYWxpZGF0b3IpLlxuICAgICAgICogQGV4YW1wbGUgMzEzMzdcbiAgICAgICAqL1xuICAgICAgdmFsaWRhdG9yX2luZGV4OiBzdHJpbmc7XG4gICAgfSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRG8gbm90IHByb2R1Y2UgYSB2YWxpZCBzaWduYXR1cmUsIGp1c3QgZXZhbHVhdGUgYXR0YWNoZWQgcG9saWNpZXMuICovXG4gICAgICBkcnlfcnVuPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UsIGV4cGxhaW5pbmdcbiAgICAgICAqIHRoZSBvdXRjb21lIChpLmUuLCBwZXJtaXR0ZWQgdnMuIGRlbmllZCB2cy4gTUZBIHJlcXVpcmVkKSBvZiB0aGUgc2lnbiByZXF1ZXN0LlxuICAgICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGV4cGxhaW4/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgTUZBIGlzIHJlcXVpcmVkLCBmYWlsIHRoZSByZXF1ZXN0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDIwMiBhbmQgY3JlYXRpbmdcbiAgICAgICAqIHBlbmRpbmcgTUZBIHJlcXVlc3QuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgICAgICovXG4gICAgICBmYWlsX29uX21mYT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gUGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIG1ha2UgcmV2aWV3aW5nXG4gICAgICAgKiBvZiBwZW5kaW5nIE1GQSByZXF1ZXN0cyBhbmQvb3IgaGlzdG9yaWNhbCBrZXkgdHJhbnNhY3Rpb25zIG1vcmUgdHJhbnNwYXJlbnQuIEl0IGNhbiBhbHNvIGJlIHVzZWQgZS5nLiwgdG8gY2FycnkgYWRkaXRpb25hbCBkYXRhIHRvIFdlYkhvb2sgcG9saWNpZXMuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICB9ICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSByZXNwb25zZSB0byBzaWduIGFuIGV0aDIgdW5zdGFrZSByZXF1ZXN0LiAqL1xuICAgIFVuc3Rha2VSZXNwb25zZToge1xuICAgICAgbWVzc2FnZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJWb2x1bnRhcnlFeGl0XCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQkxTIHNpZ25hdHVyZS5cbiAgICAgICAqIEBleGFtcGxlIDB4OTEwYzdjZDUzN2VkOTFjYzhjNGE4MmYzY2JkODMyZTliZThjMjRhMjJlOWM4NmRmNDc5ZjdjZTQyMDI1ZWE2YTA5NjE5YjQxOGI2NjZhMDYwZTI2MGQyYWFlMzFiOGU1MGU5ZDA1Y2EzNDQyYzdlZWQzYjUwN2U1MjA3ZTE0Njc0Mjc1ZjY4YzJiYTg0YzRiZjZiOGRkMzY0YTMwNGFjYWM4Y2ZhYjM2ODFlMjUxNGI0NDAwZjkyNDJiYzYxMTY0XG4gICAgICAgKi9cbiAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgIH0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICB9ICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGluZm9ybWF0aW9uIG5lZWRlZCB0byB1cGRhdGUgYSBidWNrZXQuICovXG4gICAgVXBkYXRlQnVja2V0UmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBY2Nlc3MtY29udHJvbCBlbnRyaWVzIGRlZmluaW5nIGhvdyB0aGUgYnVja2V0IGNhbiBiZSBhY2Nlc3NlZC4gKi9cbiAgICAgIGFjbD86IHVua25vd247XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0aW5nIG9ubHkgc3VjY2VlZHMgaWYgdGhlIGN1cnJlbnQgdmVyc2lvbiBtYXRjaGVzIHRoaXMgdmFsdWUuXG4gICAgICAgKi9cbiAgICAgIGV4cGVjdGVkX3ZlcnNpb24/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBtZXRhZGF0YS4gKi9cbiAgICAgIG1ldGFkYXRhPzogdW5rbm93bjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSB0aGUgb3duZXIgb2YgdGhlIGJ1Y2tldFxuICAgICAgICogQGV4YW1wbGUgVXNlciMwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcbiAgICAgICAqL1xuICAgICAgb3duZXI/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaW5mb3JtYXRpb24gbmVlZGVkIHRvIHVwZGF0ZSBhIENvbnRhY3QuICovXG4gICAgVXBkYXRlQ29udGFjdFJlcXVlc3Q6IHtcbiAgICAgIGFkZHJlc3Nlcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWRkcmVzc01hcFwiXSB8IG51bGw7XG4gICAgICBlZGl0X3BvbGljeT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRWRpdFBvbGljeVwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIG5ldyBzZXQgb2YgbGFiZWxzIGZvciB0aGUgY29udGFjdC5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJjdWJpc3Q6ZXJjMjBfdG9rZW5cIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBsYWJlbHM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbnRhY3RMYWJlbFwiXVtdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBuZXcgdmFsdWUgZm9yIHRoZSBvcHRpb25hbCB1c2VyLWRlZmluZWQgbWV0YWRhdGEgYWJvdXQgdGhlIGNvbnRhY3QuICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIG5ldyBuYW1lIGZvciB0aGUgY29udGFjdC4gTXVzdCBiZSBhIHVuaXF1ZSBuYW1lIGFtb25nIGNvbnRhY3RzIGluIHRoZVxuICAgICAgICogb3JnLiBOYW1lIG11c3QgY29uc2lzdCBvZiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgc3BhY2VzLCBgLmAgYW5kIGAtYCxcbiAgICAgICAqIGFuZCBjYW5ub3QgYmUgbG9uZ2VyIHRoYW4gNTAgY2hhcmFjdGVycy5cbiAgICAgICAqIEBleGFtcGxlIFNhdG9zaGkgTmFrYW1vdG9cbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICBvd25lcj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl0gfCBudWxsO1xuICAgIH07XG4gICAgVXBkYXRlS2V5UmVxdWVzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDcmVhdGVBbmRVcGRhdGVLZXlQcm9wZXJ0aWVzXCJdICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGVzIHRoZSBrZXkncyBgZW5hYmxlZGAgcHJvcGVydHkgdG8gdGhpcyB2YWx1ZS5cbiAgICAgICAqIE9uY2UgZGlzYWJsZWQsIGEga2V5IGNhbm5vdCBiZSB1c2VkIGZvciBzaWduaW5nLlxuICAgICAgICovXG4gICAgICBlbmFibGVkPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHBhdGNoIHRoZSBrZXkncyBzdHJ1Y3R1cmVkIFtgS2V5UHJvcGVydGllc2BdLiBUaGUgcGF0Y2gncyB2YXJpYW50IG11c3RcbiAgICAgICAqIG1hdGNoIHRoZSBrZXkncyBbYEtleVR5cGVgXSAoZS5nLiBgQmluYW5jZUFwaWAgcHJvcGVydGllcyBhcmUgb25seSBhbGxvd2VkIG9uXG4gICAgICAgKiBgRWQyNTUxOUJpbmFuY2VBcGlgIGtleXMpLiBFYWNoIGZpZWxkIGluIHRoZSBwYXRjaCBpcyBpbmRlcGVuZGVudDogbWlzc2luZ1xuICAgICAgICogbWVhbnMgbGVhdmUgYWxvbmUsIEpTT04gYG51bGxgIGNsZWFycywgYSB2YWx1ZSBzZXRzLiBTZW5kaW5nIEpTT04gYG51bGxgIGZvclxuICAgICAgICogdGhlIHdob2xlIGZpZWxkIGNsZWFycyBhbGwgcHJvcGVydGllcyBvbiB0aGUga2V5LlxuICAgICAgICovXG4gICAgICBwcm9wZXJ0aWVzPzogdW5rbm93bjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgY2hhbmdlIHRoZSBrZXkncyByZWdpb24gYWZmaW5pdHkgdG8gdGhpcyB2YWx1ZS5cbiAgICAgICAqXG4gICAgICAgKiBUaGlzIGlzIGEgcmVnaW9uLWxvY2tlZCBvcGVyYXRpb24sIGkuZS4sIGl0IGNhbiBvbmx5IGJlIHBlcmZvcm1lZFxuICAgICAgICogZnJvbSB0aGUgcmVnaW9uIG1hdGNoaW5nIHRoZSBrZXkncyBjdXJyZW50IHJlZ2lvbiBhZmZpbml0eVxuICAgICAgICovXG4gICAgICByZWdpb24/OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0aW5nIHRoZSBtZXRhZGF0YSBvbmx5IHN1Y2NlZWRzIGlmIHRoZSB2ZXJzaW9uIG1hdGNoZXMgdGhpcyB2YWx1ZS5cbiAgICAgICAqL1xuICAgICAgdmVyc2lvbj86IG51bWJlciB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBvbGljeSBFbmdpbmUgY29uZmlndXJhdGlvbnMuICovXG4gICAgVXBkYXRlT3JnUG9saWN5RW5naW5lQ29uZmlnczoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWxsb3dlZCBkb21haW5zIGZvciBIVFRQIHJlcXVlc3RzXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwiY3ViaXN0LmRldjo0NDNcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBhbGxvd2VkX2h0dHBfYXV0aG9yaXRpZXM6IHN0cmluZ1tdO1xuICAgIH07XG4gICAgVXBkYXRlT3JnUmVxdWVzdDoge1xuICAgICAgYWxpZW5fbG9naW5fcmVxdWlyZW1lbnQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZEZhY3RvclJlcXVpcmVtZW50XCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1GQSB0eXBlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIHVzZWQgZm9yIGltcGxpY2l0bHkgc2VjdXJpdHktc2Vuc2l0aXZlXG4gICAgICAgKiBvcGVyYXRpb25zIChsaWtlIGxvZ2dpbmcgaW4sIGFkZGluZyBhbiBNRkEgZmFjdG9yLCBleHBvcnRpbmcga2V5cywgZXRjLikuXG4gICAgICAgKiBAZXhhbXBsZSB7XG4gICAgICAgKiAgIFwiRGVmYXVsdFwiOiBbXG4gICAgICAgKiAgICAgXCJGaWRvXCIsXG4gICAgICAgKiAgICAgXCJUb3RwXCIsXG4gICAgICAgKiAgICAgXCJFbWFpbE90cFwiXG4gICAgICAgKiAgIF0sXG4gICAgICAgKiAgIFwiS2V5RXhwb3J0XCI6IFtcbiAgICAgICAqICAgICBcIkZpZG9cIlxuICAgICAgICogICBdXG4gICAgICAgKiB9XG4gICAgICAgKi9cbiAgICAgIGFsbG93ZWRfbWZhX3R5cGVzPzoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVR5cGVcIl1bXTtcbiAgICAgIH0gfCBudWxsO1xuICAgICAgY3VzdG9tX2NoYWlucz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3VzdG9tQ2hhaW5zRGF0YVwiXSB8IG51bGw7XG4gICAgICBkZWZhdWx0X2ludml0ZV9raW5kPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbnZpdGVLaW5kXCJdIHwgbnVsbDtcbiAgICAgIGVkaXRfcG9saWN5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFZGl0UG9saWN5XCJdIHwgbnVsbDtcbiAgICAgIGVtYWlsX3ByZWZlcmVuY2VzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbWFpbFByZWZlcmVuY2VzXCJdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyBgZW5hYmxlZGAgZmllbGQgdG8gdGhpcyB2YWx1ZS4gKi9cbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIGV4dF9wcm9wcz86XG4gICAgICAgIHwgKHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFBlciBhbGllbiB1c2VyIGtleSBjb3VudCB0aHJlc2hvbGQsIHdoaWNoLCBvbmNlIGV4Y2VlZGVkLCBkaXNhbGxvd3MgZnVydGhlciBrZXkgY3JlYXRpb24gYnkgYWxpZW4gdXNlcnMuXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogVGhpcyBzZXR0aW5nIGlzIGNoZWNrZWQgb25seSB3aGVuIGFuIGFsaWVuIHVzZXIgcmVxdWVzdHMgdG8gY3JlYXRlIG9yIGltcG9ydCBhIG5ldyBrZXkuXG4gICAgICAgICAgICAgKiBJbiBvdGhlciB3b3Jkcywgb3JnIGFkbWlucyBjYW4gc3RpbGwgYXNzaWduIHVubGltaXRlZCBudW1iZXIgb2Yga2V5cyB0byB0aGVpciBhbGllbiB1c2Vycy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgYWxpZW5fa2V5X2NvdW50X3RocmVzaG9sZD86IG51bWJlciB8IG51bGw7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIGFsaWVuIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHVwZGF0ZSB0aGVpciBvd24ga2V5IHBvbGljaWVzLlxuICAgICAgICAgICAgICogRGVmYXVsdHMgdG8gJ2ZhbHNlJy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgYWxpZW5zX2Nhbl91cGRhdGVfa2V5X3BvbGljeT86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgICAgIH0gJiB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0aW5nIHdpbGwgc3VjY2VlZCBpZiB0aGUgY3VycmVudCB2ZXJzaW9uIG1hdGNoZXMgdGhpcyB2YWx1ZVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB2ZXJzaW9uPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgICAgICB9KVxuICAgICAgICB8IG51bGw7XG4gICAgICBoaXN0b3JpY2FsX2RhdGFfY29uZmlndXJhdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSGlzdG9yaWNhbERhdGFDb25maWd1cmF0aW9uXCJdIHwgbnVsbDtcbiAgICAgIGlkcF9jb25maWd1cmF0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZHBDb25maWdcIl0gfCBudWxsO1xuICAgICAga2V5X2V4cG9ydF9yZXF1aXJlbWVudD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kRmFjdG9yUmVxdWlyZW1lbnRcIl0gfCBudWxsO1xuICAgICAgbWVtYmVyX2xvZ2luX3JlcXVpcmVtZW50PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNvbmRGYWN0b3JSZXF1aXJlbWVudFwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIG9yZydzIG5vdGlmaWNhdGlvbiBlbmRwb2ludHMuIE5vdGlmaWNhdGlvbiBlbmRwb2ludHMgYXJlIGV4cGVjdGVkIHRvIGJlXG4gICAgICAgKiBIVFRQUyBVUkxzLCB3aGljaCBhY2NlcHQgUE9TVCByZXF1ZXN0cy4gVGhlIGJvZHkgb2YgdGhlIHJlcXVlc3RzIHNlbnQgdG8gdGhlc2UgZW5kcG9pbnRzIGFyZVxuICAgICAgICogYXJlIGZvcm1hdHRlZCBpbiBKU09OIGFuZCBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybWF0OlxuICAgICAgICpcbiAgICAgICAqIGBgYGpzb25cbiAgICAgICAqIHtcbiAgICAgICAqIFwib3JnXCI6IFwiLi4uXCIsXG4gICAgICAgKiBcInV0Y190aW1lc3RhbXBcIjogXCIuLi5cIixcbiAgICAgICAqIFwib3JnX2V2ZW50XCI6IFwiLi4uXCIsXG4gICAgICAgKiAuLi5cbiAgICAgICAqIH1cbiAgICAgICAqIGBgYFxuICAgICAgICpcbiAgICAgICAqIGBvcmdgIGlzIHRoZSBvcmcgaWQsIGB1dGNfdGltZXN0YW1wYCBpcyB0aGUgVVRDIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgaW4gbWlsbGlzZWNvbmRzLCBhbmRcbiAgICAgICAqIGBvcmdfZXZlbnRgIGlzIGEgc3RyaW5nIGlkZW50aWZ5aW5nIHRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgaGFzIG9jY3VycmVkLiBUaGUgcmVzdCBvZiB0aGVcbiAgICAgICAqIGZpZWxkcyBwcm92aWRlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgdHlwZSBvZiB0aGUgZXZlbnQuXG4gICAgICAgKlxuICAgICAgICogRW5kcG9pbnRzIGNhbiBvcHRpb25hbGx5IGluY2x1ZGUgZmlsdGVycyB0byBjdXN0b21pemUgdGhlIG9yZyBldmVudHMgdGhhdCB0aGV5IGFyZSBub3RpZmllZFxuICAgICAgICogYWJvdXQuIEN1cnJlbnRseSwgdGhlIG9ubHkgc3VwcG9ydGVkIGZpbHRlciB0eXBlIGlzIGBPbmVPZmAsIHdoaWNoIGV4cGVjdHMgYSBsaXN0IG9mIG9yZ1xuICAgICAgICogZXZlbnQgdHlwZXMgdG8gc2VuZCB0byB0aGUgZW5kcG9pbnQuIElmIG5vIGZpbHRlciBpcyBjb25maWd1cmVkLCB0aGUgc3lzdGVtIHNlbmRzIGFsbCBvcmdcbiAgICAgICAqIGV2ZW50cyB0byB0aGUgZW5kcG9pbnQuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcInVybDpcIjogXCJodHRwczovL2V4YW1wbGUuY29tL2VuZHBvaW50MVwiXG4gICAgICAgKiAgIH0sXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcImZpbHRlclwiOiB7XG4gICAgICAgKiAgICAgICBcIk9uZU9mXCI6IFtcbiAgICAgICAqICAgICAgICAgXCJFdGgyQ29uY3VycmVudEF0dGVzdGF0aW9uU2lnbmluZ1wiLFxuICAgICAgICogICAgICAgICBcIkV0aDJDb25jdXJyZW50QmxvY2tTaWduaW5nXCJcbiAgICAgICAqICAgICAgIF1cbiAgICAgICAqICAgICB9LFxuICAgICAgICogICAgIFwidXJsOlwiOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQyXCJcbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBub3RpZmljYXRpb25fZW5kcG9pbnRzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJOb3RpZmljYXRpb25FbmRwb2ludENvbmZpZ3VyYXRpb25cIl1bXSB8IG51bGw7XG4gICAgICBwYXNza2V5X2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBhc3NrZXlDb25maWdcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyBwb2xpY2llcyAob2xkIHBvbGljaWVzIHdpbGwgYmUgb3ZlcndyaXR0ZW4hKS5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiTWF4RGFpbHlVbnN0YWtlXCI6IDVcbiAgICAgICAqICAgfSxcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiT3JpZ2luQWxsb3dsaXN0XCI6IFtcbiAgICAgICAqICAgICAgIFwiaHR0cHM6Ly9leGFtcGxlLmNvbVwiXG4gICAgICAgKiAgICAgXVxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJTb3VyY2VJcEFsbG93bGlzdFwiOiBbXG4gICAgICAgKiAgICAgICBcIjEwLjEuMi4zLzhcIixcbiAgICAgICAqICAgICAgIFwiMTY5LjI1NC4xNy4xLzE2XCJcbiAgICAgICAqICAgICBdXG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W10gfCBudWxsO1xuICAgICAgcG9saWN5X2VuZ2luZV9jb25maWd1cmF0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVcGRhdGVPcmdQb2xpY3lFbmdpbmVDb25maWdzXCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgYWxsIHVzZXIgbG9naW5zIHdpbGwgcmVxdWlyZSB0aGUgY2xhaW0gYGN1YmVzaWduZXJfc2NvcGVfY2VpbGluZ2AgdG8gYmUgcHJlc2VudCBpblxuICAgICAgICogdGhlIHVzZXIncyB0b2tlbi4gVGhpcyBjbGFpbSBpcyBhbiBhcnJheSBvZiBzY29wZXMgKGUuZy4gYFsgXCJtYW5hZ2U6a2V5czpsaXN0XCIsIFwic2lnbjpldm06dHhcIiBdYCksXG4gICAgICAgKiB3aGljaCBkZWZpbmUgYSBtYXhpbXVtIHNldCBvZiBzY29wZXMgdGhlIHVzZXIgbWF5IHJlcXVlc3QuIElmIHRoZSB1c2VyJ3MgdG9rZW4gZG9lcyBub3QgY29udGFpblxuICAgICAgICogdGhpcyBjbGFpbSwgdGhlIGxvZ2luIHdpbGwgYmUgcmVqZWN0ZWQuXG4gICAgICAgKlxuICAgICAgICogT3duZXJzIG9mIHRoZSBvcmcgYXJlIGV4ZW1wdCBmcm9tIHRoaXMgcmVxdWlyZW1lbnQuXG4gICAgICAgKi9cbiAgICAgIHJlcXVpcmVfc2NvcGVfY2VpbGluZz86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyBzaWduIHJ1bGUgKG9sZCBzaWduIHJ1bGVzIHdpbGwgYmUgb3ZlcndyaXR0ZW4hKS5cbiAgICAgICAqIE9ubHkgXCJkZW55XCItc3R5bGUgcnVsZXMgbWF5IGJlIHNldC5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiVHhSZWNlaXZlclwiOiBbXG4gICAgICAgKiAgICAgICBcIjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiXG4gICAgICAgKiAgICAgXVxuICAgICAgICogICB9XG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHNpZ25fcG9saWN5PzogdW5rbm93bltdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdXBkYXRlIHRoaXMgb3JnJ3MgVE9UUCBmYWlsdXJlIGxpbWl0LiBBZnRlciB0aGlzIG1hbnkgZmFpbHVyZXMsXG4gICAgICAgKiB0aGUgdXNlciBpcyByYXRlIGxpbWl0ZWQgdW50aWwgdGhlIG5leHQgMzAtc2Vjb25kIFRPVFAgd2luZG93LlxuICAgICAgICovXG4gICAgICB0b3RwX2ZhaWx1cmVfbGltaXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyB1c2VyLWV4cG9ydCBkZWxheSwgaS5lLiwgdGhlIGFtb3VudCBvZiB0aW1lXG4gICAgICAgKiAoaW4gc2Vjb25kcykgYmV0d2VlbiBhIHVzZXIncyBpbml0aWF0aW5nIGFuIGV4cG9ydCBhbmQgdGhlIHRpbWUgd2hlblxuICAgICAgICogZXhwb3J0IGlzIGFsbG93ZWQuIEZvciBzZWN1cml0eSwgdGhpcyBkZWxheSBjYW5ub3QgYmUgc2V0IHRvIGxlc3MgdGhhblxuICAgICAgICogMTcyODAwLCBpLmUuLCAyIGRheXMuXG4gICAgICAgKi9cbiAgICAgIHVzZXJfZXhwb3J0X2RlbGF5PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0dXJuIHRoaXMgb3JnJ3MgdXNlciBleHBvcnQgb2ZmIChieSBwYXNzaW5nIGB0cnVlYCkgb3Igb24gKGJ5IHBhc3NpbmcgYGZhbHNlYCkuICovXG4gICAgICB1c2VyX2V4cG9ydF9kaXNhYmxlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyB1c2VyLWV4cG9ydCB3aW5kb3csIGkuZS4sIHRoZSBhbW91bnQgb2YgdGltZVxuICAgICAgICogKGluIHNlY29uZHMpIHRoYXQgZXhwb3J0IGlzIGFsbG93ZWQgYWZ0ZXIgdGhlIHVzZXItZXhwb3J0IGRlbGF5LiBBZnRlclxuICAgICAgICogdGhpcyBhbW91bnQgb2YgdGltZSwgdGhlIGV4cG9ydCBpcyBjYW5jZWxlZCBhbmQgbXVzdCBiZSByZS1pbml0aWF0ZWQuXG4gICAgICAgKiBGb3Igc2VjdXJpdHksIHRoaXMgd2luZG93IGNhbm5vdCBiZSBzZXQgdG8gZ3JlYXRlciB0aGFuIDI1OTIwMCwgaS5lLixcbiAgICAgICAqIDMgZGF5cy5cbiAgICAgICAqL1xuICAgICAgdXNlcl9leHBvcnRfd2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIFVwZGF0ZU9yZ1Jlc3BvbnNlOiB7XG4gICAgICBhbGllbl9sb2dpbl9yZXF1aXJlbWVudD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kRmFjdG9yUmVxdWlyZW1lbnRcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gTUZBIHR5cGVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gYmUgdXNlZCBmb3IgaW1wbGljaXRseSBzZWN1cml0eS1zZW5zaXRpdmVcbiAgICAgICAqIG9wZXJhdGlvbnMgKGxpa2UgbG9nZ2luZyBpbiwgYWRkaW5nIGFuIE1GQSBmYWN0b3IsIGV4cG9ydGluZyBrZXlzLCBldGMuKS5cbiAgICAgICAqL1xuICAgICAgYWxsb3dlZF9tZmFfdHlwZXM/OiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhVHlwZVwiXVtdO1xuICAgICAgfSB8IG51bGw7XG4gICAgICBjdXN0b21fY2hhaW5zPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDdXN0b21DaGFpbnNEYXRhXCJdIHwgbnVsbDtcbiAgICAgIGRlZmF1bHRfaW52aXRlX2tpbmQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkludml0ZUtpbmRcIl0gfCBudWxsO1xuICAgICAgZWRpdF9wb2xpY3k/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVkaXRQb2xpY3lcIl0gfCBudWxsO1xuICAgICAgZW1haWxfcHJlZmVyZW5jZXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVtYWlsUHJlZmVyZW5jZXNcIl0gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IHZhbHVlIG9mIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgKi9cbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIGV4dF9kYXRhPzpcbiAgICAgICAgfCAoe1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gUGVyIGFsaWVuIHVzZXIga2V5IGNvdW50IHRocmVzaG9sZCwgd2hpY2gsIG9uY2UgZXhjZWVkZWQsIGRpc2FsbG93cyBmdXJ0aGVyIGtleSBjcmVhdGlvbiBieSBhbGllbiB1c2Vycy5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBUaGlzIHNldHRpbmcgaXMgY2hlY2tlZCBvbmx5IHdoZW4gYW4gYWxpZW4gdXNlciByZXF1ZXN0cyB0byBjcmVhdGUgb3IgaW1wb3J0IGEgbmV3IGtleS5cbiAgICAgICAgICAgICAqIEluIG90aGVyIHdvcmRzLCBvcmcgYWRtaW5zIGNhbiBzdGlsbCBhc3NpZ24gdW5saW1pdGVkIG51bWJlciBvZiBrZXlzIHRvIHRoZWlyIGFsaWVuIHVzZXJzLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBhbGllbl9rZXlfY291bnRfdGhyZXNob2xkPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgYWxpZW4gdXNlcnMgYXJlIGFsbG93ZWQgdG8gdXBkYXRlIHRoZWlyIG93biBrZXkgcG9saWNpZXMuXG4gICAgICAgICAgICAgKiBEZWZhdWx0cyB0byAnZmFsc2UnLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBhbGllbnNfY2FuX3VwZGF0ZV9rZXlfcG9saWN5PzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAgICAgfSAmIHtcbiAgICAgICAgICAgIGNyZWF0ZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl0gfCBudWxsO1xuICAgICAgICAgICAgbGFzdF9tb2RpZmllZD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXSB8IG51bGw7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBWZXJzaW9uIG9mIHRoaXMgb2JqZWN0XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHZlcnNpb24/OiBudW1iZXI7XG4gICAgICAgICAgfSAmIFJlY29yZDxzdHJpbmcsIG5ldmVyPilcbiAgICAgICAgfCBudWxsO1xuICAgICAgaGlzdG9yaWNhbF9kYXRhX2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkhpc3RvcmljYWxEYXRhQ29uZmlndXJhdGlvblwiXSB8IG51bGw7XG4gICAgICBpZHBfY29uZmlndXJhdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRwQ29uZmlnXCJdIHwgbnVsbDtcbiAgICAgIGtleV9leHBvcnRfcmVxdWlyZW1lbnQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZEZhY3RvclJlcXVpcmVtZW50XCJdIHwgbnVsbDtcbiAgICAgIG1lbWJlcl9sb2dpbl9yZXF1aXJlbWVudD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kRmFjdG9yUmVxdWlyZW1lbnRcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgb3JnIChtdXN0IGJlIGFscGhhbnVtZXJpYylcbiAgICAgICAqIEBleGFtcGxlIG15X29yZ19uYW1lXG4gICAgICAgKi9cbiAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyBub3RpZmljYXRpb24gZW5kcG9pbnQgY29uZmlndXJhdGlvbnNcbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludFwiXG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgbm90aWZpY2F0aW9uX2VuZHBvaW50cz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTm90aWZpY2F0aW9uRW5kcG9pbnRDb25maWd1cmF0aW9uXCJdW10gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBvcmdhbml6YXRpb25cbiAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAqL1xuICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICBwYXNza2V5X2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBhc3NrZXlDb25maWdcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiBvcmctd2lkZSBwb2xpY2llc1xuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJNYXhEYWlseVVuc3Rha2VcIjogNVxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJPcmlnaW5BbGxvd2xpc3RcIjogW1xuICAgICAgICogICAgICAgXCJodHRwczovL2V4YW1wbGUuY29tXCJcbiAgICAgICAqICAgICBdXG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W10gfCBudWxsO1xuICAgICAgcG9saWN5X2VuZ2luZV9jb25maWd1cmF0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQb2xpY3lFbmdpbmVDb25maWd1cmF0aW9uXCJdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiByZXF1aXJlX3Njb3BlX2NlaWxpbmcgKi9cbiAgICAgIHJlcXVpcmVfc2NvcGVfY2VpbGluZz86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiB0aGUgb3JnLXdpZGUgc2lnbiBydWxlc1xuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJUeFJlY2VpdmVyXCI6IFwiMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCJcbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBzaWduX3BvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdGhlIFRPVFAgZmFpbHVyZSBsaW1pdFxuICAgICAgICovXG4gICAgICB0b3RwX2ZhaWx1cmVfbGltaXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiB1c2VyLWV4cG9ydCBkZWxheVxuICAgICAgICovXG4gICAgICB1c2VyX2V4cG9ydF9kZWxheT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdXNlci1leHBvcnQgZGlzYWJsZWQgKi9cbiAgICAgIHVzZXJfZXhwb3J0X2Rpc2FibGVkPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IHZhbHVlIG9mIHVzZXItZXhwb3J0IHdpbmRvd1xuICAgICAgICovXG4gICAgICB1c2VyX2V4cG9ydF93aW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTmV3IG9yZyB2ZXJzaW9uXG4gICAgICAgKi9cbiAgICAgIHZlcnNpb246IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVxdWVzdCBib2R5IGZvciB1cGRhdGluZyBhIG5hbWVkIHBvbGljeS4gKi9cbiAgICBVcGRhdGVQb2xpY3lSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE5ldyBBY2Nlc3MtY29udHJvbCBlbnRyaWVzLiAqL1xuICAgICAgYWNsPzogdW5rbm93bjtcbiAgICAgIGVkaXRfcG9saWN5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFZGl0UG9saWN5XCJdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBuZXcgbWV0YWRhdGEuICovXG4gICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgbmV3IG5hbWUgZm9yIHRoZSBwb2xpY3kuICovXG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBuZXcgb3duZXIgZm9yIHRoZSBwb2xpY3kuICovXG4gICAgICBvd25lcj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE5ldyBwb2xpY3kgcnVsZXMuICovXG4gICAgICBydWxlcz86IHVua25vd25bXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgcmVxdWVzdCBmb3IgdXBkYXRpbmcgT3JnLWxldmVsIHBvbGljeSBzZWNyZXRzICovXG4gICAgVXBkYXRlUG9saWN5U2VjcmV0c1JlcXVlc3Q6IHtcbiAgICAgIGVkaXRfcG9saWN5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFZGl0UG9saWN5XCJdIHwgbnVsbDtcbiAgICB9O1xuICAgIFVwZGF0ZVJvbGVSZXF1ZXN0OiB7XG4gICAgICBlZGl0X3BvbGljeT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRWRpdFBvbGljeVwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZXMgdGhlIHJvbGUncyBgZW5hYmxlZGAgcHJvcGVydHkgdG8gdGhpcyB2YWx1ZS5cbiAgICAgICAqIE9uY2UgZGlzYWJsZWQsIGEgcm9sZSBjYW5ub3QgYmUgdXNlZDsgYW5kIGl0J3MgdG9rZW5zIGNhbm5vdCBiZSB1c2VkIGZvciBzaWduaW5nLlxuICAgICAgICovXG4gICAgICBlbmFibGVkPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIHJvbGUncyBrZXkgcG9saWNpZXMgKG9sZCBwb2xpY2llcyB3aWxsIGJlIG92ZXJ3cml0dGVuISkuXG4gICAgICAgKiBPbmx5IFwiZGVueVwiIHN0eWxlIHBvbGljaWVzIG1heSBiZSBzZXQuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlNvdXJjZUlwQWxsb3dsaXN0XCI6IFtcbiAgICAgICAqICAgICAgIFwiMTIzLjQ1Ni43OC45LzE2XCJcbiAgICAgICAqICAgICBdXG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogdW5rbm93bltdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdXBkYXRlIHRoaXMgcm9sZSdzIHNldHRpbmdzIGZvciByZXN0cmljdGluZyB3aGljaCBtZW1iZXIgcm9sZXMgYXJlIGFsbG93ZWQgdG9cbiAgICAgICAqIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIHJvbGUuXG4gICAgICAgKiBAZXhhbXBsZSB7XG4gICAgICAgKiAgIFwiQ3JlYXRlVG9rZW5cIjogW1xuICAgICAgICogICAgIFwiT3duZXJcIlxuICAgICAgICogICBdXG4gICAgICAgKiB9XG4gICAgICAgKi9cbiAgICAgIHJlc3RyaWN0ZWRfYWN0aW9ucz86IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdW107XG4gICAgICB9IHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVxdWVzdCB0byB1cGRhdGUgYW4gZXhpc3RpbmcgdXNlciAqL1xuICAgIFVwZGF0ZVVzZXJNZW1iZXJzaGlwUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBFbmFibGUgb3IgZGlzYWJsZSB1c2VyICovXG4gICAgICBkaXNhYmxlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgcm9sZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBGb3JtYXQ6IGJpbmFyeVxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgU0hBLTI1NiBoYXNoIG9mIHRoZSBvYmplY3QgZm9yIGFuIFtVcGxvYWRSZXF1ZXN0XS5cbiAgICAgKi9cbiAgICBVcGxvYWRPYmplY3RIYXNoOiBzdHJpbmc7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IGZvciB1cGxvYWRpbmcgYSB3YXNtIHBvbGljeSAqL1xuICAgIFVwbG9hZFdhc21Qb2xpY3lSZXF1ZXN0OiB7XG4gICAgICBoYXNoOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVwbG9hZE9iamVjdEhhc2hcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXNwb25zZSB0byBhIHJlcXVlc3QgZm9yIHVwbG9hZGluZyBhIHdhc20gcG9saWN5ICovXG4gICAgVXBsb2FkV2FzbVBvbGljeVJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgc2lnbmVkIFVSTCBmb3IgdXBsb2FkaW5nIHRoZSByZXF1ZXN0ZWQgd2FzbSBwb2xpY3kuICovXG4gICAgICBzaWduZWRfdXJsOiBzdHJpbmc7XG4gICAgfTtcbiAgICBVc2VyQ291bnREaW1lbnNpb25zOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFVzZXIncyBtZW1iZXJzaGlwIGluIHRoZSBvcmcgKi9cbiAgICAgIG1lbWJlcnNoaXA6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIG1ldHJpY3MgbXVzdCBpbmNsdWRlICdvcmdfaWQnIGFzIGEgZGltZW5zaW9uLiAqL1xuICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgcmVxdWVzdCB0byBjb21wbGV0ZSBhIHVzZXIgZXhwb3J0ICovXG4gICAgVXNlckV4cG9ydENvbXBsZXRlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBrZXkgdG8gYmUgZXhwb3J0ZWQuIFRoZSBrZXktaWQgbXVzdCBjb3JyZXNwb25kIHRvIHRoZSBvbmUgaW5cbiAgICAgICAqIHRoZSBzcGVjaWZpZWQgZXhwb3J0IHJlcXVlc3QsIGFuZCB0aGUgY2FsbGVyIG11c3Qgb3duIHRoaXMga2V5LlxuICAgICAgICogQGV4YW1wbGUgS2V5IzB4M2M0ZDkwQ2M1QWYxNjQ0QzNBM0IwMTNCYWE1NDg4OTk3MzgxRDdDOFxuICAgICAgICovXG4gICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBOSVNUIFAtMjU2IHB1YmxpYyBrZXkgKGJhc2U2NC1lbmNvZGVkIFNFQzEgd2l0aCBvciB3aXRob3V0IGNvbXByZXNzaW9uKVxuICAgICAgICogdG8gd2hpY2ggdGhlIGV4cG9ydCB3aWxsIGJlIGVuY3J5cHRlZC4gSWYgYSBwdWJsaWMga2V5IHdhcyBwcm92aWRlZCB3aGVuXG4gICAgICAgKiBgdXNlcl9leHBvcnRfaW5pdGAgd2FzIGNhbGxlZCwgdGhpcyBrZXkgbXVzdCBtYXRjaCB0aGF0IG9uZS5cbiAgICAgICAqIEBleGFtcGxlIEFrcExULzNkWEFwSnpYU2R1YVBRN2FweVQwQURCd3FrdDFlcy9hVDBpV1dmXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXk6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gZW5jcnlwdGVkIHVzZXItZXhwb3J0ICovXG4gICAgVXNlckV4cG9ydENvbXBsZXRlUmVzcG9uc2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBleHBvcnRlZCBrZXkgbWF0ZXJpYWwsIGVuY3J5cHRlZCB3aXRoIEFFUy0yNTYtR0NNIHVuZGVyIGEga2V5XG4gICAgICAgKiBkZXJpdmVkIGZyb20gdGhlIHB1YmxpYyBrZXkgc3VwcGxpZWQgaW4gdGhlIHJlcXVlc3QgdmlhIEhQS0UgKFJGQzkxODApXG4gICAgICAgKiB3aXRoIERIS0VNKFAtMjU2LCBIS0RGLVNIQTI1NikgYW5kIGJhc2U2NCBlbmNvZGVkLlxuICAgICAgICovXG4gICAgICBlbmNyeXB0ZWRfa2V5X21hdGVyaWFsOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZXBoZW1lcmFsIHB1YmxpYyBrZXkgdXNlZCBmb3IgSFBLRSBrZXkgZGVyaXZhdGlvbiBhcyBiYXNlNjQtZW5jb2RlZFxuICAgICAgICogdW5jb21wcmVzc2VkIFNFQzEgc2VyaWFsaXphdGlvbi5cbiAgICAgICAqL1xuICAgICAgZXBoZW1lcmFsX3B1YmxpY19rZXk6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHVzZXItaWQgdG8gd2hpY2ggdGhpcyBrZXkgYmVsb25ncy4gKi9cbiAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSByZXF1ZXN0IHRvIGluaXRpYXRlIGEgdXNlciBleHBvcnQgKi9cbiAgICBVc2VyRXhwb3J0SW5pdFJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUga2V5IHRvIGJlIGV4cG9ydGVkLiBUaGlzIGtleSBtdXN0IGJlIG93bmVkIGJ5IHRoZSBjYWxsZXIuXG4gICAgICAgKiBAZXhhbXBsZSBLZXkjMHgzYzRkOTBDYzVBZjE2NDRDM0EzQjAxM0JhYTU0ODg5OTczODFEN0M4XG4gICAgICAgKi9cbiAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQW4gb3B0aW9uYWwgTklTVCBQLTI1NiBwdWJsaWMga2V5IChiYXNlNjQtZW5jb2RlZCBTRUMxIHdpdGggb3Igd2l0aG91dFxuICAgICAgICogY29tcHJlc3Npb24pIHRvIHdoaWNoIHRoZSBleHBvcnQgd2lsbCBiZSBlbmNyeXB0ZWQuIElmIHByb3ZpZGVkLCB0aGlzXG4gICAgICAgKiBwdWJsaWMga2V5IE1VU1QgYmUgdGhlIG9uZSB1c2VkIHRvIGVuY3J5cHQgdGhlIGV4cG9ydCBvbmNlIHRoZSBkZWxheSBoYXNcbiAgICAgICAqIGV4cGlyZWQuIE90aGVyd2lzZSwgdGhlIHVzZXIgY2FuIHByb3ZpZGUgYW55IHB1YmxpYyBrZXkgd2hlbiBjb21wbGV0aW5nXG4gICAgICAgKiB0aGUgZXhwb3J0IHJlcXVlc3QgcG9zdCBkZWxheS5cbiAgICAgICAqXG4gICAgICAgKiBUaGlzIG9wdGlvbiBtYXkgcHJvdmlkZSBleHRyYSBzZWN1cml0eSB3aGVuIHRoZSB1c2VyIGhhcyBhIHNlY3VyZSBoYXJkd2FyZVxuICAgICAgICogZGV2aWNlIChlLmcuLCBhIHBob25lJ3Mgc2VjdXJlIGVsZW1lbnQgb3IgYSBZdWJpS2V5KSBpbiB3aGljaCBhIE5JU1QgUC0yNTZcbiAgICAgICAqIHNlY3JldCBrZXkgY2FuIGJlIGdlbmVyYXRlZC4gUHJvdmlkaW5nIHRoZSBjb3JyZXNwb25kaW5nIHB1YmxpYyBrZXkgaGVyZVxuICAgICAgICogZW5zdXJlcyB0aGF0IG9ubHkgdGhhdCBzcGVjaWZpYyBkZXZpY2Ugd2lsbCBiZSBjYXBhYmxlIG9mIGRlY3J5cHRpbmdcbiAgICAgICAqIHRoZSBleHBvcnQgY2lwaGVydGV4dC5cbiAgICAgICAqXG4gICAgICAgKiBJZiBubyBzZWN1cmUgaGFyZHdhcmUgZGV2aWNlIGlzIGF2YWlsYWJsZSB0byBzdG9yZSB0aGUgc2VjcmV0IGtleSwgdGhpc1xuICAgICAgICogb3B0aW9uIFNIT1VMRCBOT1QgYmUgdXNlZCBiZWNhdXNlIG9mIHRoZSByaXNrIG9mIHNlY3JldCBrZXkgdGhlZnQgZHVyaW5nXG4gICAgICAgKiB0aGUgZXhwb3J0IGRlbGF5IHBlcmlvZC5cbiAgICAgICAqIEBleGFtcGxlIEFrcExULzNkWEFwSnpYU2R1YVBRN2FweVQwQURCd3FrdDFlcy9hVDBpV1dmXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzcG9uc2UgdG8gYSBzdWNjZXNzZnVsIHVzZXItZXhwb3J0IGluaXQgcmVxdWVzdCAqL1xuICAgIFVzZXJFeHBvcnRJbml0UmVzcG9uc2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckV4cG9ydFJlcXVlc3RcIl0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUga2V5LWlkIGJlaW5nIHJlcXVlc3RlZC5cbiAgICAgICAqIEBleGFtcGxlIEtleSMweDNjNGQ5MENjNUFmMTY0NEMzQTNCMDEzQmFhNTQ4ODk5NzM4MUQ3QzhcbiAgICAgICAqL1xuICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBlbmRpbmcgdXNlci1leHBvcnQgcmVxdWVzdCBhcyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLiAqL1xuICAgIFVzZXJFeHBvcnRSZXF1ZXN0OiB7XG4gICAgICBleHBfZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmctaWQgaW4gd2hpY2ggdGhlIGtleSBpcyBob3VzZWQuXG4gICAgICAgKiBAZXhhbXBsZSBPcmcjZjM2MWVkNmItNWQxOS00Y2NmLWE0ZDUtZWJhOTM1ZGMwYjkwXG4gICAgICAgKi9cbiAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFNIQS0yNTYgaGFzaCBvZiB0aGUgcHVibGljIGtleSBwcm92aWRlZCBhdCBleHBvcnQgaW5pdGlhdGlvbixcbiAgICAgICAqIGlmIGFueS4gSWYgYSBrZXkgd2FzIHByb3ZpZGVkLCBvbmx5IHRoYXQga2V5IGNhbiBiZSB1c2VkIHRvIGNvbXBsZXRlXG4gICAgICAgKiB0aGUgZXhwb3J0IHByb2NlZHVyZS4gT3RoZXJ3aXNlLCBhbnkga2V5IGNhbiBiZSB1c2VkLlxuICAgICAgICpcbiAgICAgICAqIElNUE9SVEFOVDogaWYgYSBwdWJsaWMga2V5IGlzIHN1cHBsaWVkIGF0IGV4cG9ydCBpbml0aWF0aW9uLCBpdCBpc1xuICAgICAgICogU1RST05HTFkgUkVDT01NRU5ERUQgdGhhdCB0aGUgY29ycmVzcG9uZGluZyBzZWNyZXQga2V5IGJlIHN0b3JlZCBpblxuICAgICAgICogYSBzZWN1cmUgaGFyZHdhcmUgZGV2aWNlLCBlLmcuLCBhIFl1YmlLZXkgb3IgYSBwaG9uZSdzIHNlY3VyZSBlbGVtZW50LlxuICAgICAgICogSWYgbm8gc3VjaCBoYXJkd2FyZSBpcyBhdmFpbGFibGUsIHN1cHBseWluZyBhIHB1YmxpYyBrZXkgYXQgZXhwb3J0XG4gICAgICAgKiBpbml0aWF0aW9uIGlzIFNUUk9OR0xZIERJU0NPVVJBR0VEIGJlY2F1c2Ugb2YgdGhlIHJpc2sgb2YgdGhlZnQgZHVyaW5nXG4gICAgICAgKiB0aGUgZXhwb3J0IGRlbGF5IHBlcmlvZC5cbiAgICAgICAqXG4gICAgICAgKiAoU2VlIGFsc28gdGhlIGNvbW1lbnQgaW4gdGhlIGBwdWJsaWNfa2V5YCBmaWVsZCBvZiBgVXNlckluaXRSZXF1ZXN0YC4pXG4gICAgICAgKiBAZXhhbXBsZSBkZjQ1N2E5OGQ1NTM4NTQwZjU0ZDEzMTZiNTk3YTBmMzliOGQ5NmY0ODhmMTBhMmUzMWE5NTVjMTQ2ZmRmMWQzXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXlfaGFzaD86IHN0cmluZyB8IG51bGw7XG4gICAgICB2YWxpZF9lcG9jaDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgIH07XG4gICAgVXNlckluT3JnSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIncyBlbWFpbCAob3B0aW9uYWwpXG4gICAgICAgKiBAZXhhbXBsZSBhbGljZUBleGFtcGxlLmNvbVxuICAgICAgICovXG4gICAgICBlbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIHVzZXJcbiAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIHVzZXIgaGFzIGV2ZXIgc3VjY2Vzc2Z1bGx5IGxvZ2dlZCBpbiAqL1xuICAgICAgaW5pdGlhbGl6ZWQ/OiBib29sZWFuO1xuICAgICAgbWVtYmVyc2hpcDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCB1c2VyIG5hbWUuICovXG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIHN0YXR1czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJzaGlwU3RhdHVzXCJdO1xuICAgICAgdmVyaWZpZWRfZW1haWw/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlZlcmlmaWVkRW1haWxcIl0gfCBudWxsO1xuICAgIH07XG4gICAgVXNlckluT3JnSW5mb1dpdGhJZGVudGl0eToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIncyBlbWFpbCAob3B0aW9uYWwpXG4gICAgICAgKiBAZXhhbXBsZSBhbGljZUBleGFtcGxlLmNvbVxuICAgICAgICovXG4gICAgICBlbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIHVzZXJcbiAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIHVzZXIgaGFzIGV2ZXIgc3VjY2Vzc2Z1bGx5IGxvZ2dlZCBpbiAqL1xuICAgICAgaW5pdGlhbGl6ZWQ/OiBib29sZWFuO1xuICAgICAgbWVtYmVyc2hpcDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCB1c2VyIG5hbWUuICovXG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIHN0YXR1czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJzaGlwU3RhdHVzXCJdO1xuICAgICAgdmVyaWZpZWRfZW1haWw/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlZlcmlmaWVkRW1haWxcIl0gfCBudWxsO1xuICAgIH0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHRoaXJkLXBhcnR5IGlkZW50aXRpZXMgdmlhIHdoaWNoIHRoZSB1c2VyIHdhcyBmb3VuZCAqL1xuICAgICAgaWRlbnRpdGllcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRlbnRpdHlJbmZvXCJdW107XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYSB1c2VyJ3MgbWVtYmVyc2hpcCBpbiBhbiBvcmdhbml6YXRpb25cbiAgICAgKiAod2l0aG91dCBpbmNsdWRpbmcgYW55IGluZm8gYWJvdXQgdGhlIHVzZXIpXG4gICAgICovXG4gICAgVXNlckluT3JnTWVtYmVyc2hpcDoge1xuICAgICAgbWVtYmVyc2hpcDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3JnYW5pemF0aW9uIGlkXG4gICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgKi9cbiAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1lbWJlcnNoaXBTdGF0dXNcIl07XG4gICAgfTtcbiAgICBVc2VySW5Sb2xlSW5mbzoge1xuICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgVXNlckluZm86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGVtYWlsXG4gICAgICAgKiBAZXhhbXBsZSBhbGljZUBleGFtcGxlLmNvbVxuICAgICAgICovXG4gICAgICBlbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBtdWx0aS1mYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kcyBjb25maWd1cmVkIGZvciB0aGlzIHVzZXIgKi9cbiAgICAgIG1mYTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb25maWd1cmVkTWZhXCJdW107XG4gICAgICBtZmFfcG9saWN5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFQb2xpY3lcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbmFtZVxuICAgICAgICogQGV4YW1wbGUgQWxpY2VcbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXByZWNhdGVkXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWxsIG9yZ2FuaXphdGlvbnMgdGhlIHVzZXIgYmVsb25ncyB0by4gRGVwcmVjYXRlZCBpbiBmYXZvciBvZiAnb3JncycuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwiT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVwiXG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIG9yZ19pZHM6IHN0cmluZ1tdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgb3JnYW5pemF0aW9ucyB0aGUgdXNlciBiZWxvbmdzIHRvLCBpbmNsdWRpbmcgdGhlIG1lbWJlcnNoaXAgcm9sZSBpbiBlYWNoLiAqL1xuICAgICAgb3JnczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VySW5PcmdNZW1iZXJzaGlwXCJdW107XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlclxuICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAqL1xuICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgICAgdmVyaWZpZWRfZW1haWw/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlZlcmlmaWVkRW1haWxcIl0gfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzcG9uc2UgdG8gdGhlIHVzZXIvb3JncyBlbmRwb2ludCAqL1xuICAgIFVzZXJPcmdzUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2Ygb3JncyB0aGlzIHVzZXIgaXMgYSBtZW1iZXIgb2YgKi9cbiAgICAgIG9yZ3M6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3JnRGF0YVwiXVtdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEEgV2ViQXV0aG4gUmVseWluZyBQYXJ0eSBtYXkgcmVxdWlyZSB1c2VyIHZlcmlmaWNhdGlvbiBmb3Igc29tZSBvZiBpdHNcbiAgICAgKiBvcGVyYXRpb25zIGJ1dCBub3QgZm9yIG90aGVycywgYW5kIG1heSB1c2UgdGhpcyB0eXBlIHRvIGV4cHJlc3MgaXRzIG5lZWRzLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2VudW0tdXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50XG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6IFwicmVxdWlyZWRcIiB8IFwiZGlzY291cmFnZWRcIiB8IFwicHJlZmVycmVkXCI7XG4gICAgVmVyaWZpZWRFbWFpbDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBFbWFpbCBhZGRyZXNzICovXG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTGFzdCB0aW1lIHRoaXMgcmVjb3JkIHdhcyB1cGRhdGVkIChpbiBzZWNvbmRzIHNpbmNlIHVuaXggZXBvY2gpXG4gICAgICAgKi9cbiAgICAgIHVwZGF0ZWRfYXQ6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBbiBleGl0IHZvbHVudGFyaWx5IHN1Ym1pdHRlZCBhIHZhbGlkYXRvciB3aG8gd2lzaGVzIHRvIHdpdGhkcmF3LlxuICAgICAqIFRoZSBzY2hlbWEgZm9yIHRoaXMgbWVzc2FnZSBpcyBkZWZpbmVkXG4gICAgICogW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9jb25zZW5zdXMtc3BlY3MvYmxvYi92MS4wLjEvc3BlY3MvcGhhc2UwL2JlYWNvbi1jaGFpbi5tZCNzaWduZWR2b2x1bnRhcnlleGl0KS5cbiAgICAgKi9cbiAgICBWb2x1bnRhcnlFeGl0OiB7XG4gICAgICBlcG9jaDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEluZGV4IG9mIHRoZSBleGl0aW5nIHZhbGlkYXRvci5cbiAgICAgICAqIEBleGFtcGxlIDI1NlxuICAgICAgICovXG4gICAgICB2YWxpZGF0b3JfaW5kZXg6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIGZyb20gaW52b2tpbmcgYSBXYXNtIHBvbGljeS4gKi9cbiAgICBXYXNtUG9saWN5UmVzcG9uc2U6XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICByZXNwb25zZTogXCJBbGxvd1wiO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZWFzb24gZm9yIHRoZSBkZW5pYWwuICovXG4gICAgICAgICAgcmVhc29uOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgcmVzcG9uc2U6IFwiRGVueVwiO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBlcnJvciBmcm9tIHRoZSBQb2xpY3kgRW5naW5lLiAqL1xuICAgICAgICAgIGVycm9yOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgcmVzcG9uc2U6IFwiRXJyb3JcIjtcbiAgICAgICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgd2FzbSBwb2xpY3kgcnVsZSB0aGF0IGNhbiBiZSBleGVjdXRlZCBpbiB0aGUgd2FzbSBlbmdpbmUuICovXG4gICAgV2FzbVJ1bGU6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIFNIQS0yNTYgaGFzaCBvZiBhIHdhc20gcG9saWN5IHRoYXQgY2FuIGJlIHVzZWQgdG8gbG9vayBpdCB1cCBpbiB0aGUgcG9saWN5IHN0b3JlLiAqL1xuICAgICAgaGFzaDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSWQgb2YgdGhlIHBvbGljeSB0aGlzIHdhc20gcnVsZSBiZWxvbmdzIHRvLiAqL1xuICAgICAgcG9saWN5X2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIG9mZmljaWFsIHdlYmFwcCBvcmlnaW4gaXMgYXV0b21hdGljYWxseSBhbGxvd2VkLiBgXCJsaW1pdGVkXCJgIGlzIHRyZWF0ZWQgdGhlIHNhbWUgYXMgYHRydWVgIGJ5IHRoZSBiYWNrIGVuZCwgYnV0IHJlcG9ydGVkIGFzLWlzIHRvIGNsaWVudHMgKi9cbiAgICBXZWJhcHBFbmFibGVkOiBib29sZWFuIHwgXCJsaW1pdGVkXCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFsbG93ZWQgd2ViaG9vayBtZXRob2RzXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBXZWJob29rTWV0aG9kOiBcIkdFVFwiIHwgXCJQT1NUXCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBwYXlsb2FkIHRoYXQgaXMgc2VudCB0byB0aGUgd2ViaG9vay5cbiAgICAgKlxuICAgICAqIFRoZSB3ZWJob29rIHNob3VsZCByZXNwb25kIHdpdGggSFRUUCBzdGF0dXMgY29kZSAyMDAgaWYgdGhlIG9wZXJhdGlvbiBpcyBwZXJtaXR0ZWQuXG4gICAgICpcbiAgICAgKiBBbGwgbm9uLTIwMCBzdGF0dXMgY29kZXMgaW1wbHkgdGhhdCB0aGUgb3BlcmF0aW9uIGlzIGRlbmllZDsgYW55IHJlc3BvbnNlIGJvZHkgcmV0dXJuZWRcbiAgICAgKiBieSB0aGUgd2ViaG9vayB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBlcnJvciByZXNwb25zZSBzZW50IGJhY2sgdG8gdGhlIGNsaWVudC5cbiAgICAgKi9cbiAgICBXZWJob29rUGF5bG9hZDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYWRkcmVzcyAobWF0ZXJpYWwgaWQpIG9mIHRoZSBrZXkgdXNlZCB0byBzaWduIHRoZSByZXF1ZXN0ICovXG4gICAgICBrZXlfYWRkcmVzczogc3RyaW5nO1xuICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICAgIG9wZXJhdGlvbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPcGVyYXRpb25LaW5kXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcGF5bG9hZCAoaWYgYW55KSBvZiB0aGUgc2lnbiBvcGVyYXRpb24gKi9cbiAgICAgIHJlcXVlc3Q/OiB1bmtub3duO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQYXJhbWV0ZXJzIGZvciB0aGUgW0Rlbnk6OldlYmhvb2tdIHBvbGljeS4gKi9cbiAgICBXZWJob29rUG9saWN5UGFyYW1zOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIEhUVFAgaGVhZGVycyB0byBzZXQgKi9cbiAgICAgIGhlYWRlcnM/OiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICAgIH07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIEhUVFAgbWV0aG9kIHRvIHVzZS4gRGVmYXVsdHMgdG8gUE9TVC4gKi9cbiAgICAgIG1ldGhvZD86IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEN1YmVTaWduZXIgb3BlcmF0aW9ucyB0byB3aGljaCB0aGlzIHBvbGljeSBzaG91bGQgYXBwbHkuXG4gICAgICAgKiBXaGVuIG9taXR0ZWQsIGFwcGxpZXMgdG8gYWxsIG9wZXJhdGlvbnMuXG4gICAgICAgKi9cbiAgICAgIHJlc3RyaWN0ZWRfb3BlcmF0aW9ucz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3BlcmF0aW9uS2luZFwiXVtdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFJlcXVlc3QgZXhlY3V0aW9uIHRpbWVvdXQgaW4gc2Vjb25kczsgbXVzdCBub3QgZXhjZWVkIDUgc2Vjb25kcy5cbiAgICAgICAqL1xuICAgICAgdGltZW91dD86IG51bWJlcjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHVybCBvZiB0aGUgd2ViaG9vayAqL1xuICAgICAgdXJsOiBzdHJpbmc7XG4gICAgfTtcbiAgICBXaGVyZUFuZFdoZW46IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU291cmNlSXBcIl0gJiB7XG4gICAgICB0aW1lOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9uZSB3aXRoZHJhd2FsIGVudHJ5IGluIFtgV2l0aGRyYXdIaXN0b3J5UmVzcG9uc2VgXS4gKi9cbiAgICBXaXRoZHJhd0hpc3RvcnlFbnRyeToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiBhZGRyZXNzLiAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaXRoZHJhd2FsIGFtb3VudCwgYXMgYSBkZWNpbWFsIHN0cmluZy4gKi9cbiAgICAgIGFtb3VudDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGltZSB0aGUgd2l0aGRyYXdhbCB3YXMgcmVxdWVzdGVkIChCaW5hbmNlIHJldHVybnMgYSBVVEMgc3RyaW5nLFxuICAgICAgICogZS5nLiBgXCIyMDE5LTA5LTI0IDEyOjQzOjQ1XCJgKS5cbiAgICAgICAqL1xuICAgICAgYXBwbHlUaW1lOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFzc2V0IHN5bWJvbCAoZS5nLiBgXCJVU0RUXCJgLCBgXCJCVENcImApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGltZSB0aGUgd2l0aGRyYXdhbCBjb21wbGV0ZWQgKFVUQyBzdHJpbmcpLCBwcmVzZW50IG9uY2VcbiAgICAgICAqIGBzdGF0dXMgPT0gNmAuXG4gICAgICAgKi9cbiAgICAgIGNvbXBsZXRlVGltZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2Ygb24tY2hhaW4gY29uZmlybWF0aW9ucy5cbiAgICAgICAqL1xuICAgICAgY29uZmlybU5vPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEJpbmFuY2UtYXNzaWduZWQgd2l0aGRyYXdhbCBpZC4gTWF0Y2hlcyB0aGUgYGlkYCByZXR1cm5lZCBieVxuICAgICAgICogW2BXaXRoZHJhd1Jlc3BvbnNlYF0uXG4gICAgICAgKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZhaWx1cmUgcmVhc29uIHdoZW4gdGhlIHdpdGhkcmF3YWwgd2FzIHJlamVjdGVkLiAqL1xuICAgICAgaW5mbz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEJsb2NrY2hhaW4gbmV0d29yayBpZGVudGlmaWVyIChlLmcuIGBcIkJTQ1wiYCwgYFwiRVRIXCJgKS4gKi9cbiAgICAgIG5ldHdvcms/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2l0aGRyYXdhbCBzdGF0dXMuIEJpbmFuY2UgdmFsdWVzOiBgMGAgPSBFbWFpbCBTZW50LFxuICAgICAgICogYDJgID0gQXdhaXRpbmcgQXBwcm92YWwsIGAzYCA9IFJlamVjdGVkLCBgNGAgPSBQcm9jZXNzaW5nLFxuICAgICAgICogYDZgID0gQ29tcGxldGVkLiBMZWZ0IGFzIGB1OGAgZm9yIGZvcndhcmQgY29tcGF0aWJpbGl0eS5cbiAgICAgICAqL1xuICAgICAgc3RhdHVzOiBudW1iZXI7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE5ldHdvcmsgZmVlIGNoYXJnZWQgZm9yIHRoZSB3aXRoZHJhd2FsLCBhcyBhIGRlY2ltYWwgc3RyaW5nLiAqL1xuICAgICAgdHJhbnNhY3Rpb25GZWU6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIGAwYCA9IGV4dGVybmFsIHRyYW5zZmVyLCBgMWAgPSBpbnRlcm5hbCAoQmluYW5jZeKGlEJpbmFuY2UpIHRyYW5zZmVyLlxuICAgICAgICovXG4gICAgICB0cmFuc2ZlclR5cGU6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9uLWNoYWluIHRyYW5zYWN0aW9uIGhhc2gsIG9uY2UgQmluYW5jZSBoYXMgYnJvYWRjYXN0IHRoZSB3aXRoZHJhd2FsLlxuICAgICAgICogTWF5IGJlIGVtcHR5IHVudGlsIHRoZW4uXG4gICAgICAgKi9cbiAgICAgIHR4SWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gU291cmNlIHdhbGxldDogYDBgID0gc3BvdCB3YWxsZXQsIGAxYCA9IGZ1bmRpbmcgd2FsbGV0LlxuICAgICAgICovXG4gICAgICB3YWxsZXRUeXBlOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBDbGllbnQtc3VwcGxpZWQgd2l0aGRyYXdhbCBpZCwgaWYgb25lIHdhcyBzZXQgb24gdGhlIG9yaWdpbmFsXG4gICAgICAgKiB3aXRoZHJhd2FsIGNhbGwuXG4gICAgICAgKi9cbiAgICAgIHdpdGhkcmF3T3JkZXJJZD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgYEdFVCAvc2FwaS92MS9jYXBpdGFsL3dpdGhkcmF3L2hpc3RvcnlgLlxuICAgICAqXG4gICAgICogUmV0dXJucyB0aGUgbWFzdGVyIGFjY291bnQncyB3aXRoZHJhd2FsIGhpc3RvcnkuIEFsbCBmaWx0ZXJzIGFyZVxuICAgICAqIG9wdGlvbmFsOyBpZiBgc3RhcnRfdGltZWAvYGVuZF90aW1lYCBhcmUgb21pdHRlZCwgQmluYW5jZSByZXR1cm5zIHRoZVxuICAgICAqIG1vc3QgcmVjZW50IDkwIGRheXMuIFVzZSBgaWRfbGlzdGAgdG8gbG9vayB1cCBzcGVjaWZpYyB3aXRoZHJhd2FscyBieVxuICAgICAqIHRoZSBgaWRgIHJldHVybmVkIGZyb20gW2BCaW5hbmNlUnBjOjpXaXRoZHJhd2BdLCBvciBgd2l0aGRyYXdfb3JkZXJfaWRgXG4gICAgICogdG8gbG9vayBvbmUgdXAgYnkgaXRzIGNsaWVudC1zdXBwbGllZCBpZC5cbiAgICAgKi9cbiAgICBXaXRoZHJhd0hpc3RvcnlSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEZpbHRlciB0byBhIHNwZWNpZmljIGFzc2V0IChlLmcuIGBcIlVTRFRcImApLiAqL1xuICAgICAgY29pbj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXaW5kb3cgZW5kIChtcyBzaW5jZSBlcG9jaCkuXG4gICAgICAgKi9cbiAgICAgIGVuZFRpbWU/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgQmluYW5jZS1hc3NpZ25lZCB3aXRoZHJhd2FsIGlkcyAodGhlIGBpZGBcbiAgICAgICAqIGZpZWxkIG9mIGBXaXRoZHJhd1Jlc3BvbnNlYCkuIFVwIHRvIDQ1IGlkcyBwZXIgcXVlcnksIHBlciBCaW5hbmNlLlxuICAgICAgICovXG4gICAgICBpZExpc3Q/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUGFnZSBzaXplIChCaW5hbmNlIGRlZmF1bHQgYW5kIG1heDogMTAwMCkuXG4gICAgICAgKi9cbiAgICAgIGxpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFBhZ2luYXRpb24gb2Zmc2V0LlxuICAgICAgICovXG4gICAgICBvZmZzZXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2luZG93IHN0YXJ0IChtcyBzaW5jZSBlcG9jaCkuXG4gICAgICAgKi9cbiAgICAgIHN0YXJ0VGltZT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgYnkgd2l0aGRyYXdhbCBzdGF0dXMuIEJpbmFuY2UgdmFsdWVzOlxuICAgICAgICogYDBgID0gRW1haWwgU2VudCwgYDJgID0gQXdhaXRpbmcgQXBwcm92YWwsIGAzYCA9IFJlamVjdGVkLFxuICAgICAgICogYDRgID0gUHJvY2Vzc2luZywgYDZgID0gQ29tcGxldGVkLiBMZWZ0IGFzIGB1OGAgZm9yIGZvcndhcmRcbiAgICAgICAqIGNvbXBhdGliaWxpdHkuXG4gICAgICAgKi9cbiAgICAgIHN0YXR1cz86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgYnkgdGhlIGNsaWVudC1zdXBwbGllZCB3aXRoZHJhd2FsIGlkIG9yaWdpbmFsbHkgcGFzc2VkIHRvXG4gICAgICAgKiBbYFdpdGhkcmF3UmVxdWVzdDo6d2l0aGRyYXdfb3JkZXJfaWRgXS5cbiAgICAgICAqL1xuICAgICAgd2l0aGRyYXdPcmRlcklkPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSByZXR1cm5lZCBieSBgY3NfYmluYW5jZVdpdGhkcmF3SGlzdG9yeWAuXG4gICAgICpcbiAgICAgKiBCaW5hbmNlIHJldHVybnMgYSB0b3AtbGV2ZWwgSlNPTiBhcnJheTsgdGhpcyBuZXd0eXBlIHByZXNlcnZlcyB0aGF0IHdpcmVcbiAgICAgKiBmb3JtYXQgd2hpbGUgZ2l2aW5nIHRoZSByZXNwb25zZSBhIG5hbWVkIHR5cGUgaW4gdGhlIE9wZW5BUEkgc2NoZW1hLlxuICAgICAqL1xuICAgIFdpdGhkcmF3SGlzdG9yeVJlc3BvbnNlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIldpdGhkcmF3SGlzdG9yeUVudHJ5XCJdW107XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcmFtZXRlcnMgZm9yIGBQT1NUIC9zYXBpL3YxL2NhcGl0YWwvd2l0aGRyYXcvYXBwbHlgLlxuICAgICAqXG4gICAgICogU3VibWl0cyBhIHdpdGhkcmF3YWwgb2YgYGFtb3VudGAgb2YgYGNvaW5gIHRvIHRoZSBnaXZlbiBleHRlcm5hbCBgYWRkcmVzc2AuXG4gICAgICogVGhlIHNpZ25pbmcga2V5J3MgYWNjb3VudCBtdXN0IGhhdmUgd2l0aGRyYXdhbCBwZXJtaXNzaW9ucyBlbmFibGVkLlxuICAgICAqL1xuICAgIFdpdGhkcmF3UmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiBhZGRyZXNzLiAqL1xuICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gU2Vjb25kYXJ5IGFkZHJlc3MgaWRlbnRpZmllciByZXF1aXJlZCBieSBzb21lIGFzc2V0cyAoZS5nLiBtZW1vIGZvclxuICAgICAgICogWFJQLCB0YWcgZm9yIFhMTSkuXG4gICAgICAgKi9cbiAgICAgIGFkZHJlc3NUYWc/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGFtb3VudCBiZWluZyB3aXRoZHJhd24sIGZvcm1hdHRlZCBhcyBhIGRlY2ltYWwgc3RyaW5nIChlLmcuIGBcIjAuMVwiYCkuXG4gICAgICAgKiBTZW50IHZlcmJhdGltOiBCaW5hbmNlIGlzIHN0cmljdCBhYm91dCBkZWNpbWFsIGZvcm1hdHRpbmcuXG4gICAgICAgKi9cbiAgICAgIGFtb3VudDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYXNzZXQgc3ltYm9sIGJlaW5nIHdpdGhkcmF3biAoZS5nLiBgXCJVU0RUXCJgLCBgXCJCVENcImApLiAqL1xuICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBmb3IgdGhlIHdpdGhkcmF3YWwuICovXG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE5ldHdvcmsgaWRlbnRpZmllciAoZS5nLiBgXCJCU0NcImAsIGBcIkVUSFwiYCkuIElmIG9taXR0ZWQsIEJpbmFuY2UgcGlja3NcbiAgICAgICAqIHRoZSBkZWZhdWx0IG5ldHdvcmsgZm9yIHRoZSBhc3NldC5cbiAgICAgICAqL1xuICAgICAgbmV0d29yaz86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBgdHJ1ZWAsIHRoZSB3aXRoZHJhd2FsIGZlZSBpcyBkZWR1Y3RlZCBmcm9tIHRoZSBkZXN0aW5hdGlvbiBhbW91bnQ7XG4gICAgICAgKiBpZiBgZmFsc2VgIChCaW5hbmNlIGRlZmF1bHQpLCBpdCBpcyBkZWR1Y3RlZCBmcm9tIHRoZSBhY2NvdW50IGJhbGFuY2VcbiAgICAgICAqIGluIGFkZGl0aW9uIHRvIGBhbW91bnRgLlxuICAgICAgICovXG4gICAgICB0cmFuc2FjdGlvbkZlZUZsYWc/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFNvdXJjZSB3YWxsZXQ6IGAwYCA9IHNwb3Qgd2FsbGV0IChkZWZhdWx0KSwgYDFgID0gZnVuZGluZyB3YWxsZXQuXG4gICAgICAgKi9cbiAgICAgIHdhbGxldFR5cGU/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ2xpZW50LXN1cHBsaWVkIHdpdGhkcmF3YWwgaWQsIHJldHVybmVkIGJ5IEJpbmFuY2UgYXMgYHdpdGhkcmF3T3JkZXJJZGBcbiAgICAgICAqIGluIHN1YnNlcXVlbnQgd2l0aGRyYXdhbC1oaXN0b3J5IHF1ZXJpZXMuXG4gICAgICAgKi9cbiAgICAgIHdpdGhkcmF3T3JkZXJJZD86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIGJ5IGBjc19iaW5hbmNlV2l0aGRyYXdgLiAqL1xuICAgIFdpdGhkcmF3UmVzcG9uc2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEJpbmFuY2UtYXNzaWduZWQgd2l0aGRyYXdhbCBpZC4gVXNlZCB0byBsb29rIHRoZSByZXF1ZXN0IHVwIGxhdGVyIHZpYVxuICAgICAgICogdGhlIHdpdGhkcmF3YWwtaGlzdG9yeSBlbmRwb2ludC5cbiAgICAgICAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICB9O1xuICByZXNwb25zZXM6IHtcbiAgICBBZGRUaGlyZFBhcnR5VXNlclJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmICovXG4gICAgICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIHRvIHRoZSBpZHAgYXV0aGVudGljYXRlIGVuZHBvaW50ICovXG4gICAgQXV0aGVudGljYXRpb25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gT0lEQyB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIEN1YmVTaWduZXIgKi9cbiAgICAgICAgICBpZF90b2tlbjogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEJhYnlsb25Db3ZTaWduUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzbGFzaC11bmJvbmRpbmcgdHJhbnNhY3Rpb24gc2lnbmF0dXJlcyBhcyBhbiBhcnJheSBvZiBoZXggc3RyaW5ncyB3aXRoIG5vIDB4IHByZWZpeFxuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIFwiMDJlMjFhN2IwNTE5NTM5ZWY2NzBmNzlkMWMyNWE1NGY5MGIwYzZkOWZkYjU2YTdkZTgxM2ZiMjA3MDMzMDMyZmZmYWQ4YWFhZmViMWI3N2RkOWVhOGYxN2RhZGNmMjk3Njk2YmJmNWE0MTMzMjkyZjM1MTViODZiYjljMmQ3OGQ5Y1wiXG4gICAgICAgICAgICogXVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNsYXNoX3VuYm9uZGluZ190cmFuc2FjdGlvbnNfc2lnbmF0dXJlczogc3RyaW5nW107XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzbGFzaGluZyB0cmFuc2FjdGlvbiBzaWduYXR1cmVzIGFzIGFuIGFycmF5IG9mIGhleCBzdHJpbmdzIHdpdGggbm8gMHggcHJlZml4XG4gICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAqICAgXCIwMzA3NWVjYTlkMTc2ZDE2MDVkNmMwOTZjMTExZTlhNGY4ZDg3MzlhYzk3MDhjMWRmM2VkNTE2MTA2ZTdhYjEzODdhMzkyNGE2NjUyYWNmMmUzNTI0MzU5NzMxY2ExZmJiMzM4YTNhZmIxYTY3ZjZlYTE5YzIwN2I2ZmY0NjZhNWFkXCIsXG4gICAgICAgICAgICogICBcIjAyMjIyNDQ5M2Y0Y2ZmYWQ1Yjg0MDc2ZGIzMmRkOGM0OWEyOGZmNDhhZjRlMTllMmJjYzk5NTNmZjgwMzQ3YmE2ZTgzNDNjZjdhNDRlNzRhOTZmZjcxZWE1OWEwM2I0MDE2NmU4NWIwZDEzNTU5NTRlMDRhNDQyN2RjOGQ2MzdmZjBcIlxuICAgICAgICAgICAqIF1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBzbGFzaGluZ190cmFuc2FjdGlvbnNfc2lnbmF0dXJlczogc3RyaW5nW107XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzaWduYXR1cmUgdGhhdCBhbGxvd3MgZXhwYW5kaW5nIGEgc3Rha2UgYnkgc3BlbmRpbmcgdGhlIGN1cnJlbnQgYWN0aXZlXG4gICAgICAgICAgICogc3Rha2UgdHJhbnNhY3Rpb24gaW50byBhIG5ldyBzdGFraW5nIHRyYW5zYWN0aW9uLiBBIHZhbHVlIGlzIHByZXNlbnQgaWZmIHRoZVxuICAgICAgICAgICAqIGNvcnJlc3BvbmRpbmcgcmVxdWVzdCBpbmNsdWRlZCBhIGBzdGFrZV9leHBhbnNpb25gIHZhbHVlLlxuICAgICAgICAgICAqIEBleGFtcGxlIGI1NzNlMzE4ODAzZmQ3YWVlMWJlNWI2YjE4ZDQ5NmNjNjBlY2M1MjQyOWRiZDQ3N2E4NzkyMTdjM2VkMjZhNzk1Y2I0ZjRlODgwYWFmZjNhNmFkNjYzMzVlNTQwNGZhNTFjYWViNDk2NGYwYzlmNzU2MjczNzg2NGUzYmRlNWJjXG4gICAgICAgICAgICovXG4gICAgICAgICAgc3Rha2VfZXhwYW5zaW9uX3RyYW5zYWN0aW9uX3NpZ25hdHVyZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB1bmJvbmRpbmcgdHJhbnNhY3Rpb24gc2lnbmF0dXJlIGFzIGhleCBzdHJpbmcgd2l0aCBubyAweCBwcmVmaXhcbiAgICAgICAgICAgKiBAZXhhbXBsZSBiNTczZTMxODgwM2ZkN2FlZTFiZTViNmIxOGQ0OTZjYzYwZWNjNTI0MjlkYmQ0NzdhODc5MjE3YzNlZDI2YTc5NWNiNGY0ZTg4MGFhZmYzYTZhZDY2MzM1ZTU0MDRmYTUxY2FlYjQ5NjRmMGM5Zjc1NjI3Mzc4NjRlM2JkZTViY1xuICAgICAgICAgICAqL1xuICAgICAgICAgIHVuYm9uZGluZ190cmFuc2FjdGlvbl9zaWduYXR1cmU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBCYWJ5bG9uUmVnaXN0cmF0aW9uUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBCYWJ5bG9uIGFkZHJlc3MgdGhhdCB3aWxsIHJlY2VpdmUgdGhlIHN0YWtpbmcgcmV3YXJkcyBmb3IgdGhpcyBkZXBvc2l0LlxuICAgICAgICAgICAqXG4gICAgICAgICAgICogVGhpcyB2YWx1ZSB3aWxsIGNvcnJlc3BvbmQgdG8gdGhlIGBiYm5fYWRkcmAgdmFsdWUgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0LFxuICAgICAgICAgICAqIGJ1dCBpdCB3aWxsIGFsd2F5cyBoYXZlIGEgYGJibmAgaHVtYW4tcmVhZGFibGUgcGFydC5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBiYm4xbjVhbm1jMGtrcmg3MHlqeTdmNmYzOTljNzR5ZDA5eGw1dGVmZm1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBiYm5fYWRkcjogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZGVwb3NpdCB0cmFuc2FjdGlvbiBQU0JULiBUaGlzIFBTQlQgaW5jbHVkZXMgc2lnbmF0dXJlcyBvbiBhbnlcbiAgICAgICAgICAgKiBpbnB1dHMgY29udHJvbGxlZCBieSB0aGUgc3Rha2VyIHRhcHJvb3Qga2V5IHNwZWNpZmllZCBpbiB0aGUgcmVxdWVzdC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBkZXBvc2l0OiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZGVwb3NpdCB0cmFuc2FjdGlvbiBmZWUgaW4gc2F0cy5cbiAgICAgICAgICAgKiBAZXhhbXBsZSAxMzM3XG4gICAgICAgICAgICovXG4gICAgICAgICAgZGVwb3NpdF9mZWU6IG51bWJlcjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHByb29mIG9mIHBvc3Nlc3Npb24sIGkuZS4sIGEgQklQMzIyIHNpZ25hdHVyZSBvbiB0aGUgc3Rha2VyJ3NcbiAgICAgICAgICAgKiBCYWJ5bG9uIGFkZHJlc3Mgc2lnbmVkIGJ5IHRoZSBzdGFrZXIgdGFwcm9vdCBrZXkuIFRoaXMgaXMgYSBCaXRjb2luXG4gICAgICAgICAgICogd2l0bmVzcyBzdGFjayBpbiBCaXRjb2luIGNvbnNlbnN1cyBoZXggZW5jb2RpbmcuXG4gICAgICAgICAgICovXG4gICAgICAgICAgcG9wOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgc2xhc2gtZGVwb3NpdCB0cmFuc2FjdGlvbiBpbiBCaXRjb2luIGNvbnNlbnN1cyBoZXggZW5jb2RpbmcuICovXG4gICAgICAgICAgc2xhc2hfZGVwb3NpdDogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3Rha2VyIHRhcHJvb3Qga2V5J3Mgc2lnbmF0dXJlIG9uIHRoZSBzbGFzaC1kZXBvc2l0IHRyYW5zYWN0aW9uLlxuICAgICAgICAgICAqIFRoaXMgaXMgYSBCSVAzNDAgc2lnbmF0dXJlIGluIGhleCBmb3JtYXQuXG4gICAgICAgICAgICovXG4gICAgICAgICAgc2xhc2hfZGVwb3NpdF9zaWc6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzbGFzaC11bmJvbmQgdHJhbnNhY3Rpb24gaW4gQml0Y29pbiBjb25zZW5zdXMgaGV4IGVuY29kaW5nLiAqL1xuICAgICAgICAgIHNsYXNoX3VuYm9uZDogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3Rha2VyIHRhcHJvb3Qga2V5J3Mgc2lnbmF0dXJlIG9uIHRoZSBzbGFzaC11bmJvbmQgdHJhbnNhY3Rpb24uXG4gICAgICAgICAgICogVGhpcyBpcyBhIEJJUDM0MCBzaWduYXR1cmUgaW4gaGV4IGZvcm1hdC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBzbGFzaF91bmJvbmRfc2lnOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgKHVuc2lnbmVkKSB1bmJvbmRpbmcgdHJhbnNhY3Rpb24gaW4gQml0Y29pbiBjb25zZW5zdXMgaGV4IGVuY29kaW5nLiAqL1xuICAgICAgICAgIHVuYm9uZDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEJhYnlsb25TdGFraW5nUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdHJhbnNhY3Rpb24gZmVlIGluIHNhdHNcbiAgICAgICAgICAgKiBAZXhhbXBsZSAxMzM3XG4gICAgICAgICAgICovXG4gICAgICAgICAgZmVlOiBudW1iZXI7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBQU0JUIGluIGVpdGhlciBoZXggb3IgYmFzZTY0IHNlcmlhbGl6YXRpb25cbiAgICAgICAgICAgKiBAZXhhbXBsZSA3MDczNjI3NGZmMDEwMDVlLi4uXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHNidDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgcmV0dXJuZWQgYnkgdGhlIHR5cGVkIGBiaW5hbmNlX3NpZ25gIGVuZHBvaW50LiAqL1xuICAgIEJpbmFuY2VTaWduUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBmdWxsIHNpZ25lZCBxdWVyeSBzdHJpbmcsIHJlYWR5IHRvIGJlIHN1Ym1pdHRlZCB0byBCaW5hbmNlLlxuICAgICAgICAgICAqIEVuY29kZWQgYXMgYDx1cmxlbmNvZGVkIHBhcmFtcz4mcmVjdldpbmRvdz08bXM+JnRpbWVzdGFtcD08bXM+JnNpZ25hdHVyZT08dXJsZW5jb2RlZCBiYXNlNjQgc2lnPmAuXG4gICAgICAgICAgICovXG4gICAgICAgICAgc2lnbmVkX3F1ZXJ5OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBCVEMgbWVzc2FnZSBzaWduaW5nIHJlc3BvbnNlICovXG4gICAgQnRjTWVzc2FnZVNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBiYXNlNjQtZW5jb2RlZCBzaWduYXR1cmUgaW4gQklQMTM3IGZvcm1hdC4gKi9cbiAgICAgICAgICBzaWc6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIGFib3V0IGEgcG9saWN5IEtWIHN0b3JlIGJ1Y2tldC4gKi9cbiAgICBCdWNrZXRJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiAoe1xuICAgICAgICAgIGNyZWF0ZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl0gfCBudWxsO1xuICAgICAgICAgIGxhc3RfbW9kaWZpZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl0gfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVmVyc2lvbiBvZiB0aGlzIG9iamVjdFxuICAgICAgICAgICAqL1xuICAgICAgICAgIHZlcnNpb24/OiBudW1iZXI7XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYWNjZXNzLWNvbnRyb2wgZW50cmllcyBmb3IgdGhlIGJ1Y2tldC4gKi9cbiAgICAgICAgICBhY2w/OiB1bmtub3duW10gfCBudWxsO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXJiaXRyYXJ5IHVzZXItZGVmaW5lZCBtZXRhZGF0YS4gKi9cbiAgICAgICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgICAgICAgb3JnX2lkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgICAgIG93bmVyOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkXCJdO1xuICAgICAgICB9KSAmIHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuYW1lIG9mIHRoZSBidWNrZXQuICovXG4gICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgcmV0dXJuZWQgYnkgdGhlIHR5cGVkIGBieWJpdF9zaWduYCBlbmRwb2ludC4gKi9cbiAgICBCeWJpdFNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEJ5Yml0LWJvdW5kIHBheWxvYWQgKFVSTC1lbmNvZGVkIHF1ZXJ5IGZvciBHRVQsIEpTT04gYm9keSBmb3JcbiAgICAgICAgICAgKiBQT1NUKS4gU3VibWl0dGVkIHZlcmJhdGltIGJ5IHRoZSBycGMtYXBpIGxhbWJkYTsgdGhlIHBheWxvYWQgYnl0ZXMgYXJlXG4gICAgICAgICAgICogYWxzbyBwYXJ0IG9mIHRoZSBzaWduaW5nIGlucHV0LlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHBheWxvYWQ6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEVmZmVjdGl2ZSByZWNlaXZlIHdpbmRvdyBpbiBtaWxsaXNlY29uZHMuXG4gICAgICAgICAgICovXG4gICAgICAgICAgcmVjdl93aW5kb3c6IG51bWJlcjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgSE1BQy1TSEEyNTYgc2lnbmF0dXJlIG9mXG4gICAgICAgICAgICogYHRpbWVzdGFtcCB8fCBhcGlLZXkgfHwgcmVjdldpbmRvdyB8fCBwYXlsb2FkYC4gR29lcyBpbnRvIHRoZVxuICAgICAgICAgICAqIGBYLUJBUEktU0lHTmAgaGVhZGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNpZ25hdHVyZV9oZXg6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFNpZ25pbmcgdGltZXN0YW1wIChtcyBzaW5jZSBlcG9jaCkuIFBpY2tlZCBieSB0aGUgc2lnbmVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHRpbWVzdGFtcF9tczogbnVtYmVyO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgcmV0dXJuZWQgYnkgdGhlIHR5cGVkIGBjb2luYmFzZV9zaWduYCBlbmRwb2ludC4gKi9cbiAgICBDb2luYmFzZVNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHNpZ25lZCBKV1QsIHJlYWR5IHRvIGJlIHNlbnQgaW4gYEF1dGhvcml6YXRpb246IEJlYXJlciA8and0PmAgdG9cbiAgICAgICAgICAgKiB0aGUgQ29pbmJhc2UgQWR2YW5jZWQgVHJhZGUgQVBJLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGp3dDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG51bWJlciBvZiB1c2VycyBhbmQga2V5cyBpbiBhbiBvcmcsIG9yZ2FuaXplZCBieSB1c2VyIHJvbGUgYW5kIGtleSB0eXBlICovXG4gICAgQ29tcHV0ZUNvdW50c1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEEgbWFwIG9mIGEgYEtleVR5cGVgIHRvIHRoZSBhbW91bnQgb2Yga2V5cyB3aXRoIHRoYXQgdHlwZSBpbiB0aGUgb3JnLlxuICAgICAgICAgICAqIEBleGFtcGxlIHtcbiAgICAgICAgICAgKiAgIFwiU2VjcEJ0Y1wiOiAzLFxuICAgICAgICAgICAqICAgXCJTZWNwRXRoQWRkclwiOiAxXG4gICAgICAgICAgICogfVxuICAgICAgICAgICAqL1xuICAgICAgICAgIGtleXM6IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IG51bWJlcjtcbiAgICAgICAgICB9O1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBIG1hcCBvZiBhIGBNZW1iZXJSb2xlYCB0byB0aGUgYW1vdW50IG9mIG51bWJlciBvZiB1c2VycyB3aXRoIHRoYXQgcm9sZSBpbiB0aGUgb3JnLlxuICAgICAgICAgICAqIEBleGFtcGxlIHtcbiAgICAgICAgICAgKiAgIFwiTWVtYmVyXCI6IDEwLFxuICAgICAgICAgICAqICAgXCJPd25lclwiOiAxXG4gICAgICAgICAgICogfVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHVzZXJzOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBudW1iZXI7XG4gICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIGFib3V0IGEgQ29udGFjdC4gKi9cbiAgICBDb250YWN0SW5mb1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbnRhY3RcIl0gJiB7XG4gICAgICAgICAgYWRkcmVzc2VzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFkZHJlc3NNYXBcIl07XG4gICAgICAgICAgaWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgQ3JlYXRlS2V5SW1wb3J0S2V5UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW1wb3J0S2V5XCJdICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBhdHRlc3RhdGlvbiBkb2N1bWVudCBmcm9tIGEgc2VjdXJlIGVuY2xhdmUsIGluY2x1ZGluZyBhblxuICAgICAgICAgICAqIFJTQSBzaWduaW5nIGtleSB1c2VkIHRvIHNpZ24gdGhlIGNvbnRlbnRzIG9mIHRoaXMgbWVzc2FnZS5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmNsYXZlX2F0dGVzdGF0aW9uOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEFuIFJTQS1QU1MtU0hBMjU2IHNpZ25hdHVyZSBvbiB0aGUgcHVibGljIGtleSBhbmQgZW5jcnlwdGVkXG4gICAgICAgICAgICogc2VjcmV0cyBhdHRlc3RpbmcgdG8gdGhlaXIgZ2VuZXJhdGlvbiBpbnNpZGUgYSBzZWN1cmUgZW5jbGF2ZS5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmNsYXZlX3NpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIENyZWF0ZUtleVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaW5mbyBhYm91dCB0aGUgY3JlYXRlZCBrZXlzICovXG4gICAgICAgICAga2V5czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJbmZvXCJdW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSByZXNwb25zZSB0byBbY3JlYXRlX2ltcG9ydF9rZXldIGNvbnRhaW5pbmcgdGhlIGdlbmVyYXRlZCBrZXkgYW5kIGVuY2xhdmVcbiAgICAgKiBhdHRlc3RhdGlvbnMuXG4gICAgICovXG4gICAgQ3JlYXRlUG9saWN5SW1wb3J0S2V5UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW1wb3J0S2V5XCJdICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBhdHRlc3RhdGlvbiBkb2N1bWVudCBmcm9tIGEgc2VjdXJlIGVuY2xhdmUsIGluY2x1ZGluZyBhblxuICAgICAgICAgICAqIFJTQSBzaWduaW5nIGtleSB1c2VkIHRvIHNpZ24gdGhlIGNvbnRlbnRzIG9mIHRoaXMgbWVzc2FnZS5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmNsYXZlX2F0dGVzdGF0aW9uOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEFuIFJTQS1QU1MtU0hBMjU2IHNpZ25hdHVyZSBvbiB0aGUgcHVibGljIGtleSBhbmQgZW5jcnlwdGVkXG4gICAgICAgICAgICogc2VjcmV0cyBhdHRlc3RpbmcgdG8gdGhlaXIgZ2VuZXJhdGlvbiBpbnNpZGUgYSBzZWN1cmUgZW5jbGF2ZS5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmNsYXZlX3NpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5ld2x5IGNyZWF0ZWQgcm9sZSBpbmZvcm1hdGlvbiAqL1xuICAgIENyZWF0ZVJvbGVSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSByb2xlLlxuICAgICAgICAgICAqIEBleGFtcGxlIG15X3JvbGVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBuZXdseSBjcmVhdGVkIHJvbGVcbiAgICAgICAgICAgKiBAZXhhbXBsZSBSb2xlI2JmZTNlY2NiLTczMWUtNDMwZC1iMWU1LWFjMTM2M2U2YjA2YlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHRvIFtDdXN0b21DaGFpblJwY1JlcXVlc3RdICovXG4gICAgQ3VzdG9tQ2hhaW5ScGNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogdW5rbm93bjtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXN1bHQgb2YgYSBEaWZmaWUgSGVsbG1hbiBrZXkgZXhjaGFuZ2UgKi9cbiAgICBEaWZmaWVIZWxsbWFuUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IChcbiAgICAgICAgICB8IHtcbiAgICAgICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzdWx0aW5nIHBvaW50cyBhcyBiYXNlNjQtZW5jb2RlZCBieXRlIHN0cmluZ3MgaW4gYSBrZXktdHlwZS0tZGVwZW5kZW50IGZvcm1hdC4gKi9cbiAgICAgICAgICAgICAgcG9pbnRzOiBzdHJpbmdbXTtcbiAgICAgICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgICAgIHJlc3BvbnNlX3R5cGU6IFwibWFza2VkXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfCB7XG4gICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQSBjaXBoZXJ0ZXh0IGNvbnRhaW5pbmcgdGhlIHJlc3VsdGluZyBwb2ludHMuIFRoZSBlbmNsb3NlZCBwbGFpbnRleHQgaXMgYSBzZXF1ZW5jZVxuICAgICAgICAgICAgICAgKiBvZiBiYXNlNjQtZW5jb2RlZCBieXRlIHN0cmluZ3MgaW4gYSBrZXktdHlwZS0tZGVwZW5kZW50IGZvcm1hdC5cbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIGVuY3J5cHRlZF9zaGFyZWRfc2VjcmV0czogc3RyaW5nO1xuICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlcGhlbWVyYWwgcHVibGljIGtleSB1c2VkIGZvciBIUEtFIGtleSBkZXJpdmF0aW9uIGluIGJhc2U2NC1lbmNvZGVkXG4gICAgICAgICAgICAgICAqIHVuY29tcHJlc3NlZCBTRUMxIHNlcmlhbGl6YXRpb24uXG4gICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICBlcGhlbWVyYWxfcHVibGljX2tleTogc3RyaW5nO1xuICAgICAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICAgICAgcmVzcG9uc2VfdHlwZTogXCJlbmNyeXB0ZWRcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKSAmIHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgICAgIH0gJiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBIVFRQIHJlc3BvbnNlIHRvIGFuIGVtYWlsIE9UUCByZXF1ZXN0LlxuICAgICAqXG4gICAgICogVGhpcyByZXNwb25zZSBjb250YWlucyBhbiBPSURDIHRva2VuIHdpdGhvdXQgYSBzaWduYXR1cmUuXG4gICAgICogVGhlIHNpZ25hdHVyZSBpcyBzZW50IHRvIHRoZSBlbmQtdXNlciBpbiBhbiBlbWFpbC5cbiAgICAgKiBUaGUgdG9rZW4gY2FuIGJlIHJlY29uc3RydWN0ZWQgYnkgY29uY2F0ZW5hdGluZyB0aGUgYHBhcnRpYWxfdG9rZW5gIHdpdGggdGhlIHNpZ25hdHVyZS5cbiAgICAgKi9cbiAgICBFbWFpbE90cFJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBPSURDIHRva2VuIHdpdGhvdXQgdGhlIHNpZ25hdHVyZS5cbiAgICAgICAgICAgKiAoVGhlIHNpZ25hdHVyZSwgd2hpY2ggaXMgYWN0dWFsbHkgYSBNQUMsIGlzIHNlbnQgdG8gdGhlIGVuZC11c2VyIGluIGFuIGVtYWlsKVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHBhcnRpYWxfdG9rZW46IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBFbXB0eUltcGw6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzdGF0dXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3RhdHVzT2tcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSBnZW5lcmF0ZWQgd2hlbiBjcmVhdGluZyBFT1RTIG5vbmNlcyAqL1xuICAgIEVvdHNDcmVhdGVOb25jZVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBwb2xpY3kgZXZhbHVhdGlvbiB0cmVlLiAqL1xuICAgICAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZ2VuZXJhdGVkIG5vbmNlcyBhcyBhbiBhcnJheSBvZiAweC1wcmVmaXhlZCBoZXggc3RyaW5nc1xuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIFwiMHhiMzkzYmYzOWU3MWExNmQ3ODQ4NTNkNTgyNTVhMjk2MjIyYTk5ZmQzYzg3YWE3Y2EyMDZjNTIzMGMxODhmMWM3XCIsXG4gICAgICAgICAgICogICBcIjB4ZTAxOTM2NTg0YjRmMGMwZTk3ZjBkMzAxOGM0ZjlkYjJiZjdkZTQxMzk1YzY0MDNhNDhmZDBkZmYwZWY3YjQwZFwiXG4gICAgICAgICAgICogXVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG5vbmNlczogc3RyaW5nW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSB0byBbRXNwbG9yYVJlcXVlc3RdICovXG4gICAgRXNwbG9yYVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB1bmtub3duO1xuICAgICAgfTtcbiAgICB9O1xuICAgIEV0aDFTaWduUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljeSBldmFsdWF0aW9uIHRyZWUuICovXG4gICAgICAgICAgcG9saWN5X2V2YWxfdHJlZT86IHVua25vd247XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIFJMUCBlbmNvZGluZyBvZiB0aGUgdHJhbnNhY3Rpb24gYW5kIGl0cyBzaWduYXR1cmVcbiAgICAgICAgICAgKiBAZXhhbXBsZSAweDIyODk1MTE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIwMWQ1ODY1NmIwZTIyYWFhNjhmZGM2OTJkYjQxOTc5MDk4YzM4ODZlZDMzMDE1ZDc0NjdkZTkyMTE2MDljZGFjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzA4YjBjMjkwMDMyNGQzZmY5YWRmYmE3ZmRmZTVhZjNmOWIyY2RiZWVmN2IyODA0MzdiYmYxYjFjNTlhMDkzZDYxNWFmZTNlNWRmZWQ5NjIyYjU0MGNkZDliNDliM2M1YWQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OTAxMWFkYmNjM2JjOWMwMzA3YmIwN2YzN2RkYTFhMWE5YzY5ZDJlMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDkwM2RiODUyNTY3NGI4ZTc5MDRmOWI3ZDdkOWVjNTVhMGE0MmQzM2NmNThiZTI1NDY5YjBjMjFiYmI2ZDA2MTcyYmM1YmI1ZmQxYWVkOGU0ZjM1OTM2OTY4OTU4MTE2YjA2MTk1NTNjMmNiMWM1MmU3MzIzMDc0YzZmOGViM2Q1YTcwNzRmYzY1ODAxNDhkZjkwNzgzN2ZhM2IxNjRhZDdmYmMyMjg4ZGFkMWU4YTViMDIxMDk1YjU3YzhhMzZkNFxuICAgICAgICAgICAqL1xuICAgICAgICAgIHJscF9zaWduZWRfdHg6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBGaWRvQXNzZXJ0Q2hhbGxlbmdlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiAoY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDaGFsbGVuZ2VQaWVjZXNcIl0gJiB7XG4gICAgICAgICAgb3B0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNcIl07XG4gICAgICAgIH0pICYge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBjaGFsbGVuZ2UuIE11c3QgYmUgc3VwcGxpZWQgd2hlbiBhbnN3ZXJpbmcgdGhlIGNoYWxsZW5nZS4gKi9cbiAgICAgICAgICBjaGFsbGVuZ2VfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU2VudCBieSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIENvbnRhaW5zIHRoZSBjaGFsbGVuZ2UgZGF0YSB0aGF0IG11c3QgYmVcbiAgICAgKiB1c2VkIHRvIGdlbmVyYXRlIGEgbmV3IGNyZWRlbnRpYWxcbiAgICAgKi9cbiAgICBGaWRvQ3JlYXRlQ2hhbGxlbmdlUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IChjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNoYWxsZW5nZVBpZWNlc1wiXSAmIHtcbiAgICAgICAgICBvcHRpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnNcIl07XG4gICAgICAgIH0pICYge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBjaGFsbGVuZ2UuIE11c3QgYmUgc3VwcGxpZWQgd2hlbiBhbnN3ZXJpbmcgdGhlIGNoYWxsZW5nZS4gKi9cbiAgICAgICAgICBjaGFsbGVuZ2VfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3VsdCBvZiByZWdpc3RlcmluZyBhIEZJRE8ga2V5ICovXG4gICAgRmlkb1JlZ2lzdGVyUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBtZmE/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgICAgIHN0YXR1czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdGF0dXNPa1wiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBzZW5kZXIgY29uZmlndXJhdGlvbiAod2l0aG91dCBzZW5zaXRpdmUgYXV0aCBkZXRhaWxzKSAqL1xuICAgIEdldEVtYWlsQ29uZmlnUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBhZGRyZXNzIHRoYXQgZW1haWxzIGFyZSBzZW50IGZyb20gKi9cbiAgICAgICAgICBzZW5kZXI6IHN0cmluZztcbiAgICAgICAgICB0ZW1wbGF0ZT86IHtcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gSFRNTCB0ZW1wbGF0ZSB0byB1c2UgZm9yIHRoZSBib2R5LiAqL1xuICAgICAgICAgICAgYm9keV90ZW1wbGF0ZTogc3RyaW5nO1xuICAgICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgc3ViamVjdCBsaW5lIHRlbXBsYXRlICovXG4gICAgICAgICAgICBzdWJqZWN0X3RlbXBsYXRlOiBzdHJpbmc7XG4gICAgICAgICAgfSB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgR2V0VXNlckJ5RW1haWxSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUeXBpY2FsbHksIHRoaXMgYXJyYXkgaXMgZWl0aGVyIGVtcHR5IChpZiBubyB1c2VyIHdpdGggYSBnaXZlbiBlbWFpbCB3YXMgZm91bmQpXG4gICAgICAgICAgICogb3IgY29udGFpbnMgYSBzaW5nbGUgZWxlbWVudCwgaS5lLiwgdGhlIHVzZXIgd2l0aCBhIGdpdmVuIGVtYWlsLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHVzZXJzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJJbk9yZ0luZm9XaXRoSWRlbnRpdHlcIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBHZXRVc2VyQnlPaWRjUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICB1c2VyPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VySW5PcmdJbmZvV2l0aElkZW50aXR5XCJdIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUHJvb2YgdGhhdCBhbiBlbmQtdXNlciBwcm92aWRlZCBDdWJlU2lnbmVyIHdpdGggYSB2YWxpZCBhdXRoIHRva2VuXG4gICAgICogKGVpdGhlciBhbiBPSURDIHRva2VuIG9yIGEgQ3ViZVNpZ25lciBzZXNzaW9uIHRva2VuKVxuICAgICAqL1xuICAgIElkZW50aXR5UHJvb2Y6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBhdWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1ZFwiXSB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBhc3NvY2lhdGVkIHdpdGggdGhlIHVzZXJcbiAgICAgICAgICAgKiBAZXhhbXBsZSB1c2VyQGVtYWlsLmNvbVxuICAgICAgICAgICAqL1xuICAgICAgICAgIGVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICBleHBfZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgICAgICBpZGVudGl0eT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY0lkZW50aXR5XCJdIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXJuYW1lIChpZiBhbnkpIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlclxuICAgICAgICAgICAqIEBleGFtcGxlIGN1YmlzdGRldlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHByZWZlcnJlZF91c2VybmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgdXNlcl9pbmZvPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDdWJlU2lnbmVyVXNlckluZm9cIl0gfCBudWxsO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gb3BhcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBwcm9vZiAqL1xuICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzdWx0IG9mIGludm9raW5nIGEgV2FzbSBwb2xpY3kuICovXG4gICAgSW52b2tlUG9saWN5UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICByZXNwb25zZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJXYXNtUG9saWN5UmVzcG9uc2VcIl07XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBieXRlcyB3cml0dGVuIHRvIGBzdGRlcnJgLCBlbmNvZGVkIGFzIGEgaGV4LXN0cmluZy5cbiAgICAgICAgICAgKiBJbiBtb3N0IGNhc2VzLCB0aGVzZSBieXRlcyBjb3JyZXNwb25kIHRvIGEgVVRGLTgtZW5jb2RlZCBgU3RyaW5nYC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBzdGRlcnI6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGJ5dGVzIHdyaXR0ZW4gdG8gYHN0ZG91dGAsIGVuY29kZWQgYXMgYSBoZXgtc3RyaW5nLlxuICAgICAgICAgICAqIEluIG1vc3QgY2FzZXMsIHRoZXNlIGJ5dGVzIGNvcnJlc3BvbmQgdG8gYSBVVEYtOC1lbmNvZGVkIGBTdHJpbmdgLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHN0ZG91dDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEpycGNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSZXNwb25zZVwiXSAmIFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBSUEMgQVBJJ3MgcmVzcG9uc2UuICovXG4gICAgSnNvblJwY1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgZXJyb3I/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yT2JqXCJdIHwgbnVsbDtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIElEIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgcmVxdWVzdC4gKi9cbiAgICAgICAgICBpZD86IHVua25vd247XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDb25zdGFudCBcIjIuMFwiLiAqL1xuICAgICAgICAgIGpzb25ycGM6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3VsdCwgaWYgc3VjY2Vzcy4gKi9cbiAgICAgICAgICByZXN1bHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIEpTT04gV2ViIEtleSBzZXQgZGVzY3JpYmluZyB0aGUga2V5IHVzZWQgdG8gc2lnbiBKU09OIFdlYiBUb2tlbnMgKi9cbiAgICBKd2tTZXRSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGtleXMgaW5jbHVkZWQgaW4gdGhpcyBzZXQgKi9cbiAgICAgICAgICBrZXlzOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERlcml2YXRpb24tcmVsYXRlZCBtZXRhZGF0YSBmb3Iga2V5cyBkZXJpdmVkIGZyb20gYSBsb25nLWxpdmVkIG1uZW1vbmljICovXG4gICAgS2V5RGVyaXZhdGlvbkluZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBkZXJpdmF0aW9uIHBhdGggdXNlZCB0byBkZXJpdmUgdGhpcyBrZXkgKi9cbiAgICAgICAgICBkZXJpdmF0aW9uX3BhdGg6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtbmVtb25pYy1pZCBvZiB0aGUga2V5J3MgcGFyZW50IG1uZW1vbmljICovXG4gICAgICAgICAgbW5lbW9uaWNfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgd3JhcHBlZCBrZXktaW1wb3J0IGtleSAqL1xuICAgIEtleUltcG9ydEtleToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmFzZTY0LWVuY29kZWQsIGVuY3J5cHRlZCBkYXRhIGtleS4gKi9cbiAgICAgICAgICBka19lbmM6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEV4cGlyYXRpb24gdGltZXN0YW1wIGV4cHJlc3NlZCBhcyBzZWNvbmRzIHNpbmNlIHRoZSBVTklYIGVwb2NoLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGV4cGlyZXM6IG51bWJlcjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVwaGVtZXJhbCBwdWJsaWMga2V5IHRvIHdoaWNoIGFuIGltcG9ydGVkIGtleSBzaG91bGQgYmUgZW5jcnlwdGVkLlxuICAgICAgICAgICAqIFRoaXMgaXMgYSBQMzg0IHB1YmxpYyBrZXkgaW4gYmFzZTY0LWVuY29kZWQgdW5jb21wcmVzc2VkIFNFQ0cgZm9ybWF0LlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHB1YmxpY19rZXk6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEJhc2U2NC1lbmNvZGVkLCBlbmNyeXB0ZWQgc2VjcmV0IGtleS4gKi9cbiAgICAgICAgICBza19lbmM6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBLZXlJblJvbGVJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEtleSBJRFxuICAgICAgICAgICAqIEBleGFtcGxlIEtleSMweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgICAgICBrZXlfaW5mbz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5mb1wiXSB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFBvbGljaWVzIHRoYXQgYXJlIGNoZWNrZWQgYmVmb3JlIHRoaXMga2V5IGlzIHVzZWQgb24gYmVoYWxmIG9mIHRoaXMgcm9sZVxuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJUeFJlY2VpdmVyXCI6IFwiMHg4YzU5NDY5MWMwZTU5MmZmYTIxZjE1M2ExNmFlNDFkYjViZWZjYWFhXCJcbiAgICAgICAgICAgKiAgIH0sXG4gICAgICAgICAgICogICB7XG4gICAgICAgICAgICogICAgIFwiVHhEZXBvc2l0XCI6IHtcbiAgICAgICAgICAgKiAgICAgICBcImtpbmRcIjogXCJDYW5vbmljYWxcIlxuICAgICAgICAgICAqICAgICB9XG4gICAgICAgICAgICogICB9XG4gICAgICAgICAgICogXVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHBvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBSb2xlIElEXG4gICAgICAgICAgICogQGV4YW1wbGUgUm9sZSNlNDI3YzI4YS05YzViLTQ5Y2MtYTI1Ny04NzhhZWE1OGEyMmNcbiAgICAgICAgICAgKi9cbiAgICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgS2V5SW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb21tb25GaWVsZHNcIl0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEtleSBhY2Nlc3MtY29udHJvbCBlbnRyaWVzXG4gICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAqICAge1xuICAgICAgICAgICAqICAgICBcImFjdGlvbnNcIjogW1xuICAgICAgICAgICAqICAgICAgIFwibWFuYWdlOmtleTpwcm9wZXJ0aWVzXCJcbiAgICAgICAgICAgKiAgICAgXSxcbiAgICAgICAgICAgKiAgICAgXCJzdWJqZWN0c1wiOiBbXG4gICAgICAgICAgICogICAgICAgXCJVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlwiXG4gICAgICAgICAgICogICAgIF1cbiAgICAgICAgICAgKiAgIH1cbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgYWNsPzogdW5rbm93bltdIHwgbnVsbDtcbiAgICAgICAgICBkZXJpdmF0aW9uX2luZm8/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleURlcml2YXRpb25JbmZvXCJdIHwgbnVsbDtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIGtleSBpcyBlbmFibGVkIChvbmx5IGVuYWJsZWQga2V5cyBtYXkgYmUgdXNlZCBmb3Igc2lnbmluZykgKi9cbiAgICAgICAgICBlbmFibGVkOiBib29sZWFuO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGtleTogXCJLZXkjXCIgZm9sbG93ZWQgYnkgYSB1bmlxdWUgaWRlbnRpZmllciBzcGVjaWZpYyB0b1xuICAgICAgICAgICAqIHRoZSB0eXBlIG9mIGtleSAoc3VjaCBhcyBhIHB1YmxpYyBrZXkgZm9yIEJMUyBvciBhbiBldGhlcmV1bSBhZGRyZXNzIGZvciBTZWNwKVxuICAgICAgICAgICAqIEBleGFtcGxlIEtleSMweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgICAgICBrZXlfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlUeXBlXCJdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBIHVuaXF1ZSBpZGVudGlmaWVyIHNwZWNpZmljIHRvIHRoZSB0eXBlIG9mIGtleSwgc3VjaCBhcyBhIHB1YmxpYyBrZXkgb3IgYW4gZXRoZXJldW0gYWRkcmVzc1xuICAgICAgICAgICAqIEBleGFtcGxlIDB4OGUzNDg0Njg3ZTY2Y2RkMjZjZjA0YzM2NDc2MzNhYjRmMzU3MDE0OFxuICAgICAgICAgICAqL1xuICAgICAgICAgIG1hdGVyaWFsX2lkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIE93bmVyIG9mIHRoZSBrZXlcbiAgICAgICAgICAgKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlxuICAgICAgICAgICAqL1xuICAgICAgICAgIG93bmVyOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEtleSBwb2xpY3lcbiAgICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAgICogICBcIkFsbG93UmF3QmxvYlNpZ25pbmdcIixcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJSZXF1aXJlTWZhXCI6IHtcbiAgICAgICAgICAgKiAgICAgICBcImNvdW50XCI6IDFcbiAgICAgICAgICAgKiAgICAgfVxuICAgICAgICAgICAqICAgfVxuICAgICAgICAgICAqIF1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwb2xpY3k6IHVua25vd25bXTtcbiAgICAgICAgICBwcm9wZXJ0aWVzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlQcm9wZXJ0aWVzUGF0Y2hcIl0gfCBudWxsO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGtleSBwcm92ZW5hbmNlLiAqL1xuICAgICAgICAgIHByb3ZlbmFuY2U/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCwgc2VyaWFsaXplZCBwdWJsaWMga2V5LiBUaGUgZm9ybWF0IHVzZWQgZGVwZW5kcyBvbiB0aGUga2V5IHR5cGU6XG4gICAgICAgICAgICogLSBTZWNwMjU2azEga2V5cyB1c2UgNjUtYnl0ZSB1bmNvbXByZXNzZWQgU0VDRyBmb3JtYXQ7XG4gICAgICAgICAgICogLSBTdGFyayBrZXlzIHVzZSAzMy1ieXRlIGNvbXByZXNzZWQgU0VDRyBmb3JtYXQ7XG4gICAgICAgICAgICogLSBCTFMga2V5cyB1c2UgNDgtYnl0ZSBjb21wcmVzc2VkIEJMUzEyLTM4MSAoWkNhc2gpIGZvcm1hdDtcbiAgICAgICAgICAgKiAtIEVkMjU1MTkga2V5cyB1c2UgdGhlIGNhbm9uaWNhbCAzMi1ieXRlIGVuY29kaW5nIHNwZWNpZmllZCBpbiBSRkMgODAzMi5cbiAgICAgICAgICAgKiBAZXhhbXBsZSAweDA0ZDI2ODhiNmJjMmNlN2Y5ODc5YjllNzQ1ZjNjNGRjMTc3OTA4YzVjZWYwYzFiNjRjZmYxOWFlN2ZmMjdkZWU2MjNjNjRmZTlkOWMzMjVjN2ZiYmM3NDhiYmQ1ZjYwN2NlMTRkZDgzZTI4ZWJiYmI3ZDNlN2YyZmZiNzBhNzk0MzFcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwdWJsaWNfa2V5OiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBwdXJwb3NlIGZvciB3aGljaCB0aGUga2V5IGNhbiBiZSB1c2VkIChlLmcuLCBjaGFpbiBpZCBmb3Igd2hpY2ggdGhlIGtleSBpcyBhbGxvd2VkIHRvIHNpZ24gbWVzc2FnZXMpXG4gICAgICAgICAgICogQGV4YW1wbGUgRXRoMlZhbGlkYXRvcigxKVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZWdpb24gYWZmaW5pdHkgZm9yIHRoaXMga2V5ICovXG4gICAgICAgICAgcmVnaW9uPzogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgcmV0dXJuZWQgd2hlbiByZXF1ZXN0aW5nIGEga2V5IGF0dGVzdGF0aW9uLiAqL1xuICAgIEtleUluZm9Kd3Q6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEEgSlNPTiBXZWIgVG9rZW4gd2hvc2UgY2xhaW1zIGNvbnRhaW4gdGhlIGBLZXlJbmZvYCBzdHJ1Y3R1cmUuICovXG4gICAgICAgICAgand0OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgS2V5SW5mb3M6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBrZXlzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoaXJkLXBhcnR5IGlkZW50aXRpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSB1c2VyJ3MgYWNjb3VudCAqL1xuICAgIExpc3RJZGVudGl0aWVzUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBpZGVudGl0aWVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkZW50aXR5SW5mb1wiXVtdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIHBlbmRpbmcgTU1JIHJlcXVlc3RzIGNyZWF0ZWQgYnkgdGhlIGN1cnJlbnQgdXNlci4gKi9cbiAgICBMaXN0UGVuZGluZ01lc3NhZ2VzUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBwZW5kaW5nIG1lc3NhZ2VzIGZvciBhIHVzZXIuICovXG4gICAgICAgICAgcGVuZGluZ19tZXNzYWdlczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQZW5kaW5nTWVzc2FnZUluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJldHVybmVkIGFzIGEgcmVzcG9uc2UgZnJvbSBtdWx0aXBsZSByb3V0ZXMgKGUuZy4sICdnZXQgbWZhJywgJ2FwcHJvdmUgbWZhJywgJ2FwcHJvdmUgdG90cCcpLiAqL1xuICAgIE1mYVJlcXVlc3RJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgY3JlYXRlZF9hdD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzZXNzaW9uIGlkZW50aXR5ICh1c2VyIG9yIHJvbGUpIHRoYXQgY3JlYXRlZCB0aGlzIHJlcXVlc3QuICovXG4gICAgICAgICAgY3JlYXRlZF9ieTogc3RyaW5nO1xuICAgICAgICAgIGV4cGlyZXNfYXQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFwcHJvdmFsIHJlcXVlc3QgSUQuICovXG4gICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICBub3RfdmFsaWRfdW50aWw/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIE1GQSBwb2xpY3kgcHJvdmVuYW5jZVxuICAgICAgICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICAgICAgICovXG4gICAgICAgICAgcHJvdmVuYW5jZTogXCJPcmdcIiB8IFwiS2V5XCIgfCBcIktleUluUm9sZVwiIHwgXCJSb2xlXCIgfCBcIlVzZXJcIiB8IFwiRWRpdFBvbGljeVwiO1xuICAgICAgICAgIHJlY2VpcHQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJlY2VpcHRcIl0gfCBudWxsO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlZ2lvbiB0aGlzIE1GQSByZXF1ZXN0IHdhcyBjcmVhdGVkIGluLiAgSXQgY2FuIG9ubHkgYmUgcmVkZWVtZWQgZnJvbSB0aGUgc2FtZSByZWdpb24uICovXG4gICAgICAgICAgcmVnaW9uPzogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIGNvbnRhaW5zIHRoZSBJRHMgb2YgYWxsIE1GQSByZXF1ZXN0cyAoaW5jbHVkaW5nIHRoaXMgb25lISkgdGhhdFxuICAgICAgICAgICAqIHdlcmUgZ2VuZXJhdGVkIGF0IG9uY2UgZm9yIHRoZSBzYW1lIEN1YmVTaWduZXIgb3BlcmF0aW9uLlxuICAgICAgICAgICAqXG4gICAgICAgICAgICogSWYgbm90IHNldCwgaXQgbWVhbnMgdGhhdCB0aGlzIHdhcyB0aGUgbG9uZSBNRkEgcmVxdWVzdCBnZW5lcmF0ZWQgZm9yIGByZXF1ZXN0YC5cbiAgICAgICAgICAgKlxuICAgICAgICAgICAqIFRoaXMgaXMgdXNlZnVsIHNvIHRoYXQgYSBjbGllbnQgY2FuIGRpc2NvdmVyIGFsbCB0aGUgTUZBcyB3aG9zZSByZWNlaXB0cyBtdXN0XG4gICAgICAgICAgICogYmUgc3VibWl0dGVkIHRvZ2V0aGVyIHRvIGNhcnJ5IG91dCB0aGUgb3JpZ2luYWwgQ3ViZVNpZ25lciBvcGVyYXRpb24uXG4gICAgICAgICAgICovXG4gICAgICAgICAgcmVsYXRlZF9pZHM/OiBzdHJpbmdbXTtcbiAgICAgICAgICByZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkh0dHBSZXF1ZXN0XCJdO1xuICAgICAgICAgIHN0YXR1czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdGF0dXNcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCBhIG5ldyBzZXNzaW9uLCByZXR1cm5lZCBmcm9tIG11bHRpcGxlIGVuZHBvaW50cyAoZS5nLiwgbG9naW4sIHJlZnJlc2gsIGV0Yy4pLiAqL1xuICAgIE5ld1Nlc3Npb25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gU2Vzc2lvbiBleHBpcmF0aW9uIChpbiBzZWNvbmRzIHNpbmNlIFVOSVggZXBvY2gpLCBiZXlvbmQgd2hpY2ggaXQgY2Fubm90IGJlIHJlZnJlc2hlZC5cbiAgICAgICAgICAgKiBAZXhhbXBsZSAxNzAxODc5NjQwXG4gICAgICAgICAgICovXG4gICAgICAgICAgZXhwaXJhdGlvbj86IG51bWJlcjtcbiAgICAgICAgICBvcmdfaWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl07XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUb2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlZnJlc2ggdGhpcyBzZXNzaW9uLiAqL1xuICAgICAgICAgIHJlZnJlc2hfdG9rZW46IHN0cmluZztcbiAgICAgICAgICBzZXNzaW9uX2luZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2xpZW50U2Vzc2lvbkluZm9cIl07XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIE5ldyB0b2tlbiB0byBiZSB1c2VkIGZvciBhdXRoZW50aWNhdGlvbi4gUmVxdWVzdHMgdG8gc2lnbmluZyBlbmRwb2ludHNcbiAgICAgICAgICAgKiBzaG91bGQgaW5jbHVkZSB0aGlzIHZhbHVlIGluIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBvcmctZXhwb3J0IGNpcGhlcnRleHQgcmV0cmlldmVkIHZpYSB0aGUgb3JnLWV4cG9ydCBBUEkuICovXG4gICAgT3JnRXhwb3J0UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEEgYmFzZTY0LWVuY29kZWQgZXhwb3J0IGNpcGhlcnRleHQuICovXG4gICAgICAgICAgY2lwaGVydGV4dDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIE9yZ0luZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhUmVxdWlyZW1lbnRzXCJdICZcbiAgICAgICAgICBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbW1vbkZpZWxkc1wiXSAmIHtcbiAgICAgICAgICAgIGFjY2Vzc19tb2RlbDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2Nlc3NNb2RlbFwiXTtcbiAgICAgICAgICAgIGN1c3RvbV9jaGFpbnM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkN1c3RvbUNoYWluc0RhdGFcIl0gfCBudWxsO1xuICAgICAgICAgICAgZGVmYXVsdF9pbnZpdGVfa2luZD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSW52aXRlS2luZFwiXTtcbiAgICAgICAgICAgIGVtYWlsX3ByZWZlcmVuY2VzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbWFpbFByZWZlcmVuY2VzXCJdO1xuICAgICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGVuIGZhbHNlLCBhbGwgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb25zIGludm9sdmluZyBrZXlzIGluIHRoaXMgb3JnIGFyZSBkaXNhYmxlZC4gKi9cbiAgICAgICAgICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgICAgICAgICBleHRfZGF0YT86XG4gICAgICAgICAgICAgIHwgKHtcbiAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFBlciBhbGllbiB1c2VyIGtleSBjb3VudCB0aHJlc2hvbGQsIHdoaWNoLCBvbmNlIGV4Y2VlZGVkLCBkaXNhbGxvd3MgZnVydGhlciBrZXkgY3JlYXRpb24gYnkgYWxpZW4gdXNlcnMuXG4gICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICogVGhpcyBzZXR0aW5nIGlzIGNoZWNrZWQgb25seSB3aGVuIGFuIGFsaWVuIHVzZXIgcmVxdWVzdHMgdG8gY3JlYXRlIG9yIGltcG9ydCBhIG5ldyBrZXkuXG4gICAgICAgICAgICAgICAgICAgKiBJbiBvdGhlciB3b3Jkcywgb3JnIGFkbWlucyBjYW4gc3RpbGwgYXNzaWduIHVubGltaXRlZCBudW1iZXIgb2Yga2V5cyB0byB0aGVpciBhbGllbiB1c2Vycy5cbiAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgYWxpZW5fa2V5X2NvdW50X3RocmVzaG9sZD86IG51bWJlciB8IG51bGw7XG4gICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIGFsaWVuIHVzZXJzIGFyZSBhbGxvd2VkIHRvIHVwZGF0ZSB0aGVpciBvd24ga2V5IHBvbGljaWVzLlxuICAgICAgICAgICAgICAgICAgICogRGVmYXVsdHMgdG8gJ2ZhbHNlJy5cbiAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgYWxpZW5zX2Nhbl91cGRhdGVfa2V5X3BvbGljeT86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgICAgICAgICAgIH0gJiB7XG4gICAgICAgICAgICAgICAgICBjcmVhdGVkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdIHwgbnVsbDtcbiAgICAgICAgICAgICAgICAgIGxhc3RfbW9kaWZpZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl0gfCBudWxsO1xuICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVmVyc2lvbiBvZiB0aGlzIG9iamVjdFxuICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICB2ZXJzaW9uPzogbnVtYmVyO1xuICAgICAgICAgICAgICAgIH0gJiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj4pXG4gICAgICAgICAgICAgIHwgbnVsbDtcbiAgICAgICAgICAgIGhpc3RvcmljYWxfZGF0YV9jb25maWd1cmF0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJIaXN0b3JpY2FsRGF0YUNvbmZpZ3VyYXRpb25cIl07XG4gICAgICAgICAgICBpZHBfY29uZmlndXJhdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRwQ29uZmlnXCJdO1xuICAgICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXByZWNhdGVkOiB0aGlzIGZpZWxkIHNob3VsZCBiZSBpZ25vcmVkLiAqL1xuICAgICAgICAgICAga2V5X2ltcG9ydF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIHVuaXZlcnNhbGx5IHVuaXF1ZSBrZXktd3JhcHBpbmcta2V5IGlkZW50aWZpZXIuXG4gICAgICAgICAgICAgKiBUaGlzIHZhbHVlIGlzIHJlcXVpcmVkIHdoZW4gc2V0dGluZyB1cCBrZXkgZXhwb3J0LlxuICAgICAgICAgICAgICogQGV4YW1wbGUgbXJrLWZjZTA5NTI1ZTgxNTg3ZDIzNTIwZjExZTA3ZTJlOWQ5XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGt3a19pZDogc3RyaW5nO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gRGF0ZS90aW1lIChpbiBVVEMpIHdoZW4gbGFzdCAndW5zdGFrZScgd2FzIHBlcmZvcm1lZC4gVW5peCBlcG9jaCBpZiBub25lLlxuICAgICAgICAgICAgICogQGV4YW1wbGUgVE9ET1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBsYXN0X3Vuc3Rha2U6IHN0cmluZztcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIEhvdyBtYW55ICd1bnN0YWtlJyBjYWxscyBoYXBwZW5lZCBvbiB0aGUgZGF5IHdoZW4gYGxhc3RfdW5zdGFrZWAgd2FzIHBlcmZvcm1lZC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbGFzdF91bnN0YWtlX2RheV9jb3VudDogbnVtYmVyO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBvcmdcbiAgICAgICAgICAgICAqIEBleGFtcGxlIG15X29yZ19uYW1lXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIG5vdGlmaWNhdGlvbiBlbmRwb2ludHMsIHdoaWNoIGFyZSBIVFRQUyBVUkxzIGFyZSBub3RpZmllZCBhYm91dCBhXG4gICAgICAgICAgICAgKiBjb25maWd1cmFibGUgc2V0IG9mIGV2ZW50cyBpbiBhbiBvcmdhbml6YXRpb24uIEZvciBlYWNoIGV2ZW50LCBDdWJlU2lnbmVyIHNlbmRzIGEgUE9TVFxuICAgICAgICAgICAgICogcmVxdWVzdCB3aXRoIGEgSlNPTi1mb3JtYXR0ZWQgYm9keSB0aGF0IGNvbnRhaW5zIHRoZSBldmVudCBkZXRhaWxzLlxuICAgICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAgICogICB7XG4gICAgICAgICAgICAgKiAgICAgXCJhcm5cIjogXCJhcm46YXdzOnNuczp1cy1lYXN0LTE6MDEyMzQ1Njc4OTAxOk9yZ0V2ZW50c1RvcGljOjEyMzQ1Njc4LTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMVwiLFxuICAgICAgICAgICAgICogICAgIFwiY29uZmlnXCI6IHtcbiAgICAgICAgICAgICAqICAgICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDFcIlxuICAgICAgICAgICAgICogICAgIH0sXG4gICAgICAgICAgICAgKiAgICAgXCJzdGF0dXNcIjogXCJDb25maXJtZWRcIlxuICAgICAgICAgICAgICogICB9LFxuICAgICAgICAgICAgICogICB7XG4gICAgICAgICAgICAgKiAgICAgXCJhcm5cIjogXCJhcm46YXdzOnNuczp1cy1lYXN0LTE6MDEyMzQ1Njc4OTAxOk9yZ0V2ZW50c1RvcGljOjEyMzQ1Njc4LTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMlwiLFxuICAgICAgICAgICAgICogICAgIFwiY29uZmlnXCI6IHtcbiAgICAgICAgICAgICAqICAgICAgIFwiZmlsdGVyXCI6IHtcbiAgICAgICAgICAgICAqICAgICAgICAgXCJPbmVPZlwiOiBbXG4gICAgICAgICAgICAgKiAgICAgICAgICAgXCJFdGgyQ29uY3VycmVudEF0dGVzdGF0aW9uU2lnbmluZ1wiLFxuICAgICAgICAgICAgICogICAgICAgICAgIFwiRXRoMkNvbmN1cnJlbnRCbG9ja1NpZ25pbmdcIlxuICAgICAgICAgICAgICogICAgICAgICBdXG4gICAgICAgICAgICAgKiAgICAgICB9LFxuICAgICAgICAgICAgICogICAgICAgXCJ1cmxcIjogXCJodHRwczovL2V4YW1wbGUuY29tL2VuZHBvaW50MlwiXG4gICAgICAgICAgICAgKiAgICAgfSxcbiAgICAgICAgICAgICAqICAgICBcInN0YXR1c1wiOiBcIlBlbmRpbmdcIlxuICAgICAgICAgICAgICogICB9XG4gICAgICAgICAgICAgKiBdXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbl9lbmRwb2ludHM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk5vdGlmaWNhdGlvbkVuZHBvaW50XCJdW107XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIG9yZ2FuaXphdGlvblxuICAgICAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgICAgIHBhc3NrZXlfY29uZmlndXJhdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUGFzc2tleUNvbmZpZ1wiXTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIE9yZy13aWRlIHBvbGljaWVzIHRoYXQgYXJlIGNoZWNrZWQgYmVmb3JlIGEga2V5IGlzIHVzZWQgZm9yIHNpZ25pbmdcbiAgICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgICAqICAge1xuICAgICAgICAgICAgICogICAgIFwiTWF4RGFpbHlVbnN0YWtlXCI6IDVcbiAgICAgICAgICAgICAqICAgfVxuICAgICAgICAgICAgICogXVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICAgICAgICAgIHBvbGljeV9lbmdpbmVfY29uZmlndXJhdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUG9saWN5RW5naW5lQ29uZmlndXJhdGlvblwiXTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIEdsb2JhbCBzaWduIHBvbGljeSB0aGF0IGFwcGxpZXMgdG8gZXZlcnkgc2lnbiBvcGVyYXRpb24gKGV2ZXJ5IGtleSwgZXZlcnkgcm9sZSkgaW4gdGhlIG9yZ1xuICAgICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAgICogICB7XG4gICAgICAgICAgICAgKiAgICAgXCJUeFJlY2VpdmVyXCI6IFwiMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCJcbiAgICAgICAgICAgICAqICAgfVxuICAgICAgICAgICAgICogXVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBzaWduX3BvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIGN1cnJlbnRseSBjb25maWd1cmVkIFRPVFAgZmFpbHVyZSBsaW1pdCwgaS5lLiwgdGhlIG51bWJlclxuICAgICAgICAgICAgICogb2YgdGltZXMgYSB1c2VyIGNhbiBwcm92aWRlIGFuIGluY29ycmVjdCBUT1RQIGNvZGUgYmVmb3JlIGJlaW5nIHJhdGUgbGltaXRlZC5cbiAgICAgICAgICAgICAqIFRoaXMgdmFsdWUgY2FuIGJlIGJldHdlZW4gMSBhbmQgNSAoaW5jbHVzaXZlKS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdG90cF9mYWlsdXJlX2xpbWl0OiBudW1iZXI7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgb3JnYW5pemF0aW9uJ3MgY3VycmVudGx5IGNvbmZpZ3VyZWQgdXNlci1leHBvcnQgZGVsYXksIGkuZS4sIHRoZSBtaW5pbXVtXG4gICAgICAgICAgICAgKiBhbW91bnQgb2YgdGltZSAoaW4gc2Vjb25kcykgYmV0d2VlbiB3aGVuIGEgdXNlci1leHBvcnQgaXMgaW5pdGlhdGVkIGFuZCB3aGVuXG4gICAgICAgICAgICAgKiBpdCBtYXkgYmUgY29tcGxldGVkLiAoVGhpcyB2YWx1ZSBpcyBtZWFuaW5nbGVzcyBmb3Igb3JnYW5pemF0aW9ucyB0aGF0IHVzZVxuICAgICAgICAgICAgICogb3JnLXdpZGUgZXhwb3J0LilcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdXNlcl9leHBvcnRfZGVsYXk6IG51bWJlcjtcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB1c2VyIGV4cG9ydCBpcyBkaXNhYmxlZCAqL1xuICAgICAgICAgICAgdXNlcl9leHBvcnRfZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIGN1cnJlbnRseSBjb25maWd1cmVkIHVzZXItZXhwb3J0IHdpbmRvdywgaS5lLiwgdGhlIGFtb3VudFxuICAgICAgICAgICAgICogb2YgdGltZSAoaW4gc2Vjb25kcykgYmV0d2VlbiB3aGVuIHRoZSB1c2VyLWV4cG9ydCBkZWxheSBpcyBjb21wbGV0ZWQgYW5kIHdoZW5cbiAgICAgICAgICAgICAqIHRoZSB1c2VyIGV4cG9ydCByZXF1ZXN0IGhhcyBleHBpcmVkIGFuZCBjYW4gbm8gbG9uZ2VyIGJlIGNvbXBsZXRlZC4gKFRoaXMgdmFsdWVcbiAgICAgICAgICAgICAqIGlzIG1lYW5pbmdsZXNzIGZvciBvcmdhbml6YXRpb25zIHRoYXQgdXNlIG9yZy13aWRlIGV4cG9ydC4pXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHVzZXJfZXhwb3J0X3dpbmRvdzogbnVtYmVyO1xuICAgICAgICAgICAgd2ViYXBwX2VuYWJsZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIldlYmFwcEVuYWJsZWRcIl07XG4gICAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRBdWRpdExvZ1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBdWRpdCBsb2cgZW50cmllcyAqL1xuICAgICAgICAgIGVudHJpZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXVkaXRMb2dFbnRyeVwiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRHZXRVc2Vyc0luT3JnUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBsaXN0IG9mIHVzZXJzIGluIHRoZSBvcmcgKi9cbiAgICAgICAgICB1c2VyczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VySW5PcmdJbmZvXCJdW107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZExpc3RCdWNrZXRzUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBidWNrZXRzIGluIHRoZSBvcmdhbml6YXRpb24uICovXG4gICAgICAgICAgYnVja2V0czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCdWNrZXRJbmZvXCJdW107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZExpc3RDb250YWN0c1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGxpc3Qgb2YgY29udGFjdHMgaW4gdGhlIG9yZ2FuaXphdGlvbiwgbWF0Y2hpbmcgYW55IHByb3ZpZGVkIHF1ZXJpZXMuICovXG4gICAgICAgICAgY29udGFjdHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29udGFjdEluZm9SZXNwb25zZVwiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRMaXN0SGlzdG9yaWNhbFR4UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEhpc3RvcmljYWwgdHJhbnNhY3Rpb25zIHNpZ25lZCB3aXRoIHRoZSByZXF1ZXN0ZWQga2V5LCBzb3J0ZWQgZnJvbSBtb3N0IHRvIGxlYXN0IHJlY2VudC4gKi9cbiAgICAgICAgICB0eHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSGlzdG9yaWNhbFR4XCJdW107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZExpc3RJbnZpdGF0aW9uc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBQZW5kaW5nIGludml0YXRpb25zICovXG4gICAgICAgICAgaW52aXRhdGlvbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSW52aXRhdGlvbkluZm9cIl1bXTtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUGFnaW5hdGVkTGlzdEtleVJvbGVzUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCByb2xlcyB0aGUga2V5IGlzIGluICovXG4gICAgICAgICAgcm9sZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5Sb2xlSW5mb1wiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRMaXN0S2V5c1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAga2V5czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJbmZvXCJdW107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZExpc3RNZmFSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIHBlbmRpbmcgTUZBIHJlcXVlc3RzICovXG4gICAgICAgICAgbWZhX3JlcXVlc3RzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdW107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZExpc3RQb2xpY2llc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgT3JnJ3MgbmFtZWQgcG9saWNpZXMuICovXG4gICAgICAgICAgcG9saWNpZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUG9saWN5SW5mb1wiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRMaXN0Um9sZUtleXNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIGtleXMgaW4gYSByb2xlICovXG4gICAgICAgICAga2V5czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJblJvbGVJbmZvXCJdW107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZExpc3RSb2xlVXNlcnNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIHVzZXJzIGluIGEgcm9sZSAqL1xuICAgICAgICAgIHVzZXJzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJJblJvbGVJbmZvXCJdW107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZExpc3RSb2xlc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgcm9sZXMgaW4gYW4gb3JnYW5pemF0aW9uLiAqL1xuICAgICAgICAgIHJvbGVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJvbGVJbmZvXCJdW107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZFBvbGljeUxvZ3NSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHBvbGljeSBleGVjdXRpb24gbG9ncyAqL1xuICAgICAgICAgIGxvZ3M6IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICAgICAgICB9W107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZFF1ZXJ5TWV0cmljc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBZHZpc29yeSBtZXNzYWdlcyAoZS5nLiwgaWYgbWF4IG51bWJlciBvZiByZXN1bHRzIGlzIHJlYWNoZWQpLiAqL1xuICAgICAgICAgIG1lc3NhZ2VzPzogc3RyaW5nW107XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcGVyaW9kIGZvciB3aGljaCB0aGUgc3RhdGlzdGljIGlzIGNvbXB1dGVkLCBpZiBhbnkgKG5vdCBhbGwgbWV0cmljcyBzdXBwb3J0IHNwbGl0dGluZyB0aGUgcmVxdWVzdGVkIHRpbWUgcmFuZ2UgaW50byBiaW5zKS5cbiAgICAgICAgICAgKiBJZiBzZXQsIGVxdWFscyB0byB0aGUgdmFsdWUgZnJvbSB0aGUgcmVxdWVzdCByb3VuZGVkIHVwIHRvIHRoZSBjbG9zZXN0IG11bHRpcGxlIG9mIDYwLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHBlcmlvZD86IG51bWJlcjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFNvbWUgbWV0cmljcyBjYW4gb3B0aW9uYWxseSByZXR1cm4gdGhlIHJhdyBkYXRhLCB3aGVuIHJlcXVlc3RlZC4gKi9cbiAgICAgICAgICByYXdfZGF0YToge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICAgICAgICAgIH1bXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIENvbXB1dGVkIGRhdGEgcG9pbnRzLiAqL1xuICAgICAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGRhdGEgcG9pbnRzLCBvbmUgZm9yIGVhY2ggdGltZSBwZXJpb2QgKHRpbWUgcGVyaW9kcyBmb3Igd2hpY2ggdGhlIHZhbHVlIGlzIDAgYXJlIG9taXR0ZWQpLiAqL1xuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBba2V5OiBzdHJpbmddOiBudW1iZXI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbWV0cmljIGRpbWVuc2lvbnMuICovXG4gICAgICAgICAgICBkaW1lbnNpb25zOiB7XG4gICAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVtdO1xuICAgICAgICAgIHN0YXQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9yZ01ldHJpY1N0YXRcIl0gfCBudWxsO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRTZXNzaW9uc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbGlzdCBvZiBzZXNzaW9ucyAqL1xuICAgICAgICAgIHNlc3Npb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlc3Npb25JbmZvXCJdW107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZFVzZXJFeHBvcnRMaXN0UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBleHBvcnRfcmVxdWVzdHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckV4cG9ydEluaXRSZXNwb25zZVwiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYXNza2V5QXNzZXJ0Q2hhbGxlbmdlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiAoY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDaGFsbGVuZ2VQaWVjZXNcIl0gJiB7XG4gICAgICAgICAgb3B0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNcIl07XG4gICAgICAgIH0pICYge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBjaGFsbGVuZ2UuIE11c3QgYmUgc3VwcGxpZWQgd2hlbiBhbnN3ZXJpbmcgdGhlIGNoYWxsZW5nZS4gKi9cbiAgICAgICAgICBjaGFsbGVuZ2VfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEV4dGVuZGVkIGluZm9ybWF0aW9uIGFib3V0IGFuIGV4aXN0aW5nIE1NSSByZXF1ZXN0LiAqL1xuICAgIFBlbmRpbmdNZXNzYWdlSW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIG1ldGFkYXRhOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1taU1ldGFkYXRhXCJdO1xuICAgICAgICAgIHNpZ25lZE1lc3NhZ2U/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNpZ25lZE1lc3NhZ2VcIl0gfCBudWxsO1xuICAgICAgICAgIHRyYW5zYWN0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUcmFuc2FjdGlvbkFuZFN0YXR1c1wiXSB8IG51bGw7XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgY3JlYXRlZF9hdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgICAgIGV4cGlyZXNfYXQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgcGVuZGluZyBtZXNzYWdlICovXG4gICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBpZGVudGl0eSAoYSB1c2VyIG9yIGEgcm9sZSBpZCkgd2hpY2ggY3JlYXRlZCB0aGlzIG1lc3NhZ2UuICovXG4gICAgICAgICAgaWRlbnRpdHk6IHN0cmluZztcbiAgICAgICAgICBtZXNzYWdlX2VpcDE5MT86IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIEZyb20gYWRkcmVzcywgaGV4LWVuY29kZWQsIHdpdGggbGVhZGluZyAnMHgnXG4gICAgICAgICAgICAgKiBAZXhhbXBsZSAweDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCAoaW5jbHVkaW5nIGEgJzB4JyBwcmVmaXgpIG1lc3NhZ2UgdG8gc2lnbi4gKi9cbiAgICAgICAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICAgICAgICB9IHwgbnVsbDtcbiAgICAgICAgICBtZXNzYWdlX2VpcDcxMj86IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIEZyb20gYWRkcmVzcywgaGV4LWVuY29kZWQsIHdpdGggbGVhZGluZyAnMHgnXG4gICAgICAgICAgICAgKiBAZXhhbXBsZSAweDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgYWRkcmVzczogc3RyaW5nO1xuICAgICAgICAgICAgZGF0YTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUeXBlZERhdGFcIl07XG4gICAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICAgIHZlcnNpb246IFwidjNcIiB8IFwidjRcIjtcbiAgICAgICAgICB9IHwgbnVsbDtcbiAgICAgICAgICBtZXNzYWdlX3R4PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUeXBlZFRyYW5zYWN0aW9uXCJdIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEV4dGVuZGVkIGluZm9ybWF0aW9uIGFib3V0IGFuIGV4aXN0aW5nIE1NSSBtZXNzYWdlLCBpbmNsdWRpbmcgdGhlIHNpZ25hdHVyZS4gKi9cbiAgICBQZW5kaW5nTWVzc2FnZVNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogKHtcbiAgICAgICAgICBtZXRhZGF0YTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNbWlNZXRhZGF0YVwiXTtcbiAgICAgICAgICBzaWduZWRNZXNzYWdlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTaWduZWRNZXNzYWdlXCJdIHwgbnVsbDtcbiAgICAgICAgICB0cmFuc2FjdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVHJhbnNhY3Rpb25BbmRTdGF0dXNcIl0gfCBudWxsO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIGNyZWF0ZWRfYXQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgICAgICBleHBpcmVzX2F0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHBlbmRpbmcgbWVzc2FnZSAqL1xuICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaWRlbnRpdHkgKGEgdXNlciBvciBhIHJvbGUgaWQpIHdoaWNoIGNyZWF0ZWQgdGhpcyBtZXNzYWdlLiAqL1xuICAgICAgICAgIGlkZW50aXR5OiBzdHJpbmc7XG4gICAgICAgICAgbWVzc2FnZV9laXAxOTE/OiB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIGFkZHJlc3MsIGhleC1lbmNvZGVkLCB3aXRoIGxlYWRpbmcgJzB4J1xuICAgICAgICAgICAgICogQGV4YW1wbGUgMHgwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgKGluY2x1ZGluZyBhICcweCcgcHJlZml4KSBtZXNzYWdlIHRvIHNpZ24uICovXG4gICAgICAgICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgICAgICAgfSB8IG51bGw7XG4gICAgICAgICAgbWVzc2FnZV9laXA3MTI/OiB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIGFkZHJlc3MsIGhleC1lbmNvZGVkLCB3aXRoIGxlYWRpbmcgJzB4J1xuICAgICAgICAgICAgICogQGV4YW1wbGUgMHgwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICAgICAgICAgIGRhdGE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVHlwZWREYXRhXCJdO1xuICAgICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgICB2ZXJzaW9uOiBcInYzXCIgfCBcInY0XCI7XG4gICAgICAgICAgfSB8IG51bGw7XG4gICAgICAgICAgbWVzc2FnZV90eD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVHlwZWRUcmFuc2FjdGlvblwiXSB8IG51bGw7XG4gICAgICAgIH0pICZcbiAgICAgICAgICBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHN0cnVjdCBjb250YWluaW5nIGFsbCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIGEgcG9saWN5LiAqL1xuICAgIFBvbGljeUluZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBhY2Nlc3MtY29udHJvbCBlbnRyaWVzIGZvciB0aGUgcG9saWN5LiAqL1xuICAgICAgICAgIGFjbD86IHVua25vd25bXSB8IG51bGw7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGxpc3Qgb2YgZW50aXRpZXMgKGtleXMsIHJvbGVzLCBldGMuKSB0aGUgcG9saWN5IGlzIGF0dGFjaGVkIHRvLiAqL1xuICAgICAgICAgIGF0dGFjaGVkX3RvOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBvbGljeUF0dGFjaGVkVG9JZFwiXVtdO1xuICAgICAgICAgIGNyZWF0ZWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgICAgICBlZGl0X3BvbGljeT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRWRpdFBvbGljeVwiXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFVzZXItZGVmaW5lZCBtZXRhZGF0YSBmb3IgdGhlIG5hbWVkIHBvbGljeS4gKi9cbiAgICAgICAgICBtZXRhZGF0YT86IHVua25vd247XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbmFtZSBvZiB0aGUgcG9saWN5LiAqL1xuICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgICBvd25lcjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBwb2xpY3kgaWQgKi9cbiAgICAgICAgICBwb2xpY3lfaWQ6IHN0cmluZztcbiAgICAgICAgICBwb2xpY3lfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQb2xpY3lUeXBlXCJdO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHBvbGljeSBydWxlLiAqL1xuICAgICAgICAgIHJ1bGVzOiB1bmtub3duW107XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcG9saWN5IHJ1bGUncyB2ZXJzaW9uLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHZlcnNpb246IG51bWJlcjtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUG9saWN5UmVzdWx0UmVzcG9uc2UgaXMgYSB3cmFwcGVyIG9uIFBvbGljeVJlc3VsdCB3aXRoIHR3byBpbXBvcnRhbnRcbiAgICAgKiBwcm9wZXJ0aWVzOlxuICAgICAqICogZGVyaXZlcyBPa1RvTG9nUmVzcG9uc2UsIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgaW4gdGhlIHJvY2tldCBoYW5kbGVyLlxuICAgICAqICogZGVyaXZlcyBUb1NjaGVtYSBhbmQgVG9SZXNwb25zZSwgd2l0aCB0aGUgYHZhbGAgZmllbGQgd2l0aCB2YWx1ZV90eXBlXG4gICAgICogT2JqZWN0LCBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gcHJvdmlkZSBhbGwgb2YgdGhlIE9wZW5BUEkgdHlwZVxuICAgICAqIGRlc2NyaXB0aW9ucyBvZiBhIFBvbGljeVJlc3VsdC5cbiAgICAgKlxuICAgICAqIFRoZSBQb2xpY3lSZXN1bHQgaW5jbHVkZXMgZW51bXMgYW5kIG90aGVyIHN0YW5kYXJkIHR5cGVzIChlLmcuXG4gICAgICogc3RkOjp0aW1lOjpJbnRlcnZhbCkgd2hpY2ggYXJlIG5vbnRyaXZpYWwgdG8gcmVwcmVzZW50IGluIE9wZW5BUEkuIFNpbmNlXG4gICAgICogdGhpcyBlbmRwb2ludCBpcyBqdXN0IGZvciB0ZXN0aW5nLCB3ZSBkb24ndCByZWFsbHkgY2FyZSBhYm91dCBob3cgYWNjdXJhdGVcbiAgICAgKiB0aGUgc2NoZW1hIGlzLCBhbmQgY2FuIGxlYW4gb24gc2VyZGVfanNvbiB3aGVuIGRlY29kaW5nIHRoaXMgcmVzcG9uc2UgdG8gYVxuICAgICAqIFBvbGljeVJlc3VsdCBpbiBhIGNsaWVudC4gTm90ZSB0aGF0IHRoZXJlIGlzIGEgYnVnIGluIHV0b2lwYSB3aGVyZSB0aGVcbiAgICAgKiB2YWx1ZV90eXBlIGFubm90YXRpb24gd2lsbCBub3Qgd29yayBmb3IgYSB0dXBsZS1zdHJ1Y3QsIG9ubHkgYSBzdHJ1Y3Qgd2l0aFxuICAgICAqIGZpZWxkcy5cbiAgICAgKi9cbiAgICBQb2xpY3lSZXN1bHRSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHZhbDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSBzdHJ1Y3QgY29udGFpbmluZyBhbGwgbm9uLXNlY3JldCBpbmZvcm1hdGlvbiBhYm91dCBwb2xpY3kgc2VjcmV0cy4gKi9cbiAgICBQb2xpY3lTZWNyZXRzSW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb21tb25GaWVsZHNcIl0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlcHJlY2F0ZWRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5hbWVzIG9mIHRoZSBzZWNyZXRzLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIG5hbWVzOiBzdHJpbmdbXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBwb2xpY3kgc2VjcmV0cy4gKi9cbiAgICAgICAgICBzZWNyZXRzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY3JldEluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHRvIGEgUFNCVCBzaWduaW5nIHJlcXVlc3QgKi9cbiAgICBQc2J0U2lnblJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBwb2xpY3kgZXZhbHVhdGlvbiB0cmVlLiAqL1xuICAgICAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgUFNCVCBpbiBzdGFuZGFyZCBoZXggc2VyaWFsaXphdGlvbiwgd2l0aG91dCBsZWFkaW5nIFwiMHhcIi5cbiAgICAgICAgICAgKiBAZXhhbXBsZSA3MDczNjI3NGZmMDEwMDVlLi4uXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHNidDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUHVibGljIGluZm9ybWF0aW9uIGFib3V0IGFuIG9yZ2FuaXphdGlvbi4gKi9cbiAgICBQdWJsaWNPcmdJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBFeHBsaWNpdGx5IGNvbmZpZ3VyZWQgKGFsbG93bGlzdGVkKSBPcGVuSUQgcHJvdmlkZXJzIGZvciBhbiBvcmcgKi9cbiAgICAgICAgICBvaWRjX2lzc3VlcnM6IHtcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gSW50ZW5kZWQgYXVkaWVuY2VzIChjbGllbnQgSURzKSAqL1xuICAgICAgICAgICAgYXVkaWVuY2VzOiBzdHJpbmdbXTtcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gSXNzdWVyIFVSTCAqL1xuICAgICAgICAgICAgaXNzdWVyOiBzdHJpbmc7XG4gICAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGlzc3VlciBuaWNrbmFtZSAqL1xuICAgICAgICAgICAgbmlja25hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgdXNlciByb2xlcyBhbGxvd2VkIHRvIHVzZSB0aGlzIElEUCAqL1xuICAgICAgICAgICAgdXNlcnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXVtdO1xuICAgICAgICAgIH1bXTtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gT3JnIGlkZW50aWZpZXJcbiAgICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAgICovXG4gICAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIGxvZ2dpbmcgaW4gd2l0aCBqdXN0IGEgcGFzc2tleSBpcyBhbGxvd2VkICovXG4gICAgICAgICAgcGFzc2tleV9sb2dpbl9lbmFibGVkOiBib29sZWFuO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG1ldHJpYyBkYXRhIHBvaW50cy4gKi9cbiAgICBRdWVyeU1ldHJpY3NSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWR2aXNvcnkgbWVzc2FnZXMgKGUuZy4sIGlmIG1heCBudW1iZXIgb2YgcmVzdWx0cyBpcyByZWFjaGVkKS4gKi9cbiAgICAgICAgICBtZXNzYWdlcz86IHN0cmluZ1tdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBlcmlvZCBmb3Igd2hpY2ggdGhlIHN0YXRpc3RpYyBpcyBjb21wdXRlZCwgaWYgYW55IChub3QgYWxsIG1ldHJpY3Mgc3VwcG9ydCBzcGxpdHRpbmcgdGhlIHJlcXVlc3RlZCB0aW1lIHJhbmdlIGludG8gYmlucykuXG4gICAgICAgICAgICogSWYgc2V0LCBlcXVhbHMgdG8gdGhlIHZhbHVlIGZyb20gdGhlIHJlcXVlc3Qgcm91bmRlZCB1cCB0byB0aGUgY2xvc2VzdCBtdWx0aXBsZSBvZiA2MC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwZXJpb2Q/OiBudW1iZXI7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTb21lIG1ldHJpY3MgY2FuIG9wdGlvbmFsbHkgcmV0dXJuIHRoZSByYXcgZGF0YSwgd2hlbiByZXF1ZXN0ZWQuICovXG4gICAgICAgICAgcmF3X2RhdGE6IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICAgICAgICB9W107XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDb21wdXRlZCBkYXRhIHBvaW50cy4gKi9cbiAgICAgICAgICByZXN1bHRzOiB7XG4gICAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBkYXRhIHBvaW50cywgb25lIGZvciBlYWNoIHRpbWUgcGVyaW9kICh0aW1lIHBlcmlvZHMgZm9yIHdoaWNoIHRoZSB2YWx1ZSBpcyAwIGFyZSBvbWl0dGVkKS4gKi9cbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgW2tleTogc3RyaW5nXTogbnVtYmVyO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG1ldHJpYyBkaW1lbnNpb25zLiAqL1xuICAgICAgICAgICAgZGltZW5zaW9uczoge1xuICAgICAgICAgICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1bXTtcbiAgICAgICAgICBzdGF0PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPcmdNZXRyaWNTdGF0XCJdIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBSb2xlSW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb21tb25GaWVsZHNcIl0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIHJvbGUgaXMgZW5hYmxlZFxuICAgICAgICAgICAqIEBleGFtcGxlIHRydWVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmFibGVkOiBib29sZWFuO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGVwcmVjYXRlZC4gVGhlIEN1YmVTaWduZXIgSURzIG9mIGF0IG1vc3QgMTAwIGtleXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcm9sZS4gKi9cbiAgICAgICAgICBrZXlzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJblJvbGVJbmZvXCJdW10gfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSBjdXJyZW50IHVzZXIgaXMgYSBtZW1iZXIgb2YgdGhlIHJvbGUuIFRoaXMgaXMgYWx3YXlzIHRydWUsXG4gICAgICAgICAgICogZXhjZXB0IGZvciBvd25lcnMgd2hvIGNhbiBzZWUgcm9sZXMgdGhleSBhcmUgbm90IG1lbWJlcnMgb2YuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbWVtYmVyOiBib29sZWFuO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHJvbGUgKG11c3QgYmUgYWxwaGFudW1lcmljKVxuICAgICAgICAgICAqIEBleGFtcGxlIG15X3JvbGVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gUG9saWN5IHRoYXQgaXMgY2hlY2tlZCB3aGVuZXZlciBhIGtleSBpcyBhY2Nlc3NlZCBmb3Igc2lnbmluZyB2aWEgdGhpcyByb2xlLlxuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJTb3VyY2VJcEFsbG93bGlzdFwiOiBbXG4gICAgICAgICAgICogICAgICAgXCIxMjMuNDU2Ljc4LjkvMTZcIlxuICAgICAgICAgICAqICAgICBdXG4gICAgICAgICAgICogICB9LFxuICAgICAgICAgICAqICAge1xuICAgICAgICAgICAqICAgICBcIlJlcXVpcmVNZmFcIjoge1xuICAgICAgICAgICAqICAgICAgIFwiY291bnRcIjogMVxuICAgICAgICAgICAqICAgICB9XG4gICAgICAgICAgICogICB9XG4gICAgICAgICAgICogXVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHBvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdO1xuICAgICAgICAgIHJlc3RyaWN0ZWRfYWN0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSZXN0cmljdGVkQWN0aW9uc01hcFwiXTtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSByb2xlXG4gICAgICAgICAgICogQGV4YW1wbGUgUm9sZSNiZmUzZWNjYi03MzFlLTQzMGQtYjFlNS1hYzEzNjNlNmIwNmJcbiAgICAgICAgICAgKi9cbiAgICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXByZWNhdGVkLiBUaGUgbGlzdCBvZiBhdCBtb3N0IDEwMCB1c2VycyB3aXRoIGFjY2VzcyB0byB0aGUgcm9sZS4gKi9cbiAgICAgICAgICB1c2Vycz86IHN0cmluZ1tdIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHJldHVybmVkIHdoZW4gcmVxdWVzdGluZyBhIHJvbGUgYXR0ZXN0YXRpb24uICovXG4gICAgUm9sZUluZm9Kd3Q6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEEgSlNPTiBXZWIgVG9rZW4gd2hvc2UgY2xhaW1zIGNvbnRhaW4gdGhlIGBSb2xlSW5mb2Agc3RydWN0dXJlLiAqL1xuICAgICAgICAgIGp3dDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFNlc3Npb25JbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlc3Npb25NZXRhZGF0YVwiXSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIENyZWF0aW9uIGRhdGUgKGluIHNlY29uZHMgc2luY2UgdW5peCBlcG9jaClcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBjcmVhdGVkX2F0OiBudW1iZXI7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBFeHBpcmF0aW9uIGRhdGUgKGluIHNlY29uZHMgc2luY2UgdW5peCBlcG9jaClcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBleHA6IG51bWJlcjtcbiAgICAgICAgICBsYXN0X3VzZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIldoZXJlQW5kV2hlblwiXSB8IG51bGw7XG4gICAgICAgICAgbGlmZXRpbWVzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSYXRjaGV0Q29uZmlnXCJdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIGZvciB0aGUgc2Vzc2lvblxuICAgICAgICAgICAqIEBleGFtcGxlIE9JREMgbG9naW4gc2Vzc2lvblxuICAgICAgICAgICAqL1xuICAgICAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gTGlzdHMgdXNlciBwZXJtaXNzaW9uIGFuZCBhY2Nlc3MgZm9yIHRoZSBzZXNzaW9uXG4gICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAqICAgXCJzaWduOipcIixcbiAgICAgICAgICAgKiAgIFwibWFuYWdlOm1mYTp2b3RlOmNzXCJcbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgc2NvcGVzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTY29wZVwiXVtdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBTZXNzaW9uIElELiBVbmlxdWVseSBpZGVudGlmaWVzIHRoZSBzZXNzaW9uLCBidXQgY2Fubm90IGJlIHVzZWQgZm9yIGF1dGguXG4gICAgICAgICAgICogQGV4YW1wbGUgNzdhYWQyMTAwYzM2MWY0OTc2MzVkZDAwNWM0ZDE1NzgxZTJlNWRmNGI5ZjQ1ZDhlNzRmMzc0MjVjYmMzMGI5ZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNlc3Npb25faWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXNwb25zZSBmcm9tIGFueSBvcGVyYXRpb24gb3BlcmF0aW5nIG9uIG11bHRpcGxlIHNlc3Npb25zICovXG4gICAgU2Vzc2lvbnNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2Ygc2Vzc2lvbnMgKi9cbiAgICAgICAgICBzZXNzaW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZXNzaW9uSW5mb1wiXVtdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBoZXgtZW5jb2RlZCByZXN1bHRpbmcgc2lnbmF0dXJlLiAqL1xuICAgICAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmV0dXJuZWQgdXBvbiBhIHN1Y2Nlc3NmdWwgU0lXRSBhdXRoZW50aWNhdGlvbi4gKi9cbiAgICBTaXdlQ29tcGxldGVSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIE9JREMgdG9rZW4gY29ycmVzcG9uZGluZyB0byB0aGUgdXNlciB3aXRoIHRoZSByZXF1ZXN0ZWQgU0lXRSBpZGVudGl0eS4gKi9cbiAgICAgICAgICBpZF90b2tlbjogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBIGNoYWxsZW5nZSByZXR1cm5lZCBpbiByZXNwb25zZSB0byBhIFNpZ24tSW4gd2l0aCBFdGhlcmV1bSByZXF1ZXN0LlxuICAgICAqXG4gICAgICogQ29udGFpbnMgYSBtZXNzYWdlIHRoYXQgdGhlIGNsaWVudCBtdXN0IHNpZ24gZm9sbG93aW5nIEVJUC0xOTFcbiAgICAgKiB3aXRoIHRoZSByZXF1ZXN0ZWQga2V5IGluIG9yZGVyIHRvIGNvbXBsZXRlIGF1dGhlbnRpY2F0aW9uLlxuICAgICAqXG4gICAgICogVGhlIGNsaWVudCBoYXMgdW50aWwgdGhlIG1lc3NhZ2UgZXhwaXJlcyAoYnV0IG5vIG1vcmUgdGhhbiA1IG1pbnV0ZXMpIHRvIGNvbXBsZXRlIHRoZSBjaGFsbGVuZ2UuXG4gICAgICovXG4gICAgU2l3ZUluaXRSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBjaGFsbGVuZ2UgKHRvIGluY2x1ZGUgaW4gdGhlIHJlcXVlc3Qgd2hlbiBjYWxsaW5nIHRoZSBQQVRDSCAoJ2NvbXBsZXRlJykgZW5kcG9pbnQpICovXG4gICAgICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbWVzc2FnZSB0byBzaWduIGZvbGxvd2luZyB0aGUgRUlQLTE5MSBzdGFuZGFyZC4gKi9cbiAgICAgICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXR1cm5lZCB1cG9uIGEgc3VjY2Vzc2Z1bCBTSVdTIGF1dGhlbnRpY2F0aW9uLiAqL1xuICAgIFNpd3NDb21wbGV0ZVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgT0lEQyB0b2tlbiBjb3JyZXNwb25kaW5nIHRvIHRoZSB1c2VyIHdpdGggdGhlIHJlcXVlc3RlZCBTSVdTIGlkZW50aXR5LiAqL1xuICAgICAgICAgIGlkX3Rva2VuOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEEgY2hhbGxlbmdlIHJldHVybmVkIGluIHJlc3BvbnNlIHRvIGEgU2lnbi1JbiB3aXRoIFNvbGFuYSByZXF1ZXN0LlxuICAgICAqXG4gICAgICogQ29udGFpbnMgYSBzdHJ1Y3R1cmVkIFtTaWduSW5JbnB1dF0gdGhhdCB0aGUgY2xpZW50IG11c3QgcmVuZGVyIHRvIGl0cyBjYW5vbmljYWwgdGV4dCBhbmQgc2lnblxuICAgICAqIChlZDI1NTE5KSB3aXRoIHRoZSByZXF1ZXN0ZWQga2V5IGluIG9yZGVyIHRvIGNvbXBsZXRlIGF1dGhlbnRpY2F0aW9uLlxuICAgICAqXG4gICAgICogVGhlIGNsaWVudCBoYXMgdW50aWwgdGhlIG1lc3NhZ2UgZXhwaXJlcyAoYnV0IG5vIG1vcmUgdGhhbiA1IG1pbnV0ZXMpIHRvIGNvbXBsZXRlIHRoZSBjaGFsbGVuZ2UuXG4gICAgICovXG4gICAgU2l3c0luaXRSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBjaGFsbGVuZ2UgKHRvIGluY2x1ZGUgaW4gdGhlIHJlcXVlc3Qgd2hlbiBjYWxsaW5nIHRoZSBQQVRDSCAoJ2NvbXBsZXRlJykgZW5kcG9pbnQpICovXG4gICAgICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgICAgICAgc2lnbl9pbl9pbnB1dDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTaWduSW5JbnB1dFwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBTdGFrZVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiAoe1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWN5IGV2YWx1YXRpb24gdHJlZS4gKi9cbiAgICAgICAgICBwb2xpY3lfZXZhbF90cmVlPzogdW5rbm93bjtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICBkZXBvc2l0X3R4OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcG9zaXRUeG5cIl07XG4gICAgICAgIH0pICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdmFsaWRhdG9yIGtleSBpZCAoXCJLZXkjLi4uXCIpXG4gICAgICAgICAgICogQGV4YW1wbGUgS2V5I2RiMTczMWY4LTM2NTktNDVjMC04ODViLWUxMWUxZjViN2JlMlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGNyZWF0ZWRfdmFsaWRhdG9yX2tleV9pZDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFRlbGVncmFtQXV0aFJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgT0lEQyB0b2tlbiBjb3JyZXNwb25kaW5nIHRvIHRoaXMgdGVsZWdyYW0gdXNlciAqL1xuICAgICAgICAgIGlkX3Rva2VuOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIE9BdXRoMiBzdGFuZGFyZCBUb2tlbiBSZXNwb25zZS5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTQuMi4yXG4gICAgICovXG4gICAgVG9rZW5SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGFjY2VzcyB0b2tlbiBpc3N1ZWQgYnkgdGhlIGF1dGhvcml6YXRpb24gc2VydmVyLiAqL1xuICAgICAgICAgIGFjY2Vzc190b2tlbjogc3RyaW5nO1xuICAgICAgICAgIGV4cGlyZXNfaW46IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kc1wiXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFuIE9JREMgdG9rZW4gaXNzdWVkIGJ5IEN1YmlzdCwgY29udGFpbmluZyB1c2VyIGluZm9ybWF0aW9uICovXG4gICAgICAgICAgaWRfdG9rZW4/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlZnJlc2ggdG9rZW4gaXNzdWVkIGJ5IHRoZSBhdXRob3JpemF0aW9uIHNlcnZlci4gKi9cbiAgICAgICAgICByZWZyZXNoX3Rva2VuPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB0eXBlIG9mIHRoZSB0b2tlbiBpc3N1ZWQuIFZhbHVlIGlzIGNhc2UgaW5zZW5zaXRpdmUuICovXG4gICAgICAgICAgdG9rZW5fdHlwZTogc3RyaW5nO1xuICAgICAgICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gICAgICAgIH0gJiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgICB9O1xuICAgIH07XG4gICAgVG90cEluZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBUT1RQIGNoYWxsZW5nZS5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBUb3RwQ2hhbGxlbmdlIzc4OTJlYmJhLTU2M2UtNDg1Yi1iYjdkLWUyNjI2NzM2MzI4NlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHRvdHBfaWQ6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gU3RhbmRhcmQgVE9UUCB1cmwgd2hpY2ggaW5jbHVkZXMgZXZlcnl0aGluZyBuZWVkZWQgdG8gaW5pdGlhbGl6ZSBUT1RQLlxuICAgICAgICAgICAqIEBleGFtcGxlIG90cGF1dGg6Ly90b3RwL0N1YmlzdDphbGljZS0lNDBleGFtcGxlLmNvbT9zZWNyZXQ9REFIRjdLQ09UUVdTT01LNFhGRU1OSFhPNEo0MzNPRDcmaXNzdWVyPUN1YmlzdFxuICAgICAgICAgICAqL1xuICAgICAgICAgIHRvdHBfdXJsOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXN1bHQgb2YgcmVnaXN0ZXJpbmcgKHJlc2V0dGluZykgVE9UUCAqL1xuICAgIFRvdHBSZWdpc3RlclJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgbWZhPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFSZXF1ZXN0SW5mb1wiXTtcbiAgICAgICAgICBzdGF0dXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3RhdHVzT2tcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHJlc3BvbnNlIHRvIHNpZ24gYW4gZXRoMiB1bnN0YWtlIHJlcXVlc3QuICovXG4gICAgVW5zdGFrZVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgbWVzc2FnZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJWb2x1bnRhcnlFeGl0XCJdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBCTFMgc2lnbmF0dXJlLlxuICAgICAgICAgICAqIEBleGFtcGxlIDB4OTEwYzdjZDUzN2VkOTFjYzhjNGE4MmYzY2JkODMyZTliZThjMjRhMjJlOWM4NmRmNDc5ZjdjZTQyMDI1ZWE2YTA5NjE5YjQxOGI2NjZhMDYwZTI2MGQyYWFlMzFiOGU1MGU5ZDA1Y2EzNDQyYzdlZWQzYjUwN2U1MjA3ZTE0Njc0Mjc1ZjY4YzJiYTg0YzRiZjZiOGRkMzY0YTMwNGFjYWM4Y2ZhYjM2ODFlMjUxNGI0NDAwZjkyNDJiYzYxMTY0XG4gICAgICAgICAgICovXG4gICAgICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBwb2xpY3kgZXZhbHVhdGlvbiB0cmVlLiAqL1xuICAgICAgICAgIHBvbGljeV9ldmFsX3RyZWU/OiB1bmtub3duO1xuICAgICAgICB9ICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFVwZGF0ZU9yZ1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgYWxpZW5fbG9naW5fcmVxdWlyZW1lbnQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZEZhY3RvclJlcXVpcmVtZW50XCJdIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gTUZBIHR5cGVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gYmUgdXNlZCBmb3IgaW1wbGljaXRseSBzZWN1cml0eS1zZW5zaXRpdmVcbiAgICAgICAgICAgKiBvcGVyYXRpb25zIChsaWtlIGxvZ2dpbmcgaW4sIGFkZGluZyBhbiBNRkEgZmFjdG9yLCBleHBvcnRpbmcga2V5cywgZXRjLikuXG4gICAgICAgICAgICovXG4gICAgICAgICAgYWxsb3dlZF9tZmFfdHlwZXM/OiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVR5cGVcIl1bXTtcbiAgICAgICAgICB9IHwgbnVsbDtcbiAgICAgICAgICBjdXN0b21fY2hhaW5zPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDdXN0b21DaGFpbnNEYXRhXCJdIHwgbnVsbDtcbiAgICAgICAgICBkZWZhdWx0X2ludml0ZV9raW5kPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbnZpdGVLaW5kXCJdIHwgbnVsbDtcbiAgICAgICAgICBlZGl0X3BvbGljeT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRWRpdFBvbGljeVwiXSB8IG51bGw7XG4gICAgICAgICAgZW1haWxfcHJlZmVyZW5jZXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVtYWlsUHJlZmVyZW5jZXNcIl0gfCBudWxsO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5ICovXG4gICAgICAgICAgZW5hYmxlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgICAgIGV4dF9kYXRhPzpcbiAgICAgICAgICAgIHwgKHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFBlciBhbGllbiB1c2VyIGtleSBjb3VudCB0aHJlc2hvbGQsIHdoaWNoLCBvbmNlIGV4Y2VlZGVkLCBkaXNhbGxvd3MgZnVydGhlciBrZXkgY3JlYXRpb24gYnkgYWxpZW4gdXNlcnMuXG4gICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgKiBUaGlzIHNldHRpbmcgaXMgY2hlY2tlZCBvbmx5IHdoZW4gYW4gYWxpZW4gdXNlciByZXF1ZXN0cyB0byBjcmVhdGUgb3IgaW1wb3J0IGEgbmV3IGtleS5cbiAgICAgICAgICAgICAgICAgKiBJbiBvdGhlciB3b3Jkcywgb3JnIGFkbWlucyBjYW4gc3RpbGwgYXNzaWduIHVubGltaXRlZCBudW1iZXIgb2Yga2V5cyB0byB0aGVpciBhbGllbiB1c2Vycy5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBhbGllbl9rZXlfY291bnRfdGhyZXNob2xkPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciBhbGllbiB1c2VycyBhcmUgYWxsb3dlZCB0byB1cGRhdGUgdGhlaXIgb3duIGtleSBwb2xpY2llcy5cbiAgICAgICAgICAgICAgICAgKiBEZWZhdWx0cyB0byAnZmFsc2UnLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGFsaWVuc19jYW5fdXBkYXRlX2tleV9wb2xpY3k/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgICAgICAgICAgfSAmIHtcbiAgICAgICAgICAgICAgICBjcmVhdGVkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdIHwgbnVsbDtcbiAgICAgICAgICAgICAgICBsYXN0X21vZGlmaWVkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdIHwgbnVsbDtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFZlcnNpb24gb2YgdGhpcyBvYmplY3RcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICB2ZXJzaW9uPzogbnVtYmVyO1xuICAgICAgICAgICAgICB9ICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+KVxuICAgICAgICAgICAgfCBudWxsO1xuICAgICAgICAgIGhpc3RvcmljYWxfZGF0YV9jb25maWd1cmF0aW9uPzpcbiAgICAgICAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJIaXN0b3JpY2FsRGF0YUNvbmZpZ3VyYXRpb25cIl1cbiAgICAgICAgICAgIHwgbnVsbDtcbiAgICAgICAgICBpZHBfY29uZmlndXJhdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRwQ29uZmlnXCJdIHwgbnVsbDtcbiAgICAgICAgICBrZXlfZXhwb3J0X3JlcXVpcmVtZW50PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNvbmRGYWN0b3JSZXF1aXJlbWVudFwiXSB8IG51bGw7XG4gICAgICAgICAgbWVtYmVyX2xvZ2luX3JlcXVpcmVtZW50PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNvbmRGYWN0b3JSZXF1aXJlbWVudFwiXSB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBuZXcgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIG9yZyAobXVzdCBiZSBhbHBoYW51bWVyaWMpXG4gICAgICAgICAgICogQGV4YW1wbGUgbXlfb3JnX25hbWVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyBub3RpZmljYXRpb24gZW5kcG9pbnQgY29uZmlndXJhdGlvbnNcbiAgICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAgICogICB7XG4gICAgICAgICAgICogICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludFwiXG4gICAgICAgICAgICogICB9XG4gICAgICAgICAgICogXVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG5vdGlmaWNhdGlvbl9lbmRwb2ludHM/OlxuICAgICAgICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk5vdGlmaWNhdGlvbkVuZHBvaW50Q29uZmlndXJhdGlvblwiXVtdXG4gICAgICAgICAgICB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgb3JnYW5pemF0aW9uXG4gICAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAgIHBhc3NrZXlfY29uZmlndXJhdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUGFzc2tleUNvbmZpZ1wiXSB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2Ygb3JnLXdpZGUgcG9saWNpZXNcbiAgICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAgICogICB7XG4gICAgICAgICAgICogICAgIFwiTWF4RGFpbHlVbnN0YWtlXCI6IDVcbiAgICAgICAgICAgKiAgIH0sXG4gICAgICAgICAgICogICB7XG4gICAgICAgICAgICogICAgIFwiT3JpZ2luQWxsb3dsaXN0XCI6IFtcbiAgICAgICAgICAgKiAgICAgICBcImh0dHBzOi8vZXhhbXBsZS5jb21cIlxuICAgICAgICAgICAqICAgICBdXG4gICAgICAgICAgICogICB9XG4gICAgICAgICAgICogXVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHBvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdIHwgbnVsbDtcbiAgICAgICAgICBwb2xpY3lfZW5naW5lX2NvbmZpZ3VyYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBvbGljeUVuZ2luZUNvbmZpZ3VyYXRpb25cIl0gfCBudWxsO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiByZXF1aXJlX3Njb3BlX2NlaWxpbmcgKi9cbiAgICAgICAgICByZXF1aXJlX3Njb3BlX2NlaWxpbmc/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiB0aGUgb3JnLXdpZGUgc2lnbiBydWxlc1xuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJUeFJlY2VpdmVyXCI6IFwiMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCJcbiAgICAgICAgICAgKiAgIH1cbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgc2lnbl9wb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXSB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IHZhbHVlIG9mIHRoZSBUT1RQIGZhaWx1cmUgbGltaXRcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB0b3RwX2ZhaWx1cmVfbGltaXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiB1c2VyLWV4cG9ydCBkZWxheVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHVzZXJfZXhwb3J0X2RlbGF5PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdXNlci1leHBvcnQgZGlzYWJsZWQgKi9cbiAgICAgICAgICB1c2VyX2V4cG9ydF9kaXNhYmxlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiB1c2VyLWV4cG9ydCB3aW5kb3dcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB1c2VyX2V4cG9ydF93aW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmV3IG9yZyB2ZXJzaW9uXG4gICAgICAgICAgICovXG4gICAgICAgICAgdmVyc2lvbjogbnVtYmVyO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIHRvIGEgcmVxdWVzdCBmb3IgdXBsb2FkaW5nIGEgd2FzbSBwb2xpY3kgKi9cbiAgICBVcGxvYWRXYXNtUG9saWN5UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEEgc2lnbmVkIFVSTCBmb3IgdXBsb2FkaW5nIHRoZSByZXF1ZXN0ZWQgd2FzbSBwb2xpY3kuICovXG4gICAgICAgICAgc2lnbmVkX3VybDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gZW5jcnlwdGVkIHVzZXItZXhwb3J0ICovXG4gICAgVXNlckV4cG9ydENvbXBsZXRlUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGV4cG9ydGVkIGtleSBtYXRlcmlhbCwgZW5jcnlwdGVkIHdpdGggQUVTLTI1Ni1HQ00gdW5kZXIgYSBrZXlcbiAgICAgICAgICAgKiBkZXJpdmVkIGZyb20gdGhlIHB1YmxpYyBrZXkgc3VwcGxpZWQgaW4gdGhlIHJlcXVlc3QgdmlhIEhQS0UgKFJGQzkxODApXG4gICAgICAgICAgICogd2l0aCBESEtFTShQLTI1NiwgSEtERi1TSEEyNTYpIGFuZCBiYXNlNjQgZW5jb2RlZC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmNyeXB0ZWRfa2V5X21hdGVyaWFsOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlcGhlbWVyYWwgcHVibGljIGtleSB1c2VkIGZvciBIUEtFIGtleSBkZXJpdmF0aW9uIGFzIGJhc2U2NC1lbmNvZGVkXG4gICAgICAgICAgICogdW5jb21wcmVzc2VkIFNFQzEgc2VyaWFsaXphdGlvbi5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlcGhlbWVyYWxfcHVibGljX2tleTogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHVzZXItaWQgdG8gd2hpY2ggdGhpcyBrZXkgYmVsb25ncy4gKi9cbiAgICAgICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzcG9uc2UgdG8gYSBzdWNjZXNzZnVsIHVzZXItZXhwb3J0IGluaXQgcmVxdWVzdCAqL1xuICAgIFVzZXJFeHBvcnRJbml0UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckV4cG9ydFJlcXVlc3RcIl0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBrZXktaWQgYmVpbmcgcmVxdWVzdGVkLlxuICAgICAgICAgICAqIEBleGFtcGxlIEtleSMweDNjNGQ5MENjNUFmMTY0NEMzQTNCMDEzQmFhNTQ4ODk5NzM4MUQ3QzhcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBVc2VySW5PcmdJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB1c2VyJ3MgZW1haWwgKG9wdGlvbmFsKVxuICAgICAgICAgICAqIEBleGFtcGxlIGFsaWNlQGV4YW1wbGUuY29tXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW1haWw/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIHVzZXJcbiAgICAgICAgICAgKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSB1c2VyIGhhcyBldmVyIHN1Y2Nlc3NmdWxseSBsb2dnZWQgaW4gKi9cbiAgICAgICAgICBpbml0aWFsaXplZD86IGJvb2xlYW47XG4gICAgICAgICAgbWVtYmVyc2hpcDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgdXNlciBuYW1lLiAqL1xuICAgICAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIHN0YXR1czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJzaGlwU3RhdHVzXCJdO1xuICAgICAgICAgIHZlcmlmaWVkX2VtYWlsPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJWZXJpZmllZEVtYWlsXCJdIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBVc2VySW5PcmdJbmZvV2l0aElkZW50aXR5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB1c2VyJ3MgZW1haWwgKG9wdGlvbmFsKVxuICAgICAgICAgICAqIEBleGFtcGxlIGFsaWNlQGV4YW1wbGUuY29tXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW1haWw/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIHVzZXJcbiAgICAgICAgICAgKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSB1c2VyIGhhcyBldmVyIHN1Y2Nlc3NmdWxseSBsb2dnZWQgaW4gKi9cbiAgICAgICAgICBpbml0aWFsaXplZD86IGJvb2xlYW47XG4gICAgICAgICAgbWVtYmVyc2hpcDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgdXNlciBuYW1lLiAqL1xuICAgICAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIHN0YXR1czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJzaGlwU3RhdHVzXCJdO1xuICAgICAgICAgIHZlcmlmaWVkX2VtYWlsPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJWZXJpZmllZEVtYWlsXCJdIHwgbnVsbDtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHRoaXJkLXBhcnR5IGlkZW50aXRpZXMgdmlhIHdoaWNoIHRoZSB1c2VyIHdhcyBmb3VuZCAqL1xuICAgICAgICAgIGlkZW50aXRpZXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkZW50aXR5SW5mb1wiXVtdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFVzZXJJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGVtYWlsXG4gICAgICAgICAgICogQGV4YW1wbGUgYWxpY2VAZXhhbXBsZS5jb21cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbWFpbD86IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgbXVsdGktZmFjdG9yIGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgY29uZmlndXJlZCBmb3IgdGhpcyB1c2VyICovXG4gICAgICAgICAgbWZhOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbmZpZ3VyZWRNZmFcIl1bXTtcbiAgICAgICAgICBtZmFfcG9saWN5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFQb2xpY3lcIl0gfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBuYW1lXG4gICAgICAgICAgICogQGV4YW1wbGUgQWxpY2VcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBbGwgb3JnYW5pemF0aW9ucyB0aGUgdXNlciBiZWxvbmdzIHRvLiBEZXByZWNhdGVkIGluIGZhdm9yIG9mICdvcmdzJy5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAgICogICBcIk9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcIlxuICAgICAgICAgICAqIF1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBvcmdfaWRzOiBzdHJpbmdbXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBvcmdhbml6YXRpb25zIHRoZSB1c2VyIGJlbG9uZ3MgdG8sIGluY2x1ZGluZyB0aGUgbWVtYmVyc2hpcCByb2xlIGluIGVhY2guICovXG4gICAgICAgICAgb3JnczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VySW5PcmdNZW1iZXJzaGlwXCJdW107XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyXG4gICAgICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgICAgICAgdmVyaWZpZWRfZW1haWw/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlZlcmlmaWVkRW1haWxcIl0gfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIHRvIHRoZSB1c2VyL29yZ3MgZW5kcG9pbnQgKi9cbiAgICBVc2VyT3Jnc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbGlzdCBvZiBvcmdzIHRoaXMgdXNlciBpcyBhIG1lbWJlciBvZiAqL1xuICAgICAgICAgIG9yZ3M6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT3JnRGF0YVwiXVtdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICBwYXJhbWV0ZXJzOiBuZXZlcjtcbiAgcmVxdWVzdEJvZGllczogbmV2ZXI7XG4gIGhlYWRlcnM6IG5ldmVyO1xuICBwYXRoSXRlbXM6IG5ldmVyO1xufVxuXG5leHBvcnQgdHlwZSAkZGVmcyA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuZXhwb3J0IHR5cGUgZXh0ZXJuYWwgPSBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5cbmV4cG9ydCBpbnRlcmZhY2Ugb3BlcmF0aW9ucyB7XG4gIC8qKlxuICAgKiBVc2VyIEluZm9cbiAgICogQGRlc2NyaXB0aW9uIFVzZXIgSW5mb1xuICAgKlxuICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgdXNlci5cbiAgICpcbiAgICogUFJFRkVSIGBHRVQgL3YwL29yZ3Mve29yZ19pZH0vdXNlci9tZWBcbiAgICovXG4gIGFib3V0TWVMZWdhY3k6IHtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlVzZXJJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEpXS1MgZW5kcG9pbnQgZm9yIHRoZSBhdHRlc3RhdGlvbiBrZXlcbiAgICogQGRlc2NyaXB0aW9uIEpXS1MgZW5kcG9pbnQgZm9yIHRoZSBhdHRlc3RhdGlvbiBrZXlcbiAgICpcbiAgICogUmV0dXJucyB0aGUgcHVibGljIGtleSB1c2VkIHRvIHNpZ24gS2V5IGluZm8gYXR0ZXN0YXRpb25zLlxuICAgKi9cbiAgYXR0ZXN0YXRpb25Kd2tTZXQ6IHtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkp3a1NldFJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgYWNjZXNzaWJsZSBvcmdhbml6YXRpb25zLlxuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBhY2Nlc3NpYmxlIG9yZ2FuaXphdGlvbnMuXG4gICAqXG4gICAqIFVuYXV0aGVudGljYXRlZCBlbmRwb2ludCBmb3IgcmV0cmlldmluZyBhbGwgb3JnYW5pemF0aW9ucyBhY2Nlc3NpYmxlIHRvIGEgdXNlci5cbiAgICogVGhpcyBpbmZvcm1hdGlvbiBpcyBlbWFpbGVkIHRvIHRoZSBwcm92aWRlZCBlbWFpbCBhZGRyZXNzLlxuICAgKi9cbiAgZW1haWxfbXlfb3Jnczoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVtYWlsIG9mIHRoZSB1c2VyXG4gICAgICAgICAqIEBleGFtcGxlIGFsaWNlQGV4YW1wbGUuY29tXG4gICAgICAgICAqL1xuICAgICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIChJTlRFUk5BTCkgU2VudHJ5IEFQSSBQcm94eVxuICAgKiBAZGVzY3JpcHRpb24gKElOVEVSTkFMKSBTZW50cnkgQVBJIFByb3h5XG4gICAqL1xuICBzZW50cnlBcGlDYWxsUHVibGljOiB7XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJ0ZXh0L3BsYWluXCI6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBKV0tTIGVuZHBvaW50IGZvciBNTUlcbiAgICogQGRlc2NyaXB0aW9uIEpXS1MgZW5kcG9pbnQgZm9yIE1NSVxuICAgKlxuICAgKiBSZXR1cm5zIHRoZSBwdWJsaWMga2V5IHVzZWQgdG8gc2lnbiBKU09OIFdlYiBUb2tlbnMgZm9yIE1NSS5cbiAgICovXG4gIG1taUp3a1NldDoge1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiSndrU2V0UmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTU1JIEpTT04tUlBDIGVuZHBvaW50XG4gICAqIEBkZXNjcmlwdGlvbiBNTUkgSlNPTi1SUEMgZW5kcG9pbnRcbiAgICpcbiAgICogSGFuZGxlciBmb3IgYWxsIFtNTUkgSlNPTi1SUENdKGh0dHBzOi8vZG9jcy5tZXRhbWFzay1pbnN0aXR1dGlvbmFsLmlvL2N1c3RvZGlhbi1pbnRlZ3JhdGlvbi9pbnRlZ3JhdGlvbi1kb2NzL2FwaS9tZXRob2RzKVxuICAgKiByZXF1ZXN0cy5cbiAgICovXG4gIG1taToge1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJKcnBjUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVG9rZW4gcmVmcmVzaCBlbmRwb2ludCwgY29tcGxpYW50IHdpdGggT0F1dGguXG4gICAqIEBkZXNjcmlwdGlvbiBUb2tlbiByZWZyZXNoIGVuZHBvaW50LCBjb21wbGlhbnQgd2l0aCBPQXV0aC5cbiAgICpcbiAgICogVGhlIGJvZHkgY29udGVudCB0eXBlIGNhbiBiZSBlaXRoZXIgJ2FwcGxpY2F0aW9uL2pzb24nIG9yICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLlxuICAgKi9cbiAgb2F1dGgyVG9rZW5SZWZyZXNoOiB7XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG9rZW5SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVG9rZW5SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgT3JnXG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgT3JnXG4gICAqXG4gICAqIFJldHJpZXZlcyBpbmZvcm1hdGlvbiBhYm91dCBhbiBvcmdhbml6YXRpb24uXG4gICAqL1xuICBnZXRPcmc6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJPcmdJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFVwZGF0ZSBPcmdcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBPcmdcbiAgICpcbiAgICogVXBkYXRlIG9yZ2FuaXphdGlvbiBhdHRyaWJ1dGVzIChlbmFibGVkIGZsYWcsIG5hbWUsIGFuZCBwb2xpY2llcykuXG4gICAqL1xuICB1cGRhdGVPcmc6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXBkYXRlT3JnUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlVwZGF0ZU9yZ1Jlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBRdWVyeSB0aGUgYXVkaXQgbG9nLlxuICAgKiBAZGVzY3JpcHRpb24gUXVlcnkgdGhlIGF1ZGl0IGxvZy5cbiAgICovXG4gIHF1ZXJ5QXVkaXRMb2c6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXVkaXRMb2dSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkQXVkaXRMb2dSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBBc3NvY2lhdGUgYW4gT0lEQyBpZGVudGl0eSB3aXRoIGFuIGFyYml0cmFyeSB1c2VyIGluIG9yZyA8c2Vzc2lvbi5vcmc+LlxuICAgKiBAZGVzY3JpcHRpb24gQXNzb2NpYXRlIGFuIE9JREMgaWRlbnRpdHkgd2l0aCBhbiBhcmJpdHJhcnkgdXNlciBpbiBvcmcgPHNlc3Npb24ub3JnPi5cbiAgICovXG4gIGF1dGhNaWdyYXRpb25JZGVudGl0eUFkZDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNaWdyYXRlSWRlbnRpdHlSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIERpc3NvY2lhdGUgYW4gT0lEQyBpZGVudGl0eSBmcm9tIGFuIGFyYml0cmFyeSB1c2VyIGluIG9yZyA8c2Vzc2lvbi5vcmc+LlxuICAgKiBAZGVzY3JpcHRpb24gRGlzc29jaWF0ZSBhbiBPSURDIGlkZW50aXR5IGZyb20gYW4gYXJiaXRyYXJ5IHVzZXIgaW4gb3JnIDxzZXNzaW9uLm9yZz4uXG4gICAqL1xuICBhdXRoTWlncmF0aW9uSWRlbnRpdHlSZW1vdmU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWlncmF0ZUlkZW50aXR5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBVcGRhdGUgZXhpc3RpbmcgdXNlcnMnIHByb2ZpbGVzLiBDdXJyZW50bHkgc3VwcG9ydHMgb25seSAocmUpc2V0dGluZyBlbWFpbHMuXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgZXhpc3RpbmcgdXNlcnMnIHByb2ZpbGVzLiBDdXJyZW50bHkgc3VwcG9ydHMgb25seSAocmUpc2V0dGluZyBlbWFpbHMuXG4gICAqL1xuICBhdXRoTWlncmF0aW9uVXNlclVwZGF0ZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNaWdyYXRlVXBkYXRlVXNlcnNSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gYSBzZXJpYWxpemVkIEF2YWxhbmNoZSBDL1gvUC1DaGFpbiBNZXNzYWdlXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIGEgc2VyaWFsaXplZCBBdmFsYW5jaGUgQy9YL1AtQ2hhaW4gTWVzc2FnZVxuICAgKlxuICAgKiBTaWducyBhbiBBdmFsYW5jaGUgbWVzc2FnZSB3aXRoIGEgZ2l2ZW4gU2VjcEV0aCAoQy1DaGFpbiBtZXNzYWdlcykgb3JcbiAgICogU2VjcEF2YSAoWC0gYW5kIFAtQ2hhaW4gbWVzc2FnZXMpIGtleS4gQ3VycmVudGx5IHNpZ25pbmcgQy1DaGFpbiBtZXNzYWdlc1xuICAgKiB3aXRoIFNlY3BFdGgga2V5IG11c3QgYWxzbyBiZSBleHBsaWNpdGx5IGFsbG93ZWQgdmlhIGBBbGxvd1Jhd0Jsb2JTaWduaW5nYFxuICAgKiBwb2xpY3kuXG4gICAqXG4gICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgKi9cbiAgYXZhU2VyaWFsaXplZFR4U2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBBdmFsYW5jaGUgY2hhaW5cbiAgICAgICAgICogQGV4YW1wbGUgUFxuICAgICAgICAgKi9cbiAgICAgICAgYXZhX2NoYWluOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gQXZhbGFuY2hlIGFkZHJlc3MgaW4gYmVjaDMyIG9yIEVUSCBmb3JtYXRcbiAgICAgICAgICogQGV4YW1wbGUgMHhCMzFmNjZBQTNDMWU3ODUzNjNGMDg3NUExQjc0RTI3Yjg1RkQ2NmM3XG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBdmFTZXJpYWxpemVkVHhTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBKU09OLWVuY29kZWQgQXZhbGFuY2hlIFgtIG9yIFAtQ2hhaW4gTWVzc2FnZVxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBKU09OLWVuY29kZWQgQXZhbGFuY2hlIFgtIG9yIFAtQ2hhaW4gTWVzc2FnZVxuICAgKlxuICAgKiBTaWducyBhbiBBdmFsYW5jaGUgbWVzc2FnZSB3aXRoIGEgZ2l2ZW4gU2VjcEF2YSBrZXkuXG4gICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgKi9cbiAgYXZhU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBBdmFsYW5jaGUgYmVjaDMyIGFkZHJlc3MgZm9ybWF0IHdpdGhvdXQgdGhlIGNoYWluIHByZWZpeFxuICAgICAgICAgKiBAZXhhbXBsZSBhdmF4MWFtNHc2aGZydm1oM2FrZHV6a2p0aHJ0Z3RxYWZhbGNlNmFuOGNyXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBdmFTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBCYWJ5bG9uIENvdmVuYW50IENvbW1pdHRlZSBSZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIEJhYnlsb24gQ292ZW5hbnQgQ29tbWl0dGVlIFJlcXVlc3RcbiAgICpcbiAgICogU2lnbnMgdHJhbnNhY3Rpb25zIHJlbGV2YW50IHRvIGEgQmFieWxvbiBjb3ZlbmFudCBjb21taXR0ZWUgc2lnbmVyLFxuICAgKiBpLmUuLCBTY2hub3JyIGFuZCBhZGFwdG9yIHNpZ25hdHVyZXMgZm9yIHRoZSB1bmJvbmRpbmcsIHNsYXNoaW5nLCBhbmRcbiAgICogc2xhc2gtdW5ib25kaW5nIG91dHB1dHMgb2YgYSBCYWJ5bG9uIHN0YWtpbmcgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBiYWJ5bG9uQ292U2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBoZXgtZW5jb2RlZCBwdWJsaWMga2V5XG4gICAgICAgICAqIEBleGFtcGxlIDB4MDNlMzgxMDZkZDc2NjU2YmM2OGQwMjg5OGVkZTFhOTExZGY4Yzc5M2U0NmFjNGViMzdkMjZjMjY2YWFlNWQyYTVhXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCYWJ5bG9uQ292U2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJCYWJ5bG9uQ292U2lnblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgRU9UUyBub25jZXNcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBFT1RTIG5vbmNlc1xuICAgKlxuICAgKiBHZW5lcmF0ZXMgYSBzZXQgb2YgQmFieWxvbiBFT1RTIG5vbmNlcyBmb3IgYSBzcGVjaWZpZWQgY2hhaW4taWQsIHN0YXJ0aW5nIGF0IGFcbiAgICogc3BlY2lmaWVkIGJsb2NrIGhlaWdodC5cbiAgICovXG4gIGNyZWF0ZUVvdHNOb25jZXM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgcHVibGljIGtleSBvZiB0aGUgRU9UUyBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgMHg0NTdmMGYyNGNmYjA2YzNjMzU4NzRiYmQxZjU5YjU3MTgwYTVhOWQ3ZTFmNjkyOTI4MDgzOWM4MzBmNWMxNDdmXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFb3RzQ3JlYXRlTm9uY2VSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW90c0NyZWF0ZU5vbmNlUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlIGFuIEVPVFMgc2lnbmF0dXJlXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgYW4gRU9UUyBzaWduYXR1cmVcbiAgICpcbiAgICogR2VuZXJhdGVzIGFuIEVPVFMgc2lnbmF0dXJlIGZvciB0aGUgc3BlY2lmaWVkIGNoYWluLWlkLCBibG9jayBoZWlnaHQsIGFuZCBtZXNzYWdlLlxuICAgKi9cbiAgZW90c1NpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgcHVibGljIGtleSBvZiB0aGUgRU9UUyBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgMHg0NTdmMGYyNGNmYjA2YzNjMzU4NzRiYmQxZjU5YjU3MTgwYTVhOWQ3ZTFmNjkyOTI4MDgzOWM4MzBmNWMxNDdmXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFb3RzU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gQmFieWxvbiBTdGFraW5nIFJlZ2lzdHJhdGlvblxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBCYWJ5bG9uIFN0YWtpbmcgUmVnaXN0cmF0aW9uXG4gICAqXG4gICAqIENyZWF0ZXMgYW5kIHNpZ25zIHRoZSBkYXRhIG5lZWRlZCB0byByZWdpc3RlciBhIFBoYXNlLTIgb3IgUGhhc2UtM1xuICAgKiBCYWJ5bG9uIHN0YWtlLiBUaGlzIGluY2x1ZGVzIHRoZSBkZXBvc2l0IGFuZCB1bmJvbmRpbmcgdHJhbnNhY3Rpb25zLFxuICAgKiB0d28gc2xhc2hpbmcgdHJhbnNhY3Rpb25zLCB0aGUgc2xhc2hpbmcgc2lnbmF0dXJlcywgYW5kIHRoZSBwcm9vZiBvZlxuICAgKiBwb3NzZXNzaW9uLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgaXQgaXMgYWxzbyBwb3NzaWJsZSB0byBnZW5lcmF0ZSB0aGlzIHJlZ2lzdHJhdGlvbiBkYXRhIGJ5XG4gICAqIG1ha2luZyBmb3VyIGNhbGxzIHRvIHRoZSBCYWJ5bG9uIHN0YWtpbmcgQVBJLCBwbHVzIG9uZSBjYWxsIHRvIHRoZVxuICAgKiBQU0JUIHNpZ25pbmcgQVBJIHRvIGdlbmVyYXRlIHRoZSBCSVAtMzIyIHByb29mIG9mIHBvc3Nlc3Npb24uIFRoZVxuICAgKiByZWdpc3RyYXRpb24gQVBJIGdlbmVyYXRlcyB0aGUgc2FtZSBkYXRhIGJ1dCBpcyBlYXNpZXIgdG8gdXNlLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhpcyBhY3Rpb24gY2FuIG9ubHkgYmUgY2FsbGVkIHdpdGggYSBUYXByb290IGtleS4gSWYgeW91clxuICAgKiBkZXBvc2l0IHRyYW5zYWN0aW9uIHNwZW5kcyBVVFhPcyB0aGF0IGFyZSBjb250cm9sbGVkIGJ5IG90aGVyIGtleXMsXG4gICAqIHlvdSBjYW4gc3VibWl0IHRoZSAnZGVwb3NpdCcgUFNCVCB0byB0aGUgUFNCVCBzaWduaW5nIEFQSSBvbmUgb3IgbW9yZVxuICAgKiB0aW1lcyB0byBnZW5lcmF0ZSB0aGUgcmVxdWlyZWQgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIGNvbnN1bHQgdGhlXG4gICAqIFtCYWJ5bG9uIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9ubGFicy1pby9iYWJ5bG9uL2Jsb2IvcmVsZWFzZS92MS54L2RvY3MvcmVnaXN0ZXItYml0Y29pbi1zdGFrZS5tZCkuXG4gICAqXG4gICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgKi9cbiAgYmFieWxvblJlZ2lzdHJhdGlvbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBiZWNoMzIgZW5jb2Rpbmcgb2YgdGhlIHB1YmxpYyBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgdGIxcGU0Zmd5bjg3cHdrdTJ4ZHB0YzJkdGFlcXp5eDh3eDg5Y3FhNnludHU4dGQ0OWZscHQ1d3E1azZoYXVcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJhYnlsb25SZWdpc3RyYXRpb25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQmFieWxvblJlZ2lzdHJhdGlvblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIEJhYnlsb24gU3Rha2luZyBUcmFuc2FjdGlvblxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBCYWJ5bG9uIFN0YWtpbmcgVHJhbnNhY3Rpb25cbiAgICpcbiAgICogQ3JlYXRlcyBhbmQgc2lnbnMgdHJhbnNhY3Rpb25zIHJlbGF0ZWQgdG8gQmFieWxvbiBzdGFraW5nIChpLmUuLFxuICAgKiBkZXBvc2l0LCBlYXJseSB1bmJvbmQsIHdpdGhkcmF3YWwpLiBUaGUgcmV0dXJuIHZhbHVlIGlzIGEgUHJlLVNpZ25lZFxuICAgKiBCaXRjb2luIFRyYW5zYWN0aW9uIChQU0JUKSwgYXMgZGVmaW5lZCBpbiBCSVAtMTc0LCB3aGljaCBtYXRjaGVzIHRoZVxuICAgKiBmb3JtYXQgdXNlZCBpbiBtb3N0IEJhYnlsb24gdG9vbGluZy5cbiAgICpcbiAgICogVGhlICdkZXBvc2l0JyBhY3Rpb24gY2FuIGJlIHVzZWQgd2l0aCBlaXRoZXIgU2Vnd2l0IChpLmUuLCBTZWNwQnRjL1NlY3BCdGNUZXN0KVxuICAgKiBvciBUYXByb290IChpLmUuLCBUYXByb290QnRjL1RhcHJvb3RCdGNUZXN0KSBrZXlzLiBUaGUgcmVtYWluaW5nIGFjdGlvbnMgY2FuIGJlXG4gICAqIHVzZWQgb25seSB3aXRoIFRhcHJvb3Qga2V5cy5cbiAgICpcbiAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAqL1xuICBiYWJ5bG9uU3Rha2luZzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBiZWNoMzIgZW5jb2Rpbmcgb2YgdGhlIHB1YmxpYyBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgdGIxcGU0Zmd5bjg3cHdrdTJ4ZHB0YzJkdGFlcXp5eDh3eDg5Y3FhNnludHU4dGQ0OWZscHQ1d3E1azZoYXVcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJhYnlsb25TdGFraW5nUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkJhYnlsb25TdGFraW5nUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gYSBCaXRjb2luIG1lc3NhZ2UuXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIGEgQml0Y29pbiBtZXNzYWdlLlxuICAgKlxuICAgKiBTaWducyBhIG1lc3NhZ2UgdXNpbmcgQklQMTM3IG1lc3NhZ2Ugc2lnbmluZyB3aXRoIGEgZ2l2ZW4gU2VjcDI1NmsxIGtleS5cbiAgICovXG4gIGJ0Y01lc3NhZ2VTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEFkZHJlc3Mgb2YgYSBTZWd3aXQgb3IgTGVnYWN5IGJpdGNvaW4ga2V5XG4gICAgICAgICAqIEBleGFtcGxlIGJjMXEzcjM1dTR0aDc4aDA2ZDY0bXdtcDN2cHU4cW16eWEwNXBxOGZ3bFxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjTWVzc2FnZVNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQnRjTWVzc2FnZVNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBhIFBhcnRpYWxseSBTaWduZWQgQml0Y29pbiBUcmFuc2FjdGlvbiAoUFNCVClcbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gYSBQYXJ0aWFsbHkgU2lnbmVkIEJpdGNvaW4gVHJhbnNhY3Rpb24gKFBTQlQpXG4gICAqXG4gICAqIFNpZ25zIGFsbCBpbnB1dHMgb2YgdGhlIHN1cHBsaWVkIFBTQlQgdjAgKEJJUC0xNzQpIHRoYXQgcGVydGFpbiB0byB0aGVcbiAgICogJ3B1YmtleScgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0LCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgVGFwcm9vdCBvciBhXG4gICAqIFNlZ3dpdCBrZXkuIEZvciBTZWd3aXQga2V5cywgQ3ViZVNpZ25lci1zcGVjaWZpYyBkZXRlcm1pbmlzdGljIHR3ZWFraW5nXG4gICAqIGNhbiBiZSBhcHBsaWVkIHRvICdwdWJrZXknIGJlZm9yZSBzaWduaW5nLCBvbiBhIHBlci1pbnB1dCBiYXNpcy4gKFNlZSB0aGVcbiAgICogQ3ViZVNpZ25lciBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIFNlZ3dpdCB0d2Vha2luZy4pXG4gICAqXG4gICAqIFdoZW4gY2FsbGluZyB3aXRoIGEgc2Vnd2l0IGtleSB0aGUgcmVxdWlyZWQgc2NvcGUgaXMgJ3NpZ246YnRjOnBzYnQ6c2Vnd2l0Jy5cbiAgICogRm9yIGEgdGFwcm9vdCBrZXksIHRoZSBzY29wZSBpcyAnc2lnbjpidGM6cHNidDp0YXByb290Jy4gRWl0aGVyIHR5cGUgb2Yga2V5XG4gICAqIGNhbiBiZSB1c2VkIHdpdGggdGhlICdzaWduOmJ0Yzpwc2J0JyBzY29wZS5cbiAgICpcbiAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAqL1xuICBwc2J0U2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBiZWNoMzIobSktZW5jb2RlZCBzZWd3aXQgb3IgdGFwcm9vdCBhZGRyZXNzXG4gICAgICAgICAqIEBleGFtcGxlIGJjMXAyd3NsZGV6NW11ZDJ5YW0yOXEyMndnZmg5NDM5c3BnZHV2Y3Q4M2szcG01MGZjeGE1ZHBzNTloNHo1XG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQc2J0U2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQc2J0U2lnblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIEJpdGNvaW4gU2Vnd2l0IFRyYW5zYWN0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIEJpdGNvaW4gU2Vnd2l0IFRyYW5zYWN0aW9uXG4gICAqXG4gICAqIFNpZ25zIGEgQml0Y29pbiBTZWd3aXQgdHJhbnNhY3Rpb24gd2l0aCBhIGdpdmVuIGtleS5cbiAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAqL1xuICBidGNTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIGJlY2gzMi1lbmNvZGVkIHNlZ3dpdCBhZGRyZXNzXG4gICAgICAgICAqIEBleGFtcGxlIGJjMXE1cDVxa2FlNzdseTgwa3I0cHlmeXRkcW03cmYwOGRkaGRlamw5Z1xuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gQml0Y29pbiBUYXByb290IFRyYW5zYWN0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIEJpdGNvaW4gVGFwcm9vdCBUcmFuc2FjdGlvblxuICAgKlxuICAgKiBTaWducyBhIEJpdGNvaW4gVGFwcm9vdCB0cmFuc2FjdGlvbiB3aXRoIGEgZ2l2ZW4ga2V5LlxuICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICovXG4gIGJ0Y1RhcHJvb3RTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIGJlY2gzMm0tZW5jb2RlZCB0YXByb290IGFkZHJlc3NcbiAgICAgICAgICogQGV4YW1wbGUgYmMxcDJ3c2xkZXo1bXVkMnlhbTI5cTIyd2dmaDk0MzlzcGdkdXZjdDgzazNwbTUwZmN4YTVkcHM1OWg0ejVcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRhcHJvb3RTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBDb250YWN0c1xuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBDb250YWN0c1xuICAgKlxuICAgKiBMaXN0IGFsbCBjb250YWN0cyBpbiB0aGUgb3JnLlxuICAgKiBBbnkgb3JnIG1lbWJlciBpcyBhbGxvd2VkIHRvIGxpc3QgYWxsIGNvbnRhY3RzIGluIHRoZSBvcmcuXG4gICAqXG4gICAqICMjIFNlYXJjaCBDb25kaXRpb25cbiAgICogVGhlIHNlYXJjaCBjb25kaXRpb24gaXMgb3B0aW9uYWwuXG4gICAqXG4gICAqIC0gSWYgdGhlIHNlYXJjaCBjb25kaXRpb24gc3RhcnRzIHdpdGggXCJsYWJlbDouLi5cIiwgdGhpcyBsaXN0IHdpbGwgb25seSBob2xkIGNvbnRhY3RzIHdpdGhcbiAgICogdGhlIGxhYmVsIHByb3ZpZGVkIGFmdGVyIHRoZSBcIjpcIi4gRm9yIGV4YW1wbGUsIFwibGFiZWw6Y3ViaXN0OmVyYzIwX3Rva2VuXCIgd291bGQgcmV0dXJuIGNvbnRhY3RzIHRoYXRcbiAgICogaG9sZCB0aGUgbGFiZWwgXCJjdWJpc3Q6ZXJjMjBfdG9rZW5cIi5cbiAgICpcbiAgICogLSBPdGhlcndpc2UsIHRoZSByZXN1bHQgd2lsbCBjb250YWluIG9ubHkgdGhlIGNvbnRhY3RzIHdobyBoYXZlIGFuIGFkZHJlc3Mgc3RhcnRpbmcgd2l0aCwgb3JcbiAgICogZXF1YWxpbmcsIHRoZSBnaXZlbiBzZWFyY2ggc3RyaW5nLiBGb3IgZXhhbXBsZSwgXCIweGVlXCIgd291bGQgcmV0dXJuIGFsbCBjb250YWN0cyBob2xkaW5nIGFuXG4gICAqIGFkZHJlc3Mgc3RhcnRpbmcgd2l0aCBcIjB4ZWVcIi4gVGhlIHNlYXJjaCBpcyBjYXNlLWluc2Vuc2l0aXZlLlxuICAgKlxuICAgKiBJZiBhIHNlYXJjaCB0ZXJtIGlzIGRlZmluZWQsIHdlIGRvIG5vdCBndWFyYW50ZWVcbiAgICogdGhlIG51bWJlciBvZiByZXN1bHRzIGluIGEgcGFnZS4gVGhlIGJlaGF2aW9yIG9mIHRoaXMgcGFyYW1ldGVyIG1heSBjaGFuZ2VcbiAgICogaW4gdGhlIGZ1dHVyZSAoZm9yIGV4YW1wbGUsIG1ha2luZyByZXN1bHRzIG1vcmUgc3RyaWN0bHkgcGFnaW5hdGVkIG9yXG4gICAqIHBlcmZvcm1pbmcgYSBmdXp6eSBzZWFyY2ggcmF0aGVyIHRoYW4gYSBwcmVmaXggc2VhcmNoKS5cbiAgICovXG4gIGxpc3RDb250YWN0czoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEVpdGhlciAnbGFiZWw6Li4uJywgd2hpY2ggbGlzdHMgY29udGFjdHMgd2l0aCB0aGUgbGFiZWwgcHJvdmlkZWQgYWZ0ZXIgdGhlICc6Jy4gT3IsIGFuIGVudGlyZSBhZGRyZXNzLCBvciBwcmVmaXggb2YgYW4gYWRkcmVzcywgdGhhdCByZXR1cm5lZCBjb250YWN0cyBtdXN0IGhhdmUuIFdoZW4gc2VhcmNoaW5nIGJ5IGFkZHJlc3MsIGl0IG11c3QgYmUgYXQgbGVhc3QgMyBjaGFyYWN0ZXJzLiAqL1xuICAgICAgICBzZWFyY2g/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBhZ2luYXRlZExpc3RDb250YWN0c1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBDb250YWN0XG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgQ29udGFjdFxuICAgKlxuICAgKiBDcmVhdGVzIGEgbmV3IGNvbnRhY3QgaW4gdGhlIG9yZ2FuaXphdGlvbi13aWRlIGFkZHJlc3MgYm9vay4gVGhlXG4gICAqIHVzZXIgbWFraW5nIHRoZSByZXF1ZXN0IGlzIHRoZSBvd25lciBvZiB0aGUgY29udGFjdCwgZ2l2aW5nIHRoZW0gZWRpdCBhY2Nlc3NcbiAgICogdG8gdGhlIGNvbnRhY3QgYWxvbmcgd2l0aCB0aGUgb3JnIG93bmVycy5cbiAgICovXG4gIGNyZWF0ZUNvbnRhY3Q6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlQ29udGFjdFJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJDb250YWN0SW5mb1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExvb2t1cCBDb250YWN0cyBieSBBZGRyZXNzXG4gICAqIEBkZXNjcmlwdGlvbiBMb29rdXAgQ29udGFjdHMgYnkgQWRkcmVzc1xuICAgKlxuICAgKiBSZXR1cm5zIGFsbCBjb250YWN0cyBpbiB0aGUgb3JnIHRoYXQgaGF2ZSB0aGUgZ2l2ZW4gYWRkcmVzcy5cbiAgICpcbiAgICogV2hlbiBxdWVyeWluZyB3aXRoIGFuIEVWTSBhZGRyZXNzIHdpdGhvdXQgYSBjaGFpbiwgdGhpcyBlbmRwb2ludCByZXR1cm5zXG4gICAqIGNvbnRhY3RzIHdpdGggdGhhdCBhZGRyZXNzIG9uICphbnkqIGNoYWluLCBpbmNsdWRpbmcgdGhvc2Ugd2l0aG91dCBhIGNoYWluXG4gICAqIGRlZmluZWQuXG4gICAqL1xuICBsb29rdXBDb250YWN0c0J5QWRkcmVzczoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb250YWN0QWRkcmVzc0RhdGFcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0Q29udGFjdHNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgQ29udGFjdFxuICAgKiBAZGVzY3JpcHRpb24gR2V0IENvbnRhY3RcbiAgICpcbiAgICogUmV0dXJucyB0aGUgcHJvcGVydGllcyBvZiBhIENvbnRhY3QuXG4gICAqL1xuICBnZXRDb250YWN0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIENvbnRhY3RcbiAgICAgICAgICogQGV4YW1wbGUgQ29udGFjdCMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIGNvbnRhY3RfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNvbnRhY3RJbmZvUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVsZXRlIENvbnRhY3RcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBDb250YWN0XG4gICAqXG4gICAqIERlbGV0ZSBhIGNvbnRhY3QsIHNwZWNpZmllZCBieSBpdHMgSUQuXG4gICAqXG4gICAqIE9ubHkgdGhlIGNvbnRhY3Qgb3duZXIgYW5kIG9yZyBvd25lcnMgYXJlIGFsbG93ZWQgdG8gZGVsZXRlIGNvbnRhY3RzLlxuICAgKiBBZGRpdGlvbmFsbHksIHRoZSBjb250YWN0J3MgZWRpdCBwb2xpY3kgKGlmIHNldCkgbXVzdCBwZXJtaXQgdGhlIGRlbGV0aW9uLlxuICAgKi9cbiAgZGVsZXRlQ29udGFjdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBDb250YWN0XG4gICAgICAgICAqIEBleGFtcGxlIENvbnRhY3QjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBjb250YWN0X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1wdHlcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVXBkYXRlIENvbnRhY3RcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBDb250YWN0XG4gICAqXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgY29udGFjdCBpbiB0aGUgb3JnYW5pemF0aW9uLXdpZGUgYWRkcmVzcyBib29rLiBPbmx5XG4gICAqIHRoZSBjb250YWN0IG93bmVyIG9yIGFuIG9yZyBvd25lciBjYW4gdXBkYXRlIGNvbnRhY3RzLlxuICAgKlxuICAgKiAqVXBkYXRlcyB3aWxsIG92ZXJ3cml0ZSB0aGUgZXhpc3RpbmcgdmFsdWUgb2YgdGhlIGZpZWxkLipcbiAgICovXG4gIHVwZGF0ZUNvbnRhY3Q6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIGRlc2lyZWQgQ29udGFjdFxuICAgICAgICAgKiBAZXhhbXBsZSBDb250YWN0IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgY29udGFjdF9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVwZGF0ZUNvbnRhY3RSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQ29udGFjdEluZm9SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgY3VycmVudCBjb3VudHMgb2YgdXNlcnMgYW5kIGtleXMgd2l0aGluIGFuIG9yZy5cbiAgICogQGRlc2NyaXB0aW9uIEdldCBjdXJyZW50IGNvdW50cyBvZiB1c2VycyBhbmQga2V5cyB3aXRoaW4gYW4gb3JnLlxuICAgKi9cbiAgY291bnRzOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQ29tcHV0ZUNvdW50c1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIERlcml2ZSBLZXkgRnJvbSBMb25nLUxpdmVkIE1uZW1vbmljXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEBkZXNjcmlwdGlvbiBEZXJpdmUgS2V5IEZyb20gTG9uZy1MaXZlZCBNbmVtb25pY1xuICAgKlxuICAgKiBEZXJpdmVzIGEga2V5IG9mIGEgc3BlY2lmaWVkIHR5cGUgdXNpbmcgYSBzdXBwbGllZCBkZXJpdmF0aW9uIHBhdGggYW5kIGFuXG4gICAqIGV4aXN0aW5nIGxvbmctbGl2ZWQgbW5lbW9uaWMuXG4gICAqL1xuICBkZXJpdmVLZXlMZWdhY3k6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRGVyaXZlS2V5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNyZWF0ZUtleVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIERlcml2ZSBLZXkgRnJvbSBOZXcgT3IgRXhpc3RpbmcgTG9uZy1MaXZlZCBNbmVtb25pY1xuICAgKiBAZGVzY3JpcHRpb24gRGVyaXZlIEtleSBGcm9tIE5ldyBPciBFeGlzdGluZyBMb25nLUxpdmVkIE1uZW1vbmljXG4gICAqXG4gICAqIFVzZXMgZWl0aGVyIGEgbmV3IG9yIGV4aXN0aW5nIGxvbmctbGl2ZWQgbW5lbW9uaWMgdG8gZGVyaXZlIGtleXMgb2ZcbiAgICogb25lIG9yIG1vcmUgc3BlY2lmaWVkIHR5cGVzIHZpYSBzcGVjaWZpZWQgZGVyaXZhdGlvbiBwYXRocy5cbiAgICovXG4gIGRlcml2ZUtleToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJEZXJpdmVLZXlzUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNyZWF0ZUtleVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENvbXB1dGUgRGlmZmllIEhlbGxtYW4gc2hhcmVkIHNlY3JldFxuICAgKiBAZGVzY3JpcHRpb24gQ29tcHV0ZSBEaWZmaWUgSGVsbG1hbiBzaGFyZWQgc2VjcmV0XG4gICAqXG4gICAqIEZvciBhIHNldCBvZiBlbGxpcHRpYyBjdXJ2ZSBwb2ludHMgKFBfMSwgLi4uLCBQX2kpLCBjb21wdXRlcyB0aGUgRGlmZmllIEhlbGxtYW5cbiAgICogc2hhcmVkIHNlY3JldCAoUV8xLCAuLi4sIFFpKSA9IChzayAqIFBfMSwgLi4uIHNrICogUF9pKSwgZm9yIHNrIHRoZSBzZWNyZXQga2V5LlxuICAgKiBQb2ludHMgYXJlIHNwZWNpZmllZCBpbiBhIGN1cnZlLWRlcGVuZGVudCBmb3JtYXQuIFNlZSBDdWJlU2lnbmVyIGRvY3VtZW50YXRpb25cbiAgICogZm9yIG1vcmUgZGV0YWlscy5cbiAgICpcbiAgICogVGhlIHVzZXIgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSBhIE5JU1QgUC0yNTYgcHVibGljIGtleSwgaW4gd2hpY2ggY2FzZSB0aGUgcmVzdWx0XG4gICAqIHdpbGwgYmUgZW5jcnlwdGVkIHRvIHRoZSBwdWJsaWMga2V5IHVzaW5nIFJGQzkxODAgSFBLRShQLTI1NiwgSEtERi1TSEEyNTYpIHdpdGhcbiAgICogQUVTLTI1Ni1HQ00gYXMgdGhlIHN5bW1ldHJpYyBjaXBoZXIuIEluIHRoaXMgY2FzZSwgdGhlIHJlc3VsdGluZyBjaXBoZXJ0ZXh0IHdpbGxcbiAgICogY29udGFpbiBhIHNlcmlhbGl6ZWQgSlNPTiBibG9iIGNvbnRhaW5pbmcgdGhlIHZlY3RvciBvZiBzaGFyZWQgc2VjcmV0cyBpbiB0aGUgc2FtZVxuICAgKiBvcmRlciB0aGV5IHdlcmUgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0LlxuICAgKlxuICAgKiBJZiB0aGUgdXNlciBkb2VzIG5vdCBzcGVjaWZ5IGEgcHVibGljIGtleSwgdGhlIHJlc3VsdGluZyBzaGFyZWQgc2VjcmV0cyB3aWxsIGJlXG4gICAqIHJldHVybmVkIHVuZW5jcnlwdGVkLiBJbiB0aGlzIGNhc2UsIHRoZSBjYWxsZXIgc2hvdWxkIHNhbXBsZSBhIHJhbmRvbSB2YWx1ZSByXG4gICAqIG1vZHVsbyB0aGUgZ3JvdXAgb3JkZXIgYW5kIG1hc2sgdGhlIHJlcXVlc3RlZCBwb2ludHMgYXMgKHIgKiBQXzEsIC4uLiwgciAqIFBfaSkuXG4gICAqIFRoZSByZXN1bHQgd2lsbCBiZSAociAqIHNrICogUF8xLCAuLi4sIHIgKiBzayAqIFBfaSksIHdoaWNoIGNhbiBiZSB1bm1hc2tlZCBieVxuICAgKiBmaXJzdCBjb21wdXRpbmcgcl4tMSwgdGhlIG11bHRpcGxpY2F0aXZlIGludmVyc2Ugb2YgciBtb2R1bG8gdGhlIGdyb3VwIG9yZGVyLFxuICAgKiB0aGVuIGNvbXB1dGluZyBhIHNjYWxhciBtdWx0aXBsaWNhdGlvbiBvZiBlYWNoIHJldHVybmVkIHBvaW50IHdpdGggcl4tMS5cbiAgICpcbiAgICogVGhlcmUgaXMgbGl0dGxlIHByYWN0aWNhbCBzZWN1cml0eSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlc2UgdHdvIGFwcHJvYWNoZXMuIFRoZVxuICAgKiBjbGllbnQgaXMgZnJlZSB0byBjaG9vc2UgdGhlIG9uZSB0aGF0IGlzIGVhc2llciBmcm9tIGFuIGltcGxlbWVudGF0aW9uIHBlcnNwZWN0aXZlLlxuICAgKi9cbiAgZGlmZmllSGVsbG1hbkV4Y2hhbmdlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIEtleVxuICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJEaWZmaWVIZWxsbWFuUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkRpZmZpZUhlbGxtYW5SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IEVtYWlsIFRlbXBsYXRlXG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgRW1haWwgVGVtcGxhdGVcbiAgICpcbiAgICogUmV0dXJucyB0aGUgZW1haWwgdGVtcGxhdGUgZm9yIGEgZ2l2ZW4gcHVycG9zZS5cbiAgICovXG4gIGdldEVtYWlsQ29uZmlnOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFdoaWNoIGVtYWlsIGNvbmZpZ3VyYXRpb24gdG8gZ2V0ICovXG4gICAgICAgIHB1cnBvc2U6XG4gICAgICAgICAgfCBcIm90cFwiXG4gICAgICAgICAgfCBcIm1mYV9yZXNldFwiXG4gICAgICAgICAgfCBcIm90cF9tZmFcIlxuICAgICAgICAgIHwgXCJhbGllbl9wYXNzd29yZF9yZXNldFwiXG4gICAgICAgICAgfCBcIm1lbWJlcl9wYXNzd29yZF9yZXNldFwiXG4gICAgICAgICAgfCBcImFsaWVuX2ludml0ZVwiXG4gICAgICAgICAgfCBcIm1lbWJlcl9pbnZpdGVcIlxuICAgICAgICAgIHwgXCJ3ZWxjb21lXCI7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJHZXRFbWFpbENvbmZpZ1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBFbWFpbCBUZW1wbGF0ZVxuICAgKiBAZGVzY3JpcHRpb24gQ29uZmlndXJlIEVtYWlsIFRlbXBsYXRlXG4gICAqL1xuICBjb25maWd1cmVFbWFpbDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGljaCBlbWFpbCB0byBjb25maWd1cmUgKi9cbiAgICAgICAgcHVycG9zZTpcbiAgICAgICAgICB8IFwib3RwXCJcbiAgICAgICAgICB8IFwibWZhX3Jlc2V0XCJcbiAgICAgICAgICB8IFwib3RwX21mYVwiXG4gICAgICAgICAgfCBcImFsaWVuX3Bhc3N3b3JkX3Jlc2V0XCJcbiAgICAgICAgICB8IFwibWVtYmVyX3Bhc3N3b3JkX3Jlc2V0XCJcbiAgICAgICAgICB8IFwiYWxpZW5faW52aXRlXCJcbiAgICAgICAgICB8IFwibWVtYmVyX2ludml0ZVwiXG4gICAgICAgICAgfCBcIndlbGNvbWVcIjtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb25maWd1cmVFbWFpbFJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVsZXRlIEVtYWlsIFRlbXBsYXRlXG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgRW1haWwgVGVtcGxhdGVcbiAgICovXG4gIGRlbGV0ZUVtYWlsQ29uZmlnOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFdoaWNoIGVtYWlsIGNvbmZpZ3VyYXRpb24gdG8gZGVsZXRlICovXG4gICAgICAgIHB1cnBvc2U6XG4gICAgICAgICAgfCBcIm90cFwiXG4gICAgICAgICAgfCBcIm1mYV9yZXNldFwiXG4gICAgICAgICAgfCBcIm90cF9tZmFcIlxuICAgICAgICAgIHwgXCJhbGllbl9wYXNzd29yZF9yZXNldFwiXG4gICAgICAgICAgfCBcIm1lbWJlcl9wYXNzd29yZF9yZXNldFwiXG4gICAgICAgICAgfCBcImFsaWVuX2ludml0ZVwiXG4gICAgICAgICAgfCBcIm1lbWJlcl9pbnZpdGVcIlxuICAgICAgICAgIHwgXCJ3ZWxjb21lXCI7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1wdHlcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBFSVAtMTkxIERhdGFcbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gRUlQLTE5MSBEYXRhXG4gICAqXG4gICAqIFNpZ25zIGEgbWVzc2FnZSB1c2luZyBFSVAtMTkxIHBlcnNvbmFsX3NpZ24gd2l0aCBhIGdpdmVuIFNlY3AyNTZrMSBrZXkuXG4gICAqL1xuICBlaXAxOTFTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIEVWTSBhZGRyZXNzIG9mIHRoZSBTZWNwMjU2azEga2V5XG4gICAgICAgICAqIEBleGFtcGxlIDB4NDkwMTFhZGJDQzNiQzljMDMwN0JCMDdGMzdEZGExYTFhOWM2OWQyRVxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRWlwMTkxU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gRUlQLTcxMiBUeXBlZCBEYXRhXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIEVJUC03MTIgVHlwZWQgRGF0YVxuICAgKlxuICAgKiBTaWducyB0eXBlZCBkYXRhIGFjY29yZGluZyB0byBFSVAtNzEyIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgKi9cbiAgZWlwNzEyU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBFVk0gYWRkcmVzcyBvZiB0aGUgU2VjcDI1NmsxIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSAweDQ5MDExYWRiQ0MzYkM5YzAzMDdCQjA3RjM3RGRhMWExYTljNjlkMkVcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVpcDcxMlNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU2lnblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIGFuIEVJUC03NzAyIEF1dGhvcml6YXRpb25cbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gYW4gRUlQLTc3MDIgQXV0aG9yaXphdGlvblxuICAgKlxuICAgKiBTaWducyBhbiBFSVAtNzcwMiBhdXRob3JpemF0aW9uIHR1cGxlIGAoY2hhaW5faWQsIGFkZHJlc3MsIG5vbmNlKWAgd2l0aCBhIGdpdmVuXG4gICAqIFNlY3AyNTZrMSBrZXkuIFRoZSByZXN1bHRpbmcgNjUtYnl0ZSBzaWduYXR1cmUgKGByIHx8IHMgfHwgeV9wYXJpdHlgKSBjYW4gYmUgdXNlZCB0b1xuICAgKiBhc3NlbWJsZSBhIGBTaWduZWRBdXRob3JpemF0aW9uYCBmb3IgYW4gRUlQLTc3MDIgc2V0LWNvZGUgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBlaXA3NzAyU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBFVk0gYWRkcmVzcyBvZiB0aGUgU2VjcDI1NmsxIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSAweDQ5MDExYWRiQ0MzYkM5YzAzMDdCQjA3RjM3RGRhMWExYTljNjlkMkVcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVpcDc3MDJTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IGFuIE9yZy1FeHBvcnQgQ2lwaGVydGV4dFxuICAgKiBAZGVzY3JpcHRpb24gR2V0IGFuIE9yZy1FeHBvcnQgQ2lwaGVydGV4dFxuICAgKlxuICAgKiBSZXR1cm5zIHRoZSBleHBvcnQgY2lwaGVydGV4dCBhc3NvY2lhdGVkIHdpdGggdGhlIHByb3ZpZGVkIGtleS1pZC5cbiAgICogSW4gb3JkZXIgdG8gdXNlIHRoaXMgQVBJLCB5b3UgbXVzdCBiZSBhbiBvcmcgb3duZXIgYW5kIHlvdXIgb3JnIG11c3RcbiAgICogYmUgY29uZmlndXJlZCBmb3Igb3JnIGV4cG9ydCBhbmQgZm9yIEFQSS1iYXNlZCBleHBvcnQgZGVsaXZlcnkuXG4gICAqL1xuICBnZXRPcmdFeHBvcnQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIGRlc2lyZWQgS2V5XG4gICAgICAgICAqIEBleGFtcGxlIEtleSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiT3JnRXhwb3J0UmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBhc3NvY2lhdGVkIE9JREMgaWRlbnRpdGllcyB3aXRoIHRoZSBjdXJyZW50IHVzZXIuXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IGFzc29jaWF0ZWQgT0lEQyBpZGVudGl0aWVzIHdpdGggdGhlIGN1cnJlbnQgdXNlci5cbiAgICovXG4gIGxpc3RPaWRjSWRlbnRpdGllczoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkxpc3RJZGVudGl0aWVzUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQXNzb2NpYXRlIGFuIE9JREMgaWRlbnRpdHkgd2l0aCB0aGUgY3VycmVudCB1c2VyIGluIG9yZyA8c2Vzc2lvbi5vcmc+LlxuICAgKiBAZGVzY3JpcHRpb24gQXNzb2NpYXRlIGFuIE9JREMgaWRlbnRpdHkgd2l0aCB0aGUgY3VycmVudCB1c2VyIGluIG9yZyA8c2Vzc2lvbi5vcmc+LlxuICAgKlxuICAgKiBBbGllbiB1c2VycyBhcmUgYWxsb3dlZCB0byBjYWxsIHRoaXMgZW5kcG9pbnQsIGJ1dCBmb3IgdGhlbSBNRkEgaXMgcmVxdWlyZWRcbiAgICogKHVubGVzcyB0aGV5IGFyZSByZWdpc3RlcmluZyBhbiBlbWFpbC1vdHAgaWRlbnRpdHkgbWF0Y2hpbmcgdGhlaXIgY3VycmVudCBlbWFpbCk7XG4gICAqIGFkZGl0aW9uYWxseSwgbGltaXRzIG1heSBhcHBseSB0byBob3cgbWFueSBpZGVudGl0aWVzIHRoYXQgbWF5IHJlZ2lzdGVyLlxuICAgKi9cbiAgYWRkT2lkY0lkZW50aXR5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFkZElkZW50aXR5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUmVtb3ZlIGFuIE9JREMgaWRlbnRpdHkgZnJvbSB0aGUgY3VycmVudCB1c2VyJ3MgYWNjb3VudCBpbiBvcmcgPHNlc3Npb24ub3JnPi5cbiAgICogQGRlc2NyaXB0aW9uIFJlbW92ZSBhbiBPSURDIGlkZW50aXR5IGZyb20gdGhlIGN1cnJlbnQgdXNlcidzIGFjY291bnQgaW4gb3JnIDxzZXNzaW9uLm9yZz4uXG4gICAqL1xuICByZW1vdmVPaWRjSWRlbnRpdHk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT2lkY0lkZW50aXR5XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBDdWJlU2lnbmVyIHVzZXIgc2Vzc2lvblxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFtJZGVudGl0eVByb29mXSBmcm9tIEN1YmVTaWduZXIgdXNlciBzZXNzaW9uXG4gICAqXG4gICAqIFRoaXMgcm91dGUgY2FuIGJlIHVzZWQgdG8gcHJvdmUgdG8gYW5vdGhlciBwYXJ0eSB0aGF0IGEgdXNlciBoYXMgYVxuICAgKiB2YWxpZCBDdWJlU2lnbmVyIHNlc3Npb24uXG4gICAqXG4gICAqIENsaWVudHMgYXJlIGludGVuZGVkIHRvIGNhbGwgdGhpcyByb3V0ZSBhbmQgcGFzcyB0aGUgcmV0dXJuZWQgZXZpZGVuY2VcbiAgICogdG8gYW5vdGhlciBzZXJ2aWNlIHdoaWNoIHdpbGwgdmVyaWZ5IGl0IGJ5IG1ha2luZyBhIHJlcXVlc3QgdG8gYC92MC9vcmcvPG9yZ19pZD4vaWRlbnRpdHkvdmVyaWZ5YC5cbiAgICovXG4gIGNyZWF0ZVByb29mQ3ViZVNpZ25lcjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIklkZW50aXR5UHJvb2ZcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlIFtJZGVudGl0eVByb29mXSBmcm9tIE9JREMgdG9rZW5cbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBPSURDIHRva2VuXG4gICAqXG4gICAqIEV4Y2hhbmdlIGFuIE9JREMgSUQgdG9rZW4gKHBhc3NlZCB2aWEgdGhlIGBBdXRob3JpemF0aW9uYCBoZWFkZXIpIGZvciBhIHByb29mIG9mIGF1dGhlbnRpY2F0aW9uLlxuICAgKlxuICAgKiBUaGlzIHJvdXRlIGNhbiBiZSB1c2VkIHRvIHByb3ZlIHRvIGFub3RoZXIgcGFydHkgdGhhdCBhIHVzZXIgaGFzIG1ldCB0aGVcbiAgICogYXV0aGVudGljYXRpb24gcmVxdWlyZW1lbnRzIChhbGxvd2VkIGlzc3VlcnMgJiBhdWRpZW5jZXMpIGZvciBDdWJlU2lnbmVyXG4gICAqIHdpdGhvdXQgbGVha2luZyB0aGVpciBjcmVkZW50aWFscy5cbiAgICpcbiAgICogQ2xpZW50cyBhcmUgaW50ZW5kZWQgdG8gY2FsbCB0aGlzIHJvdXRlIGFuZCBwYXNzIHRoZSByZXR1cm5lZCBldmlkZW5jZSB0byBhbm90aGVyIHNlcnZpY2VcbiAgICogd2hpY2ggd2lsbCB2ZXJpZnkgaXQgYnkgbWFraW5nIGEgcmVxdWVzdCB0byBgL3YwL29yZy88b3JnX2lkPi9pZGVudGl0eS92ZXJpZnlgLlxuICAgKi9cbiAgY3JlYXRlUHJvb2ZPaWRjOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiSWRlbnRpdHlQcm9vZlwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBWZXJpZnkgaWRlbnRpdHkgcHJvb2ZcbiAgICogQGRlc2NyaXB0aW9uIFZlcmlmeSBpZGVudGl0eSBwcm9vZlxuICAgKlxuICAgKiBBbGxvd3MgYSB0aGlyZC1wYXJ0eSB0byB2YWxpZGF0ZSBwcm9vZiBvZiBhdXRoZW50aWNhdGlvbi5cbiAgICpcbiAgICogV2hlbiBhIHRoaXJkLXBhcnR5IGlzIHByb3ZpZGVkIGFuIFtJZGVudGl0eVByb29mXSBvYmplY3QsIHRoZXkgbXVzdCBjaGVjayBpdHNcbiAgICogdmVyYWNpdHkgYnkgY2FsbGluZyB0aGlzIGVuZHBvaW50XG4gICAqL1xuICB2ZXJpZnlQcm9vZjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZGVudGl0eVByb29mXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge307XG4gIH07XG4gIC8qKlxuICAgKiBBdXRoZW50aWNhdGVcbiAgICogQGRlc2NyaXB0aW9uIEF1dGhlbnRpY2F0ZVxuICAgKlxuICAgKiBUaGlzIGVuZHBvaW50IGV4Y2hhbmdlcyBhbiBlbWFpbCAmIHBhc3N3b3JkIGZvciBhbiBPSURDIHRva2VuXG4gICAqL1xuICBpZHBBdXRoZW50aWNhdGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXV0aGVudGljYXRpb25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQXV0aGVudGljYXRpb25SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZXF1ZXN0IFBhc3N3b3JkIFJlc2V0XG4gICAqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IFBhc3N3b3JkIFJlc2V0XG4gICAqXG4gICAqIFRoaXMgZW5kcG9pbnQgZ2VuZXJhdGVzIGFuIE9JREMgdG9rZW4gd2l0aG91dCBhIHNpZ25hdHVyZSAob2YgdGhlIGZvcm0gYHtoZWFkZXJ9LntwYXlsb2FkfS5gKSxcbiAgICogYW5kIHNlbmRzIHRoZSBzaWduYXR1cmUgdG8gdGhlIHVzZXIncyBlbWFpbC4gQ2xpZW50IGFwcGxpY2F0aW9ucyBjYW4gcmVjb25zdHJ1Y3QgdGhlIHRva2VuXG4gICAqIGJ5IGNvbmNhdGVuYXRpbmcgdGhlIGB7aGVhZGVyfS57cGF5bG9hZH0uYCB3aXRoIHRoZSBzaWduYXR1cmUsIHByb2R1Y2luZyBhIHZhbGlkIE9JREMgdG9rZW4gb2ZcbiAgICogdGhlIGZvcm0gYHtoZWFkZXJ9LntwYXlsb2FkfS57c2lnbmF0dXJlfWAuIFRoZSB0b2tlbiBjYW4gdGhlbiBiZSB1c2VkIHRvIGF1dGhlbnRpY2F0ZSB0aGUgdXNlclxuICAgKiB3aGVuIHBlcmZvcm1pbmcgdGhlIGBpZHBfcGFzc3dvcmRfcmVzZXRfY29uZmlybWAgcmVxdWVzdC5cbiAgICovXG4gIGlkcFBhc3N3b3JkUmVzZXRSZXF1ZXN0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBhc3N3b3JkUmVzZXRSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1haWxPdHBSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDb25maXJtIFBhc3N3b3JkIFJlc2V0XG4gICAqIEBkZXNjcmlwdGlvbiBDb25maXJtIFBhc3N3b3JkIFJlc2V0XG4gICAqXG4gICAqIFRoaXMgZW5kcG9pbnQgYWxsb3dzIElEUCB1c2VycyB0byByZXNldCB0aGVpciBwYXNzd29yZFxuICAgKiB1c2luZyBhIHRva2VuIHRoZXkgaGF2ZSByZWNlaXZlZCBpbiB0aGVpciBlbWFpbC5cbiAgICovXG4gIGlkcFBhc3N3b3JkUmVzZXRDb25maXJtOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBhc3N3b3JkUmVzZXRDb25maXJtUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgS2V5LUltcG9ydCBLZXlcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBLZXktSW1wb3J0IEtleVxuICAgKlxuICAgKiBHZW5lcmF0ZSBhbiBlcGhlbWVyYWwga2V5IHRoYXQgYSBjbGllbnQgY2FuIHVzZSBmb3Iga2V5LWltcG9ydCBlbmNyeXB0aW9uLlxuICAgKi9cbiAgY3JlYXRlS2V5SW1wb3J0S2V5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQ3JlYXRlS2V5SW1wb3J0S2V5UmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW1wb3J0IEtleVxuICAgKiBAZGVzY3JpcHRpb24gSW1wb3J0IEtleVxuICAgKlxuICAgKiBTZWN1cmVseSBpbXBvcnRzIGFuIGV4aXN0aW5nIGtleSB1c2luZyBhIHByZXZpb3VzbHkgZ2VuZXJhdGVkIGtleS1pbXBvcnQga2V5LlxuICAgKi9cbiAgaW1wb3J0S2V5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkltcG9ydEtleVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJDcmVhdGVLZXlSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBQdWJsaWMgT3JnIEluZm9cbiAgICogQGRlc2NyaXB0aW9uIFB1YmxpYyBPcmcgSW5mb1xuICAgKlxuICAgKiBVbmF1dGhlbnRpY2F0ZWQgZW5kcG9pbnQgdGhhdCByZXR1cm5zIHB1YmxpY2x5LWF2YWlsYWJsZSBpbmZvcm1hdGlvbiBhYm91dCBhbiBvcmdhbml6YXRpb24uXG4gICAqL1xuICBwdWJsaWNfb3JnX2luZm86IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQdWJsaWNPcmdJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIChJTlRFUk5BTCkgQ3VzdG9tIGNoYWluIFJQQyBwcm94eVxuICAgKiBAZGVzY3JpcHRpb24gKElOVEVSTkFMKSBDdXN0b20gY2hhaW4gUlBDIHByb3h5XG4gICAqL1xuICBjdXN0b21DaGFpblJwY0NhbGw6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3VzdG9tQ2hhaW5ScGNSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQ3VzdG9tQ2hhaW5ScGNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiAoSU5URVJOQUwpIEVzcGxvcmEgQVBJIFByb3h5XG4gICAqIEBkZXNjcmlwdGlvbiAoSU5URVJOQUwpIEVzcGxvcmEgQVBJIFByb3h5XG4gICAqL1xuICBlc3Bsb3JhQXBpQ2FsbDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFc3Bsb3JhUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVzcGxvcmFSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiAoSU5URVJOQUwpIEF1dGhlbnRpY2F0ZWQgU2VudHJ5IEFQSSBQcm94eVxuICAgKiBAZGVzY3JpcHRpb24gKElOVEVSTkFMKSBBdXRoZW50aWNhdGVkIFNlbnRyeSBBUEkgUHJveHlcbiAgICovXG4gIHNlbnRyeUFwaUNhbGw6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJ0ZXh0L3BsYWluXCI6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBBY2NlcHQgYW4gaW52aXRhdGlvblxuICAgKiBAZGVzY3JpcHRpb24gQWNjZXB0IGFuIGludml0YXRpb25cbiAgICpcbiAgICogVGhpcyBlbmRwb2ludCBhbGxvd3MgaWRwIHVzZXJzIHRvIHJlZ2lzdGVyIHVzaW5nIGEgdG9rZW4gdGhleSBoYXZlIHJlY2VpdmVkIGluIHRoZWlyIGVtYWlsXG4gICAqL1xuICBpbnZpdGF0aW9uQWNjZXB0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkludml0YXRpb25BY2NlcHRSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge307XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IHBlbmRpbmcgaW52aXRhdGlvbnNcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgcGVuZGluZyBpbnZpdGF0aW9uc1xuICAgKlxuICAgKiBSZXR1cm5zIGFsbCBwZW5kaW5nIGludml0YXRpb25zIGZvciB0aGUgb3JnYW5pemF0aW9uLCBpLmUuLCB0aG9zZSB0aGF0IGhhdmUgbmVpdGhlclxuICAgKiBiZWVuIGFjY2VwdGVkIG5vciBjYW5jZWxlZCwgYW5kIGhhdmUgbm90IGV4cGlyZWQuXG4gICAqL1xuICBsaXN0SW52aXRhdGlvbnM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBNZW1iZXJzaGlwIHJvbGVzLiBJZiBkZWZpbmVkLCBvbmx5IGludml0YXRpb25zIGZvciBvbmUgb2YgdGhlc2Ugcm9sZXMgYXJlIHJldHVybmVkLCBncm91cGVkIGJ5IHJvbGUgaW4gZGVzY2VuZGluZyByb2xlIG9yZGVyIChvd25lcnMgZmlyc3QsIGFsaWVucyBsYXN0KS4gKi9cbiAgICAgICAgbWVtYmVyc2hpcD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXVtdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0SW52aXRhdGlvbnNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDYW5jZWwgYSBwZW5kaW5nIGludml0YXRpb25cbiAgICogQGRlc2NyaXB0aW9uIENhbmNlbCBhIHBlbmRpbmcgaW52aXRhdGlvblxuICAgKlxuICAgKiBSZW1vdmVzIGEgcGVuZGluZyBpbnZpdGF0aW9uIGZyb20gdGhlIG9yZ2FuaXphdGlvbi4gSWYgbm8gcGVuZGluZyBpbnZpdGF0aW9uXG4gICAqIGV4aXN0cyBmb3IgdGhlIGdpdmVuIGVtYWlsIGFkZHJlc3MsIGEgbm90LWZvdW5kIGVycm9yIGlzIHJldHVybmVkLlxuICAgKi9cbiAgY2FuY2VsSW52aXRhdGlvbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDYW5jZWxJbnZpdGF0aW9uUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbnZpdGUgVXNlclxuICAgKiBAZGVzY3JpcHRpb24gSW52aXRlIFVzZXJcbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyB1c2VyIGluIGFuIGV4aXN0aW5nIG9yZyBhbmQgc2VuZHMgdGhhdCB1c2VyIGFuIGludml0ZSBlbWFpbC5cbiAgICovXG4gIGludml0ZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbnZpdGVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgS2V5c1xuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBLZXlzXG4gICAqXG4gICAqIEdldHMgdGhlIGxpc3Qgb2YgYWNjZXNzaWJsZSBrZXlzIGluIGEgZ2l2ZW4gb3JnICh0byBvcmcgb3duZXIsIGFsbCBvcmcga2V5c1xuICAgKiBhcmUgYWNjZXNzaWJsZTsgdG8gbWVtYmVycywgb25seSB0aGVpciBvd24ga2V5cyBhcmUgYWNjZXNzaWJsZSkuXG4gICAqXG4gICAqIElmIGEgc2VhcmNoIGNvbmRpdGlvbiBpcywgdGhlIHJlc3VsdCB3aWxsIGNvbnRhaW4gb25seSB0aGUga2V5cyB3aG9zZSBlaXRoZXJcbiAgICogbWF0ZXJpYWwgSUQgb3IgbWV0YWRhdGEgY29udGFpbiB0aGUgc2VhcmNoIGNvbmRpdGlvbiBzdHJpbmcuXG4gICAqXG4gICAqIE5PVEUgdGhhdCBpZiBwYWdpbmF0aW9uIGlzIHVzZWQgYW5kIGEgcGFnZSBsaW1pdCBpcyBzZXQsIHRoZSByZXR1cm5lZCByZXN1bHRcbiAgICogc2V0IG1heSBjb250YWluIGVpdGhlciBGRVdFUiBvciBNT1JFIGVsZW1lbnRzIHRoYW4gdGhlIHJlcXVlc3RlZCBwYWdlIGxpbWl0LlxuICAgKi9cbiAgbGlzdEtleXNJbk9yZzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEZpbHRlciBieSBrZXkgdHlwZVxuICAgICAgICAgKiBAZXhhbXBsZSBTZWNwRXRoQWRkclxuICAgICAgICAgKi9cbiAgICAgICAga2V5X3R5cGU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl0gfCBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEZpbHRlciBieSBrZXkgb3duZXJcbiAgICAgICAgICogQGV4YW1wbGUgVXNlciM1MjY5YzU3OS1iNGY5LTQ2MjAtOWU5MC1lNDZhNWEwZmZiNGRcbiAgICAgICAgICovXG4gICAgICAgIGtleV9vd25lcj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSWRcIl0gfCBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFNlYXJjaCBrZXkgbWV0YWRhdGFcbiAgICAgICAgICogQGV4YW1wbGUgc29tZSB2YWx1ZVxuICAgICAgICAgKi9cbiAgICAgICAgc2VhcmNoPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0S2V5c1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBLZXlcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBLZXlcbiAgICpcbiAgICogQ3JlYXRlcyBvbmUgb3IgbW9yZSBuZXcga2V5cyBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuXG4gICAqL1xuICBjcmVhdGVLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlS2V5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNyZWF0ZUtleVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBLZXlcbiAgICogQGRlc2NyaXB0aW9uIEdldCBLZXlcbiAgICpcbiAgICogUmV0dXJucyB0aGUgcHJvcGVydGllcyBvZiBhIGtleS5cbiAgICovXG4gIGdldEtleUluT3JnOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIEtleVxuICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIktleUluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVsZXRlIEtleVxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIEtleVxuICAgKlxuICAgKiBEZWxldGVzIGEga2V5IHNwZWNpZmllZCBieSBpdHMgSUQuXG4gICAqXG4gICAqIE9ubHkgdGhlIGtleSBvd25lciBhbmQgb3JnIG93bmVycyBhcmUgYWxsb3dlZCB0byBkZWxldGUga2V5cy5cbiAgICogQWRkaXRpb25hbGx5LCB0aGUgcm9sZSdzIGVkaXQgcG9saWN5IChpZiBzZXQpIG11c3QgcGVybWl0IHRoZSB1cGRhdGUuXG4gICAqL1xuICBkZWxldGVLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIGRlc2lyZWQgS2V5XG4gICAgICAgICAqIEBleGFtcGxlIEtleSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVtcHR5XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBVcGRhdGUgS2V5XG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgS2V5XG4gICAqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIGEga2V5LiAgVGhlIHVzZXIgbXVzdCBiZSB0aGUgb3duZXIgb2YgdGhlIGtleSBvclxuICAgKiBvcmdhbml6YXRpb24gdG8gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICpcbiAgICogRm9yIGVhY2ggcmVxdWVzdGVkIHVwZGF0ZSwgdGhlIHNlc3Npb24gbXVzdCBoYXZlIHRoZSBjb3JyZXNwb25kaW5nICdtYW5hZ2U6a2V5OnVwZGF0ZTpfJyBzY29wZTtcbiAgICogaWYgbm8gdXBkYXRlcyBhcmUgcmVxdWVzdGVkLCB0aGUgc2Vzc2lvbiBtdXN0IGhhdmUgJ21hbmFnZTprZXk6Z2V0Jy5cbiAgICovXG4gIHVwZGF0ZUtleToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBLZXlcbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXBkYXRlS2V5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIktleUluZm9cIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEF0dGVzdCB0byBLZXkgUHJvcGVydGllc1xuICAgKiBAZGVzY3JpcHRpb24gQXR0ZXN0IHRvIEtleSBQcm9wZXJ0aWVzXG4gICAqXG4gICAqIFRoZSByZXNwb25zZSBpcyBhIEpXVCB3aG9zZSBjbGFpbXMgYXJlIHRoZSBrZXkgcHJvcGVydGllcy5cbiAgICovXG4gIGF0dGVzdEtleToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICBpbmNsdWRlX3JvbGVzPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIEtleVxuICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIktleUluZm9Kd3RcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBLZXkgUm9sZXNcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgS2V5IFJvbGVzXG4gICAqXG4gICAqIEdldCBhbGwgcm9sZXMgdGhlIGtleSBpcyBpblxuICAgKi9cbiAgbGlzdEtleVJvbGVzOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgICAqIHRoZSBleGFjdCB2YWx1ZSBwcmV2aW91c2x5IHJldHVybmVkIGFzICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHNhbWUgZW5kcG9pbnQuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIEtleVxuICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBhZ2luYXRlZExpc3RLZXlSb2xlc1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgSGlzdG9yaWNhbCBUcmFuc2FjdGlvbnNcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgSGlzdG9yaWNhbCBUcmFuc2FjdGlvbnNcbiAgICpcbiAgICogUmV0dXJucyBhIHNvcnRlZCwgcGFnaW5hdGVkIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIHNpZ25lZCBieSBhIGdpdmVuIGtleSxcbiAgICogb3JkZXJlZCBmcm9tIG1vc3QgcmVjZW50IGZpcnN0LlxuICAgKi9cbiAgbGlzdEhpc3RvcmljYWxLZXlUeDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBLZXlcbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0SGlzdG9yaWNhbFR4UmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IEtleSBieSBNYXRlcmlhbCBJRFxuICAgKiBAZGVzY3JpcHRpb24gR2V0IEtleSBieSBNYXRlcmlhbCBJRFxuICAgKlxuICAgKiBSZXR1cm5zIHRoZSBwcm9wZXJ0aWVzIG9mIGEga2V5LlxuICAgKi9cbiAgZ2V0S2V5QnlNYXRlcmlhbElkOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFR5cGUgb2YgdGhlIGtleSB0byBsb29rIHVwICovXG4gICAgICAgIGtleV90eXBlOiBzdHJpbmc7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gTWF0ZXJpYWwgSUQgb2YgdGhlIGtleSB0byBsb29rIHVwICovXG4gICAgICAgIG1hdGVyaWFsX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJLZXlJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFF1ZXJ5IG9yZyBtZXRyaWNzLlxuICAgKiBAZGVzY3JpcHRpb24gUXVlcnkgb3JnIG1ldHJpY3MuXG4gICAqXG4gICAqIE1ldHJpY3Mgc3VtbWFyaXplIHVzYWdlIGluZm9ybWF0aW9uIGFib3V0IHlvdXIgQ3ViZVNpZ25lciBvcmdhbml6YXRpb24gb3ZlciB0aW1lLiBGb3IgZXhhbXBsZSxcbiAgICogeW91IGNhbiBjYWxsIHRoaXMgZW5kcG9pbnQgZmluZCBvdXQ6XG4gICAqXG4gICAqIC0gdGhlIGF2ZXJhZ2UgbnVtYmVyIG9mIGtleXMgb3ZlciB0aGUgbGFzdCBtb250aCxcbiAgICogLSB0aGUgYXZlcmFnZSBudW1iZXIgbW9udGhseSB1c2VycyBvdmVyIHRoZSBsYXN0IHllYXIsXG4gICAqIC0gdGhlIHRvdGFsIG51bWJlciBvZiB0cmFuc2FjdGlvbnMgc2lnbmVkIGxhc3Qgd2VlayxcbiAgICogLSBob3cgdGhlIG51bWJlciBvZiBkaWZmZXJlbnQgQVBJIHJlcXVlc3RzIHdhcyB0cmVuZGluZyBkYXktYnktZGF5IG92ZXIgdGhlIGxhc3Qgd2Vlay9tb250aC95ZWFyLCBldGMuXG4gICAqXG4gICAqIEVhY2ggbWV0cmljIGtpbmQgY2FuIGhhdmUgb25lIG9yIG1vcmUgZGltZW5zaW9ucywgdG8gZnVydGhlciBzcGVjaWZ5IHRoZSBvcmcgcHJvcGVydHkgaXQgZGVzY3JpYmVzLlxuICAgKiBGb3IgZXhhbXBsZSwgdGhlIGBVc2VyQ291bnRgIG1ldHJpY3MgaGF2ZSBhIG1lbWJlcnNoaXAgZGltZW5zaW9ucyB0byBzcGVjaWZ5IHRoZSBraW5kIG9mIHVzZXIgbWVtYmVyc2hpcFxuICAgKiBpbiB0aGUgb3JnYW5pemF0aW9uIChcIk93bmVyXCIgdnMuIFwiTWVtYmVyXCIgdnMuIFwiQWxpZW5cIikuXG4gICAqL1xuICBxdWVyeU1ldHJpY3M6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUXVlcnlNZXRyaWNzUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBhZ2luYXRlZFF1ZXJ5TWV0cmljc1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgUGVuZGluZyBNRkEgUmVxdWVzdHNcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgUGVuZGluZyBNRkEgUmVxdWVzdHNcbiAgICpcbiAgICogUmV0cmlldmVzIGFuZCByZXR1cm5zIGFsbCBwZW5kaW5nIE1GQSByZXF1ZXN0cyB0aGF0IGFyZSBhY2Nlc3NpYmxlIHRvIHRoZSBjdXJyZW50IHNlc3Npb24sXG4gICAqIGkuZS4sIHRob3NlIGNyZWF0ZWQgYnkgdGhlIGN1cnJlbnQgc2Vzc2lvbiBpZGVudGl0eSBwbHVzIHRob3NlIGluIHdoaWNoIHRoZSBjdXJyZW50IHVzZXJcbiAgICogaXMgbGlzdGVkIGFzIGFuIGFwcHJvdmVyXG4gICAqXG4gICAqIE5PVEUgdGhhdCBpZiBwYWdpbmF0aW9uIGlzIHVzZWQgYW5kIGEgcGFnZSBsaW1pdCBpcyBzZXQsIHRoZSByZXR1cm5lZCByZXN1bHRcbiAgICogc2V0IG1heSBjb250YWluIGVpdGhlciBGRVdFUiBvciBNT1JFIGVsZW1lbnRzIHRoYW4gdGhlIHJlcXVlc3RlZCBwYWdlIGxpbWl0LlxuICAgKiBJbiBwYXJ0aWN1bGFyLCBsZWdhY3kgTUZBIHJlcXVlc3RzIGFyZSBub3QgcGFnaW5hdGVkOiBldmVyeSBhY2Nlc3NpYmxlIG9uZVxuICAgKiBpcyByZXR1cm5lZCBpbiB0aGUgZmlyc3QgcGFnZSwgb24gdG9wIG9mIHRoZSBwYWdlIGxpbWl0LlxuICAgKi9cbiAgbWZhTGlzdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBhZ2luYXRlZExpc3RNZmFSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgUGVuZGluZyBNRkEgUmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gR2V0IFBlbmRpbmcgTUZBIFJlcXVlc3RcbiAgICpcbiAgICogUmV0cmlldmVzIGFuZCByZXR1cm5zIGEgcGVuZGluZyBNRkEgcmVxdWVzdCBieSBpdHMgaWQuXG4gICAqL1xuICBtZmFHZXQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBNZmFSZXF1ZXN0XG4gICAgICAgICAqIEBleGFtcGxlIE1mYVJlcXVlc3QjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBtZmFfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEFwcHJvdmUgb3IgUmVqZWN0IE1GQSBSZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZlIG9yIFJlamVjdCBNRkEgUmVxdWVzdFxuICAgKlxuICAgKiBBcHByb3ZlIG9yIHJlamVjdCByZXF1ZXN0IGFmdGVyIGxvZ2dpbmcgaW4gd2l0aCBDdWJlU2lnbmVyLlxuICAgKlxuICAgKiBJZiBhcHByb3ZpbmcsIGFkZHMgdGhlIGN1cnJlbnRseS1sb2dnZWQgdXNlciBhcyBhbiBhcHByb3ZlclxuICAgKiBvZiBhIHBlbmRpbmcgTUZBIHJlcXVlc3Qgb2YgdGhlIFtTdGF0dXM6OlJlcXVpcmVkQXBwcm92ZXJzXSBraW5kLiBJZiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mXG4gICAqIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7IHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0b1xuICAgKiByZXN1bWUgdGhlIG9yaWdpbmFsIEhUVFAgcmVxdWVzdC5cbiAgICpcbiAgICogSWYgcmVqZWN0aW5nLCBpbW1lZGlhdGVseSBkZWxldGVzIHRoZSBwZW5kaW5nIE1GQSByZXF1ZXN0LlxuICAgKi9cbiAgbWZhVm90ZUNzOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIG1mYV92b3RlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFWb3RlXCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBNZmFSZXF1ZXN0XG4gICAgICAgICAqIEBleGFtcGxlIE1mYVJlcXVlc3QjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBtZmFfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYXRlIGFuIEVtYWlsIE9UUCBNRkEgQXBwcm92YWwvUmVqZWN0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSBhbiBFbWFpbCBPVFAgTUZBIEFwcHJvdmFsL1JlamVjdGlvblxuICAgKlxuICAgKiBJbml0aWF0ZXMgdGhlIGFwcHJvdmFsL3JlamVjdGlvbiBwcm9jZXNzIG9mIGFuIE1GQSBSZXF1ZXN0IHVzaW5nIEVtYWlsIE9UUC5cbiAgICovXG4gIG1mYUVtYWlsSW5pdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICBtZmFfdm90ZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhVm90ZVwiXSB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgTWZhUmVxdWVzdFxuICAgICAgICAgKiBAZXhhbXBsZSBNZmFSZXF1ZXN0IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgbWZhX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbWFpbE90cFJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEZpbmFsaXplIGEgRW1haWwgT1RQIE1GQSBBcHByb3ZhbC9SZWplY3Rpb24uXG4gICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSBhIEVtYWlsIE9UUCBNRkEgQXBwcm92YWwvUmVqZWN0aW9uLlxuICAgKlxuICAgKiBUaGUgcmVxdWVzdCBzaG91bGQgY29udGFpbiB0aGUgZnVsbCBKV1Qgb2J0YWluZWQgYnkgY29uY2F0ZW5hdGluZyB0aGVcbiAgICogcGFydGlhbCB0b2tlbiByZXR1cm5lZCBieSB0aGUgYG1mYV9lbWFpbF9pbml0YCBlbmRwb2ludCBhbmQgdGhlIHNpZ25hdHVyZVxuICAgKiBlbWFpbGVkIHRvIHRoZSB1c2VyIGlzc3VpbmcgdGhlIHJlcXVlc3QuXG4gICAqXG4gICAqIElmIGFwcHJvdmluZywgYWRkcyBhbiBhcHByb3ZlciB0byBhIHBlbmRpbmcgTUZBIHJlcXVlc3QuXG4gICAqIElmIHRoZSByZXF1aXJlZCBudW1iZXIgb2YgYXBwcm92ZXJzIGlzIHJlYWNoZWQsIHRoZSBNRkEgcmVxdWVzdCBpcyBhcHByb3ZlZDtcbiAgICogdGhlIGNvbmZpcm1hdGlvbiByZWNlaXB0IGNhbiBiZSB1c2VkIHRvIHJlc3VtZSB0aGUgb3JpZ2luYWwgSFRUUCByZXF1ZXN0LlxuICAgKlxuICAgKiBJZiByZWplY3RpbmcsIGltbWVkaWF0ZWx5IGRlbGV0ZXMgdGhlIHBlbmRpbmcgTUZBIHJlcXVlc3QuXG4gICAqL1xuICBtZmFWb3RlRW1haWxDb21wbGV0ZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE1mYVJlcXVlc3RcbiAgICAgICAgICogQGV4YW1wbGUgTWZhUmVxdWVzdCMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG1mYV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVtYWlsT3RwQW5zd2VyXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTWZhUmVxdWVzdEluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW5pdGlhdGUgYSBGSURPIE1GQSBBcHByb3ZhbC9SZWplY3Rpb25cbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIGEgRklETyBNRkEgQXBwcm92YWwvUmVqZWN0aW9uXG4gICAqXG4gICAqIEluaXRpYXRlcyB0aGUgYXBwcm92YWwvcmVqZWN0aW9uIHByb2Nlc3Mgb2YgYW4gTUZBIFJlcXVlc3QgdXNpbmcgRklETy5cbiAgICovXG4gIG1mYUZpZG9Jbml0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgTWZhUmVxdWVzdFxuICAgICAgICAgKiBAZXhhbXBsZSBNZmFSZXF1ZXN0IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgbWZhX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJGaWRvQXNzZXJ0Q2hhbGxlbmdlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEZpbmFsaXplIGEgRklETyBNRkEgQXBwcm92YWwvUmVqZWN0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSBhIEZJRE8gTUZBIEFwcHJvdmFsL1JlamVjdGlvblxuICAgKlxuICAgKiBJZiBhcHByb3ZpbmcsIGFkZHMgYW4gYXBwcm92ZXIgdG8gYSBwZW5kaW5nIE1GQSByZXF1ZXN0LlxuICAgKiBJZiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7XG4gICAqIHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0byByZXN1bWUgdGhlIG9yaWdpbmFsIEhUVFAgcmVxdWVzdC5cbiAgICpcbiAgICogSWYgcmVqZWN0aW5nLCBpbW1lZGlhdGVseSBkZWxldGVzIHRoZSBwZW5kaW5nIE1GQSByZXF1ZXN0LlxuICAgKi9cbiAgbWZhVm90ZUZpZG9Db21wbGV0ZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICBtZmFfdm90ZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhVm90ZVwiXSB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgTWZhUmVxdWVzdFxuICAgICAgICAgKiBAZXhhbXBsZSBNZmFSZXF1ZXN0IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgbWZhX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRmlkb0Fzc2VydEFuc3dlclwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEFwcHJvdmUvUmVqZWN0IGEgVE9UUCBNRkEgUmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gQXBwcm92ZS9SZWplY3QgYSBUT1RQIE1GQSBSZXF1ZXN0XG4gICAqXG4gICAqIElmIGFwcHJvdmluZywgYWRkcyB0aGUgY3VycmVudCB1c2VyIGFzIGFwcHJvdmVyIHRvIGEgcGVuZGluZyBNRkEgcmVxdWVzdCBieVxuICAgKiBwcm92aWRpbmcgVE9UUCBjb2RlLiBJZiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXNcbiAgICogYXBwcm92ZWQ7IHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0byByZXN1bWUgdGhlIG9yaWdpbmFsIEhUVFAgcmVxdWVzdC5cbiAgICpcbiAgICogSWYgcmVqZWN0aW5nLCBpbW1lZGlhdGVseSBkZWxldGVzIHRoZSBwZW5kaW5nIE1GQSByZXF1ZXN0LlxuICAgKi9cbiAgbWZhVm90ZVRvdHA6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgbWZhX3ZvdGU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVZvdGVcIl0gfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE1mYVJlcXVlc3RcbiAgICAgICAgICogQGV4YW1wbGUgTWZhUmVxdWVzdCMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG1mYV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRvdHBBcHByb3ZlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgcGVuZGluZyBNTUkgcmVxdWVzdHNcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgcGVuZGluZyBNTUkgcmVxdWVzdHNcbiAgICpcbiAgICogUmV0cmlldmVzIGFuZCByZXR1cm5zIGFsbCBwZW5kaW5nIE1NSSBtZXNzYWdlcyBhY2Nlc3NpYmxlIHRvIHRoZSBjdXJyZW50IHNlc3Npb24gaWRlbnRpdHksIGkuZS4sXG4gICAqIC0gYSByb2xlIHNlc3Npb24gY2FuIGFjY2VzcyBvbmx5IHRoZSBtZXNzYWdlcyBjcmVhdGVkIGJ5IHRoYXQgcm9sZVxuICAgKiAtIGEgdXNlciBzZXNzaW9uIGNhbiBhY2Nlc3MgdGhlIG1lc3NhZ2VzIGNyZWF0ZWQgYnkgZWl0aGVyIHRoYXQgdXNlciBvciBhbnkgcm9sZSB3aGljaCB0aGUgdXNlciBpcyBhIG1lbWJlciBvZlxuICAgKi9cbiAgbW1pTWVzc2FnZUxpc3Q6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJMaXN0UGVuZGluZ01lc3NhZ2VzUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IGFuIE1NSSByZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgYW4gTU1JIHJlcXVlc3RcbiAgICpcbiAgICogUmV0cmlldmVzIGEgcGVuZGluZyBNTUkgcmVxdWVzdCBieSBpdHMgSUQuXG4gICAqL1xuICBtbWlNZXNzYWdlR2V0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUGVuZGluZ01lc3NhZ2VcbiAgICAgICAgICogQGV4YW1wbGUgUGVuZGluZ01lc3NhZ2UjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBtc2dfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBlbmRpbmdNZXNzYWdlSW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBEZWxldGUgYW4gTU1JIHJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBhbiBNTUkgcmVxdWVzdFxuICAgKlxuICAgKiBSZWplY3RzIGFuIGV4aXN0aW5nIE1NSSByZXF1ZXN0IGFuZCB0aGVuIGRlbGV0ZXMgaXQgZnJvbSB0aGUgZGF0YWJhc2UuXG4gICAqL1xuICBtbWlNZXNzYWdlRGVsZXRlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUGVuZGluZ01lc3NhZ2VcbiAgICAgICAgICogQGV4YW1wbGUgUGVuZGluZ01lc3NhZ2UjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBtc2dfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZWplY3QgYW4gTU1JIHJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIFJlamVjdCBhbiBNTUkgcmVxdWVzdFxuICAgKlxuICAgKiBSZWplY3RzIGEgcGVuZGluZyBNTUkgcmVxdWVzdC4gVGhlIHJlY29yZCBvZiB0aGUgTU1JIHJlcXVlc3QgaXMga2VwdCBpblxuICAgKiB0aGUgZGF0YWJhc2UgdW50aWwgaXQgZXhwaXJlcyBvciBpcyBleHBsaWNpdGx5IGRlbGV0ZWQuXG4gICAqXG4gICAqIFJldHVybnMgdGhlIHVwZGF0ZWQgcmVxdWVzdCBpbmZvcm1hdGlvbi5cbiAgICovXG4gIG1taU1lc3NhZ2VSZWplY3Q6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBQZW5kaW5nTWVzc2FnZVxuICAgICAgICAgKiBAZXhhbXBsZSBQZW5kaW5nTWVzc2FnZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG1zZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5Pzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNbWlSZWplY3RSZXF1ZXN0XCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBlbmRpbmdNZXNzYWdlSW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBBcHByb3ZlIGFuZCBzaWduIGFuIE1NSSByZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZlIGFuZCBzaWduIGFuIE1NSSByZXF1ZXN0XG4gICAqXG4gICAqIFNpZ25zIGEgcGVuZGluZyByZXF1ZXN0IHRoYXQgd2FzIGdlbmVyYXRlZCB0aHJvdWdoIHRoZSBNTUkgSlNPTiBSUEMgZW5kcG9pbnQuXG4gICAqIFRoZSBzaWduYXR1cmUgaXMgc3RvcmVkIHdpdGggdGhlIHBlbmRpbmcgbWVzc2FnZSBhbmQgdGhlIHVwZGF0ZWQgcmVxdWVzdCBpbmZvIGlzIHJldHVybmVkLlxuICAgKlxuICAgKiBUaGUgbWVzc2FnZSBzaG91bGQgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBvcmdhbml6YXRpb24gdGhpcyBpcyBjYWxsZWQgZnJvbSxcbiAgICogYW5kIHRoZSB1c2VyIHNob3VsZCBiZSB0aGUgb3duZXIgb2YgdGhlIGNvcnJlc3BvbmRpbmcgbWVzc2FnZSdzIGtleS5cbiAgICovXG4gIG1taU1lc3NhZ2VTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUGVuZGluZ01lc3NhZ2VcbiAgICAgICAgICogQGV4YW1wbGUgUGVuZGluZ01lc3NhZ2UjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBtc2dfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQZW5kaW5nTWVzc2FnZUluZm9cIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQZW5kaW5nTWVzc2FnZVNpZ25SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBNaW50IGFuIE9JREMgSUQgdG9rZW4gZm9yIFR3aXR0ZXJcbiAgICogQGRlc2NyaXB0aW9uIE1pbnQgYW4gT0lEQyBJRCB0b2tlbiBmb3IgVHdpdHRlclxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGFjdHMgaWRlbnRpY2FsbHkgdG8gVHdpdHRlcidzIFtgb2F1dGgyL3Rva2VuYF0oaHR0cHM6Ly9kZXZlbG9wZXIudHdpdHRlci5jb20vZW4vZG9jcy9hdXRoZW50aWNhdGlvbi9hcGktcmVmZXJlbmNlL3Rva2VuKSBlbmRwb2ludCxcbiAgICogYnV0IGV4dGVuZHMgdGhlIG91dHB1dCB3aXRoIGFuIGBpZF90b2tlbmAuXG4gICAqXG4gICAqIFRoaXMgYGlkX3Rva2VuYCBjYW4gdGhlbiBiZSB1c2VkIHdpdGggYW55IEN1YmVTaWduZXIgZW5kcG9pbnQgdGhhdCByZXF1aXJlcyBhbiBPSURDIHRva2VuLlxuICAgKiBDYWxsZXJzIG11c3QgcmVxdWVzdCAqYXQgbGVhc3QqIHNjb3BlcyBgdHdlZXQucmVhZGAgYW5kIGB1c2Vycy5yZWFkYCBkdXJpbmcgYXV0aCB3aXRoIHR3aXR0ZXIuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBpZCB0b2tlbiBkb2VzIG5vdCBjb250YWluIGEgY29uZmlybWVkIGVtYWlsO1xuICAgKiBjYWxsZXJzIGNhbiByZXF1ZXN0IHRoaXMgZmllbGQgYmUgcG9wdWxhdGVkIGJ5IHJlcXVlc3RpbmcgdGhlIGB1c2Vycy5lbWFpbGAgc2NvcGVcbiAgICogYW5kIGFkZGluZyBgZmV0Y2hfZW1haWxgIGFzIGEgVVJMIHBhcmFtZXRlciB0byB0aGlzIHJvdXRlLlxuICAgKlxuICAgKlxuICAgKiA+IFshSU1QT1JUQU5UXVxuICAgKiA+IFRoaXMgZW5kcG9pbnQgd2lsbCBmYWlsIHVubGVzcyB0aGUgb3JnIGlzIGNvbmZpZ3VyZWQgdG8gYWxsb3cgdGhlIGlzc3VlciBgaHR0cHM6Ly9zaGltLm9hdXRoMi5jdWJpc3QuZGV2L3R3aXR0ZXJgIGFuZCBjbGllbnQgSUQgYmVpbmcgdXNlZCBmb3IgVHdpdHRlci5cbiAgICovXG4gIG9hdXRoMlR3aXR0ZXI6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgZmV0Y2hfZW1haWw/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJUb2tlblJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExvZ2luIHdpdGggT0lEQ1xuICAgKiBAZGVzY3JpcHRpb24gTG9naW4gd2l0aCBPSURDXG4gICAqXG4gICAqIEV4Y2hhbmdlIGFuIE9JREMgSUQgdG9rZW4gKHBhc3NlZCB2aWEgdGhlIGBBdXRob3JpemF0aW9uYCBoZWFkZXIpIGZvciBhIHNpZ25lciBzZXNzaW9uLlxuICAgKlxuICAgKiBNRkEgaXMgcmVxdWlyZWQgd2hlbjpcbiAgICogLSBhbiBNRkEgcG9saWN5IGlzIGV4cGxpY2l0bHkgYXR0YWNoZWQgdG8gdGhlIHVzZXIgbG9nZ2luZyBpblxuICAgKiAoZS5nLiwgYW4gb3JnIG93bmVyIGNhbiBkbyB0aGF0IGF0IHVzZXIgY3JlYXRpb24gdGltZSB0byByZXF1aXJlIGNlcnRhaW4ga2luZCBvZiBNRkEpXG4gICAqIC0gdGhlIHVzZXIgaGFzIGF0IGxlYXN0IDEgTUZBIGZhY3RvciBjb25maWd1cmVkXG4gICAqL1xuICBvaWRjQXV0aDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPaWRjTG9naW5SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbml0aWF0ZSBsb2dpbiB2aWEgZW1haWwgdG9rZW5cbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIGxvZ2luIHZpYSBlbWFpbCB0b2tlblxuICAgKlxuICAgKiBUaGlzIGVuZHBvaW50IGdlbmVyYXRlcyBhbiBPSURDIHRva2VuIHdpdGhvdXQgYSBzaWduYXR1cmUgKG9mIHRoZSBmb3JtIGBoZWFkZXIucGF5bG9hZC5gKSwgYW5kIHNlbmRzIHRoZSBzaWduYXR1cmUgdG8gdGhlIHVzZXIncyBlbWFpbC5cbiAgICogQ2xpZW50IGFwcGxpY2F0aW9ucyBjYW4gcmVjb25zdHJ1Y3QgdGhlIHRva2VuIGJ5IGNvbmNhdGVuYXRpbmcgdGhlIGBwYXJ0aWFsX3Rva2VuYCB3aXRoIHRoZSBzaWduYXR1cmUsIHByb2R1Y2luZyBhIHZhbGlkIE9JREMgdG9rZW4gb2YgdGhlIGZvcm0gYGhlYWRlci5wYXlsb2FkLnNpZ25hdHVyZWBcbiAgICogVGhlIHRva2VuIGNhbiB0aGVuIGJlIHVzZWQgdG8gYXV0aGVudGljYXRlIHRoZSB1c2VyLlxuICAgKlxuICAgKiA+IFshSU1QT1JUQU5UXVxuICAgKiA+IEZvciB0aGlzIGVuZHBvaW50IHRvIHN1Y2NlZWQsIHRoZSBvcmcgbXVzdCBiZSBjb25maWd1cmVkIHRvOlxuICAgKiA+IDEuIEFsbG93IHRoZSBpc3N1ZXIgYGh0dHBzOi8vc2hpbS5vYXV0aDIuY3ViaXN0LmRldi9lbWFpbC1vdHBgIGFuZCBjbGllbnQgSUQgYmVpbmcgdGhlIE9yZyBJRFxuICAgKiA+IDIuIEhhdmUgYW4gZW1haWwgc2VuZGVyIGNvbmZpZ3VyZWQgZm9yIE9UUHNcbiAgICovXG4gIGVtYWlsT3RwQXV0aDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbWFpbE90cFJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbWFpbE90cFJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYXRlIGxvZ2luIHZpYSBTaWduLWluIFdpdGggRXRoZXJldW0gKFNJV0UpLlxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgbG9naW4gdmlhIFNpZ24taW4gV2l0aCBFdGhlcmV1bSAoU0lXRSkuXG4gICAqXG4gICAqIFRoaXMgZW5kcG9pbnQgZ2VuZXJhdGVzIGEgY2hhbGxlbmdlIHdoaWNoIGNhbiBiZSBhbnN3ZXJlZCAodmlhIHRoZSBjb3JyZXNwb25kaW5nIFBBVENIIGVuZHBvaW50KVxuICAgKiB0byBvYnRhaW4gYW4gT0lEQyB0b2tlbi4gVGhlIE9JREMgdG9rZW4gY2FuIHRoZW4gYmUgZXhjaGFuZ2VkIGZvciBhIHVzZXIgc2Vzc2lvbiB2aWEgdGhlIHN0YW5kYXJkXG4gICAqIE9JREMgYXV0aCByb3V0ZS5cbiAgICpcbiAgICogPiBbIUlNUE9SVEFOVF1cbiAgICogPiBGb3IgdGhpcyBlbmRwb2ludCB0byBzdWNjZWVkLCB0aGUgb3JnIG11c3QgYmUgY29uZmlndXJlZCB0bzpcbiAgICogPiBBbGxvdyB0aGUgaXNzdWVyIGBodHRwczovL3NoaW0ub2F1dGgyLmN1YmlzdC5kZXYvc2l3ZWAgd2l0aCB0aGUgT3JnIElEIGFzIHRoZSBjbGllbnQgSURcbiAgICovXG4gIHNpd2VJbml0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNpd2VJbml0UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNpd2VJbml0UmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ29tcGxldGUgbG9naW4gdmlhIFNpZ24taW4gV2l0aCBFdGhlcmV1bSAoU0lXRSlcbiAgICogQGRlc2NyaXB0aW9uIENvbXBsZXRlIGxvZ2luIHZpYSBTaWduLWluIFdpdGggRXRoZXJldW0gKFNJV0UpXG4gICAqXG4gICAqIElmIHRoZSBjaGFsbGVuZ2UgKGlzc3VlZCBieSB0aGUgY29ycmVzcG9uZGluZyBQT1NUIGVuZHBvaW50KSBpcyBhbnN3ZXJlZCBjb3JyZWN0bHksIHRoaXMgZW5kcG9pbnRcbiAgICogZ2VuZXJhdGVzIGFuIE9JREMgdG9rZW4gdGhhdCBjYW4gdGhlbiBiZSBleGNoYW5nZWQgZm9yIGEgdXNlciBzZXNzaW9uIHZpYSB0aGUgc3RhbmRhcmQgT0lEQyBhdXRoIHJvdXRlLlxuICAgKlxuICAgKiA+IFshSU1QT1JUQU5UXVxuICAgKiA+IEZvciB0aGlzIGVuZHBvaW50IHRvIHN1Y2NlZWQsIHRoZSBvcmcgbXVzdCBiZSBjb25maWd1cmVkIHRvOlxuICAgKiA+IEFsbG93IHRoZSBpc3N1ZXIgYGh0dHBzOi8vc2hpbS5vYXV0aDIuY3ViaXN0LmRldi9zaXdlYCB3aXRoIHRoZSBPcmcgSUQgYXMgdGhlIGNsaWVudCBJRFxuICAgKi9cbiAgc2l3ZUNvbXBsZXRlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNpd2VDb21wbGV0ZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTaXdlQ29tcGxldGVSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbml0aWF0ZSBsb2dpbiB2aWEgU2lnbi1pbiBXaXRoIFNvbGFuYSAoU0lXUykuXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSBsb2dpbiB2aWEgU2lnbi1pbiBXaXRoIFNvbGFuYSAoU0lXUykuXG4gICAqXG4gICAqIFRoaXMgZW5kcG9pbnQgZ2VuZXJhdGVzIGEgY2hhbGxlbmdlIHdoaWNoIGNhbiBiZSBhbnN3ZXJlZCAodmlhIHRoZSBjb3JyZXNwb25kaW5nIFBBVENIIGVuZHBvaW50KVxuICAgKiB0byBvYnRhaW4gYW4gT0lEQyB0b2tlbi4gVGhlIE9JREMgdG9rZW4gY2FuIHRoZW4gYmUgZXhjaGFuZ2VkIGZvciBhIHVzZXIgc2Vzc2lvbiB2aWEgdGhlIHN0YW5kYXJkXG4gICAqIE9JREMgYXV0aCByb3V0ZS5cbiAgICpcbiAgICogPiBbIUlNUE9SVEFOVF1cbiAgICogPiBGb3IgdGhpcyBlbmRwb2ludCB0byBzdWNjZWVkLCB0aGUgb3JnIG11c3QgYmUgY29uZmlndXJlZCB0bzpcbiAgICogPiBBbGxvdyB0aGUgaXNzdWVyIGBodHRwczovL3NoaW0ub2F1dGgyLmN1YmlzdC5kZXYvc2l3c2Agd2l0aCB0aGUgT3JnIElEIGFzIHRoZSBjbGllbnQgSURcbiAgICovXG4gIHNpd3NJbml0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNpd3NJbml0UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNpd3NJbml0UmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ29tcGxldGUgbG9naW4gdmlhIFNpZ24taW4gV2l0aCBTb2xhbmEgKFNJV1MpXG4gICAqIEBkZXNjcmlwdGlvbiBDb21wbGV0ZSBsb2dpbiB2aWEgU2lnbi1pbiBXaXRoIFNvbGFuYSAoU0lXUylcbiAgICpcbiAgICogSWYgdGhlIGNoYWxsZW5nZSAoaXNzdWVkIGJ5IHRoZSBjb3JyZXNwb25kaW5nIFBPU1QgZW5kcG9pbnQpIGlzIGFuc3dlcmVkIGNvcnJlY3RseSwgdGhpcyBlbmRwb2ludFxuICAgKiBnZW5lcmF0ZXMgYW4gT0lEQyB0b2tlbiB0aGF0IGNhbiB0aGVuIGJlIGV4Y2hhbmdlZCBmb3IgYSB1c2VyIHNlc3Npb24gdmlhIHRoZSBzdGFuZGFyZCBPSURDIGF1dGggcm91dGUuXG4gICAqXG4gICAqID4gWyFJTVBPUlRBTlRdXG4gICAqID4gRm9yIHRoaXMgZW5kcG9pbnQgdG8gc3VjY2VlZCwgdGhlIG9yZyBtdXN0IGJlIGNvbmZpZ3VyZWQgdG86XG4gICAqID4gQWxsb3cgdGhlIGlzc3VlciBgaHR0cHM6Ly9zaGltLm9hdXRoMi5jdWJpc3QuZGV2L3Npd3NgIHdpdGggdGhlIE9yZyBJRCBhcyB0aGUgY2xpZW50IElEXG4gICAqL1xuICBzaXdzQ29tcGxldGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2l3c0NvbXBsZXRlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNpd3NDb21wbGV0ZVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEFsbG93cyBhIHVzZXIgdG8gYXV0aGVudGljYXRlIHdpdGggdGhlIHRlbGVncmFtIEFQSSB1c2luZyB0aGUgdGdXZWJBcHBEYXRhIHZhbHVlXG4gICAqIEBkZXNjcmlwdGlvbiBBbGxvd3MgYSB1c2VyIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIHRoZSB0ZWxlZ3JhbSBBUEkgdXNpbmcgdGhlIHRnV2ViQXBwRGF0YSB2YWx1ZVxuICAgKiBUaGUgdG9rZW4gaGFzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAgICogLSBUaGUgYHN1YmAgZmllbGQgaXMgdGhlIHRlbGVncmFtIHVzZXIgSURcbiAgICogLSBUaGUgYGlzc2AgZmllbGQgZGVwZW5kcyBvbiB0aGUgY2hvc2VuIGVudmlyb25tZW50OlxuICAgKiAtIGBodHRwczovL3NoaW0ub2F1dGgyLmN1YmlzdC5kZXYvdGVsZWdyYW0vcHJvZHVjdGlvbmAgZm9yIHRoZSBwcm9kdWN0aW9uIGVudmlyb25tZW50XG4gICAqIC0gYGh0dHBzOi8vc2hpbS5vYXV0aDIuY3ViaXN0LmRldi90ZWxlZ3JhbS90ZXN0YCBmb3IgdGhlIHRlc3QgZW52aXJvbm1lbnRcbiAgICogLSBUaGUgYGF1ZGAgZmllbGQgaXMgdGhlIHByb3ZpZGVkIHRlbGVncmFtIGJvdCBJRFxuICAgKiAtIFRoZSBgZXhwYCBmaWVsZCBpcyBkZXJpdmVkIGZyb20gdGhlIGBhdXRoX2RhdGVgIGZpZWxkIGluIHRoZSB0ZWxlZ3JhbSBkYXRhXG4gICAqXG4gICAqIEZhaWxzIGlmIHRoZSB0ZWxlZ3JhbSBkYXRhIGlzIGludmFsaWQgb3IgdGhlIHNpZ25hdHVyZSBpcyBpbnZhbGlkXG4gICAqL1xuICB0ZWxlZ3JhbUF1dGg6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVGVsZWdyYW1BdXRoUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlRlbGVncmFtQXV0aFJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBPcmdcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBPcmdcbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyBvcmdhbml6YXRpb24uIFRoZSBuZXcgb3JnIGlzIGEgY2hpbGQgb2YgdGhlXG4gICAqIGN1cnJlbnQgb3JnIGFuZCBpbmhlcml0cyBpdHMga2V5LWV4cG9ydCBwb2xpY3kuIFRoZSBuZXcgb3JnXG4gICAqIGlzIGNyZWF0ZWQgd2l0aCBvbmUgb3duZXIsIHRoZSBjYWxsZXIgb2YgdGhpcyBBUEkuXG4gICAqL1xuICBjcmVhdGVPcmc6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlT3JnUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk9yZ0luZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBQb2xpY2llc1xuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBQb2xpY2llc1xuICAgKlxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGFsbCBwb2xpY2llcyBpbiB0aGUgT3JnLlxuICAgKi9cbiAgbGlzdFBvbGljaWVzOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgICAqIHRoZSBleGFjdCB2YWx1ZSBwcmV2aW91c2x5IHJldHVybmVkIGFzICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHNhbWUgZW5kcG9pbnQuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9wdGlvbmFsIHR5cGUgb2YgcG9saWNpZXMgdG8gcmV0dXJuXG4gICAgICAgICAqIEBleGFtcGxlIEtleVxuICAgICAgICAgKi9cbiAgICAgICAgcG9saWN5X3R5cGU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlBvbGljeVR5cGVcIl0gfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBhZ2luYXRlZExpc3RQb2xpY2llc1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBQb2xpY3lcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBQb2xpY3lcbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyBuYW1lZCBwb2xpY3kgaW4gdGhlIG9yZ2FuaXphdGlvbi4gVGhlIHVzZXIgbWFraW5nIHRoZSByZXF1ZXN0IGlzIHRoZVxuICAgKiBvd25lciBvZiB0aGUgcG9saWN5LCBnaXZpbmcgdGhlbSBlZGl0IGFjY2VzcyB0byB0aGUgcG9saWN5IGFsb25nIHdpdGggdGhlIG9yZyBvd25lcnMuXG4gICAqL1xuICBjcmVhdGVQb2xpY3k6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlUG9saWN5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBvbGljeUluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVsZXRlIFBvbGljeVxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIFBvbGljeVxuICAgKlxuICAgKiBEZWxldGUgdGhlIG5hbWVkIHBvbGljeSB3aXRoIHRoZSBnaXZlbiBuYW1lIG9yIGlkLlxuICAgKi9cbiAgZGVsZXRlUG9saWN5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgTmFtZWRQb2xpY3lcbiAgICAgICAgICogQGV4YW1wbGUgTmFtZWRQb2xpY3kjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBwb2xpY3lfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbXB0eVwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVXBkYXRlIFBvbGljeVxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIFBvbGljeVxuICAgKlxuICAgKiBVcGRhdGVzIHRoZSBwb2xpY3kgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBvciBpZC5cbiAgICovXG4gIHVwZGF0ZVBvbGljeToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE5hbWVkUG9saWN5XG4gICAgICAgICAqIEBleGFtcGxlIE5hbWVkUG9saWN5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcG9saWN5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXBkYXRlUG9saWN5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBvbGljeUluZm9cIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBQb2xpY3kgTG9nc1xuICAgKiBAZGVzY3JpcHRpb24gR2V0IFBvbGljeSBMb2dzXG4gICAqXG4gICAqIFJldHVybnMgdGhlIGxvZ3MgZm9yIHRoZSBnaXZlbiBwb2xpY3ksIHdpdGhpbiB0aGUgZ2l2ZW4gdGltZWZyYW1lLlxuICAgKi9cbiAgZ2V0UG9saWN5TG9nczoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE5hbWVkUG9saWN5XG4gICAgICAgICAqIEBleGFtcGxlIE5hbWVkUG9saWN5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcG9saWN5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUG9saWN5TG9nc1JlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRQb2xpY3lMb2dzUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IFBvbGljeVxuICAgKiBAZGVzY3JpcHRpb24gR2V0IFBvbGljeVxuICAgKlxuICAgKiBSZXR1cm5zIHRoZSBzcGVjaWZpZWQgdmVyc2lvbiBvciBsYXRlc3Qgb2YgYSBuYW1lZCBwb2xpY3kgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBvciBpZC5cbiAgICovXG4gIGdldFBvbGljeToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE5hbWVkUG9saWN5XG4gICAgICAgICAqIEBleGFtcGxlIE5hbWVkUG9saWN5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcG9saWN5X2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHBvbGljeSB2ZXJzaW9uLCBlaXRoZXIgJ2xhdGVzdCcgb3IgJ3Y8bnVtYmVyPicuXG4gICAgICAgICAqIEBleGFtcGxlIGxhdGVzdFxuICAgICAgICAgKi9cbiAgICAgICAgdmVyc2lvbjogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUG9saWN5SW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbnZva2UgUG9saWN5XG4gICAqIEBkZXNjcmlwdGlvbiBJbnZva2UgUG9saWN5XG4gICAqXG4gICAqIEludm9rZXMgdGhlIFtOYW1lZFBvbGljeV0gd2l0aCB0aGUgZ2l2ZW4gSUQgd2l0aCB0aGUgZ2l2ZW4gcmVxdWVzdCBpbmZvcm1hdGlvbi5cbiAgICogSXQgaXMgb25seSBzdXBwb3J0ZWQgZm9yIFdhc20gcG9saWNpZXMuXG4gICAqL1xuICBpbnZva2VQb2xpY3k6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBOYW1lZFBvbGljeVxuICAgICAgICAgKiBAZXhhbXBsZSBOYW1lZFBvbGljeSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHBvbGljeV9pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBwb2xpY3kgdmVyc2lvbiwgZWl0aGVyICdsYXRlc3QnIG9yICd2PG51bWJlcj4nLlxuICAgICAgICAgKiBAZXhhbXBsZSBsYXRlc3RcbiAgICAgICAgICovXG4gICAgICAgIHZlcnNpb246IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbnZva2VQb2xpY3lSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiSW52b2tlUG9saWN5UmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBCdWNrZXRzXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IEJ1Y2tldHNcbiAgICpcbiAgICogTGlzdCBhdmFpbGFibGUgbWV0YSBpbmZvcm1hdGlvbiBhYm91dCBhbGwgcG9saWN5IEtWIHN0b3JlIGJ1Y2tldHMgaW4gdGhlIG9yZy5cbiAgICovXG4gIGxpc3RQb2xpY3lCdWNrZXRzOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgICAqIHRoZSBleGFjdCB2YWx1ZSBwcmV2aW91c2x5IHJldHVybmVkIGFzICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHNhbWUgZW5kcG9pbnQuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkTGlzdEJ1Y2tldHNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgQnVja2V0XG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgQnVja2V0XG4gICAqXG4gICAqIFJldHVybnMgdGhlIG1ldGEgaW5mb3JtYXRpb24gb2YgYSBwb2xpY3kgS1Ygc3RvcmUgYnVja2V0LlxuICAgKi9cbiAgZ2V0UG9saWN5QnVja2V0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICBidWNrZXRfbmFtZTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQnVja2V0SW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBVcGRhdGUgQnVja2V0XG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgQnVja2V0XG4gICAqXG4gICAqIFVwZGF0ZXMgbWV0YSBpbmZvcm1hdGlvbiBmb3IgYW4gZXhpc3RpbmcgcG9saWN5IEtWIHN0b3JlIGJ1Y2tldC5cbiAgICovXG4gIHVwZGF0ZVBvbGljeUJ1Y2tldDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgYnVja2V0X25hbWU6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVcGRhdGVCdWNrZXRSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQnVja2V0SW5mb1wiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlIFBvbGljeSBJbXBvcnQgS2V5XG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgUG9saWN5IEltcG9ydCBLZXlcbiAgICpcbiAgICogR2VuZXJhdGUgYW4gZXBoZW1lcmFsIGtleSB0aGF0IGEgY2xpZW50IGNhbiB1c2UgZm9yIGVuY3J5cHRpbmcgZGF0YSByZWxhdGVkIHRvIFdhc21cbiAgICogcG9saWNpZXMgKGUuZy4sIHBvbGljeSBzZWNyZXRzKS5cbiAgICovXG4gIGNyZWF0ZVBvbGljeUltcG9ydEtleToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNyZWF0ZVBvbGljeUltcG9ydEtleVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCB0aGUgb3JnLXdpZGUgcG9saWN5IHNlY3JldHMuXG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgdGhlIG9yZy13aWRlIHBvbGljeSBzZWNyZXRzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhpcyBvbmx5IHJldHVybnMgdGhlIGtleXMgZm9yIHRoZSBzZWNyZXRzLCBvbWl0dGluZyB0aGUgdmFsdWVzLlxuICAgKiBUaGUgdmFsdWVzIGFyZSBzZWNyZXQgYW5kIGFyZSBub3QgYWNjZXNzaWJsZSBvdXRzaWRlIFdhc20gcG9saWN5IGV4ZWN1dGlvbi5cbiAgICovXG4gIGdldFBvbGljeVNlY3JldHM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQb2xpY3lTZWNyZXRzSW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBVcGRhdGUgb3JnLWxldmVsIHBvbGljeSBzZWNyZXRzXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgb3JnLWxldmVsIHBvbGljeSBzZWNyZXRzXG4gICAqXG4gICAqIFRoZSBwcm92aWRlZCBzZWNyZXRzIHdpbGwgcmVwbGFjZSBhbnkgZXhpc3Rpbmcgb3JnLWxldmVsIHNlY3JldHMuXG4gICAqIEl0IGZhaWxzIGlmIHRoZSBzZWNyZXRzIHdlcmVuJ3QgcHJldmlvdXNseSBjcmVhdGVkLlxuICAgKlxuICAgKiBNdXN0IGJlIHBlcm1pdHRlZCBieSB0aGUgcG9saWN5IHNlY3JldCdzIGVkaXQgcG9saWN5IGlmIHNldCwgYW5kIHRoZSBvcmcncyBlZGl0IHBvbGljeSBvdGhlcndpc2UuXG4gICAqL1xuICB1cGRhdGVQb2xpY3lTZWNyZXRzOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVwZGF0ZVBvbGljeVNlY3JldHNSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUG9saWN5U2VjcmV0c0luZm9cIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBvciBvdmVyd3JpdGUgYW4gb3JnLWxldmVsIHBvbGljeSBzZWNyZXQuXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgb3Igb3ZlcndyaXRlIGFuIG9yZy1sZXZlbCBwb2xpY3kgc2VjcmV0LlxuICAgKiBNdXN0IGJlIHBlcm1pdHRlZCBieSB0aGUgcG9saWN5IHNlY3JldCdzIGVkaXQgcG9saWN5IGlmIHNldCwgYW5kIHRoZSBvcmcncyBlZGl0IHBvbGljeSBvdGhlcndpc2UuXG4gICAqL1xuICBzZXRQb2xpY3lTZWNyZXQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIHNlY3JldF9uYW1lOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2V0UG9saWN5U2VjcmV0UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBvbGljeVNlY3JldHNJbmZvXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBEZWxldGUgYW4gb3JnLWxldmVsIHBvbGljeSBzZWNyZXQuXG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgYW4gb3JnLWxldmVsIHBvbGljeSBzZWNyZXQuXG4gICAqIE11c3QgYmUgcGVybWl0dGVkIGJ5IHRoZSBwb2xpY3kgc2VjcmV0J3MgZWRpdCBwb2xpY3kgaWYgc2V0LCBhbmQgdGhlIG9yZydzIGVkaXQgcG9saWN5IG90aGVyd2lzZS5cbiAgICovXG4gIGRlbGV0ZVBvbGljeVNlY3JldDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgc2VjcmV0X25hbWU6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbXB0eVwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBvbGljeVNlY3JldHNJbmZvXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBVcGxvYWQgV2FzbSBQb2xpY3lcbiAgICogQGRlc2NyaXB0aW9uIFVwbG9hZCBXYXNtIFBvbGljeVxuICAgKlxuICAgKiBSZXR1cm5zIGEgc2lnbmVkIFVSTCBmb3IgdXBsb2FkaW5nIGEgd2FzbSBwb2xpY3kgdG8gQ3ViZVNpZ25lci4gVGhlIHBvbGljeSB3aWxsIGJlXG4gICAqIGRlbGV0ZWQgaWYgbm90IGF0dGFjaGVkIHRvIGEgW05hbWVkUG9saWN5XSBzb29uIGFmdGVyIHRoZSB1cGxvYWQgaGFzIGJlZW4gY29tcGxldGVkLlxuICAgKi9cbiAgdXBsb2FkV2FzbVBvbGljeToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVcGxvYWRXYXNtUG9saWN5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlVwbG9hZFdhc21Qb2xpY3lSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IFJvbGVzXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IFJvbGVzXG4gICAqXG4gICAqIFJldHJpZXZlcyBhbGwgcm9sZXMgaW4gYW4gb3JnYW5pemF0aW9uIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBpcyBhbGxvd2VkIHRvIGFjY2Vzcy5cbiAgICovXG4gIGxpc3RSb2xlczoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIERvbid0IGluY2x1ZGUga2V5cyBhbmQgdXNlcnMgZm9yIGVhY2ggcm9sZSAqL1xuICAgICAgICBzdW1tYXJpemU/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0Um9sZXNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgUm9sZVxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFJvbGVcbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyByb2xlIGluIGFuIG9yZ2FuaXphdGlvbi4gVW5sZXNzIHRoZSBsb2dnZWQtaW4gdXNlclxuICAgKiBpcyB0aGUgb3duZXIsIHRoZXkgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgcm9sZS5cbiAgICovXG4gIGNyZWF0ZVJvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCByZXF1ZXN0IGJvZHkgdG8gc2V0IHRoZSByb2xlIG5hbWUgKi9cbiAgICByZXF1ZXN0Qm9keT86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlUm9sZVJlcXVlc3RcIl0gfCBudWxsO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQ3JlYXRlUm9sZVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBSb2xlXG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgUm9sZVxuICAgKlxuICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgYSByb2xlIGluIGFuIG9yZ2FuaXphdGlvblxuICAgKi9cbiAgZ2V0Um9sZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICBzdW1tYXJpemU/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJSb2xlSW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBEZWxldGUgUm9sZVxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIFJvbGVcbiAgICpcbiAgICogRGVsZXRlcyBhIHJvbGUgaW4gYW4gb3JnYW5pemF0aW9uLlxuICAgKlxuICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLlxuICAgKiBBZGRpdGlvbmFsbHksIHRoZSByb2xlJ3MgZWRpdCBwb2xpY3kgKGlmIHNldCkgbXVzdCBwZXJtaXQgdGhlIHVwZGF0ZS5cbiAgICovXG4gIGRlbGV0ZVJvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1wdHlcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFVwZGF0ZSBSb2xlXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgUm9sZVxuICAgKlxuICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIGEgcm9sZSAodGhpcyByZXF1aXJlcyB0aGUgYG1hbmFnZTpyb2xlOnVwZGF0ZTplbmFibGVgIHNjb3BlKS5cbiAgICogVXBkYXRlcyB0aGUgcm9sZSdzIHBvbGljaWVzICh0aGlzIHJlcXVpcmVzIHRoZSBgbWFuYWdlOnJvbGU6dXBkYXRlOnBvbGljeWAgc2NvcGUpLlxuICAgKiBVcGRhdGVzIHRoZSByb2xlJ3MgZWRpdCBwb2xpY2llcyAodGhpcyByZXF1aXJlcyB0aGUgYG1hbmFnZTpyb2xlOnVwZGF0ZTplZGl0UG9saWN5YCBzY29wZSkuXG4gICAqXG4gICAqIFRoZSB1c2VyIG11c3QgYmUgaW4gdGhlIHJvbGUgb3IgYW4gb3duZXIgb2YgdGhlIG9yZ2FuaXphdGlvbi5cbiAgICogQWRkaXRpb25hbGx5LCB0aGUgcm9sZSdzIGVkaXQgcG9saWN5IChpZiBzZXQpIG11c3QgcGVybWl0IHRoZSB1cGRhdGUuXG4gICAqL1xuICB1cGRhdGVSb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVwZGF0ZVJvbGVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUm9sZUluZm9cIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEFkZCBLZXlzXG4gICAqIEBkZXNjcmlwdGlvbiBBZGQgS2V5c1xuICAgKlxuICAgKiBBZGRzIGEgbGlzdCBvZiBleGlzdGluZyBrZXlzIHRvIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAqXG4gICAqIFRoZSBrZXkgb3duZXIgaXMgYWxsb3dlZCB0byBhZGQgdGhlaXIga2V5IHRvIGFueSByb2xlIHRoYXQgdGhleSBhcmUgaW4uXG4gICAqXG4gICAqIEluIFwib3JnIGN1c3RvZHlcIiBtb2RlbCBvbmx5LCBvcmcgb3duZXJzIGFyZSBhbGxvd2VkIHRvIGFkZCBhbnkga2V5IHRvIGFueSByb2xlLlxuICAgKlxuICAgKiBJbiBhbGwgY2FzZXM6IHRoZSByb2xlJ3MgZWRpdCBwb2xpY3ksIGFzIHdlbGwgYXMgdGhlIGVkaXQgcG9saWN5IG9mIGVhY2ggb2YgdGhlIGtleXMsIG11c3QgcGVybWl0IHRoZSB1cGRhdGUuXG4gICAqXG4gICAqIEVhY2ggcmVxdWVzdCB0byB0aGlzIGVuZHBvaW50IGNhbiBhZGQsIGF0IG1heGltdW0sIDMyIGtleXMuXG4gICAqL1xuICBhZGRLZXlzVG9Sb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFkZEtleXNUb1JvbGVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBBZGQgVXNlclxuICAgKiBAZGVzY3JpcHRpb24gQWRkIFVzZXJcbiAgICpcbiAgICogQWRkcyBhbiBleGlzdGluZyB1c2VyIHRvIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAqXG4gICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgb3Igb3JnIG93bmVycyBjYW4gYWRkIHVzZXJzIHRvIGEgcm9sZS5cbiAgICogQWRkaXRpb25hbGx5LCB0aGUgcm9sZSdzIGVkaXQgcG9saWN5IChpZiBzZXQpIG11c3QgcGVybWl0IHRoZSB1cGRhdGUuXG4gICAqL1xuICBhZGRVc2VyVG9Sb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIFVzZXJcbiAgICAgICAgICogQGV4YW1wbGUgVXNlciMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbXB0eVwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQXR0ZXN0IHRvIFJvbGUgUHJvcGVydGllc1xuICAgKiBAZGVzY3JpcHRpb24gQXR0ZXN0IHRvIFJvbGUgUHJvcGVydGllc1xuICAgKlxuICAgKiBUaGUgcmVzcG9uc2UgaXMgYSBKV1Qgd2hvc2UgY2xhaW1zIGFyZSB0aGUgcmVxdWVzdGVkIHJvbGUgcHJvcGVydGllcy5cbiAgICovXG4gIGF0dGVzdFJvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBSb2xlIHByb3BlcnRpZXMgdG8gaW5jbHVkZSBpbiBhbiBhdHRlc3RhdGlvbi4gRGVmYXVsdHMgdG8gYmFzaWMgcm9sZVxuICAgICAgICAgKiBwcm9wZXJ0aWVzLCBpbmNsdWRpbmcgYXNzb2NpYXRlZCB1c2VycywgYnV0IGV4Y2x1ZGluZyBhc3NvY2lhdGVkIGtleXMuXG4gICAgICAgICAqL1xuICAgICAgICB2ZXJib3NpdHk/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJvbGVBdHRlc3RhdGlvblZlcmJvc2l0eVwiXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBBc3NvY2lhdGVkIGtleXMgZmlsdGVyLCBpLmUuLCB3aGVuIHNwZWNpZmllZCwgb3V0IGFsbCBvdGhlciBhc3NvY2lhdGVkXG4gICAgICAgICAqIGtleXMgYXJlIGZpbHRlcmVkIG91dC4gRGVmYXVsdHMgdG8gaW5jbHVkaW5nIGFsbCBhc3NvY2lhdGVkIGtleXMuXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfZmlsdGVyPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZFwiXSB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUm9sZUluZm9Kd3RcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBSb2xlIEtleXNcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgUm9sZSBLZXlzXG4gICAqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgYWxsIGtleXMgaW4gYSByb2xlLlxuICAgKi9cbiAgbGlzdFJvbGVLZXlzOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgICAqIHRoZSBleGFjdCB2YWx1ZSBwcmV2aW91c2x5IHJldHVybmVkIGFzICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHNhbWUgZW5kcG9pbnQuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkTGlzdFJvbGVLZXlzUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IGEgS2V5IGluIFJvbGVcbiAgICogQGRlc2NyaXB0aW9uIEdldCBhIEtleSBpbiBSb2xlXG4gICAqXG4gICAqIFJldHVybnMgdGhlIGtleS1pbi1yb2xlIGluZm9ybWF0aW9uIGZvciBhIGdpdmVuIGtleSBhbmQgcm9sZS4gSWYgYGRldGFpbHNgIGlzIHNldCB0byBgdHJ1ZWAsXG4gICAqIHRoaXMgZW5kcG9pbnQgcmV0dXJucyBkZXRhaWxlZCBrZXkgaW5mb3JtYXRpb24uXG4gICAqL1xuICBnZXRSb2xlS2V5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0byBpbmNsdWRlIGRldGFpbGVkIGtleSBpbmZvcm1hdGlvblxuICAgICAgICAgKiBAZXhhbXBsZSB0cnVlXG4gICAgICAgICAqL1xuICAgICAgICBkZXRhaWxzPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIEtleVxuICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIktleUluUm9sZUluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUmVtb3ZlIEtleVxuICAgKiBAZGVzY3JpcHRpb24gUmVtb3ZlIEtleVxuICAgKlxuICAgKiBSZW1vdmVzIGEgZ2l2ZW4ga2V5IGZyb20gYSByb2xlLlxuICAgKlxuICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG9yZyBvd25lcnMgY2FuIHJlbW92ZSBrZXlzIGZyb20gYSByb2xlLlxuICAgKiBBZGRpdGlvbmFsbHksIGJvdGggdGhlIHJvbGUncyBhbmQgdGhlIGtleSdzIGVkaXQgcG9saWN5IG11c3QgcGVybWl0IHRoZSB1cGRhdGUuXG4gICAqL1xuICByZW1vdmVLZXlGcm9tUm9sZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBLZXlcbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1wdHlcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBUb2tlblxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFRva2VuXG4gICAqXG4gICAqIENyZWF0ZXMgYSBuZXcgYWNjZXNzIHRva2VuIGZvciBhIGdpdmVuIHJvbGUgKHRvIGJlIHVzZWQgYXMgXCJBUEkgS2V5XCIgZm9yIGFsbCBzaWduaW5nIGFjdGlvbnMpLlxuICAgKiBUaGUgYHJlc3RyaWN0ZWRfYWN0aW9uc2AgZmllbGQgb24gdGhlIFtSb2xlXSBkZXRlcm1pbmVzIHRoZSBtZW1iZXJzaGlwIHJvbGUgdGhhdCBpcyByZXF1aXJlZCB0b1xuICAgKiBjcmVhdGUgdG9rZW5zLlxuICAgKi9cbiAgY3JlYXRlUm9sZVRva2VuOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZVRva2VuUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk5ld1Nlc3Npb25SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IEhpc3RvcmljYWwgVHJhbnNhY3Rpb25zXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IEhpc3RvcmljYWwgVHJhbnNhY3Rpb25zXG4gICAqXG4gICAqIFJldHVybnMgYSBzb3J0ZWQsIHBhZ2luYXRlZCBsaXN0IG9mIHRyYW5zYWN0aW9ucyBzaWduZWQgYnkgdGhlIGdpdmVuIHJvbGUsXG4gICAqIG9yZGVyZWQgZnJvbSBtb3N0IHJlY2VudCBmaXJzdC5cbiAgICovXG4gIGxpc3RIaXN0b3JpY2FsUm9sZVR4OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgICAqIHRoZSBleGFjdCB2YWx1ZSBwcmV2aW91c2x5IHJldHVybmVkIGFzICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHNhbWUgZW5kcG9pbnQuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkTGlzdEhpc3RvcmljYWxUeFJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgUm9sZSBVc2Vycy5cbiAgICogQGRlc2NyaXB0aW9uIExpc3QgUm9sZSBVc2Vycy5cbiAgICpcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBhbGwgdXNlcnMgd2hvIGhhdmUgYWNjZXNzIHRvIGEgcm9sZS5cbiAgICovXG4gIGxpc3RSb2xlVXNlcnM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0Um9sZVVzZXJzUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUmVtb3ZlIFVzZXJcbiAgICogQGRlc2NyaXB0aW9uIFJlbW92ZSBVc2VyXG4gICAqXG4gICAqIFJlbW92ZXMgYW4gZXhpc3RpbmcgdXNlciBmcm9tIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAqXG4gICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgb3Igb3JnIG93bmVycyBjYW4gcmVtb3ZlIHVzZXJzIGZyb20gYSByb2xlLlxuICAgKiBBZGRpdGlvbmFsbHksIHRoZSByb2xlJ3MgZWRpdCBwb2xpY3kgKGlmIHNldCkgbXVzdCBwZXJtaXQgdGhlIHVwZGF0ZS5cbiAgICovXG4gIHJlbW92ZVVzZXJGcm9tUm9sZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBVc2VyXG4gICAgICAgICAqIEBleGFtcGxlIFVzZXIjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1wdHlcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEhpZ2gtbGV2ZWwgUlBDIGVuZHBvaW50LlxuICAgKiBAZGVzY3JpcHRpb24gSGlnaC1sZXZlbCBSUEMgZW5kcG9pbnQuXG4gICAqL1xuICBycGNBcGk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSnNvblJwY1JlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJKc29uUnBjUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBzZXNzaW9uc1xuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBzZXNzaW9uc1xuICAgKlxuICAgKiBJZiBubyBxdWVyeSBwYXJhbWV0ZXJzIGFyZSBwcm92aWRlZCwgYWxsIGFjdGl2ZSBzZXNzaW9ucyBmb3IgdGhlIGN1cnJlbnQgdXNlciBhcmUgcmV0dXJuZWQuXG4gICAqXG4gICAqIElmIGEgYHJvbGVgIHF1ZXJ5IHBhcmFtZXRlciBpcyBwcm92aWRlZCwgYWxsIGFjdGl2ZSBzZXNzaW9ucyBmb3IgdGhlIHNlbGVjdGVkIHJvbGUgYXJlIHJldHVybmVkXG4gICAqIChhc3NlcnRpbmcgZmlyc3QgdGhhdCB0aGUgY3VycmVudCB1c2VyIGhhcyBwZXJtaXNzaW9ucyB0byByZWFkIHNlc3Npb25zIGZvciB0aGF0IHJvbGUpLlxuICAgKlxuICAgKiBJZiBhIGByb2xlX2NyZWF0ZWRfYnlgIHF1ZXJ5IHBhcmFtZXRlciBpcyBwcm92aWRlZCwgYWxsIGFjdGl2ZSAqKnJvbGUqKiBzZXNzaW9ucyBjcmVhdGVkIGJ5IHRoYXRcbiAgICogdXNlciBhcmUgcmV0dXJuZWQgKGdhdGVkIGJ5IHRoZSBzYW1lIHBlcm1pc3Npb25zIGFzIGxpc3RpbmcgdGhhdCB1c2VyJ3Mgb3duIHNlc3Npb25zOiB0aGVcbiAgICogY3VycmVudCB1c2VyIG11c3QgYmUgdGhhdCB1c2VyIG9yIGFuIG9yZyBvd25lcikuIFdoZW4gY29tYmluZWQgd2l0aCBgcm9sZWAsIHRoZSByZXN1bHQgaXNcbiAgICogZnVydGhlciByZXN0cmljdGVkIHRvIHRoZSBzZXNzaW9ucyBjcmVhdGVkIGJ5IHRoYXQgdXNlciBmb3IgdGhlIGdpdmVuIHJvbGU7IHRoZSBwZXJtaXNzaW9uIG1vZGVsXG4gICAqIGlzIHVuY2hhbmdlZC4gVGhlIGB1c2VyYCBzZWxlY3RvciBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBgcm9sZWAgb3IgYHJvbGVfY3JlYXRlZF9ieWAuXG4gICAqL1xuICBsaXN0U2Vzc2lvbnM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBwcm92aWRlZCwgdGhlIG5hbWUgb3IgSUQgb2YgYSByb2xlIHRvIG9wZXJhdGUgb24uXG4gICAgICAgICAqIENhbm5vdCBiZSBzcGVjaWZpZWQgdG9nZXRoZXIgd2l0aCBgdXNlcmAsIGJ1dCBtYXkgYmUgY29tYmluZWQgd2l0aCBgcm9sZV9jcmVhdGVkX2J5YFxuICAgICAgICAgKiB0byBvcGVyYXRlIG9uIHRoZSByb2xlIHNlc3Npb25zIGNyZWF0ZWQgYnkgYSBnaXZlbiB1c2VyIGZvciB0aGlzIHNwZWNpZmljIHJvbGUuXG4gICAgICAgICAqIEBleGFtcGxlIG15LXJvbGVcbiAgICAgICAgICovXG4gICAgICAgIHJvbGU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHByb3ZpZGVkLCB0aGUgSUQgb2YgYSB1c2VyIHRvIG9wZXJhdGUgb24uXG4gICAgICAgICAqIENhbm5vdCBiZSBzcGVjaWZpZWQgdG9nZXRoZXIgd2l0aCBvdGhlciBzZWxlY3RvcnMuXG4gICAgICAgICAqIEBleGFtcGxlIFVzZXIjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICB1c2VyPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBwcm92aWRlZCwgdGhlIElEIG9mIHRoZSB1c2VyIHdob3NlIGNyZWF0ZWQgcm9sZSBzZXNzaW9ucyB0byBvcGVyYXRlIG9uLlxuICAgICAgICAgKiBTZWxlY3RzIGFsbCAqcm9sZSogc2Vzc2lvbnMgY3JlYXRlZCBieSB0aGF0IHVzZXIgKHVzZXIgc2Vzc2lvbnMgYXJlIG5vdCBhZmZlY3RlZCkuXG4gICAgICAgICAqIENhbm5vdCBiZSBzcGVjaWZpZWQgdG9nZXRoZXIgd2l0aCBgdXNlcmAuIFdoZW4gY29tYmluZWQgd2l0aCBgcm9sZWAsIHRoZSBzZWxlY3Rpb24gaXNcbiAgICAgICAgICogZnVydGhlciByZXN0cmljdGVkIHRvIHRoZSBzZXNzaW9ucyBjcmVhdGVkIGJ5IHRoYXQgdXNlciBmb3IgdGhlIGdpdmVuIHJvbGUuXG4gICAgICAgICAqIEBleGFtcGxlIFVzZXIjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2NyZWF0ZWRfYnk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBhZ2luYXRlZFNlc3Npb25zUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlIG5ldyB1c2VyIHNlc3Npb24gKG1hbmFnZW1lbnQgYW5kL29yIHNpZ25pbmcpXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgbmV3IHVzZXIgc2Vzc2lvbiAobWFuYWdlbWVudCBhbmQvb3Igc2lnbmluZylcbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyB1c2VyIHNlc3Npb24sIHNpbGVudGx5IHRydW5jYXRpbmcgcmVxdWVzdGVkIHNlc3Npb24gYW5kIGF1dGggbGlmZXRpbWVzIHRvIGJlIGF0XG4gICAqIG1vc3QgcmVxdWVzdG9yJ3Mgc2Vzc2lvbiBhbmQgYXV0aCBsaWZldGltZSwgcmVzcGVjdGl2ZWx5LiBUbyBleHRlbmQgdGhlIHJlcXVlc3RlZCBsaWZldGltZXMgcGFzdFxuICAgKiB0aGUgcmVxdWVzdG9yJ3MsIHNldCB0aGUgYGV4dGVuZF9saWZldGltZXNgIGZsYWcgaW4gdGhlIHJlcXVlc3QgYm9keSAoaW4gd2hpY2ggY2FzZSBNRkEgd2lsbFxuICAgKiBiZSByZXF1aXJlZCkuXG4gICAqL1xuICBjcmVhdGVTZXNzaW9uOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZVNlc3Npb25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJldm9rZSBBTEwgZXhpc3RpbmcgdXNlciBvciByb2xlIHNlc3Npb24ocylcbiAgICogQGRlc2NyaXB0aW9uIFJldm9rZSBBTEwgZXhpc3RpbmcgdXNlciBvciByb2xlIHNlc3Npb24ocylcbiAgICpcbiAgICogSW1tZWRpYXRlbHkgcmV2b2tlcyBleGlzdGluZyBzZXNzaW9ucywgcHJldmVudGluZyB0aGVtIGZyb20gYmVpbmcgdXNlZCBvciByZWZyZXNoZWQuXG4gICAqXG4gICAqIElmIG5vIHF1ZXJ5IHBhcmFtcyBhcmUgcHJvdmlkZWQsICoqQUxMKiogc2Vzc2lvbnMgZm9yIHRoZSAqKkNVUlJFTlQgVVNFUioqIGFyZSByZXZva2VkXG4gICAqICh0byByZXZva2UganVzdCB0aGUgY3VycmVudCB1c2VyIHNlc3Npb24sIHVzZSBgREVMRVRFIC92MC9vcmcvPG9yZ19pZD4vc2Vzc2lvbi9zZWxmYClcbiAgICpcbiAgICogSWYgYSBgcm9sZWAgcXVlcnkgcGFyYW1ldGVyIGlzIHByb3ZpZGVkLCAqKkFMTCoqIHNlc3Npb24gZm9yICoqVEhBVCBST0xFKiogYXJlIHJldm9rZWRcbiAgICogKGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIHBlcm1pc3Npb25zIHRvIHJldm9rZSBzZXNzaW9ucyBmb3IgdGhlIHJvbGUpLlxuICAgKlxuICAgKiBJZiBhIGByb2xlX2NyZWF0ZWRfYnlgIHF1ZXJ5IHBhcmFtZXRlciBpcyBwcm92aWRlZCwgKipST0xFKiogc2Vzc2lvbnMgY3JlYXRlZCBieSAqKlRIQVQgVVNFUioqXG4gICAqIGFyZSByZXZva2VkIChnYXRlZCBieSB0aGUgc2FtZSBwZXJtaXNzaW9ucyBhcyByZXZva2luZyB0aGF0IHVzZXIncyBvd24gc2Vzc2lvbnM6IHRoZSBjdXJyZW50XG4gICAqIHVzZXIgbXVzdCBiZSB0aGF0IHVzZXIgb3IgYW4gb3JnIG93bmVyKS4gVXNlciBzZXNzaW9ucyBhcmUgbm90IGFmZmVjdGVkLiBVbmxlc3MgdGhlIGN1cnJlbnRcbiAgICogdXNlciBpcyBhbiBvcmcgb3duZXIsIG9ubHkgc2Vzc2lvbnMgZm9yIHJvbGVzIHRoZSBjdXJyZW50IHVzZXIgaXMgKipzdGlsbCBhIG1lbWJlciBvZioqIGFyZVxuICAgKiByZXZva2VkIChzbyBhIHVzZXIgY2Fubm90IHJldm9rZSBzZXNzaW9ucyBmb3IgYSByb2xlIHRoZXkgaGF2ZSBzaW5jZSBiZWVuIHJlbW92ZWQgZnJvbSk7IG9yZ1xuICAgKiBvd25lcnMgcmV2b2tlIGFjcm9zcyBhbGwgcm9sZXMuXG4gICAqXG4gICAqIElmICoqYm90aCoqIGEgYHJvbGVgIGFuZCBhIGByb2xlX2NyZWF0ZWRfYnlgIHF1ZXJ5IHBhcmFtZXRlciBhcmUgcHJvdmlkZWQsIHRoZSBzZWxlY3Rpb24gYWJvdmVcbiAgICogaXMgbmFycm93ZWQgdG8gb25seSB0aGUgc2Vzc2lvbnMgY3JlYXRlZCBieSAqKlRIQVQgVVNFUioqIGZvciAqKlRIQVQgUk9MRSoqLiBUaGUgcGVybWlzc2lvblxuICAgKiBtb2RlbCBpcyB1bmNoYW5nZWQgZnJvbSB0aGUgYHJvbGVfY3JlYXRlZF9ieWAtb25seSBjYXNlICh0aGUgY3VycmVudCB1c2VyIG11c3QgYmUgdGhhdCB1c2VyIG9yXG4gICAqIGFuIG9yZyBvd25lciwgYW5kIG5vbi1vd25lcnMgYXJlIHN0aWxsIGxpbWl0ZWQgdG8gcm9sZXMgdGhleSBhcmUgYSBtZW1iZXIgb2YpOyBgcm9sZWAgaXMgcHVyZWx5XG4gICAqIGFuIGFkZGl0aW9uYWwgZmlsdGVyLlxuICAgKlxuICAgKiBUaGUgYHVzZXJgIHNlbGVjdG9yIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIGByb2xlYCBvciBgcm9sZV9jcmVhdGVkX2J5YC5cbiAgICovXG4gIHJldm9rZVNlc3Npb25zOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgcHJvdmlkZWQsIHRoZSBuYW1lIG9yIElEIG9mIGEgcm9sZSB0byBvcGVyYXRlIG9uLlxuICAgICAgICAgKiBDYW5ub3QgYmUgc3BlY2lmaWVkIHRvZ2V0aGVyIHdpdGggYHVzZXJgLCBidXQgbWF5IGJlIGNvbWJpbmVkIHdpdGggYHJvbGVfY3JlYXRlZF9ieWBcbiAgICAgICAgICogdG8gb3BlcmF0ZSBvbiB0aGUgcm9sZSBzZXNzaW9ucyBjcmVhdGVkIGJ5IGEgZ2l2ZW4gdXNlciBmb3IgdGhpcyBzcGVjaWZpYyByb2xlLlxuICAgICAgICAgKiBAZXhhbXBsZSBteS1yb2xlXG4gICAgICAgICAqL1xuICAgICAgICByb2xlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBwcm92aWRlZCwgdGhlIElEIG9mIGEgdXNlciB0byBvcGVyYXRlIG9uLlxuICAgICAgICAgKiBDYW5ub3QgYmUgc3BlY2lmaWVkIHRvZ2V0aGVyIHdpdGggb3RoZXIgc2VsZWN0b3JzLlxuICAgICAgICAgKiBAZXhhbXBsZSBVc2VyIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgdXNlcj86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgcHJvdmlkZWQsIHRoZSBJRCBvZiB0aGUgdXNlciB3aG9zZSBjcmVhdGVkIHJvbGUgc2Vzc2lvbnMgdG8gb3BlcmF0ZSBvbi5cbiAgICAgICAgICogU2VsZWN0cyBhbGwgKnJvbGUqIHNlc3Npb25zIGNyZWF0ZWQgYnkgdGhhdCB1c2VyICh1c2VyIHNlc3Npb25zIGFyZSBub3QgYWZmZWN0ZWQpLlxuICAgICAgICAgKiBDYW5ub3QgYmUgc3BlY2lmaWVkIHRvZ2V0aGVyIHdpdGggYHVzZXJgLiBXaGVuIGNvbWJpbmVkIHdpdGggYHJvbGVgLCB0aGUgc2VsZWN0aW9uIGlzXG4gICAgICAgICAqIGZ1cnRoZXIgcmVzdHJpY3RlZCB0byB0aGUgc2Vzc2lvbnMgY3JlYXRlZCBieSB0aGF0IHVzZXIgZm9yIHRoZSBnaXZlbiByb2xlLlxuICAgICAgICAgKiBAZXhhbXBsZSBVc2VyIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9jcmVhdGVkX2J5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTZXNzaW9uc1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJldm9rZSBjdXJyZW50IHNlc3Npb25cbiAgICogQGRlc2NyaXB0aW9uIFJldm9rZSBjdXJyZW50IHNlc3Npb25cbiAgICpcbiAgICogSW1tZWRpYXRlbHkgcmV2b2tlcyB0aGUgY3VycmVudCBzZXNzaW9uLCBwcmV2ZW50aW5nIGl0IGZyb20gYmVpbmcgdXNlZCBvciByZWZyZXNoZWRcbiAgICovXG4gIHJldm9rZUN1cnJlbnRTZXNzaW9uOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBzZXNzaW9uIGluZm9ybWF0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgc2Vzc2lvbiBpbmZvcm1hdGlvblxuICAgKi9cbiAgZ2V0U2Vzc2lvbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHNlc3Npb24gdG8gZ2V0IG9yICdzZWxmJyBmb3IgY3VycmVudCBzZXNzaW9uXG4gICAgICAgICAqIEBleGFtcGxlIDFjMGQ4NTNkLWMxNWYtNDJkYy1hODJjLTk4NzRlNTg5YmM3NVxuICAgICAgICAgKi9cbiAgICAgICAgc2Vzc2lvbl9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU2Vzc2lvbkluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUmV2b2tlIGEgc2Vzc2lvblxuICAgKiBAZGVzY3JpcHRpb24gUmV2b2tlIGEgc2Vzc2lvblxuICAgKlxuICAgKiBJbW1lZGlhdGVseSByZXZva2VzIGFuIGV4aXN0aW5nIHNlc3Npb24sIHByZXZlbnRpbmcgaXQgZnJvbSBiZWluZyB1c2VkIG9yIHJlZnJlc2hlZFxuICAgKi9cbiAgcmV2b2tlU2Vzc2lvbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHNlc3Npb24gdG8gcmV2b2tlXG4gICAgICAgICAqIEBleGFtcGxlIDc3YWFkMjEwMGMzNjFmNDk3NjM1ZGQwMDVjNGQxNTc4MWUyZTVkZjRiOWY0NWQ4ZTc0ZjM3NDI1Y2JjMzBiOWVcbiAgICAgICAgICovXG4gICAgICAgIHNlc3Npb25faWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNlc3Npb25JbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gU29sYW5hIE1lc3NhZ2VcbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gU29sYW5hIE1lc3NhZ2VcbiAgICpcbiAgICogU2lnbnMgYSBTb2xhbmEgbWVzc2FnZSB3aXRoIGEgZ2l2ZW4ga2V5LlxuICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICovXG4gIHNvbGFuYVNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGJhc2U1OC1lbmNvZGVkIHB1YmxpYyBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgODZaUlBzekJwNUVvUGo3d1IzYkhuN3duQVo1aVlmcGFzUmM3REtGUFRVYVpcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNvbGFuYVNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU2lnblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIGEgc2VyaWFsaXplZCBTVUkgdHJhbnNhY3Rpb24uXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIGEgc2VyaWFsaXplZCBTVUkgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgKi9cbiAgc3VpU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBTVUkga2V5IGFkZHJlc3NcbiAgICAgICAgICogQGV4YW1wbGUgMHhkZDY4ZDM1YTc3OGRiMWUzMTIzYzk1MGU1ZGI1MzYxMzMzZjU3NzMzYTc3NDg2YTcwNGRkOGM5OTRkOTY3NjFkXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTdWlTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBhIHRlbmRlcm1pbnQgbWVzc2FnZS5cbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gYSB0ZW5kZXJtaW50IG1lc3NhZ2UuXG4gICAqXG4gICAqIFNpZ25zIHRoZSBnaXZlbiBiYXNlLTY0IGVuY29kZWQgdm90ZSBvciBwcm9wb3NhbCB3aXRoIHRoZSBnaXZlbiB0ZW5kZXJtaW50IGtleS5cbiAgICovXG4gIHRlbmRlcm1pbnRTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIHZhbGlkYXRvciBwdWJsaWMga2V5IHdpdGggMHggcHJlZml4XG4gICAgICAgICAqIEBleGFtcGxlIDB4N2Q4ZDM0NGU2ZTUzMTUxNjkyZmE3OGEwOTg2MzA3OTk5NDZhZDRkNmEwMjdhZTZiY2Q3YTc4ZGM3ODI4MTY1MFxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVGVuZGVybWludFNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU2lnblJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBUb2tlbi1BY2Nlc3NpYmxlIEtleXNcbiAgICogQGRlc2NyaXB0aW9uIEdldCBUb2tlbi1BY2Nlc3NpYmxlIEtleXNcbiAgICpcbiAgICogUmV0cmlldmVzIHRoZSBrZXlzIHRoYXQgYSB1c2VyIG9yIHJvbGUgc2Vzc2lvbiBjYW4gYWNjZXNzLlxuICAgKi9cbiAgbGlzdFRva2VuS2V5czoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIktleUluZm9zXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFVzZXIgSW5mb1xuICAgKiBAZGVzY3JpcHRpb24gVXNlciBJbmZvXG4gICAqXG4gICAqIFJldHJpZXZlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCB1c2VyLlxuICAgKi9cbiAgYWJvdXRNZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlVzZXJJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYXRlIFJlc2V0IFZlcmlmaWVkIEVtYWlsIEZsb3dcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIFJlc2V0IFZlcmlmaWVkIEVtYWlsIEZsb3dcbiAgICovXG4gIHVzZXJSZXNldEVtYWlsSW5pdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbWFpbFJlc2V0UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtYWlsT3RwUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRmluYWxpemUgYSBSZXNldCBWZXJpZmllZCBFbWFpbCBGbG93XG4gICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSBhIFJlc2V0IFZlcmlmaWVkIEVtYWlsIEZsb3dcbiAgICovXG4gIHVzZXJSZXNldEVtYWlsQ29tcGxldGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1haWxPdHBBbnN3ZXJcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBvdXRzdGFuZGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0c1xuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBvdXRzdGFuZGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0c1xuICAgKi9cbiAgdXNlckV4cG9ydExpc3Q6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBwcm92aWRlZCwgdGhlIHVzZXItaWQgd2hvc2UgdXNlci1leHBvcnQgcmVxdWVzdHMgdG8gbGlzdC4gRGVmYXVsdHMgdG8gdGhlXG4gICAgICAgICAqIGN1cnJlbnQgdXNlci4gIE9ubHkgdGhlIG9yZyBvd25lciBtYXkgbGlzdCByZXF1ZXN0cyBmb3IgYW5vdGhlciB1c2VyLlxuICAgICAgICAgKiBAZXhhbXBsZSBVc2VyIzgwNmM5NTQ0LWYxZmEtNGJhZC04ZDRkLTEwOTdhMTg0NDcyNlxuICAgICAgICAgKi9cbiAgICAgICAgdXNlcl9pZD86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgcHJvdmlkZWQsIHRoZSBrZXktaWQgZm9yIHdoaWNoIHRvIGxpc3QgYW4gZXhpc3RpbmcgdXNlci1leHBvcnQgcmVxdWVzdC5cbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzB4M2M0ZDkwQ2M1QWYxNjQ0QzNBM0IwMTNCYWE1NDg4OTk3MzgxRDdDOFxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRVc2VyRXhwb3J0TGlzdFJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYXRlIGEgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgYSB1c2VyLWV4cG9ydCByZXF1ZXN0XG4gICAqXG4gICAqIFRoaXMgc3RhcnRzIGEgZGVsYXkgKHdob3NlIGxlbmd0aCBpcyBkZXRlcm1pbmVkIGJ5IE9yZy13aWRlIHNldHRpbmdzKVxuICAgKiBiZWZvcmUgZXhwb3J0IGNhbiBiZSBjb21wbGV0ZWQsIGFuZCByZXR1cm5zIGEgdGlja2V0IHRoYXQgY2FuIGJlIHVzZWRcbiAgICogdG8gY29tcGxldGUgdGhlIGV4cG9ydCBvbmNlIHRoZSB0aW1lciBoYXMgZXhwaXJlZC5cbiAgICpcbiAgICogT25seSBvbmUgdXNlci1leHBvcnQgcmVxdWVzdCBjYW4gYmUgYWN0aXZlIGZvciBhIGdpdmVuIGtleS4gSWYgdGhlcmVcbiAgICogaXMgYWxyZWFkeSBhbiBhY3RpdmUgZXhwb3J0LCB0aGlzIGVuZHBvaW50IHdpbGwgcmV0dXJuIGFuIGVycm9yLiBUb1xuICAgKiBjcmVhdGUgYSBuZXcgcmVxdWVzdCwgZmlyc3QgZGVsZXRlIHRoZSBleGlzdGluZyBvbmUuXG4gICAqL1xuICB1c2VyRXhwb3J0SW5pdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VyRXhwb3J0SW5pdFJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVc2VyRXhwb3J0SW5pdFJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBEZWxldGUgYW4gZXhpc3RpbmcgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIGFuIGV4aXN0aW5nIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICovXG4gIHVzZXJFeHBvcnREZWxldGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeToge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBrZXktaWQgd2hvc2UgZXhwb3J0IHJlcXVlc3Qgc2hvdWxkIGJlIGRlbGV0ZWRcbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzB4M2M0ZDkwQ2M1QWYxNjQ0QzNBM0IwMTNCYWE1NDg4OTk3MzgxRDdDOFxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXItaWQgd2hvIG93bnMgdGhpcyByZXF1ZXN0LiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byB0aGUgY3VycmVudCB1c2VyLlxuICAgICAgICAgKiBPbmx5IHRoZSBvcmcgb3duZXIgbWF5IGRlbGV0ZSB1c2VyLWV4cG9ydCByZXF1ZXN0cyBmb3IgYW5vdGhlciB1c2VyLlxuICAgICAgICAgKiBAZXhhbXBsZSBVc2VyIzgwNmM5NTQ0LWYxZmEtNGJhZC04ZDRkLTEwOTdhMTg0NDcyNlxuICAgICAgICAgKi9cbiAgICAgICAgdXNlcl9pZD86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENvbXBsZXRlIGEgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGUgYSB1c2VyLWV4cG9ydCByZXF1ZXN0XG4gICAqXG4gICAqIFRoaXMgZW5kcG9pbnQgY2FuIGJlIGNhbGxlZCBvbmx5IGFmdGVyIGluaXRpYXRpbmcgYSB1c2VyLWV4cG9ydCByZXF1ZXN0IHZpYVxuICAgKiB0aGUgYHVzZXJfZXhwb3J0X2luaXRgIEFQSSwgYW5kIG9ubHkgd2l0aGluIHRoZSBzdWJzZXF1ZW50IGV4cG9ydCB3aW5kb3dcbiAgICogKGkuZS4sIGFmdGVyIHRoZSBleHBvcnQgZGVsYXkgaGFzIHBhc3NlZCBhbmQgYmVmb3JlIHRoZSByZXF1ZXN0IGhhcyBleHBpcmVkKS5cbiAgICpcbiAgICogVG8gY2hlY2sgb24gdGhlIHN0YXR1cyBvZiBhbiBleHBvcnQgcmVxdWVzdCwgc2VlIHRoZSBgdXNlcl9leHBvcnRfbGlzdGAgQVBJLlxuICAgKi9cbiAgdXNlckV4cG9ydENvbXBsZXRlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJFeHBvcnRDb21wbGV0ZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVc2VyRXhwb3J0Q29tcGxldGVSZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW5pdGlhdGUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXkuXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleS5cbiAgICpcbiAgICogSWYgYSBkaXNjb3ZlcmFibGUga2V5IGlzIHJlcXVlc3RlZCwgdXNlciB2ZXJpZmljYXRpb24gKFBJTikgaXMgcmVxdWlyZWQuXG4gICAqXG4gICAqIEdlbmVyYXRlcyBhIGNoYWxsZW5nZSB0aGF0IG11c3QgYmUgYW5zd2VyZWQgdG8gcHJvdmUgb3duZXJzaGlwIG9mIGEga2V5LlxuICAgKi9cbiAgdXNlclJlZ2lzdGVyRmlkb0luaXQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRmlkb0NyZWF0ZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJGaWRvQ3JlYXRlQ2hhbGxlbmdlUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEZpbmFsaXplIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgKlxuICAgKiBBY2NlcHRzIHRoZSByZXNwb25zZSB0byB0aGUgY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCB0byB0aGlzIGVuZHBvaW50LlxuICAgKi9cbiAgdXNlclJlZ2lzdGVyRmlkb0NvbXBsZXRlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZpZG9DcmVhdGVDaGFsbGVuZ2VBbnN3ZXJcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJGaWRvUmVnaXN0ZXJSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBEZWxldGUgRklETyBrZXlcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBGSURPIGtleVxuICAgKlxuICAgKiBEZWxldGVzIGEgRklETyBrZXkgZnJvbSB0aGUgdXNlcidzIGFjY291bnQgKGlmIHRoZSBrZXkgaXMgbm90IHRoZSBzb2xlIE1GQSBmYWN0b3IpLiBNRkEgaXMgYWx3YXlzIHJlcXVpcmVkLlxuICAgKi9cbiAgdXNlckRlbGV0ZUZpZG86IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBGaWRvS2V5XG4gICAgICAgICAqIEBleGFtcGxlIEZpZG9LZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBmaWRvX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1wdHlcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYWxpemUgVE9UUCBSZXNldFxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZSBUT1RQIFJlc2V0XG4gICAqXG4gICAqIENyZWF0ZXMgYSBuZXcgVE9UUCBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIHRoYXQgdGhlIG5ldyBUT1RQXG4gICAqIHdhcyBzdWNjZXNzZnVsbHkgaW1wb3J0ZWQgaW50byBhbiBhdXRoZW50aWNhdG9yIGFwcC5cbiAgICpcbiAgICogVGhpcyBvcGVyYXRpb24gaXMgYWxsb3dlZCBpZiBFSVRIRVJcbiAgICogLSB0aGUgdXNlciBhY2NvdW50IGlzIG5vdCB5ZXQgaW5pdGlhbGl6ZWQgYW5kIG5vIFRPVFAgaXMgYWxyZWFkeSBzZXQsIE9SXG4gICAqIC0gdGhlIHVzZXIgaGFzIG5vdCBjb25maWd1cmVkIGFueSBhdXRoIGZhY3RvcnM7XG4gICAqIG90aGVyd2lzZSwgTUZBIGlzIHJlcXVpcmVkLlxuICAgKi9cbiAgdXNlclJlc2V0VG90cEluaXQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk/OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRvdHBSZXNldFJlcXVlc3RcIl0gfCBudWxsO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVG90cEluZm9cIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIERlbGV0ZSBUT1RQXG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgVE9UUFxuICAgKlxuICAgKiBEZWxldGVzIFRPVFAgZnJvbSB0aGUgdXNlcidzIGFjY291bnQgKGlmIFRPVFAgaXMgbm90IHRoZSBzb2xlIE1GQSBmYWN0b3IpLiBNRkEgaXMgYWx3YXlzIHJlcXVpcmVkLlxuICAgKi9cbiAgdXNlckRlbGV0ZVRvdHA6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1wdHlcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEZpbmFsaXplIHJlc2V0dGluZyBUT1RQXG4gICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgKlxuICAgKiBDaGVja3MgaWYgdGhlIHJlc3BvbnNlIGNvbnRhaW5zIHRoZSBjb3JyZWN0IFRPVFAgY29kZSBjb3JyZXNwb25kaW5nIHRvIHRoZVxuICAgKiBjaGFsbGVuZ2UgZ2VuZXJhdGVkIGJ5IHRoZSBQT1NUIG1ldGhvZCBvZiB0aGlzIGVuZHBvaW50LlxuICAgKi9cbiAgdXNlclJlc2V0VG90cENvbXBsZXRlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRvdHBDaGFsbGVuZ2VBbnN3ZXJcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJUb3RwUmVnaXN0ZXJSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBWZXJpZnkgVE9UUFxuICAgKiBAZGVzY3JpcHRpb24gVmVyaWZ5IFRPVFBcbiAgICpcbiAgICogQ2hlY2tzIGlmIGEgZ2l2ZW4gY29kZSBtYXRjaGVzIHRoZSBjdXJyZW50IFRPVFAgY29kZSBmb3IgdGhlIGN1cnJlbnQgdXNlci5cbiAgICogRXJyb3JzIHdpdGggNDAzIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIG5vdCBzZXQgdXAgVE9UUCBvciB0aGUgY29kZSBmYWlscyB2ZXJpZmljYXRpb24uXG4gICAqL1xuICB1c2VyVmVyaWZ5VG90cDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb3RwQXBwcm92ZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCB1c2VycyBpbiBvcmdhbml6YXRpb25cbiAgICogQGRlc2NyaXB0aW9uIExpc3QgdXNlcnMgaW4gb3JnYW5pemF0aW9uXG4gICAqXG4gICAqIElmIGEgcXVlcnkgaXMgZGVmaW5lZCwgdGhlIHJlc3VsdCB3aWxsIGNvbnRhaW4gb25seSB0aGUgdXNlcnMgd2hvc2UgbmFtZSBvclxuICAgKiBlbWFpbCBjb250YWluIHRoZSBxdWVyeSBzdHJpbmcuIE5PVEUgdGhhdCBpZiBwYWdpbmF0aW9uIGlzIHVzZWQgYW5kIGEgcGFnZVxuICAgKiBsaW1pdCBpcyBzZXQsIHRoZSByZXR1cm5lZCByZXN1bHQgc2V0IG1heSBjb250YWluIEZFV0VSIGVsZW1lbnRzIHRoYW4gdGhlXG4gICAqIHJlcXVlc3RlZCBwYWdlIGxpbWl0LlxuICAgKi9cbiAgbGlzdFVzZXJzSW5Pcmc6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIHF1ZXJ5IHN0cmluZy4gSWYgZGVmaW5lZCwgYWxsIHJldHVybmVkIHVzZXJzIHdpbGwgY29udGFpbiB0aGlzIHN0cmluZyBpbiB0aGVpciBuYW1lIG9yIGVtYWlsLiAqL1xuICAgICAgICBxPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBNZW1iZXJzaGlwIHJvbGVzLiBJZiBkZWZpbmVkLCBvbmx5IHVzZXJzIHdpdGggb25lIG9mIHRoZXNlIHJvbGVzIGluIHRoZSBvcmcgYXJlIHJldHVybmVkLCBncm91cGVkIGJ5IHJvbGUgaW4gZGVzY2VuZGluZyByb2xlIG9yZGVyIChvd25lcnMgZmlyc3QsIGFsaWVucyBsYXN0KS4gKi9cbiAgICAgICAgbWVtYmVyc2hpcD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXVtdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRHZXRVc2Vyc0luT3JnUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQWRkIGEgdGhpcmQtcGFydHkgdXNlciB0byB0aGUgb3JnXG4gICAqIEBkZXNjcmlwdGlvbiBBZGQgYSB0aGlyZC1wYXJ0eSB1c2VyIHRvIHRoZSBvcmdcbiAgICovXG4gIGNyZWF0ZU9pZGNVc2VyOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFkZFRoaXJkUGFydHlVc2VyUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkFkZFRoaXJkUGFydHlVc2VyUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IHVzZXIgYnkgZW1haWwuXG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgdXNlciBieSBlbWFpbC5cbiAgICpcbiAgICogVGhlIHNlYXJjaCBpbmNsdWRlcyBhbGwgdXNlcnMgYW5kIHRoZWlyIHRoaXJkLXBhcnR5IGlkZW50aXRpZXMuXG4gICAqL1xuICBnZXRVc2VySW5PcmdCeUVtYWlsOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBhc3NvY2lhdGVkIHdpdGggdGhlIHVzZXIuICovXG4gICAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJHZXRVc2VyQnlFbWFpbFJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJlbW92ZSBhIHRoaXJkLXBhcnR5IHVzZXIgZnJvbSB0aGUgb3JnXG4gICAqIEBkZXNjcmlwdGlvbiBSZW1vdmUgYSB0aGlyZC1wYXJ0eSB1c2VyIGZyb20gdGhlIG9yZ1xuICAgKi9cbiAgZGVsZXRlT2lkY1VzZXI6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgcmV2b2tlX3JvbGVfc2Vzc2lvbnNfdGhleV9jcmVhdGVkPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9pZGNJZGVudGl0eVwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgYSB1c2VyIGJ5IHRoZWlyIE9JREMgaWRlbnRpdHlcbiAgICogQGRlc2NyaXB0aW9uIEdldCBhIHVzZXIgYnkgdGhlaXIgT0lEQyBpZGVudGl0eVxuICAgKlxuICAgKiBSZXRyaWV2ZXMgYSB1c2VyIGluIHRoZSBvcmdhbml6YXRpb24gYnkgdGhlaXIgT0lEQyBpc3N1ZXIgYW5kIHN1YmplY3QuXG4gICAqL1xuICBnZXRVc2VySW5PcmdCeU9pZGM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIE9JREMgaXNzdWVyLiAqL1xuICAgICAgICBpc3M6IHN0cmluZztcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgT0lEQyBzdWJqZWN0LiAqL1xuICAgICAgICBzdWI6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkdldFVzZXJCeU9pZGNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbml0aWFsaXplIE1GQSByZXNldCBmb3IgdXNlclxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZSBNRkEgcmVzZXQgZm9yIHVzZXJcbiAgICovXG4gIHJlc2V0TWVtYmVyTWZhOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVJlc2V0UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDb21wbGV0ZSBNRkEgcmVzZXQgZm9yIHVzZXJcbiAgICogQGRlc2NyaXB0aW9uIENvbXBsZXRlIE1GQSByZXNldCBmb3IgdXNlclxuICAgKi9cbiAgY29tcGxldGVSZXNldE1lbWJlck1mYToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb21wbGV0ZU1mYVJlc2V0UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgdXNlciBieSBpZFxuICAgKiBAZGVzY3JpcHRpb24gR2V0IHVzZXIgYnkgaWRcbiAgICpcbiAgICogSWYgdGhlIHJlcXVlc3RpbmcgdXNlciBpcyBhbiBvd25lciBvZiB0aGUgb3JnLCB0aGUgcmVzcG9uc2UgYWRkaXRpb25hbGx5XG4gICAqIGluY2x1ZGVzIHRoZSB1c2VyJ3MgT0lEQyBpZGVudGl0aWVzLlxuICAgKi9cbiAgZ2V0VXNlckluT3JnOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIFVzZXJcbiAgICAgICAgICogQGV4YW1wbGUgVXNlciMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlVzZXJJbk9yZ0luZm9XaXRoSWRlbnRpdHlcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUmVtb3ZlIGEgdXNlciBmcm9tIHRoZSBvcmdcbiAgICogQGRlc2NyaXB0aW9uIFJlbW92ZSBhIHVzZXIgZnJvbSB0aGUgb3JnXG4gICAqL1xuICBkZWxldGVVc2VyOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIHJldm9rZV9yb2xlX3Nlc3Npb25zX3RoZXlfY3JlYXRlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBVc2VyXG4gICAgICAgICAqIEBleGFtcGxlIFVzZXIjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1wdHlcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVXBkYXRlIGEgdXNlcidzIG1lbWJlcnNoaXAgaW4gdGhlIG9yZ1xuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIGEgdXNlcidzIG1lbWJlcnNoaXAgaW4gdGhlIG9yZ1xuICAgKlxuICAgKiBFbmFibGUvZGlzYWJsZSBhbm90aGVyIHVzZXIgaW4gdGhlIG9yZywgb3IgY2hhbmdlIHRoZWlyIG1lbWJlcnNoaXAgcm9sZS5cbiAgICovXG4gIHVwZGF0ZVVzZXJNZW1iZXJzaGlwOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIFVzZXJcbiAgICAgICAgICogQGV4YW1wbGUgVXNlciMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVcGRhdGVVc2VyTWVtYmVyc2hpcFJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVc2VySW5PcmdJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYXRlIExvZ2luIHdpdGggUGFzc2tleVxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgTG9naW4gd2l0aCBQYXNza2V5XG4gICAqXG4gICAqIFRoZSByZXNwb25zZSBjb250YWlucyBhIEZJRE8gY2hhbGxlbmdlIHRoYXQgdGhlIGNsaWVudCBtdXN0IGFuc3dlciB3aXRoIGFueSBvZiB0aGVpclxuICAgKiBkaXNjb3ZlcmFibGUgY3JlZGVudGlhbHMuICBUaGUgYW5zd2VyIHNob3VsZCBiZSBzdWJtaXR0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBQQVRDSCByZXF1ZXN0LlxuICAgKi9cbiAgcGFzc2tleUF1dGhJbml0OiB7XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTG9naW5SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFzc2tleUFzc2VydENoYWxsZW5nZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDb21wbGV0ZSBMb2dpbiB3aXRoIFBhc3NrZXlcbiAgICogQGRlc2NyaXB0aW9uIENvbXBsZXRlIExvZ2luIHdpdGggUGFzc2tleVxuICAgKlxuICAgKiBUaGUgcmVxdWVzdCBzaG91bGQgY29udGFpbiBhbiBhbnN3ZXIgdG8gdGhlIGNoYWxsZW5nZSBpc3N1ZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgUE9TVCByZXF1ZXN0LlxuICAgKiBUaGUgY2hhbGxlbmdlIG1heSBiZSBhbnN3ZXJlZCB3aXRoIGFueSBvZiB0aGUgdXNlcidzIGRpc2NvdmVyYWJsZSBjcmVkZW50aWFsczsgaWYgdGhlIGNyZWRlbnRpYWxcbiAgICogaW5jbHVkZWQgaW4gdGhlIGFuc3dlciBpcyByZWdpc3RlcmVkIHdpdGggYSB1c2VyIGFuZCBhbiBvcmdhbml6YXRpb24sIHRoZSByZXNwb25zZSB3aWxsIGNvbnRhaW5cbiAgICogYSBDdWJlU2lnbmVyIHNlc3Npb24gKHdpdGggdGhlIHBhcmFtZXRlcnMgc3VwcGxpZWQgaW4gdGhlIHByZXZpb3VzIFBPU1QgcmVxdWVzdCkgZm9yIHRoYXQgdXNlclxuICAgKiBpbiB0aGF0IG9yZ2FuaXphdGlvbi5cbiAgICovXG4gIHBhc3NrZXlBdXRoQ29tcGxldGU6IHtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQYXNza2V5QXNzZXJ0QW5zd2VyXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYXRlIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgKlxuICAgKiBERVBSRUNBVEVELiBVc2UgYFBPU1QgL3YwL29yZy97b3JnX2lkfS91c2VyL21lL2ZpZG9gIGluc3RlYWQuXG4gICAqXG4gICAqIEdlbmVyYXRlcyBhIGNoYWxsZW5nZSB0aGF0IG11c3QgYmUgYW5zd2VyZWQgdG8gcHJvdmUgb3duZXJzaGlwIG9mIGEga2V5XG4gICAqL1xuICByZWdpc3RlckZpZG9Jbml0TGVnYWN5OiB7XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRmlkb0NyZWF0ZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJGaWRvQ3JlYXRlQ2hhbGxlbmdlUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEZpbmFsaXplIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgKlxuICAgKiBERVBSRUNBVEVELiBVc2UgYFBBVENIIC92MC9vcmcve29yZ19pZH0vdXNlci9tZS9maWRvYCBpbnN0ZWFkLlxuICAgKlxuICAgKiBBY2NlcHRzIHRoZSByZXNwb25zZSB0byB0aGUgY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCB0byB0aGlzIGVuZHBvaW50LlxuICAgKi9cbiAgcmVnaXN0ZXJGaWRvQ29tcGxldGVMZWdhY3k6IHtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJGaWRvQ3JlYXRlQ2hhbGxlbmdlQW5zd2VyXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYWxpemUgVE9UUCBSZXNldFxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZSBUT1RQIFJlc2V0XG4gICAqXG4gICAqIERFUFJFQ0FURUQuIFVzZSBgUE9TVCAvdjAvb3JnL3tvcmdfaWR9L3VzZXIvbWUvdG90cGAgaW5zdGVhZC5cbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyBUT1RQIGNoYWxsZW5nZSB0aGF0IG11c3QgYmUgYW5zd2VyZWQgdG8gcHJvdmUgdGhhdCB0aGUgbmV3IFRPVFBcbiAgICogd2FzIHN1Y2Nlc3NmdWxseSBpbXBvcnRlZCBpbnRvIGFuIGF1dGhlbnRpY2F0b3IgYXBwLlxuICAgKlxuICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBhbGxvd2VkIGlmIEVJVEhFUlxuICAgKiAtIHRoZSB1c2VyIGFjY291bnQgaXMgbm90IHlldCBpbml0aWFsaXplZCBhbmQgbm8gVE9UUCBpcyBhbHJlYWR5IHNldCwgT1JcbiAgICogLSB0aGUgdXNlciBoYXMgbm90IGNvbmZpZ3VyZWQgYW55IGF1dGggZmFjdG9ycztcbiAgICogb3RoZXJ3aXNlLCBNRkEgaXMgcmVxdWlyZWQuXG4gICAqL1xuICByZXNldFRvdHBJbml0TGVnYWN5OiB7XG4gICAgcmVxdWVzdEJvZHk/OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRvdHBSZXNldFJlcXVlc3RcIl0gfCBudWxsO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVG90cEluZm9cIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEZpbmFsaXplIHJlc2V0dGluZyBUT1RQXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgKlxuICAgKiBERVBSRUNBVEVELiBVc2UgYFBBVENIIC92MC9vcmcve29yZ19pZH0vdXNlci9tZS90b3RwYCBpbnN0ZWFkLlxuICAgKlxuICAgKiBDaGVja3MgaWYgdGhlIHJlc3BvbnNlIGNvbnRhaW5zIHRoZSBjb3JyZWN0IFRPVFAgY29kZSBjb3JyZXNwb25kaW5nIHRvIHRoZVxuICAgKiBjaGFsbGVuZ2UgZ2VuZXJhdGVkIGJ5IHRoZSBQT1NUIG1ldGhvZCBvZiB0aGlzIGVuZHBvaW50LlxuICAgKi9cbiAgcmVzZXRUb3RwQ29tcGxldGVMZWdhY3k6IHtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb3RwQ2hhbGxlbmdlQW5zd2VyXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFZlcmlmeSBUT1RQXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEBkZXNjcmlwdGlvbiBWZXJpZnkgVE9UUFxuICAgKlxuICAgKiBERVBSRUNBVEVELiBVc2UgYFBPU1QgL3YwL29yZy97b3JnX2lkfS91c2VyL21lL3RvdHAvdmVyaWZ5YCBpbnN0ZWFkLlxuICAgKlxuICAgKiBDaGVja3MgaWYgYSBnaXZlbiBjb2RlIG1hdGNoZXMgdGhlIGN1cnJlbnQgVE9UUCBjb2RlIGZvciB0aGUgY3VycmVudCB1c2VyLlxuICAgKiBFcnJvcnMgd2l0aCA0MDMgaWYgdGhlIGN1cnJlbnQgdXNlciBoYXMgbm90IHNldCB1cCBUT1RQIG9yIHRoZSBjb2RlIGZhaWxzIHZlcmlmaWNhdGlvbi5cbiAgICovXG4gIHZlcmlmeVRvdHBMZWdhY3k6IHtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb3RwQXBwcm92ZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUmV0cmlldmVzIGFsbCB0aGUgb3JncyB0aGUgdXNlciBpcyBhIHBhcnQgb2ZcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBhbGwgdGhlIG9yZ3MgdGhlIHVzZXIgaXMgYSBwYXJ0IG9mXG4gICAqL1xuICB1c2VyT3Jnczoge1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVXNlck9yZ3NSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIFJhdyBCbG9iXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIFJhdyBCbG9iXG4gICAqXG4gICAqIFNpZ25zIGFuIGFyYml0cmFyeSBibG9iIHdpdGggYSBnaXZlbiBrZXkuXG4gICAqXG4gICAqIC0gRUNEU0Egc2lnbmF0dXJlcyBhcmUgc2VyaWFsaXplZCBhcyBiaWctZW5kaWFuIHIgYW5kIHMgcGx1cyByZWNvdmVyeS1pZFxuICAgKiBieXRlIHYsIHdoaWNoIGNhbiBpbiBnZW5lcmFsIHRha2UgYW55IG9mIHRoZSB2YWx1ZXMgMCwgMSwgMiwgb3IgMy5cbiAgICpcbiAgICogLSBFZERTQSBzaWduYXR1cmVzIGFyZSBzZXJpYWxpemVkIGluIHRoZSBzdGFuZGFyZCBmb3JtYXQuXG4gICAqXG4gICAqIC0gQkxTIHNpZ25hdHVyZXMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdGhlIGJsb2Itc2lnbiBlbmRwb2ludC5cbiAgICovXG4gIGJsb2JTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIEtleVxuICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCbG9iU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJlY29yZCBoZWFydGJlYXRcbiAgICogQGRlc2NyaXB0aW9uIFJlY29yZCBoZWFydGJlYXRcbiAgICpcbiAgICogVGhpcyBlbmRwb2ludCBpcyBjYWxsZWQgYnkgdGhlIGN1YmUzc2lnbmVyIHByb3h5IHRvIHJlY29yZCB2YXJpb3VzIG1ldHJpY3MgdG8gQ2xvdWRXYXRjaC5cbiAgICovXG4gIGN1YmUzc2lnbmVySGVhcnRiZWF0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5Pzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJIZWFydGJlYXRSZXF1ZXN0XCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIEVWTSBUcmFuc2FjdGlvblxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBFVk0gVHJhbnNhY3Rpb25cbiAgICpcbiAgICogU2lnbnMgYW4gRXRoZXJldW0gKGFuZCBvdGhlciBFVk0pIHRyYW5zYWN0aW9uIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgKiBSZXR1cm5zIGFuIFJMUC1lbmNvZGVkIHRyYW5zYWN0aW9uIHdpdGggRUlQLTE1NSBzaWduYXR1cmUuXG4gICAqXG4gICAqIFRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZSBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgKi9cbiAgZXRoMVNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgZXRoZXJldW0gYWRkcmVzcyBvZiB0aGUgc2VjcCBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgMHg0OTAxMWFkYkNDM2JDOWMwMzA3QkIwN0YzN0RkYTFhMWE5YzY5ZDJFXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFdGgxU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFdGgxU2lnblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIFZhbGlkYXRvciBSZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIFZhbGlkYXRvciBSZXF1ZXN0XG4gICAqXG4gICAqIFNpZ25zIGFuIGV0aDIgdmFsaWRhdG9yIHJlcXVlc3Qgd2l0aCBhIGdpdmVuIEJMUyBrZXkuXG4gICAqXG4gICAqIFRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZSBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgKi9cbiAgZXRoMlNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgdmFsaWRhdG9yIChCTFMpIHB1YmxpYyBrZXkgd2l0aCAweCBwcmVmaXhcbiAgICAgICAgICogQGV4YW1wbGUgMHg5NzAwZmJiOGM5MDY5NDI0NDJjMmE1YjNhZDc0OThmMjdhZWRkYTI1Mzc4NmE2ZmJhYThmZWY0N2ZiN2FmMjM0ZTUwY2YyY2NlODE1YTU1MzA4Nzk5MmFlNTY1ZDQ4ZGFcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkV0aDJTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBTdGFrZSBEZXBvc2l0XG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIFN0YWtlIERlcG9zaXRcbiAgICpcbiAgICogU2lnbnMgYSBkZXBvc2l0IHRyYW5zYWN0aW9uIHdpdGggYSBgdmFsaWRhdG9yX2tleWAuIElmIGB2YWxpZGF0b3Jfa2V5YCBpcyBzZXQgdG8gYSBwcmVnZW5lcmF0ZWQga2V5LCB3ZSB1c2UgdGhlXG4gICAqIHByb3ZpZGVkIHZhbGlkYXRvciBrZXkuIE90aGVyd2lzZSwgd2UgZ2VuZXJhdGUgYSBuZXcgQkxTIGtleS5cbiAgICpcbiAgICogV2hlbiB1c2luZyBhIHByZWdlbmVyYXRlZCBrZXksIHRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZVxuICAgKiBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgKi9cbiAgc3Rha2U6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3Rha2VSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU3Rha2VSZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBVbnN0YWtlIFJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gVW5zdGFrZSBSZXF1ZXN0XG4gICAqXG4gICAqIEhhbmRsZSB1bnN0YWtpbmcgcmVxdWVzdCwgcHJvZHVjaW5nIGEgc2lnbmVkIHZvbHVudGFyeSBleGl0IG1lc3NhZ2VcbiAgICogdGhhdCBjYW4gYmUgcG9zdGVkIGRpcmVjdGx5IHRvIHRoZSBCZWFjb24gY2hhaW4uXG4gICAqXG4gICAqIFRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZSBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgKi9cbiAgdW5zdGFrZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCB2YWxpZGF0b3IgKEJMUykgcHVibGljIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSAweGE5OWE3NmVkNzc5NmY3YmUyMmQ1YjdlODVkZWViN2M1Njc3ZTg4ZTUxMWUwYjMzNzYxOGY4YzRlYjYxMzQ5YjRiZjJkMTUzZjY0OWY3YjUzMzU5ZmU4Yjk0YTM4ZTQ0Y1xuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVW5zdGFrZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVbnN0YWtlUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJlZnJlc2ggU2lnbmVyIFNlc3Npb25cbiAgICogQGRlc2NyaXB0aW9uIFJlZnJlc2ggU2lnbmVyIFNlc3Npb25cbiAgICovXG4gIHNpZ25lclNlc3Npb25SZWZyZXNoOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBvcmdhbml6YXRpb24gb3duaW5nIHRoZSBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXV0aERhdGFcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJOZXdTZXNzaW9uUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuIl19