From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH v3 5/5] tools/testing/scatterlist: Test new __sg_alloc_table_from_pages Date: Wed, 6 Sep 2017 15:55:06 +0100 Message-ID: <20170906145506.14952-1-tvrtko.ursulin@linux.intel.com> References: <150470157212.5486.15223573670024117741@mail.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id C5C366E72F for ; Wed, 6 Sep 2017 14:55:14 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id e64so5519364wmi.2 for ; Wed, 06 Sep 2017 07:55:14 -0700 (PDT) In-Reply-To: <150470157212.5486.15223573670024117741@mail.alporthouse.com> 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 Cc: linux-kernel@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkV4ZXJjaXNl IHRoZSBuZXcgX19zZ19hbGxvY190YWJsZV9mcm9tX3BhZ2VzIEFQSSAoYW5kIHRocm91Z2gKaXQg YWxzbyB0aGUgb2xkIHNnX2FsbG9jX3RhYmxlX2Zyb21fcGFnZXMpLCBjaGVja2luZyB0aGF0IHRo ZQpjcmVhdGVkIHRhYmxlIGhhcyB0aGUgZXhwZWN0ZWQgbnVtYmVyIG9mIHNlZ21lbnRzIGRlcGVu ZGluZyBvbgp0aGUgc2VxdWVuY2Ugb2YgaW5wdXQgcGFnZXMgYW5kIG90aGVyIGNvbmRpdGlvbnMu Cgp2MjogTW92ZSB0byBkYXRhIGRyaXZlbiBmb3IgcmVhZGFiaWxpdHkuCnYzOiBBZGQgc29tZSBt b3JlIHRlc3RjYXNlcyBhbmQgLWZzYW5pdGl6ZT11bmRlZmluZWQuIChDaHJpcyBXaWxzb24pCgpT aWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpD YzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBsaW51eC1rZXJu ZWxAdmdlci5rZXJuZWwub3JnClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlz LXdpbHNvbi5jby51az4KLS0tCiB0b29scy90ZXN0aW5nL3NjYXR0ZXJsaXN0L01ha2VmaWxlICAg fCAgMzAgKysrKysrKysrCiB0b29scy90ZXN0aW5nL3NjYXR0ZXJsaXN0L2xpbnV4L21tLmggfCAx MjUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRvb2xzL3Rlc3Rpbmcvc2Nh dHRlcmxpc3QvbWFpbi5jICAgICB8ICA3OSArKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVz IGNoYW5nZWQsIDIzNCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvdGVz dGluZy9zY2F0dGVybGlzdC9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL3Rlc3Rp bmcvc2NhdHRlcmxpc3QvbGludXgvbW0uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL3Rlc3Rp bmcvc2NhdHRlcmxpc3QvbWFpbi5jCgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zY2F0dGVy bGlzdC9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2NhdHRlcmxpc3QvTWFrZWZpbGUKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45MzNjM2E2ZTRkNzcKLS0tIC9kZXYv bnVsbAorKysgYi90b29scy90ZXN0aW5nL3NjYXR0ZXJsaXN0L01ha2VmaWxlCkBAIC0wLDAgKzEs MzAgQEAKK0NGTEFHUyArPSAtSS4gLUkuLi8uLi9pbmNsdWRlIC1nIC1PMiAtV2FsbCAtZnNhbml0 aXplPWFkZHJlc3MKK0xERkxBR1MgKz0gLWZzYW5pdGl6ZT1hZGRyZXNzIC1mc2FuaXRpemU9dW5k ZWZpbmVkCitUQVJHRVRTID0gbWFpbgorT0ZJTEVTID0gbWFpbi5vIHNjYXR0ZXJsaXN0Lm8KKwor aWZlcSAoJChCVUlMRCksIDMyKQorICAgICAgICBDRkxBR1MgKz0gLW0zMgorICAgICAgICBMREZM QUdTICs9IC1tMzIKK2VuZGlmCisKK3RhcmdldHM6IGluY2x1ZGUgJChUQVJHRVRTKQorCittYWlu OiAkKE9GSUxFUykKKworY2xlYW46CisJJChSTSkgJChUQVJHRVRTKSAkKE9GSUxFUykgc2NhdHRl cmxpc3QuYyBsaW51eC9zY2F0dGVybGlzdC5oIGxpbnV4L2hpZ2htZW0uaCBsaW51eC9rbWVtbGVh ay5oIGFzbS9pby5oCisJQHJtZGlyIGFzbQorCitzY2F0dGVybGlzdC5jOiAuLi8uLi8uLi9saWIv c2NhdHRlcmxpc3QuYworCUBzZWQgLWUgJ3MvXnN0YXRpYyAvLycgLWUgJ3MvX19hbHdheXNfaW5s aW5lIC8vJyAtZSAncy9pbmxpbmUgLy8nIDwgJDwgPiAkQAorCisuUEhPTlk6IGluY2x1ZGUKKwor aW5jbHVkZTogLi4vLi4vLi4vaW5jbHVkZS9saW51eC9zY2F0dGVybGlzdC5oCisJQG1rZGlyIC1w IGxpbnV4CisJQG1rZGlyIC1wIGFzbQorCUB0b3VjaCBhc20vaW8uaAorCUB0b3VjaCBsaW51eC9o aWdobWVtLmgKKwlAdG91Y2ggbGludXgva21lbWxlYWsuaAorCUBjcCAkPCBsaW51eC9zY2F0dGVy bGlzdC5oCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NjYXR0ZXJsaXN0L2xpbnV4L21tLmgg Yi90b29scy90ZXN0aW5nL3NjYXR0ZXJsaXN0L2xpbnV4L21tLmgKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jY2JiMjQ4ZWJkYzEKLS0tIC9kZXYvbnVsbAorKysgYi90 b29scy90ZXN0aW5nL3NjYXR0ZXJsaXN0L2xpbnV4L21tLmgKQEAgLTAsMCArMSwxMjUgQEAKKyNp Zm5kZWYgX0xJTlVYX01NX0gKKyNkZWZpbmUgX0xJTlVYX01NX0gKKworI2luY2x1ZGUgPGFzc2Vy dC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUg PGVycm5vLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKwordHlw ZWRlZiB1bnNpZ25lZCBsb25nIGRtYV9hZGRyX3Q7CisKKyNkZWZpbmUgdW5saWtlbHkKKworI2Rl ZmluZSBCVUdfT04oeCkgYXNzZXJ0KCEoeCkpCisKKyNkZWZpbmUgV0FSTl9PTihjb25kaXRpb24p ICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg aW50IF9fcmV0X3dhcm5fb24gPSAhIShjb25kaXRpb24pOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAgICAgdW5saWtlbHkoX19yZXRfd2Fybl9vbik7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30pCisKKyNkZWZpbmUgV0FSTl9PTl9PTkNFKGNv bmRpdGlvbikgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGludCBf X3JldF93YXJuX29uID0gISEoY29uZGl0aW9uKTsgICAgICAgICAgICAgICAgICAgICAgXAorICAg ICAgICBpZiAodW5saWtlbHkoX19yZXRfd2Fybl9vbikpICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgICAgICAgICBhc3NlcnQoMCk7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgICAgIHVubGlrZWx5KF9fcmV0X3dhcm5fb24pOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorfSkKKworI2RlZmluZSBQQUdFX1NJWkUJKDQwOTYp CisjZGVmaW5lIFBBR0VfU0hJRlQJKDEyKQorI2RlZmluZSBQQUdFX01BU0sJKH4oUEFHRV9TSVpF LTEpKQorCisjZGVmaW5lIF9fQUxJR05fS0VSTkVMKHgsIGEpICAgICAgICAgICAgX19BTElHTl9L RVJORUxfTUFTSyh4LCAodHlwZW9mKHgpKShhKSAtIDEpCisjZGVmaW5lIF9fQUxJR05fS0VSTkVM X01BU0soeCwgbWFzaykgICAgKCgoeCkgKyAobWFzaykpICYgfihtYXNrKSkKKyNkZWZpbmUgQUxJ R04oeCwgYSkgICAgICAgICAgICAgX19BTElHTl9LRVJORUwoKHgpLCAoYSkpCisKKyNkZWZpbmUg UEFHRV9BTElHTihhZGRyKSBBTElHTihhZGRyLCBQQUdFX1NJWkUpCisKKyNkZWZpbmUgb2Zmc2V0 X2luX3BhZ2UocCkJKCh1bnNpZ25lZCBsb25nKShwKSAmIH5QQUdFX01BU0spCisKKyNkZWZpbmUg dmlydF90b19wYWdlKHgpCSgodm9pZCAqKXgpCisjZGVmaW5lIHBhZ2VfYWRkcmVzcyh4KQkoKHZv aWQgKil4KQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgcGFnZV90b19waHlzKHN0cnVj dCBwYWdlICpwYWdlKQoreworCWFzc2VydCgwKTsKKworCXJldHVybiAwOworfQorCisjZGVmaW5l IHBhZ2VfdG9fcGZuKHBhZ2UpICgodW5zaWduZWQgbG9uZykocGFnZSkgLyBQQUdFX1NJWkUpCisj ZGVmaW5lIHBmbl90b19wYWdlKHBmbikgKHZvaWQgKikoKHBmbikgKiBQQUdFX1NJWkUpCisjZGVm aW5lIG50aF9wYWdlKHBhZ2UsbikgcGZuX3RvX3BhZ2UocGFnZV90b19wZm4oKHBhZ2UpKSArIChu KSkKKworI2RlZmluZSBfX21pbih0MSwgdDIsIG1pbjEsIG1pbjIsIHgsIHkpICh7ICAgICAgICAg ICAgICBcCisgICAgICAgIHQxIG1pbjEgPSAoeCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAgICAgdDIgbWluMiA9ICh5KTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAgICAgICAodm9pZCkgKCZtaW4xID09ICZtaW4yKTsgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgICAgIG1pbjEgPCBtaW4yID8gbWluMSA6IG1pbjI7IH0pCisKKyNk ZWZpbmUgX19fUEFTVEUoYSxiKSBhIyNiCisjZGVmaW5lIF9fUEFTVEUoYSxiKSBfX19QQVNURShh LGIpCisKKyNkZWZpbmUgX19VTklRVUVfSUQocHJlZml4KSBfX1BBU1RFKF9fUEFTVEUoX19VTklR VUVfSURfLCBwcmVmaXgpLCBfX0NPVU5URVJfXykKKworI2RlZmluZSBtaW4oeCwgeSkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIF9fbWluKHR5cGVvZih4 KSwgdHlwZW9mKHkpLCAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgX19VTklR VUVfSUQobWluMV8pLCBfX1VOSVFVRV9JRChtaW4yXyksICAgXAorICAgICAgICAgICAgICB4LCB5 KQorCisjZGVmaW5lIG1pbl90KHR5cGUsIHgsIHkpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgX19taW4odHlwZSwgdHlwZSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICAgICAgICBfX1VOSVFVRV9JRChtaW4xXyksIF9fVU5JUVVFX0lEKG1p bjJfKSwgICBcCisgICAgICAgICAgICAgIHgsIHkpCisKKyNkZWZpbmUgcHJlZW1wdGlibGUoKSAo MSkKKworc3RhdGljIGlubGluZSB2b2lkICprbWFwKHN0cnVjdCBwYWdlICpwYWdlKQoreworCWFz c2VydCgwKTsKKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgKmttYXBf YXRvbWljKHN0cnVjdCBwYWdlICpwYWdlKQoreworCWFzc2VydCgwKTsKKworCXJldHVybiBOVUxM OworfQorCitzdGF0aWMgaW5saW5lIHZvaWQga3VubWFwKHZvaWQgKmFkZHIpCit7CisJYXNzZXJ0 KDApOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQga3VubWFwX2F0b21pYyh2b2lkICphZGRyKQor eworCWFzc2VydCgwKTsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIF9fZ2V0X2Zy ZWVfcGFnZSh1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJcmV0dXJuICh1bnNpZ25lZCBsb25nKW1h bGxvYyhQQUdFX1NJWkUpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZnJlZV9wYWdlKHVuc2ln bmVkIGxvbmcgcGFnZSkKK3sKKwlmcmVlKCh2b2lkICopcGFnZSk7Cit9CisKK3N0YXRpYyBpbmxp bmUgdm9pZCAqa21hbGxvYyh1bnNpZ25lZCBpbnQgc2l6ZSwgdW5zaWduZWQgaW50IGZsYWdzKQor eworCXJldHVybiBtYWxsb2Moc2l6ZSk7Cit9CisKKyNkZWZpbmUga2ZyZWUoeCkgZnJlZSh4KQor CisjZGVmaW5lIGttZW1sZWFrX2FsbG9jKGEsIGIsIGMsIGQpCisjZGVmaW5lIGttZW1sZWFrX2Zy ZWUoYSkKKworI2RlZmluZSBQYWdlU2xhYihwKSAoMCkKKyNkZWZpbmUgZmx1c2hfa2VybmVsX2Rj YWNoZV9wYWdlKHApCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zY2F0dGVy bGlzdC9tYWluLmMgYi90b29scy90ZXN0aW5nL3NjYXR0ZXJsaXN0L21haW4uYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjBhMTQ2NDE4MTIyNgotLS0gL2Rldi9udWxs CisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2NhdHRlcmxpc3QvbWFpbi5jCkBAIC0wLDAgKzEsNzkgQEAK KyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGFzc2VydC5oPgorCisjaW5jbHVkZSA8bGlu dXgvc2NhdHRlcmxpc3QuaD4KKworI2RlZmluZSBNQVhfUEFHRVMgKDY0KQorCitzdGF0aWMgdm9p ZCBzZXRfcGFnZXMoc3RydWN0IHBhZ2UgKipwYWdlcywgY29uc3QgdW5zaWduZWQgKmFycmF5LCB1 bnNpZ25lZCBudW0pCit7CisJdW5zaWduZWQgaW50IGk7CisKKwlhc3NlcnQobnVtIDwgTUFYX1BB R0VTKTsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspCisJCXBhZ2VzW2ldID0gKHN0cnVjdCBw YWdlICopKHVuc2lnbmVkIGxvbmcpCisJCQkgICAoKDEgKyBhcnJheVtpXSkgKiBQQUdFX1NJWkUp OworfQorCisjZGVmaW5lIHBmbiguLi4pICh1bnNpZ25lZCBbXSl7IF9fVkFfQVJHU19fIH0KKwor aW50IG1haW4odm9pZCkKK3sKKwljb25zdCB1bnNpZ25lZCBpbnQgc2dtYXggPSBTQ0FUVEVSTElT VF9NQVhfU0VHTUVOVDsKKwlzdHJ1Y3QgdGVzdCB7CisJCWludCBhbGxvY19yZXQ7CisJCXVuc2ln bmVkIG51bV9wYWdlczsKKwkJdW5zaWduZWQgKnBmbjsKKwkJdW5zaWduZWQgc2l6ZTsKKwkJdW5z aWduZWQgaW50IG1heF9zZWc7CisJCXVuc2lnbmVkIGludCBleHBlY3RlZF9zZWdtZW50czsKKwl9 ICp0ZXN0LCB0ZXN0c1tdID0geworCQl7IC1FSU5WQUwsIDEsIHBmbigwKSwgUEFHRV9TSVpFLCBQ QUdFX1NJWkUgKyAxLCAxIH0sCisJCXsgLUVJTlZBTCwgMSwgcGZuKDApLCBQQUdFX1NJWkUsIDAs IDEgfSwKKwkJeyAtRUlOVkFMLCAxLCBwZm4oMCksIFBBR0VfU0laRSwgc2dtYXggKyAxLCAxIH0s CisJCXsgMCwgMSwgcGZuKDApLCBQQUdFX1NJWkUsIHNnbWF4LCAxIH0sCisJCXsgMCwgMSwgcGZu KDApLCAxLCBzZ21heCwgMSB9LAorCQl7IDAsIDIsIHBmbigwLCAxKSwgMiAqIFBBR0VfU0laRSwg c2dtYXgsIDEgfSwKKwkJeyAwLCAyLCBwZm4oMSwgMCksIDIgKiBQQUdFX1NJWkUsIHNnbWF4LCAy IH0sCisJCXsgMCwgMywgcGZuKDAsIDEsIDIpLCAzICogUEFHRV9TSVpFLCBzZ21heCwgMSB9LAor CQl7IDAsIDMsIHBmbigwLCAyLCAxKSwgMyAqIFBBR0VfU0laRSwgc2dtYXgsIDMgfSwKKwkJeyAw LCAzLCBwZm4oMCwgMSwgMyksIDMgKiBQQUdFX1NJWkUsIHNnbWF4LCAyIH0sCisJCXsgMCwgMywg cGZuKDEsIDIsIDQpLCAzICogUEFHRV9TSVpFLCBzZ21heCwgMiB9LAorCQl7IDAsIDMsIHBmbigx LCAzLCA0KSwgMyAqIFBBR0VfU0laRSwgc2dtYXgsIDIgfSwKKwkJeyAwLCA0LCBwZm4oMCwgMSwg MywgNCksIDQgKiBQQUdFX1NJWkUsIHNnbWF4LCAyIH0sCisJCXsgMCwgNSwgcGZuKDAsIDEsIDMs IDQsIDUpLCA1ICogUEFHRV9TSVpFLCBzZ21heCwgMiB9LAorCQl7IDAsIDUsIHBmbigwLCAxLCAz LCA0LCA2KSwgNSAqIFBBR0VfU0laRSwgc2dtYXgsIDMgfSwKKwkJeyAwLCA1LCBwZm4oMCwgMSwg MiwgMywgNCksIDUgKiBQQUdFX1NJWkUsIHNnbWF4LCAxIH0sCisJCXsgMCwgNSwgcGZuKDAsIDEs IDIsIDMsIDQpLCA1ICogUEFHRV9TSVpFLCAyICogUEFHRV9TSVpFLCAzIH0sCisJCXsgMCwgNiwg cGZuKDAsIDEsIDIsIDMsIDQsIDUpLCA2ICogUEFHRV9TSVpFLCAyICogUEFHRV9TSVpFLCAzIH0s CisJCXsgMCwgNiwgcGZuKDAsIDIsIDMsIDQsIDUsIDYpLCA2ICogUEFHRV9TSVpFLCAyICogUEFH RV9TSVpFLCA0IH0sCisJCXsgMCwgNiwgcGZuKDAsIDEsIDMsIDQsIDUsIDYpLCA2ICogUEFHRV9T SVpFLCAyICogUEFHRV9TSVpFLCAzIH0sCisJCXsgMCwgMCwgTlVMTCwgMCwgMCwgMCB9LAorCX07 CisJdW5zaWduZWQgaW50IGk7CisKKwlmb3IgKGkgPSAwLCB0ZXN0ID0gdGVzdHM7IHRlc3QtPmV4 cGVjdGVkX3NlZ21lbnRzOyB0ZXN0KyssIGkrKykgeworCQlzdHJ1Y3QgcGFnZSAqcGFnZXNbTUFY X1BBR0VTXTsKKwkJc3RydWN0IHNnX3RhYmxlIHN0OworCQlpbnQgcmV0OworCisJCXNldF9wYWdl cyhwYWdlcywgdGVzdC0+cGZuLCB0ZXN0LT5udW1fcGFnZXMpOworCisJCXJldCA9IF9fc2dfYWxs b2NfdGFibGVfZnJvbV9wYWdlcygmc3QsIHBhZ2VzLCB0ZXN0LT5udW1fcGFnZXMsCisJCQkJCQkg IDAsIHRlc3QtPnNpemUsIHRlc3QtPm1heF9zZWcsCisJCQkJCQkgIEdGUF9LRVJORUwpOworCQlh c3NlcnQocmV0ID09IHRlc3QtPmFsbG9jX3JldCk7CisKKwkJaWYgKHRlc3QtPmFsbG9jX3JldCkK KwkJCWNvbnRpbnVlOworCisJCWFzc2VydChzdC5uZW50cyA9PSB0ZXN0LT5leHBlY3RlZF9zZWdt ZW50cyk7CisJCWFzc2VydChzdC5vcmlnX25lbnRzID09IHRlc3QtPmV4cGVjdGVkX3NlZ21lbnRz KTsKKworCQlzZ19mcmVlX3RhYmxlKCZzdCk7CisJfQorCisJYXNzZXJ0KGkgPT0gKHNpemVvZih0 ZXN0cykgLyBzaXplb2YodGVzdHNbMF0pKSAtIDEpOworCisJcmV0dXJuIDA7Cit9Ci0tIAoyLjku NQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==