@cubist-labs/cubesigner-sdk 0.4.206 → 0.4.209

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.
@@ -1 +1 @@
1
- {"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/scopes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,GAAG,CAAC;AAEvC,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC,CAAC;AAEtF,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;CACxB;AAED,mDAAmD;AACnD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAqLnD,CAAC;AAyFF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAA4C,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;eApTsB,MAAM;gBAAU,SAAS,EAAE;;;eAA3B,MAAM;gBAAU,SAAS,EAAE;;;;;;CA+UtD,CAAC;AAE7B;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;eArVsB,MAAM;gBAAU,SAAS,EAAE;;;eAA3B,MAAM;gBAAU,SAAS,EAAE;;;eAA3B,MAAM;gBAAU,SAAS,EAAE;;CAyVjF,CAAC"}
1
+ {"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/scopes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,GAAG,CAAC;AAEvC,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC,CAAC;AAEtF,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;CACxB;AAED,mDAAmD;AACnD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAsLnD,CAAC;AAyFF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAA4C,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;eArTsB,MAAM;gBAAU,SAAS,EAAE;;;eAA3B,MAAM;gBAAU,SAAS,EAAE;;;;;;CAgVtD,CAAC;AAE7B;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;eAtVsB,MAAM;gBAAU,SAAS,EAAE;;;eAA3B,MAAM;gBAAU,SAAS,EAAE;;;eAA3B,MAAM;gBAAU,SAAS,EAAE;;CA0VjF,CAAC"}
@@ -100,6 +100,7 @@ exports.AllScopes =
100
100
  "manage:policy:secrets:get": "Allows access only to the policy secrets 'get' endpoint",
101
101
  "manage:policy:secrets:update:*": "Allows access to all policy secrets 'update' endpoints",
102
102
  "manage:policy:secrets:update:values": "Allows access only to the policy secrets 'update' endpoint, but restricting updates to the secrets keys and values",
103
+ "manage:policy:secrets:update:acl": "Allows access only to the policy secrets 'update' endpoint, but restricting updates to the secrets acl",
103
104
  "manage:policy:secrets:update:editPolicy": "Allows access only to the policy secrets 'update' endpoint, but restricting updates to the `edit_policy` property",
104
105
  "manage:contact:*": "Allows access to all contact endpoints",
105
106
  "manage:contact:create": "Allows access to the contact 'create' endpoint",
