From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6EC3B894D4 for ; Thu, 16 May 2019 12:51:43 +0000 (UTC) Received: by mail-ed1-x542.google.com with SMTP id j12so5103280eds.7 for ; Thu, 16 May 2019 05:51:43 -0700 (PDT) Date: Thu, 16 May 2019 14:51:39 +0200 From: Daniel Vetter Message-ID: <20190516125139.GC3851@phenom.ffwll.local> References: <20190516112755.28311-1-petri.latvala@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190516112755.28311-1-petri.latvala@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t 1/2 v2] runner: Add support for aborting on network failure List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Petri Latvala Cc: igt-dev@lists.freedesktop.org, Tomi Sarvela List-ID: T24gVGh1LCBNYXkgMTYsIDIwMTkgYXQgMDI6Mjc6NTRQTSArMDMwMCwgUGV0cmkgTGF0dmFsYSB3 cm90ZToKPiBJZiB0aGUgbmV0d29yayBnb2VzIGRvd24gd2hpbGUgdGVzdGluZywgQ0kgdGVuZHMg dG8gaW50ZXJwcmV0IHRoYXQgYXMKPiB0aGUgZGV2aWNlIGJlaW5nIGRvd24sIGN1dHRpbmcgaXRz IHBvd2VyIGFmdGVyIGEgd2hpbGUuIFRoaXMgY2F1c2VzIGFuCj4gaW5jb21wbGV0ZSB0byBhbiBp bm5vY2VudCB0ZXN0LCBpbmNyZWFzaW5nIG5vaXNlIGluIHRoZSByZXN1bHRzLgo+IAo+IEEgbmV3 IGZsYWcgdG8gLS1hYm9ydC1vbi1tb25pdG9yZWQtZXJyb3IsICJwaW5nIiwgdXNlcyBsaWJvcGlu ZyB0bwo+IHBpbmcgYSBob3N0IGNvbmZpZ3VyZWQgaW4gLmlndHJjIHdpdGggb25lIHBpbmcgYWZ0 ZXIgZWFjaCB0ZXN0Cj4gZXhlY3V0aW9uIGFuZCBhYm9ydHMgdGhlIHJ1biBpZiB0aGVyZSBpcyBu byByZXBseSBpbiBhIGhhcmRjb2RlZAo+IGFtb3VudCBvZiB0aW1lLgo+IAo+IHYyOgo+ICAtIFVz ZSBhIGhpZ2hlciB0aW1lb3V0Cj4gIC0gQWxsb3cgaG9zdG5hbWUgY29uZmlndXJhdGlvbiBmcm9t IGVudmlyb25tZW50Cj4gCj4gU2lnbmVkLW9mZi1ieTogUGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0 dmFsYUBpbnRlbC5jb20+Cj4gQ2M6IEFya2FkaXVzeiBIaWxlciA8YXJrYWRpdXN6LmhpbGVyQGlu dGVsLmNvbT4KPiBDYzogTWFydGluIFBlcmVzIDxtYXJ0aW4ucGVyZXNAbGludXguaW50ZWwuY29t Pgo+IENjOiBUb21pIFNhcnZlbGEgPHRvbWkucC5zYXJ2ZWxhQGludGVsLmNvbT4KPiAtLS0KPiAg bWVzb24uYnVpbGQgICAgICAgIHwgICAxICsKPiAgbWVzb25fb3B0aW9ucy50eHQgIHwgICA2ICsr Cj4gIHJ1bm5lci9leGVjdXRvci5jICB8IDEzNSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKPiAgcnVubmVyL21lc29uLmJ1aWxkIHwgIDEyICsrKy0KPiAgcnVu bmVyL3NldHRpbmdzLmMgIHwgICA0ICsrCj4gIHJ1bm5lci9zZXR0aW5ncy5oICB8ICAgNSArLQo+ ICA2IGZpbGVzIGNoYW5nZWQsIDE2MCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+IAo+ IGRpZmYgLS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxkCj4gaW5kZXggYTA1ZTkxMmMu LmFhYzY3ZjFhIDEwMDY0NAo+IC0tLSBhL21lc29uLmJ1aWxkCj4gKysrIGIvbWVzb24uYnVpbGQK PiBAQCAtMTAwLDYgKzEwMCw3IEBAIGJ1aWxkX3Rlc3RzID0gZ2V0X29wdGlvbignYnVpbGRfdGVz dHMnKQo+ICB3aXRoX2xpYmRybSA9IGdldF9vcHRpb24oJ3dpdGhfbGliZHJtJykKPiAgd2l0aF9s aWJ1bndpbmQgPSBnZXRfb3B0aW9uKCd3aXRoX2xpYnVud2luZCcpCj4gIGJ1aWxkX3J1bm5lciA9 IGdldF9vcHRpb24oJ2J1aWxkX3J1bm5lcicpCj4gK3dpdGhfb3BpbmcgPSBnZXRfb3B0aW9uKCd3 aXRoX29waW5nJykKPiAgCj4gIF9idWlsZF9vdmVybGF5ID0gYnVpbGRfb3ZlcmxheSAhPSAnZmFs c2UnCj4gIF9vdmVybGF5X3JlcXVpcmVkID0gYnVpbGRfb3ZlcmxheSA9PSAndHJ1ZScKPiBkaWZm IC0tZ2l0IGEvbWVzb25fb3B0aW9ucy50eHQgYi9tZXNvbl9vcHRpb25zLnR4dAo+IGluZGV4IDg4 OGVmZTU2Li45MzVmODgzZSAxMDA2NDQKPiAtLS0gYS9tZXNvbl9vcHRpb25zLnR4dAo+ICsrKyBi L21lc29uX29wdGlvbnMudHh0Cj4gQEAgLTU4LDYgKzU4LDEyIEBAIG9wdGlvbignYnVpbGRfcnVu bmVyJywKPiAgICAgICAgIGNob2ljZXMgOiBbJ2F1dG8nLCAndHJ1ZScsICdmYWxzZSddLAo+ICAg ICAgICAgZGVzY3JpcHRpb24gOiAnQnVpbGQgdGVzdCBydW5uZXInKQo+ICAKPiArb3B0aW9uKCd3 aXRoX29waW5nJywKPiArICAgICAgIHR5cGUgOiAnY29tYm8nLAo+ICsgICAgICAgdmFsdWUgOiAn YXV0bycsCj4gKyAgICAgICBjaG9pY2VzIDogWydhdXRvJywgJ3RydWUnLCAnZmFsc2UnXSwKPiAr ICAgICAgIGRlc2NyaXB0aW9uIDogJ0J1aWxkIGlndF9ydW5uZXIgd2l0aCBsaWJvcGluZycpCj4g Kwo+ICBvcHRpb24oJ3VzZV9ycGF0aCcsCj4gICAgICAgICB0eXBlIDogJ2Jvb2xlYW4nLAo+ICAg ICAgICAgdmFsdWUgOiBmYWxzZSwKPiBkaWZmIC0tZ2l0IGEvcnVubmVyL2V4ZWN1dG9yLmMgYi9y dW5uZXIvZXhlY3V0b3IuYwo+IGluZGV4IDdlNWZiZThmLi5iZTc4NDc0YyAxMDA2NDQKPiAtLS0g YS9ydW5uZXIvZXhlY3V0b3IuYwo+ICsrKyBiL3J1bm5lci9leGVjdXRvci5jCj4gQEAgLTEsNiAr MSwxMCBAQAo+ICAjaW5jbHVkZSA8ZXJybm8uaD4KPiAgI2luY2x1ZGUgPGZjbnRsLmg+Cj4gKyNp bmNsdWRlIDxnbGliLmg+Cj4gICNpbmNsdWRlIDxsaW51eC93YXRjaGRvZy5oPgo+ICsjaWYgSEFW RV9PUElORwo+ICsjaW5jbHVkZSA8b3BpbmcuaD4KPiArI2VuZGlmCj4gICNpbmNsdWRlIDxzaWdu YWwuaD4KPiAgI2luY2x1ZGUgPHN0ZGlvLmg+Cj4gICNpbmNsdWRlIDxzdGRsaWIuaD4KPiBAQCAt MTA4LDYgKzExMiwxMzMgQEAgc3RhdGljIHZvaWQgcGluZ193YXRjaGRvZ3Modm9pZCkKPiAgCX0K PiAgfQo+ICAKPiArI2lmIEhBVkVfT1BJTkcKPiArc3RhdGljIHBpbmdvYmpfdCAqcGluZ29iaiA9 IE5VTEw7Cj4gKwo+ICtzdGF0aWMgYm9vbCBsb2FkX3BpbmdfY29uZmlnX2Zyb21fZmlsZSh2b2lk KQo+ICt7Cj4gKwljaGFyICprZXlfZmlsZV9lbnYgPSBOVUxMOwo+ICsJY2hhciAqa2V5X2ZpbGVf bG9jID0gTlVMTDsKPiArCUdFcnJvciAqZXJyb3IgPSBOVUxMOwo+ICsJR0tleUZpbGUgKmtleV9m aWxlID0gTlVMTDsKPiArCWNvbnN0IGNoYXIgKnBpbmdfaG9zdG5hbWU7Cj4gKwlpbnQgcmV0Owo+ ICsKPiArCS8qIERldGVybWluZSBpZ3QgY29uZmlnIHBhdGggKi8KPiArCWtleV9maWxlX2VudiA9 IGdldGVudigiSUdUX0NPTkZJR19QQVRIIik7Cj4gKwlpZiAoa2V5X2ZpbGVfZW52KSB7Cj4gKwkJ a2V5X2ZpbGVfbG9jID0gc3RyZHVwKGtleV9maWxlX2Vudik7Cj4gKwl9IGVsc2Ugewo+ICsJCWFz cHJpbnRmKCZrZXlfZmlsZV9sb2MsICIlcy8uaWd0cmMiLCBnX2dldF9ob21lX2RpcigpKTsKPiAr CX0KPiArCj4gKwkvKiBMb2FkIGlndCBjb25maWcgZmlsZSAqLwo+ICsJa2V5X2ZpbGUgPSBnX2tl eV9maWxlX25ldygpOwo+ICsJcmV0ID0gZ19rZXlfZmlsZV9sb2FkX2Zyb21fZmlsZShrZXlfZmls ZSwga2V5X2ZpbGVfbG9jLAo+ICsJCQkJCUdfS0VZX0ZJTEVfTk9ORSwgJmVycm9yKTsKPiArCWZy ZWUoa2V5X2ZpbGVfbG9jKTsKPiArCj4gKwlpZiAoIXJldCkgewo+ICsJCWdfZXJyb3JfZnJlZShl cnJvcik7Cj4gKwkJZ19rZXlfZmlsZV9mcmVlKGtleV9maWxlKTsKPiArCQlyZXR1cm4gZmFsc2U7 Cj4gKwl9Cj4gKwo+ICsJZ19jbGVhcl9lcnJvcigmZXJyb3IpOwo+ICsKPiArCXBpbmdfaG9zdG5h bWUgPQo+ICsJCWdfa2V5X2ZpbGVfZ2V0X3N0cmluZyhrZXlfZmlsZSwgIkRVVCIsCj4gKwkJCQkg ICAgICAiUGluZ0hvc3ROYW1lIiwgJmVycm9yKTsKPiArCj4gKwlnX2NsZWFyX2Vycm9yKCZlcnJv cik7Cj4gKwlnX2tleV9maWxlX2ZyZWUoa2V5X2ZpbGUpOwo+ICsKPiArCWlmICghcGluZ19ob3N0 bmFtZSkKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwo+ICsJaWYgKHBpbmdfaG9zdF9hZGQocGluZ29i aiwgcGluZ19ob3N0bmFtZSkpIHsKPiArCQlmcHJpbnRmKHN0ZGVyciwKPiArCQkJImFib3J0IG9u IHBpbmc6IENhbm5vdCB1c2UgaG9zdG5hbWUgZnJvbSBjb25maWcgZmlsZVxuIik7Cj4gKwkJcmV0 dXJuIGZhbHNlOwo+ICsJfQo+ICsKPiArCXJldHVybiB0cnVlOwo+ICt9Cj4gKwo+ICtzdGF0aWMg Ym9vbCBsb2FkX3BpbmdfY29uZmlnX2Zyb21fZW52KHZvaWQpCj4gK3sKPiArCWNvbnN0IGNoYXIg KnBpbmdfaG9zdG5hbWU7Cj4gKwo+ICsJcGluZ19ob3N0bmFtZSA9IGdldGVudigiSUdUX1BJTkdf SE9TVE5BTUUiKTsKPiArCWlmICghcGluZ19ob3N0bmFtZSkKPiArCQlyZXR1cm4gZmFsc2U7Cj4g Kwo+ICsJaWYgKHBpbmdfaG9zdF9hZGQocGluZ29iaiwgcGluZ19ob3N0bmFtZSkpIHsKPiArCQlm cHJpbnRmKHN0ZGVyciwKPiArCQkJImFib3J0IG9uIHBpbmc6IENhbm5vdCB1c2UgaG9zdG5hbWUg ZnJvbSBlbnZpcm9ubWVudFxuIik7Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQo+ICsKPiArCXJl dHVybiB0cnVlOwo+ICt9Cj4gKwo+ICsjZW5kaWYKPiArCj4gK3N0YXRpYyB2b2lkIHBpbmdfY29u ZmlnKHZvaWQpCj4gK3sKPiArI2lmIEhBVkVfT1BJTkcKPiArCWRvdWJsZSB0aW1lb3V0ID0gMjAu MDsgLyogRmFpciBkaWNlIHJvbGwgKi8KPiArCj4gKwlpZiAocGluZ29iaikKPiArCQlyZXR1cm47 Cj4gKwo+ICsJcGluZ29iaiA9IHBpbmdfY29uc3RydWN0KCk7Cj4gKwo+ICsJLyogVHJ5IGVudiBm aXJzdCwgdGhlbiBjb25maWcgZmlsZSAqLwo+ICsJaWYgKCFsb2FkX3BpbmdfY29uZmlnX2Zyb21f ZW52KCkgJiYgIWxvYWRfcGluZ19jb25maWdfZnJvbV9maWxlKCkpIHsKPiArCQlmcHJpbnRmKHN0 ZGVyciwKPiArCQkJImFib3J0IG9uIHBpbmc6IE5vIGhvc3QgdG8gcGluZyBjb25maWd1cmVkXG4i KTsKPiArCQlwaW5nX2Rlc3Ryb3kocGluZ29iaik7Cj4gKwkJcGluZ29iaiA9IE5VTEw7Cj4gKwkJ cmV0dXJuOwo+ICsJfQo+ICsKPiArCXBpbmdfc2V0b3B0KHBpbmdvYmosIFBJTkdfT1BUX1RJTUVP VVQsICZ0aW1lb3V0KTsKPiArI2VuZGlmCj4gK30KPiArCj4gK3N0YXRpYyBjaGFyICpoYW5kbGVf cGluZyh2b2lkKQo+ICt7Cj4gKyNpZiBIQVZFX09QSU5HCj4gKwlpZiAocGluZ29iaikgewo+ICsJ CXBpbmdvYmpfaXRlcl90ICppdGVyOwo+ICsKPiArCQlwaW5nX3NlbmQocGluZ29iaik7CgpJIHRo aW5rIHdlIHNob3VsZCB0cnkgdG8gcGluZyBhIGZldyB0aW1lcywgaW4gY2FzZSBvdXIgcGluZyAo b3IgdGhlIHJlcGx5CmdvdCBsb3N0KS4gTmV0d29ya3MgYXJlbid0IDEwMCUgcmVsaWFibGUsIGV2 ZW4gd2hlbiB0aGV5IHdvcmsuIFRocm93aW5nCm91dCAzIHBpbmdzIG9yIHNvIHNob3VsZCBiZSBn b29kIGVub3VnaCwgbWF5YmUgdHJ5IHRoYXQgdHdpY2UuCgpBcyBsb25nIGFzIHdlIGRpZSBxdWlj a2VyIHRoYW4gamVua2lucyBkZWNsYXJlcyB1cyBkZWFkIHdlIHNob3VsZCBiZSBnb29kCmVub3Vn aC4KCmJ0dywgY291bGQgd2UgYWxzbyBzb21laG93IGNoZWNrIHRoZSBzc2ggY29ubmVjdGlvbiBp dHNlbGYgdGhhdCB3ZSdyZQpydW5uaW5nIHVuZGVyPyBJIHRoaW5rIHRoYXQgd291bGQgbW9yZSBk aXJlY3RseSBtYWtlIHN1cmUgdGhhdCBKZW5raW5zCnN0aWxsIGtub3dzIHdlJ3JlIGRvaW5nIHdl bGwgLi4uCi1EYW5pZWwKCj4gKwo+ICsJCWZvciAoaXRlciA9IHBpbmdfaXRlcmF0b3JfZ2V0KHBp bmdvYmopOwo+ICsJCSAgICAgaXRlciAhPSBOVUxMOwo+ICsJCSAgICAgaXRlciA9IHBpbmdfaXRl cmF0b3JfbmV4dChpdGVyKSkgewo+ICsJCQlkb3VibGUgbGF0ZW5jeTsKPiArCQkJc2l6ZV90IGxl biA9IHNpemVvZihsYXRlbmN5KTsKPiArCj4gKwkJCXBpbmdfaXRlcmF0b3JfZ2V0X2luZm8oaXRl ciwKPiArCQkJCQkgICAgICAgUElOR19JTkZPX0xBVEVOQ1ksCj4gKwkJCQkJICAgICAgICZsYXRl bmN5LAo+ICsJCQkJCSAgICAgICAmbGVuKTsKPiArCQkJaWYgKGxhdGVuY3kgPCAwLjApIHsKPiAr CQkJCWNoYXIgKnJlYXNvbjsKPiArCj4gKwkJCQlhc3ByaW50ZigmcmVhc29uLAo+ICsJCQkJCSAi UGluZyBob3N0IGRpZCBub3QgcmVzcG9uZCB0byBwaW5nLCBuZXR3b3JrIGRvd24iKTsKPiArCQkJ CXJldHVybiByZWFzb247Cj4gKwkJCX0KPiArCQl9Cj4gKwl9Cj4gKyNlbmRpZgo+ICsKPiArCXJl dHVybiBOVUxMOwo+ICt9Cj4gKwo+ICBzdGF0aWMgY2hhciAqaGFuZGxlX2xvY2tkZXAodm9pZCkK PiAgewo+ICAJY29uc3QgY2hhciAqaGVhZGVyID0gIkxvY2tkZXAgbm90IGFjdGl2ZVxuXG4vcHJv Yy9sb2NrZGVwX3N0YXRzIGNvbnRlbnRzOlxuIjsKPiBAQCAtMTk3LDYgKzMyOCw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3Qgewo+ICB9IGFib3J0X2hhbmRsZXJzW10gPSB7Cj4gIAl7IEFCT1JUX0xP Q0tERVAsIGhhbmRsZV9sb2NrZGVwIH0sCj4gIAl7IEFCT1JUX1RBSU5ULCBoYW5kbGVfdGFpbnQg fSwKPiArCXsgQUJPUlRfUElORywgaGFuZGxlX3BpbmcgfSwKPiAgCXsgMCwgMCB9LAo+ICB9Owo+ ICAKPiBAQCAtMTI4OCw2ICsxNDIwLDkgQEAgYm9vbCBleGVjdXRlKHN0cnVjdCBleGVjdXRlX3N0 YXRlICpzdGF0ZSwKPiAgCj4gIAlpbml0X3dhdGNoZG9ncyhzZXR0aW5ncyk7Cj4gIAo+ICsJaWYg KHNldHRpbmdzLT5hYm9ydF9tYXNrICYgQUJPUlRfUElORykKPiArCQlwaW5nX2NvbmZpZygpOwo+ ICsKPiAgCWlmICghdW5hbWUoJnVuYW1lYnVmKSkgewo+ICAJCWRwcmludGYodW5hbWVmZCwgIiVz ICVzICVzICVzICVzXG4iLAo+ICAJCQl1bmFtZWJ1Zi5zeXNuYW1lLAo+IGRpZmYgLS1naXQgYS9y dW5uZXIvbWVzb24uYnVpbGQgYi9ydW5uZXIvbWVzb24uYnVpbGQKPiBpbmRleCBiNjU4ZjFkMi4u YTU0YWFhYjQgMTAwNjQ0Cj4gLS0tIGEvcnVubmVyL21lc29uLmJ1aWxkCj4gKysrIGIvcnVubmVy L21lc29uLmJ1aWxkCj4gQEAgLTEsNCArMSwxMyBAQAo+ICBqc29uYyA9IGRlcGVuZGVuY3koJ2pz b24tYycsIHJlcXVpcmVkOiBfcnVubmVyX3JlcXVpcmVkKQo+ICtydW5uZXJfZGVwcyA9IFtqc29u YywgZ2xpYl0KPiAraGF2ZV9vcGluZyA9IFtdCj4gK2lmIHdpdGhfb3BpbmcgIT0gJ2ZhbHNlJwo+ ICsJb3BpbmcgPSBkZXBlbmRlbmN5KCdsaWJvcGluZycsIHJlcXVpcmVkOiB3aXRoX29waW5nID09 ICd0cnVlJykKPiArCWlmIG9waW5nLmZvdW5kKCkKPiArCQlydW5uZXJfZGVwcyArPSBvcGluZwo+ ICsJCWhhdmVfb3BpbmcgPSAnLURIQVZFX09QSU5HPTEnCj4gKwllbmRpZgo+ICtlbmRpZgo+ICAK PiAgcnVubmVybGliX3NvdXJjZXMgPSBbICdzZXR0aW5ncy5jJywKPiAgCQkgICAgICAnam9iX2xp c3QuYycsCj4gQEAgLTIxLDcgKzMwLDggQEAgaWYgX2J1aWxkX3J1bm5lciBhbmQgX2J1aWxkX3Rl c3RzIGFuZCBqc29uYy5mb3VuZCgpCj4gIAo+ICAJcnVubmVybGliID0gc3RhdGljX2xpYnJhcnko J2lndF9ydW5uZXInLCBydW5uZXJsaWJfc291cmNlcywKPiAgCQkJCSAgIGluY2x1ZGVfZGlyZWN0 b3JpZXMgOiBpbmMsCj4gLQkJCQkgICBkZXBlbmRlbmNpZXMgOiBbanNvbmMsIGdsaWJdKQo+ICsJ CQkJICAgY19hcmdzIDogaGF2ZV9vcGluZywKPiArCQkJCSAgIGRlcGVuZGVuY2llcyA6IHJ1bm5l cl9kZXBzKQo+ICAKPiAgCXJ1bm5lciA9IGV4ZWN1dGFibGUoJ2lndF9ydW5uZXInLCBydW5uZXJf c291cmNlcywKPiAgCQkJICAgIGxpbmtfd2l0aCA6IHJ1bm5lcmxpYiwKPiBkaWZmIC0tZ2l0IGEv cnVubmVyL3NldHRpbmdzLmMgYi9ydW5uZXIvc2V0dGluZ3MuYwo+IGluZGV4IGFkMzhhZThkLi5i NTdkMWE2YSAxMDA2NDQKPiAtLS0gYS9ydW5uZXIvc2V0dGluZ3MuYwo+ICsrKyBiL3J1bm5lci9z ZXR0aW5ncy5jCj4gQEAgLTQ4LDYgKzQ4LDcgQEAgc3RhdGljIHN0cnVjdCB7Cj4gIH0gYWJvcnRf Y29uZGl0aW9uc1tdID0gewo+ICAJeyBBQk9SVF9UQUlOVCwgInRhaW50IiB9LAo+ICAJeyBBQk9S VF9MT0NLREVQLCAibG9ja2RlcCIgfSwKPiArCXsgQUJPUlRfUElORywgInBpbmciIH0sCj4gIAl7 IEFCT1JUX0FMTCwgImFsbCIgfSwKPiAgCXsgMCwgMCB9LAo+ICB9Owo+IEBAIC0xMzYsNiArMTM3 LDkgQEAgc3RhdGljIGNvbnN0IGNoYXIgKnVzYWdlX3N0ciA9Cj4gIAkiICAgICAgICAgICAgICAg ICAgICAgICAgUG9zc2libGUgY29uZGl0aW9uczpcbiIKPiAgCSIgICAgICAgICAgICAgICAgICAg ICAgICAgbG9ja2RlcCAtIGFib3J0IHdoZW4ga2VybmVsIGxvY2tkZXAgaGFzIGJlZW4gYW5nZXJl ZC5cbiIKPiAgCSIgICAgICAgICAgICAgICAgICAgICAgICAgdGFpbnQgICAtIGFib3J0IHdoZW4g a2VybmVsIGJlY29tZXMgZmF0YWxseSB0YWludGVkLlxuIgo+ICsJIiAgICAgICAgICAgICAgICAg ICAgICAgICBwaW5nICAgIC0gYWJvcnQgd2hlbiBhIGhvc3QgY29uZmlndXJlZCBpbiAuaWd0cmMg b3JcbiIKPiArCSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50 IHZhcmlhYmxlIElHVF9QSU5HX0hPU1ROQU1FIGRvZXNcbiIKPiArCSIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG5vdCByZXNwb25kIHRvIHBpbmcuXG4iCj4gIAkiICAgICAgICAg ICAgICAgICAgICAgICAgIGFsbCAgICAgLSBhYm9ydCBmb3IgYWxsIG9mIHRoZSBhYm92ZS5cbiIK PiAgCSIgIC1zLCAtLXN5bmMgICAgICAgICAgICBTeW5jIHJlc3VsdHMgdG8gZGlzayBhZnRlciBl dmVyeSB0ZXN0XG4iCj4gIAkiICAtbCB7cXVpZXQsdmVyYm9zZSxkdW1teX0sIC0tbG9nLWxldmVs IHtxdWlldCx2ZXJib3NlLGR1bW15fVxuIgo+IGRpZmYgLS1naXQgYS9ydW5uZXIvc2V0dGluZ3Mu aCBiL3J1bm5lci9zZXR0aW5ncy5oCj4gaW5kZXggMGExZWUwOGQuLjJiNmU2NWQwIDEwMDY0NAo+ IC0tLSBhL3J1bm5lci9zZXR0aW5ncy5oCj4gKysrIGIvcnVubmVyL3NldHRpbmdzLmgKPiBAQCAt MTUsOSArMTUsMTAgQEAgZW51bSB7Cj4gIAo+ICAjZGVmaW5lIEFCT1JUX1RBSU5UICAgKDEgPDwg MCkKPiAgI2RlZmluZSBBQk9SVF9MT0NLREVQICgxIDw8IDEpCj4gLSNkZWZpbmUgQUJPUlRfQUxM ICAgICAoQUJPUlRfVEFJTlQgfCBBQk9SVF9MT0NLREVQKQo+ICsjZGVmaW5lIEFCT1JUX1BJTkcg ICAgKDEgPDwgMikKPiArI2RlZmluZSBBQk9SVF9BTEwgICAgIChBQk9SVF9UQUlOVCB8IEFCT1JU X0xPQ0tERVAgfCBBQk9SVF9QSU5HKQo+ICAKPiAtX1N0YXRpY19hc3NlcnQoQUJPUlRfQUxMID09 IChBQk9SVF9UQUlOVCB8IEFCT1JUX0xPQ0tERVApLCAiQUJPUlRfQUxMIG11c3QgYmUgYWxsIGNv bmRpdGlvbnMgYml0d2lzZSBvcidkIik7Cj4gK19TdGF0aWNfYXNzZXJ0KEFCT1JUX0FMTCA9PSAo QUJPUlRfVEFJTlQgfCBBQk9SVF9MT0NLREVQIHwgQUJPUlRfUElORyksICJBQk9SVF9BTEwgbXVz dCBiZSBhbGwgY29uZGl0aW9ucyBiaXR3aXNlIG9yJ2QiKTsKPiAgCj4gIHN0cnVjdCByZWdleF9s aXN0IHsKPiAgCWNoYXIgKipyZWdleF9zdHJpbmdzOwo+IC0tIAo+IDIuMTkuMQo+IAo+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gaWd0LWRldiBtYWls aW5nIGxpc3QKPiBpZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgoKLS0gCkRhbmllbCBWZXR0 ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xs LmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1k ZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==