@cubist-labs/cubesigner-sdk 0.1.26 → 0.1.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -33
- package/dist/src/ethers/index.d.ts +25 -5
- package/dist/src/ethers/index.js +58 -16
- package/dist/src/fido.d.ts +76 -0
- package/dist/src/fido.js +148 -0
- package/dist/src/index.d.ts +148 -35
- package/dist/src/index.js +320 -53
- package/dist/src/key.d.ts +64 -8
- package/dist/src/key.js +91 -19
- package/dist/src/org.d.ts +98 -9
- package/dist/src/org.js +144 -29
- package/dist/src/paginator.d.ts +76 -0
- package/dist/src/paginator.js +99 -0
- package/dist/src/role.d.ts +20 -8
- package/dist/src/role.js +7 -5
- package/dist/src/schema.d.ts +2395 -393
- package/dist/src/schema.js +1 -1
- package/dist/src/session/cognito_manager.d.ts +59 -0
- package/dist/src/session/cognito_manager.js +111 -0
- package/dist/src/session/session_manager.d.ts +15 -0
- package/dist/src/session/session_manager.js +21 -2
- package/dist/src/session/session_storage.js +1 -1
- package/dist/src/session/signer_session_manager.d.ts +24 -12
- package/dist/src/session/signer_session_manager.js +45 -20
- package/dist/src/signer_session.d.ts +136 -38
- package/dist/src/signer_session.js +187 -80
- package/dist/src/util.d.ts +20 -0
- package/dist/src/util.js +31 -2
- package/package.json +12 -7
- package/src/ethers/index.ts +88 -16
- package/src/fido.ts +166 -0
- package/src/index.ts +366 -77
- package/src/key.ts +112 -16
- package/src/org.ts +200 -37
- package/src/paginator.ts +122 -0
- package/src/role.ts +24 -11
- package/src/schema.ts +2458 -449
- package/src/session/{management_session_manager.ts → cognito_manager.ts} +13 -15
- package/src/session/session_manager.ts +25 -1
- package/src/session/session_storage.ts +1 -1
- package/src/session/signer_session_manager.ts +57 -27
- package/src/signer_session.ts +266 -89
- package/src/util.ts +41 -0
- package/src/session/oidc_session_manager.ts +0 -193
package/dist/src/schema.js
CHANGED
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* Do not make direct changes to the file.
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGZpbGUgd2FzIGF1dG8tZ2VuZXJhdGVkIGJ5IG9wZW5hcGktdHlwZXNjcmlwdC5cbiAqIERvIG5vdCBtYWtlIGRpcmVjdCBjaGFuZ2VzIHRvIHRoZSBmaWxlLlxuICovXG5cblxuLyoqIE9uZU9mIHR5cGUgaGVscGVycyAqL1xudHlwZSBXaXRob3V0PFQsIFU+ID0geyBbUCBpbiBFeGNsdWRlPGtleW9mIFQsIGtleW9mIFU+XT86IG5ldmVyIH07XG50eXBlIFhPUjxULCBVPiA9IChUIHwgVSkgZXh0ZW5kcyBvYmplY3QgPyAoV2l0aG91dDxULCBVPiAmIFUpIHwgKFdpdGhvdXQ8VSwgVD4gJiBUKSA6IFQgfCBVO1xudHlwZSBPbmVPZjxUIGV4dGVuZHMgYW55W10+ID0gVCBleHRlbmRzIFtpbmZlciBPbmx5XSA/IE9ubHkgOiBUIGV4dGVuZHMgW2luZmVyIEEsIGluZmVyIEIsIC4uLmluZmVyIFJlc3RdID8gT25lT2Y8W1hPUjxBLCBCPiwgLi4uUmVzdF0+IDogbmV2ZXI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgcGF0aHMge1xuICBcIi92MC9hYm91dF9tZVwiOiB7XG4gICAgLyoqXG4gICAgICogVXNlciBJbmZvXG4gICAgICogQGRlc2NyaXB0aW9uIFVzZXIgSW5mb1xuICAgICAqXG4gICAgICogUmV0cmlldmVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiYWJvdXRNZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgT3JnXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBPcmdcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBpbmZvcm1hdGlvbiBhYm91dCBhbiBvcmdhbml6YXRpb24uXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0T3JnXCJdO1xuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBPcmdcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIE9yZ1xuICAgICAqXG4gICAgICogVXBkYXRlIG9yZ2FuaXphdGlvbiBhdHRyaWJ1dGVzIChlbmFibGVkIGZsYWcsIG5hbWUsIGFuZCBwb2xpY2llcykuXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJ1cGRhdGVPcmdcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9idGMvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBCaXRjb2luIFRyYW5zYWN0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gQml0Y29pbiBUcmFuc2FjdGlvblxuICAgICAqXG4gICAgICogU2lnbnMgYSBCaXRjb2luIHRyYW5zYWN0aW9uIHdpdGggYSBnaXZlbiBrZXkuXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImJ0Y1NpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pbXBvcnRfa2V5XCI6IHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgS2V5LUltcG9ydCBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIEtleS1JbXBvcnQgS2V5XG4gICAgICpcbiAgICAgKiBHZW5lcmF0ZSBhbiBlcGhlbWVyYWwga2V5IHRoYXQgYSBjbGllbnQgY2FuIHVzZSBmb3Iga2V5LWltcG9ydCBlbmNyeXB0aW9uLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImNyZWF0ZUtleUltcG9ydEtleVwiXTtcbiAgICAvKipcbiAgICAgKiBJbXBvcnQgS2V5XG4gICAgICogQGRlc2NyaXB0aW9uIEltcG9ydCBLZXlcbiAgICAgKlxuICAgICAqIFNlY3VyZWx5IGltcG9ydHMgYW4gZXhpc3Rpbmcga2V5IHVzaW5nIGEgcHJldmlvdXNseSBnZW5lcmF0ZWQga2V5LWltcG9ydCBrZXkuXG4gICAgICovXG4gICAgcHV0OiBvcGVyYXRpb25zW1wiaW1wb3J0S2V5XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vaW52aXRlXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbnZpdGUgVXNlclxuICAgICAqIEBkZXNjcmlwdGlvbiBJbnZpdGUgVXNlclxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhIG5ldyB1c2VyIGluIGFuIGV4aXN0aW5nIG9yZyBhbmQgc2VuZHMgdGhhdCB1c2VyIGFuIGludml0ZSBlbWFpbC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiaW52aXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0va2V5c1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBLZXlzXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgS2V5c1xuICAgICAqXG4gICAgICogR2V0cyB0aGUgbGlzdCBvZiBvd25lZCBrZXlzIGluIGEgZ2l2ZW4gb3JnLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RLZXlzSW5PcmdcIl07XG4gICAgLyoqXG4gICAgICogSW1wb3J0IEtleSAoRGVwcmVjYXRlZClcbiAgICAgKiBAZGVzY3JpcHRpb24gSW1wb3J0IEtleSAoRGVwcmVjYXRlZClcbiAgICAgKlxuICAgICAqIFNlY3VyZWx5IGltcG9ydHMgYW4gZXhpc3Rpbmcga2V5LiBUaGlzIEFQSSBpcyBkZXByZWNhdGVkOyBwbGVhc2UgdXNlIHRoZSBuZXcgdmVyc2lvbi5cbiAgICAgKi9cbiAgICBwdXQ6IG9wZXJhdGlvbnNbXCJpbXBvcnRLZXlMZWdhY3lcIl07XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIEtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgS2V5XG4gICAgICpcbiAgICAgKiBDcmVhdGVzIG9uZSBvciBtb3JlIG5ldyBrZXlzIG9mIHRoZSBzcGVjaWZpZWQgdHlwZSAoQkxTIG9yIFNlY3ApLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVLZXlcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9rZXlzL2dldF9rZXlzXCI6IHtcbiAgICAvKipcbiAgICAgKiBMZWdhY3kgTGlzdCBLZXlzXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAZGVzY3JpcHRpb24gTGVnYWN5IExpc3QgS2V5c1xuICAgICAqXG4gICAgICogVGhpcyByb3V0ZSBpcyBkZXByZWNhdGVkLiBVc2UgYEdFVCAvdjAvb3JnLzxvcmdfaWQ+L2tleXM/PGtleV90eXBlPmBcbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wibGlzdEtleXNMZWdhY3lcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9rZXlzL3trZXlfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgS2V5XG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBLZXlcbiAgICAgKlxuICAgICAqIFJldHVybnMgdGhlIHByb3BlcnRpZXMgb2YgYSBrZXkuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0S2V5SW5PcmdcIl07XG4gICAgLyoqXG4gICAgICogVXBkYXRlIEtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgS2V5XG4gICAgICpcbiAgICAgKiBFbmFibGUgb3IgZGlzYWJsZSBhIGtleS4gIFRoZSB1c2VyIG11c3QgYmUgdGhlIG93bmVyIG9mIHRoZSBrZXkgb3Igb3JnYW5pemF0aW9uIHRvIHBlcmZvcm0gdGhpcyBhY3Rpb24uXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJ1cGRhdGVLZXlcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9tZmEve21mYV9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldHMgYSBQZW5kaW5nIE1GQSBSZXF1ZXN0XG4gICAgICogQGRlc2NyaXB0aW9uIEdldHMgYSBQZW5kaW5nIE1GQSBSZXF1ZXN0XG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgYW5kIHJldHVybnMgYSBwZW5kaW5nIE1GQSByZXF1ZXN0IGJ5IGl0cyBpZC5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJtZmFHZXRcIl07XG4gICAgLyoqXG4gICAgICogQXBwcm92ZSBhIFBlbmRpbmcgTUZBIFJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gQXBwcm92ZSBhIFBlbmRpbmcgTUZBIFJlcXVlc3RcbiAgICAgKlxuICAgICAqIEFkZHMgdGhlIGN1cnJlbnQgdXNlciBhcyBhbiBhcHByb3ZlciBvZiBhIHBlbmRpbmcgTUZBIHJlcXVlc3Qgb2YgdGhlIFtTdGF0dXM6OlJlcXVpcmVkQXBwcm92ZXJzXSBraW5kLlxuICAgICAqIElmIHRoZSByZXF1aXJlZCBudW1iZXIgb2YgYXBwcm92ZXJzIGlzIHJlYWNoZWQsIHRoZSBNRkEgcmVxdWVzdCBpcyBhcHByb3ZlZDtcbiAgICAgKiB0aGUgY29uZmlybWF0aW9uIHJlY2VpcHQgY2FuIGJlIHVzZWQgdG8gcmVzdW1lIHRoZSBvcmlnaW5hbCBIVFRQIHJlcXVlc3QuXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJtZmFBcHByb3ZlQ3NcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9tZmEve21mYV9pZH0vdG90cFwiOiB7XG4gICAgLyoqXG4gICAgICogQXBwcm92ZSBhIFRPVFAgTUZBIFJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gQXBwcm92ZSBhIFRPVFAgTUZBIFJlcXVlc3RcbiAgICAgKlxuICAgICAqIEFkZHMgYW4gYXBwcm92ZXIgdG8gYSBwZW5kaW5nIFRPVFAgTUZBIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBJZiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7XG4gICAgICogdGhlIGNvbmZpcm1hdGlvbiByZWNlaXB0IGNhbiBiZSB1c2VkIHRvIHJlc3VtZSB0aGUgb3JpZ2luYWwgSFRUUCByZXF1ZXN0LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wibWZhQXBwcm92ZVRvdHBcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9vaWRjXCI6IHtcbiAgICAvKipcbiAgICAgKiBMb2dpbiB3aXRoIE9JRENcbiAgICAgKiBAZGVzY3JpcHRpb24gTG9naW4gd2l0aCBPSURDXG4gICAgICpcbiAgICAgKiBFeGNoYW5nZSBhbiBPSURDIElEIHRva2VuIChwYXNzZWQgdmlhIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyKSBmb3IgYSBzaWduZXIgc2Vzc2lvblxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJvaWRjQXV0aFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzXCI6IHtcbiAgICAvKipcbiAgICAgKiBMaXN0IFJvbGVzXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgUm9sZXNcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBhbGwgcm9sZXMgaW4gYW4gb3JnYW5pemF0aW9uIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBpcyBhbGxvd2VkIHRvIGFjY2Vzcy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0Um9sZXNcIl07XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIFJvbGVcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFJvbGVcbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgcm9sZSBpbiBhbiBvcmdhbml6YXRpb24uIFVubGVzcyB0aGUgbG9nZ2VkLWluIHVzZXJcbiAgICAgKiBpcyB0aGUgb3duZXIsIHRoZXkgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgcm9sZS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiY3JlYXRlUm9sZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IFJvbGVcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IFJvbGVcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBpbmZvcm1hdGlvbiBhYm91dCBhIHJvbGUgaW4gYW4gb3JnYW5pemF0aW9uXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0Um9sZVwiXTtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgUm9sZVxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgUm9sZVxuICAgICAqXG4gICAgICogRGVsZXRlcyBhIHJvbGUgaW4gYW4gb3JnYW5pemF0aW9uLlxuICAgICAqIE9ubHkgb3JnYW5pemF0aW9uIG93bmVycyBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJkZWxldGVSb2xlXCJdO1xuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBSb2xlXG4gICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBSb2xlXG4gICAgICpcbiAgICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIGEgcm9sZS5cbiAgICAgKiBUaGUgdXNlciBtdXN0IGJlIGluIHRoZSByb2xlIG9yIGFuIG93bmVyIG9mIHRoZSBvcmdhbml6YXRpb24uXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJ1cGRhdGVSb2xlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L2FkZF9rZXlzXCI6IHtcbiAgICAvKipcbiAgICAgKiBBZGQgS2V5c1xuICAgICAqIEBkZXNjcmlwdGlvbiBBZGQgS2V5c1xuICAgICAqXG4gICAgICogQWRkcyBhIGxpc3Qgb2YgZXhpc3Rpbmcga2V5cyB0byBhbiBleGlzdGluZyByb2xlLlxuICAgICAqL1xuICAgIHB1dDogb3BlcmF0aW9uc1tcImFkZEtleXNUb1JvbGVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH0vYWRkX3VzZXIve3VzZXJfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBBZGQgVXNlclxuICAgICAqIEBkZXNjcmlwdGlvbiBBZGQgVXNlclxuICAgICAqXG4gICAgICogQWRkcyBhbiBleGlzdGluZyB1c2VyIHRvIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIGFkZCB1c2VycyB0byBhIHJvbGUuXG4gICAgICovXG4gICAgcHV0OiBvcGVyYXRpb25zW1wiYWRkVXNlclRvUm9sZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfS9rZXlzL3trZXlfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBSZW1vdmUgS2V5XG4gICAgICogQGRlc2NyaXB0aW9uIFJlbW92ZSBLZXlcbiAgICAgKlxuICAgICAqIFJlbW92ZXMgYSBnaXZlbiBrZXkgZnJvbSBhIHJvbGVcbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJyZW1vdmVLZXlGcm9tUm9sZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfS90b2tlbnNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgVG9rZW5zXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgVG9rZW5zXG4gICAgICpcbiAgICAgKiBSZXR1cm5zIGFsbCBhY2Nlc3MgdG9rZW5zIGZvciBhIGdpdmVuIHJvbGUuXG4gICAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIGNyZWF0ZSBhIHRva2VuIGZvciBpdC5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0Um9sZVRva2Vuc1wiXTtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgVG9rZW5cbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFRva2VuXG4gICAgICpcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGFjY2VzcyB0b2tlbiBmb3IgYSBnaXZlbiByb2xlICh0byBiZSB1c2VkIGFzIFwiQVBJIEtleVwiIGZvciBhbGwgc2lnbmluZyBhY3Rpb25zKS5cbiAgICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG93bmVycyBjYW4gY3JlYXRlIGEgdG9rZW4gZm9yIGl0LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVSb2xlVG9rZW5cIl07XG4gICAgLyoqXG4gICAgICogUmV2b2tlIEFsbCBUb2tlbnNcbiAgICAgKiBAZGVzY3JpcHRpb24gUmV2b2tlIEFsbCBUb2tlbnNcbiAgICAgKlxuICAgICAqIFJldm9rZXMgYWxsIGFjY2VzcyB0b2tlbnMgYXNzb2NpYXRlZCB3aXRoIGEgcm9sZS5cbiAgICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG93bmVycyBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJyZXZva2VBbGxSb2xlVG9rZW5zXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L3Rva2Vucy97c2Vzc2lvbl9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIFJldm9rZSBUb2tlblxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXZva2UgVG9rZW5cbiAgICAgKlxuICAgICAqIFJldm9rZXMgYW4gYWNjZXNzIHRva2VuIGFzc29jaWF0ZWQgd2l0aCBhIHJvbGUuXG4gICAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wicmV2b2tlUm9sZVRva2VuXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdG9rZW4va2V5c1wiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IFRva2VuLUFjY2Vzc2libGUgS2V5c1xuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgVG9rZW4tQWNjZXNzaWJsZSBLZXlzXG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGtleXMgdGhhdCB0aGUgcm9sZSB0b2tlbiBjYW4gYWNjZXNzLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RUb2tlbktleXNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS91c2Vyc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCB1c2VycyBpbiBvcmdhbml6YXRpb25cbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCB1c2VycyBpbiBvcmdhbml6YXRpb25cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0VXNlcnNJbk9yZ1wiXTtcbiAgICAvKipcbiAgICAgKiBBZGRzIGEgdGhpcmQtcGFydHkgdXNlciB0byB0aGUgb3JnXG4gICAgICogQGRlc2NyaXB0aW9uIEFkZHMgYSB0aGlyZC1wYXJ0eSB1c2VyIHRvIHRoZSBvcmdcbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiY3JlYXRlT2lkY1VzZXJcIl07XG4gIH07XG4gIFwiL3YwL3RvdHBcIjoge1xuICAgIC8qKlxuICAgICAqIFJlc2V0IFRPVFBcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzZXQgVE9UUFxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhbmQgc2V0cyBhIG5ldyBUT1RQIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjdXJyZW50IHVzZXIsXG4gICAgICogb3ZlcnJpZGluZyB0aGUgZXhpc3Rpbmcgb25lIChpZiBhbnkpLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXNlclJlc2V0VG90cFwiXTtcbiAgfTtcbiAgXCIvdjAvdG90cC92ZXJpZnkve2NvZGV9XCI6IHtcbiAgICAvKipcbiAgICAgKiBWZXJpZnkgVE9UUFxuICAgICAqIEBkZXNjcmlwdGlvbiBWZXJpZnkgVE9UUFxuICAgICAqXG4gICAgICogQ2hlY2tzIGlmIGEgZ2l2ZW4gY29kZSBtYXRjaGVzIHRoZSBjdXJyZW50IFRPVFAgY29kZSBmb3IgdGhlIGN1cnJlbnQgdXNlci5cbiAgICAgKiBFcnJvcnMgd2l0aCA0MDMgaWYgdGhlIGN1cnJlbnQgdXNlciBoYXMgbm90IHNldCB1cCBUT1RQIG9yIHRoZSBjb2RlIGZhaWxzIHZlcmlmaWNhdGlvbi5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJ1c2VyVmVyaWZ5VG90cFwiXTtcbiAgfTtcbiAgXCIvdjEvb3JnL3tvcmdfaWR9L2Jsb2Ivc2lnbi97a2V5X2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBSYXcgQmxvYlxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIFJhdyBCbG9iXG4gICAgICpcbiAgICAgKiBTaWducyBhbiBhcmJpdHJhcnkgYmxvYiB3aXRoIGEgZ2l2ZW4ga2V5LlxuICAgICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJibG9iU2lnblwiXTtcbiAgfTtcbiAgXCIvdjEvb3JnL3tvcmdfaWR9L2N1YmUzc2lnbmVyL2hlYXJ0YmVhdFwiOiB7XG4gICAgLyoqXG4gICAgICogUmVjb3JkIGhlYXJ0YmVhdFxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWNvcmQgaGVhcnRiZWF0XG4gICAgICpcbiAgICAgKiBUaGlzIGVuZHBvaW50IGlzIGNhbGxlZCBieSB0aGUgY3ViZTNzaWduZXIgcHJveHkgdG8gcmVjb3JkIHZhcmlvdXMgbWV0cmljcyB0byBDbG91ZFdhdGNoLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjdWJlM3NpZ25lckhlYXJ0YmVhdFwiXTtcbiAgfTtcbiAgXCIvdjEvb3JnL3tvcmdfaWR9L2V0aDEvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBFVk0gVHJhbnNhY3Rpb25cbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBFVk0gVHJhbnNhY3Rpb25cbiAgICAgKlxuICAgICAqIFNpZ25zIGFuIEV0aGVyZXVtIChhbmQgb3RoZXIgRVZNKSB0cmFuc2FjdGlvbiB3aXRoIGEgZ2l2ZW4gU2VjcDI1NmsxIGtleS5cbiAgICAgKlxuICAgICAqIFRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZSBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJldGgxU2lnblwiXTtcbiAgfTtcbiAgXCIvdjEvb3JnL3tvcmdfaWR9L2V0aDIvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBWYWxpZGF0b3IgUmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIFZhbGlkYXRvciBSZXF1ZXN0XG4gICAgICpcbiAgICAgKiBTaWducyBhbiBldGgyIHZhbGlkYXRvciByZXF1ZXN0IHdpdGggYSBnaXZlbiBCTFMga2V5LlxuICAgICAqXG4gICAgICogVGhlIGtleSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZSBhbmQgb3JnYW5pemF0aW9uIG9uIHdob3NlIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImV0aDJTaWduXCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vZXRoMi9zdGFrZVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBTdGFrZSBEZXBvc2l0XG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gU3Rha2UgRGVwb3NpdFxuICAgICAqXG4gICAgICogU2lnbnMgYSBkZXBvc2l0IHRyYW5zYWN0aW9uIHdpdGggYSBgdmFsaWRhdG9yX2tleWAuIElmIGB2YWxpZGF0b3Jfa2V5YCBpcyBzZXQgdG8gYSBwcmVnZW5lcmF0ZWQga2V5LCB3ZSB1c2UgdGhlXG4gICAgICogcHJvdmlkZWQgdmFsaWRhdG9yIGtleS4gT3RoZXJ3aXNlLCB3ZSBnZW5lcmF0ZSBhIG5ldyBCTFMga2V5LlxuICAgICAqXG4gICAgICogV2hlbiB1c2luZyBhIHByZWdlbmVyYXRlZCBrZXksIHRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZVxuICAgICAqIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInN0YWtlXCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vZXRoMi91bnN0YWtlL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIFVuc3Rha2UgUmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIFVuc3Rha2UgUmVxdWVzdFxuICAgICAqXG4gICAgICogSGFuZGxlIHVuc3Rha2luZyByZXF1ZXN0LCBwcm9kdWNpbmcgYSBzaWduZWQgdm9sdW50YXJ5IGV4aXQgbWVzc2FnZVxuICAgICAqIHRoYXQgY2FuIGJlIHBvc3RlZCBkaXJlY3RseSB0byB0aGUgQmVhY29uIGNoYWluLlxuICAgICAqXG4gICAgICogVGhlIGtleSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZSBhbmQgb3JnYW5pemF0aW9uIG9uIHdob3NlIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInVuc3Rha2VcIl07XG4gIH07XG4gIFwiL3YxL29yZy97b3JnX2lkfS9zb2xhbmEvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBTb2xhbmEgTWVzc2FnZVxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIFNvbGFuYSBNZXNzYWdlXG4gICAgICpcbiAgICAgKiBTaWducyBhIFNvbGFuYSBtZXNzYWdlIHdpdGggYSBnaXZlbiBrZXkuXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInNvbGFuYVNpZ25cIl07XG4gIH07XG4gIFwiL3YxL29yZy97b3JnX2lkfS90b2tlbi9yZWZyZXNoXCI6IHtcbiAgICAvKipcbiAgICAgKiBSZWZyZXNoIFNpZ25lciBTZXNzaW9uXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZnJlc2ggU2lnbmVyIFNlc3Npb25cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInNpZ25lclNlc3Npb25SZWZyZXNoXCJdO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSB3ZWJob29rcyA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuZXhwb3J0IGludGVyZmFjZSBjb21wb25lbnRzIHtcbiAgc2NoZW1hczoge1xuICAgIEFjY2VwdGVkUmVzcG9uc2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXSAmIFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGlmZmVyZW50IHJlc3BvbnNlcyB3ZSByZXR1cm4gZm9yIHN0YXR1cyBjb2RlIFwiMjAyIEFjY2VwdGVkXCIuXG4gICAgICpcbiAgICAgKiBFdmVuIHRob3VnaCBcIjIwMiBBY2NlcHRlZFwiIGlzIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSwgd2UgcmVwcmVzZW50XG4gICAgICogaXQgYXMgYSBSdXN0IGVycm9yIGJlY2F1c2UgdGhhdCBtYWtlcyBpdCBlYXN5IHRvIGhhdmUgcm91dGUgaGFuZGxlcnNcbiAgICAgKiByZXR1cm4gYFJlc3VsdDxULCBTaWduZXJFcnJvcj5gIHdoZXJlIGBUYCBpcyB0aGUgdHlwZSBvZiB0aGVcbiAgICAgKiByZXNwb25zZSBmb3IgdGhlIHN0YXR1cyBjb2RlIFwiMjAwIE9rXCIuXG4gICAgICovXG4gICAgQWNjZXB0ZWRWYWx1ZToge1xuICAgICAgTWZhUmVxdWlyZWQ6IHtcbiAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICBBZGRLZXlzVG9Sb2xlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBsaXN0IG9mIGtleXMgdG8gYWRkIHRvIGEgcm9sZVxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcIktleSM2MzAyM2EyNy0xZTcwLTQzMGEtYjI5My1mZmJjOWQ2YzQ0ODRcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBrZXlfaWRzOiBzdHJpbmdbXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljaWVzIHRvIGFwcGx5IGZvciBlYWNoIGtleVxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJUeFJlY2VpdmVyXCI6IFwiMHg4YzU5NDY5MWMwZTU5MmZmYTIxZjE1M2ExNmFlNDFkYjViZWZjYWFhXCJcbiAgICAgICAqICAgfSxcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiVHhEZXBvc2l0XCI6IHtcbiAgICAgICAqICAgICAgIFwia2luZFwiOiBcIkNhbm9uaWNhbFwiXG4gICAgICAgKiAgICAgfVxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJSZXF1aXJlTWZhXCI6IHtcbiAgICAgICAqICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgKiAgICAgICAgIFwiUmVxdWlyZWRBcHByb3ZlcnNcIjoge1xuICAgICAgICogICAgICAgICAgIFwiY291bnRcIjogMVxuICAgICAgICogICAgICAgICB9XG4gICAgICAgKiAgICAgICB9LFxuICAgICAgICogICAgICAgXCJyZXN0cmljdGVkX29wZXJhdGlvbnNcIjogW1xuICAgICAgICogICAgICAgICBcIkV0aDFTaWduXCIsXG4gICAgICAgKiAgICAgICAgIFwiQmxvYlNpZ25cIlxuICAgICAgICogICAgICAgXVxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k6IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdIHwgbnVsbDtcbiAgICB9O1xuICAgIEFkZFRoaXJkUGFydHlVc2VyUmVxdWVzdDoge1xuICAgICAgaWRlbnRpdHk6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT0lEQ0lkZW50aXR5XCJdO1xuICAgICAgcm9sZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdO1xuICAgIH07XG4gICAgQXBwcm92YWxJbmZvOiB7XG4gICAgICB0aW1lc3RhbXA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gRGF0YSByZXF1aXJlZCBmb3IgYm90aCBgYXV0aGVudGljYXRlYCBhbmQgYHJlZnJlc2hgLiAqL1xuICAgIEF1dGhEYXRhOiB7XG4gICAgICAvKiogRm9ybWF0OiBpbnQzMiAqL1xuICAgICAgZXBvY2hfbnVtOiBudW1iZXI7XG4gICAgICBlcG9jaF90b2tlbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCMzJcIl07XG4gICAgICBvdGhlcl90b2tlbjogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBXcmFwcGVyIGFyb3VuZCBhIHplcm9pemluZyAzMi1ieXRlIGZpeGVkLXNpemUgYXJyYXkgKi9cbiAgICBCMzI6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcIm1lc3NhZ2VfYmFzZTY0XCI6IFwiWVdKalpHVm1aMmhwYW10c2JXNXZjSEZ5YzNSMWRuZDRlWG94TWpNME5UWUtcIlxuICAgICAqIH1cbiAgICAgKi9cbiAgICBCbG9iU2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBibG9iIHRvIHNpZ24sIGVuY29kZWQgYXMgYSBiYXNlNjQgc3RyaW5nLlxuICAgICAgICpcbiAgICAgICAqIE5vdGUgdGhhdCBjZXJ0YWluIHNpZ25pbmcga2V5cyBpbXBvc2UgYWRkaXRpb25hbCByZXF1aXJlbWVudHMgb24gdGhlIGNvbnRlbnRzIG9mXG4gICAgICAgKiB0aGUgbWVzc2FnZS4gRm9yIGV4YW1wbGUsIFNlY3AyNTZrMSBrZXlzIHJlcXVpcmUgdGhhdCB0aGUgbWVzc2FnZSBpcyAzMiBieXRlcyBsb25nLlxuICAgICAgICovXG4gICAgICBtZXNzYWdlX2Jhc2U2NDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgQnRjU2lnaGFzaFR5cGU6IFwiQWxsXCIgfCBcIk5vbmVcIiB8IFwiU2luZ2xlXCIgfCBcIkFsbFBsdXNBbnlvbmVDYW5QYXlcIiB8IFwiTm9uZVBsdXNBbnlvbmVDYW5QYXlcIiB8IFwiU2luZ2xlUGx1c0FueW9uZUNhblBheVwiO1xuICAgIEJ0Y1NpZ25SZXF1ZXN0OiB7XG4gICAgICBzaWdfa2luZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCdGNTaWduYXR1cmVLaW5kXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYml0Y29pbiB0cmFuc2FjdGlvbiB0byBzaWduICovXG4gICAgICB0eDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIH07XG4gICAgQnRjU2lnbmF0dXJlS2luZDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTZWdyZWdhdGVkIFdpdG5lc3MgKi9cbiAgICAgIFNlZ3dpdDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRyYW5zYWN0aW9uIGlucHV0IGluZGV4XG4gICAgICAgICAqIEBleGFtcGxlIDBcbiAgICAgICAgICovXG4gICAgICAgIGlucHV0X2luZGV4OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gU2NyaXB0XG4gICAgICAgICAqIEBleGFtcGxlIDB4NzZhOTE0NzkwOTE5NzIxODZjNDQ5ZWIxZGVkMjJiNzhlNDBkMDA5YmRmMDA4OTg4YWNcbiAgICAgICAgICovXG4gICAgICAgIHNjcmlwdF9jb2RlOiBzdHJpbmc7XG4gICAgICAgIHNpZ2hhc2hfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCdGNTaWdoYXNoVHlwZVwiXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEFtb3VudCBpbiBzYXRvc2hpc1xuICAgICAgICAgKiBAZXhhbXBsZSAxMDAwMDAwXG4gICAgICAgICAqL1xuICAgICAgICB2YWx1ZTogbnVtYmVyO1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTZXNzaW9uIGluZm9ybWF0aW9uIHNlbnQgdG8gdGhlIGNsaWVudC5cbiAgICAgKiBUaGlzIHN0cnVjdCB3b3JrcyBpbiB0YW5kZW0gd2l0aCBpdHMgc2VydmVyLXNpZGUgY291bnRlcnBhcnQgW2BTZXNzaW9uRGF0YWBdLlxuICAgICAqL1xuICAgIENsaWVudFNlc3Npb25JbmZvOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRva2VuIHRvIHVzZSBmb3IgYXV0aG9yaXphdGlvbi4gKi9cbiAgICAgIGF1dGhfdG9rZW46IHN0cmluZztcbiAgICAgIGF1dGhfdG9rZW5fZXhwOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBFcG9jaCBhdCB3aGljaCB0aGUgdG9rZW4gd2FzIGxhc3QgcmVmcmVzaGVkXG4gICAgICAgKi9cbiAgICAgIGVwb2NoOiBudW1iZXI7XG4gICAgICBlcG9jaF90b2tlbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCMzJcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRva2VuIHRvIHVzZSBmb3IgcmVmcmVzaGluZyB0aGUgYChhdXRoLCByZWZyZXNoKWAgdG9rZW4gcGFpciAqL1xuICAgICAgcmVmcmVzaF90b2tlbjogc3RyaW5nO1xuICAgICAgcmVmcmVzaF90b2tlbl9leHA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU2Vzc2lvbiBJRCAqL1xuICAgICAgc2Vzc2lvbl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgQ29uZmlndXJlZE1mYTogT25lT2Y8W1wiVG90cFwiLCB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE5hbWVkIEZJRE8gZGV2aWNlIChtdWx0aXBsZSBjYW4gYmUgY29uZmlndXJlZCBwZXIgdXNlciwgYnV0IHRoZSBuYW1lcyBtdXN0IGJlIGRpZmZlcmVudCkgKi9cbiAgICAgIEZpZG86IHN0cmluZztcbiAgICB9XT47XG4gICAgQ3JlYXRlS2V5UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ2hhaW4gaWQgZm9yIHdoaWNoIHRoZSBrZXkgaXMgYWxsb3dlZCB0byBzaWduIG1lc3NhZ2VzXG4gICAgICAgKiBAZXhhbXBsZSA1XG4gICAgICAgKi9cbiAgICAgIGNoYWluX2lkOiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIGtleXMgdG8gY3JlYXRlXG4gICAgICAgKiBAZXhhbXBsZSAxXG4gICAgICAgKi9cbiAgICAgIGNvdW50OiBudW1iZXI7XG4gICAgICBrZXlfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlUeXBlXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWxsb3dzIHVzZXJzIHRvIHNwZWNpZnkgYSB1c2VyIG90aGVyIHRoYW4gdGhlbXNlbHZlcyB0byByZWNlaXZlIHRoZSBrZXlcbiAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgKi9cbiAgICAgIG93bmVyOiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBjcmVhdGUgcm9sZSByZXF1ZXN0IGJvZHkgKi9cbiAgICBDcmVhdGVSb2xlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcm9sZS5cbiAgICAgICAqIEBleGFtcGxlIG15X3JvbGVcbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgIH07XG4gICAgQ3JlYXRlVG9rZW5SZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJhdGNoZXRDb25maWdcIl0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuIHJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSBwdXJwb3NlIG9mIHRoZSBrZXlcbiAgICAgICAqIEBleGFtcGxlIFZhbGlkYXRvciBTaWduaW5nXG4gICAgICAgKi9cbiAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBwcm9kdWNlZCBieSBhIHN1Y2Nlc3NmdWwgZGVwb3NpdFxuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgIFwiY2hhaW5faWRcIjogNSxcbiAgICAgKiAgIFwiZGVwb3NpdF90eG5cIjoge1xuICAgICAqICAgICBcImRhdGFcIjogXCIweC4uLlwiLFxuICAgICAqICAgICBcInRvXCI6IFwiMHhmZjUwZWQzZDBlYzAzYWMwMWQ0Yzc5YWFkNzQ5MjhiZmY0OGE3YjJiXCIsXG4gICAgICogICAgIFwidmFsdWVcIjogXCIweDFiYzE2ZDY3NGVjODAwMDAwXCJcbiAgICAgKiAgIH0sXG4gICAgICogICBcIm5ld192YWxpZGF0b3JfcGtcIjogXCI5NzAwZmJiOGM5MDY5NDI0NDJjMmE1YjNhZDc0OThmMjdhZWRkYTI1Mzc4NmE2ZmJhYThmZWY0N2ZiN2FmMjM0ZTUwY2YyY2NlODE1YTU1MzA4Nzk5MmFlNTY1ZDQ4ZGFcIlxuICAgICAqIH1cbiAgICAgKi9cbiAgICBEZXBvc2l0VHhuOiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBDaGFpbiBJRCBmb3Igd2hpY2ggdGhlIGRlcG9zaXQgdHJhbnNhY3Rpb24gd2FzIGNyZWF0ZWRcbiAgICAgICAqL1xuICAgICAgY2hhaW5faWQ6IG51bWJlcjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGRlcG9zaXQgdHJhbnNhY3Rpb24uIEluY2x1ZGVzIG9ubHkgYHRvYCwgYHZhbHVlYCwgYW5kIGBkYXRhYCBmaWVsZHMuICovXG4gICAgICBkZXBvc2l0X3R4bjogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgY29tcHJlc3NlZCBmb3JtIG9mIHRoZSBuZXcgdmFsaWRhdG9yIEJMUyBwdWJsaWMga2V5ICovXG4gICAgICBuZXdfdmFsaWRhdG9yX3BrOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHR5cGUgb2YgZGVwb3NpdCB0byBwZXJmb3JtXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBEZXBvc2l0VHlwZTogXCJDYW5vbmljYWxcIiB8IFwiV3JhcHBlclwiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFcG9jaCBpcyBhIHF1b3RlZCBgdWludDY0YC5cbiAgICAgKiBAZXhhbXBsZSAyNTZcbiAgICAgKi9cbiAgICBFcG9jaDogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgKiBAZGVzY3JpcHRpb24gRGF0ZVRpbWUgbWVhc3VyZWQgaW4gc2Vjb25kcyBzaW5jZSB1bml4IGVwb2NoLlxuICAgICAqIEEgd3JhcHBlciB0eXBlIGZvciBzZXJpYWxpemF0aW9uIHRoYXQgZW5jb2RlcyBhIFtgU3lzdGVtVGltZWBdIGFzIGEgW2B1NjRgXVxuICAgICAqIHJlcHJlc2VudGluZyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UgW2BTeXN0ZW1UaW1lOjpVTklYX0VQT0NIYF0uXG4gICAgICovXG4gICAgRXBvY2hEYXRlVGltZTogbnVtYmVyO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHN0cnVjdHVyZSBvZiBFcnJvclJlc3BvbnNlIG11c3QgbWF0Y2ggdGhlIHJlc3BvbnNlIHRlbXBsYXRlIHRoYXQgQVdTIHVzZXMgKi9cbiAgICBFcnJvclJlc3BvbnNlOiB7XG4gICAgICBhY2NlcHRlZD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRWYWx1ZVwiXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEVycm9yIG1lc3NhZ2UgKi9cbiAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgIFwiY2hhaW5faWRcIjogNDMxMTMsXG4gICAgICogICBcInR4XCI6IHtcbiAgICAgKiAgICAgXCJjaGFpbl9pZFwiOiBcIjB4YTg2OVwiLFxuICAgICAqICAgICBcImdhc1wiOiBcIjB4NjFhODBcIixcbiAgICAgKiAgICAgXCJtYXhGZWVQZXJHYXNcIjogXCIweDk1MDJGOTAwXCIsXG4gICAgICogICAgIFwibWF4UHJpb3JpdHlGZWVQZXJHYXNcIjogXCIweDUwXCIsXG4gICAgICogICAgIFwibm9uY2VcIjogXCIweGJcIixcbiAgICAgKiAgICAgXCJ0b1wiOiBcIjB4ZjAwYmExMmYwMDAwMDAwMGI0MTIxMjAwMDAwZjAwYzBmZmVlZjAwZFwiLFxuICAgICAqICAgICBcInR5cGVcIjogXCIweDAyXCIsXG4gICAgICogICAgIFwidmFsdWVcIjogXCIweDEwMDAwMDAwMDAwXCJcbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICovXG4gICAgRXRoMVNpZ25SZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgY2hhaW4gaWQgdG8gc2V0IGluIHRoZSBnaXZlbiB0cmFuc2FjdGlvbi5cbiAgICAgICAqL1xuICAgICAgY2hhaW5faWQ6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEVJUC0yNzE4IHR5cGVkIHRyYW5zYWN0aW9uIChzZWUgdGhlIFtldGhlcnMtcnNcbiAgICAgICAqIGludGVyZmFjZV0oaHR0cHM6Ly9kb2NzLnJzL2V0aGVycy9sYXRlc3QvZXRoZXJzL3R5cGVzL3N0cnVjdC5FaXAxNTU5VHJhbnNhY3Rpb25SZXF1ZXN0Lmh0bWwpKSB0eXBlcywgaW5jbHVkaW5nIEVJUC0xNTU5IHRyYW5zYWN0aW9ucyAoYHsgXCJ0eXBlXCI6IFwiMHgwMlwiIC4uLiB9YCksIGFuZCBsZWdhY3lcbiAgICAgICAqIHRyYW5zYWN0aW9ucyAoYHsgXCJ0eXBlXCI6IFwiMHgwMFwiIC4uLiB9YCkuIEFsbCB2YWx1ZXMgaW4gdGhlIHRyYW5zYWN0aW9uIGFyZSBleHBlY3RlZFxuICAgICAgICogdG8gYmUgKDB4LXByZWZpeGVkIG9yIG5vdCkgaGV4IHN0cmluZ3Mgb3IgYnl0ZSBhcnJheXMuXG4gICAgICAgKi9cbiAgICAgIHR4OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcImV0aDJfc2lnbl9yZXF1ZXN0XCI6IHtcbiAgICAgKiAgICAgXCJhZ2dyZWdhdGlvbl9zbG90XCI6IHtcbiAgICAgKiAgICAgICBcInNsb3RcIjogXCIzNlwiXG4gICAgICogICAgIH0sXG4gICAgICogICAgIFwiZm9ya19pbmZvXCI6IHtcbiAgICAgKiAgICAgICBcImZvcmtcIjoge1xuICAgICAqICAgICAgICAgXCJjdXJyZW50X3ZlcnNpb25cIjogXCIweDQyNDI0MjQyXCIsXG4gICAgICogICAgICAgICBcImVwb2NoXCI6IFwiMFwiLFxuICAgICAqICAgICAgICAgXCJwcmV2aW91c192ZXJzaW9uXCI6IFwiMHg0MjQyNDI0MlwiXG4gICAgICogICAgICAgfSxcbiAgICAgKiAgICAgICBcImdlbmVzaXNfdmFsaWRhdG9yc19yb290XCI6IFwiMHg5ZDEzZDYxMjEyYzA2N2UwMmNlOGU2MDhhNzAwN2UyYzNiMDI1NzFlOWU2ZjI3ZmY0NWRmYTkxYmYyN2M4NzBiXCJcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgXCJzaWduaW5nUm9vdFwiOiBcIjB4OWM1N2U3N2M0OTY1NzI3NTQyYjkzMzdkZjY3NTZmOTQ4NDY0YmNhMzg1OWJlYTZlZDNjMGVjNjYwMGQ4OTgyYVwiLFxuICAgICAqICAgICBcInR5cGVcIjogXCJBR0dSRUdBVElPTl9TTE9UXCJcbiAgICAgKiAgIH0sXG4gICAgICogICBcIm5ldHdvcmtcIjogXCJtYWlubmV0XCJcbiAgICAgKiB9XG4gICAgICovXG4gICAgRXRoMlNpZ25SZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTdWJzZXQgb2YgdGhlIFdlYjNTaWduZXIgRXRoMiBCTFMgc2lnbmluZyByZXF1ZXN0IHdob3NlIHNjaGVtYSBpcyBkZWZpbmVkXG4gICAgICAgKiBbaGVyZV0oaHR0cHM6Ly9jb25zZW5zeXMuZ2l0aHViLmlvL3dlYjNzaWduZXIvd2ViM3NpZ25lci1ldGgyLmh0bWwjdGFnL1NpZ25pbmcvb3BlcmF0aW9uL0VUSDJfU0lHTikuXG4gICAgICAgKiBXZSBoYW5kbGUgZGVwb3NpdHMgYW5kIHZvbHVudGFyeSBleGl0cyBzZXBhcmF0ZWx5LlxuICAgICAgICovXG4gICAgICBldGgyX3NpZ25fcmVxdWVzdDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgICAgbmV0d29yazogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJOZXR3b3JrXCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNwZWNpZmllcyBhIGZvcmsgb2YgdGhlIGBCZWFjb25DaGFpbmAsIHRvIHByZXZlbnQgcmVwbGF5IGF0dGFja3MuXG4gICAgICogVGhlIHNjaGVtYSBvZiBgRm9ya2AgaXMgZGVmaW5lZCBpbiB0aGUgW0JlYWNvbiBjaGFpblxuICAgICAqIHNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9jb25zZW5zdXMtc3BlY3MvYmxvYi92MS4wLjEvc3BlY3MvcGhhc2UwL2JlYWNvbi1jaGFpbi5tZCNmb3JrKS5cbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcImN1cnJlbnRfdmVyc2lvblwiOiBcIjB4MDAwMDEwMjBcIixcbiAgICAgKiAgIFwiZXBvY2hcIjogXCIwXCIsXG4gICAgICogICBcInByZXZpb3VzX3ZlcnNpb25cIjogXCIweDAwMDAxMDIwXCJcbiAgICAgKiB9XG4gICAgICovXG4gICAgRm9yazoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ3VycmVudCBmb3JrIHZlcnNpb24uXG4gICAgICAgKiBAZXhhbXBsZSAweDQzNDM0MzQzXG4gICAgICAgKi9cbiAgICAgIGN1cnJlbnRfdmVyc2lvbjogc3RyaW5nO1xuICAgICAgZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQcmV2aW91cyBmb3JrIHZlcnNpb24uXG4gICAgICAgKiBAZXhhbXBsZSAweDQyNDI0MjQyXG4gICAgICAgKi9cbiAgICAgIHByZXZpb3VzX3ZlcnNpb246IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZW5lc2lzIGRhdGEgYXMgZGVmaW5lZCBpbiB0aGUgW0JlYWNvbiBBUElcbiAgICAgKiBzcGVjXShodHRwczovL2V0aGVyZXVtLmdpdGh1Yi5pby9iZWFjb24tQVBJcy8jL0JlYWNvbi9nZXRHZW5lc2lzKS5cbiAgICAgKiBZb3UgY2FuIGdldCB0aGUgZ2VuZXNpcyBkYXRhIGZyb20gdGhlIEJlYWNvbiBub2RlJ3MgYC9ldGgvdjEvYmVhY29uL2dlbmVzaXNgIGVuZC1wb2ludC5cbiAgICAgKiBUaGlzIHN0cnVjdCBkZWZpbml0aW9uIGlzIG9yaWdpbmFsbHkgZnJvbSBsaWdodGhvdXNlJ3MgZXRoMi5cbiAgICAgKi9cbiAgICBHZW5lc2lzRGF0YToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gR2VuZXNpcyBmb3JrIHZlcnNpb24uXG4gICAgICAgKiBAZXhhbXBsZSAweDQyNDI0MjQyXG4gICAgICAgKi9cbiAgICAgIGdlbmVzaXNfZm9ya192ZXJzaW9uOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBHZW5lc2lzIHRpbWVcbiAgICAgICAqIEBleGFtcGxlIDE2NzkzMjY0NDlcbiAgICAgICAqL1xuICAgICAgZ2VuZXNpc190aW1lOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBHZW5lc2lzIHZhbGlkYXRvcnMgcm9vdC5cbiAgICAgICAqIEBleGFtcGxlIDB4MjcwZDQzZTc0Y2UzNDBkZTRiY2EyYjE5MzZiZWNhMGY0ZjU0MDhkOWU3OGFlYzQ4NTA5MjBiYWY2NTlkNWI2OVxuICAgICAgICovXG4gICAgICBnZW5lc2lzX3ZhbGlkYXRvcnNfcm9vdDogc3RyaW5nO1xuICAgIH07XG4gICAgR2V0S2V5c0luT3JnUmVxdWVzdDoge1xuICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFN0YXRzIHBlcnRhaW5pbmcgdGhlIHRoZSBzZW5kZXIgYGN1YmUzc2lnbmVyYCBpbnN0YW5jZSAqL1xuICAgIEhlYXJ0YmVhdFJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiByZXF1ZXN0cyBjdXJyZW50bHkgYWN0aXZlIChyZWNlaXZlZCBidXQgbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHByb2Nlc3NlZCB5ZXQpXG4gICAgICAgKi9cbiAgICAgIGN1cnJlbnRfbnVtX3JlcXVlc3RzX2FjdGl2ZTogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIHJlcXVlc3RzIGN1cnJlbnRseSBiZWluZyBwcm9jZXNzZWQgYnkgY3ViZTNzaWduZXJcbiAgICAgICAqL1xuICAgICAgY3VycmVudF9udW1fcmVxdWVzdHNfcHJvY2Vzc2luZzogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIG5ldyByZXF1ZXN0cyBkdXJpbmcgdGhpcyBoZWFydGJlYXQgcGVyaW9kXG4gICAgICAgKi9cbiAgICAgIG51bV9yZXF1ZXN0czogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIHJlcXVlc3RzIHRoYXQgZmFpbGVkIGR1cmluZyB0aGlzIGhlYXJ0YmVhdCBwZXJpb2RcbiAgICAgICAqL1xuICAgICAgbnVtX3JlcXVlc3RzX2ZhaWxlZDogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIHJlcXVlc3RzIHdlcmUgcmV0cmllZCBkdXJpbmcgdGhpcyBoZWFydGJlYXQgcGVyaW9kXG4gICAgICAgKi9cbiAgICAgIG51bV9yZXF1ZXN0c19yZXRyaWVkOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgcmV0cmllcyBkdXJpbmcgdGhpcyBoZWFydGJlYXQgcGVyaW9kXG4gICAgICAgKi9cbiAgICAgIG51bV9yZXRyaWVzOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgdGltZXMgYXV0aCB0b2tlbiB3YXMgcmVmcmVzaGVkIGR1cmluZyB0aGlzIGhlYXJ0YmVhdCBwZXJpb2RcbiAgICAgICAqL1xuICAgICAgbnVtX3Rva2VuX3JlZnJlc2hlcz86IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiB0aW1lcyBhdXRoIHRva2VuIHJlZnJlc2ggZmFpbGVkIGR1cmluZyB0aGlzIGhlYXJ0YmVhdCBwZXJpb2RcbiAgICAgICAqL1xuICAgICAgbnVtX3Rva2VuX3JlZnJlc2hlc19mYWlsZWQ/OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBWZXJzaW9uIG9mIHRoZSBwcm94eSBzZW5kaW5nIHRoZSBoZWFydCBiZWF0IHJlcXVlc3RcbiAgICAgICAqXG4gICAgICAgKiBUT0RPOiBNYWtlIG5vbi1vcHRpb25hbCBvbmNlIHdlIGRvIG5vdCBzdXBwb3J0IHByb3hpZXMgd2l0aG91dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4gICAgICAgKi9cbiAgICAgIHByb3h5X3ZlcnNpb246IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBDYXB0dXJlcyBhbGwgdGhlIHJlbGV2YW50IGluZm8gKGluY2x1ZGluZyB0aGUgcmVxdWVzdCBib2R5KSBhYm91dCByZXF1ZXN0cyB0aGF0IHJlcXVpcmUgTUZBLlxuICAgICAqIFdlIHVzZSB0aGlzIHRvIHZlcmlmeSB0aGF0IHdoZW4gYSByZXF1ZXN0IGlzIHJlc3VtZWQgKGFmdGVyIG9idGFpbmluZyBuZWNlc3NhcnkgTUZBIGFwcHJvdmFscylcbiAgICAgKiBpdCBpcyBleGFjdGx5IHRoZSBzYW1lIGFzIGl0IG9yaWdpbmFsbHkgd2FzLlxuICAgICAqL1xuICAgIEh0dHBSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEhUVFAgcmVxdWVzdCBib2R5ICovXG4gICAgICBib2R5OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEhUVFAgbWV0aG9kIG9mIHRoZSByZXF1ZXN0ICovXG4gICAgICBtZXRob2Q6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSFRUUCBwYXRoIG9mIHRoZSByZXF1ZXN0IChpbmNsdWRpbmcgaG9zdCBvciBub3Q/KSAqL1xuICAgICAgcGF0aDogc3RyaW5nO1xuICAgIH07XG4gICAgSW1wb3J0S2V5TGVnYWN5UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGNoYWluIElEIG9mIHRoZSBjaGFpbiB0aGF0IHRoZSBrZXkgd2lsbCBiZSB1c2VkIGZvclxuICAgICAgICogQGV4YW1wbGUgNVxuICAgICAgICovXG4gICAgICBjaGFpbl9pZDogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGtleSB0byBpbXBvcnQgZW5jcnlwdGVkIHdpdGggdGhlIHB1YmxpYyBrZXkgb2YgdGhlIG9yZ2FuaXphdGlvbiAqL1xuICAgICAga2V5X21hdGVyaWFsOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJzYU9hZXBYQ2hhQ2hhTWF0ZXJpYWxcIl1bXTtcbiAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgfTtcbiAgICBJbXBvcnRLZXlSZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUltcG9ydEtleVwiXSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBzZXQgb2YgZW5jcnlwdGVkIGtleXMgdG8gYmUgaW1wb3J0ZWQgKi9cbiAgICAgIGtleV9tYXRlcmlhbDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbXBvcnRLZXlSZXF1ZXN0TWF0ZXJpYWxcIl1bXTtcbiAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgfTtcbiAgICBJbXBvcnRLZXlSZXF1ZXN0TWF0ZXJpYWw6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBjbGllbnQncyBlcGhlbWVyYWwgcHVibGljIGtleSB1c2VkIHRvIGRlcml2ZSBhIHNoYXJlZCBrZXkuXG4gICAgICAgKiBUaGlzIGlzIGEgYmFzZTY0LWVuY29kZWQsIFNFQzEtZW5jb2RlZCBQMzg0IHB1YmxpYyBrZXkuXG4gICAgICAgKi9cbiAgICAgIGNsaWVudF9wdWJsaWNfa2V5OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZW5jcnlwdGVkIGtleWluZyBtYXRlcmlhbCB0byBiZSBpbXBvcnRlZC5cbiAgICAgICAqIFRoaXMgaXMgYSBiYXNlNjQtZW5jb2RlZCBjaXBoZXJ0ZXh0LlxuICAgICAgICovXG4gICAgICBpa21fZW5jOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIHNhbHQgdmFsdWUgdXNlZCB0byBkZXJpdmUgYSBzaGFyZWQga2V5LlxuICAgICAgICogVGhpcyBpcyBhIGJhc2U2NC1lbmNvZGVkIGJ5dGUgc3RyaW5nLlxuICAgICAgICovXG4gICAgICBzYWx0OiBzdHJpbmc7XG4gICAgfTtcbiAgICBJbnZpdGVSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdXNlcidzIGVtYWlsIGFkZHJlc3NcbiAgICAgICAqIEBleGFtcGxlIGFsaWNlQGFjbWUuY29tXG4gICAgICAgKi9cbiAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdXNlcidzIGZ1bGwgbmFtZVxuICAgICAgICogQGV4YW1wbGUgQWxpY2UgV29uZGVybGFuZFxuICAgICAgICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTa2lwIHNlbmRpbmcgYW4gaW52aXRhdGlvbiBlbWFpbCB0byB0aGlzIHVzZXIgaWYgdHJ1ZS5cbiAgICAgICAqXG4gICAgICAgKiBOT1RFOiB0aGlzIGZpZWxkIGlzIGZvciBpbnRlcm5hbCB0ZXN0aW5nIHVzZSBPTkxZLiBJZiB5b3UgZG8gbm90XG4gICAgICAgKiBzZW5kIGFuIGludml0YXRpb24gZW1haWwsIHRoZSB1c2VyIHdpbGwgbmV2ZXIgYmUgYWJsZSB0byBsb2cgaW4uXG4gICAgICAgKiBAZXhhbXBsZSBmYWxzZVxuICAgICAgICovXG4gICAgICBza2lwX2VtYWlsOiBib29sZWFuO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHdyYXBwZWQga2V5LWltcG9ydCBrZXkgKi9cbiAgICBLZXlJbXBvcnRLZXk6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmFzZTY0LWVuY29kZWQsIGVuY3J5cHRlZCBkYXRhIGtleS4gKi9cbiAgICAgIGRrX2VuYzogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gRXhwaXJhdGlvbiB0aW1lc3RhbXAgZXhwcmVzc2VkIGFzIHNlY29uZHMgc2luY2UgdGhlIFVOSVggZXBvY2guXG4gICAgICAgKi9cbiAgICAgIGV4cGlyZXM6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlcGhlbWVyYWwgcHVibGljIGtleSB0byB3aGljaCBhbiBpbXBvcnRlZCBrZXkgc2hvdWxkIGJlIGVuY3J5cHRlZC5cbiAgICAgICAqIFRoaXMgaXMgYSBQMzg0IHB1YmxpYyBrZXkgaW4gYmFzZTY0LWVuY29kZWQgdW5jb21wcmVzc2VkIFNFQ0cgZm9ybWF0LlxuICAgICAgICovXG4gICAgICBwdWJsaWNfa2V5OiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEJhc2U2NC1lbmNvZGVkLCBlbmNyeXB0ZWQgc2VjcmV0IGtleS4gKi9cbiAgICAgIHNrX2VuYzogc3RyaW5nO1xuICAgIH07XG4gICAgS2V5SW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSBrZXkgaXMgZW5hYmxlZCAob25seSBlbmFibGVkIGtleXMgbWF5IGJlIHVzZWQgZm9yIHNpZ25pbmcpICovXG4gICAgICBlbmFibGVkOiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBrZXk6IFwiS2V5I1wiIGZvbGxvd2VkIGJ5IGEgdW5pcXVlIGlkZW50aWZpZXIgc3BlY2lmaWMgdG9cbiAgICAgICAqIHRoZSB0eXBlIG9mIGtleSAoc3VjaCBhcyBhIHB1YmxpYyBrZXkgZm9yIEJMUyBvciBhbiBldGhlcmV1bSBhZGRyZXNzIGZvciBTZWNwKVxuICAgICAgICogQGV4YW1wbGUgS2V5IzB4OGUzNDg0Njg3ZTY2Y2RkMjZjZjA0YzM2NDc2MzNhYjRmMzU3MDE0OFxuICAgICAgICovXG4gICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIHVuaXF1ZSBpZGVudGlmaWVyIHNwZWNpZmljIHRvIHRoZSB0eXBlIG9mIGtleSwgc3VjaCBhcyBhIHB1YmxpYyBrZXkgb3IgYW4gZXRoZXJldW0gYWRkcmVzc1xuICAgICAgICogQGV4YW1wbGUgMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAgICAgKi9cbiAgICAgIG1hdGVyaWFsX2lkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPd25lciBvZiB0aGUga2V5XG4gICAgICAgKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlxuICAgICAgICovXG4gICAgICBvd25lcjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gS2V5IHBvbGljeVxuICAgICAgICogQGV4YW1wbGUgW11cbiAgICAgICAqL1xuICAgICAgcG9saWN5OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkLCBzZXJpYWxpemVkIHB1YmxpYyBrZXkuIFRoZSBmb3JtYXQgdXNlZCBkZXBlbmRzIG9uIHRoZSBrZXkgdHlwZTpcbiAgICAgICAqIC0gc2VjcDI1NmsxIGtleXMgdXNlIDY1LWJ5dGUgdW5jb21wcmVzc2VkIFNFQ0cgZm9ybWF0O1xuICAgICAgICogLSBCTFMga2V5cyB1c2UgNDgtYnl0ZSBjb21wcmVzc2VkIEJMUzEyLTM4MSAoWkNhc2gpIGZvcm1hdDtcbiAgICAgICAqIC0gZWQyNTUxOSBrZXlzIHVzZSB0aGUgY2Fub25pY2FsIDY0LWJ5dGUgZW5jb2Rpbmcgc3BlY2lmaWVkIGluIFJGQyA4MDMyLlxuICAgICAgICogQGV4YW1wbGUgMHgwNGQyNjg4YjZiYzJjZTdmOTg3OWI5ZTc0NWYzYzRkYzE3NzkwOGM1Y2VmMGMxYjY0Y2ZmMTlhZTdmZjI3ZGVlNjIzYzY0ZmU5ZDljMzI1YzdmYmJjNzQ4YmJkNWY2MDdjZTE0ZGQ4M2UyOGViYmJiN2QzZTdmMmZmYjcwYTc5NDMxXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXk6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBwdXJwb3NlIGZvciB3aGljaCB0aGUga2V5IGNhbiBiZSB1c2VkIChlLmcuLCBjaGFpbiBpZCBmb3Igd2hpY2ggdGhlIGtleSBpcyBhbGxvd2VkIHRvIHNpZ24gbWVzc2FnZXMpXG4gICAgICAgKiBAZXhhbXBsZSBFdGgyVmFsaWRhdG9yKDEpXG4gICAgICAgKi9cbiAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIEtleVR5cGU6IFwiU2VjcEV0aEFkZHJcIiB8IFwiU2VjcEJ0Y1wiIHwgXCJTZWNwQnRjVGVzdFwiIHwgXCJCbHNQdWJcIiB8IFwiQmxzSW5hY3RpdmVcIiB8IFwiRWQyNTUxOVNvbGFuYUFkZHJcIiB8IFwiRWQyNTUxOVN1aUFkZHJcIiB8IFwiRWQyNTUxOUFwdG9zQWRkclwiO1xuICAgIEtleVdpdGhQb2xpY2llczoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gS2V5IElEXG4gICAgICAgKiBAZXhhbXBsZSBLZXkjMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAgICAgKi9cbiAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUG9saWNpZXMgdGhhdCBhcmUgY2hlY2tlZCBiZWZvcmUgdGhpcyBrZXkgaXMgdXNlZCBvbiBiZWhhbGYgb2YgdGhpcyByb2xlXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlR4UmVjZWl2ZXJcIjogXCIweDhjNTk0NjkxYzBlNTkyZmZhMjFmMTUzYTE2YWU0MWRiNWJlZmNhYWFcIlxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJUeERlcG9zaXRcIjoge1xuICAgICAgICogICAgICAgXCJraW5kXCI6IFwiQ2Fub25pY2FsXCJcbiAgICAgICAqICAgICB9XG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W107XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVzY3JpYmVzIHdoZXRoZXIgYSB1c2VyIGluIGFuIG9yZyBpcyBhbiBPd25lciBvciBqdXN0IGEgcmVndWxhciBtZW1iZXJcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIE1lbWJlclJvbGU6IFwiT3duZXJcIiB8IFwiTWVtYmVyXCIgfCBcIkFsaWVuXCI7XG4gICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgTWZhVHlwZTogXCJDdWJlU2lnbmVyXCIgfCBcIlRvdHBcIjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTmV0d29yayBuYW1lICgnbWFpbm5ldCcsICdwcmF0ZXInLCAnZ29lcmxpJylcbiAgICAgKiBAZXhhbXBsZSBnb2VybGlcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIE5ldHdvcms6IFwibWFpbm5ldFwiIHwgXCJwcmF0ZXJcIiB8IFwiZ29lcmxpXCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgYSBnbG9iYWxseSB1bmlxdWUgT0lEQy1hdXRob3JpemVkIHVzZXIgYnkgZXhwcmVzc2luZyB0aGUgZnVsbCBcInBhdGhcIiB0byBhIHVzZXIuIFRoYXQgaXM6XG4gICAgICpcbiAgICAgKiAoaXNzKSAgICAgICAoc3ViKVxuICAgICAqIElzc3VlciAtPiBTdWJyZXNvdXJjZVxuICAgICAqXG4gICAgICogV2UgaW5jbHVkZSBhIG5vbi1zdGFuZGFyZCB0aGlyZC10aWVyIGBkaXNhbWJpZ3VhdG9yYCB3aGljaCBhbGxvd3MgdXMgdG8gbWFwXG4gICAgICogYSBzaW5nbGUgT0lEQyB1c2VyIHRvIG11bHRpcGxlIGBVc2VyYHMgaW4gQ3ViZVNpZ25lclxuICAgICAqL1xuICAgIE9JRENJZGVudGl0eToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRnJlZS1mb3JtIGFkZGl0aW9uYWwgdXNlciBpbmZvLlxuICAgICAgICogQGV4YW1wbGUgbnVsbFxuICAgICAgICovXG4gICAgICBkaXNhbWJpZ3VhdG9yPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSByb290LWxldmVsIGlzc3VlciB3aG8gYWRtaW5pc3RyYXRlcyB0aGlzIHVzZXIuIEZyb21lIHRoZSBPSURDIHNwZWM6XG4gICAgICAgKiBJc3N1ZXIgSWRlbnRpZmllciBmb3IgdGhlIElzc3VlciBvZiB0aGUgcmVzcG9uc2UuIFRoZSBpc3NcbiAgICAgICAqIHZhbHVlIGlzIGEgY2FzZSBzZW5zaXRpdmUgVVJMIHVzaW5nIHRoZSBodHRwcyBzY2hlbWUgdGhhdCBjb250YWluc1xuICAgICAgICogc2NoZW1lLCBob3N0LCBhbmQgb3B0aW9uYWxseSwgcG9ydCBudW1iZXIgYW5kIHBhdGggY29tcG9uZW50cyBhbmRcbiAgICAgICAqIG5vIHF1ZXJ5IG9yIGZyYWdtZW50IGNvbXBvbmVudHMuXG4gICAgICAgKiBAZXhhbXBsZSBodHRwczovL2FjY291bnRzLmdvb2dsZS5jb21cbiAgICAgICAqL1xuICAgICAgaXNzOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIHRoZSBPSURDIHNwZWM6XG4gICAgICAgKlxuICAgICAgICogQSBsb2NhbGx5IHVuaXF1ZSBhbmQgbmV2ZXIgcmVhc3NpZ25lZCBpZGVudGlmaWVyIHdpdGhpbiB0aGUgSXNzdWVyIGZvclxuICAgICAgICogdGhlIEVuZC1Vc2VyLCB3aGljaCBpcyBpbnRlbmRlZCB0byBiZSBjb25zdW1lZCBieSB0aGUgQ2xpZW50LCBlLmcuLFxuICAgICAgICogMjQ0MDAzMjAgb3IgQUl0T2F3bXd0V3djVDBrNTFCYXlld052dXRySlVxc3ZsNnFzN0E0LiBJdCBNVVNUIE5PVCBleGNlZWRcbiAgICAgICAqIDI1NSBBU0NJSSBjaGFyYWN0ZXJzIGluIGxlbmd0aC4gVGhlIHN1YiB2YWx1ZSBpcyBhIGNhc2Ugc2Vuc2l0aXZlXG4gICAgICAgKiBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSAxMDc2OTE1MDM1MDAwNjE1MDcxNTExMzA4MjM2N1xuICAgICAgICovXG4gICAgICBzdWI6IHN0cmluZztcbiAgICB9O1xuICAgIE9pZGNMb2dpblJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIENvbnRyb2xzIHdoYXQgY2FwYWJpbGl0aWVzIHRoaXMgc2Vzc2lvbiB3aWxsIGhhdmUuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwic2lnbjoqXCJcbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgc2NvcGVzOiBzdHJpbmdbXTtcbiAgICB9O1xuICAgIE9pZGNMb2dpblJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUb2tlbiB0byBiZSB1c2VkIGZvciBzaWduaW5nIGF1dGguIFJlcXVlc3RzIHRvIHNpZ25pbmcgZW5kcG9pbnRzXG4gICAgICAgKiBzaG91bGQgaW5jbHVkZSB0aGlzIHZhbHVlIGluIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyXG4gICAgICAgKi9cbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICBPcmdJbmZvOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZW4gZmFsc2UsIGFsbCBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbnMgaW52b2x2aW5nIGtleXMgaW4gdGhpcyBvcmcgYXJlIGRpc2FibGVkLiAqL1xuICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBSU0EgcHVibGljIGtleSB0byB1c2Ugd2hlbiBpbXBvcnRpbmcga2V5cyBpbnRvIHRoaXMgb3JnYW5pemF0aW9uLiBUaGlzIHN0cmluZyBpcyB0aGVcbiAgICAgICAqIGhleCBlbmNvZGluZyBvZiB0aGUgREVSIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBrZXkuXG4gICAgICAgKiBAZXhhbXBsZSAzMDgyMDIyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMjBmMDAzMDgyMDIwYTAyODIwMjAxMDBjODk3NjViOGYzNDdjYWFmYmVjMDlmY2IxNzc0MGUwMzJkODU0ZWM5OWYyZDljMTYxNjdiZTMzNTMzOWI0ZmRlYmExOGE3ZjEzZDhlOGI3YWU3ZDY4OWNhYjYzZDhlY2RmNTQ4ZjQ3NDZlYWNhZjk1YjYxZmVmNzZhZGU5ZjgxYjNjMDM4ODkxYzUyNTQyZmQzNTI2OTdiNjE4YWZiZWE2MTAzNzIzYzI4ZjJkYjQ1MGU5ZDg1MmJlMTZhNGRjMmNiYzk0NDJkYTlhNjYxMDA0NDAwOWUwNTZiYTkwNzI4ZjBiOTg4OGQ5YjAzNmU0OTNhYWVkMTY4Y2NmOTMwZmEyZjczMGIxN2ViM2FkNmY0NTVhNzkyYjc2MmM0N2YzZDNjNmI3YTdjNDU4NTU2YTU5MmU2ODg3OTE1OTlhNTc2YmYyMTQ5ZDhlOTYxNGRiNzc1ZTdhNDg2MDJkMjM3YTM0N2Q1Mzk5YzY4MWY3ZjdkOWM4MWY2YTY0ZTdjZmQzNTZiYmE1NDVkNDVlNTAyM2NhMWYwOWE2NmExZDQ1NTBmNjFjZjJjNDM2N2UxNDk5N2I1ZDc0OWJiMDMyNmE0NGQwNTgxMTllOGNhZjdmZDc5ZDUxN2ViMmQxMWRkZGIyZGIzMjlmMzUwNjk4ZjBmOTc4ZDVlMTUwYmI0MDJjOGJjNGM1ZWMzNmQ2ZjM4ZGIzZjNhMjA0ODEzY2RhOWY1MmRiY2VlODA5MjA0ZjhlMzVhNDU1YzBlMTEwZTEwZWVjNDFmNzM0ZjJkNTVhMDU4YTdhMjFmYTkwNjAyZjk0ZGE2ZGUyMzc4ZmY2MWU3YjM1NTBiNzdlNTNkNzVkN2IzZDNiMzljY2FiMGU1MTAxYjkxNmRhYjAxZGEwOTZmNzYyNzE3NWQ1YjY4YTFhNjQ2NGNlNWJlM2U5NWU3YzQ2NGQ2OWViMGI2NzUwNTc3MDVjMTFiYzc5YzM1NDMzMTNiMGQ5YzcwM2M1MGRjMWExNmRkOWI1NWU1NTk5ZTNiMDJlNTI3Yjg1OTM4ZTdiODFjNjVlNTY5NjBiY2Q3YzdhMjY2YjA3ZGMwNTEwN2ZkMGQ3ZDNjMjA4YTg3OGViMGZjNzRiMGQwMDdmNDIxZDBjNWIyOGNmNzhlYjQ0MWFhMDE2NmRjZWVlYWMyNTVkNjg2MjI0OTJmOWI1MjZhZTEzYzkzNzU0ZWE4ZWRhOTZmM2I3NjRiYTkzMWY4ZDQ5YzdkZThiMDBhYzUzZDk5M2FiOWIwOGZkMjg5MmQ4ZTgyY2MxYTk3NDZmMGI0MjZiMTkyNTZkMTNkNzgwNDQ1ZTE1MGNlODFkYTBiM2M5NmUzMjU1OWNiNDdjYjVjYjkzZjgwNTY1MDIwMzAxMDAwMVxuICAgICAgICovXG4gICAgICBrZXlfaW1wb3J0X2tleTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIHVuaXZlcnNhbGx5IHVuaXF1ZSBrZXktd3JhcHBpbmcta2V5IGlkZW50aWZpZXIuXG4gICAgICAgKiBUaGlzIHZhbHVlIGlzIHJlcXVpcmVkIHdoZW4gc2V0dGluZyB1cCBrZXkgZXhwb3J0LlxuICAgICAgICogQGV4YW1wbGUgbXJrLWZjZTA5NTI1ZTgxNTg3ZDIzNTIwZjExZTA3ZTJlOWQ5XG4gICAgICAgKi9cbiAgICAgIGt3a19pZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRGF0ZS90aW1lIChpbiBVVEMpIHdoZW4gbGFzdCAndW5zdGFrZScgd2FzIHBlcmZvcm1lZC4gVW5peCBlcG9jaCBpZiBub25lLlxuICAgICAgICogQGV4YW1wbGUgVE9ET1xuICAgICAgICovXG4gICAgICBsYXN0X3Vuc3Rha2U6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIEhvdyBtYW55ICd1bnN0YWtlJyBjYWxscyBoYXBwZW5lZCBvbiB0aGUgZGF5IHdoZW4gYGxhc3RfdW5zdGFrZWAgd2FzIHBlcmZvcm1lZC5cbiAgICAgICAqL1xuICAgICAgbGFzdF91bnN0YWtlX2RheV9jb3VudDogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBvcmdcbiAgICAgICAqIEBleGFtcGxlIG15X29yZ19uYW1lXG4gICAgICAgKi9cbiAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBvcmdhbml6YXRpb25cbiAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAqL1xuICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcmctd2lkZSBwb2xpY2llcyB0aGF0IGFyZSBjaGVja2VkIGJlZm9yZSBhIGtleSBpcyB1c2VkIGZvciBzaWduaW5nXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIk1heERhaWx5VW5zdGFrZVwiOiA1XG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W107XG4gICAgfTtcbiAgICBSYXRjaGV0Q29uZmlnOiB7XG4gICAgICBhdXRoX2xpZmV0aW1lPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNvbmRzXCJdO1xuICAgICAgcmVmcmVzaF9saWZldGltZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kc1wiXTtcbiAgICAgIHNlc3Npb25fbGlmZXRpbWU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZHNcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlY2VpcHQgdGhhdCBhbiBNRkEgcmVxdWVzdCB3YXMgYXBwcm92ZWQuICovXG4gICAgUmVjZWlwdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ29uZmlybWF0aW9uIGNvZGUgdGhlIHVzZXIgbmVlZHMgdG8gcHJlc2VudCB3aGVuIHJlc3VtaW5nIHRoZSBvcmlnaW5hbCByZXF1ZXN0LlxuICAgICAgICogQGV4YW1wbGUgYmExZDc1ZGQtZDk5OS00YzFiLTk0NGQtMjVjMjU0NDBjOGFmXG4gICAgICAgKi9cbiAgICAgIGNvbmZpcm1hdGlvbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIGxvZ2dlZC1pbiB1c2VyIHdob3NlIGFjdGlvbiBjcmVhdGVkIHRoaXMgYXBwcm92YWwuICovXG4gICAgICBmaW5hbF9hcHByb3Zlcjogc3RyaW5nO1xuICAgICAgdGltZXN0YW1wOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgfTtcbiAgICBSb2xlSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgcm9sZSBpcyBlbmFibGVkXG4gICAgICAgKiBAZXhhbXBsZSB0cnVlXG4gICAgICAgKi9cbiAgICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBDdWJlU2lnbmVyIElEcyBvZiB0aGUga2V5cyAqL1xuICAgICAga2V5czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlXaXRoUG9saWNpZXNcIl1bXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcm9sZSAobXVzdCBiZSBhbHBoYW51bWVyaWMpXG4gICAgICAgKiBAZXhhbXBsZSBteV9yb2xlXG4gICAgICAgKi9cbiAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSByb2xlXG4gICAgICAgKiBAZXhhbXBsZSBSb2xlI2JmZTNlY2NiLTczMWUtNDMwZC1iMWU1LWFjMTM2M2U2YjA2YlxuICAgICAgICovXG4gICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbGlzdCBvZiB1c2VycyB3aXRoIGFjY2VzcyB0byB0aGUgcm9sZVxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcIlVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXCIsXG4gICAgICAgKiAgIFwiVXNlciM1NTkzYzI1Yi01MmUyLTRmYjUtYjM5Yi05NmQ0MWQ2ODFkODJcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICB1c2Vyczogc3RyaW5nW107XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW5jcnlwdGVkIGtleSBtYXRlcmlhbCBmb3IgaW1wb3J0IHVzaW5nIGh5YnJpZCBlbmNyeXB0aW9uLlxuICAgICAqXG4gICAgICogVGhlIGltcG9ydGVkIGtleWluZyBtYXRlcmlhbCBpcyBlbmNyeXB0ZWQgdXNpbmcgW1hDaGFDaGEyMFBvbHkxMzA1XSwgd2hpY2hcbiAgICAgKiB3ZSBjaG9vc2UgZm9yIGl0cyBzcGVlZCBhbmQgc2lkZSBjaGFubmVsIHJlc2lzdGFuY2UsIGl0cyBhYmlsaXR5IHRvIGVuY3J5cHRcbiAgICAgKiB2ZXJ5IGxvbmcgbWVzc2FnZXMsIGFuZCBpdHMgc2FmZXR5IHdoZW4gdXNpbmcgcmFuZG9tIG5vbmNlcyBldmVuIGZvciBhIGxhcmdlXG4gICAgICogbnVtYmVyIG9mIG1lc3NhZ2VzLiBUaGUgbGF0dGVyIHNob3VsZCBub3QgaGFwcGVuIGluIHRoaXMgY2FzZSwgYnV0IHRoZSBjb3N0XG4gICAgICogaXMgbmVnbGlnaWJsZSBhbmQgdGhlIGJlbmVmaXQgaXMgdGhhdCB3ZSBrbm93IGl0J3Mgc2FmZSB0byB1c2UgcmFuZG9tIG5vbmNlcy5cbiAgICAgKlxuICAgICAqIFRoZSBYQ2hhQ2hhIGtleSBpcyBlbmNyeXB0ZWQgdXNpbmcgW1JTQUVTLU9BRVAtU0hBMjU2XSwgd2hpY2ggd2UgY2hvb3NlIGJlY2F1c2VcbiAgICAgKiBpdCdzIHRoZSBiZXN0IG9mIHRoZSBbYXZhaWxhYmxlIG9wdGlvbnMgZm9yIGFzeW1tZXRyaWMgZW5jcnlwdGlvbl1ba21zb3B0c11cbiAgICAgKiBpbiBBV1MgS01TLlxuICAgICAqXG4gICAgICogW1hDaGFDaGEyMFBvbHkxMzA1XTogaHR0cHM6Ly9kb2MubGlic29kaXVtLm9yZy9zZWNyZXQta2V5X2NyeXB0b2dyYXBoeS9hZWFkL2NoYWNoYTIwLXBvbHkxMzA1L3hjaGFjaGEyMC1wb2x5MTMwNV9jb25zdHJ1Y3Rpb25cbiAgICAgKiBbUlNBRVMtT0FFUC1TSEEyNTZdOiBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjODAxNyNzZWN0aW9uLTcuMVxuICAgICAqIFtrbXNvcHRzXTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2ttcy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvYXN5bW1ldHJpYy1rZXktc3BlY3MuaHRtbFxuICAgICAqL1xuICAgIFJzYU9hZXBYQ2hhQ2hhTWF0ZXJpYWw6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBrZXlpbmcgbWF0ZXJpYWwgdG8gYmUgaW1wb3J0ZWQsIGVuY3J5cHRlZCB3aXRoXG4gICAgICAgKiBbWENoYUNoYTIwUG9seTEzMDVdKGh0dHBzOi8vZG9jLmxpYnNvZGl1bS5vcmcvc2VjcmV0LWtleV9jcnlwdG9ncmFwaHkvYWVhZC9jaGFjaGEyMC1wb2x5MTMwNS94Y2hhY2hhMjAtcG9seTEzMDVfY29uc3RydWN0aW9uKS5cbiAgICAgICAqL1xuICAgICAgaWttX2VuYzogbnVtYmVyW107XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUga2V5LXdyYXBwaW5nIGtleSB1c2VkIHRvIGVuY3J5cHQgYGlrbV9lbmNgLCBlbmNyeXB0ZWQgd2l0aFxuICAgICAgICogW1JTQUVTLU9BRVAtU0hBMjU2XShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjODAxNyNzZWN0aW9uLTcuMSkuXG4gICAgICAgKi9cbiAgICAgIGt3a19lbmM6IG51bWJlcltdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbm9uY2UgdXNlZCB0byBnZW5lcmF0ZSBgaWttX2VuY2AuICovXG4gICAgICBub25jZTogbnVtYmVyW107XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICogQGRlc2NyaXB0aW9uIER1cmF0aW9uIG1lYXN1cmVkIGluIHNlY29uZHNcbiAgICAgKiBBIHdyYXBwZXIgdHlwZSBmb3Igc2VyaWFsaXphdGlvbiB0aGF0IGVuY29kZXMgYSBgRHVyYXRpb25gIGFzIGEgYHU2NGAgcmVwcmVzZW50aW5nIHRoZSBudW1iZXIgb2Ygc2Vjb25kcy5cbiAgICAgKi9cbiAgICBTZWNvbmRzOiBudW1iZXI7XG4gICAgU2lnblJlcXVlc3Q6IHtcbiAgICAgIG1lc3NhZ2U6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICB9O1xuICAgIFNvbGFuYVNpZ25SZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNpZ25SZXF1ZXN0XCJdICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIFN0YWtlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGNoYWluIG9uIHdoaWNoIHdlIHdpbGwgZGVwb3NpdFxuICAgICAgICogQGV4YW1wbGUgNVxuICAgICAgICovXG4gICAgICBjaGFpbl9pZDogbnVtYmVyO1xuICAgICAgZGVwb3NpdF90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcG9zaXRUeXBlXCJdO1xuICAgICAgdW5zYWZlX2NvbmY6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVW5zYWZlQ29uZlwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdmFsaWRhdG9yIEJMUyBwdWJsaWMga2V5IHRvIHVzZSwgb3IgYE5vbmVgIHRvIGdlbmVyYXRlIGEgZnJlc2ggb25lLlxuICAgICAgICogQGV4YW1wbGUgMHhhOTlhNzZlZDc3OTZmN2JlMjJkNWI3ZTg1ZGVlYjdjNTY3N2U4OGU1MTFlMGIzMzc2MThmOGM0ZWI2MTM0OWI0YmYyZDE1M2Y2NDlmN2I1MzM1OWZlOGI5NGEzOGU0NGNcbiAgICAgICAqL1xuICAgICAgdmFsaWRhdG9yX2tleTogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBldGhlcmV1bSBhZGRyZXNzIHRvIHdoaWNoIHdpdGhkcmF3biBmdW5kcyBnb1xuICAgICAgICogQGV4YW1wbGUgMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAgICAgKi9cbiAgICAgIHdpdGhkcmF3YWxfYWRkcjogc3RyaW5nO1xuICAgIH07XG4gICAgU3RhdHVzOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFVzZXJzIHdobyBhcmUgYWxsb3dlZCB0byBhcHByb3ZlLiBNdXN0IGJlIG5vbi1lbXB0eS4gKi9cbiAgICAgIGFsbG93ZWRfYXBwcm92ZXJzOiBzdHJpbmdbXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsb3dlZCBhcHByb3ZhbCB0eXBlcy4gV2hlbiBvbWl0dGVkLCBkZWZhdWx0cyB0byBhbnkuICovXG4gICAgICBhbGxvd2VkX21mYV90eXBlcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhVHlwZVwiXVtdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVXNlcnMgd2hvIGhhdmUgYWxyZWFkeSBhcHByb3ZlZCAqL1xuICAgICAgYXBwcm92ZWRfYnk6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogKHtcbiAgICAgICAgICBba2V5OiBzdHJpbmddOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFwcHJvdmFsSW5mb1wiXSB8IHVuZGVmaW5lZDtcbiAgICAgICAgfSkgfCB1bmRlZmluZWQ7XG4gICAgICB9O1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSG93IG1hbnkgdXNlcnMgbXVzdCBhcHByb3ZlXG4gICAgICAgKi9cbiAgICAgIGNvdW50OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBIb3cgbWFueSBhdXRoIGZhY3RvcnMgdG8gcmVxdWlyZSBwZXIgdXNlclxuICAgICAgICovXG4gICAgICBudW1fYXV0aF9mYWN0b3JzOiBudW1iZXI7XG4gICAgfTtcbiAgICBUb2tlbkluZm86IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU2Vzc2lvbiBJRC4gVXNlIGl0IHRvIHJldm9rZSBhIHNlc3Npb24uIENhbm5vdCBiZSB1c2VkIGZvciBhdXRoLiAqL1xuICAgICAgaGFzaDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUb2tlbnMgcHVycG9zZSAqL1xuICAgICAgcHVycG9zZTogc3RyaW5nO1xuICAgIH07XG4gICAgVG90cEFwcHJvdmVSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRPVFAgdmVyaWZpY2F0aW9uIGNvZGUgKi9cbiAgICAgIGNvZGU6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9ucyB0aGF0IHNob3VsZCBiZSBzZXQgb25seSBmb3IgbG9jYWwgZGV2bmV0IHRlc3RpbmcuICovXG4gICAgVW5zYWZlQ29uZjoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGhleC1lbmNvZGVkIGFkZHJlc3Mgb2YgdGhlIGRlcG9zaXQgY29udHJhY3QuIElmIG9taXR0ZWQsIGluZmVycmVkIGZyb20gYGNoYWluX2lkYFxuICAgICAgICogQGV4YW1wbGUgMHhmZjUwZWQzZDBlYzAzYWMwMWQ0Yzc5YWFkNzQ5MjhiZmY0OGE3YjJiXG4gICAgICAgKi9cbiAgICAgIGRlcG9zaXRfY29udHJhY3RfYWRkcjogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBoZXgtZW5jb2RlZCA0LWJ5dGUgZm9yayB2ZXJzaW9uXG4gICAgICAgKiBAZXhhbXBsZSAweDAwMDAxMDIwXG4gICAgICAgKi9cbiAgICAgIGdlbmVzaXNfZm9ya192ZXJzaW9uOiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFVuc3Rha2UgbWVzc2FnZSByZXF1ZXN0LlxuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgIFwiZXBvY2hcIjogXCIyNTZcIixcbiAgICAgKiAgIFwiZm9ya1wiOiB7XG4gICAgICogICAgIFwiY3VycmVudF92ZXJzaW9uXCI6IFwiMHgwMDAwMTAyMFwiLFxuICAgICAqICAgICBcImVwb2NoXCI6IFwiMFwiLFxuICAgICAqICAgICBcInByZXZpb3VzX3ZlcnNpb25cIjogXCIweDAwMDAxMDIwXCJcbiAgICAgKiAgIH0sXG4gICAgICogICBcImdlbmVzaXNfZGF0YVwiOiB7XG4gICAgICogICAgIFwiZ2VuZXNpc19mb3JrX3ZlcnNpb25cIjogXCIweDAwMDAxMDIwXCIsXG4gICAgICogICAgIFwiZ2VuZXNpc190aW1lXCI6IFwiMTY3OTU0MTY0MlwiLFxuICAgICAqICAgICBcImdlbmVzaXNfdmFsaWRhdG9yc19yb290XCI6IFwiMHgyNzBkNDNlNzRjZTM0MGRlNGJjYTJiMTkzNmJlY2EwZjRmNTQwOGQ5ZTc4YWVjNDg1MDkyMGJhZjY1OWQ1YjY5XCJcbiAgICAgKiAgIH0sXG4gICAgICogICBcIm5ldHdvcmtcIjogXCJnb2VybGlcIixcbiAgICAgKiAgIFwidmFsaWRhdG9yX2luZGV4XCI6IFwiMFwiXG4gICAgICogfVxuICAgICAqL1xuICAgIFVuc3Rha2VSZXF1ZXN0OiB7XG4gICAgICBlcG9jaDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaFwiXSB8IG51bGw7XG4gICAgICBmb3JrOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZvcmtcIl07XG4gICAgICBnZW5lc2lzX2RhdGE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiR2VuZXNpc0RhdGFcIl07XG4gICAgICBuZXR3b3JrOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk5ldHdvcmtcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0b3IgaW5kZXggKGB1aW50NjRgKSB0byBleGl0LiBZb3UgY2FuIGdldCB0aGUgdmFsaWRhdG9yIGluZGV4IGZyb20gdGhlIEJlYWNvbiBub2RlJ3NcbiAgICAgICAqIGAvZXRoL3YxL2JlYWNvbi9zdGF0ZXMvaGVhZC92YWxpZGF0b3JzL3twdWJrZXl9YCBlbmQtcG9pbnQuIFRoaXMgZW5kIHBvaW50IHJldHVybnMgYW5cbiAgICAgICAqIG9iamVjdCB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSB2YWxpZGF0b3IgKHdob3NlIHB1YmxpYyBrZXkgaXMgYHtwdWJrZXl9YCksXG4gICAgICAgKiBpbmNsdWRpbmcgdGhlIHZhbGlkYXRvciBpbmRleC4gVGhlIHNjaGVtYSBvZiB0aGlzIGVuZC1wb2ludCBpcyBkZWZpbmVkXG4gICAgICAgKiBbaGVyZV0oaHR0cHM6Ly9ldGhlcmV1bS5naXRodWIuaW8vYmVhY29uLUFQSXMvIy9CZWFjb24vZ2V0U3RhdGVWYWxpZGF0b3IpLlxuICAgICAgICogQGV4YW1wbGUgMzEzMzdcbiAgICAgICAqL1xuICAgICAgdmFsaWRhdG9yX2luZGV4OiBzdHJpbmc7XG4gICAgfTtcbiAgICBVcGRhdGVLZXlSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZXMgdGhlIGtleXMncyBgZW5hYmxlZGAgcHJvcGVydHkgdG8gdGhpcyB2YWx1ZS5cbiAgICAgICAqIE9uY2UgZGlzYWJsZWQsIGEga2V5IGNhbm5vdCBiZSB1c2VkIGZvciBzaWduaW5nLlxuICAgICAgICovXG4gICAgICBlbmFibGVkPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZXMga2V5J3Mgb3duZXIgdG8gdGhpcyB2YWx1ZS5cbiAgICAgICAqIFRoZSBuZXcgb3duZXIgbXVzdCBiZSBhbiBleGlzdGluZyB1c2VyIHdobyBpcyBhIG1lbWJlciBvZiB0aGUgc2FtZSBvcmcuXG4gICAgICAgKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlxuICAgICAgICovXG4gICAgICBvd25lcj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIGtleSdzIHBvbGljaWVzIChvbGQgcG9saWNpZXMgd2lsbCBiZSBvdmVyd3JpdHRlbiEpLlxuICAgICAgICogQGV4YW1wbGUgW11cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W10gfCBudWxsO1xuICAgIH07XG4gICAgVXBkYXRlT3JnUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIG9yZydzIGBlbmFibGVkYCBmaWVsZCB0byB0aGlzIHZhbHVlLiAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyBhbGlhcy4gIE9yZyBhbGlhc2VzIGFyZSBnbG9iYWxseSB1bmlxdWUuXG4gICAgICAgKiBAZXhhbXBsZSBteV9vcmdcbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIG9yZydzIHBvbGljaWVzIChvbGQgcG9saWNpZXMgd2lsbCBiZSBvdmVyd3JpdHRlbiEpLlxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJNYXhEYWlseVVuc3Rha2VcIjogNVxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJPcmlnaW5BbGxvd2xpc3RcIjogW1xuICAgICAgICogICAgICAgXCJodHRwczovL2V4YW1wbGUuY29tXCJcbiAgICAgICAqICAgICBdXG4gICAgICAgKiAgIH0sXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlNvdXJjZUlwQWxsb3dsaXN0XCI6IFtcbiAgICAgICAqICAgICAgIFwiMTAuMS4yLjMvOFwiLFxuICAgICAgICogICAgICAgXCIxNjkuMjU0LjE3LjEvMTZcIlxuICAgICAgICogICAgIF1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXSB8IG51bGw7XG4gICAgfTtcbiAgICBVcGRhdGVSb2xlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGVzIHRoZSByb2xlJ3MgYGVuYWJsZWRgIHByb3BlcnR5IHRvIHRoaXMgdmFsdWUuXG4gICAgICAgKiBPbmNlIGRpc2FibGVkLCBhIHJvbGUgY2Fubm90IGJlIHVzZWQ7IGFuZCBpdCdzIHRva2VucyBjYW5ub3QgYmUgdXNlZCBmb3Igc2lnbmluZy5cbiAgICAgICAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgIH07XG4gICAgVXNlcklkSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIncyBlbWFpbFxuICAgICAgICogQGV4YW1wbGUgYWxpY2VAZXhhbXBsZS5jb21cbiAgICAgICAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgdXNlclxuICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIFVzZXJJbmZvOiB7XG4gICAgICAvKiogQGV4YW1wbGUgYWxpY2VAZXhhbXBsZS5jb20gKi9cbiAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBtdWx0aS1mYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kcyBjb25maWd1cmVkIGZvciB0aGlzIHVzZXIgKi9cbiAgICAgIG1mYTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb25maWd1cmVkTWZhXCJdW107XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbGwgb3JnYW5pemF0aW9ucyB0aGUgdXNlciBiZWxvbmdzIHRvXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwiT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVwiXG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIG9yZ19pZHM6IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXJcbiAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgKi9cbiAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBbiBleGl0IHZvbHVudGFyaWx5IHN1Ym1pdHRlZCBhIHZhbGlkYXRvciB3aG8gd2lzaGVzIHRvIHdpdGhkcmF3LlxuICAgICAqIFRoZSBzY2hlbWEgZm9yIHRoaXMgbWVzc2FnZSBpcyBkZWZpbmVkXG4gICAgICogW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9jb25zZW5zdXMtc3BlY3MvYmxvYi92MS4wLjEvc3BlY3MvcGhhc2UwL2JlYWNvbi1jaGFpbi5tZCNzaWduZWR2b2x1bnRhcnlleGl0KS5cbiAgICAgKi9cbiAgICBWb2x1bnRhcnlFeGl0OiB7XG4gICAgICBlcG9jaDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEluZGV4IG9mIHRoZSBleGl0aW5nIHZhbGlkYXRvci5cbiAgICAgICAqIEBleGFtcGxlIDI1NlxuICAgICAgICovXG4gICAgICB2YWxpZGF0b3JfaW5kZXg6IHN0cmluZztcbiAgICB9O1xuICB9O1xuICByZXNwb25zZXM6IHtcbiAgICBBZGRUaGlyZFBhcnR5VXNlclJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmICovXG4gICAgICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEJsb2JTaWduUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBoZXgtZW5jb2RlZCBzaWduYXR1cmUuICovXG4gICAgICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgQnRjU2lnblJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBoZXgtZW5jb2RlZCBzaWduYXR1cmUgaW4gREVSIGZvcm1hdC5cbiAgICAgICAgICAgKiBAZXhhbXBsZSAweDMwNDUwMjIxMDBlMTJiZTM5MDRmNjY1Zjc1NWUxMDY3NDE2ODA1NDhmZWZjOWZlYmY0Y2ZmMzFjNWMwZWU0NjI3YjNjMWIzNWZlMDIyMDY2ZmRlOWEwYjE3ZTRjZDM4ZGE5ODNmYjBkNjA0Mjk0ZjAwZDBiZDQ3ZmNiNjQ5YzUyMTZmM2EyZThiN2FkMmQwMVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIENyZWF0ZUtleUltcG9ydEtleVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUltcG9ydEtleVwiXSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQW4gYXR0ZXN0YXRpb24gZG9jdW1lbnQgZnJvbSBhIHNlY3VyZSBlbmNsYXZlLCBpbmNsdWRpbmcgYW5cbiAgICAgICAgICAgKiBSU0Egc2lnbmluZyBrZXkgdXNlZCB0byBzaWduIHRoZSBjb250ZW50cyBvZiB0aGlzIG1lc3NhZ2UuXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW5jbGF2ZV9hdHRlc3RhdGlvbjogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBSU0EtUFNTLVNIQTI1NiBzaWduYXR1cmUgb24gdGhlIHB1YmxpYyBrZXkgYW5kIGVuY3J5cHRlZFxuICAgICAgICAgICAqIHNlY3JldHMgYXR0ZXN0aW5nIHRvIHRoZWlyIGdlbmVyYXRpb24gaW5zaWRlIGEgc2VjdXJlIGVuY2xhdmUuXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW5jbGF2ZV9zaWduYXR1cmU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBDcmVhdGVLZXlSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGluZm8gYWJvdXQgdGhlIGNyZWF0ZWQga2V5cyAqL1xuICAgICAgICAgIGtleXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5mb1wiXVtdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5ld2x5IGNyZWF0ZWQgcm9sZSBpbmZvcm1hdGlvbiAqL1xuICAgIENyZWF0ZVJvbGVSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSByb2xlLlxuICAgICAgICAgICAqIEBleGFtcGxlIG15X3JvbGVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBuZXdseSBjcmVhdGVkIHJvbGVcbiAgICAgICAgICAgKiBAZXhhbXBsZSBSb2xlI2JmZTNlY2NiLTczMWUtNDMwZC1iMWU1LWFjMTM2M2U2YjA2YlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBDcmVhdGVUb2tlblJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2Vzc2lvbl9pbmZvOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNsaWVudFNlc3Npb25JbmZvXCJdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUb2tlbiB0byBiZSB1c2VkIGZvciBzaWduaW5nIGF1dGguIFJlcXVlc3RzIHRvIHNpZ25pbmcgZW5kcG9pbnRzXG4gICAgICAgICAgICogc2hvdWxkIGluY2x1ZGUgdGhpcyB2YWx1ZSBpbiB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlclxuICAgICAgICAgICAqL1xuICAgICAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgRW1wdHlJbXBsOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgRXRoMVNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBSTFAgZW5jb2Rpbmcgb2YgdGhlIHRyYW5zYWN0aW9uIGFuZCBpdHMgc2lnbmF0dXJlXG4gICAgICAgICAgICogQGV4YW1wbGUgMHgyMjg5NTExODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyMDFkNTg2NTZiMGUyMmFhYTY4ZmRjNjkyZGI0MTk3OTA5OGMzODg2ZWQzMzAxNWQ3NDY3ZGU5MjExNjA5Y2RhYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwOGIwYzI5MDAzMjRkM2ZmOWFkZmJhN2ZkZmU1YWYzZjliMmNkYmVlZjdiMjgwNDM3YmJmMWIxYzU5YTA5M2Q2MTVhZmUzZTVkZmVkOTYyMmI1NDBjZGQ5YjQ5YjNjNWFkMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDkwMTFhZGJjYzNiYzljMDMwN2JiMDdmMzdkZGExYTFhOWM2OWQyZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjA5MDNkYjg1MjU2NzRiOGU3OTA0ZjliN2Q3ZDllYzU1YTBhNDJkMzNjZjU4YmUyNTQ2OWIwYzIxYmJiNmQwNjE3MmJjNWJiNWZkMWFlZDhlNGYzNTkzNjk2ODk1ODExNmIwNjE5NTUzYzJjYjFjNTJlNzMyMzA3NGM2ZjhlYjNkNWE3MDc0ZmM2NTgwMTQ4ZGY5MDc4MzdmYTNiMTY0YWQ3ZmJjMjI4OGRhZDFlOGE1YjAyMTA5NWI1N2M4YTM2ZDRcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBybHBfc2lnbmVkX3R4OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgRXRoMlNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXggZW5jb2RlZCBzaWduYXR1cmUgcHJlZml4ZWQgd2l0aCAweCBlLmcuIFwiMHgwMDAwLi4uXCJcbiAgICAgICAgICAgKiBAZXhhbXBsZSAweGI0ZjJlZjlkMTJhNTRlMWY1Njk1OTZjMDdjOTdkNmQ3MzA1MzViNmZmYzBkMjg3NzYxZGM3ODEwM2E4NjMyNjc4MjQ3MWEwNGM3NWNlN2E2ZmFlYTA4Y2E5YTRhMDgzMDAzMWNkY2I4OTNkYTg3MTFkNTRhYTIyNjE5ZjFhN2U3MWI4MTg1ZGRmNGM2YmZkOWJhYmJkNzM1OTYwZTM1ZTU2YmQ2ZWViODk2MjViMDQ4NTBlN2E5ZWY4ODQ2ZTU0OVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEdldEtleXNJbk9yZ1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAga2V5czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJbmZvXCJdW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgR2V0VXNlcnNJbk9yZ1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbGlzdCBvZiB1c2VycyBpbiB0aGUgb3JnICovXG4gICAgICAgICAgdXNlcnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlcklkSW5mb1wiXVtdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSB3cmFwcGVkIGtleS1pbXBvcnQga2V5ICovXG4gICAgS2V5SW1wb3J0S2V5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYXNlNjQtZW5jb2RlZCwgZW5jcnlwdGVkIGRhdGEga2V5LiAqL1xuICAgICAgICAgIGRrX2VuYzogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gRXhwaXJhdGlvbiB0aW1lc3RhbXAgZXhwcmVzc2VkIGFzIHNlY29uZHMgc2luY2UgdGhlIFVOSVggZXBvY2guXG4gICAgICAgICAgICovXG4gICAgICAgICAgZXhwaXJlczogbnVtYmVyO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZXBoZW1lcmFsIHB1YmxpYyBrZXkgdG8gd2hpY2ggYW4gaW1wb3J0ZWQga2V5IHNob3VsZCBiZSBlbmNyeXB0ZWQuXG4gICAgICAgICAgICogVGhpcyBpcyBhIFAzODQgcHVibGljIGtleSBpbiBiYXNlNjQtZW5jb2RlZCB1bmNvbXByZXNzZWQgU0VDRyBmb3JtYXQuXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHVibGljX2tleTogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmFzZTY0LWVuY29kZWQsIGVuY3J5cHRlZCBzZWNyZXQga2V5LiAqL1xuICAgICAgICAgIHNrX2VuYzogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEtleUluZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIGtleSBpcyBlbmFibGVkIChvbmx5IGVuYWJsZWQga2V5cyBtYXkgYmUgdXNlZCBmb3Igc2lnbmluZykgKi9cbiAgICAgICAgICBlbmFibGVkOiBib29sZWFuO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGtleTogXCJLZXkjXCIgZm9sbG93ZWQgYnkgYSB1bmlxdWUgaWRlbnRpZmllciBzcGVjaWZpYyB0b1xuICAgICAgICAgICAqIHRoZSB0eXBlIG9mIGtleSAoc3VjaCBhcyBhIHB1YmxpYyBrZXkgZm9yIEJMUyBvciBhbiBldGhlcmV1bSBhZGRyZXNzIGZvciBTZWNwKVxuICAgICAgICAgICAqIEBleGFtcGxlIEtleSMweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgICAgICBrZXlfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlUeXBlXCJdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBIHVuaXF1ZSBpZGVudGlmaWVyIHNwZWNpZmljIHRvIHRoZSB0eXBlIG9mIGtleSwgc3VjaCBhcyBhIHB1YmxpYyBrZXkgb3IgYW4gZXRoZXJldW0gYWRkcmVzc1xuICAgICAgICAgICAqIEBleGFtcGxlIDB4OGUzNDg0Njg3ZTY2Y2RkMjZjZjA0YzM2NDc2MzNhYjRmMzU3MDE0OFxuICAgICAgICAgICAqL1xuICAgICAgICAgIG1hdGVyaWFsX2lkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIE93bmVyIG9mIHRoZSBrZXlcbiAgICAgICAgICAgKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlxuICAgICAgICAgICAqL1xuICAgICAgICAgIG93bmVyOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEtleSBwb2xpY3lcbiAgICAgICAgICAgKiBAZXhhbXBsZSBbXVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHBvbGljeTogUmVjb3JkPHN0cmluZywgbmV2ZXI+W107XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkLCBzZXJpYWxpemVkIHB1YmxpYyBrZXkuIFRoZSBmb3JtYXQgdXNlZCBkZXBlbmRzIG9uIHRoZSBrZXkgdHlwZTpcbiAgICAgICAgICAgKiAtIHNlY3AyNTZrMSBrZXlzIHVzZSA2NS1ieXRlIHVuY29tcHJlc3NlZCBTRUNHIGZvcm1hdDtcbiAgICAgICAgICAgKiAtIEJMUyBrZXlzIHVzZSA0OC1ieXRlIGNvbXByZXNzZWQgQkxTMTItMzgxIChaQ2FzaCkgZm9ybWF0O1xuICAgICAgICAgICAqIC0gZWQyNTUxOSBrZXlzIHVzZSB0aGUgY2Fub25pY2FsIDY0LWJ5dGUgZW5jb2Rpbmcgc3BlY2lmaWVkIGluIFJGQyA4MDMyLlxuICAgICAgICAgICAqIEBleGFtcGxlIDB4MDRkMjY4OGI2YmMyY2U3Zjk4NzliOWU3NDVmM2M0ZGMxNzc5MDhjNWNlZjBjMWI2NGNmZjE5YWU3ZmYyN2RlZTYyM2M2NGZlOWQ5YzMyNWM3ZmJiYzc0OGJiZDVmNjA3Y2UxNGRkODNlMjhlYmJiYjdkM2U3ZjJmZmI3MGE3OTQzMVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHB1YmxpY19rZXk6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHB1cnBvc2UgZm9yIHdoaWNoIHRoZSBrZXkgY2FuIGJlIHVzZWQgKGUuZy4sIGNoYWluIGlkIGZvciB3aGljaCB0aGUga2V5IGlzIGFsbG93ZWQgdG8gc2lnbiBtZXNzYWdlcylcbiAgICAgICAgICAgKiBAZXhhbXBsZSBFdGgyVmFsaWRhdG9yKDEpXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHVycG9zZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEtleUluZm9zOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAga2V5czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJbmZvXCJdW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgTGlzdFJvbGVzUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCByb2xlcyBpbiBhbiBvcmdhbml6YXRpb24uICovXG4gICAgICAgICAgcm9sZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUm9sZUluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBMaXN0VG9rZW5zUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICB0b2tlbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG9rZW5JbmZvXCJdW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXR1cm5lZCBhcyBhIHJlc3BvbnNlIGZyb20gbXVsdGlwbGUgcm91dGVzIChlLmcuLCAnZ2V0IG1mYScsICdhcHByb3ZlIG1mYScsICdhcHByb3ZlIHRvdHAnKS4gKi9cbiAgICBNZmFSZXF1ZXN0SW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIGV4cGlyZXNfYXQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFwcHJvdmFsIHJlcXVlc3QgSUQuICovXG4gICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICByZWNlaXB0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJlY2VpcHRcIl0gfCBudWxsO1xuICAgICAgICAgIHJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSHR0cFJlcXVlc3RcIl07XG4gICAgICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN0YXR1c1wiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBPaWRjTG9naW5SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUb2tlbiB0byBiZSB1c2VkIGZvciBzaWduaW5nIGF1dGguIFJlcXVlc3RzIHRvIHNpZ25pbmcgZW5kcG9pbnRzXG4gICAgICAgICAgICogc2hvdWxkIGluY2x1ZGUgdGhpcyB2YWx1ZSBpbiB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlclxuICAgICAgICAgICAqL1xuICAgICAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgT3JnSW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hlbiBmYWxzZSwgYWxsIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyBpbnZvbHZpbmcga2V5cyBpbiB0aGlzIG9yZyBhcmUgZGlzYWJsZWQuICovXG4gICAgICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFJTQSBwdWJsaWMga2V5IHRvIHVzZSB3aGVuIGltcG9ydGluZyBrZXlzIGludG8gdGhpcyBvcmdhbml6YXRpb24uIFRoaXMgc3RyaW5nIGlzIHRoZVxuICAgICAgICAgICAqIGhleCBlbmNvZGluZyBvZiB0aGUgREVSIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBrZXkuXG4gICAgICAgICAgICogQGV4YW1wbGUgMzA4MjAyMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDIwZjAwMzA4MjAyMGEwMjgyMDIwMTAwYzg5NzY1YjhmMzQ3Y2FhZmJlYzA5ZmNiMTc3NDBlMDMyZDg1NGVjOTlmMmQ5YzE2MTY3YmUzMzUzMzliNGZkZWJhMThhN2YxM2Q4ZThiN2FlN2Q2ODljYWI2M2Q4ZWNkZjU0OGY0NzQ2ZWFjYWY5NWI2MWZlZjc2YWRlOWY4MWIzYzAzODg5MWM1MjU0MmZkMzUyNjk3YjYxOGFmYmVhNjEwMzcyM2MyOGYyZGI0NTBlOWQ4NTJiZTE2YTRkYzJjYmM5NDQyZGE5YTY2MTAwNDQwMDllMDU2YmE5MDcyOGYwYjk4ODhkOWIwMzZlNDkzYWFlZDE2OGNjZjkzMGZhMmY3MzBiMTdlYjNhZDZmNDU1YTc5MmI3NjJjNDdmM2QzYzZiN2E3YzQ1ODU1NmE1OTJlNjg4NzkxNTk5YTU3NmJmMjE0OWQ4ZTk2MTRkYjc3NWU3YTQ4NjAyZDIzN2EzNDdkNTM5OWM2ODFmN2Y3ZDljODFmNmE2NGU3Y2ZkMzU2YmJhNTQ1ZDQ1ZTUwMjNjYTFmMDlhNjZhMWQ0NTUwZjYxY2YyYzQzNjdlMTQ5OTdiNWQ3NDliYjAzMjZhNDRkMDU4MTE5ZThjYWY3ZmQ3OWQ1MTdlYjJkMTFkZGRiMmRiMzI5ZjM1MDY5OGYwZjk3OGQ1ZTE1MGJiNDAyYzhiYzRjNWVjMzZkNmYzOGRiM2YzYTIwNDgxM2NkYTlmNTJkYmNlZTgwOTIwNGY4ZTM1YTQ1NWMwZTExMGUxMGVlYzQxZjczNGYyZDU1YTA1OGE3YTIxZmE5MDYwMmY5NGRhNmRlMjM3OGZmNjFlN2IzNTUwYjc3ZTUzZDc1ZDdiM2QzYjM5Y2NhYjBlNTEwMWI5MTZkYWIwMWRhMDk2Zjc2MjcxNzVkNWI2OGExYTY0NjRjZTViZTNlOTVlN2M0NjRkNjllYjBiNjc1MDU3NzA1YzExYmM3OWMzNTQzMzEzYjBkOWM3MDNjNTBkYzFhMTZkZDliNTVlNTU5OWUzYjAyZTUyN2I4NTkzOGU3YjgxYzY1ZTU2OTYwYmNkN2M3YTI2NmIwN2RjMDUxMDdmZDBkN2QzYzIwOGE4NzhlYjBmYzc0YjBkMDA3ZjQyMWQwYzViMjhjZjc4ZWI0NDFhYTAxNjZkY2VlZWFjMjU1ZDY4NjIyNDkyZjliNTI2YWUxM2M5Mzc1NGVhOGVkYTk2ZjNiNzY0YmE5MzFmOGQ0OWM3ZGU4YjAwYWM1M2Q5OTNhYjliMDhmZDI4OTJkOGU4MmNjMWE5NzQ2ZjBiNDI2YjE5MjU2ZDEzZDc4MDQ0NWUxNTBjZTgxZGEwYjNjOTZlMzI1NTljYjQ3Y2I1Y2I5M2Y4MDU2NTAyMDMwMTAwMDFcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBrZXlfaW1wb3J0X2tleTogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgb3JnYW5pemF0aW9uJ3MgdW5pdmVyc2FsbHkgdW5pcXVlIGtleS13cmFwcGluZy1rZXkgaWRlbnRpZmllci5cbiAgICAgICAgICAgKiBUaGlzIHZhbHVlIGlzIHJlcXVpcmVkIHdoZW4gc2V0dGluZyB1cCBrZXkgZXhwb3J0LlxuICAgICAgICAgICAqIEBleGFtcGxlIG1yay1mY2UwOTUyNWU4MTU4N2QyMzUyMGYxMWUwN2UyZTlkOVxuICAgICAgICAgICAqL1xuICAgICAgICAgIGt3a19pZDogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBEYXRlL3RpbWUgKGluIFVUQykgd2hlbiBsYXN0ICd1bnN0YWtlJyB3YXMgcGVyZm9ybWVkLiBVbml4IGVwb2NoIGlmIG5vbmUuXG4gICAgICAgICAgICogQGV4YW1wbGUgVE9ET1xuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfdW5zdGFrZTogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSG93IG1hbnkgJ3Vuc3Rha2UnIGNhbGxzIGhhcHBlbmVkIG9uIHRoZSBkYXkgd2hlbiBgbGFzdF91bnN0YWtlYCB3YXMgcGVyZm9ybWVkLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfdW5zdGFrZV9kYXlfY291bnQ6IG51bWJlcjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBvcmdcbiAgICAgICAgICAgKiBAZXhhbXBsZSBteV9vcmdfbmFtZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIG9yZ2FuaXphdGlvblxuICAgICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gT3JnLXdpZGUgcG9saWNpZXMgdGhhdCBhcmUgY2hlY2tlZCBiZWZvcmUgYSBrZXkgaXMgdXNlZCBmb3Igc2lnbmluZ1xuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJNYXhEYWlseVVuc3Rha2VcIjogNVxuICAgICAgICAgICAqICAgfVxuICAgICAgICAgICAqIF1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBSZWZyZXNoUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzZXNzaW9uX2luZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2xpZW50U2Vzc2lvbkluZm9cIl07XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIE5ldyB0b2tlbiB0byBiZSB1c2VkIGZvciBzaWduaW5nIGF1dGguIFJlcXVlc3RzIHRvIHNpZ25pbmcgZW5kcG9pbnRzXG4gICAgICAgICAgICogc2hvdWxkIGluY2x1ZGUgdGhpcyB2YWx1ZSBpbiB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlclxuICAgICAgICAgICAqL1xuICAgICAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUmV2b2tlVG9rZW5SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHRva2VuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb2tlbkluZm9cIl0gfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFJldm9rZVRva2Vuc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUb2tlbnMgdGhhdCB3ZXJlIHJldm9rZWQuICovXG4gICAgICAgICAgcmV2b2tlZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb2tlbkluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBSb2xlSW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSByb2xlIGlzIGVuYWJsZWRcbiAgICAgICAgICAgKiBAZXhhbXBsZSB0cnVlXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBDdWJlU2lnbmVyIElEcyBvZiB0aGUga2V5cyAqL1xuICAgICAgICAgIGtleXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5V2l0aFBvbGljaWVzXCJdW107XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcm9sZSAobXVzdCBiZSBhbHBoYW51bWVyaWMpXG4gICAgICAgICAgICogQGV4YW1wbGUgbXlfcm9sZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHJvbGVcbiAgICAgICAgICAgKiBAZXhhbXBsZSBSb2xlI2JmZTNlY2NiLTczMWUtNDMwZC1iMWU1LWFjMTM2M2U2YjA2YlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2YgdXNlcnMgd2l0aCBhY2Nlc3MgdG8gdGhlIHJvbGVcbiAgICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAgICogICBcIlVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXCIsXG4gICAgICAgICAgICogICBcIlVzZXIjNTU5M2MyNWItNTJlMi00ZmI1LWIzOWItOTZkNDFkNjgxZDgyXCJcbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgdXNlcnM6IHN0cmluZ1tdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFNvbGFuYVNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGhleC1lbmNvZGVkIHNpZ25hdHVyZS4gKi9cbiAgICAgICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBTdGFrZVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB2YWxpZGF0b3Iga2V5IGlkIChcIktleSMuLi5cIilcbiAgICAgICAgICAgKiBAZXhhbXBsZSBLZXkjZGIxNzMxZjgtMzY1OS00NWMwLTg4NWItZTExZTFmNWI3YmUyXG4gICAgICAgICAgICovXG4gICAgICAgICAgY3JlYXRlZF92YWxpZGF0b3Jfa2V5X2lkOiBzdHJpbmc7XG4gICAgICAgICAgZGVwb3NpdF90eDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJEZXBvc2l0VHhuXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFRvdHBJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFN0YW5kYXJkIFRPVFAgdXJsIHdoaWNoIGluY2x1ZGVzIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvIGluaXRpYWxpemUgVE9UUC5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBvdHBhdXRoOi8vdG90cC9DdWJpc3Q6YWxpY2UtJTQwZXhhbXBsZS5jb20/c2VjcmV0PURBSEY3S0NPVFFXU09NSzRYRkVNTkhYTzRKNDMzT0Q3Jmlzc3Vlcj1DdWJpc3RcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB0b3RwX3VybDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBVbnN0YWtlIHJlc3BvbnNlcyBhcmUgc2lnbmVkIHZvbHVudGFyeSBleGl0IG1lc3NhZ2VzLlxuICAgICAqIFRoZSBzY2hlbWEgZm9yIHRoaXMgbWVzc2FnZSBpcyBkZWZpbmVkXG4gICAgICogW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9jb25zZW5zdXMtc3BlY3MvYmxvYi92MS4wLjEvc3BlY3MvcGhhc2UwL2JlYWNvbi1jaGFpbi5tZCNzaWduZWR2b2x1bnRhcnlleGl0KS5cbiAgICAgKiBUaGlzIG1lc3NhZ2UgY2FuIGJlIGRpcmVjdGx5IFBPU1RlZCB0byB0aGUgQmVhY29uIG5vZGUnc1xuICAgICAqIGAvZXRoL3YxL2JlYWNvbi9wb29sL3ZvbHVudGFyeV9leGl0c2AgZW5kLXBvaW50IChzZWUgZXhwZWN0ZWQgc2NoZW1hXG4gICAgICogW2hlcmVdKGh0dHBzOi8vZXRoZXJldW0uZ2l0aHViLmlvL2JlYWNvbi1BUElzLyMvQmVhY29uL3N1Ym1pdFBvb2xWb2x1bnRhcnlFeGl0KSkuXG4gICAgICovXG4gICAgVW5zdGFrZVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgbWVzc2FnZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJWb2x1bnRhcnlFeGl0XCJdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBCTFMgc2lnbmF0dXJlLlxuICAgICAgICAgICAqIEBleGFtcGxlIDB4OTEwYzdjZDUzN2VkOTFjYzhjNGE4MmYzY2JkODMyZTliZThjMjRhMjJlOWM4NmRmNDc5ZjdjZTQyMDI1ZWE2YTA5NjE5YjQxOGI2NjZhMDYwZTI2MGQyYWFlMzFiOGU1MGU5ZDA1Y2EzNDQyYzdlZWQzYjUwN2U1MjA3ZTE0Njc0Mjc1ZjY4YzJiYTg0YzRiZjZiOGRkMzY0YTMwNGFjYWM4Y2ZhYjM2ODFlMjUxNGI0NDAwZjkyNDJiYzYxMTY0XG4gICAgICAgICAgICovXG4gICAgICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgVXBkYXRlT3JnUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSAqL1xuICAgICAgICAgIGVuYWJsZWQ/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgb3JnIChtdXN0IGJlIGFscGhhbnVtZXJpYylcbiAgICAgICAgICAgKiBAZXhhbXBsZSBteV9vcmdfbmFtZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIG9yZ2FuaXphdGlvblxuICAgICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiBvcmctd2lkZSBwb2xpY2llc1xuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJNYXhEYWlseVVuc3Rha2VcIjogNVxuICAgICAgICAgICAqICAgfSxcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJPcmlnaW5BbGxvd2xpc3RcIjogW1xuICAgICAgICAgICAqICAgICAgIFwiaHR0cHM6Ly9leGFtcGxlLmNvbVwiXG4gICAgICAgICAgICogICAgIF1cbiAgICAgICAgICAgKiAgIH1cbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W10gfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFVzZXJJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIGFsaWNlQGV4YW1wbGUuY29tICovXG4gICAgICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBtdWx0aS1mYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kcyBjb25maWd1cmVkIGZvciB0aGlzIHVzZXIgKi9cbiAgICAgICAgICBtZmE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29uZmlndXJlZE1mYVwiXVtdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBbGwgb3JnYW5pemF0aW9ucyB0aGUgdXNlciBiZWxvbmdzIHRvXG4gICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAqICAgXCJPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXCJcbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgb3JnX2lkczogc3RyaW5nW107XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyXG4gICAgICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIHBhcmFtZXRlcnM6IG5ldmVyO1xuICByZXF1ZXN0Qm9kaWVzOiBuZXZlcjtcbiAgaGVhZGVyczogbmV2ZXI7XG4gIHBhdGhJdGVtczogbmV2ZXI7XG59XG5cbmV4cG9ydCB0eXBlIGV4dGVybmFsID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG5leHBvcnQgaW50ZXJmYWNlIG9wZXJhdGlvbnMge1xuXG4gIC8qKlxuICAgKiBVc2VyIEluZm9cbiAgICogQGRlc2NyaXB0aW9uIFVzZXIgSW5mb1xuICAgKlxuICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgdXNlci5cbiAgICovXG4gIGFib3V0TWU6IHtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlVzZXJJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBPcmdcbiAgICogQGRlc2NyaXB0aW9uIEdldCBPcmdcbiAgICpcbiAgICogUmV0cmlldmVzIGluZm9ybWF0aW9uIGFib3V0IGFuIG9yZ2FuaXphdGlvbi5cbiAgICovXG4gIGdldE9yZzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk9yZ0luZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVXBkYXRlIE9yZ1xuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIE9yZ1xuICAgKlxuICAgKiBVcGRhdGUgb3JnYW5pemF0aW9uIGF0dHJpYnV0ZXMgKGVuYWJsZWQgZmxhZywgbmFtZSwgYW5kIHBvbGljaWVzKS5cbiAgICovXG4gIHVwZGF0ZU9yZzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVcGRhdGVPcmdSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVXBkYXRlT3JnUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBCaXRjb2luIFRyYW5zYWN0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIEJpdGNvaW4gVHJhbnNhY3Rpb25cbiAgICpcbiAgICogU2lnbnMgYSBCaXRjb2luIHRyYW5zYWN0aW9uIHdpdGggYSBnaXZlbiBrZXkuXG4gICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgKi9cbiAgYnRjU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBiZWNoMzIgZW5jb2Rpbmcgb2YgdGhlIHB1YmxpYyBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgYmMxcTVwNXFrYWU3N2x5ODBrcjRweWZ5dGRxbTdyZjA4ZGRoZGVqbDlnXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCdGNTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkJ0Y1NpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlIEtleS1JbXBvcnQgS2V5XG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgS2V5LUltcG9ydCBLZXlcbiAgICpcbiAgICogR2VuZXJhdGUgYW4gZXBoZW1lcmFsIGtleSB0aGF0IGEgY2xpZW50IGNhbiB1c2UgZm9yIGtleS1pbXBvcnQgZW5jcnlwdGlvbi5cbiAgICovXG4gIGNyZWF0ZUtleUltcG9ydEtleToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNyZWF0ZUtleUltcG9ydEtleVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEltcG9ydCBLZXlcbiAgICogQGRlc2NyaXB0aW9uIEltcG9ydCBLZXlcbiAgICpcbiAgICogU2VjdXJlbHkgaW1wb3J0cyBhbiBleGlzdGluZyBrZXkgdXNpbmcgYSBwcmV2aW91c2x5IGdlbmVyYXRlZCBrZXktaW1wb3J0IGtleS5cbiAgICovXG4gIGltcG9ydEtleToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbXBvcnRLZXlSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQ3JlYXRlS2V5UmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW52aXRlIFVzZXJcbiAgICogQGRlc2NyaXB0aW9uIEludml0ZSBVc2VyXG4gICAqXG4gICAqIENyZWF0ZXMgYSBuZXcgdXNlciBpbiBhbiBleGlzdGluZyBvcmcgYW5kIHNlbmRzIHRoYXQgdXNlciBhbiBpbnZpdGUgZW1haWwuXG4gICAqL1xuICBpbnZpdGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSW52aXRlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IEtleXNcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgS2V5c1xuICAgKlxuICAgKiBHZXRzIHRoZSBsaXN0IG9mIG93bmVkIGtleXMgaW4gYSBnaXZlbiBvcmcuXG4gICAqL1xuICBsaXN0S2V5c0luT3JnOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gRmlsdGVyIGJ5IGtleSB0eXBlXG4gICAgICAgICAqIEBleGFtcGxlIFNlY3BFdGhBZGRyXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfdHlwZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJHZXRLZXlzSW5PcmdSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbXBvcnQgS2V5IChEZXByZWNhdGVkKVxuICAgKiBAZGVzY3JpcHRpb24gSW1wb3J0IEtleSAoRGVwcmVjYXRlZClcbiAgICpcbiAgICogU2VjdXJlbHkgaW1wb3J0cyBhbiBleGlzdGluZyBrZXkuIFRoaXMgQVBJIGlzIGRlcHJlY2F0ZWQ7IHBsZWFzZSB1c2UgdGhlIG5ldyB2ZXJzaW9uLlxuICAgKi9cbiAgaW1wb3J0S2V5TGVnYWN5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkltcG9ydEtleUxlZ2FjeVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJDcmVhdGVLZXlSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgS2V5XG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgS2V5XG4gICAqXG4gICAqIENyZWF0ZXMgb25lIG9yIG1vcmUgbmV3IGtleXMgb2YgdGhlIHNwZWNpZmllZCB0eXBlIChCTFMgb3IgU2VjcCkuXG4gICAqL1xuICBjcmVhdGVLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlS2V5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNyZWF0ZUtleVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExlZ2FjeSBMaXN0IEtleXNcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQGRlc2NyaXB0aW9uIExlZ2FjeSBMaXN0IEtleXNcbiAgICpcbiAgICogVGhpcyByb3V0ZSBpcyBkZXByZWNhdGVkLiBVc2UgYEdFVCAvdjAvb3JnLzxvcmdfaWQ+L2tleXM/PGtleV90eXBlPmBcbiAgICovXG4gIGxpc3RLZXlzTGVnYWN5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkdldEtleXNJbk9yZ1JlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJHZXRLZXlzSW5PcmdSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgS2V5XG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgS2V5XG4gICAqXG4gICAqIFJldHVybnMgdGhlIHByb3BlcnRpZXMgb2YgYSBrZXkuXG4gICAqL1xuICBnZXRLZXlJbk9yZzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUga2V5XG4gICAgICAgICAqIEBleGFtcGxlIEtleSMweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiS2V5SW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBVcGRhdGUgS2V5XG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgS2V5XG4gICAqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIGEga2V5LiAgVGhlIHVzZXIgbXVzdCBiZSB0aGUgb3duZXIgb2YgdGhlIGtleSBvciBvcmdhbml6YXRpb24gdG8gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICovXG4gIHVwZGF0ZUtleToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUga2V5XG4gICAgICAgICAqIEBleGFtcGxlIEtleSMweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVwZGF0ZUtleVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJLZXlJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldHMgYSBQZW5kaW5nIE1GQSBSZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgUGVuZGluZyBNRkEgUmVxdWVzdFxuICAgKlxuICAgKiBSZXRyaWV2ZXMgYW5kIHJldHVybnMgYSBwZW5kaW5nIE1GQSByZXF1ZXN0IGJ5IGl0cyBpZC5cbiAgICovXG4gIG1mYUdldDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgYXBwcm92YWxcbiAgICAgICAgICogQGV4YW1wbGUgLi4uXG4gICAgICAgICAqL1xuICAgICAgICBtZmFfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEFwcHJvdmUgYSBQZW5kaW5nIE1GQSBSZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZlIGEgUGVuZGluZyBNRkEgUmVxdWVzdFxuICAgKlxuICAgKiBBZGRzIHRoZSBjdXJyZW50IHVzZXIgYXMgYW4gYXBwcm92ZXIgb2YgYSBwZW5kaW5nIE1GQSByZXF1ZXN0IG9mIHRoZSBbU3RhdHVzOjpSZXF1aXJlZEFwcHJvdmVyc10ga2luZC5cbiAgICogSWYgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBhcHByb3ZlcnMgaXMgcmVhY2hlZCwgdGhlIE1GQSByZXF1ZXN0IGlzIGFwcHJvdmVkO1xuICAgKiB0aGUgY29uZmlybWF0aW9uIHJlY2VpcHQgY2FuIGJlIHVzZWQgdG8gcmVzdW1lIHRoZSBvcmlnaW5hbCBIVFRQIHJlcXVlc3QuXG4gICAqL1xuICBtZmFBcHByb3ZlQ3M6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIE1GQSBhcHByb3ZhbCByZXF1ZXN0XG4gICAgICAgICAqIEBleGFtcGxlIE1mYVJlcXVlc3QjNmRlNzlkZTQtNjYyYy00MjAzLTkyMzUtYjZhY2U1Y2I0MzJiXG4gICAgICAgICAqL1xuICAgICAgICBtZmFfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEFwcHJvdmUgYSBUT1RQIE1GQSBSZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZlIGEgVE9UUCBNRkEgUmVxdWVzdFxuICAgKlxuICAgKiBBZGRzIGFuIGFwcHJvdmVyIHRvIGEgcGVuZGluZyBUT1RQIE1GQSByZXF1ZXN0LlxuICAgKlxuICAgKiBJZiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7XG4gICAqIHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0byByZXN1bWUgdGhlIG9yaWdpbmFsIEhUVFAgcmVxdWVzdC5cbiAgICovXG4gIG1mYUFwcHJvdmVUb3RwOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBNRkEgYXBwcm92YWwgcmVxdWVzdFxuICAgICAgICAgKiBAZXhhbXBsZSBNZmFSZXF1ZXN0IzZkZTc5ZGU0LTY2MmMtNDIwMy05MjM1LWI2YWNlNWNiNDMyYlxuICAgICAgICAgKi9cbiAgICAgICAgbWZhX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG90cEFwcHJvdmVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTWZhUmVxdWVzdEluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTG9naW4gd2l0aCBPSURDXG4gICAqIEBkZXNjcmlwdGlvbiBMb2dpbiB3aXRoIE9JRENcbiAgICpcbiAgICogRXhjaGFuZ2UgYW4gT0lEQyBJRCB0b2tlbiAocGFzc2VkIHZpYSB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlcikgZm9yIGEgc2lnbmVyIHNlc3Npb25cbiAgICovXG4gIG9pZGNBdXRoOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9pZGNMb2dpblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJPaWRjTG9naW5SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBSb2xlc1xuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBSb2xlc1xuICAgKlxuICAgKiBSZXRyaWV2ZXMgYWxsIHJvbGVzIGluIGFuIG9yZ2FuaXphdGlvbiB0aGF0IHRoZSBjdXJyZW50IHVzZXIgaXMgYWxsb3dlZCB0byBhY2Nlc3MuXG4gICAqL1xuICBsaXN0Um9sZXM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJMaXN0Um9sZXNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgUm9sZVxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFJvbGVcbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyByb2xlIGluIGFuIG9yZ2FuaXphdGlvbi4gVW5sZXNzIHRoZSBsb2dnZWQtaW4gdXNlclxuICAgKiBpcyB0aGUgb3duZXIsIHRoZXkgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgcm9sZS5cbiAgICovXG4gIGNyZWF0ZVJvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCByZXF1ZXN0IGJvZHkgdG8gc2V0IHRoZSByb2xlIG5hbWUgKi9cbiAgICByZXF1ZXN0Qm9keT86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlUm9sZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJDcmVhdGVSb2xlUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IFJvbGVcbiAgICogQGRlc2NyaXB0aW9uIEdldCBSb2xlXG4gICAqXG4gICAqIFJldHJpZXZlcyBpbmZvcm1hdGlvbiBhYm91dCBhIHJvbGUgaW4gYW4gb3JnYW5pemF0aW9uXG4gICAqL1xuICBnZXRSb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUm9sZUluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVsZXRlIFJvbGVcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBSb2xlXG4gICAqXG4gICAqIERlbGV0ZXMgYSByb2xlIGluIGFuIG9yZ2FuaXphdGlvbi5cbiAgICogT25seSBvcmdhbml6YXRpb24gb3duZXJzIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLlxuICAgKi9cbiAgZGVsZXRlUm9sZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBVcGRhdGUgUm9sZVxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIFJvbGVcbiAgICpcbiAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBhIHJvbGUuXG4gICAqIFRoZSB1c2VyIG11c3QgYmUgaW4gdGhlIHJvbGUgb3IgYW4gb3duZXIgb2YgdGhlIG9yZ2FuaXphdGlvbi5cbiAgICovXG4gIHVwZGF0ZVJvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXBkYXRlUm9sZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQWRkIEtleXNcbiAgICogQGRlc2NyaXB0aW9uIEFkZCBLZXlzXG4gICAqXG4gICAqIEFkZHMgYSBsaXN0IG9mIGV4aXN0aW5nIGtleXMgdG8gYW4gZXhpc3Rpbmcgcm9sZS5cbiAgICovXG4gIGFkZEtleXNUb1JvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWRkS2V5c1RvUm9sZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEFkZCBVc2VyXG4gICAqIEBkZXNjcmlwdGlvbiBBZGQgVXNlclxuICAgKlxuICAgKiBBZGRzIGFuIGV4aXN0aW5nIHVzZXIgdG8gYW4gZXhpc3Rpbmcgcm9sZS5cbiAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIGFkZCB1c2VycyB0byBhIHJvbGUuXG4gICAqL1xuICBhZGRVc2VyVG9Sb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSB1c2VyIHRvIGFkZCB0byByb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgICAqL1xuICAgICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJlbW92ZSBLZXlcbiAgICogQGRlc2NyaXB0aW9uIFJlbW92ZSBLZXlcbiAgICpcbiAgICogUmVtb3ZlcyBhIGdpdmVuIGtleSBmcm9tIGEgcm9sZVxuICAgKi9cbiAgcmVtb3ZlS2V5RnJvbVJvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIGRlc2lyZWQgS2V5XG4gICAgICAgICAqIEBleGFtcGxlIEtleSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IFRva2Vuc1xuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBUb2tlbnNcbiAgICpcbiAgICogUmV0dXJucyBhbGwgYWNjZXNzIHRva2VucyBmb3IgYSBnaXZlbiByb2xlLlxuICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG93bmVycyBjYW4gY3JlYXRlIGEgdG9rZW4gZm9yIGl0LlxuICAgKi9cbiAgbGlzdFJvbGVUb2tlbnM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJMaXN0VG9rZW5zUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlIFRva2VuXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgVG9rZW5cbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyBhY2Nlc3MgdG9rZW4gZm9yIGEgZ2l2ZW4gcm9sZSAodG8gYmUgdXNlZCBhcyBcIkFQSSBLZXlcIiBmb3IgYWxsIHNpZ25pbmcgYWN0aW9ucykuXG4gICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgb3Igb3duZXJzIGNhbiBjcmVhdGUgYSB0b2tlbiBmb3IgaXQuXG4gICAqL1xuICBjcmVhdGVSb2xlVG9rZW46IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlVG9rZW5SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQ3JlYXRlVG9rZW5SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZXZva2UgQWxsIFRva2Vuc1xuICAgKiBAZGVzY3JpcHRpb24gUmV2b2tlIEFsbCBUb2tlbnNcbiAgICpcbiAgICogUmV2b2tlcyBhbGwgYWNjZXNzIHRva2VucyBhc3NvY2lhdGVkIHdpdGggYSByb2xlLlxuICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG93bmVycyBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICovXG4gIHJldm9rZUFsbFJvbGVUb2tlbnM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJSZXZva2VUb2tlbnNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZXZva2UgVG9rZW5cbiAgICogQGRlc2NyaXB0aW9uIFJldm9rZSBUb2tlblxuICAgKlxuICAgKiBSZXZva2VzIGFuIGFjY2VzcyB0b2tlbiBhc3NvY2lhdGVkIHdpdGggYSByb2xlLlxuICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG93bmVycyBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICovXG4gIHJldm9rZVJvbGVUb2tlbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHNlc3Npb24gdG8gcmV2b2tlXG4gICAgICAgICAqIEBleGFtcGxlIDc3YWFkMjEwMGMzNjFmNDk3NjM1ZGQwMDVjNGQxNTc4MWUyZTVkZjRiOWY0NWQ4ZTc0ZjM3NDI1Y2JjMzBiOWVcbiAgICAgICAgICovXG4gICAgICAgIHNlc3Npb25faWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlJldm9rZVRva2VuUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IFRva2VuLUFjY2Vzc2libGUgS2V5c1xuICAgKiBAZGVzY3JpcHRpb24gR2V0IFRva2VuLUFjY2Vzc2libGUgS2V5c1xuICAgKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGtleXMgdGhhdCB0aGUgcm9sZSB0b2tlbiBjYW4gYWNjZXNzLlxuICAgKi9cbiAgbGlzdFRva2VuS2V5czoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIktleUluZm9zXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgdXNlcnMgaW4gb3JnYW5pemF0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IHVzZXJzIGluIG9yZ2FuaXphdGlvblxuICAgKi9cbiAgbGlzdFVzZXJzSW5Pcmc6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJHZXRVc2Vyc0luT3JnUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQWRkcyBhIHRoaXJkLXBhcnR5IHVzZXIgdG8gdGhlIG9yZ1xuICAgKiBAZGVzY3JpcHRpb24gQWRkcyBhIHRoaXJkLXBhcnR5IHVzZXIgdG8gdGhlIG9yZ1xuICAgKi9cbiAgY3JlYXRlT2lkY1VzZXI6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWRkVGhpcmRQYXJ0eVVzZXJSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQWRkVGhpcmRQYXJ0eVVzZXJSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZXNldCBUT1RQXG4gICAqIEBkZXNjcmlwdGlvbiBSZXNldCBUT1RQXG4gICAqXG4gICAqIENyZWF0ZXMgYW5kIHNldHMgYSBuZXcgVE9UUCBjb25maWd1cmF0aW9uIGZvciB0aGUgY3VycmVudCB1c2VyLFxuICAgKiBvdmVycmlkaW5nIHRoZSBleGlzdGluZyBvbmUgKGlmIGFueSkuXG4gICAqL1xuICB1c2VyUmVzZXRUb3RwOiB7XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJUb3RwSW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBWZXJpZnkgVE9UUFxuICAgKiBAZGVzY3JpcHRpb24gVmVyaWZ5IFRPVFBcbiAgICpcbiAgICogQ2hlY2tzIGlmIGEgZ2l2ZW4gY29kZSBtYXRjaGVzIHRoZSBjdXJyZW50IFRPVFAgY29kZSBmb3IgdGhlIGN1cnJlbnQgdXNlci5cbiAgICogRXJyb3JzIHdpdGggNDAzIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIG5vdCBzZXQgdXAgVE9UUCBvciB0aGUgY29kZSBmYWlscyB2ZXJpZmljYXRpb24uXG4gICAqL1xuICB1c2VyVmVyaWZ5VG90cDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgY29kZTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gUmF3IEJsb2JcbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gUmF3IEJsb2JcbiAgICpcbiAgICogU2lnbnMgYW4gYXJiaXRyYXJ5IGJsb2Igd2l0aCBhIGdpdmVuIGtleS5cbiAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAqL1xuICBibG9iU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMHg0OTAxMWFkYkNDM2JDOWMwMzA3QkIwN0YzN0RkYTFhMWE5YzY5ZDJFXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCbG9iU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJCbG9iU2lnblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZWNvcmQgaGVhcnRiZWF0XG4gICAqIEBkZXNjcmlwdGlvbiBSZWNvcmQgaGVhcnRiZWF0XG4gICAqXG4gICAqIFRoaXMgZW5kcG9pbnQgaXMgY2FsbGVkIGJ5IHRoZSBjdWJlM3NpZ25lciBwcm94eSB0byByZWNvcmQgdmFyaW91cyBtZXRyaWNzIHRvIENsb3VkV2F0Y2guXG4gICAqL1xuICBjdWJlM3NpZ25lckhlYXJ0YmVhdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBvcmdhbml6YXRpb24gb3duaW5nIHRoZSBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSGVhcnRiZWF0UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIEVWTSBUcmFuc2FjdGlvblxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBFVk0gVHJhbnNhY3Rpb25cbiAgICpcbiAgICogU2lnbnMgYW4gRXRoZXJldW0gKGFuZCBvdGhlciBFVk0pIHRyYW5zYWN0aW9uIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgKlxuICAgKiBUaGUga2V5IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSByb2xlIGFuZCBvcmdhbml6YXRpb24gb24gd2hvc2UgYmVoYWxmIHRoaXMgYWN0aW9uIGlzIGNhbGxlZC5cbiAgICovXG4gIGV0aDFTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIGV0aGVyZXVtIGFkZHJlc3Mgb2YgdGhlIHNlY3Aga2V5XG4gICAgICAgICAqIEBleGFtcGxlIDB4NDkwMTFhZGJDQzNiQzljMDMwN0JCMDdGMzdEZGExYTFhOWM2OWQyRVxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXRoMVNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRXRoMVNpZ25SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIFZhbGlkYXRvciBSZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIFZhbGlkYXRvciBSZXF1ZXN0XG4gICAqXG4gICAqIFNpZ25zIGFuIGV0aDIgdmFsaWRhdG9yIHJlcXVlc3Qgd2l0aCBhIGdpdmVuIEJMUyBrZXkuXG4gICAqXG4gICAqIFRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZSBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgKi9cbiAgZXRoMlNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgdmFsaWRhdG9yIChCTFMpIHB1YmxpYyBrZXkgd2l0aCAweCBwcmVmaXhcbiAgICAgICAgICogQGV4YW1wbGUgMHg5NzAwZmJiOGM5MDY5NDI0NDJjMmE1YjNhZDc0OThmMjdhZWRkYTI1Mzc4NmE2ZmJhYThmZWY0N2ZiN2FmMjM0ZTUwY2YyY2NlODE1YTU1MzA4Nzk5MmFlNTY1ZDQ4ZGFcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkV0aDJTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkV0aDJTaWduUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBTdGFrZSBEZXBvc2l0XG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIFN0YWtlIERlcG9zaXRcbiAgICpcbiAgICogU2lnbnMgYSBkZXBvc2l0IHRyYW5zYWN0aW9uIHdpdGggYSBgdmFsaWRhdG9yX2tleWAuIElmIGB2YWxpZGF0b3Jfa2V5YCBpcyBzZXQgdG8gYSBwcmVnZW5lcmF0ZWQga2V5LCB3ZSB1c2UgdGhlXG4gICAqIHByb3ZpZGVkIHZhbGlkYXRvciBrZXkuIE90aGVyd2lzZSwgd2UgZ2VuZXJhdGUgYSBuZXcgQkxTIGtleS5cbiAgICpcbiAgICogV2hlbiB1c2luZyBhIHByZWdlbmVyYXRlZCBrZXksIHRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZVxuICAgKiBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgKi9cbiAgc3Rha2U6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3Rha2VSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU3Rha2VSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIFVuc3Rha2UgUmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBVbnN0YWtlIFJlcXVlc3RcbiAgICpcbiAgICogSGFuZGxlIHVuc3Rha2luZyByZXF1ZXN0LCBwcm9kdWNpbmcgYSBzaWduZWQgdm9sdW50YXJ5IGV4aXQgbWVzc2FnZVxuICAgKiB0aGF0IGNhbiBiZSBwb3N0ZWQgZGlyZWN0bHkgdG8gdGhlIEJlYWNvbiBjaGFpbi5cbiAgICpcbiAgICogVGhlIGtleSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZSBhbmQgb3JnYW5pemF0aW9uIG9uIHdob3NlIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAqL1xuICB1bnN0YWtlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIHZhbGlkYXRvciAoQkxTKSBwdWJsaWMga2V5XG4gICAgICAgICAqIEBleGFtcGxlIDB4YTk5YTc2ZWQ3Nzk2ZjdiZTIyZDViN2U4NWRlZWI3YzU2NzdlODhlNTExZTBiMzM3NjE4ZjhjNGViNjEzNDliNGJmMmQxNTNmNjQ5ZjdiNTMzNTlmZThiOTRhMzhlNDRjXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVbnN0YWtlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlVuc3Rha2VSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIFNvbGFuYSBNZXNzYWdlXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIFNvbGFuYSBNZXNzYWdlXG4gICAqXG4gICAqIFNpZ25zIGEgU29sYW5hIG1lc3NhZ2Ugd2l0aCBhIGdpdmVuIGtleS5cbiAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAqL1xuICBzb2xhbmFTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBiYXNlNTgtZW5jb2RlZCBwdWJsaWMga2V5XG4gICAgICAgICAqIEBleGFtcGxlIDg2WlJQc3pCcDVFb1BqN3dSM2JIbjd3bkFaNWlZZnBhc1JjN0RLRlBUVWFaXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTb2xhbmFTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNvbGFuYVNpZ25SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZWZyZXNoIFNpZ25lciBTZXNzaW9uXG4gICAqIEBkZXNjcmlwdGlvbiBSZWZyZXNoIFNpZ25lciBTZXNzaW9uXG4gICAqL1xuICBzaWduZXJTZXNzaW9uUmVmcmVzaDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgb3JnYW5pemF0aW9uIG93bmluZyB0aGUga2V5XG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1dGhEYXRhXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUmVmcmVzaFJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGZpbGUgd2FzIGF1dG8tZ2VuZXJhdGVkIGJ5IG9wZW5hcGktdHlwZXNjcmlwdC5cbiAqIERvIG5vdCBtYWtlIGRpcmVjdCBjaGFuZ2VzIHRvIHRoZSBmaWxlLlxuICovXG5cblxuZXhwb3J0IGludGVyZmFjZSBwYXRocyB7XG4gIFwiL3YwL2Fib3V0X21lXCI6IHtcbiAgICAvKipcbiAgICAgKiBVc2VyIEluZm9cbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBkZXNjcmlwdGlvbiBVc2VyIEluZm9cbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCB1c2VyLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImFib3V0TWVMZWdhY3lcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IE9yZ1xuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgT3JnXG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgYW4gb3JnYW5pemF0aW9uLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImdldE9yZ1wiXTtcbiAgICAvKipcbiAgICAgKiBVcGRhdGUgT3JnXG4gICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBPcmdcbiAgICAgKlxuICAgICAqIFVwZGF0ZSBvcmdhbml6YXRpb24gYXR0cmlidXRlcyAoZW5hYmxlZCBmbGFnLCBuYW1lLCBhbmQgcG9saWNpZXMpLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXBkYXRlT3JnXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYXZhL3NpZ24ve3B1YmtleX1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gQXZhbGFuY2hlIFgtIG9yIFAtQ2hhaW4gTWVzc2FnZVxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIEF2YWxhbmNoZSBYLSBvciBQLUNoYWluIE1lc3NhZ2VcbiAgICAgKlxuICAgICAqIFNpZ25zIGFuIEF2YWxhbmNoZSBtZXNzYWdlIHdpdGggYSBnaXZlbiBTZWNwQXZhIGtleS5cbiAgICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiYXZhU2lnblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2J0Yy9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIEJpdGNvaW4gVHJhbnNhY3Rpb25cbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBCaXRjb2luIFRyYW5zYWN0aW9uXG4gICAgICpcbiAgICAgKiBTaWducyBhIEJpdGNvaW4gdHJhbnNhY3Rpb24gd2l0aCBhIGdpdmVuIGtleS5cbiAgICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiYnRjU2lnblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2Rlcml2ZV9rZXlcIjoge1xuICAgIC8qKlxuICAgICAqIERlcml2ZSBLZXkgRnJvbSBMb25nLUxpdmVkIE1uZW1vbmljXG4gICAgICogQGRlc2NyaXB0aW9uIERlcml2ZSBLZXkgRnJvbSBMb25nLUxpdmVkIE1uZW1vbmljXG4gICAgICpcbiAgICAgKiBEZXJpdmVzIGEga2V5IG9mIGEgc3BlY2lmaWVkIHR5cGUgdXNpbmcgYSBzdXBwbGllZCBkZXJpdmF0aW9uIHBhdGggYW5kIGFuXG4gICAgICogZXhpc3RpbmcgbG9uZy1saXZlZCBtbmVtb25pYy5cbiAgICAgKi9cbiAgICBwdXQ6IG9wZXJhdGlvbnNbXCJkZXJpdmVLZXlcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9ldm0vZWlwNzEyL3NpZ24ve3B1YmtleX1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gRUlQLTcxMiBUeXBlZCBEYXRhXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gRUlQLTcxMiBUeXBlZCBEYXRhXG4gICAgICpcbiAgICAgKiBTaWducyB0eXBlZCBkYXRhIGFjY29yZGluZyB0byBFSVAtNzEyIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJlaXA3MTJTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vaWRlbnRpdHkvcHJvdmVcIjoge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBDdWJlU2lnbmVyIHVzZXIgc2Vzc2lvblxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgW0lkZW50aXR5UHJvb2ZdIGZyb20gQ3ViZVNpZ25lciB1c2VyIHNlc3Npb25cbiAgICAgKlxuICAgICAqIFRoaXMgcm91dGUgY2FuIGJlIHVzZWQgdG8gcHJvdmUgdG8gYW5vdGhlciBwYXJ0eSB0aGF0IGEgdXNlciBoYXMgYVxuICAgICAqIHZhbGlkIEN1YmVTaWduZXIgc2Vzc2lvbi5cbiAgICAgKlxuICAgICAqIENsaWVudHMgYXJlIGludGVuZGVkIHRvIGNhbGwgdGhpcyByb3V0ZSBhbmQgcGFzcyB0aGUgcmV0dXJuZWQgZXZpZGVuY2VcbiAgICAgKiB0byBhbm90aGVyIHNlcnZpY2Ugd2hpY2ggd2lsbCB2ZXJpZnkgaXQgYnkgbWFraW5nIGEgcmVxdWVzdCB0byBgL3YwL29yZy88b3JnX2lkPi9pZGVudGl0eS92ZXJpZnlgLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVQcm9vZkN1YmVTaWduZXJcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pZGVudGl0eS9wcm92ZS9vaWRjXCI6IHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgW0lkZW50aXR5UHJvb2ZdIGZyb20gT0lEQyB0b2tlblxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgW0lkZW50aXR5UHJvb2ZdIGZyb20gT0lEQyB0b2tlblxuICAgICAqXG4gICAgICogRXhjaGFuZ2UgYW4gT0lEQyBJRCB0b2tlbiAocGFzc2VkIHZpYSB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlcikgZm9yIGEgcHJvb2Ygb2YgYXV0aGVudGljYXRpb24uXG4gICAgICpcbiAgICAgKiBUaGlzIHJvdXRlIGNhbiBiZSB1c2VkIHRvIHByb3ZlIHRvIGFub3RoZXIgcGFydHkgdGhhdCBhIHVzZXIgaGFzIG1ldCB0aGVcbiAgICAgKiBhdXRoZW50aWNhdGlvbiByZXF1aXJlbWVudHMgKGFsbG93ZWQgaXNzdWVycyAmIGF1ZGllbmNlcykgZm9yIEN1YmVTaWduZXJcbiAgICAgKiB3aXRob3V0IGxlYWtpbmcgdGhlaXIgY3JlZGVudGlhbHMuXG4gICAgICpcbiAgICAgKiBDbGllbnRzIGFyZSBpbnRlbmRlZCB0byBjYWxsIHRoaXMgcm91dGUgYW5kIHBhc3MgdGhlIHJldHVybmVkIGV2aWRlbmNlIHRvIGFub3RoZXIgc2VydmljZVxuICAgICAqIHdoaWNoIHdpbGwgdmVyaWZ5IGl0IGJ5IG1ha2luZyBhIHJlcXVlc3QgdG8gYC92MC9vcmcvPG9yZ19pZD4vaWRlbnRpdHkvdmVyaWZ5YC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiY3JlYXRlUHJvb2ZPaWRjXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vaWRlbnRpdHkvdmVyaWZ5XCI6IHtcbiAgICAvKipcbiAgICAgKiBWZXJpZnkgaWRlbnRpdHkgcHJvb2ZcbiAgICAgKiBAZGVzY3JpcHRpb24gVmVyaWZ5IGlkZW50aXR5IHByb29mXG4gICAgICpcbiAgICAgKiBBbGxvd3MgYSB0aGlyZC1wYXJ0eSB0byB2YWxpZGF0ZSBwcm9vZiBvZiBhdXRoZW50aWNhdGlvbi5cbiAgICAgKlxuICAgICAqIFdoZW4gYSB0aGlyZC1wYXJ0eSBpcyBwcm92aWRlZCBhbiBbSWRlbnRpdHlQcm9vZl0gb2JqZWN0LCB0aGV5IG11c3QgY2hlY2sgaXRzXG4gICAgICogdmVyYWNpdHkgYnkgY2FsbGluZyB0aGlzIGVuZHBvaW50XG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInZlcmlmeVByb29mXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vaW1wb3J0X2tleVwiOiB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIEtleS1JbXBvcnQgS2V5XG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBLZXktSW1wb3J0IEtleVxuICAgICAqXG4gICAgICogR2VuZXJhdGUgYW4gZXBoZW1lcmFsIGtleSB0aGF0IGEgY2xpZW50IGNhbiB1c2UgZm9yIGtleS1pbXBvcnQgZW5jcnlwdGlvbi5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJjcmVhdGVLZXlJbXBvcnRLZXlcIl07XG4gICAgLyoqXG4gICAgICogSW1wb3J0IEtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBJbXBvcnQgS2V5XG4gICAgICpcbiAgICAgKiBTZWN1cmVseSBpbXBvcnRzIGFuIGV4aXN0aW5nIGtleSB1c2luZyBhIHByZXZpb3VzbHkgZ2VuZXJhdGVkIGtleS1pbXBvcnQga2V5LlxuICAgICAqL1xuICAgIHB1dDogb3BlcmF0aW9uc1tcImltcG9ydEtleVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2ludml0ZVwiOiB7XG4gICAgLyoqXG4gICAgICogSW52aXRlIFVzZXJcbiAgICAgKiBAZGVzY3JpcHRpb24gSW52aXRlIFVzZXJcbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgdXNlciBpbiBhbiBleGlzdGluZyBvcmcgYW5kIHNlbmRzIHRoYXQgdXNlciBhbiBpbnZpdGUgZW1haWwuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImludml0ZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2tleXNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgS2V5c1xuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IEtleXNcbiAgICAgKlxuICAgICAqIEdldHMgdGhlIGxpc3Qgb2Ygb3duZWQga2V5cyBpbiBhIGdpdmVuIG9yZy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0S2V5c0luT3JnXCJdO1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIEtleVxuICAgICAqXG4gICAgICogQ3JlYXRlcyBvbmUgb3IgbW9yZSBuZXcga2V5cyBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZUtleVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2tleXMve2tleV9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IEtleVxuICAgICAqXG4gICAgICogUmV0dXJucyB0aGUgcHJvcGVydGllcyBvZiBhIGtleS5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJnZXRLZXlJbk9yZ1wiXTtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgS2V5XG4gICAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBLZXlcbiAgICAgKlxuICAgICAqIERlbGV0ZXMgYSBrZXkgc3BlY2lmaWVkIGJ5IGl0cyBJRC5cbiAgICAgKiBPbmx5IHRoZSBrZXkgb3duZXIgYW5kIG9yZyBvd25lcnMgYXJlIGFsbG93ZWQgdG8gZGVsZXRlIGtleXMuXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wiZGVsZXRlS2V5XCJdO1xuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIEtleVxuICAgICAqXG4gICAgICogRW5hYmxlIG9yIGRpc2FibGUgYSBrZXkuICBUaGUgdXNlciBtdXN0IGJlIHRoZSBvd25lciBvZiB0aGUga2V5IG9yIG9yZ2FuaXphdGlvbiB0byBwZXJmb3JtIHRoaXMgYWN0aW9uLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXBkYXRlS2V5XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbWZhXCI6IHtcbiAgICAvKipcbiAgICAgKiBMaXN0IFBlbmRpbmcgTUZBIFJlcXVlc3RzXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgUGVuZGluZyBNRkEgUmVxdWVzdHNcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBhbmQgcmV0dXJucyBhbGwgcGVuZGluZyBNRkEgcmVxdWVzdHMgdGhhdCBhcmUgYWNjZXNzaWJsZSB0byB0aGUgY3VycmVudCB1c2VyLFxuICAgICAqIGkuZS4sIHRob3NlIGluIHdoaWNoIHRoZSBjdXJyZW50IHVzZXIgaXMgbGlzdGVkIGFzIGFuIGFwcHJvdmVyXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibWZhTGlzdFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L21mYS97bWZhX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IFBlbmRpbmcgTUZBIFJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IFBlbmRpbmcgTUZBIFJlcXVlc3RcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBhbmQgcmV0dXJucyBhIHBlbmRpbmcgTUZBIHJlcXVlc3QgYnkgaXRzIGlkLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcIm1mYUdldFwiXTtcbiAgICAvKipcbiAgICAgKiBBcHByb3ZlIE1GQSBSZXF1ZXN0XG4gICAgICogQGRlc2NyaXB0aW9uIEFwcHJvdmUgTUZBIFJlcXVlc3RcbiAgICAgKlxuICAgICAqIEFwcHJvdmUgcmVxdWVzdCBhZnRlciBsb2dnaW5nIGluIHdpdGggQ3ViZVNpZ25lci4gQWRkcyB0aGUgY3VycmVudGx5LWxvZ2dlZCB1c2VyIGFzIGFuIGFwcHJvdmVyXG4gICAgICogb2YgYSBwZW5kaW5nIE1GQSByZXF1ZXN0IG9mIHRoZSBbU3RhdHVzOjpSZXF1aXJlZEFwcHJvdmVyc10ga2luZC4gSWYgdGhlIHJlcXVpcmVkIG51bWJlciBvZlxuICAgICAqIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7IHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0b1xuICAgICAqIHJlc3VtZSB0aGUgb3JpZ2luYWwgSFRUUCByZXF1ZXN0LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wibWZhQXBwcm92ZUNzXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbWZhL3ttZmFfaWR9L2ZpZG9cIjoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYXRlIEFwcHJvdmluZyBhbiBNRkEgUmVxdWVzdCB3aXRoIEZJRE9cbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgQXBwcm92aW5nIGFuIE1GQSBSZXF1ZXN0IHdpdGggRklET1xuICAgICAqXG4gICAgICogSW5pdGlhdGVzIHRoZSBhcHByb3ZhbCBwcm9jZXNzIG9mIGFuIE1GQSBSZXF1ZXN0IHVzaW5nIEZJRE8uXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcIm1mYUFwcHJvdmVGaWRvXCJdO1xuICAgIC8qKlxuICAgICAqIEZpbmFsaXplIGEgRklETyBNRkEgQXBwcm92YWxcbiAgICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgYSBGSURPIE1GQSBBcHByb3ZhbFxuICAgICAqXG4gICAgICogQWRkcyBhbiBhcHByb3ZlciB0byBhIHBlbmRpbmcgTUZBIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBJZiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7XG4gICAgICogdGhlIGNvbmZpcm1hdGlvbiByZWNlaXB0IGNhbiBiZSB1c2VkIHRvIHJlc3VtZSB0aGUgb3JpZ2luYWwgSFRUUCByZXF1ZXN0LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wibWZhQXBwcm92ZUZpZG9Db21wbGV0ZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L21mYS97bWZhX2lkfS90b3RwXCI6IHtcbiAgICAvKipcbiAgICAgKiBBcHByb3ZlIGEgVE9UUCBNRkEgUmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZlIGEgVE9UUCBNRkEgUmVxdWVzdFxuICAgICAqXG4gICAgICogQWRkcyB0aGUgY3VycmVudCB1c2VyIGFzIGFwcHJvdmVyIHRvIGEgcGVuZGluZyBNRkEgcmVxdWVzdCBieSBwcm92aWRpbmcgVE9UUCBjb2RlLlxuICAgICAqXG4gICAgICogSWYgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBhcHByb3ZlcnMgaXMgcmVhY2hlZCwgdGhlIE1GQSByZXF1ZXN0IGlzIGFwcHJvdmVkO1xuICAgICAqIHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0byByZXN1bWUgdGhlIG9yaWdpbmFsIEhUVFAgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcIm1mYUFwcHJvdmVUb3RwXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vb2lkY1wiOiB7XG4gICAgLyoqXG4gICAgICogTG9naW4gd2l0aCBPSURDXG4gICAgICogQGRlc2NyaXB0aW9uIExvZ2luIHdpdGggT0lEQ1xuICAgICAqXG4gICAgICogRXhjaGFuZ2UgYW4gT0lEQyBJRCB0b2tlbiAocGFzc2VkIHZpYSB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlcikgZm9yIGEgc2lnbmVyIHNlc3Npb25cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wib2lkY0F1dGhcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBSb2xlc1xuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IFJvbGVzXG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgYWxsIHJvbGVzIGluIGFuIG9yZ2FuaXphdGlvbiB0aGF0IHRoZSBjdXJyZW50IHVzZXIgaXMgYWxsb3dlZCB0byBhY2Nlc3MuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdFJvbGVzXCJdO1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBSb2xlXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBSb2xlXG4gICAgICpcbiAgICAgKiBDcmVhdGVzIGEgbmV3IHJvbGUgaW4gYW4gb3JnYW5pemF0aW9uLiBVbmxlc3MgdGhlIGxvZ2dlZC1pbiB1c2VyXG4gICAgICogaXMgdGhlIG93bmVyLCB0aGV5IGFyZSBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBuZXdseSBjcmVhdGVkIHJvbGUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZVJvbGVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBSb2xlXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBSb2xlXG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgYSByb2xlIGluIGFuIG9yZ2FuaXphdGlvblxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImdldFJvbGVcIl07XG4gICAgLyoqXG4gICAgICogRGVsZXRlIFJvbGVcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIFJvbGVcbiAgICAgKlxuICAgICAqIERlbGV0ZXMgYSByb2xlIGluIGFuIG9yZ2FuaXphdGlvbi5cbiAgICAgKiBPbmx5IG9yZ2FuaXphdGlvbiBvd25lcnMgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wiZGVsZXRlUm9sZVwiXTtcbiAgICAvKipcbiAgICAgKiBVcGRhdGUgUm9sZVxuICAgICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgUm9sZVxuICAgICAqXG4gICAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBhIHJvbGUuXG4gICAgICogVGhlIHVzZXIgbXVzdCBiZSBpbiB0aGUgcm9sZSBvciBhbiBvd25lciBvZiB0aGUgb3JnYW5pemF0aW9uLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXBkYXRlUm9sZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfS9hZGRfa2V5c1wiOiB7XG4gICAgLyoqXG4gICAgICogQWRkIEtleXNcbiAgICAgKiBAZGVzY3JpcHRpb24gQWRkIEtleXNcbiAgICAgKlxuICAgICAqIEFkZHMgYSBsaXN0IG9mIGV4aXN0aW5nIGtleXMgdG8gYW4gZXhpc3Rpbmcgcm9sZS5cbiAgICAgKi9cbiAgICBwdXQ6IG9wZXJhdGlvbnNbXCJhZGRLZXlzVG9Sb2xlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L2FkZF91c2VyL3t1c2VyX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogQWRkIFVzZXJcbiAgICAgKiBAZGVzY3JpcHRpb24gQWRkIFVzZXJcbiAgICAgKlxuICAgICAqIEFkZHMgYW4gZXhpc3RpbmcgdXNlciB0byBhbiBleGlzdGluZyByb2xlLlxuICAgICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgb3Igb3duZXJzIGNhbiBhZGQgdXNlcnMgdG8gYSByb2xlLlxuICAgICAqL1xuICAgIHB1dDogb3BlcmF0aW9uc1tcImFkZFVzZXJUb1JvbGVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH0va2V5c1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBSb2xlIEtleXNcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBSb2xlIEtleXNcbiAgICAgKlxuICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2YgYWxsIGtleXMgaW4gYSByb2xlLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RSb2xlS2V5c1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfS9rZXlzL3trZXlfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBSZW1vdmUgS2V5XG4gICAgICogQGRlc2NyaXB0aW9uIFJlbW92ZSBLZXlcbiAgICAgKlxuICAgICAqIFJlbW92ZXMgYSBnaXZlbiBrZXkgZnJvbSBhIHJvbGVcbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJyZW1vdmVLZXlGcm9tUm9sZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfS90b2tlbnNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgYSBzaW5nbGUgcGFnZSBvZiBUb2tlbnMgKERlcHJlY2F0ZWQpXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBhIHNpbmdsZSBwYWdlIG9mIFRva2VucyAoRGVwcmVjYXRlZClcbiAgICAgKlxuICAgICAqICoqRGVwcmVjYXRlZCoqOiBVc2UgYEdFVCAvb3JnL3tvcmdfaWR9L3Nlc3Npb24/cm9sZT1gXG4gICAgICpcbiAgICAgKiBSZXR1cm5zIGFsbCBhY2Nlc3MgdG9rZW5zIGZvciBhIGdpdmVuIHJvbGUuXG4gICAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIGNyZWF0ZSBhIHRva2VuIGZvciBpdC5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0Um9sZVRva2Vuc1wiXTtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgVG9rZW5cbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFRva2VuXG4gICAgICpcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGFjY2VzcyB0b2tlbiBmb3IgYSBnaXZlbiByb2xlICh0byBiZSB1c2VkIGFzIFwiQVBJIEtleVwiIGZvciBhbGwgc2lnbmluZyBhY3Rpb25zKS5cbiAgICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG93bmVycyBjYW4gY3JlYXRlIGEgdG9rZW4gZm9yIGl0LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVSb2xlVG9rZW5cIl07XG4gICAgLyoqXG4gICAgICogUmV2b2tlIEFsbCBUb2tlbnMgKERlcHJlY2F0ZWQpXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAZGVzY3JpcHRpb24gUmV2b2tlIEFsbCBUb2tlbnMgKERlcHJlY2F0ZWQpXG4gICAgICpcbiAgICAgKiAqKkRlcHJlY2F0ZWQqKjogVXNlIGBERUxFVEUgL29yZy97b3JnX2lkfS9zZXNzaW9uP3JvbGU9YCBpbnN0ZWFkXG4gICAgICpcbiAgICAgKiBSZXZva2VzIGFsbCBhY2Nlc3MgdG9rZW5zIGFzc29jaWF0ZWQgd2l0aCBhIHJvbGUuXG4gICAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wicmV2b2tlQWxsUm9sZVRva2Vuc1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfS90b2tlbnMve3Nlc3Npb25faWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBSZXZva2UgVG9rZW4gKERlcHJlY2F0ZWQpXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAZGVzY3JpcHRpb24gUmV2b2tlIFRva2VuIChEZXByZWNhdGVkKVxuICAgICAqXG4gICAgICogKipEZXByZWNhdGVkKio6IFVzZSBgREVMRVRFIC9vcmcve29yZ19pZH0vc2Vzc2lvbi97c2Vzc2lvbl9pZH1gXG4gICAgICpcbiAgICAgKiBSZXZva2VzIGFuIGFjY2VzcyB0b2tlbiBhc3NvY2lhdGVkIHdpdGggYSByb2xlLlxuICAgICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgb3Igb3duZXJzIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLlxuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcInJldm9rZVJvbGVUb2tlblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfS91c2Vyc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBSb2xlIFVzZXJzLlxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IFJvbGUgVXNlcnMuXG4gICAgICpcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGFsbCB1c2VycyB3aG8gaGF2ZSBhY2Nlc3MgdG8gYSByb2xlLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RSb2xlVXNlcnNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9zZXNzaW9uXCI6IHtcbiAgICAvKipcbiAgICAgKiBMaXN0IHNlc3Npb25zXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3Qgc2Vzc2lvbnNcbiAgICAgKlxuICAgICAqIElmIG5vIHF1ZXJ5IHBhcmFtZXRlcnMgYXJlIHByb3ZpZGVkLCBpbmZvcm1hdGlvbiBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lvbiBpcyByZXR1cm5lZFxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RTZXNzaW9uc1wiXTtcbiAgICAvKipcbiAgICAgKiBSZXZva2UgZXhpc3Rpbmcgc2Vzc2lvbihzKVxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXZva2UgZXhpc3Rpbmcgc2Vzc2lvbihzKVxuICAgICAqXG4gICAgICogSW1tZWRpYXRlbHkgcmV2b2tlcyBleGlzdGluZyBzZXNzaW9ucywgcHJldmVudGluZyB0aGVtIGZyb20gYmVpbmcgdXNlZCBvciByZWZyZXNoZWQuXG4gICAgICogSWYgbm8gcXVlcnkgcGFyYW1zIGFyZSBwcm92aWRlZCwgdGhlIGN1cnJlbnQgc2Vzc2lvbiBpcyByZXZva2VkLlxuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcInJldm9rZVNlc3Npb25zXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vc2Vzc2lvbi97c2Vzc2lvbl9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBzZXNzaW9uIGluZm9ybWF0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBzZXNzaW9uIGluZm9ybWF0aW9uXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0U2Vzc2lvblwiXTtcbiAgICAvKipcbiAgICAgKiBSZXZva2UgYSBzZXNzaW9uXG4gICAgICogQGRlc2NyaXB0aW9uIFJldm9rZSBhIHNlc3Npb25cbiAgICAgKlxuICAgICAqIEltbWVkaWF0ZWx5IHJldm9rZXMgYW4gZXhpc3Rpbmcgc2Vzc2lvbiwgcHJldmVudGluZyBpdCBmcm9tIGJlaW5nIHVzZWQgb3IgcmVmcmVzaGVkXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wicmV2b2tlU2Vzc2lvblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3NvbGFuYS9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIFNvbGFuYSBNZXNzYWdlXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gU29sYW5hIE1lc3NhZ2VcbiAgICAgKlxuICAgICAqIFNpZ25zIGEgU29sYW5hIG1lc3NhZ2Ugd2l0aCBhIGdpdmVuIGtleS5cbiAgICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wic29sYW5hU2lnblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3Rva2VuL2tleXNcIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBUb2tlbi1BY2Nlc3NpYmxlIEtleXNcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IFRva2VuLUFjY2Vzc2libGUgS2V5c1xuICAgICAqXG4gICAgICogUmV0cmlldmVzIHRoZSBrZXlzIHRoYXQgdGhlIHJvbGUgdG9rZW4gY2FuIGFjY2Vzcy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0VG9rZW5LZXlzXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlci9tZVwiOiB7XG4gICAgLyoqXG4gICAgICogVXNlciBJbmZvXG4gICAgICogQGRlc2NyaXB0aW9uIFVzZXIgSW5mb1xuICAgICAqXG4gICAgICogUmV0cmlldmVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiYWJvdXRNZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3VzZXIvbWUvZmlkb1wiOiB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhdGUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICAgKlxuICAgICAqIEdlbmVyYXRlcyBhIGNoYWxsZW5nZSB0aGF0IG11c3QgYmUgYW5zd2VyZWQgdG8gcHJvdmUgb3duZXJzaGlwIG9mIGEga2V5XG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInVzZXJSZWdpc3RlckZpZG9Jbml0XCJdO1xuICAgIC8qKlxuICAgICAqIEZpbmFsaXplIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAgICogQGRlc2NyaXB0aW9uIEZpbmFsaXplIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAgICpcbiAgICAgKiBBY2NlcHRzIHRoZSByZXNwb25zZSB0byB0aGUgY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCB0byB0aGlzIGVuZHBvaW50LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXNlclJlZ2lzdGVyRmlkb0NvbXBsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlci9tZS90b3RwXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplIFRPVFAgUmVzZXRcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZSBUT1RQIFJlc2V0XG4gICAgICpcbiAgICAgKiBDcmVhdGVzIGEgbmV3IFRPVFAgY2hhbGxlbmdlIHRoYXQgbXVzdCBiZSBhbnN3ZXJlZCB0byBwcm92ZSB0aGF0IHRoZSBuZXcgVE9UUFxuICAgICAqIHdhcyBzdWNjZXNzZnVsbHkgaW1wb3J0ZWQgaW50byBhbiBhdXRoZW50aWNhdG9yIGFwcC5cbiAgICAgKlxuICAgICAqIFRoaXMgb3BlcmF0aW9uIGlzIGFsbG93ZWQgaWYgRUlUSEVSXG4gICAgICogLSB0aGUgdXNlciBhY2NvdW50IGlzIG5vdCB5ZXQgaW5pdGlhbGl6ZWQgYW5kIG5vIFRPVFAgaXMgYWxyZWFkeSBzZXQsIE9SXG4gICAgICogLSB0aGUgdXNlciBoYXMgbm90IGNvbmZpZ3VyZWQgYW55IGF1dGggZmFjdG9ycztcbiAgICAgKiBvdGhlcndpc2UsIE1GQSBpcyByZXF1aXJlZC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1widXNlclJlc2V0VG90cEluaXRcIl07XG4gICAgLyoqXG4gICAgICogRmluYWxpemUgcmVzZXR0aW5nIFRPVFBcbiAgICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgcmVzZXR0aW5nIFRPVFBcbiAgICAgKlxuICAgICAqIENoZWNrcyBpZiB0aGUgcmVzcG9uc2UgY29udGFpbnMgdGhlIGNvcnJlY3QgVE9UUCBjb2RlIGNvcnJlc3BvbmRpbmcgdG8gdGhlXG4gICAgICogY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCBtZXRob2Qgb2YgdGhpcyBlbmRwb2ludC5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInVzZXJSZXNldFRvdHBDb21wbGV0ZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3VzZXIvbWUvdG90cC92ZXJpZnlcIjoge1xuICAgIC8qKlxuICAgICAqIFZlcmlmeSBUT1RQXG4gICAgICogQGRlc2NyaXB0aW9uIFZlcmlmeSBUT1RQXG4gICAgICpcbiAgICAgKiBDaGVja3MgaWYgYSBnaXZlbiBjb2RlIG1hdGNoZXMgdGhlIGN1cnJlbnQgVE9UUCBjb2RlIGZvciB0aGUgY3VycmVudCB1c2VyLlxuICAgICAqIEVycm9ycyB3aXRoIDQwMyBpZiB0aGUgY3VycmVudCB1c2VyIGhhcyBub3Qgc2V0IHVwIFRPVFAgb3IgdGhlIGNvZGUgZmFpbHMgdmVyaWZpY2F0aW9uLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJ1c2VyVmVyaWZ5VG90cFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3VzZXJzXCI6IHtcbiAgICAvKipcbiAgICAgKiBMaXN0IHVzZXJzIGluIG9yZ2FuaXphdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IHVzZXJzIGluIG9yZ2FuaXphdGlvblxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RVc2Vyc0luT3JnXCJdO1xuICAgIC8qKlxuICAgICAqIEFkZCBhIHRoaXJkLXBhcnR5IHVzZXIgdG8gdGhlIG9yZ1xuICAgICAqIEBkZXNjcmlwdGlvbiBBZGQgYSB0aGlyZC1wYXJ0eSB1c2VyIHRvIHRoZSBvcmdcbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiY3JlYXRlT2lkY1VzZXJcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS91c2Vycy9vaWRjXCI6IHtcbiAgICAvKipcbiAgICAgKiBSZW1vdmUgYSB0aGlyZC1wYXJ0eSB1c2VyIGZyb20gdGhlIG9yZ1xuICAgICAqIEBkZXNjcmlwdGlvbiBSZW1vdmUgYSB0aGlyZC1wYXJ0eSB1c2VyIGZyb20gdGhlIG9yZ1xuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcImRlbGV0ZU9pZGNVc2VyXCJdO1xuICB9O1xuICBcIi92MC91c2VyL21lL2ZpZG9cIjoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYXRlIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICAgKlxuICAgICAqIEdlbmVyYXRlcyBhIGNoYWxsZW5nZSB0aGF0IG11c3QgYmUgYW5zd2VyZWQgdG8gcHJvdmUgb3duZXJzaGlwIG9mIGEga2V5XG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInJlZ2lzdGVyRmlkb0luaXRMZWdhY3lcIl07XG4gICAgLyoqXG4gICAgICogRmluYWxpemUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgICAqXG4gICAgICogQWNjZXB0cyB0aGUgcmVzcG9uc2UgdG8gdGhlIGNoYWxsZW5nZSBnZW5lcmF0ZWQgYnkgdGhlIFBPU1QgdG8gdGhpcyBlbmRwb2ludC5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInJlZ2lzdGVyRmlkb0NvbXBsZXRlTGVnYWN5XCJdO1xuICB9O1xuICBcIi92MC91c2VyL21lL3RvdHBcIjoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgVE9UUCBSZXNldFxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemUgVE9UUCBSZXNldFxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBUT1RQIGNoYWxsZW5nZSB0aGF0IG11c3QgYmUgYW5zd2VyZWQgdG8gcHJvdmUgdGhhdCB0aGUgbmV3IFRPVFBcbiAgICAgKiB3YXMgc3VjY2Vzc2Z1bGx5IGltcG9ydGVkIGludG8gYW4gYXV0aGVudGljYXRvciBhcHAuXG4gICAgICpcbiAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBhbGxvd2VkIGlmIEVJVEhFUlxuICAgICAqIC0gdGhlIHVzZXIgYWNjb3VudCBpcyBub3QgeWV0IGluaXRpYWxpemVkIGFuZCBubyBUT1RQIGlzIGFscmVhZHkgc2V0LCBPUlxuICAgICAqIC0gdGhlIHVzZXIgaGFzIG5vdCBjb25maWd1cmVkIGFueSBhdXRoIGZhY3RvcnM7XG4gICAgICogb3RoZXJ3aXNlLCBNRkEgaXMgcmVxdWlyZWQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInJlc2V0VG90cEluaXRMZWdhY3lcIl07XG4gICAgLyoqXG4gICAgICogRmluYWxpemUgcmVzZXR0aW5nIFRPVFBcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgICAqXG4gICAgICogQ2hlY2tzIGlmIHRoZSByZXNwb25zZSBjb250YWlucyB0aGUgY29ycmVjdCBUT1RQIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGVcbiAgICAgKiBjaGFsbGVuZ2UgZ2VuZXJhdGVkIGJ5IHRoZSBQT1NUIG1ldGhvZCBvZiB0aGlzIGVuZHBvaW50LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wicmVzZXRUb3RwQ29tcGxldGVMZWdhY3lcIl07XG4gIH07XG4gIFwiL3YwL3VzZXIvbWUvdG90cC92ZXJpZnlcIjoge1xuICAgIC8qKlxuICAgICAqIFZlcmlmeSBUT1RQXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAZGVzY3JpcHRpb24gVmVyaWZ5IFRPVFBcbiAgICAgKlxuICAgICAqIENoZWNrcyBpZiBhIGdpdmVuIGNvZGUgbWF0Y2hlcyB0aGUgY3VycmVudCBUT1RQIGNvZGUgZm9yIHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICogRXJyb3JzIHdpdGggNDAzIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIG5vdCBzZXQgdXAgVE9UUCBvciB0aGUgY29kZSBmYWlscyB2ZXJpZmljYXRpb24uXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInZlcmlmeVRvdHBMZWdhY3lcIl07XG4gIH07XG4gIFwiL3YxL29yZy97b3JnX2lkfS9ibG9iL3NpZ24ve2tleV9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gUmF3IEJsb2JcbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBSYXcgQmxvYlxuICAgICAqXG4gICAgICogU2lnbnMgYW4gYXJiaXRyYXJ5IGJsb2Igd2l0aCBhIGdpdmVuIGtleS5cbiAgICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICAgKlxuICAgICAqIC0gRUNEU0Egc2lnbmF0dXJlcyBhcmUgc2VyaWFsaXplZCBhcyBiaWctZW5kaWFuIHIgYW5kIHMgcGx1cyByZWNvdmVyeS1pZFxuICAgICAqIGJ5dGUgdiwgd2hpY2ggY2FuIGluIGdlbmVyYWwgdGFrZSBhbnkgb2YgdGhlIHZhbHVlcyAwLCAxLCAyLCBvciAzLlxuICAgICAqXG4gICAgICogLSBFZERTQSBzaWduYXR1cmVzIGFyZSBzZXJpYWxpemVkIGluIHRoZSBzdGFuZGFyZCBmb3JtYXQuXG4gICAgICpcbiAgICAgKiAtIEJMUyBzaWduYXR1cmVzIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHRoZSBibG9iLXNpZ24gZW5kcG9pbnQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImJsb2JTaWduXCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vY3ViZTNzaWduZXIvaGVhcnRiZWF0XCI6IHtcbiAgICAvKipcbiAgICAgKiBSZWNvcmQgaGVhcnRiZWF0XG4gICAgICogQGRlc2NyaXB0aW9uIFJlY29yZCBoZWFydGJlYXRcbiAgICAgKlxuICAgICAqIFRoaXMgZW5kcG9pbnQgaXMgY2FsbGVkIGJ5IHRoZSBjdWJlM3NpZ25lciBwcm94eSB0byByZWNvcmQgdmFyaW91cyBtZXRyaWNzIHRvIENsb3VkV2F0Y2guXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImN1YmUzc2lnbmVySGVhcnRiZWF0XCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vZXRoMS9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIEVWTSBUcmFuc2FjdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIEVWTSBUcmFuc2FjdGlvblxuICAgICAqXG4gICAgICogU2lnbnMgYW4gRXRoZXJldW0gKGFuZCBvdGhlciBFVk0pIHRyYW5zYWN0aW9uIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgICAqIFJldHVybnMgYW4gUkxQLWVuY29kZWQgdHJhbnNhY3Rpb24gd2l0aCBFSVAtMTU1IHNpZ25hdHVyZS5cbiAgICAgKlxuICAgICAqIFRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZSBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJldGgxU2lnblwiXTtcbiAgfTtcbiAgXCIvdjEvb3JnL3tvcmdfaWR9L2V0aDIvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBWYWxpZGF0b3IgUmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIFZhbGlkYXRvciBSZXF1ZXN0XG4gICAgICpcbiAgICAgKiBTaWducyBhbiBldGgyIHZhbGlkYXRvciByZXF1ZXN0IHdpdGggYSBnaXZlbiBCTFMga2V5LlxuICAgICAqXG4gICAgICogVGhlIGtleSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZSBhbmQgb3JnYW5pemF0aW9uIG9uIHdob3NlIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImV0aDJTaWduXCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vZXRoMi9zdGFrZVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBTdGFrZSBEZXBvc2l0XG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gU3Rha2UgRGVwb3NpdFxuICAgICAqXG4gICAgICogU2lnbnMgYSBkZXBvc2l0IHRyYW5zYWN0aW9uIHdpdGggYSBgdmFsaWRhdG9yX2tleWAuIElmIGB2YWxpZGF0b3Jfa2V5YCBpcyBzZXQgdG8gYSBwcmVnZW5lcmF0ZWQga2V5LCB3ZSB1c2UgdGhlXG4gICAgICogcHJvdmlkZWQgdmFsaWRhdG9yIGtleS4gT3RoZXJ3aXNlLCB3ZSBnZW5lcmF0ZSBhIG5ldyBCTFMga2V5LlxuICAgICAqXG4gICAgICogV2hlbiB1c2luZyBhIHByZWdlbmVyYXRlZCBrZXksIHRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZVxuICAgICAqIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInN0YWtlXCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vZXRoMi91bnN0YWtlL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIFVuc3Rha2UgUmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIFVuc3Rha2UgUmVxdWVzdFxuICAgICAqXG4gICAgICogSGFuZGxlIHVuc3Rha2luZyByZXF1ZXN0LCBwcm9kdWNpbmcgYSBzaWduZWQgdm9sdW50YXJ5IGV4aXQgbWVzc2FnZVxuICAgICAqIHRoYXQgY2FuIGJlIHBvc3RlZCBkaXJlY3RseSB0byB0aGUgQmVhY29uIGNoYWluLlxuICAgICAqXG4gICAgICogVGhlIGtleSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZSBhbmQgb3JnYW5pemF0aW9uIG9uIHdob3NlIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInVuc3Rha2VcIl07XG4gIH07XG4gIFwiL3YxL29yZy97b3JnX2lkfS90b2tlbi9yZWZyZXNoXCI6IHtcbiAgICAvKipcbiAgICAgKiBSZWZyZXNoIFNpZ25lciBTZXNzaW9uXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZnJlc2ggU2lnbmVyIFNlc3Npb25cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInNpZ25lclNlc3Npb25SZWZyZXNoXCJdO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSB3ZWJob29rcyA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuZXhwb3J0IGludGVyZmFjZSBjb21wb25lbnRzIHtcbiAgc2NoZW1hczoge1xuICAgIEFjY2VwdGVkUmVzcG9uc2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXSAmIFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGlmZmVyZW50IHJlc3BvbnNlcyB3ZSByZXR1cm4gZm9yIHN0YXR1cyBjb2RlIFwiMjAyIEFjY2VwdGVkXCIuXG4gICAgICpcbiAgICAgKiBFdmVuIHRob3VnaCBcIjIwMiBBY2NlcHRlZFwiIGlzIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSwgd2UgcmVwcmVzZW50XG4gICAgICogaXQgYXMgYSBSdXN0IGVycm9yIGJlY2F1c2UgdGhhdCBtYWtlcyBpdCBlYXN5IHRvIGhhdmUgcm91dGUgaGFuZGxlcnNcbiAgICAgKiByZXR1cm4gYFJlc3VsdDxULCBTaWduZXJFcnJvcj5gIHdoZXJlIGBUYCBpcyB0aGUgdHlwZSBvZiB0aGVcbiAgICAgKiByZXNwb25zZSBmb3IgdGhlIHN0YXR1cyBjb2RlIFwiMjAwIE9rXCIuXG4gICAgICovXG4gICAgQWNjZXB0ZWRWYWx1ZToge1xuICAgICAgTWZhUmVxdWlyZWQ6IHtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBNRkEgcmVxdWVzdCBpZCAqL1xuICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE9yZ2FuaXphdGlvbiBpZCAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgc2Vzc2lvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgfTtcbiAgICBBZGRLZXlzVG9Sb2xlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBsaXN0IG9mIGtleXMgdG8gYWRkIHRvIGEgcm9sZVxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcIktleSM2MzAyM2EyNy0xZTcwLTQzMGEtYjI5My1mZmJjOWQ2YzQ0ODRcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBrZXlfaWRzOiBzdHJpbmdbXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHBvbGljaWVzIHRvIGFwcGx5IGZvciBlYWNoIGtleVxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJUeFJlY2VpdmVyXCI6IFwiMHg4YzU5NDY5MWMwZTU5MmZmYTIxZjE1M2ExNmFlNDFkYjViZWZjYWFhXCJcbiAgICAgICAqICAgfSxcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiVHhEZXBvc2l0XCI6IHtcbiAgICAgICAqICAgICAgIFwia2luZFwiOiBcIkNhbm9uaWNhbFwiXG4gICAgICAgKiAgICAgfVxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJSZXF1aXJlTWZhXCI6IHtcbiAgICAgICAqICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgKiAgICAgICAgIFwiUmVxdWlyZWRBcHByb3ZlcnNcIjoge1xuICAgICAgICogICAgICAgICAgIFwiY291bnRcIjogMVxuICAgICAgICogICAgICAgICB9XG4gICAgICAgKiAgICAgICB9LFxuICAgICAgICogICAgICAgXCJyZXN0cmljdGVkX29wZXJhdGlvbnNcIjogW1xuICAgICAgICogICAgICAgICBcIkV0aDFTaWduXCIsXG4gICAgICAgKiAgICAgICAgIFwiQmxvYlNpZ25cIlxuICAgICAgICogICAgICAgXVxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXSB8IG51bGw7XG4gICAgfTtcbiAgICBBZGRUaGlyZFBhcnR5VXNlclJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFVzZXIgZW1haWxcbiAgICAgICAqIEBleGFtcGxlIGFsaWNlQGV4YW1wbGUuY29tXG4gICAgICAgKi9cbiAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICBpZGVudGl0eTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPSURDSWRlbnRpdHlcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGxvZ2luIE1GQSBwb2xpY3kgKi9cbiAgICAgIG1mYV9wb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gICAgICByb2xlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1lbWJlclJvbGVcIl07XG4gICAgfTtcbiAgICBBcHByb3ZhbEluZm86IHtcbiAgICAgIHRpbWVzdGFtcDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdlYkF1dGhuIFJlbHlpbmcgUGFydGllcyBtYXkgdXNlIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UgdG8gc3BlY2lmeVxuICAgICAqIHRoZWlyIHByZWZlcmVuY2UgcmVnYXJkaW5nIGF0dGVzdGF0aW9uIGNvbnZleWFuY2UgZHVyaW5nIGNyZWRlbnRpYWxcbiAgICAgKiBnZW5lcmF0aW9uLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2VudW1kZWYtYXR0ZXN0YXRpb25jb252ZXlhbmNlcHJlZmVyZW5jZVxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTogXCJub25lXCIgfCBcImluZGlyZWN0XCIgfCBcImRpcmVjdFwiIHwgXCJlbnRlcnByaXNlXCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEYXRhIHJlcXVpcmVkIGZvciBib3RoIGBhdXRoZW50aWNhdGVgIGFuZCBgcmVmcmVzaGAuICovXG4gICAgQXV0aERhdGE6IHtcbiAgICAgIC8qKiBGb3JtYXQ6IGludDMyICovXG4gICAgICBlcG9jaF9udW06IG51bWJlcjtcbiAgICAgIGVwb2NoX3Rva2VuOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkIzMlwiXTtcbiAgICAgIG90aGVyX3Rva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyB0aGUgYXNzZXJ0aW9uIHJlc3BvbnNlIHVzZWQgYnkgY2xpZW50cyB3aGVuIGF0dGVtcHRpbmcgdG8gbG9nIGluIHdpdGggYSBrbm93biBjcmVkZW50aWFsXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2F1dGhlbnRpY2F0b3Jhc3NlcnRpb25yZXNwb25zZVxuICAgICAqL1xuICAgIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ29udGFpbnMgdGhlIHN0YW5kYXJkIENUQVAyIGF1dGhlbnRpY2F0b3IgZGF0YS4gTXVzdCBiZSBhIHZhbGlkIFtgQXV0aGVudGljYXRvckRhdGFgXS5cbiAgICAgICAqIFRoaXMgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgaG93IGtleSB3YXMgaW52b2tlZC5cbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tYXV0aGVudGljYXRvcmFzc2VydGlvbnJlc3BvbnNlLWF1dGhlbnRpY2F0b3JkYXRhXG4gICAgICAgKi9cbiAgICAgIGF1dGhlbnRpY2F0b3JEYXRhOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBDb250YWlucyBVVEY4IGVuY29kZWQgSlNPTiB3aGljaCBtdXN0IGJlIGEgdmFsaWQgW2BDbGllbnREYXRhYF1cbiAgICAgICAqIFRoaXMgZGF0YSBpcyBjb21iaW5lZCB3aXRoIGBhdXRoZW50aWNhdG9yX2RhdGFgIHRvIHByb2R1Y2UgdGhlIHNpZ25hdHVyZVxuICAgICAgICogbWVhbmluZyB0aGUgY2xpZW50IGF0dGVzdHMgdG8gdGhlIGNvcnJlY3RuZXNzIG9mIHRoaXMgZGF0YS5cbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tYXV0aGVudGljYXRvcnJlc3BvbnNlLWNsaWVudGRhdGFqc29uXG4gICAgICAgKi9cbiAgICAgIGNsaWVudERhdGFKU09OOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc2lnbmF0dXJlIG9mIHRoZSBjb25jYXRlbmF0ZWQgYGF1dGhlbnRpY2F0b3JEYXRhIHx8IGhhc2hgIHdoZXJlXG4gICAgICAgKiBgaGFzaGAgaXMgdGhlIFNIQTI1NiBoYXNoIG9mIHRoZSBgY2xpZW50RGF0YUpTT05gIGJ1ZmZlcjpcbiAgICAgICAqXG4gICAgICAgKiBGaWVsZCBEZWZpbml0aW9uOiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLWF1dGhlbnRpY2F0b3Jhc3NlcnRpb25yZXNwb25zZS1zaWduYXR1cmVcbiAgICAgICAqIFN0ZXAgMTEgb2YgYGdldEFzc2VydGlvbmAgc3BlY2lmaWVzIHRoZSBjb25jYXRlbmF0aW9uOiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jc2N0bi1vcC1nZXQtYXNzZXJ0aW9uXG4gICAgICAgKiBSZXF1aXJlbWVudCBmb3IgU0hBLTI1NjogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2NvbGxlY3RlZGNsaWVudGRhdGEtaGFzaC1vZi10aGUtc2VyaWFsaXplZC1jbGllbnQtZGF0YVxuICAgICAgICovXG4gICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFsbG93cyB0aGUgYXV0aGVudGljYXRvciB0byBvcHRpb25hbGx5IGRlY2xhcmUgdGhlIGNyZWRlbnRpYWwgaWRlbnRpZmllciB0aGV5IHVzZWQuXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLWF1dGhlbnRpY2F0b3Jhc3NlcnRpb25yZXNwb25zZS11c2VyaGFuZGxlXG4gICAgICAgKi9cbiAgICAgIHVzZXJIYW5kbGU/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZW51bWVyYXRpb27igJlzIHZhbHVlcyBkZXNjcmliZSBhdXRoZW50aWNhdG9ycycgYXR0YWNobWVudCBtb2RhbGl0aWVzLlxuICAgICAqIFJlbHlpbmcgUGFydGllcyB1c2UgdGhpcyB0byBleHByZXNzIGEgcHJlZmVycmVkIGF1dGhlbnRpY2F0b3IgYXR0YWNobWVudFxuICAgICAqIG1vZGFsaXR5IHdoZW4gY2FsbGluZyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKCkgdG8gY3JlYXRlIGEgY3JlZGVudGlhbC5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNlbnVtZGVmLWF1dGhlbnRpY2F0b3JhdHRhY2htZW50XG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBBdXRoZW50aWNhdG9yQXR0YWNobWVudDogXCJwbGF0Zm9ybVwiIHwgXCJjcm9zcy1wbGF0Zm9ybVwiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgaW50ZXJmYWNlIHJlcHJlc2VudHMgdGhlIGF1dGhlbnRpY2F0b3Inc1xuICAgICAqIHJlc3BvbnNlIHRvIGEgY2xpZW504oCZcyByZXF1ZXN0IGZvciB0aGUgY3JlYXRpb24gb2YgYSBuZXcgcHVibGljIGtleVxuICAgICAqIGNyZWRlbnRpYWwuIEl0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBuZXcgY3JlZGVudGlhbCB0aGF0IGNhbiBiZVxuICAgICAqIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIGxhdGVyIHVzZSwgYW5kIG1ldGFkYXRhIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhlXG4gICAgICogV2ViQXV0aG4gUmVseWluZyBQYXJ0eSB0byBhc3Nlc3MgdGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgY3JlZGVudGlhbFxuICAgICAqIGR1cmluZyByZWdpc3RyYXRpb24uXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jaWZhY2UtYXV0aGVudGljYXRvcmF0dGVzdGF0aW9ucmVzcG9uc2VcbiAgICAgKi9cbiAgICBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBhdHRyaWJ1dGUgY29udGFpbnMgYW4gYXR0ZXN0YXRpb24gb2JqZWN0LCB3aGljaCBpcyBvcGFxdWUgdG8sIGFuZFxuICAgICAgICogY3J5cHRvZ3JhcGhpY2FsbHkgcHJvdGVjdGVkIGFnYWluc3QgdGFtcGVyaW5nIGJ5LCB0aGUgY2xpZW50LiBUaGVcbiAgICAgICAqIGF0dGVzdGF0aW9uIG9iamVjdCBjb250YWlucyBib3RoIGF1dGhlbnRpY2F0b3IgZGF0YSBhbmQgYW4gYXR0ZXN0YXRpb25cbiAgICAgICAqIHN0YXRlbWVudC4gVGhlIGZvcm1lciBjb250YWlucyB0aGUgQUFHVUlELCBhIHVuaXF1ZSBjcmVkZW50aWFsIElELCBhbmRcbiAgICAgICAqIHRoZSBjcmVkZW50aWFsIHB1YmxpYyBrZXkuIFRoZSBjb250ZW50cyBvZiB0aGUgYXR0ZXN0YXRpb24gc3RhdGVtZW50IGFyZVxuICAgICAgICogZGV0ZXJtaW5lZCBieSB0aGUgYXR0ZXN0YXRpb24gc3RhdGVtZW50IGZvcm1hdCB1c2VkIGJ5IHRoZVxuICAgICAgICogYXV0aGVudGljYXRvci4gSXQgYWxzbyBjb250YWlucyBhbnkgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0aGF0IHRoZVxuICAgICAgICogUmVseWluZyBQYXJ0eSdzIHNlcnZlciByZXF1aXJlcyB0byB2YWxpZGF0ZSB0aGUgYXR0ZXN0YXRpb24gc3RhdGVtZW50LFxuICAgICAgICogYXMgd2VsbCBhcyB0byBkZWNvZGUgYW5kIHZhbGlkYXRlIHRoZSBhdXRoZW50aWNhdG9yIGRhdGEgYWxvbmcgd2l0aCB0aGVcbiAgICAgICAqIEpTT04tY29tcGF0aWJsZSBzZXJpYWxpemF0aW9uIG9mIGNsaWVudCBkYXRhLiBGb3IgbW9yZSBkZXRhaWxzLCBzZWVcbiAgICAgICAqIMKn4oCvNi41IEF0dGVzdGF0aW9uLCDCp+KArzYuNS40IEdlbmVyYXRpbmcgYW4gQXR0ZXN0YXRpb24gT2JqZWN0LCBhbmQgRmlndXJlXG4gICAgICAgKiA2LlxuICAgICAgICovXG4gICAgICBhdHRlc3RhdGlvbk9iamVjdDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBhdHRyaWJ1dGUsIGluaGVyaXRlZCBmcm9tIEF1dGhlbnRpY2F0b3JSZXNwb25zZSwgY29udGFpbnMgdGhlXG4gICAgICAgKiBKU09OLWNvbXBhdGlibGUgc2VyaWFsaXphdGlvbiBvZiBjbGllbnQgZGF0YSAoc2VlIMKn4oCvNi41IEF0dGVzdGF0aW9uKVxuICAgICAgICogcGFzc2VkIHRvIHRoZSBhdXRoZW50aWNhdG9yIGJ5IHRoZSBjbGllbnQgaW4gb3JkZXIgdG8gZ2VuZXJhdGUgdGhpc1xuICAgICAgICogY3JlZGVudGlhbC4gVGhlIGV4YWN0IEpTT04gc2VyaWFsaXphdGlvbiBNVVNUIGJlIHByZXNlcnZlZCwgYXMgdGhlIGhhc2hcbiAgICAgICAqIG9mIHRoZSBzZXJpYWxpemVkIGNsaWVudCBkYXRhIGhhcyBiZWVuIGNvbXB1dGVkIG92ZXIgaXQuXG4gICAgICAgKi9cbiAgICAgIGNsaWVudERhdGFKU09OOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2ViQXV0aG4gUmVseWluZyBQYXJ0aWVzIG1heSB1c2UgdGhlIEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYVxuICAgICAqIGRpY3Rpb25hcnkgdG8gc3BlY2lmeSB0aGVpciByZXF1aXJlbWVudHMgcmVnYXJkaW5nIGF1dGhlbnRpY2F0b3JcbiAgICAgKiBhdHRyaWJ1dGVzLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RpY3RkZWYtYXV0aGVudGljYXRvcnNlbGVjdGlvbmNyaXRlcmlhXG4gICAgICovXG4gICAgQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOiB7XG4gICAgICBhdXRoZW50aWNhdG9yX2F0dGFjaG1lbnQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1dGhlbnRpY2F0b3JBdHRhY2htZW50XCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIGlzIHJldGFpbmVkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIFdlYkF1dGhuIExldmVsXG4gICAgICAgKiAxIGFuZCwgZm9yIGhpc3RvcmljYWwgcmVhc29ucywgaXRzIG5hbWluZyByZXRhaW5zIHRoZSBkZXByZWNhdGVkXG4gICAgICAgKiDigJxyZXNpZGVudOKAnSB0ZXJtaW5vbG9neSBmb3IgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWxzLiBSZWx5aW5nIFBhcnRpZXNcbiAgICAgICAqIFNIT1VMRCBzZXQgaXQgdG8gdHJ1ZSBpZiwgYW5kIG9ubHkgaWYsIHJlc2lkZW50S2V5IGlzIHNldCB0byByZXF1aXJlZC5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLWF1dGhlbnRpY2F0b3JzZWxlY3Rpb25jcml0ZXJpYS1yZXF1aXJlcmVzaWRlbnRrZXlcbiAgICAgICAqL1xuICAgICAgcmVxdWlyZV9yZXNpZGVudF9rZXk/OiBib29sZWFuO1xuICAgICAgcmVzaWRlbnRfa2V5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSZXNpZGVudEtleVJlcXVpcmVtZW50XCJdIHwgbnVsbDtcbiAgICAgIHVzZXJfdmVyaWZpY2F0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnRcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXV0aGVudGljYXRvcnMgbWF5IGltcGxlbWVudCB2YXJpb3VzIHRyYW5zcG9ydHMgZm9yIGNvbW11bmljYXRpbmcgd2l0aFxuICAgICAqIGNsaWVudHMuIFRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBoaW50cyBhcyB0byBob3cgY2xpZW50cyBtaWdodCBjb21tdW5pY2F0ZVxuICAgICAqIHdpdGggYSBwYXJ0aWN1bGFyIGF1dGhlbnRpY2F0b3IgaW4gb3JkZXIgdG8gb2J0YWluIGFuIGFzc2VydGlvbiBmb3IgYVxuICAgICAqIHNwZWNpZmljIGNyZWRlbnRpYWwuIE5vdGUgdGhhdCB0aGVzZSBoaW50cyByZXByZXNlbnQgdGhlIFdlYkF1dGhuIFJlbHlpbmdcbiAgICAgKiBQYXJ0eSdzIGJlc3QgYmVsaWVmIGFzIHRvIGhvdyBhbiBhdXRoZW50aWNhdG9yIG1heSBiZSByZWFjaGVkLiBBIFJlbHlpbmdcbiAgICAgKiBQYXJ0eSB3aWxsIHR5cGljYWxseSBsZWFybiBvZiB0aGUgc3VwcG9ydGVkIHRyYW5zcG9ydHMgZm9yIGEgcHVibGljIGtleVxuICAgICAqIGNyZWRlbnRpYWwgdmlhIGdldFRyYW5zcG9ydHMoKS5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNlbnVtZGVmLWF1dGhlbnRpY2F0b3J0cmFuc3BvcnRcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6IFwidXNiXCIgfCBcIm5mY1wiIHwgXCJibGVcIiB8IFwiaW50ZXJuYWxcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlcXVlc3QgdG8gc2lnbiBhbiBBdmFsYW5jaGUgdHJhbnNhY3Rpb25zICovXG4gICAgQXZhU2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRyYW5zYWN0aW9uIHRvIHNpZ24uXG4gICAgICAgKlxuICAgICAgICogRXhhbXBsZXM6XG4gICAgICAgKiAtIHtcIlBcIjogeyBcIkFkZFBlcm1pc3Npb25sZXNzVmFsaWRhdG9yXCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL3BsYXRmb3Jtdm0vdHhzL2FkZF9wZXJtaXNzaW9ubGVzc192YWxpZGF0b3IucnMjTDE0KSB9fVxuICAgICAgICogLSB7XCJQXCI6IHsgXCJBZGRTdWJuZXRWYWxpZGF0b3JcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvcGxhdGZvcm12bS90eHMvYWRkX3N1Ym5ldF92YWxpZGF0b3IucnMjTDI5KSB9fVxuICAgICAgICogLSB7XCJQXCI6IHsgXCJBZGRWYWxpZGF0b3JcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvcGxhdGZvcm12bS90eHMvYWRkX3ZhbGlkYXRvci5ycyNMMTIpIH19XG4gICAgICAgKiAtIHtcIlBcIjogeyBcIkNyZWF0ZUNoYWluXCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL3BsYXRmb3Jtdm0vdHhzL2NyZWF0ZV9jaGFpbi5ycyNMOCkgfX1cbiAgICAgICAqIC0ge1wiUFwiOiB7IFwiQ3JlYXRlU3VibmV0XCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL3BsYXRmb3Jtdm0vdHhzL2NyZWF0ZV9zdWJuZXQucnMjTDgpIH19XG4gICAgICAgKiAtIHtcIlBcIjogeyBcIkV4cG9ydFwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9wbGF0Zm9ybXZtL3R4cy9leHBvcnQucnMjTDEyKSB9fVxuICAgICAgICogLSB7XCJQXCI6IHsgXCJJbXBvcnRcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvcGxhdGZvcm12bS90eHMvaW1wb3J0LnJzI0wxMikgfX1cbiAgICAgICAqIC0ge1wiWFwiOiB7IFwiQmFzZVwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9hdm0vdHhzL21vZC5ycyNMMjEpIH19XG4gICAgICAgKiAtIHtcIlhcIjogeyBcIkV4cG9ydFwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9hdm0vdHhzL2V4cG9ydC5ycyNMMTYpIH19XG4gICAgICAgKiAtIHtcIlhcIjogeyBcIkltcG9ydFwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9hdm0vdHhzL2ltcG9ydC5ycyNMMTQpIH19XG4gICAgICAgKi9cbiAgICAgIHR4OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFdyYXBwZXIgYXJvdW5kIGEgemVyb2l6aW5nIDMyLWJ5dGUgZml4ZWQtc2l6ZSBhcnJheSAqL1xuICAgIEIzMjogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgIFwibWVzc2FnZV9iYXNlNjRcIjogXCJZV0pqWkdWbVoyaHBhbXRzYlc1dmNIRnljM1IxZG5kNGVYb3hNak0wTlRZS1wiXG4gICAgICogfVxuICAgICAqL1xuICAgIEJsb2JTaWduUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGJsb2IgdG8gc2lnbiwgZW5jb2RlZCBhcyBhIGJhc2U2NCBzdHJpbmcuXG4gICAgICAgKlxuICAgICAgICogTm90ZSB0aGF0IGNlcnRhaW4gc2lnbmluZyBrZXlzIGltcG9zZSBhZGRpdGlvbmFsIHJlcXVpcmVtZW50cyBvbiB0aGUgY29udGVudHMgb2ZcbiAgICAgICAqIHRoZSBtZXNzYWdlLiBGb3IgZXhhbXBsZSwgU2VjcDI1NmsxIGtleXMgcmVxdWlyZSB0aGF0IHRoZSBtZXNzYWdlIGlzIDMyIGJ5dGVzIGxvbmcuXG4gICAgICAgKi9cbiAgICAgIG1lc3NhZ2VfYmFzZTY0OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICBCdGNTaWdoYXNoVHlwZTogXCJBbGxcIiB8IFwiTm9uZVwiIHwgXCJTaW5nbGVcIiB8IFwiQWxsUGx1c0FueW9uZUNhblBheVwiIHwgXCJOb25lUGx1c0FueW9uZUNhblBheVwiIHwgXCJTaW5nbGVQbHVzQW55b25lQ2FuUGF5XCI7XG4gICAgQnRjU2lnblJlcXVlc3Q6IHtcbiAgICAgIHNpZ19raW5kOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ0Y1NpZ25hdHVyZUtpbmRcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBiaXRjb2luIHRyYW5zYWN0aW9uIHRvIHNpZ24gKi9cbiAgICAgIHR4OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgfTtcbiAgICBCdGNTaWduYXR1cmVLaW5kOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFNlZ3JlZ2F0ZWQgV2l0bmVzcyAqL1xuICAgICAgU2Vnd2l0OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVHJhbnNhY3Rpb24gaW5wdXQgaW5kZXhcbiAgICAgICAgICogQGV4YW1wbGUgMFxuICAgICAgICAgKi9cbiAgICAgICAgaW5wdXRfaW5kZXg6IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBTY3JpcHRcbiAgICAgICAgICogQGV4YW1wbGUgMHg3NmE5MTQ3OTA5MTk3MjE4NmM0NDllYjFkZWQyMmI3OGU0MGQwMDliZGYwMDg5ODhhY1xuICAgICAgICAgKi9cbiAgICAgICAgc2NyaXB0X2NvZGU6IHN0cmluZztcbiAgICAgICAgc2lnaGFzaF90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ0Y1NpZ2hhc2hUeXBlXCJdO1xuICAgICAgICAvKipcbiAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gQW1vdW50IGluIHNhdG9zaGlzXG4gICAgICAgICAqIEBleGFtcGxlIDEwMDAwMDBcbiAgICAgICAgICovXG4gICAgICAgIHZhbHVlOiBudW1iZXI7XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNlc3Npb24gaW5mb3JtYXRpb24gc2VudCB0byB0aGUgY2xpZW50LlxuICAgICAqIFRoaXMgc3RydWN0IHdvcmtzIGluIHRhbmRlbSB3aXRoIGl0cyBzZXJ2ZXItc2lkZSBjb3VudGVycGFydCBbYFNlc3Npb25EYXRhYF0uXG4gICAgICovXG4gICAgQ2xpZW50U2Vzc2lvbkluZm86IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVG9rZW4gdG8gdXNlIGZvciBhdXRob3JpemF0aW9uLiAqL1xuICAgICAgYXV0aF90b2tlbjogc3RyaW5nO1xuICAgICAgYXV0aF90b2tlbl9leHA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIEVwb2NoIGF0IHdoaWNoIHRoZSB0b2tlbiB3YXMgbGFzdCByZWZyZXNoZWRcbiAgICAgICAqL1xuICAgICAgZXBvY2g6IG51bWJlcjtcbiAgICAgIGVwb2NoX3Rva2VuOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkIzMlwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVG9rZW4gdG8gdXNlIGZvciByZWZyZXNoaW5nIHRoZSBgKGF1dGgsIHJlZnJlc2gpYCB0b2tlbiBwYWlyICovXG4gICAgICByZWZyZXNoX3Rva2VuOiBzdHJpbmc7XG4gICAgICByZWZyZXNoX3Rva2VuX2V4cDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTZXNzaW9uIElEICovXG4gICAgICBzZXNzaW9uX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBDb25maWd1cmVkTWZhOiB7XG4gICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgIHR5cGU6IFwidG90cFwiO1xuICAgIH0gfCB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgdW5pcXVlIGNyZWRlbnRpYWwgaWQgKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcmVhZGFibGUgbmFtZSBnaXZlbiB0byB0aGUga2V5ICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgIHR5cGU6IFwiZmlkb1wiO1xuICAgIH07XG4gICAgQ3JlYXRlS2V5UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ2hhaW4gaWQgZm9yIHdoaWNoIHRoZSBrZXkgaXMgYWxsb3dlZCB0byBzaWduIG1lc3NhZ2VzXG4gICAgICAgKiBAZXhhbXBsZSA1XG4gICAgICAgKi9cbiAgICAgIGNoYWluX2lkPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiBrZXlzIHRvIGNyZWF0ZVxuICAgICAgICogQGV4YW1wbGUgMVxuICAgICAgICovXG4gICAgICBjb3VudDogbnVtYmVyO1xuICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFsbG93cyB1c2VycyB0byBzcGVjaWZ5IGEgdXNlciBvdGhlciB0aGFuIHRoZW1zZWx2ZXMgdG8gcmVjZWl2ZSB0aGUga2V5XG4gICAgICAgKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlxuICAgICAgICovXG4gICAgICBvd25lcj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGNyZWF0ZSByb2xlIHJlcXVlc3QgYm9keSAqL1xuICAgIENyZWF0ZVJvbGVSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSByb2xlLlxuICAgICAgICogQGV4YW1wbGUgbXlfcm9sZVxuICAgICAgICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgfTtcbiAgICBDcmVhdGVUb2tlblJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUmF0Y2hldENvbmZpZ1wiXSAmICh7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuIHJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSBwdXJwb3NlIG9mIHRoZSBrZXlcbiAgICAgICAqIEBleGFtcGxlIFZhbGlkYXRvciBTaWduaW5nXG4gICAgICAgKi9cbiAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIENvbnRyb2xzIHdoYXQgY2FwYWJpbGl0aWVzIHRoaXMgc2Vzc2lvbiB3aWxsIGhhdmUuIEJ5IGRlZmF1bHQsIGl0IGhhcyBhbGxcbiAgICAgICAqIHNpZ25pbmcgY2FwYWJpbGl0aWVzLCBpLmUuLCBqdXN0IHRoZSAnc2lnbjoqJyBzY29wZS5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJzaWduOipcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBzY29wZXM/OiBzdHJpbmdbXSB8IG51bGw7XG4gICAgfSk7XG4gICAgQ3ViZVNpZ25lclVzZXJJbmZvOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBtdWx0aS1mYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kcyBjb25maWd1cmVkIGZvciB0aGlzIHVzZXIgKi9cbiAgICAgIGNvbmZpZ3VyZWRfbWZhOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbmZpZ3VyZWRNZmFcIl1bXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU2V0IG9uY2UgdGhlIHVzZXIgc3VjY2Vzc2Z1bGx5IGxvZ3MgaW50byBDdWJlU2lnbmVyICovXG4gICAgICBpbml0aWFsaXplZDogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQ3ViZVNpZ25lcidzIHVzZXIgaWRlbnRpZmllciAqL1xuICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIHByb2R1Y2VkIGJ5IGEgc3VjY2Vzc2Z1bCBkZXBvc2l0XG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJjaGFpbl9pZFwiOiA1LFxuICAgICAqICAgXCJkZXBvc2l0X3R4blwiOiB7XG4gICAgICogICAgIFwiZGF0YVwiOiBcIjB4Li4uXCIsXG4gICAgICogICAgIFwidG9cIjogXCIweGZmNTBlZDNkMGVjMDNhYzAxZDRjNzlhYWQ3NDkyOGJmZjQ4YTdiMmJcIixcbiAgICAgKiAgICAgXCJ2YWx1ZVwiOiBcIjB4MWJjMTZkNjc0ZWM4MDAwMDBcIlxuICAgICAqICAgfSxcbiAgICAgKiAgIFwibmV3X3ZhbGlkYXRvcl9wa1wiOiBcIjk3MDBmYmI4YzkwNjk0MjQ0MmMyYTViM2FkNzQ5OGYyN2FlZGRhMjUzNzg2YTZmYmFhOGZlZjQ3ZmI3YWYyMzRlNTBjZjJjY2U4MTVhNTUzMDg3OTkyYWU1NjVkNDhkYVwiXG4gICAgICogfVxuICAgICAqL1xuICAgIERlcG9zaXRUeG46IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIENoYWluIElEIGZvciB3aGljaCB0aGUgZGVwb3NpdCB0cmFuc2FjdGlvbiB3YXMgY3JlYXRlZFxuICAgICAgICovXG4gICAgICBjaGFpbl9pZDogbnVtYmVyO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZGVwb3NpdCB0cmFuc2FjdGlvbi4gSW5jbHVkZXMgb25seSBgdG9gLCBgdmFsdWVgLCBhbmQgYGRhdGFgIGZpZWxkcy4gKi9cbiAgICAgIGRlcG9zaXRfdHhuOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBoZXgtZW5jb2RlZCBjb21wcmVzc2VkIGZvcm0gb2YgdGhlIG5ldyB2YWxpZGF0b3IgQkxTIHB1YmxpYyBrZXkgKi9cbiAgICAgIG5ld192YWxpZGF0b3JfcGs6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdHlwZSBvZiBkZXBvc2l0IHRvIHBlcmZvcm1cbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIERlcG9zaXRUeXBlOiBcIkNhbm9uaWNhbFwiIHwgXCJXcmFwcGVyXCI7XG4gICAgRGVyaXZlS2V5UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT25lIG9yIG1vcmUgZGVyaXZhdGlvbiBwYXRocyBmcm9tIHdoaWNoIHRvIGRlcml2ZSBrZXlzLlxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcIm0vNDQnLzYwJy8wJy8wLzBcIixcbiAgICAgICAqICAgXCJtLzQ0Jy85MDAwJy8wJy8wLzBcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBkZXJpdmF0aW9uX3BhdGg6IHN0cmluZ1tdO1xuICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1hdGVyaWFsLWlkIG9mIHRoZSBtbmVtb25pYyB0byB1c2UgZm9yIGRlcml2YXRpb25cbiAgICAgICAqIEBleGFtcGxlIDB4OWYwN2JlODJkOTM0ZmNiNWQwZjc1ZGQyNGMyZGZlYThhODVhNGQwYzI4OWQ1ODgyOGIzNTM3ZmFlMjRkMzJiOFxuICAgICAgICovXG4gICAgICBtbmVtb25pY19pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJjaGFpbl9pZFwiOiAxMzM3LFxuICAgICAqICAgXCJ0eXBlZF9kYXRhXCI6IHtcbiAgICAgKiAgICAgXCJkb21haW5cIjoge1xuICAgICAqICAgICAgIFwiY2hhaW5JZFwiOiAxMzM3LFxuICAgICAqICAgICAgIFwibmFtZVwiOiBcIkV0aGVyIE1haWxcIixcbiAgICAgKiAgICAgICBcInZlcmlmeWluZ0NvbnRyYWN0XCI6IFwiMHhDY0NDY2NjY0NDQ0NjQ0NDQ0NDY0NjQ2NjQ2NDQ0NjQ2NjY2NjY2NDXCIsXG4gICAgICogICAgICAgXCJ2ZXJzaW9uXCI6IFwiMVwiXG4gICAgICogICAgIH0sXG4gICAgICogICAgIFwibWVzc2FnZVwiOiB7XG4gICAgICogICAgICAgXCJjb250ZW50c1wiOiBcIkhlbGxvLCBCb2IhXCIsXG4gICAgICogICAgICAgXCJmcm9tXCI6IHtcbiAgICAgKiAgICAgICAgIFwibmFtZVwiOiBcIkNvd1wiLFxuICAgICAqICAgICAgICAgXCJ3YWxsZXRzXCI6IFtcbiAgICAgKiAgICAgICAgICAgXCIweENEMmEzZDlGOTM4RTEzQ0Q5NDdFYzA1QWJDN0ZFNzM0RGY4REQ4MjZcIixcbiAgICAgKiAgICAgICAgICAgXCIweERlYURiZWVmZEVBZGJlZWZkRWFkYkVFRmRlYWRiZUVGZEVhRGJlZUZcIlxuICAgICAqICAgICAgICAgXVxuICAgICAqICAgICAgIH0sXG4gICAgICogICAgICAgXCJ0b1wiOiB7XG4gICAgICogICAgICAgICBcIm5hbWVcIjogXCJCb2JcIixcbiAgICAgKiAgICAgICAgIFwid2FsbGV0c1wiOiBbXG4gICAgICogICAgICAgICAgIFwiMHhiQmJCQkJCYmJCQkJiYmJCYmJCYmJiYkJCYkJiYmJiQmJCYmJCQmJCXCIsXG4gICAgICogICAgICAgICAgIFwiMHhCMEJkYUJlYTU3QjBCREFCZUE1N2IwYmRBQkVBNTdiMEJEYWJFYTU3XCIsXG4gICAgICogICAgICAgICAgIFwiMHhCMEIwYjBiMGIwYjBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCJcbiAgICAgKiAgICAgICAgIF1cbiAgICAgKiAgICAgICB9XG4gICAgICogICAgIH0sXG4gICAgICogICAgIFwicHJpbWFyeVR5cGVcIjogXCJNYWlsXCIsXG4gICAgICogICAgIFwidHlwZXNcIjoge1xuICAgICAqICAgICAgIFwiRUlQNzEyRG9tYWluXCI6IFtcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwibmFtZVwiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAqICAgICAgICAgfSxcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwidmVyc2lvblwiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAqICAgICAgICAgfSxcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwiY2hhaW5JZFwiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJ1aW50MjU2XCJcbiAgICAgKiAgICAgICAgIH0sXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcInZlcmlmeWluZ0NvbnRyYWN0XCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcImFkZHJlc3NcIlxuICAgICAqICAgICAgICAgfVxuICAgICAqICAgICAgIF0sXG4gICAgICogICAgICAgXCJHcm91cFwiOiBbXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcIm5hbWVcIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgKiAgICAgICAgIH0sXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcIm1lbWJlcnNcIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwiUGVyc29uW11cIlxuICAgICAqICAgICAgICAgfVxuICAgICAqICAgICAgIF0sXG4gICAgICogICAgICAgXCJNYWlsXCI6IFtcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwiZnJvbVwiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJQZXJzb25cIlxuICAgICAqICAgICAgICAgfSxcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwidG9cIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwiUGVyc29uXCJcbiAgICAgKiAgICAgICAgIH0sXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcImNvbnRlbnRzXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICogICAgICAgICB9XG4gICAgICogICAgICAgXSxcbiAgICAgKiAgICAgICBcIlBlcnNvblwiOiBbXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcIm5hbWVcIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgKiAgICAgICAgIH0sXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcIndhbGxldHNcIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwiYWRkcmVzc1tdXCJcbiAgICAgKiAgICAgICAgIH1cbiAgICAgKiAgICAgICBdXG4gICAgICogICAgIH1cbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICovXG4gICAgRWlwNzEyU2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBjaGFpbi1pZCB0byB3aGljaCB0aGlzIHR5cGVkIGRhdGEgd2lsbCBiZSBzZW50XG4gICAgICAgKi9cbiAgICAgIGNoYWluX2lkOiBudW1iZXI7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEVJUC03MTIgdHlwZWQgZGF0YS4gUmVmZXIgdG8gdGhlIEpTT04gc2NoZW1hIGRlZmluZWQgaW4gRUlQLTcxMi4gKi9cbiAgICAgIHR5cGVkX2RhdGE6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICB9O1xuICAgIC8qKiBAZGVmYXVsdCBudWxsICovXG4gICAgRW1wdHk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbDtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXBvY2ggaXMgYSBxdW90ZWQgYHVpbnQ2NGAuXG4gICAgICogQGV4YW1wbGUgMjU2XG4gICAgICovXG4gICAgRXBvY2g6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICogQGRlc2NyaXB0aW9uIERhdGVUaW1lIG1lYXN1cmVkIGluIHNlY29uZHMgc2luY2UgdW5peCBlcG9jaC5cbiAgICAgKiBBIHdyYXBwZXIgdHlwZSBmb3Igc2VyaWFsaXphdGlvbiB0aGF0IGVuY29kZXMgYSBbYFN5c3RlbVRpbWVgXSBhcyBhIFtgdTY0YF1cbiAgICAgKiByZXByZXNlbnRpbmcgdGhlIG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIFtgU3lzdGVtVGltZTo6VU5JWF9FUE9DSGBdLlxuICAgICAqL1xuICAgIEVwb2NoRGF0ZVRpbWU6IG51bWJlcjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzdHJ1Y3R1cmUgb2YgRXJyb3JSZXNwb25zZSBtdXN0IG1hdGNoIHRoZSByZXNwb25zZSB0ZW1wbGF0ZSB0aGF0IEFXUyB1c2VzICovXG4gICAgRXJyb3JSZXNwb25zZToge1xuICAgICAgYWNjZXB0ZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkVmFsdWVcIl0gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBFcnJvciBtZXNzYWdlICovXG4gICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHJlcXVlc3QgaWRlbnRpZmllciAqL1xuICAgICAgcmVxdWVzdF9pZD86IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgIFwiY2hhaW5faWRcIjogNDMxMTMsXG4gICAgICogICBcInR4XCI6IHtcbiAgICAgKiAgICAgXCJjaGFpbl9pZFwiOiBcIjB4YTg2OVwiLFxuICAgICAqICAgICBcImdhc1wiOiBcIjB4NjFhODBcIixcbiAgICAgKiAgICAgXCJtYXhGZWVQZXJHYXNcIjogXCIweDk1MDJGOTAwXCIsXG4gICAgICogICAgIFwibWF4UHJpb3JpdHlGZWVQZXJHYXNcIjogXCIweDUwXCIsXG4gICAgICogICAgIFwibm9uY2VcIjogXCIweGJcIixcbiAgICAgKiAgICAgXCJ0b1wiOiBcIjB4ZjAwYmExMmYwMDAwMDAwMGI0MTIxMjAwMDAwZjAwYzBmZmVlZjAwZFwiLFxuICAgICAqICAgICBcInR5cGVcIjogXCIweDAyXCIsXG4gICAgICogICAgIFwidmFsdWVcIjogXCIweDEwMDAwMDAwMDAwXCJcbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICovXG4gICAgRXRoMVNpZ25SZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgY2hhaW4gaWQgdG8gc2V0IGluIHRoZSBnaXZlbiB0cmFuc2FjdGlvbi5cbiAgICAgICAqL1xuICAgICAgY2hhaW5faWQ6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEVJUC0yNzE4IHR5cGVkIHRyYW5zYWN0aW9uIChzZWUgdGhlIFtldGhlcnMtcnNcbiAgICAgICAqIGludGVyZmFjZV0oaHR0cHM6Ly9kb2NzLnJzL2V0aGVycy9sYXRlc3QvZXRoZXJzL3R5cGVzL3N0cnVjdC5FaXAxNTU5VHJhbnNhY3Rpb25SZXF1ZXN0Lmh0bWwpKSB0eXBlcywgaW5jbHVkaW5nIEVJUC0xNTU5IHRyYW5zYWN0aW9ucyAoYHsgXCJ0eXBlXCI6IFwiMHgwMlwiIC4uLiB9YCksIGFuZCBsZWdhY3lcbiAgICAgICAqIHRyYW5zYWN0aW9ucyAoYHsgXCJ0eXBlXCI6IFwiMHgwMFwiIC4uLiB9YCkuIEFsbCB2YWx1ZXMgaW4gdGhlIHRyYW5zYWN0aW9uIGFyZSBleHBlY3RlZFxuICAgICAgICogdG8gYmUgKDB4LXByZWZpeGVkIG9yIG5vdCkgaGV4IHN0cmluZ3Mgb3IgYnl0ZSBhcnJheXMuXG4gICAgICAgKi9cbiAgICAgIHR4OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcImV0aDJfc2lnbl9yZXF1ZXN0XCI6IHtcbiAgICAgKiAgICAgXCJhZ2dyZWdhdGlvbl9zbG90XCI6IHtcbiAgICAgKiAgICAgICBcInNsb3RcIjogXCIzNlwiXG4gICAgICogICAgIH0sXG4gICAgICogICAgIFwiZm9ya19pbmZvXCI6IHtcbiAgICAgKiAgICAgICBcImZvcmtcIjoge1xuICAgICAqICAgICAgICAgXCJjdXJyZW50X3ZlcnNpb25cIjogXCIweDQyNDI0MjQyXCIsXG4gICAgICogICAgICAgICBcImVwb2NoXCI6IFwiMFwiLFxuICAgICAqICAgICAgICAgXCJwcmV2aW91c192ZXJzaW9uXCI6IFwiMHg0MjQyNDI0MlwiXG4gICAgICogICAgICAgfSxcbiAgICAgKiAgICAgICBcImdlbmVzaXNfdmFsaWRhdG9yc19yb290XCI6IFwiMHg5ZDEzZDYxMjEyYzA2N2UwMmNlOGU2MDhhNzAwN2UyYzNiMDI1NzFlOWU2ZjI3ZmY0NWRmYTkxYmYyN2M4NzBiXCJcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgXCJzaWduaW5nUm9vdFwiOiBcIjB4OWM1N2U3N2M0OTY1NzI3NTQyYjkzMzdkZjY3NTZmOTQ4NDY0YmNhMzg1OWJlYTZlZDNjMGVjNjYwMGQ4OTgyYVwiLFxuICAgICAqICAgICBcInR5cGVcIjogXCJBR0dSRUdBVElPTl9TTE9UXCJcbiAgICAgKiAgIH0sXG4gICAgICogICBcIm5ldHdvcmtcIjogXCJtYWlubmV0XCJcbiAgICAgKiB9XG4gICAgICovXG4gICAgRXRoMlNpZ25SZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTdWJzZXQgb2YgdGhlIFdlYjNTaWduZXIgRXRoMiBCTFMgc2lnbmluZyByZXF1ZXN0IHdob3NlIHNjaGVtYSBpcyBkZWZpbmVkXG4gICAgICAgKiBbaGVyZV0oaHR0cHM6Ly9jb25zZW5zeXMuZ2l0aHViLmlvL3dlYjNzaWduZXIvd2ViM3NpZ25lci1ldGgyLmh0bWwjdGFnL1NpZ25pbmcvb3BlcmF0aW9uL0VUSDJfU0lHTikuXG4gICAgICAgKiBXZSBoYW5kbGUgZGVwb3NpdHMgYW5kIHZvbHVudGFyeSBleGl0cyBzZXBhcmF0ZWx5LlxuICAgICAgICovXG4gICAgICBldGgyX3NpZ25fcmVxdWVzdDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgICAgbmV0d29yazogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJOZXR3b3JrXCJdO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBTZW50IGZyb20gdGhlIGNsaWVudCB0byB0aGUgc2VydmVyIHRvIGFuc3dlciBhIGZpZG8gY2hhbGxlbmdlICovXG4gICAgRmlkb0Fzc2VydEFuc3dlcjoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIGNoYWxsZW5nZSB0aGF0IHdhcyByZXR1cm5lZCBmcm9tIHRoZSBQT1NUIGVuZHBvaW50ICovXG4gICAgICBjaGFsbGVuZ2VfaWQ6IHN0cmluZztcbiAgICAgIGNyZWRlbnRpYWw6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFwiXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gU2VudCBmcm9tIHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlciB0byBhbnN3ZXIgYSBmaWRvIGNoYWxsZW5nZSAqL1xuICAgIEZpZG9DcmVhdGVDaGFsbGVuZ2VBbnN3ZXI6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBjaGFsbGVuZ2UgdGhhdCB3YXMgcmV0dXJuZWQgZnJvbSB0aGUgUE9TVCBlbmRwb2ludCAqL1xuICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgICBjcmVkZW50aWFsOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERlY2xhcmVzIGludGVudCB0byByZWdpc3RlciBhIG5ldyBGSURPIGtleSAqL1xuICAgIEZpZG9DcmVhdGVSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBuZXcgZmlkbyBjcmVkZW50aWFsXG4gICAgICAgKiBAZXhhbXBsZSBXb3JrIFl1YmlrZXlcbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNwZWNpZmllcyBhIGZvcmsgb2YgdGhlIGBCZWFjb25DaGFpbmAsIHRvIHByZXZlbnQgcmVwbGF5IGF0dGFja3MuXG4gICAgICogVGhlIHNjaGVtYSBvZiBgRm9ya2AgaXMgZGVmaW5lZCBpbiB0aGUgW0JlYWNvbiBjaGFpblxuICAgICAqIHNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9jb25zZW5zdXMtc3BlY3MvYmxvYi92MS4wLjEvc3BlY3MvcGhhc2UwL2JlYWNvbi1jaGFpbi5tZCNmb3JrKS5cbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcImN1cnJlbnRfdmVyc2lvblwiOiBcIjB4MDAwMDEwMjBcIixcbiAgICAgKiAgIFwiZXBvY2hcIjogXCIwXCIsXG4gICAgICogICBcInByZXZpb3VzX3ZlcnNpb25cIjogXCIweDAwMDAxMDIwXCJcbiAgICAgKiB9XG4gICAgICovXG4gICAgRm9yazoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ3VycmVudCBmb3JrIHZlcnNpb24uXG4gICAgICAgKiBAZXhhbXBsZSAweDQzNDM0MzQzXG4gICAgICAgKi9cbiAgICAgIGN1cnJlbnRfdmVyc2lvbjogc3RyaW5nO1xuICAgICAgZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQcmV2aW91cyBmb3JrIHZlcnNpb24uXG4gICAgICAgKiBAZXhhbXBsZSAweDQyNDI0MjQyXG4gICAgICAgKi9cbiAgICAgIHByZXZpb3VzX3ZlcnNpb246IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZW5lc2lzIGRhdGEgYXMgZGVmaW5lZCBpbiB0aGUgW0JlYWNvbiBBUElcbiAgICAgKiBzcGVjXShodHRwczovL2V0aGVyZXVtLmdpdGh1Yi5pby9iZWFjb24tQVBJcy8jL0JlYWNvbi9nZXRHZW5lc2lzKS5cbiAgICAgKiBZb3UgY2FuIGdldCB0aGUgZ2VuZXNpcyBkYXRhIGZyb20gdGhlIEJlYWNvbiBub2RlJ3MgYC9ldGgvdjEvYmVhY29uL2dlbmVzaXNgIGVuZC1wb2ludC5cbiAgICAgKiBUaGlzIHN0cnVjdCBkZWZpbml0aW9uIGlzIG9yaWdpbmFsbHkgZnJvbSBsaWdodGhvdXNlJ3MgZXRoMi5cbiAgICAgKi9cbiAgICBHZW5lc2lzRGF0YToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gR2VuZXNpcyBmb3JrIHZlcnNpb24uXG4gICAgICAgKiBAZXhhbXBsZSAweDQyNDI0MjQyXG4gICAgICAgKi9cbiAgICAgIGdlbmVzaXNfZm9ya192ZXJzaW9uOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBHZW5lc2lzIHRpbWVcbiAgICAgICAqIEBleGFtcGxlIDE2NzkzMjY0NDlcbiAgICAgICAqL1xuICAgICAgZ2VuZXNpc190aW1lOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBHZW5lc2lzIHZhbGlkYXRvcnMgcm9vdC5cbiAgICAgICAqIEBleGFtcGxlIDB4MjcwZDQzZTc0Y2UzNDBkZTRiY2EyYjE5MzZiZWNhMGY0ZjU0MDhkOWU3OGFlYzQ4NTA5MjBiYWY2NTlkNWI2OVxuICAgICAgICovXG4gICAgICBnZW5lc2lzX3ZhbGlkYXRvcnNfcm9vdDogc3RyaW5nO1xuICAgIH07XG4gICAgR2V0S2V5c0luT3JnUmVxdWVzdDoge1xuICAgICAga2V5X3R5cGU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl0gfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBTdGF0cyBwZXJ0YWluaW5nIHRoZSB0aGUgc2VuZGVyIGBjdWJlM3NpZ25lcmAgaW5zdGFuY2UgKi9cbiAgICBIZWFydGJlYXRSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgcmVxdWVzdHMgY3VycmVudGx5IGFjdGl2ZSAocmVjZWl2ZWQgYnV0IG5vdCBuZWNlc3NhcmlseSBiZWluZyBwcm9jZXNzZWQgeWV0KVxuICAgICAgICovXG4gICAgICBjdXJyZW50X251bV9yZXF1ZXN0c19hY3RpdmU6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiByZXF1ZXN0cyBjdXJyZW50bHkgYmVpbmcgcHJvY2Vzc2VkIGJ5IGN1YmUzc2lnbmVyXG4gICAgICAgKi9cbiAgICAgIGN1cnJlbnRfbnVtX3JlcXVlc3RzX3Byb2Nlc3Npbmc6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiBuZXcgcmVxdWVzdHMgZHVyaW5nIHRoaXMgaGVhcnRiZWF0IHBlcmlvZFxuICAgICAgICovXG4gICAgICBudW1fcmVxdWVzdHM6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiByZXF1ZXN0cyB0aGF0IGZhaWxlZCBkdXJpbmcgdGhpcyBoZWFydGJlYXQgcGVyaW9kXG4gICAgICAgKi9cbiAgICAgIG51bV9yZXF1ZXN0c19mYWlsZWQ6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiByZXF1ZXN0cyB3ZXJlIHJldHJpZWQgZHVyaW5nIHRoaXMgaGVhcnRiZWF0IHBlcmlvZFxuICAgICAgICovXG4gICAgICBudW1fcmVxdWVzdHNfcmV0cmllZDogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIHJldHJpZXMgZHVyaW5nIHRoaXMgaGVhcnRiZWF0IHBlcmlvZFxuICAgICAgICovXG4gICAgICBudW1fcmV0cmllczogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIHRpbWVzIGF1dGggdG9rZW4gd2FzIHJlZnJlc2hlZCBkdXJpbmcgdGhpcyBoZWFydGJlYXQgcGVyaW9kXG4gICAgICAgKi9cbiAgICAgIG51bV90b2tlbl9yZWZyZXNoZXM/OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgdGltZXMgYXV0aCB0b2tlbiByZWZyZXNoIGZhaWxlZCBkdXJpbmcgdGhpcyBoZWFydGJlYXQgcGVyaW9kXG4gICAgICAgKi9cbiAgICAgIG51bV90b2tlbl9yZWZyZXNoZXNfZmFpbGVkPzogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVmVyc2lvbiBvZiB0aGUgcHJveHkgc2VuZGluZyB0aGUgaGVhcnQgYmVhdCByZXF1ZXN0XG4gICAgICAgKlxuICAgICAgICogVE9ETzogTWFrZSBub24tb3B0aW9uYWwgb25jZSB3ZSBkbyBub3Qgc3VwcG9ydCBwcm94aWVzIHdpdGhvdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuICAgICAgICovXG4gICAgICBwcm94eV92ZXJzaW9uPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIENhcHR1cmVzIGFsbCB0aGUgcmVsZXZhbnQgaW5mbyAoaW5jbHVkaW5nIHRoZSByZXF1ZXN0IGJvZHkpIGFib3V0IHJlcXVlc3RzIHRoYXQgcmVxdWlyZSBNRkEuXG4gICAgICogV2UgdXNlIHRoaXMgdG8gdmVyaWZ5IHRoYXQgd2hlbiBhIHJlcXVlc3QgaXMgcmVzdW1lZCAoYWZ0ZXIgb2J0YWluaW5nIG5lY2Vzc2FyeSBNRkEgYXBwcm92YWxzKVxuICAgICAqIGl0IGlzIGV4YWN0bHkgdGhlIHNhbWUgYXMgaXQgb3JpZ2luYWxseSB3YXMuXG4gICAgICovXG4gICAgSHR0cFJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSFRUUCByZXF1ZXN0IGJvZHkgKi9cbiAgICAgIGJvZHk/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEhUVFAgbWV0aG9kIG9mIHRoZSByZXF1ZXN0ICovXG4gICAgICBtZXRob2Q6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSFRUUCBwYXRoIG9mIHRoZSByZXF1ZXN0IChpbmNsdWRpbmcgaG9zdCBvciBub3Q/KSAqL1xuICAgICAgcGF0aDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByb29mIHRoYXQgYW4gZW5kLXVzZXIgcHJvdmlkZWQgQ3ViZVNpZ25lciB3aXRoIGEgdmFsaWQgYXV0aCB0b2tlblxuICAgICAqIChlaXRoZXIgYW4gT0lEQyB0b2tlbiBvciBhIEN1YmVTaWduZXIgc2Vzc2lvbiB0b2tlbilcbiAgICAgKi9cbiAgICBJZGVudGl0eVByb29mOiAoe1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT0lEQyBhdWRpZW5jZTsgc2V0IG9ubHkgaWYgdGhlIHByb29mIHdhcyBvYnRhaW5lZCBieSB1c2luZyBPSURDIHRva2VuLlxuICAgICAgICpcbiAgICAgICAqIEluIG90aGVyIHdvcmRzLCBwcmVzZW5jZSBvZiB0aGlzIGZpZWxkIHRlc3RpZmllcyB0aGF0IGF1dGhvcml6YXRpb24gd2FzIG9idGFpbmVkIHZpYSBPSURDLlxuICAgICAgICovXG4gICAgICBhdWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVtYWlsIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlclxuICAgICAgICogQGV4YW1wbGUgdXNlckBlbWFpbC5jb21cbiAgICAgICAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgIGV4cF9lcG9jaDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgaWRlbnRpdHk/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9JRENJZGVudGl0eVwiXSB8IG51bGw7XG4gICAgICB1c2VyX2luZm8/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkN1YmVTaWduZXJVc2VySW5mb1wiXSB8IG51bGw7XG4gICAgfSkgJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFuIG9wYXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcHJvb2YgKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBJbXBvcnRLZXlSZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUltcG9ydEtleVwiXSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBzZXQgb2YgZW5jcnlwdGVkIGtleXMgdG8gYmUgaW1wb3J0ZWQgKi9cbiAgICAgIGtleV9tYXRlcmlhbDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbXBvcnRLZXlSZXF1ZXN0TWF0ZXJpYWxcIl1bXTtcbiAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgfTtcbiAgICBJbXBvcnRLZXlSZXF1ZXN0TWF0ZXJpYWw6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBjbGllbnQncyBlcGhlbWVyYWwgcHVibGljIGtleSB1c2VkIHRvIGRlcml2ZSBhIHNoYXJlZCBrZXkuXG4gICAgICAgKiBUaGlzIGlzIGEgYmFzZTY0LWVuY29kZWQsIFNFQzEtZW5jb2RlZCBQMzg0IHB1YmxpYyBrZXkuXG4gICAgICAgKi9cbiAgICAgIGNsaWVudF9wdWJsaWNfa2V5OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZW5jcnlwdGVkIGtleWluZyBtYXRlcmlhbCB0byBiZSBpbXBvcnRlZC5cbiAgICAgICAqIFRoaXMgaXMgYSBiYXNlNjQtZW5jb2RlZCBjaXBoZXJ0ZXh0LlxuICAgICAgICovXG4gICAgICBpa21fZW5jOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIHNhbHQgdmFsdWUgdXNlZCB0byBkZXJpdmUgYSBzaGFyZWQga2V5LlxuICAgICAgICogVGhpcyBpcyBhIGJhc2U2NC1lbmNvZGVkIGJ5dGUgc3RyaW5nLlxuICAgICAgICovXG4gICAgICBzYWx0OiBzdHJpbmc7XG4gICAgfTtcbiAgICBJbnZpdGVSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdXNlcidzIGVtYWlsIGFkZHJlc3NcbiAgICAgICAqIEBleGFtcGxlIGFsaWNlQGFjbWUuY29tXG4gICAgICAgKi9cbiAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGxvZ2luIE1GQSBwb2xpY3kgKi9cbiAgICAgIG1mYV9wb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdXNlcidzIGZ1bGwgbmFtZVxuICAgICAgICogQGV4YW1wbGUgQWxpY2UgV29uZGVybGFuZFxuICAgICAgICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICByb2xlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFNraXAgc2VuZGluZyBhbiBpbnZpdGF0aW9uIGVtYWlsIHRvIHRoaXMgdXNlciBpZiB0cnVlLlxuICAgICAgICpcbiAgICAgICAqIE5PVEU6IHRoaXMgZmllbGQgaXMgZm9yIGludGVybmFsIHRlc3RpbmcgdXNlIE9OTFkuIElmIHlvdSBkbyBub3RcbiAgICAgICAqIHNlbmQgYW4gaW52aXRhdGlvbiBlbWFpbCwgdGhlIHVzZXIgd2lsbCBuZXZlciBiZSBhYmxlIHRvIGxvZyBpbi5cbiAgICAgICAqIEBleGFtcGxlIGZhbHNlXG4gICAgICAgKi9cbiAgICAgIHNraXBfZW1haWw6IGJvb2xlYW47XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERlcml2YXRpb24tcmVsYXRlZCBtZXRhZGF0YSBmb3Iga2V5cyBkZXJpdmVkIGZyb20gYSBsb25nLWxpdmVkIG1uZW1vbmljICovXG4gICAgS2V5RGVyaXZhdGlvbkluZm86IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGRlcml2YXRpb24gcGF0aCB1c2VkIHRvIGRlcml2ZSB0aGlzIGtleSAqL1xuICAgICAgZGVyaXZhdGlvbl9wYXRoOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtbmVtb25pYy1pZCBvZiB0aGUga2V5J3MgcGFyZW50IG1uZW1vbmljICovXG4gICAgICBtbmVtb25pY19pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHdyYXBwZWQga2V5LWltcG9ydCBrZXkgKi9cbiAgICBLZXlJbXBvcnRLZXk6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmFzZTY0LWVuY29kZWQsIGVuY3J5cHRlZCBkYXRhIGtleS4gKi9cbiAgICAgIGRrX2VuYzogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gRXhwaXJhdGlvbiB0aW1lc3RhbXAgZXhwcmVzc2VkIGFzIHNlY29uZHMgc2luY2UgdGhlIFVOSVggZXBvY2guXG4gICAgICAgKi9cbiAgICAgIGV4cGlyZXM6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlcGhlbWVyYWwgcHVibGljIGtleSB0byB3aGljaCBhbiBpbXBvcnRlZCBrZXkgc2hvdWxkIGJlIGVuY3J5cHRlZC5cbiAgICAgICAqIFRoaXMgaXMgYSBQMzg0IHB1YmxpYyBrZXkgaW4gYmFzZTY0LWVuY29kZWQgdW5jb21wcmVzc2VkIFNFQ0cgZm9ybWF0LlxuICAgICAgICovXG4gICAgICBwdWJsaWNfa2V5OiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEJhc2U2NC1lbmNvZGVkLCBlbmNyeXB0ZWQgc2VjcmV0IGtleS4gKi9cbiAgICAgIHNrX2VuYzogc3RyaW5nO1xuICAgIH07XG4gICAgS2V5SW5Sb2xlSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gS2V5IElEXG4gICAgICAgKiBAZXhhbXBsZSBLZXkjMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAgICAgKi9cbiAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUG9saWNpZXMgdGhhdCBhcmUgY2hlY2tlZCBiZWZvcmUgdGhpcyBrZXkgaXMgdXNlZCBvbiBiZWhhbGYgb2YgdGhpcyByb2xlXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlR4UmVjZWl2ZXJcIjogXCIweDhjNTk0NjkxYzBlNTkyZmZhMjFmMTUzYTE2YWU0MWRiNWJlZmNhYWFcIlxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJUeERlcG9zaXRcIjoge1xuICAgICAgICogICAgICAgXCJraW5kXCI6IFwiQ2Fub25pY2FsXCJcbiAgICAgICAqICAgICB9XG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W107XG4gICAgfTtcbiAgICBLZXlJbmZvOiB7XG4gICAgICBkZXJpdmF0aW9uX2luZm8/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleURlcml2YXRpb25JbmZvXCJdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUga2V5IGlzIGVuYWJsZWQgKG9ubHkgZW5hYmxlZCBrZXlzIG1heSBiZSB1c2VkIGZvciBzaWduaW5nKSAqL1xuICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUga2V5OiBcIktleSNcIiBmb2xsb3dlZCBieSBhIHVuaXF1ZSBpZGVudGlmaWVyIHNwZWNpZmljIHRvXG4gICAgICAgKiB0aGUgdHlwZSBvZiBrZXkgKHN1Y2ggYXMgYSBwdWJsaWMga2V5IGZvciBCTFMgb3IgYW4gZXRoZXJldW0gYWRkcmVzcyBmb3IgU2VjcClcbiAgICAgICAqIEBleGFtcGxlIEtleSMweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAqL1xuICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICBrZXlfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlUeXBlXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSB1bmlxdWUgaWRlbnRpZmllciBzcGVjaWZpYyB0byB0aGUgdHlwZSBvZiBrZXksIHN1Y2ggYXMgYSBwdWJsaWMga2V5IG9yIGFuIGV0aGVyZXVtIGFkZHJlc3NcbiAgICAgICAqIEBleGFtcGxlIDB4OGUzNDg0Njg3ZTY2Y2RkMjZjZjA0YzM2NDc2MzNhYjRmMzU3MDE0OFxuICAgICAgICovXG4gICAgICBtYXRlcmlhbF9pZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3duZXIgb2YgdGhlIGtleVxuICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAqL1xuICAgICAgb3duZXI6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEtleSBwb2xpY3lcbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJBbGxvd1Jhd0Jsb2JTaWduaW5nXCIsXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlJlcXVpcmVNZmFcIjoge1xuICAgICAgICogICAgICAgXCJjb3VudFwiOiAxXG4gICAgICAgKiAgICAgfVxuICAgICAgICogICB9XG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHBvbGljeTogUmVjb3JkPHN0cmluZywgbmV2ZXI+W107XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCwgc2VyaWFsaXplZCBwdWJsaWMga2V5LiBUaGUgZm9ybWF0IHVzZWQgZGVwZW5kcyBvbiB0aGUga2V5IHR5cGU6XG4gICAgICAgKiAtIFNlY3AyNTZrMSBrZXlzIHVzZSA2NS1ieXRlIHVuY29tcHJlc3NlZCBTRUNHIGZvcm1hdDtcbiAgICAgICAqIC0gU3Rhcmsga2V5cyB1c2UgMzMtYnl0ZSBjb21wcmVzc2VkIFNFQ0cgZm9ybWF0O1xuICAgICAgICogLSBCTFMga2V5cyB1c2UgNDgtYnl0ZSBjb21wcmVzc2VkIEJMUzEyLTM4MSAoWkNhc2gpIGZvcm1hdDtcbiAgICAgICAqIC0gRWQyNTUxOSBrZXlzIHVzZSB0aGUgY2Fub25pY2FsIDMyLWJ5dGUgZW5jb2Rpbmcgc3BlY2lmaWVkIGluIFJGQyA4MDMyLlxuICAgICAgICogQGV4YW1wbGUgMHgwNGQyNjg4YjZiYzJjZTdmOTg3OWI5ZTc0NWYzYzRkYzE3NzkwOGM1Y2VmMGMxYjY0Y2ZmMTlhZTdmZjI3ZGVlNjIzYzY0ZmU5ZDljMzI1YzdmYmJjNzQ4YmJkNWY2MDdjZTE0ZGQ4M2UyOGViYmJiN2QzZTdmMmZmYjcwYTc5NDMxXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXk6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBwdXJwb3NlIGZvciB3aGljaCB0aGUga2V5IGNhbiBiZSB1c2VkIChlLmcuLCBjaGFpbiBpZCBmb3Igd2hpY2ggdGhlIGtleSBpcyBhbGxvd2VkIHRvIHNpZ24gbWVzc2FnZXMpXG4gICAgICAgKiBAZXhhbXBsZSBFdGgyVmFsaWRhdG9yKDEpXG4gICAgICAgKi9cbiAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIEtleVR5cGU6IFwiU2VjcEV0aEFkZHJcIiB8IFwiU2VjcEJ0Y1wiIHwgXCJTZWNwQnRjVGVzdFwiIHwgXCJTZWNwQXZhQWRkclwiIHwgXCJTZWNwQXZhVGVzdEFkZHJcIiB8IFwiQmxzUHViXCIgfCBcIkJsc0luYWN0aXZlXCIgfCBcIkVkMjU1MTlTb2xhbmFBZGRyXCIgfCBcIkVkMjU1MTlTdWlBZGRyXCIgfCBcIkVkMjU1MTlBcHRvc0FkZHJcIiB8IFwiRWQyNTUxOUNhcmRhbm9BZGRyVmtcIiB8IFwiRWQyNTUxOVN0ZWxsYXJBZGRyXCIgfCBcIk1uZW1vbmljXCIgfCBcIlN0YXJrXCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdyYXBwZXIgYXJvdW5kIGVuY3J5cHRlZCBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gYnl0ZXMuXG4gICAgICpcbiAgICAgKiBXZSBzZXJpYWxpemUgdGhpcyBpbnRvIGEgYmFzZTY0dXJsLWVuY29kZWQgc3RyaW5nIGFuZCByZXR1cm4gdG8gdGhlIHVzZXJcbiAgICAgKiBzbyB0aGF0IHRoZXkgY2FuIHBhc3MgdGhpcyBiYWNrIHRvIHVzIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgKi9cbiAgICBMYXN0RXZhbEtleTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZXNjcmliZXMgd2hldGhlciBhIHVzZXIgaW4gYW4gb3JnIGlzIGFuIE93bmVyIG9yIGp1c3QgYSByZWd1bGFyIG1lbWJlclxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgTWVtYmVyUm9sZTogXCJBbGllblwiIHwgXCJNZW1iZXJcIiB8IFwiT3duZXJcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJldHVybmVkIGFzIGEgcmVzcG9uc2UgZnJvbSBtdWx0aXBsZSByb3V0ZXMgKGUuZy4sICdnZXQgbWZhJywgJ2FwcHJvdmUgbWZhJywgJ2FwcHJvdmUgdG90cCcpLiAqL1xuICAgIE1mYVJlcXVlc3RJbmZvOiB7XG4gICAgICBleHBpcmVzX2F0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFwcHJvdmFsIHJlcXVlc3QgSUQuICovXG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgcmVjZWlwdD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUmVjZWlwdFwiXSB8IG51bGw7XG4gICAgICByZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkh0dHBSZXF1ZXN0XCJdO1xuICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN0YXR1c1wiXTtcbiAgICB9O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIE1mYVR5cGU6IFwiQ3ViZVNpZ25lclwiIHwgXCJUb3RwXCIgfCBcIkZpZG9cIjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTmV0d29yayBuYW1lICgnbWFpbm5ldCcsICdwcmF0ZXInLCAnZ29lcmxpJylcbiAgICAgKiBAZXhhbXBsZSBnb2VybGlcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIE5ldHdvcms6IFwibWFpbm5ldFwiIHwgXCJwcmF0ZXJcIiB8IFwiZ29lcmxpXCIgfCBcImhvbGVza3lcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIGFib3V0IGEgbmV3IHNlc3Npb24sIHJldHVybmVkIGZyb20gbXVsdGlwbGUgZW5kcG9pbnRzIChlLmcuLCBsb2dpbiwgcmVmcmVzaCwgZXRjLikuICovXG4gICAgTmV3U2Vzc2lvblJlc3BvbnNlOiB7XG4gICAgICBzZXNzaW9uX2luZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2xpZW50U2Vzc2lvbkluZm9cIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOZXcgdG9rZW4gdG8gYmUgdXNlZCBmb3IgYXV0aGVudGljYXRpb24uIFJlcXVlc3RzIHRvIHNpZ25pbmcgZW5kcG9pbnRzXG4gICAgICAgKiBzaG91bGQgaW5jbHVkZSB0aGlzIHZhbHVlIGluIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyXG4gICAgICAgKi9cbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyBhIGdsb2JhbGx5IHVuaXF1ZSBPSURDLWF1dGhvcml6ZWQgdXNlciBieSBleHByZXNzaW5nIHRoZSBmdWxsIFwicGF0aFwiIHRvIGEgdXNlci4gVGhhdCBpczpcbiAgICAgKlxuICAgICAqIChpc3MpICAgICAgIChzdWIpXG4gICAgICogSXNzdWVyIC0+IFN1YnJlc291cmNlXG4gICAgICpcbiAgICAgKiBXZSBpbmNsdWRlIGEgbm9uLXN0YW5kYXJkIHRoaXJkLXRpZXIgYGRpc2FtYmlndWF0b3JgIHdoaWNoIGFsbG93cyB1cyB0byBtYXBcbiAgICAgKiBhIHNpbmdsZSBPSURDIHVzZXIgdG8gbXVsdGlwbGUgYFVzZXJgcyBpbiBDdWJlU2lnbmVyXG4gICAgICovXG4gICAgT0lEQ0lkZW50aXR5OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBGcmVlLWZvcm0gYWRkaXRpb25hbCB1c2VyIGluZm8uXG4gICAgICAgKiBAZXhhbXBsZSBudWxsXG4gICAgICAgKi9cbiAgICAgIGRpc2FtYmlndWF0b3I/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHJvb3QtbGV2ZWwgaXNzdWVyIHdobyBhZG1pbmlzdHJhdGVzIHRoaXMgdXNlci4gRnJvbWUgdGhlIE9JREMgc3BlYzpcbiAgICAgICAqIElzc3VlciBJZGVudGlmaWVyIGZvciB0aGUgSXNzdWVyIG9mIHRoZSByZXNwb25zZS4gVGhlIGlzc1xuICAgICAgICogdmFsdWUgaXMgYSBjYXNlIHNlbnNpdGl2ZSBVUkwgdXNpbmcgdGhlIGh0dHBzIHNjaGVtZSB0aGF0IGNvbnRhaW5zXG4gICAgICAgKiBzY2hlbWUsIGhvc3QsIGFuZCBvcHRpb25hbGx5LCBwb3J0IG51bWJlciBhbmQgcGF0aCBjb21wb25lbnRzIGFuZFxuICAgICAgICogbm8gcXVlcnkgb3IgZnJhZ21lbnQgY29tcG9uZW50cy5cbiAgICAgICAqIEBleGFtcGxlIGh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbVxuICAgICAgICovXG4gICAgICBpc3M6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEZyb20gdGhlIE9JREMgc3BlYzpcbiAgICAgICAqXG4gICAgICAgKiBBIGxvY2FsbHkgdW5pcXVlIGFuZCBuZXZlciByZWFzc2lnbmVkIGlkZW50aWZpZXIgd2l0aGluIHRoZSBJc3N1ZXIgZm9yXG4gICAgICAgKiB0aGUgRW5kLVVzZXIsIHdoaWNoIGlzIGludGVuZGVkIHRvIGJlIGNvbnN1bWVkIGJ5IHRoZSBDbGllbnQsIGUuZy4sXG4gICAgICAgKiAyNDQwMDMyMCBvciBBSXRPYXdtd3RXd2NUMGs1MUJheWV3TnZ1dHJKVXFzdmw2cXM3QTQuIEl0IE1VU1QgTk9UIGV4Y2VlZFxuICAgICAgICogMjU1IEFTQ0lJIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLiBUaGUgc3ViIHZhbHVlIGlzIGEgY2FzZSBzZW5zaXRpdmVcbiAgICAgICAqIHN0cmluZy5cbiAgICAgICAqIEBleGFtcGxlIDEwNzY5MTUwMzUwMDA2MTUwNzE1MTEzMDgyMzY3XG4gICAgICAgKi9cbiAgICAgIHN1Yjogc3RyaW5nO1xuICAgIH07XG4gICAgT2lkY0xvZ2luUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ29udHJvbHMgd2hhdCBjYXBhYmlsaXRpZXMgdGhpcyBzZXNzaW9uIHdpbGwgaGF2ZS5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJzaWduOipcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBzY29wZXM6IHN0cmluZ1tdO1xuICAgICAgdG9rZW5zPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSYXRjaGV0Q29uZmlnXCJdO1xuICAgIH07XG4gICAgT3JnSW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGVuIGZhbHNlLCBhbGwgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb25zIGludm9sdmluZyBrZXlzIGluIHRoaXMgb3JnIGFyZSBkaXNhYmxlZC4gKi9cbiAgICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERlcHJlY2F0ZWQ6IHRoaXMgZmllbGQgc2hvdWxkIGJlIGlnbm9yZWQuICovXG4gICAgICBrZXlfaW1wb3J0X2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgb3JnYW5pemF0aW9uJ3MgdW5pdmVyc2FsbHkgdW5pcXVlIGtleS13cmFwcGluZy1rZXkgaWRlbnRpZmllci5cbiAgICAgICAqIFRoaXMgdmFsdWUgaXMgcmVxdWlyZWQgd2hlbiBzZXR0aW5nIHVwIGtleSBleHBvcnQuXG4gICAgICAgKiBAZXhhbXBsZSBtcmstZmNlMDk1MjVlODE1ODdkMjM1MjBmMTFlMDdlMmU5ZDlcbiAgICAgICAqL1xuICAgICAga3drX2lkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBEYXRlL3RpbWUgKGluIFVUQykgd2hlbiBsYXN0ICd1bnN0YWtlJyB3YXMgcGVyZm9ybWVkLiBVbml4IGVwb2NoIGlmIG5vbmUuXG4gICAgICAgKiBAZXhhbXBsZSBUT0RPXG4gICAgICAgKi9cbiAgICAgIGxhc3RfdW5zdGFrZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSG93IG1hbnkgJ3Vuc3Rha2UnIGNhbGxzIGhhcHBlbmVkIG9uIHRoZSBkYXkgd2hlbiBgbGFzdF91bnN0YWtlYCB3YXMgcGVyZm9ybWVkLlxuICAgICAgICovXG4gICAgICBsYXN0X3Vuc3Rha2VfZGF5X2NvdW50OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIG9yZ1xuICAgICAgICogQGV4YW1wbGUgbXlfb3JnX25hbWVcbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIG9yZ2FuaXphdGlvblxuICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICovXG4gICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9yZy13aWRlIHBvbGljaWVzIHRoYXQgYXJlIGNoZWNrZWQgYmVmb3JlIGEga2V5IGlzIHVzZWQgZm9yIHNpZ25pbmdcbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiTWF4RGFpbHlVbnN0YWtlXCI6IDVcbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcm9ja2V0IHF1ZXJ5IHBhcmFtZXRlciByZXByZXNlbnRpbmcgdGhlIHBhZ2UgZnJvbSB3aGljaCB0byBzdGFydCBhIHBhZ2luYXRlZCBxdWVyeS5cbiAgICAgKlxuICAgICAqIE1VU1QgYmUgbmFtZWQgYDxwYWdlPmAgaW4gcm9ja2V0IHVybCBzcGVjIHNvIHRoYXQgJ3NlcmRlKHJlbmFtZSA9IFwicGFnZS4qXCIpJyBiZWxvdyBjb250aW51ZXMgdG8gd29ya1xuICAgICAqL1xuICAgIFBhZ2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICpcbiAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAqL1xuICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICovXG4gICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyB0eXBlIHJlcHJlc2VudHMgYSB3aXJlLWVuY29kYWJsZSBmb3JtIG9mIHRoZSBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVyZmFjZVxuICAgICAqIENsaWVudHMgbWF5IG5lZWQgdG8gbWFudWFsbHkgZW5jb2RlIGludG8gdGhpcyBmb3JtYXQgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgc2VydmVyXG4gICAgICpcbiAgICAgKiBUaGUgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2UgaW5oZXJpdHMgZnJvbSBDcmVkZW50aWFsXG4gICAgICogW0NSRURFTlRJQUwtTUFOQUdFTUVOVC0xXSwgYW5kIGNvbnRhaW5zIHRoZSBhdHRyaWJ1dGVzIHRoYXQgYXJlIHJldHVybmVkIHRvXG4gICAgICogdGhlIGNhbGxlciB3aGVuIGEgbmV3IGNyZWRlbnRpYWwgaXMgY3JlYXRlZCwgb3IgYSBuZXcgYXNzZXJ0aW9uIGlzXG4gICAgICogcmVxdWVzdGVkLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2lmYWNlLXBrY3JlZGVudGlhbFxuICAgICAqL1xuICAgIFB1YmxpY0tleUNyZWRlbnRpYWw6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgaW50ZXJuYWwgc2xvdCBjb250YWlucyB0aGUgcmVzdWx0cyBvZiBwcm9jZXNzaW5nIGNsaWVudCBleHRlbnNpb25zXG4gICAgICAgKiByZXF1ZXN0ZWQgYnkgdGhlIFJlbHlpbmcgUGFydHkgdXBvbiB0aGUgUmVseWluZyBQYXJ0eSdzIGludm9jYXRpb24gb2ZcbiAgICAgICAqIGVpdGhlciBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKCkgb3IgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCgpLlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbC1jbGllbnRleHRlbnNpb25zcmVzdWx0cy1zbG90XG4gICAgICAgKlxuICAgICAgICogSU1QTEVNRU5UQVRJT04gTk9URTogVGhlIHR5cGUgZm9yIHRoaXMgZmllbGQgY29tZXMgZnJvbSB0aGUgdHlwZSBvZiBnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkgd2hpY2ggYXMgdGhlIGZvbGxvd2luZyBkb2M6XG4gICAgICAgKlxuICAgICAgICogVGhpcyBvcGVyYXRpb24gcmV0dXJucyB0aGUgdmFsdWUgb2YgW1tjbGllbnRFeHRlbnNpb25zUmVzdWx0c11dLCB3aGljaCBpcyBhIG1hcCBjb250YWluaW5nIGV4dGVuc2lvbiBpZGVudGlmaWVyIOKGkiBjbGllbnQgZXh0ZW5zaW9uIG91dHB1dCBlbnRyaWVzIHByb2R1Y2VkIGJ5IHRoZSBleHRlbnNpb27igJlzIGNsaWVudCBleHRlbnNpb24gcHJvY2Vzc2luZy5cbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNyZWYtZm9yLWRvbS1wdWJsaWNrZXljcmVkZW50aWFsLWdldGNsaWVudGV4dGVuc2lvbnJlc3VsdHNcbiAgICAgICAqL1xuICAgICAgY2xpZW50RXh0ZW5zaW9uUmVzdWx0cz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgaW50ZXJuYWwgc2xvdCBjb250YWlucyB0aGUgY3JlZGVudGlhbCBJRCwgY2hvc2VuIGJ5IHRoZVxuICAgICAgICogYXV0aGVudGljYXRvci4gVGhlIGNyZWRlbnRpYWwgSUQgaXMgdXNlZCB0byBsb29rIHVwIGNyZWRlbnRpYWxzIGZvciB1c2UsXG4gICAgICAgKiBhbmQgaXMgdGhlcmVmb3JlIGV4cGVjdGVkIHRvIGJlIGdsb2JhbGx5IHVuaXF1ZSB3aXRoIGhpZ2ggcHJvYmFiaWxpdHlcbiAgICAgICAqIGFjcm9zcyBhbGwgY3JlZGVudGlhbHMgb2YgdGhlIHNhbWUgdHlwZSwgYWNyb3NzIGFsbCBhdXRoZW50aWNhdG9ycy5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWwtaWRlbnRpZmllci1zbG90XG4gICAgICAgKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEF1dGhlbnRpY2F0b3JzIHJlc3BvbmQgdG8gUmVseWluZyBQYXJ0eSByZXF1ZXN0cyBieSByZXR1cm5pbmcgYW4gb2JqZWN0IGRlcml2ZWQgZnJvbSB0aGUgQXV0aGVudGljYXRvclJlc3BvbnNlIGludGVyZmFjZSAqL1xuICAgICAgcmVzcG9uc2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2VcIl0gfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZVwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgY3JlYXRpb24gb2YgYSBuZXcgcHVibGljIGtleSBjcmVkZW50aWFsXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZGljdGRlZi1wdWJsaWNrZXljcmVkZW50aWFsY3JlYXRpb25vcHRpb25zXG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczoge1xuICAgICAgYXR0ZXN0YXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2VcIl07XG4gICAgICBhdXRoZW50aWNhdG9yX3NlbGVjdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhXCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIGNvbnRhaW5zIGEgY2hhbGxlbmdlIGludGVuZGVkIHRvIGJlIHVzZWQgZm9yIGdlbmVyYXRpbmcgdGhlXG4gICAgICAgKiBuZXdseSBjcmVhdGVkIGNyZWRlbnRpYWzigJlzIGF0dGVzdGF0aW9uIG9iamVjdC4gU2VlIHRoZSDCp+KArzEzLjQuM1xuICAgICAgICogQ3J5cHRvZ3JhcGhpYyBDaGFsbGVuZ2VzIHNlY3VyaXR5IGNvbnNpZGVyYXRpb24uXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsY3JlYXRpb25vcHRpb25zLWNoYWxsZW5nZVxuICAgICAgICovXG4gICAgICBjaGFsbGVuZ2U6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIGlzIGludGVuZGVkIGZvciB1c2UgYnkgUmVseWluZyBQYXJ0aWVzIHRoYXQgd2lzaCB0byBsaW1pdFxuICAgICAgICogdGhlIGNyZWF0aW9uIG9mIG11bHRpcGxlIGNyZWRlbnRpYWxzIGZvciB0aGUgc2FtZSBhY2NvdW50IG9uIGEgc2luZ2xlXG4gICAgICAgKiBhdXRoZW50aWNhdG9yLiBUaGUgY2xpZW50IGlzIHJlcXVlc3RlZCB0byByZXR1cm4gYW4gZXJyb3IgaWYgdGhlIG5ld1xuICAgICAgICogY3JlZGVudGlhbCB3b3VsZCBiZSBjcmVhdGVkIG9uIGFuIGF1dGhlbnRpY2F0b3IgdGhhdCBhbHNvIGNvbnRhaW5zIG9uZVxuICAgICAgICogb2YgdGhlIGNyZWRlbnRpYWxzIGVudW1lcmF0ZWQgaW4gdGhpcyBwYXJhbWV0ZXIuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsY3JlYXRpb25vcHRpb25zLWV4Y2x1ZGVjcmVkZW50aWFsc1xuICAgICAgICovXG4gICAgICBleGNsdWRlX2NyZWRlbnRpYWxzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvclwiXVtdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZW1iZXIgY29udGFpbnMgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIHJlcXVlc3RpbmcgYWRkaXRpb25hbFxuICAgICAgICogcHJvY2Vzc2luZyBieSB0aGUgY2xpZW50IGFuZCBhdXRoZW50aWNhdG9yLiBGb3IgZXhhbXBsZSwgdGhlIGNhbGxlciBtYXlcbiAgICAgICAqIHJlcXVlc3QgdGhhdCBvbmx5IGF1dGhlbnRpY2F0b3JzIHdpdGggY2VydGFpbiBjYXBhYmlsaXRpZXMgYmUgdXNlZCB0b1xuICAgICAgICogY3JlYXRlIHRoZSBjcmVkZW50aWFsLCBvciB0aGF0IHBhcnRpY3VsYXIgaW5mb3JtYXRpb24gYmUgcmV0dXJuZWQgaW4gdGhlXG4gICAgICAgKiBhdHRlc3RhdGlvbiBvYmplY3QuIFNvbWUgZXh0ZW5zaW9ucyBhcmUgZGVmaW5lZCBpbiDCp+KArzkgV2ViQXV0aG5cbiAgICAgICAqIEV4dGVuc2lvbnM7IGNvbnN1bHQgdGhlIElBTkEgXCJXZWJBdXRobiBFeHRlbnNpb24gSWRlbnRpZmllcnNcIiByZWdpc3RyeVxuICAgICAgICogW0lBTkEtV2ViQXV0aG4tUmVnaXN0cmllc10gZXN0YWJsaXNoZWQgYnkgW1JGQzg4MDldIGZvciBhbiB1cC10by1kYXRlXG4gICAgICAgKiBsaXN0IG9mIHJlZ2lzdGVyZWQgV2ViQXV0aG4gRXh0ZW5zaW9ucy5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxjcmVhdGlvbm9wdGlvbnMtZXh0ZW5zaW9uc1xuICAgICAgICovXG4gICAgICBleHRlbnNpb25zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZW1iZXIgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRlc2lyZWQgcHJvcGVydGllcyBvZiB0aGVcbiAgICAgICAqIGNyZWRlbnRpYWwgdG8gYmUgY3JlYXRlZC4gVGhlIHNlcXVlbmNlIGlzIG9yZGVyZWQgZnJvbSBtb3N0IHByZWZlcnJlZCB0b1xuICAgICAgICogbGVhc3QgcHJlZmVycmVkLiBUaGUgY2xpZW50IG1ha2VzIGEgYmVzdC1lZmZvcnQgdG8gY3JlYXRlIHRoZSBtb3N0XG4gICAgICAgKiBwcmVmZXJyZWQgY3JlZGVudGlhbCB0aGF0IGl0IGNhbi5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxjcmVhdGlvbm9wdGlvbnMtcHVia2V5Y3JlZHBhcmFtc1xuICAgICAgICovXG4gICAgICBwdWJfa2V5X2NyZWRfcGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxQYXJhbWV0ZXJzXCJdW107XG4gICAgICBycDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsUnBFbnRpdHlcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1lbWJlciBzcGVjaWZpZXMgYSB0aW1lLCBpbiBtaWxsaXNlY29uZHMsIHRoYXQgdGhlIGNhbGxlciBpc1xuICAgICAgICogd2lsbGluZyB0byB3YWl0IGZvciB0aGUgY2FsbCB0byBjb21wbGV0ZS4gVGhpcyBpcyB0cmVhdGVkIGFzIGEgaGludCwgYW5kXG4gICAgICAgKiBNQVkgYmUgb3ZlcnJpZGRlbiBieSB0aGUgY2xpZW50LlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbGNyZWF0aW9ub3B0aW9ucy10aW1lb3V0XG4gICAgICAgKi9cbiAgICAgIHRpbWVvdXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgdXNlcj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHlcIl0gfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZGljdGlvbmFyeSBjb250YWlucyB0aGUgYXR0cmlidXRlcyB0aGF0IGFyZSBzcGVjaWZpZWQgYnkgYSBjYWxsZXIgd2hlblxuICAgICAqIHJlZmVycmluZyB0byBhIHB1YmxpYyBrZXkgY3JlZGVudGlhbCBhcyBhbiBpbnB1dCBwYXJhbWV0ZXIgdG8gdGhlIGNyZWF0ZSgpXG4gICAgICogb3IgZ2V0KCkgbWV0aG9kcy4gSXQgbWlycm9ycyB0aGUgZmllbGRzIG9mIHRoZSBQdWJsaWNLZXlDcmVkZW50aWFsIG9iamVjdFxuICAgICAqIHJldHVybmVkIGJ5IHRoZSBsYXR0ZXIgbWV0aG9kcy5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkaWN0aW9uYXJ5LWNyZWRlbnRpYWwtZGVzY3JpcHRvclxuICAgICAqL1xuICAgIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1lbWJlciBjb250YWlucyB0aGUgY3JlZGVudGlhbCBJRCBvZiB0aGUgcHVibGljIGtleSBjcmVkZW50aWFsIHRoZSBjYWxsZXIgaXMgcmVmZXJyaW5nIHRvLlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbGRlc2NyaXB0b3ItaWRcbiAgICAgICAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgT1BUSU9OQUwgbWVtYmVyIGNvbnRhaW5zIGEgaGludCBhcyB0byBob3cgdGhlIGNsaWVudCBtaWdodFxuICAgICAgICogY29tbXVuaWNhdGUgd2l0aCB0aGUgbWFuYWdpbmcgYXV0aGVudGljYXRvciBvZiB0aGUgcHVibGljIGtleSBjcmVkZW50aWFsXG4gICAgICAgKiB0aGUgY2FsbGVyIGlzIHJlZmVycmluZyB0by4gVGhlIHZhbHVlcyBTSE9VTEQgYmUgbWVtYmVycyBvZlxuICAgICAgICogQXV0aGVudGljYXRvclRyYW5zcG9ydCBidXQgY2xpZW50IHBsYXRmb3JtcyBNVVNUIGlnbm9yZSB1bmtub3duIHZhbHVlcy5cbiAgICAgICAqXG4gICAgICAgKiBUaGUgZ2V0VHJhbnNwb3J0cygpIG9wZXJhdGlvbiBjYW4gcHJvdmlkZSBzdWl0YWJsZSB2YWx1ZXMgZm9yIHRoaXNcbiAgICAgICAqIG1lbWJlci4gV2hlbiByZWdpc3RlcmluZyBhIG5ldyBjcmVkZW50aWFsLCB0aGUgUmVseWluZyBQYXJ0eSBTSE9VTERcbiAgICAgICAqIHN0b3JlIHRoZSB2YWx1ZSByZXR1cm5lZCBmcm9tIGdldFRyYW5zcG9ydHMoKS4gV2hlbiBjcmVhdGluZyBhXG4gICAgICAgKiBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvciBmb3IgdGhhdCBjcmVkZW50aWFsLCB0aGUgUmVseWluZyBQYXJ0eVxuICAgICAgICogU0hPVUxEIHJldHJpZXZlIHRoYXQgc3RvcmVkIHZhbHVlIGFuZCBzZXQgaXQgYXMgdGhlIHZhbHVlIG9mIHRoZVxuICAgICAgICogdHJhbnNwb3J0cyBtZW1iZXIuXG4gICAgICAgKi9cbiAgICAgIHRyYW5zcG9ydHM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1dGhlbnRpY2F0b3JUcmFuc3BvcnRcIl1bXSB8IG51bGw7XG4gICAgICB0eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxUeXBlXCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZGljdGlvbmFyeSBpcyB1c2VkIHRvIHN1cHBseSBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgd2hlbiBjcmVhdGluZyBhIG5ld1xuICAgICAqIGNyZWRlbnRpYWwuXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZGljdGlvbmFyeS1jcmVkZW50aWFsLXBhcmFtc1xuICAgICAqL1xuICAgIFB1YmxpY0tleUNyZWRlbnRpYWxQYXJhbWV0ZXJzOiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1lbWJlciBzcGVjaWZpZXMgdGhlIGNyeXB0b2dyYXBoaWMgc2lnbmF0dXJlIGFsZ29yaXRobSB3aXRoIHdoaWNoXG4gICAgICAgKiB0aGUgbmV3bHkgZ2VuZXJhdGVkIGNyZWRlbnRpYWwgd2lsbCBiZSB1c2VkLCBhbmQgdGh1cyBhbHNvIHRoZSB0eXBlIG9mXG4gICAgICAgKiBhc3ltbWV0cmljIGtleSBwYWlyIHRvIGJlIGdlbmVyYXRlZCwgZS5nLiwgUlNBIG9yIEVsbGlwdGljIEN1cnZlLlxuICAgICAgICovXG4gICAgICBhbGc6IG51bWJlcjtcbiAgICAgIHR5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFR5cGVcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNgIGRpY3Rpb25hcnkgc3VwcGxpZXMgZ2V0KCkgd2l0aCB0aGVcbiAgICAgKiBkYXRhIGl0IG5lZWRzIHRvIGdlbmVyYXRlIGFuIGFzc2VydGlvbi4gSXRzIGNoYWxsZW5nZSBtZW1iZXIgTVVTVCBiZVxuICAgICAqIHByZXNlbnQsIHdoaWxlIGl0cyBvdGhlciBtZW1iZXJzIGFyZSBPUFRJT05BTC5cbiAgICAgKlxuICAgICAqIFRoaXMgc3RydWN0IGlzIGFsc28gdXNlZCBhcyBwYXJ0IG9mIHRoZSB2ZXJpZmljYXRpb24gcHJvY2VkdXJlIGZvciBhc3NlcnRpb25zXG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIE9QVElPTkFMIG1lbWJlciBjb250YWlucyBhIGxpc3Qgb2YgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3JcbiAgICAgICAqIG9iamVjdHMgcmVwcmVzZW50aW5nIHB1YmxpYyBrZXkgY3JlZGVudGlhbHMgYWNjZXB0YWJsZSB0byB0aGUgY2FsbGVyLCBpblxuICAgICAgICogZGVzY2VuZGluZyBvcmRlciBvZiB0aGUgY2FsbGVy4oCZcyBwcmVmZXJlbmNlICh0aGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdFxuICAgICAgICogaXMgdGhlIG1vc3QgcHJlZmVycmVkIGNyZWRlbnRpYWwsIGFuZCBzbyBvbiBkb3duIHRoZSBsaXN0KS5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxyZXF1ZXN0b3B0aW9ucy1hbGxvd2NyZWRlbnRpYWxzXG4gICAgICAgKi9cbiAgICAgIGFsbG93X2NyZWRlbnRpYWxzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvclwiXVtdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZW1iZXIgcmVwcmVzZW50cyBhIGNoYWxsZW5nZSB0aGF0IHRoZSBzZWxlY3RlZCBhdXRoZW50aWNhdG9yXG4gICAgICAgKiBzaWducywgYWxvbmcgd2l0aCBvdGhlciBkYXRhLCB3aGVuIHByb2R1Y2luZyBhbiBhdXRoZW50aWNhdGlvblxuICAgICAgICogYXNzZXJ0aW9uLlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbHJlcXVlc3RvcHRpb25zLWNoYWxsZW5nZVxuICAgICAgICovXG4gICAgICBjaGFsbGVuZ2U6IHN0cmluZztcbiAgICAgIGV4dGVuc2lvbnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIE9QVElPTkFMIG1lbWJlciBzcGVjaWZpZXMgdGhlIHJlbHlpbmcgcGFydHkgaWRlbnRpZmllciBjbGFpbWVkIGJ5XG4gICAgICAgKiB0aGUgY2FsbGVyLiBJZiBvbWl0dGVkLCBpdHMgdmFsdWUgd2lsbCBiZSB0aGUgQ3JlZGVudGlhbHNDb250YWluZXJcbiAgICAgICAqIG9iamVjdOKAmXMgcmVsZXZhbnQgc2V0dGluZ3Mgb2JqZWN0J3Mgb3JpZ2luJ3MgZWZmZWN0aXZlIGRvbWFpbi5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxyZXF1ZXN0b3B0aW9ucy1ycGlkXG4gICAgICAgKi9cbiAgICAgIHJwX2lkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgT1BUSU9OQUwgbWVtYmVyIHNwZWNpZmllcyBhIHRpbWUsIGluIG1pbGxpc2Vjb25kcywgdGhhdCB0aGUgY2FsbGVyXG4gICAgICAgKiBpcyB3aWxsaW5nIHRvIHdhaXQgZm9yIHRoZSBjYWxsIHRvIGNvbXBsZXRlLiBUaGUgdmFsdWUgaXMgdHJlYXRlZCBhcyBhXG4gICAgICAgKiBoaW50LCBhbmQgTUFZIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGNsaWVudC5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxyZXF1ZXN0b3B0aW9ucy10aW1lb3V0XG4gICAgICAgKi9cbiAgICAgIHRpbWVvdXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgdXNlcl92ZXJpZmljYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudFwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgUHVibGljS2V5Q3JlZGVudGlhbFJwRW50aXR5IGRpY3Rpb25hcnkgaXMgdXNlZCB0byBzdXBwbHkgYWRkaXRpb25hbFxuICAgICAqIFJlbHlpbmcgUGFydHkgYXR0cmlidXRlcyB3aGVuIGNyZWF0aW5nIGEgbmV3IGNyZWRlbnRpYWwuXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZGljdGlvbmFyeS1ycC1jcmVkZW50aWFsLXBhcmFtc1xuICAgICAqL1xuICAgIFB1YmxpY0tleUNyZWRlbnRpYWxScEVudGl0eToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIFJlbHlpbmcgUGFydHkgZW50aXR5LCB3aGljaCBzZXRzIHRoZSBSUCBJRC5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxycGVudGl0eS1pZFxuICAgICAgICovXG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBodW1hbi1wYWxhdGFibGUgbmFtZSBmb3IgdGhlIGVudGl0eS4gSXRzIGZ1bmN0aW9uIGRlcGVuZHMgb24gd2hhdCB0aGVcbiAgICAgICAqIFB1YmxpY0tleUNyZWRlbnRpYWxFbnRpdHkgcmVwcmVzZW50czogV2hlbiBpbmhlcml0ZWQgYnlcbiAgICAgICAqIFB1YmxpY0tleUNyZWRlbnRpYWxScEVudGl0eSBpdCBpcyBhIGh1bWFuLXBhbGF0YWJsZSBpZGVudGlmaWVyIGZvciB0aGVcbiAgICAgICAqIFJlbHlpbmcgUGFydHksIGludGVuZGVkIG9ubHkgZm9yIGRpc3BsYXkuIEZvciBleGFtcGxlLCBcIkFDTUVcbiAgICAgICAqIENvcnBvcmF0aW9uXCIsIFwiV29uZGVyZnVsIFdpZGdldHMsIEluYy5cIiBvciBcItCe0JDQniDQn9GA0LjQvNC10YDRgtC10YVcIi5cbiAgICAgICAqXG4gICAgICAgKiBSZWx5aW5nIFBhcnRpZXMgU0hPVUxEIHBlcmZvcm0gZW5mb3JjZW1lbnQsIGFzIHByZXNjcmliZWQgaW4gU2VjdGlvbiAyLjNcbiAgICAgICAqIG9mIFtSRkM4MjY2XSBmb3IgdGhlIE5pY2tuYW1lIFByb2ZpbGUgb2YgdGhlIFBSRUNJUyBGcmVlZm9ybUNsYXNzXG4gICAgICAgKiBbUkZDODI2NF0sIHdoZW4gc2V0dGluZyBuYW1lJ3MgdmFsdWUsIG9yIGRpc3BsYXlpbmcgdGhlIHZhbHVlIHRvIHRoZVxuICAgICAgICogdXNlci5cbiAgICAgICAqXG4gICAgICAgKiBUaGlzIHN0cmluZyBNQVkgY29udGFpbiBsYW5ndWFnZSBhbmQgZGlyZWN0aW9uIG1ldGFkYXRhLiBSZWx5aW5nIFBhcnRpZXNcbiAgICAgICAqIFNIT1VMRCBjb25zaWRlciBwcm92aWRpbmcgdGhpcyBpbmZvcm1hdGlvbi4gU2VlIMKn4oCvNi40LjIgTGFuZ3VhZ2UgYW5kXG4gICAgICAgKiBEaXJlY3Rpb24gRW5jb2RpbmcgYWJvdXQgaG93IHRoaXMgbWV0YWRhdGEgaXMgZW5jb2RlZC5cbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyB0aGUgdmFsaWQgY3JlZGVudGlhbCB0eXBlcy4gSXQgaXMgYW4gZXh0ZW5zaW9uXG4gICAgICogcG9pbnQ7IHZhbHVlcyBjYW4gYmUgYWRkZWQgdG8gaXQgaW4gdGhlIGZ1dHVyZSwgYXMgbW9yZSBjcmVkZW50aWFsIHR5cGVzIGFyZVxuICAgICAqIGRlZmluZWQuIFRoZSB2YWx1ZXMgb2YgdGhpcyBlbnVtZXJhdGlvbiBhcmUgdXNlZCBmb3IgdmVyc2lvbmluZyB0aGVcbiAgICAgKiBBdXRoZW50aWNhdGlvbiBBc3NlcnRpb24gYW5kIGF0dGVzdGF0aW9uIHN0cnVjdHVyZXMgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mXG4gICAgICogdGhlIGF1dGhlbnRpY2F0b3IuICBDdXJyZW50bHkgb25lIGNyZWRlbnRpYWwgdHlwZSBpcyBkZWZpbmVkLCBuYW1lbHlcbiAgICAgKiBcInB1YmxpYy1rZXlcIi5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNlbnVtZGVmLXB1YmxpY2tleWNyZWRlbnRpYWx0eXBlXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTogXCJwdWJsaWMta2V5XCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBQdWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eSBkaWN0aW9uYXJ5IGlzIHVzZWQgdG8gc3VwcGx5IGFkZGl0aW9uYWxcbiAgICAgKiB1c2VyIGFjY291bnQgYXR0cmlidXRlcyB3aGVuIGNyZWF0aW5nIGEgbmV3IGNyZWRlbnRpYWwuXG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHk6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcGFsYXRhYmxlIG5hbWUgZm9yIHRoZSB1c2VyIGFjY291bnQsIGludGVuZGVkIG9ubHkgZm9yIGRpc3BsYXkuXG4gICAgICAgKiBGb3IgZXhhbXBsZSwgXCJBbGV4IE3DvGxsZXJcIiBvciBcIueUsOS4reWAq1wiLiBUaGUgUmVseWluZyBQYXJ0eSBTSE9VTEQgbGV0IHRoZVxuICAgICAgICogdXNlciBjaG9vc2UgdGhpcywgYW5kIFNIT1VMRCBOT1QgcmVzdHJpY3QgdGhlIGNob2ljZSBtb3JlIHRoYW5cbiAgICAgICAqIG5lY2Vzc2FyeS5cbiAgICAgICAqXG4gICAgICAgKiBSZWx5aW5nIFBhcnRpZXMgU0hPVUxEIHBlcmZvcm0gZW5mb3JjZW1lbnQsIGFzIHByZXNjcmliZWQgaW4gU2VjdGlvbiAyLjNcbiAgICAgICAqIG9mIFtSRkM4MjY2XSBmb3IgdGhlIE5pY2tuYW1lIFByb2ZpbGUgb2YgdGhlIFBSRUNJUyBGcmVlZm9ybUNsYXNzXG4gICAgICAgKiBbUkZDODI2NF0sIHdoZW4gc2V0dGluZyBkaXNwbGF5TmFtZSdzIHZhbHVlLCBvciBkaXNwbGF5aW5nIHRoZSB2YWx1ZSB0b1xuICAgICAgICogdGhlIHVzZXIuXG4gICAgICAgKlxuICAgICAgICogVGhpcyBzdHJpbmcgTUFZIGNvbnRhaW4gbGFuZ3VhZ2UgYW5kIGRpcmVjdGlvbiBtZXRhZGF0YS4gUmVseWluZyBQYXJ0aWVzXG4gICAgICAgKiBTSE9VTEQgY29uc2lkZXIgcHJvdmlkaW5nIHRoaXMgaW5mb3JtYXRpb24uIFNlZSDCp+KArzYuNC4yIExhbmd1YWdlIGFuZFxuICAgICAgICogRGlyZWN0aW9uIEVuY29kaW5nIGFib3V0IGhvdyB0aGlzIG1ldGFkYXRhIGlzIGVuY29kZWQuXG4gICAgICAgKlxuICAgICAgICogQ2xpZW50cyBTSE9VTEQgcGVyZm9ybSBlbmZvcmNlbWVudCwgYXMgcHJlc2NyaWJlZCBpbiBTZWN0aW9uIDIuMyBvZlxuICAgICAgICogW1JGQzgyNjZdIGZvciB0aGUgTmlja25hbWUgUHJvZmlsZSBvZiB0aGUgUFJFQ0lTIEZyZWVmb3JtQ2xhc3NcbiAgICAgICAqIFtSRkM4MjY0XSwgb24gZGlzcGxheU5hbWUncyB2YWx1ZSBwcmlvciB0byBkaXNwbGF5aW5nIHRoZSB2YWx1ZSB0byB0aGVcbiAgICAgICAqIHVzZXIgb3IgaW5jbHVkaW5nIHRoZSB2YWx1ZSBhcyBhIHBhcmFtZXRlciBvZiB0aGVcbiAgICAgICAqIGF1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbCBvcGVyYXRpb24uXG4gICAgICAgKlxuICAgICAgICogV2hlbiBjbGllbnRzLCBjbGllbnQgcGxhdGZvcm1zLCBvciBhdXRoZW50aWNhdG9ycyBkaXNwbGF5IGFcbiAgICAgICAqIGRpc3BsYXlOYW1lJ3MgdmFsdWUsIHRoZXkgc2hvdWxkIGFsd2F5cyB1c2UgVUkgZWxlbWVudHMgdG8gcHJvdmlkZSBhXG4gICAgICAgKiBjbGVhciBib3VuZGFyeSBhcm91bmQgdGhlIGRpc3BsYXllZCB2YWx1ZSwgYW5kIG5vdCBhbGxvdyBvdmVyZmxvdyBpbnRvXG4gICAgICAgKiBvdGhlciBlbGVtZW50cyBbY3NzLW92ZXJmbG93LTNdLlxuICAgICAgICpcbiAgICAgICAqIEF1dGhlbnRpY2F0b3JzIE1VU1QgYWNjZXB0IGFuZCBzdG9yZSBhIDY0LWJ5dGUgbWluaW11bSBsZW5ndGggZm9yIGFcbiAgICAgICAqIGRpc3BsYXlOYW1lIG1lbWJlcuKAmXMgdmFsdWUuIEF1dGhlbnRpY2F0b3JzIE1BWSB0cnVuY2F0ZSBhIGRpc3BsYXlOYW1lXG4gICAgICAgKiBtZW1iZXLigJlzIHZhbHVlIHNvIHRoYXQgaXQgZml0cyB3aXRoaW4gNjQgYnl0ZXMuIFNlZSDCp+KArzYuNC4xIFN0cmluZ1xuICAgICAgICogVHJ1bmNhdGlvbiBhYm91dCB0cnVuY2F0aW9uIGFuZCBvdGhlciBjb25zaWRlcmF0aW9ucy5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWx1c2VyZW50aXR5LWRpc3BsYXluYW1lXG4gICAgICAgKi9cbiAgICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdXNlciBoYW5kbGUgb2YgdGhlIHVzZXIgYWNjb3VudCBlbnRpdHkuIEEgdXNlciBoYW5kbGUgaXMgYW4gb3BhcXVlXG4gICAgICAgKiBieXRlIHNlcXVlbmNlIHdpdGggYSBtYXhpbXVtIHNpemUgb2YgNjQgYnl0ZXMsIGFuZCBpcyBub3QgbWVhbnQgdG8gYmVcbiAgICAgICAqIGRpc3BsYXllZCB0byB0aGUgdXNlci5cbiAgICAgICAqXG4gICAgICAgKiBUbyBlbnN1cmUgc2VjdXJlIG9wZXJhdGlvbiwgYXV0aGVudGljYXRpb24gYW5kIGF1dGhvcml6YXRpb24gZGVjaXNpb25zXG4gICAgICAgKiBNVVNUIGJlIG1hZGUgb24gdGhlIGJhc2lzIG9mIHRoaXMgaWQgbWVtYmVyLCBub3QgdGhlIGRpc3BsYXlOYW1lIG5vclxuICAgICAgICogbmFtZSBtZW1iZXJzLiBTZWUgU2VjdGlvbiA2LjEgb2YgW1JGQzgyNjZdLlxuICAgICAgICpcbiAgICAgICAqIFRoZSB1c2VyIGhhbmRsZSBNVVNUIE5PVCBjb250YWluIHBlcnNvbmFsbHkgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb25cbiAgICAgICAqIGFib3V0IHRoZSB1c2VyLCBzdWNoIGFzIGEgdXNlcm5hbWUgb3IgZS1tYWlsIGFkZHJlc3M7IHNlZSDCp+KArzE0LjYuMSBVc2VyXG4gICAgICAgKiBIYW5kbGUgQ29udGVudHMgZm9yIGRldGFpbHMuIFRoZSB1c2VyIGhhbmRsZSBNVVNUIE5PVCBiZSBlbXB0eSwgdGhvdWdoXG4gICAgICAgKiBpdCBNQVkgYmUgbnVsbC5cbiAgICAgICAqXG4gICAgICAgKiBOb3RlOiB0aGUgdXNlciBoYW5kbGUgb3VnaHQgbm90IGJlIGEgY29uc3RhbnQgdmFsdWUgYWNyb3NzIGRpZmZlcmVudFxuICAgICAgICogYWNjb3VudHMsIGV2ZW4gZm9yIG5vbi1kaXNjb3ZlcmFibGUgY3JlZGVudGlhbHMsIGJlY2F1c2Ugc29tZVxuICAgICAgICogYXV0aGVudGljYXRvcnMgYWx3YXlzIGNyZWF0ZSBkaXNjb3ZlcmFibGUgY3JlZGVudGlhbHMuIFRodXMgYSBjb25zdGFudFxuICAgICAgICogdXNlciBoYW5kbGUgd291bGQgcHJldmVudCBhIHVzZXIgZnJvbSB1c2luZyBzdWNoIGFuIGF1dGhlbnRpY2F0b3Igd2l0aFxuICAgICAgICogbW9yZSB0aGFuIG9uZSBhY2NvdW50IGF0IHRoZSBSZWx5aW5nIFBhcnR5LlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbHVzZXJlbnRpdHktaWRcbiAgICAgICAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFdoZW4gaW5oZXJpdGVkIGJ5IFB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5LCBpdCBpcyBhIGh1bWFuLXBhbGF0YWJsZVxuICAgICAgICogaWRlbnRpZmllciBmb3IgYSB1c2VyIGFjY291bnQuIEl0IGlzIGludGVuZGVkIG9ubHkgZm9yIGRpc3BsYXksIGkuZS4sXG4gICAgICAgKiBhaWRpbmcgdGhlIHVzZXIgaW4gZGV0ZXJtaW5pbmcgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB1c2VyIGFjY291bnRzIHdpdGhcbiAgICAgICAqIHNpbWlsYXIgZGlzcGxheU5hbWVzLiBGb3IgZXhhbXBsZSwgXCJhbGV4bVwiLCBcImFsZXgubXVlbGxlckBleGFtcGxlLmNvbVwiXG4gICAgICAgKiBvciBcIisxNDI1NTU1MTIzNFwiLlxuICAgICAgICpcbiAgICAgICAqIFRoZSBSZWx5aW5nIFBhcnR5IE1BWSBsZXQgdGhlIHVzZXIgY2hvb3NlIHRoaXMgdmFsdWUuIFRoZSBSZWx5aW5nIFBhcnR5XG4gICAgICAgKiBTSE9VTEQgcGVyZm9ybSBlbmZvcmNlbWVudCwgYXMgcHJlc2NyaWJlZCBpbiBTZWN0aW9uIDMuNC4zIG9mIFtSRkM4MjY1XVxuICAgICAgICogZm9yIHRoZSBVc2VybmFtZUNhc2VQcmVzZXJ2ZWQgUHJvZmlsZSBvZiB0aGUgUFJFQ0lTIElkZW50aWZpZXJDbGFzc1xuICAgICAgICogW1JGQzgyNjRdLCB3aGVuIHNldHRpbmcgbmFtZSdzIHZhbHVlLCBvciBkaXNwbGF5aW5nIHRoZSB2YWx1ZSB0byB0aGVcbiAgICAgICAqIHVzZXIuXG4gICAgICAgKlxuICAgICAgICogVGhpcyBzdHJpbmcgTUFZIGNvbnRhaW4gbGFuZ3VhZ2UgYW5kIGRpcmVjdGlvbiBtZXRhZGF0YS4gUmVseWluZyBQYXJ0aWVzXG4gICAgICAgKiBTSE9VTEQgY29uc2lkZXIgcHJvdmlkaW5nIHRoaXMgaW5mb3JtYXRpb24uIFNlZSDCp+KArzYuNC4yIExhbmd1YWdlIGFuZFxuICAgICAgICogRGlyZWN0aW9uIEVuY29kaW5nIGFib3V0IGhvdyB0aGlzIG1ldGFkYXRhIGlzIGVuY29kZWQuXG4gICAgICAgKlxuICAgICAgICogQ2xpZW50cyBTSE9VTEQgcGVyZm9ybSBlbmZvcmNlbWVudCwgYXMgcHJlc2NyaWJlZCBpbiBTZWN0aW9uIDMuNC4zIG9mIFtSRkM4MjY1XSBmb3IgdGhlIFVzZXJuYW1lQ2FzZVByZXNlcnZlZCBQcm9maWxlIG9mIHRoZSBQUkVDSVMgSWRlbnRpZmllckNsYXNzIFtSRkM4MjY0XSwgb24gbmFtZSdzIHZhbHVlIHByaW9yIHRvIGRpc3BsYXlpbmcgdGhlIHZhbHVlIHRvIHRoZSB1c2VyIG9yIGluY2x1ZGluZyB0aGUgdmFsdWUgYXMgYSBwYXJhbWV0ZXIgb2YgdGhlIGF1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbCBvcGVyYXRpb24uXG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIFJhdGNoZXRDb25maWc6IHtcbiAgICAgIC8qKiBAZGVmYXVsdCAzMDAgKi9cbiAgICAgIGF1dGhfbGlmZXRpbWU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZHNcIl07XG4gICAgICAvKiogQGRlZmF1bHQgZGVmYXVsdF9ncmFjZV9saWZldGltZSAqL1xuICAgICAgZ3JhY2VfbGlmZXRpbWU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZHNcIl07XG4gICAgICAvKiogQGRlZmF1bHQgODY0MDAgKi9cbiAgICAgIHJlZnJlc2hfbGlmZXRpbWU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZHNcIl07XG4gICAgICAvKiogQGRlZmF1bHQgMzE1MzYwMDAgKi9cbiAgICAgIHNlc3Npb25fbGlmZXRpbWU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZHNcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlY2VpcHQgdGhhdCBhbiBNRkEgcmVxdWVzdCB3YXMgYXBwcm92ZWQuICovXG4gICAgUmVjZWlwdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ29uZmlybWF0aW9uIGNvZGUgdGhlIHVzZXIgbmVlZHMgdG8gcHJlc2VudCB3aGVuIHJlc3VtaW5nIHRoZSBvcmlnaW5hbCByZXF1ZXN0LlxuICAgICAgICogQGV4YW1wbGUgYmExZDc1ZGQtZDk5OS00YzFiLTk0NGQtMjVjMjU0NDBjOGFmXG4gICAgICAgKi9cbiAgICAgIGNvbmZpcm1hdGlvbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIGxvZ2dlZC1pbiB1c2VyIHdob3NlIGFjdGlvbiBjcmVhdGVkIHRoaXMgYXBwcm92YWwuICovXG4gICAgICBmaW5hbF9hcHByb3Zlcjogc3RyaW5nO1xuICAgICAgdGltZXN0YW1wOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBlbnVtZXJhdGlvbuKAmXMgdmFsdWVzIGRlc2NyaWJlIHRoZSBSZWx5aW5nIFBhcnR5J3MgcmVxdWlyZW1lbnRzIGZvclxuICAgICAqIGNsaWVudC1zaWRlIGRpc2NvdmVyYWJsZSBjcmVkZW50aWFscyAoZm9ybWVybHkga25vd24gYXMgcmVzaWRlbnQgY3JlZGVudGlhbHNcbiAgICAgKiBvciByZXNpZGVudCBrZXlzKTpcbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNlbnVtZGVmLXJlc2lkZW50a2V5cmVxdWlyZW1lbnRcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIFJlc2lkZW50S2V5UmVxdWlyZW1lbnQ6IFwiZGlzY291cmFnZWRcIiB8IFwicHJlZmVycmVkXCIgfCBcInJlcXVpcmVkXCI7XG4gICAgUm9sZUluZm86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIHJvbGUgaXMgZW5hYmxlZFxuICAgICAgICogQGV4YW1wbGUgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVkOiBib29sZWFuO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXByZWNhdGVkIFRoZSBDdWJlU2lnbmVyIElEcyBvZiBhdCBtb3N0IDEwMCBrZXlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJvbGUgKi9cbiAgICAgIGtleXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluUm9sZUluZm9cIl1bXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHJvbGUgKG11c3QgYmUgYWxwaGFudW1lcmljKVxuICAgICAgICogQGV4YW1wbGUgbXlfcm9sZVxuICAgICAgICovXG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgcm9sZVxuICAgICAgICogQGV4YW1wbGUgUm9sZSNiZmUzZWNjYi03MzFlLTQzMGQtYjFlNS1hYzEzNjNlNmIwNmJcbiAgICAgICAqL1xuICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXByZWNhdGVkLiBUaGUgbGlzdCBvZiBhdCBtb3N0IDEwMCB1c2VycyB3aXRoIGFjY2VzcyB0byB0aGUgcm9sZS4gKi9cbiAgICAgIHVzZXJzPzogc3RyaW5nW10gfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAqIEBkZXNjcmlwdGlvbiBEdXJhdGlvbiBtZWFzdXJlZCBpbiBzZWNvbmRzXG4gICAgICogQSB3cmFwcGVyIHR5cGUgZm9yIHNlcmlhbGl6YXRpb24gdGhhdCBlbmNvZGVzIGEgYER1cmF0aW9uYCBhcyBhIGB1NjRgIHJlcHJlc2VudGluZyB0aGUgbnVtYmVyIG9mIHNlY29uZHMuXG4gICAgICovXG4gICAgU2Vjb25kczogbnVtYmVyO1xuICAgIFNlc3Npb25JbmZvOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIGZvciB0aGUgc2Vzc2lvblxuICAgICAgICogQGV4YW1wbGUgT0lEQyBsb2dpbiBzZXNzaW9uXG4gICAgICAgKi9cbiAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFNlc3Npb24gSUQuIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHNlc3Npb24sIGJ1dCBjYW5ub3QgYmUgdXNlZCBmb3IgYXV0aC5cbiAgICAgICAqIEBleGFtcGxlIDc3YWFkMjEwMGMzNjFmNDk3NjM1ZGQwMDVjNGQxNTc4MWUyZTVkZjRiOWY0NWQ4ZTc0ZjM3NDI1Y2JjMzBiOWVcbiAgICAgICAqL1xuICAgICAgc2Vzc2lvbl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgU2lnblJlcXVlc3Q6IHtcbiAgICAgIG1lc3NhZ2U6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICB9O1xuICAgIFNvbGFuYVNpZ25SZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNpZ25SZXF1ZXN0XCJdICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIFN0YWtlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGNoYWluIG9uIHdoaWNoIHdlIHdpbGwgZGVwb3NpdFxuICAgICAgICogQGV4YW1wbGUgNVxuICAgICAgICovXG4gICAgICBjaGFpbl9pZDogbnVtYmVyO1xuICAgICAgZGVwb3NpdF90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcG9zaXRUeXBlXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgc3Rha2luZyBhbW91bnQgaW4gR1dFSS5cbiAgICAgICAqIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIDMyXzAwMF8wMDBfMDAwICgzMiBFVEgpLlxuICAgICAgICogTXVzdCBiZSBiZXR3ZWVuIDEgRVRIIGFuZCAzMiBFVEguXG4gICAgICAgKiBNdXN0IG5vdCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuICdkZXBvc2l0X3R5cGUnIGlzIFwiV3JhcHBlclwiLlxuICAgICAgICovXG4gICAgICBzdGFraW5nX2Ftb3VudF9nd2VpPzogbnVtYmVyO1xuICAgICAgdW5zYWZlX2NvbmY/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVuc2FmZUNvbmZcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHZhbGlkYXRvciBCTFMgcHVibGljIGtleSB0byB1c2UsIG9yIGBOb25lYCB0byBnZW5lcmF0ZSBhIGZyZXNoIG9uZS5cbiAgICAgICAqIEBleGFtcGxlIDB4YTk5YTc2ZWQ3Nzk2ZjdiZTIyZDViN2U4NWRlZWI3YzU2NzdlODhlNTExZTBiMzM3NjE4ZjhjNGViNjEzNDliNGJmMmQxNTNmNjQ5ZjdiNTMzNTlmZThiOTRhMzhlNDRjXG4gICAgICAgKi9cbiAgICAgIHZhbGlkYXRvcl9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGV0aGVyZXVtIGFkZHJlc3MgdG8gd2hpY2ggd2l0aGRyYXduIGZ1bmRzIGdvXG4gICAgICAgKiBAZXhhbXBsZSAweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAqL1xuICAgICAgd2l0aGRyYXdhbF9hZGRyOiBzdHJpbmc7XG4gICAgfTtcbiAgICBTdGF0dXM6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVXNlcnMgd2hvIGFyZSBhbGxvd2VkIHRvIGFwcHJvdmUuIE11c3QgYmUgbm9uLWVtcHR5LiAqL1xuICAgICAgYWxsb3dlZF9hcHByb3ZlcnM6IHN0cmluZ1tdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGxvd2VkIGFwcHJvdmFsIHR5cGVzLiBXaGVuIG9taXR0ZWQsIGRlZmF1bHRzIHRvIGFueS4gKi9cbiAgICAgIGFsbG93ZWRfbWZhX3R5cGVzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFUeXBlXCJdW10gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVc2VycyB3aG8gaGF2ZSBhbHJlYWR5IGFwcHJvdmVkICovXG4gICAgICBhcHByb3ZlZF9ieToge1xuICAgICAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICAgICAgW2tleTogc3RyaW5nXTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBcHByb3ZhbEluZm9cIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSG93IG1hbnkgdXNlcnMgbXVzdCBhcHByb3ZlXG4gICAgICAgKi9cbiAgICAgIGNvdW50OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBIb3cgbWFueSBhdXRoIGZhY3RvcnMgdG8gcmVxdWlyZSBwZXIgdXNlclxuICAgICAgICovXG4gICAgICBudW1fYXV0aF9mYWN0b3JzOiBudW1iZXI7XG4gICAgfTtcbiAgICBUb2tlbkluZm86IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU2Vzc2lvbiBJRC4gVXNlIGl0IHRvIHJldm9rZSBhIHNlc3Npb24uIENhbm5vdCBiZSB1c2VkIGZvciBhdXRoLiAqL1xuICAgICAgaGFzaDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUb2tlbnMgcHVycG9zZSAqL1xuICAgICAgcHVycG9zZTogc3RyaW5nO1xuICAgIH07XG4gICAgVG90cEFwcHJvdmVSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRPVFAgdmVyaWZpY2F0aW9uIGNvZGUgKi9cbiAgICAgIGNvZGU6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gU2VudCBmcm9tIHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlciB0byBhbnN3ZXIgYSBUT1RQIGNoYWxsZW5nZSAqL1xuICAgIFRvdHBDaGFsbGVuZ2VBbnN3ZXI6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGN1cnJlbnQgVE9UUCBjb2RlICovXG4gICAgICBjb2RlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgY2hhbGxlbmdlIHRoYXQgd2FzIHJldHVybmVkIGZyb20gdGhlIFBPU1QgZW5kcG9pbnQgKi9cbiAgICAgIHRvdHBfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9ucyB0aGF0IHNob3VsZCBiZSBzZXQgb25seSBmb3IgbG9jYWwgZGV2bmV0IHRlc3RpbmcuICovXG4gICAgVW5zYWZlQ29uZjoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGhleC1lbmNvZGVkIGFkZHJlc3Mgb2YgdGhlIGRlcG9zaXQgY29udHJhY3QuIElmIG9taXR0ZWQsIGluZmVycmVkIGZyb20gYGNoYWluX2lkYFxuICAgICAgICogQGV4YW1wbGUgMHhmZjUwZWQzZDBlYzAzYWMwMWQ0Yzc5YWFkNzQ5MjhiZmY0OGE3YjJiXG4gICAgICAgKi9cbiAgICAgIGRlcG9zaXRfY29udHJhY3RfYWRkcj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgNC1ieXRlIGZvcmsgdmVyc2lvblxuICAgICAgICogQGV4YW1wbGUgMHgwMDAwMTAyMFxuICAgICAgICovXG4gICAgICBnZW5lc2lzX2ZvcmtfdmVyc2lvbj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVW5zdGFrZSBtZXNzYWdlIHJlcXVlc3QuXG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJlcG9jaFwiOiBcIjI1NlwiLFxuICAgICAqICAgXCJmb3JrXCI6IHtcbiAgICAgKiAgICAgXCJjdXJyZW50X3ZlcnNpb25cIjogXCIweDAwMDAxMDIwXCIsXG4gICAgICogICAgIFwiZXBvY2hcIjogXCIwXCIsXG4gICAgICogICAgIFwicHJldmlvdXNfdmVyc2lvblwiOiBcIjB4MDAwMDEwMjBcIlxuICAgICAqICAgfSxcbiAgICAgKiAgIFwiZ2VuZXNpc19kYXRhXCI6IHtcbiAgICAgKiAgICAgXCJnZW5lc2lzX2ZvcmtfdmVyc2lvblwiOiBcIjB4MDAwMDEwMjBcIixcbiAgICAgKiAgICAgXCJnZW5lc2lzX3RpbWVcIjogXCIxNjc5NTQxNjQyXCIsXG4gICAgICogICAgIFwiZ2VuZXNpc192YWxpZGF0b3JzX3Jvb3RcIjogXCIweDI3MGQ0M2U3NGNlMzQwZGU0YmNhMmIxOTM2YmVjYTBmNGY1NDA4ZDllNzhhZWM0ODUwOTIwYmFmNjU5ZDViNjlcIlxuICAgICAqICAgfSxcbiAgICAgKiAgIFwibmV0d29ya1wiOiBcImdvZXJsaVwiLFxuICAgICAqICAgXCJ2YWxpZGF0b3JfaW5kZXhcIjogXCIwXCJcbiAgICAgKiB9XG4gICAgICovXG4gICAgVW5zdGFrZVJlcXVlc3Q6IHtcbiAgICAgIGVwb2NoPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaFwiXSB8IG51bGw7XG4gICAgICBmb3JrOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZvcmtcIl07XG4gICAgICBnZW5lc2lzX2RhdGE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiR2VuZXNpc0RhdGFcIl07XG4gICAgICBuZXR3b3JrOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk5ldHdvcmtcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0b3IgaW5kZXggKGB1aW50NjRgKSB0byBleGl0LiBZb3UgY2FuIGdldCB0aGUgdmFsaWRhdG9yIGluZGV4IGZyb20gdGhlIEJlYWNvbiBub2RlJ3NcbiAgICAgICAqIGAvZXRoL3YxL2JlYWNvbi9zdGF0ZXMvaGVhZC92YWxpZGF0b3JzL3twdWJrZXl9YCBlbmQtcG9pbnQuIFRoaXMgZW5kIHBvaW50IHJldHVybnMgYW5cbiAgICAgICAqIG9iamVjdCB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSB2YWxpZGF0b3IgKHdob3NlIHB1YmxpYyBrZXkgaXMgYHtwdWJrZXl9YCksXG4gICAgICAgKiBpbmNsdWRpbmcgdGhlIHZhbGlkYXRvciBpbmRleC4gVGhlIHNjaGVtYSBvZiB0aGlzIGVuZC1wb2ludCBpcyBkZWZpbmVkXG4gICAgICAgKiBbaGVyZV0oaHR0cHM6Ly9ldGhlcmV1bS5naXRodWIuaW8vYmVhY29uLUFQSXMvIy9CZWFjb24vZ2V0U3RhdGVWYWxpZGF0b3IpLlxuICAgICAgICogQGV4YW1wbGUgMzEzMzdcbiAgICAgICAqL1xuICAgICAgdmFsaWRhdG9yX2luZGV4OiBzdHJpbmc7XG4gICAgfTtcbiAgICBVcGRhdGVLZXlSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZXMgdGhlIGtleXMncyBgZW5hYmxlZGAgcHJvcGVydHkgdG8gdGhpcyB2YWx1ZS5cbiAgICAgICAqIE9uY2UgZGlzYWJsZWQsIGEga2V5IGNhbm5vdCBiZSB1c2VkIGZvciBzaWduaW5nLlxuICAgICAgICovXG4gICAgICBlbmFibGVkPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZXMga2V5J3Mgb3duZXIgdG8gdGhpcyB2YWx1ZS5cbiAgICAgICAqIFRoZSBuZXcgb3duZXIgbXVzdCBiZSBhbiBleGlzdGluZyB1c2VyIHdobyBpcyBhIG1lbWJlciBvZiB0aGUgc2FtZSBvcmcuXG4gICAgICAgKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlxuICAgICAgICovXG4gICAgICBvd25lcj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIGtleSdzIHBvbGljaWVzIChvbGQgcG9saWNpZXMgd2lsbCBiZSBvdmVyd3JpdHRlbiEpLlxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcIkFsbG93UmF3QmxvYlNpZ25pbmdcIixcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiUmVxdWlyZU1mYVwiOiB7XG4gICAgICAgKiAgICAgICBcImNvdW50XCI6IDFcbiAgICAgICAqICAgICB9XG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W10gfCBudWxsO1xuICAgIH07XG4gICAgVXBkYXRlT3JnUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIG9yZydzIGBlbmFibGVkYCBmaWVsZCB0byB0aGlzIHZhbHVlLiAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyBhbGlhcy4gIE9yZyBhbGlhc2VzIGFyZSBnbG9iYWxseSB1bmlxdWUuXG4gICAgICAgKiBAZXhhbXBsZSBteV9vcmdcbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIG9yZydzIHBvbGljaWVzIChvbGQgcG9saWNpZXMgd2lsbCBiZSBvdmVyd3JpdHRlbiEpLlxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJNYXhEYWlseVVuc3Rha2VcIjogNVxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJPcmlnaW5BbGxvd2xpc3RcIjogW1xuICAgICAgICogICAgICAgXCJodHRwczovL2V4YW1wbGUuY29tXCJcbiAgICAgICAqICAgICBdXG4gICAgICAgKiAgIH0sXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlNvdXJjZUlwQWxsb3dsaXN0XCI6IFtcbiAgICAgICAqICAgICAgIFwiMTAuMS4yLjMvOFwiLFxuICAgICAgICogICAgICAgXCIxNjkuMjU0LjE3LjEvMTZcIlxuICAgICAgICogICAgIF1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXSB8IG51bGw7XG4gICAgfTtcbiAgICBVcGRhdGVSb2xlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGVzIHRoZSByb2xlJ3MgYGVuYWJsZWRgIHByb3BlcnR5IHRvIHRoaXMgdmFsdWUuXG4gICAgICAgKiBPbmNlIGRpc2FibGVkLCBhIHJvbGUgY2Fubm90IGJlIHVzZWQ7IGFuZCBpdCdzIHRva2VucyBjYW5ub3QgYmUgdXNlZCBmb3Igc2lnbmluZy5cbiAgICAgICAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgIH07XG4gICAgVXNlcklkSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIncyBlbWFpbFxuICAgICAgICogQGV4YW1wbGUgYWxpY2VAZXhhbXBsZS5jb21cbiAgICAgICAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgdXNlclxuICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIFVzZXJJblJvbGVJbmZvOiB7XG4gICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBVc2VySW5mbzoge1xuICAgICAgLyoqIEBleGFtcGxlIGFsaWNlQGV4YW1wbGUuY29tICovXG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgbXVsdGktZmFjdG9yIGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgY29uZmlndXJlZCBmb3IgdGhpcyB1c2VyICovXG4gICAgICBtZmE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29uZmlndXJlZE1mYVwiXVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBNRkEgcG9saWN5LCBhcHBsaWVzIGJlZm9yZSBsb2dnaW5nIGluIGFuZCBvdGhlciBzZW5zaXRpdmUgb3BlcmF0aW9ucyAqL1xuICAgICAgbWZhX3BvbGljeT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFsbCBvcmdhbml6YXRpb25zIHRoZSB1c2VyIGJlbG9uZ3MgdG9cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXCJcbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgb3JnX2lkczogc3RyaW5nW107XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlclxuICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAqL1xuICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEEgV2ViQXV0aG4gUmVseWluZyBQYXJ0eSBtYXkgcmVxdWlyZSB1c2VyIHZlcmlmaWNhdGlvbiBmb3Igc29tZSBvZiBpdHNcbiAgICAgKiBvcGVyYXRpb25zIGJ1dCBub3QgZm9yIG90aGVycywgYW5kIG1heSB1c2UgdGhpcyB0eXBlIHRvIGV4cHJlc3MgaXRzIG5lZWRzLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2VudW0tdXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50XG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6IFwicmVxdWlyZWRcIiB8IFwiZGlzY291cmFnZWRcIiB8IFwicHJlZmVycmVkXCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFuIGV4aXQgdm9sdW50YXJpbHkgc3VibWl0dGVkIGEgdmFsaWRhdG9yIHdobyB3aXNoZXMgdG8gd2l0aGRyYXcuXG4gICAgICogVGhlIHNjaGVtYSBmb3IgdGhpcyBtZXNzYWdlIGlzIGRlZmluZWRcbiAgICAgKiBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2V0aGVyZXVtL2NvbnNlbnN1cy1zcGVjcy9ibG9iL3YxLjAuMS9zcGVjcy9waGFzZTAvYmVhY29uLWNoYWluLm1kI3NpZ25lZHZvbHVudGFyeWV4aXQpLlxuICAgICAqL1xuICAgIFZvbHVudGFyeUV4aXQ6IHtcbiAgICAgIGVwb2NoOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSW5kZXggb2YgdGhlIGV4aXRpbmcgdmFsaWRhdG9yLlxuICAgICAgICogQGV4YW1wbGUgMjU2XG4gICAgICAgKi9cbiAgICAgIHZhbGlkYXRvcl9pbmRleDogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIHJlc3BvbnNlczoge1xuICAgIEFkZFRoaXJkUGFydHlVc2VyUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGYgKi9cbiAgICAgICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgQXZhU2lnblJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgc2lnbmF0dXJlLiAqL1xuICAgICAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEJsb2JTaWduUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBoZXgtZW5jb2RlZCBzaWduYXR1cmUuICovXG4gICAgICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgQnRjU2lnblJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBoZXgtZW5jb2RlZCBzaWduYXR1cmUgaW4gY29tcGFjdCBmb3JtYXQuXG4gICAgICAgICAgICogQGV4YW1wbGUgMHg0NTRhZWYyN2MyMWRmN2RkOGY1MzdkYzg2OWY0Y2Q2NTI4NmNlMjM5YTUyZDM2NDcwZjRkODViZTg1YTg5MWIwMjc4OWU1ZmZkODU2MGIzMmE5ODExMGU1ZDAwOTY4MDJlNGMxNDE0NWNmNmM0NGYxMGE3NjhjODc3NTVlYWE0ODAwXG4gICAgICAgICAgICovXG4gICAgICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgQ3JlYXRlS2V5SW1wb3J0S2V5UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW1wb3J0S2V5XCJdICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBhdHRlc3RhdGlvbiBkb2N1bWVudCBmcm9tIGEgc2VjdXJlIGVuY2xhdmUsIGluY2x1ZGluZyBhblxuICAgICAgICAgICAqIFJTQSBzaWduaW5nIGtleSB1c2VkIHRvIHNpZ24gdGhlIGNvbnRlbnRzIG9mIHRoaXMgbWVzc2FnZS5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmNsYXZlX2F0dGVzdGF0aW9uOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEFuIFJTQS1QU1MtU0hBMjU2IHNpZ25hdHVyZSBvbiB0aGUgcHVibGljIGtleSBhbmQgZW5jcnlwdGVkXG4gICAgICAgICAgICogc2VjcmV0cyBhdHRlc3RpbmcgdG8gdGhlaXIgZ2VuZXJhdGlvbiBpbnNpZGUgYSBzZWN1cmUgZW5jbGF2ZS5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmNsYXZlX3NpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIENyZWF0ZUtleVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaW5mbyBhYm91dCB0aGUgY3JlYXRlZCBrZXlzICovXG4gICAgICAgICAga2V5czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJbmZvXCJdW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbmV3bHkgY3JlYXRlZCByb2xlIGluZm9ybWF0aW9uICovXG4gICAgQ3JlYXRlUm9sZVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHJvbGUuXG4gICAgICAgICAgICogQGV4YW1wbGUgbXlfcm9sZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIG5ld2x5IGNyZWF0ZWQgcm9sZVxuICAgICAgICAgICAqIEBleGFtcGxlIFJvbGUjYmZlM2VjY2ItNzMxZS00MzBkLWIxZTUtYWMxMzYzZTZiMDZiXG4gICAgICAgICAgICovXG4gICAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEVpcDcxMlNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBzaWduYXR1cmUgY29tcHJpc2luZyA2NSBieXRlcyBpbiB0aGUgZm9ybWF0IHJlcXVpcmVkXG4gICAgICAgICAgICogYnkgZWNyZWNvdmVyOiAzMi1ieXRlIHIsIDMyLWJ5dGUgcywgYW5kIG9uZS1ieXRlIHJlY292ZXJ5LWlkIHZcbiAgICAgICAgICAgKiB3aGljaCBpcyBlaXRoZXIgMjcgb3IgMjguXG4gICAgICAgICAgICogQGV4YW1wbGUgMHg0MzU1YzQ3ZDYzOTI0ZThhNzJlNTA5YjY1MDI5MDUyZWI2YzI5OWQ1M2EwNGUxNjdjNTc3NWZkNDY2NzUxYzlkMDcyOTk5MzZkMzA0YzE1M2Y2NDQzZGZhMDVmNDBmZjAwN2Q3MjkxMWI2ZjcyMzA3Zjk5NjIzMTYwNWI5MTU2MjFjXG4gICAgICAgICAgICovXG4gICAgICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgRW1wdHlJbXBsOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgRXRoMVNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBSTFAgZW5jb2Rpbmcgb2YgdGhlIHRyYW5zYWN0aW9uIGFuZCBpdHMgc2lnbmF0dXJlXG4gICAgICAgICAgICogQGV4YW1wbGUgMHgyMjg5NTExODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyMDFkNTg2NTZiMGUyMmFhYTY4ZmRjNjkyZGI0MTk3OTA5OGMzODg2ZWQzMzAxNWQ3NDY3ZGU5MjExNjA5Y2RhYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwOGIwYzI5MDAzMjRkM2ZmOWFkZmJhN2ZkZmU1YWYzZjliMmNkYmVlZjdiMjgwNDM3YmJmMWIxYzU5YTA5M2Q2MTVhZmUzZTVkZmVkOTYyMmI1NDBjZGQ5YjQ5YjNjNWFkMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDkwMTFhZGJjYzNiYzljMDMwN2JiMDdmMzdkZGExYTFhOWM2OWQyZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjA5MDNkYjg1MjU2NzRiOGU3OTA0ZjliN2Q3ZDllYzU1YTBhNDJkMzNjZjU4YmUyNTQ2OWIwYzIxYmJiNmQwNjE3MmJjNWJiNWZkMWFlZDhlNGYzNTkzNjk2ODk1ODExNmIwNjE5NTUzYzJjYjFjNTJlNzMyMzA3NGM2ZjhlYjNkNWE3MDc0ZmM2NTgwMTQ4ZGY5MDc4MzdmYTNiMTY0YWQ3ZmJjMjI4OGRhZDFlOGE1YjAyMTA5NWI1N2M4YTM2ZDRcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBybHBfc2lnbmVkX3R4OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgRXRoMlNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXggZW5jb2RlZCBzaWduYXR1cmUgcHJlZml4ZWQgd2l0aCAweCBlLmcuIFwiMHgwMDAwLi4uXCJcbiAgICAgICAgICAgKiBAZXhhbXBsZSAweGI0ZjJlZjlkMTJhNTRlMWY1Njk1OTZjMDdjOTdkNmQ3MzA1MzViNmZmYzBkMjg3NzYxZGM3ODEwM2E4NjMyNjc4MjQ3MWEwNGM3NWNlN2E2ZmFlYTA4Y2E5YTRhMDgzMDAzMWNkY2I4OTNkYTg3MTFkNTRhYTIyNjE5ZjFhN2U3MWI4MTg1ZGRmNGM2YmZkOWJhYmJkNzM1OTYwZTM1ZTU2YmQ2ZWViODk2MjViMDQ4NTBlN2E5ZWY4ODQ2ZTU0OVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEZpZG9Bc3NlcnRDaGFsbGVuZ2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgY2hhbGxlbmdlLiBNdXN0IGJlIHN1cHBsaWVkIHdoZW4gYW5zd2VyaW5nIHRoZSBjaGFsbGVuZ2UuICovXG4gICAgICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgICAgICAgb3B0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNlbnQgYnkgdGhlIHNlcnZlciB0byB0aGUgY2xpZW50LiBDb250YWlucyB0aGUgY2hhbGxlbmdlIGRhdGEgdGhhdCBtdXN0IGJlXG4gICAgICogdXNlZCB0byBnZW5lcmF0ZSBhIG5ldyBjcmVkZW50aWFsXG4gICAgICovXG4gICAgRmlkb0NyZWF0ZUNoYWxsZW5nZVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGNoYWxsZW5nZS4gTXVzdCBiZSBzdXBwbGllZCB3aGVuIGFuc3dlcmluZyB0aGUgY2hhbGxlbmdlLiAqL1xuICAgICAgICAgIGNoYWxsZW5nZV9pZDogc3RyaW5nO1xuICAgICAgICAgIG9wdGlvbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uc1wiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBHZXRVc2Vyc0luT3JnUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBsaXN0IG9mIHVzZXJzIGluIHRoZSBvcmcgKi9cbiAgICAgICAgICB1c2VyczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VySWRJbmZvXCJdW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByb29mIHRoYXQgYW4gZW5kLXVzZXIgcHJvdmlkZWQgQ3ViZVNpZ25lciB3aXRoIGEgdmFsaWQgYXV0aCB0b2tlblxuICAgICAqIChlaXRoZXIgYW4gT0lEQyB0b2tlbiBvciBhIEN1YmVTaWduZXIgc2Vzc2lvbiB0b2tlbilcbiAgICAgKi9cbiAgICBJZGVudGl0eVByb29mOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiAoe1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBPSURDIGF1ZGllbmNlOyBzZXQgb25seSBpZiB0aGUgcHJvb2Ygd2FzIG9idGFpbmVkIGJ5IHVzaW5nIE9JREMgdG9rZW4uXG4gICAgICAgICAgICpcbiAgICAgICAgICAgKiBJbiBvdGhlciB3b3JkcywgcHJlc2VuY2Ugb2YgdGhpcyBmaWVsZCB0ZXN0aWZpZXMgdGhhdCBhdXRob3JpemF0aW9uIHdhcyBvYnRhaW5lZCB2aWEgT0lEQy5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBhdWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZW1haWwgYXNzb2NpYXRlZCB3aXRoIHRoZSB1c2VyXG4gICAgICAgICAgICogQGV4YW1wbGUgdXNlckBlbWFpbC5jb21cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgICAgIGV4cF9lcG9jaDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgICAgIGlkZW50aXR5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPSURDSWRlbnRpdHlcIl0gfCBudWxsO1xuICAgICAgICAgIHVzZXJfaW5mbz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3ViZVNpZ25lclVzZXJJbmZvXCJdIHwgbnVsbDtcbiAgICAgICAgfSkgJiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBvcGFxdWUgaWRlbnRpZmllciBmb3IgdGhlIHByb29mICovXG4gICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERlcml2YXRpb24tcmVsYXRlZCBtZXRhZGF0YSBmb3Iga2V5cyBkZXJpdmVkIGZyb20gYSBsb25nLWxpdmVkIG1uZW1vbmljICovXG4gICAgS2V5RGVyaXZhdGlvbkluZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBkZXJpdmF0aW9uIHBhdGggdXNlZCB0byBkZXJpdmUgdGhpcyBrZXkgKi9cbiAgICAgICAgICBkZXJpdmF0aW9uX3BhdGg6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtbmVtb25pYy1pZCBvZiB0aGUga2V5J3MgcGFyZW50IG1uZW1vbmljICovXG4gICAgICAgICAgbW5lbW9uaWNfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgd3JhcHBlZCBrZXktaW1wb3J0IGtleSAqL1xuICAgIEtleUltcG9ydEtleToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmFzZTY0LWVuY29kZWQsIGVuY3J5cHRlZCBkYXRhIGtleS4gKi9cbiAgICAgICAgICBka19lbmM6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEV4cGlyYXRpb24gdGltZXN0YW1wIGV4cHJlc3NlZCBhcyBzZWNvbmRzIHNpbmNlIHRoZSBVTklYIGVwb2NoLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGV4cGlyZXM6IG51bWJlcjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVwaGVtZXJhbCBwdWJsaWMga2V5IHRvIHdoaWNoIGFuIGltcG9ydGVkIGtleSBzaG91bGQgYmUgZW5jcnlwdGVkLlxuICAgICAgICAgICAqIFRoaXMgaXMgYSBQMzg0IHB1YmxpYyBrZXkgaW4gYmFzZTY0LWVuY29kZWQgdW5jb21wcmVzc2VkIFNFQ0cgZm9ybWF0LlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHB1YmxpY19rZXk6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEJhc2U2NC1lbmNvZGVkLCBlbmNyeXB0ZWQgc2VjcmV0IGtleS4gKi9cbiAgICAgICAgICBza19lbmM6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBLZXlJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgZGVyaXZhdGlvbl9pbmZvPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlEZXJpdmF0aW9uSW5mb1wiXSB8IG51bGw7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSBrZXkgaXMgZW5hYmxlZCAob25seSBlbmFibGVkIGtleXMgbWF5IGJlIHVzZWQgZm9yIHNpZ25pbmcpICovXG4gICAgICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBrZXk6IFwiS2V5I1wiIGZvbGxvd2VkIGJ5IGEgdW5pcXVlIGlkZW50aWZpZXIgc3BlY2lmaWMgdG9cbiAgICAgICAgICAgKiB0aGUgdHlwZSBvZiBrZXkgKHN1Y2ggYXMgYSBwdWJsaWMga2V5IGZvciBCTFMgb3IgYW4gZXRoZXJldW0gYWRkcmVzcyBmb3IgU2VjcClcbiAgICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAgICAgICAgICovXG4gICAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQSB1bmlxdWUgaWRlbnRpZmllciBzcGVjaWZpYyB0byB0aGUgdHlwZSBvZiBrZXksIHN1Y2ggYXMgYSBwdWJsaWMga2V5IG9yIGFuIGV0aGVyZXVtIGFkZHJlc3NcbiAgICAgICAgICAgKiBAZXhhbXBsZSAweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBtYXRlcmlhbF9pZDogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBPd25lciBvZiB0aGUga2V5XG4gICAgICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBvd25lcjogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBLZXkgcG9saWN5XG4gICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAqICAgXCJBbGxvd1Jhd0Jsb2JTaWduaW5nXCIsXG4gICAgICAgICAgICogICB7XG4gICAgICAgICAgICogICAgIFwiUmVxdWlyZU1mYVwiOiB7XG4gICAgICAgICAgICogICAgICAgXCJjb3VudFwiOiAxXG4gICAgICAgICAgICogICAgIH1cbiAgICAgICAgICAgKiAgIH1cbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgcG9saWN5OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQsIHNlcmlhbGl6ZWQgcHVibGljIGtleS4gVGhlIGZvcm1hdCB1c2VkIGRlcGVuZHMgb24gdGhlIGtleSB0eXBlOlxuICAgICAgICAgICAqIC0gU2VjcDI1NmsxIGtleXMgdXNlIDY1LWJ5dGUgdW5jb21wcmVzc2VkIFNFQ0cgZm9ybWF0O1xuICAgICAgICAgICAqIC0gU3Rhcmsga2V5cyB1c2UgMzMtYnl0ZSBjb21wcmVzc2VkIFNFQ0cgZm9ybWF0O1xuICAgICAgICAgICAqIC0gQkxTIGtleXMgdXNlIDQ4LWJ5dGUgY29tcHJlc3NlZCBCTFMxMi0zODEgKFpDYXNoKSBmb3JtYXQ7XG4gICAgICAgICAgICogLSBFZDI1NTE5IGtleXMgdXNlIHRoZSBjYW5vbmljYWwgMzItYnl0ZSBlbmNvZGluZyBzcGVjaWZpZWQgaW4gUkZDIDgwMzIuXG4gICAgICAgICAgICogQGV4YW1wbGUgMHgwNGQyNjg4YjZiYzJjZTdmOTg3OWI5ZTc0NWYzYzRkYzE3NzkwOGM1Y2VmMGMxYjY0Y2ZmMTlhZTdmZjI3ZGVlNjIzYzY0ZmU5ZDljMzI1YzdmYmJjNzQ4YmJkNWY2MDdjZTE0ZGQ4M2UyOGViYmJiN2QzZTdmMmZmYjcwYTc5NDMxXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHVibGljX2tleTogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcHVycG9zZSBmb3Igd2hpY2ggdGhlIGtleSBjYW4gYmUgdXNlZCAoZS5nLiwgY2hhaW4gaWQgZm9yIHdoaWNoIHRoZSBrZXkgaXMgYWxsb3dlZCB0byBzaWduIG1lc3NhZ2VzKVxuICAgICAgICAgICAqIEBleGFtcGxlIEV0aDJWYWxpZGF0b3IoMSlcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgS2V5SW5mb3M6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBrZXlzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBMaXN0TWZhUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBwZW5kaW5nIE1GQSByZXF1ZXN0cyAqL1xuICAgICAgICAgIG1mYV9yZXF1ZXN0czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFSZXF1ZXN0SW5mb1wiXVtdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIExpc3RUb2tlbnNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHRva2VuczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb2tlbkluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJldHVybmVkIGFzIGEgcmVzcG9uc2UgZnJvbSBtdWx0aXBsZSByb3V0ZXMgKGUuZy4sICdnZXQgbWZhJywgJ2FwcHJvdmUgbWZhJywgJ2FwcHJvdmUgdG90cCcpLiAqL1xuICAgIE1mYVJlcXVlc3RJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgZXhwaXJlc19hdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXBwcm92YWwgcmVxdWVzdCBJRC4gKi9cbiAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgIHJlY2VpcHQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJlY2VpcHRcIl0gfCBudWxsO1xuICAgICAgICAgIHJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSHR0cFJlcXVlc3RcIl07XG4gICAgICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN0YXR1c1wiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIGFib3V0IGEgbmV3IHNlc3Npb24sIHJldHVybmVkIGZyb20gbXVsdGlwbGUgZW5kcG9pbnRzIChlLmcuLCBsb2dpbiwgcmVmcmVzaCwgZXRjLikuICovXG4gICAgTmV3U2Vzc2lvblJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2Vzc2lvbl9pbmZvOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNsaWVudFNlc3Npb25JbmZvXCJdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBOZXcgdG9rZW4gdG8gYmUgdXNlZCBmb3IgYXV0aGVudGljYXRpb24uIFJlcXVlc3RzIHRvIHNpZ25pbmcgZW5kcG9pbnRzXG4gICAgICAgICAgICogc2hvdWxkIGluY2x1ZGUgdGhpcyB2YWx1ZSBpbiB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlclxuICAgICAgICAgICAqL1xuICAgICAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgT3JnSW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hlbiBmYWxzZSwgYWxsIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyBpbnZvbHZpbmcga2V5cyBpbiB0aGlzIG9yZyBhcmUgZGlzYWJsZWQuICovXG4gICAgICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIERlcHJlY2F0ZWQ6IHRoaXMgZmllbGQgc2hvdWxkIGJlIGlnbm9yZWQuICovXG4gICAgICAgICAga2V5X2ltcG9ydF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgb3JnYW5pemF0aW9uJ3MgdW5pdmVyc2FsbHkgdW5pcXVlIGtleS13cmFwcGluZy1rZXkgaWRlbnRpZmllci5cbiAgICAgICAgICAgKiBUaGlzIHZhbHVlIGlzIHJlcXVpcmVkIHdoZW4gc2V0dGluZyB1cCBrZXkgZXhwb3J0LlxuICAgICAgICAgICAqIEBleGFtcGxlIG1yay1mY2UwOTUyNWU4MTU4N2QyMzUyMGYxMWUwN2UyZTlkOVxuICAgICAgICAgICAqL1xuICAgICAgICAgIGt3a19pZDogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBEYXRlL3RpbWUgKGluIFVUQykgd2hlbiBsYXN0ICd1bnN0YWtlJyB3YXMgcGVyZm9ybWVkLiBVbml4IGVwb2NoIGlmIG5vbmUuXG4gICAgICAgICAgICogQGV4YW1wbGUgVE9ET1xuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfdW5zdGFrZTogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSG93IG1hbnkgJ3Vuc3Rha2UnIGNhbGxzIGhhcHBlbmVkIG9uIHRoZSBkYXkgd2hlbiBgbGFzdF91bnN0YWtlYCB3YXMgcGVyZm9ybWVkLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfdW5zdGFrZV9kYXlfY291bnQ6IG51bWJlcjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBvcmdcbiAgICAgICAgICAgKiBAZXhhbXBsZSBteV9vcmdfbmFtZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIG9yZ2FuaXphdGlvblxuICAgICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gT3JnLXdpZGUgcG9saWNpZXMgdGhhdCBhcmUgY2hlY2tlZCBiZWZvcmUgYSBrZXkgaXMgdXNlZCBmb3Igc2lnbmluZ1xuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJNYXhEYWlseVVuc3Rha2VcIjogNVxuICAgICAgICAgICAqICAgfVxuICAgICAgICAgICAqIF1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRMaXN0S2V5c1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAga2V5czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJbmZvXCJdW107XG4gICAgICAgIH0gJiAoe1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH07XG4gICAgUGFnaW5hdGVkTGlzdFJvbGVLZXlzUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBrZXlzIGluIGEgcm9sZSAqL1xuICAgICAgICAgIGtleXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5Sb2xlSW5mb1wiXVtdO1xuICAgICAgICB9ICYgKHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZExpc3RSb2xlVXNlcnNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIHVzZXJzIGluIGEgcm9sZSAqL1xuICAgICAgICAgIHVzZXJzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJJblJvbGVJbmZvXCJdW107XG4gICAgICAgIH0gJiAoe1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH07XG4gICAgUGFnaW5hdGVkTGlzdFJvbGVzUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCByb2xlcyBpbiBhbiBvcmdhbml6YXRpb24uICovXG4gICAgICAgICAgcm9sZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUm9sZUluZm9cIl1bXTtcbiAgICAgICAgfSAmICh7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRTZXNzaW9uc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbGlzdCBvZiBzZXNzaW9ucyAqL1xuICAgICAgICAgIHNlc3Npb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlc3Npb25JbmZvXCJdW107XG4gICAgICAgIH0gJiAoe1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH07XG4gICAgUmV2b2tlVG9rZW5SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHRva2VuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb2tlbkluZm9cIl0gfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFJldm9rZVRva2Vuc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUb2tlbnMgdGhhdCB3ZXJlIHJldm9rZWQuICovXG4gICAgICAgICAgcmV2b2tlZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb2tlbkluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBSb2xlSW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSByb2xlIGlzIGVuYWJsZWRcbiAgICAgICAgICAgKiBAZXhhbXBsZSB0cnVlXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIERlcHJlY2F0ZWQgVGhlIEN1YmVTaWduZXIgSURzIG9mIGF0IG1vc3QgMTAwIGtleXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcm9sZSAqL1xuICAgICAgICAgIGtleXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluUm9sZUluZm9cIl1bXSB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcm9sZSAobXVzdCBiZSBhbHBoYW51bWVyaWMpXG4gICAgICAgICAgICogQGV4YW1wbGUgbXlfcm9sZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHJvbGVcbiAgICAgICAgICAgKiBAZXhhbXBsZSBSb2xlI2JmZTNlY2NiLTczMWUtNDMwZC1iMWU1LWFjMTM2M2U2YjA2YlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIERlcHJlY2F0ZWQuIFRoZSBsaXN0IG9mIGF0IG1vc3QgMTAwIHVzZXJzIHdpdGggYWNjZXNzIHRvIHRoZSByb2xlLiAqL1xuICAgICAgICAgIHVzZXJzPzogc3RyaW5nW10gfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFNlc3Npb25JbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gZm9yIHRoZSBzZXNzaW9uXG4gICAgICAgICAgICogQGV4YW1wbGUgT0lEQyBsb2dpbiBzZXNzaW9uXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHVycG9zZTogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBTZXNzaW9uIElELiBVbmlxdWVseSBpZGVudGlmaWVzIHRoZSBzZXNzaW9uLCBidXQgY2Fubm90IGJlIHVzZWQgZm9yIGF1dGguXG4gICAgICAgICAgICogQGV4YW1wbGUgNzdhYWQyMTAwYzM2MWY0OTc2MzVkZDAwNWM0ZDE1NzgxZTJlNWRmNGI5ZjQ1ZDhlNzRmMzc0MjVjYmMzMGI5ZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNlc3Npb25faWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXNwb25zZSBmcm9tIGFueSBvcGVyYXRpb24gb3BlcmF0aW5nIG9uIG11bHRpcGxlIHNlc3Npb25zICovXG4gICAgU2Vzc2lvbnNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2Ygc2Vzc2lvbnMgKi9cbiAgICAgICAgICBzZXNzaW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZXNzaW9uSW5mb1wiXVtdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFNvbGFuYVNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGhleC1lbmNvZGVkIHNpZ25hdHVyZS4gKi9cbiAgICAgICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBTdGFrZVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB2YWxpZGF0b3Iga2V5IGlkIChcIktleSMuLi5cIilcbiAgICAgICAgICAgKiBAZXhhbXBsZSBLZXkjZGIxNzMxZjgtMzY1OS00NWMwLTg4NWItZTExZTFmNWI3YmUyXG4gICAgICAgICAgICovXG4gICAgICAgICAgY3JlYXRlZF92YWxpZGF0b3Jfa2V5X2lkOiBzdHJpbmc7XG4gICAgICAgICAgZGVwb3NpdF90eDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJEZXBvc2l0VHhuXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFRva2VuSW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gU2Vzc2lvbiBJRC4gVXNlIGl0IHRvIHJldm9rZSBhIHNlc3Npb24uIENhbm5vdCBiZSB1c2VkIGZvciBhdXRoLiAqL1xuICAgICAgICAgIGhhc2g6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRva2VucyBwdXJwb3NlICovXG4gICAgICAgICAgcHVycG9zZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFRvdHBJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgVE9UUCBjaGFsbGVuZ2UuXG4gICAgICAgICAgICogQGV4YW1wbGUgVG90cENoYWxsZW5nZSM3ODkyZWJiYS01NjNlLTQ4NWItYmI3ZC1lMjYyNjczNjMyODZcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB0b3RwX2lkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFN0YW5kYXJkIFRPVFAgdXJsIHdoaWNoIGluY2x1ZGVzIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvIGluaXRpYWxpemUgVE9UUC5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBvdHBhdXRoOi8vdG90cC9DdWJpc3Q6YWxpY2UtJTQwZXhhbXBsZS5jb20/c2VjcmV0PURBSEY3S0NPVFFXU09NSzRYRkVNTkhYTzRKNDMzT0Q3Jmlzc3Vlcj1DdWJpc3RcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB0b3RwX3VybDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBVbnN0YWtlIHJlc3BvbnNlcyBhcmUgc2lnbmVkIHZvbHVudGFyeSBleGl0IG1lc3NhZ2VzLlxuICAgICAqIFRoZSBzY2hlbWEgZm9yIHRoaXMgbWVzc2FnZSBpcyBkZWZpbmVkXG4gICAgICogW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9jb25zZW5zdXMtc3BlY3MvYmxvYi92MS4wLjEvc3BlY3MvcGhhc2UwL2JlYWNvbi1jaGFpbi5tZCNzaWduZWR2b2x1bnRhcnlleGl0KS5cbiAgICAgKiBUaGlzIG1lc3NhZ2UgY2FuIGJlIGRpcmVjdGx5IFBPU1RlZCB0byB0aGUgQmVhY29uIG5vZGUnc1xuICAgICAqIGAvZXRoL3YxL2JlYWNvbi9wb29sL3ZvbHVudGFyeV9leGl0c2AgZW5kLXBvaW50IChzZWUgZXhwZWN0ZWQgc2NoZW1hXG4gICAgICogW2hlcmVdKGh0dHBzOi8vZXRoZXJldW0uZ2l0aHViLmlvL2JlYWNvbi1BUElzLyMvQmVhY29uL3N1Ym1pdFBvb2xWb2x1bnRhcnlFeGl0KSkuXG4gICAgICovXG4gICAgVW5zdGFrZVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgbWVzc2FnZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJWb2x1bnRhcnlFeGl0XCJdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBCTFMgc2lnbmF0dXJlLlxuICAgICAgICAgICAqIEBleGFtcGxlIDB4OTEwYzdjZDUzN2VkOTFjYzhjNGE4MmYzY2JkODMyZTliZThjMjRhMjJlOWM4NmRmNDc5ZjdjZTQyMDI1ZWE2YTA5NjE5YjQxOGI2NjZhMDYwZTI2MGQyYWFlMzFiOGU1MGU5ZDA1Y2EzNDQyYzdlZWQzYjUwN2U1MjA3ZTE0Njc0Mjc1ZjY4YzJiYTg0YzRiZjZiOGRkMzY0YTMwNGFjYWM4Y2ZhYjM2ODFlMjUxNGI0NDAwZjkyNDJiYzYxMTY0XG4gICAgICAgICAgICovXG4gICAgICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgVXBkYXRlT3JnUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSAqL1xuICAgICAgICAgIGVuYWJsZWQ/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgb3JnIChtdXN0IGJlIGFscGhhbnVtZXJpYylcbiAgICAgICAgICAgKiBAZXhhbXBsZSBteV9vcmdfbmFtZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIG9yZ2FuaXphdGlvblxuICAgICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiBvcmctd2lkZSBwb2xpY2llc1xuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJNYXhEYWlseVVuc3Rha2VcIjogNVxuICAgICAgICAgICAqICAgfSxcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJPcmlnaW5BbGxvd2xpc3RcIjogW1xuICAgICAgICAgICAqICAgICAgIFwiaHR0cHM6Ly9leGFtcGxlLmNvbVwiXG4gICAgICAgICAgICogICAgIF1cbiAgICAgICAgICAgKiAgIH1cbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W10gfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFVzZXJJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIGFsaWNlQGV4YW1wbGUuY29tICovXG4gICAgICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBtdWx0aS1mYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kcyBjb25maWd1cmVkIGZvciB0aGlzIHVzZXIgKi9cbiAgICAgICAgICBtZmE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29uZmlndXJlZE1mYVwiXVtdO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gTUZBIHBvbGljeSwgYXBwbGllcyBiZWZvcmUgbG9nZ2luZyBpbiBhbmQgb3RoZXIgc2Vuc2l0aXZlIG9wZXJhdGlvbnMgKi9cbiAgICAgICAgICBtZmFfcG9saWN5PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBbGwgb3JnYW5pemF0aW9ucyB0aGUgdXNlciBiZWxvbmdzIHRvXG4gICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAqICAgXCJPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXCJcbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgb3JnX2lkczogc3RyaW5nW107XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyXG4gICAgICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIHBhcmFtZXRlcnM6IG5ldmVyO1xuICByZXF1ZXN0Qm9kaWVzOiBuZXZlcjtcbiAgaGVhZGVyczogbmV2ZXI7XG4gIHBhdGhJdGVtczogbmV2ZXI7XG59XG5cbmV4cG9ydCB0eXBlICRkZWZzID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG5leHBvcnQgdHlwZSBleHRlcm5hbCA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuZXhwb3J0IGludGVyZmFjZSBvcGVyYXRpb25zIHtcblxuICAvKipcbiAgICogVXNlciBJbmZvXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEBkZXNjcmlwdGlvbiBVc2VyIEluZm9cbiAgICpcbiAgICogUmV0cmlldmVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IHVzZXIuXG4gICAqL1xuICBhYm91dE1lTGVnYWN5OiB7XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVc2VySW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgT3JnXG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgT3JnXG4gICAqXG4gICAqIFJldHJpZXZlcyBpbmZvcm1hdGlvbiBhYm91dCBhbiBvcmdhbml6YXRpb24uXG4gICAqL1xuICBnZXRPcmc6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJPcmdJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFVwZGF0ZSBPcmdcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBPcmdcbiAgICpcbiAgICogVXBkYXRlIG9yZ2FuaXphdGlvbiBhdHRyaWJ1dGVzIChlbmFibGVkIGZsYWcsIG5hbWUsIGFuZCBwb2xpY2llcykuXG4gICAqL1xuICB1cGRhdGVPcmc6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXBkYXRlT3JnUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlVwZGF0ZU9yZ1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gQXZhbGFuY2hlIFgtIG9yIFAtQ2hhaW4gTWVzc2FnZVxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBBdmFsYW5jaGUgWC0gb3IgUC1DaGFpbiBNZXNzYWdlXG4gICAqXG4gICAqIFNpZ25zIGFuIEF2YWxhbmNoZSBtZXNzYWdlIHdpdGggYSBnaXZlbiBTZWNwQXZhIGtleS5cbiAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAqL1xuICBhdmFTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEF2YWxhbmNoZSBiZWNoMzIgYWRkcmVzcyBmb3JtYXQgd2l0aG91dCB0aGUgY2hhaW4gcHJlZml4XG4gICAgICAgICAqIEBleGFtcGxlIGF2YXgxYW00dzZoZnJ2bWgzYWtkdXpranRocnRndHFhZmFsY2U2YW44Y3JcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF2YVNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQXZhU2lnblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIEJpdGNvaW4gVHJhbnNhY3Rpb25cbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gQml0Y29pbiBUcmFuc2FjdGlvblxuICAgKlxuICAgKiBTaWducyBhIEJpdGNvaW4gdHJhbnNhY3Rpb24gd2l0aCBhIGdpdmVuIGtleS5cbiAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAqL1xuICBidGNTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIGJlY2gzMiBlbmNvZGluZyBvZiB0aGUgcHVibGljIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSBiYzFxNXA1cWthZTc3bHk4MGtyNHB5Znl0ZHFtN3JmMDhkZGhkZWpsOWdcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJ0Y1NpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQnRjU2lnblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBEZXJpdmUgS2V5IEZyb20gTG9uZy1MaXZlZCBNbmVtb25pY1xuICAgKiBAZGVzY3JpcHRpb24gRGVyaXZlIEtleSBGcm9tIExvbmctTGl2ZWQgTW5lbW9uaWNcbiAgICpcbiAgICogRGVyaXZlcyBhIGtleSBvZiBhIHNwZWNpZmllZCB0eXBlIHVzaW5nIGEgc3VwcGxpZWQgZGVyaXZhdGlvbiBwYXRoIGFuZCBhblxuICAgKiBleGlzdGluZyBsb25nLWxpdmVkIG1uZW1vbmljLlxuICAgKi9cbiAgZGVyaXZlS2V5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcml2ZUtleVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJDcmVhdGVLZXlSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIEVJUC03MTIgVHlwZWQgRGF0YVxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBFSVAtNzEyIFR5cGVkIERhdGFcbiAgICpcbiAgICogU2lnbnMgdHlwZWQgZGF0YSBhY2NvcmRpbmcgdG8gRUlQLTcxMiB3aXRoIGEgZ2l2ZW4gU2VjcDI1NmsxIGtleS5cbiAgICovXG4gIGVpcDcxMlNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgZXRoZXJldW0gYWRkcmVzcyBvZiB0aGUgc2VjcCBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgMHg0OTAxMWFkYkNDM2JDOWMwMzA3QkIwN0YzN0RkYTFhMWE5YzY5ZDJFXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFaXA3MTJTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVpcDcxMlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlIFtJZGVudGl0eVByb29mXSBmcm9tIEN1YmVTaWduZXIgdXNlciBzZXNzaW9uXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgW0lkZW50aXR5UHJvb2ZdIGZyb20gQ3ViZVNpZ25lciB1c2VyIHNlc3Npb25cbiAgICpcbiAgICogVGhpcyByb3V0ZSBjYW4gYmUgdXNlZCB0byBwcm92ZSB0byBhbm90aGVyIHBhcnR5IHRoYXQgYSB1c2VyIGhhcyBhXG4gICAqIHZhbGlkIEN1YmVTaWduZXIgc2Vzc2lvbi5cbiAgICpcbiAgICogQ2xpZW50cyBhcmUgaW50ZW5kZWQgdG8gY2FsbCB0aGlzIHJvdXRlIGFuZCBwYXNzIHRoZSByZXR1cm5lZCBldmlkZW5jZVxuICAgKiB0byBhbm90aGVyIHNlcnZpY2Ugd2hpY2ggd2lsbCB2ZXJpZnkgaXQgYnkgbWFraW5nIGEgcmVxdWVzdCB0byBgL3YwL29yZy88b3JnX2lkPi9pZGVudGl0eS92ZXJpZnlgLlxuICAgKi9cbiAgY3JlYXRlUHJvb2ZDdWJlU2lnbmVyOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiSWRlbnRpdHlQcm9vZlwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgW0lkZW50aXR5UHJvb2ZdIGZyb20gT0lEQyB0b2tlblxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFtJZGVudGl0eVByb29mXSBmcm9tIE9JREMgdG9rZW5cbiAgICpcbiAgICogRXhjaGFuZ2UgYW4gT0lEQyBJRCB0b2tlbiAocGFzc2VkIHZpYSB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlcikgZm9yIGEgcHJvb2Ygb2YgYXV0aGVudGljYXRpb24uXG4gICAqXG4gICAqIFRoaXMgcm91dGUgY2FuIGJlIHVzZWQgdG8gcHJvdmUgdG8gYW5vdGhlciBwYXJ0eSB0aGF0IGEgdXNlciBoYXMgbWV0IHRoZVxuICAgKiBhdXRoZW50aWNhdGlvbiByZXF1aXJlbWVudHMgKGFsbG93ZWQgaXNzdWVycyAmIGF1ZGllbmNlcykgZm9yIEN1YmVTaWduZXJcbiAgICogd2l0aG91dCBsZWFraW5nIHRoZWlyIGNyZWRlbnRpYWxzLlxuICAgKlxuICAgKiBDbGllbnRzIGFyZSBpbnRlbmRlZCB0byBjYWxsIHRoaXMgcm91dGUgYW5kIHBhc3MgdGhlIHJldHVybmVkIGV2aWRlbmNlIHRvIGFub3RoZXIgc2VydmljZVxuICAgKiB3aGljaCB3aWxsIHZlcmlmeSBpdCBieSBtYWtpbmcgYSByZXF1ZXN0IHRvIGAvdjAvb3JnLzxvcmdfaWQ+L2lkZW50aXR5L3ZlcmlmeWAuXG4gICAqL1xuICBjcmVhdGVQcm9vZk9pZGM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJJZGVudGl0eVByb29mXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFZlcmlmeSBpZGVudGl0eSBwcm9vZlxuICAgKiBAZGVzY3JpcHRpb24gVmVyaWZ5IGlkZW50aXR5IHByb29mXG4gICAqXG4gICAqIEFsbG93cyBhIHRoaXJkLXBhcnR5IHRvIHZhbGlkYXRlIHByb29mIG9mIGF1dGhlbnRpY2F0aW9uLlxuICAgKlxuICAgKiBXaGVuIGEgdGhpcmQtcGFydHkgaXMgcHJvdmlkZWQgYW4gW0lkZW50aXR5UHJvb2ZdIG9iamVjdCwgdGhleSBtdXN0IGNoZWNrIGl0c1xuICAgKiB2ZXJhY2l0eSBieSBjYWxsaW5nIHRoaXMgZW5kcG9pbnRcbiAgICovXG4gIHZlcmlmeVByb29mOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkZW50aXR5UHJvb2ZcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBLZXktSW1wb3J0IEtleVxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIEtleS1JbXBvcnQgS2V5XG4gICAqXG4gICAqIEdlbmVyYXRlIGFuIGVwaGVtZXJhbCBrZXkgdGhhdCBhIGNsaWVudCBjYW4gdXNlIGZvciBrZXktaW1wb3J0IGVuY3J5cHRpb24uXG4gICAqL1xuICBjcmVhdGVLZXlJbXBvcnRLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJDcmVhdGVLZXlJbXBvcnRLZXlSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbXBvcnQgS2V5XG4gICAqIEBkZXNjcmlwdGlvbiBJbXBvcnQgS2V5XG4gICAqXG4gICAqIFNlY3VyZWx5IGltcG9ydHMgYW4gZXhpc3Rpbmcga2V5IHVzaW5nIGEgcHJldmlvdXNseSBnZW5lcmF0ZWQga2V5LWltcG9ydCBrZXkuXG4gICAqL1xuICBpbXBvcnRLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSW1wb3J0S2V5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNyZWF0ZUtleVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEludml0ZSBVc2VyXG4gICAqIEBkZXNjcmlwdGlvbiBJbnZpdGUgVXNlclxuICAgKlxuICAgKiBDcmVhdGVzIGEgbmV3IHVzZXIgaW4gYW4gZXhpc3Rpbmcgb3JnIGFuZCBzZW5kcyB0aGF0IHVzZXIgYW4gaW52aXRlIGVtYWlsLlxuICAgKi9cbiAgaW52aXRlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkludml0ZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBLZXlzXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IEtleXNcbiAgICpcbiAgICogR2V0cyB0aGUgbGlzdCBvZiBvd25lZCBrZXlzIGluIGEgZ2l2ZW4gb3JnLlxuICAgKi9cbiAgbGlzdEtleXNJbk9yZzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkxhc3RFdmFsS2V5XCJdIHwgbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgYnkga2V5IHR5cGVcbiAgICAgICAgICogQGV4YW1wbGUgU2VjcEV0aEFkZHJcbiAgICAgICAgICovXG4gICAgICAgIGtleV90eXBlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlUeXBlXCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0S2V5c1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBLZXlcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBLZXlcbiAgICpcbiAgICogQ3JlYXRlcyBvbmUgb3IgbW9yZSBuZXcga2V5cyBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuXG4gICAqL1xuICBjcmVhdGVLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlS2V5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNyZWF0ZUtleVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBLZXlcbiAgICogQGRlc2NyaXB0aW9uIEdldCBLZXlcbiAgICpcbiAgICogUmV0dXJucyB0aGUgcHJvcGVydGllcyBvZiBhIGtleS5cbiAgICovXG4gIGdldEtleUluT3JnOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIEtleVxuICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIktleUluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVsZXRlIEtleVxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIEtleVxuICAgKlxuICAgKiBEZWxldGVzIGEga2V5IHNwZWNpZmllZCBieSBpdHMgSUQuXG4gICAqIE9ubHkgdGhlIGtleSBvd25lciBhbmQgb3JnIG93bmVycyBhcmUgYWxsb3dlZCB0byBkZWxldGUga2V5cy5cbiAgICovXG4gIGRlbGV0ZUtleToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBLZXlcbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVXBkYXRlIEtleVxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIEtleVxuICAgKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBhIGtleS4gIFRoZSB1c2VyIG11c3QgYmUgdGhlIG93bmVyIG9mIHRoZSBrZXkgb3Igb3JnYW5pemF0aW9uIHRvIHBlcmZvcm0gdGhpcyBhY3Rpb24uXG4gICAqL1xuICB1cGRhdGVLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIGRlc2lyZWQgS2V5XG4gICAgICAgICAqIEBleGFtcGxlIEtleSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVwZGF0ZUtleVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJLZXlJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgUGVuZGluZyBNRkEgUmVxdWVzdHNcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgUGVuZGluZyBNRkEgUmVxdWVzdHNcbiAgICpcbiAgICogUmV0cmlldmVzIGFuZCByZXR1cm5zIGFsbCBwZW5kaW5nIE1GQSByZXF1ZXN0cyB0aGF0IGFyZSBhY2Nlc3NpYmxlIHRvIHRoZSBjdXJyZW50IHVzZXIsXG4gICAqIGkuZS4sIHRob3NlIGluIHdoaWNoIHRoZSBjdXJyZW50IHVzZXIgaXMgbGlzdGVkIGFzIGFuIGFwcHJvdmVyXG4gICAqL1xuICBtZmFMaXN0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTGlzdE1mYVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBQZW5kaW5nIE1GQSBSZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgUGVuZGluZyBNRkEgUmVxdWVzdFxuICAgKlxuICAgKiBSZXRyaWV2ZXMgYW5kIHJldHVybnMgYSBwZW5kaW5nIE1GQSByZXF1ZXN0IGJ5IGl0cyBpZC5cbiAgICovXG4gIG1mYUdldDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE1mYVJlcXVlc3RcbiAgICAgICAgICogQGV4YW1wbGUgTWZhUmVxdWVzdCMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG1mYV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTWZhUmVxdWVzdEluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQXBwcm92ZSBNRkEgUmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gQXBwcm92ZSBNRkEgUmVxdWVzdFxuICAgKlxuICAgKiBBcHByb3ZlIHJlcXVlc3QgYWZ0ZXIgbG9nZ2luZyBpbiB3aXRoIEN1YmVTaWduZXIuIEFkZHMgdGhlIGN1cnJlbnRseS1sb2dnZWQgdXNlciBhcyBhbiBhcHByb3ZlclxuICAgKiBvZiBhIHBlbmRpbmcgTUZBIHJlcXVlc3Qgb2YgdGhlIFtTdGF0dXM6OlJlcXVpcmVkQXBwcm92ZXJzXSBraW5kLiBJZiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mXG4gICAqIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7IHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0b1xuICAgKiByZXN1bWUgdGhlIG9yaWdpbmFsIEhUVFAgcmVxdWVzdC5cbiAgICovXG4gIG1mYUFwcHJvdmVDczoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE1mYVJlcXVlc3RcbiAgICAgICAgICogQGV4YW1wbGUgTWZhUmVxdWVzdCMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG1mYV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTWZhUmVxdWVzdEluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW5pdGlhdGUgQXBwcm92aW5nIGFuIE1GQSBSZXF1ZXN0IHdpdGggRklET1xuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgQXBwcm92aW5nIGFuIE1GQSBSZXF1ZXN0IHdpdGggRklET1xuICAgKlxuICAgKiBJbml0aWF0ZXMgdGhlIGFwcHJvdmFsIHByb2Nlc3Mgb2YgYW4gTUZBIFJlcXVlc3QgdXNpbmcgRklETy5cbiAgICovXG4gIG1mYUFwcHJvdmVGaWRvOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgTWZhUmVxdWVzdFxuICAgICAgICAgKiBAZXhhbXBsZSBNZmFSZXF1ZXN0IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgbWZhX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJGaWRvQXNzZXJ0Q2hhbGxlbmdlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEZpbmFsaXplIGEgRklETyBNRkEgQXBwcm92YWxcbiAgICogQGRlc2NyaXB0aW9uIEZpbmFsaXplIGEgRklETyBNRkEgQXBwcm92YWxcbiAgICpcbiAgICogQWRkcyBhbiBhcHByb3ZlciB0byBhIHBlbmRpbmcgTUZBIHJlcXVlc3QuXG4gICAqXG4gICAqIElmIHRoZSByZXF1aXJlZCBudW1iZXIgb2YgYXBwcm92ZXJzIGlzIHJlYWNoZWQsIHRoZSBNRkEgcmVxdWVzdCBpcyBhcHByb3ZlZDtcbiAgICogdGhlIGNvbmZpcm1hdGlvbiByZWNlaXB0IGNhbiBiZSB1c2VkIHRvIHJlc3VtZSB0aGUgb3JpZ2luYWwgSFRUUCByZXF1ZXN0LlxuICAgKi9cbiAgbWZhQXBwcm92ZUZpZG9Db21wbGV0ZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE1mYVJlcXVlc3RcbiAgICAgICAgICogQGV4YW1wbGUgTWZhUmVxdWVzdCMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG1mYV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZpZG9Bc3NlcnRBbnN3ZXJcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJNZmFSZXF1ZXN0SW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBBcHByb3ZlIGEgVE9UUCBNRkEgUmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gQXBwcm92ZSBhIFRPVFAgTUZBIFJlcXVlc3RcbiAgICpcbiAgICogQWRkcyB0aGUgY3VycmVudCB1c2VyIGFzIGFwcHJvdmVyIHRvIGEgcGVuZGluZyBNRkEgcmVxdWVzdCBieSBwcm92aWRpbmcgVE9UUCBjb2RlLlxuICAgKlxuICAgKiBJZiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7XG4gICAqIHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0byByZXN1bWUgdGhlIG9yaWdpbmFsIEhUVFAgcmVxdWVzdC5cbiAgICovXG4gIG1mYUFwcHJvdmVUb3RwOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgTWZhUmVxdWVzdFxuICAgICAgICAgKiBAZXhhbXBsZSBNZmFSZXF1ZXN0IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgbWZhX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG90cEFwcHJvdmVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTWZhUmVxdWVzdEluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTG9naW4gd2l0aCBPSURDXG4gICAqIEBkZXNjcmlwdGlvbiBMb2dpbiB3aXRoIE9JRENcbiAgICpcbiAgICogRXhjaGFuZ2UgYW4gT0lEQyBJRCB0b2tlbiAocGFzc2VkIHZpYSB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlcikgZm9yIGEgc2lnbmVyIHNlc3Npb25cbiAgICovXG4gIG9pZGNBdXRoOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9pZGNMb2dpblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJOZXdTZXNzaW9uUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgUm9sZXNcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgUm9sZXNcbiAgICpcbiAgICogUmV0cmlldmVzIGFsbCByb2xlcyBpbiBhbiBvcmdhbml6YXRpb24gdGhhdCB0aGUgY3VycmVudCB1c2VyIGlzIGFsbG93ZWQgdG8gYWNjZXNzLlxuICAgKi9cbiAgbGlzdFJvbGVzOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgICAqIHRoZSBleGFjdCB2YWx1ZSBwcmV2aW91c2x5IHJldHVybmVkIGFzICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHNhbWUgZW5kcG9pbnQuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc3RhcnRcIj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTGFzdEV2YWxLZXlcIl0gfCBudWxsO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIERvbid0IGluY2x1ZGUga2V5cyBhbmQgdXNlcnMgZm9yIGVhY2ggcm9sZSAqL1xuICAgICAgICBzdW1tYXJpemU/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0Um9sZXNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgUm9sZVxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFJvbGVcbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyByb2xlIGluIGFuIG9yZ2FuaXphdGlvbi4gVW5sZXNzIHRoZSBsb2dnZWQtaW4gdXNlclxuICAgKiBpcyB0aGUgb3duZXIsIHRoZXkgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgcm9sZS5cbiAgICovXG4gIGNyZWF0ZVJvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCByZXF1ZXN0IGJvZHkgdG8gc2V0IHRoZSByb2xlIG5hbWUgKi9cbiAgICByZXF1ZXN0Qm9keT86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlUm9sZVJlcXVlc3RcIl0gfCBudWxsO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQ3JlYXRlUm9sZVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBSb2xlXG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgUm9sZVxuICAgKlxuICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgYSByb2xlIGluIGFuIG9yZ2FuaXphdGlvblxuICAgKi9cbiAgZ2V0Um9sZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlJvbGVJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIERlbGV0ZSBSb2xlXG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgUm9sZVxuICAgKlxuICAgKiBEZWxldGVzIGEgcm9sZSBpbiBhbiBvcmdhbml6YXRpb24uXG4gICAqIE9ubHkgb3JnYW5pemF0aW9uIG93bmVycyBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICovXG4gIGRlbGV0ZVJvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVXBkYXRlIFJvbGVcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBSb2xlXG4gICAqXG4gICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgYSByb2xlLlxuICAgKiBUaGUgdXNlciBtdXN0IGJlIGluIHRoZSByb2xlIG9yIGFuIG93bmVyIG9mIHRoZSBvcmdhbml6YXRpb24uXG4gICAqL1xuICB1cGRhdGVSb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVwZGF0ZVJvbGVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEFkZCBLZXlzXG4gICAqIEBkZXNjcmlwdGlvbiBBZGQgS2V5c1xuICAgKlxuICAgKiBBZGRzIGEgbGlzdCBvZiBleGlzdGluZyBrZXlzIHRvIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAqL1xuICBhZGRLZXlzVG9Sb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFkZEtleXNUb1JvbGVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBBZGQgVXNlclxuICAgKiBAZGVzY3JpcHRpb24gQWRkIFVzZXJcbiAgICpcbiAgICogQWRkcyBhbiBleGlzdGluZyB1c2VyIHRvIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgb3Igb3duZXJzIGNhbiBhZGQgdXNlcnMgdG8gYSByb2xlLlxuICAgKi9cbiAgYWRkVXNlclRvUm9sZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBVc2VyXG4gICAgICAgICAqIEBleGFtcGxlIFVzZXIjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgUm9sZSBLZXlzXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IFJvbGUgS2V5c1xuICAgKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGFsbCBrZXlzIGluIGEgcm9sZS5cbiAgICovXG4gIGxpc3RSb2xlS2V5czoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkxhc3RFdmFsS2V5XCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0Um9sZUtleXNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZW1vdmUgS2V5XG4gICAqIEBkZXNjcmlwdGlvbiBSZW1vdmUgS2V5XG4gICAqXG4gICAqIFJlbW92ZXMgYSBnaXZlbiBrZXkgZnJvbSBhIHJvbGVcbiAgICovXG4gIHJlbW92ZUtleUZyb21Sb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIEtleVxuICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBhIHNpbmdsZSBwYWdlIG9mIFRva2VucyAoRGVwcmVjYXRlZClcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgYSBzaW5nbGUgcGFnZSBvZiBUb2tlbnMgKERlcHJlY2F0ZWQpXG4gICAqXG4gICAqICoqRGVwcmVjYXRlZCoqOiBVc2UgYEdFVCAvb3JnL3tvcmdfaWR9L3Nlc3Npb24/cm9sZT1gXG4gICAqXG4gICAqIFJldHVybnMgYWxsIGFjY2VzcyB0b2tlbnMgZm9yIGEgZ2l2ZW4gcm9sZS5cbiAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIGNyZWF0ZSBhIHRva2VuIGZvciBpdC5cbiAgICovXG4gIGxpc3RSb2xlVG9rZW5zOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTGlzdFRva2Vuc1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBUb2tlblxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFRva2VuXG4gICAqXG4gICAqIENyZWF0ZXMgYSBuZXcgYWNjZXNzIHRva2VuIGZvciBhIGdpdmVuIHJvbGUgKHRvIGJlIHVzZWQgYXMgXCJBUEkgS2V5XCIgZm9yIGFsbCBzaWduaW5nIGFjdGlvbnMpLlxuICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG93bmVycyBjYW4gY3JlYXRlIGEgdG9rZW4gZm9yIGl0LlxuICAgKi9cbiAgY3JlYXRlUm9sZVRva2VuOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZVRva2VuUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk5ld1Nlc3Npb25SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZXZva2UgQWxsIFRva2VucyAoRGVwcmVjYXRlZClcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQGRlc2NyaXB0aW9uIFJldm9rZSBBbGwgVG9rZW5zIChEZXByZWNhdGVkKVxuICAgKlxuICAgKiAqKkRlcHJlY2F0ZWQqKjogVXNlIGBERUxFVEUgL29yZy97b3JnX2lkfS9zZXNzaW9uP3JvbGU9YCBpbnN0ZWFkXG4gICAqXG4gICAqIFJldm9rZXMgYWxsIGFjY2VzcyB0b2tlbnMgYXNzb2NpYXRlZCB3aXRoIGEgcm9sZS5cbiAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uXG4gICAqL1xuICByZXZva2VBbGxSb2xlVG9rZW5zOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUmV2b2tlVG9rZW5zUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUmV2b2tlIFRva2VuIChEZXByZWNhdGVkKVxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAZGVzY3JpcHRpb24gUmV2b2tlIFRva2VuIChEZXByZWNhdGVkKVxuICAgKlxuICAgKiAqKkRlcHJlY2F0ZWQqKjogVXNlIGBERUxFVEUgL29yZy97b3JnX2lkfS9zZXNzaW9uL3tzZXNzaW9uX2lkfWBcbiAgICpcbiAgICogUmV2b2tlcyBhbiBhY2Nlc3MgdG9rZW4gYXNzb2NpYXRlZCB3aXRoIGEgcm9sZS5cbiAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uXG4gICAqL1xuICByZXZva2VSb2xlVG9rZW46IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBzZXNzaW9uIHRvIHJldm9rZVxuICAgICAgICAgKiBAZXhhbXBsZSA3N2FhZDIxMDBjMzYxZjQ5NzYzNWRkMDA1YzRkMTU3ODFlMmU1ZGY0YjlmNDVkOGU3NGYzNzQyNWNiYzMwYjllXG4gICAgICAgICAqL1xuICAgICAgICBzZXNzaW9uX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJSZXZva2VUb2tlblJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgUm9sZSBVc2Vycy5cbiAgICogQGRlc2NyaXB0aW9uIExpc3QgUm9sZSBVc2Vycy5cbiAgICpcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBhbGwgdXNlcnMgd2hvIGhhdmUgYWNjZXNzIHRvIGEgcm9sZS5cbiAgICovXG4gIGxpc3RSb2xlVXNlcnM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJMYXN0RXZhbEtleVwiXSB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkTGlzdFJvbGVVc2Vyc1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3Qgc2Vzc2lvbnNcbiAgICogQGRlc2NyaXB0aW9uIExpc3Qgc2Vzc2lvbnNcbiAgICpcbiAgICogSWYgbm8gcXVlcnkgcGFyYW1ldGVycyBhcmUgcHJvdmlkZWQsIGluZm9ybWF0aW9uIGZvciB0aGUgY3VycmVudCBzZXNzaW9uIGlzIHJldHVybmVkXG4gICAqL1xuICBsaXN0U2Vzc2lvbnM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJMYXN0RXZhbEtleVwiXSB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgcHJvdmlkZWQsIHRoZSBuYW1lIG9yIElEIG9mIGEgcm9sZSB0byBvcGVyYXRlIG9uXG4gICAgICAgICAqIEBleGFtcGxlIG15LXJvbGVcbiAgICAgICAgICovXG4gICAgICAgIHJvbGU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBhZ2luYXRlZFNlc3Npb25zUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUmV2b2tlIGV4aXN0aW5nIHNlc3Npb24ocylcbiAgICogQGRlc2NyaXB0aW9uIFJldm9rZSBleGlzdGluZyBzZXNzaW9uKHMpXG4gICAqXG4gICAqIEltbWVkaWF0ZWx5IHJldm9rZXMgZXhpc3Rpbmcgc2Vzc2lvbnMsIHByZXZlbnRpbmcgdGhlbSBmcm9tIGJlaW5nIHVzZWQgb3IgcmVmcmVzaGVkLlxuICAgKiBJZiBubyBxdWVyeSBwYXJhbXMgYXJlIHByb3ZpZGVkLCB0aGUgY3VycmVudCBzZXNzaW9uIGlzIHJldm9rZWQuXG4gICAqL1xuICByZXZva2VTZXNzaW9uczoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHByb3ZpZGVkLCB0aGUgbmFtZSBvciBJRCBvZiBhIHJvbGUgdG8gb3BlcmF0ZSBvblxuICAgICAgICAgKiBAZXhhbXBsZSBteS1yb2xlXG4gICAgICAgICAqL1xuICAgICAgICByb2xlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTZXNzaW9uc1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBzZXNzaW9uIGluZm9ybWF0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgc2Vzc2lvbiBpbmZvcm1hdGlvblxuICAgKi9cbiAgZ2V0U2Vzc2lvbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHNlc3Npb24gdG8gZ2V0XG4gICAgICAgICAqIEBleGFtcGxlIDc3YWFkMjEwMGMzNjFmNDk3NjM1ZGQwMDVjNGQxNTc4MWUyZTVkZjRiOWY0NWQ4ZTc0ZjM3NDI1Y2JjMzBiOWVcbiAgICAgICAgICovXG4gICAgICAgIHNlc3Npb25faWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNlc3Npb25JbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJldm9rZSBhIHNlc3Npb25cbiAgICogQGRlc2NyaXB0aW9uIFJldm9rZSBhIHNlc3Npb25cbiAgICpcbiAgICogSW1tZWRpYXRlbHkgcmV2b2tlcyBhbiBleGlzdGluZyBzZXNzaW9uLCBwcmV2ZW50aW5nIGl0IGZyb20gYmVpbmcgdXNlZCBvciByZWZyZXNoZWRcbiAgICovXG4gIHJldm9rZVNlc3Npb246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBzZXNzaW9uIHRvIHJldm9rZVxuICAgICAgICAgKiBAZXhhbXBsZSA3N2FhZDIxMDBjMzYxZjQ5NzYzNWRkMDA1YzRkMTU3ODFlMmU1ZGY0YjlmNDVkOGU3NGYzNzQyNWNiYzMwYjllXG4gICAgICAgICAqL1xuICAgICAgICBzZXNzaW9uX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTZXNzaW9uSW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIFNvbGFuYSBNZXNzYWdlXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIFNvbGFuYSBNZXNzYWdlXG4gICAqXG4gICAqIFNpZ25zIGEgU29sYW5hIG1lc3NhZ2Ugd2l0aCBhIGdpdmVuIGtleS5cbiAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAqL1xuICBzb2xhbmFTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBiYXNlNTgtZW5jb2RlZCBwdWJsaWMga2V5XG4gICAgICAgICAqIEBleGFtcGxlIDg2WlJQc3pCcDVFb1BqN3dSM2JIbjd3bkFaNWlZZnBhc1JjN0RLRlBUVWFaXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTb2xhbmFTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNvbGFuYVNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IFRva2VuLUFjY2Vzc2libGUgS2V5c1xuICAgKiBAZGVzY3JpcHRpb24gR2V0IFRva2VuLUFjY2Vzc2libGUgS2V5c1xuICAgKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGtleXMgdGhhdCB0aGUgcm9sZSB0b2tlbiBjYW4gYWNjZXNzLlxuICAgKi9cbiAgbGlzdFRva2VuS2V5czoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIktleUluZm9zXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFVzZXIgSW5mb1xuICAgKiBAZGVzY3JpcHRpb24gVXNlciBJbmZvXG4gICAqXG4gICAqIFJldHJpZXZlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCB1c2VyLlxuICAgKi9cbiAgYWJvdXRNZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlVzZXJJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYXRlIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgKlxuICAgKiBHZW5lcmF0ZXMgYSBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIG93bmVyc2hpcCBvZiBhIGtleVxuICAgKi9cbiAgdXNlclJlZ2lzdGVyRmlkb0luaXQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRmlkb0NyZWF0ZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJGaWRvQ3JlYXRlQ2hhbGxlbmdlUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEZpbmFsaXplIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgKlxuICAgKiBBY2NlcHRzIHRoZSByZXNwb25zZSB0byB0aGUgY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCB0byB0aGlzIGVuZHBvaW50LlxuICAgKi9cbiAgdXNlclJlZ2lzdGVyRmlkb0NvbXBsZXRlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZpZG9DcmVhdGVDaGFsbGVuZ2VBbnN3ZXJcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW5pdGlhbGl6ZSBUT1RQIFJlc2V0XG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplIFRPVFAgUmVzZXRcbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyBUT1RQIGNoYWxsZW5nZSB0aGF0IG11c3QgYmUgYW5zd2VyZWQgdG8gcHJvdmUgdGhhdCB0aGUgbmV3IFRPVFBcbiAgICogd2FzIHN1Y2Nlc3NmdWxseSBpbXBvcnRlZCBpbnRvIGFuIGF1dGhlbnRpY2F0b3IgYXBwLlxuICAgKlxuICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBhbGxvd2VkIGlmIEVJVEhFUlxuICAgKiAtIHRoZSB1c2VyIGFjY291bnQgaXMgbm90IHlldCBpbml0aWFsaXplZCBhbmQgbm8gVE9UUCBpcyBhbHJlYWR5IHNldCwgT1JcbiAgICogLSB0aGUgdXNlciBoYXMgbm90IGNvbmZpZ3VyZWQgYW55IGF1dGggZmFjdG9ycztcbiAgICogb3RoZXJ3aXNlLCBNRkEgaXMgcmVxdWlyZWQuXG4gICAqL1xuICB1c2VyUmVzZXRUb3RwSW5pdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbXB0eVwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlRvdHBJbmZvXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgcmVzZXR0aW5nIFRPVFBcbiAgICpcbiAgICogQ2hlY2tzIGlmIHRoZSByZXNwb25zZSBjb250YWlucyB0aGUgY29ycmVjdCBUT1RQIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGVcbiAgICogY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCBtZXRob2Qgb2YgdGhpcyBlbmRwb2ludC5cbiAgICovXG4gIHVzZXJSZXNldFRvdHBDb21wbGV0ZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb3RwQ2hhbGxlbmdlQW5zd2VyXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFZlcmlmeSBUT1RQXG4gICAqIEBkZXNjcmlwdGlvbiBWZXJpZnkgVE9UUFxuICAgKlxuICAgKiBDaGVja3MgaWYgYSBnaXZlbiBjb2RlIG1hdGNoZXMgdGhlIGN1cnJlbnQgVE9UUCBjb2RlIGZvciB0aGUgY3VycmVudCB1c2VyLlxuICAgKiBFcnJvcnMgd2l0aCA0MDMgaWYgdGhlIGN1cnJlbnQgdXNlciBoYXMgbm90IHNldCB1cCBUT1RQIG9yIHRoZSBjb2RlIGZhaWxzIHZlcmlmaWNhdGlvbi5cbiAgICovXG4gIHVzZXJWZXJpZnlUb3RwOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRvdHBBcHByb3ZlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IHVzZXJzIGluIG9yZ2FuaXphdGlvblxuICAgKiBAZGVzY3JpcHRpb24gTGlzdCB1c2VycyBpbiBvcmdhbml6YXRpb25cbiAgICovXG4gIGxpc3RVc2Vyc0luT3JnOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiR2V0VXNlcnNJbk9yZ1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEFkZCBhIHRoaXJkLXBhcnR5IHVzZXIgdG8gdGhlIG9yZ1xuICAgKiBAZGVzY3JpcHRpb24gQWRkIGEgdGhpcmQtcGFydHkgdXNlciB0byB0aGUgb3JnXG4gICAqL1xuICBjcmVhdGVPaWRjVXNlcjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBZGRUaGlyZFBhcnR5VXNlclJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJBZGRUaGlyZFBhcnR5VXNlclJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJlbW92ZSBhIHRoaXJkLXBhcnR5IHVzZXIgZnJvbSB0aGUgb3JnXG4gICAqIEBkZXNjcmlwdGlvbiBSZW1vdmUgYSB0aGlyZC1wYXJ0eSB1c2VyIGZyb20gdGhlIG9yZ1xuICAgKi9cbiAgZGVsZXRlT2lkY1VzZXI6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT0lEQ0lkZW50aXR5XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYXRlIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgKlxuICAgKiBHZW5lcmF0ZXMgYSBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIG93bmVyc2hpcCBvZiBhIGtleVxuICAgKi9cbiAgcmVnaXN0ZXJGaWRvSW5pdExlZ2FjeToge1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZpZG9DcmVhdGVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRmlkb0NyZWF0ZUNoYWxsZW5nZVJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICpcbiAgICogQWNjZXB0cyB0aGUgcmVzcG9uc2UgdG8gdGhlIGNoYWxsZW5nZSBnZW5lcmF0ZWQgYnkgdGhlIFBPU1QgdG8gdGhpcyBlbmRwb2ludC5cbiAgICovXG4gIHJlZ2lzdGVyRmlkb0NvbXBsZXRlTGVnYWN5OiB7XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRmlkb0NyZWF0ZUNoYWxsZW5nZUFuc3dlclwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbml0aWFsaXplIFRPVFAgUmVzZXRcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemUgVE9UUCBSZXNldFxuICAgKlxuICAgKiBDcmVhdGVzIGEgbmV3IFRPVFAgY2hhbGxlbmdlIHRoYXQgbXVzdCBiZSBhbnN3ZXJlZCB0byBwcm92ZSB0aGF0IHRoZSBuZXcgVE9UUFxuICAgKiB3YXMgc3VjY2Vzc2Z1bGx5IGltcG9ydGVkIGludG8gYW4gYXV0aGVudGljYXRvciBhcHAuXG4gICAqXG4gICAqIFRoaXMgb3BlcmF0aW9uIGlzIGFsbG93ZWQgaWYgRUlUSEVSXG4gICAqIC0gdGhlIHVzZXIgYWNjb3VudCBpcyBub3QgeWV0IGluaXRpYWxpemVkIGFuZCBubyBUT1RQIGlzIGFscmVhZHkgc2V0LCBPUlxuICAgKiAtIHRoZSB1c2VyIGhhcyBub3QgY29uZmlndXJlZCBhbnkgYXV0aCBmYWN0b3JzO1xuICAgKiBvdGhlcndpc2UsIE1GQSBpcyByZXF1aXJlZC5cbiAgICovXG4gIHJlc2V0VG90cEluaXRMZWdhY3k6IHtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbXB0eVwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlRvdHBJbmZvXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgcmVzZXR0aW5nIFRPVFBcbiAgICpcbiAgICogQ2hlY2tzIGlmIHRoZSByZXNwb25zZSBjb250YWlucyB0aGUgY29ycmVjdCBUT1RQIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGVcbiAgICogY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCBtZXRob2Qgb2YgdGhpcyBlbmRwb2ludC5cbiAgICovXG4gIHJlc2V0VG90cENvbXBsZXRlTGVnYWN5OiB7XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG90cENoYWxsZW5nZUFuc3dlclwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBWZXJpZnkgVE9UUFxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAZGVzY3JpcHRpb24gVmVyaWZ5IFRPVFBcbiAgICpcbiAgICogQ2hlY2tzIGlmIGEgZ2l2ZW4gY29kZSBtYXRjaGVzIHRoZSBjdXJyZW50IFRPVFAgY29kZSBmb3IgdGhlIGN1cnJlbnQgdXNlci5cbiAgICogRXJyb3JzIHdpdGggNDAzIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIG5vdCBzZXQgdXAgVE9UUCBvciB0aGUgY29kZSBmYWlscyB2ZXJpZmljYXRpb24uXG4gICAqL1xuICB2ZXJpZnlUb3RwTGVnYWN5OiB7XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG90cEFwcHJvdmVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gUmF3IEJsb2JcbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gUmF3IEJsb2JcbiAgICpcbiAgICogU2lnbnMgYW4gYXJiaXRyYXJ5IGJsb2Igd2l0aCBhIGdpdmVuIGtleS5cbiAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAqXG4gICAqIC0gRUNEU0Egc2lnbmF0dXJlcyBhcmUgc2VyaWFsaXplZCBhcyBiaWctZW5kaWFuIHIgYW5kIHMgcGx1cyByZWNvdmVyeS1pZFxuICAgKiBieXRlIHYsIHdoaWNoIGNhbiBpbiBnZW5lcmFsIHRha2UgYW55IG9mIHRoZSB2YWx1ZXMgMCwgMSwgMiwgb3IgMy5cbiAgICpcbiAgICogLSBFZERTQSBzaWduYXR1cmVzIGFyZSBzZXJpYWxpemVkIGluIHRoZSBzdGFuZGFyZCBmb3JtYXQuXG4gICAqXG4gICAqIC0gQkxTIHNpZ25hdHVyZXMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdGhlIGJsb2Itc2lnbiBlbmRwb2ludC5cbiAgICovXG4gIGJsb2JTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIEtleVxuICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCbG9iU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJCbG9iU2lnblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZWNvcmQgaGVhcnRiZWF0XG4gICAqIEBkZXNjcmlwdGlvbiBSZWNvcmQgaGVhcnRiZWF0XG4gICAqXG4gICAqIFRoaXMgZW5kcG9pbnQgaXMgY2FsbGVkIGJ5IHRoZSBjdWJlM3NpZ25lciBwcm94eSB0byByZWNvcmQgdmFyaW91cyBtZXRyaWNzIHRvIENsb3VkV2F0Y2guXG4gICAqL1xuICBjdWJlM3NpZ25lckhlYXJ0YmVhdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJIZWFydGJlYXRSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gRVZNIFRyYW5zYWN0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIEVWTSBUcmFuc2FjdGlvblxuICAgKlxuICAgKiBTaWducyBhbiBFdGhlcmV1bSAoYW5kIG90aGVyIEVWTSkgdHJhbnNhY3Rpb24gd2l0aCBhIGdpdmVuIFNlY3AyNTZrMSBrZXkuXG4gICAqIFJldHVybnMgYW4gUkxQLWVuY29kZWQgdHJhbnNhY3Rpb24gd2l0aCBFSVAtMTU1IHNpZ25hdHVyZS5cbiAgICpcbiAgICogVGhlIGtleSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZSBhbmQgb3JnYW5pemF0aW9uIG9uIHdob3NlIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAqL1xuICBldGgxU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBldGhlcmV1bSBhZGRyZXNzIG9mIHRoZSBzZWNwIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSAweDQ5MDExYWRiQ0MzYkM5YzAzMDdCQjA3RjM3RGRhMWExYTljNjlkMkVcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkV0aDFTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkV0aDFTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gVmFsaWRhdG9yIFJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gVmFsaWRhdG9yIFJlcXVlc3RcbiAgICpcbiAgICogU2lnbnMgYW4gZXRoMiB2YWxpZGF0b3IgcmVxdWVzdCB3aXRoIGEgZ2l2ZW4gQkxTIGtleS5cbiAgICpcbiAgICogVGhlIGtleSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZSBhbmQgb3JnYW5pemF0aW9uIG9uIHdob3NlIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAqL1xuICBldGgyU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCB2YWxpZGF0b3IgKEJMUykgcHVibGljIGtleSB3aXRoIDB4IHByZWZpeFxuICAgICAgICAgKiBAZXhhbXBsZSAweDk3MDBmYmI4YzkwNjk0MjQ0MmMyYTViM2FkNzQ5OGYyN2FlZGRhMjUzNzg2YTZmYmFhOGZlZjQ3ZmI3YWYyMzRlNTBjZjJjY2U4MTVhNTUzMDg3OTkyYWU1NjVkNDhkYVxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXRoMlNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRXRoMlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBTdGFrZSBEZXBvc2l0XG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIFN0YWtlIERlcG9zaXRcbiAgICpcbiAgICogU2lnbnMgYSBkZXBvc2l0IHRyYW5zYWN0aW9uIHdpdGggYSBgdmFsaWRhdG9yX2tleWAuIElmIGB2YWxpZGF0b3Jfa2V5YCBpcyBzZXQgdG8gYSBwcmVnZW5lcmF0ZWQga2V5LCB3ZSB1c2UgdGhlXG4gICAqIHByb3ZpZGVkIHZhbGlkYXRvciBrZXkuIE90aGVyd2lzZSwgd2UgZ2VuZXJhdGUgYSBuZXcgQkxTIGtleS5cbiAgICpcbiAgICogV2hlbiB1c2luZyBhIHByZWdlbmVyYXRlZCBrZXksIHRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZVxuICAgKiBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgKi9cbiAgc3Rha2U6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3Rha2VSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU3Rha2VSZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBVbnN0YWtlIFJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gVW5zdGFrZSBSZXF1ZXN0XG4gICAqXG4gICAqIEhhbmRsZSB1bnN0YWtpbmcgcmVxdWVzdCwgcHJvZHVjaW5nIGEgc2lnbmVkIHZvbHVudGFyeSBleGl0IG1lc3NhZ2VcbiAgICogdGhhdCBjYW4gYmUgcG9zdGVkIGRpcmVjdGx5IHRvIHRoZSBCZWFjb24gY2hhaW4uXG4gICAqXG4gICAqIFRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZSBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgKi9cbiAgdW5zdGFrZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCB2YWxpZGF0b3IgKEJMUykgcHVibGljIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSAweGE5OWE3NmVkNzc5NmY3YmUyMmQ1YjdlODVkZWViN2M1Njc3ZTg4ZTUxMWUwYjMzNzYxOGY4YzRlYjYxMzQ5YjRiZjJkMTUzZjY0OWY3YjUzMzU5ZmU4Yjk0YTM4ZTQ0Y1xuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVW5zdGFrZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVbnN0YWtlUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJlZnJlc2ggU2lnbmVyIFNlc3Npb25cbiAgICogQGRlc2NyaXB0aW9uIFJlZnJlc2ggU2lnbmVyIFNlc3Npb25cbiAgICovXG4gIHNpZ25lclNlc3Npb25SZWZyZXNoOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBvcmdhbml6YXRpb24gb3duaW5nIHRoZSBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXV0aERhdGFcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJOZXdTZXNzaW9uUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuIl19
|