@@ -329,4 +330,4 @@ exports.userScopesDictionary = {
329
330
  sign: exports.allScopesDictionary.sign,
330
331
  mmi: exports.allScopesDictionary.mmi,
331
332
  };
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Njb3Blcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0NBQWdDOzs7QUFZaEMsbURBQW1EO0FBQ3RDLFFBQUEsU0FBUztBQUNwQixrQkFBa0I7QUFDbEI7SUFDQSxRQUFRLEVBQXdDLHVHQUF1RztJQUN2SixVQUFVLEVBQXNDLDBDQUEwQztJQUMxRixXQUFXLEVBQXFDLDJDQUEyQztJQUMzRixvQkFBb0IsRUFBNEIsd0pBQXdKO0lBQ3hNLFlBQVksRUFBb0Msb0NBQW9DO0lBQ3BGLGlCQUFpQixFQUErQiwrREFBK0Q7SUFDL0csa0JBQWtCLEVBQThCLGdFQUFnRTtJQUNoSCxpQkFBaUIsRUFBK0IsNkRBQTZEO0lBQzdHLG9CQUFvQixFQUE0QiwwREFBMEQ7SUFDMUcsc0JBQXNCLEVBQTBCLDREQUE0RDtJQUM1RyxzQkFBc0IsRUFBMEIsNERBQTREO0lBQzVHLHVCQUF1QixFQUF5Qiw2REFBNkQ7SUFDN0cseUJBQXlCLEVBQXVCLHFFQUFxRTtJQUNySCxvQkFBb0IsRUFBNEIsb0VBQW9FO0lBQ3BILHlCQUF5QixFQUF1QixtRUFBbUU7SUFDbkgseUJBQXlCLEVBQXVCLG1FQUFtRTtJQUNuSCxnQkFBZ0IsRUFBZ0Msd0NBQXdDO0lBQ3hGLHFCQUFxQixFQUEyQiw2Q0FBNkM7SUFDN0YsMEJBQTBCLEVBQXNCLHFEQUFxRDtJQUNyRyx3QkFBd0IsRUFBd0IsNENBQTRDO0lBQzVGLHdCQUF3QixFQUF3QiwwRUFBMEU7SUFDMUgsOEJBQThCLEVBQWtCLDREQUE0RDtJQUM1Ryw2QkFBNkIsRUFBbUIsNkRBQTZEO0lBQzdHLCtCQUErQixFQUFpQiwrREFBK0Q7SUFDL0csNEJBQTRCLEVBQW9CLDJFQUEyRTtJQUMzSCwyQkFBMkIsRUFBcUIsZ0VBQWdFO0lBQ2hILHVCQUF1QixFQUF5QixvRUFBb0U7SUFDcEgsWUFBWSxFQUFvQywyQ0FBMkM7SUFDM0YsYUFBYSxFQUFtQyw0REFBNEQ7SUFDNUcsaUJBQWlCLEVBQStCLHlFQUF5RTtJQUN6SCxpQkFBaUIsRUFBK0IsNkRBQTZEO0lBQzdHLGFBQWEsRUFBbUMsNENBQTRDO0lBQzVGLG9CQUFvQixFQUE0QixvREFBb0Q7SUFDcEcsaUJBQWlCLEVBQStCLGlEQUFpRDtJQUNqRyxtQkFBbUIsRUFBNkIsbURBQW1EO0lBQ25HLGFBQWEsRUFBbUMsNkNBQTZDO0lBQzdGLFVBQVUsRUFBc0MsMENBQTBDO0lBQzFGLGlCQUFpQixFQUErQixpREFBaUQ7SUFDakcsVUFBVSxFQUFzQywwQ0FBMEM7SUFDMUYsVUFBVSxFQUFzQyxrR0FBa0c7SUFDbEosaUJBQWlCLEVBQStCLG9EQUFvRDtJQUNwRyxjQUFjLEVBQWtDLHNEQUFzRDtJQUN0RyxjQUFjLEVBQWtDLDhFQUE4RTtJQUM5SCxxQkFBcUIsRUFBMkIsdUZBQXVGO0lBQ3ZJLGlCQUFpQixFQUErQiwwRUFBMEU7SUFDMUgsbUJBQW1CLEVBQTZCLGdHQUFnRztJQUNoSixvQkFBb0IsRUFBNEIsK0RBQStEO0lBQy9HLHVCQUF1QixFQUF5QiwwREFBMEQ7SUFDMUcsc0JBQXNCLEVBQTBCLHlEQUF5RDtJQUN6RyxzQkFBc0IsRUFBMEIseURBQXlEO0lBQ3pHLHVCQUF1QixFQUF5Qiw2Q0FBNkM7SUFDN0YsMEJBQTBCLEVBQXNCLHdEQUF3RDtJQUN4RywwQkFBMEIsRUFBc0Isd0RBQXdEO0lBQ3hHLDJCQUEyQixFQUFxQixrRUFBa0U7SUFDbEgseUJBQXlCLEVBQXVCLCtDQUErQztJQUMvRiw0QkFBNEIsRUFBb0Isc0RBQXNEO0lBQ3RHLDRCQUE0QixFQUFvQixzREFBc0Q7SUFDdEcscUJBQXFCLEVBQTJCLDJDQUEyQztJQUMzRix3QkFBd0IsRUFBd0Isc0RBQXNEO0lBQ3RHLGNBQWMsRUFBa0Msb0NBQW9DO0lBQ3BGLHFCQUFxQixFQUEyQiw2Q0FBNkM7SUFDN0YsbUJBQW1CLEVBQTZCLGlEQUFpRDtJQUNqRyxnQkFBZ0IsRUFBZ0MsOENBQThDO0lBQzlGLHNCQUFzQixFQUEwQixvREFBb0Q7SUFDcEcsaUJBQWlCLEVBQStCLCtDQUErQztJQUMvRiw0QkFBNEIsRUFBb0IsNkRBQTZEO0lBQzdHLG1CQUFtQixFQUE2Qiw0RUFBNEU7SUFDNUgsbUJBQW1CLEVBQTZCLGlEQUFpRDtJQUNqRyxxQkFBcUIsRUFBMkIsNkZBQTZGO0lBQzdJLHlCQUF5QixFQUF1QixvR0FBb0c7SUFDcEosMEJBQTBCLEVBQXNCLHFHQUFxRztJQUNySiwyQkFBMkIsRUFBcUIsc0dBQXNHO0lBQ3RKLDRCQUE0QixFQUFvQixvR0FBb0c7SUFDcEosOEJBQThCLEVBQWtCLHFHQUFxRztJQUNySixtQkFBbUIsRUFBNkIsaURBQWlEO0lBQ2pHLGlCQUFpQixFQUErQix1Q0FBdUM7SUFDdkYsc0JBQXNCLEVBQTBCLG9EQUFvRDtJQUNwRyxtQkFBbUIsRUFBNkIsaURBQWlEO0lBQ2pHLG9CQUFvQixFQUE0QixrREFBa0Q7SUFDbEcsc0JBQXNCLEVBQTBCLG9EQUFvRDtJQUNwRyx3QkFBd0IsRUFBd0IsZ0dBQWdHO0lBQ2hKLDBCQUEwQixFQUFzQiwrRkFBK0Y7SUFDL0ksNEJBQTRCLEVBQW9CLDBHQUEwRztJQUMxSiwyQkFBMkIsRUFBcUIsZ0dBQWdHO0lBQ2hKLGlDQUFpQyxFQUFlLDJHQUEyRztJQUMzSiwrQkFBK0IsRUFBaUIsd0dBQXdHO0lBQ3hKLDJCQUEyQixFQUFxQix1R0FBdUc7SUFDdkosc0JBQXNCLEVBQTBCLHFEQUFxRDtJQUNyRyxzQkFBc0IsRUFBMEIsNENBQTRDO0lBQzVGLDJCQUEyQixFQUFxQix5REFBeUQ7SUFDekcseUJBQXlCLEVBQXVCLCtDQUErQztJQUMvRiwyQkFBMkIsRUFBcUIseURBQXlEO0lBQ3pHLGdDQUFnQyxFQUFnQix3REFBd0Q7SUFDeEcscUNBQXFDLEVBQVcsb0hBQW9IO0lBQ3BLLHlDQUF5QyxFQUFPLG1IQUFtSDtJQUNuSyxrQkFBa0IsRUFBOEIsd0NBQXdDO0lBQ3hGLHVCQUF1QixFQUF5QixnREFBZ0Q7SUFDaEcsb0JBQW9CLEVBQTRCLDZDQUE2QztJQUM3RixxQkFBcUIsRUFBMkIsOENBQThDO0lBQzlGLHVCQUF1QixFQUF5QixnREFBZ0Q7SUFDaEcseUJBQXlCLEVBQXVCLHFEQUFxRDtJQUNyRyw0QkFBNEIsRUFBb0IsMkdBQTJHO0lBQzNKLGlDQUFpQyxFQUFlLGdIQUFnSDtJQUNoSyw2QkFBNkIsRUFBbUIsNEdBQTRHO0lBQzVKLGdDQUFnQyxFQUFnQiwrR0FBK0c7SUFDL0osa0NBQWtDLEVBQWMsa0hBQWtIO0lBQ2xLLHlCQUF5QixFQUF1QixpREFBaUQ7SUFDakcsK0JBQStCLEVBQWlCLGdFQUFnRTtJQUNoSCwrQkFBK0IsRUFBaUIsK0NBQStDO0lBQy9GLGVBQWUsRUFBaUMscUNBQXFDO0lBQ3JGLHNCQUFzQixFQUEwQiw4Q0FBOEM7SUFDOUYsb0JBQW9CLEVBQTRCLGtEQUFrRDtJQUNsRyxvQkFBb0IsRUFBNEIsa0RBQWtEO0lBQ2xHLG1CQUFtQixFQUE2QiwrQ0FBK0M7SUFDL0Ysc0JBQXNCLEVBQTBCLCtEQUErRDtJQUMvRywyQkFBMkIsRUFBcUIsZ0RBQWdEO0lBQ2hHLDBCQUEwQixFQUFzQiw4Q0FBOEM7SUFDOUYsdUJBQXVCLEVBQXlCLGlEQUFpRDtJQUNqRyxrQkFBa0IsRUFBOEIsZ0RBQWdEO0lBQ2hHLHNCQUFzQixFQUEwQixrREFBa0Q7SUFDbEcsNEJBQTRCLEVBQW9CLDBHQUEwRztJQUMxSiwyQkFBMkIsRUFBcUIseUdBQXlHO0lBQ3pKLCtCQUErQixFQUFpQiw4R0FBOEc7SUFDOUosMEJBQTBCLEVBQXNCLGtEQUFrRDtJQUNsRyw0QkFBNEIsRUFBb0Isc0RBQXNEO0lBQ3RHLCtCQUErQixFQUFpQix5REFBeUQ7SUFDekcsMkJBQTJCLEVBQXFCLG1EQUFtRDtJQUNuRyw2QkFBNkIsRUFBbUIsc0RBQXNEO0lBQ3RHLGdDQUFnQyxFQUFnQix5REFBeUQ7SUFDekcsNkJBQTZCLEVBQW1CLDhEQUE4RDtJQUM5RyxtQkFBbUIsRUFBNkIseUNBQXlDO0lBQ3pGLHdCQUF3QixFQUF3QixzREFBc0Q7SUFDdEcscUJBQXFCLEVBQTJCLG1EQUFtRDtJQUNuRyx3QkFBd0IsRUFBd0Isc0RBQXNEO0lBQ3RHLHNCQUFzQixFQUEwQixvREFBb0Q7SUFDcEcsY0FBYyxFQUFrQyxvQ0FBb0M7SUFDcEYsbUJBQW1CLEVBQTZCLDRDQUE0QztJQUM1RiwwQkFBMEIsRUFBc0IseUNBQXlDO0lBQ3pGLHFCQUFxQixFQUEyQiw2Q0FBNkM7SUFDN0Ysb0JBQW9CLEVBQTRCLDJFQUEyRTtJQUMzSCx1QkFBdUIsRUFBeUIsMEZBQTBGO0lBQzFJLHdCQUF3QixFQUF3QixpRkFBaUY7SUFDakksNkJBQTZCLEVBQW1CLG9GQUFvRjtJQUNwSSxzQkFBc0IsRUFBMEIsNEVBQTRFO0lBQzVILHFCQUFxQixFQUEyQiwwRUFBMEU7SUFDMUgsdUJBQXVCLEVBQXlCLGtFQUFrRTtJQUNsSCxnQkFBZ0IsRUFBZ0Msc0RBQXNEO0lBQ3RHLDBCQUEwQixFQUFzQixxREFBcUQ7SUFDckcsa0JBQWtCLEVBQThCLHdDQUF3QztJQUN4Rix5QkFBeUIsRUFBdUIsaURBQWlEO0lBQ2pHLG9CQUFvQixFQUE0QixrREFBa0Q7SUFDbEcscUJBQXFCLEVBQTJCLG1EQUFtRDtJQUNuRyx1QkFBdUIsRUFBeUIsMEdBQTBHO0lBQzFKLHVCQUF1QixFQUF5Qix3R0FBd0c7SUFDeEosdUJBQXVCLEVBQXlCLHNEQUFzRDtJQUN0RyxpQkFBaUIsRUFBK0IsdUNBQXVDO0lBQ3ZGLHFCQUFxQixFQUEyQixzREFBc0Q7SUFDdEcsdUJBQXVCLEVBQXlCLG1EQUFtRDtJQUNuRyxzQkFBc0IsRUFBMEIsdURBQXVEO0lBQ3ZHLDJCQUEyQixFQUFxQixpREFBaUQ7SUFDakcseUJBQXlCLEVBQXVCLDhDQUE4QztJQUM5Rix3QkFBd0IsRUFBd0Isa0NBQWtDO0lBQ2xGLG1DQUFtQyxFQUFhLHFFQUFxRTtJQUNySCxzQ0FBc0MsRUFBVSx5RUFBeUU7SUFDekgsa0NBQWtDLEVBQWMsMENBQTBDO0lBQzFGLGNBQWMsRUFBa0Msb0RBQW9EO0lBQ3BHLHFCQUFxQixFQUEyQix3REFBd0Q7SUFDeEcsZ0JBQWdCLEVBQWdDLHdDQUF3QztJQUN4RixpQkFBaUIsRUFBK0IscUNBQXFDO0lBQ3JGLG1CQUFtQixFQUE2Qix1Q0FBdUM7SUFDdkYsbUJBQW1CLEVBQTZCLHNDQUFzQztJQUN0RixVQUFVLEVBQXNDLHVDQUF1QztJQUN2RixlQUFlLEVBQWlDLHNEQUFzRDtJQUN0RyxrQkFBa0IsRUFBOEIsNkNBQTZDO0lBQzdGLHNCQUFzQixFQUEwQixtREFBbUQ7SUFDbkcsT0FBTyxFQUF5QyxrQ0FBa0M7SUFDbEYsYUFBYSxFQUFtQyxnRUFBZ0U7SUFDaEgsbUJBQW1CLEVBQTZCLDRGQUE0RjtDQUM3SSxDQUFDO0FBRUYsa0NBQWtDO0FBQ2xDLE1BQU0sZUFBZSxHQUEyQjtJQUM5QyxJQUFJLEVBQUUsTUFBTTtJQUNaLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsU0FBUyxFQUFFLFlBQVk7Q0FDeEIsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxVQUFVLENBQUMsS0FBb0IsRUFBRSxTQUEwQjtJQUNsRSxJQUFJLE1BQU0sR0FBeUIsSUFBSSxDQUFDO0lBQ3hDLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztJQUVsQixLQUFLLE1BQU0sU0FBUyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLHdCQUF3QjtRQUN4QixJQUFJLFNBQVMsS0FBSyxLQUFLO1lBQUUsU0FBUztRQUVsQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4RSx3REFBd0Q7WUFDeEQsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLFNBQVMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNLEdBQUcsU0FBUyxDQUFDO2dCQUNuQixTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUMvQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsdUJBQXVCO0lBQzlCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQVMsQ0FBb0IsQ0FBQztJQUM1RCxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztJQUNsRCxNQUFNLE1BQU0sR0FBcUIsRUFBRSxDQUFDO0lBRXBDLCtCQUErQjtJQUMvQixLQUFLLE1BQU0sS0FBSyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQzlCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNsRixDQUFDO1FBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUU7WUFDZixLQUFLLEVBQUUsS0FBSztZQUNaLFdBQVcsRUFBRSxpQkFBUyxDQUFDLEtBQUssQ0FBQztZQUM3QixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnREFBZ0Q7SUFDaEQsS0FBSyxNQUFNLEtBQUssSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUM5QixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFFLENBQUM7UUFDL0IsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUVqRCxJQUFJLFdBQVcsSUFBSSxXQUFXLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDekMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUUsQ0FBQyxRQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsS0FBSyxNQUFNLFFBQVEsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDN0MsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsT0FBTyxDQUFDLENBQUM7WUFDOUQsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBcUIsdUJBQXVCLEVBQUUsQ0FBQztBQUUvRTs7O0dBR0c7QUFDVSxRQUFBLG9CQUFvQixHQUFHO0lBQ2xDLElBQUksRUFBRSwyQkFBbUIsQ0FBQyxJQUFJO0lBQzlCLEdBQUcsRUFBRSwyQkFBbUIsQ0FBQyxHQUFHO0lBQzVCLE1BQU0sRUFBRTtRQUNOLEtBQUssRUFBRSxRQUFRO1FBQ2YsTUFBTSxFQUFFO1lBQ04sZ0NBQWdDO1lBQy9CLDJCQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFzQjtpQkFDL0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBRTtpQkFDcEMsUUFBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxjQUFjLENBQUU7WUFDckQsbUNBQW1DO1lBQ2xDLDJCQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFzQjtpQkFDL0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBRTtpQkFDcEMsUUFBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxjQUFjLENBQUU7aUJBQ2xELFFBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssaUJBQWlCLENBQUU7WUFDeEQsa0NBQWtDO1lBQ2pDLDJCQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFzQjtpQkFDL0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBRTtpQkFDcEMsUUFBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxjQUFjLENBQUU7aUJBQ2xELFFBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssZ0JBQWdCLENBQUU7WUFDdkQsbUNBQW1DO1lBQ2xDLDJCQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFzQjtpQkFDL0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBRTtpQkFDcEMsUUFBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxjQUFjLENBQUU7aUJBQ2xELFFBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssaUJBQWlCLENBQUU7U0FDekQ7S0FDRjtDQUN5QixDQUFDO0FBRTdCOzs7R0FHRztBQUNVLFFBQUEsb0JBQW9CLEdBQUc7SUFDbEMsTUFBTSxFQUFFLDJCQUFtQixDQUFDLE1BQU07SUFDbEMsSUFBSSxFQUFFLDJCQUFtQixDQUFDLElBQUk7SUFDOUIsR0FBRyxFQUFFLDJCQUFtQixDQUFDLEdBQUc7Q0FDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlIHNwYWNlZC1jb21tZW50XG5cbmltcG9ydCB7IHR5cGUgRXhwbGljaXRTY29wZSB9IGZyb20gXCIuXCI7XG5cbmV4cG9ydCB0eXBlIFNjb3Blc0RpY3Rpb25hcnkgPSBSZWNvcmQ8c3RyaW5nLCB7IGxhYmVsOiBzdHJpbmc7IHNjb3BlczogU2NvcGVJdGVtW10gfT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NvcGVJdGVtIHtcbiAgdmFsdWU6IEV4cGxpY2l0U2NvcGU7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogU2NvcGVJdGVtW107XG59XG5cbi8qKiBNYXBwaW5nIGZyb20gc2NvcGUgbmFtZSB0byBzY29wZSBkZXNjcmlwdGlvbiAqL1xuZXhwb3J0IGNvbnN0IEFsbFNjb3BlczogUmVjb3JkPEV4cGxpY2l0U2NvcGUsIHN0cmluZz4gPVxuICAvLyBwcmV0dGllci1pZ25vcmVcbiAge1xuICBcInNpZ246KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgc2lnbmVyIGVuZHBvaW50cyAoZS5nLiwgc2lnbiBibG9iLCBzaWduIGJpdGNvaW4vYXZhbGFuY2hlL2V2bSB0cmFuc2FjdGlvbiwgZXRjLilcIixcbiAgXCJzaWduOmF2YVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ24gJ2F2YScgZW5kcG9pbnRcIixcbiAgXCJzaWduOmJsb2JcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ24gJ2Jsb2InIGVuZHBvaW50XCIsXG4gIFwic2lnbjpkaWZmaWVIZWxsbWFuXCIgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBEaWZmaWUtSGVsbG1hbiBlbmRwb2ludC4gVGhpcyBpcyBub3QgcmVhbGx5IHNpZ25pbmcsIGJ1dCB3ZSBwdXQgaXQgdW5kZXIgdGhlIGBzaWduYCBoaWVyYXJjaHkgYmVjYXVzZSBpdCBpcyBjb25jZXB0dWFsbHkgc2ltaWxhci5cIixcbiAgXCJzaWduOmJ0YzoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIEJUQyBlbmRwb2ludHNcIixcbiAgXCJzaWduOmJ0YzpzZWd3aXRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIHNlZ3dpdCB0cmFuc2FjdGlvbnNcIixcbiAgXCJzaWduOmJ0Yzp0YXByb290XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIHRhcHJvb3QgdHJhbnNhY3Rpb25zXCIsXG4gIFwic2lnbjpidGM6cHNidDoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBQU0JUIHNpZ25pbmcgZW5kcG9pbnQgZm9yIGFueSBrZXkgdHlwZVwiLFxuICBcInNpZ246YnRjOnBzYnQ6ZG9nZVwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgUFNCVCBzaWduaW5nIGVuZHBvaW50IGZvciBEb2dlIGtleXNcIixcbiAgXCJzaWduOmJ0Yzpwc2J0OmxlZ2FjeVwiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIFBTQlQgc2lnbmluZyBlbmRwb2ludCBmb3IgbGVnYWN5IGtleXNcIixcbiAgXCJzaWduOmJ0Yzpwc2J0OnNlZ3dpdFwiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIFBTQlQgc2lnbmluZyBlbmRwb2ludCBmb3Igc2Vnd2l0IGtleXNcIixcbiAgXCJzaWduOmJ0Yzpwc2J0OnRhcHJvb3RcIiAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIFBTQlQgc2lnbmluZyBlbmRwb2ludCBmb3IgdGFwcm9vdCBrZXlzXCIsXG4gIFwic2lnbjpidGM6cHNidDpsdGNTZWd3aXRcIiAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBQU0JUIHNpZ25pbmcgZW5kcG9pbnQgZm9yIExpdGVjb2luIHNlZ3dpdCBrZXlzXCIsXG4gIFwic2lnbjpidGM6bWVzc2FnZToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBCVEMgbWVzc2FnZSBzaWduaW5nIGVuZHBvaW50IGZvciBhbnkga2V5IHR5cGVcIixcbiAgXCJzaWduOmJ0YzptZXNzYWdlOnNlZ3dpdFwiICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIEJUQyBtZXNzYWdlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIHNlZ3dpdCBrZXlzXCIsXG4gIFwic2lnbjpidGM6bWVzc2FnZTpsZWdhY3lcIiAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBCVEMgbWVzc2FnZSBzaWduaW5nIGVuZHBvaW50IGZvciBsZWdhY3kga2V5c1wiLFxuICBcInNpZ246YmFieWxvbjoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgQmFieWxvbiBlbmRwb2ludHNcIixcbiAgXCJzaWduOmJhYnlsb246ZW90czoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIEJhYnlsb24gRU9UUyBlbmRwb2ludHNcIixcbiAgXCJzaWduOmJhYnlsb246ZW90czpub25jZXNcIiAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIEVPVFMgbm9uY2UgZ2VuZXJhdGlvbiBlbmRwb2ludFwiLFxuICBcInNpZ246YmFieWxvbjplb3RzOnNpZ25cIiAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgRU9UUyBzaWduaW5nIGVuZHBvaW50XCIsXG4gIFwic2lnbjpiYWJ5bG9uOnN0YWtpbmc6KlwiICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciBhbGwgQmFieWxvbiBzdGFraW5nIG9wZXJhdGlvbnNcIixcbiAgXCJzaWduOmJhYnlsb246c3Rha2luZzpkZXBvc2l0XCIgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIEJhYnlsb24gZGVwb3NpdHNcIixcbiAgXCJzaWduOmJhYnlsb246c3Rha2luZzp1bmJvbmRcIiAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIEJhYnlsb24gdW5ib25kaW5nXCIsXG4gIFwic2lnbjpiYWJ5bG9uOnN0YWtpbmc6d2l0aGRyYXdcIiAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciBCYWJ5bG9uIHdpdGhkcmF3YWxzXCIsXG4gIFwic2lnbjpiYWJ5bG9uOnN0YWtpbmc6c2xhc2hcIiAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciBCYWJ5bG9uIHNsYXNoaW5nIHByZS1zaWduYXR1cmVzXCIsXG4gIFwic2lnbjpiYWJ5bG9uOnJlZ2lzdHJhdGlvblwiICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciBCYWJ5bG9uIHJlZ2lzdHJhdGlvblwiLFxuICBcInNpZ246YmFieWxvbjpjb3ZlbmFudFwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3IgQmFieWxvbiBjb3ZlbmFudCBzaWduaW5nXCIsXG4gIFwic2lnbjpldm06KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBzaWduICdldm0nIGVuZHBvaW50c1wiLFxuICBcInNpZ246ZXZtOnR4XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3IgZXZtIHRyYW5zYWN0aW9uc1wiLFxuICBcInNpZ246ZXZtOmVpcDE5MVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3IgRUlQLTE5MSBwZXJzb25hbF9tZXNzYWdlIGRhdGFcIixcbiAgXCJzaWduOmV2bTplaXA3MTJcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3IgRUlQLTcxMiB0eXBlZCBkYXRhXCIsXG4gIFwic2lnbjpldGgyOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBzaWduICdldGgyJyBlbmRwb2ludHNcIixcbiAgXCJzaWduOmV0aDI6dmFsaWRhdGVcIiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ24gZXRoMiAndmFsaWRhdGUnIGVuZHBvaW50XCIsXG4gIFwic2lnbjpldGgyOnN0YWtlXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduIGV0aDIgJ3N0YWtlJyBlbmRwb2ludFwiLFxuICBcInNpZ246ZXRoMjp1bnN0YWtlXCIgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbiBldGgyICd1bnN0YWtlJyBlbmRwb2ludFwiLFxuICBcInNpZ246c29sYW5hXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbiAnc29sYW5hJyBlbmRwb2ludFwiLFxuICBcInNpZ246c3VpXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbiAnc3VpJyBlbmRwb2ludFwiLFxuICBcInNpZ246dGVuZGVybWludFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbiAndGVuZGVybWludCcgZW5kcG9pbnRcIixcbiAgXCJzaWduOm1taVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ24gJ21taScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIG1hbmFnZW1lbnQgZW5kcG9pbnRzIChlLmcuLCBjcmVhdGUgcm9sZSwgY3JlYXRlIGtleSwgYWRkIGtleSB0byByb2xlLCBldGMuKVwiLFxuICBcIm1hbmFnZTpyZWFkb25seVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgbWFuYWdlbWVudCByZWFkb25seSBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6ZW1haWxcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgZW1haWwgbWFuYWdlbWVudCBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6bWZhOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byBNRkEgZW5kcG9pbnRzIChlLmcuLCBnZXQvYXBwcm92ZSBleGlzdGluZyBNRkEgcmVxdWVzdClcIixcbiAgXCJtYW5hZ2U6bWZhOnJlYWRvbmx5XCIgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byBNRkEgcmVhZG9ubHkgZW5kcG9pbnRzIChlLmcuLCBnZXQvbGlzdCBleGlzdGluZyBNRkEgcmVxdWVzdChzKSlcIixcbiAgXCJtYW5hZ2U6bWZhOmxpc3RcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBIGxpc3QgZW5kcG9pbnQgKGxpc3QgZXhpc3RpbmcgTUZBIHJlcXVlc3RzKVwiLFxuICBcIm1hbmFnZTptZmE6dm90ZToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgTUZBIHZvdGUgZW5kcG9pbnRzICh2b3RlIHVzaW5nIGN1cnJlbnQgQ3ViZVNpZ25lciBzZXNzaW9uLCBUT1RQLCBvciBGSURPKVwiLFxuICBcIm1hbmFnZTptZmE6dm90ZTpjc1wiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBNRkEgJ3ZvdGUgd2l0aCBDdWJlU2lnbmVyJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTptZmE6dm90ZTplbWFpbFwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBNRkEgJ3ZvdGUgd2l0aCBlbWFpbCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6bWZhOnZvdGU6Zmlkb1wiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBICd2b3RlIHdpdGggVE9UUCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6bWZhOnZvdGU6dG90cFwiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBICd2b3RlIHdpdGggRklETycgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6bWZhOnJlZ2lzdGVyOipcIiAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIE1GQSByZWdpc3RlciBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6bWZhOnJlZ2lzdGVyOmZpZG9cIiAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBICdyZWdpc3RlciBUT1RQJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTptZmE6cmVnaXN0ZXI6dG90cFwiICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBNRkEgJ3JlZ2lzdGVyIEZJRE8nIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOm1mYTpyZWdpc3RlcjplbWFpbFwiICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIE1GQSAncmVnaXN0ZXIgdmVyaWZpZWQgZW1haWwnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOm1mYTp1bnJlZ2lzdGVyOipcIiAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBNRkEgdW5yZWdpc3RlciBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6bWZhOnVucmVnaXN0ZXI6Zmlkb1wiICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBICdkZWxldGUgVE9UUCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6bWZhOnVucmVnaXN0ZXI6dG90cFwiICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBICdkZWxldGUgRklETycgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6bWZhOnZlcmlmeToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIE1GQSB2ZXJpZnkgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOm1mYTp2ZXJpZnk6dG90cFwiICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIE1GQSAndmVyaWZ5IFRPVFAnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmtleToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBrZXkgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOmtleTpyZWFkb25seVwiICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBrZXkgcmVhZG9ubHkgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOmtleTphdHRlc3RcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAnYXR0ZXN0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTprZXk6Z2V0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBrZXkgJ2dldCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6a2V5Omxpc3RSb2xlc1wiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICdsaXN0Um9sZXMnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmtleTpsaXN0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAnbGlzdCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6a2V5Omhpc3Rvcnk6dHg6bGlzdFwiICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICdsaXN0X2hpc3RvcmljYWxfdHgnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmtleTpjcmVhdGVcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8ga2V5IGNyZWF0aW9uIGVuZHBvaW50cyAoZS5nLiwgJ2NyZWF0ZScgYW5kICdkZXJpdmUnKVwiLFxuICBcIm1hbmFnZTprZXk6aW1wb3J0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBrZXkgJ2ltcG9ydCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6a2V5OnVwZGF0ZToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICd1cGRhdGUnIGVuZHBvaW50LCB3aXRoaW4gd2hpY2ggYWxsb3dpbmcgYWxsIHBvc3NpYmxlIHVwZGF0ZXNcIixcbiAgXCJtYW5hZ2U6a2V5OnVwZGF0ZTpvd25lclwiICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUga2V5IG93bmVyIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOmtleTp1cGRhdGU6cG9saWN5XCIgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIGtleSBwb2xpY3kgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6a2V5OnVwZGF0ZTplbmFibGVkXCIgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUga2V5IGVuYWJsZWQgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6a2V5OnVwZGF0ZTptZXRhZGF0YVwiICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICd1cGRhdGUnIGVuZHBvaW50IGFuZCByZXN0cmljdHMgdXBkYXRlcyB0byB0aGUga2V5IG1ldGFkYXRhIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOmtleTp1cGRhdGU6ZWRpdFBvbGljeVwiICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAndXBkYXRlJyBlbmRwb2ludCBhbmQgcmVzdHJpY3RzIHVwZGF0ZXMgdG8gdGhlICdlZGl0X3BvbGljeScgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6a2V5OmRlbGV0ZVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICdkZWxldGUnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnBvbGljeToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBwb2xpY3kgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOnBvbGljeTpjcmVhdGVcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSBjcmVhdGlvbiBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpwb2xpY3k6Z2V0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgJ2dldCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cG9saWN5Omxpc3RcIiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5ICdsaXN0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpwb2xpY3k6ZGVsZXRlXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgYGRlbGV0ZWAgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZToqXCIgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5ICd1cGRhdGUnIGVuZHBvaW50LCB3aXRoaW4gd2hpY2ggYWxsb3dpbmcgYWxsIHBvc3NpYmxlIHVwZGF0ZXNcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZTphY2xcIiAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUgcG9saWN5IEFDTFwiLFxuICBcIm1hbmFnZTpwb2xpY3k6dXBkYXRlOm93bmVyXCIgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSBwb2xpY3kgb3duZXIgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZTpuYW1lXCIgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUgcG9saWN5IG5hbWVcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZTplZGl0UG9saWN5XCIgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUgJ2VkaXRfcG9saWN5JyBwcm9wZXJ0eVwiLFxuICBcIm1hbmFnZTpwb2xpY3k6dXBkYXRlOm1ldGFkYXRhXCIgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSAnbWV0YWRhdGEnIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOnBvbGljeTp1cGRhdGU6cnVsZVwiICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIHBvbGljeSBydWxlIGl0c2VsZlwiLFxuICBcIm1hbmFnZTpwb2xpY3k6aW52b2tlXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgJ2ludm9rZScgZW5kcG9pbnQuXCIsXG4gIFwibWFuYWdlOnBvbGljeTp3YXNtOipcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCB3YXNtIHBvbGljeSBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6cG9saWN5Ondhc206dXBsb2FkXCIgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgd2FzbSBwb2xpY3kgJ3VwbG9hZCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnNlY3JldHM6KlwiICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHBvbGljeSBzZWNyZXRzIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpwb2xpY3k6c2VjcmV0czpnZXRcIiAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgc2VjcmV0cyAnZ2V0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpwb2xpY3k6c2VjcmV0czp1cGRhdGU6KlwiICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgcG9saWN5IHNlY3JldHMgJ3VwZGF0ZScgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOnBvbGljeTpzZWNyZXRzOnVwZGF0ZTp2YWx1ZXNcIiAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSBzZWNyZXRzICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUgc2VjcmV0cyBrZXlzIGFuZCB2YWx1ZXNcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnNlY3JldHM6dXBkYXRlOmVkaXRQb2xpY3lcIiAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5IHNlY3JldHMgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSBgZWRpdF9wb2xpY3lgIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOmNvbnRhY3Q6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBjb250YWN0IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpjb250YWN0OmNyZWF0ZVwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgY29udGFjdCAnY3JlYXRlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpjb250YWN0OmdldFwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgY29udGFjdCBgZ2V0YCBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpjb250YWN0Omxpc3RcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgY29udGFjdCBgbGlzdGAgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6Y29udGFjdDpkZWxldGVcIiAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIGNvbnRhY3QgYGRlbGV0ZWAgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6Y29udGFjdDp1cGRhdGU6KlwiICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgY29udGFjdCAndXBkYXRlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTpuYW1lXCIgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBjb250YWN0ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RzIHVwZGF0ZXMgdG8gdGhlIGNvbnRhY3QncyAnbmFtZScgZmllbGQuXCIsXG4gIFwibWFuYWdlOmNvbnRhY3Q6dXBkYXRlOmFkZHJlc3Nlc1wiICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGNvbnRhY3QgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdHMgdXBkYXRlcyB0byB0aGUgY29udGFjdCdzICdhZGRyZXNzZXMnIGZpZWxkLlwiLFxuICBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTpvd25lclwiICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBjb250YWN0ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RzIHVwZGF0ZXMgdG8gdGhlIGNvbnRhY3QncyAnb3duZXInIGZpZWxkLlwiLFxuICBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTptZXRhZGF0YVwiICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBjb250YWN0ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RzIHVwZGF0ZXMgdG8gdGhlIGNvbnRhY3QncyAnbWV0YWRhdGEnIGZpZWxkLlwiLFxuICBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTplZGl0UG9saWN5XCIgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBjb250YWN0ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RzIHVwZGF0ZXMgdG8gdGhlIGNvbnRhY3QncyAnZWRpdF9wb2xpY3knIGZpZWxkLlwiLFxuICBcIm1hbmFnZTpjb250YWN0Omxvb2t1cDoqXCIgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgY29udGFjdCBgbG9va3VwYCBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6Y29udGFjdDpsb29rdXA6YWRkcmVzc1wiICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgY29udGFjdCAnbG9va3VwIGJ5IGFkZHJlc3MnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnBvbGljeTpjcmVhdGVJbXBvcnRLZXlcIiAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSBrZXkgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cm9sZToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHJvbGUgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOnJvbGU6cmVhZG9ubHlcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCByb2xlIHJlYWRvbmx5IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpyb2xlOmNyZWF0ZVwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSByb2xlICdjcmVhdGUnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnJvbGU6ZGVsZXRlXCIgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ2RlbGV0ZScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cm9sZTpnZXQ6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcm9sZSAnZ2V0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOmdldDprZXlzXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAnbGlzdCBrZXlzJyBhbmQgJ2dldCBrZXknIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpyb2xlOmdldDprZXlzOmxpc3RcIiAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAnbGlzdCBrZXlzJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOmdldDprZXlzOmdldFwiICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAnZ2V0IGtleScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cm9sZTpnZXQ6dXNlcnNcIiAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHJvbGUgJ2xpc3QgdXNlcnMnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnJvbGU6bGlzdFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ2xpc3QnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnJvbGU6dXBkYXRlOipcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ3VwZGF0ZScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cm9sZTp1cGRhdGU6ZW5hYmxlZFwiICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcm9sZSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIHJvbGUgJ2VuYWJsZWQnIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOnJvbGU6dXBkYXRlOnBvbGljeVwiICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSByb2xlICdwb2xpY3knIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOnJvbGU6dXBkYXRlOmVkaXRQb2xpY3lcIiAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSByb2xlICdlZGl0X3BvbGljeScgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6cm9sZTp1cGRhdGU6a2V5OipcIiAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHJvbGUgJ3VwZGF0ZTprZXknIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTprZXk6YWRkXCIgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAndXBkYXRlOmtleXM6YWRkJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTprZXk6cmVtb3ZlXCIgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAndXBkYXRlOmtleXM6cmVtb3ZlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTp1c2VyOipcIiAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgcm9sZSAndXBkYXRlOnVzZXInIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTp1c2VyOmFkZFwiICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAndXBkYXRlOnVzZXI6YWRkJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTp1c2VyOnJlbW92ZVwiICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAndXBkYXRlOnVzZXI6cmVtb3ZlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOmhpc3Rvcnk6dHg6bGlzdFwiICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSByb2xlICdsaXN0X2hpc3RvcmljYWxfdHgnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmlkZW50aXR5OipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBpZGVudGl0eSBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6aWRlbnRpdHk6dmVyaWZ5XCIgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgaWRlbnRpdHkgJ3ZlcmlmeScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6aWRlbnRpdHk6YWRkXCIgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgaWRlbnRpdHkgJ2FkZCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6aWRlbnRpdHk6cmVtb3ZlXCIgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgaWRlbnRpdHkgJ3JlbW92ZScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6aWRlbnRpdHk6bGlzdFwiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgaWRlbnRpdHkgJ2xpc3QnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOm9yZzoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBvcmcgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOm9yZzpjcmVhdGVcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBvcmcgJ2NyZWF0ZScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6b3JnOm1ldHJpY3M6cXVlcnlcIiAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gcmV0cmlldmluZyBvcmcgbWV0cmljc1wiLFxuICBcIm1hbmFnZTpvcmc6cmVhZG9ubHlcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgb3JnIHJlYWRvbmx5IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpvcmc6YWRkVXNlclwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIGFkZGluZyBhbiBPSURDIHVzZXIgdG8gdGhlIG9yZ1wiLFxuICBcIm1hbmFnZTpvcmc6aW52aXRlVXNlclwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIGludml0aW5nIGEgbmV3IG1lbWJlciBvciBvcmcgb3duZXIgdG8gdGhlIG9yZ1wiLFxuICBcIm1hbmFnZTpvcmc6aW52aXRlQWxpZW5cIiAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIGludml0aW5nIGEgbmV3IGFsaWVuIHVzZXIgdG8gdGhlIG9yZ1wiLFxuICBcIm1hbmFnZTpvcmc6dXBkYXRlTWVtYmVyc2hpcFwiICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIHVwZGF0aW5nIGV4aXN0aW5nIHVzZXIncyBvcmcgbWVtYmVyc2hpcFwiLFxuICBcIm1hbmFnZTpvcmc6bGlzdFVzZXJzXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIGxpc3RpbmcgYWxsIG9yZyB1c2VycyAobWVtYmVycylcIixcbiAgXCJtYW5hZ2U6b3JnOnVzZXI6Z2V0XCIgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgb3JnIGVuZHBvaW50cyBmb3IgZ2V0dGluZyB1c2VycyBieSBpZCBvciBlbWFpbFwiLFxuICBcIm1hbmFnZTpvcmc6ZGVsZXRlVXNlclwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIGRlbGV0aW5nIGFuIE9JREMgdXNlclwiLFxuICBcIm1hbmFnZTpvcmc6Z2V0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byByZXRyaWV2aW5nIG9yZ2FuaXphdGlvbiBpbmZvcm1hdGlvblwiLFxuICBcIm1hbmFnZTpvcmc6dXNlcjpyZXNldE1mYVwiICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFuIG93bmVyIHRvIGluaXRpYXRlIGFuIE1GQSByZXNldCBmb3IgYSB1c2VyXCIsXG4gIFwibWFuYWdlOnNlc3Npb246KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBzZXNzaW9uIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpzZXNzaW9uOnJlYWRvbmx5XCIgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgc2Vzc2lvbiByZWFkb25seSBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6c2Vzc2lvbjpnZXRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgc2Vzc2lvbiAnZ2V0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpzZXNzaW9uOmxpc3RcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBzZXNzaW9uICdsaXN0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpzZXNzaW9uOmNyZWF0ZVwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBzZXNzaW9uICdjcmVhdGUnIGVuZHBvaW50LCBidXQgd2l0aG91dCB0aGUgYWJpbGl0eSB0byBleHRlbmQgc2Vzc2lvbiBsaWZldGltZXNcIixcbiAgXCJtYW5hZ2U6c2Vzc2lvbjpleHRlbmRcIiAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgc2Vzc2lvbiAnY3JlYXRlJyBlbmRwb2ludCwgaW5jbHVkaW5nIHRoZSBhYmlsaXR5IHRvIGV4dGVuZCBzZXNzaW9uIGxpZmV0aW1lc1wiLFxuICBcIm1hbmFnZTpzZXNzaW9uOnJldm9rZVwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBzZXNzaW9uICdyZXZva2UnIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpleHBvcnQ6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgZXhwb3J0IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpleHBvcnQ6b3JnOipcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgb3JnLWV4cG9ydCBtYW5hZ2VtZW50IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpleHBvcnQ6b3JnOmdldFwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgb3JnLWV4cG9ydCBkb3dubG9hZCBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpleHBvcnQ6dXNlcjoqXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgdXNlci1leHBvcnQgbWFuYWdlbWVudCBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6ZXhwb3J0OnVzZXI6ZGVsZXRlXCIgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBkZWxldGluZyBhbiBleGlzdGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0XCIsXG4gIFwibWFuYWdlOmV4cG9ydDp1c2VyOmxpc3RcIiAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgbGlzdGluZyBleGlzdGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0c1wiLFxuICBcIm1hbmFnZTphdXRoTWlncmF0aW9uOipcIiAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFsbCBhdXRoIG1pZ3JhdGlvbiBzY29wZXNcIixcbiAgXCJtYW5hZ2U6YXV0aE1pZ3JhdGlvbjppZGVudGl0eTphZGRcIiAgICAgICAgICAgOiBcIkFsbG93cyBhZGRpbmcgaWRlbnRpdGllcyB0byBleGlzdGluZyB1c2VycyBkdXJpbmcgYW4gYXV0aCBtaWdyYXRpb25cIixcbiAgXCJtYW5hZ2U6YXV0aE1pZ3JhdGlvbjppZGVudGl0eTpyZW1vdmVcIiAgICAgICAgOiBcIkFsbG93cyByZW1vdmluZyBpZGVudGl0aWVzIGZyb20gZXhpc3RpbmcgdXNlcnMgZHVyaW5nIGFuIGF1dGggbWlncmF0aW9uXCIsXG4gIFwibWFuYWdlOmF1dGhNaWdyYXRpb246dXNlcjp1cGRhdGVcIiAgICAgICAgICAgIDogXCJBbGxvd3MgdXBkYXRpbmcgZXhpc3RpbmcgdXNlcnMnIHByb2ZpbGVzXCIsXG4gIFwibWFuYWdlOm1taToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWxsIENSVUQgb3BlcmF0aW9ucyBvbiBNTUkgcGVuZGluZyBtZXNzYWdlc1wiLFxuICBcIm1hbmFnZTptbWk6cmVhZG9ubHlcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFsbCByZWFkb25seSBvcGVyYXRpb25zIG9uIE1NSSBwZW5kaW5nIG1lc3NhZ2VzXCIsXG4gIFwibWFuYWdlOm1taTpnZXRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgcmV0cmlldmluZyBNTUkgcGVuZGluZyBtZXNzYWdlc1wiLFxuICBcIm1hbmFnZTptbWk6bGlzdFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGxpc3RpbmcgTU1JIHBlbmRpbmcgbWVzc2FnZXNcIixcbiAgXCJtYW5hZ2U6bW1pOnJlamVjdFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyByZWplY3RpbmcgTU1JIHBlbmRpbmcgbWVzc2FnZXNcIixcbiAgXCJtYW5hZ2U6bW1pOmRlbGV0ZVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBkZWxldGluZyBNTUkgcGVuZGluZyBtZXNzYWdlc1wiLFxuICBcImV4cG9ydDoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgZXhwb3J0IGVuZHBvaW50c1wiLFxuICBcImV4cG9ydDp1c2VyOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgdXNlci1leHBvcnQgZXhlY3V0aW9uIGVuZHBvaW50c1wiLFxuICBcImV4cG9ydDp1c2VyOmluaXRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGluaXRpYXRpbmcgYSBuZXcgdXNlci1leHBvcnQgcmVxdWVzdFwiLFxuICBcImV4cG9ydDp1c2VyOmNvbXBsZXRlXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGNvbXBsZXRpbmcgYW4gZXhpc3RpbmcgdXNlci1leHBvcnQgcmVxdWVzdFwiLFxuICBcIm1taToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGNhbGxzIHRvIHRoZSBNTUkgZW5kcG9pbnRcIixcbiAgXCJvcmdBY2Nlc3M6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gY2VydGFpbiBvcmdzIG90aGVyIHRoYW4gdGhlIGN1cnJlbnQgc2Vzc2lvbidzXCIsXG4gIFwib3JnQWNjZXNzOmNoaWxkOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYSBzZXNzaW9uIHRvIGJlIHVzZWQgZm9yIGFjY2VzcyB0byBvcmdzIHRyYW5zaXRpdmVseSBwYXJlbnRlZCBieSB0aGUgc2Vzc2lvbidzIG9yZy5cIixcbn07XG5cbi8vIENvbnN0IGZvciBzY29wZSBjYXRlZ29yeSBsYWJlbHNcbmNvbnN0IENBVEVHT1JZX0xBQkVMUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgc2lnbjogXCJTaWduXCIsXG4gIG1hbmFnZTogXCJNYW5hZ2VcIixcbiAgZXhwb3J0OiBcIkV4cG9ydFwiLFxuICBtbWk6IFwiTU1JXCIsXG4gIG9yZ0FjY2VzczogXCJPcmcgQWNjZXNzXCIsXG59O1xuXG4vKipcbiAqIEZpbmRzIHRoZSBwYXJlbnQgc2NvcGUgZm9yIGEgZ2l2ZW4gc2NvcGUuXG4gKiBBIHBhcmVudCBpcyBhIHNjb3BlIGVuZGluZyB3aXRoICcqJyB0aGF0IGlzIGEgcHJlZml4IG9mIHRoZSBjdXJyZW50IHNjb3BlLlxuICogUmV0dXJucyB0aGUgbG9uZ2VzdCBtYXRjaGluZyBwYXJlbnQgKGNsb3Nlc3QgYW5jZXN0b3IpLCBleGNsdWRpbmcgdGhlIHNjb3BlIGl0c2VsZi5cbiAqXG4gKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIHRvIGZpbmQgdGhlIHBhcmVudCBmb3IuXG4gKiBAcGFyYW0gYWxsU2NvcGVzIFRoZSBsaXN0IG9mIGFsbCBzY29wZXMuXG4gKiBAcmV0dXJucyBUaGUgcGFyZW50IHNjb3BlIG9yIG51bGwgaWYgbm8gcGFyZW50IGlzIGZvdW5kLlxuICovXG5mdW5jdGlvbiBmaW5kUGFyZW50KHNjb3BlOiBFeHBsaWNpdFNjb3BlLCBhbGxTY29wZXM6IEV4cGxpY2l0U2NvcGVbXSk6IEV4cGxpY2l0U2NvcGUgfCBudWxsIHtcbiAgbGV0IHBhcmVudDogRXhwbGljaXRTY29wZSB8IG51bGwgPSBudWxsO1xuICBsZXQgbWF4TGVuZ3RoID0gMDtcblxuICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBhbGxTY29wZXMpIHtcbiAgICAvLyBTa2lwIHRoZSBzY29wZSBpdHNlbGZcbiAgICBpZiAoY2FuZGlkYXRlID09PSBzY29wZSkgY29udGludWU7XG5cbiAgICBpZiAoY2FuZGlkYXRlLmVuZHNXaXRoKFwiKlwiKSAmJiBzY29wZS5zdGFydHNXaXRoKGNhbmRpZGF0ZS5zbGljZSgwLCAtMSkpKSB7XG4gICAgICAvLyBQcmVmZXIgdGhlIGxvbmdlc3QgbWF0Y2hpbmcgcGFyZW50IChjbG9zZXN0IGFuY2VzdG9yKVxuICAgICAgaWYgKGNhbmRpZGF0ZS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICAgICAgcGFyZW50ID0gY2FuZGlkYXRlO1xuICAgICAgICBtYXhMZW5ndGggPSBjYW5kaWRhdGUubGVuZ3RoO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJlbnQ7XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIHNjb3BlcyBkaWN0aW9uYXJ5IGZyb20gQWxsU2NvcGVzLlxuICpcbiAqIEByZXR1cm5zIFRoZSBjb21wbGV0ZSBkaWN0aW9uYXJ5IG9mIGFsbCBhdmFpbGFibGUgc2NvcGVzIG9yZ2FuaXplZCBieSBjYXRlZ29yeS5cbiAqL1xuZnVuY3Rpb24gY29tcHV0ZVNjb3Blc0RpY3Rpb25hcnkoKTogU2NvcGVzRGljdGlvbmFyeSB7XG4gIGNvbnN0IGFsbFNjb3BlcyA9IE9iamVjdC5rZXlzKEFsbFNjb3BlcykgYXMgRXhwbGljaXRTY29wZVtdO1xuICBjb25zdCBpdGVtcyA9IG5ldyBNYXA8RXhwbGljaXRTY29wZSwgU2NvcGVJdGVtPigpO1xuICBjb25zdCByZXN1bHQ6IFNjb3Blc0RpY3Rpb25hcnkgPSB7fTtcblxuICAvLyBGaXJzdCBwYXNzOiBjcmVhdGUgYWxsIGl0ZW1zXG4gIGZvciAoY29uc3Qgc2NvcGUgb2YgYWxsU2NvcGVzKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBzY29wZS5zcGxpdChcIjpcIilbMF07XG4gICAgaWYgKCFyZXN1bHRbY2F0ZWdvcnldKSB7XG4gICAgICByZXN1bHRbY2F0ZWdvcnldID0geyBsYWJlbDogQ0FURUdPUllfTEFCRUxTW2NhdGVnb3J5XSB8fCBjYXRlZ29yeSwgc2NvcGVzOiBbXSB9O1xuICAgIH1cblxuICAgIGl0ZW1zLnNldChzY29wZSwge1xuICAgICAgdmFsdWU6IHNjb3BlLFxuICAgICAgZGVzY3JpcHRpb246IEFsbFNjb3Blc1tzY29wZV0sXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgfSk7XG4gIH1cblxuICAvLyBTZWNvbmQgcGFzczogYnVpbGQgcGFyZW50LWNoaWxkIHJlbGF0aW9uc2hpcHNcbiAgZm9yIChjb25zdCBzY29wZSBvZiBhbGxTY29wZXMpIHtcbiAgICBjb25zdCBjYXRlZ29yeSA9IHNjb3BlLnNwbGl0KFwiOlwiKVswXTtcbiAgICBjb25zdCBpdGVtID0gaXRlbXMuZ2V0KHNjb3BlKSE7XG4gICAgY29uc3QgcGFyZW50U2NvcGUgPSBmaW5kUGFyZW50KHNjb3BlLCBhbGxTY29wZXMpO1xuXG4gICAgaWYgKHBhcmVudFNjb3BlICYmIHBhcmVudFNjb3BlICE9PSBzY29wZSkge1xuICAgICAgaXRlbXMuZ2V0KHBhcmVudFNjb3BlKSEuY2hpbGRyZW4hLnB1c2goaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFtjYXRlZ29yeV0uc2NvcGVzLnB1c2goaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU29ydCByb290czogd2lsZGNhcmRzIGZpcnN0XG4gIGZvciAoY29uc3QgY2F0ZWdvcnkgb2YgT2JqZWN0LnZhbHVlcyhyZXN1bHQpKSB7XG4gICAgY2F0ZWdvcnkuc2NvcGVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmIChhLnZhbHVlLmVuZHNXaXRoKFwiKlwiKSAmJiAhYi52YWx1ZS5lbmRzV2l0aChcIipcIikpIHJldHVybiAtMTtcbiAgICAgIGlmICghYS52YWx1ZS5lbmRzV2l0aChcIipcIikgJiYgYi52YWx1ZS5lbmRzV2l0aChcIipcIikpIHJldHVybiAxO1xuICAgICAgcmV0dXJuIGEudmFsdWUubG9jYWxlQ29tcGFyZShiLnZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ29tcGxldGUgZGljdGlvbmFyeSBvZiBhbGwgYXZhaWxhYmxlIHNjb3BlcyBvcmdhbml6ZWQgYnkgY2F0ZWdvcnkuXG4gKlxuICogVGhpcyBkaWN0aW9uYXJ5IGlzIGF1dG9tYXRpY2FsbHkgY29tcHV0ZWQgZnJvbSB7QGxpbmsgQWxsU2NvcGVzfSBieSBpbmZlcnJpbmdcbiAqIHRoZSBoaWVyYXJjaHkgZnJvbSBzY29wZSBuYW1lcy4gQSBzY29wZSdzIHBhcmVudCBpcyBkZXRlcm1pbmVkIGJ5IGZpbmRpbmcgYVxuICogc2NvcGUgZW5kaW5nIHdpdGggJyonIHRoYXQgaXMgYSBwcmVmaXggb2YgdGhlIGN1cnJlbnQgc2NvcGUuXG4gKlxuICogVGhlIGRpY3Rpb25hcnkgaXMgb3JnYW5pemVkIGludG8gdGhlIGZvbGxvd2luZyBjYXRlZ29yaWVzOlxuICogLSBgc2lnbmA6IFNjb3BlcyBmb3Igc2lnbmluZyBvcGVyYXRpb25zIChibG9iLCB0cmFuc2FjdGlvbnMsIGV0Yy4pXG4gKiAtIGBtYW5hZ2VgOiBTY29wZXMgZm9yIG1hbmFnZW1lbnQgb3BlcmF0aW9ucyAoa2V5cywgcm9sZXMsIHBvbGljaWVzLCBldGMuKVxuICogLSBgZXhwb3J0YDogU2NvcGVzIGZvciBleHBvcnQgb3BlcmF0aW9uc1xuICogLSBgbW1pYDogU2NvcGVzIGZvciBNZXRhTWFzayBJbnRlZ3JhdGlvblxuICogLSBgb3JnQWNjZXNzYDogU2NvcGVzIGZvciBjcm9zcy1vcmdhbml6YXRpb24gYWNjZXNzXG4gKlxuICogVGhpcyBkaWN0aW9uYXJ5IHNlcnZlcyBhcyB0aGUgc291cmNlIG9mIHRydXRoIGZvciBzY29wZSBkZWZpbml0aW9ucyBhbmQgaXMgdXNlZFxuICogdG8gZ2VuZXJhdGUgc2NvcGVzIGZvciByb2xlIGFuZCB1c2VyIHNlc3Npb25zLiBJdCBpcyBhbHNvIHJlZmVyZW5jZWQgYnlcbiAqIHtAbGluayByb2xlU2NvcGVzRGljdGlvbmFyeX0gYW5kIHtAbGluayB1c2VyU2NvcGVzRGljdGlvbmFyeX0gd2hpY2ggcHJvdmlkZVxuICogZmlsdGVyZWQgc3Vic2V0cyBvZiB0aGVzZSBzY29wZXMuXG4gKlxuICogQHNlZSB7QGxpbmsgQWxsU2NvcGVzfSAtIFRoZSBzb3VyY2UgcmVjb3JkIGNvbnRhaW5pbmcgc2NvcGUgZGVzY3JpcHRpb25zXG4gKiBAc2VlIHtAbGluayByb2xlU2NvcGVzRGljdGlvbmFyeX0gLSBSZXN0cmljdGVkIHNjb3BlcyBmb3Igcm9sZSBzZXNzaW9uc1xuICogQHNlZSB7QGxpbmsgdXNlclNjb3Blc0RpY3Rpb25hcnl9IC0gUmVzdHJpY3RlZCBzY29wZXMgZm9yIHVzZXIgc2Vzc2lvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IGFsbFNjb3Blc0RpY3Rpb25hcnk6IFNjb3Blc0RpY3Rpb25hcnkgPSBjb21wdXRlU2NvcGVzRGljdGlvbmFyeSgpO1xuXG4vKipcbiAqIFJlc3RyaWN0ZWQgc2NvcGVzIGRpY3Rpb25hcnkgZm9yIHJvbGUtYmFzZWQgc2Vzc2lvbiBnZW5lcmF0aW9uLlxuICogQ29udGFpbnMgb25seSB0aGUgc2NvcGVzIHRoYXQgYXJlIGFsbG93ZWQgZm9yIHJvbGUgc2Vzc2lvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCByb2xlU2NvcGVzRGljdGlvbmFyeSA9IHtcbiAgc2lnbjogYWxsU2NvcGVzRGljdGlvbmFyeS5zaWduLFxuICBtbWk6IGFsbFNjb3Blc0RpY3Rpb25hcnkubW1pLFxuICBtYW5hZ2U6IHtcbiAgICBsYWJlbDogXCJNYW5hZ2VcIixcbiAgICBzY29wZXM6IFtcbiAgICAgIC8vIEZpbmQgYW5kIGluY2x1ZGUgbWFuYWdlOm1taToqXG4gICAgICAoYWxsU2NvcGVzRGljdGlvbmFyeS5tYW5hZ2Uuc2NvcGVzIGFzIFNjb3BlSXRlbVtdKVxuICAgICAgICAuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6KlwiKSFcbiAgICAgICAgLmNoaWxkcmVuIS5maW5kKChzKSA9PiBzLnZhbHVlID09PSBcIm1hbmFnZTptbWk6KlwiKSEsXG4gICAgICAvLyBGaW5kIGFuZCBpbmNsdWRlIG1hbmFnZTptZmE6bGlzdFxuICAgICAgKGFsbFNjb3Blc0RpY3Rpb25hcnkubWFuYWdlLnNjb3BlcyBhcyBTY29wZUl0ZW1bXSlcbiAgICAgICAgLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6bWZhOipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6bWZhOmxpc3RcIikhLFxuICAgICAgLy8gRmluZCBhbmQgaW5jbHVkZSBtYW5hZ2U6a2V5OmdldFxuICAgICAgKGFsbFNjb3Blc0RpY3Rpb25hcnkubWFuYWdlLnNjb3BlcyBhcyBTY29wZUl0ZW1bXSlcbiAgICAgICAgLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6a2V5OipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6a2V5OmdldFwiKSEsXG4gICAgICAvLyBGaW5kIGFuZCBpbmNsdWRlIG1hbmFnZTprZXk6bGlzdFxuICAgICAgKGFsbFNjb3Blc0RpY3Rpb25hcnkubWFuYWdlLnNjb3BlcyBhcyBTY29wZUl0ZW1bXSlcbiAgICAgICAgLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6a2V5OipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6a2V5Omxpc3RcIikhLFxuICAgIF0sXG4gIH0sXG59IHNhdGlzZmllcyBTY29wZXNEaWN0aW9uYXJ5O1xuXG4vKipcbiAqIFJlc3RyaWN0ZWQgc2NvcGVzIGRpY3Rpb25hcnkgZm9yIHVzZXIgc2Vzc2lvbiBnZW5lcmF0aW9uLlxuICogRXhjbHVkZXMgc2NvcGVzIHRoYXQgcmVxdWlyZSBlbGV2YXRlZCBwZXJtaXNzaW9ucyAob3JnQWNjZXNzLCBleHBvcnQpLlxuICovXG5leHBvcnQgY29uc3QgdXNlclNjb3Blc0RpY3Rpb25hcnkgPSB7XG4gIG1hbmFnZTogYWxsU2NvcGVzRGljdGlvbmFyeS5tYW5hZ2UsXG4gIHNpZ246IGFsbFNjb3Blc0RpY3Rpb25hcnkuc2lnbixcbiAgbW1pOiBhbGxTY29wZXNEaWN0aW9uYXJ5Lm1taSxcbn07XG4iXX0=
333
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Njb3Blcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0NBQWdDOzs7QUFZaEMsbURBQW1EO0FBQ3RDLFFBQUEsU0FBUztBQUNwQixrQkFBa0I7QUFDbEI7SUFDQSxRQUFRLEVBQXdDLHVHQUF1RztJQUN2SixVQUFVLEVBQXNDLDBDQUEwQztJQUMxRixXQUFXLEVBQXFDLDJDQUEyQztJQUMzRixvQkFBb0IsRUFBNEIsd0pBQXdKO0lBQ3hNLFlBQVksRUFBb0Msb0NBQW9DO0lBQ3BGLGlCQUFpQixFQUErQiwrREFBK0Q7SUFDL0csa0JBQWtCLEVBQThCLGdFQUFnRTtJQUNoSCxpQkFBaUIsRUFBK0IsNkRBQTZEO0lBQzdHLG9CQUFvQixFQUE0QiwwREFBMEQ7SUFDMUcsc0JBQXNCLEVBQTBCLDREQUE0RDtJQUM1RyxzQkFBc0IsRUFBMEIsNERBQTREO0lBQzVHLHVCQUF1QixFQUF5Qiw2REFBNkQ7SUFDN0cseUJBQXlCLEVBQXVCLHFFQUFxRTtJQUNySCxvQkFBb0IsRUFBNEIsb0VBQW9FO0lBQ3BILHlCQUF5QixFQUF1QixtRUFBbUU7SUFDbkgseUJBQXlCLEVBQXVCLG1FQUFtRTtJQUNuSCxnQkFBZ0IsRUFBZ0Msd0NBQXdDO0lBQ3hGLHFCQUFxQixFQUEyQiw2Q0FBNkM7SUFDN0YsMEJBQTBCLEVBQXNCLHFEQUFxRDtJQUNyRyx3QkFBd0IsRUFBd0IsNENBQTRDO0lBQzVGLHdCQUF3QixFQUF3QiwwRUFBMEU7SUFDMUgsOEJBQThCLEVBQWtCLDREQUE0RDtJQUM1Ryw2QkFBNkIsRUFBbUIsNkRBQTZEO0lBQzdHLCtCQUErQixFQUFpQiwrREFBK0Q7SUFDL0csNEJBQTRCLEVBQW9CLDJFQUEyRTtJQUMzSCwyQkFBMkIsRUFBcUIsZ0VBQWdFO0lBQ2hILHVCQUF1QixFQUF5QixvRUFBb0U7SUFDcEgsWUFBWSxFQUFvQywyQ0FBMkM7SUFDM0YsYUFBYSxFQUFt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QUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUU7aUJBQ3BDLFFBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssY0FBYyxDQUFFO2lCQUNsRCxRQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLGlCQUFpQixDQUFFO1NBQ3pEO0tBQ0Y7Q0FDeUIsQ0FBQztBQUU3Qjs7O0dBR0c7QUFDVSxRQUFBLG9CQUFvQixHQUFHO0lBQ2xDLE1BQU0sRUFBRSwyQkFBbUIsQ0FBQyxNQUFNO0lBQ2xDLElBQUksRUFBRSwyQkFBbUIsQ0FBQyxJQUFJO0lBQzlCLEdBQUcsRUFBRSwyQkFBbUIsQ0FBQyxHQUFHO0NBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZSBzcGFjZWQtY29tbWVudFxuXG5pbXBvcnQgeyB0eXBlIEV4cGxpY2l0U2NvcGUgfSBmcm9tIFwiLlwiO1xuXG5leHBvcnQgdHlwZSBTY29wZXNEaWN0aW9uYXJ5ID0gUmVjb3JkPHN0cmluZywgeyBsYWJlbDogc3RyaW5nOyBzY29wZXM6IFNjb3BlSXRlbVtdIH0+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjb3BlSXRlbSB7XG4gIHZhbHVlOiBFeHBsaWNpdFNjb3BlO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBjaGlsZHJlbj86IFNjb3BlSXRlbVtdO1xufVxuXG4vKiogTWFwcGluZyBmcm9tIHNjb3BlIG5hbWUgdG8gc2NvcGUgZGVzY3JpcHRpb24gKi9cbmV4cG9ydCBjb25zdCBBbGxTY29wZXM6IFJlY29yZDxFeHBsaWNpdFNjb3BlLCBzdHJpbmc+ID1cbiAgLy8gcHJldHRpZXItaWdub3JlXG4gIHtcbiAgXCJzaWduOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHNpZ25lciBlbmRwb2ludHMgKGUuZy4sIHNpZ24gYmxvYiwgc2lnbiBiaXRjb2luL2F2YWxhbmNoZS9ldm0gdHJhbnNhY3Rpb24sIGV0Yy4pXCIsXG4gIFwic2lnbjphdmFcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduICdhdmEnIGVuZHBvaW50XCIsXG4gIFwic2lnbjpibG9iXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduICdibG9iJyBlbmRwb2ludFwiLFxuICBcInNpZ246ZGlmZmllSGVsbG1hblwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgRGlmZmllLUhlbGxtYW4gZW5kcG9pbnQuIFRoaXMgaXMgbm90IHJlYWxseSBzaWduaW5nLCBidXQgd2UgcHV0IGl0IHVuZGVyIHRoZSBgc2lnbmAgaGllcmFyY2h5IGJlY2F1c2UgaXQgaXMgY29uY2VwdHVhbGx5IHNpbWlsYXIuXCIsXG4gIFwic2lnbjpidGM6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBCVEMgZW5kcG9pbnRzXCIsXG4gIFwic2lnbjpidGM6c2Vnd2l0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciBzZWd3aXQgdHJhbnNhY3Rpb25zXCIsXG4gIFwic2lnbjpidGM6dGFwcm9vdFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciB0YXByb290IHRyYW5zYWN0aW9uc1wiLFxuICBcInNpZ246YnRjOnBzYnQ6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgUFNCVCBzaWduaW5nIGVuZHBvaW50IGZvciBhbnkga2V5IHR5cGVcIixcbiAgXCJzaWduOmJ0Yzpwc2J0OmRvZ2VcIiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIFBTQlQgc2lnbmluZyBlbmRwb2ludCBmb3IgRG9nZSBrZXlzXCIsXG4gIFwic2lnbjpidGM6cHNidDpsZWdhY3lcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBQU0JUIHNpZ25pbmcgZW5kcG9pbnQgZm9yIGxlZ2FjeSBrZXlzXCIsXG4gIFwic2lnbjpidGM6cHNidDpzZWd3aXRcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBQU0JUIHNpZ25pbmcgZW5kcG9pbnQgZm9yIHNlZ3dpdCBrZXlzXCIsXG4gIFwic2lnbjpidGM6cHNidDp0YXByb290XCIgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBQU0JUIHNpZ25pbmcgZW5kcG9pbnQgZm9yIHRhcHJvb3Qga2V5c1wiLFxuICBcInNpZ246YnRjOnBzYnQ6bHRjU2Vnd2l0XCIgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgUFNCVCBzaWduaW5nIGVuZHBvaW50IGZvciBMaXRlY29pbiBzZWd3aXQga2V5c1wiLFxuICBcInNpZ246YnRjOm1lc3NhZ2U6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgQlRDIG1lc3NhZ2Ugc2lnbmluZyBlbmRwb2ludCBmb3IgYW55IGtleSB0eXBlXCIsXG4gIFwic2lnbjpidGM6bWVzc2FnZTpzZWd3aXRcIiAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBCVEMgbWVzc2FnZSBzaWduaW5nIGVuZHBvaW50IGZvciBzZWd3aXQga2V5c1wiLFxuICBcInNpZ246YnRjOm1lc3NhZ2U6bGVnYWN5XCIgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgQlRDIG1lc3NhZ2Ugc2lnbmluZyBlbmRwb2ludCBmb3IgbGVnYWN5IGtleXNcIixcbiAgXCJzaWduOmJhYnlsb246KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIEJhYnlsb24gZW5kcG9pbnRzXCIsXG4gIFwic2lnbjpiYWJ5bG9uOmVvdHM6KlwiICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBCYWJ5bG9uIEVPVFMgZW5kcG9pbnRzXCIsXG4gIFwic2lnbjpiYWJ5bG9uOmVvdHM6bm9uY2VzXCIgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBFT1RTIG5vbmNlIGdlbmVyYXRpb24gZW5kcG9pbnRcIixcbiAgXCJzaWduOmJhYnlsb246ZW90czpzaWduXCIgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIEVPVFMgc2lnbmluZyBlbmRwb2ludFwiLFxuICBcInNpZ246YmFieWxvbjpzdGFraW5nOipcIiAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3IgYWxsIEJhYnlsb24gc3Rha2luZyBvcGVyYXRpb25zXCIsXG4gIFwic2lnbjpiYWJ5bG9uOnN0YWtpbmc6ZGVwb3NpdFwiICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciBCYWJ5bG9uIGRlcG9zaXRzXCIsXG4gIFwic2lnbjpiYWJ5bG9uOnN0YWtpbmc6dW5ib25kXCIgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciBCYWJ5bG9uIHVuYm9uZGluZ1wiLFxuICBcInNpZ246YmFieWxvbjpzdGFraW5nOndpdGhkcmF3XCIgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3IgQmFieWxvbiB3aXRoZHJhd2Fsc1wiLFxuICBcInNpZ246YmFieWxvbjpzdGFraW5nOnNsYXNoXCIgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3IgQmFieWxvbiBzbGFzaGluZyBwcmUtc2lnbmF0dXJlc1wiLFxuICBcInNpZ246YmFieWxvbjpyZWdpc3RyYXRpb25cIiAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3IgQmFieWxvbiByZWdpc3RyYXRpb25cIixcbiAgXCJzaWduOmJhYnlsb246Y292ZW5hbnRcIiAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIEJhYnlsb24gY292ZW5hbnQgc2lnbmluZ1wiLFxuICBcInNpZ246ZXZtOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgc2lnbiAnZXZtJyBlbmRwb2ludHNcIixcbiAgXCJzaWduOmV2bTp0eFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIGV2bSB0cmFuc2FjdGlvbnNcIixcbiAgXCJzaWduOmV2bTplaXAxOTFcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIEVJUC0xOTEgcGVyc29uYWxfbWVzc2FnZSBkYXRhXCIsXG4gIFwic2lnbjpldm06ZWlwNzEyXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIEVJUC03MTIgdHlwZWQgZGF0YVwiLFxuICBcInNpZ246ZXRoMjoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgc2lnbiAnZXRoMicgZW5kcG9pbnRzXCIsXG4gIFwic2lnbjpldGgyOnZhbGlkYXRlXCIgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduIGV0aDIgJ3ZhbGlkYXRlJyBlbmRwb2ludFwiLFxuICBcInNpZ246ZXRoMjpzdGFrZVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbiBldGgyICdzdGFrZScgZW5kcG9pbnRcIixcbiAgXCJzaWduOmV0aDI6dW5zdGFrZVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ24gZXRoMiAndW5zdGFrZScgZW5kcG9pbnRcIixcbiAgXCJzaWduOnNvbGFuYVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ24gJ3NvbGFuYScgZW5kcG9pbnRcIixcbiAgXCJzaWduOnN1aVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ24gJ3N1aScgZW5kcG9pbnRcIixcbiAgXCJzaWduOnRlbmRlcm1pbnRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ24gJ3RlbmRlcm1pbnQnIGVuZHBvaW50XCIsXG4gIFwic2lnbjptbWlcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduICdtbWknIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBtYW5hZ2VtZW50IGVuZHBvaW50cyAoZS5nLiwgY3JlYXRlIHJvbGUsIGNyZWF0ZSBrZXksIGFkZCBrZXkgdG8gcm9sZSwgZXRjLilcIixcbiAgXCJtYW5hZ2U6cmVhZG9ubHlcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIG1hbmFnZW1lbnQgcmVhZG9ubHkgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOmVtYWlsXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGVtYWlsIG1hbmFnZW1lbnQgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOm1mYToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gTUZBIGVuZHBvaW50cyAoZS5nLiwgZ2V0L2FwcHJvdmUgZXhpc3RpbmcgTUZBIHJlcXVlc3QpXCIsXG4gIFwibWFuYWdlOm1mYTpyZWFkb25seVwiICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gTUZBIHJlYWRvbmx5IGVuZHBvaW50cyAoZS5nLiwgZ2V0L2xpc3QgZXhpc3RpbmcgTUZBIHJlcXVlc3QocykpXCIsXG4gIFwibWFuYWdlOm1mYTpsaXN0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIE1GQSBsaXN0IGVuZHBvaW50IChsaXN0IGV4aXN0aW5nIE1GQSByZXF1ZXN0cylcIixcbiAgXCJtYW5hZ2U6bWZhOnZvdGU6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIE1GQSB2b3RlIGVuZHBvaW50cyAodm90ZSB1c2luZyBjdXJyZW50IEN1YmVTaWduZXIgc2Vzc2lvbiwgVE9UUCwgb3IgRklETylcIixcbiAgXCJtYW5hZ2U6bWZhOnZvdGU6Y3NcIiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBICd2b3RlIHdpdGggQ3ViZVNpZ25lcicgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6bWZhOnZvdGU6ZW1haWxcIiAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBICd2b3RlIHdpdGggZW1haWwnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOm1mYTp2b3RlOmZpZG9cIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIE1GQSAndm90ZSB3aXRoIFRPVFAnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOm1mYTp2b3RlOnRvdHBcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIE1GQSAndm90ZSB3aXRoIEZJRE8nIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOm1mYTpyZWdpc3RlcjoqXCIgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBNRkEgcmVnaXN0ZXIgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOm1mYTpyZWdpc3RlcjpmaWRvXCIgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIE1GQSAncmVnaXN0ZXIgVE9UUCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6bWZhOnJlZ2lzdGVyOnRvdHBcIiAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBICdyZWdpc3RlciBGSURPJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTptZmE6cmVnaXN0ZXI6ZW1haWxcIiAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBNRkEgJ3JlZ2lzdGVyIHZlcmlmaWVkIGVtYWlsJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTptZmE6dW5yZWdpc3RlcjoqXCIgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgTUZBIHVucmVnaXN0ZXIgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOm1mYTp1bnJlZ2lzdGVyOmZpZG9cIiAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIE1GQSAnZGVsZXRlIFRPVFAnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOm1mYTp1bnJlZ2lzdGVyOnRvdHBcIiAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIE1GQSAnZGVsZXRlIEZJRE8nIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOm1mYTp2ZXJpZnk6KlwiICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBNRkEgdmVyaWZ5IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTptZmE6dmVyaWZ5OnRvdHBcIiAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBNRkEgJ3ZlcmlmeSBUT1RQJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTprZXk6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwga2V5IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTprZXk6cmVhZG9ubHlcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwga2V5IHJlYWRvbmx5IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTprZXk6YXR0ZXN0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBrZXkgJ2F0dGVzdCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6a2V5OmdldFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICdnZXQnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmtleTpsaXN0Um9sZXNcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAnbGlzdFJvbGVzJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTprZXk6bGlzdFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBrZXkgJ2xpc3QnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmtleTpoaXN0b3J5OnR4Omxpc3RcIiAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAnbGlzdF9oaXN0b3JpY2FsX3R4JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTprZXk6Y3JlYXRlXCIgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIGtleSBjcmVhdGlvbiBlbmRwb2ludHMgKGUuZy4sICdjcmVhdGUnIGFuZCAnZGVyaXZlJylcIixcbiAgXCJtYW5hZ2U6a2V5OmltcG9ydFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICdpbXBvcnQnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmtleTp1cGRhdGU6KlwiICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAndXBkYXRlJyBlbmRwb2ludCwgd2l0aGluIHdoaWNoIGFsbG93aW5nIGFsbCBwb3NzaWJsZSB1cGRhdGVzXCIsXG4gIFwibWFuYWdlOmtleTp1cGRhdGU6b3duZXJcIiAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIGtleSBvd25lciBwcm9wZXJ0eVwiLFxuICBcIm1hbmFnZTprZXk6dXBkYXRlOnBvbGljeVwiICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBrZXkgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSBrZXkgcG9saWN5IHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOmtleTp1cGRhdGU6ZW5hYmxlZFwiICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIGtleSBlbmFibGVkIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOmtleTp1cGRhdGU6bWV0YWRhdGFcIiAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAndXBkYXRlJyBlbmRwb2ludCBhbmQgcmVzdHJpY3RzIHVwZGF0ZXMgdG8gdGhlIGtleSBtZXRhZGF0YSBwcm9wZXJ0eVwiLFxuICBcIm1hbmFnZTprZXk6dXBkYXRlOmVkaXRQb2xpY3lcIiAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBrZXkgJ3VwZGF0ZScgZW5kcG9pbnQgYW5kIHJlc3RyaWN0cyB1cGRhdGVzIHRvIHRoZSAnZWRpdF9wb2xpY3knIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOmtleTpkZWxldGVcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAnZGVsZXRlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpwb2xpY3k6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgcG9saWN5IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpwb2xpY3k6Y3JlYXRlXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgY3JlYXRpb24gZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cG9saWN5OmdldFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5ICdnZXQnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnBvbGljeTpsaXN0XCIgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSAnbGlzdCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cG9saWN5OmRlbGV0ZVwiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5IGBkZWxldGVgIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnBvbGljeTp1cGRhdGU6KlwiICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSAndXBkYXRlJyBlbmRwb2ludCwgd2l0aGluIHdoaWNoIGFsbG93aW5nIGFsbCBwb3NzaWJsZSB1cGRhdGVzXCIsXG4gIFwibWFuYWdlOnBvbGljeTp1cGRhdGU6YWNsXCIgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIHBvbGljeSBBQ0xcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZTpvd25lclwiICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUgcG9saWN5IG93bmVyIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOnBvbGljeTp1cGRhdGU6bmFtZVwiICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIHBvbGljeSBuYW1lXCIsXG4gIFwibWFuYWdlOnBvbGljeTp1cGRhdGU6ZWRpdFBvbGljeVwiICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlICdlZGl0X3BvbGljeScgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZTptZXRhZGF0YVwiICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUgJ21ldGFkYXRhJyBwcm9wZXJ0eVwiLFxuICBcIm1hbmFnZTpwb2xpY3k6dXBkYXRlOnJ1bGVcIiAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSBwb2xpY3kgcnVsZSBpdHNlbGZcIixcbiAgXCJtYW5hZ2U6cG9saWN5Omludm9rZVwiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5ICdpbnZva2UnIGVuZHBvaW50LlwiLFxuICBcIm1hbmFnZTpwb2xpY3k6d2FzbToqXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgd2FzbSBwb2xpY3kgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOnBvbGljeTp3YXNtOnVwbG9hZFwiICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHdhc20gcG9saWN5ICd1cGxvYWQnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnBvbGljeTpzZWNyZXRzOipcIiAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBwb2xpY3kgc2VjcmV0cyBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnNlY3JldHM6Z2V0XCIgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5IHNlY3JldHMgJ2dldCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnNlY3JldHM6dXBkYXRlOipcIiAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHBvbGljeSBzZWNyZXRzICd1cGRhdGUnIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpwb2xpY3k6c2VjcmV0czp1cGRhdGU6dmFsdWVzXCIgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgc2VjcmV0cyAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIHNlY3JldHMga2V5cyBhbmQgdmFsdWVzXCIsXG4gIFwibWFuYWdlOnBvbGljeTpzZWNyZXRzOnVwZGF0ZTphY2xcIiAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSBzZWNyZXRzICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUgc2VjcmV0cyBhY2xcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnNlY3JldHM6dXBkYXRlOmVkaXRQb2xpY3lcIiAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5IHNlY3JldHMgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSBgZWRpdF9wb2xpY3lgIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOmNvbnRhY3Q6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBjb250YWN0IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpjb250YWN0OmNyZWF0ZVwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgY29udGFjdCAnY3JlYXRlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpjb250YWN0OmdldFwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgY29udGFjdCBgZ2V0YCBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpjb250YWN0Omxpc3RcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgY29udGFjdCBgbGlzdGAgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6Y29udGFjdDpkZWxldGVcIiAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIGNvbnRhY3QgYGRlbGV0ZWAgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6Y29udGFjdDp1cGRhdGU6KlwiICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgY29udGFjdCAndXBkYXRlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTpuYW1lXCIgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBjb250YWN0ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RzIHVwZGF0ZXMgdG8gdGhlIGNvbnRhY3QncyAnbmFtZScgZmllbGQuXCIsXG4gIFwibWFuYWdlOmNvbnRhY3Q6dXBkYXRlOmFkZHJlc3Nlc1wiICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGNvbnRhY3QgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdHMgdXBkYXRlcyB0byB0aGUgY29udGFjdCdzICdhZGRyZXNzZXMnIGZpZWxkLlwiLFxuICBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTpvd25lclwiICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBjb250YWN0ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RzIHVwZGF0ZXMgdG8gdGhlIGNvbnRhY3QncyAnb3duZXInIGZpZWxkLlwiLFxuICBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTptZXRhZGF0YVwiICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBjb250YWN0ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RzIHVwZGF0ZXMgdG8gdGhlIGNvbnRhY3QncyAnbWV0YWRhdGEnIGZpZWxkLlwiLFxuICBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTplZGl0UG9saWN5XCIgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBjb250YWN0ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RzIHVwZGF0ZXMgdG8gdGhlIGNvbnRhY3QncyAnZWRpdF9wb2xpY3knIGZpZWxkLlwiLFxuICBcIm1hbmFnZTpjb250YWN0Omxvb2t1cDoqXCIgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgY29udGFjdCBgbG9va3VwYCBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6Y29udGFjdDpsb29rdXA6YWRkcmVzc1wiICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgY29udGFjdCAnbG9va3VwIGJ5IGFkZHJlc3MnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnBvbGljeTpjcmVhdGVJbXBvcnRLZXlcIiAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSBrZXkgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cm9sZToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHJvbGUgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOnJvbGU6cmVhZG9ubHlcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCByb2xlIHJlYWRvbmx5IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpyb2xlOmNyZWF0ZVwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSByb2xlICdjcmVhdGUnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnJvbGU6ZGVsZXRlXCIgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ2RlbGV0ZScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cm9sZTpnZXQ6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcm9sZSAnZ2V0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOmdldDprZXlzXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAnbGlzdCBrZXlzJyBhbmQgJ2dldCBrZXknIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpyb2xlOmdldDprZXlzOmxpc3RcIiAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAnbGlzdCBrZXlzJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOmdldDprZXlzOmdldFwiICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAnZ2V0IGtleScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cm9sZTpnZXQ6dXNlcnNcIiAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHJvbGUgJ2xpc3QgdXNlcnMnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnJvbGU6bGlzdFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ2xpc3QnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnJvbGU6dXBkYXRlOipcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ3VwZGF0ZScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cm9sZTp1cGRhdGU6ZW5hYmxlZFwiICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcm9sZSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIHJvbGUgJ2VuYWJsZWQnIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOnJvbGU6dXBkYXRlOnBvbGljeVwiICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSByb2xlICdwb2xpY3knIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOnJvbGU6dXBkYXRlOmVkaXRQb2xpY3lcIiAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSByb2xlICdlZGl0X3BvbGljeScgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6cm9sZTp1cGRhdGU6a2V5OipcIiAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHJvbGUgJ3VwZGF0ZTprZXknIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTprZXk6YWRkXCIgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAndXBkYXRlOmtleXM6YWRkJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTprZXk6cmVtb3ZlXCIgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAndXBkYXRlOmtleXM6cmVtb3ZlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTp1c2VyOipcIiAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgcm9sZSAndXBkYXRlOnVzZXInIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTp1c2VyOmFkZFwiICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAndXBkYXRlOnVzZXI6YWRkJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTp1c2VyOnJlbW92ZVwiICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAndXBkYXRlOnVzZXI6cmVtb3ZlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOmhpc3Rvcnk6dHg6bGlzdFwiICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSByb2xlICdsaXN0X2hpc3RvcmljYWxfdHgnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmlkZW50aXR5OipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBpZGVudGl0eSBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6aWRlbnRpdHk6dmVyaWZ5XCIgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgaWRlbnRpdHkgJ3ZlcmlmeScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6aWRlbnRpdHk6YWRkXCIgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgaWRlbnRpdHkgJ2FkZCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6aWRlbnRpdHk6cmVtb3ZlXCIgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgaWRlbnRpdHkgJ3JlbW92ZScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6aWRlbnRpdHk6bGlzdFwiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgaWRlbnRpdHkgJ2xpc3QnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOm9yZzoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBvcmcgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOm9yZzpjcmVhdGVcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBvcmcgJ2NyZWF0ZScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6b3JnOm1ldHJpY3M6cXVlcnlcIiAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gcmV0cmlldmluZyBvcmcgbWV0cmljc1wiLFxuICBcIm1hbmFnZTpvcmc6cmVhZG9ubHlcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgb3JnIHJlYWRvbmx5IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpvcmc6YWRkVXNlclwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIGFkZGluZyBhbiBPSURDIHVzZXIgdG8gdGhlIG9yZ1wiLFxuICBcIm1hbmFnZTpvcmc6aW52aXRlVXNlclwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIGludml0aW5nIGEgbmV3IG1lbWJlciBvciBvcmcgb3duZXIgdG8gdGhlIG9yZ1wiLFxuICBcIm1hbmFnZTpvcmc6aW52aXRlQWxpZW5cIiAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIGludml0aW5nIGEgbmV3IGFsaWVuIHVzZXIgdG8gdGhlIG9yZ1wiLFxuICBcIm1hbmFnZTpvcmc6dXBkYXRlTWVtYmVyc2hpcFwiICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIHVwZGF0aW5nIGV4aXN0aW5nIHVzZXIncyBvcmcgbWVtYmVyc2hpcFwiLFxuICBcIm1hbmFnZTpvcmc6bGlzdFVzZXJzXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIGxpc3RpbmcgYWxsIG9yZyB1c2VycyAobWVtYmVycylcIixcbiAgXCJtYW5hZ2U6b3JnOnVzZXI6Z2V0XCIgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgb3JnIGVuZHBvaW50cyBmb3IgZ2V0dGluZyB1c2VycyBieSBpZCBvciBlbWFpbFwiLFxuICBcIm1hbmFnZTpvcmc6ZGVsZXRlVXNlclwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIGRlbGV0aW5nIGFuIE9JREMgdXNlclwiLFxuICBcIm1hbmFnZTpvcmc6Z2V0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byByZXRyaWV2aW5nIG9yZ2FuaXphdGlvbiBpbmZvcm1hdGlvblwiLFxuICBcIm1hbmFnZTpvcmc6dXNlcjpyZXNldE1mYVwiICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFuIG93bmVyIHRvIGluaXRpYXRlIGFuIE1GQSByZXNldCBmb3IgYSB1c2VyXCIsXG4gIFwibWFuYWdlOnNlc3Npb246KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBzZXNzaW9uIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpzZXNzaW9uOnJlYWRvbmx5XCIgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgc2Vzc2lvbiByZWFkb25seSBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6c2Vzc2lvbjpnZXRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgc2Vzc2lvbiAnZ2V0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpzZXNzaW9uOmxpc3RcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBzZXNzaW9uICdsaXN0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpzZXNzaW9uOmNyZWF0ZVwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBzZXNzaW9uICdjcmVhdGUnIGVuZHBvaW50LCBidXQgd2l0aG91dCB0aGUgYWJpbGl0eSB0byBleHRlbmQgc2Vzc2lvbiBsaWZldGltZXNcIixcbiAgXCJtYW5hZ2U6c2Vzc2lvbjpleHRlbmRcIiAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgc2Vzc2lvbiAnY3JlYXRlJyBlbmRwb2ludCwgaW5jbHVkaW5nIHRoZSBhYmlsaXR5IHRvIGV4dGVuZCBzZXNzaW9uIGxpZmV0aW1lc1wiLFxuICBcIm1hbmFnZTpzZXNzaW9uOnJldm9rZVwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBzZXNzaW9uICdyZXZva2UnIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpleHBvcnQ6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgZXhwb3J0IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpleHBvcnQ6b3JnOipcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgb3JnLWV4cG9ydCBtYW5hZ2VtZW50IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpleHBvcnQ6b3JnOmdldFwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgb3JnLWV4cG9ydCBkb3dubG9hZCBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpleHBvcnQ6dXNlcjoqXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgdXNlci1leHBvcnQgbWFuYWdlbWVudCBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6ZXhwb3J0OnVzZXI6ZGVsZXRlXCIgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBkZWxldGluZyBhbiBleGlzdGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0XCIsXG4gIFwibWFuYWdlOmV4cG9ydDp1c2VyOmxpc3RcIiAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgbGlzdGluZyBleGlzdGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0c1wiLFxuICBcIm1hbmFnZTphdXRoTWlncmF0aW9uOipcIiAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFsbCBhdXRoIG1pZ3JhdGlvbiBzY29wZXNcIixcbiAgXCJtYW5hZ2U6YXV0aE1pZ3JhdGlvbjppZGVudGl0eTphZGRcIiAgICAgICAgICAgOiBcIkFsbG93cyBhZGRpbmcgaWRlbnRpdGllcyB0byBleGlzdGluZyB1c2VycyBkdXJpbmcgYW4gYXV0aCBtaWdyYXRpb25cIixcbiAgXCJtYW5hZ2U6YXV0aE1pZ3JhdGlvbjppZGVudGl0eTpyZW1vdmVcIiAgICAgICAgOiBcIkFsbG93cyByZW1vdmluZyBpZGVudGl0aWVzIGZyb20gZXhpc3RpbmcgdXNlcnMgZHVyaW5nIGFuIGF1dGggbWlncmF0aW9uXCIsXG4gIFwibWFuYWdlOmF1dGhNaWdyYXRpb246dXNlcjp1cGRhdGVcIiAgICAgICAgICAgIDogXCJBbGxvd3MgdXBkYXRpbmcgZXhpc3RpbmcgdXNlcnMnIHByb2ZpbGVzXCIsXG4gIFwibWFuYWdlOm1taToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWxsIENSVUQgb3BlcmF0aW9ucyBvbiBNTUkgcGVuZGluZyBtZXNzYWdlc1wiLFxuICBcIm1hbmFnZTptbWk6cmVhZG9ubHlcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFsbCByZWFkb25seSBvcGVyYXRpb25zIG9uIE1NSSBwZW5kaW5nIG1lc3NhZ2VzXCIsXG4gIFwibWFuYWdlOm1taTpnZXRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgcmV0cmlldmluZyBNTUkgcGVuZGluZyBtZXNzYWdlc1wiLFxuICBcIm1hbmFnZTptbWk6bGlzdFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGxpc3RpbmcgTU1JIHBlbmRpbmcgbWVzc2FnZXNcIixcbiAgXCJtYW5hZ2U6bW1pOnJlamVjdFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyByZWplY3RpbmcgTU1JIHBlbmRpbmcgbWVzc2FnZXNcIixcbiAgXCJtYW5hZ2U6bW1pOmRlbGV0ZVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBkZWxldGluZyBNTUkgcGVuZGluZyBtZXNzYWdlc1wiLFxuICBcImV4cG9ydDoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgZXhwb3J0IGVuZHBvaW50c1wiLFxuICBcImV4cG9ydDp1c2VyOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgdXNlci1leHBvcnQgZXhlY3V0aW9uIGVuZHBvaW50c1wiLFxuICBcImV4cG9ydDp1c2VyOmluaXRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGluaXRpYXRpbmcgYSBuZXcgdXNlci1leHBvcnQgcmVxdWVzdFwiLFxuICBcImV4cG9ydDp1c2VyOmNvbXBsZXRlXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGNvbXBsZXRpbmcgYW4gZXhpc3RpbmcgdXNlci1leHBvcnQgcmVxdWVzdFwiLFxuICBcIm1taToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGNhbGxzIHRvIHRoZSBNTUkgZW5kcG9pbnRcIixcbiAgXCJvcmdBY2Nlc3M6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gY2VydGFpbiBvcmdzIG90aGVyIHRoYW4gdGhlIGN1cnJlbnQgc2Vzc2lvbidzXCIsXG4gIFwib3JnQWNjZXNzOmNoaWxkOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYSBzZXNzaW9uIHRvIGJlIHVzZWQgZm9yIGFjY2VzcyB0byBvcmdzIHRyYW5zaXRpdmVseSBwYXJlbnRlZCBieSB0aGUgc2Vzc2lvbidzIG9yZy5cIixcbn07XG5cbi8vIENvbnN0IGZvciBzY29wZSBjYXRlZ29yeSBsYWJlbHNcbmNvbnN0IENBVEVHT1JZX0xBQkVMUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgc2lnbjogXCJTaWduXCIsXG4gIG1hbmFnZTogXCJNYW5hZ2VcIixcbiAgZXhwb3J0OiBcIkV4cG9ydFwiLFxuICBtbWk6IFwiTU1JXCIsXG4gIG9yZ0FjY2VzczogXCJPcmcgQWNjZXNzXCIsXG59O1xuXG4vKipcbiAqIEZpbmRzIHRoZSBwYXJlbnQgc2NvcGUgZm9yIGEgZ2l2ZW4gc2NvcGUuXG4gKiBBIHBhcmVudCBpcyBhIHNjb3BlIGVuZGluZyB3aXRoICcqJyB0aGF0IGlzIGEgcHJlZml4IG9mIHRoZSBjdXJyZW50IHNjb3BlLlxuICogUmV0dXJucyB0aGUgbG9uZ2VzdCBtYXRjaGluZyBwYXJlbnQgKGNsb3Nlc3QgYW5jZXN0b3IpLCBleGNsdWRpbmcgdGhlIHNjb3BlIGl0c2VsZi5cbiAqXG4gKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIHRvIGZpbmQgdGhlIHBhcmVudCBmb3IuXG4gKiBAcGFyYW0gYWxsU2NvcGVzIFRoZSBsaXN0IG9mIGFsbCBzY29wZXMuXG4gKiBAcmV0dXJucyBUaGUgcGFyZW50IHNjb3BlIG9yIG51bGwgaWYgbm8gcGFyZW50IGlzIGZvdW5kLlxuICovXG5mdW5jdGlvbiBmaW5kUGFyZW50KHNjb3BlOiBFeHBsaWNpdFNjb3BlLCBhbGxTY29wZXM6IEV4cGxpY2l0U2NvcGVbXSk6IEV4cGxpY2l0U2NvcGUgfCBudWxsIHtcbiAgbGV0IHBhcmVudDogRXhwbGljaXRTY29wZSB8IG51bGwgPSBudWxsO1xuICBsZXQgbWF4TGVuZ3RoID0gMDtcblxuICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBhbGxTY29wZXMpIHtcbiAgICAvLyBTa2lwIHRoZSBzY29wZSBpdHNlbGZcbiAgICBpZiAoY2FuZGlkYXRlID09PSBzY29wZSkgY29udGludWU7XG5cbiAgICBpZiAoY2FuZGlkYXRlLmVuZHNXaXRoKFwiKlwiKSAmJiBzY29wZS5zdGFydHNXaXRoKGNhbmRpZGF0ZS5zbGljZSgwLCAtMSkpKSB7XG4gICAgICAvLyBQcmVmZXIgdGhlIGxvbmdlc3QgbWF0Y2hpbmcgcGFyZW50IChjbG9zZXN0IGFuY2VzdG9yKVxuICAgICAgaWYgKGNhbmRpZGF0ZS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICAgICAgcGFyZW50ID0gY2FuZGlkYXRlO1xuICAgICAgICBtYXhMZW5ndGggPSBjYW5kaWRhdGUubGVuZ3RoO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJlbnQ7XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIHNjb3BlcyBkaWN0aW9uYXJ5IGZyb20gQWxsU2NvcGVzLlxuICpcbiAqIEByZXR1cm5zIFRoZSBjb21wbGV0ZSBkaWN0aW9uYXJ5IG9mIGFsbCBhdmFpbGFibGUgc2NvcGVzIG9yZ2FuaXplZCBieSBjYXRlZ29yeS5cbiAqL1xuZnVuY3Rpb24gY29tcHV0ZVNjb3Blc0RpY3Rpb25hcnkoKTogU2NvcGVzRGljdGlvbmFyeSB7XG4gIGNvbnN0IGFsbFNjb3BlcyA9IE9iamVjdC5rZXlzKEFsbFNjb3BlcykgYXMgRXhwbGljaXRTY29wZVtdO1xuICBjb25zdCBpdGVtcyA9IG5ldyBNYXA8RXhwbGljaXRTY29wZSwgU2NvcGVJdGVtPigpO1xuICBjb25zdCByZXN1bHQ6IFNjb3Blc0RpY3Rpb25hcnkgPSB7fTtcblxuICAvLyBGaXJzdCBwYXNzOiBjcmVhdGUgYWxsIGl0ZW1zXG4gIGZvciAoY29uc3Qgc2NvcGUgb2YgYWxsU2NvcGVzKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBzY29wZS5zcGxpdChcIjpcIilbMF07XG4gICAgaWYgKCFyZXN1bHRbY2F0ZWdvcnldKSB7XG4gICAgICByZXN1bHRbY2F0ZWdvcnldID0geyBsYWJlbDogQ0FURUdPUllfTEFCRUxTW2NhdGVnb3J5XSB8fCBjYXRlZ29yeSwgc2NvcGVzOiBbXSB9O1xuICAgIH1cblxuICAgIGl0ZW1zLnNldChzY29wZSwge1xuICAgICAgdmFsdWU6IHNjb3BlLFxuICAgICAgZGVzY3JpcHRpb246IEFsbFNjb3Blc1tzY29wZV0sXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgfSk7XG4gIH1cblxuICAvLyBTZWNvbmQgcGFzczogYnVpbGQgcGFyZW50LWNoaWxkIHJlbGF0aW9uc2hpcHNcbiAgZm9yIChjb25zdCBzY29wZSBvZiBhbGxTY29wZXMpIHtcbiAgICBjb25zdCBjYXRlZ29yeSA9IHNjb3BlLnNwbGl0KFwiOlwiKVswXTtcbiAgICBjb25zdCBpdGVtID0gaXRlbXMuZ2V0KHNjb3BlKSE7XG4gICAgY29uc3QgcGFyZW50U2NvcGUgPSBmaW5kUGFyZW50KHNjb3BlLCBhbGxTY29wZXMpO1xuXG4gICAgaWYgKHBhcmVudFNjb3BlICYmIHBhcmVudFNjb3BlICE9PSBzY29wZSkge1xuICAgICAgaXRlbXMuZ2V0KHBhcmVudFNjb3BlKSEuY2hpbGRyZW4hLnB1c2goaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFtjYXRlZ29yeV0uc2NvcGVzLnB1c2goaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU29ydCByb290czogd2lsZGNhcmRzIGZpcnN0XG4gIGZvciAoY29uc3QgY2F0ZWdvcnkgb2YgT2JqZWN0LnZhbHVlcyhyZXN1bHQpKSB7XG4gICAgY2F0ZWdvcnkuc2NvcGVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmIChhLnZhbHVlLmVuZHNXaXRoKFwiKlwiKSAmJiAhYi52YWx1ZS5lbmRzV2l0aChcIipcIikpIHJldHVybiAtMTtcbiAgICAgIGlmICghYS52YWx1ZS5lbmRzV2l0aChcIipcIikgJiYgYi52YWx1ZS5lbmRzV2l0aChcIipcIikpIHJldHVybiAxO1xuICAgICAgcmV0dXJuIGEudmFsdWUubG9jYWxlQ29tcGFyZShiLnZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ29tcGxldGUgZGljdGlvbmFyeSBvZiBhbGwgYXZhaWxhYmxlIHNjb3BlcyBvcmdhbml6ZWQgYnkgY2F0ZWdvcnkuXG4gKlxuICogVGhpcyBkaWN0aW9uYXJ5IGlzIGF1dG9tYXRpY2FsbHkgY29tcHV0ZWQgZnJvbSB7QGxpbmsgQWxsU2NvcGVzfSBieSBpbmZlcnJpbmdcbiAqIHRoZSBoaWVyYXJjaHkgZnJvbSBzY29wZSBuYW1lcy4gQSBzY29wZSdzIHBhcmVudCBpcyBkZXRlcm1pbmVkIGJ5IGZpbmRpbmcgYVxuICogc2NvcGUgZW5kaW5nIHdpdGggJyonIHRoYXQgaXMgYSBwcmVmaXggb2YgdGhlIGN1cnJlbnQgc2NvcGUuXG4gKlxuICogVGhlIGRpY3Rpb25hcnkgaXMgb3JnYW5pemVkIGludG8gdGhlIGZvbGxvd2luZyBjYXRlZ29yaWVzOlxuICogLSBgc2lnbmA6IFNjb3BlcyBmb3Igc2lnbmluZyBvcGVyYXRpb25zIChibG9iLCB0cmFuc2FjdGlvbnMsIGV0Yy4pXG4gKiAtIGBtYW5hZ2VgOiBTY29wZXMgZm9yIG1hbmFnZW1lbnQgb3BlcmF0aW9ucyAoa2V5cywgcm9sZXMsIHBvbGljaWVzLCBldGMuKVxuICogLSBgZXhwb3J0YDogU2NvcGVzIGZvciBleHBvcnQgb3BlcmF0aW9uc1xuICogLSBgbW1pYDogU2NvcGVzIGZvciBNZXRhTWFzayBJbnRlZ3JhdGlvblxuICogLSBgb3JnQWNjZXNzYDogU2NvcGVzIGZvciBjcm9zcy1vcmdhbml6YXRpb24gYWNjZXNzXG4gKlxuICogVGhpcyBkaWN0aW9uYXJ5IHNlcnZlcyBhcyB0aGUgc291cmNlIG9mIHRydXRoIGZvciBzY29wZSBkZWZpbml0aW9ucyBhbmQgaXMgdXNlZFxuICogdG8gZ2VuZXJhdGUgc2NvcGVzIGZvciByb2xlIGFuZCB1c2VyIHNlc3Npb25zLiBJdCBpcyBhbHNvIHJlZmVyZW5jZWQgYnlcbiAqIHtAbGluayByb2xlU2NvcGVzRGljdGlvbmFyeX0gYW5kIHtAbGluayB1c2VyU2NvcGVzRGljdGlvbmFyeX0gd2hpY2ggcHJvdmlkZVxuICogZmlsdGVyZWQgc3Vic2V0cyBvZiB0aGVzZSBzY29wZXMuXG4gKlxuICogQHNlZSB7QGxpbmsgQWxsU2NvcGVzfSAtIFRoZSBzb3VyY2UgcmVjb3JkIGNvbnRhaW5pbmcgc2NvcGUgZGVzY3JpcHRpb25zXG4gKiBAc2VlIHtAbGluayByb2xlU2NvcGVzRGljdGlvbmFyeX0gLSBSZXN0cmljdGVkIHNjb3BlcyBmb3Igcm9sZSBzZXNzaW9uc1xuICogQHNlZSB7QGxpbmsgdXNlclNjb3Blc0RpY3Rpb25hcnl9IC0gUmVzdHJpY3RlZCBzY29wZXMgZm9yIHVzZXIgc2Vzc2lvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IGFsbFNjb3Blc0RpY3Rpb25hcnk6IFNjb3Blc0RpY3Rpb25hcnkgPSBjb21wdXRlU2NvcGVzRGljdGlvbmFyeSgpO1xuXG4vKipcbiAqIFJlc3RyaWN0ZWQgc2NvcGVzIGRpY3Rpb25hcnkgZm9yIHJvbGUtYmFzZWQgc2Vzc2lvbiBnZW5lcmF0aW9uLlxuICogQ29udGFpbnMgb25seSB0aGUgc2NvcGVzIHRoYXQgYXJlIGFsbG93ZWQgZm9yIHJvbGUgc2Vzc2lvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCByb2xlU2NvcGVzRGljdGlvbmFyeSA9IHtcbiAgc2lnbjogYWxsU2NvcGVzRGljdGlvbmFyeS5zaWduLFxuICBtbWk6IGFsbFNjb3Blc0RpY3Rpb25hcnkubW1pLFxuICBtYW5hZ2U6IHtcbiAgICBsYWJlbDogXCJNYW5hZ2VcIixcbiAgICBzY29wZXM6IFtcbiAgICAgIC8vIEZpbmQgYW5kIGluY2x1ZGUgbWFuYWdlOm1taToqXG4gICAgICAoYWxsU2NvcGVzRGljdGlvbmFyeS5tYW5hZ2Uuc2NvcGVzIGFzIFNjb3BlSXRlbVtdKVxuICAgICAgICAuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6KlwiKSFcbiAgICAgICAgLmNoaWxkcmVuIS5maW5kKChzKSA9PiBzLnZhbHVlID09PSBcIm1hbmFnZTptbWk6KlwiKSEsXG4gICAgICAvLyBGaW5kIGFuZCBpbmNsdWRlIG1hbmFnZTptZmE6bGlzdFxuICAgICAgKGFsbFNjb3Blc0RpY3Rpb25hcnkubWFuYWdlLnNjb3BlcyBhcyBTY29wZUl0ZW1bXSlcbiAgICAgICAgLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6bWZhOipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6bWZhOmxpc3RcIikhLFxuICAgICAgLy8gRmluZCBhbmQgaW5jbHVkZSBtYW5hZ2U6a2V5OmdldFxuICAgICAgKGFsbFNjb3Blc0RpY3Rpb25hcnkubWFuYWdlLnNjb3BlcyBhcyBTY29wZUl0ZW1bXSlcbiAgICAgICAgLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6a2V5OipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6a2V5OmdldFwiKSEsXG4gICAgICAvLyBGaW5kIGFuZCBpbmNsdWRlIG1hbmFnZTprZXk6bGlzdFxuICAgICAgKGFsbFNjb3Blc0RpY3Rpb25hcnkubWFuYWdlLnNjb3BlcyBhcyBTY29wZUl0ZW1bXSlcbiAgICAgICAgLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6a2V5OipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6a2V5Omxpc3RcIikhLFxuICAgIF0sXG4gIH0sXG59IHNhdGlzZmllcyBTY29wZXNEaWN0aW9uYXJ5O1xuXG4vKipcbiAqIFJlc3RyaWN0ZWQgc2NvcGVzIGRpY3Rpb25hcnkgZm9yIHVzZXIgc2Vzc2lvbiBnZW5lcmF0aW9uLlxuICogRXhjbHVkZXMgc2NvcGVzIHRoYXQgcmVxdWlyZSBlbGV2YXRlZCBwZXJtaXNzaW9ucyAob3JnQWNjZXNzLCBleHBvcnQpLlxuICovXG5leHBvcnQgY29uc3QgdXNlclNjb3Blc0RpY3Rpb25hcnkgPSB7XG4gIG1hbmFnZTogYWxsU2NvcGVzRGljdGlvbmFyeS5tYW5hZ2UsXG4gIHNpZ246IGFsbFNjb3Blc0RpY3Rpb25hcnkuc2lnbixcbiAgbW1pOiBhbGxTY29wZXNEaWN0aW9uYXJ5Lm1taSxcbn07XG4iXX0=
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "url": "git+https://github.com/cubist-labs/CubeSigner-TypeScript-SDK.git",
6
6
  "directory": "packages/sdk"
