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=-9.8 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2F462C433E3 for ; Wed, 5 Aug 2020 05:58:02 +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 00CAC20842 for ; Wed, 5 Aug 2020 05:58:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WPbnwSgQ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 00CAC20842 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 66B346E4EC; Wed, 5 Aug 2020 05:58:01 +0000 (UTC) Received: from mail-yb1-xb44.google.com (mail-yb1-xb44.google.com [IPv6:2607:f8b0:4864:20::b44]) by gabe.freedesktop.org (Postfix) with ESMTPS id B3D4E6E4EC for ; Wed, 5 Aug 2020 05:57:59 +0000 (UTC) Received: by mail-yb1-xb44.google.com with SMTP id p191so6996116ybg.0 for ; Tue, 04 Aug 2020 22:57:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=Qp+M3okEAcqPczBOR83VV54y+WUvPwCGMZJmxdxD0Ns=; b=WPbnwSgQY7uTR4PuDbZFv3h+9zDGfzXaT249b3OFBywKZonq/0C+JLO3xbZkbCyOE/ VOjg6G4JANKuTDAvjn93uRi2n9NDUNGc9blt9EhZAz0ybGyTFzpnXqjxV1b47YcNdQpd 8NVsG/qdKxOeCvNnE3j9Bzv2GIbeTYWhhPA4b3uncTeD6ELSPH0ghZCd9/G3DS7RKRtJ FIlqy3vbTuWyHo41h3gOCYL3ONPgKOK2RQH/iqfz1QXvsTmQqjz9q8xNaA9BuYlLvYuy r6O0EtjGylrU75vOaXWjbwhjQmmX1KeIJcs6N4Pki/cfaqeOTfrZZArCEOPjng9t9tMc 0mOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Qp+M3okEAcqPczBOR83VV54y+WUvPwCGMZJmxdxD0Ns=; b=h2oEmBowI3bcq6rGWhe2oFKrKKJCo70mk4U0lpHhE4dTqrrBLbnlQpMnviw0u2L++2 QEgCFXzUDfnWgE2ZtLlhqZ2iwzOaR5TSkbcQhoVNNpd1IcsJzaNCKXDU46yBj4UGeAvJ jfU0appZAyzrEYS/BaraGdR3bxQYmzitYVIi+Gm610WY6t4+K0c6xW7/vPO3TgxxHybj qMpzEJ5a/bCzhj7n5CQaxXsOtB7OdHk1+soPJ5F7fdRi2MiS0CFkZwah8uJWK2UTV0Gq +FXjwYgjXqC9BoRmv6ZQmxr4EojbAikjmb6DoAZ7zsxmEERRTLGd6ECNNyqfyABl9lZd m7ug== X-Gm-Message-State: AOAM530WG9k/xhGsnj45wFf7p0y/f5J2hlWOf8zVU6ZFU48rpn2mrwJz DbUMSXI9bapVqU4ia9uXDu9ZH/P05vOuDq1wxDY= X-Google-Smtp-Source: ABdhPJyDGnDRzIr0/mpVNjSnE2LFFGheiHFZx95BgkxfeeeODH8dgERNyoA6NCPOmlqbupeWT6AhRpedfWYtkysBEOc= X-Received: by 2002:a25:c4c5:: with SMTP id u188mr2342108ybf.162.1596607077478; Tue, 04 Aug 2020 22:57:57 -0700 (PDT) MIME-Version: 1.0 References: <20200804025632.3868079-1-airlied@gmail.com> <20200804025632.3868079-59-airlied@gmail.com> <61b2f343-5398-91f3-df64-fdae8f5b7f90@amd.com> In-Reply-To: <61b2f343-5398-91f3-df64-fdae8f5b7f90@amd.com> From: Ben Skeggs Date: Wed, 5 Aug 2020 15:57:45 +1000 Message-ID: Subject: Re: [PATCH 58/59] drm/ttm: rename ttm_mem_type_manager -> ttm_resource_manager. To: =?UTF-8?Q?Christian_K=C3=B6nig?= 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: , Cc: sroland@vmware.com, ML dri-devel , linux-graphics-maintainer@vmware.com, Ben Skeggs , Gerd Hoffmann Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gVHVlLCA0IEF1ZyAyMDIwIGF0IDIxOjQxLCBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4u a29lbmlnQGFtZC5jb20+IHdyb3RlOgo+Cj4gQW0gMDQuMDguMjAgdW0gMDQ6NTYgc2NocmllYiBE YXZlIEFpcmxpZToKPiA+IEZyb206IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+Cj4g Pgo+ID4gVGhpcyBuYW1lIG1ha2VzIGEgbG90IG1vcmUgc2Vuc2UsIHNpbmNlIHRoZXNlIGFyZSBh Ym91dCBtYW5hZ2luZwo+ID4gZHJpdmVyIHJlc291cmNlcyByYXRoZXIgdGhhbiBqdXN0IG1lbW9y eSByYW5nZXMuCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVk aGF0LmNvbT4KPgo+IEFja2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmln QGFtZC5jb20+ClJldmlld2VkLWJ5OiBCZW4gU2tlZ2dzIDxic2tlZ2dzQHJlZGhhdC5jb20+Cgo+ Cj4gPiAtLS0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5j ICAgIHwgIDIgKy0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMg ICAgICAgIHwgIDIgKy0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2d0 dF9tZ3IuYyAgIHwgMzYgKysrKystLS0tLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfa21zLmMgICAgICAgfCAgNCArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfb2JqZWN0LmMgICAgfCAgMiArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdHRtLmMgICAgICAgfCAgNCArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdHRtLmggICAgICAgfCAgOCArLS0KPiA+ICAgZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZyYW1fbWdyLmMgIHwgMzYgKysrKystLS0tLQo+ID4gICBk cml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jICAgICAgICAgfCAgNCArLQo+ID4g ICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5jICAgICAgICAgfCA0NiArKysr KystLS0tLS0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdHRtLmggICAg ICAgICB8ICA2ICstCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3R0bS5jICAgICAgICAg ICAgICAgICB8ICA0ICstCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5j ICAgICAgICAgICB8ICAyICstCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0 bS5jICAgICAgICAgICB8ICA0ICstCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMg ICAgICAgICAgICAgICAgICB8IDY2ICsrKysrKysrKy0tLS0tLS0tLS0KPiA+ICAgZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jICAgICAgICAgICAgIHwgMjYgKysrKy0tLS0KPiA+ICAg ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYyAgICAgICAgICAgICAgIHwgIDIgKy0KPiA+ ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcmFuZ2VfbWFuYWdlci5jICAgICAgIHwgMjggKysr Ky0tLS0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMgICAgICAgICAg IHwgMjAgKysrLS0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2dtcmlkX21h bmFnZXIuYyB8IDI2ICsrKystLS0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X3RocC5jICAgICAgICAgICB8IDI2ICsrKystLS0tCj4gPiAgIGluY2x1ZGUvZHJtL3R0bS90dG1f Ym9fYXBpLmggICAgICAgICAgICAgICAgICB8ICA2ICstCj4gPiAgIGluY2x1ZGUvZHJtL3R0bS90 dG1fYm9fZHJpdmVyLmggICAgICAgICAgICAgICB8IDYwICsrKysrKysrLS0tLS0tLS0tCj4gPiAg IDIzIGZpbGVzIGNoYW5nZWQsIDIxMCBpbnNlcnRpb25zKCspLCAyMTAgZGVsZXRpb25zKC0pCj4g Pgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRr ZmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuYwo+ID4gaW5k ZXggZTI0ZjQyMWU1NTUzLi40NzhmNjc0OThhMTcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuYwo+ID4gQEAgLTUxNyw3ICs1MTcsNyBAQCBpbnQg YW1kZ3B1X2FtZGtmZF9nZXRfZG1hYnVmX2luZm8oc3RydWN0IGtnZF9kZXYgKmtnZCwgaW50IGRt YV9idWZfZmQsCj4gPiAgIHVpbnQ2NF90IGFtZGdwdV9hbWRrZmRfZ2V0X3ZyYW1fdXNhZ2Uoc3Ry dWN0IGtnZF9kZXYgKmtnZCkKPiA+ICAgewo+ID4gICAgICAgc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKilrZ2Q7Cj4gPiAtICAgICBzdHJ1Y3QgdHRt X21lbV90eXBlX21hbmFnZXIgKnZyYW1fbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1h bi5iZGV2LCBUVE1fUExfVlJBTSk7Cj4gPiArICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFn ZXIgKnZyYW1fbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LCBUVE1fUExf VlJBTSk7Cj4gPgo+ID4gICAgICAgcmV0dXJuIGFtZGdwdV92cmFtX21ncl91c2FnZSh2cmFtX21h bik7Cj4gPiAgIH0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4gPiBp bmRleCA5ODI5NjQwZTE3NjkuLmVjZDA1MTk3NmJjZSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfY3MuYwo+ID4gQEAgLTI5OSw3ICsyOTksNyBAQCBzdGF0aWMgdm9p ZCBhbWRncHVfY3NfZ2V0X3RocmVzaG9sZF9mb3JfbW92ZXMoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsCj4gPiAgIHsKPiA+ICAgICAgIHM2NCB0aW1lX3VzLCBpbmNyZW1lbnRfdXM7Cj4gPiAg ICAgICB1NjQgZnJlZV92cmFtLCB0b3RhbF92cmFtLCB1c2VkX3ZyYW07Cj4gPiAtICAgICBzdHJ1 Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKnZyYW1fbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRl di0+bW1hbi5iZGV2LCBUVE1fUExfVlJBTSk7Cj4gPiArICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNl X21hbmFnZXIgKnZyYW1fbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LCBU VE1fUExfVlJBTSk7Cj4gPiAgICAgICAvKiBBbGxvdyBhIG1heGltdW0gb2YgMjAwIGFjY3VtdWxh dGVkIG1zLiBUaGlzIGlzIGJhc2ljYWxseSBwZXItSUIKPiA+ICAgICAgICAqIHRocm90dGxpbmcu Cj4gPiAgICAgICAgKgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9ndHRfbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ3R0 X21nci5jCj4gPiBpbmRleCA3MTQ2MWQ2NTJmY2MuLjhiNjAwYjgwNGYzNCAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9ndHRfbWdyLmMKPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9ndHRfbWdyLmMKPiA+IEBAIC0yNSwx MyArMjUsMTMgQEAKPiA+ICAgI2luY2x1ZGUgImFtZGdwdS5oIgo+ID4KPiA+ICAgc3RydWN0IGFt ZGdwdV9ndHRfbWdyIHsKPiA+IC0gICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciBtYW5h Z2VyOwo+ID4gKyAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyIG1hbmFnZXI7Cj4gPiAg ICAgICBzdHJ1Y3QgZHJtX21tIG1tOwo+ID4gICAgICAgc3BpbmxvY2tfdCBsb2NrOwo+ID4gICAg ICAgYXRvbWljNjRfdCBhdmFpbGFibGU7Cj4gPiAgIH07Cj4gPgo+ID4gLXN0YXRpYyBpbmxpbmUg c3RydWN0IGFtZGdwdV9ndHRfbWdyICp0b19ndHRfbWdyKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFu YWdlciAqbWFuKQo+ID4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGFtZGdwdV9ndHRfbWdyICp0b19n dHRfbWdyKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuKQo+ID4gICB7Cj4gPiAgICAg ICByZXR1cm4gY29udGFpbmVyX29mKG1hbiwgc3RydWN0IGFtZGdwdV9ndHRfbWdyLCBtYW5hZ2Vy KTsKPiA+ICAgfQo+ID4gQEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X21l bV9pbmZvX2d0dF90b3RhbF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKPiA+ICAgewo+ID4gICAg ICAgc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiA+ICAg ICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiAt ICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUo JmFkZXYtPm1tYW4uYmRldiwgVFRNX1BMX1RUKTsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3Vy Y2VfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LCBUVE1f UExfVFQpOwo+ID4gICAgICAgcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJWxsdVxu IiwKPiA+ICAgICAgICAgICAgICAgICAgICAgICBtYW4tPnNpemUgKiBQQUdFX1NJWkUpOwo+ID4g ICB9Cj4gPiBAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfbWVtX2luZm9f Z3R0X3VzZWRfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gPiAgIHsKPiA+ICAgICAgIHN0cnVj dCBkcm1fZGV2aWNlICpkZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gPiAgICAgICBzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRkZXYtPmRldl9wcml2YXRlOwo+ID4gLSAgICAgc3Ry dWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKCZhZGV2LT5t bWFuLmJkZXYsIFRUTV9QTF9UVCk7Cj4gPiArICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFn ZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJmFkZXYtPm1tYW4uYmRldiwgVFRNX1BMX1RUKTsK PiA+ICAgICAgIHJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVsbHVcbiIsCj4gPiAg ICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X2d0dF9tZ3JfdXNhZ2UobWFuKSk7Cj4gPiAgIH0K PiA+IEBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBERVZJQ0VfQVRUUihtZW1faW5mb19ndHRfdG90 YWwsIFNfSVJVR08sCj4gPiAgIHN0YXRpYyBERVZJQ0VfQVRUUihtZW1faW5mb19ndHRfdXNlZCwg U19JUlVHTywKPiA+ICAgICAgICAgICAgICAgICAgYW1kZ3B1X21lbV9pbmZvX2d0dF91c2VkX3No b3csIE5VTEwpOwo+ID4KPiA+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5h Z2VyX2Z1bmMgYW1kZ3B1X2d0dF9tZ3JfZnVuYzsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHR0 bV9yZXNvdXJjZV9tYW5hZ2VyX2Z1bmMgYW1kZ3B1X2d0dF9tZ3JfZnVuYzsKPiA+ICAgLyoqCj4g PiAgICAqIGFtZGdwdV9ndHRfbWdyX2luaXQgLSBpbml0IEdUVCBtYW5hZ2VyIGFuZCBEUk0gTU0K PiA+ICAgICoKPiA+IEBAIC05Myw3ICs5Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX21l bV90eXBlX21hbmFnZXJfZnVuYyBhbWRncHVfZ3R0X21ncl9mdW5jOwo+ID4gICAgKi8KPiA+ICAg aW50IGFtZGdwdV9ndHRfbWdyX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQ2 NF90IGd0dF9zaXplKQo+ID4gICB7Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFn ZXIgKm1hbjsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuOwo+ID4g ICAgICAgc3RydWN0IGFtZGdwdV9ndHRfbWdyICptZ3I7Cj4gPiAgICAgICB1aW50NjRfdCBzdGFy dCwgc2l6ZTsKPiA+ICAgICAgIGludCByZXQ7Cj4gPiBAQCAtMTA4LDcgKzEwOCw3IEBAIGludCBh bWRncHVfZ3R0X21ncl9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50NjRfdCBn dHRfc2l6ZSkKPiA+ICAgICAgIG1hbi0+YXZhaWxhYmxlX2NhY2hpbmcgPSBUVE1fUExfTUFTS19D QUNISU5HOwo+ID4gICAgICAgbWFuLT5kZWZhdWx0X2NhY2hpbmcgPSBUVE1fUExfRkxBR19DQUNI RUQ7Cj4gPgo+ID4gLSAgICAgdHRtX21lbV90eXBlX21hbmFnZXJfaW5pdChtYW4sIGd0dF9zaXpl ID4+IFBBR0VfU0hJRlQpOwo+ID4gKyAgICAgdHRtX3Jlc291cmNlX21hbmFnZXJfaW5pdChtYW4s IGd0dF9zaXplID4+IFBBR0VfU0hJRlQpOwo+ID4KPiA+ICAgICAgIHN0YXJ0ID0gQU1ER1BVX0dU VF9NQVhfVFJBTlNGRVJfU0laRSAqIEFNREdQVV9HVFRfTlVNX1RSQU5TRkVSX1dJTkRPV1M7Cj4g PiAgICAgICBzaXplID0gKGFkZXYtPmdtYy5nYXJ0X3NpemUgPj4gUEFHRV9TSElGVCkgLSBzdGFy dDsKPiA+IEBAIC0xMjgsNyArMTI4LDcgQEAgaW50IGFtZGdwdV9ndHRfbWdyX2luaXQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQ2NF90IGd0dF9zaXplKQo+ID4gICAgICAgfQo+ID4K PiA+ICAgICAgIHR0bV9zZXRfZHJpdmVyX21hbmFnZXIoJmFkZXYtPm1tYW4uYmRldiwgVFRNX1BM X1RULCAmbWdyLT5tYW5hZ2VyKTsKPiA+IC0gICAgIHR0bV9tZW1fdHlwZV9tYW5hZ2VyX3NldF91 c2VkKG1hbiwgdHJ1ZSk7Cj4gPiArICAgICB0dG1fcmVzb3VyY2VfbWFuYWdlcl9zZXRfdXNlZCht YW4sIHRydWUpOwo+ID4gICAgICAgcmV0dXJuIDA7Cj4gPiAgIH0KPiA+Cj4gPiBAQCAtMTQyLDEz ICsxNDIsMTMgQEAgaW50IGFtZGdwdV9ndHRfbWdyX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsIHVpbnQ2NF90IGd0dF9zaXplKQo+ID4gICAgKi8KPiA+ICAgdm9pZCBhbWRncHVfZ3R0 X21ncl9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ID4gICB7Cj4gPiAtICAgICBz dHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJmFkZXYt Pm1tYW4uYmRldiwgVFRNX1BMX1RUKTsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFu YWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LCBUVE1fUExfVFQp Owo+ID4gICAgICAgc3RydWN0IGFtZGdwdV9ndHRfbWdyICptZ3IgPSB0b19ndHRfbWdyKG1hbik7 Cj4gPiAgICAgICBpbnQgcmV0Owo+ID4KPiA+IC0gICAgIHR0bV9tZW1fdHlwZV9tYW5hZ2VyX3Nl dF91c2VkKG1hbiwgZmFsc2UpOwo+ID4gKyAgICAgdHRtX3Jlc291cmNlX21hbmFnZXJfc2V0X3Vz ZWQobWFuLCBmYWxzZSk7Cj4gPgo+ID4gLSAgICAgcmV0ID0gdHRtX21lbV90eXBlX21hbmFnZXJf Zm9yY2VfbGlzdF9jbGVhbigmYWRldi0+bW1hbi5iZGV2LCBtYW4pOwo+ID4gKyAgICAgcmV0ID0g dHRtX3Jlc291cmNlX21hbmFnZXJfZm9yY2VfbGlzdF9jbGVhbigmYWRldi0+bW1hbi5iZGV2LCBt YW4pOwo+ID4gICAgICAgaWYgKHJldCkKPiA+ICAgICAgICAgICAgICAgcmV0dXJuOwo+ID4KPiA+ IEBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBhbWRncHVfZ3R0X21ncl9maW5pKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KQo+ID4gICAgICAgZGV2aWNlX3JlbW92ZV9maWxlKGFkZXYtPmRldiwg JmRldl9hdHRyX21lbV9pbmZvX2d0dF90b3RhbCk7Cj4gPiAgICAgICBkZXZpY2VfcmVtb3ZlX2Zp bGUoYWRldi0+ZGV2LCAmZGV2X2F0dHJfbWVtX2luZm9fZ3R0X3VzZWQpOwo+ID4KPiA+IC0gICAg IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2NsZWFudXAobWFuKTsKPiA+ICsgICAgIHR0bV9yZXNvdXJj ZV9tYW5hZ2VyX2NsZWFudXAobWFuKTsKPiA+ICAgICAgIHR0bV9zZXRfZHJpdmVyX21hbmFnZXIo JmFkZXYtPm1tYW4uYmRldiwgVFRNX1BMX1RULCBOVUxMKTsKPiA+ICAgICAgIGtmcmVlKG1ncik7 Cj4gPiAgIH0KPiA+IEBAIC0xODYsNyArMTg2LDcgQEAgYm9vbCBhbWRncHVfZ3R0X21ncl9oYXNf Z2FydF9hZGRyKHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ID4gICAgKgo+ID4gICAgKiBEdW1t eSwgYWxsb2NhdGUgdGhlIG5vZGUgYnV0IG5vIHNwYWNlIGZvciBpdCB5ZXQuCj4gPiAgICAqLwo+ ID4gLXN0YXRpYyBpbnQgYW1kZ3B1X2d0dF9tZ3JfbmV3KHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFu YWdlciAqbWFuLAo+ID4gK3N0YXRpYyBpbnQgYW1kZ3B1X2d0dF9tZ3JfbmV3KHN0cnVjdCB0dG1f cmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqdGJvLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlLAo+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ID4gQEAgLTI0OSw3ICsyNDksNyBA QCBzdGF0aWMgaW50IGFtZGdwdV9ndHRfbWdyX25ldyhzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFn ZXIgKm1hbiwKPiA+ICAgICoKPiA+ICAgICogRnJlZSB0aGUgYWxsb2NhdGVkIEdUVCBhZ2Fpbi4K PiA+ICAgICovCj4gPiAtc3RhdGljIHZvaWQgYW1kZ3B1X2d0dF9tZ3JfZGVsKHN0cnVjdCB0dG1f bWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ID4gK3N0YXRpYyB2b2lkIGFtZGdwdV9ndHRfbWdyX2Rl bChzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4gPiAgIHsKPiA+ICAgICAgIHN0 cnVjdCBhbWRncHVfZ3R0X21nciAqbWdyID0gdG9fZ3R0X21ncihtYW4pOwo+ID4gQEAgLTI3Miw3 ICsyNzIsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZ3R0X21ncl9kZWwoc3RydWN0IHR0bV9tZW1f dHlwZV9tYW5hZ2VyICptYW4sCj4gPiAgICAqCj4gPiAgICAqIFJldHVybiBob3cgbWFueSBieXRl cyBhcmUgdXNlZCBpbiB0aGUgR1RUIGRvbWFpbgo+ID4gICAgKi8KPiA+IC11aW50NjRfdCBhbWRn cHVfZ3R0X21ncl91c2FnZShzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbikKPiA+ICt1 aW50NjRfdCBhbWRncHVfZ3R0X21ncl91c2FnZShzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIg Km1hbikKPiA+ICAgewo+ID4gICAgICAgc3RydWN0IGFtZGdwdV9ndHRfbWdyICptZ3IgPSB0b19n dHRfbWdyKG1hbik7Cj4gPiAgICAgICBzNjQgcmVzdWx0ID0gbWFuLT5zaXplIC0gYXRvbWljNjRf cmVhZCgmbWdyLT5hdmFpbGFibGUpOwo+ID4gQEAgLTI4MCw3ICsyODAsNyBAQCB1aW50NjRfdCBh bWRncHVfZ3R0X21ncl91c2FnZShzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbikKPiA+ ICAgICAgIHJldHVybiAocmVzdWx0ID4gMCA/IHJlc3VsdCA6IDApICogUEFHRV9TSVpFOwo+ID4g ICB9Cj4gPgo+ID4gLWludCBhbWRncHVfZ3R0X21ncl9yZWNvdmVyKHN0cnVjdCB0dG1fbWVtX3R5 cGVfbWFuYWdlciAqbWFuKQo+ID4gK2ludCBhbWRncHVfZ3R0X21ncl9yZWNvdmVyKHN0cnVjdCB0 dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuKQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3QgYW1kZ3B1 X2d0dF9tZ3IgKm1nciA9IHRvX2d0dF9tZ3IobWFuKTsKPiA+ICAgICAgIHN0cnVjdCBhbWRncHVf Z3R0X25vZGUgKm5vZGU7Cj4gPiBAQCAtMzA3LDcgKzMwNyw3IEBAIGludCBhbWRncHVfZ3R0X21n cl9yZWNvdmVyKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKQo+ID4gICAgKgo+ID4g ICAgKiBEdW1wIHRoZSB0YWJsZSBjb250ZW50IHVzaW5nIHByaW50ay4KPiA+ICAgICovCj4gPiAt c3RhdGljIHZvaWQgYW1kZ3B1X2d0dF9tZ3JfZGVidWcoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5h Z2VyICptYW4sCj4gPiArc3RhdGljIHZvaWQgYW1kZ3B1X2d0dF9tZ3JfZGVidWcoc3RydWN0IHR0 bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGRybV9wcmludGVyICpwcmludGVyKQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3Qg YW1kZ3B1X2d0dF9tZ3IgKm1nciA9IHRvX2d0dF9tZ3IobWFuKTsKPiA+IEBAIC0zMjEsNyArMzIx LDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2d0dF9tZ3JfZGVidWcoc3RydWN0IHR0bV9tZW1fdHlw ZV9tYW5hZ2VyICptYW4sCj4gPiAgICAgICAgICAgICAgICAgIGFtZGdwdV9ndHRfbWdyX3VzYWdl KG1hbikgPj4gMjApOwo+ID4gICB9Cj4gPgo+ID4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX21l bV90eXBlX21hbmFnZXJfZnVuYyBhbWRncHVfZ3R0X21ncl9mdW5jID0gewo+ID4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXJfZnVuYyBhbWRncHVfZ3R0X21ncl9mdW5j ID0gewo+ID4gICAgICAgLmdldF9ub2RlID0gYW1kZ3B1X2d0dF9tZ3JfbmV3LAo+ID4gICAgICAg LnB1dF9ub2RlID0gYW1kZ3B1X2d0dF9tZ3JfZGVsLAo+ID4gICAgICAgLmRlYnVnID0gYW1kZ3B1 X2d0dF9tZ3JfZGVidWcKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMK PiA+IGluZGV4IDU5NDY4N2NjOTlhYy4uMjc2M2JjYTE2M2UzIDEwMDY0NAo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMKPiA+IEBAIC02MzEsOSArNjMxLDkgQEAgc3Rh dGljIGludCBhbWRncHVfaW5mb19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLCBzdHJ1Y3QgZHJtX2ZpbGUKPiA+ICAgICAgIH0KPiA+ICAgICAgIGNhc2UgQU1ER1BVX0lO Rk9fTUVNT1JZOiB7Cj4gPiAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fYW1kZ3B1X21lbW9yeV9p bmZvIG1lbTsKPiA+IC0gICAgICAgICAgICAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICp2 cmFtX21hbiA9Cj4gPiArICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAq dnJhbV9tYW4gPQo+ID4gICAgICAgICAgICAgICAgICAgICAgIHR0bV9tYW5hZ2VyX3R5cGUoJmFk ZXYtPm1tYW4uYmRldiwgVFRNX1BMX1ZSQU0pOwo+ID4gLSAgICAgICAgICAgICBzdHJ1Y3QgdHRt X21lbV90eXBlX21hbmFnZXIgKmd0dF9tYW4gPQo+ID4gKyAgICAgICAgICAgICBzdHJ1Y3QgdHRt X3Jlc291cmNlX21hbmFnZXIgKmd0dF9tYW4gPQo+ID4gICAgICAgICAgICAgICAgICAgICAgIHR0 bV9tYW5hZ2VyX3R5cGUoJmFkZXYtPm1tYW4uYmRldiwgVFRNX1BMX1RUKTsKPiA+ICAgICAgICAg ICAgICAgbWVtc2V0KCZtZW0sIDAsIHNpemVvZihtZW0pKTsKPiA+ICAgICAgICAgICAgICAgbWVt LnZyYW0udG90YWxfaGVhcF9zaXplID0gYWRldi0+Z21jLnJlYWxfdnJhbV9zaXplOwo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwo+ID4gaW5kZXggY2VkNDE4 Y2JhMmY3Li5jZTk4ZGY1YjBjMjEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9vYmplY3QuYwo+ID4gQEAgLTQ0Miw3ICs0NDIsNyBAQCB2b2lkIGFtZGdwdV9i b19mcmVlX2tlcm5lbChzdHJ1Y3QgYW1kZ3B1X2JvICoqYm8sIHU2NCAqZ3B1X2FkZHIsCj4gPiAg IHN0YXRpYyBib29sIGFtZGdwdV9ib192YWxpZGF0ZV9zaXplKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgc2l6ZSwgdTMyIGRvbWFpbikKPiA+ICAgewo+ID4gLSAgICAgc3RydWN0IHR0bV9t ZW1fdHlwZV9tYW5hZ2VyICptYW4gPSBOVUxMOwo+ID4gKyAgICAgc3RydWN0IHR0bV9yZXNvdXJj ZV9tYW5hZ2VyICptYW4gPSBOVUxMOwo+ID4KPiA+ICAgICAgIC8qCj4gPiAgICAgICAgKiBJZiBH VFQgaXMgcGFydCBvZiByZXF1ZXN0ZWQgZG9tYWlucyB0aGUgY2hlY2sgbXVzdCBzdWNjZWVkIHRv Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCj4gPiBpbmRleCBiMTkw ZDUwZGM5YmIuLmNhZTdlYWRhNzIxNSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3R0bS5jCj4gPiBAQCAtMjAzMCw3ICsyMDMwLDcgQEAgdm9pZCBhbWRncHVfdHRt X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gPiAgICAqLwo+ID4gICB2b2lkIGFt ZGdwdV90dG1fc2V0X2J1ZmZlcl9mdW5jc19zdGF0dXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsIGJvb2wgZW5hYmxlKQo+ID4gICB7Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21h bmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJmFkZXYtPm1tYW4uYmRldiwgVFRNX1BMX1ZS QU0pOwo+ID4gKyAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFu YWdlcl90eXBlKCZhZGV2LT5tbWFuLmJkZXYsIFRUTV9QTF9WUkFNKTsKPiA+ICAgICAgIHVpbnQ2 NF90IHNpemU7Cj4gPiAgICAgICBpbnQgcjsKPiA+Cj4gPiBAQCAtMjI1Miw3ICsyMjUyLDcgQEAg c3RhdGljIGludCBhbWRncHVfbW1fZHVtcF90YWJsZShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQg KmRhdGEpCj4gPiAgICAgICB1bnNpZ25lZCB0dG1fcGwgPSAodWludHB0cl90KW5vZGUtPmluZm9f ZW50LT5kYXRhOwo+ID4gICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9y LT5kZXY7Cj4gPiAgICAgICBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9IHR0bV9t YW5hZ2VyX3R5cGUoJmFkZXYtPm1tYW4uYmRldiwgdHRtX3BsKTsKPiA+ICsgICAgIHN0cnVjdCB0 dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5i ZGV2LCB0dG1fcGwpOwo+ID4gICAgICAgc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2Zp bGVfcHJpbnRlcihtKTsKPiA+Cj4gPiAgICAgICBtYW4tPmZ1bmMtPmRlYnVnKG1hbiwgJnApOwo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaCBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAo+ID4gaW5kZXggYzAxZmRi M2YwNDU4Li4zZGIyOWFlMWY4MDIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdHRtLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV90dG0uaAo+ID4gQEAgLTczLDggKzczLDggQEAgaW50IGFtZGdwdV92cmFtX21ncl9p bml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKPiA+ICAgdm9pZCBhbWRncHVfdnJhbV9t Z3JfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4gPgo+ID4gICBib29sIGFtZGdw dV9ndHRfbWdyX2hhc19nYXJ0X2FkZHIoc3RydWN0IHR0bV9tZW1fcmVnICptZW0pOwo+ID4gLXVp bnQ2NF90IGFtZGdwdV9ndHRfbWdyX3VzYWdlKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAq bWFuKTsKPiA+IC1pbnQgYW1kZ3B1X2d0dF9tZ3JfcmVjb3ZlcihzdHJ1Y3QgdHRtX21lbV90eXBl X21hbmFnZXIgKm1hbik7Cj4gPiArdWludDY0X3QgYW1kZ3B1X2d0dF9tZ3JfdXNhZ2Uoc3RydWN0 IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4pOwo+ID4gK2ludCBhbWRncHVfZ3R0X21ncl9yZWNv dmVyKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuKTsKPiA+Cj4gPiAgIHU2NCBhbWRn cHVfdnJhbV9tZ3JfYm9fdmlzaWJsZV9zaXplKHN0cnVjdCBhbWRncHVfYm8gKmJvKTsKPiA+ICAg aW50IGFtZGdwdV92cmFtX21ncl9hbGxvY19zZ3Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs Cj4gPiBAQCAtODYsOCArODYsOCBAQCB2b2lkIGFtZGdwdV92cmFtX21ncl9mcmVlX3NndChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgZGV2aWNlICpkZXYsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBk bWFfZGF0YV9kaXJlY3Rpb24gZGlyLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBzZ190YWJsZSAqc2d0KTsKPiA+IC11aW50NjRfdCBhbWRncHVfdnJhbV9tZ3JfdXNhZ2Uo c3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4pOwo+ID4gLXVpbnQ2NF90IGFtZGdwdV92 cmFtX21ncl92aXNfdXNhZ2Uoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4pOwo+ID4g K3VpbnQ2NF90IGFtZGdwdV92cmFtX21ncl91c2FnZShzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFn ZXIgKm1hbik7Cj4gPiArdWludDY0X3QgYW1kZ3B1X3ZyYW1fbWdyX3Zpc191c2FnZShzdHJ1Y3Qg dHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbik7Cj4gPgo+ID4gICBpbnQgYW1kZ3B1X3R0bV9pbml0 KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKPiA+ICAgdm9pZCBhbWRncHVfdHRtX2xhdGVf aW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZyYW1fbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdnJhbV9tZ3IuYwo+ID4gaW5kZXggOGNjNDRjM2QyZmRkLi5iMjI3 ZTM4MDA5NGYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdnJhbV9tZ3IuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3ZyYW1fbWdyLmMKPiA+IEBAIC0yOSw3ICsyOSw3IEBACj4gPiAgICNpbmNsdWRlICJhdG9tLmgi Cj4gPgo+ID4gICBzdHJ1Y3QgYW1kZ3B1X3ZyYW1fbWdyIHsKPiA+IC0gICAgIHN0cnVjdCB0dG1f bWVtX3R5cGVfbWFuYWdlciBtYW5hZ2VyOwo+ID4gKyAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9t YW5hZ2VyIG1hbmFnZXI7Cj4gPiAgICAgICBzdHJ1Y3QgZHJtX21tIG1tOwo+ID4gICAgICAgc3Bp bmxvY2tfdCBsb2NrOwo+ID4gICAgICAgYXRvbWljNjRfdCB1c2FnZTsKPiA+IEBAIC0zNyw3ICsz Nyw3IEBAIHN0cnVjdCBhbWRncHVfdnJhbV9tZ3Igewo+ID4gICAgICAgc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXY7Cj4gPiAgIH07Cj4gPgo+ID4gLXN0YXRpYyBpbmxpbmUgc3RydWN0IGFtZGdw dV92cmFtX21nciAqdG9fdnJhbV9tZ3Ioc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4p Cj4gPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgYW1kZ3B1X3ZyYW1fbWdyICp0b192cmFtX21ncihz dHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbikKPiA+ICAgewo+ID4gICAgICAgcmV0dXJu IGNvbnRhaW5lcl9vZihtYW4sIHN0cnVjdCBhbWRncHVfdnJhbV9tZ3IsIG1hbmFnZXIpOwo+ID4g ICB9Cj4gPiBAQCAtODksNyArODksNyBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfbWVtX2luZm9f dnJhbV91c2VkX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAo+ID4gICB7Cj4gPiAgICAgICBzdHJ1 Y3QgZHJtX2RldmljZSAqZGRldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ID4gICAgICAgc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZGV2LT5kZXZfcHJpdmF0ZTsKPiA+IC0gICAgIHN0 cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+ bW1hbi5iZGV2LCBUVE1fUExfVlJBTSk7Cj4gPiArICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21h bmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJmFkZXYtPm1tYW4uYmRldiwgVFRNX1BMX1ZS QU0pOwo+ID4gICAgICAgcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJWxsdVxuIiwK PiA+ICAgICAgICAgICAgICAgICAgICAgICBhbWRncHVfdnJhbV9tZ3JfdXNhZ2UobWFuKSk7Cj4g PiAgIH0KPiA+IEBAIC0xMDcsNyArMTA3LDcgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X21lbV9p bmZvX3Zpc192cmFtX3VzZWRfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gPiAgIHsKPiA+ICAg ICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gPiAg ICAgICBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRkZXYtPmRldl9wcml2YXRlOwo+ID4g LSAgICAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBl KCZhZGV2LT5tbWFuLmJkZXYsIFRUTV9QTF9WUkFNKTsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVz b3VyY2VfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LCBU VE1fUExfVlJBTSk7Cj4gPiAgICAgICByZXR1cm4gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIl bGx1XG4iLAo+ID4gICAgICAgICAgICAgICAgICAgICAgIGFtZGdwdV92cmFtX21ncl92aXNfdXNh Z2UobWFuKSk7Cj4gPiAgIH0KPiA+IEBAIC0xNjUsNyArMTY1LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBhdHRyaWJ1dGUgKmFtZGdwdV92cmFtX21ncl9hdHRyaWJ1dGVzW10gPSB7Cj4gPiAgICAg ICBOVUxMCj4gPiAgIH07Cj4gPgo+ID4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX21lbV90eXBl X21hbmFnZXJfZnVuYyBhbWRncHVfdnJhbV9tZ3JfZnVuYzsKPiA+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2Z1bmMgYW1kZ3B1X3ZyYW1fbWdyX2Z1bmM7Cj4gPgo+ ID4gICAvKioKPiA+ICAgICogYW1kZ3B1X3ZyYW1fbWdyX2luaXQgLSBpbml0IFZSQU0gbWFuYWdl ciBhbmQgRFJNIE1NCj4gPiBAQCAtMTc3LDcgKzE3Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg dHRtX21lbV90eXBlX21hbmFnZXJfZnVuYyBhbWRncHVfdnJhbV9tZ3JfZnVuYzsKPiA+ICAgICov Cj4gPiAgIGludCBhbWRncHVfdnJhbV9tZ3JfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKPiA+ICAgewo+ID4gLSAgICAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW47Cj4g PiArICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbjsKPiA+ICAgICAgIHN0cnVj dCBhbWRncHVfdnJhbV9tZ3IgKm1ncjsKPiA+ICAgICAgIGludCByZXQ7Cj4gPgo+ID4gQEAgLTE5 MCw3ICsxOTAsNyBAQCBpbnQgYW1kZ3B1X3ZyYW1fbWdyX2luaXQoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCj4gPiAgICAgICBtYW4tPmF2YWlsYWJsZV9jYWNoaW5nID0gVFRNX1BMX0ZMQUdf VU5DQUNIRUQgfCBUVE1fUExfRkxBR19XQzsKPiA+ICAgICAgIG1hbi0+ZGVmYXVsdF9jYWNoaW5n ID0gVFRNX1BMX0ZMQUdfV0M7Cj4gPgo+ID4gLSAgICAgdHRtX21lbV90eXBlX21hbmFnZXJfaW5p dChtYW4sIGFkZXYtPmdtYy5yZWFsX3ZyYW1fc2l6ZSA+PiBQQUdFX1NISUZUKTsKPiA+ICsgICAg IHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2luaXQobWFuLCBhZGV2LT5nbWMucmVhbF92cmFtX3NpemUg Pj4gUEFHRV9TSElGVCk7Cj4gPgo+ID4gICAgICAgbWFuLT5mdW5jID0gJmFtZGdwdV92cmFtX21n cl9mdW5jOwo+ID4KPiA+IEBAIC0yMDUsNyArMjA1LDcgQEAgaW50IGFtZGdwdV92cmFtX21ncl9p bml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ID4gICAgICAgICAgICAgICBEUk1fRVJS T1IoIkZhaWxlZCB0byByZWdpc3RlciBzeXNmc1xuIik7Cj4gPgo+ID4gICAgICAgdHRtX3NldF9k cml2ZXJfbWFuYWdlcigmYWRldi0+bW1hbi5iZGV2LCBUVE1fUExfVlJBTSwgJm1nci0+bWFuYWdl cik7Cj4gPiAtICAgICB0dG1fbWVtX3R5cGVfbWFuYWdlcl9zZXRfdXNlZChtYW4sIHRydWUpOwo+ ID4gKyAgICAgdHRtX3Jlc291cmNlX21hbmFnZXJfc2V0X3VzZWQobWFuLCB0cnVlKTsKPiA+ICAg ICAgIHJldHVybiAwOwo+ID4gICB9Cj4gPgo+ID4gQEAgLTIxOSwxMyArMjE5LDEzIEBAIGludCBh bWRncHVfdnJhbV9tZ3JfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiA+ICAgICov Cj4gPiAgIHZvaWQgYW1kZ3B1X3ZyYW1fbWdyX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpCj4gPiAgIHsKPiA+IC0gICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0g dHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LCBUVE1fUExfVlJBTSk7Cj4gPiArICAg ICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJmFk ZXYtPm1tYW4uYmRldiwgVFRNX1BMX1ZSQU0pOwo+ID4gICAgICAgc3RydWN0IGFtZGdwdV92cmFt X21nciAqbWdyID0gdG9fdnJhbV9tZ3IobWFuKTsKPiA+ICAgICAgIGludCByZXQ7Cj4gPgo+ID4g LSAgICAgdHRtX21lbV90eXBlX21hbmFnZXJfc2V0X3VzZWQobWFuLCBmYWxzZSk7Cj4gPiArICAg ICB0dG1fcmVzb3VyY2VfbWFuYWdlcl9zZXRfdXNlZChtYW4sIGZhbHNlKTsKPiA+Cj4gPiAtICAg ICByZXQgPSB0dG1fbWVtX3R5cGVfbWFuYWdlcl9mb3JjZV9saXN0X2NsZWFuKCZhZGV2LT5tbWFu LmJkZXYsIG1hbik7Cj4gPiArICAgICByZXQgPSB0dG1fcmVzb3VyY2VfbWFuYWdlcl9mb3JjZV9s aXN0X2NsZWFuKCZhZGV2LT5tbWFuLmJkZXYsIG1hbik7Cj4gPiAgICAgICBpZiAocmV0KQo+ID4g ICAgICAgICAgICAgICByZXR1cm47Cj4gPgo+ID4gQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIGFt ZGdwdV92cmFtX21ncl9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ID4KPiA+ICAg ICAgIHN5c2ZzX3JlbW92ZV9maWxlcygmYWRldi0+ZGV2LT5rb2JqLCBhbWRncHVfdnJhbV9tZ3Jf YXR0cmlidXRlcyk7Cj4gPgo+ID4gLSAgICAgdHRtX21lbV90eXBlX21hbmFnZXJfY2xlYW51cCht YW4pOwo+ID4gKyAgICAgdHRtX3Jlc291cmNlX21hbmFnZXJfY2xlYW51cChtYW4pOwo+ID4gICAg ICAgdHRtX3NldF9kcml2ZXJfbWFuYWdlcigmYWRldi0+bW1hbi5iZGV2LCBUVE1fUExfVlJBTSwg TlVMTCk7Cj4gPiAgICAgICBrZnJlZShtZ3IpOwo+ID4gICB9Cj4gPiBAQCAtMzIxLDcgKzMyMSw3 IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV92cmFtX21ncl92aXJ0X3N0YXJ0KHN0cnVjdCB0dG1fbWVt X3JlZyAqbWVtLAo+ID4gICAgKgo+ID4gICAgKiBBbGxvY2F0ZSBWUkFNIGZvciB0aGUgZ2l2ZW4g Qk8uCj4gPiAgICAqLwo+ID4gLXN0YXRpYyBpbnQgYW1kZ3B1X3ZyYW1fbWdyX25ldyhzdHJ1Y3Qg dHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiA+ICtzdGF0aWMgaW50IGFtZGdwdV92cmFtX21n cl9uZXcoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqdGJvLAo+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwKPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4g PiBAQCAtNDM5LDcgKzQzOSw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3ZyYW1fbWdyX25ldyhzdHJ1 Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiA+ICAgICoKPiA+ICAgICogRnJlZSB0aGUg YWxsb2NhdGVkIFZSQU0gYWdhaW4uCj4gPiAgICAqLwo+ID4gLXN0YXRpYyB2b2lkIGFtZGdwdV92 cmFtX21ncl9kZWwoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gPiArc3RhdGlj IHZvaWQgYW1kZ3B1X3ZyYW1fbWdyX2RlbChzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1h biwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAq bWVtKQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3QgYW1kZ3B1X3ZyYW1fbWdyICptZ3IgPSB0b192 cmFtX21ncihtYW4pOwo+ID4gQEAgLTU3Myw3ICs1NzMsNyBAQCB2b2lkIGFtZGdwdV92cmFtX21n cl9mcmVlX3NndChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiA+ICAgICoKPiA+ICAgICog UmV0dXJucyBob3cgbWFueSBieXRlcyBhcmUgdXNlZCBpbiB0aGlzIGRvbWFpbi4KPiA+ICAgICov Cj4gPiAtdWludDY0X3QgYW1kZ3B1X3ZyYW1fbWdyX3VzYWdlKHN0cnVjdCB0dG1fbWVtX3R5cGVf bWFuYWdlciAqbWFuKQo+ID4gK3VpbnQ2NF90IGFtZGdwdV92cmFtX21ncl91c2FnZShzdHJ1Y3Qg dHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbikKPiA+ICAgewo+ID4gICAgICAgc3RydWN0IGFtZGdw dV92cmFtX21nciAqbWdyID0gdG9fdnJhbV9tZ3IobWFuKTsKPiA+Cj4gPiBAQCAtNTg3LDcgKzU4 Nyw3IEBAIHVpbnQ2NF90IGFtZGdwdV92cmFtX21ncl91c2FnZShzdHJ1Y3QgdHRtX21lbV90eXBl X21hbmFnZXIgKm1hbikKPiA+ICAgICoKPiA+ICAgICogUmV0dXJucyBob3cgbWFueSBieXRlcyBh cmUgdXNlZCBpbiB0aGUgdmlzaWJsZSBwYXJ0IG9mIFZSQU0KPiA+ICAgICovCj4gPiAtdWludDY0 X3QgYW1kZ3B1X3ZyYW1fbWdyX3Zpc191c2FnZShzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIg Km1hbikKPiA+ICt1aW50NjRfdCBhbWRncHVfdnJhbV9tZ3JfdmlzX3VzYWdlKHN0cnVjdCB0dG1f cmVzb3VyY2VfbWFuYWdlciAqbWFuKQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3QgYW1kZ3B1X3Zy YW1fbWdyICptZ3IgPSB0b192cmFtX21ncihtYW4pOwo+ID4KPiA+IEBAIC02MDIsNyArNjAyLDcg QEAgdWludDY0X3QgYW1kZ3B1X3ZyYW1fbWdyX3Zpc191c2FnZShzdHJ1Y3QgdHRtX21lbV90eXBl X21hbmFnZXIgKm1hbikKPiA+ICAgICoKPiA+ICAgICogRHVtcCB0aGUgdGFibGUgY29udGVudCB1 c2luZyBwcmludGsuCj4gPiAgICAqLwo+ID4gLXN0YXRpYyB2b2lkIGFtZGdwdV92cmFtX21ncl9k ZWJ1ZyhzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiA+ICtzdGF0aWMgdm9pZCBh bWRncHVfdnJhbV9tZ3JfZGVidWcoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fcHJpbnRlciAqcHJp bnRlcikKPiA+ICAgewo+ID4gICAgICAgc3RydWN0IGFtZGdwdV92cmFtX21nciAqbWdyID0gdG9f dnJhbV9tZ3IobWFuKTsKPiA+IEBAIC02MTYsNyArNjE2LDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1 X3ZyYW1fbWdyX2RlYnVnKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ID4gICAg ICAgICAgICAgICAgICBhbWRncHVfdnJhbV9tZ3JfdmlzX3VzYWdlKG1hbikgPj4gMjApOwo+ID4g ICB9Cj4gPgo+ID4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJfZnVu YyBhbWRncHVfdnJhbV9tZ3JfZnVuYyA9IHsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHR0bV9y ZXNvdXJjZV9tYW5hZ2VyX2Z1bmMgYW1kZ3B1X3ZyYW1fbWdyX2Z1bmMgPSB7Cj4gPiAgICAgICAu Z2V0X25vZGUgICAgICAgPSBhbWRncHVfdnJhbV9tZ3JfbmV3LAo+ID4gICAgICAgLnB1dF9ub2Rl ICAgICAgID0gYW1kZ3B1X3ZyYW1fbWdyX2RlbCwKPiA+ICAgICAgIC5kZWJ1ZyAgICAgICAgICA9 IGFtZGdwdV92cmFtX21ncl9kZWJ1Zwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fZ2VtX3ZyYW1faGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBl ci5jCj4gPiBpbmRleCAyMTg3Nzg3ZjM5N2UuLmUzNjYwZDAwOTg3ZCAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMKPiA+IEBAIC0xMDc1LDEwICsxMDc1LDEwIEBA IHN0YXRpYyBpbnQgZHJtX3ZyYW1fbW1fZGVidWdmcyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQg KmRhdGEpCj4gPiAgIHsKPiA+ICAgICAgIHN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gKHN0 cnVjdCBkcm1faW5mb19ub2RlICopIG0tPnByaXZhdGU7Cj4gPiAgICAgICBzdHJ1Y3QgZHJtX3Zy YW1fbW0gKnZtbSA9IG5vZGUtPm1pbm9yLT5kZXYtPnZyYW1fbW07Cj4gPiAtICAgICBzdHJ1Y3Qg dHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJnZtbS0+YmRldiwg VFRNX1BMX1ZSQU0pOwo+ID4gKyAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4g PSB0dG1fbWFuYWdlcl90eXBlKCZ2bW0tPmJkZXYsIFRUTV9QTF9WUkFNKTsKPiA+ICAgICAgIHN0 cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7Cj4gPgo+ID4gLSAg ICAgdHRtX21lbV90eXBlX21hbmFnZXJfZGVidWcobWFuLCAmcCk7Cj4gPiArICAgICB0dG1fcmVz b3VyY2VfbWFuYWdlcl9kZWJ1ZyhtYW4sICZwKTsKPiA+ICAgICAgIHJldHVybiAwOwo+ID4gICB9 Cj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdHRt LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5jCj4gPiBpbmRleCAzOGEw ZTRiZDE2ZjcuLmQ2YWQwOTc3ZGM3ZCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L25vdXZlYXVfdHRtLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfdHRtLmMKPiA+IEBAIC0zMiwxMyArMzIsMTMgQEAKPiA+ICAgI2luY2x1ZGUgPGNvcmUv dGVncmEuaD4KPiA+Cj4gPiAgIHN0YXRpYyB2b2lkCj4gPiAtbm91dmVhdV9tYW5hZ2VyX2RlbChz dHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwgc3RydWN0IHR0bV9tZW1fcmVnICpyZWcp Cj4gPiArbm91dmVhdV9tYW5hZ2VyX2RlbChzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1h biwgc3RydWN0IHR0bV9tZW1fcmVnICpyZWcpCj4gPiAgIHsKPiA+ICAgICAgIG5vdXZlYXVfbWVt X2RlbChyZWcpOwo+ID4gICB9Cj4gPgo+ID4gICBzdGF0aWMgaW50Cj4gPiAtbm91dmVhdV92cmFt X21hbmFnZXJfbmV3KHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ID4gK25vdXZl YXVfdnJhbV9tYW5hZ2VyX25ldyhzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UsCj4g PiAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqcmVnKQo+ID4gQEAg LTYzLDEzICs2MywxMyBAQCBub3V2ZWF1X3ZyYW1fbWFuYWdlcl9uZXcoc3RydWN0IHR0bV9tZW1f dHlwZV9tYW5hZ2VyICptYW4sCj4gPiAgICAgICByZXR1cm4gMDsKPiA+ICAgfQo+ID4KPiA+IC1j b25zdCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJfZnVuYyBub3V2ZWF1X3ZyYW1fbWFuYWdl ciA9IHsKPiA+ICtjb25zdCBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXJfZnVuYyBub3V2ZWF1 X3ZyYW1fbWFuYWdlciA9IHsKPiA+ICAgICAgIC5nZXRfbm9kZSA9IG5vdXZlYXVfdnJhbV9tYW5h Z2VyX25ldywKPiA+ICAgICAgIC5wdXRfbm9kZSA9IG5vdXZlYXVfbWFuYWdlcl9kZWwsCj4gPiAg IH07Cj4gPgo+ID4gICBzdGF0aWMgaW50Cj4gPiAtbm91dmVhdV9nYXJ0X21hbmFnZXJfbmV3KHN0 cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ID4gK25vdXZlYXVfZ2FydF9tYW5hZ2Vy X25ldyhzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UsCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqcmVnKQo+ID4gQEAgLTg2LDEzICs4NiwxMyBA QCBub3V2ZWF1X2dhcnRfbWFuYWdlcl9uZXcoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICpt YW4sCj4gPiAgICAgICByZXR1cm4gMDsKPiA+ICAgfQo+ID4KPiA+IC1jb25zdCBzdHJ1Y3QgdHRt X21lbV90eXBlX21hbmFnZXJfZnVuYyBub3V2ZWF1X2dhcnRfbWFuYWdlciA9IHsKPiA+ICtjb25z dCBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXJfZnVuYyBub3V2ZWF1X2dhcnRfbWFuYWdlciA9 IHsKPiA+ICAgICAgIC5nZXRfbm9kZSA9IG5vdXZlYXVfZ2FydF9tYW5hZ2VyX25ldywKPiA+ICAg ICAgIC5wdXRfbm9kZSA9IG5vdXZlYXVfbWFuYWdlcl9kZWwsCj4gPiAgIH07Cj4gPgo+ID4gICBz dGF0aWMgaW50Cj4gPiAtbnYwNF9nYXJ0X21hbmFnZXJfbmV3KHN0cnVjdCB0dG1fbWVtX3R5cGVf bWFuYWdlciAqbWFuLAo+ID4gK252MDRfZ2FydF9tYW5hZ2VyX25ldyhzdHJ1Y3QgdHRtX3Jlc291 cmNlX21hbmFnZXIgKm1hbiwKPiA+ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKPiA+ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9w bGFjZSAqcGxhY2UsCj4gPiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAq cmVnKQo+ID4gQEAgLTExOCw3ICsxMTgsNyBAQCBudjA0X2dhcnRfbWFuYWdlcl9uZXcoc3RydWN0 IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gPiAgICAgICByZXR1cm4gMDsKPiA+ICAgfQo+ ID4KPiA+IC1jb25zdCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJfZnVuYyBudjA0X2dhcnRf bWFuYWdlciA9IHsKPiA+ICtjb25zdCBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXJfZnVuYyBu djA0X2dhcnRfbWFuYWdlciA9IHsKPiA+ICAgICAgIC5nZXRfbm9kZSA9IG52MDRfZ2FydF9tYW5h Z2VyX25ldywKPiA+ICAgICAgIC5wdXRfbm9kZSA9IG5vdXZlYXVfbWFuYWdlcl9kZWwsCj4gPiAg IH07Cj4gPiBAQCAtMTYwLDcgKzE2MCw3IEBAIG5vdXZlYXVfdHRtX2luaXRfdnJhbShzdHJ1Y3Qg bm91dmVhdV9kcm0gKmRybSkKPiA+ICAgICAgIGlmIChkcm0tPmNsaWVudC5kZXZpY2UuaW5mby5m YW1pbHkgPj0gTlZfREVWSUNFX0lORk9fVjBfVEVTTEEpIHsKPiA+ICAgICAgICAgICAgICAgLyog U29tZSBCQVJzIGRvIG5vdCBzdXBwb3J0IGJlaW5nIGlvcmVtYXBwZWQgV0MgKi8KPiA+ICAgICAg ICAgICAgICAgY29uc3QgdTggdHlwZSA9IG1tdS0+dHlwZVtkcm0tPnR0bS50eXBlX3ZyYW1dLnR5 cGU7Cj4gPiAtICAgICAgICAgICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0g a3phbGxvYyhzaXplb2Yoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyKSwgR0ZQX0tFUk5FTCk7 Cj4gPiArICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0ga3ph bGxvYyhzaXplb2Yoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyKSwgR0ZQX0tFUk5FTCk7Cj4g PiAgICAgICAgICAgICAgIGlmICghbWFuKQo+ID4gICAgICAgICAgICAgICAgICAgICAgIHJldHVy biAtRU5PTUVNOwo+ID4KPiA+IEBAIC0xNzUsMTAgKzE3NSwxMCBAQCBub3V2ZWF1X3R0bV9pbml0 X3ZyYW0oc3RydWN0IG5vdXZlYXVfZHJtICpkcm0pCj4gPiAgICAgICAgICAgICAgIG1hbi0+ZnVu YyA9ICZub3V2ZWF1X3ZyYW1fbWFuYWdlcjsKPiA+ICAgICAgICAgICAgICAgbWFuLT51c2VfaW9f cmVzZXJ2ZV9scnUgPSB0cnVlOwo+ID4KPiA+IC0gICAgICAgICAgICAgdHRtX21lbV90eXBlX21h bmFnZXJfaW5pdChtYW4sCj4gPiArICAgICAgICAgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2lu aXQobWFuLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRybS0+ Z2VtLnZyYW1fYXZhaWxhYmxlID4+IFBBR0VfU0hJRlQpOwo+ID4gICAgICAgICAgICAgICB0dG1f c2V0X2RyaXZlcl9tYW5hZ2VyKCZkcm0tPnR0bS5iZGV2LCBUVE1fUExfVlJBTSwgbWFuKTsKPiA+ IC0gICAgICAgICAgICAgdHRtX21lbV90eXBlX21hbmFnZXJfc2V0X3VzZWQobWFuLCB0cnVlKTsK PiA+ICsgICAgICAgICAgICAgdHRtX3Jlc291cmNlX21hbmFnZXJfc2V0X3VzZWQobWFuLCB0cnVl KTsKPiA+ICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gPiAgICAgICB9IGVsc2Ugewo+ID4gICAg ICAgICAgICAgICByZXR1cm4gdHRtX3JhbmdlX21hbl9pbml0KCZkcm0tPnR0bS5iZGV2LCBUVE1f UExfVlJBTSwKPiA+IEBAIC0xOTEsMTIgKzE5MSwxMiBAQCBub3V2ZWF1X3R0bV9pbml0X3ZyYW0o c3RydWN0IG5vdXZlYXVfZHJtICpkcm0pCj4gPiAgIHN0YXRpYyB2b2lkCj4gPiAgIG5vdXZlYXVf dHRtX2ZpbmlfdnJhbShzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSkKPiA+ICAgewo+ID4gLSAgICAg c3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKCZkcm0t PnR0bS5iZGV2LCBUVE1fUExfVlJBTSk7Cj4gPiArICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21h bmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJmRybS0+dHRtLmJkZXYsIFRUTV9QTF9WUkFN KTsKPiA+Cj4gPiAgICAgICBpZiAoZHJtLT5jbGllbnQuZGV2aWNlLmluZm8uZmFtaWx5ID49IE5W X0RFVklDRV9JTkZPX1YwX1RFU0xBKSB7Cj4gPiAtICAgICAgICAgICAgIHR0bV9tZW1fdHlwZV9t YW5hZ2VyX3NldF91c2VkKG1hbiwgZmFsc2UpOwo+ID4gLSAgICAgICAgICAgICB0dG1fbWVtX3R5 cGVfbWFuYWdlcl9mb3JjZV9saXN0X2NsZWFuKCZkcm0tPnR0bS5iZGV2LCBtYW4pOwo+ID4gLSAg ICAgICAgICAgICB0dG1fbWVtX3R5cGVfbWFuYWdlcl9jbGVhbnVwKG1hbik7Cj4gPiArICAgICAg ICAgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgZmFsc2UpOwo+ID4gKyAg ICAgICAgICAgICB0dG1fcmVzb3VyY2VfbWFuYWdlcl9mb3JjZV9saXN0X2NsZWFuKCZkcm0tPnR0 bS5iZGV2LCBtYW4pOwo+ID4gKyAgICAgICAgICAgICB0dG1fcmVzb3VyY2VfbWFuYWdlcl9jbGVh bnVwKG1hbik7Cj4gPiAgICAgICAgICAgICAgIHR0bV9zZXRfZHJpdmVyX21hbmFnZXIoJmRybS0+ dHRtLmJkZXYsIFRUTV9QTF9WUkFNLCBOVUxMKTsKPiA+ICAgICAgICAgICAgICAga2ZyZWUobWFu KTsKPiA+ICAgICAgIH0gZWxzZQo+ID4gQEAgLTIwNiwxMCArMjA2LDEwIEBAIG5vdXZlYXVfdHRt X2ZpbmlfdnJhbShzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSkKPiA+ICAgc3RhdGljIGludAo+ID4g ICBub3V2ZWF1X3R0bV9pbml0X2d0dChzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSkKPiA+ICAgewo+ ID4gLSAgICAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW47Cj4gPiArICAgICBzdHJ1 Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbjsKPiA+ICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6 ZV9wYWdlcyA9IGRybS0+Z2VtLmdhcnRfYXZhaWxhYmxlID4+IFBBR0VfU0hJRlQ7Cj4gPiAgICAg ICB1bnNpZ25lZCBhdmFpbGFibGVfY2FjaGluZywgZGVmYXVsdF9jYWNoaW5nOwo+ID4gLSAgICAg Y29uc3Qgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2Z1bmMgKmZ1bmMgPSBOVUxMOwo+ID4g KyAgICAgY29uc3Qgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2Z1bmMgKmZ1bmMgPSBOVUxM Owo+ID4gICAgICAgaWYgKGRybS0+YWdwLmJyaWRnZSkgewo+ID4gICAgICAgICAgICAgICBhdmFp bGFibGVfY2FjaGluZyA9IFRUTV9QTF9GTEFHX1VOQ0FDSEVEIHwKPiA+ICAgICAgICAgICAgICAg ICAgICAgICBUVE1fUExfRkxBR19XQzsKPiA+IEBAIC0yMjksNyArMjI5LDcgQEAgbm91dmVhdV90 dG1faW5pdF9ndHQoc3RydWN0IG5vdXZlYXVfZHJtICpkcm0pCj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplX3BhZ2VzKTsKPiA+Cj4gPiAtICAgICBtYW4gPSBremFsbG9j KHNpemVvZihzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIpLCBHRlBfS0VSTkVMKTsKPiA+ICsg ICAgIG1hbiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciksIEdG UF9LRVJORUwpOwo+ID4gICAgICAgaWYgKCFtYW4pCj4gPiAgICAgICAgICAgICAgIHJldHVybiAt RU5PTUVNOwo+ID4KPiA+IEBAIC0yMzcsMjQgKzIzNywyNCBAQCBub3V2ZWF1X3R0bV9pbml0X2d0 dChzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSkKPiA+ICAgICAgIG1hbi0+YXZhaWxhYmxlX2NhY2hp bmcgPSBhdmFpbGFibGVfY2FjaGluZzsKPiA+ICAgICAgIG1hbi0+ZGVmYXVsdF9jYWNoaW5nID0g ZGVmYXVsdF9jYWNoaW5nOwo+ID4gICAgICAgbWFuLT51c2VfdHQgPSB0cnVlOwo+ID4gLSAgICAg dHRtX21lbV90eXBlX21hbmFnZXJfaW5pdChtYW4sIHNpemVfcGFnZXMpOwo+ID4gKyAgICAgdHRt X3Jlc291cmNlX21hbmFnZXJfaW5pdChtYW4sIHNpemVfcGFnZXMpOwo+ID4gICAgICAgdHRtX3Nl dF9kcml2ZXJfbWFuYWdlcigmZHJtLT50dG0uYmRldiwgVFRNX1BMX1RULCBtYW4pOwo+ID4gLSAg ICAgdHRtX21lbV90eXBlX21hbmFnZXJfc2V0X3VzZWQobWFuLCB0cnVlKTsKPiA+ICsgICAgIHR0 bV9yZXNvdXJjZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgdHJ1ZSk7Cj4gPiAgICAgICByZXR1cm4g MDsKPiA+ICAgfQo+ID4KPiA+ICAgc3RhdGljIHZvaWQKPiA+ICAgbm91dmVhdV90dG1fZmluaV9n dHQoc3RydWN0IG5vdXZlYXVfZHJtICpkcm0pCj4gPiAgIHsKPiA+IC0gICAgIHN0cnVjdCB0dG1f bWVtX3R5cGVfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmZHJtLT50dG0uYmRldiwg VFRNX1BMX1RUKTsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0g dHRtX21hbmFnZXJfdHlwZSgmZHJtLT50dG0uYmRldiwgVFRNX1BMX1RUKTsKPiA+Cj4gPiAgICAg ICBpZiAoZHJtLT5jbGllbnQuZGV2aWNlLmluZm8uZmFtaWx5IDwgTlZfREVWSUNFX0lORk9fVjBf VEVTTEEgJiYKPiA+ICAgICAgICAgICBkcm0tPmFncC5icmlkZ2UpCj4gPiAgICAgICAgICAgICAg IHR0bV9yYW5nZV9tYW5fZmluaSgmZHJtLT50dG0uYmRldiwgVFRNX1BMX1RUKTsKPiA+ICAgICAg IGVsc2Ugewo+ID4gLSAgICAgICAgICAgICB0dG1fbWVtX3R5cGVfbWFuYWdlcl9zZXRfdXNlZCht YW4sIGZhbHNlKTsKPiA+IC0gICAgICAgICAgICAgdHRtX21lbV90eXBlX21hbmFnZXJfZm9yY2Vf bGlzdF9jbGVhbigmZHJtLT50dG0uYmRldiwgbWFuKTsKPiA+IC0gICAgICAgICAgICAgdHRtX21l bV90eXBlX21hbmFnZXJfY2xlYW51cChtYW4pOwo+ID4gKyAgICAgICAgICAgICB0dG1fcmVzb3Vy Y2VfbWFuYWdlcl9zZXRfdXNlZChtYW4sIGZhbHNlKTsKPiA+ICsgICAgICAgICAgICAgdHRtX3Jl c291cmNlX21hbmFnZXJfZm9yY2VfbGlzdF9jbGVhbigmZHJtLT50dG0uYmRldiwgbWFuKTsKPiA+ ICsgICAgICAgICAgICAgdHRtX3Jlc291cmNlX21hbmFnZXJfY2xlYW51cChtYW4pOwo+ID4gICAg ICAgICAgICAgICB0dG1fc2V0X2RyaXZlcl9tYW5hZ2VyKCZkcm0tPnR0bS5iZGV2LCBUVE1fUExf VFQsIE5VTEwpOwo+ID4gICAgICAgICAgICAgICBrZnJlZShtYW4pOwo+ID4gICAgICAgfQo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdHRtLmggYi9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5oCj4gPiBpbmRleCAwODUyODA3NTRiM2Uu LmVhZjI1NDYxY2Q5MSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfdHRtLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdHRt LmgKPiA+IEBAIC04LDkgKzgsOSBAQCBub3V2ZWF1X2JkZXYoc3RydWN0IHR0bV9ib19kZXZpY2Ug KmJkKQo+ID4gICAgICAgcmV0dXJuIGNvbnRhaW5lcl9vZihiZCwgc3RydWN0IG5vdXZlYXVfZHJt LCB0dG0uYmRldik7Cj4gPiAgIH0KPiA+Cj4gPiAtZXh0ZXJuIGNvbnN0IHN0cnVjdCB0dG1fbWVt X3R5cGVfbWFuYWdlcl9mdW5jIG5vdXZlYXVfdnJhbV9tYW5hZ2VyOwo+ID4gLWV4dGVybiBjb25z dCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJfZnVuYyBub3V2ZWF1X2dhcnRfbWFuYWdlcjsK PiA+IC1leHRlcm4gY29uc3Qgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2Z1bmMgbnYwNF9n YXJ0X21hbmFnZXI7Cj4gPiArZXh0ZXJuIGNvbnN0IHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdl cl9mdW5jIG5vdXZlYXVfdnJhbV9tYW5hZ2VyOwo+ID4gK2V4dGVybiBjb25zdCBzdHJ1Y3QgdHRt X3Jlc291cmNlX21hbmFnZXJfZnVuYyBub3V2ZWF1X2dhcnRfbWFuYWdlcjsKPiA+ICtleHRlcm4g Y29uc3Qgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2Z1bmMgbnYwNF9nYXJ0X21hbmFnZXI7 Cj4gPgo+ID4gICBzdHJ1Y3QgdHRtX3R0ICpub3V2ZWF1X3NnZG1hX2NyZWF0ZV90dG0oc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdTMyIHBhZ2VfZmxhZ3MpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9xeGwvcXhsX3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKPiA+IGluZGV4 IGI3MzY1YjJlNGM3Zi4uMWMwNmZlNzgwODE1IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3F4bC9xeGxfdHRtLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3R0bS5j Cj4gPiBAQCAtMjc0LDEwICsyNzQsMTAgQEAgdm9pZCBxeGxfdHRtX2Zpbmkoc3RydWN0IHF4bF9k ZXZpY2UgKnFkZXYpCj4gPiAgIHN0YXRpYyBpbnQgcXhsX21tX2R1bXBfdGFibGUoc3RydWN0IHNl cV9maWxlICptLCB2b2lkICpkYXRhKQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3QgZHJtX2luZm9f bm9kZSAqbm9kZSA9IChzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqKW0tPnByaXZhdGU7Cj4gPiAtICAg ICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9IChzdHJ1Y3QgdHRtX21lbV90eXBl X21hbmFnZXIgKilub2RlLT5pbmZvX2VudC0+ZGF0YTsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVz b3VyY2VfbWFuYWdlciAqbWFuID0gKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqKW5vZGUt PmluZm9fZW50LT5kYXRhOwo+ID4gICAgICAgc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2Vx X2ZpbGVfcHJpbnRlcihtKTsKPiA+Cj4gPiAtICAgICB0dG1fbWVtX3R5cGVfbWFuYWdlcl9kZWJ1 ZyhtYW4sICZwKTsKPiA+ICsgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2RlYnVnKG1hbiwgJnAp Owo+ID4gICAgICAgcmV0dXJuIDA7Cj4gPiAgIH0KPiA+ICAgI2VuZGlmCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9nZW0uYwo+ID4gaW5kZXggM2VjMDI4ZGJhNzM5Li43ZjVkZmUwNDc4OWUg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nZW0uYwo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZ2VtLmMKPiA+IEBAIC0yMjQsNyAr MjI0LDcgQEAgaW50IHJhZGVvbl9nZW1faW5mb19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl diA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiAgICAgICBzdHJ1Y3QgZHJtX3JhZGVvbl9nZW1faW5m byAqYXJncyA9IGRhdGE7Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1h bjsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuOwo+ID4KPiA+ICAg ICAgIG1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJnJkZXYtPm1tYW4uYmRldiwgVFRNX1BMX1ZSQU0p Owo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0u YyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jCj4gPiBpbmRleCA0NzRkMjE2 MWRhMWUuLjA1YjVmMjlmMmI2MSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX3R0bS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90 dG0uYwo+ID4gQEAgLTgzNiw3ICs4MzYsNyBAQCB2b2lkIHJhZGVvbl90dG1fZmluaShzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldikKPiA+ICAgICogaXNuJ3QgcnVubmluZyAqLwo+ID4gICB2b2lk IHJhZGVvbl90dG1fc2V0X2FjdGl2ZV92cmFtX3NpemUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsIHU2NCBzaXplKQo+ID4gICB7Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFn ZXIgKm1hbjsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuOwo+ID4K PiA+ICAgICAgIGlmICghcmRldi0+bW1hbi5pbml0aWFsaXplZCkKPiA+ICAgICAgICAgICAgICAg cmV0dXJuOwo+ID4gQEAgLTg5NSw3ICs4OTUsNyBAQCBzdGF0aWMgaW50IHJhZGVvbl9tbV9kdW1w X3RhYmxlKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiA+ICAgICAgIHVuc2lnbmVk IHR0bV9wbCA9ICooaW50Kilub2RlLT5pbmZvX2VudC0+ZGF0YTsKPiA+ICAgICAgIHN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBub2RlLT5taW5vci0+ZGV2Owo+ID4gICAgICAgc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gLSAgICAgc3RydWN0IHR0bV9t ZW1fdHlwZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKCZyZGV2LT5tbWFuLmJkZXYs IHR0bV9wbCk7Cj4gPiArICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0 bV9tYW5hZ2VyX3R5cGUoJnJkZXYtPm1tYW4uYmRldiwgdHRtX3BsKTsKPiA+ICAgICAgIHN0cnVj dCBkcm1fcHJpbnRlciBwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7Cj4gPgo+ID4gICAgICAg bWFuLT5mdW5jLT5kZWJ1ZyhtYW4sICZwKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdHRtL3R0bV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+ID4gaW5kZXgg N2QxMGFiYWU5YTYwLi40ODg0MGEzY2Y0YzQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vdHRtL3R0bV9iby5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4g PiBAQCAtNzcsNyArNzcsNyBAQCBzdGF0aWMgaW5saW5lIGludCB0dG1fbWVtX3R5cGVfZnJvbV9w bGFjZShjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwKPiA+ICAgICAgIHJldHVybiAwOwo+ ID4gICB9Cj4gPgo+ID4gLXZvaWQgdHRtX21lbV90eXBlX21hbmFnZXJfZGVidWcoc3RydWN0IHR0 bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gPiArdm9pZCB0dG1fcmVzb3VyY2VfbWFuYWdlcl9k ZWJ1ZyhzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fcHJpbnRlciAqcCkKPiA+ICAgewo+ID4gICAgICAg ZHJtX3ByaW50ZihwLCAiICAgIHVzZV90eXBlOiAlZFxuIiwgbWFuLT51c2VfdHlwZSk7Cj4gPiBA QCAtODgsMTQgKzg4LDE0IEBAIHZvaWQgdHRtX21lbV90eXBlX21hbmFnZXJfZGVidWcoc3RydWN0 IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gPiAgICAgICBpZiAobWFuLT5mdW5jICYmIG1h bi0+ZnVuYy0+ZGVidWcpCj4gPiAgICAgICAgICAgICAgICgqbWFuLT5mdW5jLT5kZWJ1ZykobWFu LCBwKTsKPiA+ICAgfQo+ID4gLUVYUE9SVF9TWU1CT0wodHRtX21lbV90eXBlX21hbmFnZXJfZGVi dWcpOwo+ID4gK0VYUE9SVF9TWU1CT0wodHRtX3Jlc291cmNlX21hbmFnZXJfZGVidWcpOwo+ID4K PiA+ICAgc3RhdGljIHZvaWQgdHRtX2JvX21lbV9zcGFjZV9kZWJ1ZyhzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50KQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3Qg ZHJtX3ByaW50ZXIgcCA9IGRybV9kZWJ1Z19wcmludGVyKFRUTV9QRlgpOwo+ID4gICAgICAgaW50 IGksIHJldCwgbWVtX3R5cGU7Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIg Km1hbjsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuOwo+ID4KPiA+ ICAgICAgIGRybV9wcmludGYoJnAsICJObyBzcGFjZSBmb3IgJXAgKCVsdSBwYWdlcywgJWx1Sywg JWx1TSlcbiIsCj4gPiAgICAgICAgICAgICAgICAgIGJvLCBiby0+bWVtLm51bV9wYWdlcywgYm8t Pm1lbS5zaXplID4+IDEwLAo+ID4gQEAgLTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMgdm9pZCB0dG1f Ym9fbWVtX3NwYWNlX2RlYnVnKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gPiAgICAg ICAgICAgICAgIGRybV9wcmludGYoJnAsICIgIHBsYWNlbWVudFslZF09MHglMDhYICglZClcbiIs Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgcGxhY2VtZW50LT5wbGFjZW1lbnRbaV0u ZmxhZ3MsIG1lbV90eXBlKTsKPiA+ICAgICAgICAgICAgICAgbWFuID0gdHRtX21hbmFnZXJfdHlw ZShiby0+YmRldiwgbWVtX3R5cGUpOwo+ID4gLSAgICAgICAgICAgICB0dG1fbWVtX3R5cGVfbWFu YWdlcl9kZWJ1ZyhtYW4sICZwKTsKPiA+ICsgICAgICAgICAgICAgdHRtX3Jlc291cmNlX21hbmFn ZXJfZGVidWcobWFuLCAmcCk7Cj4gPiAgICAgICB9Cj4gPiAgIH0KPiA+Cj4gPiBAQCAtMTQ4LDcg KzE0OCw3IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19hZGRfbWVtX3RvX2xydShzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdHRtX21lbV9yZWcgKm1lbSkKPiA+ICAgewo+ID4gICAgICAgc3RydWN0IHR0bV9ib19kZXZp Y2UgKmJkZXYgPSBiby0+YmRldjsKPiA+IC0gICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdl ciAqbWFuOwo+ID4gKyAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW47Cj4gPgo+ ID4gICAgICAgaWYgKCFsaXN0X2VtcHR5KCZiby0+bHJ1KSkKPiA+ICAgICAgICAgICAgICAgcmV0 dXJuOwo+ID4gQEAgLTIyMyw3ICsyMjMsNyBAQCB2b2lkIHR0bV9ib19idWxrX21vdmVfbHJ1X3Rh aWwoc3RydWN0IHR0bV9scnVfYnVsa19tb3ZlICpidWxrKQo+ID4KPiA+ICAgICAgIGZvciAoaSA9 IDA7IGkgPCBUVE1fTUFYX0JPX1BSSU9SSVRZOyArK2kpIHsKPiA+ICAgICAgICAgICAgICAgc3Ry dWN0IHR0bV9scnVfYnVsa19tb3ZlX3BvcyAqcG9zID0gJmJ1bGstPnR0W2ldOwo+ID4gLSAgICAg ICAgICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbjsKPiA+ICsgICAgICAgICAg ICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW47Cj4gPgo+ID4gICAgICAgICAgICAg ICBpZiAoIXBvcy0+Zmlyc3QpCj4gPiAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4g PiBAQCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgdHRtX2JvX2J1bGtfbW92ZV9scnVfdGFpbChzdHJ1 Y3QgdHRtX2xydV9idWxrX21vdmUgKmJ1bGspCj4gPgo+ID4gICAgICAgZm9yIChpID0gMDsgaSA8 IFRUTV9NQVhfQk9fUFJJT1JJVFk7ICsraSkgewo+ID4gICAgICAgICAgICAgICBzdHJ1Y3QgdHRt X2xydV9idWxrX21vdmVfcG9zICpwb3MgPSAmYnVsay0+dnJhbVtpXTsKPiA+IC0gICAgICAgICAg ICAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW47Cj4gPiArICAgICAgICAgICAgIHN0 cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuOwo+ID4KPiA+ICAgICAgICAgICAgICAgaWYg KCFwb3MtPmZpcnN0KQo+ID4gICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4gQEAg LTI3Miw4ICsyNzIsOCBAQCBzdGF0aWMgaW50IHR0bV9ib19oYW5kbGVfbW92ZV9tZW0oc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4gPiAgIHsKPiA+ICAgICAgIHN0cnVj dCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21l bV90eXBlX21hbmFnZXIgKm9sZF9tYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIGJvLT5tZW0u bWVtX3R5cGUpOwo+ID4gLSAgICAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICpuZXdfbWFu ID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBtZW0tPm1lbV90eXBlKTsKPiA+ICsgICAgIHN0cnVj dCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqb2xkX21hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwg Ym8tPm1lbS5tZW1fdHlwZSk7Cj4gPiArICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIg Km5ld19tYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIG1lbS0+bWVtX3R5cGUpOwo+ID4gICAg ICAgaW50IHJldDsKPiA+Cj4gPiAgICAgICByZXQgPSB0dG1fbWVtX2lvX2xvY2sob2xkX21hbiwg dHJ1ZSk7Cj4gPiBAQCAtNTUxLDcgKzU1MSw3IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19yZWxlYXNl KHN0cnVjdCBrcmVmICprcmVmKQo+ID4gICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi byA9Cj4gPiAgICAgICAgICAgY29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCwga3JlZik7Cj4gPiAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5i ZGV2Owo+ID4gLSAgICAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFu YWdlcl90eXBlKGJkZXYsIGJvLT5tZW0ubWVtX3R5cGUpOwo+ID4gKyAgICAgc3RydWN0IHR0bV9y ZXNvdXJjZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIGJvLT5tZW0ubWVt X3R5cGUpOwo+ID4gICAgICAgc2l6ZV90IGFjY19zaXplID0gYm8tPmFjY19zaXplOwo+ID4gICAg ICAgaW50IHJldDsKPiA+Cj4gPiBAQCAtNzY4LDcgKzc2OCw3IEBAIHN0YXRpYyBpbnQgdHRtX21l bV9ldmljdF93YWl0X2J1c3koc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpidXN5X2JvLAo+ID4g ICB9Cj4gPgo+ID4gICBzdGF0aWMgaW50IHR0bV9tZW1fZXZpY3RfZmlyc3Qoc3RydWN0IHR0bV9i b19kZXZpY2UgKmJkZXYsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UsCj4gPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAo+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRpY2tldCkK PiA+IEBAIC04NDMsNyArODQzLDcgQEAgc3RhdGljIGludCB0dG1fYm9fbWVtX2dldChzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IHR0bV9wbGFjZSAqcGxhY2UsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdHRtX21lbV9yZWcgKm1lbSkKPiA+ICAgewo+ID4gLSAgICAgc3RydWN0IHR0bV9tZW1fdHlw ZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJvLT5iZGV2LCBtZW0tPm1lbV90eXBl KTsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gdHRtX21hbmFn ZXJfdHlwZShiby0+YmRldiwgbWVtLT5tZW1fdHlwZSk7Cj4gPgo+ID4gICAgICAgbWVtLT5tbV9u b2RlID0gTlVMTDsKPiA+ICAgICAgIGlmICghbWFuLT5mdW5jIHx8ICFtYW4tPmZ1bmMtPmdldF9u b2RlKQo+ID4gQEAgLTg1NCw3ICs4NTQsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19tZW1fZ2V0KHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gPgo+ID4gICB2b2lkIHR0bV9ib19tZW1fcHV0 KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ ID4gICB7Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9IHR0bV9t YW5hZ2VyX3R5cGUoYm8tPmJkZXYsIG1lbS0+bWVtX3R5cGUpOwo+ID4gKyAgICAgc3RydWN0IHR0 bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJvLT5iZGV2LCBtZW0t Pm1lbV90eXBlKTsKPiA+Cj4gPiAgICAgICBpZiAoIW1hbi0+ZnVuYyB8fCAhbWFuLT5mdW5jLT5w dXRfbm9kZSkKPiA+ICAgICAgICAgICAgICAgcmV0dXJuOwo+ID4gQEAgLTg2OSw3ICs4NjksNyBA QCBFWFBPUlRfU1lNQk9MKHR0bV9ib19tZW1fcHV0KTsKPiA+ICAgICogQWRkIHRoZSBsYXN0IG1v dmUgZmVuY2UgdG8gdGhlIEJPIGFuZCByZXNlcnZlIGEgbmV3IHNoYXJlZCBzbG90Lgo+ID4gICAg Ki8KPiA+ICAgc3RhdGljIGludCB0dG1fYm9fYWRkX21vdmVfZmVuY2Uoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg dHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSwKPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBib29sIG5vX3dhaXRfZ3B1KQo+ID4gICB7Cj4gPiBAQCAtOTEx LDcgKzkxMSw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX21lbV9mb3JjZV9zcGFjZShzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPiA+ICAgewo+ID4gICAgICAgc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPiA+IC0gICAgIHN0cnVjdCB0dG1fbWVtX3R5 cGVfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBtZW0tPm1lbV90eXBlKTsK PiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJf dHlwZShiZGV2LCBtZW0tPm1lbV90eXBlKTsKPiA+ICAgICAgIHN0cnVjdCB3d19hY3F1aXJlX2N0 eCAqdGlja2V0Owo+ID4gICAgICAgaW50IHJldDsKPiA+Cj4gPiBAQCAtOTMxLDcgKzkzMSw3IEBA IHN0YXRpYyBpbnQgdHRtX2JvX21lbV9mb3JjZV9zcGFjZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAo+ID4gICAgICAgcmV0dXJuIHR0bV9ib19hZGRfbW92ZV9mZW5jZShibywgbWFuLCBt ZW0sIGN0eC0+bm9fd2FpdF9ncHUpOwo+ID4gICB9Cj4gPgo+ID4gLXN0YXRpYyB1aW50MzJfdCB0 dG1fYm9fc2VsZWN0X2NhY2hpbmcoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4g PiArc3RhdGljIHVpbnQzMl90IHR0bV9ib19zZWxlY3RfY2FjaGluZyhzdHJ1Y3QgdHRtX3Jlc291 cmNlX21hbmFnZXIgKm1hbiwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQzMl90IGN1cl9wbGFjZW1lbnQsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50MzJfdCBwcm9wb3NlZF9wbGFjZW1lbnQpCj4gPiAgIHsKPiA+IEBAIC05NTYs NyArOTU2LDcgQEAgc3RhdGljIHVpbnQzMl90IHR0bV9ib19zZWxlY3RfY2FjaGluZyhzdHJ1Y3Qg dHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiA+ICAgICAgIHJldHVybiByZXN1bHQ7Cj4gPiAg IH0KPiA+Cj4gPiAtc3RhdGljIGJvb2wgdHRtX2JvX210X2NvbXBhdGlibGUoc3RydWN0IHR0bV9t ZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gPiArc3RhdGljIGJvb2wgdHRtX2JvX210X2NvbXBhdGli bGUoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3QgbWVtX3R5cGUsCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UsCj4gPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKm1hc2tlZF9wbGFjZW1lbnQpCj4gPiBAQCAt OTkzLDcgKzk5Myw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX21lbV9wbGFjZW1lbnQoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibywKPiA+ICAgewo+ID4gICAgICAgc3RydWN0IHR0bV9ib19kZXZp Y2UgKmJkZXYgPSBiby0+YmRldjsKPiA+ICAgICAgIHVpbnQzMl90IG1lbV90eXBlID0gVFRNX1BM X1NZU1RFTTsKPiA+IC0gICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuOwo+ID4g KyAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW47Cj4gPiAgICAgICB1aW50MzJf dCBjdXJfZmxhZ3MgPSAwOwo+ID4gICAgICAgaW50IHJldDsKPiA+Cj4gPiBAQCAtMTAwMiw3ICsx MDAyLDcgQEAgc3RhdGljIGludCB0dG1fYm9fbWVtX3BsYWNlbWVudChzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLAo+ID4gICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4KPiA+ICAgICAg IG1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgbWVtX3R5cGUpOwo+ID4gLSAgICAgaWYgKCFt YW4gfHwgIXR0bV9tZW1fdHlwZV9tYW5hZ2VyX3VzZWQobWFuKSkKPiA+ICsgICAgIGlmICghbWFu IHx8ICF0dG1fcmVzb3VyY2VfbWFuYWdlcl91c2VkKG1hbikpCj4gPiAgICAgICAgICAgICAgIHJl dHVybiAtRUJVU1k7Cj4gPgo+ID4gICAgICAgaWYgKCF0dG1fYm9fbXRfY29tcGF0aWJsZShtYW4s IG1lbV90eXBlLCBwbGFjZSwgJmN1cl9mbGFncykpCj4gPiBAQCAtMTA0OSw3ICsxMDQ5LDcgQEAg aW50IHR0bV9ib19tZW1fc3BhY2Uoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiA+Cj4g PiAgICAgICBmb3IgKGkgPSAwOyBpIDwgcGxhY2VtZW50LT5udW1fcGxhY2VtZW50OyArK2kpIHsK PiA+ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UgPSAmcGxhY2Vt ZW50LT5wbGFjZW1lbnRbaV07Cj4gPiAtICAgICAgICAgICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVf bWFuYWdlciAqbWFuOwo+ID4gKyAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFn ZXIgKm1hbjsKPiA+Cj4gPiAgICAgICAgICAgICAgIHJldCA9IHR0bV9ib19tZW1fcGxhY2VtZW50 KGJvLCBwbGFjZSwgbWVtLCBjdHgpOwo+ID4gICAgICAgICAgICAgICBpZiAocmV0ID09IC1FQlVT WSkKPiA+IEBAIC0xNDA2LDggKzE0MDYsOCBAQCBpbnQgdHRtX2JvX2NyZWF0ZShzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldiwKPiA+ICAgfQo+ID4gICBFWFBPUlRfU1lNQk9MKHR0bV9ib19jcmVh dGUpOwo+ID4KPiA+IC1pbnQgdHRtX21lbV90eXBlX21hbmFnZXJfZm9yY2VfbGlzdF9jbGVhbihz dHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbikKPiA+ICtpbnQg dHRtX3Jlc291cmNlX21hbmFnZXJfZm9yY2VfbGlzdF9jbGVhbihzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbikKPiA+ICAgewo+ID4gICAgICAgc3RydWN0IHR0 bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsKPiA+ICAgICAgICAgICAgICAgLmludGVycnVwdGlibGUg PSBmYWxzZSwKPiA+IEBAIC0xNDQ5LDEyICsxNDQ5LDEyIEBAIGludCB0dG1fbWVtX3R5cGVfbWFu YWdlcl9mb3JjZV9saXN0X2NsZWFuKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+ID4KPiA+ ICAgICAgIHJldHVybiAwOwo+ID4gICB9Cj4gPiAtRVhQT1JUX1NZTUJPTCh0dG1fbWVtX3R5cGVf bWFuYWdlcl9mb3JjZV9saXN0X2NsZWFuKTsKPiA+ICtFWFBPUlRfU1lNQk9MKHR0bV9yZXNvdXJj ZV9tYW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4pOwo+ID4KPiA+Cj4gPiAgIGludCB0dG1fYm9fZXZp Y3RfbW0oc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHVuc2lnbmVkIG1lbV90eXBlKQo+ID4g ICB7Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5h Z2VyX3R5cGUoYmRldiwgbWVtX3R5cGUpOwo+ID4gKyAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9t YW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIG1lbV90eXBlKTsKPiA+Cj4gPiAg ICAgICBpZiAobWVtX3R5cGUgPT0gMCB8fCBtZW1fdHlwZSA+PSBUVE1fTlVNX01FTV9UWVBFUykg ewo+ID4gICAgICAgICAgICAgICBwcl9lcnIoIklsbGVnYWwgbWVtb3J5IG1hbmFnZXIgbWVtb3J5 IHR5cGUgJXVcbiIsIG1lbV90eXBlKTsKPiA+IEBAIC0xNDY2LDExICsxNDY2LDExIEBAIGludCB0 dG1fYm9fZXZpY3RfbW0oc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHVuc2lnbmVkIG1lbV90 eXBlKQo+ID4gICAgICAgICAgICAgICByZXR1cm4gMDsKPiA+ICAgICAgIH0KPiA+Cj4gPiAtICAg ICByZXR1cm4gdHRtX21lbV90eXBlX21hbmFnZXJfZm9yY2VfbGlzdF9jbGVhbihiZGV2LCBtYW4p Owo+ID4gKyAgICAgcmV0dXJuIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4o YmRldiwgbWFuKTsKPiA+ICAgfQo+ID4gICBFWFBPUlRfU1lNQk9MKHR0bV9ib19ldmljdF9tbSk7 Cj4gPgo+ID4gLXZvaWQgdHRtX21lbV90eXBlX21hbmFnZXJfaW5pdChzdHJ1Y3QgdHRtX21lbV90 eXBlX21hbmFnZXIgKm1hbiwKPiA+ICt2b2lkIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2luaXQoc3Ry dWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGxvbmcgcF9zaXplKQo+ID4gICB7Cj4gPiAgICAgICB1bnNpZ25lZCBp Owo+ID4gQEAgLTE0ODUsNyArMTQ4NSw3IEBAIHZvaWQgdHRtX21lbV90eXBlX21hbmFnZXJfaW5p dChzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiA+ICAgICAgICAgICAgICAgSU5J VF9MSVNUX0hFQUQoJm1hbi0+bHJ1W2ldKTsKPiA+ICAgICAgIG1hbi0+bW92ZSA9IE5VTEw7Cj4g PiAgIH0KPiA+IC1FWFBPUlRfU1lNQk9MKHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2luaXQpOwo+ID4g K0VYUE9SVF9TWU1CT0wodHRtX3Jlc291cmNlX21hbmFnZXJfaW5pdCk7Cj4gPgo+ID4gICBzdGF0 aWMgdm9pZCB0dG1fYm9fZ2xvYmFsX2tvYmpfcmVsZWFzZShzdHJ1Y3Qga29iamVjdCAqa29iaikK PiA+ICAgewo+ID4gQEAgLTE1NTIsMTAgKzE1NTIsMTAgQEAgaW50IHR0bV9ib19kZXZpY2VfcmVs ZWFzZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldikKPiA+ICAgICAgIHN0cnVjdCB0dG1fYm9f Z2xvYmFsICpnbG9iID0gJnR0bV9ib19nbG9iOwo+ID4gICAgICAgaW50IHJldCA9IDA7Cj4gPiAg ICAgICB1bnNpZ25lZCBpOwo+ID4gLSAgICAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICpt YW47Cj4gPiArICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbjsKPiA+Cj4gPiAg ICAgICBtYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIFRUTV9QTF9TWVNURU0pOwo+ID4gLSAg ICAgdHRtX21lbV90eXBlX21hbmFnZXJfc2V0X3VzZWQobWFuLCBmYWxzZSk7Cj4gPiArICAgICB0 dG1fcmVzb3VyY2VfbWFuYWdlcl9zZXRfdXNlZChtYW4sIGZhbHNlKTsKPiA+ICAgICAgIHR0bV9z ZXRfZHJpdmVyX21hbmFnZXIoYmRldiwgVFRNX1BMX1NZU1RFTSwgTlVMTCk7Cj4gPgo+ID4gICAg ICAgbXV0ZXhfbG9jaygmdHRtX2dsb2JhbF9tdXRleCk7Cj4gPiBAQCAtMTU4Miw3ICsxNTgyLDcg QEAgRVhQT1JUX1NZTUJPTCh0dG1fYm9fZGV2aWNlX3JlbGVhc2UpOwo+ID4KPiA+ICAgc3RhdGlj IHZvaWQgdHRtX2JvX2luaXRfc3lzbWFuKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KQo+ID4g ICB7Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9ICZiZGV2LT5z eXNtYW47Cj4gPiArICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9ICZiZGV2 LT5zeXNtYW47Cj4gPgo+ID4gICAgICAgLyoKPiA+ICAgICAgICAqIEluaXRpYWxpemUgdGhlIHN5 c3RlbSBtZW1vcnkgYnVmZmVyIHR5cGUuCj4gPiBAQCAtMTU5Miw5ICsxNTkyLDkgQEAgc3RhdGlj IHZvaWQgdHRtX2JvX2luaXRfc3lzbWFuKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KQo+ID4g ICAgICAgbWFuLT5hdmFpbGFibGVfY2FjaGluZyA9IFRUTV9QTF9NQVNLX0NBQ0hJTkc7Cj4gPiAg ICAgICBtYW4tPmRlZmF1bHRfY2FjaGluZyA9IFRUTV9QTF9GTEFHX0NBQ0hFRDsKPiA+Cj4gPiAt ICAgICB0dG1fbWVtX3R5cGVfbWFuYWdlcl9pbml0KG1hbiwgMCk7Cj4gPiArICAgICB0dG1fcmVz b3VyY2VfbWFuYWdlcl9pbml0KG1hbiwgMCk7Cj4gPiAgICAgICB0dG1fc2V0X2RyaXZlcl9tYW5h Z2VyKGJkZXYsIFRUTV9QTF9TWVNURU0sIG1hbik7Cj4gPiAtICAgICB0dG1fbWVtX3R5cGVfbWFu YWdlcl9zZXRfdXNlZChtYW4sIHRydWUpOwo+ID4gKyAgICAgdHRtX3Jlc291cmNlX21hbmFnZXJf c2V0X3VzZWQobWFuLCB0cnVlKTsKPiA+ICAgfQo+ID4KPiA+ICAgaW50IHR0bV9ib19kZXZpY2Vf aW5pdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiA+IEBAIC0xNjQ1LDcgKzE2NDUsNyBA QCB2b2lkIHR0bV9ib191bm1hcF92aXJ0dWFsX2xvY2tlZChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvKQo+ID4gICB2b2lkIHR0bV9ib191bm1hcF92aXJ0dWFsKHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8pCj4gPiAgIHsKPiA+ICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 ID0gYm8tPmJkZXY7Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9 IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgYm8tPm1lbS5tZW1fdHlwZSk7Cj4gPiArICAgICBzdHJ1 Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgYm8t Pm1lbS5tZW1fdHlwZSk7Cj4gPgo+ID4gICAgICAgdHRtX21lbV9pb19sb2NrKG1hbiwgZmFsc2Up Owo+ID4gICAgICAgdHRtX2JvX3VubWFwX3ZpcnR1YWxfbG9ja2VkKGJvKTsKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgYi9kcml2ZXJzL2dwdS9kcm0v dHRtL3R0bV9ib191dGlsLmMKPiA+IGluZGV4IDg3OWM4ZGVkMGNkOC4uOGVmMGRlOGUzNmM1IDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKPiA+IEBAIC05MSw3ICs5MSw3IEBA IGludCB0dG1fYm9fbW92ZV90dG0oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiA+ICAg fQo+ID4gICBFWFBPUlRfU1lNQk9MKHR0bV9ib19tb3ZlX3R0bSk7Cj4gPgo+ID4gLWludCB0dG1f bWVtX2lvX2xvY2soc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sIGJvb2wgaW50ZXJy dXB0aWJsZSkKPiA+ICtpbnQgdHRtX21lbV9pb19sb2NrKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFu YWdlciAqbWFuLCBib29sIGludGVycnVwdGlibGUpCj4gPiAgIHsKPiA+ICAgICAgIGlmIChsaWtl bHkoIW1hbi0+dXNlX2lvX3Jlc2VydmVfbHJ1KSkKPiA+ICAgICAgICAgICAgICAgcmV0dXJuIDA7 Cj4gPiBAQCAtMTAzLDcgKzEwMyw3IEBAIGludCB0dG1fbWVtX2lvX2xvY2soc3RydWN0IHR0bV9t ZW1fdHlwZV9tYW5hZ2VyICptYW4sIGJvb2wgaW50ZXJydXB0aWJsZSkKPiA+ICAgICAgIHJldHVy biAwOwo+ID4gICB9Cj4gPgo+ID4gLXZvaWQgdHRtX21lbV9pb191bmxvY2soc3RydWN0IHR0bV9t ZW1fdHlwZV9tYW5hZ2VyICptYW4pCj4gPiArdm9pZCB0dG1fbWVtX2lvX3VubG9jayhzdHJ1Y3Qg dHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbikKPiA+ICAgewo+ID4gICAgICAgaWYgKGxpa2VseSgh bWFuLT51c2VfaW9fcmVzZXJ2ZV9scnUpKQo+ID4gICAgICAgICAgICAgICByZXR1cm47Cj4gPiBA QCAtMTExLDcgKzExMSw3IEBAIHZvaWQgdHRtX21lbV9pb191bmxvY2soc3RydWN0IHR0bV9tZW1f dHlwZV9tYW5hZ2VyICptYW4pCj4gPiAgICAgICBtdXRleF91bmxvY2soJm1hbi0+aW9fcmVzZXJ2 ZV9tdXRleCk7Cj4gPiAgIH0KPiA+Cj4gPiAtc3RhdGljIGludCB0dG1fbWVtX2lvX2V2aWN0KHN0 cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKQo+ID4gK3N0YXRpYyBpbnQgdHRtX21lbV9p b19ldmljdChzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbikKPiA+ICAgewo+ID4gICAg ICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibzsKPiA+Cj4gPiBAQCAtMTI5LDcgKzEyOSw3 IEBAIHN0YXRpYyBpbnQgdHRtX21lbV9pb19ldmljdChzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFn ZXIgKm1hbikKPiA+ICAgaW50IHR0bV9tZW1faW9fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiwKPiA+ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVt KQo+ID4gICB7Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9IHR0 bV9tYW5hZ2VyX3R5cGUoYmRldiwgbWVtLT5tZW1fdHlwZSk7Cj4gPiArICAgICBzdHJ1Y3QgdHRt X3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgbWVtLT5tZW1f dHlwZSk7Cj4gPiAgICAgICBpbnQgcmV0Owo+ID4KPiA+ICAgICAgIGlmIChtZW0tPmJ1cy5pb19y ZXNlcnZlZF9jb3VudCsrKQo+ID4gQEAgLTE2Miw3ICsxNjIsNyBAQCB2b2lkIHR0bV9tZW1faW9f ZnJlZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiA+Cj4gPiAgIGludCB0dG1fbWVtX2lv X3Jlc2VydmVfdm0oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPiA+ICAgewo+ID4gLSAg ICAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJv LT5iZGV2LCBiby0+bWVtLm1lbV90eXBlKTsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2Vf bWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZShiby0+YmRldiwgYm8tPm1lbS5tZW1fdHlw ZSk7Cj4gPiAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSA9ICZiby0+bWVtOwo+ID4gICAg ICAgaW50IHJldDsKPiA+Cj4gPiBAQCAtMTk1LDcgKzE5NSw3IEBAIHN0YXRpYyBpbnQgdHRtX21l bV9yZWdfaW9yZW1hcChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0sCj4gPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZvaWQgKip2aXJ0dWFsKQo+ID4gICB7Cj4gPiAtICAgICBzdHJ1 Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgbWVt LT5tZW1fdHlwZSk7Cj4gPiArICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9 IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgbWVtLT5tZW1fdHlwZSk7Cj4gPiAgICAgICBpbnQgcmV0 Owo+ID4gICAgICAgdm9pZCAqYWRkcjsKPiA+Cj4gPiBAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRp YyB2b2lkIHR0bV9tZW1fcmVnX2lvdW5tYXAoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSwK PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnZpcnR1YWwpCj4gPiAgIHsK PiA+IC0gICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuOwo+ID4gKyAgICAgc3Ry dWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW47Cj4gPgo+ID4gICAgICAgbWFuID0gdHRtX21h bmFnZXJfdHlwZShiZGV2LCBtZW0tPm1lbV90eXBlKTsKPiA+Cj4gPiBAQCAtMzAzLDcgKzMwMyw3 IEBAIGludCB0dG1fYm9fbW92ZV9tZW1jcHkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywK PiA+ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbmV3X21lbSkKPiA+ ICAgewo+ID4gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPiA+ IC0gICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlw ZShiZGV2LCBuZXdfbWVtLT5tZW1fdHlwZSk7Cj4gPiArICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNl X21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgbmV3X21lbS0+bWVtX3R5cGUp Owo+ID4gICAgICAgc3RydWN0IHR0bV90dCAqdHRtID0gYm8tPnR0bTsKPiA+ICAgICAgIHN0cnVj dCB0dG1fbWVtX3JlZyAqb2xkX21lbSA9ICZiby0+bWVtOwo+ID4gICAgICAgc3RydWN0IHR0bV9t ZW1fcmVnIG9sZF9jb3B5ID0gKm9sZF9tZW07Cj4gPiBAQCAtNTcwLDcgKzU3MCw3IEBAIGludCB0 dG1fYm9fa21hcChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ID4gICAgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIHN0YXJ0X3BhZ2UsIHVuc2lnbmVkIGxvbmcgbnVtX3BhZ2VzLAo+ID4g ICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2JvX2ttYXBfb2JqICptYXApCj4gPiAgIHsKPiA+IC0g ICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0KPiA+ICsgICAgIHN0cnVjdCB0 dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0KPiA+ICAgICAgICAgICAgICAgdHRtX21hbmFnZXJf dHlwZShiby0+YmRldiwgYm8tPm1lbS5tZW1fdHlwZSk7Cj4gPiAgICAgICB1bnNpZ25lZCBsb25n IG9mZnNldCwgc2l6ZTsKPiA+ICAgICAgIGludCByZXQ7Cj4gPiBAQCAtNjAwLDcgKzYwMCw3IEBA IEVYUE9SVF9TWU1CT0wodHRtX2JvX2ttYXApOwo+ID4gICB2b2lkIHR0bV9ib19rdW5tYXAoc3Ry dWN0IHR0bV9ib19rbWFwX29iaiAqbWFwKQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvID0gbWFwLT5ibzsKPiA+IC0gICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVf bWFuYWdlciAqbWFuID0KPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFu ID0KPiA+ICAgICAgICAgICAgICAgdHRtX21hbmFnZXJfdHlwZShiby0+YmRldiwgYm8tPm1lbS5t ZW1fdHlwZSk7Cj4gPgo+ID4gICAgICAgaWYgKCFtYXAtPnZpcnR1YWwpCj4gPiBAQCAtNjM0LDcg KzYzNCw3IEBAIGludCB0dG1fYm9fbW92ZV9hY2NlbF9jbGVhbnVwKHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9t ZW1fcmVnICpuZXdfbWVtKQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAq YmRldiA9IGJvLT5iZGV2Owo+ID4gLSAgICAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICpt YW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIG5ld19tZW0tPm1lbV90eXBlKTsKPiA+ICsgICAg IHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2 LCBuZXdfbWVtLT5tZW1fdHlwZSk7Cj4gPiAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm9sZF9t ZW0gPSAmYm8tPm1lbTsKPiA+ICAgICAgIGludCByZXQ7Cj4gPiAgICAgICBzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmdob3N0X29iajsKPiA+IEBAIC02OTcsOCArNjk3LDggQEAgaW50IHR0bV9i b19waXBlbGluZV9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gPiAgICAgICBz dHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+ID4gICAgICAgc3RydWN0IHR0 bV9tZW1fcmVnICpvbGRfbWVtID0gJmJvLT5tZW07Cj4gPgo+ID4gLSAgICAgc3RydWN0IHR0bV9t ZW1fdHlwZV9tYW5hZ2VyICpmcm9tID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBvbGRfbWVtLT5t ZW1fdHlwZSk7Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKnRvID0gdHRt X21hbmFnZXJfdHlwZShiZGV2LCBuZXdfbWVtLT5tZW1fdHlwZSk7Cj4gPiArICAgICBzdHJ1Y3Qg dHRtX3Jlc291cmNlX21hbmFnZXIgKmZyb20gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIG9sZF9t ZW0tPm1lbV90eXBlKTsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqdG8g PSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIG5ld19tZW0tPm1lbV90eXBlKTsKPiA+Cj4gPiAgICAg ICBpbnQgcmV0Owo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9i b192bS5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYwo+ID4gaW5kZXggNWFlNjc5 MTg0ZWI1Li5jOGVmY2VlZjAxNWQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9ib192bS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCj4g PiBAQCAtMjgxLDcgKzI4MSw3IEBAIHZtX2ZhdWx0X3QgdHRtX2JvX3ZtX2ZhdWx0X3Jlc2VydmVk KHN0cnVjdCB2bV9mYXVsdCAqdm1mLAo+ID4gICAgICAgcGdvZmZfdCBpOwo+ID4gICAgICAgdm1f ZmF1bHRfdCByZXQgPSBWTV9GQVVMVF9OT1BBR0U7Cj4gPiAgICAgICB1bnNpZ25lZCBsb25nIGFk ZHJlc3MgPSB2bWYtPmFkZHJlc3M7Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFn ZXIgKm1hbiA9Cj4gPiArICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9Cj4g PiAgICAgICAgICAgICAgIHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgYm8tPm1lbS5tZW1fdHlwZSk7 Cj4gPgo+ID4gICAgICAgLyoKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9yYW5nZV9tYW5hZ2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9yYW5nZV9tYW5hZ2Vy LmMKPiA+IGluZGV4IDUyZDlhMGVkNzE2NS4uMjJkZTlmMjA5NDQ5IDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcmFuZ2VfbWFuYWdlci5jCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9yYW5nZV9tYW5hZ2VyLmMKPiA+IEBAIC00NCwxNyArNDQsMTcgQEAK PiA+ICAgICovCj4gPgo+ID4gICBzdHJ1Y3QgdHRtX3JhbmdlX21hbmFnZXIgewo+ID4gLSAgICAg c3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyIG1hbmFnZXI7Cj4gPiArICAgICBzdHJ1Y3QgdHRt X3Jlc291cmNlX21hbmFnZXIgbWFuYWdlcjsKPiA+ICAgICAgIHN0cnVjdCBkcm1fbW0gbW07Cj4g PiAgICAgICBzcGlubG9ja190IGxvY2s7Cj4gPiAgIH07Cj4gPgo+ID4gLXN0YXRpYyBpbmxpbmUg c3RydWN0IHR0bV9yYW5nZV9tYW5hZ2VyICp0b19yYW5nZV9tYW5hZ2VyKHN0cnVjdCB0dG1fbWVt X3R5cGVfbWFuYWdlciAqbWFuKQo+ID4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IHR0bV9yYW5nZV9t YW5hZ2VyICp0b19yYW5nZV9tYW5hZ2VyKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFu KQo+ID4gICB7Cj4gPiAgICAgICByZXR1cm4gY29udGFpbmVyX29mKG1hbiwgc3RydWN0IHR0bV9y YW5nZV9tYW5hZ2VyLCBtYW5hZ2VyKTsKPiA+ICAgfQo+ID4KPiA+IC1zdGF0aWMgaW50IHR0bV9y YW5nZV9tYW5fZ2V0X25vZGUoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gPiAr c3RhdGljIGludCB0dG1fcmFuZ2VfbWFuX2dldF9ub2RlKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFu YWdlciAqbWFuLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4gPiBAQCAtOTUsNyArOTUsNyBAQCBz dGF0aWMgaW50IHR0bV9yYW5nZV9tYW5fZ2V0X25vZGUoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5h Z2VyICptYW4sCj4gPiAgICAgICByZXR1cm4gcmV0Owo+ID4gICB9Cj4gPgo+ID4gLXN0YXRpYyB2 b2lkIHR0bV9yYW5nZV9tYW5fcHV0X25vZGUoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICpt YW4sCj4gPiArc3RhdGljIHZvaWQgdHRtX3JhbmdlX21hbl9wdXRfbm9kZShzdHJ1Y3QgdHRtX3Jl c291cmNlX21hbmFnZXIgKm1hbiwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3QgdHRtX3Jh bmdlX21hbmFnZXIgKnJtYW4gPSB0b19yYW5nZV9tYW5hZ2VyKG1hbik7Cj4gPiBAQCAtMTEwLDcg KzExMCw3IEBAIHN0YXRpYyB2b2lkIHR0bV9yYW5nZV9tYW5fcHV0X25vZGUoc3RydWN0IHR0bV9t ZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gPiAgICAgICB9Cj4gPiAgIH0KPiA+Cj4gPiAtc3RhdGlj IGNvbnN0IHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlcl9mdW5jIHR0bV9yYW5nZV9tYW5hZ2Vy X2Z1bmM7Cj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlcl9mdW5j IHR0bV9yYW5nZV9tYW5hZ2VyX2Z1bmM7Cj4gPgo+ID4gICBpbnQgdHRtX3JhbmdlX21hbl9pbml0 KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+ID4gICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgdHlwZSwKPiA+IEBAIC0xMTksNyArMTE5LDcgQEAgaW50IHR0bV9yYW5nZV9tYW5faW5p dChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiA+ICAgICAgICAgICAgICAgICAgICAgIGJv b2wgdXNlX3R0LAo+ID4gICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBwX3NpemUp Cj4gPiAgIHsKPiA+IC0gICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuOwo+ID4g KyAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW47Cj4gPiAgICAgICBzdHJ1Y3Qg dHRtX3JhbmdlX21hbmFnZXIgKnJtYW47Cj4gPgo+ID4gICAgICAgcm1hbiA9IGt6YWxsb2Moc2l6 ZW9mKCpybWFuKSwgR0ZQX0tFUk5FTCk7Cj4gPiBAQCAtMTMzLDEzICsxMzMsMTMgQEAgaW50IHR0 bV9yYW5nZV9tYW5faW5pdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiA+Cj4gPiAgICAg ICBtYW4tPmZ1bmMgPSAmdHRtX3JhbmdlX21hbmFnZXJfZnVuYzsKPiA+Cj4gPiAtICAgICB0dG1f bWVtX3R5cGVfbWFuYWdlcl9pbml0KG1hbiwgcF9zaXplKTsKPiA+ICsgICAgIHR0bV9yZXNvdXJj ZV9tYW5hZ2VyX2luaXQobWFuLCBwX3NpemUpOwo+ID4KPiA+ICAgICAgIGRybV9tbV9pbml0KCZy bWFuLT5tbSwgMCwgcF9zaXplKTsKPiA+ICAgICAgIHNwaW5fbG9ja19pbml0KCZybWFuLT5sb2Nr KTsKPiA+Cj4gPiAgICAgICB0dG1fc2V0X2RyaXZlcl9tYW5hZ2VyKGJkZXYsIHR5cGUsICZybWFu LT5tYW5hZ2VyKTsKPiA+IC0gICAgIHR0bV9tZW1fdHlwZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwg dHJ1ZSk7Cj4gPiArICAgICB0dG1fcmVzb3VyY2VfbWFuYWdlcl9zZXRfdXNlZChtYW4sIHRydWUp Owo+ID4gICAgICAgcmV0dXJuIDA7Cj4gPiAgIH0KPiA+ICAgRVhQT1JUX1NZTUJPTCh0dG1fcmFu Z2VfbWFuX2luaXQpOwo+ID4gQEAgLTE0NywxNCArMTQ3LDE0IEBAIEVYUE9SVF9TWU1CT0wodHRt X3JhbmdlX21hbl9pbml0KTsKPiA+ICAgaW50IHR0bV9yYW5nZV9tYW5fZmluaShzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldiwKPiA+ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHR5cGUp Cj4gPiAgIHsKPiA+IC0gICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0gdHRt X21hbmFnZXJfdHlwZShiZGV2LCB0eXBlKTsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2Vf bWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCB0eXBlKTsKPiA+ICAgICAgIHN0 cnVjdCB0dG1fcmFuZ2VfbWFuYWdlciAqcm1hbiA9IHRvX3JhbmdlX21hbmFnZXIobWFuKTsKPiA+ ICAgICAgIHN0cnVjdCBkcm1fbW0gKm1tID0gJnJtYW4tPm1tOwo+ID4gICAgICAgaW50IHJldDsK PiA+Cj4gPiAtICAgICB0dG1fbWVtX3R5cGVfbWFuYWdlcl9zZXRfdXNlZChtYW4sIGZhbHNlKTsK PiA+ICsgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgZmFsc2UpOwo+ID4K PiA+IC0gICAgIHJldCA9IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4oYmRl diwgbWFuKTsKPiA+ICsgICAgIHJldCA9IHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2ZvcmNlX2xpc3Rf Y2xlYW4oYmRldiwgbWFuKTsKPiA+ICAgICAgIGlmIChyZXQpCj4gPiAgICAgICAgICAgICAgIHJl dHVybiByZXQ7Cj4gPgo+ID4gQEAgLTE2MywxNCArMTYzLDE0IEBAIGludCB0dG1fcmFuZ2VfbWFu X2Zpbmkoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4gPiAgICAgICBkcm1fbW1fdGFrZWRv d24obW0pOwo+ID4gICAgICAgc3Bpbl91bmxvY2soJnJtYW4tPmxvY2spOwo+ID4KPiA+IC0gICAg IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2NsZWFudXAobWFuKTsKPiA+ICsgICAgIHR0bV9yZXNvdXJj ZV9tYW5hZ2VyX2NsZWFudXAobWFuKTsKPiA+ICAgICAgIHR0bV9zZXRfZHJpdmVyX21hbmFnZXIo YmRldiwgdHlwZSwgTlVMTCk7Cj4gPiAgICAgICBrZnJlZShybWFuKTsKPiA+ICAgICAgIHJldHVy biAwOwo+ID4gICB9Cj4gPiAgIEVYUE9SVF9TWU1CT0wodHRtX3JhbmdlX21hbl9maW5pKTsKPiA+ Cj4gPiAtc3RhdGljIHZvaWQgdHRtX3JhbmdlX21hbl9kZWJ1ZyhzdHJ1Y3QgdHRtX21lbV90eXBl X21hbmFnZXIgKm1hbiwKPiA+ICtzdGF0aWMgdm9pZCB0dG1fcmFuZ2VfbWFuX2RlYnVnKHN0cnVj dCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGRybV9wcmludGVyICpwcmludGVyKQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3Qg dHRtX3JhbmdlX21hbmFnZXIgKnJtYW4gPSB0b19yYW5nZV9tYW5hZ2VyKG1hbik7Cj4gPiBAQCAt MTgwLDcgKzE4MCw3IEBAIHN0YXRpYyB2b2lkIHR0bV9yYW5nZV9tYW5fZGVidWcoc3RydWN0IHR0 bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gPiAgICAgICBzcGluX3VubG9jaygmcm1hbi0+bG9j ayk7Cj4gPiAgIH0KPiA+Cj4gPiAtc3RhdGljIGNvbnN0IHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFu YWdlcl9mdW5jIHR0bV9yYW5nZV9tYW5hZ2VyX2Z1bmMgPSB7Cj4gPiArc3RhdGljIGNvbnN0IHN0 cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlcl9mdW5jIHR0bV9yYW5nZV9tYW5hZ2VyX2Z1bmMgPSB7 Cj4gPiAgICAgICAuZ2V0X25vZGUgPSB0dG1fcmFuZ2VfbWFuX2dldF9ub2RlLAo+ID4gICAgICAg LnB1dF9ub2RlID0gdHRtX3JhbmdlX21hbl9wdXRfbm9kZSwKPiA+ICAgICAgIC5kZWJ1ZyA9IHR0 bV9yYW5nZV9tYW5fZGVidWcKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCj4gPiBp bmRleCBiMmYxZTdhM2IwNDguLjc2NDVkNjdhYTZiNiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9kcnYuYwo+ID4gQEAgLTYzMCw3ICs2MzAsNyBAQCBzdGF0aWMgaW50IHZtd192 cmFtX21hbmFnZXJfaW5pdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRUTV9QTF9GTEFHX0NBQ0hFRCwgVFRNX1BMX0ZMQUdf Q0FDSEVELAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCBkZXZfcHJp di0+dnJhbV9zaXplID4+IFBBR0VfU0hJRlQpOwo+ID4gICAjZW5kaWYKPiA+IC0gICAgIHR0bV9t ZW1fdHlwZV9tYW5hZ2VyX3NldF91c2VkKHR0bV9tYW5hZ2VyX3R5cGUoJmRldl9wcml2LT5iZGV2 LCBUVE1fUExfVlJBTSksIGZhbHNlKTsKPiA+ICsgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX3Nl dF91c2VkKHR0bV9tYW5hZ2VyX3R5cGUoJmRldl9wcml2LT5iZGV2LCBUVE1fUExfVlJBTSksIGZh bHNlKTsKPiA+ICAgICAgIHJldHVybiByZXQ7Cj4gPiAgIH0KPiA+Cj4gPiBAQCAtMTE4OSwxMiAr MTE4OSwxMiBAQCBzdGF0aWMgdm9pZCB2bXdfbWFzdGVyX2Ryb3Aoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiA+ICAgICovCj4gPiAgIHN0YXRpYyB2b2lkIF9fdm13X3N2Z2FfZW5hYmxlKHN0cnVj dCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgIHsKPiA+IC0gICAgIHN0cnVjdCB0dG1fbWVt X3R5cGVfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmZGV2X3ByaXYtPmJkZXYsIFRU TV9QTF9WUkFNKTsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0g dHRtX21hbmFnZXJfdHlwZSgmZGV2X3ByaXYtPmJkZXYsIFRUTV9QTF9WUkFNKTsKPiA+Cj4gPiAg ICAgICBzcGluX2xvY2soJmRldl9wcml2LT5zdmdhX2xvY2spOwo+ID4gLSAgICAgaWYgKCF0dG1f bWVtX3R5cGVfbWFuYWdlcl91c2VkKG1hbikpIHsKPiA+ICsgICAgIGlmICghdHRtX3Jlc291cmNl X21hbmFnZXJfdXNlZChtYW4pKSB7Cj4gPiAgICAgICAgICAgICAgIHZtd193cml0ZShkZXZfcHJp diwgU1ZHQV9SRUdfRU5BQkxFLCBTVkdBX1JFR19FTkFCTEUpOwo+ID4gLSAgICAgICAgICAgICB0 dG1fbWVtX3R5cGVfbWFuYWdlcl9zZXRfdXNlZChtYW4sIHRydWUpOwo+ID4gKyAgICAgICAgICAg ICB0dG1fcmVzb3VyY2VfbWFuYWdlcl9zZXRfdXNlZChtYW4sIHRydWUpOwo+ID4gICAgICAgfQo+ ID4gICAgICAgc3Bpbl91bmxvY2soJmRldl9wcml2LT5zdmdhX2xvY2spOwo+ID4gICB9Cj4gPiBA QCAtMTIyMCwxMSArMTIyMCwxMSBAQCB2b2lkIHZtd19zdmdhX2VuYWJsZShzdHJ1Y3Qgdm13X3By aXZhdGUgKmRldl9wcml2KQo+ID4gICAgKi8KPiA+ICAgc3RhdGljIHZvaWQgX192bXdfc3ZnYV9k aXNhYmxlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgIHsKPiA+IC0gICAgIHN0 cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmZGV2X3By aXYtPmJkZXYsIFRUTV9QTF9WUkFNKTsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFu YWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmZGV2X3ByaXYtPmJkZXYsIFRUTV9QTF9WUkFN KTsKPiA+Cj4gPiAgICAgICBzcGluX2xvY2soJmRldl9wcml2LT5zdmdhX2xvY2spOwo+ID4gLSAg ICAgaWYgKHR0bV9tZW1fdHlwZV9tYW5hZ2VyX3VzZWQobWFuKSkgewo+ID4gLSAgICAgICAgICAg ICB0dG1fbWVtX3R5cGVfbWFuYWdlcl9zZXRfdXNlZChtYW4sIGZhbHNlKTsKPiA+ICsgICAgIGlm ICh0dG1fcmVzb3VyY2VfbWFuYWdlcl91c2VkKG1hbikpIHsKPiA+ICsgICAgICAgICAgICAgdHRt X3Jlc291cmNlX21hbmFnZXJfc2V0X3VzZWQobWFuLCBmYWxzZSk7Cj4gPiAgICAgICAgICAgICAg IHZtd193cml0ZShkZXZfcHJpdiwgU1ZHQV9SRUdfRU5BQkxFLAo+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgU1ZHQV9SRUdfRU5BQkxFX0hJREUgfAo+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgU1ZHQV9SRUdfRU5BQkxFX0VOQUJMRSk7Cj4gPiBAQCAtMTI0MSw3ICsxMjQxLDcgQEAgc3Rh dGljIHZvaWQgX192bXdfc3ZnYV9kaXNhYmxlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gPiAgICAqLwo+ID4gICB2b2lkIHZtd19zdmdhX2Rpc2FibGUoc3RydWN0IHZtd19wcml2YXRl ICpkZXZfcHJpdikKPiA+ICAgewo+ID4gLSAgICAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2Vy ICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKCZkZXZfcHJpdi0+YmRldiwgVFRNX1BMX1ZSQU0pOwo+ ID4gKyAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90 eXBlKCZkZXZfcHJpdi0+YmRldiwgVFRNX1BMX1ZSQU0pOwo+ID4gICAgICAgLyoKPiA+ICAgICAg ICAqIERpc2FibGluZyBTVkdBIHdpbGwgdHVybiBvZmYgZGV2aWNlIG1vZGVzZXR0aW5nIGNhcGFi aWxpdGllcywgc28KPiA+ICAgICAgICAqIG5vdGlmeSBLTVMgYWJvdXQgdGhhdCBzbyB0aGF0IGl0 IGRvZXNuJ3QgY2FjaGUgYXRvbWljIHN0YXRlIHRoYXQKPiA+IEBAIC0xMjU3LDggKzEyNTcsOCBA QCB2b2lkIHZtd19zdmdhX2Rpc2FibGUoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdikKPiA+ ICAgICAgIHZtd19rbXNfbG9zdF9kZXZpY2UoZGV2X3ByaXYtPmRldik7Cj4gPiAgICAgICB0dG1f d3JpdGVfbG9jaygmZGV2X3ByaXYtPnJlc2VydmF0aW9uX3NlbSwgZmFsc2UpOwo+ID4gICAgICAg c3Bpbl9sb2NrKCZkZXZfcHJpdi0+c3ZnYV9sb2NrKTsKPiA+IC0gICAgIGlmICh0dG1fbWVtX3R5 cGVfbWFuYWdlcl91c2VkKG1hbikpIHsKPiA+IC0gICAgICAgICAgICAgdHRtX21lbV90eXBlX21h bmFnZXJfc2V0X3VzZWQobWFuLCBmYWxzZSk7Cj4gPiArICAgICBpZiAodHRtX3Jlc291cmNlX21h bmFnZXJfdXNlZChtYW4pKSB7Cj4gPiArICAgICAgICAgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2Vy X3NldF91c2VkKG1hbiwgZmFsc2UpOwo+ID4gICAgICAgICAgICAgICBzcGluX3VubG9jaygmZGV2 X3ByaXYtPnN2Z2FfbG9jayk7Cj4gPiAgICAgICAgICAgICAgIGlmICh0dG1fYm9fZXZpY3RfbW0o JmRldl9wcml2LT5iZGV2LCBUVE1fUExfVlJBTSkpCj4gPiAgICAgICAgICAgICAgICAgICAgICAg RFJNX0VSUk9SKCJGYWlsZWQgZXZpY3RpbmcgVlJBTSBidWZmZXJzLlxuIik7Cj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ21yaWRfbWFuYWdlci5jIGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ21yaWRfbWFuYWdlci5jCj4gPiBpbmRleCBjYTUw MzcxODQ4MTQuLmM4ZmU2ZTljZjA5MiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2dtcmlkX21hbmFnZXIuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfZ21yaWRfbWFuYWdlci5jCj4gPiBAQCAtMzcsNyArMzcsNyBAQAo+ID4gICAj aW5jbHVkZSA8bGludXgva2VybmVsLmg+Cj4gPgo+ID4gICBzdHJ1Y3Qgdm13Z2Z4X2dtcmlkX21h biB7Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgbWFuYWdlcjsKPiA+ICsg ICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciBtYW5hZ2VyOwo+ID4gICAgICAgc3Bpbmxv Y2tfdCBsb2NrOwo+ID4gICAgICAgc3RydWN0IGlkYSBnbXJfaWRhOwo+ID4gICAgICAgdWludDMy X3QgbWF4X2dtcl9pZHM7Cj4gPiBAQCAtNDUsMTIgKzQ1LDEyIEBAIHN0cnVjdCB2bXdnZnhfZ21y aWRfbWFuIHsKPiA+ICAgICAgIHVpbnQzMl90IHVzZWRfZ21yX3BhZ2VzOwo+ID4gICB9Owo+ID4K PiA+IC1zdGF0aWMgc3RydWN0IHZtd2dmeF9nbXJpZF9tYW4gKnRvX2dtcmlkX21hbmFnZXIoc3Ry dWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4pCj4gPiArc3RhdGljIHN0cnVjdCB2bXdnZnhf Z21yaWRfbWFuICp0b19nbXJpZF9tYW5hZ2VyKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAq bWFuKQo+ID4gICB7Cj4gPiAgICAgICByZXR1cm4gY29udGFpbmVyX29mKG1hbiwgc3RydWN0IHZt d2dmeF9nbXJpZF9tYW4sIG1hbmFnZXIpOwo+ID4gICB9Cj4gPgo+ID4gLXN0YXRpYyBpbnQgdm13 X2dtcmlkX21hbl9nZXRfbm9kZShzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiA+ ICtzdGF0aWMgaW50IHZtd19nbXJpZF9tYW5fZ2V0X25vZGUoc3RydWN0IHR0bV9yZXNvdXJjZV9t YW5hZ2VyICptYW4sCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlLAo+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKPiA+IEBAIC04NCw3ICs4NCw3IEBA IHN0YXRpYyBpbnQgdm13X2dtcmlkX21hbl9nZXRfbm9kZShzdHJ1Y3QgdHRtX21lbV90eXBlX21h bmFnZXIgKm1hbiwKPiA+ICAgICAgIHJldHVybiAtRU5PU1BDOwo+ID4gICB9Cj4gPgo+ID4gLXN0 YXRpYyB2b2lkIHZtd19nbXJpZF9tYW5fcHV0X25vZGUoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5h Z2VyICptYW4sCj4gPiArc3RhdGljIHZvaWQgdm13X2dtcmlkX21hbl9wdXRfbm9kZShzdHJ1Y3Qg dHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3Qg dm13Z2Z4X2dtcmlkX21hbiAqZ21hbiA9IHRvX2dtcmlkX21hbmFnZXIobWFuKTsKPiA+IEBAIC05 OCwxMSArOTgsMTEgQEAgc3RhdGljIHZvaWQgdm13X2dtcmlkX21hbl9wdXRfbm9kZShzdHJ1Y3Qg dHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiA+ICAgICAgIH0KPiA+ICAgfQo+ID4KPiA+IC1z dGF0aWMgY29uc3Qgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2Z1bmMgdm13X2dtcmlkX21h bmFnZXJfZnVuYzsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2Vy X2Z1bmMgdm13X2dtcmlkX21hbmFnZXJfZnVuYzsKPiA+Cj4gPiAgIGludCB2bXdfZ21yaWRfbWFu X2luaXQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwgaW50IHR5cGUpCj4gPiAgIHsKPiA+ IC0gICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuOwo+ID4gKyAgICAgc3RydWN0 IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW47Cj4gPiAgICAgICBzdHJ1Y3Qgdm13Z2Z4X2dtcmlk X21hbiAqZ21hbiA9Cj4gPiAgICAgICAgICAgICAgIGt6YWxsb2Moc2l6ZW9mKCpnbWFuKSwgR0ZQ X0tFUk5FTCk7Cj4gPgo+ID4gQEAgLTExNiw3ICsxMTYsNyBAQCBpbnQgdm13X2dtcmlkX21hbl9p bml0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB0eXBlKQo+ID4gICAgICAgbWFu LT5kZWZhdWx0X2NhY2hpbmcgPSBUVE1fUExfRkxBR19DQUNIRUQ7Cj4gPiAgICAgICAvKiBUT0RP OiBUaGlzIGlzIG1vc3QgbGlrZWx5IG5vdCBjb3JyZWN0ICovCj4gPiAgICAgICBtYW4tPnVzZV90 dCA9IHRydWU7Cj4gPiAtICAgICB0dG1fbWVtX3R5cGVfbWFuYWdlcl9pbml0KG1hbiwgMCk7Cj4g PiArICAgICB0dG1fcmVzb3VyY2VfbWFuYWdlcl9pbml0KG1hbiwgMCk7Cj4gPiAgICAgICBzcGlu X2xvY2tfaW5pdCgmZ21hbi0+bG9jayk7Cj4gPiAgICAgICBnbWFuLT51c2VkX2dtcl9wYWdlcyA9 IDA7Cj4gPiAgICAgICBpZGFfaW5pdCgmZ21hbi0+Z21yX2lkYSk7Cj4gPiBAQCAtMTM0LDIwICsx MzQsMjAgQEAgaW50IHZtd19nbXJpZF9tYW5faW5pdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9w cml2LCBpbnQgdHlwZSkKPiA+ICAgICAgICAgICAgICAgQlVHKCk7Cj4gPiAgICAgICB9Cj4gPiAg ICAgICB0dG1fc2V0X2RyaXZlcl9tYW5hZ2VyKCZkZXZfcHJpdi0+YmRldiwgdHlwZSwgJmdtYW4t Pm1hbmFnZXIpOwo+ID4gLSAgICAgdHRtX21lbV90eXBlX21hbmFnZXJfc2V0X3VzZWQobWFuLCB0 cnVlKTsKPiA+ICsgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgdHJ1ZSk7 Cj4gPiAgICAgICByZXR1cm4gMDsKPiA+ICAgfQo+ID4KPiA+ICAgdm9pZCB2bXdfZ21yaWRfbWFu X2Zpbmkoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwgaW50IHR5cGUpCj4gPiAgIHsKPiA+ IC0gICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlw ZSgmZGV2X3ByaXYtPmJkZXYsIHR5cGUpOwo+ID4gKyAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9t YW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKCZkZXZfcHJpdi0+YmRldiwgdHlwZSk7Cj4g PiAgICAgICBzdHJ1Y3Qgdm13Z2Z4X2dtcmlkX21hbiAqZ21hbiA9IHRvX2dtcmlkX21hbmFnZXIo bWFuKTsKPiA+Cj4gPiAtICAgICB0dG1fbWVtX3R5cGVfbWFuYWdlcl9zZXRfdXNlZChtYW4sIGZh bHNlKTsKPiA+ICsgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgZmFsc2Up Owo+ID4KPiA+IC0gICAgIHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4oJmRl dl9wcml2LT5iZGV2LCBtYW4pOwo+ID4gKyAgICAgdHRtX3Jlc291cmNlX21hbmFnZXJfZm9yY2Vf bGlzdF9jbGVhbigmZGV2X3ByaXYtPmJkZXYsIG1hbik7Cj4gPgo+ID4gLSAgICAgdHRtX21lbV90 eXBlX21hbmFnZXJfY2xlYW51cChtYW4pOwo+ID4gKyAgICAgdHRtX3Jlc291cmNlX21hbmFnZXJf Y2xlYW51cChtYW4pOwo+ID4KPiA+ICAgICAgIHR0bV9zZXRfZHJpdmVyX21hbmFnZXIoJmRldl9w cml2LT5iZGV2LCB0eXBlLCBOVUxMKTsKPiA+ICAgICAgIGlkYV9kZXN0cm95KCZnbWFuLT5nbXJf aWRhKTsKPiA+IEBAIC0xNTUsNyArMTU1LDcgQEAgdm9pZCB2bXdfZ21yaWRfbWFuX2Zpbmkoc3Ry dWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwgaW50IHR5cGUpCj4gPgo+ID4gICB9Cj4gPgo+ID4g LXN0YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJfZnVuYyB2bXdfZ21yaWRf bWFuYWdlcl9mdW5jID0gewo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX3Jlc291cmNlX21h bmFnZXJfZnVuYyB2bXdfZ21yaWRfbWFuYWdlcl9mdW5jID0gewo+ID4gICAgICAgLmdldF9ub2Rl ID0gdm13X2dtcmlkX21hbl9nZXRfbm9kZSwKPiA+ICAgICAgIC5wdXRfbm9kZSA9IHZtd19nbXJp ZF9tYW5fcHV0X25vZGUsCj4gPiAgIH07Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfdGhwLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90aHAu Ywo+ID4gaW5kZXggNDExMGU4MzA5MTg4Li42Y2FjN2IwOTEyMDUgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90aHAuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfdGhwLmMKPiA+IEBAIC0xNiwxMiArMTYsMTIgQEAKPiA+ICAgICog QGxvY2s6IE1hbmFnZXIgbG9jay4KPiA+ICAgICovCj4gPiAgIHN0cnVjdCB2bXdfdGhwX21hbmFn ZXIgewo+ID4gLSAgICAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyIG1hbmFnZXI7Cj4gPiAr ICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgbWFuYWdlcjsKPiA+ICAgICAgIHN0cnVj dCBkcm1fbW0gbW07Cj4gPiAgICAgICBzcGlubG9ja190IGxvY2s7Cj4gPiAgIH07Cj4gPgo+ID4g LXN0YXRpYyBzdHJ1Y3Qgdm13X3RocF9tYW5hZ2VyICp0b190aHBfbWFuYWdlcihzdHJ1Y3QgdHRt X21lbV90eXBlX21hbmFnZXIgKm1hbikKPiA+ICtzdGF0aWMgc3RydWN0IHZtd190aHBfbWFuYWdl ciAqdG9fdGhwX21hbmFnZXIoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4pCj4gPiAg IHsKPiA+ICAgICAgIHJldHVybiBjb250YWluZXJfb2YobWFuLCBzdHJ1Y3Qgdm13X3RocF9tYW5h Z2VyLCBtYW5hZ2VyKTsKPiA+ICAgfQo+ID4gQEAgLTQ0LDcgKzQ0LDcgQEAgc3RhdGljIGludCB2 bXdfdGhwX2luc2VydF9hbGlnbmVkKHN0cnVjdCBkcm1fbW0gKm1tLCBzdHJ1Y3QgZHJtX21tX25v ZGUgKm5vZGUsCj4gPiAgICAgICByZXR1cm4gLUVOT1NQQzsKPiA+ICAgfQo+ID4KPiA+IC1zdGF0 aWMgaW50IHZtd190aHBfZ2V0X25vZGUoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4s Cj4gPiArc3RhdGljIGludCB2bXdfdGhwX2dldF9ub2RlKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFu YWdlciAqbWFuLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg dHRtX3BsYWNlICpwbGFjZSwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0 bV9tZW1fcmVnICptZW0pCj4gPiBAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyBpbnQgdm13X3Ro cF9nZXRfbm9kZShzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiA+Cj4gPgo+ID4K PiA+IC1zdGF0aWMgdm9pZCB2bXdfdGhwX3B1dF9ub2RlKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFu YWdlciAqbWFuLAo+ID4gK3N0YXRpYyB2b2lkIHZtd190aHBfcHV0X25vZGUoc3RydWN0IHR0bV9y ZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdHRtX21lbV9yZWcgKm1lbSkKPiA+ICAgewo+ID4gICAgICAgc3RydWN0IHZtd190aHBfbWFu YWdlciAqcm1hbiA9IHRvX3RocF9tYW5hZ2VyKG1hbik7Cj4gPiBAQCAtMTIzLDcgKzEyMyw3IEBA IHN0YXRpYyB2b2lkIHZtd190aHBfcHV0X25vZGUoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2Vy ICptYW4sCj4gPgo+ID4gICBpbnQgdm13X3RocF9pbml0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gPiAgIHsKPiA+IC0gICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFu Owo+ID4gKyAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW47Cj4gPiAgICAgICBz dHJ1Y3Qgdm13X3RocF9tYW5hZ2VyICpybWFuOwo+ID4KPiA+ICAgICAgIHJtYW4gPSBremFsbG9j KHNpemVvZigqcm1hbiksIEdGUF9LRVJORUwpOwo+ID4gQEAgLTEzNCwzOSArMTM0LDM5IEBAIGlu dCB2bXdfdGhwX2luaXQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdikKPiA+ICAgICAgIG1h bi0+YXZhaWxhYmxlX2NhY2hpbmcgPSBUVE1fUExfRkxBR19DQUNIRUQ7Cj4gPiAgICAgICBtYW4t PmRlZmF1bHRfY2FjaGluZyA9IFRUTV9QTF9GTEFHX0NBQ0hFRDsKPiA+Cj4gPiAtICAgICB0dG1f bWVtX3R5cGVfbWFuYWdlcl9pbml0KG1hbiwKPiA+ICsgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2Vy X2luaXQobWFuLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZfcHJpdi0+ dnJhbV9zaXplID4+IFBBR0VfU0hJRlQpOwo+ID4KPiA+ICAgICAgIGRybV9tbV9pbml0KCZybWFu LT5tbSwgMCwgbWFuLT5zaXplKTsKPiA+ICAgICAgIHNwaW5fbG9ja19pbml0KCZybWFuLT5sb2Nr KTsKPiA+Cj4gPiAgICAgICB0dG1fc2V0X2RyaXZlcl9tYW5hZ2VyKCZkZXZfcHJpdi0+YmRldiwg VFRNX1BMX1ZSQU0sICZybWFuLT5tYW5hZ2VyKTsKPiA+IC0gICAgIHR0bV9tZW1fdHlwZV9tYW5h Z2VyX3NldF91c2VkKG1hbiwgdHJ1ZSk7Cj4gPiArICAgICB0dG1fcmVzb3VyY2VfbWFuYWdlcl9z ZXRfdXNlZChtYW4sIHRydWUpOwo+ID4gICAgICAgcmV0dXJuIDA7Cj4gPiAgIH0KPiA+Cj4gPiAg IHZvaWQgdm13X3RocF9maW5pKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgIHsK PiA+IC0gICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJf dHlwZSgmZGV2X3ByaXYtPmJkZXYsIFRUTV9QTF9WUkFNKTsKPiA+ICsgICAgIHN0cnVjdCB0dG1f cmVzb3VyY2VfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmZGV2X3ByaXYtPmJkZXYs IFRUTV9QTF9WUkFNKTsKPiA+ICAgICAgIHN0cnVjdCB2bXdfdGhwX21hbmFnZXIgKnJtYW4gPSB0 b190aHBfbWFuYWdlcihtYW4pOwo+ID4gICAgICAgc3RydWN0IGRybV9tbSAqbW0gPSAmcm1hbi0+ bW07Cj4gPiAgICAgICBpbnQgcmV0Owo+ID4KPiA+IC0gICAgIHR0bV9tZW1fdHlwZV9tYW5hZ2Vy X3NldF91c2VkKG1hbiwgZmFsc2UpOwo+ID4gKyAgICAgdHRtX3Jlc291cmNlX21hbmFnZXJfc2V0 X3VzZWQobWFuLCBmYWxzZSk7Cj4gPgo+ID4gLSAgICAgcmV0ID0gdHRtX21lbV90eXBlX21hbmFn ZXJfZm9yY2VfbGlzdF9jbGVhbigmZGV2X3ByaXYtPmJkZXYsIG1hbik7Cj4gPiArICAgICByZXQg PSB0dG1fcmVzb3VyY2VfbWFuYWdlcl9mb3JjZV9saXN0X2NsZWFuKCZkZXZfcHJpdi0+YmRldiwg bWFuKTsKPiA+ICAgICAgIGlmIChyZXQpCj4gPiAgICAgICAgICAgICAgIHJldHVybjsKPiA+ICAg ICAgIHNwaW5fbG9jaygmcm1hbi0+bG9jayk7Cj4gPiAgICAgICBkcm1fbW1fY2xlYW4obW0pOwo+ ID4gICAgICAgZHJtX21tX3Rha2Vkb3duKG1tKTsKPiA+ICAgICAgIHNwaW5fdW5sb2NrKCZybWFu LT5sb2NrKTsKPiA+IC0gICAgIHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2NsZWFudXAobWFuKTsKPiA+ ICsgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2NsZWFudXAobWFuKTsKPiA+ICAgICAgIHR0bV9z ZXRfZHJpdmVyX21hbmFnZXIoJmRldl9wcml2LT5iZGV2LCBUVE1fUExfVlJBTSwgTlVMTCk7Cj4g PiAgICAgICBrZnJlZShybWFuKTsKPiA+ICAgfQo+ID4KPiA+IC1zdGF0aWMgdm9pZCB2bXdfdGhw X2RlYnVnKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ID4gK3N0YXRpYyB2b2lk IHZtd190aHBfZGVidWcoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gPiAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnByaW50ZXIpCj4gPiAgIHsK PiA+ICAgICAgIHN0cnVjdCB2bXdfdGhwX21hbmFnZXIgKnJtYW4gPSB0b190aHBfbWFuYWdlciht YW4pOwo+ID4gQEAgLTE3Niw3ICsxNzYsNyBAQCBzdGF0aWMgdm9pZCB2bXdfdGhwX2RlYnVnKHN0 cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ID4gICAgICAgc3Bpbl91bmxvY2soJnJt YW4tPmxvY2spOwo+ID4gICB9Cj4gPgo+ID4gLWNvbnN0IHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFu YWdlcl9mdW5jIHZtd190aHBfZnVuYyA9IHsKPiA+ICtjb25zdCBzdHJ1Y3QgdHRtX3Jlc291cmNl X21hbmFnZXJfZnVuYyB2bXdfdGhwX2Z1bmMgPSB7Cj4gPiAgICAgICAuZ2V0X25vZGUgPSB2bXdf dGhwX2dldF9ub2RlLAo+ID4gICAgICAgLnB1dF9ub2RlID0gdm13X3RocF9wdXRfbm9kZSwKPiA+ ICAgICAgIC5kZWJ1ZyA9IHZtd190aHBfZGVidWcKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2Ry bS90dG0vdHRtX2JvX2FwaS5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaAo+ID4gaW5k ZXggZWI0NjVlOWNhMGMxLi4xNTk1OGRmZjExZDIgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL2Ry bS90dG0vdHRtX2JvX2FwaS5oCj4gPiArKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5o Cj4gPiBAQCAtNTQsNyArNTQsNyBAQCBzdHJ1Y3QgdHRtX3BsYWNlOwo+ID4KPiA+ICAgc3RydWN0 IHR0bV9scnVfYnVsa19tb3ZlOwo+ID4KPiA+IC1zdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXI7 Cj4gPiArc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyOwo+ID4KPiA+ICAgLyoqCj4gPiAgICAq IHN0cnVjdCB0dG1fYnVzX3BsYWNlbWVudAo+ID4gQEAgLTUzNCwxNCArNTM0LDE0IEBAIGludCB0 dG1fYm9fY3JlYXRlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCB1bnNpZ25lZCBsb25nIHNp emUsCj4gPiAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICoqcF9ibyk7 Cj4gPgo+ID4gICAvKioKPiA+IC0gKiB0dG1fbWVtX3R5cGVfbWFuYWdlcl9pbml0Cj4gPiArICog dHRtX3Jlc291cmNlX21hbmFnZXJfaW5pdAo+ID4gICAgKgo+ID4gICAgKiBAbWFuOiBtZW1vcnkg bWFuYWdlciBvYmplY3QgdG8gaW5pdAo+ID4gICAgKiBAcF9zaXplOiBzaXplIG1hbmFnZWQgYXJl YSBpbiBwYWdlcy4KPiA+ICAgICoKPiA+ICAgICogSW5pdGlhbGlzZSBjb3JlIHBhcnRzIG9mIGEg bWFuYWdlciBvYmplY3QuCj4gPiAgICAqLwo+ID4gLXZvaWQgdHRtX21lbV90eXBlX21hbmFnZXJf aW5pdChzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiA+ICt2b2lkIHR0bV9yZXNv dXJjZV9tYW5hZ2VyX2luaXQoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgcF9zaXplKTsKPiA+Cj4g PiAgIC8qKgo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgg Yi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCj4gPiBpbmRleCBmMjMxZmUzNGU3NDQu LmQxZWZmN2RlNGZhMyAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJp dmVyLmgKPiA+ICsrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKPiA+IEBAIC00 NSwxMSArNDUsMTEgQEAKPiA+Cj4gPiAgICNkZWZpbmUgVFRNX01BWF9CT19QUklPUklUWSA0VQo+ ID4KPiA+IC1zdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXI7Cj4gPiArc3RydWN0IHR0bV9yZXNv dXJjZV9tYW5hZ2VyOwo+ID4KPiA+IC1zdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJfZnVuYyB7 Cj4gPiArc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2Z1bmMgewo+ID4gICAgICAgLyoqCj4g PiAtICAgICAgKiBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgbWVtYmVyIGdldF9ub2RlCj4g PiArICAgICAgKiBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgbWVtYmVyIGdldF9ub2RlCj4g PiAgICAgICAgKgo+ID4gICAgICAgICogQG1hbjogUG9pbnRlciB0byBhIG1lbW9yeSB0eXBlIG1h bmFnZXIuCj4gPiAgICAgICAgKiBAYm86IFBvaW50ZXIgdG8gdGhlIGJ1ZmZlciBvYmplY3Qgd2Un cmUgYWxsb2NhdGluZyBzcGFjZSBmb3IuCj4gPiBAQCAtNjksMjAgKzY5LDIwIEBAIHN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlcl9mdW5jIHsKPiA+ICAgICAgICAqIHRoZSBmdW5jdGlvbiBzaG91 bGQgcmV0dXJuIGEgbmVnYXRpdmUgZXJyb3IgY29kZS4KPiA+ICAgICAgICAqCj4gPiAgICAgICAg KiBOb3RlIHRoYXQgQG1lbTo6bW1fbm9kZSB3aWxsIG9ubHkgYmUgZGVyZWZlcmVuY2VkIGJ5Cj4g PiAtICAgICAgKiBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgZnVuY3Rpb25zIGFuZCBvcHRp b25hbGx5IGJ5IHRoZSBkcml2ZXIsCj4gPiArICAgICAgKiBzdHJ1Y3QgdHRtX3Jlc291cmNlX21h bmFnZXIgZnVuY3Rpb25zIGFuZCBvcHRpb25hbGx5IGJ5IHRoZSBkcml2ZXIsCj4gPiAgICAgICAg KiB3aGljaCBoYXMga25vd2xlZGdlIG9mIHRoZSB1bmRlcmx5aW5nIHR5cGUuCj4gPiAgICAgICAg Kgo+ID4gICAgICAgICogVGhpcyBmdW5jdGlvbiBtYXkgbm90IGJlIGNhbGxlZCBmcm9tIHdpdGhp biBhdG9taWMgY29udGV4dCwgc28KPiA+ICAgICAgICAqIGFuIGltcGxlbWVudGF0aW9uIGNhbiBh bmQgbXVzdCB1c2UgZWl0aGVyIGEgbXV0ZXggb3IgYSBzcGlubG9jayB0bwo+ID4gICAgICAgICog cHJvdGVjdCBhbnkgZGF0YSBzdHJ1Y3R1cmVzIG1hbmFnaW5nIHRoZSBzcGFjZS4KPiA+ICAgICAg ICAqLwo+ID4gLSAgICAgaW50ICAoKmdldF9ub2RlKShzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFn ZXIgKm1hbiwKPiA+ICsgICAgIGludCAgKCpnZXRfbm9kZSkoc3RydWN0IHR0bV9yZXNvdXJjZV9t YW5hZ2VyICptYW4sCj4gPiAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sCj4gPiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0dG1f cGxhY2UgKnBsYWNlLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX21lbV9y ZWcgKm1lbSk7Cj4gPgo+ID4gICAgICAgLyoqCj4gPiAtICAgICAgKiBzdHJ1Y3QgdHRtX21lbV90 eXBlX21hbmFnZXIgbWVtYmVyIHB1dF9ub2RlCj4gPiArICAgICAgKiBzdHJ1Y3QgdHRtX3Jlc291 cmNlX21hbmFnZXIgbWVtYmVyIHB1dF9ub2RlCj4gPiAgICAgICAgKgo+ID4gICAgICAgICogQG1h bjogUG9pbnRlciB0byBhIG1lbW9yeSB0eXBlIG1hbmFnZXIuCj4gPiAgICAgICAgKiBAbWVtOiBQ b2ludGVyIHRvIGEgc3RydWN0IHR0bV9tZW1fcmVnIHRvIGJlIGZpbGxlZCBpbi4KPiA+IEBAIC05 MSwxMSArOTEsMTEgQEAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2Z1bmMgewo+ID4gICAg ICAgICogYW5kIHRoYXQgYXJlIGlkZW50aWZpZWQgYnkgQG1lbTo6bW1fbm9kZSBhbmQgQG1lbTo6 c3RhcnQuIE1heSBub3QKPiA+ICAgICAgICAqIGJlIGNhbGxlZCBmcm9tIHdpdGhpbiBhdG9taWMg Y29udGV4dC4KPiA+ICAgICAgICAqLwo+ID4gLSAgICAgdm9pZCAoKnB1dF9ub2RlKShzdHJ1Y3Qg dHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiA+ICsgICAgIHZvaWQgKCpwdXRfbm9kZSkoc3Ry dWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gPiAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKTsKPiA+Cj4gPiAgICAgICAvKioKPiA+IC0gICAgICAq IHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciBtZW1iZXIgZGVidWcKPiA+ICsgICAgICAqIHN0 cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciBtZW1iZXIgZGVidWcKPiA+ICAgICAgICAqCj4gPiAg ICAgICAgKiBAbWFuOiBQb2ludGVyIHRvIGEgbWVtb3J5IHR5cGUgbWFuYWdlci4KPiA+ICAgICAg ICAqIEBwcmludGVyOiBQcmVmaXggdG8gYmUgdXNlZCBpbiBwcmludG91dCB0byBpZGVudGlmeSB0 aGUgY2FsbGVyLgo+ID4gQEAgLTEwNCwxMiArMTA0LDEyIEBAIHN0cnVjdCB0dG1fbWVtX3R5cGVf bWFuYWdlcl9mdW5jIHsKPiA+ICAgICAgICAqIHR5cGUgbWFuYWdlciB0byBhaWQgZGVidWdnaW5n IG9mIG91dC1vZi1tZW1vcnkgY29uZGl0aW9ucy4KPiA+ICAgICAgICAqIEl0IG1heSBub3QgYmUg Y2FsbGVkIGZyb20gd2l0aGluIGF0b21pYyBjb250ZXh0Lgo+ID4gICAgICAgICovCj4gPiAtICAg ICB2b2lkICgqZGVidWcpKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ID4gKyAg ICAgdm9pZCAoKmRlYnVnKShzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiA+ICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9wcmludGVyICpwcmludGVyKTsKPiA+ICAgfTsK PiA+Cj4gPiAgIC8qKgo+ID4gLSAqIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlcgo+ID4gKyAq IHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlcgo+ID4gICAgKgo+ID4gICAgKiBAdXNlX3R5cGU6 IFRoZSBtZW1vcnkgdHlwZSBpcyBlbmFibGVkLgo+ID4gICAgKiBAZmxhZ3M6IFRUTV9NRU1UWVBF X1hYIGZsYWdzIGlkZW50aWZ5aW5nIHRoZSB0cmFpdHMgb2YgdGhlIG1lbW9yeQo+ID4gQEAgLTEz Niw3ICsxMzYsNyBAQCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJfZnVuYyB7Cj4gPgo+ID4K PiA+Cj4gPiAtc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyIHsKPiA+ICtzdHJ1Y3QgdHRtX3Jl c291cmNlX21hbmFnZXIgewo+ID4gICAgICAgLyoKPiA+ICAgICAgICAqIE5vIHByb3RlY3Rpb24u IENvbnN0YW50IGZyb20gc3RhcnQuCj4gPiAgICAgICAgKi8KPiA+IEBAIC0xNDUsNyArMTQ1LDcg QEAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyIHsKPiA+ICAgICAgIHVpbnQ2NF90IHNpemU7 Cj4gPiAgICAgICB1aW50MzJfdCBhdmFpbGFibGVfY2FjaGluZzsKPiA+ICAgICAgIHVpbnQzMl90 IGRlZmF1bHRfY2FjaGluZzsKPiA+IC0gICAgIGNvbnN0IHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFu YWdlcl9mdW5jICpmdW5jOwo+ID4gKyAgICAgY29uc3Qgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5h Z2VyX2Z1bmMgKmZ1bmM7Cj4gPiAgICAgICBzdHJ1Y3QgbXV0ZXggaW9fcmVzZXJ2ZV9tdXRleDsK PiA+ICAgICAgIGJvb2wgdXNlX2lvX3Jlc2VydmVfbHJ1Owo+ID4gICAgICAgc3BpbmxvY2tfdCBt b3ZlX2xvY2s7Cj4gPiBAQCAtMzkwLDcgKzM5MCw3IEBAIGV4dGVybiBzdHJ1Y3QgdHRtX2JvX2ds b2JhbCB7Cj4gPiAgICAqIHN0cnVjdCB0dG1fYm9fZGV2aWNlIC0gQnVmZmVyIG9iamVjdCBkcml2 ZXIgZGV2aWNlLXNwZWNpZmljIGRhdGEuCj4gPiAgICAqCj4gPiAgICAqIEBkcml2ZXI6IFBvaW50 ZXIgdG8gYSBzdHJ1Y3QgdHRtX2JvX2RyaXZlciBzdHJ1Y3Qgc2V0dXAgYnkgdGhlIGRyaXZlci4K PiA+IC0gKiBAbWFuOiBBbiBhcnJheSBvZiBtZW1fdHlwZV9tYW5hZ2Vycy4KPiA+ICsgKiBAbWFu OiBBbiBhcnJheSBvZiByZXNvdXJjZV9tYW5hZ2Vycy4KPiA+ICAgICogQHZtYV9tYW5hZ2VyOiBB ZGRyZXNzIHNwYWNlIG1hbmFnZXIgKHBvaW50ZXIpCj4gPiAgICAqIGxydV9sb2NrOiBTcGlubG9j ayB0aGF0IHByb3RlY3RzIHRoZSBidWZmZXIrZGV2aWNlIGxydSBsaXN0cyBhbmQKPiA+ICAgICog ZGRlc3Ryb3kgbGlzdHMuCj4gPiBAQCAtNDExLDggKzQxMSw4IEBAIHN0cnVjdCB0dG1fYm9fZGV2 aWNlIHsKPiA+ICAgICAgIC8qCj4gPiAgICAgICAgKiBhY2Nlc3MgdmlhIHR0bV9tYW5hZ2VyX3R5 cGUuCj4gPiAgICAgICAgKi8KPiA+IC0gICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciBz eXNtYW47Cj4gPiAtICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbl9kcnZbVFRN X05VTV9NRU1fVFlQRVNdOwo+ID4gKyAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyIHN5 c21hbjsKPiA+ICsgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuX2RydltUVE1f TlVNX01FTV9UWVBFU107Cj4gPiAgICAgICAvKgo+ID4gICAgICAgICogUHJvdGVjdGVkIGJ5IGlu dGVybmFsIGxvY2tzLgo+ID4gICAgICAgICovCj4gPiBAQCAtNDQwLDcgKzQ0MCw3IEBAIHN0cnVj dCB0dG1fYm9fZGV2aWNlIHsKPiA+ICAgICAgIGJvb2wgbm9fcmV0cnk7Cj4gPiAgIH07Cj4gPgo+ ID4gLXN0YXRpYyBpbmxpbmUgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICp0dG1fbWFuYWdl cl90eXBlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+ID4gK3N0YXRpYyBpbmxpbmUgc3Ry dWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICp0dG1fbWFuYWdlcl90eXBlKHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCBtZW1fdHlwZSkKPiA+ICAgewo+ID4gICAgICAgcmV0dXJu IGJkZXYtPm1hbl9kcnZbbWVtX3R5cGVdOwo+ID4gQEAgLTQ0OCw3ICs0NDgsNyBAQCBzdGF0aWMg aW5saW5lIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqdHRtX21hbmFnZXJfdHlwZShzdHJ1 Y3QgdHRtX2JvX2RldmljZQo+ID4KPiA+ICAgc3RhdGljIGlubGluZSB2b2lkIHR0bV9zZXRfZHJp dmVyX21hbmFnZXIoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHR5cGUsCj4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW5h Z2VyKQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0 dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuYWdlcikKPiA+ICAgewo+ID4gICAgICAgYmRldi0+bWFu X2Rydlt0eXBlXSA9IG1hbmFnZXI7Cj4gPiAgIH0KPiA+IEBAIC01NzAsOCArNTcwLDggQEAgdm9p ZCB0dG1fYm9fdW5tYXBfdmlydHVhbF9sb2NrZWQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi byk7Cj4gPgo+ID4gICBpbnQgdHRtX21lbV9pb19yZXNlcnZlX3ZtKHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8pOwo+ID4gICB2b2lkIHR0bV9tZW1faW9fZnJlZV92bShzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvKTsKPiA+IC1pbnQgdHRtX21lbV9pb19sb2NrKHN0cnVjdCB0dG1fbWVt X3R5cGVfbWFuYWdlciAqbWFuLCBib29sIGludGVycnVwdGlibGUpOwo+ID4gLXZvaWQgdHRtX21l bV9pb191bmxvY2soc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4pOwo+ID4gK2ludCB0 dG1fbWVtX2lvX2xvY2soc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sIGJvb2wgaW50 ZXJydXB0aWJsZSk7Cj4gPiArdm9pZCB0dG1fbWVtX2lvX3VubG9jayhzdHJ1Y3QgdHRtX3Jlc291 cmNlX21hbmFnZXIgKm1hbik7Cj4gPgo+ID4gICAvKioKPiA+ICAgICogdHRtX2JvX3Jlc2VydmU6 Cj4gPiBAQCAtNjY1LDcgKzY2NSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0dG1fYm9fdW5yZXNl cnZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4gPiAgIH0KPiA+Cj4gPiAgIC8qKgo+ ID4gLSAqIHR0bV9tZW1fdHlwZV9tYW5hZ2VyX3NldF91c2VkCj4gPiArICogdHRtX3Jlc291cmNl X21hbmFnZXJfc2V0X3VzZWQKPiA+ICAgICoKPiA+ICAgICogQG1hbjogQSBtZW1vcnkgbWFuYWdl ciBvYmplY3QuCj4gPiAgICAqIEB1c2VkOiB1c2FnZSBzdGF0ZSB0byBzZXQuCj4gPiBAQCAtNjcz LDEzICs2NzMsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIHR0bV9ib191bnJlc2VydmUoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPiA+ICAgICogU2V0IHRoZSBtYW5hZ2VyIGluIHVzZSBm bGFnLiBJZiBkaXNhYmxlZCB0aGUgbWFuYWdlciBpcyBubyBsb25nZXIKPiA+ICAgICogdXNlZCBm b3Igb2JqZWN0IHBsYWNlbWVudC4KPiA+ICAgICovCj4gPiAtc3RhdGljIGlubGluZSB2b2lkIHR0 bV9tZW1fdHlwZV9tYW5hZ2VyX3NldF91c2VkKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAq bWFuLCBib29sIHVzZWQpCj4gPiArc3RhdGljIGlubGluZSB2b2lkIHR0bV9yZXNvdXJjZV9tYW5h Z2VyX3NldF91c2VkKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLCBib29sIHVzZWQp Cj4gPiAgIHsKPiA+ICAgICAgIG1hbi0+dXNlX3R5cGUgPSB1c2VkOwo+ID4gICB9Cj4gPgo+ID4g ICAvKioKPiA+IC0gKiB0dG1fbWVtX3R5cGVfbWFuYWdlcl91c2VkCj4gPiArICogdHRtX3Jlc291 cmNlX21hbmFnZXJfdXNlZAo+ID4gICAgKgo+ID4gICAgKiBAbWFuOiBNYW5hZ2VyIHRvIGdldCB1 c2VkIHN0YXRlIGZvcgo+ID4gICAgKgo+ID4gQEAgLTY4NywyNiArNjg3LDI2IEBAIHN0YXRpYyBp bmxpbmUgdm9pZCB0dG1fbWVtX3R5cGVfbWFuYWdlcl9zZXRfdXNlZChzdHJ1Y3QgdHRtX21lbV90 eXBlX21hbmFnZXIgKm1hCj4gPiAgICAqIFJldHVybnM6Cj4gPiAgICAqIHRydWUgaXMgdXNlZCwg ZmFsc2UgaWYgbm90Lgo+ID4gICAgKi8KPiA+IC1zdGF0aWMgaW5saW5lIGJvb2wgdHRtX21lbV90 eXBlX21hbmFnZXJfdXNlZChzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbikKPiA+ICtz dGF0aWMgaW5saW5lIGJvb2wgdHRtX3Jlc291cmNlX21hbmFnZXJfdXNlZChzdHJ1Y3QgdHRtX3Jl c291cmNlX21hbmFnZXIgKm1hbikKPiA+ICAgewo+ID4gICAgICAgcmV0dXJuIG1hbi0+dXNlX3R5 cGU7Cj4gPiAgIH0KPiA+Cj4gPiAgIC8qKgo+ID4gLSAqIHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2Ns ZWFudXAKPiA+ICsgKiB0dG1fcmVzb3VyY2VfbWFuYWdlcl9jbGVhbnVwCj4gPiAgICAqCj4gPiAg ICAqIEBtYW46IEEgbWVtb3J5IG1hbmFnZXIgb2JqZWN0Lgo+ID4gICAgKgo+ID4gICAgKiBDbGVh bnVwIHRoZSBtb3ZlIGZlbmNlcyBmcm9tIHRoZSBtZW1vcnkgbWFuYWdlciBvYmplY3QuCj4gPiAg ICAqLwo+ID4gLXN0YXRpYyBpbmxpbmUgdm9pZCB0dG1fbWVtX3R5cGVfbWFuYWdlcl9jbGVhbnVw KHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKQo+ID4gK3N0YXRpYyBpbmxpbmUgdm9p ZCB0dG1fcmVzb3VyY2VfbWFuYWdlcl9jbGVhbnVwKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdl ciAqbWFuKQo+ID4gICB7Cj4gPiAgICAgICBkbWFfZmVuY2VfcHV0KG1hbi0+bW92ZSk7Cj4gPiAg ICAgICBtYW4tPm1vdmUgPSBOVUxMOwo+ID4gICB9Cj4gPgo+ID4gICAvKgo+ID4gLSAqIHR0bV9t ZW1fdHlwZV9tYW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4KPiA+ICsgKiB0dG1fcmVzb3VyY2VfbWFu YWdlcl9mb3JjZV9saXN0X2NsZWFuCj4gPiAgICAqCj4gPiAgICAqIEBiZGV2IC0gZGV2aWNlIHRv IHVzZQo+ID4gICAgKiBAbWFuIC0gbWFuYWdlciB0byB1c2UKPiA+IEBAIC03MTQsOCArNzE0LDgg QEAgc3RhdGljIGlubGluZSB2b2lkIHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2NsZWFudXAoc3RydWN0 IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4KPiA+ICAgICogRm9yY2UgYWxsIHRoZSBvYmplY3Rz IG91dCBvZiBhIG1lbW9yeSBtYW5hZ2VyIHVudGlsIGNsZWFuLgo+ID4gICAgKiBQYXJ0IG9mIG1l bW9yeSBtYW5hZ2VyIGNsZWFudXAgc2VxdWVuY2UuCj4gPiAgICAqLwo+ID4gLWludCB0dG1fbWVt X3R5cGVfbWFuYWdlcl9mb3JjZV9saXN0X2NsZWFuKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 LAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1f bWVtX3R5cGVfbWFuYWdlciAqbWFuKTsKPiA+ICtpbnQgdHRtX3Jlc291cmNlX21hbmFnZXJfZm9y Y2VfbGlzdF9jbGVhbihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIg Km1hbik7Cj4gPgo+ID4gICAvKgo+ID4gICAgKiB0dG1fYm9fdXRpbC5jCj4gPiBAQCAtODY0LDEy ICs4NjQsMTIgQEAgaW50IHR0bV9yYW5nZV9tYW5fZmluaShzdHJ1Y3QgdHRtX2JvX2RldmljZSAq YmRldiwKPiA+ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHR5cGUpOwo+ID4KPiA+ICAg LyoqCj4gPiAtICogdHRtX21lbV90eXBlX21hbmFnZXJfZGVidWcKPiA+ICsgKiB0dG1fcmVzb3Vy Y2VfbWFuYWdlcl9kZWJ1Zwo+ID4gICAgKgo+ID4gICAgKiBAbWFuOiBtYW5hZ2VyIHR5cGUgdG8g ZHVtcC4KPiA+ICAgICogQHA6IHByaW50ZXIgdG8gdXNlIGZvciBkZWJ1Zy4KPiA+ICAgICovCj4g PiAtdm9pZCB0dG1fbWVtX3R5cGVfbWFuYWdlcl9kZWJ1ZyhzdHJ1Y3QgdHRtX21lbV90eXBlX21h bmFnZXIgKm1hbiwKPiA+ICt2b2lkIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2RlYnVnKHN0cnVjdCB0 dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGRybV9wcmludGVyICpwKTsKPiA+Cj4gPiAgICNlbmRpZgo+Cj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=