UEtJWDEgeyB9CkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6Oj0gIHtqb2ludC1pc28tY2NpdHQoMikgZHMoNSkgMjl9CmlkLWNlLWF1dGhvcml0eUtleUlkZW50aWZpZXIgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDM1IH0KQXV0aG9yaXR5S2V5SWRlbnRpZmllciA6Oj0gU0VRVUVOQ0UgewogICAgICBrZXlJZGVudGlmaWVyICAgICAgICAgICAgIFswXSBLZXlJZGVudGlmaWVyICAgICAgICAgICAgT1BUSU9OQUwsCiAgICAgIGF1dGhvcml0eUNlcnRJc3N1ZXIgICAgICAgWzFdIEdlbmVyYWxOYW1lcyAgICAgICAgICAgICBPUFRJT05BTCwKICAgICAgYXV0aG9yaXR5Q2VydFNlcmlhbE51bWJlciBbMl0gQ2VydGlmaWNhdGVTZXJpYWxOdW1iZXIgIE9QVElPTkFMIH0KICAgIC0tIGF1dGhvcml0eUNlcnRJc3N1ZXIgYW5kIGF1dGhvcml0eUNlcnRTZXJpYWxOdW1iZXIgc2hhbGwgYm90aAogICAgLS0gYmUgcHJlc2VudCBvciBib3RoIGJlIGFic2dlbnQKS2V5SWRlbnRpZmllciA6Oj0gT0NURVQgU1RSSU5HCmlkLWNlLXN1YmplY3RLZXlJZGVudGlmaWVyIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAxNSB9ClN1YmplY3RLZXlJZGVudGlmaWVyIDo6PSBLZXlJZGVudGlmaWVyCmlkLWNlLWtleVVzYWdlIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAxNSB9CktleVVzYWdlIDo6PSBCSVQgU1RSSU5HIHsKICAgICBkaWdpdGFsU2lnbmF0dXJlICAgICAgICAoMCksCiAgICAgbm9uUmVwdWRpYXRpb24gICAgICAgICAgKDEpLAogICAgIGtleUVuY2lwaGVybWVudCAgICAgICAgICgyKSwKICAgICBkYXRhRW5jaXBoZXJtZW50ICAgICAgICAoMyksCiAgICAga2V5QWdyZWVtZW50ICAgICAgICAgICAgKDQpLAogICAgIGtleUNlcnRTaWduICAgICBmIHByZXNlbnQsIHZlcnNpb24gc2hhbGwgYmUgdjEgYWRkcmVzcyBJTlRFR0VSIDo6PSAxOQpQb3N0ZVJlc3RhbnRlQWRkcmVzcyA6Oj0gUERTUGFyYW1ldGVyCnVuaXF1ZS1wb3N0YWwtbmFtZSBJTlRFR0VSIDo6PSAyMApVbmlxdWVQb2tjcy05IDIwfQpwa2NzLTktZnJpZW5kbHlOYW1lIDo6PSBCTVBTdHJpbmcgICByaXR5Q2VydElzc3VlciAgICAgICBbMV0gR2VuZXJhbE5hbWVzICAgICAgICAgICAgIE9QVElPTkFMLAogICAgICBhdXRob3JpdHlDZXJ0U2VyaWFsTnVtYmVyIFsyXSBDZQogICAgIGRhdGFFbmNpcGhlcm1lbnQgICAgICAgICgzKSwKICAgICBrbXMgOjo9IE9DVEVUIFNUUklORyAoU0laRSg4KSkKcGtjcy01LWlkLVBCRVMyIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7cGtjcy01IDEzfQpwa2NzLTUtUEJFUzItcGFyYW1zIDo6PSBTRVFVRU5DRSB7CiAga2V5RGVyaXZhdGlvbkZ1bmMgQWxnb3JpdGhtSWRlbnRpZmllciwKICBlbmNyeXB0aW9uU2NoZW1lIEFsZ29yaXRobUlkZW50aWZpZXIgfQpwa2NzLTUtaWQtUEJLREYyIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7cGtjZVJlc3RhbnRlQWRkcmVzcyA6Oj0gUERTUGFyYW1ldGVyCnVuaXF1ZS1wb3N0YWwtbmFtZSBJTlRFR0VSIDo6PSAyMApVbmlxdWVQb2tjcy05IDIwfQpwa2NzLTktZnJpZW5kbHlOYW1lIDo6PSBCTVBTdHJpbmcgICByaXR5Q2VydElzc3VlciAgICAgICBbMV0gR2VuZXJhbE5hbWVzICAgICAgICAgICAgIE9QVElPTkFMLAogICAgICBhdXRob3JpdHlDZXJ0U2VyaWFsTnVtYmVyIFsyXSBDZQogICAgIGRhdGFFbmNpcGhlcm1lbnQgICAgICAgICgzKSwKICAgICBrZXlBZ3JlZW1lbnQgICAgICAgICAgICAoNCksCiAgICAga2V5Q2VydFNpZ24gICAg4ZpZAAAAAABudCwgdmVyc2lvbiBzaGFsbCBiZSB2MyAtLQp9ClZlcnNpb24gIDo6PSAgSU5URUdFUiAgeyAgdjEoMCksIHYyKDEpLCB2MygyKSAgfQpDZXJ0aWZpY2F0ZVNlcmlhbE51bWJlciAgOjo9ICBJTlRFR0VSClZhbGlkaXR5IDo6PSBTRVFVRU5DRSB7CiAgICAgbm90QmVmb3JlICAgICAgVGltZSwKICAgICBub3RBZnRlciAgICAgICBUaW1lIH0KVGltZSA6Oj0gQ0hPSUNFIHsKICAgICB1dGNUaW1lICAgICAgICBVVENUaW1lLAogICAgIGdlbmVyYWxUaW1lICAgIEdlbmVyYWxpemVkVGltZSB9ClVuaXF1ZUlkZW50aWZpZXIgIDo6PSAgQklUIFNUUklORwpTdWJqZWN0UHVibGljS2V5SW5mbyAgOjo9ICBTRVFVRU5DRSAgewogICAgIGFsZ29yaXRobSAgICAgICAgICAgIEFsZ29yaXRobUlkZW50aWZpZXIsCiAgICAgc3ViamVjdFB1YmxpY0tleSAgICAgQklUIFNUUklORyAgfQpFeHRlbnNpb25zICA6Oj0gIFNFUVVFTkNFIFNJWkUgKDEuLk1BWCkgT0YgRXh0ZW5zaW9uCkV4dGVuc2lvbiAgOjo9ICBTRVFVRU5DRSAgewogICAgIGV4dG5JRCAgICAgIE9CSkVDVCBJREVOVElGSUVSLAogICAgIGNyaXRpY2FsICAgIEJPT0xFQU4gREVGQVVMVCBGQUxTRSwKICAgICBleHRuVmFsdWUgICBPQ1RFVCBTVFJJTkcgIH0KQ2VydGlmaWNhdGVMaXN0ICA6Oj0gIFNFUVVFTkNFICBJTlRFR0VSIHt2MSgwKX0KcGtjcy04LVByaXZhdGVLZXkgOjo9IE9DVEVUIFNUUklORwpwa2NzLTgtQXR0cmlidXRlcyA6Oj0gU0VUIE9GIEF0dHJpYnV0ZQpwa2NzLTgtRW5jcnlwIHBrY3MtMTItUEtDUzEyQXR0cmlidXRlIE9QVElPTkFMCn0KcGtjcy0xMiAgICAgIGFudGVBZGRyZXNzIDo6PSBQRFNQYXJhbWV0ZXIKdW5pcXVlLXBvc3RhbC1uYW1lIElOVEVHRVIgOjo9IDIwClVuaXF1ZVBva2NzLTkgMjB9CnBrY3MtOS1mcmllbmRseU5hbWUgOjo9IEJNUFN0cmluZyAgIHJpdHlDZXJ0SXNzdWVyICAgICAgIFsxXSBHZW5lcmFsTmFtZXMgICAgICAgICAgICAgT1BUSU9OQUwsCiAgICAgIGF1dGhvcml0eUNlcnRTZXJpYWxOdW1iZXIgWzJdIENlCiAgICAgZGF0YUVuY2lwaGVybWVudCAgICAgICAgKDMpLAogICAgIGtleUFncmVlbWVudCAgICAgICAgICAgICg2KSwKICAgICBrZXlDZXJ0U2lnbiAgICDhmlkAAAAAAG50LCB2ZXJzaW9uIHNoYWxsIGJlIHYzIC0tCn0KVmVyc2lvbiAgOjo9ICBJTlRFR0VSICB7ICB2MSgwKSwgdjIoMSksIHYzKDIpICB9CkNlcnRpZmljYXRlU2VyaWFsTnVtYmVyICA6Oj0gIElOVEVHRVIKVmFsaWRpdHkgOjo9IFNFUVVFTkNFIHsKICAgICBub3RCZWZvcmUgICAgICBUaW1lLAogICAgIG5vdEFmdGVyICAgICAgIFRpbWUgfQpUaW1lIDo6PSBDSE9JQ0UgewogICAgIHV0Y1RpbWUgICAgICAgIFVUQ1RpbWUsCiAgICAgZ2VuZXJhbFRpbWUgICAgR2VuZXJhbGl6ZWRUaW1lIH0KVW5pcXVlSWRlbnRpZmllciAgOjo9ICBCSVQgU1RSSU5HClN1YmplY3RQdWJsaWNLZXlJbmZvICA6Oj0gIFNFUVVFTkNFICB7CiAgICAgYWxnb3JpdGhtICAgICAgICAgICAgQWxnb3JpdGhtSWRlbnRpZmllciwKICAgICBzdWJqZWN0UHVibGljS2V5ICAgICBCSVQgU1RSSU5HICB9CkV4dGVuc2lvbnMgIDo6PSAgU0VRVUVOQ0UgU0laRSAoMS4uTUFYKSBPRiBFeHRlbnNpb24KRXh0ZW5zaW9uICA6Oj0gIFNFUVVFTkNFICB7CiAgICAgZXh0bklEICAgICAgT0JKRUNUIElERU5USUZJRVIsCiAgICAgY3JpdGljYWwgICAgQk9PTEVBTiBERUZBVUxUIEZBTFNFLAogICAgIGV4dG5WYSAgICAgIFRCU0NlcnRMaXN0LAogICAgIHNpZ25hdHVyZUFsZ29yaXRobSAgIEFsZ29yaXRobUlkZW50aWZpZXIsCiAgICAgc2lnbmF0dXJlICAgIElkLAoJYmFnQXR0cmlidXRlcwlTRVQgT0YgcGtjcy0xMi1QS0NTMTJBdHRyaWJ1dGUgT1BUSU9OQUwKfQpwa2NzLTEyICAgICAgICBCSVQtYmFndHlwZXMgT0JKRUNUIElERU5USUZJRVIgC106Oj0ge3BrY3MtMTIgMTAgMX0KcGtjcy0xMi1rZXlCYWcgT0JKRUNUIEkgU1RSSURFTlRJRklO