7
7
  },
8
- "version": "0.4.206",
8
+ "version": "0.4.209",
9
9
  "description": "CubeSigner TypeScript SDK",
10
10
  "license": "MIT OR Apache-2.0",
11
11
  "author": "Cubist, Inc.",
package/src/role.ts CHANGED
@@ -451,9 +451,24 @@ export type AllowEip712Signing = typeof AllowEip712Signing;
451
451
  export const AllowBtcMessageSigning = "AllowBtcMessageSigning" as const;
452
452
  export type AllowBtcMessageSigning = typeof AllowBtcMessageSigning;
453
453
 
454
- /** A reference to an org-level named policy and its version */
454
+ export type AllowPolicy =
455
+ | AllowRawBlobSigning
456
+ | AllowDiffieHellmanExchange
457
+ | AllowEip191Signing
458
+ | AllowEip712Signing
459
+ | AllowBtcMessageSigning;
460
+
461
+ /** A reference to an org-level named policy, using its name/id and its version */
455
462
  export type PolicyReference = `${string}/v${number}` | `${string}/latest`;
456
463
 
464
+ /**
465
+ * A reference to an org-level named policy using its id.
466
+ * We cannot use the policy's name in this format.
467
+ */
468
+ export type NamedPolicyReference = {
469
+ Reference: PolicyReference;
470
+ };
471
+
457
472
  /** Key policies that restrict the requests that the signing endpoints accept */
458
473
  export type KeyDenyPolicy =
459
474
  | TxReceiver
@@ -472,7 +487,11 @@ export type KeyDenyPolicy =
472
487
  | RequireMfa
473
488
  | RequireRoleSession
474
489
  | BabylonStaking
475
- | WebhookPolicy;
490
+ | WebhookPolicy
491
+ | PolicyAnd
492
+ | PolicyOr
493
+ | PolicyNot
494
+ | NamedPolicyReference;
476
495
 
477
496
  /**
478
497
  * Key policy
@@ -502,20 +521,25 @@ export type KeyDenyPolicy =
502
521
  */
503
522
  export type KeyPolicy = KeyPolicyRule[];
504
523
 
505
- export type KeyPolicyRule =
506
- | KeyDenyPolicy
507
- | AllowRawBlobSigning
508
- | AllowDiffieHellmanExchange
509
- | AllowEip191Signing
510
- | AllowEip712Signing
511
- | AllowBtcMessageSigning
512
- | PolicyReference;
524
+ export type KeyPolicyRule = KeyDenyPolicy | AllowPolicy | PolicyReference;
513
525
 
514
526
  /** Role policy */
515
527
  export type RolePolicy = RolePolicyRule[];
516
528
 
517
529
  export type RolePolicyRule = KeyDenyPolicy | PolicyReference;
