From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 78040C48BDF for ; Fri, 18 Jun 2021 12:11:57 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0D42A61057 for ; Fri, 18 Jun 2021 12:11:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0D42A61057 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 979456E9F5; Fri, 18 Jun 2021 12:11:56 +0000 (UTC) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5D16A6E9F5 for ; Fri, 18 Jun 2021 12:11:55 +0000 (UTC) IronPort-SDR: 4wHtLbLdO0fB9l3EPFspw5S+l6e+cNWxxR8GGlGhOY6AE2+X/vy+JB4u1AK6ztcZ4V/NYDrRLr 6VPFp5YW3XRg== X-IronPort-AV: E=McAfee;i="6200,9189,10018"; a="193673983" X-IronPort-AV: E=Sophos;i="5.83,283,1616482800"; d="scan'208";a="193673983" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jun 2021 05:11:54 -0700 IronPort-SDR: 9Iiwf7Ek/xGuPRK+iu+AgqFmEoBSiYCdFWZci8FrBb3hbgD9jD7YPFTJikMvgUFcUSu3yKfXVz VuMZyOIpl+qw== X-IronPort-AV: E=Sophos;i="5.83,283,1616482800"; d="scan'208";a="485662987" Received: from shoriyac-mobl.ger.corp.intel.com (HELO localhost) ([10.252.36.148]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jun 2021 05:11:51 -0700 From: Jani Nikula To: Ville Syrjala , intel-gfx@lists.freedesktop.org In-Reply-To: <20210608073603.2408-8-ville.syrjala@linux.intel.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20210608073603.2408-1-ville.syrjala@linux.intel.com> <20210608073603.2408-8-ville.syrjala@linux.intel.com> Date: Fri, 18 Jun 2021 15:11:47 +0300 Message-ID: <87a6nnwews.fsf@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH v2 07/17] drm/i915; Return the whole buf_trans struct from get_buf_trans() X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gVHVlLCAwOCBKdW4gMjAyMSwgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+IHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4KPiBSYWlzZSB0aGUgYWJzdHJhY3Rpb24gbGV2ZWwgb2YgdGhlIGdl dF9idWZfdHJhbnMoKSBmdW5jdGlvbnMKPiBhIGJpdCBtb3JlIGJ5IHJldHVybmluZyB0aGUgd2hv bGUgd3JhcHBlciBpbnRlbF9kZGlfYnVmX3RyYW5zCj4gc3RydWN0Lgo+Cj4gdjI6IEhhbmRsZSBh ZGwtcAo+Cj4gUmV2aWV3ZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+ ICN2MQoKSG9sZHMgZm9yIHYyLgoKPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2RkaS5jICAgICAgfCA3NiArKysrKysrLS0tLS0tLQo+ICAuLi4vZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kZGlfYnVmX3RyYW5zLmMgICAgfCA5OCArKysrKysrKystLS0t LS0tLS0tCj4gIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaV9idWZfdHJhbnMuaCAgICB8 IDIyICsrLS0tCj4gIDMgZmlsZXMgY2hhbmdlZCwgOTggaW5zZXJ0aW9ucygrKSwgOTggZGVsZXRp b25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiBpbmRl eCBmM2ZiYTUzNTgxMmMuLjM3NDQ1Y2VjMGMyMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kZGkuYwo+IEBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBoc3dfcHJlcGFy ZV9kcF9kZGlfYnVmZmVycyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXUzMiBp Ym9vc3RfYml0ID0gMDsKPiAgCWludCBpLCBuX2VudHJpZXM7Cj4gIAllbnVtIHBvcnQgcG9ydCA9 IGVuY29kZXItPnBvcnQ7Cj4gLQljb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5 ICpkZGlfdHJhbnNsYXRpb25zOwo+ICsJY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMg KmRkaV90cmFuc2xhdGlvbnM7Cj4gIAo+ICAJZGRpX3RyYW5zbGF0aW9ucyA9IGhzd19nZXRfYnVm X3RyYW5zKGVuY29kZXIsIGNydGNfc3RhdGUsICZuX2VudHJpZXMpOwo+ICAKPiBAQCAtMTE2LDkg KzExNiw5IEBAIHZvaWQgaHN3X3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gIAo+ICAJZm9yIChpID0gMDsgaSA8IG5fZW50cmllczsgaSsrKSB7 Cj4gIAkJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIERESV9CVUZfVFJBTlNfTE8ocG9ydCwgaSks Cj4gLQkJCSAgICAgICBkZGlfdHJhbnNsYXRpb25zW2ldLmhzdy50cmFuczEgfCBpYm9vc3RfYml0 KTsKPiArCQkJICAgICAgIGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNbaV0uaHN3LnRyYW5zMSB8 IGlib29zdF9iaXQpOwo+ICAJCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBERElfQlVGX1RSQU5T X0hJKHBvcnQsIGkpLAo+IC0JCQkgICAgICAgZGRpX3RyYW5zbGF0aW9uc1tpXS5oc3cudHJhbnMy KTsKPiArCQkJICAgICAgIGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNbaV0uaHN3LnRyYW5zMik7 Cj4gIAl9Cj4gIH0KPiAgCj4gQEAgLTEzNSw3ICsxMzUsNyBAQCBzdGF0aWMgdm9pZCBoc3dfcHJl cGFyZV9oZG1pX2RkaV9idWZmZXJzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJ dTMyIGlib29zdF9iaXQgPSAwOwo+ICAJaW50IG5fZW50cmllczsKPiAgCWVudW0gcG9ydCBwb3J0 ID0gZW5jb2Rlci0+cG9ydDsKPiAtCWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50 cnkgKmRkaV90cmFuc2xhdGlvbnM7Cj4gKwljb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFu cyAqZGRpX3RyYW5zbGF0aW9uczsKPiAgCj4gIAlkZGlfdHJhbnNsYXRpb25zID0gaHN3X2dldF9i dWZfdHJhbnMoZW5jb2RlciwgY3J0Y19zdGF0ZSwgICZuX2VudHJpZXMpOwo+ICAKPiBAQCAtMTUx LDkgKzE1MSw5IEBAIHN0YXRpYyB2b2lkIGhzd19wcmVwYXJlX2hkbWlfZGRpX2J1ZmZlcnMoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAo+ICAJLyogRW50cnkgOSBpcyBmb3IgSERN STogKi8KPiAgCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBERElfQlVGX1RSQU5TX0xPKHBvcnQs IDkpLAo+IC0JCSAgICAgICBkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5oc3cudHJhbnMxIHwgaWJv b3N0X2JpdCk7Cj4gKwkJICAgICAgIGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNbbGV2ZWxdLmhz dy50cmFuczEgfCBpYm9vc3RfYml0KTsKPiAgCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBERElf QlVGX1RSQU5TX0hJKHBvcnQsIDkpLAo+IC0JCSAgICAgICBkZGlfdHJhbnNsYXRpb25zW2xldmVs XS5oc3cudHJhbnMyKTsKPiArCQkgICAgICAgZGRpX3RyYW5zbGF0aW9ucy0+ZW50cmllc1tsZXZl bF0uaHN3LnRyYW5zMik7Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfd2FpdF9kZGlfYnVmX2lkbGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IEBAIC05NDQsNyArOTQ0LDcgQEAg c3RhdGljIHZvaWQgc2tsX2RkaV9zZXRfaWJvb3N0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICAJCWlib29zdCA9IGludGVsX2Jpb3NfZW5jb2Rlcl9kcF9ib29zdF9sZXZlbChlbmNv ZGVyLT5kZXZkYXRhKTsKPiAgCj4gIAlpZiAoaWJvb3N0ID09IDApIHsKPiAtCQljb25zdCB1bmlv biBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICpkZGlfdHJhbnNsYXRpb25zOwo+ICsJCWNvbnN0 IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICpkZGlfdHJhbnNsYXRpb25zOwo+ICAJCWludCBu X2VudHJpZXM7Cj4gIAo+ICAJCWRkaV90cmFuc2xhdGlvbnMgPSBoc3dfZ2V0X2J1Zl90cmFucyhl bmNvZGVyLCBjcnRjX3N0YXRlLCAmbl9lbnRyaWVzKTsKPiBAQCAtOTU0LDcgKzk1NCw3IEBAIHN0 YXRpYyB2b2lkIHNrbF9kZGlfc2V0X2lib29zdChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgCQlpZiAoZHJtX1dBUk5fT05fT05DRSgmZGV2X3ByaXYtPmRybSwgbGV2ZWwgPj0gbl9l bnRyaWVzKSkKPiAgCQkJbGV2ZWwgPSBuX2VudHJpZXMgLSAxOwo+ICAKPiAtCQlpYm9vc3QgPSBk ZGlfdHJhbnNsYXRpb25zW2xldmVsXS5oc3cuaV9ib29zdDsKPiArCQlpYm9vc3QgPSBkZGlfdHJh bnNsYXRpb25zLT5lbnRyaWVzW2xldmVsXS5oc3cuaV9ib29zdDsKPiAgCX0KPiAgCj4gIAkvKiBN YWtlIHN1cmUgdGhhdCB0aGUgcmVxdWVzdGVkIElfYm9vc3QgaXMgdmFsaWQgKi8KPiBAQCAtOTc0 LDcgKzk3NCw3IEBAIHN0YXRpYyB2b2lkIGJ4dF9kZGlfdnN3aW5nX3NlcXVlbmNlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJICAgIGludCBsZXZlbCkKPiAgewo+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRl dik7Cj4gLQljb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICpkZGlfdHJhbnNs YXRpb25zOwo+ICsJY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKmRkaV90cmFuc2xh dGlvbnM7Cj4gIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4gIAlpbnQgbl9lbnRy aWVzOwo+ICAKPiBAQCAtOTg1LDEwICs5ODUsMTAgQEAgc3RhdGljIHZvaWQgYnh0X2RkaV92c3dp bmdfc2VxdWVuY2Uoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJbGV2ZWwgPSBu X2VudHJpZXMgLSAxOwo+ICAKPiAgCWJ4dF9kZGlfcGh5X3NldF9zaWduYWxfbGV2ZWwoZGV2X3By aXYsIHBvcnQsCj4gLQkJCQkgICAgIGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmJ4dC5tYXJnaW4s Cj4gLQkJCQkgICAgIGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmJ4dC5zY2FsZSwKPiAtCQkJCSAg ICAgZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0uYnh0LmVuYWJsZSwKPiAtCQkJCSAgICAgZGRpX3Ry YW5zbGF0aW9uc1tsZXZlbF0uYnh0LmRlZW1waGFzaXMpOwo+ICsJCQkJICAgICBkZGlfdHJhbnNs YXRpb25zLT5lbnRyaWVzW2xldmVsXS5ieHQubWFyZ2luLAo+ICsJCQkJICAgICBkZGlfdHJhbnNs YXRpb25zLT5lbnRyaWVzW2xldmVsXS5ieHQuc2NhbGUsCj4gKwkJCQkgICAgIGRkaV90cmFuc2xh dGlvbnMtPmVudHJpZXNbbGV2ZWxdLmJ4dC5lbmFibGUsCj4gKwkJCQkgICAgIGRkaV90cmFuc2xh dGlvbnMtPmVudHJpZXNbbGV2ZWxdLmJ4dC5kZWVtcGhhc2lzKTsKPiAgfQo+ICAKPiAgc3RhdGlj IHU4IGludGVsX2RkaV9kcF92b2x0YWdlX21heChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ IEBAIC0xMDQ5LDcgKzEwNDksNyBAQCBzdGF0aWMgdm9pZCBjbmxfZGRpX3Zzd2luZ19wcm9ncmFt KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJICAgaW50IGxldmVsKQo+ICB7 Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKPiAtCWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKmRk aV90cmFuc2xhdGlvbnM7Cj4gKwljb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqZGRp X3RyYW5zbGF0aW9uczsKPiAgCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKPiAgCWlu dCBuX2VudHJpZXMsIGxuOwo+ICAJdTMyIHZhbDsKPiBAQCAtMTA3MSw4ICsxMDcxLDggQEAgc3Rh dGljIHZvaWQgY25sX2RkaV92c3dpbmdfcHJvZ3JhbShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiAgCXZhbCA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIENOTF9QT1JUX1RYX0RXMl9M TjAocG9ydCkpOwo+ICAJdmFsICY9IH4oU1dJTkdfU0VMX0xPV0VSX01BU0sgfCBTV0lOR19TRUxf VVBQRVJfTUFTSyB8Cj4gIAkJIFJDT01QX1NDQUxBUl9NQVNLKTsKPiAtCXZhbCB8PSBTV0lOR19T RUxfVVBQRVIoZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0uY25sLmR3Ml9zd2luZ19zZWwpOwo+IC0J dmFsIHw9IFNXSU5HX1NFTF9MT1dFUihkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5jbmwuZHcyX3N3 aW5nX3NlbCk7Cj4gKwl2YWwgfD0gU1dJTkdfU0VMX1VQUEVSKGRkaV90cmFuc2xhdGlvbnMtPmVu dHJpZXNbbGV2ZWxdLmNubC5kdzJfc3dpbmdfc2VsKTsKPiArCXZhbCB8PSBTV0lOR19TRUxfTE9X RVIoZGRpX3RyYW5zbGF0aW9ucy0+ZW50cmllc1tsZXZlbF0uY25sLmR3Ml9zd2luZ19zZWwpOwo+ ICAJLyogUmNvbXAgc2NhbGFyIGlzIGZpeGVkIGFzIDB4OTggZm9yIGV2ZXJ5IHRhYmxlIGVudHJ5 ICovCj4gIAl2YWwgfD0gUkNPTVBfU0NBTEFSKDB4OTgpOwo+ICAJaW50ZWxfZGVfd3JpdGUoZGV2 X3ByaXYsIENOTF9QT1JUX1RYX0RXMl9HUlAocG9ydCksIHZhbCk7Cj4gQEAgLTEwODMsOSArMTA4 Myw5IEBAIHN0YXRpYyB2b2lkIGNubF9kZGlfdnN3aW5nX3Byb2dyYW0oc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gIAkJdmFsID0gaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgQ05MX1BP UlRfVFhfRFc0X0xOKGxuLCBwb3J0KSk7Cj4gIAkJdmFsICY9IH4oUE9TVF9DVVJTT1JfMV9NQVNL IHwgUE9TVF9DVVJTT1JfMl9NQVNLIHwKPiAgCQkJIENVUlNPUl9DT0VGRl9NQVNLKTsKPiAtCQl2 YWwgfD0gUE9TVF9DVVJTT1JfMShkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5jbmwuZHc0X3Bvc3Rf Y3Vyc29yXzEpOwo+IC0JCXZhbCB8PSBQT1NUX0NVUlNPUl8yKGRkaV90cmFuc2xhdGlvbnNbbGV2 ZWxdLmNubC5kdzRfcG9zdF9jdXJzb3JfMik7Cj4gLQkJdmFsIHw9IENVUlNPUl9DT0VGRihkZGlf dHJhbnNsYXRpb25zW2xldmVsXS5jbmwuZHc0X2N1cnNvcl9jb2VmZik7Cj4gKwkJdmFsIHw9IFBP U1RfQ1VSU09SXzEoZGRpX3RyYW5zbGF0aW9ucy0+ZW50cmllc1tsZXZlbF0uY25sLmR3NF9wb3N0 X2N1cnNvcl8xKTsKPiArCQl2YWwgfD0gUE9TVF9DVVJTT1JfMihkZGlfdHJhbnNsYXRpb25zLT5l bnRyaWVzW2xldmVsXS5jbmwuZHc0X3Bvc3RfY3Vyc29yXzIpOwo+ICsJCXZhbCB8PSBDVVJTT1Jf Q09FRkYoZGRpX3RyYW5zbGF0aW9ucy0+ZW50cmllc1tsZXZlbF0uY25sLmR3NF9jdXJzb3JfY29l ZmYpOwo+ICAJCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBDTkxfUE9SVF9UWF9EVzRfTE4obG4s IHBvcnQpLCB2YWwpOwo+ICAJfQo+ICAKPiBAQCAtMTEwMCw3ICsxMTAwLDcgQEAgc3RhdGljIHZv aWQgY25sX2RkaV92c3dpbmdfcHJvZ3JhbShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgCS8qIFByb2dyYW0gUE9SVF9UWF9EVzcgKi8KPiAgCXZhbCA9IGludGVsX2RlX3JlYWQoZGV2 X3ByaXYsIENOTF9QT1JUX1RYX0RXN19MTjAocG9ydCkpOwo+ICAJdmFsICY9IH5OX1NDQUxBUl9N QVNLOwo+IC0JdmFsIHw9IE5fU0NBTEFSKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmNubC5kdzdf bl9zY2FsYXIpOwo+ICsJdmFsIHw9IE5fU0NBTEFSKGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNb bGV2ZWxdLmNubC5kdzdfbl9zY2FsYXIpOwo+ICAJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIENO TF9QT1JUX1RYX0RXN19HUlAocG9ydCksIHZhbCk7Cj4gIH0KPiAgCj4gQEAgLTExNzAsNyArMTE3 MCw3IEBAIHN0YXRpYyB2b2lkIGljbF9kZGlfY29tYm9fdnN3aW5nX3Byb2dyYW0oc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkJIGludCBsZXZlbCkKPiAgewo+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7 Cj4gLQljb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICpkZGlfdHJhbnNsYXRp b25zOwo+ICsJY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKmRkaV90cmFuc2xhdGlv bnM7Cj4gIAllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgZW5jb2Rl ci0+cG9ydCk7Cj4gIAlpbnQgbl9lbnRyaWVzLCBsbjsKPiAgCXUzMiB2YWw7Cj4gQEAgLTEyMTEs OCArMTIxMSw4IEBAIHN0YXRpYyB2b2lkIGljbF9kZGlfY29tYm9fdnN3aW5nX3Byb2dyYW0oc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAl2YWwgPSBpbnRlbF9kZV9yZWFkKGRldl9w cml2LCBJQ0xfUE9SVF9UWF9EVzJfTE4wKHBoeSkpOwo+ICAJdmFsICY9IH4oU1dJTkdfU0VMX0xP V0VSX01BU0sgfCBTV0lOR19TRUxfVVBQRVJfTUFTSyB8Cj4gIAkJIFJDT01QX1NDQUxBUl9NQVNL KTsKPiAtCXZhbCB8PSBTV0lOR19TRUxfVVBQRVIoZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0uY25s LmR3Ml9zd2luZ19zZWwpOwo+IC0JdmFsIHw9IFNXSU5HX1NFTF9MT1dFUihkZGlfdHJhbnNsYXRp b25zW2xldmVsXS5jbmwuZHcyX3N3aW5nX3NlbCk7Cj4gKwl2YWwgfD0gU1dJTkdfU0VMX1VQUEVS KGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNbbGV2ZWxdLmNubC5kdzJfc3dpbmdfc2VsKTsKPiAr CXZhbCB8PSBTV0lOR19TRUxfTE9XRVIoZGRpX3RyYW5zbGF0aW9ucy0+ZW50cmllc1tsZXZlbF0u Y25sLmR3Ml9zd2luZ19zZWwpOwo+ICAJLyogUHJvZ3JhbSBSY29tcCBzY2FsYXIgZm9yIGV2ZXJ5 IHRhYmxlIGVudHJ5ICovCj4gIAl2YWwgfD0gUkNPTVBfU0NBTEFSKDB4OTgpOwo+ICAJaW50ZWxf ZGVfd3JpdGUoZGV2X3ByaXYsIElDTF9QT1JUX1RYX0RXMl9HUlAocGh5KSwgdmFsKTsKPiBAQCAt MTIyMywxNiArMTIyMywxNiBAQCBzdGF0aWMgdm9pZCBpY2xfZGRpX2NvbWJvX3Zzd2luZ19wcm9n cmFtKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCXZhbCA9IGludGVsX2RlX3Jl YWQoZGV2X3ByaXYsIElDTF9QT1JUX1RYX0RXNF9MTihsbiwgcGh5KSk7Cj4gIAkJdmFsICY9IH4o UE9TVF9DVVJTT1JfMV9NQVNLIHwgUE9TVF9DVVJTT1JfMl9NQVNLIHwKPiAgCQkJIENVUlNPUl9D T0VGRl9NQVNLKTsKPiAtCQl2YWwgfD0gUE9TVF9DVVJTT1JfMShkZGlfdHJhbnNsYXRpb25zW2xl dmVsXS5jbmwuZHc0X3Bvc3RfY3Vyc29yXzEpOwo+IC0JCXZhbCB8PSBQT1NUX0NVUlNPUl8yKGRk aV90cmFuc2xhdGlvbnNbbGV2ZWxdLmNubC5kdzRfcG9zdF9jdXJzb3JfMik7Cj4gLQkJdmFsIHw9 IENVUlNPUl9DT0VGRihkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5jbmwuZHc0X2N1cnNvcl9jb2Vm Zik7Cj4gKwkJdmFsIHw9IFBPU1RfQ1VSU09SXzEoZGRpX3RyYW5zbGF0aW9ucy0+ZW50cmllc1ts ZXZlbF0uY25sLmR3NF9wb3N0X2N1cnNvcl8xKTsKPiArCQl2YWwgfD0gUE9TVF9DVVJTT1JfMihk ZGlfdHJhbnNsYXRpb25zLT5lbnRyaWVzW2xldmVsXS5jbmwuZHc0X3Bvc3RfY3Vyc29yXzIpOwo+ ICsJCXZhbCB8PSBDVVJTT1JfQ09FRkYoZGRpX3RyYW5zbGF0aW9ucy0+ZW50cmllc1tsZXZlbF0u Y25sLmR3NF9jdXJzb3JfY29lZmYpOwo+ICAJCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBJQ0xf UE9SVF9UWF9EVzRfTE4obG4sIHBoeSksIHZhbCk7Cj4gIAl9Cj4gIAo+ICAJLyogUHJvZ3JhbSBQ T1JUX1RYX0RXNyAqLwo+ICAJdmFsID0gaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgSUNMX1BPUlRf VFhfRFc3X0xOMChwaHkpKTsKPiAgCXZhbCAmPSB+Tl9TQ0FMQVJfTUFTSzsKPiAtCXZhbCB8PSBO X1NDQUxBUihkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5jbmwuZHc3X25fc2NhbGFyKTsKPiArCXZh bCB8PSBOX1NDQUxBUihkZGlfdHJhbnNsYXRpb25zLT5lbnRyaWVzW2xldmVsXS5jbmwuZHc3X25f c2NhbGFyKTsKPiAgCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBJQ0xfUE9SVF9UWF9EVzdfR1JQ KHBoeSksIHZhbCk7Cj4gIH0KPiAgCj4gQEAgLTEzMDMsNyArMTMwMyw3IEBAIHN0YXRpYyB2b2lk IGljbF9tZ19waHlfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVsX3Bv cnRfdG9fdGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpOwo+IC0JY29uc3QgdW5pb24gaW50ZWxf ZGRpX2J1Zl90cmFuc19lbnRyeSAqZGRpX3RyYW5zbGF0aW9uczsKPiArCWNvbnN0IHN0cnVjdCBp bnRlbF9kZGlfYnVmX3RyYW5zICpkZGlfdHJhbnNsYXRpb25zOwo+ICAJaW50IG5fZW50cmllcywg bG47Cj4gIAl1MzIgdmFsOwo+ICAKPiBAQCAtMTMzMywxMyArMTMzMywxMyBAQCBzdGF0aWMgdm9p ZCBpY2xfbWdfcGh5X2RkaV92c3dpbmdfc2VxdWVuY2Uoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gIAkJdmFsID0gaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgTUdfVFgxX1NXSU5HQ1RS TChsbiwgdGNfcG9ydCkpOwo+ICAJCXZhbCAmPSB+Q1JJX1RYREVFTVBIX09WRVJSSURFXzE3XzEy X01BU0s7Cj4gIAkJdmFsIHw9IENSSV9UWERFRU1QSF9PVkVSUklERV8xN18xMigKPiAtCQkJZGRp X3RyYW5zbGF0aW9uc1tsZXZlbF0ubWcuY3JpX3R4ZGVlbXBoX292ZXJyaWRlXzE3XzEyKTsKPiAr CQkJZGRpX3RyYW5zbGF0aW9ucy0+ZW50cmllc1tsZXZlbF0ubWcuY3JpX3R4ZGVlbXBoX292ZXJy aWRlXzE3XzEyKTsKPiAgCQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgTUdfVFgxX1NXSU5HQ1RS TChsbiwgdGNfcG9ydCksIHZhbCk7Cj4gIAo+ICAJCXZhbCA9IGludGVsX2RlX3JlYWQoZGV2X3By aXYsIE1HX1RYMl9TV0lOR0NUUkwobG4sIHRjX3BvcnQpKTsKPiAgCQl2YWwgJj0gfkNSSV9UWERF RU1QSF9PVkVSUklERV8xN18xMl9NQVNLOwo+ICAJCXZhbCB8PSBDUklfVFhERUVNUEhfT1ZFUlJJ REVfMTdfMTIoCj4gLQkJCWRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLm1nLmNyaV90eGRlZW1waF9v dmVycmlkZV8xN18xMik7Cj4gKwkJCWRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNbbGV2ZWxdLm1n LmNyaV90eGRlZW1waF9vdmVycmlkZV8xN18xMik7Cj4gIAkJaW50ZWxfZGVfd3JpdGUoZGV2X3By aXYsIE1HX1RYMl9TV0lOR0NUUkwobG4sIHRjX3BvcnQpLCB2YWwpOwo+ICAJfQo+ICAKPiBAQCAt MTM0OSw5ICsxMzQ5LDkgQEAgc3RhdGljIHZvaWQgaWNsX21nX3BoeV9kZGlfdnN3aW5nX3NlcXVl bmNlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCXZhbCAmPSB+KENSSV9UWERF RU1QSF9PVkVSUklERV8xMV82X01BU0sgfAo+ICAJCQkgQ1JJX1RYREVFTVBIX09WRVJSSURFXzVf MF9NQVNLKTsKPiAgCQl2YWwgfD0gQ1JJX1RYREVFTVBIX09WRVJSSURFXzVfMCgKPiAtCQkJZGRp X3RyYW5zbGF0aW9uc1tsZXZlbF0ubWcuY3JpX3R4ZGVlbXBoX292ZXJyaWRlXzVfMCkgfAo+ICsJ CQlkZGlfdHJhbnNsYXRpb25zLT5lbnRyaWVzW2xldmVsXS5tZy5jcmlfdHhkZWVtcGhfb3ZlcnJp ZGVfNV8wKSB8Cj4gIAkJCUNSSV9UWERFRU1QSF9PVkVSUklERV8xMV82KAo+IC0JCQkJZGRpX3Ry YW5zbGF0aW9uc1tsZXZlbF0ubWcuY3JpX3R4ZGVlbXBoX292ZXJyaWRlXzExXzYpIHwKPiArCQkJ CWRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNbbGV2ZWxdLm1nLmNyaV90eGRlZW1waF9vdmVycmlk ZV8xMV82KSB8Cj4gIAkJCUNSSV9UWERFRU1QSF9PVkVSUklERV9FTjsKPiAgCQlpbnRlbF9kZV93 cml0ZShkZXZfcHJpdiwgTUdfVFgxX0RSVkNUUkwobG4sIHRjX3BvcnQpLCB2YWwpOwo+ICAKPiBA QCAtMTM1OSw5ICsxMzU5LDkgQEAgc3RhdGljIHZvaWQgaWNsX21nX3BoeV9kZGlfdnN3aW5nX3Nl cXVlbmNlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCXZhbCAmPSB+KENSSV9U WERFRU1QSF9PVkVSUklERV8xMV82X01BU0sgfAo+ICAJCQkgQ1JJX1RYREVFTVBIX09WRVJSSURF XzVfMF9NQVNLKTsKPiAgCQl2YWwgfD0gQ1JJX1RYREVFTVBIX09WRVJSSURFXzVfMCgKPiAtCQkJ ZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0ubWcuY3JpX3R4ZGVlbXBoX292ZXJyaWRlXzVfMCkgfAo+ ICsJCQlkZGlfdHJhbnNsYXRpb25zLT5lbnRyaWVzW2xldmVsXS5tZy5jcmlfdHhkZWVtcGhfb3Zl cnJpZGVfNV8wKSB8Cj4gIAkJCUNSSV9UWERFRU1QSF9PVkVSUklERV8xMV82KAo+IC0JCQkJZGRp X3RyYW5zbGF0aW9uc1tsZXZlbF0ubWcuY3JpX3R4ZGVlbXBoX292ZXJyaWRlXzExXzYpIHwKPiAr CQkJCWRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNbbGV2ZWxdLm1nLmNyaV90eGRlZW1waF9vdmVy cmlkZV8xMV82KSB8Cj4gIAkJCUNSSV9UWERFRU1QSF9PVkVSUklERV9FTjsKPiAgCQlpbnRlbF9k ZV93cml0ZShkZXZfcHJpdiwgTUdfVFgyX0RSVkNUUkwobG4sIHRjX3BvcnQpLCB2YWwpOwo+ICAK PiBAQCAtMTQ0MSw3ICsxNDQxLDcgQEAgdGdsX2RrbF9waHlfZGRpX3Zzd2luZ19zZXF1ZW5jZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAllbnVtIHRj X3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQp Owo+IC0JY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqZGRpX3RyYW5zbGF0 aW9uczsKPiArCWNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICpkZGlfdHJhbnNsYXRp b25zOwo+ICAJdTMyIHZhbCwgZHBjbnRfbWFzaywgZHBjbnRfdmFsOwo+ICAJaW50IG5fZW50cmll cywgbG47Cj4gIAo+IEBAIC0xNDYxLDkgKzE0NjEsOSBAQCB0Z2xfZGtsX3BoeV9kZGlfdnN3aW5n X3NlcXVlbmNlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJZHBjbnRfbWFzayA9 IChES0xfVFhfUFJFU0hPT1RfQ09FRkZfTUFTSyB8Cj4gIAkJICAgICAgREtMX1RYX0RFX0VNUEFI U0lTX0NPRUZGX01BU0sgfAo+ICAJCSAgICAgIERLTF9UWF9WU1dJTkdfQ09OVFJPTF9NQVNLKTsK PiAtCWRwY250X3ZhbCA9IERLTF9UWF9WU1dJTkdfQ09OVFJPTChkZGlfdHJhbnNsYXRpb25zW2xl dmVsXS5ka2wuZGtsX3Zzd2luZ19jb250cm9sKTsKPiAtCWRwY250X3ZhbCB8PSBES0xfVFhfREVf RU1QSEFTSVNfQ09FRkYoZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0uZGtsLmRrbF9kZV9lbXBoYXNp c19jb250cm9sKTsKPiAtCWRwY250X3ZhbCB8PSBES0xfVFhfUFJFU0hPT1RfQ09FRkYoZGRpX3Ry YW5zbGF0aW9uc1tsZXZlbF0uZGtsLmRrbF9wcmVzaG9vdF9jb250cm9sKTsKPiArCWRwY250X3Zh bCA9IERLTF9UWF9WU1dJTkdfQ09OVFJPTChkZGlfdHJhbnNsYXRpb25zLT5lbnRyaWVzW2xldmVs XS5ka2wuZGtsX3Zzd2luZ19jb250cm9sKTsKPiArCWRwY250X3ZhbCB8PSBES0xfVFhfREVfRU1Q SEFTSVNfQ09FRkYoZGRpX3RyYW5zbGF0aW9ucy0+ZW50cmllc1tsZXZlbF0uZGtsLmRrbF9kZV9l bXBoYXNpc19jb250cm9sKTsKPiArCWRwY250X3ZhbCB8PSBES0xfVFhfUFJFU0hPT1RfQ09FRkYo ZGRpX3RyYW5zbGF0aW9ucy0+ZW50cmllc1tsZXZlbF0uZGtsLmRrbF9wcmVzaG9vdF9jb250cm9s KTsKPiAgCj4gIAlmb3IgKGxuID0gMDsgbG4gPCAyOyBsbisrKSB7Cj4gIAkJaW50ZWxfZGVfd3Jp dGUoZGV2X3ByaXYsIEhJUF9JTkRFWF9SRUcodGNfcG9ydCksCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpX2J1Zl90cmFucy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGlfYnVmX3RyYW5zLmMKPiBpbmRleCAzMTQ5YjAx YWFjYTcuLjk1YjhmOWI0M2VhMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RkaV9idWZfdHJhbnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGRpX2J1Zl90cmFucy5jCj4gQEAgLTEwMjcsMTkgKzEwMjcsMTkgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zIGFkbHBfZGtsX3BoeV9kZGlf dHJhbnNsYXRpb25zX2RwX2hicjJfaGIKPiAgCS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX2Fk bHBfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJfaGJyMyksCj4gIH07Cj4gIAo+IC1i b29sIGlzX2hvYmxfYnVmX3RyYW5zKGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50 cnkgKnRhYmxlKQo+ICtib29sIGlzX2hvYmxfYnVmX3RyYW5zKGNvbnN0IHN0cnVjdCBpbnRlbF9k ZGlfYnVmX3RyYW5zICp0YWJsZSkKPiAgewo+IC0JcmV0dXJuIHRhYmxlID09IHRnbF9jb21ib19w aHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMl9ob2JsLmVudHJpZXM7Cj4gKwlyZXR1cm4gdGFi bGUgPT0gJnRnbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMl9ob2JsOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCj4gIGludGVsX2dldF9i dWZfdHJhbnMoY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKmRkaV90cmFuc2xhdGlv bnMsIGludCAqbnVtX2VudHJpZXMpCj4gIHsKPiAgCSpudW1fZW50cmllcyA9IGRkaV90cmFuc2xh dGlvbnMtPm51bV9lbnRyaWVzOwo+IC0JcmV0dXJuIGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXM7 Cj4gKwlyZXR1cm4gZGRpX3RyYW5zbGF0aW9uczsKPiAgfQo+ICAKPiAtc3RhdGljIGNvbnN0IHVu aW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGlu dGVsX2RkaV9idWZfdHJhbnMgKgo+ICBiZHdfZ2V0X2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiBAQCAt MTA1Myw3ICsxMDUzLDcgQEAgYmR3X2dldF9idWZfdHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKPiAgCX0KPiAgfQo+ICAKPiAtc3RhdGljIGNv bnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgo+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgo+ICBza2xfZ2V0X2J1Zl90cmFuc19kcChzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCj4gIHsKPiAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ IEBAIC0xMDcwLDcgKzEwNzAsNyBAQCBza2xfZ2V0X2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCj4gIAl9Cj4gIH0KPiAgCj4gLXN0YXRp YyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArc3RhdGljIGNvbnN0 IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKPiAga2JsX2dldF9idWZfdHJhbnNfZHAoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQo+ICB7Cj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2 KTsKPiBAQCAtMTA5MSw3ICsxMDkxLDcgQEAga2JsX2dldF9idWZfdHJhbnNfZHAoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQo+ICAJfQo+ICB9Cj4gIAo+IC1z dGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCj4gIHNrbF9nZXRfYnVmX3RyYW5zX2Vk cChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCj4gIHsKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwo+IEBAIC0xMTIzLDcgKzExMjMsNyBAQCBza2xfZ2V0X2J1Zl90cmFuc19lZHAoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQo+ICAJCXJldHVybiBz a2xfZ2V0X2J1Zl90cmFuc19kcChlbmNvZGVyLCBuX2VudHJpZXMpOwo+ICB9Cj4gIAo+IC1zdGF0 aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCj4gIHNrbF9nZXRfYnVmX3RyYW5zX2hkbWko c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgKm5fZW50cmllcykKPiAgewo+ ICAJaWYgKElTX1NLTF9VTFgoZGV2X3ByaXYpIHx8Cj4gQEAgLTExNDcsNyArMTE0Nyw3IEBAIHN0 YXRpYyBpbnQgc2tsX2J1Zl90cmFuc19udW1fZW50cmllcyhlbnVtIHBvcnQgcG9ydCwgaW50IG5f ZW50cmllcykKPiAgCQlyZXR1cm4gbWluKG5fZW50cmllcywgOSk7Cj4gIH0KPiAgCj4gLXN0YXRp YyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArc3RhdGljIGNvbnN0 IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKPiAgaHN3X2dldF9idWZfdHJhbnNfZHAoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQo+ICB7Cj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2 KTsKPiBAQCAtMTE1NSwxMiArMTE1NSwxMiBAQCBoc3dfZ2V0X2J1Zl90cmFuc19kcChzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCj4gIAlpZiAoSVNfS0FCWUxB S0UoZGV2X3ByaXYpIHx8Cj4gIAkgICAgSVNfQ09GRkVFTEFLRShkZXZfcHJpdikgfHwKPiAgCSAg ICBJU19DT01FVExBS0UoZGV2X3ByaXYpKSB7Cj4gLQkJY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1 Zl90cmFuc19lbnRyeSAqZGRpX3RyYW5zbGF0aW9ucyA9Cj4gKwkJY29uc3Qgc3RydWN0IGludGVs X2RkaV9idWZfdHJhbnMgKmRkaV90cmFuc2xhdGlvbnMgPQo+ICAJCQlrYmxfZ2V0X2J1Zl90cmFu c19kcChlbmNvZGVyLCBuX2VudHJpZXMpOwo+ICAJCSpuX2VudHJpZXMgPSBza2xfYnVmX3RyYW5z X251bV9lbnRyaWVzKGVuY29kZXItPnBvcnQsICpuX2VudHJpZXMpOwo+ICAJCXJldHVybiBkZGlf dHJhbnNsYXRpb25zOwo+ICAJfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldl9wcml2KSkgewo+IC0J CWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKmRkaV90cmFuc2xhdGlvbnMg PQo+ICsJCWNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICpkZGlfdHJhbnNsYXRpb25z ID0KPiAgCQkJc2tsX2dldF9idWZfdHJhbnNfZHAoZW5jb2Rlciwgbl9lbnRyaWVzKTsKPiAgCQkq bl9lbnRyaWVzID0gc2tsX2J1Zl90cmFuc19udW1fZW50cmllcyhlbmNvZGVyLT5wb3J0LCAqbl9l bnRyaWVzKTsKPiAgCQlyZXR1cm4gZGRpX3RyYW5zbGF0aW9uczsKPiBAQCAtMTE3NiwxMyArMTE3 NiwxMyBAQCBoc3dfZ2V0X2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwgaW50ICpuX2VudHJpZXMpCj4gIAlyZXR1cm4gTlVMTDsKPiAgfQo+ICAKPiAtc3RhdGljIGNv bnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgo+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgo+ICBoc3dfZ2V0X2J1Zl90cmFuc19lZHAoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQo+ICB7Cj4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK PiAgCj4gIAlpZiAoRElTUExBWV9WRVIoZGV2X3ByaXYpID09IDkgJiYgIUlTX0JST1hUT04oZGV2 X3ByaXYpKSB7Cj4gLQkJY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqZGRp X3RyYW5zbGF0aW9ucyA9Cj4gKwkJY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKmRk aV90cmFuc2xhdGlvbnMgPQo+ICAJCQlza2xfZ2V0X2J1Zl90cmFuc19lZHAoZW5jb2Rlciwgbl9l bnRyaWVzKTsKPiAgCQkqbl9lbnRyaWVzID0gc2tsX2J1Zl90cmFuc19udW1fZW50cmllcyhlbmNv ZGVyLT5wb3J0LCAqbl9lbnRyaWVzKTsKPiAgCQlyZXR1cm4gZGRpX3RyYW5zbGF0aW9uczsKPiBA QCAtMTE5Nyw3ICsxMTk3LDcgQEAgaHN3X2dldF9idWZfdHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKPiAgCXJldHVybiBOVUxMOwo+ICB9Cj4g IAo+IC1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCj4gIGhzd19nZXRfYnVmX3Ry YW5zX2ZkaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkgICAgICBpbnQgKm5f ZW50cmllcykKPiAgewo+IEBAIC0xMjE1LDcgKzEyMTUsNyBAQCBoc3dfZ2V0X2J1Zl90cmFuc19m ZGkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlyZXR1cm4gTlVMTDsKPiAgfQo+ ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgo+ICtz dGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgo+ICBoc3dfZ2V0X2J1Zl90 cmFuc19oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCSAgICAgICBpbnQg Km5fZW50cmllcykKPiAgewo+IEBAIC0xMjM1LDcgKzEyMzUsNyBAQCBoc3dfZ2V0X2J1Zl90cmFu c19oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJcmV0dXJuIE5VTEw7Cj4g IH0KPiAgCj4gLWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgo+ICtjb25z dCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCj4gIGhzd19nZXRfYnVmX3RyYW5zKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJICBpbnQgKm5fZW50cmllcykKPiBAQCAtMTI1MCwxMyAr MTI1MCwxMyBAQCBoc3dfZ2V0X2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgCQlyZXR1cm4gaHN3X2dldF9idWZfdHJhbnNfZHAoZW5jb2Rlciwgbl9lbnRyaWVzKTsK PiAgfQo+ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkg Kgo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgo+ICBieHRfZ2V0 X2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJp ZXMpCj4gIHsKPiAgCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZieHRfZGRpX3RyYW5zbGF0 aW9uc19kcCwgbl9lbnRyaWVzKTsKPiAgfQo+ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVs X2RkaV9idWZfdHJhbnNfZW50cnkgKgo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9i dWZfdHJhbnMgKgo+ICBieHRfZ2V0X2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiBAQCAtMTI2OSwxMyAr MTI2OSwxMyBAQCBieHRfZ2V0X2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsIGludCAqbl9lbnRyaWVzKQo+ICAJcmV0dXJuIGJ4dF9nZXRfYnVmX3RyYW5zX2RwKGVu Y29kZXIsIG5fZW50cmllcyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9k ZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVm X3RyYW5zICoKPiAgYnh0X2dldF9idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCj4gIHsKPiAgCXJldHVybiBpbnRlbF9nZXRfYnVmX3Ry YW5zKCZieHRfZGRpX3RyYW5zbGF0aW9uc19oZG1pLCBuX2VudHJpZXMpOwo+ICB9Cj4gIAo+IC1j b25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArY29uc3Qgc3RydWN0IGlu dGVsX2RkaV9idWZfdHJhbnMgKgo+ICBieHRfZ2V0X2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiAgCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAo+ICAJCSAgaW50ICpuX2VudHJpZXMpCj4gQEAgLTEyODcsNyArMTI4Nyw3IEBAIGJ4 dF9nZXRfYnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJcmV0dXJu IGJ4dF9nZXRfYnVmX3RyYW5zX2RwKGVuY29kZXIsIG5fZW50cmllcyk7Cj4gIH0KPiAgCj4gLXN0 YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArc3RhdGljIGNv bnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKPiAgY25sX2dldF9idWZfdHJhbnNfaGRt aShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCj4gIHsKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwo+IEBAIC0xMzA5LDcgKzEzMDksNyBAQCBjbmxfZ2V0X2J1Zl90cmFuc19oZG1pKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKPiAgCXJldHVybiBO VUxMOwo+ICB9Cj4gIAo+IC1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19l bnRyeSAqCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCj4gIGNu bF9nZXRfYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5f ZW50cmllcykKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gQEAgLTEzMzEsNyArMTMzMSw3IEBAIGNubF9nZXRf YnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmll cykKPiAgCXJldHVybiBOVUxMOwo+ICB9Cj4gIAo+IC1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxf ZGRpX2J1Zl90cmFuc19lbnRyeSAqCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1 Zl90cmFucyAqCj4gIGNubF9nZXRfYnVmX3RyYW5zX2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IEBAIC0xMzU3LDcgKzEz NTcsNyBAQCBjbmxfZ2V0X2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsIGludCAqbl9lbnRyaWVzKQo+ICAJfQo+ICB9Cj4gIAo+IC1jb25zdCB1bmlvbiBpbnRlbF9k ZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMg Kgo+ICBjbmxfZ2V0X2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAg CQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCSAgaW50 ICpuX2VudHJpZXMpCj4gQEAgLTEzNjksNyArMTM2OSw3IEBAIGNubF9nZXRfYnVmX3RyYW5zKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJcmV0dXJuIGNubF9nZXRfYnVmX3RyYW5z X2RwKGVuY29kZXIsIG5fZW50cmllcyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBjb25zdCB1bmlvbiBp bnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9k ZGlfYnVmX3RyYW5zICoKPiAgaWNsX2dldF9jb21ib19idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJICAgICBpbnQgKm5fZW50cmllcykKPiBAQCAtMTM3OCw3 ICsxMzc4LDcgQEAgaWNsX2dldF9jb21ib19idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiAgCQkJCSAgIG5fZW50cmllcyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBj b25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKPiAgaWNsX2dldF9jb21ib19idWZfdHJhbnNfZHAo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCSAgIGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkgICBpbnQgKm5fZW50cmllcykKPiBAQCAt MTM4Nyw3ICsxMzg3LDcgQEAgaWNsX2dldF9jb21ib19idWZfdHJhbnNfZHAoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgICBuX2VudHJpZXMpOwo+ICB9Cj4gIAo+IC1zdGF0 aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCj4gIGljbF9nZXRfY29tYm9fYnVmX3RyYW5z X2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkgICAgaW50ICpuX2VudHJpZXMp Cj4gQEAgLTE0MTEsNyArMTQxMSw3IEBAIGljbF9nZXRfY29tYm9fYnVmX3RyYW5zX2VkcChzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXJldHVybiBpY2xfZ2V0X2NvbWJvX2J1Zl90 cmFuc19kcChlbmNvZGVyLCBjcnRjX3N0YXRlLCBuX2VudHJpZXMpOwo+ICB9Cj4gIAo+IC1jb25z dCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArY29uc3Qgc3RydWN0IGludGVs X2RkaV9idWZfdHJhbnMgKgo+ICBpY2xfZ2V0X2NvbWJvX2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCj4gIAkJCWludCAqbl9lbnRyaWVzKQo+IEBAIC0xNDI0LDcgKzE0MjQsNyBAQCBp Y2xfZ2V0X2NvbWJvX2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAg CQlyZXR1cm4gaWNsX2dldF9jb21ib19idWZfdHJhbnNfZHAoZW5jb2RlciwgY3J0Y19zdGF0ZSwg bl9lbnRyaWVzKTsKPiAgfQo+ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZf dHJhbnNfZW50cnkgKgo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMg Kgo+ICBpY2xfZ2V0X21nX2J1Zl90cmFuc19oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICAJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ ICAJCQkgIGludCAqbl9lbnRyaWVzKQo+IEBAIC0xNDMzLDcgKzE0MzMsNyBAQCBpY2xfZ2V0X21n X2J1Zl90cmFuc19oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJICAg bl9lbnRyaWVzKTsKPiAgfQo+ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZf dHJhbnNfZW50cnkgKgo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMg Kgo+ICBpY2xfZ2V0X21nX2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJ CWludCAqbl9lbnRyaWVzKQo+IEBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBpY2xfZ2V0X21nX2J1Zl90 cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCX0KPiAgfQo+ICAKPiAt Y29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCj4gK2NvbnN0IHN0cnVjdCBp bnRlbF9kZGlfYnVmX3RyYW5zICoKPiAgaWNsX2dldF9tZ19idWZfdHJhbnMoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gIAkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiAgCQkgICAgIGludCAqbl9lbnRyaWVzKQo+IEBAIC0xNDU4LDcgKzE0 NTgsNyBAQCBpY2xfZ2V0X21nX2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgCQlyZXR1cm4gaWNsX2dldF9tZ19idWZfdHJhbnNfZHAoZW5jb2RlciwgY3J0Y19zdGF0 ZSwgbl9lbnRyaWVzKTsKPiAgfQo+ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9i dWZfdHJhbnNfZW50cnkgKgo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJh bnMgKgo+ICBlaGxfZ2V0X2NvbWJvX2J1Zl90cmFuc19oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ICAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAo+ICAJCQkgICAgIGludCAqbl9lbnRyaWVzKQo+IEBAIC0xNDY3LDcgKzE0NjcsNyBA QCBlaGxfZ2V0X2NvbWJvX2J1Zl90cmFuc19oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICAJCQkJICAgbl9lbnRyaWVzKTsKPiAgfQo+ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9u IGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVs X2RkaV9idWZfdHJhbnMgKgo+ICBlaGxfZ2V0X2NvbWJvX2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCj4gIAkJCSAgIGludCAqbl9lbnRyaWVzKQo+IEBAIC0xNDc2LDcgKzE0 NzYsNyBAQCBlaGxfZ2V0X2NvbWJvX2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiAgCQkJCSAgIG5fZW50cmllcyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBjb25zdCB1 bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBp bnRlbF9kZGlfYnVmX3RyYW5zICoKPiAgZWhsX2dldF9jb21ib19idWZfdHJhbnNfZWRwKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCSAgICBpbnQgKm5fZW50cmllcykKPiBAQCAtMTQ5 MSw3ICsxNDkxLDcgQEAgZWhsX2dldF9jb21ib19idWZfdHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICAJcmV0dXJuIGVobF9nZXRfY29tYm9fYnVmX3RyYW5zX2RwKGVu Y29kZXIsIGNydGNfc3RhdGUsIG5fZW50cmllcyk7Cj4gIH0KPiAgCj4gLWNvbnN0IHVuaW9uIGlu dGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgo+ICtjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90 cmFucyAqCj4gIGVobF9nZXRfY29tYm9fYnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ICAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK PiAgCQkJaW50ICpuX2VudHJpZXMpCj4gQEAgLTE1MDQsNyArMTUwNCw3IEBAIGVobF9nZXRfY29t Ym9fYnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCXJldHVybiBl aGxfZ2V0X2NvbWJvX2J1Zl90cmFuc19kcChlbmNvZGVyLCBjcnRjX3N0YXRlLCBuX2VudHJpZXMp Owo+ICB9Cj4gIAo+IC1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRy eSAqCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCj4gIGpzbF9n ZXRfY29tYm9fYnVmX3RyYW5zX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g IAkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJ CSAgICAgaW50ICpuX2VudHJpZXMpCj4gQEAgLTE1MTMsNyArMTUxMyw3IEBAIGpzbF9nZXRfY29t Ym9fYnVmX3RyYW5zX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkg ICBuX2VudHJpZXMpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1 Zl90cmFuc19lbnRyeSAqCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFu cyAqCj4gIGpzbF9nZXRfY29tYm9fYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ICAJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKPiAgCQkJICAgaW50ICpuX2VudHJpZXMpCj4gQEAgLTE1MjIsNyArMTUyMiw3IEBAIGpzbF9n ZXRfY29tYm9fYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJ CQkJICAgbl9lbnRyaWVzKTsKPiAgfQo+ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2Rk aV9idWZfdHJhbnNfZW50cnkgKgo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZf dHJhbnMgKgo+ICBqc2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gIAkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKPiAgCQkJICAgIGludCAqbl9lbnRyaWVzKQo+IEBAIC0xNTQyLDcgKzE1NDIsNyBA QCBqc2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCj4gIAlyZXR1cm4ganNsX2dldF9jb21ib19idWZfdHJhbnNfZHAoZW5jb2RlciwgY3J0Y19z dGF0ZSwgbl9lbnRyaWVzKTsKPiAgfQo+ICAKPiAtY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90 cmFuc19lbnRyeSAqCj4gK2NvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKPiAganNs X2dldF9jb21ib19idWZfdHJhbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJ CWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQlpbnQgKm5f ZW50cmllcykKPiBAQCAtMTU1NSw3ICsxNTU1LDcgQEAganNsX2dldF9jb21ib19idWZfdHJhbnMo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJcmV0dXJuIGpzbF9nZXRfY29tYm9f YnVmX3RyYW5zX2RwKGVuY29kZXIsIGNydGNfc3RhdGUsIG5fZW50cmllcyk7Cj4gIH0KPiAgCj4g LXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKPiAgdGdsX2dldF9jb21ib19idWZf dHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJICAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJICAgICBpbnQgKm5f ZW50cmllcykKPiBAQCAtMTU2NCw3ICsxNTY0LDcgQEAgdGdsX2dldF9jb21ib19idWZfdHJhbnNf aGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJCSAgIG5fZW50cmllcyk7 Cj4gIH0KPiAgCj4gLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5 ICoKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKPiAgdGdsX2dl dF9jb21ib19idWZfdHJhbnNfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJ CSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkgICBp bnQgKm5fZW50cmllcykKPiBAQCAtMTU5Myw3ICsxNTkzLDcgQEAgdGdsX2dldF9jb21ib19idWZf dHJhbnNfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAl9Cj4gIH0KPiAgCj4g LXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKPiAgdGdsX2dldF9jb21ib19idWZf dHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgICAgY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCSAgICBpbnQgKm5fZW50 cmllcykKPiBAQCAtMTYxNSw3ICsxNjE1LDcgQEAgdGdsX2dldF9jb21ib19idWZfdHJhbnNfZWRw KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJcmV0dXJuIHRnbF9nZXRfY29tYm9f YnVmX3RyYW5zX2RwKGVuY29kZXIsIGNydGNfc3RhdGUsIG5fZW50cmllcyk7Cj4gIH0KPiAgCj4g LWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgo+ICtjb25zdCBzdHJ1Y3Qg aW50ZWxfZGRpX2J1Zl90cmFucyAqCj4gIHRnbF9nZXRfY29tYm9fYnVmX3RyYW5zKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJaW50ICpuX2VudHJpZXMpCj4gQEAgLTE2MjgsNyArMTYyOCw3 IEBAIHRnbF9nZXRfY29tYm9fYnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAo+ICAJCXJldHVybiB0Z2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19kcChlbmNvZGVyLCBjcnRjX3N0 YXRlLCBuX2VudHJpZXMpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRp X2J1Zl90cmFuc19lbnRyeSAqCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90 cmFucyAqCj4gIHRnbF9nZXRfZGtsX2J1Zl90cmFuc19oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ICAJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKPiAgCQkJICAgaW50ICpuX2VudHJpZXMpCj4gQEAgLTE2MzcsNyArMTYzNyw3IEBAIHRn bF9nZXRfZGtsX2J1Zl90cmFuc19oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ICAJCQkJICAgbl9lbnRyaWVzKTsKPiAgfQo+ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVs X2RkaV9idWZfdHJhbnNfZW50cnkgKgo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9i dWZfdHJhbnMgKgo+ICB0Z2xfZ2V0X2RrbF9idWZfdHJhbnNfZHAoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gIAkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKPiAgCQkJIGludCAqbl9lbnRyaWVzKQo+IEBAIC0xNjUxLDcgKzE2NTEsNyBAQCB0Z2xf Z2V0X2RrbF9idWZfdHJhbnNfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAl9 Cj4gIH0KPiAgCj4gLWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgo+ICtj b25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCj4gIHRnbF9nZXRfZGtsX2J1Zl90cmFu cyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkgICAgICBjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkgICAgICBpbnQgKm5fZW50cmllcykK PiBAQCAtMTY2Miw3ICsxNjYyLDcgQEAgdGdsX2dldF9ka2xfYnVmX3RyYW5zKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCXJldHVybiB0Z2xfZ2V0X2RrbF9idWZfdHJhbnNfZHAo ZW5jb2RlciwgY3J0Y19zdGF0ZSwgbl9lbnRyaWVzKTsKPiAgfQo+ICAKPiAtc3RhdGljIGNvbnN0 IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgo+ICtzdGF0aWMgY29uc3Qgc3RydWN0 IGludGVsX2RkaV9idWZfdHJhbnMgKgo+ICBhZGxwX2dldF9ka2xfYnVmX3RyYW5zX2RwKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkgIGludCAqbl9lbnRyaWVzKQo+IEBAIC0xNjc2LDcg KzE2NzYsNyBAQCBhZGxwX2dldF9ka2xfYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ICAJfQo+ICB9Cj4gIAo+IC1jb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3Ry YW5zX2VudHJ5ICoKPiArY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgo+ICBhZGxw X2dldF9ka2xfYnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCSAg ICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkgICAg ICAgaW50ICpuX2VudHJpZXMpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGRpX2J1Zl90cmFucy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kZGlfYnVmX3RyYW5zLmgKPiBpbmRleCBhYTYxMjcyNWQ1MTAuLjJmZmE1MzQwMTBi MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaV9i dWZfdHJhbnMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRp X2J1Zl90cmFucy5oCj4gQEAgLTU4LDUyICs1OCw1MiBAQCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90 cmFucyB7Cj4gIAl1OCBudW1fZW50cmllczsKPiAgfTsKPiAgCj4gLWJvb2wgaXNfaG9ibF9idWZf dHJhbnMoY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqdGFibGUpOwo+ICti b29sIGlzX2hvYmxfYnVmX3RyYW5zKGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICp0 YWJsZSk7Cj4gIAo+ICBpbnQgaW50ZWxfZGRpX2hkbWlfbnVtX2VudHJpZXMoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJICAgICAgIGludCAqZGVmYXVsdF9lbnRyeSk7Cj4gIAo+ IC1jb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArY29uc3Qgc3RydWN0 IGludGVsX2RkaV9idWZfdHJhbnMgKgo+ICBoc3dfZ2V0X2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAo+ICAJCSAgaW50ICpuX2VudHJpZXMpOwo+ICAKPiAtY29uc3QgdW5pb24gaW50 ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCj4gK2NvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3Ry YW5zICoKPiAgYnh0X2dldF9idWZfdHJhbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gIAkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkg IGludCAqbl9lbnRyaWVzKTsKPiAgCj4gLWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNf ZW50cnkgKgo+ICtjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCj4gIGFkbHBfZ2V0 X2RrbF9idWZfdHJhbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJICAgICAg IGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCSAgICAgICBp bnQgKm5fZW50cmllcyk7Cj4gLWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkg Kgo+ICtjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCj4gIHRnbF9nZXRfY29tYm9f YnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQljb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJaW50ICpuX2VudHJpZXMpOwo+ IC1jb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArY29uc3Qgc3RydWN0 IGludGVsX2RkaV9idWZfdHJhbnMgKgo+ICB0Z2xfZ2V0X2RrbF9idWZfdHJhbnMoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJICAgICAgaW50ICpuX2VudHJpZXMpOwo+IC1jb25zdCB1 bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArY29uc3Qgc3RydWN0IGludGVsX2Rk aV9idWZfdHJhbnMgKgo+ICBqc2xfZ2V0X2NvbWJvX2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiAgCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCj4gIAkJCWludCAqbl9lbnRyaWVzKTsKPiAtY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1 Zl90cmFuc19lbnRyeSAqCj4gK2NvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKPiAg ZWhsX2dldF9jb21ib19idWZfdHJhbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g IAkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQlpbnQg Km5fZW50cmllcyk7Cj4gLWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgo+ ICtjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCj4gIGljbF9nZXRfY29tYm9fYnVm X3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQljb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJaW50ICpuX2VudHJpZXMpOwo+IC1j b25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiArY29uc3Qgc3RydWN0IGlu dGVsX2RkaV9idWZfdHJhbnMgKgo+ICBpY2xfZ2V0X21nX2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAo+ICAJCSAgICAgaW50ICpuX2VudHJpZXMpOwo+ICAKPiAtY29uc3QgdW5p b24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCj4gK2NvbnN0IHN0cnVjdCBpbnRlbF9kZGlf YnVmX3RyYW5zICoKPiAgY25sX2dldF9idWZfdHJhbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gIAkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK PiAgCQkgIGludCAqbl9lbnRyaWVzKTsKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3Vy Y2UgR3JhcGhpY3MgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=