@bitgo/sdk-core 38.20.0 → 38.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/src/bitgo/environments.d.ts +5 -0
  2. package/dist/src/bitgo/environments.d.ts.map +1 -1
  3. package/dist/src/bitgo/environments.js +2 -1
  4. package/dist/src/bitgo/utils/index.d.ts +1 -0
  5. package/dist/src/bitgo/utils/index.d.ts.map +1 -1
  6. package/dist/src/bitgo/utils/index.js +2 -1
  7. package/dist/src/bitgo/utils/siws.d.ts +14 -0
  8. package/dist/src/bitgo/utils/siws.d.ts.map +1 -0
  9. package/dist/src/bitgo/utils/siws.js +181 -0
  10. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +2 -2
  11. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
  12. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +2 -2
  13. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +1 -1
  14. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  15. package/dist/src/bitgo/utils/tss/baseTypes.js +1 -1
  16. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +3 -2
  17. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
  18. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +18 -2
  19. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -1
  20. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +2 -3
  21. package/dist/src/bitgo/utils/tss/recipientUtils.d.ts +14 -1
  22. package/dist/src/bitgo/utils/tss/recipientUtils.d.ts.map +1 -1
  23. package/dist/src/bitgo/utils/tss/recipientUtils.js +62 -1
  24. package/dist/src/bitgo/wallet/iWallet.d.ts +2 -0
  25. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  26. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  27. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  28. package/dist/src/bitgo/wallet/wallet.js +38 -14
  29. package/dist/test/unit/bitgo/utils/siws.d.ts +2 -0
  30. package/dist/test/unit/bitgo/utils/siws.d.ts.map +1 -0
  31. package/dist/test/unit/bitgo/utils/siws.js +156 -0
  32. package/dist/test/unit/bitgo/utils/tss/recipientUtils.js +21 -1
  33. package/dist/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +4 -4
@@ -90,6 +90,11 @@ interface EnvironmentTemplate {
90
90
  soneiumExplorerBaseUrl?: string;
91
91
  soneiumExplorerApiToken?: string;
92
92
  stxNodeUrl: string;
93
+ /**
94
+ * Stacks staking-testnet RPC (chain ID 1280 on a private Bitcoin signet). Only testnet-derived
95
+ * environments configure it; the tstxsignet coin is unusable in environments without it.
96
+ */
97
+ stxSignetNodeUrl?: string;
93
98
  vetNodeUrl: string;
94
99
  evm?: {
95
100
  [key: string]: {
@@ -1 +1 @@
1
- {"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../../src/bitgo/environments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../../src/bitgo/environments.ts"],"names":[],"mappings":"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"}
@@ -481,6 +481,7 @@ const testnetBase = {
481
481
  },
482
482
  },
483
483
  stxNodeUrl: 'https://api.testnet.hiro.so',
484
+ stxSignetNodeUrl: 'https://api.staking-testnet.hiro.so',
484
485
  vetNodeUrl: 'https://sync-testnet.vechain.org',
485
486
  xtzExplorerBaseUrl: 'https://api.ghostnet.tzkt.io',
486
487
  xtzRpcUrl: 'https://rpc.tzkt.io/ghostnet',
@@ -562,4 +563,4 @@ exports.Environments = {
562
563
  stellarFederationServerUrl: 'https://app.bitgo-dev.com/api/v2/txlm/federation',
563
564
  }),
564
565
  };
565
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL2Vudmlyb25tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1SGEsUUFBQSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQy9DLFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtLQUN4SDtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtRQUN2SCxHQUFHLEVBQUUsaUhBQWlIO0tBQ3ZIO0NBQ0YsQ0FBQyxDQUFDO0FBcUJILHdGQUF3RjtBQUMzRSxRQUFBLGlCQUFpQixHQUFxRDtJQUNqRixVQUFVLEVBQUUsTUFBTTtJQUNsQixNQUFNLEVBQUUsTUFBTTtJQUNkLE1BQU0sRUFBRSxNQUFNO0lBQ2QsS0FBSyxFQUFFLEtBQUs7Q0FDYixDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQXdCO0lBQ3ZDLE9BQU8sRUFBRSxTQUFzQjtJQUMvQixjQUFjLEVBQUUsb0NBQW9DO0lBQ3BELFVBQVUsRUFBRSwyQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSTtJQUMvQyxPQUFPLEVBQUUsMkJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUk7SUFDekMsa0JBQWtCLEVBQUUsOEJBQThCO0lBQ2xELGdCQUFnQixFQUFFLDZCQUE2QjtJQUMvQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtJQUNsRCxtQkFBbUIsRUFBRSwwQkFBMEI7SUFDL0MsbUJBQW1CLEVBQUUsNEJBQTRCO0lBQ2pELHNCQUFzQixFQUFFLGlDQUFpQztJQUN6RCxjQUFjLEVBQUUsNkJBQTZCO0lBQzdDLGVBQWUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWE7SUFDMUMsa0JBQWtCLEVBQUUsNkJBQTZCO0lBQ2pELG1CQUFtQixFQUFF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RyxFQUFFLDJCQUEyQjtRQUNoQywwQkFBMEIsRUFBRSxrREFBa0Q7S0FDL0UsQ0FBQztDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBWMU5ldHdvcmsgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIEVudmlyb25tZW50VGVtcGxhdGUge1xuICB1cmk/OiBzdHJpbmc7XG4gIG5ldHdvcms6IFYxTmV0d29yaztcbiAgc2lnbmluZ0FkZHJlc3M6IHN0cmluZztcbiAgc2VydmVyWHB1Yjogc3RyaW5nO1xuICBoc21YcHViOiBzdHJpbmc7XG4gIGJ0Y0V4cGxvcmVyQmFzZVVybDogc3RyaW5nO1xuICBldGhlcnNjYW5CYXNlVXJsOiBzdHJpbmc7XG4gIGV0aGVyc2NhbkFwaVRva2VuPzogc3RyaW5nO1xuICBhdmF4Y05ldHdvcmtCYXNlVXJsOiBzdHJpbmc7XG4gIGV0aDJFeHBsb3JlckJhc2VVcmw6IHN0cmluZztcbiAgZXRod0Z1bGxOb2RlUlBDQmFzZVVybDogc3RyaW5nO1xuICBwb2x5Z29uc2NhbkJhc2VVcmw/OiBzdHJpbmc7XG4gIGJzY3NjYW5CYXNlVXJsPzogc3RyaW5nO1xuICBic2NzY2FuQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHBvbHlnb25zY2FuQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGFwZWNoYWluRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgYXBlY2hhaW5FeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIGFyYmlzY2FuQmFzZVVybD86IHN0cmluZztcbiAgYXJiaXNjYW5BcGlUb2tlbj86IHN0cmluZztcbiAgb2FzRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgb2FzRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBvcHRpbWlzdGljRXRoZXJzY2FuQmFzZVVybD86IHN0cmluZztcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkFwaVRva2VuPzogc3RyaW5nO1xuICB6a3N5bmNFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHprc3luY0V4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGJlcmFFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIGJlcmFFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBiYXNlZXRoRXhwbG9yZXJVcmw/OiBzdHJpbmc7XG4gIGJhc2VldGhBcGlUb2tlbj86IHN0cmluZztcbiAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw/OiBzdHJpbmc7XG4gIGVvc05vZGVVcmxzOiBzdHJpbmdbXTtcbiAgbmVhck5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgc29sTm9kZVVybDogc3RyaW5nO1xuICBzb2xBbGNoZW15Tm9kZVVybDogc3RyaW5nO1xuICBhZGFOb2RlVXJsOiBzdHJpbmc7XG4gIGhhc2hOb2RlVXJsOiBzdHJpbmc7XG4gIGluak5vZGVVcmw6IHN0cmluZztcbiAgYXRvbU5vZGVVcmw6IHN0cmluZztcbiAgb3Ntb05vZGVVcmw6IHN0cmluZztcbiAgdGlhTm9kZVVybDogc3RyaW5nO1xuICBzZWlOb2RlVXJsOiBzdHJpbmc7XG4gIGJsZE5vZGVVcmw6IHN0cmluZztcbiAgYmVyYU5vZGVVcmw6IHN0cmluZztcbiAgemV0YU5vZGVVcmw6IHN0cmluZztcbiAgY29yZXVtTm9kZVVybDogc3RyaW5nO1xuICBydW5lTm9kZVVybDogc3RyaW5nO1xuICBiYWJ5Tm9kZVVybDogc3RyaW5nO1xuICBtYW50cmFOb2RlVXJsOiBzdHJpbmc7XG4gIGNyb25vc05vZGVVcmw6IHN0cmluZztcbiAgaW5pdGlhTm9kZVVybDogc3RyaW5nO1xuICBhc2lOb2RlVXJsOiBzdHJpbmc7XG4gIGlzbG1Ob2RlVXJsOiBzdHJpbmc7XG4gIGRvdE5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgc3Vic3RyYXRlTm9kZVVybHM6IHN0cmluZ1tdO1xuICBwb2x5bWVzaE5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgdHJvbk5vZGVzOiB7XG4gICAgZnVsbDogc3RyaW5nO1xuICAgIHNvbGlkaXR5OiBzdHJpbmc7XG4gIH07XG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogYm9vbGVhbjtcbiAgdG9uTm9kZVVybDogc3RyaW5nO1xuICBzdWlOb2RlVXJsOiBzdHJpbmc7XG4gIGlvdGFOb2RlVXJsOiBzdHJpbmc7XG4gIGV0Y05vZGVVcmw6IHN0cmluZztcbiAgY29yZWRhb0V4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgY29yZWRhb0V4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHhkY0V4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgeGRjRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgZmxyRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBmbHJFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzZ2JFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNnYkV4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGljcE5vZGVVcmw6IHN0cmluZztcbiAga2FzcGFOb2RlVXJsOiBzdHJpbmc7XG4gIHN0YXJrbmV0Tm9kZVVybDogc3RyaW5nO1xuICBoeXBlckxpcXVpZE5vZGVVcmw6IHN0cmluZztcbiAgd2VtaXhFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHdlbWl4RXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgbW9uRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBtb25FeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICB3b3JsZEV4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgd29ybGRFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzb21uaWFFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNvbW5pYUV4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHNvbmVpdW1FeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNvbmVpdW1FeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzdHhOb2RlVXJsOiBzdHJpbmc7XG4gIHZldE5vZGVVcmw6IHN0cmluZztcbiAgLy8gVGhlIGtleSBoZXJlIGlzIGNvaW5OYW1lIGFuZCBpdCB3aWxsIGJlIHNhbWUgZm9yIGJvdGggbWFpbm5ldCBhbmQgdGVzdG5ldCAoZWc6ICdwaHJzJylcbiAgZXZtPzoge1xuICAgIFtrZXk6IHN0cmluZ106IHtcbiAgICAgIGJhc2VVcmw6IHN0cmluZztcbiAgICAgIGFwaVRva2VuPzogc3RyaW5nO1xuICAgICAgcnBjVXJsPzogc3RyaW5nO1xuICAgICAgdG9rZW5JZD86IG51bWJlcjtcbiAgICAgIHN5c3RlbUFkZHI/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgLy8gVGhlIGtleSBoZXJlIGlzIGNvaW5GYW1pbHkgYW5kIGl0IHdpbGwgYmUgc2FtZSBmb3IgYm90aCBtYWlubmV0IGFuZCB0ZXN0bmV0IChlZzogJ2Nyb25vcycpXG4gIGNvc21vcz86IHtcbiAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICBub2RlVXJsOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgeHR6RXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICB4dHpScGNVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnQgZXh0ZW5kcyBFbnZpcm9ubWVudFRlbXBsYXRlIHtcbiAgdXJpOiBzdHJpbmc7XG4gIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBoYXJkY29kZWRQdWJsaWNLZXlzID0gT2JqZWN0LmZyZWV6ZSh7XG4gIHNlcnZlclhwdWI6IHtcbiAgICBwcm9kOiAneHB1YjY2MU15TXdBcVJiY0V0VWd1OUhGOGFpNGlwdVZLS0hCelVxa3M0alNGeXBXOGR3d1FMMXp5Z0xnUXg5OU5tQzd6Skp6blNpd0tHNlJRZlZqQUtNdENzeDhWalI2a1FXOHg3SHJrWEZaZG5RJyxcbiAgICB0ZXN0OiAneHB1YjY2MU15TXdBcVJiY0VyRnFWWEdpVUZ2OVllb1BiaE43MlVpTkNVZGo5bmozVDZNOGg3aUtObWJDWXBNVldWWlA3TEEybWEzSFdjUG5nejFnUlRtNEZQZHRtOW1IZnJOdlU5M01Db3N6c0dMJyxcbiAgfSxcbiAgaHNtWHB1Yjoge1xuICAgIHByb2Q6ICd4cHViNjYxTXlNd0FxUmJjR0V0VEZnTUFveE1Gb3FzUmREYWlhUjYzYnlOZlpkVjdjQlpGdm92UVNOSjVicHllb1F0dUtWZ1hCazZzRlE3VHR2eVdxYWR0NDFEbkt3dmVZZ001S29VMkVLWWpkWTInLFxuICAgIHRlc3Q6ICd4cHViNjYxTXlNd0FxUmJjR0ZLZTRCcXZrNFNncmljNGdORkM4cFVidzR0VWtWalp4dWJqQ0E1MjJnUHpjMVlhWGIzYlFWbURXYzdDakc4QUdOV1JwY2RBVTM4UkVUQmg4bjJibnFFVTRrYlY0b0snLFxuICAgIGRldjogJ3hwdWI2NjFNeU13QXFSYmNGV3pvejhxbllSRFlFRlFwUExZd3hWRm9HNldMeTNjazVadXBSR0pURzRqdTZ5R2I3RGozZXk2R3NDNGtzdExSRVIybkt6Z2pMdG14eVBnQzR6SHk3a1ZoVXQ2eWZHbicsXG4gIH0sXG59KTtcblxuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnROYW1lID1cbiAgfCAncHJvZCdcbiAgfCAnc3RhZ2luZydcbiAgfCAndGVzdCdcbiAgfCAnZGV2J1xuICB8ICdsb2NhbCdcbiAgfCAnbG9jYWxOb25TZWN1cmUnXG4gIHwgJ21vY2snXG4gIHwgJ2FkbWluUHJvZCdcbiAgfCAnYWRtaW5UZXN0J1xuICB8ICdhZG1pblN0YWdpbmcnXG4gIHwgJ2FkbWluRGV2J1xuICB8ICdjdXN0b20nXG4gIHwgJ2JyYW5jaCc7XG5cbmV4cG9ydCB0eXBlIEFsaWFzRW52aXJvbm1lbnROYW1lID0gJ3Byb2R1Y3Rpb24nIHwgJ21zUHJvZCcgfCAnbXNUZXN0JyB8ICdtc0Rldic7XG5cbmV4cG9ydCB0eXBlIEVudmlyb25tZW50cyA9IHsgW2sgaW4gRW52aXJvbm1lbnROYW1lXTogRW52aXJvbm1lbnQgfTtcblxuLy8gYWxpYXMgZW52aXJvbm1lbnRzIGFyZSBlbnZpcm9ubWVudCBuYW1lcyB3aGljaCBhcmUgYWxpYXNlcyBvZiBhIHN1cHBvcnRlZCBlbnZpcm9ubWVudFxuZXhwb3J0IGNvbnN0IEFsaWFzRW52aXJvbm1lbnRzOiB7IFtrIGluIEFsaWFzRW52aXJvbm1lbnROYW1lXTogRW52aXJvbm1lbnROYW1lIH0gPSB7XG4gIHByb2R1Y3Rpb246ICdwcm9kJyxcbiAgbXNQcm9kOiAncHJvZCcsXG4gIG1zVGVzdDogJ3Rlc3QnLFxuICBtc0RldjogJ2RldicsXG59O1xuXG5jb25zdCBtYWlubmV0QmFzZTogRW52aXJvbm1lbnRUZW1wbGF0ZSA9IHtcbiAgbmV0d29yazogJ2JpdGNvaW4nIGFzIFYxTmV0d29yayxcbiAgc2lnbmluZ0FkZHJlc3M6ICcxQml0R28zZ3hSWjZtUVNFSDUyZHZDS1NVZ1ZDQUg0UmphJyxcbiAgc2VydmVyWHB1YjogaGFyZGNvZGVkUHVibGljS2V5cy5zZXJ2ZXJYcHViLnByb2QsXG4gIGhzbVhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi5wcm9kLFxuICBidGNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2Jsb2Nrc3RyZWFtLmluZm8vYXBpJyxcbiAgZXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGV0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICBhdmF4Y05ldHdvcmtCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuYXZheC5uZXR3b3JrJyxcbiAgZXRoMkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vYXBpJyxcbiAgZXRod0Z1bGxOb2RlUlBDQmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5ldGhlcmV1bXBvdy5vcmcnLFxuICBic2NzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGJzY3NjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuQlNDX0FQSV9UT0tFTixcbiAgcG9seWdvbnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgcG9seWdvbnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuUE9MWUdPTlNDQU5fQVBJX1RPS0VOLFxuICBhcmJpc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBhcmJpc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5BUkJJU0NBTl9BUElfVE9LRU4sXG4gIG9wdGltaXN0aWNFdGhlcnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5PUFRJTUlTVElDX0VUSEVSU0NBTl9BUElfVE9LRU4sXG4gIHprc3luY0V4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmxvY2stZXhwbG9yZXItYXBpLm1haW5uZXQuemtzeW5jLmlvJyxcbiAgemtzeW5jRXhwbG9yZXJBcGlUb2tlbjogcHJvY2Vzcy5lbnYuWktTWU5DX0VYUExPUkVSX0FQSV9UT0tFTixcbiAgYmFzZWV0aEV4cGxvcmVyVXJsOiAnaHR0cHM6Ly9hcGkuYmFzZXNjYW4ub3JnJywgLy9CYXNlRVRIIGV4cGxvcmVyIGFwaSB1cmxcbiAgYmFzZWV0aEFwaVRva2VuOiBwcm9jZXNzLmVudi5CQVNFU0NBTl9BUElfVE9LRU4sXG4gIGVvc05vZGVVcmxzOiBbJ2h0dHBzOi8vYnAuY3J5cHRvbGlvbnMuaW8nLCAnaHR0cHM6Ly9hcGkuZW9zbmV3eW9yay5pbycsICdodHRwczovL2FwaS5lb3NkZXRyb2l0LmlvJ10sXG4gIG5lYXJOb2RlVXJsczogWydodHRwczovL2FwaS5mYXN0bmVhci5jb20nXSxcbiAgc29sTm9kZVVybDogJ2h0dHBzOi8vYXBpLm1haW5uZXQtYmV0YS5zb2xhbmEuY29tJyxcbiAgc29sQWxjaGVteU5vZGVVcmw6ICdodHRwczovL3NvbGFuYS1tYWlubmV0LmcuYWxjaGVteS5jb20vdjInLFxuICBhZGFOb2RlVXJsOiAnaHR0cHM6Ly9hcGkua29pb3MucmVzdC9hcGkvdjEnLFxuICBoYXNoTm9kZVVybDogJ2h0dHBzOi8vYXBpLnByb3ZlbmFuY2UuaW8nLFxuICBpbmpOb2RlVXJsOiAnaHR0cHM6Ly9zZW50cnkubGNkLmluamVjdGl2ZS5uZXR3b3JrJywgLy8gcmVmZXJlbmNlIGh0dHBzOi8vZG9jcy5pbmplY3RpdmUubmV0d29yay9kZXZlbG9wL3B1YmxpYy1lbmRwb2ludHMvXG4gIGF0b21Ob2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmNvc21vcy5kaXJlY3RvcnkvY29zbW9zaHViLycsXG4gIG9zbW9Ob2RlVXJsOiAnaHR0cHM6Ly9sY2Qub3Ntb3Npcy56b25lJyxcbiAgdGlhTm9kZVVybDogJ2h0dHBzOi8vcHVibGljLWNlbGVzdGlhLWxjZC5udW1pYS54eXonLCAvLyByZWZlcmVuY2UgaHR0cHM6Ly9kb2NzLmNlbGVzdGlhLm9yZy9ub2Rlcy9tYWlubmV0I2FwaS1lbmRwb2ludHNcbiAgc2VpTm9kZVVybDogJ2h0dHBzOi8vc2VpLWFwaS5wb2xrYWNodS5jb20nLFxuICBibGROb2RlVXJsOiAnaHR0cHM6Ly9hZ29yaWMtYXBpLnBvbGthY2h1LmNvbScsXG4gIGJlcmFOb2RlVXJsOiAnJywgLy8gVE9ETyhXSU4tNjkzKTogdXBkYXRlIHVybCB3aGVuIG1haW5uZXQgZ29lcyBsaXZlXG4gIHpldGFOb2RlVXJsOiAnaHR0cHM6Ly96ZXRhY2hhaW4uYmxvY2twaS5uZXR3b3JrJywgLy8gcmVmZXJlbmNlIGh0dHBzOi8vd3d3LnpldGFjaGFpbi5jb20vZG9jcy9yZWZlcmVuY2UvYXBpL1xuICBjb3JldW1Ob2RlVXJsOiAnaHR0cHM6Ly9mdWxsLW5vZGUubWFpbm5ldC0xLmNvcmV1bS5kZXY6MTMxNycsXG4gIHJ1bmVOb2RlVXJsOiAnaHR0cHM6Ly90aG9ybm9kZS5uaW5lcmVhbG1zLmNvbScsXG4gIGJhYnlOb2RlVXJsOiAnaHR0cHM6Ly9iYWJ5bG9uLm5vZGVzLmd1cnUvYXBpLycsXG4gIGlzbG1Ob2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmNvc21vcy5oYXFxLm5ldHdvcmsnLFxuICBtYW50cmFOb2RlVXJsOiAnaHR0cHM6Ly9tYW50cmEtcmVzdC5wdWJsaWNub2RlLmNvbS8nLFxuICBjcm9ub3NOb2RlVXJsOiAnaHR0cHM6Ly9jcm9ub3MtcG9zLXJlc3QucHVibGljbm9kZS5jb20vJyxcbiAgaW5pdGlhTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5pbml0aWEueHl6LycsXG4gIGFzaU5vZGVVcmw6ICdodHRwczovL3Jlc3QtZmV0Y2hodWIuZmV0Y2guYWkvJyxcbiAgZG90Tm9kZVVybHM6IFsnd3NzOi8vYXNzZXQtaHViLXBvbGthZG90LXJwYy5uLmR3ZWxsaXIuY29tJ10sXG4gIHN1YnN0cmF0ZU5vZGVVcmxzOiBbJ3dzczovL2VudHJ5cG9pbnQtZmlubmV5Lm9wZW50ZW5zb3IuYWknXSxcbiAgcG9seW1lc2hOb2RlVXJsczogWyd3c3M6Ly9tYWlubmV0LXJwYy5wb2x5bWVzaC5uZXR3b3JrJ10sXG4gIHRyb25Ob2Rlczoge1xuICAgIGZ1bGw6ICdodHRwczovL2FwaS50cm9uZ3JpZC5pbycsXG4gICAgc29saWRpdHk6ICdodHRwczovL2FwaS50cm9uZ3JpZC5pbycsXG4gIH0sXG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogdHJ1ZSxcbiAgdG9uTm9kZVVybDogJ2h0dHBzOi8vdG9uY2VudGVyLmNvbS9hcGkvdjIvanNvblJQQycsXG4gIHN1aU5vZGVVcmw6ICdodHRwczovL3N1aS1ycGMucHVibGljbm9kZS5jb20nLFxuICBpb3RhTm9kZVVybDogJ2h0dHBzOi8vYXBpLm1haW5uZXQuaW90YS5jYWZlJyxcbiAgZXRjTm9kZVVybDogJ2h0dHBzOi8vZXRjLmJsb2Nrc2NvdXQuY29tJyxcbiAgY29yZWRhb0V4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vb3BlbmFwaS5jb3JlZGFvLm9yZycsXG4gIG9hc0V4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIub2FzeXMuZ2FtZXMnLFxuICBmbHJFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2ZsYXJlLWV4cGxvcmVyLmZsYXJlLm5ldHdvcmsnLFxuICB4ZGNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICB3ZW1peEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIHNnYkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc29uZ2JpcmQtZXhwbG9yZXIuZmxhcmUubmV0d29yaycsXG4gIGV2bToge1xuICAgIGFic3RyYWN0ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuYWJzY2FuLm9yZy9hcGknLFxuICAgIH0sXG4gICAgYXBlY2hhaW46IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgY2hpbGl6OiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuY2hpbGlzY2FuLmNvbScsXG4gICAgfSxcbiAgICBjb2RleGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuY29kZXgueHl6L2FwaScsXG4gICAgfSxcbiAgICBwaHJzOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmRwbGFicy1pbnRlcm5hbC5jb20nLCAvLyBUT0RPOiBXSU4tNTc4NyBhZGQgbWFpbm5ldCB1cmwgd2hlbiBpdHMgYXZhaWxhYmxlXG4gICAgfSxcbiAgICBjdGM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2NyZWRpdGNvaW4uYmxvY2tzY291dC5jb20nLFxuICAgIH0sXG4gICAgaHlwZWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgICAvLyBUaGVzZSBhcmUgdXNlZCBmb3IgQnJpZGdpbmcgYXNzZXRzIG9uIGh5cGUgY2hhaW4uXG4gICAgICB0b2tlbklkOiAxNTAsXG4gICAgICBzeXN0ZW1BZGRyOiAnMHgyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyJyxcbiAgICB9LFxuICAgIG9nOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jaGFpbnNjYW4uMGcuYWkvb3BlbicsXG4gICAgfSxcbiAgICB4cGw6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5yb3V0ZXNjYW4uaW8vdjIvbmV0d29yay9tYWlubmV0L2V2bS85NzQ1L2V0aGVyc2NhbicsXG4gICAgfSxcbiAgICBzb25pYzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB1c2R0MDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vc3RhYmxlc2Nhbi54eXovYXBpJyxcbiAgICB9LFxuICAgIHNlaWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBrYWlhOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0LW9hcGkua2FpYXNjYW4uaW8nLFxuICAgIH0sXG4gICAga2F2YWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnZlcmlmeS5taW50c2Nhbi5pby9ldm0vYXBpLzB4OGFlJyxcbiAgICB9LFxuICAgIGlyeXM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V2bS1leHBsb3Jlci5pcnlzLnh5ei9hcGknLFxuICAgIH0sXG4gICAgbW9uOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIGxpbmVhZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIGlwOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9kYXRhbmV0c2Nhbi5pbycsXG4gICAgfSxcbiAgICBzb21pOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0LnNvbW5pYS53M3VzLnNpdGUnLFxuICAgIH0sXG4gICAgYmFzZWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBvcGJuYjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgICBhcGlUb2tlbjogcHJvY2Vzcy5lbnYuRVRIRVJTQ0FOX0FQSV9UT0tFTixcbiAgICB9LFxuICAgIGZhbnRvbToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuZmFudG9tLm5ldHdvcmsnLFxuICAgICAgcnBjVXJsOiAnaHR0cHM6Ly9ycGNhcGkuZmFudG9tLm5ldHdvcmsvJyxcbiAgICB9LFxuICAgIGNvdGlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL21haW5uZXQuY290aXNjYW4uaW8nLFxuICAgICAgcnBjVXJsOiAnaHR0cHM6Ly9tYWlubmV0LmNvdGkuaW8vcnBjJyxcbiAgICB9LFxuICAgIHh0emV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuZXRoZXJsaW5rLmNvbS9hcGknLFxuICAgIH0sXG4gICAgZ2FzZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9uZW94c2Nhbi5uZ2QubmV0d29yay9hcGknLFxuICAgIH0sXG4gICAgZmxvdzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXZtLmZsb3dzY2FuLmlvJyxcbiAgICB9LFxuICAgIHBsdW1lOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5wbHVtZS5vcmcnLFxuICAgIH0sXG4gICAgbWVnYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5tZWdhZXRoLmNvbS9ycGMnLFxuICAgIH0sXG4gICAgaGJhcmV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5taXJyb3Jub2RlLmhlZGVyYS5jb20vYXBpL3YxJyxcbiAgICAgIHJwY1VybDogJ2h0dHBzOi8vbWFpbm5ldC5oYXNoaW8uaW8vYXBpJyxcbiAgICB9LFxuICAgIHNjcm9sbGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnNjcm9sbHNjYW4uY29tL2FwaScsXG4gICAgfSxcbiAgICBoZW1pZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5oZW1pLnh5ei9hcGknLFxuICAgIH0sXG4gICAga2F0YW5hZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9rYXRhbmFzY2FuLmNvbS9hcGknLFxuICAgIH0sXG4gICAgaW5rZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5pbmtvbmNoYWluLmNvbS9hcGknLFxuICAgIH0sXG4gICAgcHJpdmlkaXVtZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5wcml2aWRpdW0uemtzeW5jLmRldi9hcGknLCAvLyBUT0RPOiB1cGRhdGUgd2l0aCBtYWlubmV0IFVSTCB3aGVuIGF2YWlsYWJsZVxuICAgIH0sXG4gICAgZmx1ZW50ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9mbHVlbnRzY2FuLnh5ei9hcGkvJyxcbiAgICB9LFxuICAgIG1hbnRsZToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLm1hbnRsZXNjYW4ueHl6L2FwaScsXG4gICAgfSxcbiAgICBqb3ZheWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnphbi50b3Avbm9kZS92MS9qb3ZheS9tYWlubmV0LycsXG4gICAgfSxcbiAgICBva2J4bGF5ZXI6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3d3dy5va2xpbmsuY29tL2FwaS92NS9leHBsb3Jlci9ibG9jay9ibG9jay1saXN0P2NoYWluU2hvcnROYW1lPXhsYXllcicsXG4gICAgfSxcbiAgICBtb3JwaDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItYXBpLWhvb2RpLm1vcnBobDIuaW8nLCAvLyBUT0RPOiBXSU4tODEzNCBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIG1vcnBoZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5tb3JwaC5uZXR3b3JrLycsXG4gICAgfSxcbiAgICBkb2dlb3M6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2Jsb2Nrc2NvdXQudGVzdG5ldC5kb2dlb3MuY29tJywgLy9UT0RPOiBXSU4tODA4MiA9PiBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIGFyY3VzZGM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgeGRjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIHprc3luY2VyYToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB1bmlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3VuaWNoYWluLmJsb2Nrc2NvdXQuY29tL2FwaScsXG4gICAgfSxcbiAgICBob29kZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9yb2Jpbmhvb2RjaGFpbi5ibG9ja3Njb3V0LmNvbS9hcGknLFxuICAgIH0sXG4gICAgaHBwZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5ocHAuaW8vYXBpJyxcbiAgICB9LFxuICAgIGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2h1bWFuaXR5LW1haW5uZXQuZXhwbG9yZXIuYWxjaGVteS5jb20vYXBpJyxcbiAgICB9LFxuICAgIGJvYmE6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5yb3V0ZXNjYW4uaW8vdjIvbmV0d29yay9tYWlubmV0L2V2bS8yODgvZXRoZXJzY2FuL2FwaScsXG4gICAgfSxcbiAgICB0ZW1wbzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVtcG8tbWFpbm5ldC5nLmFsY2hlbXkuY29tL3YyLycsXG4gICAgfSxcbiAgfSxcbiAgaWNwTm9kZVVybDogJ2h0dHBzOi8vaWMwLmFwcCcsXG4gIGthc3BhTm9kZVVybDogJ2h0dHBzOi8vYXBpLmthc3BhLm9yZycsXG4gIHN0YXJrbmV0Tm9kZVVybDogJ2h0dHBzOi8vc3RhcmtuZXQtbWFpbm5ldC1ycGMucHVibGljbm9kZS5jb20vJyxcbiAgaHlwZXJMaXF1aWROb2RlVXJsOiAnaHR0cHM6Ly9hcGkuaHlwZXJsaXF1aWQueHl6JyxcbiAgd29ybGRFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL3dvcmxkc2Nhbi5vcmcvJyxcbiAgc29tbmlhRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0LnNvbW5pYS53M3VzLnNpdGUvJyxcbiAgc29uZWl1bUV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc29uZWl1bS5ibG9ja3Njb3V0LmNvbScsXG4gIG1vbkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIHN0eE5vZGVVcmw6ICdodHRwczovL2FwaS5oaXJvLnNvJyxcbiAgdmV0Tm9kZVVybDogJ2h0dHBzOi8vc3luYy1tYWlubmV0LnZlY2hhaW4ub3JnJyxcbiAgeHR6RXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkudHprdC5pbycsXG4gIHh0elJwY1VybDogJ2h0dHBzOi8vcnBjLnR6a3QuaW8vbWFpbm5ldCcsXG59O1xuXG5jb25zdCB0ZXN0bmV0QmFzZTogRW52aXJvbm1lbnRUZW1wbGF0ZSA9IHtcbiAgbmV0d29yazogJ3Rlc3RuZXQnIGFzIFYxTmV0d29yayxcbiAgc2lnbmluZ0FkZHJlc3M6ICdtc2lnbkJkRlh0ZWVoREVnQjZETm03bnBSdDdBY0VaSlAzJyxcbiAgc2VydmVyWHB1YjogaGFyZGNvZGVkUHVibGljS2V5cy5zZXJ2ZXJYcHViLnRlc3QsXG4gIGhzbVhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi50ZXN0LFxuICBidGNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2Jsb2Nrc3RyZWFtLmluZm8vdGVzdG5ldC9hcGknLFxuICBldGhlcnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgZXRoZXJzY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LkVUSEVSU0NBTl9BUElfVE9LRU4sXG4gIGF2YXhjTmV0d29ya0Jhc2VVcmw6ICdodHRwczovL2FwaS5hdmF4LXRlc3QubmV0d29yaycsXG4gIGV0aDJFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2JlYWNvbnNjYW4uY29tL2FwaScsXG4gIGV0aHdGdWxsTm9kZVJQQ0Jhc2VVcmw6ICdodHRwczovL21haW5uZXQuZXRoZXJldW1wb3cub3JnJyxcbiAgcG9seWdvbnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgcG9seWdvbnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuUE9MWUdPTlNDQU5fQVBJX1RPS0VOLFxuICBic2NzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGJzY3NjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuQlNDX0FQSV9UT0tFTixcbiAgYXJiaXNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgYXJiaXNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuQVJCSVNDQU5fQVBJX1RPS0VOLFxuICBvcHRpbWlzdGljRXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIG9wdGltaXN0aWNFdGhlcnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuT1BUSU1JU1RJQ19FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICB6a3N5bmNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2Jsb2NrLWV4cGxvcmVyLWFwaS5zZXBvbGlhLnprc3luYy5kZXYnLFxuICB6a3N5bmNFeHBsb3JlckFwaVRva2VuOiBwcm9jZXNzLmVudi5aS1NZTkNfRVhQTE9SRVJfQVBJX1RPS0VOLFxuICBiYXNlZXRoRXhwbG9yZXJVcmw6ICdodHRwczovL2FwaS1zZXBvbGlhLmJhc2VzY2FuLm9yZycsXG4gIGJhc2VldGhBcGlUb2tlbjogcHJvY2Vzcy5lbnYuQkFTRVNDQU5fQVBJX1RPS0VOLFxuICAvLyBreWxpbiBlb3MgZW5kcG9pbnRzIGZvdW5kIGhlcmVcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2NyeXB0b2t5bGluL0NyeXB0b0t5bGluLVRlc3RuZXQjaHR0cC1hcGktbGlzdFxuICAvLyBodHRwczovL2RvY3MubGlxdWlkYXBwcy5pby9saXF1aWRhcHBzLWRvY3VtZW50YXRpb24vZW9zaW8tZ3VpZGVzL3Rlc3RuZXQtY3JlYXRpb24tZ3VpZGVzL2NyZWF0aW5nLWNyeXB0b2t5bGluLWFjY291bnQjc2V0dXBcbiAgZW9zTm9kZVVybHM6IFsnaHR0cHM6Ly9reWxpbi5lb3NuLmlvJywgJ2h0dHBzOi8vYXBpLmt5bGluLmFsb2hhZW9zLmNvbSddLFxuICBuZWFyTm9kZVVybHM6IFsnaHR0cHM6Ly90ZXN0LnJwYy5mYXN0bmVhci5jb20nXSxcbiAgc29sTm9kZVVybDogJ2h0dHBzOi8vYXBpLmRldm5ldC5zb2xhbmEuY29tJyxcbiAgc29sQWxjaGVteU5vZGVVcmw6ICdodHRwczovL3NvbGFuYS1kZXZuZXQuZy5hbGNoZW15LmNvbS92MicsXG4gIGFkYU5vZGVVcmw6ICdodHRwczovL3ByZXByb2Qua29pb3MucmVzdC9hcGkvdjEnLFxuICBoYXNoTm9kZVVybDogJ2h0dHBzOi8vYXBpLnRlc3QucHJvdmVuYW5jZS5pbycsXG4gIGluak5vZGVVcmw6ICdodHRwczovL3Rlc3RuZXQuc2VudHJ5LmxjZC5pbmplY3RpdmUubmV0d29yaycsIC8vIENPSU4tMTIxOSA6IHJlZmVyZW5jZSAgaHR0cHM6Ly9kb2NzLmluamVjdGl2ZS5uZXR3b3JrL2RldmVsb3AvcHVibGljLWVuZHBvaW50cy8jdGVzdG5ldFxuICBhdG9tTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5wcm92aWRlci1zZW50cnktMDIuaWNzLXRlc3RuZXQucG9seXBvcmUueHl6LycsXG4gIG9zbW9Ob2RlVXJsOiAnaHR0cHM6Ly9sY2Qub3Ntb3Rlc3Q1Lm9zbW9zaXMuem9uZScsXG4gIHRpYU5vZGVVcmw6ICdodHRwczovL2FwaS1tb2NoYS5wb3BzLm9uZScsXG4gIHNlaU5vZGVVcmw6ICdodHRwczovL3Jlc3QuYXRsYW50aWMtMi5zZWluZXR3b3JrLmlvJyxcbiAgYmxkTm9kZVVybDogJ2h0dHBzOi8vZGV2bmV0LmFwaS5hZ29yaWMubmV0JyxcbiAgYmVyYU5vZGVVcmw6ICcnLCAvLyBUT0RPKFdJTi02OTMpOiB1cGRhdGUgdXJsIHdoZW4gdGVzdG5ldCBnb2VzIGxpdmVcbiAgemV0YU5vZGVVcmw6ICdodHRwczovL3Jlc3Qubm9kZWp1bXBlci5pby96ZXRhY2hhaW50ZXN0bmV0JywgLy8gcmVmZXJlbmNlIDogaHR0cHM6Ly93d3cuemV0YWNoYWluLmNvbS9kb2NzL3JlZmVyZW5jZS9hcGkvXG4gIGNvcmV1bU5vZGVVcmw6ICdodHRwczovL2Z1bGwtbm9kZS50ZXN0bmV0LTEuY29yZXVtLmRldjoxMzE3JyxcbiAgcnVuZU5vZGVVcmw6ICdodHRwczovL3N0YWdlbmV0LXRob3Jub2RlLm5pbmVyZWFsbXMuY29tJyxcbiAgYmFieU5vZGVVcmw6ICdodHRwczovL2JhYnlsb24tdGVzdG5ldC1hcGkubm9kZXMuZ3VydS8nLFxuICBpc2xtTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5jb3Ntb3MudGVzdGVkZ2UyLmhhcXEubmV0d29yayAnLFxuICBtYW50cmFOb2RlVXJsOiAnaHR0cHM6Ly9tYW50cmEtdGVzdG5ldC1yZXN0LnB1YmxpY25vZGUuY29tLycsXG4gIGNyb25vc05vZGVVcmw6ICdodHRwczovL3Rlc3RuZXQtY3JvZXNlaWQtNC5jcnlwdG8ub3JnOjEzMTcvJyxcbiAgaW5pdGlhTm9kZVVybDogJ2h0dHBzOi8vcmVzdC50ZXN0bmV0LmluaXRpYS54eXovJyxcbiAgYXNpTm9kZVVybDogJ2h0dHBzOi8vcmVzdC1kb3JhZG8uZmV0Y2guYWkvJyxcbiAgZG90Tm9kZVVybHM6IFsnd3NzOi8vYXNzZXQtaHViLXdlc3RlbmQtcnBjLm4uZHdlbGxpci5jb20nXSxcbiAgc3Vic3RyYXRlTm9kZVVybHM6IFsnd3NzOi8vdGVzdC5maW5uZXkub3BlbnRlbnNvci5haSddLFxuICBwb2x5bWVzaE5vZGVVcmxzOiBbJ3dzczovL3Rlc3RuZXQtcnBjLnBvbHltZXNoLmxpdmUnXSxcbiAgdHJvbk5vZGVzOiB7XG4gICAgZnVsbDogJ2h0dHBzOi8vYXBpLnNoYXN0YS50cm9uZ3JpZC5pbycsXG4gICAgc29saWRpdHk6ICdodHRwczovL2FwaS5zaGFzdGEudHJvbmdyaWQuaW8nLFxuICB9LFxuICBobWFjVmVyaWZpY2F0aW9uRW5mb3JjZWQ6IGZhbHNlLFxuICB0b25Ob2RlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LnRvbmNlbnRlci5jb20vYXBpL3YyL2pzb25SUEMnLFxuICBzdWlOb2RlVXJsOiAnaHR0cHM6Ly9zdWktdGVzdG5ldC1ycGMucHVibGljbm9kZS5jb20nLFxuICBpb3RhTm9kZVVybDogJ2h0dHBzOi8vYXBpLnRlc3RuZXQuaW90YS5jYWZlJyxcbiAgZXRjTm9kZVVybDogJ2h0dHBzOi8vZXRjLW1vcmRvci5ibG9ja3Njb3V0LmNvbScsXG4gIGNvcmVkYW9FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS50ZXN0Mi5idGNzLm5ldHdvcmsnLFxuICBvYXNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQub2FzeXMuZ2FtZXMnLFxuICB3ZW1peEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGZsckV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vY29zdG9uMi1leHBsb3Jlci5mbGFyZS5uZXR3b3JrJyxcbiAgeGRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgc2diRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9jb3N0b24tZXhwbG9yZXIuZmxhcmUubmV0d29yaycsXG4gIGljcE5vZGVVcmw6ICdodHRwczovL2ljMC5hcHAnLFxuICBrYXNwYU5vZGVVcmw6ICdodHRwczovL2FwaS10bjEwLmthc3BhLm9yZycsXG4gIHN0YXJrbmV0Tm9kZVVybDogJ2h0dHBzOi8vc3RhcmtuZXQtc2Vwb2xpYS1ycGMucHVibGljbm9kZS5jb20vJyxcbiAgaHlwZXJMaXF1aWROb2RlVXJsOiAnaHR0cHM6Ly9hcGkuaHlwZXJsaXF1aWQtdGVzdG5ldC54eXonLFxuICBtb25FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICB3b3JsZEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc2Vwb2xpYS53b3JsZHNjYW4ub3JnLycsXG4gIHNvbW5pYUV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc2hhbm5vbi1leHBsb3Jlci5zb21uaWEubmV0d29yay8nLFxuICBzb25laXVtRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9zb25laXVtLW1pbmF0by5ibG9ja3Njb3V0LmNvbScsXG4gIGV2bToge1xuICAgIGFic3RyYWN0ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuc2Vwb2xpYS5hYnNjYW4ub3JnL2FwaScsXG4gICAgfSxcbiAgICBhcGVjaGFpbjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBjaGlsaXo6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS50ZXN0bmV0LmNoaWxpc2Nhbi5jb20nLFxuICAgIH0sXG4gICAgY29kZXhldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLmNvZGV4LXN0Zy54eXovYXBpJyxcbiAgICB9LFxuICAgIHBocnM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuZHBsYWJzLWludGVybmFsLmNvbScsIC8vIFdyb25nIHZhbHVlLCBOb3QgYXZhaWxhYmxlIHlldFxuICAgIH0sXG4gICAgY3RjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jcmVkaXRjb2luLXRlc3RuZXQuYmxvY2tzY291dC5jb20nLFxuICAgIH0sXG4gICAgaHlwZWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vcnBjLmh5cGVybGlxdWlkLXRlc3RuZXQueHl6L2V2bScsIC8vIE5vdCBBdmFpbGFibGVcbiAgICAgIC8vIFRoZXNlIGFyZSB1c2VkIGZvciBCcmlkZ2luZyBhc3NldHMgb24gaHlwZSBjaGFpbi5cbiAgICAgIHRva2VuSWQ6IDExMDUsXG4gICAgICBzeXN0ZW1BZGRyOiAnMHgyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyJyxcbiAgICB9LFxuICAgIG9nOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jaGFpbnNjYW4tdGVzdC4wZy5haS9vcGVuJyxcbiAgICB9LFxuICAgIHhwbDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnJvdXRlc2Nhbi5pby92Mi9uZXR3b3JrL3Rlc3RuZXQvZXZtLzk3NDZfNS9ldGhlcnNjYW4nLFxuICAgIH0sXG4gICAgc29uaWM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdXNkdDA6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuc3RhYmxlc2Nhbi54eXovYXBpJyxcbiAgICB9LFxuICAgIHNlaWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBrYWlhOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9rYWlyb3Mtb2FwaS5rYWlhc2Nhbi5pbycsXG4gICAgfSxcbiAgICBrYXZhZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkudmVyaWZ5Lm1pbnRzY2FuLmlvL2V2bS9hcGkvMHg4YWQnLFxuICAgIH0sXG4gICAgaXJ5czoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vaW5zdC0xLmNsb3VkLmJsb2Nrc2NvdXQuY29tL2FwaScsXG4gICAgfSxcbiAgICBtb246IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgbGluZWFldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgaXA6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FlbmVpZC5kYXRhbmV0c2Nhbi5pbycsXG4gICAgfSxcbiAgICB0YmFzZWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB0b3BibmI6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgICAgYXBpVG9rZW46IHByb2Nlc3MuZW52LkVUSEVSU0NBTl9BUElfVE9LRU4sXG4gICAgfSxcbiAgICB0Y290aWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5jb3Rpc2Nhbi5pbycsXG4gICAgICBycGNVcmw6ICdodHRwczovL3Rlc3RuZXQuY290aS5pby9ycGMnLFxuICAgIH0sXG4gICAgeHR6ZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9zaGFkb3duZXQuZXhwbG9yZXIuZXRoZXJsaW5rLmNvbS9hcGknLFxuICAgIH0sXG4gICAgdGdhc2V2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbmVveHQ0c2Nhbi5uZ2QubmV0d29yay9hcGknLFxuICAgIH0sXG4gICAgZmxvdzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXZtLXRlc3RuZXQuZmxvd3NjYW4uaW8nLFxuICAgIH0sXG4gICAgbWVnYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vY2Fycm90Lm1lZ2FldGguY29tL3JwYycsXG4gICAgfSxcbiAgICBwbHVtZToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC1leHBsb3Jlci5wbHVtZS5vcmcnLFxuICAgIH0sXG4gICAgaGJhcmV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5taXJyb3Jub2RlLmhlZGVyYS5jb20vYXBpL3YxJyxcbiAgICAgIHJwY1VybDogJ2h0dHBzOi8vdGVzdG5ldC5oYXNoaW8uaW8vYXBpJyxcbiAgICB9LFxuICAgIHRzY3JvbGxldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS1zZXBvbGlhLnNjcm9sbHNjYW4uY29tL2FwaScsXG4gICAgfSxcbiAgICBoZW1pZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmV4cGxvcmVyLmhlbWkueHl6L2FwaScsXG4gICAgfSxcbiAgICB0a2F0YW5hZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci1ib2t1dG8ua2F0YW5hcnBjLmNvbS9hcGknLFxuICAgIH0sXG4gICAgdGlua2V0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItc2Vwb2xpYS5pbmtvbmNoYWluLmNvbS9hcGknLFxuICAgIH0sXG4gICAgcHJpdmlkaXVtZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LXByaXZpZGl1bS56a3N5bmMuZGV2L2FwaScsXG4gICAgfSxcbiAgICBmbHVlbnRldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuZmx1ZW50c2Nhbi54eXovYXBpLycsXG4gICAgfSxcbiAgICBtYW50bGU6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS1zZXBvbGlhLm1hbnRsZXNjYW4ueHl6L2FwaScsXG4gICAgfSxcbiAgICBqb3ZheWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnphbi50b3Avbm9kZS92MS9qb3ZheS90ZXN0bmV0LycsXG4gICAgfSxcbiAgICBva2J4bGF5ZXI6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3d3dy5va2xpbmsuY29tL2FwaS92NS9leHBsb3Jlci9ibG9jay9ibG9jay1saXN0P2NoYWluU2hvcnROYW1lPXhsYXllcl90ZXN0bmV0JyxcbiAgICB9LFxuICAgIG1vcnBoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci1hcGktaG9vZGkubW9ycGhsMi5pbycsXG4gICAgfSxcbiAgICBtb3JwaGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItaG9vZGkubW9ycGgubmV0d29yay8nLFxuICAgIH0sXG4gICAgZG9nZW9zOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9ibG9ja3Njb3V0LnRlc3RuZXQuZG9nZW9zLmNvbScsXG4gICAgfSxcbiAgICBhcmN1c2RjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmFyY3NjYW4uYXBwL2FwaScsIC8vIFdJTi04ODQ0ID0+IGFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICAgIH0sXG4gICAgeGRjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIHprc3luY2VyYToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB1bmlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3VuaWNoYWluLXNlcG9saWEuYmxvY2tzY291dC5jb20vYXBpJyxcbiAgICB9LFxuICAgIGhvb2RldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQuY2hhaW4ucm9iaW5ob29kLmNvbS9hcGknLFxuICAgIH0sXG4gICAgaHBwZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9zZXBvbGlhLWV4cGxvcmVyLmhwcC5pby9hcGknLFxuICAgIH0sXG4gICAgaDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vaHVtYW5pdHktdGVzdG5ldC5leHBsb3Jlci5hbGNoZW15LmNvbS9hcGknLFxuICAgIH0sXG4gICAgYm9iYToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnJvdXRlc2Nhbi5pby92Mi9uZXR3b3JrL3Rlc3RuZXQvZXZtLzI4ODgyL2V0aGVyc2Nhbi9hcGknLFxuICAgIH0sXG4gICAgdGVtcG86IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3RlbXBvLW1vZGVyYXRvLmcuYWxjaGVteS5jb20vdjIvJyxcbiAgICB9LFxuICB9LFxuICBzdHhOb2RlVXJsOiAnaHR0cHM6Ly9hcGkudGVzdG5ldC5oaXJvLnNvJyxcbiAgdmV0Tm9kZVVybDogJ2h0dHBzOi8vc3luYy10ZXN0bmV0LnZlY2hhaW4ub3JnJyxcbiAgeHR6RXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZ2hvc3RuZXQudHprdC5pbycsXG4gIHh0elJwY1VybDogJ2h0dHBzOi8vcnBjLnR6a3QuaW8vZ2hvc3RuZXQnLFxufTtcblxuY29uc3QgZGV2QmFzZTogRW52aXJvbm1lbnRUZW1wbGF0ZSA9IE9iamVjdC5hc3NpZ24oe30sIHRlc3RuZXRCYXNlLCB7XG4gIGhzbVhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi5kZXYsXG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogZmFsc2UsXG59KTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlZGVjbGFyZVxuZXhwb3J0IGNvbnN0IEVudmlyb25tZW50czogRW52aXJvbm1lbnRzID0ge1xuICBwcm9kOiBPYmplY3QuYXNzaWduKHt9LCBtYWlubmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYXBwLmJpdGdvLmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FwcC5iaXRnby5jb20vYXBpL3YyL3hsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIHRlc3Q6IE9iamVjdC5hc3NpZ24oe30sIHRlc3RuZXRCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hcHAuYml0Z28tdGVzdC5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hcHAuYml0Z28tdGVzdC5jb20vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBkZXY6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FwcC5iaXRnby1kZXYuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYXBwLmJpdGdvLWRldi5jb20vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBzdGFnaW5nOiBPYmplY3QuYXNzaWduKHt9LCB0ZXN0bmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYXBwLmJpdGdvLXN0YWdpbmcuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYXBwLmJpdGdvLXN0YWdpbmcuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgbG9jYWw6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2xvY2FsaG9zdDozMDAwJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBsb2NhbE5vblNlY3VyZTogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBtb2NrOiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9iaXRnby5mYWtldXJsJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYml0Z28uZmFrZXVybC9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgICBldGhlcnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGktaG9vZGkuZXRoZXJzY2FuLmZha2V1cmwnLFxuICAgIGV0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICAgIGF2YXhjTmV0d29ya0Jhc2VVcmw6ICdodHRwczovL2FwaS5hdmF4LXRlc3QubmV0d29yay5mYWtldXJsJyxcbiAgICBldGgyRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS9hcGknLFxuICB9KSxcbiAgYWRtaW5Qcm9kOiBPYmplY3QuYXNzaWduKHt9LCBtYWlubmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYWRtaW4uYml0Z28uY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYWRtaW4uYml0Z28uY29tL2FwaS92Mi94bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBhZG1pblRlc3Q6IE9iamVjdC5hc3NpZ24oe30sIHRlc3RuZXRCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby10ZXN0LmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FkbWluLmJpdGdvLXRlc3QuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgYWRtaW5EZXY6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FkbWluLmJpdGdvLWRldi5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby1kZXYuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgYWRtaW5TdGFnaW5nOiBPYmplY3QuYXNzaWduKHt9LCB0ZXN0bmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYWRtaW4uYml0Z28tc3RhZ2luZy5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby1zdGFnaW5nLmNvbS9hcGkvdjIveGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgY3VzdG9tOiBPYmplY3QuYXNzaWduKHt9LCBtYWlubmV0QmFzZSwge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgdXJpOiBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fUk9PVF9VUkkhLFxuICAgIG5ldHdvcms6IHByb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9CSVRDT0lOX05FVFdPUksgYXMgVjFOZXR3b3JrLFxuICAgIGhzbVhwdWI6XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nID8gaGFyZGNvZGVkUHVibGljS2V5cy5oc21YcHViLnByb2QgOiBoYXJkY29kZWRQdWJsaWNLZXlzLmhzbVhwdWIudGVzdCxcbiAgICBidGNFeHBsb3JlckJhc2VVcmw6XG4gICAgICBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fQklUQ09JTl9ORVRXT1JLICE9PSAnYml0Y29pbidcbiAgICAgICAgPyAnaHR0cHM6Ly9ibG9ja3N0cmVhbS5pbmZvL3Rlc3RuZXQvYXBpJ1xuICAgICAgICA6ICdodHRwczovL2Jsb2Nrc3RyZWFtLmluZm8vYXBpJyxcbiAgICBldGhlcnNjYW5CYXNlVXJsOlxuICAgICAgcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX0VUSEVSRVVNX05FVFdPUksgIT09ICdldGhlcmV1bSdcbiAgICAgICAgPyAnaHR0cHM6Ly9hcGktaG9vZGkuZXRoZXJzY2FuLmlvJ1xuICAgICAgICA6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOlxuICAgICAgcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX1NURUxMQVJfTkVUV09SSyAhPT0gJ3N0ZWxsYXInXG4gICAgICAgID8gYGh0dHBzOi8vJHtwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fUk9PVF9VUkl9L2FwaS92Mi90eGxtL2ZlZGVyYXRpb25gXG4gICAgICAgIDogYGh0dHBzOi8vJHtwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fUk9PVF9VUkl9L2FwaS92Mi94bG0vZmVkZXJhdGlvbmAsXG4gICAgc2VydmVyWHB1YjpcbiAgICAgIHByb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9CSVRDT0lOX05FVFdPUksgIT09ICdiaXRjb2luJ1xuICAgICAgICA/IGhhcmRjb2RlZFB1YmxpY0tleXMuc2VydmVyWHB1Yi50ZXN0XG4gICAgICAgIDogaGFyZGNvZGVkUHVibGljS2V5cy5zZXJ2ZXJYcHViLnByb2QsXG4gIH0pLFxuICBicmFuY2g6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FwcC5iaXRnby1kZXYuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYXBwLmJpdGdvLWRldi5jb20vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxufTtcbiJdfQ==
566
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL2Vudmlyb25tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0SGEsUUFBQSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQy9DLFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtLQUN4SDtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtRQUN2SCxHQUFHLEVBQUUsaUhBQWlIO0tBQ3ZIO0NBQ0YsQ0FBQyxDQUFDO0FBcUJILHdGQUF3RjtBQUMzRSxRQUFBLGlCQUFpQixHQUFxRDtJQUNqRixVQUFVLEVBQUUsTUFBTTtJQUNsQixNQUFNLEVBQUUsTUFBTTtJQUNkLE1BQU0sRUFBRSxNQUFNO0lBQ2QsS0FBSyxFQUFFLEtBQUs7Q0FDYixDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQXdCO0lBQ3ZDLE9BQU8sRUFBRSxTQUFzQjtJQUMvQixjQUFjLEVBQUUsb0NBQW9DO0lBQ3BELFVBQVUsRUFBRSwyQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSTtJQUMvQyxPQUFPLEVBQUUsMkJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUk7SUFDekMsa0JBQWtCLEVBQUUsOEJBQThCO0lBQ2xELGdCQUFnQixFQUFFLDZCQUE2QjtJQUMvQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtJQUNsRCxtQkFBbUIsRUFBRSwwQkFBMEI7SUFDL0MsbUJBQW1CLEVBQUUsNEJBQTRCO0lBQ2pELHNCQUFzQixFQUFFLGlDQUFpQztJQUN6RCxjQUFjLEVBQUUsNkJBQTZCO0lBQzdDLGVBQWUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWE7SUFDMUMsa0JBQWtCLEVBQUUsNkJBQTZCO0lBQ2pELG1CQUFtQixFQUFF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LEVBQUUsT0FBTyxFQUFFO1FBQ2pDLEdBQUcsRUFBRSwyQkFBMkI7UUFDaEMsMEJBQTBCLEVBQUUsa0RBQWtEO0tBQy9FLENBQUM7Q0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgVjFOZXR3b3JrIH0gZnJvbSAnLi90eXBlcyc7XG5cbmludGVyZmFjZSBFbnZpcm9ubWVudFRlbXBsYXRlIHtcbiAgdXJpPzogc3RyaW5nO1xuICBuZXR3b3JrOiBWMU5ldHdvcms7XG4gIHNpZ25pbmdBZGRyZXNzOiBzdHJpbmc7XG4gIHNlcnZlclhwdWI6IHN0cmluZztcbiAgaHNtWHB1Yjogc3RyaW5nO1xuICBidGNFeHBsb3JlckJhc2VVcmw6IHN0cmluZztcbiAgZXRoZXJzY2FuQmFzZVVybDogc3RyaW5nO1xuICBldGhlcnNjYW5BcGlUb2tlbj86IHN0cmluZztcbiAgYXZheGNOZXR3b3JrQmFzZVVybDogc3RyaW5nO1xuICBldGgyRXhwbG9yZXJCYXNlVXJsOiBzdHJpbmc7XG4gIGV0aHdGdWxsTm9kZVJQQ0Jhc2VVcmw6IHN0cmluZztcbiAgcG9seWdvbnNjYW5CYXNlVXJsPzogc3RyaW5nO1xuICBic2NzY2FuQmFzZVVybD86IHN0cmluZztcbiAgYnNjc2NhbkFwaVRva2VuPzogc3RyaW5nO1xuICBwb2x5Z29uc2NhbkFwaVRva2VuPzogc3RyaW5nO1xuICBhcGVjaGFpbkV4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGFwZWNoYWluRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBhcmJpc2NhbkJhc2VVcmw/OiBzdHJpbmc7XG4gIGFyYmlzY2FuQXBpVG9rZW4/OiBzdHJpbmc7XG4gIG9hc0V4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIG9hc0V4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkJhc2VVcmw/OiBzdHJpbmc7XG4gIG9wdGltaXN0aWNFdGhlcnNjYW5BcGlUb2tlbj86IHN0cmluZztcbiAgemtzeW5jRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICB6a3N5bmNFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBiZXJhRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBiZXJhRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgYmFzZWV0aEV4cGxvcmVyVXJsPzogc3RyaW5nO1xuICBiYXNlZXRoQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsPzogc3RyaW5nO1xuICBlb3NOb2RlVXJsczogc3RyaW5nW107XG4gIG5lYXJOb2RlVXJsczogc3RyaW5nW107XG4gIHNvbE5vZGVVcmw6IHN0cmluZztcbiAgc29sQWxjaGVteU5vZGVVcmw6IHN0cmluZztcbiAgYWRhTm9kZVVybDogc3RyaW5nO1xuICBoYXNoTm9kZVVybDogc3RyaW5nO1xuICBpbmpOb2RlVXJsOiBzdHJpbmc7XG4gIGF0b21Ob2RlVXJsOiBzdHJpbmc7XG4gIG9zbW9Ob2RlVXJsOiBzdHJpbmc7XG4gIHRpYU5vZGVVcmw6IHN0cmluZztcbiAgc2VpTm9kZVVybDogc3RyaW5nO1xuICBibGROb2RlVXJsOiBzdHJpbmc7XG4gIGJlcmFOb2RlVXJsOiBzdHJpbmc7XG4gIHpldGFOb2RlVXJsOiBzdHJpbmc7XG4gIGNvcmV1bU5vZGVVcmw6IHN0cmluZztcbiAgcnVuZU5vZGVVcmw6IHN0cmluZztcbiAgYmFieU5vZGVVcmw6IHN0cmluZztcbiAgbWFudHJhTm9kZVVybDogc3RyaW5nO1xuICBjcm9ub3NOb2RlVXJsOiBzdHJpbmc7XG4gIGluaXRpYU5vZGVVcmw6IHN0cmluZztcbiAgYXNpTm9kZVVybDogc3RyaW5nO1xuICBpc2xtTm9kZVVybDogc3RyaW5nO1xuICBkb3ROb2RlVXJsczogc3RyaW5nW107XG4gIHN1YnN0cmF0ZU5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgcG9seW1lc2hOb2RlVXJsczogc3RyaW5nW107XG4gIHRyb25Ob2Rlczoge1xuICAgIGZ1bGw6IHN0cmluZztcbiAgICBzb2xpZGl0eTogc3RyaW5nO1xuICB9O1xuICBobWFjVmVyaWZpY2F0aW9uRW5mb3JjZWQ6IGJvb2xlYW47XG4gIHRvbk5vZGVVcmw6IHN0cmluZztcbiAgc3VpTm9kZVVybDogc3RyaW5nO1xuICBpb3RhTm9kZVVybDogc3RyaW5nO1xuICBldGNOb2RlVXJsOiBzdHJpbmc7XG4gIGNvcmVkYW9FeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIGNvcmVkYW9FeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICB4ZGNFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHhkY0V4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGZsckV4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgZmxyRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgc2diRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBzZ2JFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBpY3BOb2RlVXJsOiBzdHJpbmc7XG4gIGthc3BhTm9kZVVybDogc3RyaW5nO1xuICBzdGFya25ldE5vZGVVcmw6IHN0cmluZztcbiAgaHlwZXJMaXF1aWROb2RlVXJsOiBzdHJpbmc7XG4gIHdlbWl4RXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICB3ZW1peEV4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIG1vbkV4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgbW9uRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgd29ybGRFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHdvcmxkRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgc29tbmlhRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBzb21uaWFFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzb25laXVtRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBzb25laXVtRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgc3R4Tm9kZVVybDogc3RyaW5nO1xuICAvKipcbiAgICogU3RhY2tzIHN0YWtpbmctdGVzdG5ldCBSUEMgKGNoYWluIElEIDEyODAgb24gYSBwcml2YXRlIEJpdGNvaW4gc2lnbmV0KS4gT25seSB0ZXN0bmV0LWRlcml2ZWRcbiAgICogZW52aXJvbm1lbnRzIGNvbmZpZ3VyZSBpdDsgdGhlIHRzdHhzaWduZXQgY29pbiBpcyB1bnVzYWJsZSBpbiBlbnZpcm9ubWVudHMgd2l0aG91dCBpdC5cbiAgICovXG4gIHN0eFNpZ25ldE5vZGVVcmw/OiBzdHJpbmc7XG4gIHZldE5vZGVVcmw6IHN0cmluZztcbiAgLy8gVGhlIGtleSBoZXJlIGlzIGNvaW5OYW1lIGFuZCBpdCB3aWxsIGJlIHNhbWUgZm9yIGJvdGggbWFpbm5ldCBhbmQgdGVzdG5ldCAoZWc6ICdwaHJzJylcbiAgZXZtPzoge1xuICAgIFtrZXk6IHN0cmluZ106IHtcbiAgICAgIGJhc2VVcmw6IHN0cmluZztcbiAgICAgIGFwaVRva2VuPzogc3RyaW5nO1xuICAgICAgcnBjVXJsPzogc3RyaW5nO1xuICAgICAgdG9rZW5JZD86IG51bWJlcjtcbiAgICAgIHN5c3RlbUFkZHI/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgLy8gVGhlIGtleSBoZXJlIGlzIGNvaW5GYW1pbHkgYW5kIGl0IHdpbGwgYmUgc2FtZSBmb3IgYm90aCBtYWlubmV0IGFuZCB0ZXN0bmV0IChlZzogJ2Nyb25vcycpXG4gIGNvc21vcz86IHtcbiAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICBub2RlVXJsOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgeHR6RXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICB4dHpScGNVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnQgZXh0ZW5kcyBFbnZpcm9ubWVudFRlbXBsYXRlIHtcbiAgdXJpOiBzdHJpbmc7XG4gIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBoYXJkY29kZWRQdWJsaWNLZXlzID0gT2JqZWN0LmZyZWV6ZSh7XG4gIHNlcnZlclhwdWI6IHtcbiAgICBwcm9kOiAneHB1YjY2MU15TXdBcVJiY0V0VWd1OUhGOGFpNGlwdVZLS0hCelVxa3M0alNGeXBXOGR3d1FMMXp5Z0xnUXg5OU5tQzd6Skp6blNpd0tHNlJRZlZqQUtNdENzeDhWalI2a1FXOHg3SHJrWEZaZG5RJyxcbiAgICB0ZXN0OiAneHB1YjY2MU15TXdBcVJiY0VyRnFWWEdpVUZ2OVllb1BiaE43MlVpTkNVZGo5bmozVDZNOGg3aUtObWJDWXBNVldWWlA3TEEybWEzSFdjUG5nejFnUlRtNEZQZHRtOW1IZnJOdlU5M01Db3N6c0dMJyxcbiAgfSxcbiAgaHNtWHB1Yjoge1xuICAgIHByb2Q6ICd4cHViNjYxTXlNd0FxUmJjR0V0VEZnTUFveE1Gb3FzUmREYWlhUjYzYnlOZlpkVjdjQlpGdm92UVNOSjVicHllb1F0dUtWZ1hCazZzRlE3VHR2eVdxYWR0NDFEbkt3dmVZZ001S29VMkVLWWpkWTInLFxuICAgIHRlc3Q6ICd4cHViNjYxTXlNd0FxUmJjR0ZLZTRCcXZrNFNncmljNGdORkM4cFVidzR0VWtWalp4dWJqQ0E1MjJnUHpjMVlhWGIzYlFWbURXYzdDakc4QUdOV1JwY2RBVTM4UkVUQmg4bjJibnFFVTRrYlY0b0snLFxuICAgIGRldjogJ3hwdWI2NjFNeU13QXFSYmNGV3pvejhxbllSRFlFRlFwUExZd3hWRm9HNldMeTNjazVadXBSR0pURzRqdTZ5R2I3RGozZXk2R3NDNGtzdExSRVIybkt6Z2pMdG14eVBnQzR6SHk3a1ZoVXQ2eWZHbicsXG4gIH0sXG59KTtcblxuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnROYW1lID1cbiAgfCAncHJvZCdcbiAgfCAnc3RhZ2luZydcbiAgfCAndGVzdCdcbiAgfCAnZGV2J1xuICB8ICdsb2NhbCdcbiAgfCAnbG9jYWxOb25TZWN1cmUnXG4gIHwgJ21vY2snXG4gIHwgJ2FkbWluUHJvZCdcbiAgfCAnYWRtaW5UZXN0J1xuICB8ICdhZG1pblN0YWdpbmcnXG4gIHwgJ2FkbWluRGV2J1xuICB8ICdjdXN0b20nXG4gIHwgJ2JyYW5jaCc7XG5cbmV4cG9ydCB0eXBlIEFsaWFzRW52aXJvbm1lbnROYW1lID0gJ3Byb2R1Y3Rpb24nIHwgJ21zUHJvZCcgfCAnbXNUZXN0JyB8ICdtc0Rldic7XG5cbmV4cG9ydCB0eXBlIEVudmlyb25tZW50cyA9IHsgW2sgaW4gRW52aXJvbm1lbnROYW1lXTogRW52aXJvbm1lbnQgfTtcblxuLy8gYWxpYXMgZW52aXJvbm1lbnRzIGFyZSBlbnZpcm9ubWVudCBuYW1lcyB3aGljaCBhcmUgYWxpYXNlcyBvZiBhIHN1cHBvcnRlZCBlbnZpcm9ubWVudFxuZXhwb3J0IGNvbnN0IEFsaWFzRW52aXJvbm1lbnRzOiB7IFtrIGluIEFsaWFzRW52aXJvbm1lbnROYW1lXTogRW52aXJvbm1lbnROYW1lIH0gPSB7XG4gIHByb2R1Y3Rpb246ICdwcm9kJyxcbiAgbXNQcm9kOiAncHJvZCcsXG4gIG1zVGVzdDogJ3Rlc3QnLFxuICBtc0RldjogJ2RldicsXG59O1xuXG5jb25zdCBtYWlubmV0QmFzZTogRW52aXJvbm1lbnRUZW1wbGF0ZSA9IHtcbiAgbmV0d29yazogJ2JpdGNvaW4nIGFzIFYxTmV0d29yayxcbiAgc2lnbmluZ0FkZHJlc3M6ICcxQml0R28zZ3hSWjZtUVNFSDUyZHZDS1NVZ1ZDQUg0UmphJyxcbiAgc2VydmVyWHB1YjogaGFyZGNvZGVkUHVibGljS2V5cy5zZXJ2ZXJYcHViLnByb2QsXG4gIGhzbVhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi5wcm9kLFxuICBidGNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2Jsb2Nrc3RyZWFtLmluZm8vYXBpJyxcbiAgZXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGV0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICBhdmF4Y05ldHdvcmtCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuYXZheC5uZXR3b3JrJyxcbiAgZXRoMkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vYXBpJyxcbiAgZXRod0Z1bGxOb2RlUlBDQmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5ldGhlcmV1bXBvdy5vcmcnLFxuICBic2NzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGJzY3NjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuQlNDX0FQSV9UT0tFTixcbiAgcG9seWdvbnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgcG9seWdvbnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuUE9MWUdPTlNDQU5fQVBJX1RPS0VOLFxuICBhcmJpc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBhcmJpc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5BUkJJU0NBTl9BUElfVE9LRU4sXG4gIG9wdGltaXN0aWNFdGhlcnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5PUFRJTUlTVElDX0VUSEVSU0NBTl9BUElfVE9LRU4sXG4gIHprc3luY0V4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmxvY2stZXhwbG9yZXItYXBpLm1haW5uZXQuemtzeW5jLmlvJyxcbiAgemtzeW5jRXhwbG9yZXJBcGlUb2tlbjogcHJvY2Vzcy5lbnYuWktTWU5DX0VYUExPUkVSX0FQSV9UT0tFTixcbiAgYmFzZWV0aEV4cGxvcmVyVXJsOiAnaHR0cHM6Ly9hcGkuYmFzZXNjYW4ub3JnJywgLy9CYXNlRVRIIGV4cGxvcmVyIGFwaSB1cmxcbiAgYmFzZWV0aEFwaVRva2VuOiBwcm9jZXNzLmVudi5CQVNFU0NBTl9BUElfVE9LRU4sXG4gIGVvc05vZGVVcmxzOiBbJ2h0dHBzOi8vYnAuY3J5cHRvbGlvbnMuaW8nLCAnaHR0cHM6Ly9hcGkuZW9zbmV3eW9yay5pbycsICdodHRwczovL2FwaS5lb3NkZXRyb2l0LmlvJ10sXG4gIG5lYXJOb2RlVXJsczogWydodHRwczovL2FwaS5mYXN0bmVhci5jb20nXSxcbiAgc29sTm9kZVVybDogJ2h0dHBzOi8vYXBpLm1haW5uZXQtYmV0YS5zb2xhbmEuY29tJyxcbiAgc29sQWxjaGVteU5vZGVVcmw6ICdodHRwczovL3NvbGFuYS1tYWlubmV0LmcuYWxjaGVteS5jb20vdjInLFxuICBhZGFOb2RlVXJsOiAnaHR0cHM6Ly9hcGkua29pb3MucmVzdC9hcGkvdjEnLFxuICBoYXNoTm9kZVVybDogJ2h0dHBzOi8vYXBpLnByb3ZlbmFuY2UuaW8nLFxuICBpbmpOb2RlVXJsOiAnaHR0cHM6Ly9zZW50cnkubGNkLmluamVjdGl2ZS5uZXR3b3JrJywgLy8gcmVmZXJlbmNlIGh0dHBzOi8vZG9jcy5pbmplY3RpdmUubmV0d29yay9kZXZlbG9wL3B1YmxpYy1lbmRwb2ludHMvXG4gIGF0b21Ob2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmNvc21vcy5kaXJlY3RvcnkvY29zbW9zaHViLycsXG4gIG9zbW9Ob2RlVXJsOiAnaHR0cHM6Ly9sY2Qub3Ntb3Npcy56b25lJyxcbiAgdGlhTm9kZVVybDogJ2h0dHBzOi8vcHVibGljLWNlbGVzdGlhLWxjZC5udW1pYS54eXonLCAvLyByZWZlcmVuY2UgaHR0cHM6Ly9kb2NzLmNlbGVzdGlhLm9yZy9ub2Rlcy9tYWlubmV0I2FwaS1lbmRwb2ludHNcbiAgc2VpTm9kZVVybDogJ2h0dHBzOi8vc2VpLWFwaS5wb2xrYWNodS5jb20nLFxuICBibGROb2RlVXJsOiAnaHR0cHM6Ly9hZ29yaWMtYXBpLnBvbGthY2h1LmNvbScsXG4gIGJlcmFOb2RlVXJsOiAnJywgLy8gVE9ETyhXSU4tNjkzKTogdXBkYXRlIHVybCB3aGVuIG1haW5uZXQgZ29lcyBsaXZlXG4gIHpldGFOb2RlVXJsOiAnaHR0cHM6Ly96ZXRhY2hhaW4uYmxvY2twaS5uZXR3b3JrJywgLy8gcmVmZXJlbmNlIGh0dHBzOi8vd3d3LnpldGFjaGFpbi5jb20vZG9jcy9yZWZlcmVuY2UvYXBpL1xuICBjb3JldW1Ob2RlVXJsOiAnaHR0cHM6Ly9mdWxsLW5vZGUubWFpbm5ldC0xLmNvcmV1bS5kZXY6MTMxNycsXG4gIHJ1bmVOb2RlVXJsOiAnaHR0cHM6Ly90aG9ybm9kZS5uaW5lcmVhbG1zLmNvbScsXG4gIGJhYnlOb2RlVXJsOiAnaHR0cHM6Ly9iYWJ5bG9uLm5vZGVzLmd1cnUvYXBpLycsXG4gIGlzbG1Ob2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmNvc21vcy5oYXFxLm5ldHdvcmsnLFxuICBtYW50cmFOb2RlVXJsOiAnaHR0cHM6Ly9tYW50cmEtcmVzdC5wdWJsaWNub2RlLmNvbS8nLFxuICBjcm9ub3NOb2RlVXJsOiAnaHR0cHM6Ly9jcm9ub3MtcG9zLXJlc3QucHVibGljbm9kZS5jb20vJyxcbiAgaW5pdGlhTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5pbml0aWEueHl6LycsXG4gIGFzaU5vZGVVcmw6ICdodHRwczovL3Jlc3QtZmV0Y2hodWIuZmV0Y2guYWkvJyxcbiAgZG90Tm9kZVVybHM6IFsnd3NzOi8vYXNzZXQtaHViLXBvbGthZG90LXJwYy5uLmR3ZWxsaXIuY29tJ10sXG4gIHN1YnN0cmF0ZU5vZGVVcmxzOiBbJ3dzczovL2VudHJ5cG9pbnQtZmlubmV5Lm9wZW50ZW5zb3IuYWknXSxcbiAgcG9seW1lc2hOb2RlVXJsczogWyd3c3M6Ly9tYWlubmV0LXJwYy5wb2x5bWVzaC5uZXR3b3JrJ10sXG4gIHRyb25Ob2Rlczoge1xuICAgIGZ1bGw6ICdodHRwczovL2FwaS50cm9uZ3JpZC5pbycsXG4gICAgc29saWRpdHk6ICdodHRwczovL2FwaS50cm9uZ3JpZC5pbycsXG4gIH0sXG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogdHJ1ZSxcbiAgdG9uTm9kZVVybDogJ2h0dHBzOi8vdG9uY2VudGVyLmNvbS9hcGkvdjIvanNvblJQQycsXG4gIHN1aU5vZGVVcmw6ICdodHRwczovL3N1aS1ycGMucHVibGljbm9kZS5jb20nLFxuICBpb3RhTm9kZVVybDogJ2h0dHBzOi8vYXBpLm1haW5uZXQuaW90YS5jYWZlJyxcbiAgZXRjTm9kZVVybDogJ2h0dHBzOi8vZXRjLmJsb2Nrc2NvdXQuY29tJyxcbiAgY29yZWRhb0V4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vb3BlbmFwaS5jb3JlZGFvLm9yZycsXG4gIG9hc0V4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIub2FzeXMuZ2FtZXMnLFxuICBmbHJFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2ZsYXJlLWV4cGxvcmVyLmZsYXJlLm5ldHdvcmsnLFxuICB4ZGNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICB3ZW1peEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIHNnYkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc29uZ2JpcmQtZXhwbG9yZXIuZmxhcmUubmV0d29yaycsXG4gIGV2bToge1xuICAgIGFic3RyYWN0ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuYWJzY2FuLm9yZy9hcGknLFxuICAgIH0sXG4gICAgYXBlY2hhaW46IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgY2hpbGl6OiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuY2hpbGlzY2FuLmNvbScsXG4gICAgfSxcbiAgICBjb2RleGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuY29kZXgueHl6L2FwaScsXG4gICAgfSxcbiAgICBwaHJzOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmRwbGFicy1pbnRlcm5hbC5jb20nLCAvLyBUT0RPOiBXSU4tNTc4NyBhZGQgbWFpbm5ldCB1cmwgd2hlbiBpdHMgYXZhaWxhYmxlXG4gICAgfSxcbiAgICBjdGM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2NyZWRpdGNvaW4uYmxvY2tzY291dC5jb20nLFxuICAgIH0sXG4gICAgaHlwZWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgICAvLyBUaGVzZSBhcmUgdXNlZCBmb3IgQnJpZGdpbmcgYXNzZXRzIG9uIGh5cGUgY2hhaW4uXG4gICAgICB0b2tlbklkOiAxNTAsXG4gICAgICBzeXN0ZW1BZGRyOiAnMHgyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyJyxcbiAgICB9LFxuICAgIG9nOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jaGFpbnNjYW4uMGcuYWkvb3BlbicsXG4gICAgfSxcbiAgICB4cGw6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5yb3V0ZXNjYW4uaW8vdjIvbmV0d29yay9tYWlubmV0L2V2bS85NzQ1L2V0aGVyc2NhbicsXG4gICAgfSxcbiAgICBzb25pYzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB1c2R0MDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vc3RhYmxlc2Nhbi54eXovYXBpJyxcbiAgICB9LFxuICAgIHNlaWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBrYWlhOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0LW9hcGkua2FpYXNjYW4uaW8nLFxuICAgIH0sXG4gICAga2F2YWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnZlcmlmeS5taW50c2Nhbi5pby9ldm0vYXBpLzB4OGFlJyxcbiAgICB9LFxuICAgIGlyeXM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V2bS1leHBsb3Jlci5pcnlzLnh5ei9hcGknLFxuICAgIH0sXG4gICAgbW9uOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIGxpbmVhZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIGlwOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9kYXRhbmV0c2Nhbi5pbycsXG4gICAgfSxcbiAgICBzb21pOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0LnNvbW5pYS53M3VzLnNpdGUnLFxuICAgIH0sXG4gICAgYmFzZWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBvcGJuYjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgICBhcGlUb2tlbjogcHJvY2Vzcy5lbnYuRVRIRVJTQ0FOX0FQSV9UT0tFTixcbiAgICB9LFxuICAgIGZhbnRvbToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuZmFudG9tLm5ldHdvcmsnLFxuICAgICAgcnBjVXJsOiAnaHR0cHM6Ly9ycGNhcGkuZmFudG9tLm5ldHdvcmsvJyxcbiAgICB9LFxuICAgIGNvdGlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL21haW5uZXQuY290aXNjYW4uaW8nLFxuICAgICAgcnBjVXJsOiAnaHR0cHM6Ly9tYWlubmV0LmNvdGkuaW8vcnBjJyxcbiAgICB9LFxuICAgIHh0emV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuZXRoZXJsaW5rLmNvbS9hcGknLFxuICAgIH0sXG4gICAgZ2FzZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9uZW94c2Nhbi5uZ2QubmV0d29yay9hcGknLFxuICAgIH0sXG4gICAgZmxvdzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXZtLmZsb3dzY2FuLmlvJyxcbiAgICB9LFxuICAgIHBsdW1lOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5wbHVtZS5vcmcnLFxuICAgIH0sXG4gICAgbWVnYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5tZWdhZXRoLmNvbS9ycGMnLFxuICAgIH0sXG4gICAgaGJhcmV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5taXJyb3Jub2RlLmhlZGVyYS5jb20vYXBpL3YxJyxcbiAgICAgIHJwY1VybDogJ2h0dHBzOi8vbWFpbm5ldC5oYXNoaW8uaW8vYXBpJyxcbiAgICB9LFxuICAgIHNjcm9sbGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnNjcm9sbHNjYW4uY29tL2FwaScsXG4gICAgfSxcbiAgICBoZW1pZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5oZW1pLnh5ei9hcGknLFxuICAgIH0sXG4gICAga2F0YW5hZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9rYXRhbmFzY2FuLmNvbS9hcGknLFxuICAgIH0sXG4gICAgaW5rZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5pbmtvbmNoYWluLmNvbS9hcGknLFxuICAgIH0sXG4gICAgcHJpdmlkaXVtZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5wcml2aWRpdW0uemtzeW5jLmRldi9hcGknLCAvLyBUT0RPOiB1cGRhdGUgd2l0aCBtYWlubmV0IFVSTCB3aGVuIGF2YWlsYWJsZVxuICAgIH0sXG4gICAgZmx1ZW50ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9mbHVlbnRzY2FuLnh5ei9hcGkvJyxcbiAgICB9LFxuICAgIG1hbnRsZToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLm1hbnRsZXNjYW4ueHl6L2FwaScsXG4gICAgfSxcbiAgICBqb3ZheWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnphbi50b3Avbm9kZS92MS9qb3ZheS9tYWlubmV0LycsXG4gICAgfSxcbiAgICBva2J4bGF5ZXI6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3d3dy5va2xpbmsuY29tL2FwaS92NS9leHBsb3Jlci9ibG9jay9ibG9jay1saXN0P2NoYWluU2hvcnROYW1lPXhsYXllcicsXG4gICAgfSxcbiAgICBtb3JwaDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItYXBpLWhvb2RpLm1vcnBobDIuaW8nLCAvLyBUT0RPOiBXSU4tODEzNCBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIG1vcnBoZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5tb3JwaC5uZXR3b3JrLycsXG4gICAgfSxcbiAgICBkb2dlb3M6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2Jsb2Nrc2NvdXQudGVzdG5ldC5kb2dlb3MuY29tJywgLy9UT0RPOiBXSU4tODA4MiA9PiBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIGFyY3VzZGM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgeGRjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIHprc3luY2VyYToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB1bmlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3VuaWNoYWluLmJsb2Nrc2NvdXQuY29tL2FwaScsXG4gICAgfSxcbiAgICBob29kZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9yb2Jpbmhvb2RjaGFpbi5ibG9ja3Njb3V0LmNvbS9hcGknLFxuICAgIH0sXG4gICAgaHBwZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5ocHAuaW8vYXBpJyxcbiAgICB9LFxuICAgIGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2h1bWFuaXR5LW1haW5uZXQuZXhwbG9yZXIuYWxjaGVteS5jb20vYXBpJyxcbiAgICB9LFxuICAgIGJvYmE6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5yb3V0ZXNjYW4uaW8vdjIvbmV0d29yay9tYWlubmV0L2V2bS8yODgvZXRoZXJzY2FuL2FwaScsXG4gICAgfSxcbiAgICB0ZW1wbzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVtcG8tbWFpbm5ldC5nLmFsY2hlbXkuY29tL3YyLycsXG4gICAgfSxcbiAgfSxcbiAgaWNwTm9kZVVybDogJ2h0dHBzOi8vaWMwLmFwcCcsXG4gIGthc3BhTm9kZVVybDogJ2h0dHBzOi8vYXBpLmthc3BhLm9yZycsXG4gIHN0YXJrbmV0Tm9kZVVybDogJ2h0dHBzOi8vc3RhcmtuZXQtbWFpbm5ldC1ycGMucHVibGljbm9kZS5jb20vJyxcbiAgaHlwZXJMaXF1aWROb2RlVXJsOiAnaHR0cHM6Ly9hcGkuaHlwZXJsaXF1aWQueHl6JyxcbiAgd29ybGRFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL3dvcmxkc2Nhbi5vcmcvJyxcbiAgc29tbmlhRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0LnNvbW5pYS53M3VzLnNpdGUvJyxcbiAgc29uZWl1bUV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc29uZWl1bS5ibG9ja3Njb3V0LmNvbScsXG4gIG1vbkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIHN0eE5vZGVVcmw6ICdodHRwczovL2FwaS5oaXJvLnNvJyxcbiAgdmV0Tm9kZVVybDogJ2h0dHBzOi8vc3luYy1tYWlubmV0LnZlY2hhaW4ub3JnJyxcbiAgeHR6RXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkudHprdC5pbycsXG4gIHh0elJwY1VybDogJ2h0dHBzOi8vcnBjLnR6a3QuaW8vbWFpbm5ldCcsXG59O1xuXG5jb25zdCB0ZXN0bmV0QmFzZTogRW52aXJvbm1lbnRUZW1wbGF0ZSA9IHtcbiAgbmV0d29yazogJ3Rlc3RuZXQnIGFzIFYxTmV0d29yayxcbiAgc2lnbmluZ0FkZHJlc3M6ICdtc2lnbkJkRlh0ZWVoREVnQjZETm03bnBSdDdBY0VaSlAzJyxcbiAgc2VydmVyWHB1YjogaGFyZGNvZGVkUHVibGljS2V5cy5zZXJ2ZXJYcHViLnRlc3QsXG4gIGhzbVhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi50ZXN0LFxuICBidGNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2Jsb2Nrc3RyZWFtLmluZm8vdGVzdG5ldC9hcGknLFxuICBldGhlcnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgZXRoZXJzY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LkVUSEVSU0NBTl9BUElfVE9LRU4sXG4gIGF2YXhjTmV0d29ya0Jhc2VVcmw6ICdodHRwczovL2FwaS5hdmF4LXRlc3QubmV0d29yaycsXG4gIGV0aDJFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2JlYWNvbnNjYW4uY29tL2FwaScsXG4gIGV0aHdGdWxsTm9kZVJQQ0Jhc2VVcmw6ICdodHRwczovL21haW5uZXQuZXRoZXJldW1wb3cub3JnJyxcbiAgcG9seWdvbnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgcG9seWdvbnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuUE9MWUdPTlNDQU5fQVBJX1RPS0VOLFxuICBic2NzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGJzY3NjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuQlNDX0FQSV9UT0tFTixcbiAgYXJiaXNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgYXJiaXNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuQVJCSVNDQU5fQVBJX1RPS0VOLFxuICBvcHRpbWlzdGljRXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIG9wdGltaXN0aWNFdGhlcnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuT1BUSU1JU1RJQ19FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICB6a3N5bmNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2Jsb2NrLWV4cGxvcmVyLWFwaS5zZXBvbGlhLnprc3luYy5kZXYnLFxuICB6a3N5bmNFeHBsb3JlckFwaVRva2VuOiBwcm9jZXNzLmVudi5aS1NZTkNfRVhQTE9SRVJfQVBJX1RPS0VOLFxuICBiYXNlZXRoRXhwbG9yZXJVcmw6ICdodHRwczovL2FwaS1zZXBvbGlhLmJhc2VzY2FuLm9yZycsXG4gIGJhc2VldGhBcGlUb2tlbjogcHJvY2Vzcy5lbnYuQkFTRVNDQU5fQVBJX1RPS0VOLFxuICAvLyBreWxpbiBlb3MgZW5kcG9pbnRzIGZvdW5kIGhlcmVcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2NyeXB0b2t5bGluL0NyeXB0b0t5bGluLVRlc3RuZXQjaHR0cC1hcGktbGlzdFxuICAvLyBodHRwczovL2RvY3MubGlxdWlkYXBwcy5pby9saXF1aWRhcHBzLWRvY3VtZW50YXRpb24vZW9zaW8tZ3VpZGVzL3Rlc3RuZXQtY3JlYXRpb24tZ3VpZGVzL2NyZWF0aW5nLWNyeXB0b2t5bGluLWFjY291bnQjc2V0dXBcbiAgZW9zTm9kZVVybHM6IFsnaHR0cHM6Ly9reWxpbi5lb3NuLmlvJywgJ2h0dHBzOi8vYXBpLmt5bGluLmFsb2hhZW9zLmNvbSddLFxuICBuZWFyTm9kZVVybHM6IFsnaHR0cHM6Ly90ZXN0LnJwYy5mYXN0bmVhci5jb20nXSxcbiAgc29sTm9kZVVybDogJ2h0dHBzOi8vYXBpLmRldm5ldC5zb2xhbmEuY29tJyxcbiAgc29sQWxjaGVteU5vZGVVcmw6ICdodHRwczovL3NvbGFuYS1kZXZuZXQuZy5hbGNoZW15LmNvbS92MicsXG4gIGFkYU5vZGVVcmw6ICdodHRwczovL3ByZXByb2Qua29pb3MucmVzdC9hcGkvdjEnLFxuICBoYXNoTm9kZVVybDogJ2h0dHBzOi8vYXBpLnRlc3QucHJvdmVuYW5jZS5pbycsXG4gIGluak5vZGVVcmw6ICdodHRwczovL3Rlc3RuZXQuc2VudHJ5LmxjZC5pbmplY3RpdmUubmV0d29yaycsIC8vIENPSU4tMTIxOSA6IHJlZmVyZW5jZSAgaHR0cHM6Ly9kb2NzLmluamVjdGl2ZS5uZXR3b3JrL2RldmVsb3AvcHVibGljLWVuZHBvaW50cy8jdGVzdG5ldFxuICBhdG9tTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5wcm92aWRlci1zZW50cnktMDIuaWNzLXRlc3RuZXQucG9seXBvcmUueHl6LycsXG4gIG9zbW9Ob2RlVXJsOiAnaHR0cHM6Ly9sY2Qub3Ntb3Rlc3Q1Lm9zbW9zaXMuem9uZScsXG4gIHRpYU5vZGVVcmw6ICdodHRwczovL2FwaS1tb2NoYS5wb3BzLm9uZScsXG4gIHNlaU5vZGVVcmw6ICdodHRwczovL3Jlc3QuYXRsYW50aWMtMi5zZWluZXR3b3JrLmlvJyxcbiAgYmxkTm9kZVVybDogJ2h0dHBzOi8vZGV2bmV0LmFwaS5hZ29yaWMubmV0JyxcbiAgYmVyYU5vZGVVcmw6ICcnLCAvLyBUT0RPKFdJTi02OTMpOiB1cGRhdGUgdXJsIHdoZW4gdGVzdG5ldCBnb2VzIGxpdmVcbiAgemV0YU5vZGVVcmw6ICdodHRwczovL3Jlc3Qubm9kZWp1bXBlci5pby96ZXRhY2hhaW50ZXN0bmV0JywgLy8gcmVmZXJlbmNlIDogaHR0cHM6Ly93d3cuemV0YWNoYWluLmNvbS9kb2NzL3JlZmVyZW5jZS9hcGkvXG4gIGNvcmV1bU5vZGVVcmw6ICdodHRwczovL2Z1bGwtbm9kZS50ZXN0bmV0LTEuY29yZXVtLmRldjoxMzE3JyxcbiAgcnVuZU5vZGVVcmw6ICdodHRwczovL3N0YWdlbmV0LXRob3Jub2RlLm5pbmVyZWFsbXMuY29tJyxcbiAgYmFieU5vZGVVcmw6ICdodHRwczovL2JhYnlsb24tdGVzdG5ldC1hcGkubm9kZXMuZ3VydS8nLFxuICBpc2xtTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5jb3Ntb3MudGVzdGVkZ2UyLmhhcXEubmV0d29yayAnLFxuICBtYW50cmFOb2RlVXJsOiAnaHR0cHM6Ly9tYW50cmEtdGVzdG5ldC1yZXN0LnB1YmxpY25vZGUuY29tLycsXG4gIGNyb25vc05vZGVVcmw6ICdodHRwczovL3Rlc3RuZXQtY3JvZXNlaWQtNC5jcnlwdG8ub3JnOjEzMTcvJyxcbiAgaW5pdGlhTm9kZVVybDogJ2h0dHBzOi8vcmVzdC50ZXN0bmV0LmluaXRpYS54eXovJyxcbiAgYXNpTm9kZVVybDogJ2h0dHBzOi8vcmVzdC1kb3JhZG8uZmV0Y2guYWkvJyxcbiAgZG90Tm9kZVVybHM6IFsnd3NzOi8vYXNzZXQtaHViLXdlc3RlbmQtcnBjLm4uZHdlbGxpci5jb20nXSxcbiAgc3Vic3RyYXRlTm9kZVVybHM6IFsnd3NzOi8vdGVzdC5maW5uZXkub3BlbnRlbnNvci5haSddLFxuICBwb2x5bWVzaE5vZGVVcmxzOiBbJ3dzczovL3Rlc3RuZXQtcnBjLnBvbHltZXNoLmxpdmUnXSxcbiAgdHJvbk5vZGVzOiB7XG4gICAgZnVsbDogJ2h0dHBzOi8vYXBpLnNoYXN0YS50cm9uZ3JpZC5pbycsXG4gICAgc29saWRpdHk6ICdodHRwczovL2FwaS5zaGFzdGEudHJvbmdyaWQuaW8nLFxuICB9LFxuICBobWFjVmVyaWZpY2F0aW9uRW5mb3JjZWQ6IGZhbHNlLFxuICB0b25Ob2RlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LnRvbmNlbnRlci5jb20vYXBpL3YyL2pzb25SUEMnLFxuICBzdWlOb2RlVXJsOiAnaHR0cHM6Ly9zdWktdGVzdG5ldC1ycGMucHVibGljbm9kZS5jb20nLFxuICBpb3RhTm9kZVVybDogJ2h0dHBzOi8vYXBpLnRlc3RuZXQuaW90YS5jYWZlJyxcbiAgZXRjTm9kZVVybDogJ2h0dHBzOi8vZXRjLW1vcmRvci5ibG9ja3Njb3V0LmNvbScsXG4gIGNvcmVkYW9FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS50ZXN0Mi5idGNzLm5ldHdvcmsnLFxuICBvYXNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQub2FzeXMuZ2FtZXMnLFxuICB3ZW1peEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGZsckV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vY29zdG9uMi1leHBsb3Jlci5mbGFyZS5uZXR3b3JrJyxcbiAgeGRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgc2diRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9jb3N0b24tZXhwbG9yZXIuZmxhcmUubmV0d29yaycsXG4gIGljcE5vZGVVcmw6ICdodHRwczovL2ljMC5hcHAnLFxuICBrYXNwYU5vZGVVcmw6ICdodHRwczovL2FwaS10bjEwLmthc3BhLm9yZycsXG4gIHN0YXJrbmV0Tm9kZVVybDogJ2h0dHBzOi8vc3RhcmtuZXQtc2Vwb2xpYS1ycGMucHVibGljbm9kZS5jb20vJyxcbiAgaHlwZXJMaXF1aWROb2RlVXJsOiAnaHR0cHM6Ly9hcGkuaHlwZXJsaXF1aWQtdGVzdG5ldC54eXonLFxuICBtb25FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICB3b3JsZEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc2Vwb2xpYS53b3JsZHNjYW4ub3JnLycsXG4gIHNvbW5pYUV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc2hhbm5vbi1leHBsb3Jlci5zb21uaWEubmV0d29yay8nLFxuICBzb25laXVtRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9zb25laXVtLW1pbmF0by5ibG9ja3Njb3V0LmNvbScsXG4gIGV2bToge1xuICAgIGFic3RyYWN0ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuc2Vwb2xpYS5hYnNjYW4ub3JnL2FwaScsXG4gICAgfSxcbiAgICBhcGVjaGFpbjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBjaGlsaXo6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS50ZXN0bmV0LmNoaWxpc2Nhbi5jb20nLFxuICAgIH0sXG4gICAgY29kZXhldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLmNvZGV4LXN0Zy54eXovYXBpJyxcbiAgICB9LFxuICAgIHBocnM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuZHBsYWJzLWludGVybmFsLmNvbScsIC8vIFdyb25nIHZhbHVlLCBOb3QgYXZhaWxhYmxlIHlldFxuICAgIH0sXG4gICAgY3RjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jcmVkaXRjb2luLXRlc3RuZXQuYmxvY2tzY291dC5jb20nLFxuICAgIH0sXG4gICAgaHlwZWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vcnBjLmh5cGVybGlxdWlkLXRlc3RuZXQueHl6L2V2bScsIC8vIE5vdCBBdmFpbGFibGVcbiAgICAgIC8vIFRoZXNlIGFyZSB1c2VkIGZvciBCcmlkZ2luZyBhc3NldHMgb24gaHlwZSBjaGFpbi5cbiAgICAgIHRva2VuSWQ6IDExMDUsXG4gICAgICBzeXN0ZW1BZGRyOiAnMHgyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyJyxcbiAgICB9LFxuICAgIG9nOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jaGFpbnNjYW4tdGVzdC4wZy5haS9vcGVuJyxcbiAgICB9LFxuICAgIHhwbDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnJvdXRlc2Nhbi5pby92Mi9uZXR3b3JrL3Rlc3RuZXQvZXZtLzk3NDZfNS9ldGhlcnNjYW4nLFxuICAgIH0sXG4gICAgc29uaWM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdXNkdDA6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuc3RhYmxlc2Nhbi54eXovYXBpJyxcbiAgICB9LFxuICAgIHNlaWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBrYWlhOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9rYWlyb3Mtb2FwaS5rYWlhc2Nhbi5pbycsXG4gICAgfSxcbiAgICBrYXZhZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkudmVyaWZ5Lm1pbnRzY2FuLmlvL2V2bS9hcGkvMHg4YWQnLFxuICAgIH0sXG4gICAgaXJ5czoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vaW5zdC0xLmNsb3VkLmJsb2Nrc2NvdXQuY29tL2FwaScsXG4gICAgfSxcbiAgICBtb246IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgbGluZWFldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgaXA6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FlbmVpZC5kYXRhbmV0c2Nhbi5pbycsXG4gICAgfSxcbiAgICB0YmFzZWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB0b3BibmI6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgICAgYXBpVG9rZW46IHByb2Nlc3MuZW52LkVUSEVSU0NBTl9BUElfVE9LRU4sXG4gICAgfSxcbiAgICB0Y290aWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5jb3Rpc2Nhbi5pbycsXG4gICAgICBycGNVcmw6ICdodHRwczovL3Rlc3RuZXQuY290aS5pby9ycGMnLFxuICAgIH0sXG4gICAgeHR6ZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9zaGFkb3duZXQuZXhwbG9yZXIuZXRoZXJsaW5rLmNvbS9hcGknLFxuICAgIH0sXG4gICAgdGdhc2V2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbmVveHQ0c2Nhbi5uZ2QubmV0d29yay9hcGknLFxuICAgIH0sXG4gICAgZmxvdzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXZtLXRlc3RuZXQuZmxvd3NjYW4uaW8nLFxuICAgIH0sXG4gICAgbWVnYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vY2Fycm90Lm1lZ2FldGguY29tL3JwYycsXG4gICAgfSxcbiAgICBwbHVtZToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC1leHBsb3Jlci5wbHVtZS5vcmcnLFxuICAgIH0sXG4gICAgaGJhcmV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5taXJyb3Jub2RlLmhlZGVyYS5jb20vYXBpL3YxJyxcbiAgICAgIHJwY1VybDogJ2h0dHBzOi8vdGVzdG5ldC5oYXNoaW8uaW8vYXBpJyxcbiAgICB9LFxuICAgIHRzY3JvbGxldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS1zZXBvbGlhLnNjcm9sbHNjYW4uY29tL2FwaScsXG4gICAgfSxcbiAgICBoZW1pZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmV4cGxvcmVyLmhlbWkueHl6L2FwaScsXG4gICAgfSxcbiAgICB0a2F0YW5hZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci1ib2t1dG8ua2F0YW5hcnBjLmNvbS9hcGknLFxuICAgIH0sXG4gICAgdGlua2V0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItc2Vwb2xpYS5pbmtvbmNoYWluLmNvbS9hcGknLFxuICAgIH0sXG4gICAgcHJpdmlkaXVtZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LXByaXZpZGl1bS56a3N5bmMuZGV2L2FwaScsXG4gICAgfSxcbiAgICBmbHVlbnRldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuZmx1ZW50c2Nhbi54eXovYXBpLycsXG4gICAgfSxcbiAgICBtYW50bGU6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS1zZXBvbGlhLm1hbnRsZXNjYW4ueHl6L2FwaScsXG4gICAgfSxcbiAgICBqb3ZheWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnphbi50b3Avbm9kZS92MS9qb3ZheS90ZXN0bmV0LycsXG4gICAgfSxcbiAgICBva2J4bGF5ZXI6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3d3dy5va2xpbmsuY29tL2FwaS92NS9leHBsb3Jlci9ibG9jay9ibG9jay1saXN0P2NoYWluU2hvcnROYW1lPXhsYXllcl90ZXN0bmV0JyxcbiAgICB9LFxuICAgIG1vcnBoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci1hcGktaG9vZGkubW9ycGhsMi5pbycsXG4gICAgfSxcbiAgICBtb3JwaGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItaG9vZGkubW9ycGgubmV0d29yay8nLFxuICAgIH0sXG4gICAgZG9nZW9zOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9ibG9ja3Njb3V0LnRlc3RuZXQuZG9nZW9zLmNvbScsXG4gICAgfSxcbiAgICBhcmN1c2RjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmFyY3NjYW4uYXBwL2FwaScsIC8vIFdJTi04ODQ0ID0+IGFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICAgIH0sXG4gICAgeGRjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIHprc3luY2VyYToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB1bmlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3VuaWNoYWluLXNlcG9saWEuYmxvY2tzY291dC5jb20vYXBpJyxcbiAgICB9LFxuICAgIGhvb2RldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQuY2hhaW4ucm9iaW5ob29kLmNvbS9hcGknLFxuICAgIH0sXG4gICAgaHBwZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9zZXBvbGlhLWV4cGxvcmVyLmhwcC5pby9hcGknLFxuICAgIH0sXG4gICAgaDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vaHVtYW5pdHktdGVzdG5ldC5leHBsb3Jlci5hbGNoZW15LmNvbS9hcGknLFxuICAgIH0sXG4gICAgYm9iYToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnJvdXRlc2Nhbi5pby92Mi9uZXR3b3JrL3Rlc3RuZXQvZXZtLzI4ODgyL2V0aGVyc2Nhbi9hcGknLFxuICAgIH0sXG4gICAgdGVtcG86IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3RlbXBvLW1vZGVyYXRvLmcuYWxjaGVteS5jb20vdjIvJyxcbiAgICB9LFxuICB9LFxuICBzdHhOb2RlVXJsOiAnaHR0cHM6Ly9hcGkudGVzdG5ldC5oaXJvLnNvJyxcbiAgc3R4U2lnbmV0Tm9kZVVybDogJ2h0dHBzOi8vYXBpLnN0YWtpbmctdGVzdG5ldC5oaXJvLnNvJyxcbiAgdmV0Tm9kZVVybDogJ2h0dHBzOi8vc3luYy10ZXN0bmV0LnZlY2hhaW4ub3JnJyxcbiAgeHR6RXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZ2hvc3RuZXQudHprdC5pbycsXG4gIHh0elJwY1VybDogJ2h0dHBzOi8vcnBjLnR6a3QuaW8vZ2hvc3RuZXQnLFxufTtcblxuY29uc3QgZGV2QmFzZTogRW52aXJvbm1lbnRUZW1wbGF0ZSA9IE9iamVjdC5hc3NpZ24oe30sIHRlc3RuZXRCYXNlLCB7XG4gIGhzbVhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi5kZXYsXG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogZmFsc2UsXG59KTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlZGVjbGFyZVxuZXhwb3J0IGNvbnN0IEVudmlyb25tZW50czogRW52aXJvbm1lbnRzID0ge1xuICBwcm9kOiBPYmplY3QuYXNzaWduKHt9LCBtYWlubmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYXBwLmJpdGdvLmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FwcC5iaXRnby5jb20vYXBpL3YyL3hsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIHRlc3Q6IE9iamVjdC5hc3NpZ24oe30sIHRlc3RuZXRCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hcHAuYml0Z28tdGVzdC5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hcHAuYml0Z28tdGVzdC5jb20vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBkZXY6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FwcC5iaXRnby1kZXYuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYXBwLmJpdGdvLWRldi5jb20vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBzdGFnaW5nOiBPYmplY3QuYXNzaWduKHt9LCB0ZXN0bmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYXBwLmJpdGdvLXN0YWdpbmcuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYXBwLmJpdGdvLXN0YWdpbmcuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgbG9jYWw6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2xvY2FsaG9zdDozMDAwJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBsb2NhbE5vblNlY3VyZTogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBtb2NrOiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9iaXRnby5mYWtldXJsJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYml0Z28uZmFrZXVybC9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgICBldGhlcnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGktaG9vZGkuZXRoZXJzY2FuLmZha2V1cmwnLFxuICAgIGV0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICAgIGF2YXhjTmV0d29ya0Jhc2VVcmw6ICdodHRwczovL2FwaS5hdmF4LXRlc3QubmV0d29yay5mYWtldXJsJyxcbiAgICBldGgyRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS9hcGknLFxuICB9KSxcbiAgYWRtaW5Qcm9kOiBPYmplY3QuYXNzaWduKHt9LCBtYWlubmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYWRtaW4uYml0Z28uY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYWRtaW4uYml0Z28uY29tL2FwaS92Mi94bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBhZG1pblRlc3Q6IE9iamVjdC5hc3NpZ24oe30sIHRlc3RuZXRCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby10ZXN0LmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FkbWluLmJpdGdvLXRlc3QuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgYWRtaW5EZXY6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FkbWluLmJpdGdvLWRldi5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby1kZXYuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgYWRtaW5TdGFnaW5nOiBPYmplY3QuYXNzaWduKHt9LCB0ZXN0bmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYWRtaW4uYml0Z28tc3RhZ2luZy5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby1zdGFnaW5nLmNvbS9hcGkvdjIveGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgY3VzdG9tOiBPYmplY3QuYXNzaWduKHt9LCBtYWlubmV0QmFzZSwge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgdXJpOiBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fUk9PVF9VUkkhLFxuICAgIG5ldHdvcms6IHByb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9CSVRDT0lOX05FVFdPUksgYXMgVjFOZXR3b3JrLFxuICAgIGhzbVhwdWI6XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nID8gaGFyZGNvZGVkUHVibGljS2V5cy5oc21YcHViLnByb2QgOiBoYXJkY29kZWRQdWJsaWNLZXlzLmhzbVhwdWIudGVzdCxcbiAgICBidGNFeHBsb3JlckJhc2VVcmw6XG4gICAgICBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fQklUQ09JTl9ORVRXT1JLICE9PSAnYml0Y29pbidcbiAgICAgICAgPyAnaHR0cHM6Ly9ibG9ja3N0cmVhbS5pbmZvL3Rlc3RuZXQvYXBpJ1xuICAgICAgICA6ICdodHRwczovL2Jsb2Nrc3RyZWFtLmluZm8vYXBpJyxcbiAgICBldGhlcnNjYW5CYXNlVXJsOlxuICAgICAgcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX0VUSEVSRVVNX05FVFdPUksgIT09ICdldGhlcmV1bSdcbiAgICAgICAgPyAnaHR0cHM6Ly9hcGktaG9vZGkuZXRoZXJzY2FuLmlvJ1xuICAgICAgICA6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOlxuICAgICAgcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX1NURUxMQVJfTkVUV09SSyAhPT0gJ3N0ZWxsYXInXG4gICAgICAgID8gYGh0dHBzOi8vJHtwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fUk9PVF9VUkl9L2FwaS92Mi90eGxtL2ZlZGVyYXRpb25gXG4gICAgICAgIDogYGh0dHBzOi8vJHtwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fUk9PVF9VUkl9L2FwaS92Mi94bG0vZmVkZXJhdGlvbmAsXG4gICAgc2VydmVyWHB1YjpcbiAgICAgIHByb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9CSVRDT0lOX05FVFdPUksgIT09ICdiaXRjb2luJ1xuICAgICAgICA/IGhhcmRjb2RlZFB1YmxpY0tleXMuc2VydmVyWHB1Yi50ZXN0XG4gICAgICAgIDogaGFyZGNvZGVkUHVibGljS2V5cy5zZXJ2ZXJYcHViLnByb2QsXG4gIH0pLFxuICBicmFuY2g6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FwcC5iaXRnby1kZXYuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYXBwLmJpdGdvLWRldi5jb20vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxufTtcbiJdfQ==
@@ -11,5 +11,6 @@ export * from './decode';
11
11
  export * from './notEmpty';