518
530
 
531
+ export type PolicyAnd = {
532
+ And: KeyDenyPolicy[];
533
+ };
534
+
535
+ export type PolicyOr = {
536
+ Or: KeyDenyPolicy[];
537
+ };
538
+
539
+ export type PolicyNot = {
540
+ Not: KeyDenyPolicy;
541
+ };
542
+
519
543
  /** A key guarded by a policy. */
520
544
  export class KeyWithPolicies {
521
545
  readonly #apiClient: ApiClient;
package/src/schema.ts CHANGED
@@ -2754,6 +2754,7 @@ export interface components {
2754
2754
  | "InvalidPolicyReference"
2755
2755
  | "PolicyEngineDisabled"
2756
2756
  | "InvalidWasmPolicy"
2757
+ | "InvalidPolicy"
2757
2758
  | "RedundantDerivationPath"
2758
2759
  | "ImportKeyMissing"
2759
2760
  | "InvalidAbiMethods"
@@ -2762,7 +2763,8 @@ export interface components {
2762
2763
  | "UserProfileMigrationMultipleEntries"
2763
2764
  | "UserProfileMigrationTooManyItems"
2764
2765
  | "InputTooShort"
2765
- | "InvalidTweakLength";
2766
+ | "InvalidTweakLength"
2767
+ | "InvalidCustomChains";
2766
2768
  BillingArgs: {
2767
2769
  billing_org: components["schemas"]["Id"];
2768
2770
  event_type: components["schemas"]["BillingEvent"];
@@ -3550,6 +3552,11 @@ export interface components {
3550
3552
  /** @description CubeSigner's user identifier */
3551
3553
  user_id: string;
3552
3554
  };
3555
+ /** @description Information about an org's custom chains. */
3556
+ CustomChainsData: {
3557
+ /** @description Custom EVM chains. */
3558
+ evm: components["schemas"]["EvmCustomChain"][];
3559
+ };
3553
3560
  /**
3554
3561
  * @description Information produced by a successful deposit
3555
3562
  * @example {
@@ -4183,6 +4190,44 @@ export interface components {
4183
4190
  */
4184
4191
  chain?: string | null;
4185
4192
  };
4193
+ /** @description Information about a currency used on an EVM chain. */
4194
+ EvmCurrencyInfo: {
4195
+ /**
4196
+ * Format: int32
4197
+ * @description The number of decimals this currency uses.
4198
+ * @example 18
4199
+ */
4200
+ decimals: number;
4201
+ /**
4202
+ * @description The full name of the currency.
4203
+ * @example Ether
4204
+ */
4205
+ name: string;
4206
+ /**
4207
+ * @description The symbol for the currency, typically a three letter string.
4208
+ * @example ETH
4209
+ */
4210
+ symbol: string;
4211
+ };
4212
+ /** @description A custom EVM chain. */
4213
+ EvmCustomChain: {
4214
+ /**
4215
+ * @description The chain id. Enforced to be unique among all custom EVM chains in the organization. It must be a hex string (starting with "0x") with even length.
4216
+ * @example 0x01
4217
+ */
4218
+ chain_id: string;
4219
+ /**
4220
+ * @description The name of the chain.
4221
+ * @example Ethereum Mainnet
4222
+ */
4223
+ name: string;
4224
+ native_currency: components["schemas"]["EvmCurrencyInfo"];
4225
+ /**
4226
+ * @description The URL of the RPC provider for this chain.
4227
+ * @example https://ethereum-rpc.publicnode.com/
4228
+ */
4229
+ rpc_url: string;
4230
+ };
4186
4231
  EvmTxCmp: {
4187
4232
  /**
4188
4233
  * Format: int64
@@ -4332,6 +4377,7 @@ export interface components {
4332
4377
  | "manage:policy:secrets:get"
4333
4378
  | "manage:policy:secrets:update:*"
4334
4379
  | "manage:policy:secrets:update:values"
4380
+ | "manage:policy:secrets:update:acl"
4335
4381
  | "manage:policy:secrets:update:editPolicy"
4336
4382
  | "manage:contact:*"
4337
4383
  | "manage:contact:create"
@@ -4788,19 +4834,12 @@ export interface components {
4788
4834
  */
4789
4835
  salt: string;
4790
4836
  };
4791
- /** @description Helper type for enforcing validation before having access to the configs and import key. */
4792
- ImportableSecrets: {
4793
- import_key?: components["schemas"]["KeyImportKey"] | null;
4794
- /** @description The policy secrets. */
4795
- secrets?: {
4796
- [key: string]: components["schemas"]["SecretValue"];
4797
- } | null;
4798
- };
4799
4837
  /** @enum {string} */
4800
4838
  InternalErrorCode:
4801
4839
  | "NoMaterialId"
4802
4840
  | "UnexpectedCheckerRule"
4803
4841
  | "UnresolvedPolicyReference"
4842
+ | "UnexpectedAclAction"
4804
4843
  | "FidoKeyAssociatedWithMultipleUsers"
4805
4844
  | "ClaimsParseError"
4806
4845
  | "InvalidThrottleId"
@@ -5818,6 +5857,12 @@ export interface components {
5818
5857
  org_event: "KeyCreated";
5819
5858
  owner_id: components["schemas"]["Id"];
5820
5859
  }
5860
+ | {
5861
+ approved_with_mfa_type: components["schemas"]["MfaType"];
5862
+ mfa_request: components["schemas"]["MfaRequestInfo"];
5863
+ /** @enum {string} */
5864
+ org_event: "MfaApproved";
5865
+ }
5821
5866
  | {
5822
5867
  mfa_request: components["schemas"]["MfaRequestInfo"];
5823
5868
  /** @enum {string} */
@@ -5900,6 +5945,7 @@ export interface components {
5900
5945
  | "Eth2Unstake"
5901
5946
  | "Eth2ExceededMaxUnstake"
5902
5947
  | "KeyCreated"
5948
+ | "MfaApproved"
5903
5949
  | "MfaRejected"
5904
5950
  | "PolicyChanged"
5905
5951
  | "TendermintConcurrentSigning"
@@ -5927,6 +5973,7 @@ export interface components {
5927
5973
  };
5928
5974
  OrgInfo: components["schemas"]["MfaRequirements"] & {
5929
5975
  access_model: components["schemas"]["AccessModel"];
5976
+ custom_chains?: components["schemas"]["CustomChainsData"] | null;
5930
5977
  default_invite_kind?: components["schemas"]["InviteKind"];
5931
5978
  email_preferences?: components["schemas"]["EmailPreferences"];
5932
5979
  /** @description When false, all cryptographic operations involving keys in this org are disabled. */
@@ -6491,6 +6538,7 @@ export interface components {
6491
6538
  | components["schemas"]["EvmTxDepositErrorCode"];
6492
6539
  /** @enum {string} */
6493
6540
  PolicyErrorOwnCodes:
6541
+ | "Inapplicable"
6494
6542
  | "SuiTxReceiversDisallowedTransactionKind"
6495
6543
  | "SuiTxReceiversDisallowedTransferAddress"
6496
6544
  | "SuiTxReceiversDisallowedCommand"
@@ -6516,12 +6564,14 @@ export interface components {
6516
6564
  | "Erc20SpenderMismatch"
6517
6565
  | "EvmFunctionNotInAllowlist"
6518
6566
  | "EvmFunctionCallInvalid"
6567
+ | "EvmFunctionCallDisallowedArg"
6519
6568
  | "PolicyDisjunctionError"
6520
6569
  | "PolicyNegationError"
6521
6570
  | "Eth2ExceededMaxUnstake"
6522
6571
  | "Eth2ConcurrentUnstaking"
6523
6572
  | "NotInIpv4Allowlist"
6524
6573
  | "NotInOriginAllowlist"
6574
+ | "NotInOperationAllowlist"
6525
6575
  | "InvalidSourceIp"
6526
6576
  | "RawSigningNotAllowed"
6527
6577
  | "DiffieHellmanExchangeNotAllowed"
@@ -6623,8 +6673,13 @@ export interface components {
6623
6673
  };
6624
6674
  /** @description A struct containing all non-secret information about policy secrets. */
6625
6675
  PolicySecretsInfo: components["schemas"]["CommonFields"] & {
6626
- /** @description The names of the secrets., */
6676
+ /**
6677
+ * @deprecated
6678
+ * @description The names of the secrets.
6679
+ */
6627
6680
  names: string[];
6681
+ /** @description The policy secrets. */
6682
+ secrets: components["schemas"]["SecretInfo"][];
6628
6683
  };
6629
6684
  /**
6630
6685
  * @description The type of a [NamedPolicy].
@@ -7056,7 +7111,15 @@ export interface components {
7056
7111
  passkey_login_enabled: boolean;
7057
7112
  };
7058
7113
  /** @enum {string} */
7059
- Purpose: "otp" | "mfa_reset" | "otp_mfa" | "alien_password_reset" | "alien_invite";
7114
+ Purpose:
7115
+ | "otp"
7116
+ | "mfa_reset"
7117
+ | "otp_mfa"
7118
+ | "alien_password_reset"
7119
+ | "member_password_reset"
7120
+ | "alien_invite"
7121
+ | "member_invite"
7122
+ | "welcome";
7060
7123
  /** @description The request type for querying metrics. */
7061
7124
  QueryMetricsRequest: {
7062
7125
  /**
@@ -7285,6 +7348,13 @@ export interface components {
7285
7348
  * A wrapper type for serialization that encodes a `Duration` as a `u64` representing the number of seconds.
7286
7349
  */
7287
7350
  Seconds: number;
7351
+ /** @description Information about a specific secret. */
7352
+ SecretInfo: {
7353
+ /** @description The access-control entries for this secret. */
7354
+ acl?: unknown[] | null;
7355
+ /** @description The name of the secret. */
7356
+ name: string;
7357
+ };
7288
7358
  /** @description The value of a policy secret. */
7289
7359
  SecretValue: OneOf<
7290
7360
  [
@@ -7366,10 +7436,20 @@ export interface components {
7366
7436
  /** @description The list of sessions */
7367
7437
  sessions: components["schemas"]["SessionInfo"][];
7368
7438
  };
7369
- /** @description A request for setting an Org-level policy secret */
7439
+ /**
7440
+ * @description A request for setting an Org-level policy secret.
7441
+ *
7442
+ * Either `value` or `acl` must be provided.
7443
+ */
7370
7444
  SetPolicySecretRequest: {
7445
+ /**
7446
+ * @description The secret's access-control entries.
7447
+ * Can be `None` if the request is creating a secret without ACL or updating an
7448
+ * existing secret's value.
7449
+ */
7450
+ acl?: unknown[] | null;
7371
7451
  import_key?: components["schemas"]["KeyImportKey"] | null;
7372
- value: components["schemas"]["SecretValue"];
7452
+ value?: components["schemas"]["SecretValue"] | null;
7373
7453
  };
7374
7454
  SignDimensions: {
7375
7455
  /** @description The sign operation */
@@ -8051,6 +8131,7 @@ export interface components {
8051
8131
  allowed_mfa_types?: {
8052
8132
  [key: string]: components["schemas"]["MfaType"][];
8053
8133
  } | null;
8134
+ custom_chains?: components["schemas"]["CustomChainsData"] | null;
8054
8135
  default_invite_kind?: components["schemas"]["InviteKind"] | null;
8055
8136
  email_preferences?: components["schemas"]["EmailPreferences"] | null;
8056
8137
  /** @description If set, update this org's `enabled` field to this value. */
@@ -8162,6 +8243,7 @@ export interface components {
8162
8243
  allowed_mfa_types?: {
8163
8244
  [key: string]: components["schemas"]["MfaType"][];
8164
8245
  } | null;
8246
+ custom_chains?: components["schemas"]["CustomChainsData"] | null;
8165
8247
  default_invite_kind?: components["schemas"]["InviteKind"] | null;
8166
8248
  email_preferences?: components["schemas"]["EmailPreferences"] | null;
8167
8249
  /** @description The new value of the 'enabled' property */
@@ -8257,7 +8339,7 @@ export interface components {
8257
8339
  rules?: unknown[] | null;
8258
8340
  };
8259
8341
  /** @description A request for updating Org-level policy secrets */
8260
- UpdatePolicySecretsRequest: components["schemas"]["ImportableSecrets"] & {
8342
+ UpdatePolicySecretsRequest: {
8261
8343
  edit_policy?: components["schemas"]["EditPolicy"] | null;
8262
8344
  };
8263
8345
  UpdateRoleRequest: {
@@ -9261,6 +9343,7 @@ export interface components {
9261
9343
  content: {
9262
9344
  "application/json": components["schemas"]["MfaRequirements"] & {
9263
9345
  access_model: components["schemas"]["AccessModel"];
9346
+ custom_chains?: components["schemas"]["CustomChainsData"] | null;
9264
9347
  default_invite_kind?: components["schemas"]["InviteKind"];
9265
9348
  email_preferences?: components["schemas"]["EmailPreferences"];
9266
9349
  /** @description When false, all cryptographic operations involving keys in this org are disabled. */
@@ -9723,8 +9806,13 @@ export interface components {
9723
9806
  PolicySecretsInfo: {
9724
9807
  content: {
9725
9808
  "application/json": components["schemas"]["CommonFields"] & {
9726
- /** @description The names of the secrets., */
9809
+ /**
9810
+ * @deprecated
9811
+ * @description The names of the secrets.
9812
+ */
9727
9813
  names: string[];
9814
+ /** @description The policy secrets. */
9815
+ secrets: components["schemas"]["SecretInfo"][];
9728
9816
  };
9729
9817
  };
9730
9818
  };
@@ -10017,6 +10105,7 @@ export interface components {
10017
10105
  allowed_mfa_types?: {
10018
10106
  [key: string]: components["schemas"]["MfaType"][];
10019
10107
  } | null;
10108
+ custom_chains?: components["schemas"]["CustomChainsData"] | null;
10020
10109
  default_invite_kind?: components["schemas"]["InviteKind"] | null;
10021
10110
  email_preferences?: components["schemas"]["EmailPreferences"] | null;
10022
10111
  /** @description The new value of the 'enabled' property */
@@ -11346,7 +11435,15 @@ export interface operations {
11346
11435
  */
11347
11436
  org_id: string;
11348
11437
  /** @description Which email to configure */
11349
- purpose: "otp" | "mfa_reset" | "otp_mfa" | "alien_password_reset" | "alien_invite";
11438
+ purpose:
11439
+ | "otp"
11440
+ | "mfa_reset"
11441
+ | "otp_mfa"
11442
+ | "alien_password_reset"
11443
+ | "member_password_reset"
11444
+ | "alien_invite"
11445
+ | "member_invite"
11446
+ | "welcome";
11350
11447
  };
11351
11448
  };
11352
11449
  requestBody: {
@@ -13076,6 +13173,11 @@ export interface operations {
13076
13173
  * the exact value previously returned as 'last_evaluated_key' from the same endpoint.
13077
13174
  */
13078
13175
  "page.start"?: string | null;
13176
+ /**
13177
+ * @description The optional type of policies to return
13178
+ * @example Key
13179
+ */
13180
+ policy_type?: components["schemas"]["PolicyType"] | null;
13079
13181
  };
13080
13182
  path: {
13081
13183
  /**
package/src/scopes.ts CHANGED
@@ -108,6 +108,7 @@ export const AllScopes: Record<ExplicitScope, string> =
108
108
  "manage:policy:secrets:get" : "Allows access only to the policy secrets 'get' endpoint",
109
109
  "manage:policy:secrets:update:*" : "Allows access to all policy secrets 'update' endpoints",
110
110
  "manage:policy:secrets:update:values" : "Allows access only to the policy secrets 'update' endpoint, but restricting updates to the secrets keys and values",
111
+ "manage:policy:secrets:update:acl" : "Allows access only to the policy secrets 'update' endpoint, but restricting updates to the secrets acl",
111
112
  "manage:policy:secrets:update:editPolicy" : "Allows access only to the policy secrets 'update' endpoint, but restricting updates to the `edit_policy` property",
112
113
  "manage:contact:*" : "Allows access to all contact endpoints",
113
114
  "manage:contact:create" : "Allows access to the contact 'create' endpoint",