From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 5/5] tools/testing/scatterlist: Test new __sg_alloc_table_from_pages Date: Mon, 31 Jul 2017 19:55:12 +0100 Message-ID: <20170731185512.20010-5-tvrtko.ursulin@linux.intel.com> References: <20170731185512.20010-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 614F86E9C7 for ; Mon, 31 Jul 2017 18:55:25 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id y206so14042188wmd.5 for ; Mon, 31 Jul 2017 11:55:25 -0700 (PDT) In-Reply-To: <20170731185512.20010-1-tvrtko.ursulin@linux.intel.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 CgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29t PgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBsaW51eC1r ZXJuZWxAdmdlci5rZXJuZWwub3JnCi0tLQogdG9vbHMvdGVzdGluZy9zY2F0dGVybGlzdC9NYWtl ZmlsZSAgIHwgIDMwICsrKysrKysrKwogdG9vbHMvdGVzdGluZy9zY2F0dGVybGlzdC9saW51eC9t bS5oIHwgMTI1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0b29scy90ZXN0 aW5nL3NjYXR0ZXJsaXN0L21haW4uYyAgICAgfCAxMTIgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyNjcgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUg MTAwNjQ0IHRvb2xzL3Rlc3Rpbmcvc2NhdHRlcmxpc3QvTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEw MDY0NCB0b29scy90ZXN0aW5nL3NjYXR0ZXJsaXN0L2xpbnV4L21tLmgKIGNyZWF0ZSBtb2RlIDEw MDY0NCB0b29scy90ZXN0aW5nL3NjYXR0ZXJsaXN0L21haW4uYwoKZGlmZiAtLWdpdCBhL3Rvb2xz L3Rlc3Rpbmcvc2NhdHRlcmxpc3QvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NjYXR0ZXJsaXN0 L01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDg2N2Uw ZWYzMmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvdGVzdGluZy9zY2F0dGVybGlzdC9NYWtl ZmlsZQpAQCAtMCwwICsxLDMwIEBACitDRkxBR1MgKz0gLUkuIC1JLi4vLi4vaW5jbHVkZSAtZyAt TzIgLVdhbGwgLWZzYW5pdGl6ZT1hZGRyZXNzCitMREZMQUdTICs9IC1mc2FuaXRpemU9YWRkcmVz cworVEFSR0VUUyA9IG1haW4KK09GSUxFUyA9IG1haW4ubyBzY2F0dGVybGlzdC5vCisKK2lmZXEg KCQoQlVJTEQpLCAzMikKKyAgICAgICAgQ0ZMQUdTICs9IC1tMzIKKyAgICAgICAgTERGTEFHUyAr PSAtbTMyCitlbmRpZgorCit0YXJnZXRzOiBpbmNsdWRlICQoVEFSR0VUUykKKworbWFpbjogJChP RklMRVMpCisKK2NsZWFuOgorCSQoUk0pICQoVEFSR0VUUykgJChPRklMRVMpIHNjYXR0ZXJsaXN0 LmMgbGludXgvc2NhdHRlcmxpc3QuaCBsaW51eC9oaWdobWVtLmggbGludXgva21lbWxlYWsuaCBh c20vaW8uaAorCUBybWRpciBhc20KKworc2NhdHRlcmxpc3QuYzogLi4vLi4vLi4vbGliL3NjYXR0 ZXJsaXN0LmMKKwlAc2VkIC1lICdzL15zdGF0aWMgLy8nIC1lICdzL19fYWx3YXlzX2lubGluZSAv LycgLWUgJ3MvaW5saW5lIC8vJyA8ICQ8ID4gJEAKKworLlBIT05ZOiBpbmNsdWRlCisKK2luY2x1 ZGU6IC4uLy4uLy4uL2luY2x1ZGUvbGludXgvc2NhdHRlcmxpc3QuaAorCUBta2RpciAtcCBsaW51 eAorCUBta2RpciAtcCBhc20KKwlAdG91Y2ggYXNtL2lvLmgKKwlAdG91Y2ggbGludXgvaGlnaG1l bS5oCisJQHRvdWNoIGxpbnV4L2ttZW1sZWFrLmgKKwlAY3AgJDwgbGludXgvc2NhdHRlcmxpc3Qu aApkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zY2F0dGVybGlzdC9saW51eC9tbS5oIGIvdG9v bHMvdGVzdGluZy9zY2F0dGVybGlzdC9saW51eC9tbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uY2NiYjI0OGViZGMxCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMv dGVzdGluZy9zY2F0dGVybGlzdC9saW51eC9tbS5oCkBAIC0wLDAgKzEsMTI1IEBACisjaWZuZGVm IF9MSU5VWF9NTV9ICisjZGVmaW5lIF9MSU5VWF9NTV9ICisKKyNpbmNsdWRlIDxhc3NlcnQuaD4K KyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxlcnJu by5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKK3R5cGVkZWYg dW5zaWduZWQgbG9uZyBkbWFfYWRkcl90OworCisjZGVmaW5lIHVubGlrZWx5CisKKyNkZWZpbmUg QlVHX09OKHgpIGFzc2VydCghKHgpKQorCisjZGVmaW5lIFdBUk5fT04oY29uZGl0aW9uKSAoeyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGludCBf X3JldF93YXJuX29uID0gISEoY29uZGl0aW9uKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgIHVubGlrZWx5KF9fcmV0X3dhcm5fb24pOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCit9KQorCisjZGVmaW5lIFdBUk5fT05fT05DRShjb25kaXRp b24pICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpbnQgX19yZXRf d2Fybl9vbiA9ICEhKGNvbmRpdGlvbik7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg aWYgKHVubGlrZWx5KF9fcmV0X3dhcm5fb24pKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICAgICAgICAgICAgYXNzZXJ0KDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAgICAgICB1bmxpa2VseShfX3JldF93YXJuX29uKTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKK30pCisKKyNkZWZpbmUgUEFHRV9TSVpFCSg0MDk2KQorI2Rl ZmluZSBQQUdFX1NISUZUCSgxMikKKyNkZWZpbmUgUEFHRV9NQVNLCSh+KFBBR0VfU0laRS0xKSkK KworI2RlZmluZSBfX0FMSUdOX0tFUk5FTCh4LCBhKSAgICAgICAgICAgIF9fQUxJR05fS0VSTkVM X01BU0soeCwgKHR5cGVvZih4KSkoYSkgLSAxKQorI2RlZmluZSBfX0FMSUdOX0tFUk5FTF9NQVNL KHgsIG1hc2spICAgICgoKHgpICsgKG1hc2spKSAmIH4obWFzaykpCisjZGVmaW5lIEFMSUdOKHgs IGEpICAgICAgICAgICAgIF9fQUxJR05fS0VSTkVMKCh4KSwgKGEpKQorCisjZGVmaW5lIFBBR0Vf QUxJR04oYWRkcikgQUxJR04oYWRkciwgUEFHRV9TSVpFKQorCisjZGVmaW5lIG9mZnNldF9pbl9w YWdlKHApCSgodW5zaWduZWQgbG9uZykocCkgJiB+UEFHRV9NQVNLKQorCisjZGVmaW5lIHZpcnRf dG9fcGFnZSh4KQkoKHZvaWQgKil4KQorI2RlZmluZSBwYWdlX2FkZHJlc3MoeCkJKCh2b2lkICop eCkKKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHBhZ2VfdG9fcGh5cyhzdHJ1Y3QgcGFn ZSAqcGFnZSkKK3sKKwlhc3NlcnQoMCk7CisKKwlyZXR1cm4gMDsKK30KKworI2RlZmluZSBwYWdl X3RvX3BmbihwYWdlKSAoKHVuc2lnbmVkIGxvbmcpKHBhZ2UpIC8gUEFHRV9TSVpFKQorI2RlZmlu ZSBwZm5fdG9fcGFnZShwZm4pICh2b2lkICopKChwZm4pICogUEFHRV9TSVpFKQorI2RlZmluZSBu dGhfcGFnZShwYWdlLG4pIHBmbl90b19wYWdlKHBhZ2VfdG9fcGZuKChwYWdlKSkgKyAobikpCisK KyNkZWZpbmUgX19taW4odDEsIHQyLCBtaW4xLCBtaW4yLCB4LCB5KSAoeyAgICAgICAgICAgICAg XAorICAgICAgICB0MSBtaW4xID0gKHgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgIHQyIG1pbjIgPSAoeSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgKHZvaWQpICgmbWluMSA9PSAmbWluMik7ICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICBtaW4xIDwgbWluMiA/IG1pbjEgOiBtaW4yOyB9KQorCisjZGVmaW5l IF9fX1BBU1RFKGEsYikgYSMjYgorI2RlZmluZSBfX1BBU1RFKGEsYikgX19fUEFTVEUoYSxiKQor CisjZGVmaW5lIF9fVU5JUVVFX0lEKHByZWZpeCkgX19QQVNURShfX1BBU1RFKF9fVU5JUVVFX0lE XywgcHJlZml4KSwgX19DT1VOVEVSX18pCisKKyNkZWZpbmUgbWluKHgsIHkpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBfX21pbih0eXBlb2YoeCksIHR5 cGVvZih5KSwgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgIF9fVU5JUVVFX0lE KG1pbjFfKSwgX19VTklRVUVfSUQobWluMl8pLCAgIFwKKyAgICAgICAgICAgICAgeCwgeSkKKwor I2RlZmluZSBtaW5fdCh0eXBlLCB4LCB5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICAgIF9fbWluKHR5cGUsIHR5cGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAgICAgICAgICAgX19VTklRVUVfSUQobWluMV8pLCBfX1VOSVFVRV9JRChtaW4yXyks ICAgXAorICAgICAgICAgICAgICB4LCB5KQorCisjZGVmaW5lIHByZWVtcHRpYmxlKCkgKDEpCisK K3N0YXRpYyBpbmxpbmUgdm9pZCAqa21hcChzdHJ1Y3QgcGFnZSAqcGFnZSkKK3sKKwlhc3NlcnQo MCk7CisKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIGlubGluZSB2b2lkICprbWFwX2F0b21p YyhzdHJ1Y3QgcGFnZSAqcGFnZSkKK3sKKwlhc3NlcnQoMCk7CisKKwlyZXR1cm4gTlVMTDsKK30K Kworc3RhdGljIGlubGluZSB2b2lkIGt1bm1hcCh2b2lkICphZGRyKQoreworCWFzc2VydCgwKTsK K30KKworc3RhdGljIGlubGluZSB2b2lkIGt1bm1hcF9hdG9taWModm9pZCAqYWRkcikKK3sKKwlh c3NlcnQoMCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBfX2dldF9mcmVlX3Bh Z2UodW5zaWduZWQgaW50IGZsYWdzKQoreworCXJldHVybiAodW5zaWduZWQgbG9uZyltYWxsb2Mo UEFHRV9TSVpFKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGZyZWVfcGFnZSh1bnNpZ25lZCBs b25nIHBhZ2UpCit7CisJZnJlZSgodm9pZCAqKXBhZ2UpOworfQorCitzdGF0aWMgaW5saW5lIHZv aWQgKmttYWxsb2ModW5zaWduZWQgaW50IHNpemUsIHVuc2lnbmVkIGludCBmbGFncykKK3sKKwly ZXR1cm4gbWFsbG9jKHNpemUpOworfQorCisjZGVmaW5lIGtmcmVlKHgpIGZyZWUoeCkKKworI2Rl ZmluZSBrbWVtbGVha19hbGxvYyhhLCBiLCBjLCBkKQorI2RlZmluZSBrbWVtbGVha19mcmVlKGEp CisKKyNkZWZpbmUgUGFnZVNsYWIocCkgKDApCisjZGVmaW5lIGZsdXNoX2tlcm5lbF9kY2FjaGVf cGFnZShwKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2NhdHRlcmxpc3Qv bWFpbi5jIGIvdG9vbHMvdGVzdGluZy9zY2F0dGVybGlzdC9tYWluLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lZGY5YjI5NjA3MzQKLS0tIC9kZXYvbnVsbAorKysg Yi90b29scy90ZXN0aW5nL3NjYXR0ZXJsaXN0L21haW4uYwpAQCAtMCwwICsxLDExMiBAQAorI2lu Y2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisKKyNpbmNsdWRlIDxsaW51eC9z Y2F0dGVybGlzdC5oPgorCisjZGVmaW5lIE1BWF9QQUdFUyAoNjQpCisKK3N0YXRpYyB1bnNpZ25l ZAorX3NldF9wYWdlcyhzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCBjb25zdCB1bnNpZ25lZCAqYXJyYXks IHVuc2lnbmVkIG51bSkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKworCWFzc2VydChudW0gPCBNQVhf UEFHRVMpOworCisJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKQorCQlwYWdlc1tpXSA9IChzdHJ1 Y3QgcGFnZSAqKSh1bnNpZ25lZCBsb25nKQorCQkJICAgKCgxICsgYXJyYXlbaV0pICogUEFHRV9T SVpFKTsKKworCXJldHVybiBudW07Cit9CisKKyNkZWZpbmUgc2V0X3BhZ2VzKHAsIGEpIF9zZXRf cGFnZXMoKHApLCAoYSksIHNpemVvZihhKSAvIHNpemVvZihhWzBdKSkKKworI2RlZmluZSBjaGVj a19hbmRfZnJlZShfc3QsIF9yZXQsIF9uZW50cykgXAoreyBcCisJYXNzZXJ0KChfcmV0KSA9PSAw KTsgXAorCWFzc2VydCgoX3N0KS0+bmVudHMgPT0gX25lbnRzKTsgXAorCWFzc2VydCgoX3N0KS0+ b3JpZ19uZW50cyA9PSBfbmVudHMpOyBcCisJc2dfZnJlZV90YWJsZShfc3QpOyBcCit9CisKK3N0 YXRpYyBpbnQKK2FsbG9jX3RibChzdHJ1Y3Qgc2dfdGFibGUgKnN0LCBzdHJ1Y3QgcGFnZSAqKnBh Z2VzLCB1bnNpZ25lZCBucl9wYWdlcywKKwkgIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgc2l6 ZSwgdW5zaWduZWQgbWF4KQoreworCXJldHVybiBfX3NnX2FsbG9jX3RhYmxlX2Zyb21fcGFnZXMo c3QsIHBhZ2VzLCBucl9wYWdlcywgb2Zmc2V0LCBzaXplLAorCQkJCQkgICBtYXgsIEdGUF9LRVJO RUwpOworfQorCitpbnQgbWFpbih2b2lkKQoreworCWNvbnN0IHVuc2lnbmVkIGludCBzZ21heCA9 IFNDQVRURVJMSVNUX01BWF9TRUdNRU5UOworCXN0cnVjdCBwYWdlICpwYWdlc1tNQVhfUEFHRVNd OworCXN0cnVjdCBzZ190YWJsZSBzdDsKKwlpbnQgcmV0OworCisJcmV0ID0gc2V0X3BhZ2VzKHBh Z2VzLCAoKHVuc2lnbmVkIFtdKXsgMCB9KSk7CisJcmV0ID0gYWxsb2NfdGJsKCZzdCwgcGFnZXMs IHJldCwgMCwgcmV0ICogUEFHRV9TSVpFLCBQQUdFX1NJWkUgKyAxKTsKKwlhc3NlcnQocmV0ID09 IC1FSU5WQUwpOworCisJcmV0ID0gc2V0X3BhZ2VzKHBhZ2VzLCAoKHVuc2lnbmVkIFtdKXsgMCB9 KSk7CisJcmV0ID0gYWxsb2NfdGJsKCZzdCwgcGFnZXMsIHJldCwgMCwgcmV0ICogUEFHRV9TSVpF LCAwKTsKKwlhc3NlcnQocmV0ID09IC1FSU5WQUwpOworCisJcmV0ID0gc2V0X3BhZ2VzKHBhZ2Vz LCAoKHVuc2lnbmVkIFtdKXsgMCB9KSk7CisJcmV0ID0gYWxsb2NfdGJsKCZzdCwgcGFnZXMsIHJl dCwgMCwgcmV0ICogUEFHRV9TSVpFLCBzZ21heCk7CisJY2hlY2tfYW5kX2ZyZWUoJnN0LCByZXQs IDEpOworCisJcmV0ID0gc2V0X3BhZ2VzKHBhZ2VzLCAoKHVuc2lnbmVkIFtdKXsgMCB9KSk7CisJ cmV0ID0gYWxsb2NfdGJsKCZzdCwgcGFnZXMsIHJldCwgMCwgcmV0LCBzZ21heCk7CisJY2hlY2tf YW5kX2ZyZWUoJnN0LCByZXQsIDEpOworCisJcmV0ID0gc2V0X3BhZ2VzKHBhZ2VzLCAoKHVuc2ln bmVkIFtdKXsgMCwgMSB9KSk7CisJcmV0ID0gYWxsb2NfdGJsKCZzdCwgcGFnZXMsIHJldCwgMCwg cmV0ICogUEFHRV9TSVpFLCBzZ21heCk7CisJY2hlY2tfYW5kX2ZyZWUoJnN0LCByZXQsIDEpOwor CisJcmV0ID0gc2V0X3BhZ2VzKHBhZ2VzLCAoKHVuc2lnbmVkIFtdKXsgMCwgMiB9KSk7CisJcmV0 ID0gYWxsb2NfdGJsKCZzdCwgcGFnZXMsIHJldCwgMCwgcmV0ICogUEFHRV9TSVpFLCBzZ21heCk7 CisJY2hlY2tfYW5kX2ZyZWUoJnN0LCByZXQsIDIpOworCisJcmV0ID0gc2V0X3BhZ2VzKHBhZ2Vz LCAoKHVuc2lnbmVkIFtdKXsgMCwgMSwgMyB9KSk7CisJcmV0ID0gYWxsb2NfdGJsKCZzdCwgcGFn ZXMsIHJldCwgMCwgcmV0ICogUEFHRV9TSVpFLCBzZ21heCk7CisJY2hlY2tfYW5kX2ZyZWUoJnN0 LCByZXQsIDIpOworCisJcmV0ID0gc2V0X3BhZ2VzKHBhZ2VzLCAoKHVuc2lnbmVkIFtdKXsgMCwg MSwgMywgNCB9KSk7CisJcmV0ID0gYWxsb2NfdGJsKCZzdCwgcGFnZXMsIHJldCwgMCwgcmV0ICog UEFHRV9TSVpFLCBzZ21heCk7CisJY2hlY2tfYW5kX2ZyZWUoJnN0LCByZXQsIDIpOworCisJcmV0 ID0gc2V0X3BhZ2VzKHBhZ2VzLCAoKHVuc2lnbmVkIFtdKXsgMCwgMSwgMywgNCwgNSB9KSk7CisJ cmV0ID0gYWxsb2NfdGJsKCZzdCwgcGFnZXMsIHJldCwgMCwgcmV0ICogUEFHRV9TSVpFLCBzZ21h eCk7CisJY2hlY2tfYW5kX2ZyZWUoJnN0LCByZXQsIDIpOworCisJcmV0ID0gc2V0X3BhZ2VzKHBh Z2VzLCAoKHVuc2lnbmVkIFtdKXsgMCwgMSwgMywgNCwgNiB9KSk7CisJcmV0ID0gYWxsb2NfdGJs KCZzdCwgcGFnZXMsIHJldCwgMCwgcmV0ICogUEFHRV9TSVpFLCBzZ21heCk7CisJY2hlY2tfYW5k X2ZyZWUoJnN0LCByZXQsIDMpOworCisJcmV0ID0gc2V0X3BhZ2VzKHBhZ2VzLCAoKHVuc2lnbmVk IFtdKXsgMCwgMiwgNCwgNiwgOCB9KSk7CisJcmV0ID0gYWxsb2NfdGJsKCZzdCwgcGFnZXMsIHJl dCwgMCwgcmV0ICogUEFHRV9TSVpFLCBzZ21heCk7CisJY2hlY2tfYW5kX2ZyZWUoJnN0LCByZXQs IDUpOworCisJcmV0ID0gc2V0X3BhZ2VzKHBhZ2VzLCAoKHVuc2lnbmVkIFtdKXsgMCwgMSwgMiwg MywgNCB9KSk7CisJcmV0ID0gYWxsb2NfdGJsKCZzdCwgcGFnZXMsIHJldCwgMCwgcmV0ICogUEFH RV9TSVpFLCBzZ21heCk7CisJY2hlY2tfYW5kX2ZyZWUoJnN0LCByZXQsIDEpOworCisJcmV0ID0g c2V0X3BhZ2VzKHBhZ2VzLCAoKHVuc2lnbmVkIFtdKXsgMCwgMSwgMiwgMywgNCB9KSk7CisJcmV0 ID0gYWxsb2NfdGJsKCZzdCwgcGFnZXMsIHJldCwgMCwgcmV0ICogUEFHRV9TSVpFLCAyICogUEFH RV9TSVpFKTsKKwljaGVja19hbmRfZnJlZSgmc3QsIHJldCwgMyk7CisKKwlyZXQgPSBzZXRfcGFn ZXMocGFnZXMsICgodW5zaWduZWQgW10peyAwLCAxLCAyLCAzLCA0LCA1fSkpOworCXJldCA9IGFs bG9jX3RibCgmc3QsIHBhZ2VzLCByZXQsIDAsIHJldCAqIFBBR0VfU0laRSwgMiAqIFBBR0VfU0la RSk7CisJY2hlY2tfYW5kX2ZyZWUoJnN0LCByZXQsIDMpOworCisJcmV0ID0gc2V0X3BhZ2VzKHBh Z2VzLCAoKHVuc2lnbmVkIFtdKXsgMCwgMiwgMywgNCwgNSwgNn0pKTsKKwlyZXQgPSBhbGxvY190 YmwoJnN0LCBwYWdlcywgcmV0LCAwLCByZXQgKiBQQUdFX1NJWkUsIDIgKiBQQUdFX1NJWkUpOwor CWNoZWNrX2FuZF9mcmVlKCZzdCwgcmV0LCA0KTsKKworCXJldCA9IHNldF9wYWdlcyhwYWdlcywg KCh1bnNpZ25lZCBbXSl7IDAsIDEsIDMsIDQsIDUsIDZ9KSk7CisJcmV0ID0gYWxsb2NfdGJsKCZz dCwgcGFnZXMsIHJldCwgMCwgcmV0ICogUEFHRV9TSVpFLCAyICogUEFHRV9TSVpFKTsKKwljaGVj a19hbmRfZnJlZSgmc3QsIHJldCwgMyk7CisKKwlyZXR1cm4gMDsKK30KLS0gCjIuOS40CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK