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=-10.5 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,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 23DCFC433E0 for ; Tue, 12 Jan 2021 00:45:45 +0000 (UTC) Received: from lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (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 B14D522510; Tue, 12 Jan 2021 00:45:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B14D522510 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linux-f2fs-devel-bounces@lists.sourceforge.net Received: from [127.0.0.1] (helo=sfs-ml-2.v29.lw.sourceforge.com) by sfs-ml-2.v29.lw.sourceforge.com with esmtp (Exim 4.90_1) (envelope-from ) id 1kz7od-0001oX-DF; Tue, 12 Jan 2021 00:45:43 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-2.v29.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kz7oc-0001oM-QI for linux-f2fs-devel@lists.sourceforge.net; Tue, 12 Jan 2021 00:45:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:Content-Type:Cc:To: Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=HgUra/XQWD3R47xve2wIBMR51nv2uaCjwcKQY0mMSrk=; b=aoNz+ri1OYm2Jp7ztfoweNp4aK Uv2jXD9spbMulCJTxBHTDXwJvRNKLzxqxFavkknPjyIh5hC0qq52mOJ5/kmK+Zi0eKmUVHgS2xula OyzmEFZZf8tgM6YZTXzAfwCn5JhZhwR1sRc2qVCnczTEm1uS17oEbLYIvVBRU8WG8jMw=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:Content-Type:Cc:To:Subject:Message-ID:Date:From :In-Reply-To:References:MIME-Version:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=HgUra/XQWD3R47xve2wIBMR51nv2uaCjwcKQY0mMSrk=; b=jWHpLghDJ8nLa6wMMU7KrF4vnK AqduuGTO9lqc9+wk4JfHYp5OlmRgljhNzxqlDbOqAD6FXKU79aLB/p+VfcqngQ5En3PhEYxnjyUut yQYNILap7PRH1pWlGCjhTL+gMl1y+JrHBU3eIKoqtzzRGvBhiCu08bElrYNaLGdEVTaQ=; Received: from mail-lf1-f50.google.com ([209.85.167.50]) by sfi-mx-3.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.92.2) id 1kz7oO-002LFu-Bp for linux-f2fs-devel@lists.sourceforge.net; Tue, 12 Jan 2021 00:45:42 +0000 Received: by mail-lf1-f50.google.com with SMTP id s26so744640lfc.8 for ; Mon, 11 Jan 2021 16:45:28 -0800 (PST) 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=HgUra/XQWD3R47xve2wIBMR51nv2uaCjwcKQY0mMSrk=; b=o0Slr1WsVa29FUMujMdOooXwwlroB1LHmHoUEGWKMT30wjJEeImrz8UDMDYi4EqAR/ adXRMSvVHk7AAVdmclX/7jji/0XTI3vKrJ6ImCkz5TfYG5KKCQJ9PB6Tb6qwtTc9STza f4VA3uTrTHM64yg7M72M7XbzzBoYdX3u7ST3HFQ3i2PT0eF6zvQDC5O5gdtHA7C49Apk jv+d5I4v1tLSO1xD4IBhICjSGVBCGK45GXpat1tLVMEbE4++utWXFUV5B4uPznndjbyD appwoUQwicMi021ImxZR8/k5pf+Wl5Sn8KN3Fb/hlPhNcXCBuhB+mTFuA2aBeXBaUtzw z8jQ== 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=HgUra/XQWD3R47xve2wIBMR51nv2uaCjwcKQY0mMSrk=; b=fVOAKh2IFZgOf+tDiS5r4guwYgLfU/ctKFUOJOsHfmk3MLCZL8tlNiiNka4cD8rjE0 iVJw+JN0fkOA+2u85Drl14XampeOAcD0eEMO8XNnBqSnjsHmvSLe9vMrVvTt4SEkxDqs 4On1DNjpwtvEDeI9E0z8gC1absDYXYJng+pgDMPNzTcPMwwC9JCZE/xqR99I7QNWFtxc +EZ0P5eWrV7x/VF2j772JWH8Uf1Zw22nAhJxqXhv3miMmT6u6MWECp4ccsBxXZuTPwtf VCKA640sqGii1eefRQ0RGVjzveya2qI1+3Z9NKeJASAhFXTdLgrikwmgyskNsgMhZMvV sP+A== X-Gm-Message-State: AOAM532gXovJ/oIqVF0UMw7diC4GYgF7K2winhSx6WpRjiJ2n/svbWb+ P+/b9pVBY1nLTodTtC8nVM6bY3ow+a4MAOnaV7U= X-Google-Smtp-Source: ABdhPJygFIfKGI0gR623qxSQqNB65d1g5oKCFIDmJ0IW9rMHvloANc2Y7ObTzciffmyORKg6PFoOH9Y33vAxpwSie04= X-Received: by 2002:ac2:5ff1:: with SMTP id s17mr940304lfg.139.1610412314472; Mon, 11 Jan 2021 16:45:14 -0800 (PST) MIME-Version: 1.0 References: <20210111051543.243387-1-daeho43@gmail.com> In-Reply-To: From: Daeho Jeong Date: Tue, 12 Jan 2021 09:45:03 +0900 Message-ID: To: Chao Yu X-Headers-End: 1kz7oO-002LFu-Bp Subject: Re: [f2fs-dev] [PATCH 1/2] f2fs: introduce checkpoint=merge mount option X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daeho Jeong , Sungjong Seo , kernel-team@android.com, linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net MjAyMeuFhCAx7JuUIDEx7J28ICjsm5QpIOyYpO2bhCA2OjM0LCBDaGFvIFl1IDx5dWNoYW8wQGh1 YXdlaS5jb20+64uY7J20IOyekeyEsToKPgo+IE9uIDIwMjEvMS8xMSAxMzoxNSwgRGFlaG8gSmVv bmcgd3JvdGU6Cj4gPiBGcm9tOiBEYWVobyBKZW9uZyA8ZGFlaG9qZW9uZ0Bnb29nbGUuY29tPgo+ ID4KPiA+IFdlJ3ZlIGFkZGVkIGEgbmV3IG1vdW50IG9wdGlvbiAiY2hlY2twb2ludD1tZXJnZSIs IHdoaWNoIGNyZWF0ZXMgYQo+ID4ga2VybmVsIGRhZW1vbiBhbmQgbWFrZXMgaXQgdG8gbWVyZ2Ug Y29uY3VycmVudCBjaGVja3BvaW50IHJlcXVlc3RzIGFzCj4gPiBtdWNoIGFzIHBvc3NpYmxlIHRv IGVsaW1pbmF0ZSByZWR1bmRhbnQgY2hlY2twb2ludCBpc3N1ZXMuIFBsdXMsIHdlCj4gPiBjYW4g ZWxpbWluYXRlIHRoZSBzbHVnZ2lzaCBpc3N1ZSBjYXVzZWQgYnkgc2xvdyBjaGVja3BvaW50IG9w ZXJhdGlvbgo+ID4gd2hlbiB0aGUgY2hlY2twb2ludCBpcyBkb25lIGluIGEgcHJvY2VzcyBjb250 ZXh0IGluIGEgY2dyb3VwIGhhdmluZwo+ID4gbG93IGkvbyBidWRnZXQgYW5kIGNwdSBzaGFyZXMs IGFuZCBUaGUgYmVsb3cgdmVyaWZpY2F0aW9uIHJlc3VsdAo+ID4gZXhwbGFpbnMgdGhpcy4KPiA+ IFRoZSBiYXNpYyBpZGVhIGhhcyBjb21lIGZyb20gaHR0cHM6Ly9vcGVuc291cmNlLnNhbXN1bmcu Y29tLgo+Cj4gTmljZSBwcm9wb3NhbCwgd2UgaGF2ZSB0aGUgc2FtZSBpZGVhIGZvciBmb3JlZ3Jv dW5kIEdDLCBJIGd1ZXNzIHdlCj4gY2FuIHVwc3RyZWFtIHRoaXMgbGF0ZXIgYXMgd2VsbDoKPgo+ IGh0dHBzOi8vY29uc3VtZXIuaHVhd2VpLmNvbS9lbi9vcGVuc291cmNlLwo+Cj4gPgo+ID4gW1Zl cmlmaWNhdGlvbl0KPiA+IEFuZHJvaWQgUGl4ZWwgRGV2aWNlKEFSTTY0LCA3R0IgUkFNLCAyNTZH QiBVRlMpCj4gPiBDcmVhdGUgdHdvIEkvTyBjZ3JvdXBzIChmZyB3LyB3ZWlnaHQgMTAwLCBiZyB3 LyB3aWdodCAyMCkKPiA+Cj4gPiBJbiAiZmciIGNncm91cCwKPiA+IC0gdGhyZWFkIEEgPT4gdHJp Z2dlciAxMDAwIGNoZWNrcG9pbnQgb3BlcmF0aW9ucwo+ID4gICAgImZvciBpIGluIGBzZXEgMSAx MDAwYDsgZG8gdG91Y2ggdGVzdF9kaXIxL2ZpbGU7IGZzeW5jIHRlc3RfZGlyMTsKPiA+ICAgICBk b25lIgo+ID4gLSB0aHJlYWQgQiA9PiBnZXJlcmF0aW5nIGFzeW5jLiBJL08KPiA+ICAgICJmaW8g LS1ydz13cml0ZSAtLW51bWpvYnM9MSAtLWJzPTEyOGsgLS1ydW50aW1lPTM2MDAgLS10aW1lX2Jh c2VkPTEKPiA+ICAgICAgICAgLS1maWxlbmFtZT10ZXN0X2ltZyAtLW5hbWU9dGVzdCIKPiA+Cj4g PiBJbiAiYmciIGNncm91cCwKPiA+IC0gdGhyZWFkIEMgPT4gdHJpZ2dlciByZXBlYXRlZCBjaGVj a3BvaW50IG9wZXJhdGlvbnMKPiA+ICAgICJlY2hvICQkID4gL2Rldi9ibGtpby9iZy90YXNrczsg d2hpbGUgdHJ1ZTsgZG8gdG91Y2ggdGVzdF9kaXIyL2ZpbGU7Cj4gPiAgICAgZnN5bmMgdGVzdF9k aXIyOyBkb25lIgo+ID4KPiA+IFdlJ3ZlIG1lYXN1cmVkIHRocmVhZCBBJ3MgZXhlY3V0aW9uIHRp bWUuCj4gPgo+ID4gWyB3L28gcGF0Y2ggXQo+ID4gRWxhcHNlZCBUaW1lOiBBdmcuIDY4IHNlY29u ZHMKPiA+IFsgdy8gIHBhdGNoIF0KPiA+IEVsYXBzZWQgVGltZTogQXZnLiA0OCBzZWNvbmRzCj4g Pgo+ID4gU2lnbmVkLW9mZi1ieTogRGFlaG8gSmVvbmcgPGRhZWhvamVvbmdAZ29vZ2xlLmNvbT4K PiA+IFNpZ25lZC1vZmYtYnk6IFN1bmdqb25nIFNlbyA8c2oxNTU3LnNlb0BzYW1zdW5nLmNvbT4K PiA+IC0tLQo+ID4gICBEb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2YyZnMucnN0IHwgICA2ICsK PiA+ICAgZnMvZjJmcy9jaGVja3BvaW50LmMgICAgICAgICAgICAgICB8IDE3NiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+ID4gICBmcy9mMmZzL2RlYnVnLmMgICAgICAgICAgICAgICAg ICAgIHwgICA2ICsKPiA+ICAgZnMvZjJmcy9mMmZzLmggICAgICAgICAgICAgICAgICAgICB8ICAy NCArKysrCj4gPiAgIGZzL2YyZnMvc3VwZXIuYyAgICAgICAgICAgICAgICAgICAgfCAgNTMgKysr KysrKystCj4gPiAgIDUgZmlsZXMgY2hhbmdlZCwgMjYxIGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZjJm cy5yc3QgYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2YyZnMucnN0Cj4gPiBpbmRleCBkYWUx NWM5NmU2NTkuLmJjY2MwMjFiZjMxYSAxMDA2NDQKPiA+IC0tLSBhL0RvY3VtZW50YXRpb24vZmls ZXN5c3RlbXMvZjJmcy5yc3QKPiA+ICsrKyBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZjJm cy5yc3QKPiA+IEBAIC0yNDcsNiArMjQ3LDEyIEBAIGNoZWNrcG9pbnQ9JXNbOiV1WyVdXSAgICAg U2V0IHRvICJkaXNhYmxlIiB0byB0dXJuIG9mZiBjaGVja3BvaW50aW5nLiBTZXQgdG8gImVuYWJs Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGUgdXAgdG8gYWxsIHJlbWFpbmluZyBmcmVl IHNwYWNlLiBUaGUgYWN0dWFsIHNwYWNlIHRoYXQKPiA+ICAgICAgICAgICAgICAgICAgICAgICAg d291bGQgYmUgdW51c2FibGUgY2FuIGJlIHZpZXdlZCBhdCAvc3lzL2ZzL2YyZnMvPGRpc2s+L3Vu dXNhYmxlCj4gPiAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgc3BhY2UgaXMgcmVjbGFpbWVk IG9uY2UgY2hlY2twb2ludD1lbmFibGUuCj4gPiArICAgICAgICAgICAgICAgICAgICAgIEhlcmUg aXMgYW5vdGhlciBvcHRpb24gIm1lcmdlIiwgd2hpY2ggY3JlYXRlcyBhIGtlcm5lbCBkYWVtb24K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgYW5kIG1ha2VzIGl0IHRvIG1lcmdlIGNvbmN1cnJl bnQgY2hlY2twb2ludCByZXF1ZXN0cyBhcyBtdWNoCj4gPiArICAgICAgICAgICAgICAgICAgICAg IGFzIHBvc3NpYmxlIHRvIGVsaW1pbmF0ZSByZWR1bmRhbnQgY2hlY2twb2ludCBpc3N1ZXMuIFBs dXMsCj4gPiArICAgICAgICAgICAgICAgICAgICAgIHdlIGNhbiBlbGltaW5hdGUgdGhlIHNsdWdn aXNoIGlzc3VlIGNhdXNlZCBieSBzbG93IGNoZWNrcG9pbnQKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgb3BlcmF0aW9uIHdoZW4gdGhlIGNoZWNrcG9pbnQgaXMgZG9uZSBpbiBhIHByb2Nlc3Mg Y29udGV4dCBpbgo+ID4gKyAgICAgICAgICAgICAgICAgICAgICBhIGNncm91cCBoYXZpbmcgbG93 IGkvbyBidWRnZXQgYW5kIGNwdSBzaGFyZXMuCj4gPiAgIGNvbXByZXNzX2FsZ29yaXRobT0lcyAg ICAgICAgQ29udHJvbCBjb21wcmVzcyBhbGdvcml0aG0sIGN1cnJlbnRseSBmMmZzIHN1cHBvcnRz ICJsem8iLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAibHo0IiwgInpzdGQiIGFuZCAibHpv LXJsZSIgYWxnb3JpdGhtLgo+ID4gICBjb21wcmVzc19sb2dfc2l6ZT0ldSAgICAgICAgIFN1cHBv cnQgY29uZmlndXJpbmcgY29tcHJlc3MgY2x1c3RlciBzaXplLCB0aGUgc2l6ZSB3aWxsCj4gPiBk aWZmIC0tZ2l0IGEvZnMvZjJmcy9jaGVja3BvaW50LmMgYi9mcy9mMmZzL2NoZWNrcG9pbnQuYwo+ ID4gaW5kZXggODk3ZWRiN2M5NTFhLi4xMTI4OGY0MzVkYmUgMTAwNjQ0Cj4gPiAtLS0gYS9mcy9m MmZzL2NoZWNrcG9pbnQuYwo+ID4gKysrIGIvZnMvZjJmcy9jaGVja3BvaW50LmMKPiA+IEBAIC0x Myw2ICsxMyw3IEBACj4gPiAgICNpbmNsdWRlIDxsaW51eC9mMmZzX2ZzLmg+Cj4gPiAgICNpbmNs dWRlIDxsaW51eC9wYWdldmVjLmg+Cj4gPiAgICNpbmNsdWRlIDxsaW51eC9zd2FwLmg+Cj4gPiAr I2luY2x1ZGUgPGxpbnV4L2t0aHJlYWQuaD4KPiA+Cj4gPiAgICNpbmNsdWRlICJmMmZzLmgiCj4g PiAgICNpbmNsdWRlICJub2RlLmgiCj4gPiBAQCAtMjAsNiArMjEsOCBAQAo+ID4gICAjaW5jbHVk ZSAidHJhY2UuaCIKPiA+ICAgI2luY2x1ZGUgPHRyYWNlL2V2ZW50cy9mMmZzLmg+Cj4gPgo+ID4g KyNkZWZpbmUgREVGQVVMVF9DSEVDS1BPSU5UX0lPUFJJTyAoSU9QUklPX1BSSU9fVkFMVUUoSU9Q UklPX0NMQVNTX0JFLCAzKSkKPiA+ICsKPiA+ICAgc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpp bm9fZW50cnlfc2xhYjsKPiA+ICAgc3RydWN0IGttZW1fY2FjaGUgKmYyZnNfaW5vZGVfZW50cnlf c2xhYjsKPiA+Cj4gPiBAQCAtMTcwNywzICsxNzEwLDE3NiBAQCB2b2lkIGYyZnNfZGVzdHJveV9j aGVja3BvaW50X2NhY2hlcyh2b2lkKQo+ID4gICAgICAga21lbV9jYWNoZV9kZXN0cm95KGlub19l bnRyeV9zbGFiKTsKPiA+ICAgICAgIGttZW1fY2FjaGVfZGVzdHJveShmMmZzX2lub2RlX2VudHJ5 X3NsYWIpOwo+ID4gICB9Cj4gPiArCj4gPiArc3RhdGljIGludCBfX3dyaXRlX2NoZWNrcG9pbnRf c3luYyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4gPiArewo+ID4gKyAgICAgc3RydWN0IGNw X2NvbnRyb2wgY3BjID0geyAucmVhc29uID0gQ1BfU1lOQywgfTsKPiA+ICsgICAgIGludCBlcnI7 Cj4gPiArCj4gPiArICAgICBkb3duX3dyaXRlKCZzYmktPmdjX2xvY2spOwo+ID4gKyAgICAgZXJy ID0gZjJmc193cml0ZV9jaGVja3BvaW50KHNiaSwgJmNwYyk7Cj4gPiArICAgICB1cF93cml0ZSgm c2JpLT5nY19sb2NrKTsKPiA+ICsKPiA+ICsgICAgIHJldHVybiBlcnI7Cj4gPiArfQo+ID4gKwo+ ID4gK3N0YXRpYyB2b2lkIF9fY2hlY2twb2ludF9hbmRfY29tcGxldGVfcmVxcyhzdHJ1Y3QgZjJm c19zYl9pbmZvICpzYmkpCj4gPiArewo+ID4gKyAgICAgc3RydWN0IGNrcHRfcmVxX2NvbnRyb2wg KmNwcmMgPSBzYmktPmNwcmNfaW5mbzsKPgo+IFdlIGNhbiBlbmNvdW50ZXIgYmVsb3cgcmFjZSBj YXNlPwo+Cj4gZmx1c2hlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW91bnRl cgo+IC0gaXNzdWVfY2hlY2twb2ludF90aHJlYWQKPiAgIC0gX19jaGVja3BvaW50X2FuZF9jb21w bGV0ZV9yZXFzCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gcmVt b3VudAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBmMmZzX2Rl c3Ryb3lfY2twdF9yZXFfY29udHJvbAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0gY3ByYy0+ZjJmc19pc3N1ZV9ja3B0ID0gTlVMTDsKPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIGt0aHJlYWRfc3RvcChja3B0X3Rhc2spOwo+ ICAgIC0gYWNjZXNzIE5VTEwgc2JpLT5jcHJjX2luZm8KPgoKV2hlbiB3ZSByZW1vdW50IHRoZSBm aWxlc3lzdGVtLCB3ZSB1c2UKZjJmc19kZXN0cm95X2NrcHRfcmVxX2NvbnRyb2woc2JpLCAiZmFs c2UiKS4KU28sIGl0IGtlZXBzIHNiaS0+Y3ByY19pbmZvIGFsaXZlLgoKPiA+ICsgICAgIHN0cnVj dCBja3B0X3JlcSAqcmVxLCAqbmV4dDsKPiA+ICsgICAgIHN0cnVjdCBsbGlzdF9ub2RlICpkaXNw YXRjaF9saXN0Owo+ID4gKyAgICAgaW50IHJldDsKPiA+ICsKPiA+ICsgICAgIGRpc3BhdGNoX2xp c3QgPSBsbGlzdF9kZWxfYWxsKCZjcHJjLT5pc3N1ZV9saXN0KTsKPiA+ICsgICAgIGlmICghZGlz cGF0Y2hfbGlzdCkKPiA+ICsgICAgICAgICAgICAgcmV0dXJuOwo+Cj4gQmVmb3JlIHRoaXMgZnVu Y3Rpb24sIHdlIGhhdmUgY2hlY2tlZCBsb2NrbGVzcyBsaXN0IGJ5IGxsaXN0X2VtcHR5KCZjcHJj LT5pc3N1ZV9saXN0KSwKPiBzbywgaWYgd2UgY2FuIG5vdCBncmFiIGFueSBlbnRyaWVzIGZyb20g bGlzdCwgaXMgdGhhdCBjYXVzZWQgYnkgcmFjZSBiZXR3ZWVuCj4gaXNzdWVfY2hlY2twb2ludF90 aHJlYWQoKSBhbmQgZjJmc19kZXN0cm95X2NrcHRfcmVxX2NvbnRyb2woKT8KPgoKWWVzLCB0aGlz IGlzIGZvciB0aGF0LgoKPiA+ICsgICAgIGRpc3BhdGNoX2xpc3QgPSBsbGlzdF9yZXZlcnNlX29y ZGVyKGRpc3BhdGNoX2xpc3QpOwo+ID4gKwo+ID4gKyAgICAgcmV0ID0gX193cml0ZV9jaGVja3Bv aW50X3N5bmMoc2JpKTsKPiA+ICsgICAgIGF0b21pY19pbmMoJmNwcmMtPmlzc3VlZF9ja3B0KTsK PiA+ICsKPiA+ICsgICAgIGxsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmVxLCBuZXh0LCBkaXNw YXRjaF9saXN0LCBsbG5vZGUpIHsKPiA+ICsgICAgICAgICAgICAgYXRvbWljX2RlYygmY3ByYy0+ cXVldWVkX2NrcHQpOwo+ID4gKyAgICAgICAgICAgICBhdG9taWNfaW5jKCZjcHJjLT50b3RhbF9j a3B0KTsKPiA+ICsgICAgICAgICAgICAgcmVxLT5jb21wbGV0ZV90aW1lID0gamlmZmllczsKPiA+ ICsgICAgICAgICAgICAgcmVxLT5yZXQgPSByZXQ7Cj4gPiArICAgICAgICAgICAgIGNvbXBsZXRl KCZyZXEtPndhaXQpOwo+ID4gKyAgICAgfQo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW50IGlz c3VlX2NoZWNrcG9pbnRfdGhyZWFkKHZvaWQgKmRhdGEpCj4gPiArewo+ID4gKyAgICAgc3RydWN0 IGYyZnNfc2JfaW5mbyAqc2JpID0gZGF0YTsKPiA+ICsgICAgIHN0cnVjdCBja3B0X3JlcV9jb250 cm9sICpjcHJjID0gc2JpLT5jcHJjX2luZm87Cj4gPiArICAgICB3YWl0X3F1ZXVlX2hlYWRfdCAq cSA9ICZjcHJjLT5ja3B0X3dhaXRfcXVldWU7Cj4gPiArcmVwZWF0Ogo+ID4gKyAgICAgaWYgKGt0 aHJlYWRfc2hvdWxkX3N0b3AoKSkKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gPiArCj4g PiArICAgICBzYl9zdGFydF9pbnR3cml0ZShzYmktPnNiKTsKPiA+ICsKPiA+ICsgICAgIGlmICgh bGxpc3RfZW1wdHkoJmNwcmMtPmlzc3VlX2xpc3QpKQo+ID4gKyAgICAgICAgICAgICBfX2NoZWNr cG9pbnRfYW5kX2NvbXBsZXRlX3JlcXMoc2JpKTsKPiA+ICsKPiA+ICsgICAgIHNiX2VuZF9pbnR3 cml0ZShzYmktPnNiKTsKPiA+ICsKPiA+ICsgICAgIHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZSgq cSwKPiA+ICsgICAgICAgICAgICAga3RocmVhZF9zaG91bGRfc3RvcCgpIHx8ICFsbGlzdF9lbXB0 eSgmY3ByYy0+aXNzdWVfbGlzdCkpOwo+ID4gKyAgICAgZ290byByZXBlYXQ7Cj4gPiArfQo+ID4g Kwo+ID4gK3N0YXRpYyB2b2lkIGZsdXNoX3JlbWFpbmVkX2NrcHRfcmVxcyhzdHJ1Y3QgZjJmc19z Yl9pbmZvICpzYmksCj4gPiArICAgICAgICAgICAgIHN0cnVjdCBja3B0X3JlcSAqd2FpdF9yZXEp Cj4gPiArewo+ID4gKyAgICAgc3RydWN0IGNrcHRfcmVxX2NvbnRyb2wgKmNwcmMgPSBzYmktPmNw cmNfaW5mbzsKPiA+ICsKPiA+ICsgICAgIGlmICghbGxpc3RfZW1wdHkoJmNwcmMtPmlzc3VlX2xp c3QpKSB7Cj4gPiArICAgICAgICAgICAgIF9fY2hlY2twb2ludF9hbmRfY29tcGxldGVfcmVxcyhz YmkpOwo+ID4gKyAgICAgfSBlbHNlIHsKPiA+ICsgICAgICAgICAgICAgLyogYWxyZWFkeSBkaXNw YXRjaGVkIGJ5IGlzc3VlX2NoZWNrcG9pbnRfdGhyZWFkICovCj4gPiArICAgICAgICAgICAgIGlm ICh3YWl0X3JlcSkKPiA+ICsgICAgICAgICAgICAgICAgICAgICB3YWl0X2Zvcl9jb21wbGV0aW9u KCZ3YWl0X3JlcS0+d2FpdCk7Cj4gPiArICAgICB9Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2 b2lkIGluaXRfY2twdF9yZXEoc3RydWN0IGNrcHRfcmVxICpyZXEpCj4gPiArewo+ID4gKyAgICAg bWVtc2V0KHJlcSwgMCwgc2l6ZW9mKHN0cnVjdCBja3B0X3JlcSkpOwo+ID4gKwo+ID4gKyAgICAg cmVxLT5vd25lciA9IGN1cnJlbnQ7Cj4gPiArICAgICBpbml0X2NvbXBsZXRpb24oJnJlcS0+d2Fp dCk7Cj4gPiArfQo+ID4gKwo+ID4gK2ludCBmMmZzX2lzc3VlX2NoZWNrcG9pbnQoc3RydWN0IGYy ZnNfc2JfaW5mbyAqc2JpKQo+ID4gK3sKPiA+ICsgICAgIHN0cnVjdCBja3B0X3JlcV9jb250cm9s ICpjcHJjID0gc2JpLT5jcHJjX2luZm87Cj4gPiArICAgICBzdHJ1Y3QgY2twdF9yZXEgcmVxOwo+ ID4gKwo+ID4gKyAgICAgaWYgKCFjcHJjIHx8ICFjcHJjLT5mMmZzX2lzc3VlX2NrcHQpCj4gPiAr ICAgICAgICAgICAgIHJldHVybiBfX3dyaXRlX2NoZWNrcG9pbnRfc3luYyhzYmkpOwo+ID4gKwo+ ID4gKyAgICAgaW5pdF9ja3B0X3JlcSgmcmVxKTsKPiA+ICsKPiA+ICsgICAgIHJlcS5xdWV1ZV90 aW1lID0gamlmZmllczsKPgo+IERvZXMgdGhpcyBiZWxvbmcgaW5pdF9ja3B0X3JlcSgpPwoKQmV0 dGVyfgoKPgo+ID4gKyAgICAgbGxpc3RfYWRkKCZyZXEubGxub2RlLCAmY3ByYy0+aXNzdWVfbGlz dCk7Cj4gPiArICAgICBhdG9taWNfaW5jKCZjcHJjLT5xdWV1ZWRfY2twdCk7Cj4gPiArCj4gPiAr ICAgICAvKiB1cGRhdGUgaXNzdWVfbGlzdCBiZWZvcmUgd2Ugd2FrZSB1cCBpc3N1ZV9jaGVja3Bv aW50IHRocmVhZCAqLwo+ID4gKyAgICAgc21wX21iKCk7Cj4gPiArCj4gPiArICAgICBpZiAod2Fp dHF1ZXVlX2FjdGl2ZSgmY3ByYy0+Y2twdF93YWl0X3F1ZXVlKSkKPiA+ICsgICAgICAgICAgICAg d2FrZV91cCgmY3ByYy0+Y2twdF93YWl0X3F1ZXVlKTsKPiA+ICsKPiA+ICsgICAgIGlmIChjcHJj LT5mMmZzX2lzc3VlX2NrcHQpCj4gPiArICAgICAgICAgICAgIHdhaXRfZm9yX2NvbXBsZXRpb24o JnJlcS53YWl0KTsKPiA+ICsgICAgIGVsc2UKPiA+ICsgICAgICAgICAgICAgZmx1c2hfcmVtYWlu ZWRfY2twdF9yZXFzKHNiaSwgJnJlcSk7Cj4gPiArCj4gPiArICAgICByZXR1cm4gcmVxLnJldDsK PiA+ICt9Cj4gPiArCj4gPiAraW50IGYyZnNfY3JlYXRlX2NrcHRfcmVxX2NvbnRyb2woc3RydWN0 IGYyZnNfc2JfaW5mbyAqc2JpKQo+ID4gK3sKPiA+ICsgICAgIGRldl90IGRldiA9IHNiaS0+c2It PnNfYmRldi0+YmRfZGV2Owo+ID4gKyAgICAgc3RydWN0IGNrcHRfcmVxX2NvbnRyb2wgKmNwcmM7 Cj4gPiArICAgICBib29sIG5lZWRfZnJlZSA9IHRydWU7Cj4gPiArCj4gPiArICAgICBpZiAoc2Jp LT5jcHJjX2luZm8pIHsKPiA+ICsgICAgICAgICAgICAgY3ByYyA9IHNiaS0+Y3ByY19pbmZvOwo+ ID4gKyAgICAgICAgICAgICBpZiAoY3ByYy0+ZjJmc19pc3N1ZV9ja3B0KQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAwOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICBuZWVkX2ZyZWUg PSBmYWxzZTsKPiA+ICsgICAgICAgICAgICAgZ290byBpbml0X3RocmVhZDsKPiA+ICsgICAgIH0K PiA+ICsKPiA+ICsgICAgIGNwcmMgPSBmMmZzX2t6YWxsb2Moc2JpLCBzaXplb2Yoc3RydWN0IGNr cHRfcmVxX2NvbnRyb2wpLCBHRlBfS0VSTkVMKTsKPiA+ICsgICAgIGlmICghY3ByYykKPiA+ICsg ICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gPiArICAgICBhdG9taWNfc2V0KCZjcHJjLT5p c3N1ZWRfY2twdCwgMCk7Cj4gPiArICAgICBhdG9taWNfc2V0KCZjcHJjLT50b3RhbF9ja3B0LCAw KTsKPiA+ICsgICAgIGF0b21pY19zZXQoJmNwcmMtPnF1ZXVlZF9ja3B0LCAwKTsKPiA+ICsgICAg IGluaXRfd2FpdHF1ZXVlX2hlYWQoJmNwcmMtPmNrcHRfd2FpdF9xdWV1ZSk7Cj4gPiArICAgICBp bml0X2xsaXN0X2hlYWQoJmNwcmMtPmlzc3VlX2xpc3QpOwo+ID4gKyAgICAgc2JpLT5jcHJjX2lu Zm8gPSBjcHJjOwo+Cj4gSWYgd2Ugd2lsbCBhbGxvY2F0ZSBja3B0X3JlcV9jb250cm9sIHN0cnVj dHVyZSBhbnl3YXksIGhvdyBhYm91dCBpbmxpbmluZwo+IHRoaXMgc3RydWN0dXJlIGludG8gZjJm c19zYl9pbmZvIHN0cnVjdHVyZT8KPgoKSXQncyBzYWZlcn4KCj4gPiArCj4gPiAraW5pdF90aHJl YWQ6Cj4gPiArICAgICBpZiAoIXRlc3Rfb3B0KHNiaSwgTUVSR0VfQ0hFQ0tQT0lOVCkpCj4gPiAr ICAgICAgICAgICAgIHJldHVybiAwOwo+ID4gKwo+ID4gKyAgICAgY3ByYy0+ZjJmc19pc3N1ZV9j a3B0ID0ga3RocmVhZF9ydW4oaXNzdWVfY2hlY2twb2ludF90aHJlYWQsIHNiaSwKPiA+ICsgICAg ICAgICAgICAgICAgICAgICAiZjJmc19ja3B0LSV1OiV1IiwgTUFKT1IoZGV2KSwgTUlOT1IoZGV2 KSk7Cj4gPiArICAgICBpZiAoSVNfRVJSKGNwcmMtPmYyZnNfaXNzdWVfY2twdCkpIHsKPiA+ICsg ICAgICAgICAgICAgaW50IGVyciA9IFBUUl9FUlIoY3ByYy0+ZjJmc19pc3N1ZV9ja3B0KTsKPiA+ ICsKPiA+ICsgICAgICAgICAgICAgaWYgKG5lZWRfZnJlZSkgewo+ID4gKyAgICAgICAgICAgICAg ICAgICAgIGt2ZnJlZShjcHJjKTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICBzYmktPmNwcmNf aW5mbyA9IE5VTEw7Cj4gPiArICAgICAgICAgICAgIH0KPiA+ICsgICAgICAgICAgICAgcmV0dXJu IGVycjsKPiA+ICsgICAgIH0KPiA+ICsKPiA+ICsgICAgIHNldF90YXNrX2lvcHJpbyhjcHJjLT5m MmZzX2lzc3VlX2NrcHQsIERFRkFVTFRfQ0hFQ0tQT0lOVF9JT1BSSU8pOwo+Cj4gSXMgREVGQVVM VF9DSEVDS1BPSU5UX0lPUFJJTyBub3Qgc2FtZSB0byBkZWZhdWx0IHByaW9yaXR5IG9mIGtlcm5l bCB0aHJlYWQ/Cj4gSWYgaXQgaXMgdGhlIHNhbWUsIGFib3ZlIGxpbmUgaXMgdW5uZWVkZWQgZm9y IHRoaXMgcGF0Y2gsIG90aGVyd2lzZSwgZG8gd2UKPiBuZWVkIHRvIHNldCBkZWZhdWx0IGlvcHJp byBmb3IgZGlzY2FyZC9nYy9mbHVzaCB0aHJlYWQgYXMgd2VsbD8KPgoKQWN0dWFsbHksIHRoZSBk ZWZhdWx0IEkvTyBwcmlvcml0eSBvZiBrZXJuZWwgdGhyZWFkIGlzICI0Ii4gU28sIHdlJ3JlCmdv aW5nIHRvIHJhaXNlIHRoaXMKcHJpb3JpdHkgYnkgb25lLCBiZWNhdXNlIHdlIHdhbnQgdG8gZ2l2 ZSBvbmUgaGlnaGVyIHByaW9yaXR5IGZvcgpjaGVja3BvaW50aW5nIHRocmVhZAp0aGFuIG90aGVy IG5vcm1hbCB0aHJlYWRzLiBUaGlzIGlzIHRoZSBzYW1lIHdheSB0byBnaXZlIGEgSS9PIHByaW9y aXR5CnRvIHRoZSBqYmQyIGpvdXJuYWxpbmcKdGhyZWFkIG9mIGV4dDQgZmlsZXN5c3RlbS4KCj4g PiArCj4gPiArICAgICByZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiArdm9pZCBmMmZzX2Rlc3Ry b3lfY2twdF9yZXFfY29udHJvbChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJvb2wgZnJlZSkK PiA+ICt7Cj4gPiArICAgICBzdHJ1Y3QgY2twdF9yZXFfY29udHJvbCAqY3ByYyA9IHNiaS0+Y3By Y19pbmZvOwo+ID4gKwo+ID4gKyAgICAgaWYgKGNwcmMgJiYgY3ByYy0+ZjJmc19pc3N1ZV9ja3B0 KSB7Cj4gPiArICAgICAgICAgICAgIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2twdF90YXNrID0gY3By Yy0+ZjJmc19pc3N1ZV9ja3B0Owo+ID4gKwo+ID4gKyAgICAgICAgICAgICBjcHJjLT5mMmZzX2lz c3VlX2NrcHQgPSBOVUxMOwo+ID4gKyAgICAgICAgICAgICBrdGhyZWFkX3N0b3AoY2twdF90YXNr KTsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgZmx1c2hfcmVtYWluZWRfY2twdF9yZXFzKHNiaSwg TlVMTCk7Cj4gPiArICAgICB9Cj4gPiArCj4gPiArICAgICBpZiAoZnJlZSkgewo+ID4gKyAgICAg ICAgICAgICBrdmZyZWUoY3ByYyk7Cj4gPiArICAgICAgICAgICAgIHNiaS0+Y3ByY19pbmZvID0g TlVMTDsKPiA+ICsgICAgIH0KPiA+ICt9Cj4gPiArCj4gPiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9k ZWJ1Zy5jIGIvZnMvZjJmcy9kZWJ1Zy5jCj4gPiBpbmRleCAxOTdjOTE0MTE5ZGEuLjZlZTgxYWZh ZTZiNyAxMDA2NDQKPiA+IC0tLSBhL2ZzL2YyZnMvZGVidWcuYwo+ID4gKysrIGIvZnMvZjJmcy9k ZWJ1Zy5jCj4gPiBAQCAtMTIwLDYgKzEyMCw5IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9nZW5lcmFs X3N0YXR1cyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgYXRvbWljX3JlYWQoJlNNX0koc2JpKS0+ZGNjX2luZm8tPmRpc2NhcmRfY21kX2NudCk7Cj4g PiAgICAgICAgICAgICAgIHNpLT51bmRpc2NhcmRfYmxrcyA9IFNNX0koc2JpKS0+ZGNjX2luZm8t PnVuZGlzY2FyZF9ibGtzOwo+ID4gICAgICAgfQo+ID4gKyAgICAgc2ktPm5yX2lzc3VlZF9ja3B0 ID0gYXRvbWljX3JlYWQoJnNiaS0+Y3ByY19pbmZvLT5pc3N1ZWRfY2twdCk7Cj4gPiArICAgICBz aS0+bnJfdG90YWxfY2twdCA9IGF0b21pY19yZWFkKCZzYmktPmNwcmNfaW5mby0+dG90YWxfY2tw dCk7Cj4gPiArICAgICBzaS0+bnJfcXVldWVkX2NrcHQgPSBhdG9taWNfcmVhZCgmc2JpLT5jcHJj X2luZm8tPnF1ZXVlZF9ja3B0KTsKPiA+ICAgICAgIHNpLT50b3RhbF9jb3VudCA9IChpbnQpc2Jp LT51c2VyX2Jsb2NrX2NvdW50IC8gc2JpLT5ibG9ja3NfcGVyX3NlZzsKPiA+ICAgICAgIHNpLT5y c3ZkX3NlZ3MgPSByZXNlcnZlZF9zZWdtZW50cyhzYmkpOwo+ID4gICAgICAgc2ktPm92ZXJwX3Nl Z3MgPSBvdmVycHJvdmlzaW9uX3NlZ21lbnRzKHNiaSk7Cj4gPiBAQCAtNDE3LDYgKzQyMCw5IEBA IHN0YXRpYyBpbnQgc3RhdF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdikKPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpLT5tZXRhX2NvdW50W01FVEFfTkFUXSk7Cj4g PiAgICAgICAgICAgICAgIHNlcV9wcmludGYocywgIiAgLSBzc2EgYmxvY2tzIDogJXVcbiIsCj4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaS0+bWV0YV9jb3VudFtNRVRBX1NTQV0p Owo+ID4gKyAgICAgICAgICAgICBzZXFfcHJpbnRmKHMsICJDUCBtZXJnZSAoUXVldWVkOiAlNGQs IElzc3VlZDogJTRkLCBUb3RhbDogJTRkKVxuIiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNpLT5ucl9xdWV1ZWRfY2twdCwgc2ktPm5yX2lzc3VlZF9ja3B0LAo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2ktPm5yX3RvdGFsX2NrcHQpOwo+ID4gICAgICAgICAg ICAgICBzZXFfcHJpbnRmKHMsICJHQyBjYWxsczogJWQgKEJHOiAlZClcbiIsCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgc2ktPmNhbGxfY291bnQsIHNpLT5iZ19nYyk7Cj4gPiAgICAgICAg ICAgICAgIHNlcV9wcmludGYocywgIiAgLSBkYXRhIHNlZ21lbnRzIDogJWQgKCVkKVxuIiwKPiA+ IGRpZmYgLS1naXQgYS9mcy9mMmZzL2YyZnMuaCBiL2ZzL2YyZnMvZjJmcy5oCj4gPiBpbmRleCBi YjExNzU5MTkxZGMuLjRkZTUyODVkZjE3ZCAxMDA2NDQKPiA+IC0tLSBhL2ZzL2YyZnMvZjJmcy5o Cj4gPiArKysgYi9mcy9mMmZzL2YyZnMuaAo+ID4gQEAgLTk3LDYgKzk3LDcgQEAgZXh0ZXJuIGNv bnN0IGNoYXIgKmYyZnNfZmF1bHRfbmFtZVtGQVVMVF9NQVhdOwo+ID4gICAjZGVmaW5lIEYyRlNf TU9VTlRfRElTQUJMRV9DSEVDS1BPSU5UICAgICAgIDB4MDIwMDAwMDAKPiA+ICAgI2RlZmluZSBG MkZTX01PVU5UX05PUkVDT1ZFUlkgICAgICAgICAgICAgICAweDA0MDAwMDAwCj4gPiAgICNkZWZp bmUgRjJGU19NT1VOVF9BVEdDICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMAo+ID4gKyNk ZWZpbmUgRjJGU19NT1VOVF9NRVJHRV9DSEVDS1BPSU5UICAweDEwMDAwMDAwCj4gPgo+ID4gICAj ZGVmaW5lIEYyRlNfT1BUSU9OKHNiaSkgICAgKChzYmkpLT5tb3VudF9vcHQpCj4gPiAgICNkZWZp bmUgY2xlYXJfb3B0KHNiaSwgb3B0aW9uKSAgICAgIChGMkZTX09QVElPTihzYmkpLm9wdCAmPSB+ RjJGU19NT1VOVF8jI29wdGlvbikKPiA+IEBAIC0yNjYsNiArMjY3LDI0IEBAIHN0cnVjdCBmc3lu Y19ub2RlX2VudHJ5IHsKPiA+ICAgICAgIHVuc2lnbmVkIGludCBzZXFfaWQ7ICAgIC8qIHNlcXVl bmNlIGlkICovCj4gPiAgIH07Cj4gPgo+ID4gK3N0cnVjdCBja3B0X3JlcSB7Cj4gPiArICAgICBz dHJ1Y3QgY29tcGxldGlvbiB3YWl0Owo+ID4gKyAgICAgc3RydWN0IGxsaXN0X25vZGUgbGxub2Rl Owo+ID4gKyAgICAgaW50IHJldDsKPiA+ICsgICAgIHN0cnVjdCB0YXNrX3N0cnVjdCAqb3duZXI7 Cj4KPiBGaWVsZCBjb21tZW50cz8KPgoKWWVwfgoKPiA+ICsgICAgIHVuc2lnbmVkIGxvbmcgcXVl dWVfdGltZTsgICAgICAgLyogcmVxdWVzdCBxdWV1ZWQgdGltZSBpbiBqaWZmaWVzICovCj4gPiAr ICAgICB1bnNpZ25lZCBsb25nIGNvbXBsZXRlX3RpbWU7ICAgIC8qIHJlcXVlc3QgY29tcGxldGVk IHRpbWUgaW4gamlmZmllcyAqLwo+Cj4gV2h5IHdlIG5lZWQgb3duZXIsIHF1ZXVlX3RpbWUgYW5k IGNvbXBsZXRlX3RpbWUgZmllbGQ/IGRpZCB5b3UgcGxhbgo+IHRvIHJlY29yZCBtYXgvYXZlcmFn ZSBvZiBjcCB0aW1lIGFuZCBzaG93IGluIGRlYnVnL2YyZnMvc3RhdHVzPwo+CgpUaG9zZSB3ZXJl IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMsIGJ1dCBJIHRoaW5rIHdlIGRvbid0IG5lZWQgdGhvc2Ug YW55bW9yZS4KUmVjb3JkaW5nIG1heC9hdmcgdGltZSBvZiB0aGF0IGlzIGEgZ29vZCBpZGVhLiBJ IGFtIGdvaW5nIHRvIGltcGxlbWVudCBpdC4KCj4gPiArfTsKPiA+ICsKPiA+ICtzdHJ1Y3QgY2tw dF9yZXFfY29udHJvbCB7Cj4gPiArICAgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmYyZnNfaXNzdWVf Y2twdDsgICAgLyogY2hlY2twb2ludCB0YXNrICovCj4gPiArICAgICB3YWl0X3F1ZXVlX2hlYWRf dCBja3B0X3dhaXRfcXVldWU7ICAgICAgLyogd2FpdGluZyBxdWV1ZSBmb3Igd2FrZS11cCAqLwo+ ID4gKyAgICAgYXRvbWljX3QgaXNzdWVkX2NrcHQ7ICAgICAgICAgICAgICAgICAgIC8qICMgb2Yg YWN0dWFsbHkgaXNzdWVkIGNrcHRzICovCj4gPiArICAgICBhdG9taWNfdCB0b3RhbF9ja3B0OyAg ICAgICAgICAgICAgICAgICAgLyogIyBvZiB0b3RhbCBja3B0cyAqLwo+ID4gKyAgICAgYXRvbWlj X3QgcXVldWVkX2NrcHQ7ICAgICAgICAgICAgICAgICAgIC8qICMgb2YgcXVldWVkIGNrcHRzICov Cj4gPiArICAgICBzdHJ1Y3QgbGxpc3RfaGVhZCBpc3N1ZV9saXN0OyAgICAgICAgICAgLyogbGlz dCBmb3IgY29tbWFuZCBpc3N1ZSAqLwo+ID4gK307Cj4gPiArCj4gPiAgIC8qIGZvciB0aGUgYml0 bWFwIGluZGljYXRlIGJsb2NrcyB0byBiZSBkaXNjYXJkZWQgKi8KPiA+ICAgc3RydWN0IGRpc2Nh cmRfZW50cnkgewo+ID4gICAgICAgc3RydWN0IGxpc3RfaGVhZCBsaXN0OyAgLyogbGlzdCBoZWFk ICovCj4gPiBAQCAtMTQwNCw2ICsxNDIzLDcgQEAgc3RydWN0IGYyZnNfc2JfaW5mbyB7Cj4gPiAg ICAgICB3YWl0X3F1ZXVlX2hlYWRfdCBjcF93YWl0Owo+ID4gICAgICAgdW5zaWduZWQgbG9uZyBs YXN0X3RpbWVbTUFYX1RJTUVdOyAgICAgIC8qIHRvIHN0b3JlIHRpbWUgaW4gamlmZmllcyAqLwo+ ID4gICAgICAgbG9uZyBpbnRlcnZhbF90aW1lW01BWF9USU1FXTsgICAgICAgICAgIC8qIHRvIHN0 b3JlIHRocmVzaG9sZHMgKi8KPiA+ICsgICAgIHN0cnVjdCBja3B0X3JlcV9jb250cm9sICpjcHJj X2luZm87ICAgICAvKiBmb3IgY2hlY2twb2ludCByZXF1ZXN0IGNvbnRyb2wgKi8KPiA+Cj4gPiAg ICAgICBzdHJ1Y3QgaW5vZGVfbWFuYWdlbWVudCBpbVtNQVhfSU5PX0VOVFJZXTsgICAgICAvKiBt YW5hZ2UgaW5vZGUgY2FjaGUgKi8KPiA+Cj4gPiBAQCAtMzQxOCw2ICszNDM4LDkgQEAgaW50IGYy ZnNfd3JpdGVfY2hlY2twb2ludChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBjcF9j b250cm9sICpjcGMpOwo+ID4gICB2b2lkIGYyZnNfaW5pdF9pbm9fZW50cnlfaW5mbyhzdHJ1Y3Qg ZjJmc19zYl9pbmZvICpzYmkpOwo+ID4gICBpbnQgX19pbml0IGYyZnNfY3JlYXRlX2NoZWNrcG9p bnRfY2FjaGVzKHZvaWQpOwo+ID4gICB2b2lkIGYyZnNfZGVzdHJveV9jaGVja3BvaW50X2NhY2hl cyh2b2lkKTsKPiA+ICtpbnQgZjJmc19pc3N1ZV9jaGVja3BvaW50KHN0cnVjdCBmMmZzX3NiX2lu Zm8gKnNiaSk7Cj4gPiAraW50IGYyZnNfY3JlYXRlX2NrcHRfcmVxX2NvbnRyb2woc3RydWN0IGYy ZnNfc2JfaW5mbyAqc2JpKTsKPiA+ICt2b2lkIGYyZnNfZGVzdHJveV9ja3B0X3JlcV9jb250cm9s KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgYm9vbCBmcmVlKTsKPiA+Cj4gPiAgIC8qCj4gPiAg ICAqIGRhdGEuYwo+ID4gQEAgLTM1MzAsNiArMzU1Myw3IEBAIHN0cnVjdCBmMmZzX3N0YXRfaW5m byB7Cj4gPiAgICAgICBpbnQgbnJfZGlzY2FyZGluZywgbnJfZGlzY2FyZGVkOwo+ID4gICAgICAg aW50IG5yX2Rpc2NhcmRfY21kOwo+ID4gICAgICAgdW5zaWduZWQgaW50IHVuZGlzY2FyZF9ibGtz Owo+ID4gKyAgICAgaW50IG5yX2lzc3VlZF9ja3B0LCBucl90b3RhbF9ja3B0LCBucl9xdWV1ZWRf Y2twdDsKPiA+ICAgICAgIGludCBpbmxpbmVfeGF0dHIsIGlubGluZV9pbm9kZSwgaW5saW5lX2Rp ciwgYXBwZW5kLCB1cGRhdGUsIG9ycGhhbnM7Cj4gPiAgICAgICBpbnQgY29tcHJfaW5vZGU7Cj4g PiAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgY29tcHJfYmxvY2tzOwo+ID4gZGlmZiAtLWdpdCBh L2ZzL2YyZnMvc3VwZXIuYyBiL2ZzL2YyZnMvc3VwZXIuYwo+ID4gaW5kZXggYjRhMDdmZTYyZDFh Li41Y2Q4OWMyMzEyMjMgMTAwNjQ0Cj4gPiAtLS0gYS9mcy9mMmZzL3N1cGVyLmMKPiA+ICsrKyBi L2ZzL2YyZnMvc3VwZXIuYwo+ID4gQEAgLTE0Myw2ICsxNDMsNyBAQCBlbnVtIHsKPiA+ICAgICAg IE9wdF9jaGVja3BvaW50X2Rpc2FibGVfY2FwLAo+ID4gICAgICAgT3B0X2NoZWNrcG9pbnRfZGlz YWJsZV9jYXBfcGVyYywKPiA+ICAgICAgIE9wdF9jaGVja3BvaW50X2VuYWJsZSwKPiA+ICsgICAg IE9wdF9jaGVja3BvaW50X21lcmdlLAo+ID4gICAgICAgT3B0X2NvbXByZXNzX2FsZ29yaXRobSwK PiA+ICAgICAgIE9wdF9jb21wcmVzc19sb2dfc2l6ZSwKPiA+ICAgICAgIE9wdF9jb21wcmVzc19l eHRlbnNpb24sCj4gPiBAQCAtMjEzLDYgKzIxNCw3IEBAIHN0YXRpYyBtYXRjaF90YWJsZV90IGYy ZnNfdG9rZW5zID0gewo+ID4gICAgICAge09wdF9jaGVja3BvaW50X2Rpc2FibGVfY2FwLCAiY2hl Y2twb2ludD1kaXNhYmxlOiV1In0sCj4gPiAgICAgICB7T3B0X2NoZWNrcG9pbnRfZGlzYWJsZV9j YXBfcGVyYywgImNoZWNrcG9pbnQ9ZGlzYWJsZToldSUlIn0sCj4gPiAgICAgICB7T3B0X2NoZWNr cG9pbnRfZW5hYmxlLCAiY2hlY2twb2ludD1lbmFibGUifSwKPiA+ICsgICAgIHtPcHRfY2hlY2tw b2ludF9tZXJnZSwgImNoZWNrcG9pbnQ9bWVyZ2UifSwKPiA+ICAgICAgIHtPcHRfY29tcHJlc3Nf YWxnb3JpdGhtLCAiY29tcHJlc3NfYWxnb3JpdGhtPSVzIn0sCj4gPiAgICAgICB7T3B0X2NvbXBy ZXNzX2xvZ19zaXplLCAiY29tcHJlc3NfbG9nX3NpemU9JXUifSwKPiA+ICAgICAgIHtPcHRfY29t cHJlc3NfZXh0ZW5zaW9uLCAiY29tcHJlc3NfZXh0ZW5zaW9uPSVzIn0sCj4gPiBAQCAtODcyLDYg Kzg3NCw5IEBAIHN0YXRpYyBpbnQgcGFyc2Vfb3B0aW9ucyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNi LCBjaGFyICpvcHRpb25zLCBib29sIGlzX3JlbW91bnQpCj4gPiAgICAgICAgICAgICAgIGNhc2Ug T3B0X2NoZWNrcG9pbnRfZW5hYmxlOgo+ID4gICAgICAgICAgICAgICAgICAgICAgIGNsZWFyX29w dChzYmksIERJU0FCTEVfQ0hFQ0tQT0lOVCk7Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7Cj4gPiArICAgICAgICAgICAgIGNhc2UgT3B0X2NoZWNrcG9pbnRfbWVyZ2U6Cj4gPiArICAg ICAgICAgICAgICAgICAgICAgc2V0X29wdChzYmksIE1FUkdFX0NIRUNLUE9JTlQpOwo+ID4gKyAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ID4gICAjaWZkZWYgQ09ORklHX0YyRlNfRlNfQ09N UFJFU1NJT04KPiA+ICAgICAgICAgICAgICAgY2FzZSBPcHRfY29tcHJlc3NfYWxnb3JpdGhtOgo+ ID4gICAgICAgICAgICAgICAgICAgICAgIGlmICghZjJmc19zYl9oYXNfY29tcHJlc3Npb24oc2Jp KSkgewo+ID4gQEAgLTEwNDAsNiArMTA0NSwxMiBAQCBzdGF0aWMgaW50IHBhcnNlX29wdGlvbnMo c3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgY2hhciAqb3B0aW9ucywgYm9vbCBpc19yZW1vdW50KQo+ ID4gICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ICAgICAgIH0KPiA+Cj4gPiArICAg ICBpZiAodGVzdF9vcHQoc2JpLCBESVNBQkxFX0NIRUNLUE9JTlQpICYmCj4gPiArICAgICAgICAg ICAgICAgICAgICAgdGVzdF9vcHQoc2JpLCBNRVJHRV9DSEVDS1BPSU5UKSkgewo+ID4gKyAgICAg ICAgICAgICBmMmZzX2VycihzYmksICJjaGVja3BvaW50PW1lcmdlIGNhbm5vdCBiZSB1c2VkIHdp dGggY2hlY2twb2ludD1kaXNhYmxlXG4iKTsKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIC1FSU5W QUw7Cj4gPiArICAgICB9Cj4gPiArCj4gPiAgICAgICAvKiBOb3QgcGFzcyBkb3duIHdyaXRlIGhp bnRzIGlmIHRoZSBudW1iZXIgb2YgYWN0aXZlIGxvZ3MgaXMgbGVzc2VyCj4gPiAgICAgICAgKiB0 aGFuIE5SX0NVUlNFR19QRVJTSVNUX1RZUEUuCj4gPiAgICAgICAgKi8KPiA+IEBAIC0xMjQ1LDYg KzEyNTYsMTIgQEAgc3RhdGljIHZvaWQgZjJmc19wdXRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2Nr ICpzYikKPiA+ICAgICAgIC8qIHByZXZlbnQgcmVtYWluaW5nIHNocmlua2VyIGpvYnMgKi8KPiA+ ICAgICAgIG11dGV4X2xvY2soJnNiaS0+dW1vdW50X211dGV4KTsKPiA+Cj4gPiArICAgICAvKgo+ ID4gKyAgICAgICogZmx1c2ggYWxsIGlzc3VlZCBjaGVja3BvaW50cyBhbmQgZGVzdHJveSBjaGVj a3BvaW50IHJlcXVlc3QgY29udHJvbC4KPiA+ICsgICAgICAqIGFmdGVyIHRoZW4sIGFsbCBjaGVj a3BvaW50cyBzaG91bGQgYmUgZG9uZSBieSBlYWNoIHByb2Nlc3MgY29udGV4dC4KPiA+ICsgICAg ICAqLwo+ID4gKyAgICAgZjJmc19kZXN0cm95X2NrcHRfcmVxX2NvbnRyb2woc2JpLCB0cnVlKTsK PiA+ICsKPiA+ICAgICAgIC8qCj4gPiAgICAgICAgKiBXZSBkb24ndCBuZWVkIHRvIGRvIGNoZWNr cG9pbnQgd2hlbiBzdXBlcmJsb2NrIGlzIGNsZWFuLgo+ID4gICAgICAgICogQnV0LCB0aGUgcHJl dmlvdXMgY2hlY2twb2ludCB3YXMgbm90IGRvbmUgYnkgdW1vdW50LCBpdCBuZWVkcyB0byBkbwo+ ID4gQEAgLTEzNDcsMTAgKzEzNjQsMTMgQEAgaW50IGYyZnNfc3luY19mcyhzdHJ1Y3Qgc3VwZXJf YmxvY2sgKnNiLCBpbnQgc3luYykKPiA+ICAgICAgICAgICAgICAgc3RydWN0IGNwX2NvbnRyb2wg Y3BjOwo+ID4KPiA+ICAgICAgICAgICAgICAgY3BjLnJlYXNvbiA9IF9fZ2V0X2NwX3JlYXNvbihz YmkpOwo+ID4gLQo+ID4gLSAgICAgICAgICAgICBkb3duX3dyaXRlKCZzYmktPmdjX2xvY2spOwo+ ID4gLSAgICAgICAgICAgICBlcnIgPSBmMmZzX3dyaXRlX2NoZWNrcG9pbnQoc2JpLCAmY3BjKTsK PiA+IC0gICAgICAgICAgICAgdXBfd3JpdGUoJnNiaS0+Z2NfbG9jayk7Cj4gPiArICAgICAgICAg ICAgIGlmICh0ZXN0X29wdChzYmksIE1FUkdFX0NIRUNLUE9JTlQpICYmIGNwYy5yZWFzb24gPT0g Q1BfU1lOQykgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgIGVyciA9IGYyZnNfaXNzdWVfY2hl Y2twb2ludChzYmkpOwo+ID4gKyAgICAgICAgICAgICB9IGVsc2Ugewo+ID4gKyAgICAgICAgICAg ICAgICAgICAgIGRvd25fd3JpdGUoJnNiaS0+Z2NfbG9jayk7Cj4gPiArICAgICAgICAgICAgICAg ICAgICAgZXJyID0gZjJmc193cml0ZV9jaGVja3BvaW50KHNiaSwgJmNwYyk7Cj4gPiArICAgICAg ICAgICAgICAgICAgICAgdXBfd3JpdGUoJnNiaS0+Z2NfbG9jayk7Cj4gPiArICAgICAgICAgICAg IH0KPiA+ICAgICAgIH0KPiA+ICAgICAgIGYyZnNfdHJhY2VfaW9zKE5VTEwsIDEpOwo+ID4KPiA+ IEBAIC0xNjc0LDYgKzE2OTQsOCBAQCBzdGF0aWMgaW50IGYyZnNfc2hvd19vcHRpb25zKHN0cnVj dCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgZGVudHJ5ICpyb290KQo+ID4gICAgICAgaWYgKHRlc3Rf b3B0KHNiaSwgRElTQUJMRV9DSEVDS1BPSU5UKSkKPiA+ICAgICAgICAgICAgICAgc2VxX3ByaW50 ZihzZXEsICIsY2hlY2twb2ludD1kaXNhYmxlOiV1IiwKPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEYyRlNfT1BUSU9OKHNiaSkudW51c2FibGVfY2FwKTsKPiA+ICsgICAgIGlmICh0 ZXN0X29wdChzYmksIE1FUkdFX0NIRUNLUE9JTlQpKQo+ID4gKyAgICAgICAgICAgICBzZXFfcHV0 cyhzZXEsICIsY2hlY2twb2ludD1tZXJnZSIpOwo+ID4gICAgICAgaWYgKEYyRlNfT1BUSU9OKHNi aSkuZnN5bmNfbW9kZSA9PSBGU1lOQ19NT0RFX1BPU0lYKQo+ID4gICAgICAgICAgICAgICBzZXFf cHJpbnRmKHNlcSwgIixmc3luY19tb2RlPSVzIiwgInBvc2l4Iik7Cj4gPiAgICAgICBlbHNlIGlm IChGMkZTX09QVElPTihzYmkpLmZzeW5jX21vZGUgPT0gRlNZTkNfTU9ERV9TVFJJQ1QpCj4gPiBA QCAtMTk1NCw2ICsxOTc2LDE4IEBAIHN0YXRpYyBpbnQgZjJmc19yZW1vdW50KHN0cnVjdCBzdXBl cl9ibG9jayAqc2IsIGludCAqZmxhZ3MsIGNoYXIgKmRhdGEpCj4gPiAgICAgICAgICAgICAgIH0K PiA+ICAgICAgIH0KPiA+Cj4gPiArICAgICBpZiAoIXRlc3Rfb3B0KHNiaSwgTUVSR0VfQ0hFQ0tQ T0lOVCkpIHsKPiA+ICsgICAgICAgICAgICAgZjJmc19kZXN0cm95X2NrcHRfcmVxX2NvbnRyb2wo c2JpLCBmYWxzZSk7Cj4gPiArICAgICB9IGVsc2Ugewo+ID4gKyAgICAgICAgICAgICBlcnIgPSBm MmZzX2NyZWF0ZV9ja3B0X3JlcV9jb250cm9sKHNiaSk7Cj4gPiArICAgICAgICAgICAgIGlmIChl cnIpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICBmMmZzX2VycihzYmksCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGluaXRpYWxpemUgRjJGUyBpc3N1ZV9j aGVja3BvaW50X3RocmVhZCAoJWQpIiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGVycik7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgZ290byByZXN0b3JlX2djOwo+ID4gKyAg ICAgICAgICAgICB9Cj4gPiArICAgICB9Cj4gPiArCj4gPiAgICAgICAvKgo+ID4gICAgICAgICog V2Ugc3RvcCBpc3N1ZSBmbHVzaCB0aHJlYWQgaWYgRlMgaXMgbW91bnRlZCBhcyBSTwo+ID4gICAg ICAgICogb3IgaWYgZmx1c2hfbWVyZ2UgaXMgbm90IHBhc3NlZCBpbiBtb3VudCBvcHRpb24uCj4g PiBAQCAtMzcwMSw2ICszNzM1LDE1IEBAIHN0YXRpYyBpbnQgZjJmc19maWxsX3N1cGVyKHN0cnVj dCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCj4gPgo+ID4gICAgICAg ZjJmc19pbml0X2ZzeW5jX25vZGVfaW5mbyhzYmkpOwo+ID4KPiA+ICsgICAgIC8qIHNldHVwIGNo ZWNrcG9pbnQgcmVxdWVzdCBjb250cm9sICovCj4gPiArICAgICBlcnIgPSBmMmZzX2NyZWF0ZV9j a3B0X3JlcV9jb250cm9sKHNiaSk7Cj4gPiArICAgICBpZiAoZXJyKSB7Cj4gPiArICAgICAgICAg ICAgIGYyZnNfZXJyKHNiaSwKPiA+ICsgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gaW5pdGlh bGl6ZSBGMkZTIGNoZWNrcG9pbnQgcmVxdWVzdCBjb250cm9sICglZCkiLAo+ID4gKyAgICAgICAg ICAgICAgICAgZXJyKTsKPiA+ICsgICAgICAgICAgICAgZ290byBmcmVlX2NwcmM7Cj4gPiArICAg ICB9Cj4gPiArCj4gPiAgICAgICAvKiBzZXR1cCBmMmZzIGludGVybmFsIG1vZHVsZXMgKi8KPiA+ ICAgICAgIGVyciA9IGYyZnNfYnVpbGRfc2VnbWVudF9tYW5hZ2VyKHNiaSk7Cj4gPiAgICAgICBp ZiAoZXJyKSB7Cj4gPiBAQCAtMzkxMCw2ICszOTUzLDggQEAgc3RhdGljIGludCBmMmZzX2ZpbGxf c3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKPiA+ ICAgZnJlZV9zbToKPiA+ICAgICAgIGYyZnNfZGVzdHJveV9zZWdtZW50X21hbmFnZXIoc2JpKTsK PiA+ICAgICAgIGYyZnNfZGVzdHJveV9wb3N0X3JlYWRfd3Eoc2JpKTsKPiA+ICtmcmVlX2NwcmM6 Cj4gPiArICAgICBmMmZzX2Rlc3Ryb3lfY2twdF9yZXFfY29udHJvbChzYmksIHRydWUpOwo+ID4g ICBmcmVlX2RldmljZXM6Cj4gPiAgICAgICBkZXN0cm95X2RldmljZV9saXN0KHNiaSk7Cj4gPiAg ICAgICBrdmZyZWUoc2JpLT5ja3B0KTsKPiA+CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KTGludXgtZjJmcy1kZXZlbCBtYWlsaW5nIGxpc3QKTGludXgt ZjJmcy1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3Jn ZS5uZXQvbGlzdHMvbGlzdGluZm8vbGludXgtZjJmcy1kZXZlbAo=