From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [RFC i-g-t] tests/gem_exec_pad_to_size: Test object padding at execbuf Date: Wed, 25 Mar 2015 14:21:00 +0000 Message-ID: <1427293260-6734-1-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 4ACCD6E861 for ; Wed, 25 Mar 2015 07:21:05 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClRoaXMgdGVz dHMgdGhlIG5ldyBFWEVDX09CSkVDVF9QQURfVE9fU0laRSBleGVjX29iamVjdDIgZmxhZy4KCkl0 IHVzZXMgdGhlIGZhY3QgRFJNIGFsbG9jYXRpb24gcG9saWN5IGlzIHNldCBhcyBBQkkgYW5kIGFs bG9jYXRlcwpzcGFjZSBpbiBvcmRlci4gVGhhdCBtZWFucyB0aGF0IHdlIHNob3VsZCBiZSBhYmxl IHRvIGVhc2lseSBnZXQKdHdvIGJvcyBtYXBwZWQgYXQgYWRqYWNlbnQgR1RUIGFkZHJlc3NlcyBh bmQgdGhlbiB0ZXN0IHRoYXQgdGhlCnBhZCB0byBzaXplIGZsYWcgd2lsbCBtb3ZlIHRoZW0gYXBh cnQuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwu Y29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogdGVz dHMvTWFrZWZpbGUuc291cmNlcyAgICAgICB8ICAgMSArCiB0ZXN0cy9nZW1fZXhlY19wYWRfdG9f c2l6ZS5jIHwgMjc2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IDIgZmlsZXMgY2hhbmdlZCwgMjc3IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0 ZXN0cy9nZW1fZXhlY19wYWRfdG9fc2l6ZS5jCgpkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUu c291cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggYTE2NTk3OC4uZThiMjEyYSAx MDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcworKysgYi90ZXN0cy9NYWtlZmlsZS5z b3VyY2VzCkBAIC0zMyw2ICszMyw3IEBAIFRFU1RTX3Byb2dzX00gPSBcCiAJZ2VtX2V4ZWNfYmFk X2RvbWFpbnMgXAogCWdlbV9leGVjX2ZhdWx0aW5nX3JlbG9jIFwKIAlnZW1fZXhlY19ub3AgXAor CWdlbV9leGVjX3BhZF90b19zaXplIFwKIAlnZW1fZXhlY19wYXJhbXMgXAogCWdlbV9leGVjX3Bh cnNlIFwKIAlnZW1fZmVuY2VkX2V4ZWNfdGhyYXNoIFwKZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9l eGVjX3BhZF90b19zaXplLmMgYi90ZXN0cy9nZW1fZXhlY19wYWRfdG9fc2l6ZS5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1ODRlNWMKLS0tIC9kZXYvbnVsbAorKysgYi90 ZXN0cy9nZW1fZXhlY19wYWRfdG9fc2l6ZS5jCkBAIC0wLDAgKzEsMjc2IEBACisvKgorICogQ29w eXJpZ2h0IMKpIDIwMTUgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQor ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQg cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMg dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNl bnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1p dCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBj b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhl IG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBz dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF WFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhF IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB TUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4g Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT CisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczoKKyAqICAgIFR2cnRrbyBVcnN1 bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CisgKgorICovCisKKyNpbmNsdWRlIDx1bmlz dGQuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRl IDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5j bHVkZSA8aW50dHlwZXMuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN5cy9zdGF0 Lmg+CisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNs dWRlICJkcm0uaCIKKyNpbmNsdWRlICJpb2N0bF93cmFwcGVycy5oIgorI2luY2x1ZGUgImlndF9j b3JlLmgiCisjaW5jbHVkZSAiZHJtdGVzdC5oIgorI2luY2x1ZGUgImludGVsX3JlZy5oIgorCisj aWZuZGVmIFBBR0VfU0laRQorI2RlZmluZSBQQUdFX1NJWkUgNDA5NgorI2VuZGlmCisKK3N0cnVj dCBsb2NhbF9kcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIHsKKwkvKioKKwkgKiBVc2VyJ3MgaGFu ZGxlIGZvciBhIGJ1ZmZlciB0byBiZSBib3VuZCBpbnRvIHRoZSBHVFQgZm9yIHRoaXMKKwkgKiBv cGVyYXRpb24uCisJICovCisJX191MzIgaGFuZGxlOworCisJLyoqIE51bWJlciBvZiByZWxvY2F0 aW9ucyB0byBiZSBwZXJmb3JtZWQgb24gdGhpcyBidWZmZXIgKi8KKwlfX3UzMiByZWxvY2F0aW9u X2NvdW50OworCS8qKgorCSAqIFBvaW50ZXIgdG8gYXJyYXkgb2Ygc3RydWN0IGRybV9pOTE1X2dl bV9yZWxvY2F0aW9uX2VudHJ5IGNvbnRhaW5pbmcKKwkgKiB0aGUgcmVsb2NhdGlvbnMgdG8gYmUg cGVyZm9ybWVkIGluIHRoaXMgYnVmZmVyLgorCSAqLworCV9fdTY0IHJlbG9jc19wdHI7CisKKwkv KiogUmVxdWlyZWQgYWxpZ25tZW50IGluIGdyYXBoaWNzIGFwZXJ0dXJlICovCisJX191NjQgYWxp Z25tZW50OworCisJLyoqCisJICogUmV0dXJuZWQgdmFsdWUgb2YgdGhlIHVwZGF0ZWQgb2Zmc2V0 IG9mIHRoZSBvYmplY3QsIGZvciBmdXR1cmUKKwkgKiBwcmVzdW1lZF9vZmZzZXQgd3JpdGVzLgor CSAqLworCV9fdTY0IG9mZnNldDsKKworI2RlZmluZSBMT0NBTF9FWEVDX09CSkVDVF9ORUVEU19G RU5DRSAoMTw8MCkKKyNkZWZpbmUgTE9DQUxfRVhFQ19PQkpFQ1RfTkVFRFNfR1RUCSgxPDwxKQor I2RlZmluZSBMT0NBTF9FWEVDX09CSkVDVF9XUklURQkoMTw8MikKKyNkZWZpbmUgTE9DQUxfRVhF Q19PQkpFQ1RfUEFEX1RPX1NJWkUgKDE8PDMpCisjZGVmaW5lIF9fTE9DQUxfRVhFQ19PQkpFQ1Rf VU5LTk9XTl9GTEFHUyAtKExPQ0FMX0VYRUNfT0JKRUNUX1BBRF9UT19TSVpFPDwxKQorCV9fdTY0 IGZsYWdzOworCisJX191NjQgcGFkX3RvX3NpemU7CisJX191NjQgcnN2ZDI7Cit9OworCitzdGF0 aWMgaW50CitleGVjKGludCBmZCwgdWludDMyX3QgaGFuZGxlc1szXSwgdWludDMyX3QgcGFkX3Rv X3NpemVbMl0sIHVpbnQ2NF90ICpvZmZzZXRzKQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhl Y2J1ZmZlcjIgZXhlY2J1ZjsKKwlzdHJ1Y3QgbG9jYWxfZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0 MiBnZW1fZXhlY1szXTsKKwlpbnQgcmV0ID0gMDsKKworCW1lbXNldChnZW1fZXhlYywgMCwgc2l6 ZW9mKGdlbV9leGVjKSk7CisKKwlnZW1fZXhlY1swXS5oYW5kbGUgPSBoYW5kbGVzWzFdOworCWdl bV9leGVjWzBdLnJlbG9jYXRpb25fY291bnQgPSAwOworCWdlbV9leGVjWzBdLnJlbG9jc19wdHIg PSAwOworCWdlbV9leGVjWzBdLmFsaWdubWVudCA9IDA7CisJZ2VtX2V4ZWNbMF0ub2Zmc2V0ID0g MDsKKwlnZW1fZXhlY1swXS5mbGFncyA9IHBhZF90b19zaXplWzBdID8KKwkJCSAgICBMT0NBTF9F WEVDX09CSkVDVF9QQURfVE9fU0laRSA6IDA7CisJZ2VtX2V4ZWNbMF0ucGFkX3RvX3NpemUgPSBw YWRfdG9fc2l6ZVswXTsKKwlnZW1fZXhlY1swXS5yc3ZkMiA9IDA7CisKKwlnZW1fZXhlY1sxXS5o YW5kbGUgPSBoYW5kbGVzWzJdOworCWdlbV9leGVjWzFdLnJlbG9jYXRpb25fY291bnQgPSAwOwor CWdlbV9leGVjWzFdLnJlbG9jc19wdHIgPSAwOworCWdlbV9leGVjWzFdLmFsaWdubWVudCA9IDA7 CisJZ2VtX2V4ZWNbMV0ub2Zmc2V0ID0gMDsKKwlnZW1fZXhlY1sxXS5mbGFncyA9IHBhZF90b19z aXplWzFdID8KKwkJCSAgICBMT0NBTF9FWEVDX09CSkVDVF9QQURfVE9fU0laRSA6IDA7CisJZ2Vt X2V4ZWNbMV0ucGFkX3RvX3NpemUgPSBwYWRfdG9fc2l6ZVsxXTsKKwlnZW1fZXhlY1sxXS5yc3Zk MiA9IDA7CisKKwlnZW1fZXhlY1syXS5oYW5kbGUgPSBoYW5kbGVzWzBdOworCWdlbV9leGVjWzJd LnJlbG9jYXRpb25fY291bnQgPSAwOworCWdlbV9leGVjWzJdLnJlbG9jc19wdHIgPSAwOworCWdl bV9leGVjWzJdLmFsaWdubWVudCA9IDA7CisJZ2VtX2V4ZWNbMl0ub2Zmc2V0ID0gMDsKKwlnZW1f ZXhlY1syXS5mbGFncyA9IDA7CisJZ2VtX2V4ZWNbMl0ucGFkX3RvX3NpemUgPSAwOworCWdlbV9l eGVjWzJdLnJzdmQyID0gMDsKKworCWV4ZWNidWYuYnVmZmVyc19wdHIgPSAodWludHB0cl90KWdl bV9leGVjOworCWV4ZWNidWYuYnVmZmVyX2NvdW50ID0gMzsKKwlleGVjYnVmLmJhdGNoX3N0YXJ0 X29mZnNldCA9IDA7CisJZXhlY2J1Zi5iYXRjaF9sZW4gPSA4OworCWV4ZWNidWYuY2xpcHJlY3Rz X3B0ciA9IDA7CisJZXhlY2J1Zi5udW1fY2xpcHJlY3RzID0gMDsKKwlleGVjYnVmLkRSMSA9IDA7 CisJZXhlY2J1Zi5EUjQgPSAwOworCWV4ZWNidWYuZmxhZ3MgPSBJOTE1X0VYRUNfUkVOREVSOwor CWk5MTVfZXhlY2J1ZmZlcjJfc2V0X2NvbnRleHRfaWQoZXhlY2J1ZiwgMCk7CisJZXhlY2J1Zi5y c3ZkMiA9IDA7CisKKwlpZiAoZHJtSW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFTV9FWEVDQlVG RkVSMiwgJmV4ZWNidWYpKQorCQkJcmV0ID0gLWVycm5vOworCisJaWYgKHJldCA9PSAwKSB7CisJ CWdlbV9zeW5jKGZkLCBoYW5kbGVzWzBdKTsKKworCQlpZiAob2Zmc2V0cykgeworCQkJb2Zmc2V0 c1swXSA9IGdlbV9leGVjWzBdLm9mZnNldDsKKwkJCW9mZnNldHNbMV0gPSBnZW1fZXhlY1sxXS5v ZmZzZXQ7CisJCX0KKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZAorcmVxdWly ZV9wYWRfdG9fc2l6ZShpbnQgZmQsIHVpbnQzMl90IGhhbmRsZXNbM10pCit7CisJaWd0X3JlcXVp cmUoZXhlYyhmZCwgaGFuZGxlcywgKHVpbnQzMl90WzJdKXsgUEFHRV9TSVpFLCBQQUdFX1NJWkUg fSwKKwkJCSBOVUxMKSA9PSAwKTsKK30KKworc3RhdGljIHZvaWQKK25vdF9hbGlnbmVkKGludCBm ZCwgdWludDMyX3QgaGFuZGxlc1szXSkKK3sKKwlyZXF1aXJlX3BhZF90b19zaXplKGZkLCBoYW5k bGVzKTsKKworCWlndF9yZXF1aXJlKGV4ZWMoZmQsIGhhbmRsZXMsICh1aW50MzJfdFsyXSl7MSAs MX0sCisJCQkgTlVMTCkgPT0gLUVJTlZBTCk7Cit9CisKK3N0YXRpYyB2b2lkCitwYWRkaW5nKGlu dCBmZCwgdWludDMyX3QgaGFuZGxlc1szXSkKK3sKKwl1aW50MzJfdCBwYWRfdG9fc2l6ZVsyXSA9 IHswLCAwfTsKKwl1aW50NjRfdCBvZmZzZXRzWzJdOworCXVpbnQzMl90IGRpc3RhbmNlOworCWJv b2wgbmVpZ2hib3VycyA9IGZhbHNlOworCXVuc2lnbmVkIGludCB0cnksIGlkeDsKKwljb25zdCB1 bnNpZ25lZCBpbnQgbWF4X3RyaWVzID0gMTAyNDsgLyogRmluZ2VyIGluIHRoZSBhaXIuICovCisJ dWludDMyX3QgKmxvY19oYW5kbGVzOworCXVpbnQzMl90IGViX2hhbmRsZXNbM107CisKKwlyZXF1 aXJlX3BhZF90b19zaXplKGZkLCBoYW5kbGVzKTsKKworCWxvY19oYW5kbGVzID0gY2FsbG9jKG1h eF90cmllcyAqIDIsIHNpemVvZih1aW50MzJfdCkpOworCWlndF9hc3NlcnQobG9jX2hhbmRsZXMp OworCisJLyogVHJ5IHdpdGggcGFzc2VkIGluIGhhbmRsZXMgZmlyc3QuICovCisJbG9jX2hhbmRs ZXNbMF0gPSBoYW5kbGVzWzFdOworCWxvY19oYW5kbGVzWzFdID0gaGFuZGxlc1syXTsKKworCS8q IFRyeSB0byBnZXQgdHdvIGJ1ZmZlciBvYmplY3QgbmV4dCB0byBlYWNoIG90aGVyIGluIEdUVCBz cGFjZS4gKi8KKwlmb3IgKHRyeSA9IDAsIGlkeCA9IDA7IHRyeSA8IG1heF90cmllczspIHsKKwkJ ZWJfaGFuZGxlc1swXSA9IGhhbmRsZXNbMF07CisJCWViX2hhbmRsZXNbMV0gPSBsb2NfaGFuZGxl c1tpZHhdOworCQllYl9oYW5kbGVzWzJdID0gbG9jX2hhbmRsZXNbaWR4ICsgMV07CisKKwkJaWd0 X2Fzc2VydChleGVjKGZkLCBlYl9oYW5kbGVzLCAodWludDMyX3RbMl0pezAsIDB9LAorCQkJCW9m ZnNldHMpID09IDApOworCisJCWlmIChvZmZzZXRzWzFdID4gb2Zmc2V0c1swXSkgeworCQkJZGlz dGFuY2UgPSBvZmZzZXRzWzFdIC0gb2Zmc2V0c1swXTsKKwkJCWlmIChkaXN0YW5jZSA9PSBQQUdF X1NJWkUpCisJCQkJbmVpZ2hib3VycyA9IHRydWU7CisJCQlwYWRfdG9fc2l6ZVswXSA9IEFMSUdO KGRpc3RhbmNlICsgUEFHRV9TSVpFLCBQQUdFX1NJWkUpOworCQl9IGVsc2UgeworCQkJZGlzdGFu Y2UgPSBvZmZzZXRzWzBdIC0gb2Zmc2V0c1sxXTsKKwkJCWlmIChkaXN0YW5jZSA9PSBQQUdFX1NJ WkUpCisJCQkJbmVpZ2hib3VycyA9IHRydWU7CisJCQlwYWRfdG9fc2l6ZVsxXSA9IEFMSUdOKGRp c3RhbmNlICsgUEFHRV9TSVpFLCBQQUdFX1NJWkUpOworCQl9CisKKwkJaWYgKG5laWdoYm91cnMp CisJCQlicmVhazsKKworCQl0cnkrKzsKKwkJaWR4ICs9MjsKKworCQlsb2NfaGFuZGxlc1tpZHhd ID0gZ2VtX2NyZWF0ZShmZCwgUEFHRV9TSVpFKTsKKwkJaWd0X2Fzc2VydChsb2NfaGFuZGxlc1tp ZHhdKTsKKwkJbG9jX2hhbmRsZXNbaWR4ICsgMV0gPSBnZW1fY3JlYXRlKGZkLCBQQUdFX1NJWkUp OworCQlpZ3RfYXNzZXJ0KGxvY19oYW5kbGVzW2lkeCArIDFdKTsKKwl9CisKKwkvKiBUZXN0IGNh bid0IGNvbmZpZGVudGx5IHJ1bi4gKi8KKwlpZiAoIW5laWdoYm91cnMpCisJCWdvdG8gY2xlYW51 cDsKKworCS8qIFJlLWV4ZWMgd2l0aCBwYWRkaW5nIHNldC4gKi8KKwlpZ3RfYXNzZXJ0KGV4ZWMo ZmQsIGViX2hhbmRsZXMsIHBhZF90b19zaXplLCBvZmZzZXRzKSA9PSAwKTsKKworCWlmIChvZmZz ZXRzWzFdID4gb2Zmc2V0c1swXSkKKwkJZGlzdGFuY2UgPSBvZmZzZXRzWzFdIC0gb2Zmc2V0c1sw XTsKKwllbHNlCisJCWRpc3RhbmNlID0gb2Zmc2V0c1swXSAtIG9mZnNldHNbMV07CisKKwkvKiBD aGVjayB0aGF0IG9iamVjdCBhcmUgbm93IGF3YXkgZnJvbSBlYWNoIG90aGVyLiAqLworCWlndF9h c3NlcnQoZGlzdGFuY2UgPj0gMiAqIFBBR0VfU0laRSk7CisKK2NsZWFudXA6CisJLyogQ2xlYW51 cCBvdXIgYm9zLiAqLworCWZvciAoaWR4ID0gMDsgbG9jX2hhbmRsZXNbaWR4XSAmJiAoaWR4IDwg dHJ5ICogMik7IGlkeCsrKQorCQlnZW1fY2xvc2UoZmQsIGxvY19oYW5kbGVzWzIgKyBpZHhdKTsK KworCWZyZWUobG9jX2hhbmRsZXMpOworCisJaWd0X3JlcXVpcmUobmVpZ2hib3Vycyk7Cit9CisK K3VpbnQzMl90IGJhdGNoWzJdID0ge01JX0JBVENIX0JVRkZFUl9FTkR9OwordWludDMyX3QgaGFu ZGxlc1szXTsKK2ludCBmZDsKKworaWd0X21haW4KK3sKKwlpZ3RfZml4dHVyZSB7CisJCWZkID0g ZHJtX29wZW5fYW55KCk7CisKKwkJaGFuZGxlc1swXSA9IGdlbV9jcmVhdGUoZmQsIFBBR0VfU0la RSk7CisJCWdlbV93cml0ZShmZCwgaGFuZGxlc1swXSwgMCwgYmF0Y2gsIHNpemVvZihiYXRjaCkp OworCisJCWhhbmRsZXNbMV0gPSBnZW1fY3JlYXRlKGZkLCBQQUdFX1NJWkUpOworCQloYW5kbGVz WzJdID0gZ2VtX2NyZWF0ZShmZCwgUEFHRV9TSVpFKTsKKwl9CisKKwlpZ3Rfc3VidGVzdCgicGFk X3RvX3NpemUiKQorCQlyZXF1aXJlX3BhZF90b19zaXplKGZkLCBoYW5kbGVzKTsKKworCWlndF9z dWJ0ZXN0KCJub3RfYWxpZ25lZCIpCisJCW5vdF9hbGlnbmVkKGZkLCBoYW5kbGVzKTsKKworCWln dF9zdWJ0ZXN0KCJwYWRkaW5nIikKKwkJcGFkZGluZyhmZCwgaGFuZGxlcyk7CisKKwlpZ3RfZml4 dHVyZSB7CisJCWdlbV9jbG9zZShmZCwgaGFuZGxlc1swXSk7CisJCWdlbV9jbG9zZShmZCwgaGFu ZGxlc1sxXSk7CisJCWdlbV9jbG9zZShmZCwgaGFuZGxlc1syXSk7CisKKwkJY2xvc2UoZmQpOwor CX0KK30KLS0gCjIuMy4yCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=