From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 03B946E4D7 for ; Fri, 2 Nov 2018 12:24:05 +0000 (UTC) References: <20181102120848.28899-1-petri.latvala@intel.com> From: Martin Peres Message-ID: <397b4b44-c303-fcee-2e06-32c6ac9f6864@linux.intel.com> Date: Fri, 2 Nov 2018 14:24:01 +0200 MIME-Version: 1.0 In-Reply-To: <20181102120848.28899-1-petri.latvala@intel.com> Content-Language: en-GB Subject: Re: [igt-dev] [PATCH i-g-t 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: Petri Latvala , igt-dev@lists.freedesktop.org Cc: Tomi Sarvela List-ID: T24gMDIvMTEvMjAxOCAxNDowOCwgUGV0cmkgTGF0dmFsYSB3cm90ZToKPiBEZXZpYXRpbmcgYSBi aXQgZnJvbSB0aGUgcGlnbGl0IGNvbW1hbmQgbGluZSBmbGFnLCBpZ3RfcnVubmVyIHRha2VzIGFu Cj4gb3B0aW9uYWwgY29tbWEtc2VwYXJhdGVkIGxpc3QgYXMgYW4gYXJndW1lbnQgdG8KPiAtLWFi b3J0LW9uLW1vbml0b3JlZC1lcnJvciBmb3IgdGhlIGxpc3Qgb2YgY29uZGl0aW9ucyB0byBhYm9y dAo+IG9uLiBXaXRob3V0IGEgbGlzdCBhbGwgcG9zc2libGUgY29uZGl0aW9ucyB3aWxsIGJlIGNo ZWNrZWQuCj4gCj4gVHdvIGNvbmRpdGlvbnMgaW1wbGVtZW50ZWQ6Cj4gIC0gInRhaW50IiBjaGVj a3MgdGhlIGtlcm5lbCB0YWludCBsZXZlbCBmb3IgVEFJTlRfUEFHRSwgVEFJTlRfRElFIGFuZAo+ ICBUQUlOVF9PT1BTCj4gIC0gImxvY2tkZXAiIGNoZWNrcyB0aGUga2VybmVsIGxvY2tkZXAgc3Rh dHVzCj4gCj4gQ2hlY2tpbmcgaXMgZG9uZSBhZnRlciBldmVyeSB0ZXN0IGJpbmFyeSBleGVjdXRp b24sIGFuZCBpZiBhbiBhYm9ydAo+IGNvbmRpdGlvbiBpcyBtZXQsIHRoZSByZWFzb24gaXMgcHJp bnRlZCB0byBzdGRlcnIgKHVubGVzcyBsb2cgbGV2ZWwgaXMKPiBxdWlldCkgYW5kIHRoZSBydW5u ZXIgZG9lc24ndCBleGVjdXRlIGFueSBmdXJ0aGVyIHRlc3RzLiBBYm9ydGluZwo+IGJldHdlZW4g c3VidGVzdHMgKHdoZW4gcnVubmluZyBpbiAtLW11bHRpcGxlLW1vZGUpIGlzIG5vdCBkb25lLgo+ IAo+IEEgVE9ETyBpdGVtIGZvciB0aGUgZnV0dXJlIGlzIGhhdmluZyBhYm9ydGluZyBhcHBlYXIg aW4gdGhlIHRlc3QKPiByZXN1bHRzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFBldHJpIExhdHZhbGEg PHBldHJpLmxhdHZhbGFAaW50ZWwuY29tPgo+IENjOiBBcmthZGl1c3ogSGlsZXIgPGFya2FkaXVz ei5oaWxlckBpbnRlbC5jb20+Cj4gQ2M6IFRvbWkgU2FydmVsYSA8dG9taS5wLnNhcnZlbGFAaW50 ZWwuY29tPgo+IENjOiBNYXJ0aW4gUGVyZXMgPG1hcnRpbi5wZXJlc0BsaW51eC5pbnRlbC5jb20+ Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CgogICAgICAgIFxv LwpPaCB5ZWFoICB8ICAhCiAgICAgICAgLyBcCgpBY2tlZC1ieTogTWFydGluIFBlcmVzIDxtYXJ0 aW4ucGVyZXNAbGludXguaW50ZWwuY29tPgoKPiAtLS0KPiAKPiBJdCBzaG91bGQgYmUgbm90ZWQg dGhhdCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgYWN0aXZlIGluIENJLCBmb3IgaXQKPiBnaXZlcyAt LWFib3J0LW9uLW1vbml0b3JlZC1lcnJvciB3aXRob3V0IGEgbGlzdCB0byBpZ3RfcnVubmVyIGFs cmVhZHkuCj4gCj4gCj4gIHJ1bm5lci9leGVjdXRvci5jICAgICB8IDkyICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0KPiAgcnVubmVyL3J1bm5lcl90ZXN0cy5jIHwg NDkgKysrKysrKysrKysrKysrKysrKystLS0KPiAgcnVubmVyL3NldHRpbmdzLmMgICAgIHwgNzUg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KPiAgcnVubmVyL3NldHRpbmdzLmgg ICAgIHwgIDggKysrLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDIwNiBpbnNlcnRpb25zKCspLCAxOCBk ZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvcnVubmVyL2V4ZWN1dG9yLmMgYi9ydW5uZXIv ZXhlY3V0b3IuYwo+IGluZGV4IGZjNzlmNzcyLi45OGMzMWYzNiAxMDA2NDQKPiAtLS0gYS9ydW5u ZXIvZXhlY3V0b3IuYwo+ICsrKyBiL3J1bm5lci9leGVjdXRvci5jCj4gQEAgLTEwOCw2ICsxMDgs NzkgQEAgc3RhdGljIHZvaWQgcGluZ193YXRjaGRvZ3Modm9pZCkKPiAgCX0KPiAgfQo+ICAKPiAr c3RhdGljIGJvb2wgaGFuZGxlX2xvY2tkZXAoc3RydWN0IHNldHRpbmdzICpzZXR0aW5ncykKPiAr ewo+ICsJRklMRSAqZiA9IGZvcGVuKCIvcHJvYy9sb2NrZGVwX3N0YXRzIiwgInIiKTsKPiArCWNv bnN0IGNoYXIgKmRlYnVnX2xvY2tzX2xpbmUgPSAiIGRlYnVnX2xvY2tzOiI7Cj4gKwljaGFyIGJ1 Zls1MTJdOwo+ICsJaW50IHZhbDsKPiArCj4gKwlpZiAoIWYpCj4gKwkJcmV0dXJuIGZhbHNlOwo+ ICsKPiArCXdoaWxlIChmZ2V0cyhidWYsIHNpemVvZihidWYpLCBmKSAhPSBOVUxMKSB7Cj4gKwkJ aWYgKCFzdHJuY21wKGJ1ZiwgZGVidWdfbG9ja3NfbGluZSwgc3RybGVuKGRlYnVnX2xvY2tzX2xp bmUpKSkgewo+ICsJCQljaGFyICpwID0gYnVmICsgc3RybGVuKGRlYnVnX2xvY2tzX2xpbmUpOwo+ ICsJCQlpZiAoc3NjYW5mKHAsICIlZCIsICZ2YWwpID09IDEgJiYKPiArCQkJICAgIHZhbCAhPSAw KSB7Cj4gKwkJCQlpZiAoc2V0dGluZ3MtPmxvZ19sZXZlbCA+PSBMT0dfTEVWRUxfTk9STUFMKSB7 Cj4gKwkJCQkJZnByaW50ZihzdGRlcnIsICJMb2NrZGVwIHRyaWdnZXJlZCwgYWJvcnRpbmdcbiIp Owo+ICsJCQkJfQo+ICsJCQkJcmV0dXJuIHRydWU7Cj4gKwkJCX0KPiArCj4gKwkJCWJyZWFrOwo+ ICsJCX0KPiArCX0KPiArCj4gKwlyZXR1cm4gZmFsc2U7Cj4gK30KPiArCj4gK3N0YXRpYyBib29s IGhhbmRsZV90YWludChzdHJ1Y3Qgc2V0dGluZ3MgKnNldHRpbmdzKQo+ICt7Cj4gKwlGSUxFICpm ID0gZm9wZW4oIi9wcm9jL3N5cy9rZXJuZWwvdGFpbnRlZCIsICJyIik7Cj4gKwlpbnQgdGFpbnQ7 Cj4gKwlpbnQgYmFkX3RhaW50cyA9Cj4gKwkJMHgyMCAgfCAvKiBUQUlOVF9QQUdFICovCj4gKwkJ MHg4MCAgfCAvKiBUQUlOVF9ESUUgKi8KPiArCQkweDIwMDsgLyogVEFJTlRfT09QUyAqLwo+ICsK PiArCWlmICghZiB8fCBmc2NhbmYoZiwgIiVkIiwgJnRhaW50KSAhPSAxKQo+ICsJCXJldHVybiBm YWxzZTsKPiArCj4gKwlpZiAodGFpbnQgJiBiYWRfdGFpbnRzKSB7Cj4gKwkJaWYgKHNldHRpbmdz LT5sb2dfbGV2ZWwgPj0gTE9HX0xFVkVMX05PUk1BTCkgewo+ICsJCQlmcHJpbnRmKHN0ZGVyciwg Iktlcm5lbCB0YWludGVkICgweCV4KSwgYWJvcnRpbmdcbiIsIHRhaW50KTsKPiArCQl9Cj4gKwo+ ICsJCXJldHVybiB0cnVlOwo+ICsJfQo+ICsKPiArCXJldHVybiBmYWxzZTsKPiArfQo+ICsKPiAr c3RhdGljIHN0cnVjdCB7Cj4gKwlpbnQgY29uZGl0aW9uOwo+ICsJYm9vbCAoKmhhbmRsZXIpKHN0 cnVjdCBzZXR0aW5ncyopOwo+ICt9IGFib3J0X2hhbmRsZXJzW10gPSB7Cj4gKwl7IEFCT1JUX0xP Q0tERVAsIGhhbmRsZV9sb2NrZGVwIH0sCj4gKwl7IEFCT1JUX1RBSU5ULCBoYW5kbGVfdGFpbnQg fSwKPiArCXsgMCwgMCB9LAo+ICt9Owo+ICsKPiArc3RhdGljIGJvb2wgbmVlZF90b19hYm9ydChz dHJ1Y3Qgc2V0dGluZ3MqIHNldHRpbmdzKQo+ICt7Cj4gKwl0eXBlb2YoKmFib3J0X2hhbmRsZXJz KSAqaXQ7Cj4gKwo+ICsJZm9yIChpdCA9IGFib3J0X2hhbmRsZXJzOyBpdC0+Y29uZGl0aW9uOyBp dCsrKSB7Cj4gKwkJaWYgKHNldHRpbmdzLT5hYm9ydF9tYXNrICYgaXQtPmNvbmRpdGlvbiAmJgo+ ICsJCSAgICBpdC0+aGFuZGxlcihzZXR0aW5ncykpCj4gKwkJCXJldHVybiB0cnVlOwo+ICsJfQo+ ICsKPiArCXJldHVybiBmYWxzZTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgcHJ1bmVfc3VidGVz dChzdHJ1Y3Qgam9iX2xpc3RfZW50cnkgKmVudHJ5LCBjaGFyICpzdWJ0ZXN0KQo+ICB7Cj4gIAlj aGFyICpleGNsOwo+IEBAIC0xMTAyLDEyICsxMTc1LDE5IEBAIGJvb2wgZXhlY3V0ZShzdHJ1Y3Qg ZXhlY3V0ZV9zdGF0ZSAqc3RhdGUsCj4gIAo+ICAJZm9yICg7IHN0YXRlLT5uZXh0IDwgam9iX2xp c3QtPnNpemU7Cj4gIAkgICAgIHN0YXRlLT5uZXh0KyspIHsKPiAtCQlpbnQgcmVzdWx0ID0gZXhl Y3V0ZV9uZXh0X2VudHJ5KHN0YXRlLAo+IC0JCQkJCQlqb2JfbGlzdC0+c2l6ZSwKPiAtCQkJCQkJ JnRpbWVfc3BlbnQsCj4gLQkJCQkJCXNldHRpbmdzLAo+IC0JCQkJCQkmam9iX2xpc3QtPmVudHJp ZXNbc3RhdGUtPm5leHRdLAo+IC0JCQkJCQl0ZXN0ZGlyZmQsIHJlc2RpcmZkKTsKPiArCQlpbnQg cmVzdWx0Owo+ICsKPiArCQlpZiAobmVlZF90b19hYm9ydChzZXR0aW5ncykpIHsKPiArCQkJc3Rh dHVzID0gZmFsc2U7Cj4gKwkJCWJyZWFrOwo+ICsJCX0KPiArCj4gKwkJcmVzdWx0ID0gZXhlY3V0 ZV9uZXh0X2VudHJ5KHN0YXRlLAo+ICsJCQkJCSAgICBqb2JfbGlzdC0+c2l6ZSwKPiArCQkJCQkg ICAgJnRpbWVfc3BlbnQsCj4gKwkJCQkJICAgIHNldHRpbmdzLAo+ICsJCQkJCSAgICAmam9iX2xp c3QtPmVudHJpZXNbc3RhdGUtPm5leHRdLAo+ICsJCQkJCSAgICB0ZXN0ZGlyZmQsIHJlc2RpcmZk KTsKPiAgCj4gIAkJaWYgKHJlc3VsdCA8IDApIHsKPiAgCQkJc3RhdHVzID0gZmFsc2U7Cj4gZGlm ZiAtLWdpdCBhL3J1bm5lci9ydW5uZXJfdGVzdHMuYyBiL3J1bm5lci9ydW5uZXJfdGVzdHMuYwo+ IGluZGV4IDljMGY5ZWIwLi44MjljNjBjMyAxMDA2NDQKPiAtLS0gYS9ydW5uZXIvcnVubmVyX3Rl c3RzLmMKPiArKysgYi9ydW5uZXIvcnVubmVyX3Rlc3RzLmMKPiBAQCAtMTQyLDcgKzE0Miw3IEBA IHN0YXRpYyB2b2lkIGFzc2VydF9zZXR0aW5nc19lcXVhbChzdHJ1Y3Qgc2V0dGluZ3MgKm9uZSwg c3RydWN0IHNldHRpbmdzICp0d28pCj4gIAkgKiBSZWdleCBsaXN0cyBhcmUgbm90IHNlcmlhbGl6 ZWQsIGFuZCB0aHVzIHdvbid0IGJlIGNvbXBhcmVkCj4gIAkgKiBoZXJlLgo+ICAJICovCj4gLQlp Z3RfYXNzZXJ0X2VxKG9uZS0+YWJvcnRfb25fZXJyb3IsIHR3by0+YWJvcnRfb25fZXJyb3IpOwo+ ICsJaWd0X2Fzc2VydF9lcShvbmUtPmFib3J0X21hc2ssIHR3by0+YWJvcnRfbWFzayk7Cj4gIAlp Z3RfYXNzZXJ0X2Vxc3RyKG9uZS0+dGVzdF9saXN0LCB0d28tPnRlc3RfbGlzdCk7Cj4gIAlpZ3Rf YXNzZXJ0X2Vxc3RyKG9uZS0+bmFtZSwgdHdvLT5uYW1lKTsKPiAgCWlndF9hc3NlcnRfZXEob25l LT5kcnlfcnVuLCB0d28tPmRyeV9ydW4pOwo+IEBAIC0yMDgsNyArMjA4LDcgQEAgaWd0X21haW4K PiAgCj4gIAkJaWd0X2Fzc2VydChwYXJzZV9vcHRpb25zKEFSUkFZX1NJWkUoYXJndiksIGFyZ3Ys ICZzZXR0aW5ncykpOwo+ICAKPiAtCQlpZ3RfYXNzZXJ0KCFzZXR0aW5ncy5hYm9ydF9vbl9lcnJv cik7Cj4gKwkJaWd0X2Fzc2VydF9lcShzZXR0aW5ncy5hYm9ydF9tYXNrLCAwKTsKPiAgCQlpZ3Rf YXNzZXJ0KCFzZXR0aW5ncy50ZXN0X2xpc3QpOwo+ICAJCWlndF9hc3NlcnRfZXFzdHIoc2V0dGlu Z3MubmFtZSwgInBhdGgtdG8tcmVzdWx0cyIpOwo+ICAJCWlndF9hc3NlcnQoIXNldHRpbmdzLmRy eV9ydW4pOwo+IEBAIC0zMjMsNyArMzIzLDcgQEAgaWd0X21haW4KPiAgCQlzZXRlbnYoIklHVF9U RVNUX1JPT1QiLCB0ZXN0ZGF0YWRpciwgMSk7Cj4gIAkJaWd0X2Fzc2VydChwYXJzZV9vcHRpb25z KEFSUkFZX1NJWkUoYXJndiksIGFyZ3YsICZzZXR0aW5ncykpOwo+ICAKPiAtCQlpZ3RfYXNzZXJ0 KCFzZXR0aW5ncy5hYm9ydF9vbl9lcnJvcik7Cj4gKwkJaWd0X2Fzc2VydF9lcShzZXR0aW5ncy5h Ym9ydF9tYXNrLCAwKTsKPiAgCQlpZ3RfYXNzZXJ0KCFzZXR0aW5ncy50ZXN0X2xpc3QpOwo+ICAJ CWlndF9hc3NlcnRfZXFzdHIoc2V0dGluZ3MubmFtZSwgInBhdGgtdG8tcmVzdWx0cyIpOwo+ICAJ CWlndF9hc3NlcnQoIXNldHRpbmdzLmRyeV9ydW4pOwo+IEBAIC0zNDgsNyArMzQ4LDcgQEAgaWd0 X21haW4KPiAgCWlndF9zdWJ0ZXN0KCJwYXJzZS1hbGwtc2V0dGluZ3MiKSB7Cj4gIAkJY2hhciAq YXJndltdID0geyAicnVubmVyIiwKPiAgCQkJCSAiLW4iLCAiZm9vIiwKPiAtCQkJCSAiLS1hYm9y dC1vbi1tb25pdG9yZWQtZXJyb3IiLAo+ICsJCQkJICItLWFib3J0LW9uLW1vbml0b3JlZC1lcnJv cj10YWludCxsb2NrZGVwIiwKPiAgCQkJCSAiLS10ZXN0LWxpc3QiLCAicGF0aC10by10ZXN0LWxp c3QiLAo+ICAJCQkJICItLWlnbm9yZS1taXNzaW5nIiwKPiAgCQkJCSAiLS1kcnktcnVuIiwKPiBA QCAtMzcwLDcgKzM3MCw3IEBAIGlndF9tYWluCj4gIAo+ICAJCWlndF9hc3NlcnQocGFyc2Vfb3B0 aW9ucyhBUlJBWV9TSVpFKGFyZ3YpLCBhcmd2LCAmc2V0dGluZ3MpKTsKPiAgCj4gLQkJaWd0X2Fz c2VydChzZXR0aW5ncy5hYm9ydF9vbl9lcnJvcik7Cj4gKwkJaWd0X2Fzc2VydF9lcShzZXR0aW5n cy5hYm9ydF9tYXNrLCBBQk9SVF9UQUlOVCB8IEFCT1JUX0xPQ0tERVApOwo+ICAJCWlndF9hc3Nl cnQoc3Ryc3RyKHNldHRpbmdzLnRlc3RfbGlzdCwgInBhdGgtdG8tdGVzdC1saXN0IikgIT0gTlVM TCk7Cj4gIAkJaWd0X2Fzc2VydF9lcXN0cihzZXR0aW5ncy5uYW1lLCAiZm9vIik7Cj4gIAkJaWd0 X2Fzc2VydChzZXR0aW5ncy5kcnlfcnVuKTsKPiBAQCAtNDI4LDYgKzQyOCw0NSBAQCBpZ3RfbWFp bgo+ICAJCWlndF9hc3NlcnRfZXEoc2V0dGluZ3MubG9nX2xldmVsLCBMT0dfTEVWRUxfVkVSQk9T RSk7Cj4gIAl9Cj4gIAo+ICsJaWd0X3N1YnRlc3QoImFib3J0LWNvbmRpdGlvbnMiKSB7Cj4gKwkJ Y2hhciAqYXJndltdID0geyAicnVubmVyIiwKPiArCQkJCSAiLS1hYm9ydC1vbi1tb25pdG9yZWQt ZXJyb3I9dGFpbnQiLAo+ICsJCQkJICJ0ZXN0LXJvb3QtZGlyIiwKPiArCQkJCSAicmVzdWx0cy1w YXRoIiwKPiArCQl9Owo+ICsKPiArCQlpZ3RfYXNzZXJ0KHBhcnNlX29wdGlvbnMoQVJSQVlfU0la RShhcmd2KSwgYXJndiwgJnNldHRpbmdzKSk7Cj4gKwkJaWd0X2Fzc2VydF9lcShzZXR0aW5ncy5h Ym9ydF9tYXNrLCBBQk9SVF9UQUlOVCk7Cj4gKwo+ICsJCWFyZ3ZbMV0gPSAiLS1hYm9ydC1vbi1t b25pdG9yZWQtZXJyb3I9bG9ja2RlcCI7Cj4gKwkJaWd0X2Fzc2VydChwYXJzZV9vcHRpb25zKEFS UkFZX1NJWkUoYXJndiksIGFyZ3YsICZzZXR0aW5ncykpOwo+ICsJCWlndF9hc3NlcnRfZXEoc2V0 dGluZ3MuYWJvcnRfbWFzaywgQUJPUlRfTE9DS0RFUCk7Cj4gKwo+ICsJCWFyZ3ZbMV0gPSAiLS1h Ym9ydC1vbi1tb25pdG9yZWQtZXJyb3I9dGFpbnQiOwo+ICsJCWlndF9hc3NlcnQocGFyc2Vfb3B0 aW9ucyhBUlJBWV9TSVpFKGFyZ3YpLCBhcmd2LCAmc2V0dGluZ3MpKTsKPiArCQlpZ3RfYXNzZXJ0 X2VxKHNldHRpbmdzLmFib3J0X21hc2ssIEFCT1JUX1RBSU5UKTsKPiArCj4gKwkJYXJndlsxXSA9 ICItLWFib3J0LW9uLW1vbml0b3JlZC1lcnJvcj1sb2NrZGVwLHRhaW50IjsKPiArCQlpZ3RfYXNz ZXJ0KHBhcnNlX29wdGlvbnMoQVJSQVlfU0laRShhcmd2KSwgYXJndiwgJnNldHRpbmdzKSk7Cj4g KwkJaWd0X2Fzc2VydF9lcShzZXR0aW5ncy5hYm9ydF9tYXNrLCBBQk9SVF9UQUlOVCB8IEFCT1JU X0xPQ0tERVApOwo+ICsKPiArCQlhcmd2WzFdID0gIi0tYWJvcnQtb24tbW9uaXRvcmVkLWVycm9y PXRhaW50LGxvY2tkZXAiOwo+ICsJCWlndF9hc3NlcnQocGFyc2Vfb3B0aW9ucyhBUlJBWV9TSVpF KGFyZ3YpLCBhcmd2LCAmc2V0dGluZ3MpKTsKPiArCQlpZ3RfYXNzZXJ0X2VxKHNldHRpbmdzLmFi b3J0X21hc2ssIEFCT1JUX1RBSU5UIHwgQUJPUlRfTE9DS0RFUCk7Cj4gKwo+ICsJCWFyZ3ZbMV0g PSAiLS1hYm9ydC1vbi1tb25pdG9yZWQtZXJyb3I9YWxsIjsKPiArCQlpZ3RfYXNzZXJ0KHBhcnNl X29wdGlvbnMoQVJSQVlfU0laRShhcmd2KSwgYXJndiwgJnNldHRpbmdzKSk7Cj4gKwkJaWd0X2Fz c2VydF9lcShzZXR0aW5ncy5hYm9ydF9tYXNrLCBBQk9SVF9BTEwpOwo+ICsKPiArCQlhcmd2WzFd ID0gIi0tYWJvcnQtb24tbW9uaXRvcmVkLWVycm9yPSI7Cj4gKwkJaWd0X2Fzc2VydChwYXJzZV9v cHRpb25zKEFSUkFZX1NJWkUoYXJndiksIGFyZ3YsICZzZXR0aW5ncykpOwo+ICsJCWlndF9hc3Nl cnRfZXEoc2V0dGluZ3MuYWJvcnRfbWFzaywgMCk7Cj4gKwo+ICsJCWFyZ3ZbMV0gPSAiLS1hYm9y dC1vbi1tb25pdG9yZWQtZXJyb3I9ZG9lc25vdGV4aXN0IjsKPiArCQlpZ3RfYXNzZXJ0KCFwYXJz ZV9vcHRpb25zKEFSUkFZX1NJWkUoYXJndiksIGFyZ3YsICZzZXR0aW5ncykpOwo+ICsKPiArCX0K PiArCj4gIAlpZ3Rfc3VidGVzdCgicGFyc2UtY2xlYXJzLW9sZC1kYXRhIikgewo+ICAJCWNoYXIg KmFyZ3ZbXSA9IHsgInJ1bm5lciIsCj4gIAkJCQkgIi1uIiwgImZvbyIsCj4gZGlmZiAtLWdpdCBh L3J1bm5lci9zZXR0aW5ncy5jIGIvcnVubmVyL3NldHRpbmdzLmMKPiBpbmRleCBlMjQwMTQ1NS4u ZTA1NjQ5M2EgMTAwNjQ0Cj4gLS0tIGEvcnVubmVyL3NldHRpbmdzLmMKPiArKysgYi9ydW5uZXIv c2V0dGluZ3MuYwo+IEBAIC00MSw2ICs0MSwxNiBAQCBzdGF0aWMgc3RydWN0IHsKPiAgCXsgMCwg MCB9LAo+ICB9Owo+ICAKPiArc3RhdGljIHN0cnVjdCB7Cj4gKwlpbnQgdmFsdWU7Cj4gKwljb25z dCBjaGFyICpuYW1lOwo+ICt9IGFib3J0X2NvbmRpdGlvbnNbXSA9IHsKPiArCXsgQUJPUlRfVEFJ TlQsICJ0YWludCIgfSwKPiArCXsgQUJPUlRfTE9DS0RFUCwgImxvY2tkZXAiIH0sCj4gKwl7IEFC T1JUX0FMTCwgImFsbCIgfSwKPiArCXsgMCwgMCB9LAo+ICt9Owo+ICsKPiAgc3RhdGljIGJvb2wg c2V0X2xvZ19sZXZlbChzdHJ1Y3Qgc2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBjaGFyICpsZXZl bCkKPiAgewo+ICAJdHlwZW9mKCpsb2dfbGV2ZWxzKSAqaXQ7Cj4gQEAgLTU1LDYgKzY1LDUyIEBA IHN0YXRpYyBib29sIHNldF9sb2dfbGV2ZWwoc3RydWN0IHNldHRpbmdzKiBzZXR0aW5ncywgY29u c3QgY2hhciAqbGV2ZWwpCj4gIAlyZXR1cm4gZmFsc2U7Cj4gIH0KPiAgCj4gK3N0YXRpYyBib29s IHNldF9hYm9ydF9jb25kaXRpb24oc3RydWN0IHNldHRpbmdzKiBzZXR0aW5ncywgY29uc3QgY2hh ciAqY29uZCkKPiArewo+ICsJdHlwZW9mKCphYm9ydF9jb25kaXRpb25zKSAqaXQ7Cj4gKwo+ICsJ aWYgKCFjb25kKSB7Cj4gKwkJc2V0dGluZ3MtPmFib3J0X21hc2sgPSBBQk9SVF9BTEw7Cj4gKwkJ cmV0dXJuIHRydWU7Cj4gKwl9Cj4gKwo+ICsJaWYgKHN0cmxlbihjb25kKSA9PSAwKSB7Cj4gKwkJ c2V0dGluZ3MtPmFib3J0X21hc2sgPSAwOwo+ICsJCXJldHVybiB0cnVlOwo+ICsJfQo+ICsKPiAr CWZvciAoaXQgPSBhYm9ydF9jb25kaXRpb25zOyBpdC0+bmFtZTsgaXQrKykgewo+ICsJCWlmICgh c3RyY21wKGNvbmQsIGl0LT5uYW1lKSkgewo+ICsJCQlzZXR0aW5ncy0+YWJvcnRfbWFzayB8PSBp dC0+dmFsdWU7Cj4gKwkJCXJldHVybiB0cnVlOwo+ICsJCX0KPiArCX0KPiArCj4gKwlyZXR1cm4g ZmFsc2U7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sIHBhcnNlX2Fib3J0X2NvbmRpdGlvbnMoc3Ry dWN0IHNldHRpbmdzICpzZXR0aW5ncywgY29uc3QgY2hhciAqb3B0YXJnKQo+ICt7Cj4gKwljaGFy ICpkdXAsICpwOwo+ICsJaWYgKCFvcHRhcmcpCj4gKwkJcmV0dXJuIHNldF9hYm9ydF9jb25kaXRp b24oc2V0dGluZ3MsIE5VTEwpOwo+ICsKPiArCWR1cCA9IHN0cmR1cChvcHRhcmcpOwo+ICsJd2hp bGUgKGR1cCkgewo+ICsJCWlmICgocCA9IHN0cmNocihkdXAsICcsJykpICE9IE5VTEwpIHsKPiAr CQkJKnAgPSAnXDAnOwo+ICsJCQlwKys7Cj4gKwkJfQo+ICsKPiArCQlpZiAoIXNldF9hYm9ydF9j b25kaXRpb24oc2V0dGluZ3MsIGR1cCkpCj4gKwkJCXJldHVybiBmYWxzZTsKPiArCj4gKwkJZHVw ID0gcDsKPiArCX0KPiArCj4gKwlyZXR1cm4gdHJ1ZTsKPiArfQo+ICsKPiAgc3RhdGljIGNvbnN0 IGNoYXIgKnVzYWdlX3N0ciA9Cj4gIAkidXNhZ2U6IHJ1bm5lciBbb3B0aW9uc10gW3Rlc3Rfcm9v dF0gcmVzdWx0cy1wYXRoXG5cbiIKPiAgCSJPcHRpb25zOlxuIgo+IEBAIC02Nyw5ICsxMjMsMTUg QEAgc3RhdGljIGNvbnN0IGNoYXIgKnVzYWdlX3N0ciA9Cj4gIAkiICAgICAgICAgICAgICAgICAg ICAgICAgUnVuIG9ubHkgbWF0Y2hpbmcgdGVzdHMgKGNhbiBiZSB1c2VkIG1vcmUgdGhhbiBvbmNl KVxuIgo+ICAJIiAgLXggPHJlZ2V4PiwgLS1leGNsdWRlLXRlc3RzIDxyZWdleD5cbiIKPiAgCSIg ICAgICAgICAgICAgICAgICAgICAgICBFeGNsdWRlIG1hdGNoaW5nIHRlc3RzIChjYW4gYmUgdXNl ZCBtb3JlIHRoYW4gb25jZSlcbiIKPiAtCSIgIC0tYWJvcnQtb24tbW9uaXRvcmVkLWVycm9yXG4i Cj4gKwkiICAtLWFib3J0LW9uLW1vbml0b3JlZC1lcnJvcls9bGlzdF1cbiIKPiAgCSIgICAgICAg ICAgICAgICAgICAgICAgICBBYm9ydCBleGVjdXRpb24gd2hlbiBhIGZhdGFsIGNvbmRpdGlvbiBp cyBkZXRlY3RlZC5cbiIKPiAtCSIgICAgICAgICAgICAgICAgICAgICAgICA8VE9ETz5cbiIKPiAr CSIgICAgICAgICAgICAgICAgICAgICAgICBBIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGNvbmRp dGlvbnMgdG8gY2hlY2sgY2FuIGJlXG4iCj4gKwkiICAgICAgICAgICAgICAgICAgICAgICAgZ2l2 ZW4uIElmIG5vdCBnaXZlbiwgYWxsIGNvbmRpdGlvbnMgYXJlIGNoZWNrZWQuIEFuXG4iCj4gKwki ICAgICAgICAgICAgICAgICAgICAgICAgZW1wdHkgc3RyaW5nIGFzIGEgY29uZGl0aW9uIGRpc2Fi bGVzIGFib3J0aW5nXG4iCj4gKwkiICAgICAgICAgICAgICAgICAgICAgICAgUG9zc2libGUgY29u ZGl0aW9uczpcbiIKPiArCSIgICAgICAgICAgICAgICAgICAgICAgICAgbG9ja2RlcCAtIGFib3J0 IHdoZW4ga2VybmVsIGxvY2tkZXAgaGFzIGJlZW4gYW5nZXJlZC5cbiIKPiArCSIgICAgICAgICAg ICAgICAgICAgICAgICAgdGFpbnQgICAtIGFib3J0IHdoZW4ga2VybmVsIGJlY29tZXMgZmF0YWxs eSB0YWludGVkLlxuIgo+ICsJIiAgICAgICAgICAgICAgICAgICAgICAgICBhbGwgICAgIC0gYWJv cnQgZm9yIGFsbCBvZiB0aGUgYWJvdmUuXG4iCj4gIAkiICAtcywgLS1zeW5jICAgICAgICAgICAg U3luYyByZXN1bHRzIHRvIGRpc2sgYWZ0ZXIgZXZlcnkgdGVzdFxuIgo+ICAJIiAgLWwge3F1aWV0 LHZlcmJvc2UsZHVtbXl9LCAtLWxvZy1sZXZlbCB7cXVpZXQsdmVyYm9zZSxkdW1teX1cbiIKPiAg CSIgICAgICAgICAgICAgICAgICAgICAgICBTZXQgdGhlIGxvZ2dlciB2ZXJib3NpdHkgbGV2ZWxc biIKPiBAQCAtMTkzLDcgKzI1NSw3IEBAIGJvb2wgcGFyc2Vfb3B0aW9ucyhpbnQgYXJnYywgY2hh ciAqKmFyZ3YsCj4gIAkJeyJkcnktcnVuIiwgbm9fYXJndW1lbnQsIE5VTEwsIE9QVF9EUllfUlVO fSwKPiAgCQl7ImluY2x1ZGUtdGVzdHMiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgT1BUX0lO Q0xVREV9LAo+ICAJCXsiZXhjbHVkZS10ZXN0cyIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCBP UFRfRVhDTFVERX0sCj4gLQkJeyJhYm9ydC1vbi1tb25pdG9yZWQtZXJyb3IiLCBub19hcmd1bWVu dCwgTlVMTCwgT1BUX0FCT1JUX09OX0VSUk9SfSwKPiArCQl7ImFib3J0LW9uLW1vbml0b3JlZC1l cnJvciIsIG9wdGlvbmFsX2FyZ3VtZW50LCBOVUxMLCBPUFRfQUJPUlRfT05fRVJST1J9LAo+ICAJ CXsic3luYyIsIG5vX2FyZ3VtZW50LCBOVUxMLCBPUFRfU1lOQ30sCj4gIAkJeyJsb2ctbGV2ZWwi LCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgT1BUX0xPR19MRVZFTH0sCj4gIAkJeyJ0ZXN0LWxp c3QiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgT1BUX1RFU1RfTElTVH0sCj4gQEAgLTIzMSw3 ICsyOTMsOCBAQCBib29sIHBhcnNlX29wdGlvbnMoaW50IGFyZ2MsIGNoYXIgKiphcmd2LAo+ICAJ CQkJZ290byBlcnJvcjsKPiAgCQkJYnJlYWs7Cj4gIAkJY2FzZSBPUFRfQUJPUlRfT05fRVJST1I6 Cj4gLQkJCXNldHRpbmdzLT5hYm9ydF9vbl9lcnJvciA9IHRydWU7Cj4gKwkJCWlmICghcGFyc2Vf YWJvcnRfY29uZGl0aW9ucyhzZXR0aW5ncywgb3B0YXJnKSkKPiArCQkJCWdvdG8gZXJyb3I7Cj4g IAkJCWJyZWFrOwo+ICAJCWNhc2UgT1BUX1NZTkM6Cj4gIAkJCXNldHRpbmdzLT5zeW5jID0gdHJ1 ZTsKPiBAQCAtNDQ0LDcgKzUwNyw3IEBAIGJvb2wgc2VyaWFsaXplX3NldHRpbmdzKHN0cnVjdCBz ZXR0aW5ncyAqc2V0dGluZ3MpCj4gIAkJcmV0dXJuIGZhbHNlOwo+ICAJfQo+ICAKPiAtCVNFUklB TElaRV9MSU5FKGYsIHNldHRpbmdzLCBhYm9ydF9vbl9lcnJvciwgIiVkIik7Cj4gKwlTRVJJQUxJ WkVfTElORShmLCBzZXR0aW5ncywgYWJvcnRfbWFzaywgIiVkIik7Cj4gIAlpZiAoc2V0dGluZ3Mt PnRlc3RfbGlzdCkKPiAgCQlTRVJJQUxJWkVfTElORShmLCBzZXR0aW5ncywgdGVzdF9saXN0LCAi JXMiKTsKPiAgCWlmIChzZXR0aW5ncy0+bmFtZSkKPiBAQCAtNTAxLDcgKzU2NCw3IEBAIGJvb2wg cmVhZF9zZXR0aW5ncyhzdHJ1Y3Qgc2V0dGluZ3MgKnNldHRpbmdzLCBpbnQgZGlyZmQpCj4gIAo+ ICAJd2hpbGUgKGZzY2FuZihmLCAiJW1zIDogJW1zIiwgJm5hbWUsICZ2YWwpID09IDIpIHsKPiAg CQlpbnQgbnVtdmFsID0gYXRvaSh2YWwpOwo+IC0JCVBBUlNFX0xJTkUoc2V0dGluZ3MsIG5hbWUs IHZhbCwgYWJvcnRfb25fZXJyb3IsIG51bXZhbCk7Cj4gKwkJUEFSU0VfTElORShzZXR0aW5ncywg bmFtZSwgdmFsLCBhYm9ydF9tYXNrLCBudW12YWwpOwo+ICAJCVBBUlNFX0xJTkUoc2V0dGluZ3Ms IG5hbWUsIHZhbCwgdGVzdF9saXN0LCB2YWwgPyBzdHJkdXAodmFsKSA6IE5VTEwpOwo+ICAJCVBB UlNFX0xJTkUoc2V0dGluZ3MsIG5hbWUsIHZhbCwgbmFtZSwgdmFsID8gc3RyZHVwKHZhbCkgOiBO VUxMKTsKPiAgCQlQQVJTRV9MSU5FKHNldHRpbmdzLCBuYW1lLCB2YWwsIGRyeV9ydW4sIG51bXZh bCk7Cj4gZGlmZiAtLWdpdCBhL3J1bm5lci9zZXR0aW5ncy5oIGIvcnVubmVyL3NldHRpbmdzLmgK PiBpbmRleCBiNDg5YWJjNS4uMjY3ZDcyY2YgMTAwNjQ0Cj4gLS0tIGEvcnVubmVyL3NldHRpbmdz LmgKPiArKysgYi9ydW5uZXIvc2V0dGluZ3MuaAo+IEBAIC0xMiw2ICsxMiwxMiBAQCBlbnVtIHsK PiAgCUxPR19MRVZFTF9WRVJCT1NFID0gMSwKPiAgfTsKPiAgCj4gKyNkZWZpbmUgQUJPUlRfVEFJ TlQgICAoMSA8PCAwKQo+ICsjZGVmaW5lIEFCT1JUX0xPQ0tERVAgKDEgPDwgMSkKPiArI2RlZmlu ZSBBQk9SVF9BTEwgICAgIChBQk9SVF9UQUlOVCB8IEFCT1JUX0xPQ0tERVApCj4gKwo+ICtfU3Rh dGljX2Fzc2VydChBQk9SVF9BTEwgPT0gKEFCT1JUX1RBSU5UIHwgQUJPUlRfTE9DS0RFUCksICJB Qk9SVF9BTEwgbXVzdCBiZSBhbGwgY29uZGl0aW9ucyBiaXR3aXNlIG9yJ2QiKTsKPiArCj4gIHN0 cnVjdCByZWdleF9saXN0IHsKPiAgCWNoYXIgKipyZWdleF9zdHJpbmdzOwo+ICAJcmVnZXhfdCoq IHJlZ2V4ZXM7Cj4gQEAgLTE5LDcgKzI1LDcgQEAgc3RydWN0IHJlZ2V4X2xpc3Qgewo+ICB9Owo+ ICAKPiAgc3RydWN0IHNldHRpbmdzIHsKPiAtCWJvb2wgYWJvcnRfb25fZXJyb3I7Cj4gKwlpbnQg YWJvcnRfbWFzazsKPiAgCWNoYXIgKnRlc3RfbGlzdDsKPiAgCWNoYXIgKm5hbWU7Cj4gIAlib29s IGRyeV9ydW47Cj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=