From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Grytsov Subject: [PATCH v4 10/13] libxl: change nic to use generec add function Date: Tue, 18 Jul 2017 17:25:27 +0300 Message-ID: <1500387930-16317-11-git-send-email-al1img@gmail.com> References: <1500387930-16317-1-git-send-email-al1img@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dXTRi-0002fz-Cs for xen-devel@lists.xenproject.org; Tue, 18 Jul 2017 14:25:54 +0000 Received: by mail-lf0-f66.google.com with SMTP id p11so1998649lfd.1 for ; Tue, 18 Jul 2017 07:25:51 -0700 (PDT) In-Reply-To: <1500387930-16317-1-git-send-email-al1img@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: ian.jackson@eu.citrix.com, wei.liu2@citrix.com, Oleksandr Grytsov List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgoKU2ln bmVkLW9mZi1ieTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29t PgotLS0KIHRvb2xzL2xpYnhsL2xpYnhsLmggICAgICAgICAgICAgICAgICAgfCAgIDkgKy0KIHRv b2xzL2xpYnhsL2xpYnhsX2NoZWNrcG9pbnRfZGV2aWNlLmMgfCAgIDkgKy0KIHRvb2xzL2xpYnhs L2xpYnhsX2NvbG9fc2F2ZS5jICAgICAgICAgfCAgIDQgKy0KIHRvb2xzL2xpYnhsL2xpYnhsX2Rt LmMgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHRvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgg ICAgICAgICAgfCAgIDIgLQogdG9vbHMvbGlieGwvbGlieGxfbmljLmMgICAgICAgICAgICAgICB8 IDIxMiArKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB0b29scy9vY2FtbC9saWJz L3hsL3hlbmxpZ2h0X3N0dWJzLmMgIHwgICAzICstCiB0b29scy94bC94bF9uaWMuYyAgICAgICAg ICAgICAgICAgICAgIHwgICAzICstCiA4IGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyks IDE4NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bC5oIGIvdG9v bHMvbGlieGwvbGlieGwuaAppbmRleCA5OTFiOTQ3Li40YTI5YjQzIDEwMDY0NAotLS0gYS90b29s cy9saWJ4bC9saWJ4bC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgKQEAgLTE4MjQsOSArMTgy NCwxNCBAQCBpbnQgbGlieGxfZGV2aWNlX25pY19kZXN0cm95KGxpYnhsX2N0eCAqY3R4LCB1aW50 MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfYXN5 bmNvcF9ob3cgKmFvX2hvdykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfRVhU RVJOQUxfQ0FMTEVSU19PTkxZOwogCi1saWJ4bF9kZXZpY2VfbmljICpsaWJ4bF9kZXZpY2Vfbmlj X2xpc3QobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBpbnQgKm51bSk7CitsaWJ4bF9k ZXZpY2VfbmljICpsaWJ4bF9kZXZpY2VfbmljX2xpc3QobGlieGxfY3R4ICpjdHgsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZG9taWQsIGludCAqbnVt KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhMX0VYVEVSTkFM X0NBTExFUlNfT05MWTsKK3ZvaWQgbGlieGxfZGV2aWNlX25pY19saXN0X2ZyZWUobGlieGxfZGV2 aWNlX25pYyogbGlzdCwgaW50IG51bSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TElCWExfRVhURVJOQUxfQ0FMTEVSU19PTkxZOwogaW50IGxpYnhsX2RldmljZV9uaWNfZ2V0aW5m byhsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9kZXZpY2VfbmljICpuaWMsIGxpYnhsX25pY2luZm8gKm5pY2luZm8pOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfbmljICpuaWMsIGxpYnhs X25pY2luZm8gKm5pY2luZm8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhMX0VY VEVSTkFMX0NBTExFUlNfT05MWTsKIAogLyoKICAqIFZpcnR1YWwgQ2hhbm5lbHMKZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NoZWNrcG9pbnRfZGV2aWNlLmMgYi90b29scy9saWJ4bC9s aWJ4bF9jaGVja3BvaW50X2RldmljZS5jCmluZGV4IDdiZDgzMmIuLmViOWM2MDQgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NoZWNrcG9pbnRfZGV2aWNlLmMKKysrIGIvdG9vbHMvbGli eGwvbGlieGxfY2hlY2twb2ludF9kZXZpY2UuYwpAQCAtNjMsNyArNjMsOCBAQCB2b2lkIGxpYnhs X19jaGVja3BvaW50X2RldmljZXNfc2V0dXAobGlieGxfX2VnYyAqZWdjLAogICAgIGNkcy0+bnVt X2Rpc2tzID0gMDsKIAogICAgIGlmIChjZHMtPmRldmljZV9raW5kX2ZsYWdzICYgKDEgPDwgTElC WExfX0RFVklDRV9LSU5EX1ZJRikpCi0gICAgICAgIGNkcy0+bmljcyA9IGxpYnhsX2RldmljZV9u aWNfbGlzdChDVFgsIGNkcy0+ZG9taWQsICZjZHMtPm51bV9uaWNzKTsKKyAgICAgICAgY2RzLT5u aWNzID0gbGlieGxfX2RldmljZV9saXN0KGdjLCAmbGlieGxfX25pY19kZXZ0eXBlLCBjZHMtPmRv bWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZpZiIsICZjZHMt Pm51bV9uaWNzKTsKIAogICAgIGlmIChjZHMtPmRldmljZV9raW5kX2ZsYWdzICYgKDEgPDwgTElC WExfX0RFVklDRV9LSU5EX1ZCRCkpCiAgICAgICAgIGNkcy0+ZGlza3MgPSBsaWJ4bF9fZGV2aWNl X2xpc3QoZ2MsICZsaWJ4bF9fZGlza19kZXZ0eXBlLCBjZHMtPmRvbWlkLApAQCAtMjA2LDggKzIw Nyw2IEBAIHN0YXRpYyB2b2lkIGRldmljZXNfdGVhcmRvd25fY2IobGlieGxfX2VnYyAqZWdjLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fbXVsdGlkZXYgKm11bHRpZGV2 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmMpCiB7Ci0gICAgaW50IGk7 Ci0KICAgICBTVEFURV9BT19HQyhtdWx0aWRldi0+YW8pOwogCiAgICAgLyogQ29udmVuaWVuY2Ug YWxpYXNlcyAqLwpAQCAtMjE1LDkgKzIxNCw3IEBAIHN0YXRpYyB2b2lkIGRldmljZXNfdGVhcmRv d25fY2IobGlieGxfX2VnYyAqZWdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlRB SU5FUl9PRihtdWx0aWRldiwgKmNkcywgbXVsdGlkZXYpOwogCiAgICAgLyogY2xlYW4gbmljICov Ci0gICAgZm9yIChpID0gMDsgaSA8IGNkcy0+bnVtX25pY3M7IGkrKykKLSAgICAgICAgbGlieGxf ZGV2aWNlX25pY19kaXNwb3NlKCZjZHMtPm5pY3NbaV0pOwotICAgIGZyZWUoY2RzLT5uaWNzKTsK KyAgICBsaWJ4bF9fZGV2aWNlX2xpc3RfZnJlZSgmbGlieGxfX25pY19kZXZ0eXBlLCBjZHMtPm5p Y3MsIGNkcy0+bnVtX25pY3MpOwogICAgIGNkcy0+bmljcyA9IE5VTEw7CiAgICAgY2RzLT5udW1f bmljcyA9IDA7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbG9fc2F2ZS5jIGIv dG9vbHMvbGlieGwvbGlieGxfY29sb19zYXZlLmMKaW5kZXggZjY4N2Q1YS4uOGE5ZDM3YSAxMDA2 NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfY29sb19zYXZlLmMKKysrIGIvdG9vbHMvbGlieGwv bGlieGxfY29sb19zYXZlLmMKQEAgLTg3LDYgKzg3LDcgQEAgdm9pZCBsaWJ4bF9fY29sb19zYXZl X3NldHVwKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2NvbG9fc2F2ZV9zdGF0ZSAqY3NzKQogICAg IGxpYnhsX19zcm1fc2F2ZV9hdXRvZ2VuX2NhbGxiYWNrcyAqY29uc3QgY2FsbGJhY2tzID0KICAg ICAgICAgJmRzcy0+c3dzLnNocy5jYWxsYmFja3Muc2F2ZS5hOwogICAgIGxpYnhsX2RldmljZV9u aWMgKm5pY3M7CisgICAgaW50IG5iOwogCiAgICAgU1RBVEVfQU9fR0MoZHNzLT5hbyk7CiAKQEAg LTEyMiw5ICsxMjMsMTAgQEAgdm9pZCBsaWJ4bF9fY29sb19zYXZlX3NldHVwKGxpYnhsX19lZ2Mg KmVnYywgbGlieGxfX2NvbG9fc2F2ZV9zdGF0ZSAqY3NzKQogICAgICAgICBjZHMtPmRldmljZV9r aW5kX2ZsYWdzID0gKDEgPDwgTElCWExfX0RFVklDRV9LSU5EX1ZCRCk7CiAKICAgICAgICAgLyog VXNlIHRoaXMgYXJncyB3ZSBjYW4gY29ubmVjdCB0byBxZW11IGNvbG8tY29tcGFyZSAqLwotICAg ICAgICBuaWNzID0gbGlieGxfZGV2aWNlX25pY19saXN0KENUWCwgY2RzLT5kb21pZCwgJmNkcy0+ bnVtX25pY3MpOworICAgICAgICBuaWNzID0gbGlieGxfZGV2aWNlX25pY19saXN0KENUWCwgY2Rz LT5kb21pZCwgJm5iKTsKICAgICAgICAgY3NzLT5jcHMuY2hlY2twb2ludF9ob3N0ID0gbmljcy0+ Y29sb19jaGVja3BvaW50X2hvc3Q7CiAgICAgICAgIGNzcy0+Y3BzLmNoZWNrcG9pbnRfcG9ydCA9 IG5pY3MtPmNvbG9fY2hlY2twb2ludF9wb3J0OworICAgICAgICBsaWJ4bF9kZXZpY2VfbmljX2xp c3RfZnJlZShuaWNzLCBuYik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgY2RzLT5kZXZpY2Vfa2lu ZF9mbGFncyA9ICgxIDw8IExJQlhMX19ERVZJQ0VfS0lORF9WSUYpIHwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgxIDw8IExJQlhMX19ERVZJQ0VfS0lORF9WQkQpOwpkaWZmIC0t Z2l0IGEvdG9vbHMvbGlieGwvbGlieGxfZG0uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKaW5k ZXggMGE0ZjgxMS4uZWVlNGM5OCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZG0uYwor KysgYi90b29scy9saWJ4bC9saWJ4bF9kbS5jCkBAIC0xOTcwLDggKzE5NzAsOCBAQCBzdGF0aWMg dm9pZCBzcGF3bl9zdHViX2xhdW5jaF9kbShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAqIGNh bGxlZCBsaWJ4bF9kZXZpY2VfbmljX2FkZCBhdCB0aGlzIHBvaW50LCBidXQgcWVtdSBuZWVkcwog ICAgICAgICAgKiB0aGUgbmljIGluZm9ybWF0aW9uIHRvIGJlIGNvbXBsZXRlLgogICAgICAgICAg Ki8KLSAgICAgICAgcmV0ID0gbGlieGxfX2RldmljZV9uaWNfc2V0ZGVmYXVsdChnYywgJmRtX2Nv bmZpZy0+bmljc1tpXSwgZG1fZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmFsc2UpOworICAgICAgICByZXQgPSBsaWJ4bF9fbmljX2RldnR5cGUuc2V0 X2RlZmF1bHQoZ2MsIGRtX2RvbWlkLCAmZG1fY29uZmlnLT5uaWNzW2ldLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOwogICAgICAgICBpZiAocmV0 KQogICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwv bGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKaW5kZXggOWY4 YjU2YS4uNGIxYzVhYiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAor KysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC0xMjQyLDggKzEyNDIsNiBAQCBf aGlkZGVuIGludCBsaWJ4bF9fZG9tYWluX2NyZWF0ZV9pbmZvX3NldGRlZmF1bHQobGlieGxfX2dj ICpnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21h aW5fY3JlYXRlX2luZm8gKmNfaW5mbyk7CiBfaGlkZGVuIGludCBsaWJ4bF9fZG9tYWluX2J1aWxk X2luZm9fc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICpiX2luZm8pOwotX2hpZGRl biBpbnQgbGlieGxfX2RldmljZV9uaWNfc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9k ZXZpY2VfbmljICpuaWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQzMl90IGRvbWlkLCBib29sIGhvdHBsdWcpOwogX2hpZGRlbiBpbnQgbGlieGxfX2Rldmlj ZV9wY2lfc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9kZXZpY2VfcGNpICpwY2kpOwog X2hpZGRlbiB2b2lkIGxpYnhsX19yZG1fc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqYl9p bmZvKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX25pYy5jIGIvdG9vbHMvbGlieGwv bGlieGxfbmljLmMKaW5kZXggZGQwN2E2Yy4uMTZhNmM4YyAxMDA2NDQKLS0tIGEvdG9vbHMvbGli eGwvbGlieGxfbmljLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfbmljLmMKQEAgLTIwLDE1ICsy MCwxOCBAQAogaW50IGxpYnhsX21hY190b19kZXZpY2VfbmljKGxpYnhsX2N0eCAqY3R4LCB1aW50 MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICptYWMs IGxpYnhsX2RldmljZV9uaWMgKm5pYykKIHsKKyAgICBHQ19JTklUKGN0eCk7CiAgICAgbGlieGxf ZGV2aWNlX25pYyAqbmljczsKICAgICBpbnQgbmIsIHJjLCBpOwogICAgIGxpYnhsX21hYyBtYWNf bjsKIAorICAgIGxpYnhsX2RldmljZV9uaWNfaW5pdChuaWMpOworCiAgICAgcmMgPSBsaWJ4bF9f cGFyc2VfbWFjKG1hYywgbWFjX24pOwogICAgIGlmIChyYykKICAgICAgICAgcmV0dXJuIHJjOwog Ci0gICAgbmljcyA9IGxpYnhsX2RldmljZV9uaWNfbGlzdChjdHgsIGRvbWlkLCAmbmIpOworICAg IG5pY3MgPSBsaWJ4bF9fZGV2aWNlX2xpc3QoZ2MsICZsaWJ4bF9fbmljX2RldnR5cGUsIGRvbWlk LCAidmlmIiwgJm5iKTsKICAgICBpZiAoIW5pY3MpCiAgICAgICAgIHJldHVybiBFUlJPUl9GQUlM OwogCkBAIC0zNywyMyArNDAsMTggQEAgaW50IGxpYnhsX21hY190b19kZXZpY2VfbmljKGxpYnhs X2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKICAgICByYyA9IEVSUk9SX0lOVkFMOwogICAgIGZv ciAoaSA9IDA7IGkgPCBuYjsgKytpKSB7CiAgICAgICAgIGlmICghbGlieGxfX2NvbXBhcmVfbWFj cygmbWFjX24sICZuaWNzW2ldLm1hYykpIHsKLSAgICAgICAgICAgICpuaWMgPSBuaWNzW2ldOwor ICAgICAgICAgICAgbGlieGxfZGV2aWNlX25pY19jb3B5KGN0eCwgbmljLCAmbmljc1tpXSk7CiAg ICAgICAgICAgICByYyA9IDA7Ci0gICAgICAgICAgICBpKys7IC8qIERvIG5vdCBkaXNwb3NlIHRo aXMgTklDIG9uIGV4aXQgcGF0aCAqLwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAg ICAgICAgbGlieGxfZGV2aWNlX25pY19kaXNwb3NlKCZuaWNzW2ldKTsKICAgICB9Ci0KLSAgICBm b3IgKDsgaTxuYjsgaSsrKQotICAgICAgICBsaWJ4bF9kZXZpY2VfbmljX2Rpc3Bvc2UoJm5pY3Nb aV0pOwotCi0gICAgZnJlZShuaWNzKTsKKyAgICBsaWJ4bF9fZGV2aWNlX2xpc3RfZnJlZSgmbGli eGxfX25pY19kZXZ0eXBlLCBuaWNzLCBuYik7CisgICAgR0NfRlJFRTsKICAgICByZXR1cm4gcmM7 CiB9CiAKLWludCBsaWJ4bF9fZGV2aWNlX25pY19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIGxp YnhsX2RldmljZV9uaWMgKm5pYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQzMl90IGRvbWlkLCBib29sIGhvdHBsdWcpCitzdGF0aWMgaW50IGxpYnhsX19kZXZpY2Vfbmlj X3NldGRlZmF1bHQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX25pYyAqbmljLCBib29sIGhv dHBsdWcpCiB7CiAgICAgaW50IHJjOwogCkBAIC0xMzgsNDkgKzEzNiwxMyBAQCBzdGF0aWMgdm9p ZCBsaWJ4bF9fdXBkYXRlX2NvbmZpZ19uaWMobGlieGxfX2djICpnYywgbGlieGxfZGV2aWNlX25p YyAqZHN0LAogICAgIGxpYnhsX21hY19jb3B5KENUWCwgJmRzdC0+bWFjLCAmc3JjLT5tYWMpOwog fQogCi1zdGF0aWMgdm9pZCBsaWJ4bF9fZGV2aWNlX25pY19hZGQobGlieGxfX2VnYyAqZWdjLCB1 aW50MzJfdCBkb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9k ZXZpY2VfbmljICpuaWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxf X2FvX2RldmljZSAqYW9kZXYpCitzdGF0aWMgaW50IGxpYnhsX19zZXRfeGVuc3RvcmVfbmljKGxp YnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9kZXZpY2VfbmljICpuaWMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZsZXhhcnJheV90ICpiYWNrLCBmbGV4YXJyYXlfdCAqZnJvbnQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV90ICpyb19mcm9udCkKIHsKLSAg ICBTVEFURV9BT19HQyhhb2Rldi0+YW8pOwotICAgIGZsZXhhcnJheV90ICpmcm9udDsKLSAgICBm bGV4YXJyYXlfdCAqYmFjazsKLSAgICBsaWJ4bF9fZGV2aWNlICpkZXZpY2U7Ci0gICAgaW50IHJj OwotICAgIHhzX3RyYW5zYWN0aW9uX3QgdCA9IFhCVF9OVUxMOwotICAgIGxpYnhsX2RvbWFpbl9j b25maWcgZF9jb25maWc7Ci0gICAgbGlieGxfZGV2aWNlX25pYyBuaWNfc2F2ZWQ7Ci0gICAgbGli eGxfX2RvbWFpbl91c2VyZGF0YV9sb2NrICpsb2NrID0gTlVMTDsKLQotICAgIGxpYnhsX2RvbWFp bl9jb25maWdfaW5pdCgmZF9jb25maWcpOwotICAgIGxpYnhsX2RldmljZV9uaWNfaW5pdCgmbmlj X3NhdmVkKTsKLSAgICBsaWJ4bF9kZXZpY2VfbmljX2NvcHkoQ1RYLCAmbmljX3NhdmVkLCBuaWMp OwotCi0gICAgcmMgPSBsaWJ4bF9fZGV2aWNlX25pY19zZXRkZWZhdWx0KGdjLCBuaWMsIGRvbWlk LCBhb2Rldi0+dXBkYXRlX2pzb24pOwotICAgIGlmIChyYykgZ290byBvdXQ7CisgICAgZmxleGFy cmF5X2dyb3coYmFjaywgMik7CiAKLSAgICBmcm9udCA9IGZsZXhhcnJheV9tYWtlKGdjLCAxNiwg MSk7Ci0gICAgYmFjayA9IGZsZXhhcnJheV9tYWtlKGdjLCAxOCwgMSk7Ci0KLSAgICBpZiAobmlj LT5kZXZpZCA9PSAtMSkgewotICAgICAgICBpZiAoKG5pYy0+ZGV2aWQgPSBsaWJ4bF9fZGV2aWNl X25leHRpZChnYywgZG9taWQsICJ2aWYiKSkgPCAwKSB7Ci0gICAgICAgICAgICByYyA9IEVSUk9S X0ZBSUw7Ci0gICAgICAgICAgICBnb3RvIG91dDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGxp YnhsX191cGRhdGVfY29uZmlnX25pYyhnYywgJm5pY19zYXZlZCwgbmljKTsKLQotICAgIEdDTkVX KGRldmljZSk7Ci0gICAgcmMgPSBsaWJ4bF9fZGV2aWNlX2Zyb21fbmljKGdjLCBkb21pZCwgbmlj LCBkZXZpY2UpOwotICAgIGlmICggcmMgIT0gMCApIGdvdG8gb3V0OwotCi0gICAgZmxleGFycmF5 X2FwcGVuZChiYWNrLCAiZnJvbnRlbmQtaWQiKTsKLSAgICBmbGV4YXJyYXlfYXBwZW5kKGJhY2ss IEdDU1BSSU5URigiJWQiLCBkb21pZCkpOwotICAgIGZsZXhhcnJheV9hcHBlbmQoYmFjaywgIm9u bGluZSIpOwotICAgIGZsZXhhcnJheV9hcHBlbmQoYmFjaywgIjEiKTsKLSAgICBmbGV4YXJyYXlf YXBwZW5kKGJhY2ssICJzdGF0ZSIpOwotICAgIGZsZXhhcnJheV9hcHBlbmQoYmFjaywgR0NTUFJJ TlRGKCIlZCIsIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nKSk7CiAgICAgaWYgKG5pYy0+c2NyaXB0 KQogICAgICAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoYmFjaywgInNjcmlwdCIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fYWJzX3BhdGgoZ2MsIG5pYy0+c2NyaXB0LApA QCAtMjgxLDc4ICsyNDMsMjQgQEAgc3RhdGljIHZvaWQgbGlieGxfX2RldmljZV9uaWNfYWRkKGxp YnhsX19lZ2MgKmVnYywgdWludDMyX3QgZG9taWQsCiAgICAgZmxleGFycmF5X2FwcGVuZChiYWNr LCBsaWJ4bF9fc3RyZHVwKGdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYnhsX25pY190eXBlX3RvX3N0cmluZyhuaWMtPm5pY3R5cGUpKSk7CiAKLSAgICBmbGV4YXJy YXlfYXBwZW5kKGZyb250LCAiYmFja2VuZC1pZCIpOwotICAgIGZsZXhhcnJheV9hcHBlbmQoZnJv bnQsIEdDU1BSSU5URigiJWQiLCBuaWMtPmJhY2tlbmRfZG9taWQpKTsKLSAgICBmbGV4YXJyYXlf YXBwZW5kKGZyb250LCAic3RhdGUiKTsKLSAgICBmbGV4YXJyYXlfYXBwZW5kKGZyb250LCBHQ1NQ UklOVEYoIiVkIiwgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcpKTsKICAgICBmbGV4YXJyYXlfYXBw ZW5kKGZyb250LCAiaGFuZGxlIik7CiAgICAgZmxleGFycmF5X2FwcGVuZChmcm9udCwgR0NTUFJJ TlRGKCIlZCIsIG5pYy0+ZGV2aWQpKTsKICAgICBmbGV4YXJyYXlfYXBwZW5kKGZyb250LCAibWFj Iik7CiAgICAgZmxleGFycmF5X2FwcGVuZChmcm9udCwgR0NTUFJJTlRGKAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfTUFDX0ZNVCwgTElCWExfTUFDX0JZVEVTKG5p Yy0+bWFjKSkpOwogCi0gICAgaWYgKGFvZGV2LT51cGRhdGVfanNvbikgewotICAgICAgICBsb2Nr ID0gbGlieGxfX2xvY2tfZG9tYWluX3VzZXJkYXRhKGdjLCBkb21pZCk7Ci0gICAgICAgIGlmICgh bG9jaykgewotICAgICAgICAgICAgcmMgPSBFUlJPUl9MT0NLX0ZBSUw7Ci0gICAgICAgICAgICBn b3RvIG91dDsKLSAgICAgICAgfQotCi0gICAgICAgIHJjID0gbGlieGxfX2dldF9kb21haW5fY29u ZmlndXJhdGlvbihnYywgZG9taWQsICZkX2NvbmZpZyk7Ci0gICAgICAgIGlmIChyYykgZ290byBv dXQ7Ci0KLSAgICAgICAgREVWSUNFX0FERChuaWMsIG5pY3MsIGRvbWlkLCAmbmljX3NhdmVkLCBD T01QQVJFX0RFVklELCAmZF9jb25maWcpOwotCi0gICAgICAgIHJjID0gbGlieGxfX2RtX2NoZWNr X3N0YXJ0KGdjLCAmZF9jb25maWcsIGRvbWlkKTsKLSAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsK LSAgICB9Ci0KLSAgICBmb3IgKDs7KSB7Ci0gICAgICAgIHJjID0gbGlieGxfX3hzX3RyYW5zYWN0 aW9uX3N0YXJ0KGdjLCAmdCk7Ci0gICAgICAgIGlmIChyYykgZ290byBvdXQ7Ci0KLSAgICAgICAg cmMgPSBsaWJ4bF9fZGV2aWNlX2V4aXN0cyhnYywgdCwgZGV2aWNlKTsKLSAgICAgICAgaWYgKHJj IDwgMCkgZ290byBvdXQ7Ci0gICAgICAgIGlmIChyYyA9PSAxKSB7ICAgICAgICAgICAgICAvKiBh bHJlYWR5IGV4aXN0cyBpbiB4ZW5zdG9yZSAqLwotICAgICAgICAgICAgTE9HRChFUlJPUiwgZG9t aWQsICJkZXZpY2UgYWxyZWFkeSBleGlzdHMgaW4geGVuc3RvcmUiKTsKLSAgICAgICAgICAgIGFv ZGV2LT5hY3Rpb24gPSBMSUJYTF9fREVWSUNFX0FDVElPTl9BREQ7IC8qIGZvciBlcnJvciBtZXNz YWdlICovCi0gICAgICAgICAgICByYyA9IEVSUk9SX0RFVklDRV9FWElTVFM7Ci0gICAgICAgICAg ICBnb3RvIG91dDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChhb2Rldi0+dXBkYXRlX2pzb24p IHsKLSAgICAgICAgICAgIHJjID0gbGlieGxfX3NldF9kb21haW5fY29uZmlndXJhdGlvbihnYywg ZG9taWQsICZkX2NvbmZpZyk7Ci0gICAgICAgICAgICBpZiAocmMpIGdvdG8gb3V0OwotICAgICAg ICB9Ci0KLSAgICAgICAgbGlieGxfX2RldmljZV9nZW5lcmljX2FkZChnYywgdCwgZGV2aWNlLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX194c19rdnNfb2ZfZmxleGFy cmF5KGdjLCBiYWNrKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9f eHNfa3ZzX29mX2ZsZXhhcnJheShnYywgZnJvbnQpLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5VTEwpOwotCi0gICAgICAgIHJjID0gbGlieGxfX3hzX3RyYW5zYWN0aW9uX2Nv bW1pdChnYywgJnQpOwotICAgICAgICBpZiAoIXJjKSBicmVhazsKLSAgICAgICAgaWYgKHJjIDwg MCkgZ290byBvdXQ7Ci0gICAgfQotCi0gICAgYW9kZXYtPmRldiA9IGRldmljZTsKLSAgICBhb2Rl di0+YWN0aW9uID0gTElCWExfX0RFVklDRV9BQ1RJT05fQUREOwotICAgIGxpYnhsX193YWl0X2Rl dmljZV9jb25uZWN0aW9uKGVnYywgYW9kZXYpOworICAgIHJldHVybiAwOworfQogCi0gICAgcmMg PSAwOwotb3V0OgotICAgIGxpYnhsX194c190cmFuc2FjdGlvbl9hYm9ydChnYywgJnQpOwotICAg IGlmIChsb2NrKSBsaWJ4bF9fdW5sb2NrX2RvbWFpbl91c2VyZGF0YShsb2NrKTsKLSAgICBsaWJ4 bF9kZXZpY2VfbmljX2Rpc3Bvc2UoJm5pY19zYXZlZCk7Ci0gICAgbGlieGxfZG9tYWluX2NvbmZp Z19kaXNwb3NlKCZkX2NvbmZpZyk7Ci0gICAgYW9kZXYtPnJjID0gcmM7Ci0gICAgaWYgKHJjKSBh b2Rldi0+Y2FsbGJhY2soZWdjLCBhb2Rldik7Ci0gICAgcmV0dXJuOworc3RhdGljIHZvaWQgbGli eGxfX2RldmljZV9uaWNfYWRkKGxpYnhsX19lZ2MgKmVnYywgdWludDMyX3QgZG9taWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX25pYyAqbmljLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19hb19kZXZpY2UgKmFvZGV2KQor eworICAgIGxpYnhsX19kZXZpY2VfYWRkX2FzeW5jKGVnYywgZG9taWQsICZsaWJ4bF9fbmljX2Rl dnR5cGUsIG5pYywgYW9kZXYpOwogfQogCi1zdGF0aWMgaW50IGxpYnhsX19kZXZpY2VfbmljX2Zy b21feGVuc3RvcmUobGlieGxfX2djICpnYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBjaGFyICpsaWJ4bF9wYXRoLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV9uaWMgKm5pYykKK3N0YXRpYyBp bnQgbGlieGxfX25pY19mcm9tX3hlbnN0b3JlKGxpYnhsX19nYyAqZ2MsIGNvbnN0IGNoYXIgKmxp YnhsX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZp ZCBkZXZpZCwgbGlieGxfZGV2aWNlX25pYyAqbmljKQogewogICAgIGNvbnN0IGNoYXIgKnRtcDsK ICAgICBpbnQgcmM7CkBAIC00OTgsNyArNDA2LDcgQEAgaW50IGxpYnhsX2RldmlkX3RvX2Rldmlj ZV9uaWMobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAogCiAgICAgbGlieGxfcGF0aCA9 IEdDU1BSSU5URigiJXMvZGV2aWNlL3ZpZi8lZCIsIGxpYnhsX2RvbV9wYXRoLCBkZXZpZCk7CiAK LSAgICByYyA9IGxpYnhsX19kZXZpY2VfbmljX2Zyb21feGVuc3RvcmUoZ2MsIGxpYnhsX3BhdGgs IG5pYyk7CisgICAgcmMgPSBsaWJ4bF9fbmljX2Zyb21feGVuc3RvcmUoZ2MsIGxpYnhsX3BhdGgs IGRldmlkLCBuaWMpOwogICAgIGlmIChyYykgZ290byBvdXQ7CiAKICAgICByYyA9IDA7CkBAIC01 MDcsNjQgKzQxNSwyMiBAQCBvdXQ6CiAgICAgcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IGxp YnhsX19hcHBlbmRfbmljX2xpc3QobGlieGxfX2djICpnYywKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkb21pZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfbmljICoqbmljcywKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKm5uaWNzKQotewotICAg IGNoYXIgKmxpYnhsX2Rpcl9wYXRoID0gTlVMTDsKLSAgICBjaGFyICoqZGlyID0gTlVMTDsKLSAg ICB1bnNpZ25lZCBpbnQgbiA9IDA7Ci0gICAgbGlieGxfZGV2aWNlX25pYyAqcG5pYyA9IE5VTEws ICpwbmljX2VuZCA9IE5VTEw7Ci0gICAgaW50IHJjOwotCi0gICAgbGlieGxfZGlyX3BhdGggPSBH Q1NQUklOVEYoIiVzL2RldmljZS92aWYiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYnhsX194c19saWJ4bF9wYXRoKGdjLCBkb21pZCkpOwotICAgIGRpciA9IGxpYnhsX194c19k aXJlY3RvcnkoZ2MsIFhCVF9OVUxMLCBsaWJ4bF9kaXJfcGF0aCwgJm4pOwotICAgIGlmIChkaXIg JiYgbikgewotICAgICAgICBsaWJ4bF9kZXZpY2VfbmljICp0bXA7Ci0gICAgICAgIHRtcCA9IHJl YWxsb2MoKm5pY3MsIHNpemVvZiAobGlieGxfZGV2aWNlX25pYykgKiAoKm5uaWNzICsgbikpOwot ICAgICAgICBpZiAodG1wID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gRVJST1JfTk9NRU07 Ci0gICAgICAgICpuaWNzID0gdG1wOwotICAgICAgICBwbmljID0gKm5pY3MgKyAqbm5pY3M7Ci0g ICAgICAgIHBuaWNfZW5kID0gKm5pY3MgKyAqbm5pY3MgKyBuOwotICAgICAgICBmb3IgKDsgcG5p YyA8IHBuaWNfZW5kOyBwbmljKyssIGRpcisrKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyICpw OwotICAgICAgICAgICAgcCA9IEdDU1BSSU5URigiJXMvJXMiLCBsaWJ4bF9kaXJfcGF0aCwgKmRp cik7Ci0gICAgICAgICAgICByYyA9IGxpYnhsX19kZXZpY2VfbmljX2Zyb21feGVuc3RvcmUoZ2Ms IHAsIHBuaWMpOwotICAgICAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKLSAgICAgICAgfQotICAg ICAgICAqbm5pY3MgKz0gbjsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci0KLSBvdXQ6Ci0gICAgcmV0 dXJuIHJjOwotfQotCiBsaWJ4bF9kZXZpY2VfbmljICpsaWJ4bF9kZXZpY2VfbmljX2xpc3QobGli eGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBpbnQgKm51bSkKIHsKLSAgICBHQ19JTklUKGN0 eCk7Ci0gICAgbGlieGxfZGV2aWNlX25pYyAqbmljcyA9IE5VTEw7Ci0gICAgaW50IHJjOworICAg IGxpYnhsX2RldmljZV9uaWMgKnI7CiAKLSAgICAqbnVtID0gMDsKKyAgICBHQ19JTklUKGN0eCk7 CiAKLSAgICByYyA9IGxpYnhsX19hcHBlbmRfbmljX2xpc3QoZ2MsIGRvbWlkLCAmbmljcywgbnVt KTsKLSAgICBpZiAocmMpIGdvdG8gb3V0X2VycjsKKyAgICByID0gbGlieGxfX2RldmljZV9saXN0 KGdjLCAmbGlieGxfX25pY19kZXZ0eXBlLCBkb21pZCwgInZpZiIsIG51bSk7CiAKICAgICBHQ19G UkVFOwotICAgIHJldHVybiBuaWNzOwogCi1vdXRfZXJyOgotICAgIExPR0QoRVJST1IsIGRvbWlk LCAiVW5hYmxlIHRvIGxpc3QgbmljcyIpOwotICAgIHdoaWxlICgqbnVtKSB7Ci0gICAgICAgICgq bnVtKS0tOwotICAgICAgICBsaWJ4bF9kZXZpY2VfbmljX2Rpc3Bvc2UoJm5pY3NbKm51bV0pOwot ICAgIH0KLSAgICBmcmVlKG5pY3MpOwotICAgIHJldHVybiBOVUxMOworICAgIHJldHVybiByOwor fQorCit2b2lkIGxpYnhsX2RldmljZV9uaWNfbGlzdF9mcmVlKGxpYnhsX2RldmljZV9uaWMqIGxp c3QsIGludCBudW0pCit7CisgICAgbGlieGxfX2RldmljZV9saXN0X2ZyZWUoJmxpYnhsX19uaWNf ZGV2dHlwZSwgbGlzdCwgbnVtKTsKIH0KIAogaW50IGxpYnhsX2RldmljZV9uaWNfZ2V0aW5mbyhs aWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCkBAIC02NDYsNyArNTEyLDcgQEAgaW50IGxp YnhsX19kZXZpY2VfbmljX3NldF9kZXZpZHMobGlieGxfX2djICpnYywgbGlieGxfZG9tYWluX2Nv bmZpZyAqZF9jb25maWcsCiAgICAgICAgICAqIGNhbGxlZCBsaWJ4bF9kZXZpY2VfbmljX2FkZCB3 aGVuIGRvbWNyZWF0ZV9sYXVuY2hfZG0gZ2V0cyBjYWxsZWQsCiAgICAgICAgICAqIGJ1dCBxZW11 IG5lZWRzIHRoZSBuaWMgaW5mb3JtYXRpb24gdG8gYmUgY29tcGxldGUuCiAgICAgICAgICAqLwot ICAgICAgICByZXQgPSBsaWJ4bF9fZGV2aWNlX25pY19zZXRkZWZhdWx0KGdjLCAmZF9jb25maWct Pm5pY3NbaV0sIGRvbWlkLAorICAgICAgICByZXQgPSBsaWJ4bF9fZGV2aWNlX25pY19zZXRkZWZh dWx0KGdjLCBkb21pZCwgJmRfY29uZmlnLT5uaWNzW2ldLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKICAgICAgICAgaWYgKHJldCkgewogICAgICAg ICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJVbmFibGUgdG8gc2V0IG5pYyBkZWZhdWx0cyBmb3Ig bmljICVkIiwgaSk7CkBAIC02NjksMTAgKzUzNSwxNiBAQCBMSUJYTF9ERUZJTkVfREVWSUNFX0FE RChuaWMpCiBMSUJYTF9ERUZJTkVfREVWSUNFU19BREQobmljKQogTElCWExfREVGSU5FX0RFVklD RV9SRU1PVkUobmljKQogCi0jZGVmaW5lIGxpYnhsX19kZXZpY2VfbmljX3VwZGF0ZV9kZXZpZCBO VUxMCitzdGF0aWMgTElCWExfREVGSU5FX1VQREFURV9ERVZJRChuaWMsICJ2aWYiKQogCiBERUZJ TkVfREVWSUNFX1RZUEVfU1RSVUNUKG5pYywKLSAgICAudXBkYXRlX2NvbmZpZyA9IGxpYnhsX2Rl dmljZV9uaWNfdXBkYXRlX2NvbmZpZworICAgIC51cGRhdGVfY29uZmlnID0gbGlieGxfZGV2aWNl X25pY191cGRhdGVfY29uZmlnLAorICAgIC5mcm9tX3hlbnN0b3JlID0gKGludCAoKikobGlieGxf X2djICosIGNvbnN0IGNoYXIgKiwgbGlieGxfZGV2aWQsIHZvaWQgKikpCisgICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9fbmljX2Zyb21feGVuc3RvcmUsCisgICAgLnNldF94ZW5zdG9yZV9jb25m aWcgPSAoaW50ICgqKShsaWJ4bF9fZ2MgKiwgdWludDMyX3QsIHZvaWQgKiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV90ICpiYWNrLCBmbGV4YXJyYXlfdCAq ZnJvbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4YXJyYXlfdCAq cm9fZnJvbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3NldF94ZW5zdG9y ZV9uaWMKICk7CiAKIC8qCmRpZmYgLS1naXQgYS90b29scy9vY2FtbC9saWJzL3hsL3hlbmxpZ2h0 X3N0dWJzLmMgYi90b29scy9vY2FtbC9saWJzL3hsL3hlbmxpZ2h0X3N0dWJzLmMKaW5kZXggNTVm MDlkNy4uYmFkZjljOSAxMDA2NDQKLS0tIGEvdG9vbHMvb2NhbWwvbGlicy94bC94ZW5saWdodF9z dHVicy5jCisrKyBiL3Rvb2xzL29jYW1sL2xpYnMveGwveGVubGlnaHRfc3R1YnMuYwpAQCAtNzM0 LDkgKzczNCw4IEBAIHZhbHVlIHN0dWJfeGxfZGV2aWNlX25pY19saXN0KHZhbHVlIGN0eCwgdmFs dWUgZG9taWQpCiAJCUZpZWxkKGxpc3QsIDEpID0gdGVtcDsKIAkJdGVtcCA9IGxpc3Q7CiAJCVN0 b3JlX2ZpZWxkKGxpc3QsIDAsIFZhbF9kZXZpY2VfbmljKCZjX2xpc3RbaV0pKTsKLQkJbGlieGxf ZGV2aWNlX25pY19kaXNwb3NlKCZjX2xpc3RbaV0pOwogCX0KLQlmcmVlKGNfbGlzdCk7CisJbGli eGxfZGV2aWNlX25pY19saXN0X2ZyZWUoY19saXN0LCBuYikKIAogCUNBTUxyZXR1cm4obGlzdCk7 CiB9CmRpZmYgLS1naXQgYS90b29scy94bC94bF9uaWMuYyBiL3Rvb2xzL3hsL3hsX25pYy5jCmlu ZGV4IGE3OGQ5NDQuLjIzMTVkY2QgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hsL3hsX25pYy5jCisrKyBi L3Rvb2xzL3hsL3hsX25pYy5jCkBAIC0xMjQsOSArMTI0LDggQEAgaW50IG1haW5fbmV0d29ya2xp c3QoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgICAgICAgICAgICAgICAgICBuaWNpbmZv LnJyZWZfdHgsIG5pY2luZm8ucnJlZl9yeCwgbmljaW5mby5iYWNrZW5kKTsKICAgICAgICAgICAg ICAgICBsaWJ4bF9uaWNpbmZvX2Rpc3Bvc2UoJm5pY2luZm8pOwogICAgICAgICAgICAgfQotICAg ICAgICAgICAgbGlieGxfZGV2aWNlX25pY19kaXNwb3NlKCZuaWNzW2ldKTsKICAgICAgICAgfQot ICAgICAgICBmcmVlKG5pY3MpOworICAgICAgICBsaWJ4bF9kZXZpY2VfbmljX2xpc3RfZnJlZShu aWNzLCBuYik7CiAgICAgfQogICAgIHJldHVybiAwOwogfQotLSAKMi43LjQKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2 ZWwK