12
12
  export * from './wallet';
13
13
  export * from './messageTypes';
14
+ export * from './siws';
14
15
  export { openpgpUtils };
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAE/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAE/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -51,4 +51,5 @@ __exportStar(require("./decode"), exports);
51
51
  __exportStar(require("./notEmpty"), exports);
52
52
  __exportStar(require("./wallet"), exports);
53
53
  __exportStar(require("./messageTypes"), exports);
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStDO0FBZXRDLG9DQUFZO0FBYnJCLHlEQUF1QztBQUN2Qyw2Q0FBMkI7QUFDM0IsaURBQStCO0FBQy9CLGtEQUFnQztBQUNoQywyQ0FBeUI7QUFDekIsd0NBQXNCO0FBQ3RCLHlDQUF1QjtBQUN2QiwyQ0FBeUI7QUFDekIsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQiwyQ0FBeUI7QUFDekIsaURBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3BlbnBncFV0aWxzIGZyb20gJy4vb3BlbmdwZ1V0aWxzJztcblxuZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdFV0eG9Db2luVXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL21wY1V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vb3BlbmdwZ1V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvbWlzZS11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3RyaXBsZSc7XG5leHBvcnQgKiBmcm9tICcuL3Rzcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2RlY3MnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9ub3RFbXB0eSc7XG5leHBvcnQgKiBmcm9tICcuL3dhbGxldCc7XG5leHBvcnQgKiBmcm9tICcuL21lc3NhZ2VUeXBlcyc7XG5cbmV4cG9ydCB7IG9wZW5wZ3BVdGlscyB9O1xuIl19
54
+ __exportStar(require("./siws"), exports);
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStDO0FBZ0J0QyxvQ0FBWTtBQWRyQix5REFBdUM7QUFDdkMsNkNBQTJCO0FBQzNCLGlEQUErQjtBQUMvQixrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLHdDQUFzQjtBQUN0Qix5Q0FBdUI7QUFDdkIsMkNBQXlCO0FBQ3pCLDJDQUF5QjtBQUN6Qiw2Q0FBMkI7QUFDM0IsMkNBQXlCO0FBQ3pCLGlEQUErQjtBQUMvQix5Q0FBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBvcGVucGdwVXRpbHMgZnJvbSAnLi9vcGVuZ3BnVXRpbHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0VXR4b0NvaW5VdGlsJztcbmV4cG9ydCAqIGZyb20gJy4vbXBjVXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9vcGVuZ3BnVXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9taXNlLXV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJpcGxlJztcbmV4cG9ydCAqIGZyb20gJy4vdHNzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2NvZGVjcyc7XG5leHBvcnQgKiBmcm9tICcuL2RlY29kZSc7XG5leHBvcnQgKiBmcm9tICcuL25vdEVtcHR5JztcbmV4cG9ydCAqIGZyb20gJy4vd2FsbGV0JztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZVR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc2l3cyc7XG5cbmV4cG9ydCB7IG9wZW5wZ3BVdGlscyB9O1xuIl19
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Canonical SIWS (Sign In With Solana) message validator.
3
+ *
4
+ * Exact JS mirror of the firmware's validate_sol_message (hsm-firmware src/bg/sol.c,
5
+ * DEFI-945) as also mirrored in hsm-api validateSiwsMessage (DEFI-946). Shared by
6
+ * sdk-coin-sol, Wallet Platform, and bitgo-ui; hsm-api keeps its own bytes-based copy.
7
+ * Any change here must land identically in all layers, including firmware.
8
+ */
9
+ /**
10
+ * Validates a SIWS message. Throws when the message is not strict UTF-8-representable
11
+ * or not a well-formed SIWS message; returns silently otherwise.
12
+ */
13
+ export declare function validateSiwsMessage(message: string): void;
14
+ //# sourceMappingURL=siws.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siws.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/siws.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkEH;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAyGzD"}
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ /**
3
+ * Canonical SIWS (Sign In With Solana) message validator.
4
+ *
5
+ * Exact JS mirror of the firmware's validate_sol_message (hsm-firmware src/bg/sol.c,
6
+ * DEFI-945) as also mirrored in hsm-api validateSiwsMessage (DEFI-946). Shared by
7
+ * sdk-coin-sol, Wallet Platform, and bitgo-ui; hsm-api keeps its own bytes-based copy.
8
+ * Any change here must land identically in all layers, including firmware.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.validateSiwsMessage = validateSiwsMessage;
12
+ const SIWS_SUFFIX = ' wants you to sign in with your Solana account:';
13
+ const SIWS_FIELD_LABELS = [
14
+ 'URI: ',
15
+ 'Version: ',
16
+ 'Chain ID: ',
17
+ 'Nonce: ',
18
+ 'Issued At: ',
19
+ 'Expiration Time: ',
20
+ 'Not Before: ',
21
+ 'Request ID: ',
22
+ 'Resources:',
23
+ ];
24
+ const SIWS_CHAIN_IDS = [
25
+ 'mainnet',
26
+ 'testnet',
27
+ 'devnet',
28
+ 'localnet',
29
+ 'solana:mainnet',
30
+ 'solana:testnet',
31
+ 'solana:devnet',
32
+ ];
33
+ const SIWS_FIELD_URI = 0;
34
+ const SIWS_FIELD_VERSION = 1;
35
+ const SIWS_FIELD_CHAIN_ID = 2;
36
+ const SIWS_FIELD_NONCE = 3;
37
+ const SIWS_FIELD_ISSUED_AT = 4;
38
+ const SIWS_FIELD_EXPIRATION_TIME = 5;
39
+ const SIWS_FIELD_NOT_BEFORE = 6;
40
+ const SIWS_FIELD_REQUEST_ID = 7;
41
+ const SIWS_FIELD_RESOURCES = 8;
42
+ // A lone surrogate cannot be encoded as UTF-8; Buffer.from would silently replace it
43
+ // with U+FFFD and the signed bytes would no longer match the caller's text.
44
+ const LONE_SURROGATE_PATTERN = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF]))|(?:(?:^|[^\uD800-\uDBFF])[\uDC00-\uDFFF])/;
45
+ function isSiwsBase58Address(line) {
46
+ return line.length >= 32 && line.length <= 44 && /^[1-9A-HJ-NP-Za-km-z]+$/.test(line);
47
+ }
48
+ function isSiwsAlnum(value) {
49
+ return value.length >= 8 && /^[a-zA-Z0-9]+$/.test(value);
50
+ }
51
+ function isSiwsDatetime(value) {
52
+ const match = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(Z|[+-]\d{2}:\d{2})$/.exec(value);
53
+ if (!match) {
54
+ return false;
55
+ }
56
+ const month = parseInt(match[2], 10);
57
+ const day = parseInt(match[3], 10);
58
+ const hour = parseInt(match[4], 10);
59
+ const minute = parseInt(match[5], 10);
60
+ const second = parseInt(match[6], 10);
61
+ if (month < 1 || month > 12 || day < 1 || day > 31 || hour > 23 || minute > 59 || second > 60) {
62
+ return false;
63
+ }
64
+ if (match[8] === 'Z') {
65
+ return true;
66
+ }
67
+ const offsetHour = parseInt(match[8].substring(1, 3), 10);
68
+ const offsetMinute = parseInt(match[8].substring(4, 6), 10);
69
+ return offsetHour <= 23 && offsetMinute <= 59;
70
+ }
71
+ /**
72
+ * Validates a SIWS message. Throws when the message is not strict UTF-8-representable
73
+ * or not a well-formed SIWS message; returns silently otherwise.
74
+ */
75
+ function validateSiwsMessage(message) {
76
+ const invalid = () => {
77
+ throw new Error('message is not a valid SIWS message');
78
+ };
79
+ if (LONE_SURROGATE_PATTERN.test(message)) {
80
+ throw new Error('message is not valid UTF-8');
81
+ }
82
+ const lines = message.replace(/\n+$/, '').split('\n');
83
+ if (lines.length < 3 || !lines[0].endsWith(SIWS_SUFFIX) || lines[0].length === SIWS_SUFFIX.length) {
84
+ invalid();
85
+ }
86
+ if (!isSiwsBase58Address(lines[1]) || lines[2] !== '') {
87
+ invalid();
88
+ }
89
+ let hasVersion = false;
90
+ let hasChainId = false;
91
+ let hasNonce = false;
92
+ let hasIssuedAt = false;
93
+ let hasField = false;
94
+ let inFields = false;
95
+ let inResources = false;
96
+ let requireFields = false;
97
+ let lastField = -1;
98
+ for (let i = 3; i < lines.length; i++) {
99
+ const line = lines[i];
100
+ if (line === '') {
101
+ if (inFields || inResources || requireFields) {
102
+ invalid();
103
+ }
104
+ requireFields = true;
105
+ continue;
106
+ }
107
+ if (inResources) {
108
+ if (!line.startsWith('- ')) {
109
+ invalid();
110
+ }
111
+ continue;
112
+ }
113
+ let field = -1;
114
+ for (let f = 0; f < SIWS_FIELD_LABELS.length; f++) {
115
+ if (line.startsWith(SIWS_FIELD_LABELS[f])) {
116
+ field = f;
117
+ break;
118
+ }
119
+ }
120
+ if (field === -1) {
121
+ if (inFields || requireFields) {
122
+ invalid();
123
+ }
124
+ continue;
125
+ }
126
+ if (hasField && field <= lastField) {
127
+ invalid();
128
+ }
129
+ hasField = true;
130
+ lastField = field;
131
+ inFields = true;
132
+ requireFields = false;
133
+ const value = line.substring(SIWS_FIELD_LABELS[field].length);
134
+ switch (field) {
135
+ case SIWS_FIELD_VERSION:
136
+ if (value !== '1') {
137
+ invalid();
138
+ }
139
+ hasVersion = true;
140
+ break;
141
+ case SIWS_FIELD_CHAIN_ID:
142
+ if (!SIWS_CHAIN_IDS.includes(value)) {
143
+ invalid();
144
+ }
145
+ hasChainId = true;
146
+ break;
147
+ case SIWS_FIELD_NONCE:
148
+ if (!isSiwsAlnum(value)) {
149
+ invalid();
150
+ }
151
+ hasNonce = true;
152
+ break;
153
+ case SIWS_FIELD_ISSUED_AT:
154
+ case SIWS_FIELD_EXPIRATION_TIME:
155
+ case SIWS_FIELD_NOT_BEFORE:
156
+ if (!isSiwsDatetime(value)) {
157
+ invalid();
158
+ }
159
+ if (field === SIWS_FIELD_ISSUED_AT) {
160
+ hasIssuedAt = true;
161
+ }
162
+ break;
163
+ case SIWS_FIELD_URI:
164
+ case SIWS_FIELD_REQUEST_ID:
165
+ if (value === '') {
166
+ invalid();
167
+ }
168
+ break;
169
+ case SIWS_FIELD_RESOURCES:
170
+ if (value !== '') {
171
+ invalid();
172
+ }
173
+ inResources = true;
174
+ break;
175
+ }
176
+ }
177
+ if (!hasVersion || !hasChainId || !hasNonce || !hasIssuedAt) {
178
+ invalid();
179
+ }
180
+ }
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l3cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy9zaXdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOztBQXNFSCxrREF5R0M7QUE3S0QsTUFBTSxXQUFXLEdBQUcsaURBQWlELENBQUM7QUFDdEUsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixPQUFPO0lBQ1AsV0FBVztJQUNYLFlBQVk7SUFDWixTQUFTO0lBQ1QsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsY0FBYztJQUNkLFlBQVk7Q0FDYixDQUFDO0FBQ0YsTUFBTSxjQUFjLEdBQUc7SUFDckIsU0FBUztJQUNULFNBQVM7SUFDVCxRQUFRO0lBQ1IsVUFBVTtJQUNWLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsZUFBZTtDQUNoQixDQUFDO0FBQ0YsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0FBQzdCLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBQy9CLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxDQUFDO0FBQ3JDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBRS9CLHFGQUFxRjtBQUNyRiw0RUFBNEU7QUFDNUUsTUFBTSxzQkFBc0IsR0FBRyxrRkFBa0YsQ0FBQztBQUVsSCxTQUFTLG1CQUFtQixDQUFDLElBQVk7SUFDdkMsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsSUFBSSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxD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LG9CQUFvQixDQUFDO1lBQzFCLEtBQUssMEJBQTBCLENBQUM7WUFDaEMsS0FBSyxxQkFBcUI7Z0JBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDM0IsT0FBTyxFQUFFLENBQUM7Z0JBQ1osQ0FBQztnQkFDRCxJQUFJLEtBQUssS0FBSyxvQkFBb0IsRUFBRSxDQUFDO29CQUNuQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixDQUFDO2dCQUNELE1BQU07WUFDUixLQUFLLGNBQWMsQ0FBQztZQUNwQixLQUFLLHFCQUFxQjtnQkFDeEIsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7b0JBQ2pCLE9BQU8sRUFBRSxDQUFDO2dCQUNaLENBQUM7Z0JBQ0QsTUFBTTtZQUNSLEtBQUssb0JBQW9CO2dCQUN2QixJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztvQkFDakIsT0FBTyxFQUFFLENBQUM7Z0JBQ1osQ0FBQztnQkFDRCxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDNUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2Fub25pY2FsIFNJV1MgKFNpZ24gSW4gV2l0aCBTb2xhbmEpIG1lc3NhZ2UgdmFsaWRhdG9yLlxuICpcbiAqIEV4YWN0IEpTIG1pcnJvciBvZiB0aGUgZmlybXdhcmUncyB2YWxpZGF0ZV9zb2xfbWVzc2FnZSAoaHNtLWZpcm13YXJlIHNyYy9iZy9zb2wuYyxcbiAqIERFRkktOTQ1KSBhcyBhbHNvIG1pcnJvcmVkIGluIGhzbS1hcGkgdmFsaWRhdGVTaXdzTWVzc2FnZSAoREVGSS05NDYpLiBTaGFyZWQgYnlcbiAqIHNkay1jb2luLXNvbCwgV2FsbGV0IFBsYXRmb3JtLCBhbmQgYml0Z28tdWk7IGhzbS1hcGkga2VlcHMgaXRzIG93biBieXRlcy1iYXNlZCBjb3B5LlxuICogQW55IGNoYW5nZSBoZXJlIG11c3QgbGFuZCBpZGVudGljYWxseSBpbiBhbGwgbGF5ZXJzLCBpbmNsdWRpbmcgZmlybXdhcmUuXG4gKi9cblxuY29uc3QgU0lXU19TVUZGSVggPSAnIHdhbnRzIHlvdSB0byBzaWduIGluIHdpdGggeW91ciBTb2xhbmEgYWNjb3VudDonO1xuY29uc3QgU0lXU19GSUVMRF9MQUJFTFMgPSBbXG4gICdVUkk6ICcsXG4gICdWZXJzaW9uOiAnLFxuICAnQ2hhaW4gSUQ6ICcsXG4gICdOb25jZTogJyxcbiAgJ0lzc3VlZCBBdDogJyxcbiAgJ0V4cGlyYXRpb24gVGltZTogJyxcbiAgJ05vdCBCZWZvcmU6ICcsXG4gICdSZXF1ZXN0IElEOiAnLFxuICAnUmVzb3VyY2VzOicsXG5dO1xuY29uc3QgU0lXU19DSEFJTl9JRFMgPSBbXG4gICdtYWlubmV0JyxcbiAgJ3Rlc3RuZXQnLFxuICAnZGV2bmV0JyxcbiAgJ2xvY2FsbmV0JyxcbiAgJ3NvbGFuYTptYWlubmV0JyxcbiAgJ3NvbGFuYTp0ZXN0bmV0JyxcbiAgJ3NvbGFuYTpkZXZuZXQnLFxuXTtcbmNvbnN0IFNJV1NfRklFTERfVVJJID0gMDtcbmNvbnN0IFNJV1NfRklFTERfVkVSU0lPTiA9IDE7XG5jb25zdCBTSVdTX0ZJRUxEX0NIQUlOX0lEID0gMjtcbmNvbnN0IFNJV1NfRklFTERfTk9OQ0UgPSAzO1xuY29uc3QgU0lXU19GSUVMRF9JU1NVRURfQVQgPSA0O1xuY29uc3QgU0lXU19GSUVMRF9FWFBJUkFUSU9OX1RJTUUgPSA1O1xuY29uc3QgU0lXU19GSUVMRF9OT1RfQkVGT1JFID0gNjtcbmNvbnN0IFNJV1NfRklFTERfUkVRVUVTVF9JRCA9IDc7XG5jb25zdCBTSVdTX0ZJRUxEX1JFU09VUkNFUyA9IDg7XG5cbi8vIEEgbG9uZSBzdXJyb2dhdGUgY2Fubm90IGJlIGVuY29kZWQgYXMgVVRGLTg7IEJ1ZmZlci5mcm9tIHdvdWxkIHNpbGVudGx5IHJlcGxhY2UgaXRcbi8vIHdpdGggVStGRkZEIGFuZCB0aGUgc2lnbmVkIGJ5dGVzIHdvdWxkIG5vIGxvbmdlciBtYXRjaCB0aGUgY2FsbGVyJ3MgdGV4dC5cbmNvbnN0IExPTkVfU1VSUk9HQVRFX1BBVFRFUk4gPSAvKD86W1xcdUQ4MDAtXFx1REJGRl0oPyFbXFx1REMwMC1cXHVERkZGXSkpfCg/Oig/Ol58W15cXHVEODAwLVxcdURCRkZdKVtcXHVEQzAwLVxcdURGRkZdKS87XG5cbmZ1bmN0aW9uIGlzU2l3c0Jhc2U1OEFkZHJlc3MobGluZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBsaW5lLmxlbmd0aCA+PSAzMiAmJiBsaW5lLmxlbmd0aCA8PSA0NCAmJiAvXlsxLTlBLUhKLU5QLVphLWttLXpdKyQvLnRlc3QobGluZSk7XG59XG5cbmZ1bmN0aW9uIGlzU2l3c0FsbnVtKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+PSA4ICYmIC9eW2EtekEtWjAtOV0rJC8udGVzdCh2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIGlzU2l3c0RhdGV0aW1lKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgbWF0Y2ggPSAvXihcXGR7NH0pLShcXGR7Mn0pLShcXGR7Mn0pVChcXGR7Mn0pOihcXGR7Mn0pOihcXGR7Mn0pKD86XFwuKFxcZCspKT8oWnxbKy1dXFxkezJ9OlxcZHsyfSkkLy5leGVjKHZhbHVlKTtcbiAgaWYgKCFtYXRjaCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBtb250aCA9IHBhcnNlSW50KG1hdGNoWzJdLCAxMCk7XG4gIGNvbnN0IGRheSA9IHBhcnNlSW50KG1hdGNoWzNdLCAxMCk7XG4gIGNvbnN0IGhvdXIgPSBwYXJzZUludChtYXRjaFs0XSwgMTApO1xuICBjb25zdCBtaW51dGUgPSBwYXJzZUludChtYXRjaFs1XSwgMTApO1xuICBjb25zdCBzZWNvbmQgPSBwYXJzZUludChtYXRjaFs2XSwgMTApO1xuICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIgfHwgZGF5IDwgMSB8fCBkYXkgPiAzMSB8fCBob3VyID4gMjMgfHwgbWludXRlID4gNTkgfHwgc2Vjb25kID4gNjApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKG1hdGNoWzhdID09PSAnWicpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBjb25zdCBvZmZzZXRIb3VyID0gcGFyc2VJbnQobWF0Y2hbOF0uc3Vic3RyaW5nKDEsIDMpLCAxMCk7XG4gIGNvbnN0IG9mZnNldE1pbnV0ZSA9IHBhcnNlSW50KG1hdGNoWzhdLnN1YnN0cmluZyg0LCA2KSwgMTApO1xuICByZXR1cm4gb2Zmc2V0SG91ciA8PSAyMyAmJiBvZmZzZXRNaW51dGUgPD0gNTk7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIGEgU0lXUyBtZXNzYWdlLiBUaHJvd3Mgd2hlbiB0aGUgbWVzc2FnZSBpcyBub3Qgc3RyaWN0IFVURi04LXJlcHJlc2VudGFibGVcbiAqIG9yIG5vdCBhIHdlbGwtZm9ybWVkIFNJV1MgbWVzc2FnZTsgcmV0dXJucyBzaWxlbnRseSBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVNpd3NNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBpbnZhbGlkID0gKCkgPT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignbWVzc2FnZSBpcyBub3QgYSB2YWxpZCBTSVdTIG1lc3NhZ2UnKTtcbiAgfTtcbiAgaWYgKExPTkVfU1VSUk9HQVRFX1BBVFRFUk4udGVzdChtZXNzYWdlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignbWVzc2FnZSBpcyBub3QgdmFsaWQgVVRGLTgnKTtcbiAgfVxuICBjb25zdCBsaW5lcyA9IG1lc3NhZ2UucmVwbGFjZSgvXFxuKyQvLCAnJykuc3BsaXQoJ1xcbicpO1xuICBpZiAobGluZXMubGVuZ3RoIDwgMyB8fCAhbGluZXNbMF0uZW5kc1dpdGgoU0lXU19TVUZGSVgpIHx8IGxpbmVzWzBdLmxlbmd0aCA9PT0gU0lXU19TVUZGSVgubGVuZ3RoKSB7XG4gICAgaW52YWxpZCgpO1xuICB9XG4gIGlmICghaXNTaXdzQmFzZTU4QWRkcmVzcyhsaW5lc1sxXSkgfHwgbGluZXNbMl0gIT09ICcnKSB7XG4gICAgaW52YWxpZCgpO1xuICB9XG4gIGxldCBoYXNWZXJzaW9uID0gZmFsc2U7XG4gIGxldCBoYXNDaGFpbklkID0gZmFsc2U7XG4gIGxldCBoYXNOb25jZSA9IGZhbHNlO1xuICBsZXQgaGFzSXNzdWVkQXQgPSBmYWxzZTtcbiAgbGV0IGhhc0ZpZWxkID0gZmFsc2U7XG4gIGxldCBpbkZpZWxkcyA9IGZhbHNlO1xuICBsZXQgaW5SZXNvdXJjZXMgPSBmYWxzZTtcbiAgbGV0IHJlcXVpcmVGaWVsZHMgPSBmYWxzZTtcbiAgbGV0IGxhc3RGaWVsZCA9IC0xO1xuICBmb3IgKGxldCBpID0gMzsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbGluZSA9IGxpbmVzW2ldO1xuICAgIGlmIChsaW5lID09PSAnJykge1xuICAgICAgaWYgKGluRmllbGRzIHx8IGluUmVzb3VyY2VzIHx8IHJlcXVpcmVGaWVsZHMpIHtcbiAgICAgICAgaW52YWxpZCgpO1xuICAgICAgfVxuICAgICAgcmVxdWlyZUZpZWxkcyA9IHRydWU7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGluUmVzb3VyY2VzKSB7XG4gICAgICBpZiAoIWxpbmUuc3RhcnRzV2l0aCgnLSAnKSkge1xuICAgICAgICBpbnZhbGlkKCk7XG4gICAgICB9XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgbGV0IGZpZWxkID0gLTE7XG4gICAgZm9yIChsZXQgZiA9IDA7IGYgPCBTSVdTX0ZJRUxEX0xBQkVMUy5sZW5ndGg7IGYrKykge1xuICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aChTSVdTX0ZJRUxEX0xBQkVMU1tmXSkpIHtcbiAgICAgICAgZmllbGQgPSBmO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZpZWxkID09PSAtMSkge1xuICAgICAgaWYgKGluRmllbGRzIHx8IHJlcXVpcmVGaWVsZHMpIHtcbiAgICAgICAgaW52YWxpZCgpO1xuICAgICAgfVxuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChoYXNGaWVsZCAmJiBmaWVsZCA8PSBsYXN0RmllbGQpIHtcbiAgICAgIGludmFsaWQoKTtcbiAgICB9XG4gICAgaGFzRmllbGQgPSB0cnVlO1xuICAgIGxhc3RGaWVsZCA9IGZpZWxkO1xuICAgIGluRmllbGRzID0gdHJ1ZTtcbiAgICByZXF1aXJlRmllbGRzID0gZmFsc2U7XG4gICAgY29uc3QgdmFsdWUgPSBsaW5lLnN1YnN0cmluZyhTSVdTX0ZJRUxEX0xBQkVMU1tmaWVsZF0ubGVuZ3RoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgICBjYXNlIFNJV1NfRklFTERfVkVSU0lPTjpcbiAgICAgICAgaWYgKHZhbHVlICE9PSAnMScpIHtcbiAgICAgICAgICBpbnZhbGlkKCk7XG4gICAgICAgIH1cbiAgICAgICAgaGFzVmVyc2lvbiA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTSVdTX0ZJRUxEX0NIQUlOX0lEOlxuICAgICAgICBpZiAoIVNJV1NfQ0hBSU5fSURTLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgIGludmFsaWQoKTtcbiAgICAgICAgfVxuICAgICAgICBoYXNDaGFpbklkID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNJV1NfRklFTERfTk9OQ0U6XG4gICAgICAgIGlmICghaXNTaXdzQWxudW0odmFsdWUpKSB7XG4gICAgICAgICAgaW52YWxpZCgpO1xuICAgICAgICB9XG4gICAgICAgIGhhc05vbmNlID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNJV1NfRklFTERfSVNTVUVEX0FUOlxuICAgICAgY2FzZSBTSVdTX0ZJRUxEX0VYUElSQVRJT05fVElNRTpcbiAgICAgIGNhc2UgU0lXU19GSUVMRF9OT1RfQkVGT1JFOlxuICAgICAgICBpZiAoIWlzU2l3c0RhdGV0aW1lKHZhbHVlKSkge1xuICAgICAgICAgIGludmFsaWQoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmllbGQgPT09IFNJV1NfRklFTERfSVNTVUVEX0FUKSB7XG4gICAgICAgICAgaGFzSXNzdWVkQXQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTSVdTX0ZJRUxEX1VSSTpcbiAgICAgIGNhc2UgU0lXU19GSUVMRF9SRVFVRVNUX0lEOlxuICAgICAgICBpZiAodmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgaW52YWxpZCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTSVdTX0ZJRUxEX1JFU09VUkNFUzpcbiAgICAgICAgaWYgKHZhbHVlICE9PSAnJykge1xuICAgICAgICAgIGludmFsaWQoKTtcbiAgICAgICAgfVxuICAgICAgICBpblJlc291cmNlcyA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBpZiAoIWhhc1ZlcnNpb24gfHwgIWhhc0NoYWluSWQgfHwgIWhhc05vbmNlIHx8ICFoYXNJc3N1ZWRBdCkge1xuICAgIGludmFsaWQoKTtcbiAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import { EncryptionVersion, IRequestTracer } from '../../../api';
2
2
  import * as openpgp from 'openpgp';
