UEtJWDEgeyB9CkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6Oj0gIHtqb2ludC1pc28tY2NpdHQoMikgZHMoNSkgMjl9CmlkLWNlLWF1dGhvcml0eUtleUlkZW50aWZpZXIgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDM1IH0KQXV0aG9yaXR5S2V5SWRlbnRpZmllciA6Oj0gU0VRVUVOQ0UgewogICAgICBrZXlJZGVudGlmaWVyICAgICAgICAgICAgIFswXSBLZXlJZGVudGlmaWVyICAgICAgICAgICAgT1BUSU9OQUwsCiAgICAgIGF1dGhvcml0eUNlcnRJc3N1ZXIgICAgICAgWzFdIEdlbmVyYWxOYW1lcyAgICAgICAgICAgICBPUFRJT05BTCwKICAgICAgYXV0aG9yaXR5Q2VydFNlcmlhbE51bWJlciBbMl0gQ2VydGlmaWNhdGVTZXJp9ABOdW1iZXJtYXRpb24gOjo9IFNFUVVFTkNFIHsKICAgICBwb2xpY3lJZGVudGlmaWVyICAgQ2VydFBvbGljeUlkLAogICAgIHBvbGljeVF1YWxpZmllcnMgICBTRVFVRU5DRSBTSVpFICgwLi5NQVgpIE9GCiAgICAgICAgICAgICBQb2xpY3lRdWFsaWZpZXJJbmZvIE9QVElPTkFMIH0KQ2VydFBvbGljeUlkIDo6PSBPQkpFQ1QgSURFTlRJRklFUgpQb2xpY3lRdWFsaWZpZXJJbmZvIDo6PSBTRVFVRU5DRSB7CiAgICAgICBwbyxpY3lRdWFsaWZpZXJJZCAgUG9saWN5UXVhbGlmaWVySWQsCiAgICAgICBxdWFsaWZpZXIgICAgICAgIEFOWSBERUZJTkVEIEJZIHBvbGljeVF1YWxpZmllcklkIH0KUG9saWN5UXVhbGlmaWVySWQgOjo9CiAgICBPQkpFQ1QgSURFTlRJRklFUiAgLS0gKCBpZC1xdC1jcHMgfCBpZC1xdC11bm90aWNlICkKQ1BTdXJpIDo6PSBJQTVTdHJpbmcKVXNlck5vdGljZSA6Oj0gU0VRVUVOQ0UgewogICAgIG5vdGljZVJlZiAgICAgICAgTm90aWNlUmVmZXJlbmNlIE9QVElPTkFMLAogICAgIGV4cGxpY2l0VGV4dGgoOSkAKDkpAGgoMiAgIGxheVRleHQsCiAgICAgbm90aWNlTnVtYmVycyAgICBTRVFVRU5DRSBPRiBJTlRFR0VSIH0KRGlzcGxheVRleHQgOjo9IENIT0lDRSB7CiAgICAgdmlzaWJsZVN0cmluZyAgICBWaXNpYmxlU3RyaW5nICAoU0laRSAoMS4uMjAwKSksCiAgICAgYm1wU3RyaW5nICkA//9oKDQpAGgoOSkAaCg0KQBoKDkpAABoKDkpAABoKDkpACg5KQBoKDIpAP8AaCg5KQAoOSkAaAAoOSg5KSAgICAgICBCTVBTdHJpbmcgICAgICAoU0laRSAoMS4uMjAwKSksCiAgICAgdXRmOFN0cmluZyAgICAgICBVVEY4U3RyaW5nICAgICAoU0laRSAoMS4uMjAwKSkgfQppZC1jZS1wb2xpY3lNYXBwaW5ncyBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMzMgfQpQb2xpY3lNYXBwaW5ncyA6Oj0gU0VRVUVOQ0UgU0laRSAoMS4uTUFYKSBPRiBTRVFVRU5DRSB7CiAgICAgaXNzdWVyRG9tYWluUG9saWN5ICAgICAgQ2VydFBvbGljeUlkLAogICAgIHN1YmplY3REb21haW5Qb2xpY3kgICAgIENlcnRQb2xpY3lJZCB9CkRpcmVjdG9yeVN0cmluZyA6Oj0gQ0hPSUNFIHsKICAgICAgdGVsZXRleFN0cmluZyAgICAgICAgICAgICBUZWxldGV4U3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgcHJpbnRhYmxlU3RyaW5nICAgICAgICAgICBQcmludGFibGVTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICB1bml2ZXJzYWxTdHJpbmcgICAgICAgICAgIFVuaXZlcnNhbFN0cmluZyAoU0laRSAoMS4uTUFYKSksCiAgICAgIHV0ZjhTdHJpbmcgICAgICAgICAgICAgIFVURjhTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICBibXBTdHJpbmcgICAgICAgICAgICAgICBCTVBTdHJpbmcgKFNJWkUoMS4uTUFYKSksCiAgICAgIC0tIElBNVN0cmluZyBpcyBhZGRlZCBoZXJlIHRvIGhhbmRsZSBvbGQgVUkgICAtLSBzbyBpZiBpdCBjYXVzZXMgcHJvYmxlbXMsGGNvbnNpZGVyaW5nIGRyb3BwaW5nIGl0LiAtLQogICAgICBpYTRTdHJpbmcgICAgICAgICAgICAgYCBJQTVTdHJpbmcgKFNJWkUoMS4uTUFYKSkgfQppZC1jZS1zdWJqZWN0QWx0TmFtZSBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMTcgfQpTdWJqZWN0QWx0TmFtZSA6Oj0gR2VuZXJhbE5hbWVzCkdlbmVyYWxOYW1lcyA6Oj0gU0VRVUVOQ0UgU0laRSAoMS4uTUFYKSBPRiBHZW5lcmFsTmFtZSAgICAgdHlwZSAgICAgICAgICAgIEF0dHJpYnV0ZVR5cGUsCiAgICAgICAgdmFsdWXGxsbGxsZzICBTRVQgT0YgQXR0cmlidXRlVmFsdWUKICAgICAgICAgICAgICAgIC0tIGF0IGtlYXN0IG9uZSB2YWx1ZSBpcyByZXF1aXJlZCAtLQp9CkF0dHJpYnV0ZVR5cGUgICAgICAgICAgIDo6PSAgIE9CSkVDVCBJREVOVElGSUVSCkF0dHJpYnV0ZVZhbIua39YgICAgICAgIDo6PSAgIEFOWSBERUZJTkVEIEJZIHR5cGUKQXR0cmlidXRlVHlwZUFuZFZhbHVlICAgICAgICAgICA6Oj0gICAgIFNFUVVFTkNFIHsKICAgICAgICB0eXBlICAgIEF0dHJpYnV0ZVR5cGUsQCAgICAgICAgdmFsdWUgICBBdHRyaWJ1dGVWYWx1ZSB9CmlkLWF0ICAgICAgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0ge2pvaW50LWlzby1jY2l0dCgyKSBkcyg1i3spIDR9CmlkLWF0LWluaXRpYWxzICAgICAgICAgIEF0dHI=