From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qt1-f195.google.com (mail-qt1-f195.google.com [209.85.160.195]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3DCDE6E38E for ; Tue, 29 Jan 2019 19:26:13 +0000 (UTC) Received: by mail-qt1-f195.google.com with SMTP id i7so23552745qtj.10 for ; Tue, 29 Jan 2019 11:26:13 -0800 (PST) Message-ID: <8cba09ea88b98cef933c9fd0426ce3afc4b67fea.camel@redhat.com> From: Lyude Paul Date: Tue, 29 Jan 2019 14:26:10 -0500 In-Reply-To: <20190125140623.10801-22-paul.kocialkowski@bootlin.com> References: <20190125140623.10801-1-paul.kocialkowski@bootlin.com> <20190125140623.10801-22-paul.kocialkowski@bootlin.com> Mime-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v4 21/21] chamelium: Add a display test for randomized 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: Paul Kocialkowski , igt-dev@lists.freedesktop.org Cc: Petri Latvala , Eben Upton List-ID: UmV2aWV3ZWQtYnk6IEx5dWRlIFBhdWwgPGx5dWRlQHJlZGhhdC5jb20+CgpPbiBGcmksIDIwMTkt MDEtMjUgYXQgMTU6MDYgKzAxMDAsIFBhdWwgS29jaWFsa293c2tpIHdyb3RlOgo+IFRoaXMgaW50 cm9kdWNlcyBhIG5ldyB0ZXN0IGZvciB0aGUgQ2hhbWVsaXVtLCB0aGF0IHNldHMgdXAgcGxhbmVz Cj4gd2l0aCByYW5kb21pemVkIHByb3BlcnRpZXMgc3VjaCBhcyB0aGUgZm9ybWF0LCBkaW1lbnNp b25zLCBwb3NpdGlvbiwKPiBpbi1mcmFtZWJ1ZmZlciBvZmZzZXRzIGFuZCBzdHJpZGUuIFRoZSBD aGFtZWxpdW0gY2FwdHVyZSBpcyBjaGVja2VkCj4gYWdhaW5zdCB0aGUgcmVmZXJlbmNlIGdlbmVy YXRlZCBieSBjYWlybyB3aXRoIGVpdGhlciBhIENSQyBvciB0aGUKPiBjaGVja2VyYm9hcmQtc3Bl Y2lmaWMgY29tcGFyaXNvbiBtZXRob2QuCj4gCj4gVGhpcyB0ZXN0IGFsc28gaW5jbHVkZXMgdGVz dGluZyBvZiB0aGUgVkM0LXNwZWNpZmljIFQtdGlsZWQgYW5kCj4gU0FORC10aWxlZCBtb2Rlcywg aW4gYWxsIGZvcm1hdHMgc3VwcG9ydGVkIGJ5IHRoZSBoYXJkd2FyZS4KPiAKPiBTaW5jZSB0aGlz IHRlc3QgZG9lcyBub3Qgc2hhcmUgbXVjaCB3aXRoIHByZXZpb3VzIENoYW1lbGl1bSBkaXNwbGF5 Cj4gdGVzdHMgKGVzcGVjaWFsbHkgcmVnYXJkaW5nIEtNUyBjb25maWd1cmF0aW9uKSwgbW9zdCBv ZiB0aGUgY29kZSBpcwo+IG5vdCBzaGFyZWQgd2l0aCBvdGhlciB0ZXN0cy4KPiAKPiBUaGlzIHRl c3QgY2FuIGJlIGRlcml2ZWQgd2l0aCByZXByb2R1Y2libGUgcHJvcGVydGllcyBmb3IgcmVncmVz c2lvbgo+IHRlc3RpbmcgaW4gdGhlIGZ1dHVyZS4gRm9yIG5vdywgaXQgc2VydmVzIGFzIGEgZnV6 emluZyB0ZXN0Cj4gCj4gU2lnbmVkLW9mZi1ieTogUGF1bCBLb2NpYWxrb3dza2kgPHBhdWwua29j aWFsa293c2tpQGJvb3RsaW4uY29tPgo+IC0tLQo+ICB0ZXN0cy9rbXNfY2hhbWVsaXVtLmMgfCA0 MzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDEgZmlsZSBj aGFuZ2VkLCA0MzggaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfY2hh bWVsaXVtLmMgYi90ZXN0cy9rbXNfY2hhbWVsaXVtLmMKPiBpbmRleCBmMzMyNTkyYjRlZGIuLmUw NzE1OTUwMWM4NyAxMDA2NDQKPiAtLS0gYS90ZXN0cy9rbXNfY2hhbWVsaXVtLmMKPiArKysgYi90 ZXN0cy9rbXNfY2hhbWVsaXVtLmMKPiBAQCAtMjYsNiArMjYsNyBAQAo+ICAKPiAgI2luY2x1ZGUg ImNvbmZpZy5oIgo+ICAjaW5jbHVkZSAiaWd0LmgiCj4gKyNpbmNsdWRlICJpZ3RfdmM0LmgiCj4g IAo+ICAjaW5jbHVkZSA8ZmNudGwuaD4KPiAgI2luY2x1ZGUgPHN0cmluZy5oPgo+IEBAIC03MDMs NiArNzA0LDQzNSBAQCB0ZXN0X2Rpc3BsYXlfZnJhbWVfZHVtcChkYXRhX3QgKmRhdGEsIHN0cnVj dAo+IGNoYW1lbGl1bV9wb3J0ICpwb3J0KQo+ICAJZHJtTW9kZUZyZWVDb25uZWN0b3IoY29ubmVj dG9yKTsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgc2VsZWN0X3RpbGVkX21vZGlmaWVyKGlndF9w bGFuZV90ICpwbGFuZSwgdWludDMyX3Qgd2lkdGgsCj4gKwkJCQkgIHVpbnQzMl90IGhlaWdodCwg dWludDMyX3QgZm9ybWF0LAo+ICsJCQkJICB1aW50NjRfdCAqbW9kaWZpZXIpCj4gK3sKPiArCWlm IChpZ3RfcGxhbmVfaGFzX2Zvcm1hdF9tb2QocGxhbmUsIGZvcm1hdCwKPiArCQkJCSAgICAgRFJN X0ZPUk1BVF9NT0RfQlJPQURDT01fVkM0X1RfVElMRUQpKSB7Cj4gKwkJaWd0X2RlYnVnKCJTZWxl Y3RpbmcgVkM0IFQtdGlsaW5nXG4iKTsKPiArCj4gKwkJKm1vZGlmaWVyID0gRFJNX0ZPUk1BVF9N T0RfQlJPQURDT01fVkM0X1RfVElMRUQ7Cj4gKwl9IGVsc2UgaWYgKGlndF9wbGFuZV9oYXNfZm9y bWF0X21vZChwbGFuZSwgZm9ybWF0LAo+ICsJCQkJCSAgICBEUk1fRk9STUFUX01PRF9CUk9BRENP TV9TQU5EMjU2KSkKPiB7Cj4gKwkJLyogUmFuZG9taXplIHRoZSBjb2x1bW4gaGVpZ2h0IHRvIGxl c3MgdGhhbiB0d2ljZSB0aGUgbWluaW11bS4KPiAqLwo+ICsJCXNpemVfdCBjb2x1bW5faGVpZ2h0 ID0gKHJhbmQoKSAlIGhlaWdodCkgKyBoZWlnaHQ7Cj4gKwo+ICsJCWlndF9kZWJ1ZygiU2VsZWN0 aW5nIFZDNCBTQU5EMjU2IHRpbGluZyB3aXRoIGNvbHVtbiBoZWlnaHQKPiAlbGRcbiIsCj4gKwkJ CSAgY29sdW1uX2hlaWdodCk7Cj4gKwo+ICsJCSptb2RpZmllciA9Cj4gRFJNX0ZPUk1BVF9NT0Rf QlJPQURDT01fU0FORDI1Nl9DT0xfSEVJR0hUKGNvbHVtbl9oZWlnaHQpOwo+ICsJfSBlbHNlIHsK PiArCQkqbW9kaWZpZXIgPSBEUk1fRk9STUFUX01PRF9MSU5FQVI7Cj4gKwl9Cj4gK30KPiArCj4g K3N0YXRpYyB2b2lkIHJhbmRvbWl6ZV9wbGFuZV9mb3JtYXRfc3RyaWRlKGlndF9wbGFuZV90ICpw bGFuZSwKPiArCQkJCQkgIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCj4gKwkJCQkJ ICB1aW50MzJfdCAqZm9ybWF0LCB1aW50NjRfdAo+ICptb2RpZmllciwKPiArCQkJCQkgIHNpemVf dCAqc3RyaWRlLCBib29sIGFsbG93X3l1dikKPiArewo+ICsJc2l6ZV90IHN0cmlkZV9taW47Cj4g Kwl1aW50MzJfdCAqZm9ybWF0c19hcnJheTsKPiArCXVuc2lnbmVkIGludCBmb3JtYXRzX2NvdW50 Owo+ICsJdW5zaWduZWQgaW50IGNvdW50ID0gMDsKPiArCXVuc2lnbmVkIGludCBpOwo+ICsJYm9v bCB0aWxlZDsKPiArCWludCBpbmRleDsKPiArCj4gKwlpZ3RfZm9ybWF0X2FycmF5X2ZpbGwoJmZv cm1hdHNfYXJyYXksICZmb3JtYXRzX2NvdW50LCBhbGxvd195dXYpOwo+ICsKPiArCS8qIEZpcnN0 IHBhc3MgdG8gY291bnQgdGhlIHN1cHBvcnRlZCBmb3JtYXRzLiAqLwo+ICsJZm9yIChpID0gMDsg aSA8IGZvcm1hdHNfY291bnQ7IGkrKykKPiArCQlpZiAoaWd0X3BsYW5lX2hhc19mb3JtYXRfbW9k KHBsYW5lLCBmb3JtYXRzX2FycmF5W2ldLAo+ICsJCQkJCSAgICAgRFJNX0ZPUk1BVF9NT0RfTElO RUFSKSkKPiArCQkJY291bnQrKzsKPiArCj4gKwlpZ3RfYXNzZXJ0KGNvdW50ID4gMCk7Cj4gKwo+ ICsJaW5kZXggPSByYW5kKCkgJSBjb3VudDsKPiArCj4gKwkvKiBTZWNvbmQgcGFzcyB0byBnZXQg dGhlIGluZGV4LXRoIHN1cHBvcnRlZCBmb3JtYXQuICovCj4gKwlmb3IgKGkgPSAwOyBpIDwgZm9y bWF0c19jb3VudDsgaSsrKSB7Cj4gKwkJaWYgKCFpZ3RfcGxhbmVfaGFzX2Zvcm1hdF9tb2QocGxh bmUsIGZvcm1hdHNfYXJyYXlbaV0sCj4gKwkJCQkJICAgICAgRFJNX0ZPUk1BVF9NT0RfTElORUFS KSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCWlmICghaW5kZXgtLSkgewo+ICsJCQkqZm9ybWF0 ID0gZm9ybWF0c19hcnJheVtpXTsKPiArCQkJYnJlYWs7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCWZy ZWUoZm9ybWF0c19hcnJheSk7Cj4gKwo+ICsJaWd0X2Fzc2VydChpbmRleCA8IDApOwo+ICsKPiAr CXN0cmlkZV9taW4gPSB3aWR0aCAqIGlndF9mb3JtYXRfcGxhbmVfYnBwKCpmb3JtYXQsIDApIC8g ODsKPiArCj4gKwkvKiBSYW5kb21pemUgdGhlIHN0cmlkZSB0byBsZXNzIHRoYW4gdHdpY2UgdGhl IG1pbmltdW0uICovCj4gKwkqc3RyaWRlID0gKHJhbmQoKSAlIHN0cmlkZV9taW4pICsgc3RyaWRl X21pbjsKPiArCj4gKwkvKiBQaXhtYW4gcmVxdWlyZXMgdGhlIHN0cmlkZSB0byBiZSBhbGlnbmVk IHRvIDMyLWJ5dGUgd29yZHMuICovCj4gKwkqc3RyaWRlID0gQUxJR04oKnN0cmlkZSwgc2l6ZW9m KHVpbnQzMl90KSk7Cj4gKwo+ICsJLyogUmFuZG9taXplIHRoZSB1c2Ugb2YgYSB0aWxlZCBtb2Rl IHdpdGggYSAxLzQgcHJvYmFiaWxpdHkuICovCj4gKwl0aWxlZCA9ICgocmFuZCgpICUgNCkgPT0g MCk7Cj4gKwo+ICsJaWYgKHRpbGVkKQo+ICsJCXNlbGVjdF90aWxlZF9tb2RpZmllcihwbGFuZSwg d2lkdGgsIGhlaWdodCwgKmZvcm1hdCwKPiBtb2RpZmllcik7Cj4gKwllbHNlCj4gKwkJKm1vZGlm aWVyID0gRFJNX0ZPUk1BVF9NT0RfTElORUFSOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCByYW5k b21pemVfcGxhbmVfZGltZW5zaW9ucyhkcm1Nb2RlTW9kZUluZm8gKm1vZGUsCj4gKwkJCQkgICAg ICAgdWludDMyX3QgKndpZHRoLCB1aW50MzJfdCAqaGVpZ2h0LAo+ICsJCQkJICAgICAgIHVpbnQz Ml90ICpzcmNfdywgdWludDMyX3QgKnNyY19oLAo+ICsJCQkJICAgICAgIHVpbnQzMl90ICpzcmNf eCwgdWludDMyX3QgKnNyY195LAo+ICsJCQkJICAgICAgIHVpbnQzMl90ICpjcnRjX3csIHVpbnQz Ml90ICpjcnRjX2gsCj4gKwkJCQkgICAgICAgaW50MzJfdCAqY3J0Y194LCBpbnQzMl90ICpjcnRj X3ksCj4gKwkJCQkgICAgICAgYm9vbCBhbGxvd19zY2FsaW5nKQo+ICt7Cj4gKwlkb3VibGUgcmF0 aW87Cj4gKwo+ICsJLyogUmFuZG9taXplIHdpZHRoIGFuZCBoZWlnaHQgaW4gdGhlIG1vZGUgZGlt ZW5zaW9ucyByYW5nZS4gKi8KPiArCSp3aWR0aCA9IChyYW5kKCkgJSBtb2RlLT5oZGlzcGxheSkg KyAxOwo+ICsJKmhlaWdodCA9IChyYW5kKCkgJSBtb2RlLT52ZGlzcGxheSkgKyAxOwo+ICsKPiAr CS8qIFJhbmRvbWl6ZSBzb3VyY2Ugb2Zmc2V0IGluIHRoZSBmaXJzdCBoYWxmIG9mIHRoZSBvcmln aW5hbCBzaXplLiAqLwo+ICsJKnNyY194ID0gcmFuZCgpICUgKCp3aWR0aCAvIDIpOwo+ICsJKnNy Y195ID0gcmFuZCgpICUgKCpoZWlnaHQgLyAyKTsKPiArCj4gKwkvKiBUaGUgc291cmNlIHNpemUg b25seSBpbmNsdWRlcyB0aGUgYWN0aXZlIHNvdXJjZSBhcmVhLiAqLwo+ICsJKnNyY193ID0gKndp ZHRoIC0gKnNyY194Owo+ICsJKnNyY19oID0gKmhlaWdodCAtICpzcmNfeTsKPiArCj4gKwlpZiAo YWxsb3dfc2NhbGluZykgewo+ICsJCSpjcnRjX3cgPSAocmFuZCgpICUgbW9kZS0+aGRpc3BsYXkp ICsgMTsKPiArCQkqY3J0Y19oID0gKHJhbmQoKSAlIG1vZGUtPnZkaXNwbGF5KSArIDE7Cj4gKwo+ ICsJCS8qCj4gKwkJICogRG9uJ3QgYm90aGVyIHdpdGggc2NhbGluZyBpZiBkaW1lbnNpb25zIGFy ZSBxdWl0ZSBjbG9zZSBpbgo+ICsJCSAqIG9yZGVyIHRvIGdldCBub24tc2NhbGluZyBjYXNlcyBt b3JlIGZyZXF1ZW50bHkuIEFsc28gbGltaXQKPiArCQkgKiBzY2FsaW5nIHRvIDN4IHRvIGF2b2lk IGFncmVzc2l2ZSBmaWx0ZXJpbmcgdGhhdCBtYWtlcwo+ICsJCSAqIGNvbXBhcmlzb24gbGVzcyBy ZWxpYWJsZS4KPiArCQkgKi8KPiArCj4gKwkJcmF0aW8gPSAoKGRvdWJsZSkgKmNydGNfdyAvICpz cmNfdyk7Cj4gKwkJaWYgKHJhdGlvID4gMC44ICYmIHJhdGlvIDwgMS4yKQo+ICsJCQkqY3J0Y193 ID0gKnNyY193Owo+ICsJCWVsc2UgaWYgKHJhdGlvID4gMy4wKQo+ICsJCQkqY3J0Y193ID0gKnNy Y193ICogMzsKPiArCj4gKwkJcmF0aW8gPSAoKGRvdWJsZSkgKmNydGNfaCAvICpzcmNfaCk7Cj4g KwkJaWYgKHJhdGlvID4gMC44ICYmIHJhdGlvIDwgMS4yKQo+ICsJCQkqY3J0Y19oID0gKnNyY19o Owo+ICsJCWVsc2UgaWYgKHJhdGlvID4gMy4wKQo+ICsJCQkqY3J0Y19oID0gKnNyY19oICogMzsK PiArCX0gZWxzZSB7Cj4gKwkJKmNydGNfdyA9ICpzcmNfdzsKPiArCQkqY3J0Y19oID0gKnNyY19o Owo+ICsJfQo+ICsKPiArCWlmICgqY3J0Y193ICE9ICpzcmNfdyB8fCAqY3J0Y19oICE9ICpzcmNf aCkgewo+ICsJCS8qCj4gKwkJICogV2hlbiBzY2FsaW5nIGlzIGludm9sdmVkLCBtYWtlIHN1cmUg dG8gbm90IGdvIG9mZi1ib3VuZHMgb3IKPiArCQkgKiBzY2FsZWQgY2xpcHBpbmcgbWF5IHJlc3Vs dCBpbiBkZWNpbWFsIGRpbWVuc2lvbnMsIHRoYXQgbW9zdAo+ICsJCSAqIGRyaXZlcnMgZG9uJ3Qg c3VwcG9ydC4KPiArCQkgKi8KPiArCQkqY3J0Y194ID0gcmFuZCgpICUgKG1vZGUtPmhkaXNwbGF5 IC0gKmNydGNfdyk7Cj4gKwkJKmNydGNfeSA9IHJhbmQoKSAlIChtb2RlLT52ZGlzcGxheSAtICpj cnRjX2gpOwo+ICsJfSBlbHNlIHsKPiArCQkvKgo+ICsJCSAqIFJhbmRvbWl6ZSB0aGUgb24tY3J0 YyBwb3NpdGlvbiBhbmQgYWxsb3cgdGhlIHBsYW5lIHRvIGdvCj4gKwkJICogb2ZmLWRpc3BsYXkg YnkgbGVzcyB0aGFuIGhhbGYgb2YgaXRzIG9uLWNydGMgZGltZW5zaW9ucy4KPiArCQkgKi8KPiAr CQkqY3J0Y194ID0gKHJhbmQoKSAlIG1vZGUtPmhkaXNwbGF5KSAtICpjcnRjX3cgLyAyOwo+ICsJ CSpjcnRjX3kgPSAocmFuZCgpICUgbW9kZS0+dmRpc3BsYXkpIC0gKmNydGNfaCAvIDI7Cj4gKwl9 Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGJsaXRfcGxhbmVfY2Fpcm8oZGF0YV90ICpkYXRhLCBj YWlyb19zdXJmYWNlX3QgKnJlc3VsdCwKPiArCQkJICAgICB1aW50MzJfdCBzcmNfdywgdWludDMy X3Qgc3JjX2gsCj4gKwkJCSAgICAgdWludDMyX3Qgc3JjX3gsIHVpbnQzMl90IHNyY195LAo+ICsJ CQkgICAgIHVpbnQzMl90IGNydGNfdywgdWludDMyX3QgY3J0Y19oLAo+ICsJCQkgICAgIGludDMy X3QgY3J0Y194LCBpbnQzMl90IGNydGNfeSwKPiArCQkJICAgICBzdHJ1Y3QgaWd0X2ZiICpmYikK PiArewo+ICsJY2Fpcm9fc3VyZmFjZV90ICpzdXJmYWNlOwo+ICsJY2Fpcm9fc3VyZmFjZV90ICpj bGlwcGVkX3N1cmZhY2U7Cj4gKwljYWlyb190ICpjcjsKPiArCj4gKwlzdXJmYWNlID0gaWd0X2dl dF9jYWlyb19zdXJmYWNlKGRhdGEtPmRybV9mZCwgZmIpOwo+ICsKPiArCWlmIChzcmNfeCB8fCBz cmNfeSkgewo+ICsJCWNsaXBwZWRfc3VyZmFjZSA9Cj4gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVh dGUoQ0FJUk9fRk9STUFUX1JHQjI0LAo+ICsJCQkJCQkJICAgICBzcmNfdywgc3JjX2gpOwo+ICsK PiArCQljciA9IGNhaXJvX2NyZWF0ZShjbGlwcGVkX3N1cmZhY2UpOwo+ICsKPiArCQljYWlyb190 cmFuc2xhdGUoY3IsIC0xLiAqIHNyY194LCAtMS4gKiBzcmNfeSk7Cj4gKwo+ICsJCWNhaXJvX3Nl dF9zb3VyY2Vfc3VyZmFjZShjciwgc3VyZmFjZSwgMCwgMCk7Cj4gKwo+ICsJCWNhaXJvX3BhaW50 KGNyKTsKPiArCQljYWlyb19zdXJmYWNlX2ZsdXNoKGNsaXBwZWRfc3VyZmFjZSk7Cj4gKwo+ICsJ CWNhaXJvX2Rlc3Ryb3koY3IpOwo+ICsJfSBlbHNlIHsKPiArCQljbGlwcGVkX3N1cmZhY2UgPSBz dXJmYWNlOwo+ICsJfQo+ICsKPiArCWNyID0gY2Fpcm9fY3JlYXRlKHJlc3VsdCk7Cj4gKwo+ICsJ Y2Fpcm9fdHJhbnNsYXRlKGNyLCBjcnRjX3gsIGNydGNfeSk7Cj4gKwo+ICsJaWYgKHNyY193ICE9 IGNydGNfdyB8fCBzcmNfaCAhPSBjcnRjX2gpIHsKPiArCQljYWlyb19zY2FsZShjciwgKGRvdWJs ZSkgY3J0Y193IC8gc3JjX3csCj4gKwkJCSAgICAoZG91YmxlKSBjcnRjX2ggLyBzcmNfaCk7Cj4g Kwl9Cj4gKwo+ICsJY2Fpcm9fc2V0X3NvdXJjZV9zdXJmYWNlKGNyLCBjbGlwcGVkX3N1cmZhY2Us IDAsIDApOwo+ICsJY2Fpcm9fc3VyZmFjZV9kZXN0cm95KGNsaXBwZWRfc3VyZmFjZSk7Cj4gKwo+ ICsJaWYgKHNyY193ICE9IGNydGNfdyB8fCBzcmNfaCAhPSBjcnRjX2gpIHsKPiArCQljYWlyb19w YXR0ZXJuX3NldF9maWx0ZXIoY2Fpcm9fZ2V0X3NvdXJjZShjciksCj4gKwkJCQkJIENBSVJPX0ZJ TFRFUl9CSUxJTkVBUik7Cj4gKwkJY2Fpcm9fcGF0dGVybl9zZXRfZXh0ZW5kKGNhaXJvX2dldF9z b3VyY2UoY3IpLAo+ICsJCQkJCSBDQUlST19FWFRFTkRfTk9ORSk7Cj4gKwl9Cj4gKwo+ICsJY2Fp cm9fcGFpbnQoY3IpOwo+ICsJY2Fpcm9fc3VyZmFjZV9mbHVzaChyZXN1bHQpOwo+ICsKPiArCWNh aXJvX2Rlc3Ryb3koY3IpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBjb25maWd1cmVfcGxhbmUo aWd0X3BsYW5lX3QgKnBsYW5lLCB1aW50MzJfdCBzcmNfdywgdWludDMyX3QKPiBzcmNfaCwKPiAr CQkJICAgIHVpbnQzMl90IHNyY194LCB1aW50MzJfdCBzcmNfeSwgdWludDMyX3QgY3J0Y193LAo+ ICsJCQkgICAgdWludDMyX3QgY3J0Y19oLCBpbnQzMl90IGNydGNfeCwgaW50MzJfdCBjcnRjX3ks Cj4gKwkJCSAgICBzdHJ1Y3QgaWd0X2ZiICpmYikKPiArewo+ICsJaWd0X3BsYW5lX3NldF9mYihw bGFuZSwgZmIpOwo+ICsKPiArCWlndF9wbGFuZV9zZXRfcG9zaXRpb24ocGxhbmUsIGNydGNfeCwg Y3J0Y195KTsKPiArCWlndF9wbGFuZV9zZXRfc2l6ZShwbGFuZSwgY3J0Y193LCBjcnRjX2gpOwo+ ICsKPiArCWlndF9mYl9zZXRfcG9zaXRpb24oZmIsIHBsYW5lLCBzcmNfeCwgc3JjX3kpOwo+ICsJ aWd0X2ZiX3NldF9zaXplKGZiLCBwbGFuZSwgc3JjX3csIHNyY19oKTsKPiArfQo+ICsKPiArc3Rh dGljIHZvaWQgcHJlcGFyZV9yYW5kb21pemVkX3BsYW5lKGRhdGFfdCAqZGF0YSwKPiArCQkJCSAg ICAgZHJtTW9kZU1vZGVJbmZvICptb2RlLAo+ICsJCQkJICAgICBpZ3RfcGxhbmVfdCAqcGxhbmUs Cj4gKwkJCQkgICAgIHN0cnVjdCBpZ3RfZmIgKm92ZXJsYXlfZmIsCj4gKwkJCQkgICAgIHVuc2ln bmVkIGludCBpbmRleCwKPiArCQkJCSAgICAgY2Fpcm9fc3VyZmFjZV90ICpyZXN1bHRfc3VyZmFj ZSwKPiArCQkJCSAgICAgYm9vbCBhbGxvd19zY2FsaW5nLCBib29sIGFsbG93X3l1dikKPiArewo+ ICsJc3RydWN0IGlndF9mYiBwYXR0ZXJuX2ZiOwo+ICsJdWludDMyX3Qgb3ZlcmxheV9mYl93LCBv dmVybGF5X2ZiX2g7Cj4gKwl1aW50MzJfdCBvdmVybGF5X3NyY193LCBvdmVybGF5X3NyY19oOwo+ ICsJdWludDMyX3Qgb3ZlcmxheV9zcmNfeCwgb3ZlcmxheV9zcmNfeTsKPiArCWludDMyX3Qgb3Zl cmxheV9jcnRjX3gsIG92ZXJsYXlfY3J0Y195Owo+ICsJdWludDMyX3Qgb3ZlcmxheV9jcnRjX3cs IG92ZXJsYXlfY3J0Y19oOwo+ICsJdWludDMyX3QgZm9ybWF0Owo+ICsJdWludDY0X3QgbW9kaWZp ZXI7Cj4gKwlzaXplX3Qgc3RyaWRlOwo+ICsJYm9vbCB0aWxlZDsKPiArCWludCBmYl9pZDsKPiAr Cj4gKwlyYW5kb21pemVfcGxhbmVfZGltZW5zaW9ucyhtb2RlLCAmb3ZlcmxheV9mYl93LCAmb3Zl cmxheV9mYl9oLAo+ICsJCQkJICAgJm92ZXJsYXlfc3JjX3csICZvdmVybGF5X3NyY19oLAo+ICsJ CQkJICAgJm92ZXJsYXlfc3JjX3gsICZvdmVybGF5X3NyY195LAo+ICsJCQkJICAgJm92ZXJsYXlf Y3J0Y193LCAmb3ZlcmxheV9jcnRjX2gsCj4gKwkJCQkgICAmb3ZlcmxheV9jcnRjX3gsICZvdmVy bGF5X2NydGNfeSwKPiArCQkJCSAgIGFsbG93X3NjYWxpbmcpOwo+ICsKPiArCWlndF9kZWJ1Zygi UGxhbmUgJWQ6IGZyYW1lYnVmZmVyIHNpemUgJWR4JWRcbiIsIGluZGV4LAo+ICsJCSAgb3Zlcmxh eV9mYl93LCBvdmVybGF5X2ZiX2gpOwo+ICsJaWd0X2RlYnVnKCJQbGFuZSAlZDogb24tY3J0YyBz aXplICVkeCVkXG4iLCBpbmRleCwKPiArCQkgIG92ZXJsYXlfY3J0Y193LCBvdmVybGF5X2NydGNf aCk7Cj4gKwlpZ3RfZGVidWcoIlBsYW5lICVkOiBvbi1jcnRjIHBvc2l0aW9uICVkeCVkXG4iLCBp bmRleCwKPiArCQkgIG92ZXJsYXlfY3J0Y194LCBvdmVybGF5X2NydGNfeSk7Cj4gKwlpZ3RfZGVi dWcoIlBsYW5lICVkOiBpbi1mcmFtZWJ1ZmZlciBzaXplICVkeCVkXG4iLCBpbmRleCwKPiArCQkg IG92ZXJsYXlfc3JjX3csIG92ZXJsYXlfc3JjX2gpOwo+ICsJaWd0X2RlYnVnKCJQbGFuZSAlZDog aW4tZnJhbWVidWZmZXIgcG9zaXRpb24gJWR4JWRcbiIsIGluZGV4LAo+ICsJCSAgb3ZlcmxheV9z cmNfeCwgb3ZlcmxheV9zcmNfeSk7Cj4gKwo+ICsJLyogR2V0IGEgcGF0dGVybiBmcmFtZWJ1ZmZl ciBmb3IgdGhlIG92ZXJsYXkgcGxhbmUuICovCj4gKwlmYl9pZCA9IGNoYW1lbGl1bV9nZXRfcGF0 dGVybl9mYihkYXRhLCBvdmVybGF5X2ZiX3csIG92ZXJsYXlfZmJfaCwKPiArCQkJCQkgRFJNX0ZP Uk1BVF9YUkdCODg4OCwgMzIsCj4gJnBhdHRlcm5fZmIpOwo+ICsJaWd0X2Fzc2VydChmYl9pZCA+ IDApOwo+ICsKPiArCXJhbmRvbWl6ZV9wbGFuZV9mb3JtYXRfc3RyaWRlKHBsYW5lLCBvdmVybGF5 X2ZiX3csIG92ZXJsYXlfZmJfaCwKPiArCQkJCSAgICAgICZmb3JtYXQsICZtb2RpZmllciwgJnN0 cmlkZSwgYWxsb3dfeXV2KTsKPiArCj4gKwl0aWxlZCA9IChtb2RpZmllciAhPSBMT0NBTF9EUk1f Rk9STUFUX01PRF9OT05FKTsKPiArCj4gKwlpZ3RfZGVidWcoIlBsYW5lICVkOiAlcyBmb3JtYXQg KCVzKSB3aXRoIHN0cmlkZSAlbGRcbiIsIGluZGV4LAo+ICsJCSAgaWd0X2Zvcm1hdF9zdHIoZm9y bWF0KSwgdGlsZWQgPyAidGlsZWQiIDogImxpbmVhciIsIHN0cmlkZSk7Cj4gKwo+ICsJZmJfaWQg PSBpZ3RfZmJfY29udmVydF93aXRoX3N0cmlkZShvdmVybGF5X2ZiLCAmcGF0dGVybl9mYiwgZm9y bWF0LAo+ICsJCQkJCSAgIG1vZGlmaWVyLCBzdHJpZGUpOwo+ICsJaWd0X2Fzc2VydChmYl9pZCA+ IDApOwo+ICsKPiArCWJsaXRfcGxhbmVfY2Fpcm8oZGF0YSwgcmVzdWx0X3N1cmZhY2UsIG92ZXJs YXlfc3JjX3csIG92ZXJsYXlfc3JjX2gsCj4gKwkJCSBvdmVybGF5X3NyY194LCBvdmVybGF5X3Ny Y195LAo+ICsJCQkgb3ZlcmxheV9jcnRjX3csIG92ZXJsYXlfY3J0Y19oLAo+ICsJCQkgb3Zlcmxh eV9jcnRjX3gsIG92ZXJsYXlfY3J0Y195LCAmcGF0dGVybl9mYik7Cj4gKwo+ICsJY29uZmlndXJl X3BsYW5lKHBsYW5lLCBvdmVybGF5X3NyY193LCBvdmVybGF5X3NyY19oLAo+ICsJCQlvdmVybGF5 X3NyY194LCBvdmVybGF5X3NyY195LAo+ICsJCQlvdmVybGF5X2NydGNfdywgb3ZlcmxheV9jcnRj X2gsCj4gKwkJCW92ZXJsYXlfY3J0Y194LCBvdmVybGF5X2NydGNfeSwgb3ZlcmxheV9mYik7Cj4g Kwo+ICsJLyogUmVtb3ZlIHRoZSBvcmlnaW5hbCBwYXR0ZXJuIGZyYW1lYnVmZmVyLiAqLwo+ICsJ aWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZwYXR0ZXJuX2ZiKTsKPiArfQo+ICsKPiArc3Rh dGljIHZvaWQgdGVzdF9kaXNwbGF5X3BsYW5lc19yYW5kb20oZGF0YV90ICpkYXRhLAo+ICsJCQkJ ICAgICAgIHN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydCwKPiArCQkJCSAgICAgICBlbnVtIGNo YW1lbGl1bV9jaGVjayBjaGVjaykKPiArewo+ICsJaWd0X291dHB1dF90ICpvdXRwdXQ7Cj4gKwlk cm1Nb2RlTW9kZUluZm8gKm1vZGU7Cj4gKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeV9wbGFuZTsKPiAr CXN0cnVjdCBpZ3RfZmIgcHJpbWFyeV9mYjsKPiArCXN0cnVjdCBpZ3RfZmIgcmVzdWx0X2ZiOwo+ ICsJc3RydWN0IGlndF9mYiAqb3ZlcmxheV9mYnM7Cj4gKwlpZ3RfY3JjX3QgKmNyYzsKPiArCWln dF9jcmNfdCAqZXhwZWN0ZWRfY3JjOwo+ICsJc3RydWN0IGNoYW1lbGl1bV9mYl9jcmNfYXN5bmNf ZGF0YSAqZmJfY3JjOwo+ICsJdW5zaWduZWQgaW50IG92ZXJsYXlfcGxhbmVzX21heCA9IDA7Cj4g Kwl1bnNpZ25lZCBpbnQgb3ZlcmxheV9wbGFuZXNfY291bnQ7Cj4gKwljYWlyb19zdXJmYWNlX3Qg KnJlc3VsdF9zdXJmYWNlOwo+ICsJaW50IGNhcHR1cmVkX2ZyYW1lX2NvdW50Owo+ICsJYm9vbCBh bGxvd19zY2FsaW5nOwo+ICsJYm9vbCBhbGxvd195dXY7Cj4gKwl1bnNpZ25lZCBpbnQgaTsKPiAr CXVuc2lnbmVkIGludCBmYl9pZDsKPiArCj4gKwlzd2l0Y2ggKGNoZWNrKSB7Cj4gKwljYXNlIENI QU1FTElVTV9DSEVDS19DUkM6Cj4gKwkJYWxsb3dfc2NhbGluZyA9IGZhbHNlOwo+ICsJCWFsbG93 X3l1diA9IGZhbHNlOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBDSEFNRUxJVU1fQ0hFQ0tfQ0hFQ0tF UkJPQVJEOgo+ICsJCWFsbG93X3NjYWxpbmcgPSB0cnVlOwo+ICsJCWFsbG93X3l1diA9IHRydWU7 Cj4gKwkJYnJlYWs7Cj4gKwlkZWZhdWx0Ogo+ICsJCWlndF9hc3NlcnQoZmFsc2UpOwo+ICsJfQo+ ICsKPiArCXNyYW5kKHRpbWUoTlVMTCkpOwo+ICsKPiArCXJlc2V0X3N0YXRlKGRhdGEsIHBvcnQp Owo+ICsKPiArCS8qIEZpbmQgdGhlIGNvbm5lY3RvciBhbmQgcGlwZS4gKi8KPiArCW91dHB1dCA9 IHByZXBhcmVfb3V0cHV0KGRhdGEsIHBvcnQpOwo+ICsKPiArCW1vZGUgPSBpZ3Rfb3V0cHV0X2dl dF9tb2RlKG91dHB1dCk7Cj4gKwo+ICsJLyogR2V0IGEgZnJhbWVidWZmZXIgZm9yIHRoZSBwcmlt YXJ5IHBsYW5lLiAqLwo+ICsJcHJpbWFyeV9wbGFuZSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5 cGUob3V0cHV0LAo+IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ICsJaWd0X2Fzc2VydChwcmlt YXJ5X3BsYW5lKTsKPiArCj4gKwlmYl9pZCA9IGNoYW1lbGl1bV9nZXRfcGF0dGVybl9mYihkYXRh LCBtb2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXksCj4gKwkJCQkJIERSTV9GT1JNQVRfWFJH Qjg4ODgsIDY0LAo+ICZwcmltYXJ5X2ZiKTsKPiArCWlndF9hc3NlcnQoZmJfaWQgPiAwKTsKPiAr Cj4gKwkvKiBHZXQgYSBmcmFtZWJ1ZmZlciBmb3IgdGhlIGNhaXJvIGNvbXBvc2l0aW9uIHJlc3Vs dC4gKi8KPiArCWZiX2lkID0gaWd0X2NyZWF0ZV9mYihkYXRhLT5kcm1fZmQsIG1vZGUtPmhkaXNw bGF5LAo+ICsJCQkgICAgICBtb2RlLT52ZGlzcGxheSwgRFJNX0ZPUk1BVF9YUkdCODg4OCwKPiAr CQkJICAgICAgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwgJnJlc3VsdF9mYik7Cj4gKwlpZ3Rf YXNzZXJ0KGZiX2lkID4gMCk7Cj4gKwo+ICsJcmVzdWx0X3N1cmZhY2UgPSBpZ3RfZ2V0X2NhaXJv X3N1cmZhY2UoZGF0YS0+ZHJtX2ZkLCAmcmVzdWx0X2ZiKTsKPiArCj4gKwkvKiBQYWludCB0aGUg cHJpbWFyeSBmcmFtZWJ1ZmZlciBvbiB0aGUgcmVzdWx0IHN1cmZhY2UuICovCj4gKwlibGl0X3Bs YW5lX2NhaXJvKGRhdGEsIHJlc3VsdF9zdXJmYWNlLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAo+ ICsJCQkgJnByaW1hcnlfZmIpOwo+ICsKPiArCS8qIENvbmZpZ3VyZSB0aGUgcHJpbWFyeSBwbGFu ZS4gKi8KPiArCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeV9wbGFuZSwgJnByaW1hcnlfZmIpOwo+ ICsKPiArCW92ZXJsYXlfcGxhbmVzX21heCA9Cj4gKwkJaWd0X291dHB1dF9jb3VudF9wbGFuZV90 eXBlKG91dHB1dCwgRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSk7Cj4gKwo+ICsJLyogTGltaXQgdGhl IG51bWJlciBvZiBwbGFuZXMgdG8gYSByZWFzb25hYmxlIHNjZW5lLiAqLwo+ICsJb3ZlcmxheV9w bGFuZXNfbWF4ID0gbWF4KG92ZXJsYXlfcGxhbmVzX21heCwgNCk7Cj4gKwo+ICsJb3ZlcmxheV9w bGFuZXNfY291bnQgPSAocmFuZCgpICUgb3ZlcmxheV9wbGFuZXNfbWF4KSArIDE7Cj4gKwlpZ3Rf ZGVidWcoIlVzaW5nICVkIG92ZXJsYXkgcGxhbmVzXG4iLCBvdmVybGF5X3BsYW5lc19jb3VudCk7 Cj4gKwo+ICsJb3ZlcmxheV9mYnMgPSBjYWxsb2Moc2l6ZW9mKHN0cnVjdCBpZ3RfZmIpLCBvdmVy bGF5X3BsYW5lc19jb3VudCk7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IG92ZXJsYXlfcGxhbmVz X2NvdW50OyBpKyspIHsKPiArCQlzdHJ1Y3QgaWd0X2ZiICpvdmVybGF5X2ZiID0gJm92ZXJsYXlf ZmJzW2ldOwo+ICsJCWlndF9wbGFuZV90ICpwbGFuZSA9Cj4gKwkJCWlndF9vdXRwdXRfZ2V0X3Bs YW5lX3R5cGVfaW5kZXgob3V0cHV0LAo+ICsJCQkJCQkJRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWQo+ ICwKPiArCQkJCQkJCWkpOwo+ICsJCWlndF9hc3NlcnQocGxhbmUpOwo+ICsKPiArCQlwcmVwYXJl X3JhbmRvbWl6ZWRfcGxhbmUoZGF0YSwgbW9kZSwgcGxhbmUsIG92ZXJsYXlfZmIsIGksCj4gKwkJ CQkJIHJlc3VsdF9zdXJmYWNlLCBhbGxvd19zY2FsaW5nLAo+ICsJCQkJCSBhbGxvd195dXYpOwo+ ICsJfQo+ICsKPiArCWNhaXJvX3N1cmZhY2VfZGVzdHJveShyZXN1bHRfc3VyZmFjZSk7Cj4gKwo+ ICsJaWYgKGNoZWNrID09IENIQU1FTElVTV9DSEVDS19DUkMpCj4gKwkJZmJfY3JjID0gY2hhbWVs aXVtX2NhbGN1bGF0ZV9mYl9jcmNfYXN5bmNfc3RhcnQoZGF0YS0+ZHJtX2ZkLAo+ICsJCQkJCQkJ CSZyZXN1bHRfZmIpOwo+ICsKPiArCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXks IENPTU1JVF9BVE9NSUMpOwo+ICsKPiArCWlmIChjaGVjayA9PSBDSEFNRUxJVU1fQ0hFQ0tfQ1JD KSB7Cj4gKwkJY2hhbWVsaXVtX2NhcHR1cmUoZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LCAwLCAwLCAw LCAwLCAxKTsKPiArCQljcmMgPSBjaGFtZWxpdW1fcmVhZF9jYXB0dXJlZF9jcmNzKGRhdGEtPmNo YW1lbGl1bSwKPiArCQkJCQkJICAgJmNhcHR1cmVkX2ZyYW1lX2NvdW50KTsKPiArCj4gKwkJaWd0 X2Fzc2VydChjYXB0dXJlZF9mcmFtZV9jb3VudCA9PSAxKTsKPiArCj4gKwkJZXhwZWN0ZWRfY3Jj ID0KPiBjaGFtZWxpdW1fY2FsY3VsYXRlX2ZiX2NyY19hc3luY19maW5pc2goZmJfY3JjKTsKPiAr Cj4gKwkJY2hhbWVsaXVtX2Fzc2VydF9jcmNfZXFfb3JfZHVtcChkYXRhLT5jaGFtZWxpdW0sCj4g KwkJCQkJCWV4cGVjdGVkX2NyYywgY3JjLAo+ICsJCQkJCQkmcmVzdWx0X2ZiLCAwKTsKPiArCj4g KwkJZnJlZShleHBlY3RlZF9jcmMpOwo+ICsJCWZyZWUoY3JjKTsKPiArCX0gZWxzZSBpZiAoY2hl Y2sgPT0gQ0hBTUVMSVVNX0NIRUNLX0NIRUNLRVJCT0FSRCkgewo+ICsJCXN0cnVjdCBjaGFtZWxp dW1fZnJhbWVfZHVtcCAqZHVtcDsKPiArCj4gKwkJZHVtcCA9IGNoYW1lbGl1bV9wb3J0X2R1bXBf cGl4ZWxzKGRhdGEtPmNoYW1lbGl1bSwgcG9ydCwgMCwgMCwKPiArCQkJCQkJICAwLCAwKTsKPiAr CQljaGFtZWxpdW1fYXNzZXJ0X2ZyYW1lX21hdGNoX29yX2R1bXAoZGF0YS0+Y2hhbWVsaXVtLCBw b3J0LAo+ICsJCQkJCQkgICAgIGR1bXAsICZyZXN1bHRfZmIsIGNoZWNrKTsKPiArCQljaGFtZWxp dW1fZGVzdHJveV9mcmFtZV9kdW1wKGR1bXApOwo+ICsJfQo+ICsKPiArCWZvciAoaSA9IDA7IGkg PCBvdmVybGF5X3BsYW5lc19jb3VudDsgaSsrKSB7Cj4gKwkJc3RydWN0IGlndF9mYiAqb3Zlcmxh eV9mYiA9ICZvdmVybGF5X2Zic1tpXTsKPiArCQlpZ3RfcGxhbmVfdCAqcGxhbmU7Cj4gKwo+ICsJ CXBsYW5lID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZV9pbmRleChvdXRwdXQsCj4gKwkJCQkJ CQlEUk1fUExBTkVfVFlQRV9PVkVSTEFZCj4gLAo+ICsJCQkJCQkJaSk7Cj4gKwkJaWd0X2Fzc2Vy dChwbGFuZSk7Cj4gKwo+ICsJCWlndF9yZW1vdmVfZmIoZGF0YS0+ZHJtX2ZkLCBvdmVybGF5X2Zi KTsKPiArCX0KPiArCj4gKwlmcmVlKG92ZXJsYXlfZmJzKTsKPiArCj4gKwlpZ3RfcmVtb3ZlX2Zi KGRhdGEtPmRybV9mZCwgJnByaW1hcnlfZmIpOwo+ICsJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1f ZmQsICZyZXN1bHRfZmIpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZAo+ICB0ZXN0X2hwZF93aXRo b3V0X2RkYyhkYXRhX3QgKmRhdGEsIHN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydCkKPiAgewo+ IEBAIC05NzcsNiArMTQwNywxMCBAQCBpZ3RfbWFpbgo+ICAJCQl0ZXN0X2Rpc3BsYXlfb25lX21v ZGUoJmRhdGEsIHBvcnQsCj4gRFJNX0ZPUk1BVF9YUkdCMTU1NSwKPiAgCQkJCQkgICAgICBDSEFN RUxJVU1fQ0hFQ0tfQ1JDLCAxKTsKPiAgCj4gKwkJY29ubmVjdG9yX3N1YnRlc3QoImhkbWktY3Jj LXBsYW5lcy1yYW5kb20iLCBIRE1JQSkKPiArCQkJdGVzdF9kaXNwbGF5X3BsYW5lc19yYW5kb20o JmRhdGEsIHBvcnQsCj4gKwkJCQkJCSAgIENIQU1FTElVTV9DSEVDS19DUkMpOwo+ICsKPiAgCQlj b25uZWN0b3Jfc3VidGVzdCgiaGRtaS1jbXAtbnYxMiIsIEhETUlBKQo+ICAJCQl0ZXN0X2Rpc3Bs YXlfb25lX21vZGUoJmRhdGEsIHBvcnQsIERSTV9GT1JNQVRfTlYxMiwKPiAgCQkJCQkgICAgICBD SEFNRUxJVU1fQ0hFQ0tfQ0hFQ0tFUkJPQVJELAo+IDEpOwo+IEBAIC0xMDA5LDYgKzE0NDMsMTAg QEAgaWd0X21haW4KPiAgCQkJdGVzdF9kaXNwbGF5X29uZV9tb2RlKCZkYXRhLCBwb3J0LCBEUk1f Rk9STUFUX1lWVTQyMiwKPiAgCQkJCQkgICAgICBDSEFNRUxJVU1fQ0hFQ0tfQ0hFQ0tFUkJPQVJE LAo+IDEpOwo+ICAKPiArCQljb25uZWN0b3Jfc3VidGVzdCgiaGRtaS1jbXAtcGxhbmVzLXJhbmRv bSIsIEhETUlBKQo+ICsJCQl0ZXN0X2Rpc3BsYXlfcGxhbmVzX3JhbmRvbSgmZGF0YSwgcG9ydCwK PiArCQkJCQkJICAgQ0hBTUVMSVVNX0NIRUNLX0NIRUNLRVJCT0FSCj4gRCk7Cj4gKwo+ICAJCWNv bm5lY3Rvcl9zdWJ0ZXN0KCJoZG1pLWZyYW1lLWR1bXAiLCBIRE1JQSkKPiAgCQkJdGVzdF9kaXNw bGF5X2ZyYW1lX2R1bXAoJmRhdGEsIHBvcnQpOwo+ICAJfQotLSAKQ2hlZXJzLAoJTHl1ZGUgUGF1 bAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRl diBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==