3
3
  import { Key, SerializedKeyPair } from 'openpgp';
4
- import { IBaseCoin, KeychainsTriplet } from '../../baseCoin';
4
+ import { IBaseCoin, KeychainsTriplet, TransactionParams } from '../../baseCoin';
5
5
  import { BitGoBase } from '../../bitgoBase';
6
6
  import { Keychain, WebauthnKeyEncryptionInfo } from '../../keychain';
7
7
  import { IWallet } from '../../wallet';
@@ -48,7 +48,7 @@ export default class BaseTssUtils<KeyShare> extends MpcUtils implements ITssUtil
48
48
  * @param {CustomGShareGeneratingFunction} externalSignerGShareGenerator a function that creates G shares in the EdDSA TSS flow
49
49
  * @returns {Promise<TxRequest>} - a signed tx request
50
50
  */
51
- signEddsaTssUsingExternalSigner(txRequest: string | TxRequest, externalSignerCommitmentGenerator: CustomCommitmentGeneratingFunction, externalSignerRShareGenerator: CustomRShareGeneratingFunction, externalSignerGShareGenerator: CustomGShareGeneratingFunction): Promise<TxRequest>;
51
+ signEddsaTssUsingExternalSigner(txRequest: string | TxRequest, externalSignerCommitmentGenerator: CustomCommitmentGeneratingFunction, externalSignerRShareGenerator: CustomRShareGeneratingFunction, externalSignerGShareGenerator: CustomGShareGeneratingFunction, _reqId?: IRequestTracer, _txParams?: TransactionParams): Promise<TxRequest>;
52
52
  /**
53
53
  * Signs a transaction using TSS for ECDSA and through utilization of custom share generators
54
54
  *
@@ -1 +1 @@
1
- {"version":3,"file":"baseTSSUtils.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/baseTSSUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseTSSUtils.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/baseTSSUtils.ts"],"names":[],"mappings":"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"}