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 E48D4C4361B for ; Mon, 14 Dec 2020 20:35:03 +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 A2D5822286 for ; Mon, 14 Dec 2020 20:35:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A2D5822286 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 C20C188427; Mon, 14 Dec 2020 20:35:02 +0000 (UTC) Received: from mail-qt1-x844.google.com (mail-qt1-x844.google.com [IPv6:2607:f8b0:4864:20::844]) by gabe.freedesktop.org (Postfix) with ESMTPS id 60E9488427 for ; Mon, 14 Dec 2020 20:35:01 +0000 (UTC) Received: by mail-qt1-x844.google.com with SMTP id z3so12897903qtw.9 for ; Mon, 14 Dec 2020 12:35:01 -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=cOUUPCuwCCx7I+3IWW6EB1rHo9gqbBTJhrR8+M6hfM4=; b=KKypCWDRmQXJXzx8T6WoZXXaPLSNTlcghZq0NZ2D9WLEyVsy+vjetxma6o8BzeafmT KZMIOMebrKjU0CnaccPiqqmSph9YUf8kmViE710/5TqNqZWi1hRZsz/tCK3LvSccX98z Trn92IM+vhJc4pdJFf+QLnAke1sN6nl18VBjoqPUq/HWUJ6jgL1YyWpFpVoF8NkV5c6u n0h545yMZ1yBwfTEm2jsrn86lTY6nlksPJsYEk98wbC9Bk0Mwn6CXHtLXC0f0jncjvtc 4eKM7I8PGyWbA4phHXwCT6MXZFCOen4v7GG1vtuO9tNvavAeGE6CkMLCBLstRk044Jz7 u90Q== 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=cOUUPCuwCCx7I+3IWW6EB1rHo9gqbBTJhrR8+M6hfM4=; b=RsP9uo40uOy9hJMT4Xai2D2GdI2s3z44iSObtsyo8CF4rtvUGs1zUNZvT/es8UZc83 lpc4t9L6sffu7haPQ0KoNwHn8KCkT2mqCGUmcbCvS8yMOv9OqdZv9ayGBhPinMrbyT2P 0LgFfWz+SqH5KELWKO48jtbp5VM8t0sDb4ZeHJyrEzf75FwX3pqxilZNLEdsLpXKvOOw kGyFV+UR0uX2TYTb7dXm5fzlwa/A8iWTmI+LJOAVgkDWEZyC9JhHXtwYDXLdqYdGxuie ZNq5hoiA9g5Vn3B+XESjDdYAqJB4lfIS8ermlX7PR181m0oWDnXVEBG6QhrwHS9B8cTS 0c4Q== X-Gm-Message-State: AOAM532zm3nG4TJxojMZYmNc3ebZOFGhOvKo9NaIh1AHKQfe+mYVVQG8 ouj/kYrjcTnOBBksePi79HLIvRTnhmw= X-Google-Smtp-Source: ABdhPJzkREKZGsLNhOxi3wGGBwEx62PWBFCqJfFlR5eYRxaaNJwO1z76eOPlWXC+YCl94Y8uLxLdcA== X-Received: by 2002:aed:2c63:: with SMTP id f90mr32956480qtd.31.1607978099546; Mon, 14 Dec 2020 12:34:59 -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 w15sm13657251qta.95.2020.12.14.12.34.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 14 Dec 2020 12:34:58 -0800 (PST) Subject: Re: [PATCH] drm/ttm: cleanup BO size handling v3 To: Daniel Vetter References: <20201210145212.16214-1-christian.koenig@amd.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <06f780dd-302f-8fff-64ae-cb1752f3b4fe@gmail.com> Date: Mon, 14 Dec 2020 21:34:56 +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: 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" VHVybmVkIG91dCBJIGRpZCB0ZXN0IGl0LCBidXQgdGhlbiBmb3Jnb3QgdG8gZG8gZ2l0IGFkZCB0 byB0aGUgY2hhbmdlcyAKYmVmb3JlIHB1c2hpbmcuLi4uCgpJdCB3YXMgYSByZWFsbHkgbG9uZyBk YXkvd2Vlay95ZWFyIDopCgpDaHJpc3RpYW4uCgpBbSAxNC4xMi4yMCB1bSAxNzo1NSBzY2hyaWVi IERhbmllbCBWZXR0ZXI6Cj4gSSB0aGluayB5b3UgZm9yZ290IHRvIGNvbXBpbGUgdGVzdCB3aXRo IGFtZGtmZCA6LSkKPgo+IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRf Z3B1dm0uYzogSW4gZnVuY3Rpb24g4oCYYWRkX2JvX3RvX3Zt4oCZOgo+IGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYzo0NTY6Mzc6IGVycm9yOgo+IOKAmHN0 cnVjdCB0dG1fcmVzb3VyY2XigJkgaGFzIG5vIG1lbWJlciBuYW1lZCDigJhzaXpl4oCZCj4gICA0 NTYgfCAgdW5zaWduZWQgbG9uZyBib19zaXplID0gYm8tPnRiby5tZW0uc2l6ZTsKPiAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KPiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dwdXZtLmM6IEluIGZ1bmN0aW9uCj4g4oCYYW1kZ3B1 X2FtZGtmZF9ncHV2bV9mcmVlX21lbW9yeV9vZl9ncHXigJk6Cj4gZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jOjEyODQ6NDI6IGVycm9yOgo+IOKAmHN0cnVj dCB0dG1fcmVzb3VyY2XigJkgaGFzIG5vIG1lbWJlciBuYW1lZCDigJhzaXpl4oCZCj4gMTI4NCB8 ICB1bnNpZ25lZCBsb25nIGJvX3NpemUgPSBtZW0tPmJvLT50Ym8ubWVtLnNpemU7Cj4gICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KPiBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dwdXZtLmM6IEluIGZ1bmN0aW9uCj4g4oCY YW1kZ3B1X2FtZGtmZF9ncHV2bV9tYXBfbWVtb3J5X3RvX2dwdeKAmToKPiBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dwdXZtLmM6MTQwNToyMzogZXJyb3I6Cj4g4oCY c3RydWN0IHR0bV9yZXNvdXJjZeKAmSBoYXMgbm8gbWVtYmVyIG5hbWVkIOKAmHNpemXigJkKPiAx NDA1IHwgIGJvX3NpemUgPSBiby0+dGJvLm1lbS5zaXplOwo+ICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgIF4KPiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dw dXZtLmM6IEluIGZ1bmN0aW9uCj4g4oCYYW1kZ3B1X2FtZGtmZF9ncHV2bV91bm1hcF9tZW1vcnlf ZnJvbV9ncHXigJk6Cj4gZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9n cHV2bS5jOjE1MDk6NDI6IGVycm9yOgo+IOKAmHN0cnVjdCB0dG1fcmVzb3VyY2XigJkgaGFzIG5v IG1lbWJlciBuYW1lZCDigJhzaXpl4oCZCj4gMTUwOSB8ICB1bnNpZ25lZCBsb25nIGJvX3NpemUg PSBtZW0tPmJvLT50Ym8ubWVtLnNpemU7Cj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KPiBBbHNvIHdlIHJlYWxseSBuZWVkIGdpdGxhYiBDSSB0byBz dG9wIHRoaXMga2luZCBvZiBzdHVmZiAuLi4KPiAtRGFuaWVsCj4KPiBPbiBUaHUsIERlYyAxMCwg MjAyMCBhdCAzOjUyIFBNIENocmlzdGlhbiBLw7ZuaWcKPiA8Y2tvZW5pZy5sZWljaHR6dW1lcmtl bkBnbWFpbC5jb20+IHdyb3RlOgo+PiBCYXNlZCBvbiBhbiBpZGVhIGZyb20gRGF2ZSwgYnV0IGNs ZWFuZWQgdXAgYSBiaXQuCj4+Cj4+IFdlIGhhZCBtdWx0aXBsZSBmaWVsZHMgZm9yIGVzc2VudGlh bGx5IHRoZSBzYW1lIHRoaW5nLgo+Pgo+PiBOb3cgYm8tPmJhc2Uuc2l6ZSBpcyB0aGUgb3JpZ2lu YWwgc2l6ZSBvZiB0aGUgQk8gaW4KPj4gYXJiaXRyYXJ5IHVuaXRzLCB1c3VhbGx5IGJ5dGVzLgo+ Pgo+PiBiby0+bWVtLm51bV9wYWdlcyBpcyB0aGUgc2l6ZSBpbiBudW1iZXIgb2YgcGFnZXMgaW4g dGhlCj4+IHJlc291cmNlIGRvbWFpbiBvZiBiby0+bWVtLm1lbV90eXBlLgo+Pgo+PiB2MjogdXNl IHRoZSBHRU0gb2JqZWN0IHNpemUgaW5zdGVhZCBvZiB0aGUgQk8gc2l6ZQo+PiB2MzogZml4IHBy aW50a3MgaW4gc29tZSBwbGFjZXMKPj4KPj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5p ZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+PiBSZXZpZXdlZC1ieTogSHVhbmcgUnVpIDxy YXkuaHVhbmdAYW1kLmNvbT4gKHYxKQo+PiBBY2tlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVs LnZldHRlckBmZndsbC5jaD4KPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2RtYV9idWYuYyAgIHwgIDIgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfZ21jLmMgICAgICAgfCAgMiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9vYmplY3QuYyAgICB8ICAyICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X29iamVjdC5oICAgIHwgIDQgKy0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3RyYWNlLmggICAgIHwgIDIgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgICAgICAgfCAgNiArKy0tCj4+ICAgZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvbWVzX3YxMF8xLmMgICAgICAgIHwgIDIgKy0KPj4gICBkcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMgICAgICAgICAgfCAxMCArKystLS0KPj4gICBkcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuYyAgICAgfCAgOCArKy0tLQo+PiAg IGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfcHJpbWUuYyAgICAgICB8ICA0ICstLQo+ PiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MTdfZmVuY2UuYyAgICAgICAgICB8ICAyICst Cj4+ICAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9mZW5jZS5jICAgICAgICAgIHwgIDIg Ky0KPj4gICBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9vYmplY3QuaCAgICAgICAgICAgICAgfCAg MiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NzLmMgICAgICAgICAgICB8 ICAzICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMgICAgICAg IHwgMTMgKysrKy0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5o ICAgICAgICB8ICA0ICstLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ByaW1l LmMgICAgICAgICB8ICA0ICstLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3Ry YWNlLmggICAgICAgICB8ICAyICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f dHRtLmMgICAgICAgICAgIHwgIDIgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5j ICAgICAgICAgICAgICAgICAgfCAzNSArKysrKystLS0tLS0tLS0tLS0tCj4+ICAgZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jICAgICAgICAgICAgIHwgMTIgKysrLS0tLQo+PiAgIGRy aXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMgICAgICAgICAgICAgICB8ICA2ICsrLS0KPj4g ICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ PiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JsaXQuYyAgICAgICAgICB8ICA0ICst LQo+PiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMgICAgICAgICAgICB8ICA2 ICsrLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jb3RhYmxlLmMgICAgICAg fCAgMiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYyAgICAg ICB8ICA0ICstLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2dtcmlkX21hbmFn ZXIuYyB8ICA1ICsrLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jICAg ICAgICAgICB8ICAyICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcGFnZV9k aXJ0eS5jICAgIHwgIDggKystLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9y ZXNvdXJjZS5jICAgICAgfCAgMiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X3NoYWRlci5jICAgICAgICB8ICAzICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn Znhfc3RkdS5jICAgICAgICAgIHwgIDQgKy0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfc3VyZmFjZS5jICAgICAgIHwgIDcgKystLQo+PiAgIGluY2x1ZGUvZHJtL3R0bS90dG1f Ym9fYXBpLmggICAgICAgICAgICAgICAgICB8ICA5ICsrLS0tCj4+ICAgaW5jbHVkZS9kcm0vdHRt L3R0bV9yZXNvdXJjZS5oICAgICAgICAgICAgICAgIHwgIDEgLQo+PiAgIDM2IGZpbGVzIGNoYW5n ZWQsIDg0IGluc2VydGlvbnMoKyksIDEwNCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVmLmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZG1hX2J1Zi5jCj4+IGluZGV4IGU1OTE5ZWZjYTg3MC4u YzRjOTNmMTlkMjczIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZG1hX2J1Zi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9kbWFfYnVmLmMKPj4gQEAgLTI2OSw3ICsyNjksNyBAQCBzdGF0aWMgc3RydWN0IHNnX3RhYmxl ICphbWRncHVfZG1hX2J1Zl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLAo+ PiAgICAgICAgICBjYXNlIFRUTV9QTF9UVDoKPj4gICAgICAgICAgICAgICAgICBzZ3QgPSBkcm1f cHJpbWVfcGFnZXNfdG9fc2cob2JqLT5kZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvLT50Ym8udHRtLT5wYWdlcywKPj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiby0+dGJvLm51bV9wYWdlcyk7Cj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm8tPnRiby50dG0tPm51bV9w YWdlcyk7Cj4+ICAgICAgICAgICAgICAgICAgaWYgKElTX0VSUihzZ3QpKQo+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIHNndDsKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nbWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9nbWMuYwo+PiBpbmRleCAwNTZjYjg3ZDA5ZWEuLjUyYmNkMWI1NTgyZiAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dtYy5jCj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nbWMuYwo+PiBAQCAtMTIxLDcgKzEy MSw3IEBAIHVpbnQ2NF90IGFtZGdwdV9nbWNfYWdwX2FkZHIoc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICpibykKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0g YW1kZ3B1X3R0bV9hZGV2KGJvLT5iZGV2KTsKPj4KPj4gLSAgICAgICBpZiAoYm8tPm51bV9wYWdl cyAhPSAxIHx8IGJvLT50dG0tPmNhY2hpbmcgPT0gdHRtX2NhY2hlZCkKPj4gKyAgICAgICBpZiAo Ym8tPnR0bS0+bnVtX3BhZ2VzICE9IDEgfHwgYm8tPnR0bS0+Y2FjaGluZyA9PSB0dG1fY2FjaGVk KQo+PiAgICAgICAgICAgICAgICAgIHJldHVybiBBTURHUFVfQk9fSU5WQUxJRF9PRkZTRVQ7Cj4+ Cj4+ICAgICAgICAgIGlmIChiby0+dHRtLT5kbWFfYWRkcmVzc1swXSArIFBBR0VfU0laRSA+PSBh ZGV2LT5nbWMuYWdwX3NpemUpCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf b2JqZWN0LmMKPj4gaW5kZXggYzZjOTcyM2QzZDhhLi4zODFlY2M0Nzg4ZDUgMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwo+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPj4gQEAgLTc4Nyw3ICs3 ODcsNyBAQCBpbnQgYW1kZ3B1X2JvX2ttYXAoc3RydWN0IGFtZGdwdV9ibyAqYm8sIHZvaWQgKipw dHIpCj4+ICAgICAgICAgIGlmIChyIDwgMCkKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gcjsK Pj4KPj4gLSAgICAgICByID0gdHRtX2JvX2ttYXAoJmJvLT50Ym8sIDAsIGJvLT50Ym8ubnVtX3Bh Z2VzLCAmYm8tPmttYXApOwo+PiArICAgICAgIHIgPSB0dG1fYm9fa21hcCgmYm8tPnRibywgMCwg Ym8tPnRiby5tZW0ubnVtX3BhZ2VzLCAmYm8tPmttYXApOwo+PiAgICAgICAgICBpZiAocikKPj4g ICAgICAgICAgICAgICAgICByZXR1cm4gcjsKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9vYmplY3QuaAo+PiBpbmRleCBlZDQ3Y2JhYzRmNzUuLmE5OWE1Y2RlNDJkZCAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5o Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaAo+PiBA QCAtMTc0LDEyICsxNzQsMTIgQEAgc3RhdGljIGlubGluZSB2b2lkIGFtZGdwdV9ib191bnJlc2Vy dmUoc3RydWN0IGFtZGdwdV9ibyAqYm8pCj4+Cj4+ICAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBs b25nIGFtZGdwdV9ib19zaXplKHN0cnVjdCBhbWRncHVfYm8gKmJvKQo+PiAgIHsKPj4gLSAgICAg ICByZXR1cm4gYm8tPnRiby5udW1fcGFnZXMgPDwgUEFHRV9TSElGVDsKPj4gKyAgICAgICByZXR1 cm4gYm8tPnRiby5iYXNlLnNpemU7Cj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyBpbmxpbmUgdW5zaWdu ZWQgYW1kZ3B1X2JvX25ncHVfcGFnZXMoc3RydWN0IGFtZGdwdV9ibyAqYm8pCj4+ICAgewo+PiAt ICAgICAgIHJldHVybiAoYm8tPnRiby5udW1fcGFnZXMgPDwgUEFHRV9TSElGVCkgLyBBTURHUFVf R1BVX1BBR0VfU0laRTsKPj4gKyAgICAgICByZXR1cm4gYm8tPnRiby5iYXNlLnNpemUgLyBBTURH UFVfR1BVX1BBR0VfU0laRTsKPj4gICB9Cj4+Cj4+ICAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBh bWRncHVfYm9fZ3B1X3BhZ2VfYWxpZ25tZW50KHN0cnVjdCBhbWRncHVfYm8gKmJvKQo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3RyYWNlLmggYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHJhY2UuaAo+PiBpbmRleCBlZTk0ODBkMTRj YmMuLjIwNzE1ZGRiYjc0NiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3RyYWNlLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3RyYWNlLmgKPj4gQEAgLTEyNyw3ICsxMjcsNyBAQCBUUkFDRV9FVkVOVChhbWRncHVfYm9f Y3JlYXRlLAo+Pgo+PiAgICAgICAgICAgICAgVFBfZmFzdF9hc3NpZ24oCj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBfX2VudHJ5LT5ibyA9IGJvOwo+PiAtICAgICAgICAgICAgICAgICAg ICAgICAgICBfX2VudHJ5LT5wYWdlcyA9IGJvLT50Ym8ubnVtX3BhZ2VzOwo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICBfX2VudHJ5LT5wYWdlcyA9IGJvLT50Ym8ubWVtLm51bV9wYWdlczsK Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZW50cnktPnR5cGUgPSBiby0+dGJvLm1l bS5tZW1fdHlwZTsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZW50cnktPnByZWZl ciA9IGJvLT5wcmVmZXJyZWRfZG9tYWluczsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg IF9fZW50cnktPmFsbG93ID0gYm8tPmFsbG93ZWRfZG9tYWluczsKPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+PiBpbmRleCBlYzkzZDRmZGFiYmQuLjUzNDY4OTFhM2Y3 MyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5j Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+PiBAQCAt NjM2LDcgKzYzNiw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2JvX21vdmUoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywgYm9vbCBldmljdCwKPj4KPj4gICBvdXQ6Cj4+ICAgICAgICAgIC8qIHVw ZGF0ZSBzdGF0aXN0aWNzICovCj4+IC0gICAgICAgYXRvbWljNjRfYWRkKCh1NjQpYm8tPm51bV9w YWdlcyA8PCBQQUdFX1NISUZULCAmYWRldi0+bnVtX2J5dGVzX21vdmVkKTsKPj4gKyAgICAgICBh dG9taWM2NF9hZGQoYm8tPmJhc2Uuc2l6ZSwgJmFkZXYtPm51bV9ieXRlc19tb3ZlZCk7Cj4+ICAg ICAgICAgIGFtZGdwdV9ib19tb3ZlX25vdGlmeShibywgZXZpY3QsIG5ld19tZW0pOwo+PiAgICAg ICAgICByZXR1cm4gMDsKPj4gICB9Cj4+IEBAIC0yMTMxLDcgKzIxMzEsNyBAQCBpbnQgYW1kZ3B1 X2ZpbGxfYnVmZmVyKHN0cnVjdCBhbWRncHVfYm8gKmJvLAo+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIHI7Cj4+ICAgICAgICAgIH0KPj4KPj4gLSAgICAgICBudW1fcGFnZXMgPSBi by0+dGJvLm51bV9wYWdlczsKPj4gKyAgICAgICBudW1fcGFnZXMgPSBiby0+dGJvLm1lbS5udW1f cGFnZXM7Cj4+ICAgICAgICAgIG1tX25vZGUgPSBiby0+dGJvLm1lbS5tbV9ub2RlOwo+PiAgICAg ICAgICBudW1fbG9vcHMgPSAwOwo+PiAgICAgICAgICB3aGlsZSAobnVtX3BhZ2VzKSB7Cj4+IEBA IC0yMTYxLDcgKzIxNjEsNyBAQCBpbnQgYW1kZ3B1X2ZpbGxfYnVmZmVyKHN0cnVjdCBhbWRncHVf Ym8gKmJvLAo+PiAgICAgICAgICAgICAgICAgIH0KPj4gICAgICAgICAgfQo+Pgo+PiAtICAgICAg IG51bV9wYWdlcyA9IGJvLT50Ym8ubnVtX3BhZ2VzOwo+PiArICAgICAgIG51bV9wYWdlcyA9IGJv LT50Ym8ubWVtLm51bV9wYWdlczsKPj4gICAgICAgICAgbW1fbm9kZSA9IGJvLT50Ym8ubWVtLm1t X25vZGU7Cj4+Cj4+ICAgICAgICAgIHdoaWxlIChudW1fcGFnZXMpIHsKPj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21lc192MTBfMS5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvbWVzX3YxMF8xLmMKPj4gaW5kZXggOTg1ZTQ1NDQ2M2UxLi43ZjMwNjI5ZjIx YTIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21lc192MTBfMS5j Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21lc192MTBfMS5jCj4+IEBAIC01 NTQsNyArNTU0LDcgQEAgc3RhdGljIGludCBtZXNfdjEwXzFfYWxsb2NhdGVfZW9wX2J1ZihzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gcjsKPj4g ICAgICAgICAgfQo+Pgo+PiAtICAgICAgIG1lbXNldChlb3AsIDAsIGFkZXYtPm1lcy5lb3BfZ3B1 X29iai0+dGJvLm1lbS5zaXplKTsKPj4gKyAgICAgICBtZW1zZXQoZW9wLCAwLCBhZGV2LT5tZXMu ZW9wX2dwdV9vYmotPnRiby5iYXNlLnNpemUpOwo+Pgo+PiAgICAgICAgICBhbWRncHVfYm9fa3Vu bWFwKGFkZXYtPm1lcy5lb3BfZ3B1X29iaik7Cj4+ICAgICAgICAgIGFtZGdwdV9ib191bnJlc2Vy dmUoYWRldi0+bWVzLmVvcF9ncHVfb2JqKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L25vdXZlYXVfYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVf Ym8uYwo+PiBpbmRleCBiYzU0MmFjNGM0YjYuLmMxYTY3NWI4ZmM0MyAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYwo+PiBAQCAtNDczLDEwICs0NzMsMTAgQEAgbm91dmVh dV9ib19waW4oc3RydWN0IG5vdXZlYXVfYm8gKm52Ym8sIHVpbnQzMl90IGRvbWFpbiwgYm9vbCBj b250aWcpCj4+Cj4+ICAgICAgICAgIHN3aXRjaCAoYm8tPm1lbS5tZW1fdHlwZSkgewo+PiAgICAg ICAgICBjYXNlIFRUTV9QTF9WUkFNOgo+PiAtICAgICAgICAgICAgICAgZHJtLT5nZW0udnJhbV9h dmFpbGFibGUgLT0gYm8tPm1lbS5zaXplOwo+PiArICAgICAgICAgICAgICAgZHJtLT5nZW0udnJh bV9hdmFpbGFibGUgLT0gYm8tPmJhc2Uuc2l6ZTsKPj4gICAgICAgICAgICAgICAgICBicmVhazsK Pj4gICAgICAgICAgY2FzZSBUVE1fUExfVFQ6Cj4+IC0gICAgICAgICAgICAgICBkcm0tPmdlbS5n YXJ0X2F2YWlsYWJsZSAtPSBiby0+bWVtLnNpemU7Cj4+ICsgICAgICAgICAgICAgICBkcm0tPmdl bS5nYXJ0X2F2YWlsYWJsZSAtPSBiby0+YmFzZS5zaXplOwo+PiAgICAgICAgICAgICAgICAgIGJy ZWFrOwo+PiAgICAgICAgICBkZWZhdWx0Ogo+PiAgICAgICAgICAgICAgICAgIGJyZWFrOwo+PiBA QCAtNTA0LDEwICs1MDQsMTAgQEAgbm91dmVhdV9ib191bnBpbihzdHJ1Y3Qgbm91dmVhdV9ibyAq bnZibykKPj4gICAgICAgICAgaWYgKCFudmJvLT5iby5waW5fY291bnQpIHsKPj4gICAgICAgICAg ICAgICAgICBzd2l0Y2ggKGJvLT5tZW0ubWVtX3R5cGUpIHsKPj4gICAgICAgICAgICAgICAgICBj YXNlIFRUTV9QTF9WUkFNOgo+PiAtICAgICAgICAgICAgICAgICAgICAgICBkcm0tPmdlbS52cmFt X2F2YWlsYWJsZSArPSBiby0+bWVtLnNpemU7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGRy bS0+Z2VtLnZyYW1fYXZhaWxhYmxlICs9IGJvLT5iYXNlLnNpemU7Cj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKPj4gICAgICAgICAgICAgICAgICBjYXNlIFRUTV9QTF9UVDoKPj4g LSAgICAgICAgICAgICAgICAgICAgICAgZHJtLT5nZW0uZ2FydF9hdmFpbGFibGUgKz0gYm8tPm1l bS5zaXplOwo+PiArICAgICAgICAgICAgICAgICAgICAgICBkcm0tPmdlbS5nYXJ0X2F2YWlsYWJs ZSArPSBiby0+YmFzZS5zaXplOwo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+ ICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOwo+PiBAQCAtOTEzLDcgKzkxMyw3IEBAIG5vdXZlYXVfYm9fdm1fYmluZChzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdfcmVnLAo+PiAgICAg ICAgICAgICAgICAgIHJldHVybiAwOwo+Pgo+PiAgICAgICAgICBpZiAoZHJtLT5jbGllbnQuZGV2 aWNlLmluZm8uZmFtaWx5ID49IE5WX0RFVklDRV9JTkZPX1YwX0NFTFNJVVMpIHsKPj4gLSAgICAg ICAgICAgICAgICpuZXdfdGlsZSA9IG52MTBfYm9fc2V0X3RpbGluZyhkZXYsIG9mZnNldCwgbmV3 X3JlZy0+c2l6ZSwKPj4gKyAgICAgICAgICAgICAgICpuZXdfdGlsZSA9IG52MTBfYm9fc2V0X3Rp bGluZyhkZXYsIG9mZnNldCwgYm8tPmJhc2Uuc2l6ZSwKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbnZiby0+bW9kZSwgbnZiby0+emV0YSk7Cj4+ICAg ICAgICAgIH0KPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmMK Pj4gaW5kZXggYmNlYjQ4YTJkZmNhLi4xNzgzMWVlODk3ZWEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jCj4+IEBAIC0yODYsMTEgKzI4NiwxMSBAQCBu b3V2ZWF1X2NoZWNrX2JsX3NpemUoc3RydWN0IG5vdXZlYXVfZHJtICpkcm0sIHN0cnVjdCBub3V2 ZWF1X2JvICpudmJvLAo+Pgo+PiAgICAgICAgICBibF9zaXplID0gYncgKiBiaCAqICgxIDw8IHRp bGVfbW9kZSkgKiBnb2Jfc2l6ZTsKPj4KPj4gLSAgICAgICBEUk1fREVCVUdfS01TKCJvZmZzZXQ9 JXUgc3RyaWRlPSV1IGg9JXUgdGlsZV9tb2RlPTB4JTAyeCBidz0ldSBiaD0ldSBnb2Jfc2l6ZT0l dSBibF9zaXplPSVsbHUgc2l6ZT0lbHVcbiIsCj4+ICsgICAgICAgRFJNX0RFQlVHX0tNUygib2Zm c2V0PSV1IHN0cmlkZT0ldSBoPSV1IHRpbGVfbW9kZT0weCUwMnggYnc9JXUgYmg9JXUgZ29iX3Np emU9JXUgYmxfc2l6ZT0lbGx1IHNpemU9JXp1XG4iLAo+PiAgICAgICAgICAgICAgICAgICAgICAg IG9mZnNldCwgc3RyaWRlLCBoLCB0aWxlX21vZGUsIGJ3LCBiaCwgZ29iX3NpemUsIGJsX3NpemUs Cj4+IC0gICAgICAgICAgICAgICAgICAgICBudmJvLT5iby5tZW0uc2l6ZSk7Cj4+ICsgICAgICAg ICAgICAgICAgICAgICBudmJvLT5iby5iYXNlLnNpemUpOwo+Pgo+PiAtICAgICAgIGlmIChibF9z aXplICsgb2Zmc2V0ID4gbnZiby0+Ym8ubWVtLnNpemUpCj4+ICsgICAgICAgaWYgKGJsX3NpemUg KyBvZmZzZXQgPiBudmJvLT5iby5iYXNlLnNpemUpCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJu IC1FUkFOR0U7Cj4+Cj4+ICAgICAgICAgIHJldHVybiAwOwo+PiBAQCAtMzYzLDcgKzM2Myw3IEBA IG5vdXZlYXVfZnJhbWVidWZmZXJfbmV3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ICAgICAg ICAgICAgICAgICAgfSBlbHNlIHsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90 IHNpemUgPSBtb2RlX2NtZC0+cGl0Y2hlc1tpXSAqIGhlaWdodDsKPj4KPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgaWYgKHNpemUgKyBtb2RlX2NtZC0+b2Zmc2V0c1tpXSA+IG52Ym8tPmJvLm1l bS5zaXplKQo+PiArICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2l6ZSArIG1vZGVfY21kLT5v ZmZzZXRzW2ldID4gbnZiby0+Ym8uYmFzZS5zaXplKQo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gLUVSQU5HRTsKPj4gICAgICAgICAgICAgICAgICB9Cj4+ICAgICAg ICAgIH0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfcHJp bWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfcHJpbWUuYwo+PiBpbmRleCAy ZjE2YjUyNDkyODMuLjM0NzQ4ODY4NWY3NCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvbm91dmVhdV9wcmltZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L25vdXZlYXVfcHJpbWUuYwo+PiBAQCAtMzAsOSArMzAsOSBAQAo+PiAgIHN0cnVjdCBzZ190YWJs ZSAqbm91dmVhdV9nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAq b2JqKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IG5vdXZlYXVfYm8gKm52Ym8gPSBub3V2ZWF1 X2dlbV9vYmplY3Qob2JqKTsKPj4gLSAgICAgICBpbnQgbnBhZ2VzID0gbnZiby0+Ym8ubnVtX3Bh Z2VzOwo+Pgo+PiAtICAgICAgIHJldHVybiBkcm1fcHJpbWVfcGFnZXNfdG9fc2cob2JqLT5kZXYs IG52Ym8tPmJvLnR0bS0+cGFnZXMsIG5wYWdlcyk7Cj4+ICsgICAgICAgcmV0dXJuIGRybV9wcmlt ZV9wYWdlc190b19zZyhvYmotPmRldiwgbnZiby0+Ym8udHRtLT5wYWdlcywKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG52Ym8tPmJvLnR0bS0+bnVtX3BhZ2VzKTsKPj4g ICB9Cj4+Cj4+ICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpub3V2ZWF1X2dlbV9wcmltZV9pbXBv cnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L252MTdfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L252MTdfZmVuY2UuYwo+PiBpbmRleCAxMjUzZmRlYzcxMmQuLmIxY2Q4ZDdkZDg3ZCAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnYxN19mZW5jZS5jCj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MTdfZmVuY2UuYwo+PiBAQCAtODAsNyArODAsNyBAQCBu djE3X2ZlbmNlX2NvbnRleHRfbmV3KHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4pCj4+ICAg ICAgICAgIHN0cnVjdCBudjEwX2ZlbmNlX2NoYW4gKmZjdHg7Cj4+ICAgICAgICAgIHN0cnVjdCB0 dG1fcmVzb3VyY2UgKnJlZyA9ICZwcml2LT5iby0+Ym8ubWVtOwo+PiAgICAgICAgICB1MzIgc3Rh cnQgPSByZWctPnN0YXJ0ICogUEFHRV9TSVpFOwo+PiAtICAgICAgIHUzMiBsaW1pdCA9IHN0YXJ0 ICsgcmVnLT5zaXplIC0gMTsKPj4gKyAgICAgICB1MzIgbGltaXQgPSBzdGFydCArIHByaXYtPmJv LT5iby5iYXNlLnNpemUgLSAxOwo+PiAgICAgICAgICBpbnQgcmV0ID0gMDsKPj4KPj4gICAgICAg ICAgZmN0eCA9IGNoYW4tPmZlbmNlID0ga3phbGxvYyhzaXplb2YoKmZjdHgpLCBHRlBfS0VSTkVM KTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZmVuY2UuYyBi L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZmVuY2UuYwo+PiBpbmRleCA0NDcyMzhlM2Ni ZTcuLjE2MjU4MjY1MDVmNiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bnY1MF9mZW5jZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZmVuY2Uu Ywo+PiBAQCAtMzksNyArMzksNyBAQCBudjUwX2ZlbmNlX2NvbnRleHRfbmV3KHN0cnVjdCBub3V2 ZWF1X2NoYW5uZWwgKmNoYW4pCj4+ICAgICAgICAgIHN0cnVjdCBudjEwX2ZlbmNlX2NoYW4gKmZj dHg7Cj4+ICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKnJlZyA9ICZwcml2LT5iby0+Ym8u bWVtOwo+PiAgICAgICAgICB1MzIgc3RhcnQgPSByZWctPnN0YXJ0ICogUEFHRV9TSVpFOwo+PiAt ICAgICAgIHUzMiBsaW1pdCA9IHN0YXJ0ICsgcmVnLT5zaXplIC0gMTsKPj4gKyAgICAgICB1MzIg bGltaXQgPSBzdGFydCArIHByaXYtPmJvLT5iby5iYXNlLnNpemUgLSAxOwo+PiAgICAgICAgICBp bnQgcmV0Owo+Pgo+PiAgICAgICAgICBmY3R4ID0gY2hhbi0+ZmVuY2UgPSBremFsbG9jKHNpemVv ZigqZmN0eCksIEdGUF9LRVJORUwpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4 bC9xeGxfb2JqZWN0LmggYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9vYmplY3QuaAo+PiBpbmRl eCBlYmYyNGM5ZDJiZjIuLmU2MGE4Zjg4ZTIyNiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3F4bC9xeGxfb2JqZWN0LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2Jq ZWN0LmgKPj4gQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHF4bF9ib191bnJl c2VydmUoc3RydWN0IHF4bF9ibyAqYm8pCj4+Cj4+ICAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBs b25nIHF4bF9ib19zaXplKHN0cnVjdCBxeGxfYm8gKmJvKQo+PiAgIHsKPj4gLSAgICAgICByZXR1 cm4gYm8tPnRiby5udW1fcGFnZXMgPDwgUEFHRV9TSElGVDsKPj4gKyAgICAgICByZXR1cm4gYm8t PnRiby5iYXNlLnNpemU7Cj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyBpbmxpbmUgdTY0IHF4bF9ib19t bWFwX29mZnNldChzdHJ1Y3QgcXhsX2JvICpibykKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9j cy5jCj4+IGluZGV4IDIxY2UyZjk1MDJjMC4uNGYzNWMzMjk1N2JlIDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2NzLmMKPj4gQEAgLTQwMSw3ICs0MDEsOCBAQCBzdGF0aWMgaW50IGNt cF9zaXplX3NtYWxsZXJfZmlyc3Qodm9pZCAqcHJpdiwgc3RydWN0IGxpc3RfaGVhZCAqYSwKPj4g ICAgICAgICAgc3RydWN0IHJhZGVvbl9ib19saXN0ICpsYiA9IGxpc3RfZW50cnkoYiwgc3RydWN0 IHJhZGVvbl9ib19saXN0LCB0di5oZWFkKTsKPj4KPj4gICAgICAgICAgLyogU29ydCBBIGJlZm9y ZSBCIGlmIEEgaXMgc21hbGxlci4gKi8KPj4gLSAgICAgICByZXR1cm4gKGludClsYS0+cm9iai0+ dGJvLm51bV9wYWdlcyAtIChpbnQpbGItPnJvYmotPnRiby5udW1fcGFnZXM7Cj4+ICsgICAgICAg cmV0dXJuIChpbnQpbGEtPnJvYmotPnRiby5tZW0ubnVtX3BhZ2VzIC0KPj4gKyAgICAgICAgICAg ICAgIChpbnQpbGItPnJvYmotPnRiby5tZW0ubnVtX3BhZ2VzOwo+PiAgIH0KPj4KPj4gICAvKioK Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMKPj4gaW5kZXggYWI4MWUzNWNi MDYwLi45YTk5OTkzMGUzZGQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX29iamVjdC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29i amVjdC5jCj4+IEBAIC01NCwyMCArNTQsMTkgQEAgc3RhdGljIHZvaWQgcmFkZW9uX3VwZGF0ZV9t ZW1vcnlfdXNhZ2Uoc3RydWN0IHJhZGVvbl9ibyAqYm8sCj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBtZW1fdHlwZSwgaW50IHNpZ24pCj4+ICAgewo+ PiAgICAgICAgICBzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGJvLT5yZGV2Owo+PiAtICAg ICAgIHU2NCBzaXplID0gKHU2NCliby0+dGJvLm51bV9wYWdlcyA8PCBQQUdFX1NISUZUOwo+Pgo+ PiAgICAgICAgICBzd2l0Y2ggKG1lbV90eXBlKSB7Cj4+ICAgICAgICAgIGNhc2UgVFRNX1BMX1RU Ogo+PiAgICAgICAgICAgICAgICAgIGlmIChzaWduID4gMCkKPj4gLSAgICAgICAgICAgICAgICAg ICAgICAgYXRvbWljNjRfYWRkKHNpemUsICZyZGV2LT5ndHRfdXNhZ2UpOwo+PiArICAgICAgICAg ICAgICAgICAgICAgICBhdG9taWM2NF9hZGQoYm8tPnRiby5iYXNlLnNpemUsICZyZGV2LT5ndHRf dXNhZ2UpOwo+PiAgICAgICAgICAgICAgICAgIGVsc2UKPj4gLSAgICAgICAgICAgICAgICAgICAg ICAgYXRvbWljNjRfc3ViKHNpemUsICZyZGV2LT5ndHRfdXNhZ2UpOwo+PiArICAgICAgICAgICAg ICAgICAgICAgICBhdG9taWM2NF9zdWIoYm8tPnRiby5iYXNlLnNpemUsICZyZGV2LT5ndHRfdXNh Z2UpOwo+PiAgICAgICAgICAgICAgICAgIGJyZWFrOwo+PiAgICAgICAgICBjYXNlIFRUTV9QTF9W UkFNOgo+PiAgICAgICAgICAgICAgICAgIGlmIChzaWduID4gMCkKPj4gLSAgICAgICAgICAgICAg ICAgICAgICAgYXRvbWljNjRfYWRkKHNpemUsICZyZGV2LT52cmFtX3VzYWdlKTsKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgYXRvbWljNjRfYWRkKGJvLT50Ym8uYmFzZS5zaXplLCAmcmRldi0+ dnJhbV91c2FnZSk7Cj4+ICAgICAgICAgICAgICAgICAgZWxzZQo+PiAtICAgICAgICAgICAgICAg ICAgICAgICBhdG9taWM2NF9zdWIoc2l6ZSwgJnJkZXYtPnZyYW1fdXNhZ2UpOwo+PiArICAgICAg ICAgICAgICAgICAgICAgICBhdG9taWM2NF9zdWIoYm8tPnRiby5iYXNlLnNpemUsICZyZGV2LT52 cmFtX3VzYWdlKTsKPj4gICAgICAgICAgICAgICAgICBicmVhazsKPj4gICAgICAgICAgfQo+PiAg IH0KPj4gQEAgLTI1Niw3ICsyNTUsNyBAQCBpbnQgcmFkZW9uX2JvX2ttYXAoc3RydWN0IHJhZGVv bl9ibyAqYm8sIHZvaWQgKipwdHIpCj4+ICAgICAgICAgICAgICAgICAgfQo+PiAgICAgICAgICAg ICAgICAgIHJldHVybiAwOwo+PiAgICAgICAgICB9Cj4+IC0gICAgICAgciA9IHR0bV9ib19rbWFw KCZiby0+dGJvLCAwLCBiby0+dGJvLm51bV9wYWdlcywgJmJvLT5rbWFwKTsKPj4gKyAgICAgICBy ID0gdHRtX2JvX2ttYXAoJmJvLT50Ym8sIDAsIGJvLT50Ym8ubWVtLm51bV9wYWdlcywgJmJvLT5r bWFwKTsKPj4gICAgICAgICAgaWYgKHIpIHsKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gcjsK Pj4gICAgICAgICAgfQo+PiBAQCAtNjEwLDcgKzYwOSw3IEBAIGludCByYWRlb25fYm9fZ2V0X3N1 cmZhY2VfcmVnKHN0cnVjdCByYWRlb25fYm8gKmJvKQo+PiAgIG91dDoKPj4gICAgICAgICAgcmFk ZW9uX3NldF9zdXJmYWNlX3JlZyhyZGV2LCBpLCBiby0+dGlsaW5nX2ZsYWdzLCBiby0+cGl0Y2gs Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm8tPnRiby5tZW0uc3RhcnQgPDwg UEFHRV9TSElGVCwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvLT50Ym8ubnVt X3BhZ2VzIDw8IFBBR0VfU0hJRlQpOwo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym8tPnRiby5iYXNlLnNpemUpOwo+PiAgICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+Cj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuaCBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5oCj4+IGluZGV4IGQ2MDZlOWE5MzVlMy4u OTg5NmQ4MjMxZmU1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9vYmplY3QuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3Qu aAo+PiBAQCAtMTA5LDEyICsxMDksMTIgQEAgc3RhdGljIGlubGluZSB1NjQgcmFkZW9uX2JvX2dw dV9vZmZzZXQoc3RydWN0IHJhZGVvbl9ibyAqYm8pCj4+Cj4+ICAgc3RhdGljIGlubGluZSB1bnNp Z25lZCBsb25nIHJhZGVvbl9ib19zaXplKHN0cnVjdCByYWRlb25fYm8gKmJvKQo+PiAgIHsKPj4g LSAgICAgICByZXR1cm4gYm8tPnRiby5udW1fcGFnZXMgPDwgUEFHRV9TSElGVDsKPj4gKyAgICAg ICByZXR1cm4gYm8tPnRiby5iYXNlLnNpemU7Cj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyBpbmxpbmUg dW5zaWduZWQgcmFkZW9uX2JvX25ncHVfcGFnZXMoc3RydWN0IHJhZGVvbl9ibyAqYm8pCj4+ICAg ewo+PiAtICAgICAgIHJldHVybiAoYm8tPnRiby5udW1fcGFnZXMgPDwgUEFHRV9TSElGVCkgLyBS QURFT05fR1BVX1BBR0VfU0laRTsKPj4gKyAgICAgICByZXR1cm4gYm8tPnRiby5iYXNlLnNpemUg LyBSQURFT05fR1BVX1BBR0VfU0laRTsKPj4gICB9Cj4+Cj4+ICAgc3RhdGljIGlubGluZSB1bnNp Z25lZCByYWRlb25fYm9fZ3B1X3BhZ2VfYWxpZ25tZW50KHN0cnVjdCByYWRlb25fYm8gKmJvKQo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fcHJpbWUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ByaW1lLmMKPj4gaW5kZXggMDg4ZDM5YTUxYzBk Li4wYTA5ZGJhYmEyODkgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX3ByaW1lLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fcHJpbWUu Ywo+PiBAQCAtMzQsOSArMzQsOSBAQAo+PiAgIHN0cnVjdCBzZ190YWJsZSAqcmFkZW9uX2dlbV9w cmltZV9nZXRfc2dfdGFibGUoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCj4+ICAgewo+PiAg ICAgICAgICBzdHJ1Y3QgcmFkZW9uX2JvICpibyA9IGdlbV90b19yYWRlb25fYm8ob2JqKTsKPj4g LSAgICAgICBpbnQgbnBhZ2VzID0gYm8tPnRiby5udW1fcGFnZXM7Cj4+Cj4+IC0gICAgICAgcmV0 dXJuIGRybV9wcmltZV9wYWdlc190b19zZyhvYmotPmRldiwgYm8tPnRiby50dG0tPnBhZ2VzLCBu cGFnZXMpOwo+PiArICAgICAgIHJldHVybiBkcm1fcHJpbWVfcGFnZXNfdG9fc2cob2JqLT5kZXYs IGJvLT50Ym8udHRtLT5wYWdlcywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJvLT50Ym8udHRtLT5udW1fcGFnZXMpOwo+PiAgIH0KPj4KPj4gICBzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKnJhZGVvbl9nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90 cmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHJhY2UuaAo+PiBpbmRleCBj OTNmM2FiM2M0ZTMuLjE3MjljYjlhOTVjNSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fdHJhY2UuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl90cmFjZS5oCj4+IEBAIC0yMiw3ICsyMiw3IEBAIFRSQUNFX0VWRU5UKHJhZGVvbl9ib19j cmVhdGUsCj4+Cj4+ICAgICAgICAgICAgICBUUF9mYXN0X2Fzc2lnbigKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF9fZW50cnktPmJvID0gYm87Cj4+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgIF9fZW50cnktPnBhZ2VzID0gYm8tPnRiby5udW1fcGFnZXM7Cj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgIF9fZW50cnktPnBhZ2VzID0gYm8tPnRiby5tZW0ubnVtX3BhZ2VzOwo+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKPj4gICAgICAgICAgICAgIFRQX3ByaW50 aygiYm89JXAsIHBhZ2VzPSV1IiwgX19lbnRyeS0+Ym8sIF9fZW50cnktPnBhZ2VzKQo+PiAgICk7 Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jCj4+IGluZGV4IGEzNDMyYzYzNDNiYS4u ZWEzNjVhYzZmNGYxIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl90dG0uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYwo+PiBA QCAtMjc0LDcgKzI3NCw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX2JvX21vdmUoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywgYm9vbCBldmljdCwKPj4KPj4gICBvdXQ6Cj4+ICAgICAgICAgIC8q IHVwZGF0ZSBzdGF0aXN0aWNzICovCj4+IC0gICAgICAgYXRvbWljNjRfYWRkKCh1NjQpYm8tPm51 bV9wYWdlcyA8PCBQQUdFX1NISUZULCAmcmRldi0+bnVtX2J5dGVzX21vdmVkKTsKPj4gKyAgICAg ICBhdG9taWM2NF9hZGQoYm8tPmJhc2Uuc2l6ZSwgJnJkZXYtPm51bV9ieXRlc19tb3ZlZCk7Cj4+ ICAgICAgICAgIHJhZGVvbl9ib19tb3ZlX25vdGlmeShibywgZXZpY3QsIG5ld19tZW0pOwo+PiAg ICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v dHRtL3R0bV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+PiBpbmRleCAwMmNj NWQyNDdjMGQuLjIxOTZlM2QzZWYyOSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0 bS90dG1fYm8uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4+IEBAIC03 Miw5ICs3Miw5IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19tZW1fc3BhY2VfZGVidWcoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibywKPj4gICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5h Z2VyICptYW47Cj4+ICAgICAgICAgIGludCBpLCBtZW1fdHlwZTsKPj4KPj4gLSAgICAgICBkcm1f cHJpbnRmKCZwLCAiTm8gc3BhY2UgZm9yICVwICglbHUgcGFnZXMsICVsdUssICVsdU0pXG4iLAo+ PiAtICAgICAgICAgICAgICAgICAgYm8sIGJvLT5tZW0ubnVtX3BhZ2VzLCBiby0+bWVtLnNpemUg Pj4gMTAsCj4+IC0gICAgICAgICAgICAgICAgICBiby0+bWVtLnNpemUgPj4gMjApOwo+PiArICAg ICAgIGRybV9wcmludGYoJnAsICJObyBzcGFjZSBmb3IgJXAgKCVsdSBwYWdlcywgJXp1SywgJXp1 TSlcbiIsCj4+ICsgICAgICAgICAgICAgICAgICBibywgYm8tPm1lbS5udW1fcGFnZXMsIGJvLT5i YXNlLnNpemUgPj4gMTAsCj4+ICsgICAgICAgICAgICAgICAgICBiby0+YmFzZS5zaXplID4+IDIw KTsKPj4gICAgICAgICAgZm9yIChpID0gMDsgaSA8IHBsYWNlbWVudC0+bnVtX3BsYWNlbWVudDsg aSsrKSB7Cj4+ICAgICAgICAgICAgICAgICAgbWVtX3R5cGUgPSBwbGFjZW1lbnQtPnBsYWNlbWVu dFtpXS5tZW1fdHlwZTsKPj4gICAgICAgICAgICAgICAgICBkcm1fcHJpbnRmKCZwLCAiICBwbGFj ZW1lbnRbJWRdPTB4JTA4WCAoJWQpXG4iLAo+PiBAQCAtMjY4LDcgKzI2OCw3IEBAIHN0YXRpYyBp bnQgdHRtX2JvX2hhbmRsZV9tb3ZlX21lbShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ PiAgICAgICAgICAgICAgICAgIGdvdG8gb3V0X2VycjsKPj4gICAgICAgICAgfQo+Pgo+PiAtICAg ICAgIGN0eC0+Ynl0ZXNfbW92ZWQgKz0gYm8tPm51bV9wYWdlcyA8PCBQQUdFX1NISUZUOwo+PiAr ICAgICAgIGN0eC0+Ynl0ZXNfbW92ZWQgKz0gYm8tPmJhc2Uuc2l6ZTsKPj4gICAgICAgICAgcmV0 dXJuIDA7Cj4+Cj4+ICAgb3V0X2VycjoKPj4gQEAgLTk4NSw4ICs5ODUsNyBAQCBzdGF0aWMgaW50 IHR0bV9ib19tb3ZlX2J1ZmZlcihzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pgo+PiAg ICAgICAgICBtZW1zZXQoJmhvcCwgMCwgc2l6ZW9mKGhvcCkpOwo+Pgo+PiAtICAgICAgIG1lbS5u dW1fcGFnZXMgPSBiby0+bnVtX3BhZ2VzOwo+PiAtICAgICAgIG1lbS5zaXplID0gbWVtLm51bV9w YWdlcyA8PCBQQUdFX1NISUZUOwo+PiArICAgICAgIG1lbS5udW1fcGFnZXMgPSBQQUdFX0FMSUdO KGJvLT5iYXNlLnNpemUpID4+IFBBR0VfU0hJRlQ7Cj4+ICAgICAgICAgIG1lbS5wYWdlX2FsaWdu bWVudCA9IGJvLT5tZW0ucGFnZV9hbGlnbm1lbnQ7Cj4+ICAgICAgICAgIG1lbS5idXMub2Zmc2V0 ID0gMDsKPj4gICAgICAgICAgbWVtLmJ1cy5hZGRyID0gTlVMTDsKPj4gQEAgLTExMDIsNyArMTEw MSw3IEBAIEVYUE9SVF9TWU1CT0wodHRtX2JvX3ZhbGlkYXRlKTsKPj4KPj4gICBpbnQgdHRtX2Jv X2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gLSAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIHNpemVfdCBzaXplLAo+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 MTQ1LDEwICsxMTMzLDggQEAgaW50IHR0bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICBJTklUX0xJU1RfSEVBRCgmYm8tPnN3YXApOwo+PiAg ICAgICAgICBiby0+YmRldiA9IGJkZXY7Cj4+ICAgICAgICAgIGJvLT50eXBlID0gdHlwZTsKPj4g LSAgICAgICBiby0+bnVtX3BhZ2VzID0gbnVtX3BhZ2VzOwo+PiAtICAgICAgIGJvLT5tZW0uc2l6 ZSA9IG51bV9wYWdlcyA8PCBQQUdFX1NISUZUOwo+PiAgICAgICAgICBiby0+bWVtLm1lbV90eXBl ID0gVFRNX1BMX1NZU1RFTTsKPj4gLSAgICAgICBiby0+bWVtLm51bV9wYWdlcyA9IGJvLT5udW1f cGFnZXM7Cj4+ICsgICAgICAgYm8tPm1lbS5udW1fcGFnZXMgPSBQQUdFX0FMSUdOKHNpemUpID4+ IFBBR0VfU0hJRlQ7Cj4+ICAgICAgICAgIGJvLT5tZW0ubW1fbm9kZSA9IE5VTEw7Cj4+ICAgICAg ICAgIGJvLT5tZW0ucGFnZV9hbGlnbm1lbnQgPSBwYWdlX2FsaWdubWVudDsKPj4gICAgICAgICAg Ym8tPm1lbS5idXMub2Zmc2V0ID0gMDsKPj4gQEAgLTExNjYsOSArMTE1MiwxMCBAQCBpbnQgdHRt X2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAg IH0KPj4gICAgICAgICAgaWYgKCF0dG1fYm9fdXNlc19lbWJlZGRlZF9nZW1fb2JqZWN0KGJvKSkg ewo+PiAgICAgICAgICAgICAgICAgIC8qCj4+IC0gICAgICAgICAgICAgICAgKiBiby5nZW0gaXMg bm90IGluaXRpYWxpemVkLCBzbyB3ZSBoYXZlIHRvIHNldHVwIHRoZQo+PiArICAgICAgICAgICAg ICAgICogYm8uYmFzZSBpcyBub3QgaW5pdGlhbGl6ZWQsIHNvIHdlIGhhdmUgdG8gc2V0dXAgdGhl Cj4+ICAgICAgICAgICAgICAgICAgICogc3RydWN0IGVsZW1lbnRzIHdlIHdhbnQgdXNlIHJlZ2Fy ZGxlc3MuCj4+ICAgICAgICAgICAgICAgICAgICovCj4+ICsgICAgICAgICAgICAgICBiby0+YmFz ZS5zaXplID0gc2l6ZTsKPj4gICAgICAgICAgICAgICAgICBkbWFfcmVzdl9pbml0KCZiby0+YmFz ZS5fcmVzdik7Cj4+ICAgICAgICAgICAgICAgICAgZHJtX3ZtYV9ub2RlX3Jlc2V0KCZiby0+YmFz ZS52bWFfbm9kZSk7Cj4+ICAgICAgICAgIH0KPj4gQEAgLTEyMTAsNyArMTE5Nyw3IEBAIEVYUE9S VF9TWU1CT0wodHRtX2JvX2luaXRfcmVzZXJ2ZWQpOwo+Pgo+PiAgIGludCB0dG1fYm9faW5pdChz dHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAtICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzaXpl LAo+PiArICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCj4+ICAgICAgICAgICAgICAgICAgZW51 bSB0dG1fYm9fdHlwZSB0eXBlLAo+PiAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcGxhY2Vt ZW50ICpwbGFjZW1lbnQsCj4+ICAgICAgICAgICAgICAgICAgdWludDMyX3QgcGFnZV9hbGlnbm1l bnQsCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgYi9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKPj4gaW5kZXggNWJiYzEzMzlkMjhlLi4z OThkNTAxM2ZjMzkgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0 aWwuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKPj4gQEAgLTQz MSw5ICs0MzEsOSBAQCBpbnQgdHRtX2JvX2ttYXAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bywKPj4KPj4gICAgICAgICAgbWFwLT52aXJ0dWFsID0gTlVMTDsKPj4gICAgICAgICAgbWFwLT5i byA9IGJvOwo+PiAtICAgICAgIGlmIChudW1fcGFnZXMgPiBiby0+bnVtX3BhZ2VzKQo+PiArICAg ICAgIGlmIChudW1fcGFnZXMgPiBiby0+bWVtLm51bV9wYWdlcykKPj4gICAgICAgICAgICAgICAg ICByZXR1cm4gLUVJTlZBTDsKPj4gLSAgICAgICBpZiAoc3RhcnRfcGFnZSA+IGJvLT5udW1fcGFn ZXMpCj4+ICsgICAgICAgaWYgKChzdGFydF9wYWdlICsgbnVtX3BhZ2VzKSA+IGJvLT5tZW0ubnVt X3BhZ2VzKQo+PiAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+Pgo+PiAgICAgICAg ICByZXQgPSB0dG1fbWVtX2lvX3Jlc2VydmUoYm8tPmJkZXYsICZiby0+bWVtKTsKPj4gQEAgLTQ4 NSwxNCArNDg1LDE0IEBAIGludCB0dG1fYm9fdm1hcChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLCBzdHJ1Y3QgZG1hX2J1Zl9tYXAgKm1hcCkKPj4KPj4gICAgICAgICAgaWYgKG1lbS0+YnVz LmlzX2lvbWVtKSB7Cj4+ICAgICAgICAgICAgICAgICAgdm9pZCBfX2lvbWVtICp2YWRkcl9pb21l bTsKPj4gLSAgICAgICAgICAgICAgIHNpemVfdCBzaXplID0gYm8tPm51bV9wYWdlcyA8PCBQQUdF X1NISUZUOwo+Pgo+PiAgICAgICAgICAgICAgICAgIGlmIChtZW0tPmJ1cy5hZGRyKQo+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgdmFkZHJfaW9tZW0gPSAodm9pZCBfX2lvbWVtICopbWVtLT5i dXMuYWRkcjsKPj4gICAgICAgICAgICAgICAgICBlbHNlIGlmIChtZW0tPmJ1cy5jYWNoaW5nID09 IHR0bV93cml0ZV9jb21iaW5lZCkKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgdmFkZHJfaW9t ZW0gPSBpb3JlbWFwX3djKG1lbS0+YnVzLm9mZnNldCwgc2l6ZSk7Cj4+ICsgICAgICAgICAgICAg ICAgICAgICAgIHZhZGRyX2lvbWVtID0gaW9yZW1hcF93YyhtZW0tPmJ1cy5vZmZzZXQsCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiby0+YmFzZS5z aXplKTsKPj4gICAgICAgICAgICAgICAgICBlbHNlCj4+IC0gICAgICAgICAgICAgICAgICAgICAg IHZhZGRyX2lvbWVtID0gaW9yZW1hcChtZW0tPmJ1cy5vZmZzZXQsIHNpemUpOwo+PiArICAgICAg ICAgICAgICAgICAgICAgICB2YWRkcl9pb21lbSA9IGlvcmVtYXAobWVtLT5idXMub2Zmc2V0LCBi by0+YmFzZS5zaXplKTsKPj4KPj4gICAgICAgICAgICAgICAgICBpZiAoIXZhZGRyX2lvbWVtKQo+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4+IEBAIC01MTcsNyAr NTE3LDcgQEAgaW50IHR0bV9ib192bWFwKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIHN0 cnVjdCBkbWFfYnVmX21hcCAqbWFwKQo+PiAgICAgICAgICAgICAgICAgICAqIG9yIHRvIG1ha2Ug dGhlIGJ1ZmZlciBvYmplY3QgbG9vayBjb250aWd1b3VzLgo+PiAgICAgICAgICAgICAgICAgICAq Lwo+PiAgICAgICAgICAgICAgICAgIHByb3QgPSB0dG1faW9fcHJvdChibywgbWVtLCBQQUdFX0tF Uk5FTCk7Cj4+IC0gICAgICAgICAgICAgICB2YWRkciA9IHZtYXAodHRtLT5wYWdlcywgYm8tPm51 bV9wYWdlcywgMCwgcHJvdCk7Cj4+ICsgICAgICAgICAgICAgICB2YWRkciA9IHZtYXAodHRtLT5w YWdlcywgdHRtLT5udW1fcGFnZXMsIDAsIHByb3QpOwo+PiAgICAgICAgICAgICAgICAgIGlmICgh dmFkZHIpCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPj4KPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMgYi9kcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9ib192bS5jCj4+IGluZGV4IDE0NGE0OTQwYjZiNi4uNmRjOTZjZjY2NzQ0 IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMKPj4gQEAgLTE5OCw3ICsxOTgsNyBAQCBz dGF0aWMgdm1fZmF1bHRfdCB0dG1fYm9fdm1faW5zZXJ0X2h1Z2Uoc3RydWN0IHZtX2ZhdWx0ICp2 bWYsCj4+Cj4+ICAgICAgICAgIC8qIEZhdWx0IHNob3VsZCBub3QgY3Jvc3MgYm8gYm91bmRhcnku ICovCj4+ICAgICAgICAgIHBhZ2Vfb2Zmc2V0ICY9IH4oZmF1bHRfcGFnZV9zaXplIC0gMSk7Cj4+ IC0gICAgICAgaWYgKHBhZ2Vfb2Zmc2V0ICsgZmF1bHRfcGFnZV9zaXplID4gYm8tPm51bV9wYWdl cykKPj4gKyAgICAgICBpZiAocGFnZV9vZmZzZXQgKyBmYXVsdF9wYWdlX3NpemUgPiBiby0+bWVt Lm51bV9wYWdlcykKPj4gICAgICAgICAgICAgICAgICBnb3RvIG91dF9mYWxsYmFjazsKPj4KPj4g ICAgICAgICAgaWYgKGJvLT5tZW0uYnVzLmlzX2lvbWVtKQo+PiBAQCAtMzA2LDcgKzMwNiw3IEBA IHZtX2ZhdWx0X3QgdHRtX2JvX3ZtX2ZhdWx0X3Jlc2VydmVkKHN0cnVjdCB2bV9mYXVsdCAqdm1m LAo+PiAgICAgICAgICBwYWdlX2xhc3QgPSB2bWFfcGFnZXModm1hKSArIHZtYS0+dm1fcGdvZmYg LQo+PiAgICAgICAgICAgICAgICAgIGRybV92bWFfbm9kZV9zdGFydCgmYm8tPmJhc2Uudm1hX25v ZGUpOwo+Pgo+PiAtICAgICAgIGlmICh1bmxpa2VseShwYWdlX29mZnNldCA+PSBiby0+bnVtX3Bh Z2VzKSkKPj4gKyAgICAgICBpZiAodW5saWtlbHkocGFnZV9vZmZzZXQgPj0gYm8tPm1lbS5udW1f cGFnZXMpKQo+PiAgICAgICAgICAgICAgICAgIHJldHVybiBWTV9GQVVMVF9TSUdCVVM7Cj4+Cj4+ ICAgICAgICAgIHByb3QgPSB0dG1faW9fcHJvdChibywgJmJvLT5tZW0sIHByb3QpOwo+PiBAQCAt NDY5LDcgKzQ2OSw3IEBAIGludCB0dG1fYm9fdm1fYWNjZXNzKHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIsCj4+ICAgICAgICAgICAgICAgICAgIDw8IFBBR0Vf U0hJRlQpOwo+PiAgICAgICAgICBpbnQgcmV0Owo+Pgo+PiAtICAgICAgIGlmIChsZW4gPCAxIHx8 IChvZmZzZXQgKyBsZW4pID4+IFBBR0VfU0hJRlQgPiBiby0+bnVtX3BhZ2VzKQo+PiArICAgICAg IGlmIChsZW4gPCAxIHx8IChvZmZzZXQgKyBsZW4pID4+IFBBR0VfU0hJRlQgPiBiby0+bWVtLm51 bV9wYWdlcykKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTzsKPj4KPj4gICAgICAgICAg cmV0ID0gdHRtX2JvX3Jlc2VydmUoYm8sIHRydWUsIGZhbHNlLCBOVUxMKTsKPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV90dC5jCj4+IGluZGV4IDc3YmE3ODQ0MjVkZC4uN2Y3NWExMzE2M2YwIDEwMDY0NAo+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX3R0LmMKPj4gQEAgLTEyOSw3ICsxMjksNyBAQCBzdGF0aWMgdm9pZCB0dG1fdHRfaW5p dF9maWVsZHMoc3RydWN0IHR0bV90dCAqdHRtLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90IHBhZ2VfZmxhZ3MsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZW51bSB0dG1fY2FjaGluZyBjYWNoaW5nKQo+PiAgIHsKPj4gLSAgICAgICB0dG0tPm51 bV9wYWdlcyA9IGJvLT5udW1fcGFnZXM7Cj4+ICsgICAgICAgdHRtLT5udW1fcGFnZXMgPSBQQUdF X0FMSUdOKGJvLT5iYXNlLnNpemUpID4+IFBBR0VfU0hJRlQ7Cj4+ICAgICAgICAgIHR0bS0+Y2Fj aGluZyA9IHR0bV9jYWNoZWQ7Cj4+ICAgICAgICAgIHR0bS0+cGFnZV9mbGFncyA9IHBhZ2VfZmxh Z3M7Cj4+ICAgICAgICAgIHR0bS0+ZG1hX2FkZHJlc3MgPSBOVUxMOwo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYmxpdC5jIGIvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfYmxpdC5jCj4+IGluZGV4IGYyMTg4MWUwODdkYi4uOWYyNzc5ZGRjZjA4IDEw MDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9ibGl0LmMKPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYmxpdC5jCj4+IEBAIC00ODIsOCArNDgy LDggQEAgaW50IHZtd19ib19jcHVfYmxpdChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmRzdCwK Pj4gICAgICAgICAgZC5zcmNfYWRkciA9IE5VTEw7Cj4+ICAgICAgICAgIGQuZHN0X3BhZ2VzID0g ZHN0LT50dG0tPnBhZ2VzOwo+PiAgICAgICAgICBkLnNyY19wYWdlcyA9IHNyYy0+dHRtLT5wYWdl czsKPj4gLSAgICAgICBkLmRzdF9udW1fcGFnZXMgPSBkc3QtPm51bV9wYWdlczsKPj4gLSAgICAg ICBkLnNyY19udW1fcGFnZXMgPSBzcmMtPm51bV9wYWdlczsKPj4gKyAgICAgICBkLmRzdF9udW1f cGFnZXMgPSBkc3QtPm1lbS5udW1fcGFnZXM7Cj4+ICsgICAgICAgZC5zcmNfbnVtX3BhZ2VzID0g c3JjLT5tZW0ubnVtX3BhZ2VzOwo+PiAgICAgICAgICBkLmRzdF9wcm90ID0gdHRtX2lvX3Byb3Qo ZHN0LCAmZHN0LT5tZW0sIFBBR0VfS0VSTkVMKTsKPj4gICAgICAgICAgZC5zcmNfcHJvdCA9IHR0 bV9pb19wcm90KHNyYywgJnNyYy0+bWVtLCBQQUdFX0tFUk5FTCk7Cj4+ICAgICAgICAgIGQuZGlm ZiA9IGRpZmY7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9i by5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYm8uYwo+PiBpbmRleCAyNjNkNzZh ZTQzZjAuLjYzZGJjNDRlZWJlMCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfYm8uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5j Cj4+IEBAIC0yMjMsNyArMjIzLDcgQEAgaW50IHZtd19ib19waW5faW5fc3RhcnRfb2ZfdnJhbShz dHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAo+PiAgICAgICAgICB1aW50MzJfdCBuZXdfZmxh Z3M7Cj4+Cj4+ICAgICAgICAgIHBsYWNlID0gdm13X3ZyYW1fcGxhY2VtZW50LnBsYWNlbWVudFsw XTsKPj4gLSAgICAgICBwbGFjZS5scGZuID0gYm8tPm51bV9wYWdlczsKPj4gKyAgICAgICBwbGFj ZS5scGZuID0gYm8tPm1lbS5udW1fcGFnZXM7Cj4+ICAgICAgICAgIHBsYWNlbWVudC5udW1fcGxh Y2VtZW50ID0gMTsKPj4gICAgICAgICAgcGxhY2VtZW50LnBsYWNlbWVudCA9ICZwbGFjZTsKPj4g ICAgICAgICAgcGxhY2VtZW50Lm51bV9idXN5X3BsYWNlbWVudCA9IDE7Cj4+IEBAIC0yNDQsNyAr MjQ0LDcgQEAgaW50IHZtd19ib19waW5faW5fc3RhcnRfb2ZfdnJhbShzdHJ1Y3Qgdm13X3ByaXZh dGUgKmRldl9wcml2LAo+PiAgICAgICAgICAgKiB0aGF0IHNpdHVhdGlvbi4KPj4gICAgICAgICAg ICovCj4+ICAgICAgICAgIGlmIChiby0+bWVtLm1lbV90eXBlID09IFRUTV9QTF9WUkFNICYmCj4+ IC0gICAgICAgICAgIGJvLT5tZW0uc3RhcnQgPCBiby0+bnVtX3BhZ2VzICYmCj4+ICsgICAgICAg ICAgIGJvLT5tZW0uc3RhcnQgPCBiby0+bWVtLm51bV9wYWdlcyAmJgo+PiAgICAgICAgICAgICAg Ym8tPm1lbS5zdGFydCA+IDAgJiYKPj4gICAgICAgICAgICAgIGJ1Zi0+YmFzZS5waW5fY291bnQg PT0gMCkgewo+PiAgICAgICAgICAgICAgICAgIGN0eC5pbnRlcnJ1cHRpYmxlID0gZmFsc2U7Cj4+ IEBAIC0zOTEsNyArMzkxLDcgQEAgdm9pZCAqdm13X2JvX21hcF9hbmRfY2FjaGUoc3RydWN0IHZt d19idWZmZXJfb2JqZWN0ICp2Ym8pCj4+ICAgICAgICAgIGlmICh2aXJ0dWFsKQo+PiAgICAgICAg ICAgICAgICAgIHJldHVybiB2aXJ0dWFsOwo+Pgo+PiAtICAgICAgIHJldCA9IHR0bV9ib19rbWFw KGJvLCAwLCBiby0+bnVtX3BhZ2VzLCAmdmJvLT5tYXApOwo+PiArICAgICAgIHJldCA9IHR0bV9i b19rbWFwKGJvLCAwLCBiby0+bWVtLm51bV9wYWdlcywgJnZiby0+bWFwKTsKPj4gICAgICAgICAg aWYgKHJldCkKPj4gICAgICAgICAgICAgICAgICBEUk1fRVJST1IoIkJ1ZmZlciBvYmplY3QgbWFw IGZhaWxlZDogJWQuXG4iLCByZXQpOwo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfY290YWJsZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf Y290YWJsZS5jCj4+IGluZGV4IDk4NGQ4ODg0MzU3ZC4uYTA3N2U0MjBkMmZmIDEwMDY0NAo+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jb3RhYmxlLmMKPj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY290YWJsZS5jCj4+IEBAIC00MzAsNyArNDMwLDcg QEAgc3RhdGljIGludCB2bXdfY290YWJsZV9yZXNpemUoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVz LCBzaXplX3QgbmV3X3NpemUpCj4+ICAgICAgICAgICAqIERvIGEgcGFnZSBieSBwYWdlIGNvcHkg b2YgQ09UYWJsZXMuIFRoaXMgZWxpbWluYXRlcyBzbG93IHZtYXAoKXMuCj4+ICAgICAgICAgICAq IFRoaXMgc2hvdWxkIHJlYWxseSBiZSBhIFRUTSB1dGlsaXR5Lgo+PiAgICAgICAgICAgKi8KPj4g LSAgICAgICBmb3IgKGkgPSAwOyBpIDwgb2xkX2JvLT5udW1fcGFnZXM7ICsraSkgewo+PiArICAg ICAgIGZvciAoaSA9IDA7IGkgPCBvbGRfYm8tPm1lbS5udW1fcGFnZXM7ICsraSkgewo+PiAgICAg ICAgICAgICAgICAgIGJvb2wgZHVtbXk7Cj4+Cj4+ICAgICAgICAgICAgICAgICAgcmV0ID0gdHRt X2JvX2ttYXAob2xkX2JvLCBpLCAxLCAmb2xkX21hcCk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9leGVjYnVmLmMKPj4gaW5kZXggZTY3ZTJlOGY2ZTZmLi42YzAxNjAwMTcyMWQgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYwo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMKPj4gQEAgLTEwNDIs NyArMTA0Miw3IEBAIHN0YXRpYyBpbnQgdm13X3F1ZXJ5X2JvX3N3aXRjaF9wcmVwYXJlKHN0cnVj dCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+Cj4+ICAgICAgICAgIGlmICh1bmxpa2VseShuZXdf cXVlcnlfYm8gIT0gc3dfY29udGV4dC0+Y3VyX3F1ZXJ5X2JvKSkgewo+Pgo+PiAtICAgICAgICAg ICAgICAgaWYgKHVubGlrZWx5KG5ld19xdWVyeV9iby0+YmFzZS5udW1fcGFnZXMgPiA0KSkgewo+ PiArICAgICAgICAgICAgICAgaWYgKHVubGlrZWx5KG5ld19xdWVyeV9iby0+YmFzZS5tZW0ubnVt X3BhZ2VzID4gNCkpIHsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIFZNV19ERUJVR19VU0VS KCJRdWVyeSBidWZmZXIgdG9vIGxhcmdlLlxuIik7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gLUVJTlZBTDsKPj4gICAgICAgICAgICAgICAgICB9Cj4+IEBAIC0xNTQxLDcgKzE1 NDEsNyBAQCBzdGF0aWMgaW50IHZtd19jbWRfZG1hKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3By aXYsCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4KPj4gICAgICAgICAgLyogTWFr ZSBzdXJlIERNQSBkb2Vzbid0IGNyb3NzIEJPIGJvdW5kYXJpZXMuICovCj4+IC0gICAgICAgYm9f c2l6ZSA9IHZtd19iby0+YmFzZS5udW1fcGFnZXMgKiBQQUdFX1NJWkU7Cj4+ICsgICAgICAgYm9f c2l6ZSA9IHZtd19iby0+YmFzZS5iYXNlLnNpemU7Cj4+ICAgICAgICAgIGlmICh1bmxpa2VseShj bWQtPmJvZHkuZ3Vlc3QucHRyLm9mZnNldCA+IGJvX3NpemUpKSB7Cj4+ICAgICAgICAgICAgICAg ICAgVk1XX0RFQlVHX1VTRVIoIkludmFsaWQgRE1BIG9mZnNldC5cbiIpOwo+PiAgICAgICAgICAg ICAgICAgIHJldHVybiAtRUlOVkFMOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfZ21yaWRfbWFuYWdlci5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfZ21yaWRfbWFuYWdlci5jCj4+IGluZGV4IDhmZTI2ZTMyZjkyMC4uMTc3NDk2MGQxYjg5IDEw MDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9nbXJpZF9tYW5hZ2Vy LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ21yaWRfbWFuYWdlci5j Cj4+IEBAIC02NCwyMCArNjQsMTkgQEAgc3RhdGljIGludCB2bXdfZ21yaWRfbWFuX2dldF9ub2Rl KHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+PiAgICAgICAgICBzcGluX2xvY2so JmdtYW4tPmxvY2spOwo+Pgo+PiAgICAgICAgICBpZiAoZ21hbi0+bWF4X2dtcl9wYWdlcyA+IDAp IHsKPj4gLSAgICAgICAgICAgICAgIGdtYW4tPnVzZWRfZ21yX3BhZ2VzICs9IGJvLT5udW1fcGFn ZXM7Cj4+ICsgICAgICAgICAgICAgICBnbWFuLT51c2VkX2dtcl9wYWdlcyArPSBtZW0tPm51bV9w YWdlczsKPj4gICAgICAgICAgICAgICAgICBpZiAodW5saWtlbHkoZ21hbi0+dXNlZF9nbXJfcGFn ZXMgPiBnbWFuLT5tYXhfZ21yX3BhZ2VzKSkKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIGdv dG8gbm9zcGFjZTsKPj4gICAgICAgICAgfQo+Pgo+PiAgICAgICAgICBtZW0tPm1tX25vZGUgPSBn bWFuOwo+PiAgICAgICAgICBtZW0tPnN0YXJ0ID0gaWQ7Cj4+IC0gICAgICAgbWVtLT5udW1fcGFn ZXMgPSBiby0+bnVtX3BhZ2VzOwo+Pgo+PiAgICAgICAgICBzcGluX3VubG9jaygmZ21hbi0+bG9j ayk7Cj4+ICAgICAgICAgIHJldHVybiAwOwo+Pgo+PiAgIG5vc3BhY2U6Cj4+IC0gICAgICAgZ21h bi0+dXNlZF9nbXJfcGFnZXMgLT0gYm8tPm51bV9wYWdlczsKPj4gKyAgICAgICBnbWFuLT51c2Vk X2dtcl9wYWdlcyAtPSBtZW0tPm51bV9wYWdlczsKPj4gICAgICAgICAgc3Bpbl91bmxvY2soJmdt YW4tPmxvY2spOwo+PiAgICAgICAgICBpZGFfZnJlZSgmZ21hbi0+Z21yX2lkYSwgaWQpOwo+PiAg ICAgICAgICByZXR1cm4gLUVOT1NQQzsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMK Pj4gaW5kZXggYmM2N2YyYjkzMGUxLi43ZGM5NjEyNWU1YzIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2ttcy5jCj4+IEBAIC0xMjIwLDcgKzEyMjAsNyBAQCBzdGF0aWMgaW50IHZt d19rbXNfbmV3X2ZyYW1lYnVmZmVyX2JvKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ ICAgICAgICAgIGludCByZXQ7Cj4+Cj4+ICAgICAgICAgIHJlcXVlc3RlZF9zaXplID0gbW9kZV9j bWQtPmhlaWdodCAqIG1vZGVfY21kLT5waXRjaGVzWzBdOwo+PiAtICAgICAgIGlmICh1bmxpa2Vs eShyZXF1ZXN0ZWRfc2l6ZSA+IGJvLT5iYXNlLm51bV9wYWdlcyAqIFBBR0VfU0laRSkpIHsKPj4g KyAgICAgICBpZiAodW5saWtlbHkocmVxdWVzdGVkX3NpemUgPiBiby0+YmFzZS5iYXNlLnNpemUp KSB7Cj4+ICAgICAgICAgICAgICAgICAgRFJNX0VSUk9SKCJTY3JlZW4gYnVmZmVyIG9iamVjdCBz aXplIGlzIHRvbyBzbWFsbCAiCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3IgcmVx dWVzdGVkIG1vZGUuXG4iKTsKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3BhZ2VfZGlydHkuYyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3BhZ2VfZGlydHkuYwo+PiBpbmRleCAwYjc2 YjNkMTdkNGMuLjBhOTAwYWZjNjZmZiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfcGFnZV9kaXJ0eS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X3BhZ2VfZGlydHkuYwo+PiBAQCAtMjMyLDcgKzIzMiw3IEBAIHZvaWQgdm13X2JvX2Rp cnR5X3VubWFwKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvLAo+PiAgIGludCB2bXdfYm9f ZGlydHlfYWRkKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvKQo+PiAgIHsKPj4gICAgICAg ICAgc3RydWN0IHZtd19ib19kaXJ0eSAqZGlydHkgPSB2Ym8tPmRpcnR5Owo+PiAtICAgICAgIHBn b2ZmX3QgbnVtX3BhZ2VzID0gdmJvLT5iYXNlLm51bV9wYWdlczsKPj4gKyAgICAgICBwZ29mZl90 IG51bV9wYWdlcyA9IHZiby0+YmFzZS5tZW0ubnVtX3BhZ2VzOwo+PiAgICAgICAgICBzaXplX3Qg c2l6ZSwgYWNjX3NpemU7Cj4+ICAgICAgICAgIGludCByZXQ7Cj4+ICAgICAgICAgIHN0YXRpYyBz dHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0gewo+PiBAQCAtNDEzLDcgKzQxMyw3IEBAIHZt X2ZhdWx0X3Qgdm13X2JvX3ZtX21rd3JpdGUoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCj4+ICAgICAg ICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4KPj4gICAgICAgICAgcGFnZV9vZmZzZXQgPSB2bWYt PnBnb2ZmIC0gZHJtX3ZtYV9ub2RlX3N0YXJ0KCZiby0+YmFzZS52bWFfbm9kZSk7Cj4+IC0gICAg ICAgaWYgKHVubGlrZWx5KHBhZ2Vfb2Zmc2V0ID49IGJvLT5udW1fcGFnZXMpKSB7Cj4+ICsgICAg ICAgaWYgKHVubGlrZWx5KHBhZ2Vfb2Zmc2V0ID49IGJvLT5tZW0ubnVtX3BhZ2VzKSkgewo+PiAg ICAgICAgICAgICAgICAgIHJldCA9IFZNX0ZBVUxUX1NJR0JVUzsKPj4gICAgICAgICAgICAgICAg ICBnb3RvIG91dF91bmxvY2s7Cj4+ICAgICAgICAgIH0KPj4gQEAgLTQ1Niw3ICs0NTYsNyBAQCB2 bV9mYXVsdF90IHZtd19ib192bV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKPj4KPj4gICAg ICAgICAgICAgICAgICBwYWdlX29mZnNldCA9IHZtZi0+cGdvZmYgLQo+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgZHJtX3ZtYV9ub2RlX3N0YXJ0KCZiby0+YmFzZS52bWFfbm9kZSk7Cj4+IC0g ICAgICAgICAgICAgICBpZiAocGFnZV9vZmZzZXQgPj0gYm8tPm51bV9wYWdlcyB8fAo+PiArICAg ICAgICAgICAgICAgaWYgKHBhZ2Vfb2Zmc2V0ID49IGJvLT5tZW0ubnVtX3BhZ2VzIHx8Cj4+ICAg ICAgICAgICAgICAgICAgICAgIHZtd19yZXNvdXJjZXNfY2xlYW4odmJvLCBwYWdlX29mZnNldCwK Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX29mZnNldCAr IFBBR0VfU0laRSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm YWxsb3dlZF9wcmVmYXVsdCkpIHsKPj4gQEAgLTUzMSw3ICs1MzEsNyBAQCB2bV9mYXVsdF90IHZt d19ib192bV9odWdlX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mLAo+Pgo+PiAgICAgICAgICAg ICAgICAgIHBhZ2Vfb2Zmc2V0ID0gdm1mLT5wZ29mZiAtCj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICBkcm1fdm1hX25vZGVfc3RhcnQoJmJvLT5iYXNlLnZtYV9ub2RlKTsKPj4gLSAgICAgICAg ICAgICAgIGlmIChwYWdlX29mZnNldCA+PSBiby0+bnVtX3BhZ2VzIHx8Cj4+ICsgICAgICAgICAg ICAgICBpZiAocGFnZV9vZmZzZXQgPj0gYm8tPm1lbS5udW1fcGFnZXMgfHwKPj4gICAgICAgICAg ICAgICAgICAgICAgdm13X3Jlc291cmNlc19jbGVhbih2Ym8sIHBhZ2Vfb2Zmc2V0LAo+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2Vfb2Zmc2V0ICsgUEFHRV9T SVpFLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhbGxvd2Vk X3ByZWZhdWx0KSkgewo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfcmVzb3VyY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMK Pj4gaW5kZXggMDBiNTM1ODMxYTdhLi5mNmU4ZmRmYzc2ZTUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYwo+PiBAQCAtMzYwLDcgKzM2MCw3IEBAIHN0YXRp YyBpbnQgdm13X3Jlc291cmNlX2J1Zl9hbGxvYyhzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMsCj4+ ICAgICAgICAgIGludCByZXQ7Cj4+Cj4+ICAgICAgICAgIGlmIChsaWtlbHkocmVzLT5iYWNrdXAp KSB7Cj4+IC0gICAgICAgICAgICAgICBCVUdfT04ocmVzLT5iYWNrdXAtPmJhc2UubnVtX3BhZ2Vz ICogUEFHRV9TSVpFIDwgc2l6ZSk7Cj4+ICsgICAgICAgICAgICAgICBCVUdfT04ocmVzLT5iYWNr dXAtPmJhc2UuYmFzZS5zaXplIDwgc2l6ZSk7Cj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7 Cj4+ICAgICAgICAgIH0KPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X3NoYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMK Pj4gaW5kZXggZjMyOGFhNTgzOWEyLi5lNzZhNzIwZjg0MWUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3NoYWRlci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X3NoYWRlci5jCj4+IEBAIC04NTYsOCArODU2LDcgQEAgc3RhdGljIGlu dCB2bXdfc2hhZGVyX2RlZmluZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+ ICAgICAgICAgICAgICAgICAgfQo+Pgo+PiAtICAgICAgICAgICAgICAgaWYgKCh1NjQpYnVmZmVy LT5iYXNlLm51bV9wYWdlcyAqIFBBR0VfU0laRSA8Cj4+IC0gICAgICAgICAgICAgICAgICAgKHU2 NClzaXplICsgKHU2NClvZmZzZXQpIHsKPj4gKyAgICAgICAgICAgICAgIGlmICgodTY0KWJ1ZmZl ci0+YmFzZS5iYXNlLnNpemUgPCAodTY0KXNpemUgKyAodTY0KW9mZnNldCkgewo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgVk1XX0RFQlVHX1VTRVIoIklsbGVnYWwgYnVmZmVyLSBvciBzaGFk ZXIgc2l6ZS5cbiIpOwo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsK Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0X2JhZF9hcmc7Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMgYi9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMKPj4gaW5kZXggNWIwNGVjMDQ3ZWYzLi4yN2FiMmM1MDMx MmIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N0ZHUuYwo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMKPj4gQEAgLTUxMiw3 ICs1MTIsNyBAQCBzdGF0aWMgdm9pZCB2bXdfc3RkdV9ib19maWZvX2NvbW1pdChzdHJ1Y3Qgdm13 X2ttc19kaXJ0eSAqZGlydHkpCj4+ICAgICAgICAgIGNtZC0+Ym9keS5ob3N0Lm1pcG1hcCA9IDA7 Cj4+ICAgICAgICAgIGNtZC0+Ym9keS50cmFuc2ZlciA9IGRkaXJ0eS0+dHJhbnNmZXI7Cj4+ICAg ICAgICAgIHN1ZmZpeC0+c3VmZml4U2l6ZSA9IHNpemVvZigqc3VmZml4KTsKPj4gLSAgICAgICBz dWZmaXgtPm1heGltdW1PZmZzZXQgPSBkZGlydHktPmJ1Zi0+YmFzZS5udW1fcGFnZXMgKiBQQUdF X1NJWkU7Cj4+ICsgICAgICAgc3VmZml4LT5tYXhpbXVtT2Zmc2V0ID0gZGRpcnR5LT5idWYtPmJh c2UuYmFzZS5zaXplOwo+Pgo+PiAgICAgICAgICBpZiAoZGRpcnR5LT50cmFuc2ZlciA9PSBTVkdB M0RfV1JJVEVfSE9TVF9WUkFNKSB7Cj4+ICAgICAgICAgICAgICAgICAgYmxpdF9zaXplICs9IHNp emVvZihzdHJ1Y3Qgdm13X3N0ZHVfdXBkYXRlKTsKPj4gQEAgLTEyMzgsNyArMTIzOCw3IEBAIHN0 YXRpYyB1aW50MzJfdCB2bXdfc3RkdV9ib19wb3B1bGF0ZV91cGRhdGUoc3RydWN0IHZtd19kdV91 cGRhdGVfcGxhbmUgICp1cGRhdGUsCj4+ICAgICAgICAgIHZmYmJvID0gY29udGFpbmVyX29mKHVw ZGF0ZS0+dmZiLCB0eXBlb2YoKnZmYmJvKSwgYmFzZSk7Cj4+Cj4+ICAgICAgICAgIHN1ZmZpeC0+ c3VmZml4U2l6ZSA9IHNpemVvZigqc3VmZml4KTsKPj4gLSAgICAgICBzdWZmaXgtPm1heGltdW1P ZmZzZXQgPSB2ZmJiby0+YnVmZmVyLT5iYXNlLm51bV9wYWdlcyAqIFBBR0VfU0laRTsKPj4gKyAg ICAgICBzdWZmaXgtPm1heGltdW1PZmZzZXQgPSB2ZmJiby0+YnVmZmVyLT5iYXNlLmJhc2Uuc2l6 ZTsKPj4KPj4gICAgICAgICAgdm13X3N0ZHVfcG9wdWxhdGVfdXBkYXRlKCZzdWZmaXhbMV0sIHN0 ZHUtPmJhc2UudW5pdCwgYmItPngxLCBiYi0+eDIsCj4+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBiYi0+eTEsIGJiLT55Mik7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9zdXJmYWNlLmMKPj4gaW5kZXggMzkxNGJmZWUwNTMzLi5mYTliZTMwYmVjNmMgMTAwNjQ0Cj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYwo+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMKPj4gQEAgLTE1NTAsOCArMTU1 MCw3IEBAIHZtd19nYl9zdXJmYWNlX2RlZmluZV9pbnRlcm5hbChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVzLT5i YWNrdXAsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1c2Vy X3NyZi0+YmFja3VwX2Jhc2UpOwo+PiAgICAgICAgICAgICAgICAgIGlmIChyZXQgPT0gMCkgewo+ PiAtICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLT5iYWNrdXAtPmJhc2UubnVtX3BhZ2Vz ICogUEFHRV9TSVpFIDwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy0+YmFja3Vw X3NpemUpIHsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy0+YmFja3VwLT5iYXNl LmJhc2Uuc2l6ZSA8IHJlcy0+YmFja3VwX3NpemUpIHsKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVk1XX0RFQlVHX1VTRVIoIlN1cmZhY2UgYmFja3VwIGJ1ZmZlciB0b28gc21h bGwuXG4iKTsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm13X2JvX3VucmVm ZXJlbmNlKCZyZXMtPmJhY2t1cCk7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJldCA9IC1FSU5WQUw7Cj4+IEBAIC0xNjE0LDcgKzE2MTMsNyBAQCB2bXdfZ2Jfc3VyZmFjZV9k ZWZpbmVfaW50ZXJuYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gICAgICAgICAgaWYgKHJl cy0+YmFja3VwKSB7Cj4+ICAgICAgICAgICAgICAgICAgcmVwLT5idWZmZXJfbWFwX2hhbmRsZSA9 Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJnJl cy0+YmFja3VwLT5iYXNlLmJhc2Uudm1hX25vZGUpOwo+PiAtICAgICAgICAgICAgICAgcmVwLT5i dWZmZXJfc2l6ZSA9IHJlcy0+YmFja3VwLT5iYXNlLm51bV9wYWdlcyAqIFBBR0VfU0laRTsKPj4g KyAgICAgICAgICAgICAgIHJlcC0+YnVmZmVyX3NpemUgPSByZXMtPmJhY2t1cC0+YmFzZS5iYXNl LnNpemU7Cj4+ICAgICAgICAgICAgICAgICAgcmVwLT5idWZmZXJfaGFuZGxlID0gYmFja3VwX2hh bmRsZTsKPj4gICAgICAgICAgfSBlbHNlIHsKPj4gICAgICAgICAgICAgICAgICByZXAtPmJ1ZmZl cl9tYXBfaGFuZGxlID0gMDsKPj4gQEAgLTE2OTIsNyArMTY5MSw3IEBAIHZtd19nYl9zdXJmYWNl X3JlZmVyZW5jZV9pbnRlcm5hbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAgICAgICAgICBy ZXAtPmNyZXAuYnVmZmVyX2hhbmRsZSA9IGJhY2t1cF9oYW5kbGU7Cj4+ICAgICAgICAgIHJlcC0+ Y3JlcC5idWZmZXJfbWFwX2hhbmRsZSA9Cj4+ICAgICAgICAgICAgICAgICAgZHJtX3ZtYV9ub2Rl X29mZnNldF9hZGRyKCZzcmYtPnJlcy5iYWNrdXAtPmJhc2UuYmFzZS52bWFfbm9kZSk7Cj4+IC0g ICAgICAgcmVwLT5jcmVwLmJ1ZmZlcl9zaXplID0gc3JmLT5yZXMuYmFja3VwLT5iYXNlLm51bV9w YWdlcyAqIFBBR0VfU0laRTsKPj4gKyAgICAgICByZXAtPmNyZXAuYnVmZmVyX3NpemUgPSBzcmYt PnJlcy5iYWNrdXAtPmJhc2UuYmFzZS5zaXplOwo+Pgo+PiAgICAgICAgICByZXAtPmNyZXEudmVy c2lvbiA9IGRybV92bXdfZ2Jfc3VyZmFjZV92MTsKPj4gICAgICAgICAgcmVwLT5jcmVxLnN2Z2Ez ZF9mbGFnc191cHBlcl8zMl9iaXRzID0KPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90 dG1fYm9fYXBpLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oCj4+IGluZGV4IDc5Yjkz NjdlMGZmZC4uMGQ0ZTNmY2NhYThhIDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL2RybS90dG0vdHRt X2JvX2FwaS5oCj4+ICsrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKPj4gQEAgLTEy NSw3ICsxMjUsNiBAQCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qgewo+PiAgICAgICAgICBzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldjsKPj4gICAgICAgICAgZW51bSB0dG1fYm9fdHlwZSB0eXBl Owo+PiAgICAgICAgICB2b2lkICgqZGVzdHJveSkgKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq KTsKPj4gLSAgICAgICB1bnNpZ25lZCBsb25nIG51bV9wYWdlczsKPj4gICAgICAgICAgc2l6ZV90 IGFjY19zaXplOwo+Pgo+PiAgICAgICAgICAvKioKPj4gQEAgLTM5NywxMyArMzk2LDExIEBAIHNp emVfdCB0dG1fYm9fZG1hX2FjY19zaXplKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+Pgo+ PiAgIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwK Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzaXplLAo+PiAtICAg ICAgICAgICAgICAgICAgICAgICAgZW51bSB0dG1fYm9fdHlwZSB0eXBlLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsIGVudW0gdHRtX2JvX3R5cGUgdHlwZSwKPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50LAo+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHBhZ2VfYWxpZ25tZW50LAo+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAo+ PiAtICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFjY19zaXplLAo+PiAtICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHNnX3RhYmxlICpzZywKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIHNpemVfdCBhY2Nfc2l6ZSwgc3RydWN0IHNnX3RhYmxlICpzZywKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgdm9pZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKikp Owo+Pgo+PiBAQCAtNDQ1LDcgKzQ0Miw3IEBAIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gICAgKiAtRVJFU1RBUlRTWVM6IEludGVycnVwdGVk IGJ5IHNpZ25hbCB3aGlsZSBzbGVlcGluZyB3YWl0aW5nIGZvciByZXNvdXJjZXMuCj4+ICAgICov Cj4+ICAgaW50IHR0bV9ib19pbml0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAtICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBz aXplLCBlbnVtIHR0bV9ib190eXBlIHR5cGUsCj4+ICsgICAgICAgICAgICAgICBzaXplX3Qgc2l6 ZSwgZW51bSB0dG1fYm9fdHlwZSB0eXBlLAo+PiAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1f cGxhY2VtZW50ICpwbGFjZW1lbnQsCj4+ICAgICAgICAgICAgICAgICAgdWludDMyX3QgcGFnZV9h bGlnbm1lbnQsIGJvb2wgaW50ZXJydWJ0aWJsZSwgc2l6ZV90IGFjY19zaXplLAo+PiAgICAgICAg ICAgICAgICAgIHN0cnVjdCBzZ190YWJsZSAqc2csIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKPj4g ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fcmVzb3VyY2UuaCBiL2luY2x1ZGUvZHJt L3R0bS90dG1fcmVzb3VyY2UuaAo+PiBpbmRleCBmNDhhNzBkMzlhYzUuLmFkNmRhOTk3NzBlOSAx MDA2NDQKPj4gLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5oCj4+ICsrKyBiL2lu Y2x1ZGUvZHJtL3R0bS90dG1fcmVzb3VyY2UuaAo+PiBAQCAtMTcxLDcgKzE3MSw2IEBAIHN0cnVj dCB0dG1fYnVzX3BsYWNlbWVudCB7Cj4+ICAgc3RydWN0IHR0bV9yZXNvdXJjZSB7Cj4+ICAgICAg ICAgIHZvaWQgKm1tX25vZGU7Cj4+ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQ7Cj4+IC0g ICAgICAgdW5zaWduZWQgbG9uZyBzaXplOwo+PiAgICAgICAgICB1bnNpZ25lZCBsb25nIG51bV9w YWdlczsKPj4gICAgICAgICAgdWludDMyX3QgcGFnZV9hbGlnbm1lbnQ7Cj4+ICAgICAgICAgIHVp bnQzMl90IG1lbV90eXBlOwo+PiAtLQo+PiAyLjI1LjEKPj4KPj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+ PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCj4KPgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==