From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 08DAF6E149 for ; Thu, 4 Apr 2019 13:42:57 +0000 (UTC) References: <20190402191247.26247-1-maarten.lankhorst@linux.intel.com> <20190402191247.26247-2-maarten.lankhorst@linux.intel.com> From: Maarten Lankhorst Message-ID: Date: Thu, 4 Apr 2019 15:42:53 +0200 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t 2/2] tests/kms_chamelium: Fix *-cmp-random and *-crc-random tests. 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: Paul Kocialkowski , igt-dev@lists.freedesktop.org List-ID: T3AgMDQtMDQtMjAxOSBvbSAxNDoxNCBzY2hyZWVmIFBhdWwgS29jaWFsa293c2tpOgo+IEhpLAo+ Cj4gTGUgbWFyZGkgMDIgYXZyaWwgMjAxOSDDoCAyMToxMiArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3QgYSDDqWNyaXQgOgo+PiBUaGUgcmFuZG9tIHRlc3RzIGFsbG93ZWQgcG90ZW50aWFsbHkgaW52 YWxpZCB0aGluZ3M6Cj4+IC0gMXgxIGZiJ3MgdG8gYmUgY3JlYXRlZC4gRm9yY2UgYSBtaW5pbXVt IG9mIDMyIHNvIGEgc2NhbGVkCj4+ICAgcGxhbmUgd2lsbCBiZSBhdCBsZWFzdCAxNngxNi4gVGhp cyB3aWxsIGZpeCBzY2FsZWQvcGxhbmFyIGZvcm1hdAo+PiAgIHN1cHBvcnQgaW4gaTkxNSBhbmQg YXZvaWQgYSBkaXYgYnkgemVybyB3aGVuIGNhbGN1bGF0aW5nIGEgdmFsdWUKPj4gICBtb2R1bG8g aC8yIGFuZCB3LzIuCj4+IC0gRG93bnNjYWxpbmcgdG8gYW55IGFtb3VudCwgcmVzdHJpY3QgaXQg dG8gMnggdG8gbWFrZSB0aGUgdGVzdCBwYXNzLgo+PiAtIFNvbWUgaHcgbWF5IG5vdCBhbGxvdyBz Y2FsaW5nLCBpbiB0aG9zZSBjYXNlcyB3ZSBzaG91bGQgZmFsbGJhY2sKPj4gICB0byBubyBzY2Fs aW5nIGF0IGFsbC4KPj4gLSBBdHRlbXB0aW5nIHRvIGNvbmZpZ3VyZSBhIG1pbmltdW0gb2YgNCBw bGFuZXMsIGluc3RlYWQgb2YgYSBtYXhpbXVtLgo+PiAgIFRoaXMgZmFpbHMgd2l0aCBhIG51bGwg cG9pbnRlciBkZXJlZiBpZiB0aGUgaHcgZG9lc24ndCBoYXZlIDQKPj4gICBjb25maWd1cmFibGUg b3ZlcmxheSBwbGFuZXMuCj4gVGhhbmtzIGZvciB5b3VyIHdvcmssIGl0J3MgbmljZSB0byBzZWUg aW1wcm92ZW1lbnRzIGFuZCBmaXhlcyBmb3IgdGhlCj4gc2hvcnRjb21pbmdzIG9mIG15IGluaXRp YWwgaW1wbGVtZW50YXRpb24uIE1vc3Qgb2YgaXQgbG9va3MgZ29vZCB0byBtZSwKPiBidXQgSSBo YXZlIHNvbWUgcmVzZXJ2YXRpb25zIGFib3V0IGhvdyB3ZSBzaG91bGQgaGFuZGxlIGh3LXNwZWNp ZmljCj4gbGltaXRzLCBzZWUgY29tbWVudHMgYmVsb3cuCj4KPj4gQ2M6IFBhdWwgS29jaWFsa293 c2tpIDxwYXVsLmtvY2lhbGtvd3NraUBib290bGluLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogTWFh cnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPj4gLS0t Cj4+ICB0ZXN0cy9rbXNfY2hhbWVsaXVtLmMgfCAxOTUgKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tCj4+ICAxIGZpbGUgY2hhbmdlZCwgMTMxIGluc2VydGlvbnMoKyks IDY0IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2NoYW1lbGl1bS5j IGIvdGVzdHMva21zX2NoYW1lbGl1bS5jCj4+IGluZGV4IDJkYzEwNDlkMmRkYS4uNWU1YzY4Y2Nm ODc5IDEwMDY0NAo+PiAtLS0gYS90ZXN0cy9rbXNfY2hhbWVsaXVtLmMKPj4gKysrIGIvdGVzdHMv a21zX2NoYW1lbGl1bS5jCj4+IEBAIC03OTIsMjYgKzc5Miw1MyBAQCBzdGF0aWMgdm9pZCByYW5k b21pemVfcGxhbmVfZm9ybWF0X3N0cmlkZShpZ3RfcGxhbmVfdCAqcGxhbmUsCj4+ICB9Cj4+ICAK Pj4gIHN0YXRpYyB2b2lkIHJhbmRvbWl6ZV9wbGFuZV9kaW1lbnNpb25zKGRybU1vZGVNb2RlSW5m byAqbW9kZSwKPj4gLQkJCQkgICAgICAgdWludDMyX3QgKndpZHRoLCB1aW50MzJfdCAqaGVpZ2h0 LAo+PiAtCQkJCSAgICAgICB1aW50MzJfdCAqc3JjX3csIHVpbnQzMl90ICpzcmNfaCwKPj4gLQkJ CQkgICAgICAgdWludDMyX3QgKnNyY194LCB1aW50MzJfdCAqc3JjX3ksCj4+IC0JCQkJICAgICAg IHVpbnQzMl90ICpjcnRjX3csIHVpbnQzMl90ICpjcnRjX2gsCj4+IC0JCQkJICAgICAgIGludDMy X3QgKmNydGNfeCwgaW50MzJfdCAqY3J0Y195LAo+PiAtCQkJCSAgICAgICBib29sIGFsbG93X3Nj YWxpbmcpCj4+ICsJCQkJICAgICAgIHVpbnQzMl90ICp3aWR0aCwgdWludDMyX3QgKmhlaWdodCkK Pj4gIHsKPj4gLQlkb3VibGUgcmF0aW87Cj4+ICsJLyoKPj4gKwkgKiBSYW5kb21pemUgd2lkdGgg YW5kIGhlaWdodCBpbiB0aGUgbW9kZSBkaW1lbnNpb25zIHJhbmdlLgo+PiArCSAqCj4+ICsJICog UmVzdHJpY3QgdG8gYSBtaW4gb2YgMzIsIHRoaXMgd2F5IHNyY193L2ggYXJlIGFsd2F5cyBhdCBs ZWFzdCAxNiwKPj4gKwkgKiB0aGUgbWluaW11bSBmb3Igc2NhbGVkIHBsYW5hciBZVVYgb24gaTkx NS4KPj4gKwkgKi8KPiBNaGgsIEkgZG9uJ3QgcmVhbGx5IGxpa2UgdGhlIGlkZWEgb2YgY29uc3Ry YWluaW5nIHRoZSB0ZXN0cyB0byBhdm9pZAo+IGhpdHRpbmcgaGFyZHdhcmUtc3BlY2lmaWMgbGlt aXRhdGlvbnMuIFNpbmNlIHRoZSB0ZXN0IGlzIG5vdCBzdXBwb3NlZAo+IHRvIGJlIHRpZWQgdG8g YSBkcml2ZXIgaW4gcGFydGljdWxhciwgdHJ5aW5nIHRvIGhhbmRsZSB0aGVzZSBsaW1pdHMKPiBl eHBsaWNpdGx5IGZlZWxzIGxpa2UgYSBzbGlwcGVyeSBzbG9wZS4gSSBiZWxpZXZlIGl0IHNob3Vs ZCBiZSB1cCB0bwo+IHRoZSBrZXJuZWwgdG8gcmVwb3J0IHRoZXNlIGxpbWl0cywgbm90IGZvciB1 c2Vyc3BhY2UgdG8gaGF2ZSB0aGVtCj4gaGFyZGNvZGVkLiAoQWx0aG91Z2ggSSB3b3VsZCBiZSBs eWluZyBpZiBJIHNhaWQgdGhhdCBJIGRpZG4ndCB0YWlsb3IKPiB0aGUgdGVzdCBleHBsaWNpdGx5 IGZvciBteSB1c2UgY2FzZSAod2l0aCBWQzQpLikKClNvbWUgb2YgdGhlIGxpbWl0YXRpb25zIGFy ZSBub3Qga25vd24gaW5pdGlhbGx5LCBmb3IgZXhhbXBsZSBtaW4gc2l6ZSBtYXkKY2hhbmdlIGRl cGVuZGluZyBvbiB3aGF0IHRpbGluZyBtb2RlIGlzIHVzZWQsIG9yIHdoZXRoZXIgc2NhbGluZyBp cyBhY3RpdmUuCkFsbCB0aG9zZSBjb25zdHJhaW50cyBtYWtlIGl0IGhhcmRlciB0byAKCj4gU28g aGVyZSBpcyBhIHByb3Bvc2FsOiBsZXQncyBoYXZlIGFuIGluaXRpYWwgZnVuY3Rpb24gdGhhdCBw cm9iZXMgd2hhdAo+IHRoZSBoYXJkd2FyZSBjYW4gYW5kIGNhbid0IGRvIGluIHRlcm1zIG9mIHBs YW5lIG1pbi9tYXggc2l6ZSBhbmQKPiB1cC9kb3duIHNjYWxpbmcuIEkgd291bGQgZXhwZWN0IHRo YXQgaTkxNSByZWplY3RzIGNvbW1pdHMgd2hlcmUgdGhlCj4gcGxhbmUgZGltZW5zaW9ucyBhbmQg c3VjaCBhcmUgb2ZmLWxpbWl0cyAobWF5YmUgaXQncyBhbHNvIGluIHRoZSBwcm9wcwo+IHJhbmdl cyBkaXJlY3RseSksIHNvIHdlIGNhbiB0ZXN0IGp1c3QgdGhhdCBlYXJseSBhbmQgY29uc3RyYWlu IHRoZSB0ZXN0Cj4gYmFzZWQgb24gdGhhdCBpbmZvIGxhdGVyIG9uLCBzbyB3ZSBrZWVwIHRoZSBj b2RlIGdlbmVyaWMgYW5kIGF2b2lkCj4gY29tbWVudHMgYWJvdXQgd2h5IGRyaXZlci9oYXJkd2Fy ZSB4L3kgbmVlZHMgdG8gZG8gdGhpcyBvciB0aGF0Lgo+Cj4gV2hhdCBkbyB5b3UgdGhpbms/Cj4K Pj4gKwkqd2lkdGggPSBtYXgoKHJhbmQoKSAlIG1vZGUtPmhkaXNwbGF5KSArIDEsIDMyKTsKPj4g KwkqaGVpZ2h0ID0gbWF4KChyYW5kKCkgJSBtb2RlLT52ZGlzcGxheSkgKyAxLCAzMik7Cj4gVGVz dGluZyBhIHNtYWxsIHBsYW5lIGZlZWxzIGxpa2UgYSBjYXNlIHdlIHNob3VsZCBjb25zaWRlciBp ZiB0aGUKPiBoYXJkd2FyZSBpcyBzdXBwb3NlZCB0byBiZSBhYmxlIHRvIGRvIGl0Lgo+Cj4gSSdt IG5vdCBvcHBvc2VkIHRvIGhhdmluZyAicmVhc29uYWJsZSIgbGltaXRzIHRob3VnaCAobm9ib2R5 IG5lZWRzIGEKPiAxeDEgcGxhbmUgZm9yIGFueXRoaW5nKSwgYnV0IG1heWJlIHRoYXQgc2hvdWxk IGJlIGUuZy4gOHg4IHJhdGhlciB0aGFuCj4gMzJ4MzIuCgpUaGlzIGNvdWxkIGJlIDJ4MiBmb3Ig IWk5MTUsIGlmIHlvdSB3YW50IHRvIGRpc3BsYXkgYSAxeDEgcGl4ZWwgb25zY3JlZW4uIHNyY193 ID0gd2lkdGggLSAoc3JjX3ggPSByYW5kKCkgJSAodyAvIDIpKQoKQXMgbG9uZyBhcyBpOTE1IGxp bWl0cyBhcmUgYSBtaW5pbXVtIG9mIDMyeDMyIGZvciBzcmMgdy9oIGFsbCB0ZXN0cyB3aWxsIHdv cmsuCgo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBjb25maWd1cmVfcGxhbmUoaWd0X3BsYW5l X3QgKnBsYW5lLCB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gsCj4+ICsJCQkgICAgdWlu dDMyX3Qgc3JjX3gsIHVpbnQzMl90IHNyY195LCB1aW50MzJfdCBjcnRjX3csCj4+ICsJCQkgICAg dWludDMyX3QgY3J0Y19oLCBpbnQzMl90IGNydGNfeCwgaW50MzJfdCBjcnRjX3ksCj4+ICsJCQkg ICAgc3RydWN0IGlndF9mYiAqZmIpCj4+ICt7Cj4+ICsJaWd0X3BsYW5lX3NldF9mYihwbGFuZSwg ZmIpOwo+PiAgCj4+IC0JLyogUmFuZG9taXplIHdpZHRoIGFuZCBoZWlnaHQgaW4gdGhlIG1vZGUg ZGltZW5zaW9ucyByYW5nZS4gKi8KPj4gLQkqd2lkdGggPSAocmFuZCgpICUgbW9kZS0+aGRpc3Bs YXkpICsgMTsKPj4gLQkqaGVpZ2h0ID0gKHJhbmQoKSAlIG1vZGUtPnZkaXNwbGF5KSArIDE7Cj4+ ICsJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihwbGFuZSwgY3J0Y194LCBjcnRjX3kpOwo+PiArCWln dF9wbGFuZV9zZXRfc2l6ZShwbGFuZSwgY3J0Y193LCBjcnRjX2gpOwo+PiArCj4+ICsJaWd0X2Zi X3NldF9wb3NpdGlvbihmYiwgcGxhbmUsIHNyY194LCBzcmNfeSk7Cj4+ICsJaWd0X2ZiX3NldF9z aXplKGZiLCBwbGFuZSwgc3JjX3csIHNyY19oKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQg cmFuZG9taXplX3BsYW5lX2Nvb3JkaW5hdGVzKGRhdGFfdCAqZGF0YSwgaWd0X3BsYW5lX3QgKnBs YW5lLAo+PiArCQkJCQlkcm1Nb2RlTW9kZUluZm8gKm1vZGUsCj4+ICsJCQkJCXN0cnVjdCBpZ3Rf ZmIgKmZiLAo+PiArCQkJCQl1aW50MzJfdCAqc3JjX3csIHVpbnQzMl90ICpzcmNfaCwKPj4gKwkJ CQkJdWludDMyX3QgKnNyY194LCB1aW50MzJfdCAqc3JjX3ksCj4+ICsJCQkJCXVpbnQzMl90ICpj cnRjX3csIHVpbnQzMl90ICpjcnRjX2gsCj4+ICsJCQkJCWludDMyX3QgKmNydGNfeCwgaW50MzJf dCAqY3J0Y195LAo+PiArCQkJCQlib29sIGFsbG93X3NjYWxpbmcpCj4+ICt7Cj4+ICsJYm9vbCBp c195dXYgPSBpZ3RfZm9ybWF0X2lzX3l1dihmYi0+ZHJtX2Zvcm1hdCk7Cj4+ICsJdWludDMyX3Qg d2lkdGggPSBmYi0+d2lkdGgsIGhlaWdodCA9IGZiLT5oZWlnaHQ7Cj4+ICsJZG91YmxlIHJhdGlv Owo+PiArCWludCByZXQ7Cj4+ICAKPj4gIAkvKiBSYW5kb21pemUgc291cmNlIG9mZnNldCBpbiB0 aGUgZmlyc3QgaGFsZiBvZiB0aGUgb3JpZ2luYWwgc2l6ZS4gKi8KPj4gLQkqc3JjX3ggPSByYW5k KCkgJSAoKndpZHRoIC8gMik7Cj4+IC0JKnNyY195ID0gcmFuZCgpICUgKCpoZWlnaHQgLyAyKTsK Pj4gKwkqc3JjX3ggPSByYW5kKCkgJSAod2lkdGggLyAyKTsKPj4gKwkqc3JjX3kgPSByYW5kKCkg JSAoaGVpZ2h0IC8gMik7Cj4+ICAKPj4gIAkvKiBUaGUgc291cmNlIHNpemUgb25seSBpbmNsdWRl cyB0aGUgYWN0aXZlIHNvdXJjZSBhcmVhLiAqLwo+PiAtCSpzcmNfdyA9ICp3aWR0aCAtICpzcmNf eDsKPj4gLQkqc3JjX2ggPSAqaGVpZ2h0IC0gKnNyY195Owo+PiArCSpzcmNfdyA9IHdpZHRoIC0g KnNyY194Owo+PiArCSpzcmNfaCA9IGhlaWdodCAtICpzcmNfeTsKPj4gIAo+PiAgCWlmIChhbGxv d19zY2FsaW5nKSB7Cj4+ICAJCSpjcnRjX3cgPSAocmFuZCgpICUgbW9kZS0+aGRpc3BsYXkpICsg MTsKPj4gQEAgLTgyMSwxNyArODQ4LDIyIEBAIHN0YXRpYyB2b2lkIHJhbmRvbWl6ZV9wbGFuZV9k aW1lbnNpb25zKGRybU1vZGVNb2RlSW5mbyAqbW9kZSwKPj4gIAkJICogRG9uJ3QgYm90aGVyIHdp dGggc2NhbGluZyBpZiBkaW1lbnNpb25zIGFyZSBxdWl0ZSBjbG9zZSBpbgo+PiAgCQkgKiBvcmRl ciB0byBnZXQgbm9uLXNjYWxpbmcgY2FzZXMgbW9yZSBmcmVxdWVudGx5LiBBbHNvIGxpbWl0Cj4+ ICAJCSAqIHNjYWxpbmcgdG8gM3ggdG8gYXZvaWQgYWdyZXNzaXZlIGZpbHRlcmluZyB0aGF0IG1h a2VzCj4+IC0JCSAqIGNvbXBhcmlzb24gbGVzcyByZWxpYWJsZS4KPj4gKwkJICogY29tcGFyaXNv biBsZXNzIHJlbGlhYmxlLCBhbmQgZG9uJ3QgZ28gYWJvdmUgMnggZG93bnNhbXBsaW5nCj4+ICsJ CSAqIHRvIGF2b2lkIHBvc3NpYmxlIGh3IGxpbWl0YXRpb25zLgo+PiAgCQkgKi8KPiBTYW1lIGNv bW1lbnQgYXMgYWJvdmUgYWJvdXQgaHcgbGltaXRzLCBhbHRob3VnaCAyeCBkb3duc2FtcGxpbmcg ZG9lcwo+IGZlZWwgbGlrZSBhIHJlYXNvbmFibGUgZ2VuZXJhbCBsaW1pdCB0b28uClllcywgc2Ft ZSByZWFzb24gd2Ugb25seSBhbGxvdyB1cCB0byAzeCB1cHNjYWxpbmcuCj4KPj4gIAo+PiAgCQly YXRpbyA9ICgoZG91YmxlKSAqY3J0Y193IC8gKnNyY193KTsKPj4gLQkJaWYgKHJhdGlvID4gMC44 ICYmIHJhdGlvIDwgMS4yKQo+PiArCQlpZiAocmF0aW8gPCAwLjUpCj4+ICsJCQkqc3JjX3cgPSAq Y3J0Y193ICogMjsKPj4gKwkJZWxzZSBpZiAocmF0aW8gPiAwLjggJiYgcmF0aW8gPCAxLjIpCj4+ ICAJCQkqY3J0Y193ID0gKnNyY193Owo+PiAgCQllbHNlIGlmIChyYXRpbyA+IDMuMCkKPj4gIAkJ CSpjcnRjX3cgPSAqc3JjX3cgKiAzOwo+PiAgCj4+ICAJCXJhdGlvID0gKChkb3VibGUpICpjcnRj X2ggLyAqc3JjX2gpOwo+PiAtCQlpZiAocmF0aW8gPiAwLjggJiYgcmF0aW8gPCAxLjIpCj4+ICsJ CWlmIChyYXRpbyA8IDAuNSkKPj4gKwkJCSpzcmNfaCA9ICpjcnRjX2ggKiAyOwo+PiArCQllbHNl IGlmIChyYXRpbyA+IDAuOCAmJiByYXRpbyA8IDEuMikKPj4gIAkJCSpjcnRjX2ggPSAqc3JjX2g7 Cj4+ICAJCWVsc2UgaWYgKHJhdGlvID4gMy4wKQo+PiAgCQkJKmNydGNfaCA9ICpzcmNfaCAqIDM7 Cj4+IEBAIC04NDYsOCArODc4LDE1IEBAIHN0YXRpYyB2b2lkIHJhbmRvbWl6ZV9wbGFuZV9kaW1l bnNpb25zKGRybU1vZGVNb2RlSW5mbyAqbW9kZSwKPj4gIAkJICogc2NhbGVkIGNsaXBwaW5nIG1h eSByZXN1bHQgaW4gZGVjaW1hbCBkaW1lbnNpb25zLCB0aGF0IG1vc3QKPj4gIAkJICogZHJpdmVy cyBkb24ndCBzdXBwb3J0Lgo+PiAgCQkgKi8KPj4gLQkJKmNydGNfeCA9IHJhbmQoKSAlIChtb2Rl LT5oZGlzcGxheSAtICpjcnRjX3cpOwo+PiAtCQkqY3J0Y195ID0gcmFuZCgpICUgKG1vZGUtPnZk aXNwbGF5IC0gKmNydGNfaCk7Cj4+ICsJCWlmICgqY3J0Y193IDwgbW9kZS0+aGRpc3BsYXkpCj4+ ICsJCQkqY3J0Y194ID0gcmFuZCgpICUgKG1vZGUtPmhkaXNwbGF5IC0gKmNydGNfdyk7Cj4+ICsJ CWVsc2UKPj4gKwkJCSpjcnRjX3ggPSAwOwo+PiArCj4+ICsJCWlmICgqY3J0Y19oIDwgbW9kZS0+ dmRpc3BsYXkpCj4+ICsJCQkqY3J0Y195ID0gcmFuZCgpICUgKG1vZGUtPnZkaXNwbGF5IC0gKmNy dGNfaCk7Cj4+ICsJCWVsc2UKPj4gKwkJCSpjcnRjX3kgPSAwOwo+PiAgCX0gZWxzZSB7Cj4+ICAJ CS8qCj4+ICAJCSAqIFJhbmRvbWl6ZSB0aGUgb24tY3J0YyBwb3NpdGlvbiBhbmQgYWxsb3cgdGhl IHBsYW5lIHRvIGdvCj4+IEBAIC04NTYsNiArODk1LDUwIEBAIHN0YXRpYyB2b2lkIHJhbmRvbWl6 ZV9wbGFuZV9kaW1lbnNpb25zKGRybU1vZGVNb2RlSW5mbyAqbW9kZSwKPj4gIAkJKmNydGNfeCA9 IChyYW5kKCkgJSBtb2RlLT5oZGlzcGxheSkgLSAqY3J0Y193IC8gMjsKPj4gIAkJKmNydGNfeSA9 IChyYW5kKCkgJSBtb2RlLT52ZGlzcGxheSkgLSAqY3J0Y19oIC8gMjsKPj4gIAl9Cj4+ICsKPj4g Kwljb25maWd1cmVfcGxhbmUocGxhbmUsICpzcmNfdywgKnNyY19oLCAqc3JjX3gsICpzcmNfeSwK Pj4gKwkJCSpjcnRjX3csICpjcnRjX2gsICpjcnRjX3gsICpjcnRjX3ksIGZiKTsKPj4gKwlyZXQg PSBpZ3RfZGlzcGxheV90cnlfY29tbWl0X2F0b21pYygmZGF0YS0+ZGlzcGxheSwKPj4gKwkJCQkJ ICAgIERSTV9NT0RFX0FUT01JQ19URVNUX09OTFkgfAo+PiArCQkJCQkgICAgRFJNX01PREVfQVRP TUlDX0FMTE9XX01PREVTRVQsCj4+ICsJCQkJCSAgICBOVUxMKTsKPj4gKwlpZiAoIXJldCkKPj4g KwkJcmV0dXJuOwo+PiArCj4+ICsJLyogQ29vcmRpbmF0ZXMgYXJlIGxvZ2dlZCBpbiB0aGUgZHVt cGVkIGRlYnVnIGxvZywgc28gb25seSByZXBvcnQgdy9oIG9uIGZhaWx1cmUgaGVyZSAqLwo+IE1h eWJlIGFkZCBhIHRyYWlsaW5nICIuIiBoZXJlLgo+Cj4+ICsJaWd0X2Fzc2VydF9mKHJldCAhPSAt RU5PU1BDLCAiRmFpbHVyZSBpbiB0ZXN0Y2FzZSwgaW52YWxpZCBjb29yZGluYXRlcyBvbiBhICV1 eCV1IGZiXG4iLCB3aWR0aCwgaGVpZ2h0KTsKPj4gKwo+PiArCS8qIE1ha2UgWVVWIGNvb3JkaW5h dGVzIGEgbXVsdGlwbGUgb2YgMiBhbmQgcmV0cnkgdGhlIG1hdGguLiAqLwo+IE1heWJlIHJlbW92 ZSBhIHRyYWlsaW5nICIuIiBoZXJlLgo+Cj4+ICsJaWYgKGlzX3l1dikgewo+PiArCQkqc3JjX3gg Jj0gfjE7Cj4+ICsJCSpzcmNfeSAmPSB+MTsKPj4gKwkJKnNyY193ICY9IH4xOwo+PiArCQkqc3Jj X2ggJj0gfjE7Cj4+ICsJCS8qIFRvIGhhbmRsZSAxOjEgc2NhbGluZywgY2xlYXIgY3J0Y193L2gg dG9vICovCj4+ICsJCSpjcnRjX3cgJj0gfjE7Cj4+ICsJCSpjcnRjX2ggJj0gfjE7Cj4+ICsJCWNv bmZpZ3VyZV9wbGFuZShwbGFuZSwgKnNyY193LCAqc3JjX2gsICpzcmNfeCwgKnNyY195LCAqY3J0 Y193LAo+PiArCQkJCSpjcnRjX2gsICpjcnRjX3gsICpjcnRjX3ksIGZiKTsKPj4gKwkJcmV0ID0g aWd0X2Rpc3BsYXlfdHJ5X2NvbW1pdF9hdG9taWMoJmRhdGEtPmRpc3BsYXksCj4+ICsJCQkJCQlE Uk1fTU9ERV9BVE9NSUNfVEVTVF9PTkxZIHwKPj4gKwkJCQkJCURSTV9NT0RFX0FUT01JQ19BTExP V19NT0RFU0VULAo+PiArCQkJCQkJTlVMTCk7Cj4+ICsJCWlmICghcmV0KQo+PiArCQkJcmV0dXJu Owo+PiArCX0KPj4gKwo+PiArCWlndF9hc3NlcnQoIXJldCB8fCBhbGxvd19zY2FsaW5nKTsKPj4g KwlpZ3RfaW5mbygiU2NhbGluZyByYXRpbyAlZyAvICVnIGZhaWxlZCwgdHJ5aW5nIHdpdGhvdXQg c2NhbGluZy5cbiIsCj4+ICsJCSAgKChkb3VibGUpICpjcnRjX3cgLyAqc3JjX3cpLCAoKGRvdWJs ZSkgKmNydGNfaCAvICpzcmNfaCkpOwo+PiArCj4+ICsJKmNydGNfdyA9ICpzcmNfdzsKPj4gKwkq Y3J0Y19oID0gKnNyY19oOwo+PiArCj4+ICsJY29uZmlndXJlX3BsYW5lKHBsYW5lLCAqc3JjX3cs ICpzcmNfaCwgKnNyY194LCAqc3JjX3ksICpjcnRjX3csCj4+ICsJCQkqY3J0Y19oLCAqY3J0Y194 LCAqY3J0Y195LCBmYik7Cj4+ICsJaWd0X2Rpc3BsYXlfY29tbWl0X2F0b21pYygmZGF0YS0+ZGlz cGxheSwKPj4gKwkJCQkgIERSTV9NT0RFX0FUT01JQ19URVNUX09OTFkgfAo+PiArCQkJCSAgRFJN X01PREVfQVRPTUlDX0FMTE9XX01PREVTRVQsIE5VTEwpOwo+IEkgZG9uJ3QgdW5kZXJzdGFuZCB0 aGUgcHVycG9zZSBvZiB0aGlzIHRyYWlsaW5nIGNhbGwuCgpXZSBhc3N1bWUgb3VyIGNvbmZpZ3Vy YXRpb24gaXMgdmFsaWQgbm93IHdpdGhvdXQgc2NhbGluZywgdGhlIFRFU1RfT05MWSBjb21taXQg b25seSBtYWtlcyBzdXJlLiA6KQpUaGlzIHdheSB3ZSBmYWlsIGFzIGVhcmx5IGFzIHBvc3NpYmxl LCBidXQgSSBjYW4gYWRkIGEgY29tbWVudCBleHBsYWluaW5nIGl0LiAKCn5NYWFydGVuCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxp bmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=