From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4A56A6E0D3 for ; Thu, 28 Nov 2019 18:10:17 +0000 (UTC) From: Ramalingam C Date: Thu, 28 Nov 2019 23:39:37 +0530 Message-Id: <20191128180938.7099-1-ramalingam.c@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3 1/2] tests/dumb_buffer: Tests for creation and map 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: RHVtYiBidWZmZXIgY3JlYXRpb24gYW5kIG1hcHBpbmcgYXJlIGNvdmVyZWQgd2l0aCB0ZXN0IGNh c2VzLgoKdjI6CiAgTWFkZSBhcyBhIGdlbmVyaWMgdGVzdCBmb3IgZHVtYiBidWZmZXIgY3JlYXRp b24gW0NocmlzXQp2MzoKICBkdW1iX21hcCBpcyB1c2VkIFtDaHJpc10KICBBZGRlZCB0d28gdGVz dHMgZm9yIG1hcC4KClNpZ25lZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGlu dGVsLmNvbT4KY2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0K IHRlc3RzL01ha2VmaWxlLmFtICAgICAgIHwgICAyICsKIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMg IHwgICAxICsKIHRlc3RzL2dlbV9kdW1iX2J1ZmZlci5jIHwgMzE3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIHRlc3RzL21lc29uLmJ1aWxkICAgICAgIHwgICA5ICsr CiA0IGZpbGVzIGNoYW5nZWQsIDMyOSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQg dGVzdHMvZ2VtX2R1bWJfYnVmZmVyLmMKCmRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5hbSBi L3Rlc3RzL01ha2VmaWxlLmFtCmluZGV4IDdkNzFkZjhjN2EyZS4uNjZlNjk1NTg2NjNhIDEwMDY0 NAotLS0gYS90ZXN0cy9NYWtlZmlsZS5hbQorKysgYi90ZXN0cy9NYWtlZmlsZS5hbQpAQCAtOTYs NiArOTYsOCBAQCBnZW1fY2xvc2VfcmFjZV9MREFERCA9ICQoTERBREQpIC1scHRocmVhZAogZ2Vt X2N0eF90aHJhc2hfQ0ZMQUdTID0gJChBTV9DRkxBR1MpICQoVEhSRUFEX0NGTEFHUykKIGdlbV9j dHhfdGhyYXNoX0xEQUREID0gJChMREFERCkgLWxwdGhyZWFkCiBnZW1fY3R4X3NzZXVfTERBREQg PSAkKExEQUREKSAkKHRvcF9idWlsZGRpcikvbGliL2xpYmlndF9wZXJmLmxhCitnZW1fZHVtYl9i dWZmZXJfQ0ZMQUdTID0gJChBTV9DRkxBR1MpICQoVEhSRUFEX0NGTEFHUykKK2dlbV9kdW1iX2J1 ZmZlcl9MREFERCA9ICQoTERBREQpIC1scHRocmVhZCAtbGF0b21pYwogZ2VtX2V4ZWNfYmFsYW5j ZXJfTERBREQgPSAkKExEQUREKSAkKHRvcF9idWlsZGRpcikvbGliL2xpYmlndF9wZXJmLmxhCiBn ZW1fZXhlY19jYXB0dXJlX0xEQUREID0gJChMREFERCkgLWx6CiBnZW1fZXhlY19wYXJhbGxlbF9D RkxBR1MgPSAkKEFNX0NGTEFHUykgJChUSFJFQURfQ0ZMQUdTKQpkaWZmIC0tZ2l0IGEvdGVzdHMv TWFrZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggMjc4MDFjODlj NDZkLi5kMDJiYmQwZDk4MWMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKKysr IGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwpAQCAtOTksNiArOTksNyBAQCBURVNUU19wcm9ncyA9 IFwKIAl0b29sc190ZXN0IFwKIAl2Z2VtX2Jhc2ljIFwKIAl2Z2VtX3Nsb3cgXAorCWdlbV9kdW1i X2J1ZmZlciBcCiAJJChOVUxMKQogCiBURVNUU19wcm9ncyArPSBnZW1fYmFkX3JlbG9jCmRpZmYg LS1naXQgYS90ZXN0cy9nZW1fZHVtYl9idWZmZXIuYyBiL3Rlc3RzL2dlbV9kdW1iX2J1ZmZlci5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uY2FmMWFkYjFmYWRiCi0t LSAvZGV2L251bGwKKysrIGIvdGVzdHMvZ2VtX2R1bWJfYnVmZmVyLmMKQEAgLTAsMCArMSwzMTcg QEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29m dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgor ICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3Ry aWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJl LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5p c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgor ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug KGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBh bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisg KgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg T0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5U IFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S IEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFO IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00s IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig T1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOgorICog ICAgUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgorICoKKyAqLworCisvKiog QGZpbGUgZ2VtX2R1bWJfYnVmZmVyLmMKKyAqCisgKiBUaGlzIGlzIGEgdGVzdCBmb3IgdGhlIGV4 dGVuZGVkIGFuZCBvbGQgZ2VtX2NyZWF0ZV9kdW1iIGFuZCBnZW1fbWFwX2R1bWIKKyAqIGlvY3Rs LCB0aGF0IGluY2x1ZGVzIGFsbG9jYXRpb24gb2Ygb2JqZWN0IGZyb20gc3RvbGVuIG1lbW9yeSwg c2htZW0gYW5kCisgKiBsb2NhbCBtZW1vcnkuCisgKgorICogVGhlIGdvYWwgaXMgdG8gc2ltcGx5 IGVuc3VyZSB0aGF0IGJhc2ljcyB3b3JrIGFuZCBpbnZhbGlkIGlucHV0CisgKiBjb21iaW5hdGlv bnMgYXJlIHJlamVjdGVkLgorICovCisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxz eXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2lu Y2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNpbmNsdWRlIDxlcnJuby5o PgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRl IDxnZXRvcHQuaD4KKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisjaW5jbHVkZSA8c3RkYXRvbWljLmg+ CisKKyNpbmNsdWRlIDxkcm0uaD4KKworI2luY2x1ZGUgImlvY3RsX3dyYXBwZXJzLmgiCisjaW5j bHVkZSAiaW50ZWxfYnVmbWdyLmgiCisjaW5jbHVkZSAiaW50ZWxfYmF0Y2hidWZmZXIuaCIKKyNp bmNsdWRlICJpbnRlbF9pby5oIgorI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIKKyNpbmNsdWRl ICJpZ3RfYXV4LmgiCisjaW5jbHVkZSAiZHJtdGVzdC5oIgorI2luY2x1ZGUgImRybS5oIgorI2lu Y2x1ZGUgImk5MTVfZHJtLmgiCisjaW5jbHVkZSAiaWd0X2ttcy5oIgorCitJR1RfVEVTVF9ERVND UklQVElPTigiVGhpcyBpcyBhIHRlc3QgZm9yIHRoZSBleHRlbmRlZCAmIG9sZCBnZW1fY3JlYXRl X2R1bWIgYW5kIgorCQkgICAgICIgZ2VtX21hcF9kdW1iIGlvY3RsLCIKKwkJICAgICAiIHRoYXQg aW5jbHVkZXMgYWxsb2NhdGlvbiBvZiBvYmplY3QgZnJvbSBzdG9sZW4gbWVtb3J5LCIKKwkJICAg ICAiIHNobWVtIGFuZCBsb2NhbCBtZW1vcnkuIik7CisKKyNkZWZpbmUgQ0xFQVIocykgbWVtc2V0 KCZzLCAwLCBzaXplb2YocykpCisjZGVmaW5lIFBBR0VfU0laRSA0MDk2CisKK3N0YXRpYyB2b2lk IGludmFsaWRfZGltZW5zaW9uc190ZXN0KGludCBmZCkKK3sKKwlzdHJ1Y3QgZHJtX21vZGVfY3Jl YXRlX2R1bWIgY3JlYXRlOworCisJbWVtc2V0KCZjcmVhdGUsIDAsIHNpemVvZihjcmVhdGUpKTsK KwljcmVhdGUud2lkdGggPSA0MDMyOworCWNyZWF0ZS5oZWlnaHQgPSAyMDE2OworCWNyZWF0ZS5i cHAgPSAyNDsKKwlkb19pb2N0bF9lcnIoZmQsIERSTV9JT0NUTF9NT0RFX0NSRUFURV9EVU1CLCAm Y3JlYXRlLCBFSU5WQUwpOworCisJY3JlYXRlLmJwcCA9IDMyOworCWNyZWF0ZS53aWR0aCA9IDA7 CisJZG9faW9jdGxfZXJyKGZkLCBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQiwgJmNyZWF0ZSwg RUlOVkFMKTsKKworCWNyZWF0ZS53aWR0aCA9IDQwMzI7CisJY3JlYXRlLmhlaWdodCA9IDA7CisJ ZG9faW9jdGxfZXJyKGZkLCBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQiwgJmNyZWF0ZSwgRUlO VkFMKTsKK30KKworc3RhdGljIHZvaWQgdmFsaWRfZHVtYl9jcmVhdGlvbl90ZXN0KGludCBmZCkK K3sKKwlzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgY3JlYXRlID0geworCQkud2lkdGggPSA0 MDMyLAorCQkuaGVpZ2h0ID0gMjAxNiwKKwkJLmJwcCA9IDMyLAorCX07CisKKwlkb19pb2N0bChm ZCwgRFJNX0lPQ1RMX01PREVfQ1JFQVRFX0RVTUIsICZjcmVhdGUpOworCWdlbV9jbG9zZShmZCwg Y3JlYXRlLmhhbmRsZSk7Cit9CisKK3N0YXRpYyB2b2lkIHZhbGlkX21hcChpbnQgZmQpCit7CisJ c3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iIGNyZWF0ZSA9IHsKKwkJLndpZHRoID0gNDAzMiwK KwkJLmhlaWdodCA9IDIwMTYsCisJCS5icHAgPSAzMiwKKwl9OworCXZvaWQgKnB0cjsKKworCWRv X2lvY3RsKGZkLCBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQiwgJmNyZWF0ZSk7CisJcHRyID0g a21zdGVzdF9kdW1iX21hcF9idWZmZXIoZmQsIGNyZWF0ZS5oYW5kbGUsIGNyZWF0ZS5zaXplLAor CQkJCSAgICAgIFBST1RfUkVBRCB8IFBST1RfV1JJVEUpOworCW11bm1hcChwdHIsIGNyZWF0ZS5z aXplKTsKKwlnZW1fY2xvc2UoZmQsIGNyZWF0ZS5oYW5kbGUpOworfQorCitzdGF0aWMgdm9pZCBp bnZhbGlkX3NpemVfbWFwKGludCBmZCkKK3sKKwlzdHJ1Y3QgZHJtX21vZGVfbWFwX2R1bWIgYXJn ID0ge307CisJc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iIGNyZWF0ZSA9IHsKKwkJLndpZHRo ID0gNDAzMiwKKwkJLmhlaWdodCA9IDIwMTYsCisJCS5icHAgPSAzMiwKKwl9OworCXZvaWQgKnB0 cjsKKworCWRvX2lvY3RsKGZkLCBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQiwgJmNyZWF0ZSk7 CisKKwlhcmcuaGFuZGxlID0gY3JlYXRlLmhhbmRsZTsKKwlkb19pb2N0bChmZCwgRFJNX0lPQ1RM X01PREVfTUFQX0RVTUIsICZhcmcpOworCisJcHRyID0gbW1hcChOVUxMLCBjcmVhdGUuc2l6ZSAr IDEsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCisJCSAgIE1BUF9TSEFSRUQsIGZkLCBhcmcub2Zm c2V0KTsKKwlpZ3RfYXNzZXJ0KHB0ciA9PSBNQVBfRkFJTEVEKTsKKworCWdlbV9jbG9zZShmZCwg Y3JlYXRlLmhhbmRsZSk7Cit9CisKKy8qCisgKiBDcmVhdGluZyBhbiBkdW1iIGJ1ZmZlciB3aXRo IG5vbi1hbGlnbmVkIHNpemUgYW5kIHRyeWluZyB0byBhY2Nlc3MgaXQgd2l0aCBhbgorICogb2Zm c2V0LCB3aGljaCBpcyBncmVhdGVyIHRoYW4gdGhlIHJlcXVlc3RlZCBzaXplIGJ1dCBzbWFsbGVy IHRoYW4gdGhlCisgKiBvYmplY3QncyBsYXN0IHBhZ2UgYm91bmRhcnkuIHB3cml0ZSBoZXJlIG11 c3QgYmUgc3VjY2Vzc2Z1bC4KKyAqLworc3RhdGljIHZvaWQgdmFsaWRfbm9uYWxpZ25lZF9zaXpl KGludCBmZCkKK3sKKwlzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgY3JlYXRlID0geworCQku d2lkdGggPSAyNCwKKwkJLmhlaWdodCA9IDI0LAorCQkuYnBwID0gMzIsCisJfTsKKwljaGFyIGJ1 ZltQQUdFX1NJWkVdOworCisJZG9faW9jdGwoZmQsIERSTV9JT0NUTF9NT0RFX0NSRUFURV9EVU1C LCAmY3JlYXRlKTsKKworCWdlbV93cml0ZShmZCwgY3JlYXRlLmhhbmRsZSwgUEFHRV9TSVpFIC8g MiwgYnVmLCBQQUdFX1NJWkUgLyAyKTsKKworCWdlbV9jbG9zZShmZCwgY3JlYXRlLmhhbmRsZSk7 Cit9CisKKy8qCisgKiBDcmVhdGluZyBhbiBvYmplY3Qgd2l0aCBub24tYWxpZ25lZCBzaXplIGFu ZCB0cnlpbmcgdG8gYWNjZXNzIGl0IHdpdGggYW4KKyAqIG9mZnNldCwgd2hpY2ggaXMgZ3JlYXRl ciB0aGFuIHRoZSByZXF1ZXN0ZWQgc2l6ZSBhbmQgbGFyZ2VyIHRoYW4gdGhlCisgKiBvYmplY3Qn cyBsYXN0IHBhZ2UgYm91bmRhcnkuIHB3cml0ZSBoZXJlIG11c3QgZmFpbC4KKyAqLworc3RhdGlj IHZvaWQgaW52YWxpZF9ub25hbGlnbmVkX3NpemUoaW50IGZkKQoreworCXN0cnVjdCBkcm1fbW9k ZV9jcmVhdGVfZHVtYiBjcmVhdGUgPSB7CisJCS53aWR0aCA9IDI0LAorCQkuaGVpZ2h0ID0gMjQs CisJCS5icHAgPSAzMiwKKwl9OworCWNoYXIgYnVmW1BBR0VfU0laRV07CisKKwlkb19pb2N0bChm ZCwgRFJNX0lPQ1RMX01PREVfQ1JFQVRFX0RVTUIsICZjcmVhdGUpOworCS8qIFRoaXMgc2hvdWxk IGZhaWwuIEhlbmNlIGNhbm5vdCB1c2UgZ2VtX3dyaXRlLiAqLworCWlndF9hc3NlcnQoX19nZW1f d3JpdGUoZmQsIGNyZWF0ZS5oYW5kbGUsCisJCQkgICAgICAgY3JlYXRlLnNpemUgLSAoUEFHRV9T SVpFIC8gMiksIGJ1ZiwgUEFHRV9TSVpFKSk7CisJZ2VtX2Nsb3NlKGZkLCBjcmVhdGUuaGFuZGxl KTsKK30KKworc3RhdGljIHVpbnQ2NF90IGF0b21pY19jb21wYXJlX3N3YXBfdTY0KF9BdG9taWMo dWludDY0X3QpICpwdHIsCisJCQkJCXVpbnQ2NF90IG9sZHZhbCwgdWludDY0X3QgbmV3dmFsKQor eworCWF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyhwdHIsICZvbGR2YWwsIG5ld3ZhbCk7 CisJcmV0dXJuIG9sZHZhbDsKK30KKworc3RhdGljIHVpbnQ2NF90IGdldF9ucGFnZXMoX0F0b21p Yyh1aW50NjRfdCkgKmdsb2JhbCwgdWludDY0X3QgbnBhZ2VzKQoreworCXVpbnQ2NF90IHRyeSwg b2xkLCBtYXg7CisKKwltYXggPSAqZ2xvYmFsOworCWRvIHsKKwkJb2xkID0gbWF4OworCQl0cnkg PSAxICsgbnBhZ2VzICUgKChtYXggLyAyKSA/IChtYXggLyAyKSA6IDEpOworCQltYXggLT0gdHJ5 OworCX0gd2hpbGUgKChtYXggPSBhdG9taWNfY29tcGFyZV9zd2FwX3U2NChnbG9iYWwsIG9sZCwg bWF4KSkgIT0gb2xkKTsKKworCXJldHVybiB0cnk7Cit9CisKK3N0cnVjdCB0aHJlYWRfY2xlYXIg eworCV9BdG9taWModWludDY0X3QpIG1heDsKKwlpbnQgdGltZW91dDsKKwlpbnQgZmQ7Cit9Owor CisjZGVmaW5lIE1BWF9QQUdFX1RPX1JFUVVFU1QJMTAyNDAwCisKK3N0YXRpYyB2b2lkICp0aHJl YWRfY2xlYXIodm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgdGhyZWFkX2NsZWFyICphcmcgPSBkYXRh OworCXVuc2lnbmVkIGxvbmcgY2hlY2tlZCA9IDA7CisJaW50IGZkID0gYXJnLT5mZDsKKwl2b2lk ICpwdHI7CisKKwlpZ3RfdW50aWxfdGltZW91dChhcmctPnRpbWVvdXQpIHsKKwkJc3RydWN0IGRy bV9tb2RlX2NyZWF0ZV9kdW1iIGNyZWF0ZSA9IHt9OworCQl1aW50NjRfdCBucGFnZXM7CisKKwkJ bnBhZ2VzID0gcmFuZG9tKCk7CisJCW5wYWdlcyA9IG5wYWdlcyA8PCAzMjsKKwkJbnBhZ2VzIHw9 IHJhbmRvbSgpOworCQlucGFnZXMgPSBnZXRfbnBhZ2VzKCZhcmctPm1heCwgbnBhZ2VzKTsKKwor CQlmb3IodWludDY0X3QgX25wYWdlcyA9IG5wYWdlczsgbnBhZ2VzID4gMDsgbnBhZ2VzIC09IF9u cGFnZXMpCisJCXsKKwkJCWNyZWF0ZS5icHAgPSAzMjsKKwkJCWNyZWF0ZS53aWR0aCA9IFBBR0Vf U0laRSAvIChjcmVhdGUuYnBwIC8gOCk7CisJCQlfbnBhZ2VzID0gbnBhZ2VzIDw9IE1BWF9QQUdF X1RPX1JFUVVFU1QgPyBucGFnZXMgOgorCQkJCSAgTUFYX1BBR0VfVE9fUkVRVUVTVDsKKwkJCWNy ZWF0ZS5oZWlnaHQgPSBfbnBhZ2VzOworCisJCQlkb19pb2N0bChmZCwgRFJNX0lPQ1RMX01PREVf Q1JFQVRFX0RVTUIsICZjcmVhdGUpOworCisJCQlpZ3RfYXNzZXJ0KF9ucGFnZXMgPT0gY3JlYXRl LnNpemUgLyBQQUdFX1NJWkUpOworCisJCQlwdHIgPSBrbXN0ZXN0X2R1bWJfbWFwX2J1ZmZlcihm ZCwgY3JlYXRlLmhhbmRsZSwKKwkJCQkJCSAgICAgIGNyZWF0ZS5zaXplLAorCQkJCQkJICAgICAg UFJPVF9SRUFEIHwgUFJPVF9XUklURSk7CisKKwkJCWZvciAodWludDY0X3QgcGFnZSA9IDA7IHBh Z2UgPCBfbnBhZ2VzOyBwYWdlKyspIHsKKwkJCQl1aW50NjRfdCB4OworCQkJCW1lbWNweSgmeCwg cHRyICsgcGFnZSAqIDQwOTYgKworCQkJCSAgICAgICBwYWdlICUgKDQwOTYgLSBzaXplb2YoeCkp LCBzaXplb2YoeCkpOworCQkJCWlndF9hc3NlcnRfZXFfdTY0KHgsIDApOworCQkJfQorCisJCQlp ZiAocHRyKQorCQkJCW11bm1hcChwdHIsIGNyZWF0ZS5zaXplKTsKKworCQkJa21zdGVzdF9kdW1i X2Rlc3Ryb3koZmQsIGNyZWF0ZS5oYW5kbGUpOworCQkJYXRvbWljX2ZldGNoX2FkZCgmYXJnLT5t YXgsIF9ucGFnZXMpOworCQkJY2hlY2tlZCArPSBfbnBhZ2VzOworCQl9CisKKwl9CisKKwlyZXR1 cm4gKHZvaWQgKikodWludHB0cl90KWNoZWNrZWQ7Cit9CisKK3N0YXRpYyB2b2lkIGFsd2F5c19j bGVhcihpbnQgZmQsIGludCB0aW1lb3V0KQoreworCXN0cnVjdCB0aHJlYWRfY2xlYXIgYXJnID0g eworCQkuZmQgPSBmZCwKKwkJLnRpbWVvdXQgPSB0aW1lb3V0LAorCQkubWF4ID0gaW50ZWxfZ2V0 X2F2YWlsX3JhbV9tYigpIDw8ICgyMCAtIDEyKSwgLyogaW4gcGFnZXMgKi8KKwl9OworCWNvbnN0 IGludCBuY3B1cyA9IHN5c2NvbmYoX1NDX05QUk9DRVNTT1JTX09OTE4pOworCXVuc2lnbmVkIGxv bmcgY2hlY2tlZDsKKwlwdGhyZWFkX3QgdGhyZWFkW25jcHVzXTsKKwl2b2lkICpyZXN1bHQ7CisK Kwlmb3IgKGludCBpID0gMDsgaSA8IG5jcHVzOyBpKyspCisJCXB0aHJlYWRfY3JlYXRlKCZ0aHJl YWRbaV0sIE5VTEwsIHRocmVhZF9jbGVhciwgJmFyZyk7CisKKwljaGVja2VkID0gMDsKKwlmb3Ig KGludCBpID0gMDsgaSA8IG5jcHVzOyBpKyspIHsKKwkJcHRocmVhZF9qb2luKHRocmVhZFtpXSwg JnJlc3VsdCk7CisJCWNoZWNrZWQgKz0gKHVpbnRwdHJfdClyZXN1bHQ7CisJfQorCWlndF9pbmZv KCJDaGVja2VkICUnbHUgcGFnZSBhbGxvY2F0aW9uc1xuIiwgY2hlY2tlZCk7Cit9CisKK2lndF9t YWluCit7CisJaW50IGZkID0gLTE7CisKKwlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7CisKKwlp Z3RfZml4dHVyZSB7CisJCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9BTlkpOworCX0KKwor CWlndF9zdWJ0ZXN0KCJpbnZhbGlkLWJwcCIpCisJCWludmFsaWRfZGltZW5zaW9uc190ZXN0KGZk KTsKKworCWlndF9zdWJ0ZXN0KCJjcmVhdGUtdmFsaWQtZHVtYiIpCisJCXZhbGlkX2R1bWJfY3Jl YXRpb25fdGVzdChmZCk7CisKKwlpZ3Rfc3VidGVzdCgiY3JlYXRlLXZhbGlkLW5vbmFsaWduZWQi KQorCQl2YWxpZF9ub25hbGlnbmVkX3NpemUoZmQpOworCisJaWd0X3N1YnRlc3QoImNyZWF0ZS1p bnZhbGlkLW5vbmFsaWduZWQiKQorCQlpbnZhbGlkX25vbmFsaWduZWRfc2l6ZShmZCk7CisKKwlp Z3Rfc3VidGVzdCgibWFwLXZhbGlkIikKKwkJdmFsaWRfbWFwKGZkKTsKKworCWlndF9zdWJ0ZXN0 KCJtYXAtaW52YWxpZC1zaXplIikKKwkJaW52YWxpZF9zaXplX21hcChmZCk7CisKKwlpZ3Rfc3Vi dGVzdCgiY3JlYXRlLWNsZWFyIikKKwkJYWx3YXlzX2NsZWFyKGZkLCAzMCk7Cit9CmRpZmYgLS1n aXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkCmluZGV4IDc1NWZjOWU2 ZjJkNy4uOTE1YTU2N2Q0YTk3IDEwMDY0NAotLS0gYS90ZXN0cy9tZXNvbi5idWlsZAorKysgYi90 ZXN0cy9tZXNvbi5idWlsZApAQCAtOTcsNiArOTcsNyBAQCB0ZXN0X3Byb2dzID0gWwogCSd2YzRf d2FpdF9zZXFubycsCiAJJ3ZnZW1fYmFzaWMnLAogCSd2Z2VtX3Nsb3cnLAorCSdnZW1fZHVtYl9i dWZmZXInCiBdCiAKIGk5MTVfcHJvZ3MgPSBbCkBAIC0yOTEsNiArMjkyLDE0IEBAIHRlc3RfZXhl Y3V0YWJsZXMgKz0gZXhlY3V0YWJsZSgnZ2VtX2NyZWF0ZScsCiAJICAgaW5zdGFsbCA6IHRydWUp CiB0ZXN0X2xpc3QgKz0gJ2dlbV9jcmVhdGUnCiAKKyMgdGVzdF9leGVjdXRhYmxlcyArPSBleGVj dXRhYmxlKCdnZW1fZHVtYl9idWZmZXInLAorIwkgICBqb2luX3BhdGhzKCdpOTE1JywgJ2dlbV9k dW1iX2J1ZmZlci5jJyksCisjCSAgIGRlcGVuZGVuY2llcyA6IHRlc3RfZGVwcyArIFsgbGliYXRv bWljIF0sCisjCSAgIGluc3RhbGxfZGlyIDogbGliZXhlY2RpciwKKyMJICAgaW5zdGFsbF9ycGF0 aCA6IGxpYmV4ZWNkaXJfcnBhdGhkaXIsCisjCSAgIGluc3RhbGwgOiB0cnVlKQorI3Rlc3RfbGlz dCArPSAnZ2VtX2R1bWJfYnVmZmVyJworCiB0ZXN0X2V4ZWN1dGFibGVzICs9IGV4ZWN1dGFibGUo J2dlbV9jdHhfc3NldScsCiAJICAgam9pbl9wYXRocygnaTkxNScsICdnZW1fY3R4X3NzZXUuYycp LAogCSAgIGRlcGVuZGVuY2llcyA6IHRlc3RfZGVwcyArIFsgbGliX2lndF9wZXJmIF0sCi0tIAoy LjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmln dC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==