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.4 required=3.0 tests=BAYES_00, CHARSET_FARAWAY_HEADER,DKIM_INVALID,DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 5301DC433ED for ; Fri, 14 May 2021 09:16:36 +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 BA0C861176; Fri, 14 May 2021 09:16:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BA0C861176 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=vivo.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-1.v29.lw.sourceforge.com) by sfs-ml-1.v29.lw.sourceforge.com with esmtp (Exim 4.90_1) (envelope-from ) id 1lhTvu-0005G2-JA; Fri, 14 May 2021 09:16:34 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-1.v29.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lhTvt-0005FG-5e for linux-f2fs-devel@lists.sourceforge.net; Fri, 14 May 2021 09:16:33 +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:MIME-Version :Message-ID:Date:Subject:In-Reply-To:References:Cc:To:From: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=k2dMeAL7ZYh6rpq5LZS2IRpQjHJ2OxPZFzbPaoaqCqw=; b=SpdtDmsed6fPMgrJwUc3nj6ueM v1dpsHV1VcSRuvYHqI9Hd4VQnl9pbN042LySgCO0Y+WTlcGqISdFhClAf3TT9DUQK/I4J6LdqB98H R2CvsReUJufhzmfxoRsrkRAHaXg0hbocJ5Lfr7WT0Y9jE9qve9hm9AVDIxeSGcULq4+s=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:Date: Subject:In-Reply-To:References:Cc:To:From: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=k2dMeAL7ZYh6rpq5LZS2IRpQjHJ2OxPZFzbPaoaqCqw=; b=CrlqRM5WVyhbAxE8PVbitDz38Z E6PuF1gpvDLyPR9wLLhFx4d2ES9OxUuijgOBn2SkR4zABuTeDrqR6Li/Dsgd4FxYJHsc7hA5LBn9N lsnDVfiMrou8lnywqGZKEfvxUkp0+wrkiE4gqxAGcabZFxUHbFzs99DkV8geql5CVB5o=; Received: from mail-m17657.qiye.163.com ([59.111.176.57]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92.3) id 1lhTvg-0003fq-R0 for linux-f2fs-devel@lists.sourceforge.net; Fri, 14 May 2021 09:16:32 +0000 Received: from SZ11126892 (unknown [58.251.74.232]) by mail-m17657.qiye.163.com (Hmail) with ESMTPA id 0FCED2800EA; Fri, 14 May 2021 17:16:14 +0800 (CST) From: To: "'Chao Yu'" References: <20210507030554.257-1-changfengnan@vivo.com> In-Reply-To: Date: Fri, 14 May 2021 17:16:13 +0800 Message-ID: <001c01d748a1$c9b7a7f0$5d26f7d0$@vivo.com> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Content-Language: zh-cn Thread-Index: AQMqTkll/TOsA3CeRuitI9z+FwlW5wHML5rqqC5E/tA= X-HM-Spam-Status: e1kfGhgUHx5ZQUtXWQgYFAkeWUFZS1VLWVdZKFlBSE83V1ktWUFJV1kPCR oVCBIfWUFZGR5OSFZNGEpLHU5DTU9KTxhVEwETFhoSFyQUDg9ZV1kWGg8SFR0UWUFZT0tIVUpKS0 9ISFVLWQY+ X-HM-Sender-Digest: e1kMHhlZQR0aFwgeV1kSHx4VD1lBWUc6NC46Gio4Vj8OPzAQHUwvATg1 CSJPC01VSlVKTUlLQkNITExPTUtNVTMWGhIXVRgTGhUcHR4VHBUaFTsNEg0UVRgUFkVZV1kSC1lB WU5DVUlOSlVMT1VJSElZV1kIAVlBSklPS0s3Bg++ X-HM-Tid: 0a796a297bd3da03kuws0fced2800ea X-Headers-End: 1lhTvg-0003fq-R0 Subject: [f2fs-dev] =?gb2312?b?tPC4tDogIFtQQVRDSCB2M10gZjJmczogY29tcHJl?= =?gb2312?b?c3M6IGFkZCBub2NvbXByZXNzIGV4dGVuc2lvbnMgc3VwcG9ydA==?= 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: jaegeuk@kernel.org, linux-f2fs-devel@lists.sourceforge.net Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net SSB0aGluayBiZWxvdyBleHBsYW5hdGlvbiBpcyBjbGVhciBlbm91Z2gsIHdoYXQgZG8geW91IHRo aW5rPwoKIiBBZnRlciBhZGQgbm9jb21wcmVzc19leHRlbnNpb24sIHRoZSBwcmlvcml0eSBzaG91 bGQgYmU6CmRpcl9mbGFnIDwgY29tcF9leHRlbnRpb24sbm9jb21wcmVzc19leHRlbnNpb24gPCAg Y29tcF9maWxlX2ZsYWcsCm5vX2NvbXBfZmlsZV9mbGFnLgoKRm9yIGV4YW1wbGU6CjEuSWYgZGly IGlzIHNldCBjb21wcmVzcywgdGhlIGRlZmF1bHQgZmlsZSBhbmQgY29tcHJlc3NfZXh0ZW5zaW9u IHNwZWNpZmllZApmaWxlIHdpbGwgY29tcHJlc3MsIGFuZCBub2NvbXByZXNzX2V4dGVuc2lvbiBz cGVjaWZpZWQgZmlsZSB3aWxsIG5vY29tcHJlc3MuCjIuSWYgZGlyIGlzIHNldCBub3QgY29tcHJl c3MsIHRoZSBkZWZhdWx0IGZpbGUgYW5kIG5vY29tcHJlc3NfZXh0ZW5zaW9uCnNwZWNpZmllZCBm aWxlIHdpbGwgbm90IGNvbXByZXNzLCBidXQgY29tcHJlc3NfZXh0ZW5zaW9uIHNwZWNpZmllZCBm aWxlIHdpbGwKY29tcHJlc3MuCjMuV2UgY2FuIGNoYW5nZSBjb21wcmVzcyBhdHRyaWJ1dGUgcmVn YXJkbGVzcyBvZiB0aGUgZmlsZSBpbiB3aGljaCB0eXBlIG9mCmRpciBhbmQgc3BlY2lmaWVkIG9y IG5vdC4iCgotLS0tLdPKvP7Urbz+LS0tLS0Kt6K8/sjLOiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdl aS5jb20+IAq3osvNyrG85DogMjAyMcTqNdTCMTTI1SAxNTo1MArK1bz+yMs6IEZlbmduYW4gQ2hh bmcgPGNoYW5nZmVuZ25hbkB2aXZvLmNvbT4Ks63LzTogamFlZ2V1a0BrZXJuZWwub3JnOyBsaW51 eC1mMmZzLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldArW98ziOiBSZTogW2YyZnMtZGV2XSBb UEFUQ0ggdjNdIGYyZnM6IGNvbXByZXNzOiBhZGQgbm9jb21wcmVzcyBleHRlbnNpb25zCnN1cHBv cnQKCk9uIDIwMjEvNS83IDExOjA1LCBGZW5nbmFuIENoYW5nIHdyb3RlOgo+IFdoZW4gd2UgY3Jl YXRlIGEgZGlyZWN0b3J5IHdpdGggZW5hYmxlIGNvbXByZXNzaW9uLCBhbGwgZmlsZSB3cml0ZSAK PiBpbnRvIGRpcmVjdG9yeSB3aWxsIHRyeSB0byBjb21wcmVzcy5CdXQgc29tZXRpbWVzIHdlIG1h eSBrbm93LCBuZXcgCj4gZmlsZSBjYW5ub3QgbWVldCBjb21wcmVzc2lvbiByYXRpbyByZXF1aXJl bWVudHMuCj4gV2UgbmVlZCBhIG5vY29tcHJlc3MgZXh0ZW5zaW9uIHRvIHNraXAgdGhvc2UgZmls ZXMgdG8gYXZvaWQgCj4gdW5uZWNlc3NhcnkgY29tcHJlc3MgcGFnZSB0ZXN0LgoKQ291bGQgeW91 IHBsZWFzZSBlbGFib3JhdGUgcHJpb3JpdHkgb2YgY29tcF9leHQsIG5vX2NvbXBfZXh0LCBkaXJf ZmxhZywKY29tcF9maWxlX2ZsYWcsIG5vX2NvbXBfZmlsZV9mbGFnIGhlcmUgYW5kIGluIGYyZnMu cnN0IGFzIHdlbGw/Cgo+IAo+IFNpZ25lZC1vZmYtYnk6IEZlbmduYW4gQ2hhbmcgPGNoYW5nZmVu Z25hbkB2aXZvLmNvbT4KPiAtLS0KPiAgIERvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZjJmcy5y c3QgfCAgOCArKysKPiAgIGZzL2YyZnMvZjJmcy5oICAgICAgICAgICAgICAgICAgICAgfCAgMiAr Cj4gICBmcy9mMmZzL25hbWVpLmMgICAgICAgICAgICAgICAgICAgIHwgMTggKysrKystLQo+ICAg ZnMvZjJmcy9zdXBlci5jICAgICAgICAgICAgICAgICAgICB8IDc5ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrLQo+ICAgNCBmaWxlcyBjaGFuZ2VkLCAxMDMgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9m MmZzLnJzdCAKPiBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZjJmcy5yc3QKPiBpbmRleCA2 M2MwYzQ5YjcyNmQuLmY5MjQ4YTM2Y2Q1MyAxMDA2NDQKPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2Zp bGVzeXN0ZW1zL2YyZnMucnN0Cj4gKysrIGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9mMmZz LnJzdAo+IEBAIC0yODEsNiArMjgxLDE0IEBAIGNvbXByZXNzX2V4dGVuc2lvbj0lcwkgU3VwcG9y dCBhZGRpbmcgc3BlY2lmaWVkCmV4dGVuc2lvbiwgc28gdGhhdCBmMmZzIGNhbiBlbmFiCj4gICAJ CQkgRm9yIG90aGVyIGZpbGVzLCB3ZSBjYW4gc3RpbGwgZW5hYmxlIGNvbXByZXNzaW9uCnZpYSBp b2N0bC4KPiAgIAkJCSBOb3RlIHRoYXQsIHRoZXJlIGlzIG9uZSByZXNlcnZlZCBzcGVjaWFsIGV4 dGVuc2lvbgonKicsIGl0Cj4gICAJCQkgY2FuIGJlIHNldCB0byBlbmFibGUgY29tcHJlc3Npb24g Zm9yIGFsbCBmaWxlcy4KPiArbm9jb21wcmVzc19leHRlbnNpb249JXMJICAgU3VwcG9ydCBhZGRp bmcgc3BlY2lmaWVkIGV4dGVuc2lvbiwgc28KdGhhdCBmMmZzIGNhbiBkaXNhYmxlCj4gKwkJCSBj b21wcmVzc2lvbiBvbiB0aG9zZSBjb3JyZXNwb25kaW5nIGZpbGVzLCBqdXN0CmNvbnRyYXJ5IHRv IGNvbXByZXNzaW9uIGV4dGVuc2lvbi4KPiArCQkJIElmIHlvdSBrbm93IGV4YWN0bHkgd2hpY2gg ZmlsZXMgY2Fubm90IGJlCmNvbXByZXNzZWQsIHlvdSBjYW4gdXNlIHRoaXMuCj4gKwkJCSBUaGUg c2FtZSBleHRlbnNpb24gbmFtZSBjYW4ndCBhcHBlYXIgaW4gYm90aApjb21wcmVzcyBhbmQgbm9j b21wcmVzcwo+ICsJCQkgZXh0ZW5zaW9uIGF0IHRoZSBzYW1lIHRpbWUuCj4gKwkJCSBJZiB0aGUg Y29tcHJlc3MgZXh0ZW5zaW9uIHNwZWNpZmllcyBhbGwgZmlsZXMsIHRoZQp0eXBlcyBzcGVjaWZp ZWQgYnkgdGhlCj4gKwkJCSBub2NvbXByZXNzIGV4dGVuc2lvbiB3aWxsIGJlIHRyZWF0ZWQgYXMg c3BlY2lhbApjYXNlcyBhbmQgd2lsbCBub3QgYmUgY29tcHJlc3NlZC4KPiArCQkJIERvbid0IGFs bG93IHVzZSAnKicgdG8gc3BlY2lmaWUgYWxsIGZpbGUgaW4Kbm9jb21wcmVzcyBleHRlbnNpb24u Cj4gICBjb21wcmVzc19jaGtzdW0JCSBTdXBwb3J0IHZlcmlmeWluZyBjaGtzdW0gb2YgcmF3IGRh dGEgaW4KY29tcHJlc3NlZCBjbHVzdGVyLgo+ICAgY29tcHJlc3NfbW9kZT0lcwkgQ29udHJvbCBm aWxlIGNvbXByZXNzaW9uIG1vZGUuIFRoaXMgc3VwcG9ydHMgImZzIgphbmQgInVzZXIiCj4gICAJ CQkgbW9kZXMuIEluICJmcyIgbW9kZSAoZGVmYXVsdCksIGYyZnMgZG9lcyBhdXRvbWF0aWMKY29t cHJlc3Npb24gCj4gZGlmZiAtLWdpdCBhL2ZzL2YyZnMvZjJmcy5oIGIvZnMvZjJmcy9mMmZzLmgg aW5kZXggCj4gODdkNzM0ZjU1ODlkLi4zZDVkMjhhMjU2OGYgMTAwNjQ0Cj4gLS0tIGEvZnMvZjJm cy9mMmZzLmgKPiArKysgYi9mcy9mMmZzL2YyZnMuaAo+IEBAIC0xNTAsOCArMTUwLDEwIEBAIHN0 cnVjdCBmMmZzX21vdW50X2luZm8gewo+ICAgCXVuc2lnbmVkIGNoYXIgY29tcHJlc3NfbGV2ZWw7 CQkvKiBjb21wcmVzcyBsZXZlbCAqLwo+ICAgCWJvb2wgY29tcHJlc3NfY2hrc3VtOwkJCS8qIGNv bXByZXNzZWQgZGF0YSBjaGtzdW0gKi8KPiAgIAl1bnNpZ25lZCBjaGFyIGNvbXByZXNzX2V4dF9j bnQ7CQkvKiBleHRlbnNpb24gY291bnQgKi8KPiArCXVuc2lnbmVkIGNoYXIgbm9jb21wcmVzc19l eHRfY250OwkJLyogbm9jb21wcmVzcwpleHRlbnNpb24gY291bnQgKi8KPiAgIAlpbnQgY29tcHJl c3NfbW9kZTsJCQkvKiBjb21wcmVzc2lvbiBtb2RlICovCj4gICAJdW5zaWduZWQgY2hhciBleHRl bnNpb25zW0NPTVBSRVNTX0VYVF9OVU1dW0YyRlNfRVhURU5TSU9OX0xFTl07CS8qCmV4dGVuc2lv bnMgKi8KPiArCXVuc2lnbmVkIGNoYXIgbm9leHRlbnNpb25zW0NPTVBSRVNTX0VYVF9OVU1dW0Yy RlNfRVhURU5TSU9OX0xFTl07IC8qCgo+ICtleHRlbnNpb25zICovCj4gICB9Owo+IAo+ICAgI2Rl ZmluZSBGMkZTX0ZFQVRVUkVfRU5DUllQVAkJMHgwMDAxCj4gZGlmZiAtLWdpdCBhL2ZzL2YyZnMv bmFtZWkuYyBiL2ZzL2YyZnMvbmFtZWkuYyBpbmRleCAKPiA0MDVkODVkYmY5ZjEuLjg0Y2EzMjJh MjJlZSAxMDA2NDQKPiAtLS0gYS9mcy9mMmZzL25hbWVpLmMKPiArKysgYi9mcy9mMmZzL25hbWVp LmMKPiBAQCAtMjc5LDE0ICsyNzksMTYgQEAgc3RhdGljIHZvaWQgc2V0X2NvbXByZXNzX2lub2Rl KHN0cnVjdCBmMmZzX3NiX2luZm8KKnNiaSwgc3RydWN0IGlub2RlICppbm9kZSwKPiAgIAkJCQkJ CWNvbnN0IHVuc2lnbmVkIGNoYXIgKm5hbWUpCj4gICB7Cj4gICAJX191OCAoKmV4dGxpc3QpW0Yy RlNfRVhURU5TSU9OX0xFTl0gPSAKPiBzYmktPnJhd19zdXBlci0+ZXh0ZW5zaW9uX2xpc3Q7Cj4g Kwl1bnNpZ25lZCBjaGFyICgqbm9leHQpW0YyRlNfRVhURU5TSU9OX0xFTl0gPSAKPiArRjJGU19P UFRJT04oc2JpKS5ub2V4dGVuc2lvbnM7Cj4gICAJdW5zaWduZWQgY2hhciAoKmV4dClbRjJGU19F WFRFTlNJT05fTEVOXTsKPiAtCXVuc2lnbmVkIGludCBleHRfY250ID0gRjJGU19PUFRJT04oc2Jp KS5jb21wcmVzc19leHRfY250Owo+ICsJdW5zaWduZWQgY2hhciBleHRfY250ID0gRjJGU19PUFRJ T04oc2JpKS5jb21wcmVzc19leHRfY250Owo+ICsJdW5zaWduZWQgY2hhciBub2V4dF9jbnQgPSBG MkZTX09QVElPTihzYmkpLm5vY29tcHJlc3NfZXh0X2NudDsKPiAgIAlpbnQgaSwgY29sZF9jb3Vu dCwgaG90X2NvdW50Owo+IAo+ICAgCWlmICghZjJmc19zYl9oYXNfY29tcHJlc3Npb24oc2JpKSB8 fAo+IC0JCQlpc19pbm9kZV9mbGFnX3NldChpbm9kZSwgRklfQ09NUFJFU1NFRF9GSUxFKSB8fAo+ ICAgCQkJRjJGU19JKGlub2RlKS0+aV9mbGFncyAmIEYyRlNfTk9DT01QX0ZMIHx8Cj4gLQkJCSFm MmZzX21heV9jb21wcmVzcyhpbm9kZSkpCj4gKwkJCSFmMmZzX21heV9jb21wcmVzcyhpbm9kZSkg fHwKPiArCQkJKCFleHRfY250ICYmICFub2V4dF9jbnQpKQo+ICAgCQlyZXR1cm47Cj4gCj4gICAJ ZG93bl9yZWFkKCZzYmktPnNiX2xvY2spOwo+IEBAIC0zMDMsNiArMzA1LDE2IEBAIHN0YXRpYyB2 b2lkIHNldF9jb21wcmVzc19pbm9kZShzdHJ1Y3QgCj4gZjJmc19zYl9pbmZvICpzYmksIHN0cnVj dCBpbm9kZSAqaW5vZGUsCj4gCj4gICAJdXBfcmVhZCgmc2JpLT5zYl9sb2NrKTsKPiAKPiArCWZv ciAoaSA9IDA7IGkgPCBub2V4dF9jbnQ7IGkrKykgewo+ICsJCWlmIChpc19leHRlbnNpb25fZXhp c3QobmFtZSwgbm9leHRbaV0pKSB7Cj4gKwkJCWYyZnNfZGlzYWJsZV9jb21wcmVzc2VkX2ZpbGUo aW5vZGUpOwo+ICsJCQlyZXR1cm47Cj4gKwkJfQo+ICsJfQo+ICsKPiArCWlmIChpc19pbm9kZV9m bGFnX3NldChpbm9kZSwgRklfQ09NUFJFU1NFRF9GSUxFKSkKPiArCQlyZXR1cm47Cj4gKwo+ICAg CWV4dCA9IEYyRlNfT1BUSU9OKHNiaSkuZXh0ZW5zaW9uczsKPiAKPiAgIAlmb3IgKGkgPSAwOyBp IDwgZXh0X2NudDsgaSsrKSB7Cj4gZGlmZiAtLWdpdCBhL2ZzL2YyZnMvc3VwZXIuYyBiL2ZzL2Yy ZnMvc3VwZXIuYyBpbmRleCAKPiA1MDIwMTUyYWE4ZmMuLjg2NTE5MTMzOTYyNSAxMDA2NDQKPiAt LS0gYS9mcy9mMmZzL3N1cGVyLmMKPiArKysgYi9mcy9mMmZzL3N1cGVyLmMKPiBAQCAtMTQ4LDYg KzE0OCw3IEBAIGVudW0gewo+ICAgCU9wdF9jb21wcmVzc19hbGdvcml0aG0sCj4gICAJT3B0X2Nv bXByZXNzX2xvZ19zaXplLAo+ICAgCU9wdF9jb21wcmVzc19leHRlbnNpb24sCj4gKwlPcHRfbm9j b21wcmVzc19leHRlbnNpb24sCj4gICAJT3B0X2NvbXByZXNzX2Noa3N1bSwKPiAgIAlPcHRfY29t cHJlc3NfbW9kZSwKPiAgIAlPcHRfYXRnYywKPiBAQCAtMjIyLDYgKzIyMyw3IEBAIHN0YXRpYyBt YXRjaF90YWJsZV90IGYyZnNfdG9rZW5zID0gewo+ICAgCXtPcHRfY29tcHJlc3NfYWxnb3JpdGht LCAiY29tcHJlc3NfYWxnb3JpdGhtPSVzIn0sCj4gICAJe09wdF9jb21wcmVzc19sb2dfc2l6ZSwg ImNvbXByZXNzX2xvZ19zaXplPSV1In0sCj4gICAJe09wdF9jb21wcmVzc19leHRlbnNpb24sICJj b21wcmVzc19leHRlbnNpb249JXMifSwKPiArCXtPcHRfbm9jb21wcmVzc19leHRlbnNpb24sICJu b2NvbXByZXNzX2V4dGVuc2lvbj0lcyJ9LAo+ICAgCXtPcHRfY29tcHJlc3NfY2hrc3VtLCAiY29t cHJlc3NfY2hrc3VtIn0sCj4gICAJe09wdF9jb21wcmVzc19tb2RlLCAiY29tcHJlc3NfbW9kZT0l cyJ9LAo+ICAgCXtPcHRfYXRnYywgImF0Z2MifSwKPiBAQCAtNDczLDYgKzQ3NSw0MyBAQCBzdGF0 aWMgaW50IGYyZnNfc2V0X3Rlc3RfZHVtbXlfZW5jcnlwdGlvbihzdHJ1Y3QKc3VwZXJfYmxvY2sg KnNiLAo+ICAgfQo+IAo+ICAgI2lmZGVmIENPTkZJR19GMkZTX0ZTX0NPTVBSRVNTSU9OCj4gKy8q Cj4gKyAqIDEuIFRoZSBzYW1lIGV4dGVuc2lvbiBuYW1lIGNhbm5vdCBub3QgYXBwZWFyIGluIGJv dGggY29tcHJlc3MgYW5kIAo+ICtub24tY29tcHJlc3MgZXh0ZW5zaW9uCj4gKyAqIGF0IHRoZSBz YW1lIHRpbWUuCj4gKyAqIDIuIElmIHRoZSBjb21wcmVzcyBleHRlbnNpb24gc3BlY2lmaWVzIGFs bCBmaWxlcywgdGhlIHR5cGVzIAo+ICtzcGVjaWZpZWQgYnkgdGhlIG5vbi1jb21wcmVzcwo+ICsg KiBleHRlbnNpb24gd2lsbCBiZSB0cmVhdGVkIGFzIHNwZWNpYWwgY2FzZXMgYW5kIHdpbGwgbm90 IGJlIGNvbXByZXNzZWQuCj4gKyAqIDMuIERvbid0IGFsbG93IHRoZSBub24tY29tcHJlc3MgZXh0 ZW5zaW9uIHNwZWNpZmllcyBhbGwgZmlsZXMuCj4gKyAqLwo+ICtzdGF0aWMgaW50IGYyZnNfdGVz dF9jb21wcmVzc19leHRlbnNpb24oc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKSB7Cj4gKwl1bnNp Z25lZCBjaGFyICgqZXh0KVtGMkZTX0VYVEVOU0lPTl9MRU5dOwo+ICsJdW5zaWduZWQgY2hhciAo Km5vZXh0KVtGMkZTX0VYVEVOU0lPTl9MRU5dOwo+ICsJaW50IGV4dF9jbnQsIG5vZXh0X2NudCwg aW5kZXggPSAwLCBub19pbmRleCA9IDA7Cj4gKwo+ICsJZXh0ID0gRjJGU19PUFRJT04oc2JpKS5l eHRlbnNpb25zOwo+ICsJZXh0X2NudCA9IEYyRlNfT1BUSU9OKHNiaSkuY29tcHJlc3NfZXh0X2Nu dDsKPiArCW5vZXh0ID0gRjJGU19PUFRJT04oc2JpKS5ub2V4dGVuc2lvbnM7Cj4gKwlub2V4dF9j bnQgPSBGMkZTX09QVElPTihzYmkpLm5vY29tcHJlc3NfZXh0X2NudDsKPiArCj4gKwlpZiAoIWV4 dF9jbnQgfHwgIW5vZXh0X2NudCkKCkl0IGRvZXNuJ3QgY292ZXIgdGhlIGNhc2U6IGV4dF9jbnQg PSAwLCBhbmQgdGhlcmUgaXMgIioiIGluIG5vZXh0W10uCgpUaGFua3MsCgo+ICsJCXJldHVybiAw Owo+ICsKPiArCWZvciAobm9faW5kZXggPSAwOyBub19pbmRleCA8IG5vZXh0X2NudDsgbm9faW5k ZXgrKykgewo+ICsJCWlmICghc3RyY2FzZWNtcCgiKiIsIG5vZXh0W25vX2luZGV4XSkpIHsKPiAr CQkJZjJmc19pbmZvKHNiaSwgIkRvbid0IGFsbG93IHRoZSBub24tY29tcHJlc3MKZXh0ZW5zaW9u IHNwZWNpZmllcyBhbGwgZmlsZXMiKTsKPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwkJfQo+ICsJ CWZvciAoaW5kZXggPSAwOyBpbmRleCA8IGV4dF9jbnQ7IGluZGV4KyspIHsKPiArCQkJaWYgKCFz dHJjYXNlY21wKGV4dFtpbmRleF0sIG5vZXh0W25vX2luZGV4XSkpIHsKPiArCQkJCWYyZnNfaW5m byhzYmksICJEb24ndCBhbGxvdyB0aGUgc2FtZQpleHRlbnNpb24gJXMgYXBwZWFyIGluIGJvdGgg Y29tcHJlc3MgYW5kIG5vbi1jb21wcmVzcyBleHRlbnNpb24iLAo+ICsJCQkJCQlleHRbaW5kZXhd KTsKPiArCQkJCXJldHVybiAtRUlOVkFMOwo+ICsJCQl9Cj4gKwkJfQo+ICsJfQo+ICsJcmV0dXJu IDA7Cj4gK30KPiArCj4gICAjaWZkZWYgQ09ORklHX0YyRlNfRlNfTFo0Cj4gICBzdGF0aWMgaW50 IGYyZnNfc2V0X2x6NGhjX2xldmVsKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgY29uc3QgY2hh cgoqc3RyKQo+ICAgewo+IEBAIC01NDYsNyArNTg1LDggQEAgc3RhdGljIGludCBwYXJzZV9vcHRp b25zKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGNoYXIKKm9wdGlvbnMsIGJvb2wgaXNfcmVtb3Vu dCkKPiAgIAlzdWJzdHJpbmdfdCBhcmdzW01BWF9PUFRfQVJHU107Cj4gICAjaWZkZWYgQ09ORklH X0YyRlNfRlNfQ09NUFJFU1NJT04KPiAgIAl1bnNpZ25lZCBjaGFyICgqZXh0KVtGMkZTX0VYVEVO U0lPTl9MRU5dOwo+IC0JaW50IGV4dF9jbnQ7Cj4gKwl1bnNpZ25lZCBjaGFyICgqbm9leHQpW0Yy RlNfRVhURU5TSU9OX0xFTl07Cj4gKwlpbnQgZXh0X2NudCwgbm9leHRfY250Owo+ICAgI2VuZGlm Cj4gICAJY2hhciAqcCwgKm5hbWU7Cj4gICAJaW50IGFyZyA9IDA7Cj4gQEAgLTEwNDksNiArMTA4 OSwzMCBAQCBzdGF0aWMgaW50IHBhcnNlX29wdGlvbnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwK Y2hhciAqb3B0aW9ucywgYm9vbCBpc19yZW1vdW50KQo+ICAgCQkJRjJGU19PUFRJT04oc2JpKS5j b21wcmVzc19leHRfY250Kys7Cj4gICAJCQlrZnJlZShuYW1lKTsKPiAgIAkJCWJyZWFrOwo+ICsJ CWNhc2UgT3B0X25vY29tcHJlc3NfZXh0ZW5zaW9uOgo+ICsJCQlpZiAoIWYyZnNfc2JfaGFzX2Nv bXByZXNzaW9uKHNiaSkpIHsKPiArCQkJCWYyZnNfaW5mbyhzYmksICJJbWFnZSBkb2Vzbid0IHN1 cHBvcnQKY29tcHJlc3Npb24iKTsKPiArCQkJCWJyZWFrOwo+ICsJCQl9Cj4gKwkJCW5hbWUgPSBt YXRjaF9zdHJkdXAoJmFyZ3NbMF0pOwo+ICsJCQlpZiAoIW5hbWUpCj4gKwkJCQlyZXR1cm4gLUVO T01FTTsKPiArCj4gKwkJCW5vZXh0ID0gRjJGU19PUFRJT04oc2JpKS5ub2V4dGVuc2lvbnM7Cj4g KwkJCW5vZXh0X2NudCA9IEYyRlNfT1BUSU9OKHNiaSkubm9jb21wcmVzc19leHRfY250Owo+ICsK PiArCQkJaWYgKHN0cmxlbihuYW1lKSA+PSBGMkZTX0VYVEVOU0lPTl9MRU4gfHwKPiArCQkJCW5v ZXh0X2NudCA+PSBDT01QUkVTU19FWFRfTlVNKSB7Cj4gKwkJCQlmMmZzX2VycihzYmksCj4gKwkJ CQkJImludmFsaWQgZXh0ZW5zaW9uIGxlbmd0aC9udW1iZXIiKTsKPiArCQkJCWtmcmVlKG5hbWUp Owo+ICsJCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwkJCX0KPiArCj4gKwkJCXN0cmNweShub2V4dFtu b2V4dF9jbnRdLCBuYW1lKTsKPiArCQkJRjJGU19PUFRJT04oc2JpKS5ub2NvbXByZXNzX2V4dF9j bnQrKzsKPiArCQkJa2ZyZWUobmFtZSk7Cj4gKwkJCWJyZWFrOwo+ICAgCQljYXNlIE9wdF9jb21w cmVzc19jaGtzdW06Cj4gICAJCQlGMkZTX09QVElPTihzYmkpLmNvbXByZXNzX2Noa3N1bSA9IHRy dWU7Cj4gICAJCQlicmVhazsKPiBAQCAtMTA3MCw2ICsxMTM0LDcgQEAgc3RhdGljIGludCBwYXJz ZV9vcHRpb25zKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCmNoYXIgKm9wdGlvbnMsIGJvb2wgaXNf cmVtb3VudCkKPiAgIAkJY2FzZSBPcHRfY29tcHJlc3NfYWxnb3JpdGhtOgo+ICAgCQljYXNlIE9w dF9jb21wcmVzc19sb2dfc2l6ZToKPiAgIAkJY2FzZSBPcHRfY29tcHJlc3NfZXh0ZW5zaW9uOgo+ ICsJCWNhc2UgT3B0X25vY29tcHJlc3NfZXh0ZW5zaW9uOgo+ICAgCQljYXNlIE9wdF9jb21wcmVz c19jaGtzdW06Cj4gICAJCWNhc2UgT3B0X2NvbXByZXNzX21vZGU6Cj4gICAJCQlmMmZzX2luZm8o c2JpLCAiY29tcHJlc3Npb24gb3B0aW9ucyBub3Qgc3VwcG9ydGVkIik7CkBAIC0xMTIyLDYgCj4g KzExODcsMTMgQEAgc3RhdGljIGludCBwYXJzZV9vcHRpb25zKHN0cnVjdCBzdXBlcl9ibG9jayAq c2IsIGNoYXIKKm9wdGlvbnMsIGJvb2wgaXNfcmVtb3VudCkKPiAgIAl9Cj4gICAjZW5kaWYKPiAK PiArI2lmZGVmIENPTkZJR19GMkZTX0ZTX0NPTVBSRVNTSU9OCj4gKwlpZiAoZjJmc190ZXN0X2Nv bXByZXNzX2V4dGVuc2lvbihzYmkpKSB7Cj4gKwkJZjJmc19lcnIoc2JpLCAiaW52YWxpZCBjb21w cmVzcyBvciBub2NvbXByZXNzIGV4dGVuc2lvbiIpOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJ fQo+ICsjZW5kaWYKPiArCj4gICAJaWYgKEYyRlNfSU9fU0laRV9CSVRTKHNiaSkgJiYgIWYyZnNf bGZzX21vZGUoc2JpKSkgewo+ICAgCQlmMmZzX2VycihzYmksICJTaG91bGQgc2V0IG1vZGU9bGZz IHdpdGggJXVLQi1zaXplZCBJTyIsCj4gICAJCQkgRjJGU19JT19TSVpFX0tCKHNiaSkpOwo+IEBA IC0xNjY1LDYgKzE3MzcsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkCmYyZnNfc2hvd19jb21wcmVz c19vcHRpb25zKHN0cnVjdCBzZXFfZmlsZSAqc2VxLAo+ICAgCQkJRjJGU19PUFRJT04oc2JpKS5l eHRlbnNpb25zW2ldKTsKPiAgIAl9Cj4gCj4gKwlmb3IgKGkgPSAwOyBpIDwgRjJGU19PUFRJT04o c2JpKS5ub2NvbXByZXNzX2V4dF9jbnQ7IGkrKykgewo+ICsJCXNlcV9wcmludGYoc2VxLCAiLG5v Y29tcHJlc3NfZXh0ZW5zaW9uPSVzIiwKPiArCQkJRjJGU19PUFRJT04oc2JpKS5ub2V4dGVuc2lv bnNbaV0pOwo+ICsJfQo+ICsKPiAgIAlpZiAoRjJGU19PUFRJT04oc2JpKS5jb21wcmVzc19jaGtz dW0pCj4gICAJCXNlcV9wdXRzKHNlcSwgIixjb21wcmVzc19jaGtzdW0iKTsKPiAKPiAtLQo+IDIu MjkuMAo+IAo+IAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4gTGludXgtZjJmcy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBMaW51eC1mMmZzLWRldmVs QGxpc3RzLnNvdXJjZWZvcmdlLm5ldAo+IGh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xp c3RzL2xpc3RpbmZvL2xpbnV4LWYyZnMtZGV2ZWwKPiAuCj4gCgoKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1mMmZzLWRldmVsIG1haWxpbmcg bGlzdApMaW51eC1mMmZzLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3Rz LnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9saW51eC1mMmZzLWRldmVsCg==