From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) by gabe.freedesktop.org (Postfix) with ESMTPS id 49A376E8F2 for ; Thu, 4 Apr 2019 12:56:33 +0000 (UTC) Received: by mail-ed1-x544.google.com with SMTP id q3so2135045edg.0 for ; Thu, 04 Apr 2019 05:56:33 -0700 (PDT) Date: Thu, 4 Apr 2019 14:56:27 +0200 From: Daniel Vetter Message-ID: <20190404125627.GT2665@phenom.ffwll.local> References: <20190403125450.17648-1-stanislav.lisovskiy@intel.com> <20190403125450.17648-3-stanislav.lisovskiy@intel.com> <20190403141110.GK2665@phenom.ffwll.local> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Subject: Re: [igt-dev] [PATCH i-g-t v4 2/2] igt/tests/kms_atomic_transition: Tolerate if can't have all planes 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: "Lisovskiy, Stanislav" Cc: "Peres, Martin" , "igt-dev@lists.freedesktop.org" , "daniel@ffwll.ch" List-ID: T24gVGh1LCBBcHIgMDQsIDIwMTkgYXQgMTE6NDU6MDNBTSArMDAwMCwgTGlzb3Zza2l5LCBTdGFu aXNsYXYgd3JvdGU6Cj4gT24gV2VkLCAyMDE5LTA0LTAzIGF0IDE2OjExICswMjAwLCBEYW5pZWwg VmV0dGVyIHdyb3RlOgo+ID4gT24gV2VkLCBBcHIgMDMsIDIwMTkgYXQgMDM6NTQ6NTBQTSArMDMw MCwgU3RhbmlzbGF2IExpc292c2tpeSB3cm90ZToKPiA+ID4gV2l0aCBzb21lIHVwY29taW5nIGNo YW5nZXMgaTkxNSBtaWdodCBub3QgYWxsb3cKPiA+ID4gYWxsIHNwcml0ZSBwbGFuZXMgZW5hYmxl ZCwgZGVwZW5kaW5nIG9uIGF2YWlsYWJsZQo+ID4gPiBiYW5kd2lkdGggbGltaXRhdGlvbi4gVGh1 cyB0aGUgdGVzdCBuZWVkIHRvIGRlY3JlbWVudAo+ID4gPiBhbW91bnQgb2YgcGxhbmVzIGFuZCB0 cnkgYWdhaW4sIGluc3RlYWQgb2YgcGFuaWNraW5nLgo+ID4gPiAKPiA+ID4gdjI6IFJlbW92ZWQg ZXhjZXNzaXZlIG5lc3RlZCBjb25kaXRpb25zLCBtYWtpbmcgY29kZSBhIGJpdAo+ID4gPiAgICAg bW9yZSByZWFkYWJsZShob3BlZnVsbHkpLgo+ID4gPiAKPiA+ID4gdjM6IFN0b3BwZWQgdXNpbmcg Z2xvYmFsIG5fcGxhbmVzIHZhcmlhYmxlIGFzIGl0IG1pZ2h0IGNhdXNlCj4gPiA+ICAgICByZXNv dXJjZXMgYmVpbmcgdW5yZWxlYXNlZC4KPiA+ID4gICAgIFVzaW5nIG5vdyBwYXJtc1tpXS5tYXNr IGFzIGEgd2F5IHRvIGRldGVybWluZSBpZiBwbGFuZQo+ID4gPiAgICAgaGFzIHRvIGJlIGluY2x1 ZGVkIGludG8gY29tbWl0Lgo+ID4gPiAKPiA+ID4gdjQ6IFJlbW92ZWQgdW5uZWVkZWQgbl9vdmVy bGF5cyBpbml0aWFsaXphdGlvbi4KPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IFN0YW5pc2xh diBMaXNvdnNraXkgPHN0YW5pc2xhdi5saXNvdnNraXlAaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ ID4gIHRlc3RzL2ttc19hdG9taWNfdHJhbnNpdGlvbi5jIHwgMTA3ICsrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLQo+ID4gPiAtLS0tCj4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgNTUgaW5zZXJ0 aW9ucygrKSwgNTIgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMv a21zX2F0b21pY190cmFuc2l0aW9uLmMKPiA+ID4gYi90ZXN0cy9rbXNfYXRvbWljX3RyYW5zaXRp b24uYwo+ID4gPiBpbmRleCA2MzhmZTE3ZS4uYTA0MjIwZjMgMTAwNjQ0Cj4gPiA+IC0tLSBhL3Rl c3RzL2ttc19hdG9taWNfdHJhbnNpdGlvbi5jCj4gPiA+ICsrKyBiL3Rlc3RzL2ttc19hdG9taWNf dHJhbnNpdGlvbi5jCj4gPiA+IEBAIC0yMTIsOSArMjEyLDExIEBAIHN0YXRpYyB2b2lkIHNldHVw X3Bhcm1zKGlndF9kaXNwbGF5X3QKPiA+ID4gKmRpc3BsYXksIGVudW0gcGlwZSBwaXBlLAo+ID4g PiAgCXVuc2lnbmVkIHNwcml0ZV93aWR0aCwgc3ByaXRlX2hlaWdodCwgcHJldl93LCBwcmV2X2g7 Cj4gPiA+ICAJYm9vbCBtYXhfc3ByaXRlX3dpZHRoLCBtYXhfc3ByaXRlX2hlaWdodCwgYWxwaGEg PSB0cnVlOwo+ID4gPiAgCXVpbnQzMl90IG5fcGxhbmVzID0gZGlzcGxheS0+cGlwZXNbcGlwZV0u bl9wbGFuZXM7Cj4gPiA+IC0JdWludDMyX3Qgbl9vdmVybGF5cyA9IDAsIG92ZXJsYXlzW25fcGxh bmVzXTsKPiA+ID4gKwl1aW50MzJfdCBuX292ZXJsYXlzLCBvdmVybGF5c1tuX3BsYW5lc107Cj4g PiA+ICAJaWd0X3BsYW5lX3QgKnBsYW5lOwo+ID4gPiAtCXVpbnQzMl90IGl0ZXJfbWFzayA9IDM7 Cj4gPiA+ICsJdWludDMyX3QgaXRlcl9tYXNrOwo+ID4gPiArCWludCByZXRyaWVzID0gbl9wbGFu ZXMgLSAxOwo+ID4gPiArCWludCByZXQgPSAwOwo+ID4gPiAgCj4gPiA+ICAJZG9fb3JfZGllKGRy bUdldENhcChkaXNwbGF5LT5kcm1fZmQsIERSTV9DQVBfQ1VSU09SX1dJRFRILAo+ID4gPiAmY3Vy c29yX3dpZHRoKSk7Cj4gPiA+ICAJaWYgKGN1cnNvcl93aWR0aCA+PSBtb2RlLT5oZGlzcGxheSkK PiA+ID4gQEAgLTIyNCw2ICsyMjYsMTAgQEAgc3RhdGljIHZvaWQgc2V0dXBfcGFybXMoaWd0X2Rp c3BsYXlfdAo+ID4gPiAqZGlzcGxheSwgZW51bSBwaXBlIHBpcGUsCj4gPiA+ICAJaWYgKGN1cnNv cl9oZWlnaHQgPj0gbW9kZS0+dmRpc3BsYXkpCj4gPiA+ICAJCWN1cnNvcl9oZWlnaHQgPSBtb2Rl LT52ZGlzcGxheTsKPiA+ID4gIAo+ID4gPiArcmV0cnk6Cj4gPiA+ICsJbl9vdmVybGF5cyA9IDA7 Cj4gPiA+ICsJaXRlcl9tYXNrID0gMzsKPiA+ID4gKwo+ID4gPiAgCWZvcl9lYWNoX3BsYW5lX29u X3BpcGUoZGlzcGxheSwgcGlwZSwgcGxhbmUpIHsKPiA+ID4gIAkJaW50IGkgPSBwbGFuZS0+aW5k ZXg7Cj4gPiA+ICAKPiA+ID4gQEAgLTIzOCwxMiArMjQ0LDE2IEBAIHN0YXRpYyB2b2lkIHNldHVw X3Bhcm1zKGlndF9kaXNwbGF5X3QKPiA+ID4gKmRpc3BsYXksIGVudW0gcGlwZSBwaXBlLAo+ID4g PiAgCQkJcGFybXNbaV0uaGVpZ2h0ID0gY3Vyc29yX2hlaWdodDsKPiA+ID4gIAkJCXBhcm1zW2ld Lm1hc2sgPSAxIDw8IDE7Cj4gPiA+ICAJCX0gZWxzZSB7Cj4gPiA+IC0JCQlwYXJtc1tpXS5mYiA9 IHNwcml0ZV9mYjsKPiA+ID4gLQkJCXBhcm1zW2ldLm1hc2sgPSAxIDw8IDI7Cj4gPiA+IC0KPiA+ ID4gLQkJCWl0ZXJfbWFzayB8PSAxIDw8IDI7Cj4gPiA+IC0KPiA+ID4gLQkJCW92ZXJsYXlzW25f b3ZlcmxheXMrK10gPSBpOwo+ID4gPiArCQkJaWYgKG5fb3ZlcmxheXMgPCAobl9wbGFuZXMgLSAy KSkgewo+ID4gPiArCQkJCXBhcm1zW2ldLmZiID0gc3ByaXRlX2ZiOwo+ID4gPiArCQkJCXBhcm1z W2ldLm1hc2sgPSAxIDw8IDI7Cj4gPiA+ICsJCQkJaXRlcl9tYXNrIHw9IDEgPDwgMjsKPiA+ID4g KwkJCQlvdmVybGF5c1tuX292ZXJsYXlzKytdID0gaTsKPiA+ID4gKwkJCX0KPiA+ID4gKwkJCWVs c2Ugewo+ID4gPiArCQkJCXBhcm1zW2ldLmZiID0gTlVMTDsKPiA+ID4gKwkJCQlwYXJtc1tpXS5t YXNrID0gMDsKPiA+ID4gKwkJCX0KPiA+ID4gIAkJfQo+ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiBA QCAtMjc4LDE2ICsyODgsMTMgQEAgc3RhdGljIHZvaWQgc2V0dXBfcGFybXMoaWd0X2Rpc3BsYXlf dAo+ID4gPiAqZGlzcGxheSwgZW51bSBwaXBlIHBpcGUsCj4gPiA+ICAJICogUHJlIGdlbjkgbm90 IGFsbCBzaXplcyBhcmUgc3VwcG9ydGVkLCBmaW5kIHRoZSBiaWdnZXN0Cj4gPiA+IHBvc3NpYmxl Cj4gPiA+ICAJICogc2l6ZSB0aGF0IGNhbiBiZSBlbmFibGVkIG9uIGFsbCBzcHJpdGUgcGxhbmVz Lgo+ID4gPiAgCSAqLwo+ID4gPiAtcmV0cnk6Cj4gPiA+ICAJcHJldl93ID0gc3ByaXRlX3dpZHRo ID0gY3Vyc29yX3dpZHRoOwo+ID4gPiAgCXByZXZfaCA9IHNwcml0ZV9oZWlnaHQgPSBjdXJzb3Jf aGVpZ2h0Owo+ID4gPiAgCj4gPiA+ICAJbWF4X3Nwcml0ZV93aWR0aCA9IChzcHJpdGVfd2lkdGgg PT0gbW9kZS0+aGRpc3BsYXkpOwo+ID4gPiAgCW1heF9zcHJpdGVfaGVpZ2h0ID0gKHNwcml0ZV9o ZWlnaHQgPT0gbW9kZS0+dmRpc3BsYXkpOwo+ID4gPiAgCj4gPiA+IC0Jd2hpbGUgKDEpIHsKPiA+ ID4gLQkJaW50IHJldDsKPiA+ID4gLQo+ID4gPiArCXdoaWxlICghbWF4X3Nwcml0ZV93aWR0aCAm JiAhbWF4X3Nwcml0ZV9oZWlnaHQpIHsKPiA+ID4gIAkJc2V0X3Nwcml0ZV93aChkaXNwbGF5LCBw aXBlLCBwYXJtcywgc3ByaXRlX2ZiLAo+ID4gPiAgCQkJICAgICAgYWxwaGEsIHNwcml0ZV93aWR0 aCwgc3ByaXRlX2hlaWdodCk7Cj4gPiA+ICAKPiA+ID4gQEAgLTI5NSw1NCArMzAyLDQ5IEBAIHJl dHJ5Ogo+ID4gPiAgCQlyZXQgPSBpZ3RfZGlzcGxheV90cnlfY29tbWl0X2F0b21pYyhkaXNwbGF5 LAo+ID4gPiBEUk1fTU9ERV9BVE9NSUNfVEVTVF9PTkxZIHwgRFJNX01PREVfQVRPTUlDX0FMTE9X X01PREVTRVQsIE5VTEwpOwo+ID4gPiAgCQlpZ3RfYXNzZXJ0KCFpc19hdG9taWNfY2hlY2tfZmFp bHVyZV9lcnJubyhyZXQpKTsKPiA+ID4gIAo+ID4gPiAtCQlpZiAoaXNfYXRvbWljX2NoZWNrX3Bs YW5lX3NpemVfZXJybm8ocmV0KSkgewo+ID4gPiAtCQkJaWYgKGN1cnNvcl93aWR0aCA9PSBzcHJp dGVfd2lkdGggJiYKPiA+ID4gLQkJCSAgICBjdXJzb3JfaGVpZ2h0ID09IHNwcml0ZV9oZWlnaHQp IHsKPiA+ID4gLQkJCQlpZ3RfYXNzZXJ0X2YoYWxwaGEsCj4gPiA+IC0JCQkJCSAgICAgICJDYW5u b3QgY29uZmlndXJlIHRoZQo+ID4gPiB0ZXN0IHdpdGggYWxsIHNwcml0ZSBwbGFuZXMgZW5hYmxl ZFxuIik7Cj4gPiA+IC0KPiA+ID4gLQkJCQkvKiByZXRyeSBvbmNlIHdpdGggWFJHQiBmb3JtYXQu ICovCj4gPiA+IC0JCQkJYWxwaGEgPSBmYWxzZTsKPiA+ID4gLQkJCQlnb3RvIHJldHJ5Owo+ID4g PiAtCQkJfQo+ID4gPiAtCj4gPiA+IC0JCQlzcHJpdGVfd2lkdGggPSBwcmV2X3c7Cj4gPiA+IC0J CQlzcHJpdGVfaGVpZ2h0ID0gcHJldl9oOwo+ID4gPiAtCj4gPiA+IC0JCQlpZiAobWF4X3Nwcml0 ZV93aWR0aCAmJiBtYXhfc3ByaXRlX2hlaWdodCkgewo+ID4gPiAtCQkJCXNldF9zcHJpdGVfd2go ZGlzcGxheSwgcGlwZSwgcGFybXMsCj4gPiA+IHNwcml0ZV9mYiwKPiA+ID4gLQkJCQkJICAgICAg YWxwaGEsIHNwcml0ZV93aWR0aCwKPiA+ID4gc3ByaXRlX2hlaWdodCk7Cj4gPiA+IC0JCQkJYnJl YWs7Cj4gPiA+IC0JCQl9Cj4gPiA+IC0KPiA+ID4gLQkJCWlmICghbWF4X3Nwcml0ZV93aWR0aCkK PiA+ID4gLQkJCQltYXhfc3ByaXRlX3dpZHRoID0gdHJ1ZTsKPiA+ID4gLQkJCWVsc2UKPiA+ID4g LQkJCQltYXhfc3ByaXRlX2hlaWdodCA9IHRydWU7Cj4gPiA+IC0JCX0gZWxzZSB7Cj4gPiA+ICsJ CWlmICghaXNfYXRvbWljX2NoZWNrX3BsYW5lX3NpemVfZXJybm8ocmV0KSkgewo+ID4gPiAgCQkJ cHJldl93ID0gc3ByaXRlX3dpZHRoOwo+ID4gPiAgCQkJcHJldl9oID0gc3ByaXRlX2hlaWdodDsK PiA+ID4gLQkJfQo+ID4gPiAtCj4gPiA+IC0JCWlmICghbWF4X3Nwcml0ZV93aWR0aCkgewo+ID4g PiAtCQkJc3ByaXRlX3dpZHRoICo9IDI7Cj4gPiA+IC0KPiA+ID4gKyAgICAKPiA+ID4gKwkJCXNw cml0ZV93aWR0aCAqPSBtYXhfc3ByaXRlX3dpZHRoID8gMSA6IDI7Cj4gPiA+ICAJCQlpZiAoc3By aXRlX3dpZHRoID49IG1vZGUtPmhkaXNwbGF5KSB7Cj4gPiA+ICAJCQkJbWF4X3Nwcml0ZV93aWR0 aCA9IHRydWU7Cj4gPiA+IC0KPiA+ID4gIAkJCQlzcHJpdGVfd2lkdGggPSBtb2RlLT5oZGlzcGxh eTsKPiA+ID4gIAkJCX0KPiA+ID4gLQkJfSBlbHNlIGlmICghbWF4X3Nwcml0ZV9oZWlnaHQpIHsK PiA+ID4gLQkJCXNwcml0ZV9oZWlnaHQgKj0gMjsKPiA+ID4gIAo+ID4gPiArCQkJc3ByaXRlX2hl aWdodCAqPSBtYXhfc3ByaXRlX2hlaWdodCA/IDEgOiAyOwo+ID4gPiAgCQkJaWYgKHNwcml0ZV9o ZWlnaHQgPj0gbW9kZS0+dmRpc3BsYXkpIHsKPiA+ID4gIAkJCQltYXhfc3ByaXRlX2hlaWdodCA9 IHRydWU7Cj4gPiA+IC0KPiA+ID4gIAkJCQlzcHJpdGVfaGVpZ2h0ID0gbW9kZS0+dmRpc3BsYXk7 Cj4gPiA+ICAJCQl9Cj4gPiA+IC0JCX0gZWxzZQo+ID4gPiAtCQkJLyogTWF4IHNpemVkIHNwcml0 ZXMgZm9yIGFsbCEgKi8KPiA+ID4gLQkJCWJyZWFrOwo+ID4gPiArCQkJY29udGludWU7Cj4gPiA+ ICsJCX0KPiA+ID4gKwo+ID4gPiArCQlpZiAoY3Vyc29yX3dpZHRoID09IHNwcml0ZV93aWR0aCAm Jgo+ID4gPiArCQkgICAgY3Vyc29yX2hlaWdodCA9PSBzcHJpdGVfaGVpZ2h0KSB7Cj4gPiA+ICsJ CQlpZ3RfYXNzZXJ0X2YocmV0cmllcyA+IDAsCj4gPiA+ICsJCQkJICAgICAgIkNhbm5vdCBjb25m aWd1cmUgdGhlIHRlc3Qgd2l0aAo+ID4gPiBhbGwgc3ByaXRlIHBsYW5lcyBlbmFibGVkXG4iKTsK PiA+ID4gKwkJCS0tcmV0cmllczsKPiA+ID4gKwkJCS8qIHJldHJ5IG9uY2Ugd2l0aCBYUkdCIGZv cm1hdC4gKi8KPiA+ID4gKwkJCWlmIChhbHBoYSkgewo+ID4gPiArCQkJCWFscGhhID0gZmFsc2U7 Cj4gPiA+ICsJCQkJaWd0X3dhcm4oIlJlbW92ZWQgYWxwaGFcbiIpOwo+ID4gPiArCQkJfQo+ID4g PiArCQkJZWxzZSB7Cj4gPiA+ICsJCQkJaWd0X2Fzc2VydF9mKG5fcGxhbmVzID4gMSwgIk5vIHBs YW5lcwo+ID4gPiBsZWZ0IHRvIHByb2NlZWQgd2l0aCEiKTsKPiA+ID4gKwkJCQluX3BsYW5lcy0t Owo+ID4gCj4gPiBTYW1lIGNvbW1lbnQgYXMgd2l0aCBrbXNfY29uY3VycmVudCBhbmQgYWxsIHRo ZSBvdGhlciBwbGFuZSB0ZXN0czoKPiA+IEp1c3QKPiA+IGRyb3BwaW5nIHRoZSBsYXN0IHBsYW5l IHJlZHVjZXMgb3VyIHRlc3QgY292ZXJhZ2UsIHdlIG5lZWQgdG8KPiA+IHJhbmRvbWl6ZQo+ID4g d2hpY2ggcGxhbmUgd2UgZHJvcC4KPiAKPiBJIHRoaW5rIHRoYXQgaXMgYSBnb29kIGlkZWEsIEkn bSBub3cgdGVzdGluZyBhIHBhdGNoIHdoaWNoIHJhbmRvbWl6ZXMKPiB3aGljaCBvbmUgb2YgYXZh aWxhYmxlIHBsYW5lcyBpcyBnb2luZyB0byBiZSByZW1vdmVkLgo+IAo+IEZvciB0aGUgbGF0dGVy IGNoYW5nZSBJIHdvdWxkIGxlYXZlIGZvciBmdXJ0aGVyIHBhdGNoZXMgYXMgY3VycmVudGx5IAo+ IGl0IGRvZXNuJ3QgbWF0dGVyIGFueXdheSwgYnV0IHdlIG5lZWQgdGhlIGlzc3VlcyByZWxhdGVk IHRvIG5ldyBidwo+IHJlcXVpcmVtZW50cyB0byBiZSBmaXhlZC4KCkp1c3QgZG9pbmcgc29tZSBi dWcgc2NydWIgYW5kIHdlIGhhdmUgc29tZSBFSU5WQUwgZmFpbHVyZXMgbGlrZSB0aGlzIGFsbApv dmVyIHRoZSBwbGFjZS4gU28gSSBndWVzcyB0aGVyZSdzIHNvbWUgb3RoZXIgY2FzZXMgd2hlcmUg d2UgcmVqZWN0CmNvbmZpZ3MgaW4gdGhlIGtlcm5lbCBhbmQgdGhlbiB0aGUgdGVzdCBmYWxscyBv dmVyLiBXZSdsbCBuZWVkIHRoaXMgKGl0J3MKaG93IGF0b21pYyBpcyBtZWFudCB0byB3b3JrIHJl YWxseSkuCgpBbHNvLCB0aGUgYncgYmFuZC1haWQgZnJvbSBWaWxsZSBpcyBhIHJlYWxseSBiYWQg c29sdXRpb24sIHdlIG5lZWQKc29tZXRoaW5nIGJldHRlciAtIG5vIHBvaW50IGluIGhhdmluZyA3 IHBsYW5lcyBpZiB5b3UgY2FuJ3QgZXZlbiB1c2UgdGhlbS4KQWRkaW5nIG1vcmUgdHJ5X2NvbW1p dCBpbiB0aGUgd3JvbmcgcGxhY2UgZmVlbHMgbGlrZSBhIGRldG91ci4KLURhbmllbAoKPiA+IAo+ ID4gVGhlIG90aGVyIGJpdDogV2UgbmVlZCB0byByZWNvbXB1dGUgaG93IG1hbnkgcGxhbmVzIHdl IGNhbiBlbmFibGUgZm9yCj4gPiBldmVyeSB0cmFuc2l0aW9uLiBSaWdodCBub3cgdGhhdCdzIG5v dCB0aGUgY2FzZSB3aXRoIFZpbGxlJ3MgY3VycmVudAo+ID4gcGF0Y2gKPiA+IHNlcmllcywgYnV0 IHRoYXQncyBhbHNvIGp1c3QgYW4gaW50ZXJpbSBzb2x1dGlvbi4gQWN0dWFsIGJ3Cj4gPiBjb25z dW1wdGlvbgo+ID4gdmVyeSBtdWNoIGRlcGVuZHMgdXBvbiB3aGVyZSBhbGwgdGhlIHBsYW5lcyBh cmUgcGxhY2UsIGhvdyBiaWcgdGhleQo+ID4gYXJlCj4gPiBhbmQgYWxsIHRoYXQgc3R1ZmYuIFNv IHdlIG5lZWQgdG8gcmVjb21wdXRlL3JlY2hlY2sgdGhhdCBldmVyeQo+ID4gdHJhbnNpdGlvbgo+ ID4gd29ya3MsIGZvciBlYWNoIHNwZWNpZmljIHRyYW5zaXRpb24uIEJlY2F1c2UgdGhlIGV4YWN0 IHRyYW5zaXRpb24KPiA+IG1pZ2h0Cj4gPiBhbHNvIG1hdHRlci4KPiA+IAo+ID4gT3IgbWF5YmUg SSdtIG5vdCBlbnRpcmVseSB1bmRlcnN0YW5kaW5nIGhvdyB0aGlzIHRlc3Qgd29ya3MgaGVyZS4K PiA+IC1EYW5pZWwKPiA+IAo+ID4gPiArCQkJCWlndF93YXJuKCJSZWR1Y2VkIGF2YWlsYWJsZSBw bGFuZXMgdG8KPiA+ID4gJWRcbiIsIG5fcGxhbmVzKTsKPiA+ID4gKwkJCX0KPiA+ID4gKwkJCWdv dG8gcmV0cnk7Cj4gPiA+ICsJCX0KPiA+ID4gKwo+ID4gPiArCQlzcHJpdGVfd2lkdGggPSBwcmV2 X3c7Cj4gPiA+ICsJCXNwcml0ZV9oZWlnaHQgPSBwcmV2X2g7Cj4gPiA+ICsKPiA+ID4gKwkJaWYg KCFtYXhfc3ByaXRlX3dpZHRoKQo+ID4gPiArCQkJbWF4X3Nwcml0ZV93aWR0aCA9IHRydWU7Cj4g PiA+ICsJCWVsc2UKPiA+ID4gKwkJCW1heF9zcHJpdGVfaGVpZ2h0ID0gdHJ1ZTsKPiA+ID4gIAl9 Cj4gPiA+ICAKPiA+ID4gIAlpZ3RfaW5mbygiUnVubmluZyB0ZXN0IG9uIHBpcGUgJXMgd2l0aCBy ZXNvbHV0aW9uICVkeCVkIGFuZAo+ID4gPiBzcHJpdGUgc2l6ZSAlZHglZCBhbHBoYSAlaVxuIiwK PiA+ID4gQEAgLTQ2Myw3ICs0NjUsNiBAQCBydW5fdHJhbnNpdGlvbl90ZXN0KGlndF9kaXNwbGF5 X3QgKmRpc3BsYXksCj4gPiA+IGVudW0gcGlwZSBwaXBlLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dAo+ ID4gPiAgCj4gPiA+ICAJaWYgKGZsYWdzICYgRFJNX01PREVfQVRPTUlDX0FMTE9XX01PREVTRVQp IHsKPiA+ID4gIAkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIFBJUEVfTk9ORSk7Cj4gPiA+ IC0KPiA+ID4gIAkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsK PiA+ID4gIAo+ID4gPiAgCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Cj4gPiA+ IEBAIC01MjUsOCArNTI2LDEwIEBAIHJ1bl90cmFuc2l0aW9uX3Rlc3QoaWd0X2Rpc3BsYXlfdCAq ZGlzcGxheSwKPiA+ID4gZW51bSBwaXBlIHBpcGUsIGlndF9vdXRwdXRfdCAqb3V0cHV0Cj4gPiA+ ICAJCX0KPiA+ID4gIAo+ID4gPiAgCQkvKiBmb3JjZSBwbGFuZXMgdG8gYmUgcGFydCBvZiBjb21t aXQgKi8KPiA+ID4gLQkJZm9yX2VhY2hfcGxhbmVfb25fcGlwZShkaXNwbGF5LCBwaXBlLCBwbGFu ZSkKPiA+ID4gLQkJCWlndF9wbGFuZV9zZXRfcG9zaXRpb24ocGxhbmUsIDAsIDApOwo+ID4gPiAr CQlmb3JfZWFjaF9wbGFuZV9vbl9waXBlKGRpc3BsYXksIHBpcGUsIHBsYW5lKSB7Cj4gPiA+ICsJ CQlpZiAocGFybXNbcGxhbmUtPmluZGV4XS5tYXNrKQo+ID4gPiArCQkJCWlndF9wbGFuZV9zZXRf cG9zaXRpb24ocGxhbmUsIDAsIDApOwo+ID4gPiArCQl9Cj4gPiA+ICAKPiA+ID4gIAkJaWd0X2Rp c3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsKPiA+ID4gIAo+ID4gPiAtLSAK PiA+ID4gMi4xNy4xCj4gPiA+IAo+ID4gCj4gPiAKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJl IEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcg bGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=