UEtJWDEgeyB9CkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6Oj0gIHtqb2ludC1pc28tY2NpdHQoMikgZHMoNSkgMjl9CmlkLWNlLWF1dGhvcml0eUtleUlkZW50aWZpZXIgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDM1IH0KQXV0aG9yaXR5S2V5SWRlbnRpZmllciA6Oj0gU0VRVUVOQ0UgewogICAgICBrZXlJZGVudGlmaWVyICAgICAgICAgICAgIFswXSBLZXlJZGVudGlmaWVyICAgICAgICAgICAgT1BUSU9OQEwsCiAgICAgIGF1dGhvcml0eUNlcnRJc3N1ZXIgICAgICAgWzFdIEdlbmVyYWxOYW1lcyAgICAgICAgICAgICBPUFRJT05BTCwKICAgICAgYXV0aG9yaXR5Q2VydFNlcmlhbE51bWJlciBbMl0gQ2VydGlmaWNhdGVTZXJpYWxOU3RyaW5nCmlkLWF0LWxkYXAtVUlEIEF0dHJpYnV0ZVR5cGUgOjo9IHsgMCA5IDIzNDIgMTkyMDAzMDAgMTAwIDEgMSB9CmxkYXAtVUlEIDo6PSBEaXJlY3RvcnlTdHJpbmcKaWQtcGRhICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBpZC1wa2l4IDkgfQppZC1wZGEtZGF0ZU9mQmlydGggICAgICAgICAgQXR0cmlidXRlVHlwZSA6Oj0geyBpZC1wZGEgMSB9CkRhdGVPZkJpcnRoIDo6PSAgICAgICAgICAgICBHZW5lcmFsaXplZFRpbWUKaWQtcGRhLXBsYWNlT2ZCaXJ0aCAgICAgICAgIEF0dHJpYnV0ZVR5cGUgOjo9IHsgaWQtcGRhIDIgfQpQbGFjZU9mQmlydGggOjo9ICAgICAgICAgICAgRGlyZWN0b3J5U3RyaW5nCmlkLXBkYS1nZW5kZXIgICAgICAgICAgICAgICBBdHRyaWJ1dGVUeXBlIDo6PSB7IGlkLXBkYSAzIH0KR2VuZGVyIDo6PSAgICAgICAgICAgICAgICAgIFByaW50YWJsZVN0cmluZyAoU0laRSgxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tICJNIiwgIkYiLCAibSIgb3IgImYiCmlkLXBkYS1jb3VudHJ5T2ZDaXRpemVuc2hpcCBBdHRyaWJ1dGVUeXBlIDo6PSB7IGlkLXBkYSA0IH0KQ291bnRyeU9mQ2l0aXplbnNoaXAgOjo9ICAgIFByaW50YWJsZVN0cmluZyAoU0laRSAoMikpCiAgICAgICA4KSB9CmlkLWNlLXByaXZhdGVLZXlVc2FnZVBlcmlvZCBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMTYgfQpQcml2YXRlS2V5VXNhZ2VQZXJpb2QgOjo9IFNFUVVFTkNFIHsKICAgICBub3RCZWZvcmUgICAgICAgWzBdICAgICBHZW5lcmFsaXplZFRpbWUgT1BUSU9OQUwsCiAgICAgbm90QWZ0ZXIgICAgICAgY09DU1BSZXNwb25zZSAgICAgICA6Oj0gU0VRVUVOQ0UgewogICB0YnNSZXNwb25zZURhdGEgICAgICBSZXNwb25zZURhdGEsCiAgIHNpZ25hdHVyZUFsZ29yaXRobSAgIEFsZ29yaXRobUlkZW50aWZpZXIsCiAgIHNpZ25hdHVyZSAgICAgICAgICAgIEJJVCBTVFJJTkcsCiAgIGNlcnRzICAgICAgICAgICAgICAgIFswXSBFWFBMSUNJVCBTRVFVRU5DRSBPRiBDZXJ0aWZpY2F0ZSBPUFRJT05BTCB9ClJlc3BvbnNlRGF0YSA6Oj0gU0VRVUVOQ0UgewogICB2ZXJzaW9uICAgICAgICAgICAgICBbMF0gRVhQTElDSVQgSU5URUdFUiBERUZBVUxUIDAsCiAgIHJlc3BvbmRlcklEICAgICAgICAgICAgICBSZXNwb25kZXJJRCwKICAgcHJvZHVjZWRBdCAgICAgICAgICAgICAgIEdlbmVyYWxpemVkVGltZSwKICAgcmVzcG9uc2VzICAgICAgICAgICAgICAgIFNFUVVFTkNFIE9GIFNpbmdsZVJlc3BvbnNlLAogICByZXNwb25zZUV4dGVuc2lvbnMgICBbMV0gRVhQTElDSVQgRXh0ZW5zaW9ucyBPUFRJT05BTCB9ClJlc3BvbmRlcklEIDo6PSBDSE9JQ0UgewogICBieU5hbWUgICBbMV0gRVhQTElDSVQgUkROU2VxdWVuY2UsIC0tTmFtZQogICBieUtleSAgICBbMl0gRVhQTElDSVQgT0NURVQgU1RSSU5HIC0tU0hBLTEgaGFzaCBvZiByZXNwb25kIDo6PSB7IGlkLXBraXggOSB9CmlkLXBkYS1kYXRlT2ZCaXJ0aCAgICAgICAgICBBdHRyaWJ1dGVUeXBlIDo6PSB7IGlkLXBkYSAxIH0KRGF0ZU9mQmlydGggOjo9ICAgICAgICAgICAgIEdlbmVyYWxpemVkVGltZQppZC1wZGEtcGxhY2VPZkJpcnRoICAgICAgICAgQXR0cmlidXRlVHlwZSA6Oj0geyBpZC1wZGEgMiB9ClBsYWNlT2ZCaXJ0aCA6Oj0gICAgICAgICAgICBEaXJlY3RvcnlTdHJpbmcKaWQtcGRhLWdlbmRlciAgICAgICAgICAgICAgIEF0dHJpYnV0ZVR5cGUgOjo9IHsgaWQtcGRhIDMgfQpHZW5kZXIgOjo9ICAgICAgICAgICAgICAgICAgUHJpbnRhYmxlU3RyaW5nIChTSVpFKDEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gIk0iLCAiRiIsICJtIiBvciAiZiIKaWQtcGRhLWNvdW50cnlPZkNpdGl6ZW5zaGlwIEF0dHJpYnV0ZVR5cGUgOjo9IHsgaWQtcGRhIDQgfQpDb3VudHJ5T2ZDaXRpemVuc2hpcCA6Oj0gICAgUHJpbnRhYmxlU3RyaW5nIChTSVpFICgyKSkKICAgICAgIDgpIH0KaWQtY2UtcHJpdmF0ZUtleVVzYWdlUGVyaW9kIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAxNiB9ClByaXZhdGVLZXlVc2FnZVBlcmlvZCA6Oj0gU0VRVUVOQ0UgewogICAgIG5vdEJlZm9yZSAgICAgICBbMF0gICAgIEdlbmVyYWxpemVkVGltZSBPUFRJT05BTCwKICAgICBub3RBZnRlciAgICAgICBjT0NTUFJlc3BvbnNlICAgICAgIDo6PSBTRVFVRU5DRSB7CiAgIHRic1Jlc3BvbnNlRGF0YSAgICAgIFJlc3BvbnNlRGF0YSwKICAgc2lnbmF0dXJlQWxnb3JpdGhtICAgQWxnb3JpdGhtSWRlbnRpZmllciwKICAgc2lnbmF0dXJlICAgICAgICAgICAgQklUIFNUUklORywKICAgY2VydHMgICAgICAgICAgICAgICAgWzBdIEVYUExJQ0lUIFNFUVVFTkNFIE9GIENlcnRpZmljYXRlIE9QVElPTkFMIH0KUmVzcG9uc2VEYXRhIDo6PSBTRVFVRU5DRSB7CiAgIHZlcnNpb24gICAgICAgICAgICAgIFswXSBFWFBMSUNJVCBJTlRFR0VSIERFRkFVTFQgMCwKICAgcmVzcG9uZGVySUQgICAgICAgICAgICAgIFJlc3BvbmRlcklELAogICBwcm9kdWNlZEF0ICAgICAgICAgICAgICAgR2VuZXJhbGl6ZWRUaW1lLAogICByZXNwb25zZXMgICAgICAgICAgICAgICAgU0VRVUVOQ0UgT0YgU2luZ2xlUmVzcG9uc2UsCiAgIHJlc3BvbnNlRXh0ZW5zaW9ucyAgIFsxXSBFWFBMSUNJVCBFeHRlbnNpb25zIE9QVElPTkFMIH0KUmVzcG9uZGVySUQgOjo9IENIT0lDRSB7CiAgIGJ5TmFtZSAgIFsxXSBFWFBMSUNJVCBSRE5TZXF1ZW5jZSwgLS1OYW1lCiAgIGJ5S2V5ICAgIFsyXSBFWFBMSUNJVCBPQ1RFVCBTVFJJTkcgLS1TSEEtMSBoYXNoIG9mIHJlc3BvbmRlcidzIHB1YmxpYyBrZXkKfQpDZXJ0SUQgOjo9IFNFUVVFTkNFIHsKICAgIGhhc2hBbGdvcml0aG0gICAgICAgICAgICBBbGdvcml0aG1JZGVudGlmaWVyLAogICAgaXNzdWVyTmFtZUhhc2ggICAgIE9Dp7pUIFNUUklORywgLS0gSGFzaCBvZiBJc3N1ZXIncyBETgogICAgaXNzdWVyS2V5SGFzaCAgICAgIE9DVEVUIFNUUklORywgLS0gSGFzaCBvZiBJc3N1ZXJzIHB1YmxpYyBrZXkKICAgIHNlcmlhbE51bWJlciAgICAgICBDZXJ0aWZpY2F0ZVNlcmlhbE51bWJlciB9CkNlcnRTdGF0dXMgOjo9IENIT0lDRSB7CiAgICBnb29kICAgICAgICAgICAgICAgIFswXSAgICAgSU1QTElDSVQgTlVMTCwKICAgIHJldm9rZWQgICAgICAgICAgICAgWzFdICAgICBJTVBMSUNJVCBSZXZva2VkSW5mbywKICAgIHVua25vd24gICAgZXIncyBwdWJsaWMga2V5Cn0KQ2VydElEIDo6PSBTRVFVRU5DRSB7CiAgICBoYXNoQWxnb3JpdGhtICAgICAgICAgICAgQWxnb3JpdGhtSWRlbnRpZmllciwKICAgIGlzc3Vlck5hbWVIYXNoICAgICBPQ6e6VCBTVFJJTkcsIC0tIEhhc2ggb2YgSXNzdWVyJ3MgRE4KICAgIGlzc3VlcktleUhhc2ggICAgICBPQ1RFVCBTVFJJTkcsIC0tIEhhc2ggb2YgSXNzdWVycyBwdWJsaWMga2V5CiAgICBzZXJpYWxOdW1iZXIgICAgICAgQ2VydGlmaWNhdGVTZXJpYWxOdW1iZXIgfQpDZXJ0U3RhdHVzIDo6PSBDSE9JQ0UgewogICAgZ29vZCAgICAgICAgICAgICAgICBbMF0gICAgIElNUExJQ0lUIE5VTEwsCiAgICByZXZva2VkICAgICAgICAgICAgIFsxXSAgICAgSU1QTElDSVQgUmV2b2tlZEluZm8sCiAgICB1bmtub3duICAgICAgICAgICAgIFsyXSAgICAgSU1QTElDSVQgVW5rbm93bkluZm8gfQpTaW5nbGVSZXNwb25zZSA6Oj0gU0VRVUVOQ0UgewogICBjZXJ0SUQgICAgICAgICAgICAgICAgICAgICAgIENlcnRJRCwKICAgY2VydFN0YXR1cyAgICAgICAgICAgICAgICAgICBDZXJ0U3RhdHVzLAogICB0aGlzVXBkYXRlICAgICAgICAgICAgICAgICAgIEdlbmVyYWxpemVkVGltZSwKICAgbmV4dFVwZGF0ZSAgICAgICAgICAgWzBdICAgICBFWFBMSUNJVCBHZW5lcmFsaXplZFRpbWUgT1BUSU9OQUwsCiAgIHNpbmdsZUV4dGVuc2lvbnMgICAgIFsxXSAgICAgRVhQTElDSVQgRXh0ZW5zaW9ucyBPUFRJT05BTCB9ClJldm9rZWRJbmZvIDo6PSBTICB0aGlzVXBkYXRlICAgICAgICAgICAgICAgICAgIEdlbmVyYWxpemVkVGltZSwKICAgbmV4dFVwZGF0ZSAgICAgICAgICAgWzBdICAgICBFWFBMSUNJVCBHZW5lcmFsaXplZFRpbWUgT1BUSU9OQUwsCiAgIHNpbmdsZUV4dGVuc2lvbnMgICAgIFsxXSAgICAgRVhQTElDSVQgRXh0ZW5zaW9ucyBPUFRJT05BTCB9ClJldm9rZWRJbmZvIDo6PSBTRVFVRU5DRSB7CiAgICByZXZvY2F0aW9uVGltZSAgICAgICAgICAgICAgR2VuZXJhbGl6ZWRUaW1lLAogICAgcmV2b2NhdGlvblJlYXNvbiAgICBbMF0gICAgIEVYUExJQ0lUIENSTFJlYXNvbiBPUFRJT05BTCB9ClVua25vd25JbmZvIDo6PSBOVUxMIC0tIHRoaXMgY2FuIGJlIHJlcGxhY2VkIHdpdGggYW4gZW51bWVyYXRpb24KRU5ECg==