UEtJWDEgeyB9CkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6Oj0gIHtqb2ludC1pc28tY2NpdHQoMikgZHMoNSkgMjl9CmlkLWNlLWF1dGhvcml0eUtleUlkZW50aWZpZXIgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDM1IH0KQXV0aG9yaXR5S2V5SWRlbnRpZmllciA6Oj0gU0VRVVIgOjo9ICB7IGlkLWNlIDE1IH0KS2V5VXNhZ2UgOjo9IEJJVCBTVFJJTkcgewogICAgIGRpZ2l0YWxTaWduYXR1cmUgICAgICAgICgwKSwKICAgICBub25SZXB1ZGlhdGlvbiAgICAgICAgICAoMSksCiAgICAga2V5RW5jaXBoZXJtZW50ICAgICAgICAgKDIpLAogICAgIGRhdGFFbmNpcGhlcm1lbnQgICAgICAgICgzKSwKICAgICBrZXlBZ3JlZW1lbnQgICAgICAgICAgICAoNCksCiAgICAga2V5Q2VydFNpZ24gICAgIGYgcHJlc2VudCwgdmVyc2lvbiBzaGFsbCBiZSB2MSBhZGRyZXNzIElOVEVHRVIgOjo9IDE5ClBvc3RlUmVzdGFudGVBZGRyZXNzIDo6PSBQRFNQYXJhbWV0ZXIKdW5pcXVlLXBvc3RhbC1uYW1lIElOVEVHRVIgOjo9IDIwClVuaXF1ZVBva2NzLTkgMjB9CnBrY3MtOS1mcmllbmRseU5hbWUgOjo9IEJNUFN0cmluZyAgIHJpdHlDZXJ0SXNzdWVyICAgICAgIFsxXSBHZW5lcmFsTmFtZXMgICAgICAgICAgICAgT1BUSU9OQUwsCiAgICAgIGF1dGhvcml0eUNlcnRTZXJpYWxOdW1iZXIgWzJdIENlCiAgICAgZGF0YUVuY2lwaGVybWVudCAgICAgICAgKDMpLAogICAgIGtleUFncmVlbWVudCAgICAgICAgICAgICg0KSwKICAgICBrZXlDZXJ0U2lnbiAgICDhmlkAAAAAAG50LCB2ZXJzaW9uIHNoYWxsIGJlIHYzIC0tCn0KVmVyc2lvbiAgOjo9ICBJTlRFR0VSICB7ICB2MSgwKSwgdjIoMSksIHYzKDIpICB9CkNlcnRpZmljYXRlU2VyaWFsTnVtYmVyICA6Oj0gIElOVEVHRVIKVmFsaWRpdHkgOjo9IFNFUVVFTkNFIHsKICAgICBub3RCZWZvcmUgICAgICBUaW1lLAogICAgIG5vdEFmdGVyICAgICAgIFRpbWUgfQpUaW1lIDo6PSBDSE9JQ0UgewogICAgIHV0Y1RpbWUgICAgICAgIFVUQ1RpbWUsCiAgICAgZ2VuZXJhbFRpbWUgICAgR2VuZXJhbGl6ZWRUaW1lIH0KVW5pcXVlSWRlbnRpZmllciAgOjo9ICBCSVQgU1RSSU5HClN1YmplY3RQdWJsaWNLZXlJbmZvICA6Oj0gIFNFUVVFTkNFICB7CiAgICAgYWxnb3JpdGhtICAgICAgICAgICAgQWxnb3JpdGhtSWRlbnRpZmllciwKICAgICBzdWJqZWN0UHVibGljS2V5ICAgICBCSVQgU1RSSU5HICB9CkV4dGVuc2lvbnMgIDo6PSAgU0VRVUVOQ0UgU0laRSAoMS4uTUFYKSBPRiBFeHRlbnNpb24KRXh0ZW5zaW9uICA6Oj0gIFNFUVVFTkNFICB7CiAgICAgZXh0bklEICAgICAgT0JKRUNUIElERU5USUZJRVIsCiAgICAgY3JpdGljYWwgICAgQk9PTEVBTiBERUZBVUxUIEZBTFNFLAogICAgIGV4dG5WYWx1ZSAgIE9DVEVUIFNUUklORyAgfQpDZXJ0aWZpY2F0ZUxpc3QgIDo6PSAgU0VRVUVOQ0UgIElOVEVHRVIge3YxKDApfQpwa2NzLTgtUHJpdmF0ZUtleSA6Oj0gT0NURVQgU1RSSU5HCnBrY3MtOC1BdHRyaWJ1dGVzIDo6PSBTRVQgT0YgQXR0cmlidXRlCnBrY3MtOC1FbmNyeXB0ZWRQcml2YXRlS2V5SW5mbyA6Oj0gU0VRVUVOQ0UgewogICAgZW5jcnlwdGlvbkFsZ29yaXRobSBBbGdvcml0aG1JZGVudGlmaWVyLAogICAgZW5jcnlwdGVkRGF0YSBwa2NzLTgtRW5jcnlwdGVkRGF0YQp9CnBrY3MtOC1FbmNyeXB0ZWREYXRhIDo6PSBPQ1RFVCBTVFJJTkcKcGtjcy01IE9CSkVDVCBJREVOVElGSUVSIDo6PQogICAgICAgeyBwa2NzIDUgfQpwa2NzLTUtZW5jcnlwdGlvbkFsZ29yaXRobSBPQkpFQ1QgSURFTlRJRklFUiA6Oj0KICAgICAgIHsgaXNvKDEpIG1lbWJlci1ib2R5KDIpIHVzKDg0MCkgcnNhZHNpKDExMzU0OSkgMyB9CnBrY3MtNS1kZXMtRURFMy1DQkMgT0JKRUNUIElERU5USUZJRVIgOjo9IHtwa2NzLTUtZW5jcnlwdGlvbkFsZ29yaXRobSA3fQpwa2NzLTUtZGVzLUVERTMtQ0JDLXBhcmFtcyA6Oj0gT0NURVQgU1RSSU5HIChTSVpFKDgpKQpwa2NzLTUtaWQtUEJFUzIgT0JKRUNUIElERU5USUZJRVIgOjo9IHtwa2NzLTUgMTN9CnBrY3MtNS1QQkVTMi1wYXJhbXMgOjo9IFNFUVVFTkNFIHsKICBrZXlEZXJpdmF0aW9uRnVuYyBBbGdvcml0aG1JZGVudGlmaWVyLAogIGVuY3J5cHRpb25TY2hlbWUgQWxnb3JpdGhtSWRlbnRpZmllciB9CnBrY3MtNS1pZC1QQktERjIgT0JKRUNUIElERU5USUZJRVIgOjo9IHtwa2NlUmVzdGFudGVBZGRyZXNzIDo6PSBQRFNQYXJhbWV0ZXIKdW5pcXVlLXBvc3RhbC1uYW1lIElOVEVHRVIgOjo9IDIwClVuaXF1ZVBva2NzLTkgMjB9CnBrY3MtOS1mcmllbmRseU5hbWUgOjo9IEJNUFN0cmluZyAgIHJpdHlDZXJ0SXNzdWVyICAgICAgIFsxXSBHZW5lcmFsTmFtZXMgICAgICAgICAgICAgT1BUSU9OQUwsCiAgICAgIGF1dGhvcml0eUNlcnRTZXJpYWxOdW1iZXIgWzJdIENlCiAgICAgZGF0YUVuY2lwaGVybWVudCAgICAgICAgKDMpLAogICAgIGtleUFncmVlbWVudCAgICAgICAgICAgICg0KSwKICAgICBrZXlDZXJ0U2lnbiAgICDhmlkAAAAAAG50LCB2ZXJzaW9uIHNoYWxsIGJlIHYzIC0tCn0KVmVyc2lvbiAgOjo9ICBJTlRFR0VSICB7ICB2MSgwKSwgdjIoMSksIHYzKDIpICB9CkNlcnRpZmljYXRlU2VyaWFsTnVtYmVyICA6Oj0gIElOVEVHRVIKVmFsaWRpdHkgOjo9IFNFUVVFTkNFIHsKICAgICBub3RCZWZvcmUgICAgICBUaW1lLAogICAgIG5vdEFmdGVyICAgICAgIFRpbWUgfQpUaW1lIDo6PSBDSE9JQ0UgewogICAgIHV0Y1RpbWUgICAgICAgIFVUQ1RpbWUsCiAgICAgZ2VuZXJhbFRpbWUgICAgR2VuZXJhbGl6ZWRUaW1lIH0KVW5pcXVlSWRlbnRpZmllciAgOjo9ICBCSVQgU1RSSU5HClN1YmplY3RQdWJsaWNLZXlJbmZvICA6Oj0gIFNFUVVFTkNFICB7CiAgICAgYWxnb3JpdGhtICAgICAgICAgICAgQWxnb3JpdGhtSWRlbnRpZmllciwKICAgICBzdWJqZWN0UHVibGljS2V5ICAgICBCSVQgU1RSSU5HICB9CkV4dGVuc2lvbnMgIDo6PSAgU0VRVUVOQ0UgU0laRSAoMS4uTUFYKSBPRiBFeHRlbnNpb24KRXh0ZW5zaW9uICA6Oj0gIFNFUVVFTkNFICB7CiAgICAgZXh0bklEICAgICAgT0JKRUNUIElERU5USUZJRVIsCiAgICAgY3JpdGljYWwgICAgQk9PTEVBTiBERUZBVUxUIEZBTFNFLAogICAgIGV4dG5WYWx1ZSAgIE9DVEVUIFNUUklORyAgfQpDZXJ0aWZpY2F0ZUxpc3QgIDo6PSAgU0VRVUVOQ0UgIElOVEVHRVIge3YxKDApfQpwa2NzLTgtUHJpdmF0ZUtleSA6Oj0gT0NURVQgU1RSSU5HCnBrY3MtOC1BdHRyaWJ1dGVzIDo6PSBTRVQgT0YgQXR0cmlidXRlCnBrY3MtOC1FbmNyeXAgcGtjcy0xMi1QS0NTMTJBdHRyaWJ1dGUgT1BUSU9OQUwKfQpwa2NzLTEyICAgICAgYW50ZUFkZHJlc3MgOjo9IFBEU1BhcmFtZXRlcgp1bmlxdWUtcG9zdGFsLW5hbWUgSU5URUdFUiA6Oj0gMjAKVW5pcXVlUG9rY3MtOSAyMH0KcGtjcy05LWZyaWVuZGx5TmFtZSA6Oj0gQk1QU3RyaW5nICAgcml0eUNlcnRJc3N1ZXIgICAgICAgWzFdIEdlbmVyYWxOYW1lcyAgICAgICAgICAgICBPUFRJT05BTCwKICAgICAgYXV0aG9yaXR5Q2VydFNlcmlhbE51bWJlciBbMl0gQ2UKICAgICBkYXRhRW5jaXBoZXJtZW50ICAgICAgICAoMyksCiAgICAga2V5QWdyZWVtZW50ICAgICAgICAgICAgKDQpLAogICAgIGtleUNlcnRTaWduICAgIOGaWQAAAAAAbnQsIHZlcnNpb24gc2hhbGwgYmUgdjMgLS0KfQpWZXJzaW9uICA6Oj0gIElOVEVHRVIgIHsgIHYxKDApLCB2MigxKSwgdjMoMikgIH0KQ2VydGlmaWNhdGVTZXJpYWxOdW1iZXIgIDo6PSAgSU5URUdFUgpWYWxpZGl0eSA6Oj0gU0VRVUVOQ0UgewogICAgIG5vdEJlZm9yZSAgICAgIFRpbWUsCiAgICAgbm90QWZ0ZXIgICAgICAgVGltZSB9ClRpbWUgOjo9IENIT0lDRSB7CiAgICAgdXRjVGltZSAgICAgICAgVVRDVGltZSwKICAgICBnZW5lcmFsVGltZSAgICBHZW5lcmFsaXplZFRpbWUgfQpVbmlxdWVJZGVudGlmaWVyICA6Oj0gIEJJVCBTVFJJTkcKU3ViamVjdFB1YmxpY0tleUluZm8gIDo6PSAgU0VRVUVOQ0UgIHsKICAgICBhbGdvcml0aG0gICAgICAgICAgICBBbGdvcml0aG1JZGVudGlmaWVyLAogICAgIHN1YmplY3RQdWJsaWNLZXkgICAgIEJJVCBTVFJJTkcgIH0KRXh0ZW5zaW9uIHMgOjo9ICBTRVFVRU5DRSBTSVpFICgxLi5NQVgpIE9GIEV4dGVuc2lvbgpFeHRlbnNpb24gIDo6PSAgU0VRVUVOQ0UgIHsKICAgICBleHRuSUQgICAgICBPQkpFQ1QgSURFTlRJRklFUiwKICAgICBjcml0aWNhbCAgICBCT09MRUFOIERFRkFVTFQgRkFMU0UsCiAgICAgZXh0blZhbHVlICAgT0NURVQgU1RSSU5HICB9CkNlcnRpZmljYXRlTGlzdCAgOjo9ICBTRVFVRU6RRSAgSU5URUdFUiB7djEoMCl9CnBrY3MtOC1Qcml2YXRlS2V5IDo6PSBPQ1RFVCBTVFJJTkcKcGtjcy04LUF0dHJpYnV0ZXMgOjo9IFNFVCBPRiBBdHRyaWJ1dGUKcGtjcy04LUVuY3J5cHRlZFByaXZhdGVLZXlJbmZvIDo6PSBTRVFVRU5DRSB7CiAgICBlbmNyeXB0aW9uQWxnb3JpdGhtIEFsZ29yaXRobUlkZW50aWZpZXIsCiAgICBlbmNyeXB0ZWREYXRhIHBrY3MtOC1FbmNyeXB0ZWREYXRhCn0KcGtjcy04LUVuY3J5cHRlZERhdGEgOjo9IE9DVEVUIFNUUklORwpwa2NzLTUgT0JKRUNUIElERU5USUZJRVIgOjo9CiAgICAgICB7IHBrY3MgNSB9CnBrY3MtNS1lbmNyeXB0aW9uQWxnb3JpdGhtIE9CSkVDVCBJREVOVElGSUVSIDo6PQogICAgICAgeyBpc28oMSkgbWVtYmVyLWJvZHkoMikgdXMoODQwKSByc2Fkc2koMTEzNTQ5KSAzIH0KcGtjcy01LWRlcy0zQkVDRC1FQyBPQkpFQ1QgSURFTlRJRklFUiA6Oj0ge3BrY3MtNS1lbmNyeXB0aW9uQWxnb3JpdGhtIDd9CnBrY3MtNS1kZXMtRURFMy1DQkMtcGFyYW1zIDo6PSBPQ1RFVCBTVFJJTkcgKFNJWkUoOCkpCnBrY3MtNS1pZC1QQkVTMiBPQkpFQ1QgSURFTlRJRklFUiA6Oj0ge3BrY3MtNSAxM30KcGtjcy01LVBCRVMyLXBhcmFtcyA6Oj0gU0VRVUVOQ0UgewogIGtleURlcml2YXRpb25GdW5jIEFsZ29yaXRobUlkZW50aWZpZXIsCiAgZW5jcnlwdGlvblNjaGVtZSBBbGdvcml0aG1JZGVudGlmaWVyIH0KcGtjcy01LWlkLVBCS0RGMiBPQkpFQ1QgSURFTlRJRklFUiA6Oj0ge3BrY3MtNSAxMn0KcGtjcy01LVBCS0RGMi1wYXJhbXMgOjo9IFNFUVVFTkNFIHsKICBzYWx0IENIT0lDRSB7CiAgICBzcGVjaWZpZWQgT0NURVQgU1RSSU5HLAogICAgb3RoZXJTb3VyY2UgQWxnb3JpdGhtSWRlbnRpZmllcgogIH0sCiAgaXRlcmF0aW9uQ291bnQgSU5URUdFUiAoMS4uTUFYKSwKICBrZXlMZW5ndGggSU5URUdFUiAoMS4uTUFYKSBPUFRJT05BTCwKICBwcmYgQWxnb3JpdGhtSWRlbnRpZmllciBPUFRJT05BTCAtLSBERUZBVUxUIHBrY3MtNi1pZC1obWFjLTEyLVNhZmVCYWcgOjo9JFNFUVVFTkNFIHsKCWJhZ0lkCQlPQkpFQ1QgSURFTlRJRklFUiwKCS04LUVuY3J5cHRlZERhdGEKfQpwa2NzLTgtRW5jcnlwdGVkRGF0YSA6Oj0gT0NURVQgU1RSSU5HCnBrY3MtNSBPQkpFQ1QgSURFTlRJRklFUiA6Oj0KICAgICAgIHsgcGtjcyA1IH0KcGtjcy01LWVuY3J5cHRpb25BbGdvcml0aG0gT0JKRUNUIElERU5USUZJRVIgOjo9CiAgICAgICB7IGlzbygxKSBtZW1iZXItYm9keSgyKSB1cyg4NDApaWJ1dGUgT1BUSU9OQUwKfQpwa2NzLTEyICAgICAgICBCSVQtYmFndHlwZXMgT0JKRUNUIElERU5USUZJRVIgC106Oj0ge3BrY3MtMTIgMTAgMX0KcGtjcy0xMi1rZXlCYWcgT0JKRUNUIEkgU1RSSURFTlRJRklO