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=-12.0 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 684DFC4361B for ; Mon, 7 Dec 2020 19:34:28 +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 1FC22238A0 for ; Mon, 7 Dec 2020 19:34:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1FC22238A0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 721FD6E8AA; Mon, 7 Dec 2020 19:34:27 +0000 (UTC) Received: from mail-ed1-x543.google.com (mail-ed1-x543.google.com [IPv6:2a00:1450:4864:20::543]) by gabe.freedesktop.org (Postfix) with ESMTPS id 43ABE6E8A9 for ; Mon, 7 Dec 2020 19:34:26 +0000 (UTC) Received: by mail-ed1-x543.google.com with SMTP id p22so2952052edu.11 for ; Mon, 07 Dec 2020 11:34:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=reply-to:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=d7IEdZIsQsWQo0MOKoZpgXkvEDJ9T3/TG7JPDu3xZqs=; b=LUtt+n2Fw623jlnaY+W4gNl0msK5Fgs/GPTzjRgBfE4vHuN1eXeCG9D5FI9QI0/cZf MAW6J6wtInfPE+/t7FBN0VuY2HRuYt4H1YZ290SI7QA/2PSN3QVm7UbQEVofEhlVlJOo EYEWjJ++pih5cNSTXvC6kthSlXfWI8DRnMwwPRYimOIQECU1mXbLHrwkMdUvJX8T+a8l msS1vrWVPMrSHbrrQ8EMcK+S7HWaedyR2Yx0TBf02yqOshjkhsC5krpe1ShMeU3hT14H 3CMPzBz7Ouw2javZPOqLImIUbRYxXE2B5o/d8ilzATy6a8zELnIAe4yQ/uopSG5vrXyM boYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:reply-to:subject:to:cc:references:from :message-id:date:user-agent:mime-version:in-reply-to :content-transfer-encoding:content-language; bh=d7IEdZIsQsWQo0MOKoZpgXkvEDJ9T3/TG7JPDu3xZqs=; b=FN5q7o/U+xFsAqxFyek5TPeIBpGwvDfm3z7jgm+/6tekF379MSLHetUtmeoLo2wLI/ OkbS7TpOpYaSDV014hVEik+HTNTHi9PCS2Kv479VUnaCdJ7db/Q18uyMPaHsz+5ssAfR 0YNWJU+RkMo7AtUxaT3tILDwIcCgk+RWSsnZ/V/s3pm5xbUJCifhI31tpSQOvUhAUU0Y 1EF2ABHmkzMVw8QS0uq5CIywOHbfLNhqzNz6my3vSsnBjBLBR9PzNOP/tEskrB8XZ0Ig /WmdA3FjxwlrcJ3lz3sPRlAjZEeB6wBbZpQtoGebs55+43yH5DX1Nm7nHdZDvcmRD3GO MpQw== X-Gm-Message-State: AOAM533b7OxZ64SVq9eTX3D4EMwta4BIEEO+EwMY+oUI0kz81iaErf+L i4MDsvbRoUWa21X5U680rjk= X-Google-Smtp-Source: ABdhPJznskRWON3DN2CwLKr3Nr0KdmBNbSW+V5Hmj0T6p6PQn7mk65qvz2DwFlztNduR9UUwpDEJSg== X-Received: by 2002:a50:d5c1:: with SMTP id g1mr9257796edj.299.1607369664263; Mon, 07 Dec 2020 11:34:24 -0800 (PST) Received: from ?IPv6:2a02:908:1252:fb60:be8a:bd56:1f94:86e7? ([2a02:908:1252:fb60:be8a:bd56:1f94:86e7]) by smtp.gmail.com with ESMTPSA id i21sm14866772edt.92.2020.12.07.11.34.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 07 Dec 2020 11:34:23 -0800 (PST) Subject: Re: [PATCH] drm/ttm: cleanup BO size handling To: Daniel Vetter References: <20201207163300.183853-1-christian.koenig@amd.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <4fdfca02-e046-f0d6-5b69-db79047b9f71@gmail.com> Date: Mon, 7 Dec 2020 20:34:22 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: christian.koenig@amd.com Cc: Huang Rui , dri-devel Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QW0gMDcuMTIuMjAgdW0gMjA6MzMgc2NocmllYiBEYW5pZWwgVmV0dGVyOgo+IE9uIE1vbiwgRGVj IDcsIDIwMjAgYXQgNTozMyBQTSBDaHJpc3RpYW4gS8O2bmlnCj4gPGNrb2VuaWcubGVpY2h0enVt ZXJrZW5AZ21haWwuY29tPiB3cm90ZToKPj4gQmFzZWQgb24gYW4gaWRlYSBmcm9tIERhdmUsIGJ1 dCBjbGVhbmVkIHVwIGEgYml0Lgo+Pgo+PiBXZSBoYWQgbXVsdGlwbGUgZmllbGRzIGZvciBlc3Nl bnRpYWxseSB0aGUgc2FtZSB0aGluZy4KPj4KPj4gTm93IGJvLT5zaXplIGlzIHRoZSBvcmlnaW5h bCBzaXplIG9mIHRoZSBCTyBpbiBhcmJpdHJhcnkKPj4gdW5pdHMsIHVzdWFsbHkgYnl0ZXMuCj4+ Cj4+IGJvLT5tZW0ubnVtX3BhZ2VzIGlzIHRoZSBzaXplIGluIG51bWJlciBvZiBwYWdlcyBpbiB0 aGUKPj4gcmVzb3VyY2UgZG9tYWluIG9mIGJvLT5tZW0ubWVtX3R5cGUuCj4+Cj4+IFNpZ25lZC1v ZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPiBXZSBh bHNvIGhhdmUgdHRtX2JvLmJhc2Uuc2l6ZSwgZG8gd2Ugd2FudCB0byByZXVzZSB0aGF0IG9uZSBs aWtlIHdlJ3ZlCj4gZG9uZSBmb3IgdGhlIHJlc2VydmF0aW9uIG9iamVjdD8gSSdkIGhhdmUgc2Fp ZCAiZm9sbG93IHVwIHBhdGNoIiBidXQKPiBpdCdzIGdvaW5nIHRvIGJlIGV4YWN0bHkgdGhlIHNh bWUgY2h1cm4gb25jZSBtb3JlLgoKT2gsIGdvb2QgcG9pbnQuIEkgaGF2ZW4ndCBub3RpY2VkIHRo YXQuCgpUaGFua3MsCkNocmlzdGlhbi4KCj4gLURhbmllbAo+Cj4+IC0tLQo+PiAgIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVmLmMgICB8ICAyICstCj4+ICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dtYy5jICAgICAgIHwgIDIgKy0KPj4gICBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMgICAgfCAgMiArLQo+PiAgIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaCAgICB8ICA0ICstLQo+PiAg IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90cmFjZS5oICAgICB8ICAyICstCj4+ ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jICAgICAgIHwgIDYgKyst LQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21lc192MTBfMS5jICAgICAgICB8ICAy ICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jICAgICAgICAgIHwg MTAgKysrLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmMg ICAgIHwgIDggKystLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3ByaW1l LmMgICAgICAgfCAgNCArLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjE3X2ZlbmNl LmMgICAgICAgICAgfCAgMiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZmVu Y2UuYyAgICAgICAgICB8ICAyICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0 LmggICAgICAgICAgICAgIHwgIDIgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9jcy5jICAgICAgICAgICAgfCAgMyArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX29iamVjdC5jICAgICAgICB8IDEzICsrKystLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fb2JqZWN0LmggICAgICAgIHwgIDQgKy0tCj4+ICAgZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fcHJpbWUuYyAgICAgICAgIHwgIDQgKy0tCj4+ICAgZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fdHJhY2UuaCAgICAgICAgIHwgIDIgKy0KPj4gICBkcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYyAgICAgICAgICAgfCAgMiArLQo+PiAgIGRyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvLmMgICAgICAgICAgICAgICAgICB8IDMzICsrKysrKy0tLS0tLS0t LS0tLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgICAgICAgICAgICAg fCAxMSArKystLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYyAgICAgICAg ICAgICAgIHwgIDYgKystLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0LmMgICAgICAg ICAgICAgICAgICB8ICAyICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYmxp dC5jICAgICAgICAgIHwgIDQgKy0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf Ym8uYyAgICAgICAgICAgIHwgIDYgKystLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2NvdGFibGUuYyAgICAgICB8ICAyICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfZXhlY2J1Zi5jICAgICAgIHwgIDQgKy0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfZ21yaWRfbWFuYWdlci5jIHwgIDUgKystCj4+ICAgZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfa21zLmMgICAgICAgICAgIHwgIDIgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9wYWdlX2RpcnR5LmMgICAgfCAgOCArKy0tLQo+PiAgIGRyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMgICAgICB8ICAyICstCj4+ICAgZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMgICAgICAgIHwgIDMgKy0KPj4gICBkcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMgICAgICAgICAgfCAgNCArLS0KPj4gICBkcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMgICAgICAgfCAgNyArKy0tCj4+ICAg aW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCAgICAgICAgICAgICAgICAgIHwgIDYgKystLQo+ PiAgIGluY2x1ZGUvZHJtL3R0bS90dG1fcmVzb3VyY2UuaCAgICAgICAgICAgICAgICB8ICAxIC0K Pj4gICAzNiBmaWxlcyBjaGFuZ2VkLCA4MiBpbnNlcnRpb25zKCspLCAxMDAgZGVsZXRpb25zKC0p Cj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZG1h X2J1Zi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RtYV9idWYuYwo+PiBp bmRleCBlNTkxOWVmY2E4NzAuLmM0YzkzZjE5ZDI3MyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RtYV9idWYuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfZG1hX2J1Zi5jCj4+IEBAIC0yNjksNyArMjY5LDcgQEAgc3Rh dGljIHN0cnVjdCBzZ190YWJsZSAqYW1kZ3B1X2RtYV9idWZfbWFwKHN0cnVjdCBkbWFfYnVmX2F0 dGFjaG1lbnQgKmF0dGFjaCwKPj4gICAgICAgICAgY2FzZSBUVE1fUExfVFQ6Cj4+ICAgICAgICAg ICAgICAgICAgc2d0ID0gZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKG9iai0+ZGV2LAo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiby0+dGJvLnR0bS0+cGFnZXMs Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm8tPnRiby5u dW1fcGFnZXMpOwo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJvLT50Ym8udHRtLT5udW1fcGFnZXMpOwo+PiAgICAgICAgICAgICAgICAgIGlmIChJU19FUlIo c2d0KSkKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZ3Q7Cj4+Cj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ21jLmMgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ21jLmMKPj4gaW5kZXggMDU2Y2I4N2QwOWVhLi41 MmJjZDFiNTU4MmYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9nbWMuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ21j LmMKPj4gQEAgLTEyMSw3ICsxMjEsNyBAQCB1aW50NjRfdCBhbWRncHVfZ21jX2FncF9hZGRyKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiA9IGFtZGdwdV90dG1fYWRldihiby0+YmRldik7Cj4+Cj4+IC0gICAg ICAgaWYgKGJvLT5udW1fcGFnZXMgIT0gMSB8fCBiby0+dHRtLT5jYWNoaW5nID09IHR0bV9jYWNo ZWQpCj4+ICsgICAgICAgaWYgKGJvLT50dG0tPm51bV9wYWdlcyAhPSAxIHx8IGJvLT50dG0tPmNh Y2hpbmcgPT0gdHRtX2NhY2hlZCkKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gQU1ER1BVX0JP X0lOVkFMSURfT0ZGU0VUOwo+Pgo+PiAgICAgICAgICBpZiAoYm8tPnR0bS0+ZG1hX2FkZHJlc3Nb MF0gKyBQQUdFX1NJWkUgPj0gYWRldi0+Z21jLmFncF9zaXplKQo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCj4+IGluZGV4IGM2Yzk3MjNkM2Q4YS4uMzgxZWNj NDc4OGQ1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf b2JqZWN0LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVj dC5jCj4+IEBAIC03ODcsNyArNzg3LDcgQEAgaW50IGFtZGdwdV9ib19rbWFwKHN0cnVjdCBhbWRn cHVfYm8gKmJvLCB2b2lkICoqcHRyKQo+PiAgICAgICAgICBpZiAociA8IDApCj4+ICAgICAgICAg ICAgICAgICAgcmV0dXJuIHI7Cj4+Cj4+IC0gICAgICAgciA9IHR0bV9ib19rbWFwKCZiby0+dGJv LCAwLCBiby0+dGJvLm51bV9wYWdlcywgJmJvLT5rbWFwKTsKPj4gKyAgICAgICByID0gdHRtX2Jv X2ttYXAoJmJvLT50Ym8sIDAsIGJvLT50Ym8ubWVtLm51bV9wYWdlcywgJmJvLT5rbWFwKTsKPj4g ICAgICAgICAgaWYgKHIpCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7Cj4+Cj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmggYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmgKPj4gaW5kZXggZWQ0N2NiYWM0 Zjc1Li4xNzZlZDM2MTUxNTEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9vYmplY3QuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfb2JqZWN0LmgKPj4gQEAgLTE3NCwxMiArMTc0LDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCBhbWRncHVfYm9fdW5yZXNlcnZlKHN0cnVjdCBhbWRncHVfYm8gKmJvKQo+Pgo+PiAgIHN0YXRp YyBpbmxpbmUgdW5zaWduZWQgbG9uZyBhbWRncHVfYm9fc2l6ZShzdHJ1Y3QgYW1kZ3B1X2JvICpi bykKPj4gICB7Cj4+IC0gICAgICAgcmV0dXJuIGJvLT50Ym8ubnVtX3BhZ2VzIDw8IFBBR0VfU0hJ RlQ7Cj4+ICsgICAgICAgcmV0dXJuIGJvLT50Ym8uc2l6ZTsKPj4gICB9Cj4+Cj4+ICAgc3RhdGlj IGlubGluZSB1bnNpZ25lZCBhbWRncHVfYm9fbmdwdV9wYWdlcyhzdHJ1Y3QgYW1kZ3B1X2JvICpi bykKPj4gICB7Cj4+IC0gICAgICAgcmV0dXJuIChiby0+dGJvLm51bV9wYWdlcyA8PCBQQUdFX1NI SUZUKSAvIEFNREdQVV9HUFVfUEFHRV9TSVpFOwo+PiArICAgICAgIHJldHVybiBiby0+dGJvLnNp emUgLyBBTURHUFVfR1BVX1BBR0VfU0laRTsKPj4gICB9Cj4+Cj4+ICAgc3RhdGljIGlubGluZSB1 bnNpZ25lZCBhbWRncHVfYm9fZ3B1X3BhZ2VfYWxpZ25tZW50KHN0cnVjdCBhbWRncHVfYm8gKmJv KQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3RyYWNl LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHJhY2UuaAo+PiBpbmRleCBl ZTk0ODBkMTRjYmMuLjIwNzE1ZGRiYjc0NiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3RyYWNlLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3RyYWNlLmgKPj4gQEAgLTEyNyw3ICsxMjcsNyBAQCBUUkFDRV9FVkVOVChh bWRncHVfYm9fY3JlYXRlLAo+Pgo+PiAgICAgICAgICAgICAgVFBfZmFzdF9hc3NpZ24oCj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBfX2VudHJ5LT5ibyA9IGJvOwo+PiAtICAgICAgICAg ICAgICAgICAgICAgICAgICBfX2VudHJ5LT5wYWdlcyA9IGJvLT50Ym8ubnVtX3BhZ2VzOwo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICBfX2VudHJ5LT5wYWdlcyA9IGJvLT50Ym8ubWVtLm51 bV9wYWdlczsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZW50cnktPnR5cGUgPSBi by0+dGJvLm1lbS5tZW1fdHlwZTsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZW50 cnktPnByZWZlciA9IGJvLT5wcmVmZXJyZWRfZG9tYWluczsKPj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF9fZW50cnktPmFsbG93ID0gYm8tPmFsbG93ZWRfZG9tYWluczsKPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+PiBpbmRleCBlYzkzZDRmZGFiYmQuLmRm YjQxMjJiNGZmMyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3R0bS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0u Ywo+PiBAQCAtNjM2LDcgKzYzNiw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2JvX21vdmUoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywgYm9vbCBldmljdCwKPj4KPj4gICBvdXQ6Cj4+ICAgICAg ICAgIC8qIHVwZGF0ZSBzdGF0aXN0aWNzICovCj4+IC0gICAgICAgYXRvbWljNjRfYWRkKCh1NjQp Ym8tPm51bV9wYWdlcyA8PCBQQUdFX1NISUZULCAmYWRldi0+bnVtX2J5dGVzX21vdmVkKTsKPj4g KyAgICAgICBhdG9taWM2NF9hZGQoYm8tPnNpemUsICZhZGV2LT5udW1fYnl0ZXNfbW92ZWQpOwo+ PiAgICAgICAgICBhbWRncHVfYm9fbW92ZV9ub3RpZnkoYm8sIGV2aWN0LCBuZXdfbWVtKTsKPj4g ICAgICAgICAgcmV0dXJuIDA7Cj4+ICAgfQo+PiBAQCAtMjEzMSw3ICsyMTMxLDcgQEAgaW50IGFt ZGdwdV9maWxsX2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X2JvICpibywKPj4gICAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiByOwo+PiAgICAgICAgICB9Cj4+Cj4+IC0gICAgICAgbnVtX3BhZ2Vz ID0gYm8tPnRiby5udW1fcGFnZXM7Cj4+ICsgICAgICAgbnVtX3BhZ2VzID0gYm8tPnRiby5tZW0u bnVtX3BhZ2VzOwo+PiAgICAgICAgICBtbV9ub2RlID0gYm8tPnRiby5tZW0ubW1fbm9kZTsKPj4g ICAgICAgICAgbnVtX2xvb3BzID0gMDsKPj4gICAgICAgICAgd2hpbGUgKG51bV9wYWdlcykgewo+ PiBAQCAtMjE2MSw3ICsyMTYxLDcgQEAgaW50IGFtZGdwdV9maWxsX2J1ZmZlcihzdHJ1Y3QgYW1k Z3B1X2JvICpibywKPj4gICAgICAgICAgICAgICAgICB9Cj4+ICAgICAgICAgIH0KPj4KPj4gLSAg ICAgICBudW1fcGFnZXMgPSBiby0+dGJvLm51bV9wYWdlczsKPj4gKyAgICAgICBudW1fcGFnZXMg PSBiby0+dGJvLm1lbS5udW1fcGFnZXM7Cj4+ICAgICAgICAgIG1tX25vZGUgPSBiby0+dGJvLm1l bS5tbV9ub2RlOwo+Pgo+PiAgICAgICAgICB3aGlsZSAobnVtX3BhZ2VzKSB7Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9tZXNfdjEwXzEuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L21lc192MTBfMS5jCj4+IGluZGV4IDk4NWU0NTQ0NjNlMS4uOWM1OWYz YjIyOWZhIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9tZXNfdjEw XzEuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9tZXNfdjEwXzEuYwo+PiBA QCAtNTU0LDcgKzU1NCw3IEBAIHN0YXRpYyBpbnQgbWVzX3YxMF8xX2FsbG9jYXRlX2VvcF9idWYo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7 Cj4+ICAgICAgICAgIH0KPj4KPj4gLSAgICAgICBtZW1zZXQoZW9wLCAwLCBhZGV2LT5tZXMuZW9w X2dwdV9vYmotPnRiby5tZW0uc2l6ZSk7Cj4+ICsgICAgICAgbWVtc2V0KGVvcCwgMCwgYWRldi0+ bWVzLmVvcF9ncHVfb2JqLT50Ym8uc2l6ZSk7Cj4+Cj4+ICAgICAgICAgIGFtZGdwdV9ib19rdW5t YXAoYWRldi0+bWVzLmVvcF9ncHVfb2JqKTsKPj4gICAgICAgICAgYW1kZ3B1X2JvX3VucmVzZXJ2 ZShhZGV2LT5tZXMuZW9wX2dwdV9vYmopOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvbm91dmVhdV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9i by5jCj4+IGluZGV4IGJjNTQyYWM0YzRiNi4uZjhjNTEyOTFlOWM0IDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCj4+IEBAIC00NzMsMTAgKzQ3MywxMCBAQCBub3V2ZWF1 X2JvX3BpbihzdHJ1Y3Qgbm91dmVhdV9ibyAqbnZibywgdWludDMyX3QgZG9tYWluLCBib29sIGNv bnRpZykKPj4KPj4gICAgICAgICAgc3dpdGNoIChiby0+bWVtLm1lbV90eXBlKSB7Cj4+ICAgICAg ICAgIGNhc2UgVFRNX1BMX1ZSQU06Cj4+IC0gICAgICAgICAgICAgICBkcm0tPmdlbS52cmFtX2F2 YWlsYWJsZSAtPSBiby0+bWVtLnNpemU7Cj4+ICsgICAgICAgICAgICAgICBkcm0tPmdlbS52cmFt X2F2YWlsYWJsZSAtPSBiby0+c2l6ZTsKPj4gICAgICAgICAgICAgICAgICBicmVhazsKPj4gICAg ICAgICAgY2FzZSBUVE1fUExfVFQ6Cj4+IC0gICAgICAgICAgICAgICBkcm0tPmdlbS5nYXJ0X2F2 YWlsYWJsZSAtPSBiby0+bWVtLnNpemU7Cj4+ICsgICAgICAgICAgICAgICBkcm0tPmdlbS5nYXJ0 X2F2YWlsYWJsZSAtPSBiby0+c2l6ZTsKPj4gICAgICAgICAgICAgICAgICBicmVhazsKPj4gICAg ICAgICAgZGVmYXVsdDoKPj4gICAgICAgICAgICAgICAgICBicmVhazsKPj4gQEAgLTUwNCwxMCAr NTA0LDEwIEBAIG5vdXZlYXVfYm9fdW5waW4oc3RydWN0IG5vdXZlYXVfYm8gKm52Ym8pCj4+ICAg ICAgICAgIGlmICghbnZiby0+Ym8ucGluX2NvdW50KSB7Cj4+ICAgICAgICAgICAgICAgICAgc3dp dGNoIChiby0+bWVtLm1lbV90eXBlKSB7Cj4+ICAgICAgICAgICAgICAgICAgY2FzZSBUVE1fUExf VlJBTToKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgZHJtLT5nZW0udnJhbV9hdmFpbGFibGUg Kz0gYm8tPm1lbS5zaXplOwo+PiArICAgICAgICAgICAgICAgICAgICAgICBkcm0tPmdlbS52cmFt X2F2YWlsYWJsZSArPSBiby0+c2l6ZTsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr Owo+PiAgICAgICAgICAgICAgICAgIGNhc2UgVFRNX1BMX1RUOgo+PiAtICAgICAgICAgICAgICAg ICAgICAgICBkcm0tPmdlbS5nYXJ0X2F2YWlsYWJsZSArPSBiby0+bWVtLnNpemU7Cj4+ICsgICAg ICAgICAgICAgICAgICAgICAgIGRybS0+Z2VtLmdhcnRfYXZhaWxhYmxlICs9IGJvLT5zaXplOwo+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+ICAgICAgICAgICAgICAgICAgZGVm YXVsdDoKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+PiBAQCAtOTEzLDcgKzkx Myw3IEBAIG5vdXZlYXVfYm9fdm1fYmluZChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBz dHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdfcmVnLAo+PiAgICAgICAgICAgICAgICAgIHJldHVybiAw Owo+Pgo+PiAgICAgICAgICBpZiAoZHJtLT5jbGllbnQuZGV2aWNlLmluZm8uZmFtaWx5ID49IE5W X0RFVklDRV9JTkZPX1YwX0NFTFNJVVMpIHsKPj4gLSAgICAgICAgICAgICAgICpuZXdfdGlsZSA9 IG52MTBfYm9fc2V0X3RpbGluZyhkZXYsIG9mZnNldCwgbmV3X3JlZy0+c2l6ZSwKPj4gKyAgICAg ICAgICAgICAgICpuZXdfdGlsZSA9IG52MTBfYm9fc2V0X3RpbGluZyhkZXYsIG9mZnNldCwgYm8t PnNpemUsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG52Ym8tPm1vZGUsIG52Ym8tPnpldGEpOwo+PiAgICAgICAgICB9Cj4+Cj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jCj4+IGluZGV4IGJjZWI0OGEyZGZjYS4uMGY3 ODA0ODM5YjVmIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1 X2Rpc3BsYXkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3Bs YXkuYwo+PiBAQCAtMjg2LDExICsyODYsMTEgQEAgbm91dmVhdV9jaGVja19ibF9zaXplKHN0cnVj dCBub3V2ZWF1X2RybSAqZHJtLCBzdHJ1Y3Qgbm91dmVhdV9ibyAqbnZibywKPj4KPj4gICAgICAg ICAgYmxfc2l6ZSA9IGJ3ICogYmggKiAoMSA8PCB0aWxlX21vZGUpICogZ29iX3NpemU7Cj4+Cj4+ IC0gICAgICAgRFJNX0RFQlVHX0tNUygib2Zmc2V0PSV1IHN0cmlkZT0ldSBoPSV1IHRpbGVfbW9k ZT0weCUwMnggYnc9JXUgYmg9JXUgZ29iX3NpemU9JXUgYmxfc2l6ZT0lbGx1IHNpemU9JWx1XG4i LAo+PiArICAgICAgIERSTV9ERUJVR19LTVMoIm9mZnNldD0ldSBzdHJpZGU9JXUgaD0ldSB0aWxl X21vZGU9MHglMDJ4IGJ3PSV1IGJoPSV1IGdvYl9zaXplPSV1IGJsX3NpemU9JWxsdSBzaXplPSVM dVxuIiwKPj4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQsIHN0cmlkZSwgaCwgdGlsZV9t b2RlLCBidywgYmgsIGdvYl9zaXplLCBibF9zaXplLAo+PiAtICAgICAgICAgICAgICAgICAgICAg bnZiby0+Ym8ubWVtLnNpemUpOwo+PiArICAgICAgICAgICAgICAgICAgICAgbnZiby0+Ym8uc2l6 ZSk7Cj4+Cj4+IC0gICAgICAgaWYgKGJsX3NpemUgKyBvZmZzZXQgPiBudmJvLT5iby5tZW0uc2l6 ZSkKPj4gKyAgICAgICBpZiAoYmxfc2l6ZSArIG9mZnNldCA+IG52Ym8tPmJvLnNpemUpCj4+ICAg ICAgICAgICAgICAgICAgcmV0dXJuIC1FUkFOR0U7Cj4+Cj4+ICAgICAgICAgIHJldHVybiAwOwo+ PiBAQCAtMzYzLDcgKzM2Myw3IEBAIG5vdXZlYXVfZnJhbWVidWZmZXJfbmV3KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4+ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90IHNpemUgPSBtb2RlX2NtZC0+cGl0Y2hlc1tpXSAqIGhlaWdo dDsKPj4KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNpemUgKyBtb2RlX2NtZC0+b2Zm c2V0c1tpXSA+IG52Ym8tPmJvLm1lbS5zaXplKQo+PiArICAgICAgICAgICAgICAgICAgICAgICBp ZiAoc2l6ZSArIG1vZGVfY21kLT5vZmZzZXRzW2ldID4gbnZiby0+Ym8uc2l6ZSkKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FUkFOR0U7Cj4+ICAgICAgICAgICAg ICAgICAgfQo+PiAgICAgICAgICB9Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9ub3V2ZWF1X3ByaW1lLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3By aW1lLmMKPj4gaW5kZXggMmYxNmI1MjQ5MjgzLi4zNDc0ODg2ODVmNzQgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfcHJpbWUuYwo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3ByaW1lLmMKPj4gQEAgLTMwLDkgKzMwLDkgQEAKPj4g ICBzdHJ1Y3Qgc2dfdGFibGUgKm5vdXZlYXVfZ2VtX3ByaW1lX2dldF9zZ190YWJsZShzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3QgKm9iaikKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCBub3V2ZWF1X2Jv ICpudmJvID0gbm91dmVhdV9nZW1fb2JqZWN0KG9iaik7Cj4+IC0gICAgICAgaW50IG5wYWdlcyA9 IG52Ym8tPmJvLm51bV9wYWdlczsKPj4KPj4gLSAgICAgICByZXR1cm4gZHJtX3ByaW1lX3BhZ2Vz X3RvX3NnKG9iai0+ZGV2LCBudmJvLT5iby50dG0tPnBhZ2VzLCBucGFnZXMpOwo+PiArICAgICAg IHJldHVybiBkcm1fcHJpbWVfcGFnZXNfdG9fc2cob2JqLT5kZXYsIG52Ym8tPmJvLnR0bS0+cGFn ZXMsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudmJvLT5iby50dG0t Pm51bV9wYWdlcyk7Cj4+ICAgfQo+Pgo+PiAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqbm91dmVh dV9nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjE3X2ZlbmNlLmMgYi9kcml2ZXJz L2dwdS9kcm0vbm91dmVhdS9udjE3X2ZlbmNlLmMKPj4gaW5kZXggMTI1M2ZkZWM3MTJkLi5iZjMy NDdkNjI3YjEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MTdfZmVu Y2UuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjE3X2ZlbmNlLmMKPj4gQEAg LTgwLDcgKzgwLDcgQEAgbnYxN19mZW5jZV9jb250ZXh0X25ldyhzdHJ1Y3Qgbm91dmVhdV9jaGFu bmVsICpjaGFuKQo+PiAgICAgICAgICBzdHJ1Y3QgbnYxMF9mZW5jZV9jaGFuICpmY3R4Owo+PiAg ICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcgPSAmcHJpdi0+Ym8tPmJvLm1lbTsKPj4g ICAgICAgICAgdTMyIHN0YXJ0ID0gcmVnLT5zdGFydCAqIFBBR0VfU0laRTsKPj4gLSAgICAgICB1 MzIgbGltaXQgPSBzdGFydCArIHJlZy0+c2l6ZSAtIDE7Cj4+ICsgICAgICAgdTMyIGxpbWl0ID0g c3RhcnQgKyBwcml2LT5iby0+Ym8uc2l6ZSAtIDE7Cj4+ICAgICAgICAgIGludCByZXQgPSAwOwo+ Pgo+PiAgICAgICAgICBmY3R4ID0gY2hhbi0+ZmVuY2UgPSBremFsbG9jKHNpemVvZigqZmN0eCks IEdGUF9LRVJORUwpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1 MF9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9mZW5jZS5jCj4+IGluZGV4 IDQ0NzIzOGUzY2JlNy4uMWM4OTcwMmZiYmE1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9udjUwX2ZlbmNlLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bnY1MF9mZW5jZS5jCj4+IEBAIC0zOSw3ICszOSw3IEBAIG52NTBfZmVuY2VfY29udGV4dF9uZXco c3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqY2hhbikKPj4gICAgICAgICAgc3RydWN0IG52MTBfZmVu Y2VfY2hhbiAqZmN0eDsKPj4gICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqcmVnID0gJnBy aXYtPmJvLT5iby5tZW07Cj4+ICAgICAgICAgIHUzMiBzdGFydCA9IHJlZy0+c3RhcnQgKiBQQUdF X1NJWkU7Cj4+IC0gICAgICAgdTMyIGxpbWl0ID0gc3RhcnQgKyByZWctPnNpemUgLSAxOwo+PiAr ICAgICAgIHUzMiBsaW1pdCA9IHN0YXJ0ICsgcHJpdi0+Ym8tPmJvLnNpemUgLSAxOwo+PiAgICAg ICAgICBpbnQgcmV0Owo+Pgo+PiAgICAgICAgICBmY3R4ID0gY2hhbi0+ZmVuY2UgPSBremFsbG9j KHNpemVvZigqZmN0eCksIEdGUF9LRVJORUwpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3F4bC9xeGxfb2JqZWN0LmggYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9vYmplY3QuaAo+ PiBpbmRleCBlYmYyNGM5ZDJiZjIuLmJlNGQ5NWVkODI5OCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9x eGxfb2JqZWN0LmgKPj4gQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHF4bF9i b191bnJlc2VydmUoc3RydWN0IHF4bF9ibyAqYm8pCj4+Cj4+ICAgc3RhdGljIGlubGluZSB1bnNp Z25lZCBsb25nIHF4bF9ib19zaXplKHN0cnVjdCBxeGxfYm8gKmJvKQo+PiAgIHsKPj4gLSAgICAg ICByZXR1cm4gYm8tPnRiby5udW1fcGFnZXMgPDwgUEFHRV9TSElGVDsKPj4gKyAgICAgICByZXR1 cm4gYm8tPnRiby5zaXplOwo+PiAgIH0KPj4KPj4gICBzdGF0aWMgaW5saW5lIHU2NCBxeGxfYm9f bW1hcF9vZmZzZXQoc3RydWN0IHF4bF9ibyAqYm8pCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f Y3MuYwo+PiBpbmRleCAyMWNlMmY5NTAyYzAuLjRmMzVjMzI5NTdiZSAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3MuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9jcy5jCj4+IEBAIC00MDEsNyArNDAxLDggQEAgc3RhdGljIGludCBj bXBfc2l6ZV9zbWFsbGVyX2ZpcnN0KHZvaWQgKnByaXYsIHN0cnVjdCBsaXN0X2hlYWQgKmEsCj4+ ICAgICAgICAgIHN0cnVjdCByYWRlb25fYm9fbGlzdCAqbGIgPSBsaXN0X2VudHJ5KGIsIHN0cnVj dCByYWRlb25fYm9fbGlzdCwgdHYuaGVhZCk7Cj4+Cj4+ICAgICAgICAgIC8qIFNvcnQgQSBiZWZv cmUgQiBpZiBBIGlzIHNtYWxsZXIuICovCj4+IC0gICAgICAgcmV0dXJuIChpbnQpbGEtPnJvYmot PnRiby5udW1fcGFnZXMgLSAoaW50KWxiLT5yb2JqLT50Ym8ubnVtX3BhZ2VzOwo+PiArICAgICAg IHJldHVybiAoaW50KWxhLT5yb2JqLT50Ym8ubWVtLm51bV9wYWdlcyAtCj4+ICsgICAgICAgICAg ICAgICAoaW50KWxiLT5yb2JqLT50Ym8ubWVtLm51bV9wYWdlczsKPj4gICB9Cj4+Cj4+ICAgLyoq Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCj4+IGluZGV4IGFiODFlMzVj YjA2MC4uNzg1MjkyZmM4Y2ZmIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9vYmplY3QuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9v YmplY3QuYwo+PiBAQCAtNTQsMjAgKzU0LDE5IEBAIHN0YXRpYyB2b2lkIHJhZGVvbl91cGRhdGVf bWVtb3J5X3VzYWdlKHN0cnVjdCByYWRlb25fYm8gKmJvLAo+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbWVtX3R5cGUsIGludCBzaWduKQo+PiAgIHsK Pj4gICAgICAgICAgc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBiby0+cmRldjsKPj4gLSAg ICAgICB1NjQgc2l6ZSA9ICh1NjQpYm8tPnRiby5udW1fcGFnZXMgPDwgUEFHRV9TSElGVDsKPj4K Pj4gICAgICAgICAgc3dpdGNoIChtZW1fdHlwZSkgewo+PiAgICAgICAgICBjYXNlIFRUTV9QTF9U VDoKPj4gICAgICAgICAgICAgICAgICBpZiAoc2lnbiA+IDApCj4+IC0gICAgICAgICAgICAgICAg ICAgICAgIGF0b21pYzY0X2FkZChzaXplLCAmcmRldi0+Z3R0X3VzYWdlKTsKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgYXRvbWljNjRfYWRkKGJvLT50Ym8uc2l6ZSwgJnJkZXYtPmd0dF91c2Fn ZSk7Cj4+ICAgICAgICAgICAgICAgICAgZWxzZQo+PiAtICAgICAgICAgICAgICAgICAgICAgICBh dG9taWM2NF9zdWIoc2l6ZSwgJnJkZXYtPmd0dF91c2FnZSk7Cj4+ICsgICAgICAgICAgICAgICAg ICAgICAgIGF0b21pYzY0X3N1Yihiby0+dGJvLnNpemUsICZyZGV2LT5ndHRfdXNhZ2UpOwo+PiAg ICAgICAgICAgICAgICAgIGJyZWFrOwo+PiAgICAgICAgICBjYXNlIFRUTV9QTF9WUkFNOgo+PiAg ICAgICAgICAgICAgICAgIGlmIChzaWduID4gMCkKPj4gLSAgICAgICAgICAgICAgICAgICAgICAg YXRvbWljNjRfYWRkKHNpemUsICZyZGV2LT52cmFtX3VzYWdlKTsKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgYXRvbWljNjRfYWRkKGJvLT50Ym8uc2l6ZSwgJnJkZXYtPnZyYW1fdXNhZ2UpOwo+ PiAgICAgICAgICAgICAgICAgIGVsc2UKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgYXRvbWlj NjRfc3ViKHNpemUsICZyZGV2LT52cmFtX3VzYWdlKTsKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgYXRvbWljNjRfc3ViKGJvLT50Ym8uc2l6ZSwgJnJkZXYtPnZyYW1fdXNhZ2UpOwo+PiAgICAg ICAgICAgICAgICAgIGJyZWFrOwo+PiAgICAgICAgICB9Cj4+ICAgfQo+PiBAQCAtMjU2LDcgKzI1 NSw3IEBAIGludCByYWRlb25fYm9fa21hcChzdHJ1Y3QgcmFkZW9uX2JvICpibywgdm9pZCAqKnB0 cikKPj4gICAgICAgICAgICAgICAgICB9Cj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4+ ICAgICAgICAgIH0KPj4gLSAgICAgICByID0gdHRtX2JvX2ttYXAoJmJvLT50Ym8sIDAsIGJvLT50 Ym8ubnVtX3BhZ2VzLCAmYm8tPmttYXApOwo+PiArICAgICAgIHIgPSB0dG1fYm9fa21hcCgmYm8t PnRibywgMCwgYm8tPnRiby5tZW0ubnVtX3BhZ2VzLCAmYm8tPmttYXApOwo+PiAgICAgICAgICBp ZiAocikgewo+PiAgICAgICAgICAgICAgICAgIHJldHVybiByOwo+PiAgICAgICAgICB9Cj4+IEBA IC02MTAsNyArNjA5LDcgQEAgaW50IHJhZGVvbl9ib19nZXRfc3VyZmFjZV9yZWcoc3RydWN0IHJh ZGVvbl9ibyAqYm8pCj4+ICAgb3V0Ogo+PiAgICAgICAgICByYWRlb25fc2V0X3N1cmZhY2VfcmVn KHJkZXYsIGksIGJvLT50aWxpbmdfZmxhZ3MsIGJvLT5waXRjaCwKPj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBiby0+dGJvLm1lbS5zdGFydCA8PCBQQUdFX1NISUZULAo+PiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm8tPnRiby5udW1fcGFnZXMgPDwgUEFHRV9TSElG VCk7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiby0+dGJvLnNpemUpOwo+PiAg ICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X29iamVjdC5oCj4+IGluZGV4IGQ2MDZlOWE5MzVlMy4uNjM4MjFkMmQyYzA3IDEwMDY0NAo+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuaAo+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuaAo+PiBAQCAtMTA5LDEyICsxMDksMTIg QEAgc3RhdGljIGlubGluZSB1NjQgcmFkZW9uX2JvX2dwdV9vZmZzZXQoc3RydWN0IHJhZGVvbl9i byAqYm8pCj4+Cj4+ICAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHJhZGVvbl9ib19zaXpl KHN0cnVjdCByYWRlb25fYm8gKmJvKQo+PiAgIHsKPj4gLSAgICAgICByZXR1cm4gYm8tPnRiby5u dW1fcGFnZXMgPDwgUEFHRV9TSElGVDsKPj4gKyAgICAgICByZXR1cm4gYm8tPnRiby5zaXplOwo+ PiAgIH0KPj4KPj4gICBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHJhZGVvbl9ib19uZ3B1X3BhZ2Vz KHN0cnVjdCByYWRlb25fYm8gKmJvKQo+PiAgIHsKPj4gLSAgICAgICByZXR1cm4gKGJvLT50Ym8u bnVtX3BhZ2VzIDw8IFBBR0VfU0hJRlQpIC8gUkFERU9OX0dQVV9QQUdFX1NJWkU7Cj4+ICsgICAg ICAgcmV0dXJuIGJvLT50Ym8uc2l6ZSAvIFJBREVPTl9HUFVfUEFHRV9TSVpFOwo+PiAgIH0KPj4K Pj4gICBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHJhZGVvbl9ib19ncHVfcGFnZV9hbGlnbm1lbnQo c3RydWN0IHJhZGVvbl9ibyAqYm8pCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9wcmltZS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fcHJpbWUu Ywo+PiBpbmRleCAwODhkMzlhNTFjMGQuLjBhMDlkYmFiYTI4OSAxMDA2NDQKPj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fcHJpbWUuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9wcmltZS5jCj4+IEBAIC0zNCw5ICszNCw5IEBACj4+ICAgc3RydWN0 IHNnX3RhYmxlICpyYWRlb25fZ2VtX3ByaW1lX2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKm9iaikKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCByYWRlb25fYm8gKmJvID0gZ2Vt X3RvX3JhZGVvbl9ibyhvYmopOwo+PiAtICAgICAgIGludCBucGFnZXMgPSBiby0+dGJvLm51bV9w YWdlczsKPj4KPj4gLSAgICAgICByZXR1cm4gZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKG9iai0+ZGV2 LCBiby0+dGJvLnR0bS0+cGFnZXMsIG5wYWdlcyk7Cj4+ICsgICAgICAgcmV0dXJuIGRybV9wcmlt ZV9wYWdlc190b19zZyhvYmotPmRldiwgYm8tPnRiby50dG0tPnBhZ2VzLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm8tPnRiby50dG0tPm51bV9wYWdlcyk7Cj4+ICAg fQo+Pgo+PiAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqcmFkZW9uX2dlbV9wcmltZV9pbXBvcnRf c2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX3RyYWNlLmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl90cmFjZS5oCj4+IGluZGV4IGM5M2YzYWIzYzRlMy4uMTcyOWNiOWE5NWM1IDEwMDY0NAo+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90cmFjZS5oCj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3RyYWNlLmgKPj4gQEAgLTIyLDcgKzIyLDcgQEAg VFJBQ0VfRVZFTlQocmFkZW9uX2JvX2NyZWF0ZSwKPj4KPj4gICAgICAgICAgICAgIFRQX2Zhc3Rf YXNzaWduKAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19lbnRyeS0+Ym8gPSBibzsK Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgX19lbnRyeS0+cGFnZXMgPSBiby0+dGJvLm51 bV9wYWdlczsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgX19lbnRyeS0+cGFnZXMgPSBi by0+dGJvLm1lbS5udW1fcGFnZXM7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAo+ PiAgICAgICAgICAgICAgVFBfcHJpbnRrKCJibz0lcCwgcGFnZXM9JXUiLCBfX2VudHJ5LT5ibywg X19lbnRyeS0+cGFnZXMpCj4+ICAgKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMK Pj4gaW5kZXggYTM0MzJjNjM0M2JhLi41MWFkNWVjY2Q4NDQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX3R0bS5jCj4+IEBAIC0yNzQsNyArMjc0LDcgQEAgc3RhdGljIGludCByYWRl b25fYm9fbW92ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBib29sIGV2aWN0LAo+Pgo+ PiAgIG91dDoKPj4gICAgICAgICAgLyogdXBkYXRlIHN0YXRpc3RpY3MgKi8KPj4gLSAgICAgICBh dG9taWM2NF9hZGQoKHU2NCliby0+bnVtX3BhZ2VzIDw8IFBBR0VfU0hJRlQsICZyZGV2LT5udW1f Ynl0ZXNfbW92ZWQpOwo+PiArICAgICAgIGF0b21pYzY0X2FkZChiby0+c2l6ZSwgJnJkZXYtPm51 bV9ieXRlc19tb3ZlZCk7Cj4+ICAgICAgICAgIHJhZGVvbl9ib19tb3ZlX25vdGlmeShibywgZXZp Y3QsIG5ld19tZW0pOwo+PiAgICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f Ym8uYwo+PiBpbmRleCAwMmNjNWQyNDdjMGQuLjFjYjMyNjA1NmU5MiAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9iby5jCj4+IEBAIC03Miw5ICs3Miw5IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19tZW1fc3Bh Y2VfZGVidWcoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gICAgICAgICAgc3RydWN0 IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW47Cj4+ICAgICAgICAgIGludCBpLCBtZW1fdHlwZTsK Pj4KPj4gLSAgICAgICBkcm1fcHJpbnRmKCZwLCAiTm8gc3BhY2UgZm9yICVwICglbHUgcGFnZXMs ICVsdUssICVsdU0pXG4iLAo+PiAtICAgICAgICAgICAgICAgICAgYm8sIGJvLT5tZW0ubnVtX3Bh Z2VzLCBiby0+bWVtLnNpemUgPj4gMTAsCj4+IC0gICAgICAgICAgICAgICAgICBiby0+bWVtLnNp emUgPj4gMjApOwo+PiArICAgICAgIGRybV9wcmludGYoJnAsICJObyBzcGFjZSBmb3IgJXAgKCVs dSBwYWdlcywgJUx1SywgJUx1TSlcbiIsCj4+ICsgICAgICAgICAgICAgICAgICBibywgYm8tPm1l bS5udW1fcGFnZXMsIGJvLT5zaXplID4+IDEwLAo+PiArICAgICAgICAgICAgICAgICAgYm8tPnNp emUgPj4gMjApOwo+PiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcGxhY2VtZW50LT5udW1fcGxh Y2VtZW50OyBpKyspIHsKPj4gICAgICAgICAgICAgICAgICBtZW1fdHlwZSA9IHBsYWNlbWVudC0+ cGxhY2VtZW50W2ldLm1lbV90eXBlOwo+PiAgICAgICAgICAgICAgICAgIGRybV9wcmludGYoJnAs ICIgIHBsYWNlbWVudFslZF09MHglMDhYICglZClcbiIsCj4+IEBAIC0yNjgsNyArMjY4LDcgQEAg c3RhdGljIGludCB0dG1fYm9faGFuZGxlX21vdmVfbWVtKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sCj4+ICAgICAgICAgICAgICAgICAgZ290byBvdXRfZXJyOwo+PiAgICAgICAgICB9Cj4+ Cj4+IC0gICAgICAgY3R4LT5ieXRlc19tb3ZlZCArPSBiby0+bnVtX3BhZ2VzIDw8IFBBR0VfU0hJ RlQ7Cj4+ICsgICAgICAgY3R4LT5ieXRlc19tb3ZlZCArPSBiby0+c2l6ZTsKPj4gICAgICAgICAg cmV0dXJuIDA7Cj4+Cj4+ICAgb3V0X2VycjoKPj4gQEAgLTk4NSw4ICs5ODUsNyBAQCBzdGF0aWMg aW50IHR0bV9ib19tb3ZlX2J1ZmZlcihzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pgo+ PiAgICAgICAgICBtZW1zZXQoJmhvcCwgMCwgc2l6ZW9mKGhvcCkpOwo+Pgo+PiAtICAgICAgIG1l bS5udW1fcGFnZXMgPSBiby0+bnVtX3BhZ2VzOwo+PiAtICAgICAgIG1lbS5zaXplID0gbWVtLm51 bV9wYWdlcyA8PCBQQUdFX1NISUZUOwo+PiArICAgICAgIG1lbS5udW1fcGFnZXMgPSBQQUdFX0FM SUdOKGJvLT5zaXplKSA+PiBQQUdFX1NISUZUOwo+PiAgICAgICAgICBtZW0ucGFnZV9hbGlnbm1l bnQgPSBiby0+bWVtLnBhZ2VfYWxpZ25tZW50Owo+PiAgICAgICAgICBtZW0uYnVzLm9mZnNldCA9 IDA7Cj4+ICAgICAgICAgIG1lbS5idXMuYWRkciA9IE5VTEw7Cj4+IEBAIC0xMTAyLDcgKzExMDEs NyBAQCBFWFBPUlRfU1lNQk9MKHR0bV9ib192YWxpZGF0ZSk7Cj4+Cj4+ICAgaW50IHR0bV9ib19p bml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+IC0gICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICB1aW50NjRfdCBzaXplLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gdHRt X2JvX3R5cGUgdHlwZSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Bs YWNlbWVudCAqcGxhY2VtZW50LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90 IHBhZ2VfYWxpZ25tZW50LAo+PiBAQCAtMTExMyw5ICsxMTEyLDggQEAgaW50IHR0bV9ib19pbml0 X3Jlc2VydmVkKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZvaWQgKCpkZXN0cm95KSAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICopKQo+ PiAgIHsKPj4gICAgICAgICAgc3RydWN0IHR0bV9tZW1fZ2xvYmFsICptZW1fZ2xvYiA9ICZ0dG1f bWVtX2dsb2I7Cj4+IC0gICAgICAgaW50IHJldCA9IDA7Cj4+IC0gICAgICAgdW5zaWduZWQgbG9u ZyBudW1fcGFnZXM7Cj4+ICAgICAgICAgIGJvb2wgbG9ja2VkOwo+PiArICAgICAgIGludCByZXQg PSAwOwo+Pgo+PiAgICAgICAgICByZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyhtZW1fZ2xvYiwg YWNjX3NpemUsIGN0eCk7Cj4+ICAgICAgICAgIGlmIChyZXQpIHsKPj4gQEAgLTExMjcsMTYgKzEx MjUsNiBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYsCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4+ICAgICAgICAgIH0KPj4K Pj4gLSAgICAgICBudW1fcGFnZXMgPSAoc2l6ZSArIFBBR0VfU0laRSAtIDEpID4+IFBBR0VfU0hJ RlQ7Cj4+IC0gICAgICAgaWYgKG51bV9wYWdlcyA9PSAwKSB7Cj4+IC0gICAgICAgICAgICAgICBw cl9lcnIoIklsbGVnYWwgYnVmZmVyIG9iamVjdCBzaXplXG4iKTsKPj4gLSAgICAgICAgICAgICAg IGlmIChkZXN0cm95KQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAoKmRlc3Ryb3kpKGJvKTsK Pj4gLSAgICAgICAgICAgICAgIGVsc2UKPj4gLSAgICAgICAgICAgICAgICAgICAgICAga2ZyZWUo Ym8pOwo+PiAtICAgICAgICAgICAgICAgdHRtX21lbV9nbG9iYWxfZnJlZShtZW1fZ2xvYiwgYWNj X3NpemUpOwo+PiAtICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+IC0gICAgICAgfQo+ PiAgICAgICAgICBiby0+ZGVzdHJveSA9IGRlc3Ryb3kgPyBkZXN0cm95IDogdHRtX2JvX2RlZmF1 bHRfZGVzdHJveTsKPj4KPj4gICAgICAgICAga3JlZl9pbml0KCZiby0+a3JlZik7Cj4+IEBAIC0x MTQ1LDEwICsxMTMzLDkgQEAgaW50IHR0bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICBJTklUX0xJU1RfSEVBRCgmYm8tPnN3YXApOwo+PiAg ICAgICAgICBiby0+YmRldiA9IGJkZXY7Cj4+ICAgICAgICAgIGJvLT50eXBlID0gdHlwZTsKPj4g LSAgICAgICBiby0+bnVtX3BhZ2VzID0gbnVtX3BhZ2VzOwo+PiAtICAgICAgIGJvLT5tZW0uc2l6 ZSA9IG51bV9wYWdlcyA8PCBQQUdFX1NISUZUOwo+PiArICAgICAgIGJvLT5zaXplID0gc2l6ZTsK Pj4gICAgICAgICAgYm8tPm1lbS5tZW1fdHlwZSA9IFRUTV9QTF9TWVNURU07Cj4+IC0gICAgICAg Ym8tPm1lbS5udW1fcGFnZXMgPSBiby0+bnVtX3BhZ2VzOwo+PiArICAgICAgIGJvLT5tZW0ubnVt X3BhZ2VzID0gUEFHRV9BTElHTihzaXplKSA+PiBQQUdFX1NISUZUOwo+PiAgICAgICAgICBiby0+ bWVtLm1tX25vZGUgPSBOVUxMOwo+PiAgICAgICAgICBiby0+bWVtLnBhZ2VfYWxpZ25tZW50ID0g cGFnZV9hbGlnbm1lbnQ7Cj4+ICAgICAgICAgIGJvLT5tZW0uYnVzLm9mZnNldCA9IDA7Cj4+IEBA IC0xMjEwLDcgKzExOTcsNyBAQCBFWFBPUlRfU1lNQk9MKHR0bV9ib19pbml0X3Jlc2VydmVkKTsK Pj4KPj4gICBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICAg ICAgICAgICAgICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gLSAgICAgICAg ICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwKPj4gKyAgICAgICAgICAgICAgIHVpbnQ2NF90IHNp emUsCj4+ICAgICAgICAgICAgICAgICAgZW51bSB0dG1fYm9fdHlwZSB0eXBlLAo+PiAgICAgICAg ICAgICAgICAgIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQsCj4+ICAgICAgICAgICAg ICAgICAgdWludDMyX3QgcGFnZV9hbGlnbm1lbnQsCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9ib191dGlsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGls LmMKPj4gaW5kZXggNWJiYzEzMzlkMjhlLi42NzU4ZTUxMTVhZTUgMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v dHRtL3R0bV9ib191dGlsLmMKPj4gQEAgLTQzMSw5ICs0MzEsOSBAQCBpbnQgdHRtX2JvX2ttYXAo c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4KPj4gICAgICAgICAgbWFwLT52aXJ0dWFs ID0gTlVMTDsKPj4gICAgICAgICAgbWFwLT5ibyA9IGJvOwo+PiAtICAgICAgIGlmIChudW1fcGFn ZXMgPiBiby0+bnVtX3BhZ2VzKQo+PiArICAgICAgIGlmIChudW1fcGFnZXMgPiBiby0+bWVtLm51 bV9wYWdlcykKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4gLSAgICAgICBp ZiAoc3RhcnRfcGFnZSA+IGJvLT5udW1fcGFnZXMpCj4+ICsgICAgICAgaWYgKChzdGFydF9wYWdl ICsgbnVtX3BhZ2VzKSA+IGJvLT5tZW0ubnVtX3BhZ2VzKQo+PiAgICAgICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOwo+Pgo+PiAgICAgICAgICByZXQgPSB0dG1fbWVtX2lvX3Jlc2VydmUoYm8t PmJkZXYsICZiby0+bWVtKTsKPj4gQEAgLTQ4NSwxNCArNDg1LDEzIEBAIGludCB0dG1fYm9fdm1h cChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QgZG1hX2J1Zl9tYXAgKm1hcCkK Pj4KPj4gICAgICAgICAgaWYgKG1lbS0+YnVzLmlzX2lvbWVtKSB7Cj4+ICAgICAgICAgICAgICAg ICAgdm9pZCBfX2lvbWVtICp2YWRkcl9pb21lbTsKPj4gLSAgICAgICAgICAgICAgIHNpemVfdCBz aXplID0gYm8tPm51bV9wYWdlcyA8PCBQQUdFX1NISUZUOwo+Pgo+PiAgICAgICAgICAgICAgICAg IGlmIChtZW0tPmJ1cy5hZGRyKQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFkZHJfaW9t ZW0gPSAodm9pZCBfX2lvbWVtICopbWVtLT5idXMuYWRkcjsKPj4gICAgICAgICAgICAgICAgICBl bHNlIGlmIChtZW0tPmJ1cy5jYWNoaW5nID09IHR0bV93cml0ZV9jb21iaW5lZCkKPj4gLSAgICAg ICAgICAgICAgICAgICAgICAgdmFkZHJfaW9tZW0gPSBpb3JlbWFwX3djKG1lbS0+YnVzLm9mZnNl dCwgc2l6ZSk7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIHZhZGRyX2lvbWVtID0gaW9yZW1h cF93YyhtZW0tPmJ1cy5vZmZzZXQsIGJvLT5zaXplKTsKPj4gICAgICAgICAgICAgICAgICBlbHNl Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgIHZhZGRyX2lvbWVtID0gaW9yZW1hcChtZW0tPmJ1 cy5vZmZzZXQsIHNpemUpOwo+PiArICAgICAgICAgICAgICAgICAgICAgICB2YWRkcl9pb21lbSA9 IGlvcmVtYXAobWVtLT5idXMub2Zmc2V0LCBiby0+c2l6ZSk7Cj4+Cj4+ICAgICAgICAgICAgICAg ICAgaWYgKCF2YWRkcl9pb21lbSkKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAt RU5PTUVNOwo+PiBAQCAtNTE3LDcgKzUxNiw3IEBAIGludCB0dG1fYm9fdm1hcChzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QgZG1hX2J1Zl9tYXAgKm1hcCkKPj4gICAgICAgICAg ICAgICAgICAgKiBvciB0byBtYWtlIHRoZSBidWZmZXIgb2JqZWN0IGxvb2sgY29udGlndW91cy4K Pj4gICAgICAgICAgICAgICAgICAgKi8KPj4gICAgICAgICAgICAgICAgICBwcm90ID0gdHRtX2lv X3Byb3QoYm8sIG1lbSwgUEFHRV9LRVJORUwpOwo+PiAtICAgICAgICAgICAgICAgdmFkZHIgPSB2 bWFwKHR0bS0+cGFnZXMsIGJvLT5udW1fcGFnZXMsIDAsIHByb3QpOwo+PiArICAgICAgICAgICAg ICAgdmFkZHIgPSB2bWFwKHR0bS0+cGFnZXMsIHR0bS0+bnVtX3BhZ2VzLCAwLCBwcm90KTsKPj4g ICAgICAgICAgICAgICAgICBpZiAoIXZhZGRyKQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIC1FTk9NRU07Cj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9ib192bS5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYwo+PiBpbmRleCAxNDRh NDk0MGI2YjYuLjZkYzk2Y2Y2Njc0NCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0 bS90dG1fYm9fdm0uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCj4+ IEBAIC0xOTgsNyArMTk4LDcgQEAgc3RhdGljIHZtX2ZhdWx0X3QgdHRtX2JvX3ZtX2luc2VydF9o dWdlKHN0cnVjdCB2bV9mYXVsdCAqdm1mLAo+Pgo+PiAgICAgICAgICAvKiBGYXVsdCBzaG91bGQg bm90IGNyb3NzIGJvIGJvdW5kYXJ5LiAqLwo+PiAgICAgICAgICBwYWdlX29mZnNldCAmPSB+KGZh dWx0X3BhZ2Vfc2l6ZSAtIDEpOwo+PiAtICAgICAgIGlmIChwYWdlX29mZnNldCArIGZhdWx0X3Bh Z2Vfc2l6ZSA+IGJvLT5udW1fcGFnZXMpCj4+ICsgICAgICAgaWYgKHBhZ2Vfb2Zmc2V0ICsgZmF1 bHRfcGFnZV9zaXplID4gYm8tPm1lbS5udW1fcGFnZXMpCj4+ICAgICAgICAgICAgICAgICAgZ290 byBvdXRfZmFsbGJhY2s7Cj4+Cj4+ICAgICAgICAgIGlmIChiby0+bWVtLmJ1cy5pc19pb21lbSkK Pj4gQEAgLTMwNiw3ICszMDYsNyBAQCB2bV9mYXVsdF90IHR0bV9ib192bV9mYXVsdF9yZXNlcnZl ZChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwKPj4gICAgICAgICAgcGFnZV9sYXN0ID0gdm1hX3BhZ2Vz KHZtYSkgKyB2bWEtPnZtX3Bnb2ZmIC0KPj4gICAgICAgICAgICAgICAgICBkcm1fdm1hX25vZGVf c3RhcnQoJmJvLT5iYXNlLnZtYV9ub2RlKTsKPj4KPj4gLSAgICAgICBpZiAodW5saWtlbHkocGFn ZV9vZmZzZXQgPj0gYm8tPm51bV9wYWdlcykpCj4+ICsgICAgICAgaWYgKHVubGlrZWx5KHBhZ2Vf b2Zmc2V0ID49IGJvLT5tZW0ubnVtX3BhZ2VzKSkKPj4gICAgICAgICAgICAgICAgICByZXR1cm4g Vk1fRkFVTFRfU0lHQlVTOwo+Pgo+PiAgICAgICAgICBwcm90ID0gdHRtX2lvX3Byb3QoYm8sICZi by0+bWVtLCBwcm90KTsKPj4gQEAgLTQ2OSw3ICs0NjksNyBAQCBpbnQgdHRtX2JvX3ZtX2FjY2Vz cyhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyLAo+PiAgICAg ICAgICAgICAgICAgICA8PCBQQUdFX1NISUZUKTsKPj4gICAgICAgICAgaW50IHJldDsKPj4KPj4g LSAgICAgICBpZiAobGVuIDwgMSB8fCAob2Zmc2V0ICsgbGVuKSA+PiBQQUdFX1NISUZUID4gYm8t Pm51bV9wYWdlcykKPj4gKyAgICAgICBpZiAobGVuIDwgMSB8fCAob2Zmc2V0ICsgbGVuKSA+PiBQ QUdFX1NISUZUID4gYm8tPm1lbS5udW1fcGFnZXMpCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJu IC1FSU87Cj4+Cj4+ICAgICAgICAgIHJldCA9IHR0bV9ib19yZXNlcnZlKGJvLCB0cnVlLCBmYWxz ZSwgTlVMTCk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jIGIv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYwo+PiBpbmRleCA3N2JhNzg0NDI1ZGQuLmM1Yzk3 M2ZhMDczNiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYwo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jCj4+IEBAIC0xMjksNyArMTI5LDcgQEAg c3RhdGljIHZvaWQgdHRtX3R0X2luaXRfZmllbGRzKHN0cnVjdCB0dG1fdHQgKnR0bSwKPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBwYWdlX2ZsYWdzLAo+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gdHRtX2NhY2hpbmcgY2FjaGluZykKPj4g ICB7Cj4+IC0gICAgICAgdHRtLT5udW1fcGFnZXMgPSBiby0+bnVtX3BhZ2VzOwo+PiArICAgICAg IHR0bS0+bnVtX3BhZ2VzID0gUEFHRV9BTElHTihiby0+c2l6ZSkgPj4gUEFHRV9TSElGVDsKPj4g ICAgICAgICAgdHRtLT5jYWNoaW5nID0gdHRtX2NhY2hlZDsKPj4gICAgICAgICAgdHRtLT5wYWdl X2ZsYWdzID0gcGFnZV9mbGFnczsKPj4gICAgICAgICAgdHRtLT5kbWFfYWRkcmVzcyA9IE5VTEw7 Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9ibGl0LmMgYi9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9ibGl0LmMKPj4gaW5kZXggZjIxODgxZTA4N2Ri Li45ZjI3NzlkZGNmMDggMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2JsaXQuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9ibGl0LmMK Pj4gQEAgLTQ4Miw4ICs0ODIsOCBAQCBpbnQgdm13X2JvX2NwdV9ibGl0KHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqZHN0LAo+PiAgICAgICAgICBkLnNyY19hZGRyID0gTlVMTDsKPj4gICAgICAg ICAgZC5kc3RfcGFnZXMgPSBkc3QtPnR0bS0+cGFnZXM7Cj4+ICAgICAgICAgIGQuc3JjX3BhZ2Vz ID0gc3JjLT50dG0tPnBhZ2VzOwo+PiAtICAgICAgIGQuZHN0X251bV9wYWdlcyA9IGRzdC0+bnVt X3BhZ2VzOwo+PiAtICAgICAgIGQuc3JjX251bV9wYWdlcyA9IHNyYy0+bnVtX3BhZ2VzOwo+PiAr ICAgICAgIGQuZHN0X251bV9wYWdlcyA9IGRzdC0+bWVtLm51bV9wYWdlczsKPj4gKyAgICAgICBk LnNyY19udW1fcGFnZXMgPSBzcmMtPm1lbS5udW1fcGFnZXM7Cj4+ICAgICAgICAgIGQuZHN0X3By b3QgPSB0dG1faW9fcHJvdChkc3QsICZkc3QtPm1lbSwgUEFHRV9LRVJORUwpOwo+PiAgICAgICAg ICBkLnNyY19wcm90ID0gdHRtX2lvX3Byb3Qoc3JjLCAmc3JjLT5tZW0sIFBBR0VfS0VSTkVMKTsK Pj4gICAgICAgICAgZC5kaWZmID0gZGlmZjsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5j Cj4+IGluZGV4IDI2M2Q3NmFlNDNmMC4uNjNkYmM0NGVlYmUwIDEwMDY0NAo+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2JvLmMKPj4gQEAgLTIyMyw3ICsyMjMsNyBAQCBpbnQgdm13X2JvX3Bpbl9p bl9zdGFydF9vZl92cmFtKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAgICAgICAg IHVpbnQzMl90IG5ld19mbGFnczsKPj4KPj4gICAgICAgICAgcGxhY2UgPSB2bXdfdnJhbV9wbGFj ZW1lbnQucGxhY2VtZW50WzBdOwo+PiAtICAgICAgIHBsYWNlLmxwZm4gPSBiby0+bnVtX3BhZ2Vz Owo+PiArICAgICAgIHBsYWNlLmxwZm4gPSBiby0+bWVtLm51bV9wYWdlczsKPj4gICAgICAgICAg cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgPSAxOwo+PiAgICAgICAgICBwbGFjZW1lbnQucGxhY2Vt ZW50ID0gJnBsYWNlOwo+PiAgICAgICAgICBwbGFjZW1lbnQubnVtX2J1c3lfcGxhY2VtZW50ID0g MTsKPj4gQEAgLTI0NCw3ICsyNDQsNyBAQCBpbnQgdm13X2JvX3Bpbl9pbl9zdGFydF9vZl92cmFt KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAgICAgICAgICAqIHRoYXQgc2l0dWF0 aW9uLgo+PiAgICAgICAgICAgKi8KPj4gICAgICAgICAgaWYgKGJvLT5tZW0ubWVtX3R5cGUgPT0g VFRNX1BMX1ZSQU0gJiYKPj4gLSAgICAgICAgICAgYm8tPm1lbS5zdGFydCA8IGJvLT5udW1fcGFn ZXMgJiYKPj4gKyAgICAgICAgICAgYm8tPm1lbS5zdGFydCA8IGJvLT5tZW0ubnVtX3BhZ2VzICYm Cj4+ICAgICAgICAgICAgICBiby0+bWVtLnN0YXJ0ID4gMCAmJgo+PiAgICAgICAgICAgICAgYnVm LT5iYXNlLnBpbl9jb3VudCA9PSAwKSB7Cj4+ICAgICAgICAgICAgICAgICAgY3R4LmludGVycnVw dGlibGUgPSBmYWxzZTsKPj4gQEAgLTM5MSw3ICszOTEsNyBAQCB2b2lkICp2bXdfYm9fbWFwX2Fu ZF9jYWNoZShzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibykKPj4gICAgICAgICAgaWYgKHZp cnR1YWwpCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpcnR1YWw7Cj4+Cj4+IC0gICAgICAg cmV0ID0gdHRtX2JvX2ttYXAoYm8sIDAsIGJvLT5udW1fcGFnZXMsICZ2Ym8tPm1hcCk7Cj4+ICsg ICAgICAgcmV0ID0gdHRtX2JvX2ttYXAoYm8sIDAsIGJvLT5tZW0ubnVtX3BhZ2VzLCAmdmJvLT5t YXApOwo+PiAgICAgICAgICBpZiAocmV0KQo+PiAgICAgICAgICAgICAgICAgIERSTV9FUlJPUigi QnVmZmVyIG9iamVjdCBtYXAgZmFpbGVkOiAlZC5cbiIsIHJldCk7Cj4+Cj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jb3RhYmxlLmMgYi9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9jb3RhYmxlLmMKPj4gaW5kZXggOTg0ZDg4ODQzNTdkLi5hMDc3ZTQy MGQyZmYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NvdGFi bGUuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jb3RhYmxlLmMKPj4g QEAgLTQzMCw3ICs0MzAsNyBAQCBzdGF0aWMgaW50IHZtd19jb3RhYmxlX3Jlc2l6ZShzdHJ1Y3Qg dm13X3Jlc291cmNlICpyZXMsIHNpemVfdCBuZXdfc2l6ZSkKPj4gICAgICAgICAgICogRG8gYSBw YWdlIGJ5IHBhZ2UgY29weSBvZiBDT1RhYmxlcy4gVGhpcyBlbGltaW5hdGVzIHNsb3cgdm1hcCgp cy4KPj4gICAgICAgICAgICogVGhpcyBzaG91bGQgcmVhbGx5IGJlIGEgVFRNIHV0aWxpdHkuCj4+ ICAgICAgICAgICAqLwo+PiAtICAgICAgIGZvciAoaSA9IDA7IGkgPCBvbGRfYm8tPm51bV9wYWdl czsgKytpKSB7Cj4+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IG9sZF9iby0+bWVtLm51bV9wYWdl czsgKytpKSB7Cj4+ICAgICAgICAgICAgICAgICAgYm9vbCBkdW1teTsKPj4KPj4gICAgICAgICAg ICAgICAgICByZXQgPSB0dG1fYm9fa21hcChvbGRfYm8sIGksIDEsICZvbGRfbWFwKTsKPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYwo+PiBpbmRleCBlNjdlMmU4ZjZlNmYu LjcyYmQ2ZDk0MWQyNCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfZXhlY2J1Zi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNi dWYuYwo+PiBAQCAtMTA0Miw3ICsxMDQyLDcgQEAgc3RhdGljIGludCB2bXdfcXVlcnlfYm9fc3dp dGNoX3ByZXBhcmUoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKPj4KPj4gICAgICAgICAg aWYgKHVubGlrZWx5KG5ld19xdWVyeV9ibyAhPSBzd19jb250ZXh0LT5jdXJfcXVlcnlfYm8pKSB7 Cj4+Cj4+IC0gICAgICAgICAgICAgICBpZiAodW5saWtlbHkobmV3X3F1ZXJ5X2JvLT5iYXNlLm51 bV9wYWdlcyA+IDQpKSB7Cj4+ICsgICAgICAgICAgICAgICBpZiAodW5saWtlbHkobmV3X3F1ZXJ5 X2JvLT5iYXNlLm1lbS5udW1fcGFnZXMgPiA0KSkgewo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgVk1XX0RFQlVHX1VTRVIoIlF1ZXJ5IGJ1ZmZlciB0b28gbGFyZ2UuXG4iKTsKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+PiAgICAgICAgICAgICAgICAgIH0K Pj4gQEAgLTE1NDEsNyArMTU0MSw3IEBAIHN0YXRpYyBpbnQgdm13X2NtZF9kbWEoc3RydWN0IHZt d19wcml2YXRlICpkZXZfcHJpdiwKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+Pgo+ PiAgICAgICAgICAvKiBNYWtlIHN1cmUgRE1BIGRvZXNuJ3QgY3Jvc3MgQk8gYm91bmRhcmllcy4g Ki8KPj4gLSAgICAgICBib19zaXplID0gdm13X2JvLT5iYXNlLm51bV9wYWdlcyAqIFBBR0VfU0la RTsKPj4gKyAgICAgICBib19zaXplID0gdm13X2JvLT5iYXNlLnNpemU7Cj4+ICAgICAgICAgIGlm ICh1bmxpa2VseShjbWQtPmJvZHkuZ3Vlc3QucHRyLm9mZnNldCA+IGJvX3NpemUpKSB7Cj4+ICAg ICAgICAgICAgICAgICAgVk1XX0RFQlVHX1VTRVIoIkludmFsaWQgRE1BIG9mZnNldC5cbiIpOwo+ PiAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ21yaWRfbWFuYWdlci5jIGIvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfZ21yaWRfbWFuYWdlci5jCj4+IGluZGV4IDhmZTI2ZTMyZjkyMC4uMTc3 NDk2MGQxYjg5IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9n bXJpZF9tYW5hZ2VyLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ21y aWRfbWFuYWdlci5jCj4+IEBAIC02NCwyMCArNjQsMTkgQEAgc3RhdGljIGludCB2bXdfZ21yaWRf bWFuX2dldF9ub2RlKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+PiAgICAgICAg ICBzcGluX2xvY2soJmdtYW4tPmxvY2spOwo+Pgo+PiAgICAgICAgICBpZiAoZ21hbi0+bWF4X2dt cl9wYWdlcyA+IDApIHsKPj4gLSAgICAgICAgICAgICAgIGdtYW4tPnVzZWRfZ21yX3BhZ2VzICs9 IGJvLT5udW1fcGFnZXM7Cj4+ICsgICAgICAgICAgICAgICBnbWFuLT51c2VkX2dtcl9wYWdlcyAr PSBtZW0tPm51bV9wYWdlczsKPj4gICAgICAgICAgICAgICAgICBpZiAodW5saWtlbHkoZ21hbi0+ dXNlZF9nbXJfcGFnZXMgPiBnbWFuLT5tYXhfZ21yX3BhZ2VzKSkKPj4gICAgICAgICAgICAgICAg ICAgICAgICAgIGdvdG8gbm9zcGFjZTsKPj4gICAgICAgICAgfQo+Pgo+PiAgICAgICAgICBtZW0t Pm1tX25vZGUgPSBnbWFuOwo+PiAgICAgICAgICBtZW0tPnN0YXJ0ID0gaWQ7Cj4+IC0gICAgICAg bWVtLT5udW1fcGFnZXMgPSBiby0+bnVtX3BhZ2VzOwo+Pgo+PiAgICAgICAgICBzcGluX3VubG9j aygmZ21hbi0+bG9jayk7Cj4+ICAgICAgICAgIHJldHVybiAwOwo+Pgo+PiAgIG5vc3BhY2U6Cj4+ IC0gICAgICAgZ21hbi0+dXNlZF9nbXJfcGFnZXMgLT0gYm8tPm51bV9wYWdlczsKPj4gKyAgICAg ICBnbWFuLT51c2VkX2dtcl9wYWdlcyAtPSBtZW0tPm51bV9wYWdlczsKPj4gICAgICAgICAgc3Bp bl91bmxvY2soJmdtYW4tPmxvY2spOwo+PiAgICAgICAgICBpZGFfZnJlZSgmZ21hbi0+Z21yX2lk YSwgaWQpOwo+PiAgICAgICAgICByZXR1cm4gLUVOT1NQQzsKPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfa21zLmMKPj4gaW5kZXggYmM2N2YyYjkzMGUxLi4zNDdhZmY2MjAxZjYgMTAwNjQ0Cj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCj4+IEBAIC0xMjIwLDcgKzEyMjAsNyBAQCBz dGF0aWMgaW50IHZtd19rbXNfbmV3X2ZyYW1lYnVmZmVyX2JvKHN0cnVjdCB2bXdfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4+ICAgICAgICAgIGludCByZXQ7Cj4+Cj4+ICAgICAgICAgIHJlcXVlc3RlZF9z aXplID0gbW9kZV9jbWQtPmhlaWdodCAqIG1vZGVfY21kLT5waXRjaGVzWzBdOwo+PiAtICAgICAg IGlmICh1bmxpa2VseShyZXF1ZXN0ZWRfc2l6ZSA+IGJvLT5iYXNlLm51bV9wYWdlcyAqIFBBR0Vf U0laRSkpIHsKPj4gKyAgICAgICBpZiAodW5saWtlbHkocmVxdWVzdGVkX3NpemUgPiBiby0+YmFz ZS5zaXplKSkgewo+PiAgICAgICAgICAgICAgICAgIERSTV9FUlJPUigiU2NyZWVuIGJ1ZmZlciBv YmplY3Qgc2l6ZSBpcyB0b28gc21hbGwgIgo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAi Zm9yIHJlcXVlc3RlZCBtb2RlLlxuIik7Cj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5W QUw7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9wYWdlX2Rp cnR5LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9wYWdlX2RpcnR5LmMKPj4gaW5k ZXggMGI3NmIzZDE3ZDRjLi4wYTkwMGFmYzY2ZmYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X3BhZ2VfZGlydHkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9wYWdlX2RpcnR5LmMKPj4gQEAgLTIzMiw3ICsyMzIsNyBAQCB2b2lkIHZt d19ib19kaXJ0eV91bm1hcChzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibywKPj4gICBpbnQg dm13X2JvX2RpcnR5X2FkZChzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibykKPj4gICB7Cj4+ ICAgICAgICAgIHN0cnVjdCB2bXdfYm9fZGlydHkgKmRpcnR5ID0gdmJvLT5kaXJ0eTsKPj4gLSAg ICAgICBwZ29mZl90IG51bV9wYWdlcyA9IHZiby0+YmFzZS5udW1fcGFnZXM7Cj4+ICsgICAgICAg cGdvZmZfdCBudW1fcGFnZXMgPSB2Ym8tPmJhc2UubWVtLm51bV9wYWdlczsKPj4gICAgICAgICAg c2l6ZV90IHNpemUsIGFjY19zaXplOwo+PiAgICAgICAgICBpbnQgcmV0Owo+PiAgICAgICAgICBz dGF0aWMgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsKPj4gQEAgLTQxMyw3ICs0MTMs NyBAQCB2bV9mYXVsdF90IHZtd19ib192bV9ta3dyaXRlKHN0cnVjdCB2bV9mYXVsdCAqdm1mKQo+ PiAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+Cj4+ICAgICAgICAgIHBhZ2Vfb2Zmc2V0 ID0gdm1mLT5wZ29mZiAtIGRybV92bWFfbm9kZV9zdGFydCgmYm8tPmJhc2Uudm1hX25vZGUpOwo+ PiAtICAgICAgIGlmICh1bmxpa2VseShwYWdlX29mZnNldCA+PSBiby0+bnVtX3BhZ2VzKSkgewo+ PiArICAgICAgIGlmICh1bmxpa2VseShwYWdlX29mZnNldCA+PSBiby0+bWVtLm51bV9wYWdlcykp IHsKPj4gICAgICAgICAgICAgICAgICByZXQgPSBWTV9GQVVMVF9TSUdCVVM7Cj4+ICAgICAgICAg ICAgICAgICAgZ290byBvdXRfdW5sb2NrOwo+PiAgICAgICAgICB9Cj4+IEBAIC00NTYsNyArNDU2 LDcgQEAgdm1fZmF1bHRfdCB2bXdfYm9fdm1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCj4+ Cj4+ICAgICAgICAgICAgICAgICAgcGFnZV9vZmZzZXQgPSB2bWYtPnBnb2ZmIC0KPj4gICAgICAg ICAgICAgICAgICAgICAgICAgIGRybV92bWFfbm9kZV9zdGFydCgmYm8tPmJhc2Uudm1hX25vZGUp Owo+PiAtICAgICAgICAgICAgICAgaWYgKHBhZ2Vfb2Zmc2V0ID49IGJvLT5udW1fcGFnZXMgfHwK Pj4gKyAgICAgICAgICAgICAgIGlmIChwYWdlX29mZnNldCA+PSBiby0+bWVtLm51bV9wYWdlcyB8 fAo+PiAgICAgICAgICAgICAgICAgICAgICB2bXdfcmVzb3VyY2VzX2NsZWFuKHZibywgcGFnZV9v ZmZzZXQsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9v ZmZzZXQgKyBQQUdFX1NJWkUsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmFsbG93ZWRfcHJlZmF1bHQpKSB7Cj4+IEBAIC01MzEsNyArNTMxLDcgQEAgdm1fZmF1 bHRfdCB2bXdfYm9fdm1faHVnZV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwKPj4KPj4gICAg ICAgICAgICAgICAgICBwYWdlX29mZnNldCA9IHZtZi0+cGdvZmYgLQo+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgZHJtX3ZtYV9ub2RlX3N0YXJ0KCZiby0+YmFzZS52bWFfbm9kZSk7Cj4+IC0g ICAgICAgICAgICAgICBpZiAocGFnZV9vZmZzZXQgPj0gYm8tPm51bV9wYWdlcyB8fAo+PiArICAg ICAgICAgICAgICAgaWYgKHBhZ2Vfb2Zmc2V0ID49IGJvLT5tZW0ubnVtX3BhZ2VzIHx8Cj4+ICAg ICAgICAgICAgICAgICAgICAgIHZtd19yZXNvdXJjZXNfY2xlYW4odmJvLCBwYWdlX29mZnNldCwK Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX29mZnNldCAr IFBBR0VfU0laRSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm YWxsb3dlZF9wcmVmYXVsdCkpIHsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNv dXJjZS5jCj4+IGluZGV4IDAwYjUzNTgzMWE3YS4uODRlZDgzNzZjZDgxIDEwMDY0NAo+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMKPj4gQEAgLTM2MCw3ICszNjAsNyBA QCBzdGF0aWMgaW50IHZtd19yZXNvdXJjZV9idWZfYWxsb2Moc3RydWN0IHZtd19yZXNvdXJjZSAq cmVzLAo+PiAgICAgICAgICBpbnQgcmV0Owo+Pgo+PiAgICAgICAgICBpZiAobGlrZWx5KHJlcy0+ YmFja3VwKSkgewo+PiAtICAgICAgICAgICAgICAgQlVHX09OKHJlcy0+YmFja3VwLT5iYXNlLm51 bV9wYWdlcyAqIFBBR0VfU0laRSA8IHNpemUpOwo+PiArICAgICAgICAgICAgICAgQlVHX09OKHJl cy0+YmFja3VwLT5iYXNlLnNpemUgPCBzaXplKTsKPj4gICAgICAgICAgICAgICAgICByZXR1cm4g MDsKPj4gICAgICAgICAgfQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfc2hhZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zaGFkZXIu Ywo+PiBpbmRleCBmMzI4YWE1ODM5YTIuLmM3MjIwYTc3MGJjNSAxMDA2NDQKPj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMKPj4gQEAgLTg1Niw4ICs4NTYsNyBAQCBzdGF0aWMg aW50IHZtd19zaGFkZXJfZGVmaW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZV9wcml2LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsK Pj4gICAgICAgICAgICAgICAgICB9Cj4+Cj4+IC0gICAgICAgICAgICAgICBpZiAoKHU2NClidWZm ZXItPmJhc2UubnVtX3BhZ2VzICogUEFHRV9TSVpFIDwKPj4gLSAgICAgICAgICAgICAgICAgICAo dTY0KXNpemUgKyAodTY0KW9mZnNldCkgewo+PiArICAgICAgICAgICAgICAgaWYgKCh1NjQpYnVm ZmVyLT5iYXNlLnNpemUgPCAodTY0KXNpemUgKyAodTY0KW9mZnNldCkgewo+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgVk1XX0RFQlVHX1VTRVIoIklsbGVnYWwgYnVmZmVyLSBvciBzaGFkZXIg c2l6ZS5cbiIpOwo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0X2JhZF9hcmc7Cj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMgYi9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9zdGR1LmMKPj4gaW5kZXggNWIwNGVjMDQ3ZWYzLi4zNjJhMTI3YjI0YmIg MTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N0ZHUuYwo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMKPj4gQEAgLTUxMiw3ICs1 MTIsNyBAQCBzdGF0aWMgdm9pZCB2bXdfc3RkdV9ib19maWZvX2NvbW1pdChzdHJ1Y3Qgdm13X2tt c19kaXJ0eSAqZGlydHkpCj4+ICAgICAgICAgIGNtZC0+Ym9keS5ob3N0Lm1pcG1hcCA9IDA7Cj4+ ICAgICAgICAgIGNtZC0+Ym9keS50cmFuc2ZlciA9IGRkaXJ0eS0+dHJhbnNmZXI7Cj4+ICAgICAg ICAgIHN1ZmZpeC0+c3VmZml4U2l6ZSA9IHNpemVvZigqc3VmZml4KTsKPj4gLSAgICAgICBzdWZm aXgtPm1heGltdW1PZmZzZXQgPSBkZGlydHktPmJ1Zi0+YmFzZS5udW1fcGFnZXMgKiBQQUdFX1NJ WkU7Cj4+ICsgICAgICAgc3VmZml4LT5tYXhpbXVtT2Zmc2V0ID0gZGRpcnR5LT5idWYtPmJhc2Uu c2l6ZTsKPj4KPj4gICAgICAgICAgaWYgKGRkaXJ0eS0+dHJhbnNmZXIgPT0gU1ZHQTNEX1dSSVRF X0hPU1RfVlJBTSkgewo+PiAgICAgICAgICAgICAgICAgIGJsaXRfc2l6ZSArPSBzaXplb2Yoc3Ry dWN0IHZtd19zdGR1X3VwZGF0ZSk7Cj4+IEBAIC0xMjM4LDcgKzEyMzgsNyBAQCBzdGF0aWMgdWlu dDMyX3Qgdm13X3N0ZHVfYm9fcG9wdWxhdGVfdXBkYXRlKHN0cnVjdCB2bXdfZHVfdXBkYXRlX3Bs YW5lICAqdXBkYXRlLAo+PiAgICAgICAgICB2ZmJibyA9IGNvbnRhaW5lcl9vZih1cGRhdGUtPnZm YiwgdHlwZW9mKCp2ZmJibyksIGJhc2UpOwo+Pgo+PiAgICAgICAgICBzdWZmaXgtPnN1ZmZpeFNp emUgPSBzaXplb2YoKnN1ZmZpeCk7Cj4+IC0gICAgICAgc3VmZml4LT5tYXhpbXVtT2Zmc2V0ID0g dmZiYm8tPmJ1ZmZlci0+YmFzZS5udW1fcGFnZXMgKiBQQUdFX1NJWkU7Cj4+ICsgICAgICAgc3Vm Zml4LT5tYXhpbXVtT2Zmc2V0ID0gdmZiYm8tPmJ1ZmZlci0+YmFzZS5zaXplOwo+Pgo+PiAgICAg ICAgICB2bXdfc3RkdV9wb3B1bGF0ZV91cGRhdGUoJnN1ZmZpeFsxXSwgc3RkdS0+YmFzZS51bml0 LCBiYi0+eDEsIGJiLT54MiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJi LT55MSwgYmItPnkyKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X3N1cmZhY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYwo+ PiBpbmRleCAzOTE0YmZlZTA1MzMuLjZhMDJiYWQ4NDE2YiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3VyZmFjZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYwo+PiBAQCAtMTU1MCw4ICsxNTUwLDcgQEAgdm13X2di X3N1cmZhY2VfZGVmaW5lX2ludGVybmFsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZXMtPmJhY2t1cCwKPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnVzZXJfc3JmLT5iYWNrdXBf YmFzZSk7Cj4+ICAgICAgICAgICAgICAgICAgaWYgKHJldCA9PSAwKSB7Cj4+IC0gICAgICAgICAg ICAgICAgICAgICAgIGlmIChyZXMtPmJhY2t1cC0+YmFzZS5udW1fcGFnZXMgKiBQQUdFX1NJWkUg PAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLT5iYWNrdXBfc2l6ZSkgewo+PiAr ICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLT5iYWNrdXAtPmJhc2Uuc2l6ZSA8IHJlcy0+ YmFja3VwX3NpemUpIHsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVk1XX0RF QlVHX1VTRVIoIlN1cmZhY2UgYmFja3VwIGJ1ZmZlciB0b28gc21hbGwuXG4iKTsKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdm13X2JvX3VucmVmZXJlbmNlKCZyZXMtPmJhY2t1 cCk7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7Cj4+ IEBAIC0xNjE0LDcgKzE2MTMsNyBAQCB2bXdfZ2Jfc3VyZmFjZV9kZWZpbmVfaW50ZXJuYWwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPj4gICAgICAgICAgaWYgKHJlcy0+YmFja3VwKSB7Cj4+ICAg ICAgICAgICAgICAgICAgcmVwLT5idWZmZXJfbWFwX2hhbmRsZSA9Cj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJnJlcy0+YmFja3VwLT5iYXNlLmJh c2Uudm1hX25vZGUpOwo+PiAtICAgICAgICAgICAgICAgcmVwLT5idWZmZXJfc2l6ZSA9IHJlcy0+ YmFja3VwLT5iYXNlLm51bV9wYWdlcyAqIFBBR0VfU0laRTsKPj4gKyAgICAgICAgICAgICAgIHJl cC0+YnVmZmVyX3NpemUgPSByZXMtPmJhY2t1cC0+YmFzZS5zaXplOwo+PiAgICAgICAgICAgICAg ICAgIHJlcC0+YnVmZmVyX2hhbmRsZSA9IGJhY2t1cF9oYW5kbGU7Cj4+ICAgICAgICAgIH0gZWxz ZSB7Cj4+ICAgICAgICAgICAgICAgICAgcmVwLT5idWZmZXJfbWFwX2hhbmRsZSA9IDA7Cj4+IEBA IC0xNjkyLDcgKzE2OTEsNyBAQCB2bXdfZ2Jfc3VyZmFjZV9yZWZlcmVuY2VfaW50ZXJuYWwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPj4gICAgICAgICAgcmVwLT5jcmVwLmJ1ZmZlcl9oYW5kbGUg PSBiYWNrdXBfaGFuZGxlOwo+PiAgICAgICAgICByZXAtPmNyZXAuYnVmZmVyX21hcF9oYW5kbGUg PQo+PiAgICAgICAgICAgICAgICAgIGRybV92bWFfbm9kZV9vZmZzZXRfYWRkcigmc3JmLT5yZXMu YmFja3VwLT5iYXNlLmJhc2Uudm1hX25vZGUpOwo+PiAtICAgICAgIHJlcC0+Y3JlcC5idWZmZXJf c2l6ZSA9IHNyZi0+cmVzLmJhY2t1cC0+YmFzZS5udW1fcGFnZXMgKiBQQUdFX1NJWkU7Cj4+ICsg ICAgICAgcmVwLT5jcmVwLmJ1ZmZlcl9zaXplID0gc3JmLT5yZXMuYmFja3VwLT5iYXNlLnNpemU7 Cj4+Cj4+ICAgICAgICAgIHJlcC0+Y3JlcS52ZXJzaW9uID0gZHJtX3Ztd19nYl9zdXJmYWNlX3Yx Owo+PiAgICAgICAgICByZXAtPmNyZXEuc3ZnYTNkX2ZsYWdzX3VwcGVyXzMyX2JpdHMgPQo+PiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCBiL2luY2x1ZGUvZHJtL3R0 bS90dG1fYm9fYXBpLmgKPj4gaW5kZXggNzliOTM2N2UwZmZkLi4wMzY3NWNlN2FiM2MgMTAwNjQ0 Cj4+IC0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKPj4gKysrIGIvaW5jbHVkZS9k cm0vdHRtL3R0bV9ib19hcGkuaAo+PiBAQCAtMTI1LDcgKzEyNSw3IEBAIHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCB7Cj4+ICAgICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2Owo+PiAg ICAgICAgICBlbnVtIHR0bV9ib190eXBlIHR5cGU7Cj4+ICAgICAgICAgIHZvaWQgKCpkZXN0cm95 KSAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICopOwo+PiAtICAgICAgIHVuc2lnbmVkIGxvbmcg bnVtX3BhZ2VzOwo+PiArICAgICAgIHVpbnQ2NF90IHNpemU7Cj4+ICAgICAgICAgIHNpemVfdCBh Y2Nfc2l6ZTsKPj4KPj4gICAgICAgICAgLyoqCj4+IEBAIC0zOTcsNyArMzk3LDcgQEAgc2l6ZV90 IHR0bV9ib19kbWFfYWNjX3NpemUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+Cj4+ICAg aW50IHR0bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ IC0gICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICB1aW50NjRfdCBzaXplLAo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVudW0gdHRtX2JvX3R5cGUgdHlwZSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50LAo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90IHBhZ2VfYWxpZ25tZW50LAo+PiBAQCAtNDQ1LDcgKzQ0NSw3IEBAIGludCB0 dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gICAgKiAt RVJFU1RBUlRTWVM6IEludGVycnVwdGVkIGJ5IHNpZ25hbCB3aGlsZSBzbGVlcGluZyB3YWl0aW5n IGZvciByZXNvdXJjZXMuCj4+ICAgICovCj4+ICAgaW50IHR0bV9ib19pbml0KHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAtICAgICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBzaXplLCBlbnVtIHR0bV9ib190eXBlIHR5cGUsCj4+ICsg ICAgICAgICAgICAgICB1aW50NjRfdCBzaXplLCBlbnVtIHR0bV9ib190eXBlIHR5cGUsCj4+ICAg ICAgICAgICAgICAgICAgc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNlbWVudCwKPj4gICAgICAg ICAgICAgICAgICB1aW50MzJfdCBwYWdlX2FsaWdubWVudCwgYm9vbCBpbnRlcnJ1YnRpYmxlLCBz aXplX3QgYWNjX3NpemUsCj4+ICAgICAgICAgICAgICAgICAgc3RydWN0IHNnX3RhYmxlICpzZywg c3RydWN0IGRtYV9yZXN2ICpyZXN2LAo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0 bV9yZXNvdXJjZS5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5oCj4+IGluZGV4IGY0 OGE3MGQzOWFjNS4uYWQ2ZGE5OTc3MGU5IDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL2RybS90dG0v dHRtX3Jlc291cmNlLmgKPj4gKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5oCj4+ IEBAIC0xNzEsNyArMTcxLDYgQEAgc3RydWN0IHR0bV9idXNfcGxhY2VtZW50IHsKPj4gICBzdHJ1 Y3QgdHRtX3Jlc291cmNlIHsKPj4gICAgICAgICAgdm9pZCAqbW1fbm9kZTsKPj4gICAgICAgICAg dW5zaWduZWQgbG9uZyBzdGFydDsKPj4gLSAgICAgICB1bnNpZ25lZCBsb25nIHNpemU7Cj4+ICAg ICAgICAgIHVuc2lnbmVkIGxvbmcgbnVtX3BhZ2VzOwo+PiAgICAgICAgICB1aW50MzJfdCBwYWdl X2FsaWdubWVudDsKPj4gICAgICAgICAgdWludDMyX3QgbWVtX3R5cGU7Cj4+IC0tCj4+IDIuMjUu MQo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwKPgo+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK