From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 27746895E1 for ; Thu, 28 Nov 2019 11:36:13 +0000 (UTC) Date: Thu, 28 Nov 2019 17:05:36 +0530 From: Ramalingam C Message-ID: <20191128113535.GA16857@intel.com> References: <20191128112733.16542-1-ramalingam.c@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191128112733.16542-1-ramalingam.c@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v2] tests/dumb_buffer: Tests for creation 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: igt-dev , Chris Wilson List-ID: T24gMjAxOS0xMS0yOCBhdCAxNjo1NzozMyArMDUzMCwgUmFtYWxpbmdhbSBDIHdyb3RlOgo+IFRl c3RzIGFyZSBkZXZlbG9wZWQgZm9yIGR1bWIgYnVmZmVyIGNyZWF0aW9uLgo+IAo+IHYyOgo+ICAg TWFkZSBhcyBhIGdlbmVyaWMgdGVzdCBmb3IgZHVtYiBidWZmZXIgY3JlYXRpb24gW0NocmlzXQpD aHJpcywKCkFzIHlvdSBoYXZlIG1lbnRpb25lZCBJIGhhdmUgbWFkZSB0aGlzIGFzIGdlbmVyaWMg dGVzdC4KV2l0aCB0aGlzIGNvdWxkIHlvdSBwbGVhc2UgaGF2ZSBhIHJlbG9vayBhdCBodHRwczov L3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvc2VyaWVzLzY5MDc1LwoKLVJhbQoKPiAKPiBTaWdu ZWQtb2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Cj4gY2M6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IC0tLQo+ICB0ZXN0cy9NYWtl ZmlsZS5hbSAgICAgICB8ICAgMiArCj4gIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgIHwgICAxICsK PiAgdGVzdHMvZ2VtX2R1bWJfYnVmZmVyLmMgfCAyNjggKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwo+ICB0ZXN0cy9tZXNvbi5idWlsZCAgICAgICB8ICAgOSArKwo+ICA0 IGZpbGVzIGNoYW5nZWQsIDI4MCBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0 ZXN0cy9nZW1fZHVtYl9idWZmZXIuYwo+IAo+IGRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5h bSBiL3Rlc3RzL01ha2VmaWxlLmFtCj4gaW5kZXggN2Q3MWRmOGM3YTJlLi42NmU2OTU1ODY2M2Eg MTAwNjQ0Cj4gLS0tIGEvdGVzdHMvTWFrZWZpbGUuYW0KPiArKysgYi90ZXN0cy9NYWtlZmlsZS5h bQo+IEBAIC05Niw2ICs5Niw4IEBAIGdlbV9jbG9zZV9yYWNlX0xEQUREID0gJChMREFERCkgLWxw dGhyZWFkCj4gIGdlbV9jdHhfdGhyYXNoX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAkKFRIUkVBRF9D RkxBR1MpCj4gIGdlbV9jdHhfdGhyYXNoX0xEQUREID0gJChMREFERCkgLWxwdGhyZWFkCj4gIGdl bV9jdHhfc3NldV9MREFERCA9ICQoTERBREQpICQodG9wX2J1aWxkZGlyKS9saWIvbGliaWd0X3Bl cmYubGEKPiArZ2VtX2R1bWJfYnVmZmVyX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAkKFRIUkVBRF9D RkxBR1MpCj4gK2dlbV9kdW1iX2J1ZmZlcl9MREFERCA9ICQoTERBREQpIC1scHRocmVhZCAtbGF0 b21pYwo+ICBnZW1fZXhlY19iYWxhbmNlcl9MREFERCA9ICQoTERBREQpICQodG9wX2J1aWxkZGly KS9saWIvbGliaWd0X3BlcmYubGEKPiAgZ2VtX2V4ZWNfY2FwdHVyZV9MREFERCA9ICQoTERBREQp IC1sego+ICBnZW1fZXhlY19wYXJhbGxlbF9DRkxBR1MgPSAkKEFNX0NGTEFHUykgJChUSFJFQURf Q0ZMQUdTKQo+IGRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFr ZWZpbGUuc291cmNlcwo+IGluZGV4IDI3ODAxYzg5YzQ2ZC4uZDAyYmJkMGQ5ODFjIDEwMDY0NAo+ IC0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPiArKysgYi90ZXN0cy9NYWtlZmlsZS5zb3Vy Y2VzCj4gQEAgLTk5LDYgKzk5LDcgQEAgVEVTVFNfcHJvZ3MgPSBcCj4gIAl0b29sc190ZXN0IFwK PiAgCXZnZW1fYmFzaWMgXAo+ICAJdmdlbV9zbG93IFwKPiArCWdlbV9kdW1iX2J1ZmZlciBcCj4g IAkkKE5VTEwpCj4gIAo+ICBURVNUU19wcm9ncyArPSBnZW1fYmFkX3JlbG9jCj4gZGlmZiAtLWdp dCBhL3Rlc3RzL2dlbV9kdW1iX2J1ZmZlci5jIGIvdGVzdHMvZ2VtX2R1bWJfYnVmZmVyLmMKPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNTBlNzIyYmYyMzgzCj4g LS0tIC9kZXYvbnVsbAo+ICsrKyBiL3Rlc3RzL2dlbV9kdW1iX2J1ZmZlci5jCj4gQEAgLTAsMCAr MSwyNjggQEAKPiArLyoKPiArICogQ29weXJpZ2h0IMKpIDIwMTUgSW50ZWwgQ29ycG9yYXRpb24K PiArICoKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiArICog dG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp dGhvdXQgbGltaXRhdGlvbgo+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPiArICogYW5kL29yIHNlbGwg Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl Cj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiArICogcGFy YWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv cnRpb25zIG9mIHRoZQo+ICsgKiBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElT IFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Mg T1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO VElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+ICsgKiBUSEUg QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFN QUdFUyBPUiBPVEhFUgo+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP TlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ TkdTCj4gKyAqIElOIFRIRSBTT0ZUV0FSRS4KPiArICoKPiArICogQXV0aG9yczoKPiArICogICAg UmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgo+ICsgKgo+ICsgKi8KPiArCj4g Ky8qKiBAZmlsZSBnZW1fZHVtYl9idWZmZXIuYwo+ICsgKgo+ICsgKiBUaGlzIGlzIGEgdGVzdCBm b3IgdGhlIGV4dGVuZGVkIGFuZCBvbGQgZ2VtX2NyZWF0ZV9kdW1iIGFuZCBnZW1fbW1hcF9kdW1i Cj4gKyAqIGlvY3RsLCB0aGF0IGluY2x1ZGVzIGFsbG9jYXRpb24gb2Ygb2JqZWN0IGZyb20gc3Rv bGVuIG1lbW9yeSwgc2htZW0gYW5kCj4gKyAqIGxvY2FsIG1lbW9yeS4KPiArICoKPiArICogVGhl IGdvYWwgaXMgdG8gc2ltcGx5IGVuc3VyZSB0aGF0IGJhc2ljcyB3b3JrIGFuZCBpbnZhbGlkIGlu cHV0Cj4gKyAqIGNvbWJpbmF0aW9ucyBhcmUgcmVqZWN0ZWQuCj4gKyAqLwo+ICsKPiArI2luY2x1 ZGUgPHN0ZGxpYi5oPgo+ICsjaW5jbHVkZSA8c3lzL2lvY3RsLmg+Cj4gKyNpbmNsdWRlIDxzdGRp by5oPgo+ICsjaW5jbHVkZSA8c3RyaW5nLmg+Cj4gKyNpbmNsdWRlIDxmY250bC5oPgo+ICsjaW5j bHVkZSA8aW50dHlwZXMuaD4KPiArI2luY2x1ZGUgPGVycm5vLmg+Cj4gKyNpbmNsdWRlIDxzeXMv c3RhdC5oPgo+ICsjaW5jbHVkZSA8c3lzL3RpbWUuaD4KPiArI2luY2x1ZGUgPGdldG9wdC5oPgo+ ICsjaW5jbHVkZSA8cHRocmVhZC5oPgo+ICsjaW5jbHVkZSA8c3RkYXRvbWljLmg+Cj4gKwo+ICsj aW5jbHVkZSA8ZHJtLmg+Cj4gKwo+ICsjaW5jbHVkZSAiaW9jdGxfd3JhcHBlcnMuaCIKPiArI2lu Y2x1ZGUgImludGVsX2J1Zm1nci5oIgo+ICsjaW5jbHVkZSAiaW50ZWxfYmF0Y2hidWZmZXIuaCIK PiArI2luY2x1ZGUgImludGVsX2lvLmgiCj4gKyNpbmNsdWRlICJpbnRlbF9jaGlwc2V0LmgiCj4g KyNpbmNsdWRlICJpZ3RfYXV4LmgiCj4gKyNpbmNsdWRlICJkcm10ZXN0LmgiCj4gKyNpbmNsdWRl ICJkcm0uaCIKPiArI2luY2x1ZGUgImk5MTVfZHJtLmgiCj4gKyNpbmNsdWRlICJpZ3Rfa21zLmgi Cj4gKwo+ICtJR1RfVEVTVF9ERVNDUklQVElPTigiVGhpcyBpcyBhIHRlc3QgZm9yIHRoZSBleHRl bmRlZCAmIG9sZCBnZW1fY3JlYXRlX2R1bWIgYW5kIgo+ICsJCSAgICAgIiBnZW1fbW1hcF9kdW1i IGlvY3RsLCIKPiArCQkgICAgICIgdGhhdCBpbmNsdWRlcyBhbGxvY2F0aW9uIG9mIG9iamVjdCBm cm9tIHN0b2xlbiBtZW1vcnksIgo+ICsJCSAgICAgIiBzaG1lbSBhbmQgbG9jYWwgbWVtb3J5LiIp Owo+ICsKPiArI2RlZmluZSBDTEVBUihzKSBtZW1zZXQoJnMsIDAsIHNpemVvZihzKSkKPiArI2Rl ZmluZSBQQUdFX1NJWkUgNDA5Ngo+ICsKPiArc3RhdGljIHZvaWQgaW52YWxpZF9kaW1lbnNpb25z X3Rlc3QoaW50IGZkKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgY3JlYXRl Owo+ICsKPiArCW1lbXNldCgmY3JlYXRlLCAwLCBzaXplb2YoY3JlYXRlKSk7Cj4gKwljcmVhdGUu d2lkdGggPSA0MDMyOwo+ICsJY3JlYXRlLmhlaWdodCA9IDIwMTY7Cj4gKwljcmVhdGUuYnBwID0g MjQ7Cj4gKwlkb19pb2N0bF9lcnIoZmQsIERSTV9JT0NUTF9NT0RFX0NSRUFURV9EVU1CLCAmY3Jl YXRlLCBFSU5WQUwpOwo+ICsKPiArCWNyZWF0ZS5icHAgPSAzMjsKPiArCWNyZWF0ZS53aWR0aCA9 IDA7Cj4gKwlkb19pb2N0bF9lcnIoZmQsIERSTV9JT0NUTF9NT0RFX0NSRUFURV9EVU1CLCAmY3Jl YXRlLCBFSU5WQUwpOwo+ICsKPiArCWNyZWF0ZS53aWR0aCA9IDQwMzI7Cj4gKwljcmVhdGUuaGVp Z2h0ID0gMDsKPiArCWRvX2lvY3RsX2VycihmZCwgRFJNX0lPQ1RMX01PREVfQ1JFQVRFX0RVTUIs ICZjcmVhdGUsIEVJTlZBTCk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHZhbGlkX2R1bWJfY3Jl YXRpb25fdGVzdChpbnQgZmQpCj4gK3sKPiArCXN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiBj cmVhdGUgPSB7Cj4gKwkJLndpZHRoID0gNDAzMiwKPiArCQkuaGVpZ2h0ID0gMjAxNiwKPiArCQku YnBwID0gMzIsCj4gKwl9Owo+ICsKPiArCWRvX2lvY3RsKGZkLCBEUk1fSU9DVExfTU9ERV9DUkVB VEVfRFVNQiwgJmNyZWF0ZSk7Cj4gKwlnZW1fY2xvc2UoZmQsIGNyZWF0ZS5oYW5kbGUpOwo+ICt9 Cj4gKwo+ICsvKgo+ICsgKiBDcmVhdGluZyBhbiBkdW1iIGJ1ZmZlciB3aXRoIG5vbi1hbGlnbmVk IHNpemUgYW5kIHRyeWluZyB0byBhY2Nlc3MgaXQgd2l0aCBhbgo+ICsgKiBvZmZzZXQsIHdoaWNo IGlzIGdyZWF0ZXIgdGhhbiB0aGUgcmVxdWVzdGVkIHNpemUgYnV0IHNtYWxsZXIgdGhhbiB0aGUK PiArICogb2JqZWN0J3MgbGFzdCBwYWdlIGJvdW5kYXJ5LiBwd3JpdGUgaGVyZSBtdXN0IGJlIHN1 Y2Nlc3NmdWwuCj4gKyAqLwo+ICtzdGF0aWMgdm9pZCB2YWxpZF9ub25hbGlnbmVkX3NpemUoaW50 IGZkKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgY3JlYXRlID0gewo+ICsJ CS53aWR0aCA9IDI0LAo+ICsJCS5oZWlnaHQgPSAyNCwKPiArCQkuYnBwID0gMzIsCj4gKwl9Owo+ ICsJY2hhciBidWZbUEFHRV9TSVpFXTsKPiArCj4gKwlkb19pb2N0bChmZCwgRFJNX0lPQ1RMX01P REVfQ1JFQVRFX0RVTUIsICZjcmVhdGUpOwo+ICsKPiArCWdlbV93cml0ZShmZCwgY3JlYXRlLmhh bmRsZSwgUEFHRV9TSVpFIC8gMiwgYnVmLCBQQUdFX1NJWkUgLyAyKTsKPiArCj4gKwlnZW1fY2xv c2UoZmQsIGNyZWF0ZS5oYW5kbGUpOwo+ICt9Cj4gKwo+ICsvKgo+ICsgKiBDcmVhdGluZyBhbiBv YmplY3Qgd2l0aCBub24tYWxpZ25lZCBzaXplIGFuZCB0cnlpbmcgdG8gYWNjZXNzIGl0IHdpdGgg YW4KPiArICogb2Zmc2V0LCB3aGljaCBpcyBncmVhdGVyIHRoYW4gdGhlIHJlcXVlc3RlZCBzaXpl IGFuZCBsYXJnZXIgdGhhbiB0aGUKPiArICogb2JqZWN0J3MgbGFzdCBwYWdlIGJvdW5kYXJ5LiBw d3JpdGUgaGVyZSBtdXN0IGZhaWwuCj4gKyAqLwo+ICtzdGF0aWMgdm9pZCBpbnZhbGlkX25vbmFs aWduZWRfc2l6ZShpbnQgZmQpCj4gK3sKPiArCXN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiBj cmVhdGUgPSB7Cj4gKwkJLndpZHRoID0gMjQsCj4gKwkJLmhlaWdodCA9IDI0LAo+ICsJCS5icHAg PSAzMiwKPiArCX07Cj4gKwljaGFyIGJ1ZltQQUdFX1NJWkVdOwo+ICsKPiArCWRvX2lvY3RsKGZk LCBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQiwgJmNyZWF0ZSk7Cj4gKwkvKiBUaGlzIHNob3Vs ZCBmYWlsLiBIZW5jZSBjYW5ub3QgdXNlIGdlbV93cml0ZS4gKi8KPiArCWlndF9hc3NlcnQoX19n ZW1fd3JpdGUoZmQsIGNyZWF0ZS5oYW5kbGUsCj4gKwkJCSAgICAgICBjcmVhdGUuc2l6ZSAtIChQ QUdFX1NJWkUgLyAyKSwgYnVmLCBQQUdFX1NJWkUpKTsKPiArCWdlbV9jbG9zZShmZCwgY3JlYXRl LmhhbmRsZSk7Cj4gK30KPiArCj4gK3N0YXRpYyB1aW50NjRfdCBhdG9taWNfY29tcGFyZV9zd2Fw X3U2NChfQXRvbWljKHVpbnQ2NF90KSAqcHRyLAo+ICsJCQkJCXVpbnQ2NF90IG9sZHZhbCwgdWlu dDY0X3QgbmV3dmFsKQo+ICt7Cj4gKwlhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcocHRy LCAmb2xkdmFsLCBuZXd2YWwpOwo+ICsJcmV0dXJuIG9sZHZhbDsKPiArfQo+ICsKPiArc3RhdGlj IHVpbnQ2NF90IGdldF9ucGFnZXMoX0F0b21pYyh1aW50NjRfdCkgKmdsb2JhbCwgdWludDY0X3Qg bnBhZ2VzKQo+ICt7Cj4gKwl1aW50NjRfdCB0cnksIG9sZCwgbWF4Owo+ICsKPiArCW1heCA9ICpn bG9iYWw7Cj4gKwlkbyB7Cj4gKwkJb2xkID0gbWF4Owo+ICsJCXRyeSA9IDEgKyBucGFnZXMgJSAo KG1heCAvIDIpID8gKG1heCAvIDIpIDogMSk7Cj4gKwkJbWF4IC09IHRyeTsKPiArCX0gd2hpbGUg KChtYXggPSBhdG9taWNfY29tcGFyZV9zd2FwX3U2NChnbG9iYWwsIG9sZCwgbWF4KSkgIT0gb2xk KTsKPiArCj4gKwlyZXR1cm4gdHJ5Owo+ICt9Cj4gKwo+ICtzdHJ1Y3QgdGhyZWFkX2NsZWFyIHsK PiArCV9BdG9taWModWludDY0X3QpIG1heDsKPiArCWludCB0aW1lb3V0Owo+ICsJaW50IGZkOwo+ ICt9Owo+ICsKPiArI2RlZmluZSBNQVhfUEFHRV9UT19SRVFVRVNUCTEwMjQwMAo+ICsKPiArc3Rh dGljIHZvaWQgKnRocmVhZF9jbGVhcih2b2lkICpkYXRhKQo+ICt7Cj4gKwlzdHJ1Y3QgdGhyZWFk X2NsZWFyICphcmcgPSBkYXRhOwo+ICsJdW5zaWduZWQgbG9uZyBjaGVja2VkID0gMDsKPiArCWlu dCBmZCA9IGFyZy0+ZmQ7Cj4gKwo+ICsJaWd0X3VudGlsX3RpbWVvdXQoYXJnLT50aW1lb3V0KSB7 Cj4gKwkJc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iIGNyZWF0ZSA9IHt9Owo+ICsJCXVpbnQ2 NF90IG5wYWdlczsKPiArCj4gKwkJbnBhZ2VzID0gcmFuZG9tKCk7Cj4gKwkJbnBhZ2VzID0gbnBh Z2VzIDw8IDMyOwo+ICsJCW5wYWdlcyB8PSByYW5kb20oKTsKPiArCQlucGFnZXMgPSBnZXRfbnBh Z2VzKCZhcmctPm1heCwgbnBhZ2VzKTsKPiArCj4gKwkJZm9yKHVpbnQ2NF90IF9ucGFnZXMgPSBu cGFnZXM7IG5wYWdlcyA+IDA7IG5wYWdlcyAtPSBfbnBhZ2VzKQo+ICsJCXsKPiArCQkJY3JlYXRl LmJwcCA9IDMyOwo+ICsJCQljcmVhdGUud2lkdGggPSBQQUdFX1NJWkUgLyAoY3JlYXRlLmJwcCAv IDgpOwo+ICsJCQlfbnBhZ2VzID0gbnBhZ2VzIDw9IE1BWF9QQUdFX1RPX1JFUVVFU1QgPyBucGFn ZXMgOgo+ICsJCQkJICBNQVhfUEFHRV9UT19SRVFVRVNUOwo+ICsJCQljcmVhdGUuaGVpZ2h0ID0g X25wYWdlczsKPiArCj4gKwkJCWRvX2lvY3RsKGZkLCBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVN QiwgJmNyZWF0ZSk7Cj4gKwo+ICsJCQlpZ3RfYXNzZXJ0KF9ucGFnZXMgPT0gY3JlYXRlLnNpemUg LyBQQUdFX1NJWkUpOwo+ICsKPiArCQkJZm9yICh1aW50NjRfdCBwYWdlID0gMDsgcGFnZSA8IF9u cGFnZXM7IHBhZ2UrKykgewo+ICsJCQkJdWludDY0X3QgeDsKPiArCj4gKwkJCQlnZW1fcmVhZChm ZCwgY3JlYXRlLmhhbmRsZSwKPiArCQkJCQkgcGFnZSAqIDQwOTYgKwo+ICsJCQkJCSAocGFnZSAl ICg0MDk2IC0gc2l6ZW9mKHgpKSksCj4gKwkJCQkJICZ4LCBzaXplb2YoeCkpOwo+ICsJCQkJaWd0 X2Fzc2VydF9lcV91NjQoeCwgMCk7Cj4gKwkJCX0KPiArCj4gKwkJCWttc3Rlc3RfZHVtYl9kZXN0 cm95KGZkLCBjcmVhdGUuaGFuZGxlKTsKPiArCQkJYXRvbWljX2ZldGNoX2FkZCgmYXJnLT5tYXgs IF9ucGFnZXMpOwo+ICsJCQljaGVja2VkICs9IF9ucGFnZXM7Cj4gKwkJfQo+ICsKPiArCX0KPiAr Cj4gKwlyZXR1cm4gKHZvaWQgKikodWludHB0cl90KWNoZWNrZWQ7Cj4gK30KPiArCj4gK3N0YXRp YyB2b2lkIGFsd2F5c19jbGVhcihpbnQgZmQsIGludCB0aW1lb3V0KQo+ICt7Cj4gKwlzdHJ1Y3Qg dGhyZWFkX2NsZWFyIGFyZyA9IHsKPiArCQkuZmQgPSBmZCwKPiArCQkudGltZW91dCA9IHRpbWVv dXQsCj4gKwkJLm1heCA9IGludGVsX2dldF9hdmFpbF9yYW1fbWIoKSA8PCAoMjAgLSAxMiksIC8q IGluIHBhZ2VzICovCj4gKwl9Owo+ICsJY29uc3QgaW50IG5jcHVzID0gc3lzY29uZihfU0NfTlBS T0NFU1NPUlNfT05MTik7Cj4gKwl1bnNpZ25lZCBsb25nIGNoZWNrZWQ7Cj4gKwlwdGhyZWFkX3Qg dGhyZWFkW25jcHVzXTsKPiArCXZvaWQgKnJlc3VsdDsKPiArCj4gKwlmb3IgKGludCBpID0gMDsg aSA8IG5jcHVzOyBpKyspCj4gKwkJcHRocmVhZF9jcmVhdGUoJnRocmVhZFtpXSwgTlVMTCwgdGhy ZWFkX2NsZWFyLCAmYXJnKTsKPiArCj4gKwljaGVja2VkID0gMDsKPiArCWZvciAoaW50IGkgPSAw OyBpIDwgbmNwdXM7IGkrKykgewo+ICsJCXB0aHJlYWRfam9pbih0aHJlYWRbaV0sICZyZXN1bHQp Owo+ICsJCWNoZWNrZWQgKz0gKHVpbnRwdHJfdClyZXN1bHQ7Cj4gKwl9Cj4gKwlpZ3RfaW5mbygi Q2hlY2tlZCAlJ2x1IHBhZ2UgYWxsb2NhdGlvbnNcbiIsIGNoZWNrZWQpOwo+ICt9Cj4gKwo+ICtp Z3RfbWFpbgo+ICt7Cj4gKwlpbnQgZmQgPSAtMTsKPiArCj4gKwlpZ3Rfc2tpcF9vbl9zaW11bGF0 aW9uKCk7Cj4gKwo+ICsJaWd0X2ZpeHR1cmUgewo+ICsJCWZkID0gZHJtX29wZW5fZHJpdmVyKERS SVZFUl9BTlkpOwo+ICsJfQo+ICsKPiArCWlndF9zdWJ0ZXN0KCJpbnZhbGlkLWJwcCIpCj4gKwkJ aW52YWxpZF9kaW1lbnNpb25zX3Rlc3QoZmQpOwo+ICsKPiArCWlndF9zdWJ0ZXN0KCJjcmVhdGUt dmFsaWQtZHVtYiIpCj4gKwkJdmFsaWRfZHVtYl9jcmVhdGlvbl90ZXN0KGZkKTsKPiArCj4gKwlp Z3Rfc3VidGVzdCgiY3JlYXRlLXZhbGlkLW5vbmFsaWduZWQiKQo+ICsJCXZhbGlkX25vbmFsaWdu ZWRfc2l6ZShmZCk7Cj4gKwo+ICsJaWd0X3N1YnRlc3QoImNyZWF0ZS1pbnZhbGlkLW5vbmFsaWdu ZWQiKQo+ICsJCWludmFsaWRfbm9uYWxpZ25lZF9zaXplKGZkKTsKPiArCj4gKwlpZ3Rfc3VidGVz dCgiY3JlYXRlLWNsZWFyIikKPiArCQlhbHdheXNfY2xlYXIoZmQsIDMwKTsKPiArfQo+IGRpZmYg LS1naXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkCj4gaW5kZXggNzU1 ZmM5ZTZmMmQ3Li45MTVhNTY3ZDRhOTcgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvbWVzb24uYnVpbGQK PiArKysgYi90ZXN0cy9tZXNvbi5idWlsZAo+IEBAIC05Nyw2ICs5Nyw3IEBAIHRlc3RfcHJvZ3Mg PSBbCj4gIAkndmM0X3dhaXRfc2Vxbm8nLAo+ICAJJ3ZnZW1fYmFzaWMnLAo+ICAJJ3ZnZW1fc2xv dycsCj4gKwknZ2VtX2R1bWJfYnVmZmVyJwo+ICBdCj4gIAo+ICBpOTE1X3Byb2dzID0gWwo+IEBA IC0yOTEsNiArMjkyLDE0IEBAIHRlc3RfZXhlY3V0YWJsZXMgKz0gZXhlY3V0YWJsZSgnZ2VtX2Ny ZWF0ZScsCj4gIAkgICBpbnN0YWxsIDogdHJ1ZSkKPiAgdGVzdF9saXN0ICs9ICdnZW1fY3JlYXRl Jwo+ICAKPiArIyB0ZXN0X2V4ZWN1dGFibGVzICs9IGV4ZWN1dGFibGUoJ2dlbV9kdW1iX2J1ZmZl cicsCj4gKyMJICAgam9pbl9wYXRocygnaTkxNScsICdnZW1fZHVtYl9idWZmZXIuYycpLAo+ICsj CSAgIGRlcGVuZGVuY2llcyA6IHRlc3RfZGVwcyArIFsgbGliYXRvbWljIF0sCj4gKyMJICAgaW5z dGFsbF9kaXIgOiBsaWJleGVjZGlyLAo+ICsjCSAgIGluc3RhbGxfcnBhdGggOiBsaWJleGVjZGly X3JwYXRoZGlyLAo+ICsjCSAgIGluc3RhbGwgOiB0cnVlKQo+ICsjdGVzdF9saXN0ICs9ICdnZW1f ZHVtYl9idWZmZXInCj4gKwo+ICB0ZXN0X2V4ZWN1dGFibGVzICs9IGV4ZWN1dGFibGUoJ2dlbV9j dHhfc3NldScsCj4gIAkgICBqb2luX3BhdGhzKCdpOTE1JywgJ2dlbV9jdHhfc3NldS5jJyksCj4g IAkgICBkZXBlbmRlbmNpZXMgOiB0ZXN0X2RlcHMgKyBbIGxpYl9pZ3RfcGVyZiBdLAo+IC0tIAo+ IDIuMjAuMQo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=