From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 568206E61B for ; Thu, 8 Nov 2018 12:39:38 +0000 (UTC) Date: Thu, 8 Nov 2018 14:39:34 +0200 From: Petri Latvala Message-ID: <20181108123934.GW17124@platvala-desk.ger.corp.intel.com> References: <20181106142629.30952-1-petri.latvala@intel.com> <154152318209.6179.6277336909912048204@skylake-alporthouse-com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <154152318209.6179.6277336909912048204@skylake-alporthouse-com> Subject: Re: [igt-dev] [PATCH i-g-t v4 1/1] runner: Implement --abort-on-monitored-error 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: Chris Wilson Cc: igt-dev@lists.freedesktop.org, Tomi Sarvela , Martin Peres List-ID: T24gVHVlLCBOb3YgMDYsIDIwMTggYXQgMDQ6NTM6MDJQTSArMDAwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IFF1b3RpbmcgUGV0cmkgTGF0dmFsYSAoMjAxOC0xMS0wNiAxNDoyNjoyOSkKPiA+IERl dmlhdGluZyBhIGJpdCBmcm9tIHRoZSBwaWdsaXQgY29tbWFuZCBsaW5lIGZsYWcsIGlndF9ydW5u ZXIgdGFrZXMgYW4KPiA+IG9wdGlvbmFsIGNvbW1hLXNlcGFyYXRlZCBsaXN0IGFzIGFuIGFyZ3Vt ZW50IHRvCj4gPiAtLWFib3J0LW9uLW1vbml0b3JlZC1lcnJvciBmb3IgdGhlIGxpc3Qgb2YgY29u ZGl0aW9ucyB0byBhYm9ydAo+ID4gb24uIFdpdGhvdXQgYSBsaXN0IGFsbCBwb3NzaWJsZSBjb25k aXRpb25zIHdpbGwgYmUgY2hlY2tlZC4KPiA+IAo+ID4gVHdvIGNvbmRpdGlvbnMgaW1wbGVtZW50 ZWQ6Cj4gPiAgLSAidGFpbnQiIGNoZWNrcyB0aGUga2VybmVsIHRhaW50IGxldmVsIGZvciBUQUlO VF9QQUdFLCBUQUlOVF9ESUUgYW5kCj4gPiAgVEFJTlRfT09QUwo+ID4gIC0gImxvY2tkZXAiIGNo ZWNrcyB0aGUga2VybmVsIGxvY2tkZXAgc3RhdHVzCj4gPiAKPiA+IENoZWNraW5nIGlzIGRvbmUg YWZ0ZXIgZXZlcnkgdGVzdCBiaW5hcnkgZXhlY3V0aW9uLCBhbmQgaWYgYW4gYWJvcnQKPiA+IGNv bmRpdGlvbiBpcyBtZXQsIHRoZSByZWFzb24gaXMgcHJpbnRlZCB0byBzdGRlcnIgKHVubGVzcyBs b2cgbGV2ZWwgaXMKPiA+IHF1aWV0KSBhbmQgdGhlIHJ1bm5lciBkb2Vzbid0IGV4ZWN1dGUgYW55 IGZ1cnRoZXIgdGVzdHMuIEFib3J0aW5nCj4gPiBiZXR3ZWVuIHN1YnRlc3RzICh3aGVuIHJ1bm5p bmcgaW4gLS1tdWx0aXBsZS1tb2RlKSBpcyBub3QgZG9uZS4KPiA+IAo+ID4gQSBUT0RPIGl0ZW0g Zm9yIHRoZSBmdXR1cmUgaXMgaGF2aW5nIGFib3J0aW5nIGFwcGVhciBpbiB0aGUgdGVzdAo+ID4g cmVzdWx0cy4KPiA+IAo+ID4gdjI6Cj4gPiAgLSBSZW1lbWJlciB0byBmY2xvc2UKPiA+ICAtIFRh aW50cyBhcmUgdW5zaWduZWQgbG9uZyAoQ2hyaXMpCj4gPiAgLSBVc2UgZ2V0bGluZSBpbnN0ZWFk IG9mIGZnZXRzIChDaHJpcykKPiA+IHYzOgo+ID4gIC0gRml4IGJyYWluZmFydCB3aXRoIGxvY2tk ZXAKPiA+IHY0Ogo+ID4gIC0gUmViYXNlCj4gPiAgLSBSZWZhY3RvciB0aGUgYWJvcnQgY29uZGl0 aW9uIGNoZWNraW5nIHRvIHBhc3MgZG93biBzdHJpbmdzCj4gPiAgLSBQcmVzZW50IHRoZSBhYm9y dCByZXN1bHQgaW4gcmVzdWx0cy5qc29uIGFzIGEgcHNldWRvIHRlc3QgcmVzdWx0Cj4gPiAgLSBV bml0IHRlc3RzIGZvciB0aGUgcHNldWRvIHJlc3VsdAo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBQ ZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4KPiA+IENjOiBBcmthZGl1c3og SGlsZXIgPGFya2FkaXVzei5oaWxlckBpbnRlbC5jb20+Cj4gPiBDYzogVG9taSBTYXJ2ZWxhIDx0 b21pLnAuc2FydmVsYUBpbnRlbC5jb20+Cj4gPiBDYzogTWFydGluIFBlcmVzIDxtYXJ0aW4ucGVy ZXNAbGludXguaW50ZWwuY29tPgo+ID4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJA ZmZ3bGwuY2g+Cj4gPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ Cj4gPiAtLS0KPiA+ICBydW5uZXIvZXhlY3V0b3IuYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAxODkgKysrKysrKysrKysrKysrKy0tCj4gPiAgcnVubmVyL2V4ZWN1dG9yLmggICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKPiA+ICAuLi4vYWJvcnRlZC1hZnRlci1hLXRl c3QvMC9kbWVzZy50eHQgICAgICAgICAgfCAgIDUgKwo+ID4gIC4uLi9hYm9ydGVkLWFmdGVyLWEt dGVzdC8wL2Vyci50eHQgICAgICAgICAgICB8ICAgMiArCj4gPiAgLi4uL2Fib3J0ZWQtYWZ0ZXIt YS10ZXN0LzAvam91cm5hbC50eHQgICAgICAgIHwgICAyICsKPiA+ICAuLi4vYWJvcnRlZC1hZnRl ci1hLXRlc3QvMC9vdXQudHh0ICAgICAgICAgICAgfCAgIDMgKwo+ID4gIC4uLi9hYm9ydGVkLWFm dGVyLWEtdGVzdC9SRUFETUUudHh0ICAgICAgICAgICB8ICAgMSArCj4gPiAgLi4uL2Fib3J0ZWQt YWZ0ZXItYS10ZXN0L2Fib3J0ZWQudHh0ICAgICAgICAgIHwgICAzICsKPiA+ICAuLi4vYWJvcnRl ZC1hZnRlci1hLXRlc3QvZW5kdGltZS50eHQgICAgICAgICAgfCAgIDEgKwo+ID4gIC4uLi9hYm9y dGVkLWFmdGVyLWEtdGVzdC9qb2JsaXN0LnR4dCAgICAgICAgICB8ICAgNSArCj4gPiAgLi4uL2Fi b3J0ZWQtYWZ0ZXItYS10ZXN0L21ldGFkYXRhLnR4dCAgICAgICAgIHwgIDEyICsrCj4gPiAgLi4u L2Fib3J0ZWQtYWZ0ZXItYS10ZXN0L3JlZmVyZW5jZS5qc29uICAgICAgIHwgIDkwICsrKysrKysr Kwo+ID4gIC4uLi9hYm9ydGVkLWFmdGVyLWEtdGVzdC9zdGFydHRpbWUudHh0ICAgICAgICB8ICAg MSArCj4gPiAgLi4uL2Fib3J0ZWQtYWZ0ZXItYS10ZXN0L3VuYW1lLnR4dCAgICAgICAgICAgIHwg ICAxICsKPiA+ICAuLi4vYWJvcnRlZC1vbi1ib290L1JFQURNRS50eHQgICAgICAgICAgICAgICAg fCAgIDEgKwo+ID4gIC4uLi9hYm9ydGVkLW9uLWJvb3QvYWJvcnRlZC50eHQgICAgICAgICAgICAg ICB8ICAgMyArCj4gPiAgLi4uL2Fib3J0ZWQtb24tYm9vdC9lbmR0aW1lLnR4dCAgICAgICAgICAg ICAgIHwgICAxICsKPiA+ICAuLi4vYWJvcnRlZC1vbi1ib290L2pvYmxpc3QudHh0ICAgICAgICAg ICAgICAgfCAgIDUgKwo+ID4gIC4uLi9hYm9ydGVkLW9uLWJvb3QvbWV0YWRhdGEudHh0ICAgICAg ICAgICAgICB8ICAxMiArKwo+ID4gIC4uLi9hYm9ydGVkLW9uLWJvb3QvcmVmZXJlbmNlLmpzb24g ICAgICAgICAgICB8ICA1OSArKysrKysKPiA+ICAuLi4vYWJvcnRlZC1vbi1ib290L3N0YXJ0dGlt ZS50eHQgICAgICAgICAgICAgfCAgIDEgKwo+ID4gIC4uLi9qc29uX3Rlc3RzX2RhdGEvYWJvcnRl ZC1vbi1ib290L3VuYW1lLnR4dCB8ICAgMSArCj4gPiAgLi4uL2RtZXNnLXJlc3VsdHMvbWV0YWRh dGEudHh0ICAgICAgICAgICAgICAgIHwgICAyICstCj4gPiAgLi4uL21ldGFkYXRhLnR4dCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCj4gPiAgLi4uL2pzb25fdGVzdHNfZGF0 YS9ub3JtYWwtcnVuL21ldGFkYXRhLnR4dCAgIHwgICAyICstCj4gPiAgLi4uL3BpZ2xpdC1zdHls ZS1kbWVzZy9tZXRhZGF0YS50eHQgICAgICAgICAgIHwgICAyICstCj4gPiAgLi4uL3dhcm5pbmdz LXdpdGgtZG1lc2ctd2FybnMvbWV0YWRhdGEudHh0ICAgIHwgICAyICstCj4gPiAgcnVubmVyL2pz b25fdGVzdHNfZGF0YS93YXJuaW5ncy9tZXRhZGF0YS50eHQgIHwgICAyICstCj4gPiAgcnVubmVy L3Jlc3VsdGdlbi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ4ICsrKystCj4gPiAg cnVubmVyL3J1bm5lcl9qc29uX3Rlc3RzLmMgICAgICAgICAgICAgICAgICAgIHwgICAyICsKPiA+ ICBydW5uZXIvcnVubmVyX3Rlc3RzLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDkgKysr Ky0KPiA+ICBydW5uZXIvc2V0dGluZ3MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg NzkgKysrKysrKy0KPiA+ICBydW5uZXIvc2V0dGluZ3MuaCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDggKy0KPiA+ICAzMyBmaWxlcyBjaGFuZ2VkLCA1NTYgaW5zZXJ0aW9ucygrKSwg NDEgZGVsZXRpb25zKC0pCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHJ1bm5lci9qc29uX3Rlc3Rz X2RhdGEvYWJvcnRlZC1hZnRlci1hLXRlc3QvMC9kbWVzZy50eHQKPiA+ICBjcmVhdGUgbW9kZSAx MDA2NDQgcnVubmVyL2pzb25fdGVzdHNfZGF0YS9hYm9ydGVkLWFmdGVyLWEtdGVzdC8wL2Vyci50 eHQKPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgcnVubmVyL2pzb25fdGVzdHNfZGF0YS9hYm9ydGVk LWFmdGVyLWEtdGVzdC8wL2pvdXJuYWwudHh0Cj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHJ1bm5l ci9qc29uX3Rlc3RzX2RhdGEvYWJvcnRlZC1hZnRlci1hLXRlc3QvMC9vdXQudHh0Cj4gPiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IHJ1bm5lci9qc29uX3Rlc3RzX2RhdGEvYWJvcnRlZC1hZnRlci1hLXRl c3QvUkVBRE1FLnR4dAo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBydW5uZXIvanNvbl90ZXN0c19k YXRhL2Fib3J0ZWQtYWZ0ZXItYS10ZXN0L2Fib3J0ZWQudHh0Cj4gPiAgY3JlYXRlIG1vZGUgMTAw NjQ0IHJ1bm5lci9qc29uX3Rlc3RzX2RhdGEvYWJvcnRlZC1hZnRlci1hLXRlc3QvZW5kdGltZS50 eHQKPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgcnVubmVyL2pzb25fdGVzdHNfZGF0YS9hYm9ydGVk LWFmdGVyLWEtdGVzdC9qb2JsaXN0LnR4dAo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBydW5uZXIv anNvbl90ZXN0c19kYXRhL2Fib3J0ZWQtYWZ0ZXItYS10ZXN0L21ldGFkYXRhLnR4dAo+ID4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBydW5uZXIvanNvbl90ZXN0c19kYXRhL2Fib3J0ZWQtYWZ0ZXItYS10 ZXN0L3JlZmVyZW5jZS5qc29uCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHJ1bm5lci9qc29uX3Rl c3RzX2RhdGEvYWJvcnRlZC1hZnRlci1hLXRlc3Qvc3RhcnR0aW1lLnR4dAo+ID4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBydW5uZXIvanNvbl90ZXN0c19kYXRhL2Fib3J0ZWQtYWZ0ZXItYS10ZXN0L3Vu YW1lLnR4dAo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBydW5uZXIvanNvbl90ZXN0c19kYXRhL2Fi b3J0ZWQtb24tYm9vdC9SRUFETUUudHh0Cj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHJ1bm5lci9q c29uX3Rlc3RzX2RhdGEvYWJvcnRlZC1vbi1ib290L2Fib3J0ZWQudHh0Cj4gPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IHJ1bm5lci9qc29uX3Rlc3RzX2RhdGEvYWJvcnRlZC1vbi1ib290L2VuZHRpbWUu dHh0Cj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHJ1bm5lci9qc29uX3Rlc3RzX2RhdGEvYWJvcnRl ZC1vbi1ib290L2pvYmxpc3QudHh0Cj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHJ1bm5lci9qc29u X3Rlc3RzX2RhdGEvYWJvcnRlZC1vbi1ib290L21ldGFkYXRhLnR4dAo+ID4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBydW5uZXIvanNvbl90ZXN0c19kYXRhL2Fib3J0ZWQtb24tYm9vdC9yZWZlcmVuY2Uu anNvbgo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBydW5uZXIvanNvbl90ZXN0c19kYXRhL2Fib3J0 ZWQtb24tYm9vdC9zdGFydHRpbWUudHh0Cj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHJ1bm5lci9q c29uX3Rlc3RzX2RhdGEvYWJvcnRlZC1vbi1ib290L3VuYW1lLnR4dAo+ID4gCj4gPiBkaWZmIC0t Z2l0IGEvcnVubmVyL2V4ZWN1dG9yLmMgYi9ydW5uZXIvZXhlY3V0b3IuYwo+ID4gaW5kZXggMDA3 YjcyY2UuLmVkNDQ0YTlhIDEwMDY0NAo+ID4gLS0tIGEvcnVubmVyL2V4ZWN1dG9yLmMKPiA+ICsr KyBiL3J1bm5lci9leGVjdXRvci5jCj4gPiBAQCAtMTA4LDYgKzEwOCw5MCBAQCBzdGF0aWMgdm9p ZCBwaW5nX3dhdGNoZG9ncyh2b2lkKQo+ID4gICAgICAgICB9Cj4gPiAgfQo+ID4gIAo+ID4gK3N0 YXRpYyBjaGFyICpoYW5kbGVfbG9ja2RlcCh2b2lkKQo+ID4gK3sKPiA+ICsgICAgICAgRklMRSAq ZiA9IGZvcGVuKCIvcHJvYy9sb2NrZGVwX3N0YXRzIiwgInIiKTsKPiA+ICsgICAgICAgY29uc3Qg Y2hhciAqZGVidWdfbG9ja3NfbGluZSA9ICIgZGVidWdfbG9ja3M6IjsKPiA+ICsgICAgICAgY2hh ciAqYnVmID0gTlVMTDsKPiA+ICsgICAgICAgc2l6ZV90IGJ1ZnNpemUgPSAwOwo+ID4gKyAgICAg ICBpbnQgdmFsOwo+ID4gKyAgICAgICBjaGFyICpyZWFzb24gPSBOVUxMOwo+ID4gKwo+ID4gKyAg ICAgICBpZiAoIWYpCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIHJlYXNvbjsKPiA+ICsKPiA+ ICsgICAgICAgd2hpbGUgKGdldGxpbmUoJmJ1ZiwgJmJ1ZnNpemUsIGYpID4gMCkgewo+ID4gKyAg ICAgICAgICAgICAgIGlmICghc3RybmNtcChidWYsIGRlYnVnX2xvY2tzX2xpbmUsIHN0cmxlbihk ZWJ1Z19sb2Nrc19saW5lKSkpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKnAg PSBidWYgKyBzdHJsZW4oZGVidWdfbG9ja3NfbGluZSk7Cj4gPiArICAgICAgICAgICAgICAgICAg ICAgICBpZiAoc3NjYW5mKHAsICIlZCIsICZ2YWwpID09IDEgJiYKPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICB2YWwgIT0gMSkKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNwcmludGYoJnJlYXNvbiwgIkxvY2tkZXAgdHJpZ2dlcmVkXG4iKTsKPiA+ICsKPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ID4gKyAgICAgICAgICAgICAgIH0KPiA+ICsg ICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICBmY2xvc2UoZik7Cj4gPiArICAgICAgIGZyZWUoYnVm KTsKPiA+ICsgICAgICAgcmV0dXJuIHJlYXNvbjsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGNo YXIgKmhhbmRsZV90YWludCh2b2lkKQo+ID4gK3sKPiA+ICsgICAgICAgRklMRSAqZiA9IGZvcGVu KCIvcHJvYy9zeXMva2VybmVsL3RhaW50ZWQiLCAiciIpOwo+ID4gKyAgICAgICBpbnQgczsKPiA+ ICsgICAgICAgdW5zaWduZWQgbG9uZyB0YWludDsKPiA+ICsgICAgICAgdW5zaWduZWQgbG9uZyBi YWRfdGFpbnRzID0KPiA+ICsgICAgICAgICAgICAgICAweDIwICB8IC8qIFRBSU5UX1BBR0UgKi8K PiA+ICsgICAgICAgICAgICAgICAweDgwICB8IC8qIFRBSU5UX0RJRSAqLwo+ID4gKyAgICAgICAg ICAgICAgIDB4MjAwOyAvKiBUQUlOVF9PT1BTICovCj4gCj4gUGxlYXNlIGJlIGNvbnNpZGVyYXRl IHRvIHRoZSByZWFkZXIuCj4gPiArCj4gPiArICAgICAgIGlmICghZikKPiA+ICsgICAgICAgICAg ICAgICByZXR1cm4gTlVMTDsKPiA+ICsKPiA+ICsgICAgICAgcyA9IGZzY2FuZihmLCAiJWx1Iiwg JnRhaW50KTsKPiA+ICsgICAgICAgZmNsb3NlKGYpOwo+ID4gKwo+ID4gKyAgICAgICBpZiAocyAh PSAxKQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwo+ID4gKwo+ID4gKyAgICAgICBp ZiAodGFpbnQgJiBiYWRfdGFpbnRzKSB7Cj4gPiArICAgICAgICAgICAgICAgY2hhciAqcmVhc29u Owo+ID4gKwo+ID4gKyAgICAgICAgICAgICAgIGFzcHJpbnRmKCZyZWFzb24sICJLZXJuZWwgdGFp bnRlZCAoMHglbHgpXG4iLCB0YWludCk7Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgcmV0dXJu IHJlYXNvbjsKPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICByZXR1cm4gTlVMTDsKPiAK PiBjb25zdCB1bnNpZ25lZCBsb25nIGJhZF90YWludHMgPQo+IAkweDIwICB8IC8qIFRBSU5UX1BB R0UgKi8KPiAJMHg4MCAgfCAvKiBUQUlOVF9ESUUgKi8KPiAJMHgyMDA7IC8qIFRBSU5UX09PUFMg Ki8KPiB1bnNpZ25lZCBsb25nIHRhaW50cyA9IDA7Cj4gY2hhciAqcmVhc29uID0gTlVMTDsKPiBG SUxFICpmOwo+IAo+IGYgPSBmb3BlbigpOwo+IGlmIChmKSB7Cj4gCWZzY2FuZihmLCAiJWx1Iiwg JnRhaW50cyk7Cj4gCWZjbG9zZShmKTsKPiB9Cj4gCj4gaWYgKHRhaW50cyAmIGJhZF90YWludHMp Cj4gCWFzcHJpbnRmKCZyZWFzb24sCj4gCQkgIktlcm5lbCB0YWludGVkICglI2x4IC0tICVseClc biIsCj4gCQkgdGFpbnRzLCB0YWludHMgJiBiYWRfdGFpbnRzKTsKPiAKPiByZXR1cm4gcmVhc29u Owo+IAo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgc3RydWN0IHsKPiAKPiBzdGF0aWMgY29uc3Qg c3RydWN0IHsKPiAKPiA+ICsgICAgICAgaW50IGNvbmRpdGlvbjsKPiA+ICsgICAgICAgY2hhciAq KCpoYW5kbGVyKSh2b2lkKTsKPiA+ICt9IGFib3J0X2hhbmRsZXJzW10gPSB7Cj4gPiArICAgICAg IHsgQUJPUlRfTE9DS0RFUCwgaGFuZGxlX2xvY2tkZXAgfSwKPiA+ICsgICAgICAgeyBBQk9SVF9U QUlOVCwgaGFuZGxlX3RhaW50IH0sCj4gPiArICAgICAgIHsgMCwgMCB9LAo+ID4gK307Cj4gPiAr Cj4gPiArc3RhdGljIGNoYXIgKm5lZWRfdG9fYWJvcnQoc3RydWN0IHNldHRpbmdzKiBzZXR0aW5n cykKPiAKPiBjb25zdCBzdHJ1Y3Qgc2V0dGluZ3MgKnNldHRpbmdzCj4gCj4gPiArewo+ID4gKyAg ICAgICB0eXBlb2YoKmFib3J0X2hhbmRsZXJzKSAqaXQ7Cj4gPiArICAgICAgIGNoYXIgKnJldCA9 IE5VTEw7Cj4gPiArCj4gPiArICAgICAgIGZvciAoaXQgPSBhYm9ydF9oYW5kbGVyczsgaXQtPmNv bmRpdGlvbjsgaXQrKykgewo+ID4gKyAgICAgICAgICAgICAgIGlmIChzZXR0aW5ncy0+YWJvcnRf bWFzayAmIGl0LT5jb25kaXRpb24gJiYKPiA+ICsgICAgICAgICAgICAgICAgICAgKHJldCA9IGl0 LT5oYW5kbGVyKCkpICE9IE5VTEwpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChz ZXR0aW5ncy0+bG9nX2xldmVsID49IExPR19MRVZFTF9OT1JNQUwpCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCByZXQpOwo+ID4gKyAgICAg ICAgICAgICAgIH0KPiA+ICsgICAgICAgICAgICAgICBicmVhazsKPiAKPiBicmVhaz8gbG9va3Mg aW5jb25ncnVvdXMuCgoKSSBkb24ndCBrbm93IGhvdyB0aGF0IHNsaXBwZWQgdGhlcmUsIGl0IHdh cyBzdXBwb3NlZCB0byBiZSBpbiB0aGUgaWYuLi4KCgotLSAKUGV0cmkgTGF0dmFsYQpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcg bGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK