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 33EE7C433DB for ; Fri, 22 Jan 2021 01:57:27 +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 7FC0A239EE; Fri, 22 Jan 2021 01:57:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7FC0A239EE 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 1l2lhV-0007OB-Pd; Fri, 22 Jan 2021 01:57:25 +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 1l2lhU-0007O4-6e for linux-f2fs-devel@lists.sourceforge.net; Fri, 22 Jan 2021 01:57:24 +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=0qr5kaPTJQKJh0Tfm22z05fMjLyS/Zb/bQ7/dDsHwCY=; b=TTD31/x2t7tgKViLDw76Drvvwe fB5z5j2OXf602x4EKeM1dy7L8jRewdNpc9ZO4QhG6JNQ0SARcQUKCWZ8tFvQJX33ZXzEPdLgboIa9 VKCgsE0mHCyreYcZpNb6zgYeAzbyTtqwJRKwi20QcxSS0POafUA+t6u8XBQM4b8j7dTw=; 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=0qr5kaPTJQKJh0Tfm22z05fMjLyS/Zb/bQ7/dDsHwCY=; b=AbEYbejS3zAtSBfruExg/s4lNT X4SvyYMgC8oleBjyRViQjXnpv22xxLhu/MCxfA444ctZc9GUn/ssSGAUolcS9EUNSpFZhNPTyhktg VX2+GfY7KOLD1oNmAtk13L9T/3SB64AjIxzMme5q9agO6oF+LAcgEIr+gVBJHDj8IM6A=; Received: from mail-lf1-f52.google.com ([209.85.167.52]) by sfi-mx-1.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.92.2) id 1l2lhK-006zME-O8 for linux-f2fs-devel@lists.sourceforge.net; Fri, 22 Jan 2021 01:57:24 +0000 Received: by mail-lf1-f52.google.com with SMTP id v24so5401555lfr.7 for ; Thu, 21 Jan 2021 17:57:14 -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=0qr5kaPTJQKJh0Tfm22z05fMjLyS/Zb/bQ7/dDsHwCY=; b=ZWIiEcSHP6DbN6xZIPyym5BprE4+syi3f6iI6iptmp7HTxGJp++7YjIT/wmkB4hBVR bD1FYED3lC34TfGDqpJldpUXJYmssFWpT/5aCFVOfllMJdxL6lDPGb22UkHX3Sp9vgHU R2O9Eg7yYVFnCvJ26wX7rhyHN4dJhVCQdSnHc9PZjsjr70IyjoawoDXGN/QjRR1p+Smx 8lz8l06AbkfW9f61Zsk8ieJfT3cmhue/20fCfmCFm8BsIjwmAj3y+QUhIyfHWxyMnJ2W MsMsUv+naS0+fmIXwwargPLKI5upKYGDyse8OaJWvP9ywKUwYq8SfS+M8OjC1nxtwjbc xPgA== 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=0qr5kaPTJQKJh0Tfm22z05fMjLyS/Zb/bQ7/dDsHwCY=; b=pLa58C2CYTnqYgWd21pSy/Oneprxr76NZkXEY2pC/vF2QOGKBRX4Z0GOjSX4mpy6Q9 ZTVOyXWlsfNL+wc5Ha0ArT5JgA5l2JWc3C97DJQ3ATrrdjqMMlKy9EQi5voV9KS25FhW 0+De1COuDJrBHglfCx1jVd2ulWCoCldiJGXfdJwM/zSbE5v4BzkmvFCcfNXFA30mSCft COEnqnmXi+4+3+xbeqdlW7AgD4jJ7TQtb+UU8J7xI6AfnRfzzGNzZY3esR+kb3ZbABKJ L7l9rQtj3ODH8kDr07BtmCu8Rx3lZ4UFra+2POfwCk5jzL3saTMsQFf9ar1/1Hal96es JWxw== X-Gm-Message-State: AOAM531CCc65lb8QnooxROB4DjKcSe3GzC+sU2SMESM2cu7JsWRESIbZ kXZE9kclohMfs8JyC82HpFoGWtiyuIo/ecFiUV8= X-Google-Smtp-Source: ABdhPJyNZlAETl9573yLoccLR2k8LDJwtCihFW4BuDPuEpEgSOtSM8oqmqM83j2Evd69GM1pDyREesgWYO0Drxo080g= X-Received: by 2002:a19:7403:: with SMTP id v3mr305737lfe.67.1611280627684; Thu, 21 Jan 2021 17:57:07 -0800 (PST) MIME-Version: 1.0 References: <20210121134529.1201249-1-daeho43@gmail.com> In-Reply-To: From: Daeho Jeong Date: Fri, 22 Jan 2021 10:56:56 +0900 Message-ID: To: Jaegeuk Kim X-Headers-End: 1l2lhK-006zME-O8 Subject: Re: [f2fs-dev] [PATCH v5 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 WWVwfgoKMjAyMeuFhCAx7JuUIDIy7J28ICjquIgpIOyYpOyghCAxMDo0NiwgSmFlZ2V1ayBLaW0g PGphZWdldWtAa2VybmVsLm9yZz7ri5jsnbQg7J6R7ISxOgo+Cj4gT24gMDEvMjEsIERhZWhvIEpl b25nIHdyb3RlOgo+ID4gRnJvbTogRGFlaG8gSmVvbmcgPGRhZWhvamVvbmdAZ29vZ2xlLmNvbT4K PiA+Cj4gPiBXZSd2ZSBhZGRlZCBhIG5ldyBtb3VudCBvcHRpb24gImNoZWNrcG9pbnQ9bWVyZ2Ui LCB3aGljaCBjcmVhdGVzIGEKPiA+IGtlcm5lbCBkYWVtb24gYW5kIG1ha2VzIGl0IHRvIG1lcmdl IGNvbmN1cnJlbnQgY2hlY2twb2ludCByZXF1ZXN0cyBhcwo+ID4gbXVjaCBhcyBwb3NzaWJsZSB0 byBlbGltaW5hdGUgcmVkdW5kYW50IGNoZWNrcG9pbnQgaXNzdWVzLiBQbHVzLCB3ZQo+ID4gY2Fu IGVsaW1pbmF0ZSB0aGUgc2x1Z2dpc2ggaXNzdWUgY2F1c2VkIGJ5IHNsb3cgY2hlY2twb2ludCBv cGVyYXRpb24KPiA+IHdoZW4gdGhlIGNoZWNrcG9pbnQgaXMgZG9uZSBpbiBhIHByb2Nlc3MgY29u dGV4dCBpbiBhIGNncm91cCBoYXZpbmcKPiA+IGxvdyBpL28gYnVkZ2V0IGFuZCBjcHUgc2hhcmVz LiBUbyBtYWtlIHRoaXMgZG8gYmV0dGVyLCB3ZSBzZXQgdGhlCj4gPiBkZWZhdWx0IGkvbyBwcmlv cml0eSBvZiB0aGUga2VybmVsIGRhZW1vbiB0byAiMyIsIHRvIGdpdmUgb25lIGhpZ2hlcgo+ID4g cHJpb3JpdHkgdGhhbiBvdGhlciBrZXJuZWwgdGhyZWFkcy4gVGhlIGJlbG93IHZlcmlmaWNhdGlv biByZXN1bHQKPiA+IGV4cGxhaW5zIHRoaXMuCj4gPiBUaGUgYmFzaWMgaWRlYSBoYXMgY29tZSBm cm9tIGh0dHBzOi8vb3BlbnNvdXJjZS5zYW1zdW5nLmNvbS4KPiA+Cj4gPiBbVmVyaWZpY2F0aW9u XQo+ID4gQW5kcm9pZCBQaXhlbCBEZXZpY2UoQVJNNjQsIDdHQiBSQU0sIDI1NkdCIFVGUykKPiA+ IENyZWF0ZSB0d28gSS9PIGNncm91cHMgKGZnIHcvIHdlaWdodCAxMDAsIGJnIHcvIHdpZ2h0IDIw KQo+ID4gU2V0ICJzdHJpY3RfZ3VhcmFudGVlcyIgdG8gIjEiIGluIEJGUSB0dW5hYmxlcwo+ID4K PiA+IEluICJmZyIgY2dyb3VwLAo+ID4gLSB0aHJlYWQgQSA9PiB0cmlnZ2VyIDEwMDAgY2hlY2tw b2ludCBvcGVyYXRpb25zCj4gPiAgICJmb3IgaSBpbiBgc2VxIDEgMTAwMGA7IGRvIHRvdWNoIHRl c3RfZGlyMS9maWxlOyBmc3luYyB0ZXN0X2RpcjE7Cj4gPiAgICBkb25lIgo+ID4gLSB0aHJlYWQg QiA9PiBnZXJlcmF0aW5nIGFzeW5jLiBJL08KPiA+ICAgImZpbyAtLXJ3PXdyaXRlIC0tbnVtam9i cz0xIC0tYnM9MTI4ayAtLXJ1bnRpbWU9MzYwMCAtLXRpbWVfYmFzZWQ9MQo+ID4gICAgICAgIC0t ZmlsZW5hbWU9dGVzdF9pbWcgLS1uYW1lPXRlc3QiCj4gPgo+ID4gSW4gImJnIiBjZ3JvdXAsCj4g PiAtIHRocmVhZCBDID0+IHRyaWdnZXIgcmVwZWF0ZWQgY2hlY2twb2ludCBvcGVyYXRpb25zCj4g PiAgICJlY2hvICQkID4gL2Rldi9ibGtpby9iZy90YXNrczsgd2hpbGUgdHJ1ZTsgZG8gdG91Y2gg dGVzdF9kaXIyL2ZpbGU7Cj4gPiAgICBmc3luYyB0ZXN0X2RpcjI7IGRvbmUiCj4gPgo+ID4gV2Un dmUgbWVhc3VyZWQgdGhyZWFkIEEncyBleGVjdXRpb24gdGltZS4KPiA+Cj4gPiBbIHcvbyBwYXRj aCBdCj4gPiBFbGFwc2VkIFRpbWU6IEF2Zy4gNjggc2Vjb25kcwo+ID4gWyB3LyAgcGF0Y2ggXQo+ ID4gRWxhcHNlZCBUaW1lOiBBdmcuIDQ4IHNlY29uZHMKPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBE YWVobyBKZW9uZyA8ZGFlaG9qZW9uZ0Bnb29nbGUuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogU3Vu Z2pvbmcgU2VvIDxzajE1NTcuc2VvQHNhbXN1bmcuY29tPgo+ID4gLS0tCj4gPiB2MjoKPiA+IC0g aW5saW5lZCBja3B0X3JlcV9jb250cm9sIGludG8gZjJmc19zYl9pbmZvIGFuZCBjb2xsZWN0ZWQg c3Rhc3RpY3MKPiA+ICAgb2YgY2hlY2twb2ludCBtZXJnZSBvcGVyYXRpb25zCj4gPiB2MzoKPiA+ IC0gZml4ZWQgc29tZSBtaW5vciBlcnJvcnMgYW5kIGNsZWFuZWQgdXAgZjJmc19zeW5jX2ZzKCkK PiA+IHY0Ogo+ID4gLSBhZGRlZCBhbiBleHBsYW5hdGlvbiB0byByYWlzZSB0aGUgZGVmYXVsdCBp L28gcHJpb3JpdHkgb2YgdGhlCj4gPiAgIGNoZWNrcG9pbnQgZGFlbW9uCj4gPiAtLS0KPiA+ICBE b2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2YyZnMucnN0IHwgIDEwICsrCj4gPiAgZnMvZjJmcy9j aGVja3BvaW50LmMgICAgICAgICAgICAgICB8IDE3NyArKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+ID4gIGZzL2YyZnMvZGVidWcuYyAgICAgICAgICAgICAgICAgICAgfCAgMTIgKysKPiA+ ICBmcy9mMmZzL2YyZnMuaCAgICAgICAgICAgICAgICAgICAgIHwgIDI3ICsrKysrCj4gPiAgZnMv ZjJmcy9zdXBlci5jICAgICAgICAgICAgICAgICAgICB8ICA1NSArKysrKysrLS0KPiA+ICA1IGZp bGVzIGNoYW5nZWQsIDI3MyBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRp ZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2YyZnMucnN0IGIvRG9jdW1lbnRh dGlvbi9maWxlc3lzdGVtcy9mMmZzLnJzdAo+ID4gaW5kZXggZGFlMTVjOTZlNjU5Li45NjI0YTBi ZTAzNjQgMTAwNjQ0Cj4gPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2YyZnMucnN0 Cj4gPiArKysgYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2YyZnMucnN0Cj4gPiBAQCAtMjQ3 LDYgKzI0NywxNiBAQCBjaGVja3BvaW50PSVzWzoldVslXV0gICAgIFNldCB0byAiZGlzYWJsZSIg dG8gdHVybiBvZmYgY2hlY2twb2ludGluZy4gU2V0IHRvICJlbmFibAo+ID4gICAgICAgICAgICAg ICAgICAgICAgICBoaWRlIHVwIHRvIGFsbCByZW1haW5pbmcgZnJlZSBzcGFjZS4gVGhlIGFjdHVh bCBzcGFjZSB0aGF0Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgIHdvdWxkIGJlIHVudXNhYmxl IGNhbiBiZSB2aWV3ZWQgYXQgL3N5cy9mcy9mMmZzLzxkaXNrPi91bnVzYWJsZQo+ID4gICAgICAg ICAgICAgICAgICAgICAgICBUaGlzIHNwYWNlIGlzIHJlY2xhaW1lZCBvbmNlIGNoZWNrcG9pbnQ9 ZW5hYmxlLgo+ID4gKyAgICAgICAgICAgICAgICAgICAgICBIZXJlIGlzIGFub3RoZXIgb3B0aW9u ICJtZXJnZSIsIHdoaWNoIGNyZWF0ZXMgYSBrZXJuZWwgZGFlbW9uCj4gPiArICAgICAgICAgICAg ICAgICAgICAgIGFuZCBtYWtlcyBpdCB0byBtZXJnZSBjb25jdXJyZW50IGNoZWNrcG9pbnQgcmVx dWVzdHMgYXMgbXVjaAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICBhcyBwb3NzaWJsZSB0byBl bGltaW5hdGUgcmVkdW5kYW50IGNoZWNrcG9pbnQgaXNzdWVzLiBQbHVzLAo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICB3ZSBjYW4gZWxpbWluYXRlIHRoZSBzbHVnZ2lzaCBpc3N1ZSBjYXVzZWQg Ynkgc2xvdyBjaGVja3BvaW50Cj4gPiArICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiB3 aGVuIHRoZSBjaGVja3BvaW50IGlzIGRvbmUgaW4gYSBwcm9jZXNzIGNvbnRleHQgaW4KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgYSBjZ3JvdXAgaGF2aW5nIGxvdyBpL28gYnVkZ2V0IGFuZCBj cHUgc2hhcmVzLiBUbyBtYWtlIHRoaXMKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgZG8gYmV0 dGVyLCB3ZSBzZXQgdGhlIGRlZmF1bHQgaS9vIHByaW9yaXR5IG9mIHRoZSBrZXJuZWwgZGFlbW9u Cj4gPiArICAgICAgICAgICAgICAgICAgICAgIHRvICIzIiwgdG8gZ2l2ZSBvbmUgaGlnaGVyIHBy aW9yaXR5IHRoYW4gb3RoZXIga2VybmVsIHRocmVhZHMuCj4gPiArICAgICAgICAgICAgICAgICAg ICAgIFRoaXMgaXMgdGhlIHNhbWUgd2F5IHRvIGdpdmUgYSBJL08gcHJpb3JpdHkgdG8gdGhlIGpi ZDIKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgam91cm5hbGluZyB0aHJlYWQgb2YgZXh0NCBm aWxlc3lzdGVtLgo+ID4gIGNvbXByZXNzX2FsZ29yaXRobT0lcyAgICAgICAgIENvbnRyb2wgY29t cHJlc3MgYWxnb3JpdGhtLCBjdXJyZW50bHkgZjJmcyBzdXBwb3J0cyAibHpvIiwKPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgImx6NCIsICJ6c3RkIiBhbmQgImx6by1ybGUiIGFsZ29yaXRobS4K PiA+ICBjb21wcmVzc19sb2dfc2l6ZT0ldSAgU3VwcG9ydCBjb25maWd1cmluZyBjb21wcmVzcyBj bHVzdGVyIHNpemUsIHRoZSBzaXplIHdpbGwKPiA+IGRpZmYgLS1naXQgYS9mcy9mMmZzL2NoZWNr cG9pbnQuYyBiL2ZzL2YyZnMvY2hlY2twb2ludC5jCj4gPiBpbmRleCA4OTdlZGI3Yzk1MWEuLmVm NmFkM2QxOTU3ZCAxMDA2NDQKPiA+IC0tLSBhL2ZzL2YyZnMvY2hlY2twb2ludC5jCj4gPiArKysg Yi9mcy9mMmZzL2NoZWNrcG9pbnQuYwo+ID4gQEAgLTEzLDYgKzEzLDcgQEAKPiA+ICAjaW5jbHVk ZSA8bGludXgvZjJmc19mcy5oPgo+ID4gICNpbmNsdWRlIDxsaW51eC9wYWdldmVjLmg+Cj4gPiAg I2luY2x1ZGUgPGxpbnV4L3N3YXAuaD4KPiA+ICsjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgo+ ID4KPiA+ICAjaW5jbHVkZSAiZjJmcy5oIgo+ID4gICNpbmNsdWRlICJub2RlLmgiCj4gPiBAQCAt MjAsNiArMjEsOCBAQAo+ID4gICNpbmNsdWRlICJ0cmFjZS5oIgo+ID4gICNpbmNsdWRlIDx0cmFj ZS9ldmVudHMvZjJmcy5oPgo+ID4KPiA+ICsjZGVmaW5lIERFRkFVTFRfQ0hFQ0tQT0lOVF9JT1BS SU8gKElPUFJJT19QUklPX1ZBTFVFKElPUFJJT19DTEFTU19CRSwgMykpCj4gPiArCj4gPiAgc3Rh dGljIHN0cnVjdCBrbWVtX2NhY2hlICppbm9fZW50cnlfc2xhYjsKPiA+ICBzdHJ1Y3Qga21lbV9j YWNoZSAqZjJmc19pbm9kZV9lbnRyeV9zbGFiOwo+ID4KPiA+IEBAIC0xNzA3LDMgKzE3MTAsMTc3 IEBAIHZvaWQgZjJmc19kZXN0cm95X2NoZWNrcG9pbnRfY2FjaGVzKHZvaWQpCj4gPiAgICAgICBr bWVtX2NhY2hlX2Rlc3Ryb3koaW5vX2VudHJ5X3NsYWIpOwo+ID4gICAgICAga21lbV9jYWNoZV9k ZXN0cm95KGYyZnNfaW5vZGVfZW50cnlfc2xhYik7Cj4gPiAgfQo+ID4gKwo+ID4gK3N0YXRpYyBp bnQgX193cml0ZV9jaGVja3BvaW50X3N5bmMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+ID4g K3sKPiA+ICsgICAgIHN0cnVjdCBjcF9jb250cm9sIGNwYyA9IHsgLnJlYXNvbiA9IENQX1NZTkMs IH07Cj4gPiArICAgICBpbnQgZXJyOwo+ID4gKwo+ID4gKyAgICAgZG93bl93cml0ZSgmc2JpLT5n Y19sb2NrKTsKPiA+ICsgICAgIGVyciA9IGYyZnNfd3JpdGVfY2hlY2twb2ludChzYmksICZjcGMp Owo+ID4gKyAgICAgdXBfd3JpdGUoJnNiaS0+Z2NfbG9jayk7Cj4gPiArCj4gPiArICAgICByZXR1 cm4gZXJyOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBfX2NoZWNrcG9pbnRfYW5kX2Nv bXBsZXRlX3JlcXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+ID4gK3sKPiA+ICsgICAgIHN0 cnVjdCBja3B0X3JlcV9jb250cm9sICpjcHJjID0gJnNiaS0+Y3ByY19pbmZvOwo+ID4gKyAgICAg c3RydWN0IGNrcHRfcmVxICpyZXEsICpuZXh0Owo+ID4gKyAgICAgc3RydWN0IGxsaXN0X25vZGUg KmRpc3BhdGNoX2xpc3Q7Cj4gPiArICAgICB1NjQgc3VtX2RpZmYgPSAwLCBkaWZmLCBjb3VudCA9 IDA7Cj4gPiArICAgICBpbnQgcmV0Owo+ID4gKwo+ID4gKyAgICAgZGlzcGF0Y2hfbGlzdCA9IGxs aXN0X2RlbF9hbGwoJmNwcmMtPmlzc3VlX2xpc3QpOwo+ID4gKyAgICAgaWYgKCFkaXNwYXRjaF9s aXN0KQo+ID4gKyAgICAgICAgICAgICByZXR1cm47Cj4gPiArICAgICBkaXNwYXRjaF9saXN0ID0g bGxpc3RfcmV2ZXJzZV9vcmRlcihkaXNwYXRjaF9saXN0KTsKPiA+ICsKPiA+ICsgICAgIHJldCA9 IF9fd3JpdGVfY2hlY2twb2ludF9zeW5jKHNiaSk7Cj4gPiArICAgICBhdG9taWNfaW5jKCZjcHJj LT5pc3N1ZWRfY2twdCk7Cj4gPiArCj4gPiArICAgICBsbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZl KHJlcSwgbmV4dCwgZGlzcGF0Y2hfbGlzdCwgbGxub2RlKSB7Cj4gPiArICAgICAgICAgICAgIGRp ZmYgPSAodTY0KWt0aW1lX21zX2RlbHRhKGt0aW1lX2dldCgpLCByZXEtPnF1ZXVlX3RpbWUpOwo+ ID4gKyAgICAgICAgICAgICByZXEtPnJldCA9IHJldDsKPiA+ICsgICAgICAgICAgICAgY29tcGxl dGUoJnJlcS0+d2FpdCk7Cj4gPiArCj4gPiArICAgICAgICAgICAgIHN1bV9kaWZmICs9IGRpZmY7 Cj4gPiArICAgICAgICAgICAgIGNvdW50Kys7Cj4gPiArICAgICB9Cj4gPiArICAgICBhdG9taWNf c3ViKGNvdW50LCAmY3ByYy0+cXVldWVkX2NrcHQpOwo+ID4gKyAgICAgYXRvbWljX2FkZChjb3Vu dCwgJmNwcmMtPnRvdGFsX2NrcHQpOwo+ID4gKwo+ID4gKyAgICAgc3Bpbl9sb2NrKCZjcHJjLT5z dGF0X2xvY2spOwo+ID4gKyAgICAgY3ByYy0+Y3VyX3RpbWUgPSAodW5zaWduZWQgaW50KWRpdjY0 X3U2NChzdW1fZGlmZiwgY291bnQpOwo+ID4gKyAgICAgaWYgKGNwcmMtPnBlYWtfdGltZSA8IGNw cmMtPmN1cl90aW1lKQo+ID4gKyAgICAgICAgICAgICBjcHJjLT5wZWFrX3RpbWUgPSBjcHJjLT5j dXJfdGltZTsKPiA+ICsgICAgIHNwaW5fdW5sb2NrKCZjcHJjLT5zdGF0X2xvY2spOwo+ID4gK30K PiA+ICsKPiA+ICtzdGF0aWMgaW50IGlzc3VlX2NoZWNrcG9pbnRfdGhyZWFkKHZvaWQgKmRhdGEp Cj4gPiArewo+ID4gKyAgICAgc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpID0gZGF0YTsKPiA+ICsg ICAgIHN0cnVjdCBja3B0X3JlcV9jb250cm9sICpjcHJjID0gJnNiaS0+Y3ByY19pbmZvOwo+ID4g KyAgICAgd2FpdF9xdWV1ZV9oZWFkX3QgKnEgPSAmY3ByYy0+Y2twdF93YWl0X3F1ZXVlOwo+ID4g K3JlcGVhdDoKPiA+ICsgICAgIGlmIChrdGhyZWFkX3Nob3VsZF9zdG9wKCkpCj4gPiArICAgICAg ICAgICAgIHJldHVybiAwOwo+ID4gKwo+ID4gKyAgICAgc2Jfc3RhcnRfaW50d3JpdGUoc2JpLT5z Yik7Cj4gPiArCj4gPiArICAgICBpZiAoIWxsaXN0X2VtcHR5KCZjcHJjLT5pc3N1ZV9saXN0KSkK PiA+ICsgICAgICAgICAgICAgX19jaGVja3BvaW50X2FuZF9jb21wbGV0ZV9yZXFzKHNiaSk7Cj4g PiArCj4gPiArICAgICBzYl9lbmRfaW50d3JpdGUoc2JpLT5zYik7Cj4gPiArCj4gPiArICAgICB3 YWl0X2V2ZW50X2ludGVycnVwdGlibGUoKnEsCj4gPiArICAgICAgICAgICAgIGt0aHJlYWRfc2hv dWxkX3N0b3AoKSB8fCAhbGxpc3RfZW1wdHkoJmNwcmMtPmlzc3VlX2xpc3QpKTsKPiA+ICsgICAg IGdvdG8gcmVwZWF0Owo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBmbHVzaF9yZW1haW5l ZF9ja3B0X3JlcXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+ID4gKyAgICAgICAgICAgICBz dHJ1Y3QgY2twdF9yZXEgKndhaXRfcmVxKQo+ID4gK3sKPiA+ICsgICAgIHN0cnVjdCBja3B0X3Jl cV9jb250cm9sICpjcHJjID0gJnNiaS0+Y3ByY19pbmZvOwo+ID4gKwo+ID4gKyAgICAgaWYgKCFs bGlzdF9lbXB0eSgmY3ByYy0+aXNzdWVfbGlzdCkpIHsKPiA+ICsgICAgICAgICAgICAgX19jaGVj a3BvaW50X2FuZF9jb21wbGV0ZV9yZXFzKHNiaSk7Cj4gPiArICAgICB9IGVsc2Ugewo+ID4gKyAg ICAgICAgICAgICAvKiBhbHJlYWR5IGRpc3BhdGNoZWQgYnkgaXNzdWVfY2hlY2twb2ludF90aHJl YWQgKi8KPiA+ICsgICAgICAgICAgICAgaWYgKHdhaXRfcmVxKQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgIHdhaXRfZm9yX2NvbXBsZXRpb24oJndhaXRfcmVxLT53YWl0KTsKPiA+ICsgICAgIH0K PiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgaW5pdF9ja3B0X3JlcShzdHJ1Y3QgY2twdF9y ZXEgKnJlcSkKPiA+ICt7Cj4gPiArICAgICBtZW1zZXQocmVxLCAwLCBzaXplb2Yoc3RydWN0IGNr cHRfcmVxKSk7Cj4gPiArCj4gPiArICAgICBpbml0X2NvbXBsZXRpb24oJnJlcS0+d2FpdCk7Cj4g PiArICAgICByZXEtPnF1ZXVlX3RpbWUgPSBrdGltZV9nZXQoKTsKPiA+ICt9Cj4gPiArCj4gPiAr aW50IGYyZnNfaXNzdWVfY2hlY2twb2ludChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4gPiAr ewo+ID4gKyAgICAgc3RydWN0IGNrcHRfcmVxX2NvbnRyb2wgKmNwcmMgPSAmc2JpLT5jcHJjX2lu Zm87Cj4gPiArICAgICBzdHJ1Y3QgY2twdF9yZXEgcmVxOwo+ID4gKyAgICAgc3RydWN0IGNwX2Nv bnRyb2wgY3BjOwo+ID4gKwo+ID4gKyAgICAgY3BjLnJlYXNvbiA9IF9fZ2V0X2NwX3JlYXNvbihz YmkpOwo+ID4gKyAgICAgaWYgKCF0ZXN0X29wdChzYmksIE1FUkdFX0NIRUNLUE9JTlQpIHx8IGNw Yy5yZWFzb24gIT0gQ1BfU1lOQykgewo+ID4gKyAgICAgICAgICAgICBpbnQgcmV0Owo+ID4gKwo+ ID4gKyAgICAgICAgICAgICBkb3duX3dyaXRlKCZzYmktPmdjX2xvY2spOwo+ID4gKyAgICAgICAg ICAgICByZXQgPSBmMmZzX3dyaXRlX2NoZWNrcG9pbnQoc2JpLCAmY3BjKTsKPiA+ICsgICAgICAg ICAgICAgdXBfd3JpdGUoJnNiaS0+Z2NfbG9jayk7Cj4gPiArCj4gPiArICAgICAgICAgICAgIHJl dHVybiByZXQ7Cj4gPiArICAgICB9Cj4gPiArCj4gPiArICAgICBpZiAoIWNwcmMtPmYyZnNfaXNz dWVfY2twdCkKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIF9fd3JpdGVfY2hlY2twb2ludF9zeW5j KHNiaSk7Cj4gPiArCj4gPiArICAgICBpbml0X2NrcHRfcmVxKCZyZXEpOwo+ID4gKwo+ID4gKyAg ICAgbGxpc3RfYWRkKCZyZXEubGxub2RlLCAmY3ByYy0+aXNzdWVfbGlzdCk7Cj4gPiArICAgICBh dG9taWNfaW5jKCZjcHJjLT5xdWV1ZWRfY2twdCk7Cj4gPiArCj4gPiArICAgICAvKiB1cGRhdGUg aXNzdWVfbGlzdCBiZWZvcmUgd2Ugd2FrZSB1cCBpc3N1ZV9jaGVja3BvaW50IHRocmVhZCAqLwo+ ID4gKyAgICAgc21wX21iKCk7Cj4gPiArCj4gPiArICAgICBpZiAod2FpdHF1ZXVlX2FjdGl2ZSgm Y3ByYy0+Y2twdF93YWl0X3F1ZXVlKSkKPiA+ICsgICAgICAgICAgICAgd2FrZV91cCgmY3ByYy0+ Y2twdF93YWl0X3F1ZXVlKTsKPiA+ICsKPiA+ICsgICAgIGlmIChjcHJjLT5mMmZzX2lzc3VlX2Nr cHQpCj4gPiArICAgICAgICAgICAgIHdhaXRfZm9yX2NvbXBsZXRpb24oJnJlcS53YWl0KTsKPiA+ ICsgICAgIGVsc2UKPiA+ICsgICAgICAgICAgICAgZmx1c2hfcmVtYWluZWRfY2twdF9yZXFzKHNi aSwgJnJlcSk7Cj4gPiArCj4gPiArICAgICByZXR1cm4gcmVxLnJldDsKPiA+ICt9Cj4gPiArCj4g PiAraW50IGYyZnNfc3RhcnRfY2twdF90aHJlYWQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+ ID4gK3sKPiA+ICsgICAgIGRldl90IGRldiA9IHNiaS0+c2ItPnNfYmRldi0+YmRfZGV2Owo+ID4g KyAgICAgc3RydWN0IGNrcHRfcmVxX2NvbnRyb2wgKmNwcmMgPSAmc2JpLT5jcHJjX2luZm87Cj4g PiArCj4gPiArICAgICBpZiAoY3ByYy0+ZjJmc19pc3N1ZV9ja3B0KQo+ID4gKyAgICAgICAgICAg ICByZXR1cm4gMDsKPiA+ICsKPiA+ICsgICAgIGNwcmMtPmYyZnNfaXNzdWVfY2twdCA9IGt0aHJl YWRfcnVuKGlzc3VlX2NoZWNrcG9pbnRfdGhyZWFkLCBzYmksCj4gPiArICAgICAgICAgICAgICAg ICAgICAgImYyZnNfY2twdC0ldToldSIsIE1BSk9SKGRldiksIE1JTk9SKGRldikpOwo+ID4gKyAg ICAgaWYgKElTX0VSUihjcHJjLT5mMmZzX2lzc3VlX2NrcHQpKSB7Cj4gPiArICAgICAgICAgICAg IGNwcmMtPmYyZnNfaXNzdWVfY2twdCA9IE5VTEw7Cj4gPiArICAgICAgICAgICAgIHJldHVybiBQ VFJfRVJSKGNwcmMtPmYyZnNfaXNzdWVfY2twdCk7Cj4KPiBJIGZpeGVkIGxpa2UgdGhpcyB0byBh ZGRyZXNzIGtidWlsZCB3YXJuaW5nLiBQbGVhc2UgY2hlY2sgLWRldi4KPgo+ICAgICAgICAgICAg ICAgICByZXR1cm4gLUVOT01FTTsKPgo+ID4gKyAgICAgfQo+ID4gKwo+ID4gKyAgICAgc2V0X3Rh c2tfaW9wcmlvKGNwcmMtPmYyZnNfaXNzdWVfY2twdCwgREVGQVVMVF9DSEVDS1BPSU5UX0lPUFJJ Tyk7Cj4gPiArCj4gPiArICAgICByZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiArdm9pZCBmMmZz X3N0b3BfY2twdF90aHJlYWQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+ID4gK3sKPiA+ICsg ICAgIHN0cnVjdCBja3B0X3JlcV9jb250cm9sICpjcHJjID0gJnNiaS0+Y3ByY19pbmZvOwo+ID4g Kwo+ID4gKyAgICAgaWYgKGNwcmMtPmYyZnNfaXNzdWVfY2twdCkgewo+ID4gKyAgICAgICAgICAg ICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNrcHRfdGFzayA9IGNwcmMtPmYyZnNfaXNzdWVfY2twdDsK PiA+ICsKPiA+ICsgICAgICAgICAgICAgY3ByYy0+ZjJmc19pc3N1ZV9ja3B0ID0gTlVMTDsKPiA+ ICsgICAgICAgICAgICAga3RocmVhZF9zdG9wKGNrcHRfdGFzayk7Cj4gPiArCj4gPiArICAgICAg ICAgICAgIGZsdXNoX3JlbWFpbmVkX2NrcHRfcmVxcyhzYmksIE5VTEwpOwo+ID4gKyAgICAgfQo+ ID4gK30KPiA+ICsKPiA+ICt2b2lkIGYyZnNfaW5pdF9ja3B0X3JlcV9jb250cm9sKHN0cnVjdCBm MmZzX3NiX2luZm8gKnNiaSkKPiA+ICt7Cj4gPiArICAgICBzdHJ1Y3QgY2twdF9yZXFfY29udHJv bCAqY3ByYyA9ICZzYmktPmNwcmNfaW5mbzsKPiA+ICsKPiA+ICsgICAgIGF0b21pY19zZXQoJmNw cmMtPmlzc3VlZF9ja3B0LCAwKTsKPiA+ICsgICAgIGF0b21pY19zZXQoJmNwcmMtPnRvdGFsX2Nr cHQsIDApOwo+ID4gKyAgICAgYXRvbWljX3NldCgmY3ByYy0+cXVldWVkX2NrcHQsIDApOwo+ID4g KyAgICAgaW5pdF93YWl0cXVldWVfaGVhZCgmY3ByYy0+Y2twdF93YWl0X3F1ZXVlKTsKPiA+ICsg ICAgIGluaXRfbGxpc3RfaGVhZCgmY3ByYy0+aXNzdWVfbGlzdCk7Cj4gPiArICAgICBzcGluX2xv Y2tfaW5pdCgmY3ByYy0+c3RhdF9sb2NrKTsKPiA+ICt9Cj4gPiBkaWZmIC0tZ2l0IGEvZnMvZjJm cy9kZWJ1Zy5jIGIvZnMvZjJmcy9kZWJ1Zy5jCj4gPiBpbmRleCAxOTdjOTE0MTE5ZGEuLjkxODU1 ZDU3MjFjZCAxMDA2NDQKPiA+IC0tLSBhL2ZzL2YyZnMvZGVidWcuYwo+ID4gKysrIGIvZnMvZjJm cy9kZWJ1Zy5jCj4gPiBAQCAtMTIwLDYgKzEyMCwxMyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfZ2Vu ZXJhbF9zdGF0dXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+ID4gICAgICAgICAgICAgICAg ICAgICAgIGF0b21pY19yZWFkKCZTTV9JKHNiaSktPmRjY19pbmZvLT5kaXNjYXJkX2NtZF9jbnQp Owo+ID4gICAgICAgICAgICAgICBzaS0+dW5kaXNjYXJkX2Jsa3MgPSBTTV9JKHNiaSktPmRjY19p bmZvLT51bmRpc2NhcmRfYmxrczsKPiA+ICAgICAgIH0KPiA+ICsgICAgIHNpLT5ucl9pc3N1ZWRf Y2twdCA9IGF0b21pY19yZWFkKCZzYmktPmNwcmNfaW5mby5pc3N1ZWRfY2twdCk7Cj4gPiArICAg ICBzaS0+bnJfdG90YWxfY2twdCA9IGF0b21pY19yZWFkKCZzYmktPmNwcmNfaW5mby50b3RhbF9j a3B0KTsKPiA+ICsgICAgIHNpLT5ucl9xdWV1ZWRfY2twdCA9IGF0b21pY19yZWFkKCZzYmktPmNw cmNfaW5mby5xdWV1ZWRfY2twdCk7Cj4gPiArICAgICBzcGluX2xvY2soJnNiaS0+Y3ByY19pbmZv LnN0YXRfbG9jayk7Cj4gPiArICAgICBzaS0+Y3VyX2NrcHRfdGltZSA9IHNiaS0+Y3ByY19pbmZv LmN1cl90aW1lOwo+ID4gKyAgICAgc2ktPnBlYWtfY2twdF90aW1lID0gc2JpLT5jcHJjX2luZm8u cGVha190aW1lOwo+ID4gKyAgICAgc3Bpbl91bmxvY2soJnNiaS0+Y3ByY19pbmZvLnN0YXRfbG9j ayk7Cj4gPiAgICAgICBzaS0+dG90YWxfY291bnQgPSAoaW50KXNiaS0+dXNlcl9ibG9ja19jb3Vu dCAvIHNiaS0+YmxvY2tzX3Blcl9zZWc7Cj4gPiAgICAgICBzaS0+cnN2ZF9zZWdzID0gcmVzZXJ2 ZWRfc2VnbWVudHMoc2JpKTsKPiA+ICAgICAgIHNpLT5vdmVycF9zZWdzID0gb3ZlcnByb3Zpc2lv bl9zZWdtZW50cyhzYmkpOwo+ID4gQEAgLTQxNyw2ICs0MjQsMTEgQEAgc3RhdGljIGludCBzdGF0 X3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp2KQo+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2ktPm1ldGFfY291bnRbTUVUQV9OQVRdKTsKPiA+ICAgICAgICAgICAgICAg c2VxX3ByaW50ZihzLCAiICAtIHNzYSBibG9ja3MgOiAldVxuIiwKPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNpLT5tZXRhX2NvdW50W01FVEFfU1NBXSk7Cj4gPiArICAgICAgICAg ICAgIHNlcV9wcmludGYocywgIkNQIG1lcmdlIChRdWV1ZWQ6ICU0ZCwgSXNzdWVkOiAlNGQsIFRv dGFsOiAlNGQsICIKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDdXIgdGltZTog JTRkKG1zKSwgUGVhayB0aW1lOiAlNGQobXMpKVxuIiwKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpLT5ucl9xdWV1ZWRfY2twdCwgc2ktPm5yX2lzc3VlZF9ja3B0LAo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2ktPm5yX3RvdGFsX2NrcHQsIHNpLT5jdXJfY2tw dF90aW1lLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2ktPnBlYWtfY2twdF90 aW1lKTsKPiA+ICAgICAgICAgICAgICAgc2VxX3ByaW50ZihzLCAiR0MgY2FsbHM6ICVkIChCRzog JWQpXG4iLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpLT5jYWxsX2NvdW50LCBzaS0+ YmdfZ2MpOwo+ID4gICAgICAgICAgICAgICBzZXFfcHJpbnRmKHMsICIgIC0gZGF0YSBzZWdtZW50 cyA6ICVkICglZClcbiIsCj4gPiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9mMmZzLmggYi9mcy9mMmZz L2YyZnMuaAo+ID4gaW5kZXggYmIxMTc1OTE5MWRjLi5mMmFlMDc1YWE3MjMgMTAwNjQ0Cj4gPiAt LS0gYS9mcy9mMmZzL2YyZnMuaAo+ID4gKysrIGIvZnMvZjJmcy9mMmZzLmgKPiA+IEBAIC05Nyw2 ICs5Nyw3IEBAIGV4dGVybiBjb25zdCBjaGFyICpmMmZzX2ZhdWx0X25hbWVbRkFVTFRfTUFYXTsK PiA+ICAjZGVmaW5lIEYyRlNfTU9VTlRfRElTQUJMRV9DSEVDS1BPSU5UICAgICAgICAweDAyMDAw MDAwCj4gPiAgI2RlZmluZSBGMkZTX01PVU5UX05PUkVDT1ZFUlkgICAgICAgICAgICAgICAgMHgw NDAwMDAwMAo+ID4gICNkZWZpbmUgRjJGU19NT1VOVF9BVEdDICAgICAgICAgICAgICAgICAgICAg IDB4MDgwMDAwMDAKPiA+ICsjZGVmaW5lIEYyRlNfTU9VTlRfTUVSR0VfQ0hFQ0tQT0lOVCAgMHgx MDAwMDAwMAo+ID4KPiA+ICAjZGVmaW5lIEYyRlNfT1BUSU9OKHNiaSkgICAgICgoc2JpKS0+bW91 bnRfb3B0KQo+ID4gICNkZWZpbmUgY2xlYXJfb3B0KHNiaSwgb3B0aW9uKSAgICAgICAoRjJGU19P UFRJT04oc2JpKS5vcHQgJj0gfkYyRlNfTU9VTlRfIyNvcHRpb24pCj4gPiBAQCAtMjY2LDYgKzI2 NywyNSBAQCBzdHJ1Y3QgZnN5bmNfbm9kZV9lbnRyeSB7Cj4gPiAgICAgICB1bnNpZ25lZCBpbnQg c2VxX2lkOyAgICAvKiBzZXF1ZW5jZSBpZCAqLwo+ID4gIH07Cj4gPgo+ID4gK3N0cnVjdCBja3B0 X3JlcSB7Cj4gPiArICAgICBzdHJ1Y3QgY29tcGxldGlvbiB3YWl0OyAgICAgICAgIC8qIGNvbXBs ZXRpb24gZm9yIGNoZWNrcG9pbnQgZG9uZSAqLwo+ID4gKyAgICAgc3RydWN0IGxsaXN0X25vZGUg bGxub2RlOyAgICAgICAvKiBsbGlzdF9ub2RlIHRvIGJlIGxpbmtlZCBpbiB3YWl0IHF1ZXVlICov Cj4gPiArICAgICBpbnQgcmV0OyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJldHVybiBjb2Rl IG9mIGNoZWNrcG9pbnQgKi8KPiA+ICsgICAgIGt0aW1lX3QgcXVldWVfdGltZTsgICAgICAgICAg ICAgLyogcmVxdWVzdCBxdWV1ZWQgdGltZSAqLwo+ID4gK307Cj4gPiArCj4gPiArc3RydWN0IGNr cHRfcmVxX2NvbnRyb2wgewo+ID4gKyAgICAgc3RydWN0IHRhc2tfc3RydWN0ICpmMmZzX2lzc3Vl X2NrcHQ7ICAgIC8qIGNoZWNrcG9pbnQgdGFzayAqLwo+ID4gKyAgICAgd2FpdF9xdWV1ZV9oZWFk X3QgY2twdF93YWl0X3F1ZXVlOyAgICAgIC8qIHdhaXRpbmcgcXVldWUgZm9yIHdha2UtdXAgKi8K PiA+ICsgICAgIGF0b21pY190IGlzc3VlZF9ja3B0OyAgICAgICAgICAgLyogIyBvZiBhY3R1YWxs eSBpc3N1ZWQgY2twdHMgKi8KPiA+ICsgICAgIGF0b21pY190IHRvdGFsX2NrcHQ7ICAgICAgICAg ICAgLyogIyBvZiB0b3RhbCBja3B0cyAqLwo+ID4gKyAgICAgYXRvbWljX3QgcXVldWVkX2NrcHQ7 ICAgICAgICAgICAvKiAjIG9mIHF1ZXVlZCBja3B0cyAqLwo+ID4gKyAgICAgc3RydWN0IGxsaXN0 X2hlYWQgaXNzdWVfbGlzdDsgICAvKiBsaXN0IGZvciBjb21tYW5kIGlzc3VlICovCj4gPiArICAg ICBzcGlubG9ja190IHN0YXRfbG9jazsgICAgICAgICAgIC8qIGxvY2sgZm9yIGJlbG93IGNoZWNr cG9pbnQgdGltZSBzdGF0cyAqLwo+ID4gKyAgICAgdW5zaWduZWQgaW50IGN1cl90aW1lOyAgICAg ICAgICAvKiBjdXIgd2FpdCB0aW1lIGluIG1zZWMgZm9yIGN1cnJlbnRseSBpc3N1ZWQgY2hlY2tw b2ludCAqLwo+ID4gKyAgICAgdW5zaWduZWQgaW50IHBlYWtfdGltZTsgICAgICAgICAvKiBwZWFr IHdhaXQgdGltZSBpbiBtc2VjIHVudGlsIG5vdyAqLwo+ID4gK307Cj4gPiArCj4gPiAgLyogZm9y IHRoZSBiaXRtYXAgaW5kaWNhdGUgYmxvY2tzIHRvIGJlIGRpc2NhcmRlZCAqLwo+ID4gIHN0cnVj dCBkaXNjYXJkX2VudHJ5IHsKPiA+ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsgIC8qIGxp c3QgaGVhZCAqLwo+ID4gQEAgLTE0MDQsNiArMTQyNCw3IEBAIHN0cnVjdCBmMmZzX3NiX2luZm8g ewo+ID4gICAgICAgd2FpdF9xdWV1ZV9oZWFkX3QgY3Bfd2FpdDsKPiA+ICAgICAgIHVuc2lnbmVk IGxvbmcgbGFzdF90aW1lW01BWF9USU1FXTsgICAgICAvKiB0byBzdG9yZSB0aW1lIGluIGppZmZp ZXMgKi8KPiA+ICAgICAgIGxvbmcgaW50ZXJ2YWxfdGltZVtNQVhfVElNRV07ICAgICAgICAgICAv KiB0byBzdG9yZSB0aHJlc2hvbGRzICovCj4gPiArICAgICBzdHJ1Y3QgY2twdF9yZXFfY29udHJv bCBjcHJjX2luZm87ICAgICAgLyogZm9yIGNoZWNrcG9pbnQgcmVxdWVzdCBjb250cm9sICovCj4g Pgo+ID4gICAgICAgc3RydWN0IGlub2RlX21hbmFnZW1lbnQgaW1bTUFYX0lOT19FTlRSWV07ICAg ICAgLyogbWFuYWdlIGlub2RlIGNhY2hlICovCj4gPgo+ID4gQEAgLTM0MTgsNiArMzQzOSwxMCBA QCBpbnQgZjJmc193cml0ZV9jaGVja3BvaW50KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3Ry dWN0IGNwX2NvbnRyb2wgKmNwYyk7Cj4gPiAgdm9pZCBmMmZzX2luaXRfaW5vX2VudHJ5X2luZm8o c3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKTsKPiA+ICBpbnQgX19pbml0IGYyZnNfY3JlYXRlX2No ZWNrcG9pbnRfY2FjaGVzKHZvaWQpOwo+ID4gIHZvaWQgZjJmc19kZXN0cm95X2NoZWNrcG9pbnRf Y2FjaGVzKHZvaWQpOwo+ID4gK2ludCBmMmZzX2lzc3VlX2NoZWNrcG9pbnQoc3RydWN0IGYyZnNf c2JfaW5mbyAqc2JpKTsKPiA+ICtpbnQgZjJmc19zdGFydF9ja3B0X3RocmVhZChzdHJ1Y3QgZjJm c19zYl9pbmZvICpzYmkpOwo+ID4gK3ZvaWQgZjJmc19zdG9wX2NrcHRfdGhyZWFkKHN0cnVjdCBm MmZzX3NiX2luZm8gKnNiaSk7Cj4gPiArdm9pZCBmMmZzX2luaXRfY2twdF9yZXFfY29udHJvbChz dHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpOwo+ID4KPiA+ICAvKgo+ID4gICAqIGRhdGEuYwo+ID4g QEAgLTM1MzAsNiArMzU1NSw4IEBAIHN0cnVjdCBmMmZzX3N0YXRfaW5mbyB7Cj4gPiAgICAgICBp bnQgbnJfZGlzY2FyZGluZywgbnJfZGlzY2FyZGVkOwo+ID4gICAgICAgaW50IG5yX2Rpc2NhcmRf Y21kOwo+ID4gICAgICAgdW5zaWduZWQgaW50IHVuZGlzY2FyZF9ibGtzOwo+ID4gKyAgICAgaW50 IG5yX2lzc3VlZF9ja3B0LCBucl90b3RhbF9ja3B0LCBucl9xdWV1ZWRfY2twdDsKPiA+ICsgICAg IHVuc2lnbmVkIGludCBjdXJfY2twdF90aW1lLCBwZWFrX2NrcHRfdGltZTsKPiA+ICAgICAgIGlu dCBpbmxpbmVfeGF0dHIsIGlubGluZV9pbm9kZSwgaW5saW5lX2RpciwgYXBwZW5kLCB1cGRhdGUs IG9ycGhhbnM7Cj4gPiAgICAgICBpbnQgY29tcHJfaW5vZGU7Cj4gPiAgICAgICB1bnNpZ25lZCBs b25nIGxvbmcgY29tcHJfYmxvY2tzOwo+ID4gZGlmZiAtLWdpdCBhL2ZzL2YyZnMvc3VwZXIuYyBi L2ZzL2YyZnMvc3VwZXIuYwo+ID4gaW5kZXggYjRhMDdmZTYyZDFhLi40YmY1ZTg4OWYyZjggMTAw NjQ0Cj4gPiAtLS0gYS9mcy9mMmZzL3N1cGVyLmMKPiA+ICsrKyBiL2ZzL2YyZnMvc3VwZXIuYwo+ ID4gQEAgLTE0Myw2ICsxNDMsNyBAQCBlbnVtIHsKPiA+ICAgICAgIE9wdF9jaGVja3BvaW50X2Rp c2FibGVfY2FwLAo+ID4gICAgICAgT3B0X2NoZWNrcG9pbnRfZGlzYWJsZV9jYXBfcGVyYywKPiA+ ICAgICAgIE9wdF9jaGVja3BvaW50X2VuYWJsZSwKPiA+ICsgICAgIE9wdF9jaGVja3BvaW50X21l cmdlLAo+ID4gICAgICAgT3B0X2NvbXByZXNzX2FsZ29yaXRobSwKPiA+ICAgICAgIE9wdF9jb21w cmVzc19sb2dfc2l6ZSwKPiA+ICAgICAgIE9wdF9jb21wcmVzc19leHRlbnNpb24sCj4gPiBAQCAt MjEzLDYgKzIxNCw3IEBAIHN0YXRpYyBtYXRjaF90YWJsZV90IGYyZnNfdG9rZW5zID0gewo+ID4g ICAgICAge09wdF9jaGVja3BvaW50X2Rpc2FibGVfY2FwLCAiY2hlY2twb2ludD1kaXNhYmxlOiV1 In0sCj4gPiAgICAgICB7T3B0X2NoZWNrcG9pbnRfZGlzYWJsZV9jYXBfcGVyYywgImNoZWNrcG9p bnQ9ZGlzYWJsZToldSUlIn0sCj4gPiAgICAgICB7T3B0X2NoZWNrcG9pbnRfZW5hYmxlLCAiY2hl Y2twb2ludD1lbmFibGUifSwKPiA+ICsgICAgIHtPcHRfY2hlY2twb2ludF9tZXJnZSwgImNoZWNr cG9pbnQ9bWVyZ2UifSwKPiA+ICAgICAgIHtPcHRfY29tcHJlc3NfYWxnb3JpdGhtLCAiY29tcHJl c3NfYWxnb3JpdGhtPSVzIn0sCj4gPiAgICAgICB7T3B0X2NvbXByZXNzX2xvZ19zaXplLCAiY29t cHJlc3NfbG9nX3NpemU9JXUifSwKPiA+ICAgICAgIHtPcHRfY29tcHJlc3NfZXh0ZW5zaW9uLCAi Y29tcHJlc3NfZXh0ZW5zaW9uPSVzIn0sCj4gPiBAQCAtODcyLDYgKzg3NCw5IEBAIHN0YXRpYyBp bnQgcGFyc2Vfb3B0aW9ucyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBjaGFyICpvcHRpb25zLCBi b29sIGlzX3JlbW91bnQpCj4gPiAgICAgICAgICAgICAgIGNhc2UgT3B0X2NoZWNrcG9pbnRfZW5h YmxlOgo+ID4gICAgICAgICAgICAgICAgICAgICAgIGNsZWFyX29wdChzYmksIERJU0FCTEVfQ0hF Q0tQT0lOVCk7Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gPiArICAgICAgICAg ICAgIGNhc2UgT3B0X2NoZWNrcG9pbnRfbWVyZ2U6Cj4gPiArICAgICAgICAgICAgICAgICAgICAg c2V0X29wdChzYmksIE1FUkdFX0NIRUNLUE9JTlQpOwo+ID4gKyAgICAgICAgICAgICAgICAgICAg IGJyZWFrOwo+ID4gICNpZmRlZiBDT05GSUdfRjJGU19GU19DT01QUkVTU0lPTgo+ID4gICAgICAg ICAgICAgICBjYXNlIE9wdF9jb21wcmVzc19hbGdvcml0aG06Cj4gPiAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCFmMmZzX3NiX2hhc19jb21wcmVzc2lvbihzYmkpKSB7Cj4gPiBAQCAtMTA0MCw2 ICsxMDQ1LDEyIEBAIHN0YXRpYyBpbnQgcGFyc2Vfb3B0aW9ucyhzdHJ1Y3Qgc3VwZXJfYmxvY2sg KnNiLCBjaGFyICpvcHRpb25zLCBib29sIGlzX3JlbW91bnQpCj4gPiAgICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOwo+ID4gICAgICAgfQo+ID4KPiA+ICsgICAgIGlmICh0ZXN0X29wdChzYmks IERJU0FCTEVfQ0hFQ0tQT0lOVCkgJiYKPiA+ICsgICAgICAgICAgICAgICAgICAgICB0ZXN0X29w dChzYmksIE1FUkdFX0NIRUNLUE9JTlQpKSB7Cj4gPiArICAgICAgICAgICAgIGYyZnNfZXJyKHNi aSwgImNoZWNrcG9pbnQ9bWVyZ2UgY2Fubm90IGJlIHVzZWQgd2l0aCBjaGVja3BvaW50PWRpc2Fi bGVcbiIpOwo+ID4gKyAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ICsgICAgIH0KPiA+ ICsKPiA+ICAgICAgIC8qIE5vdCBwYXNzIGRvd24gd3JpdGUgaGludHMgaWYgdGhlIG51bWJlciBv ZiBhY3RpdmUgbG9ncyBpcyBsZXNzZXIKPiA+ICAgICAgICAqIHRoYW4gTlJfQ1VSU0VHX1BFUlNJ U1RfVFlQRS4KPiA+ICAgICAgICAqLwo+ID4gQEAgLTEyNDUsNiArMTI1NiwxMiBAQCBzdGF0aWMg dm9pZCBmMmZzX3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQo+ID4gICAgICAgLyog cHJldmVudCByZW1haW5pbmcgc2hyaW5rZXIgam9icyAqLwo+ID4gICAgICAgbXV0ZXhfbG9jaygm c2JpLT51bW91bnRfbXV0ZXgpOwo+ID4KPiA+ICsgICAgIC8qCj4gPiArICAgICAgKiBmbHVzaCBh bGwgaXNzdWVkIGNoZWNrcG9pbnRzIGFuZCBzdG9wIGNoZWNrcG9pbnQgaXNzdWUgdGhyZWFkLgo+ ID4gKyAgICAgICogYWZ0ZXIgdGhlbiwgYWxsIGNoZWNrcG9pbnRzIHNob3VsZCBiZSBkb25lIGJ5 IGVhY2ggcHJvY2VzcyBjb250ZXh0Lgo+ID4gKyAgICAgICovCj4gPiArICAgICBmMmZzX3N0b3Bf Y2twdF90aHJlYWQoc2JpKTsKPiA+ICsKPiA+ICAgICAgIC8qCj4gPiAgICAgICAgKiBXZSBkb24n dCBuZWVkIHRvIGRvIGNoZWNrcG9pbnQgd2hlbiBzdXBlcmJsb2NrIGlzIGNsZWFuLgo+ID4gICAg ICAgICogQnV0LCB0aGUgcHJldmlvdXMgY2hlY2twb2ludCB3YXMgbm90IGRvbmUgYnkgdW1vdW50 LCBpdCBuZWVkcyB0byBkbwo+ID4gQEAgLTEzNDMsMTUgKzEzNjAsOSBAQCBpbnQgZjJmc19zeW5j X2ZzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCBzeW5jKQo+ID4gICAgICAgaWYgKHVubGlr ZWx5KGlzX3NiaV9mbGFnX3NldChzYmksIFNCSV9QT1JfRE9JTkcpKSkKPiA+ICAgICAgICAgICAg ICAgcmV0dXJuIC1FQUdBSU47Cj4gPgo+ID4gLSAgICAgaWYgKHN5bmMpIHsKPiA+IC0gICAgICAg ICAgICAgc3RydWN0IGNwX2NvbnRyb2wgY3BjOwo+ID4gLQo+ID4gLSAgICAgICAgICAgICBjcGMu cmVhc29uID0gX19nZXRfY3BfcmVhc29uKHNiaSk7Cj4gPiArICAgICBpZiAoc3luYykKPiA+ICsg ICAgICAgICAgICAgZXJyID0gZjJmc19pc3N1ZV9jaGVja3BvaW50KHNiaSk7Cj4gPgo+ID4gLSAg ICAgICAgICAgICBkb3duX3dyaXRlKCZzYmktPmdjX2xvY2spOwo+ID4gLSAgICAgICAgICAgICBl cnIgPSBmMmZzX3dyaXRlX2NoZWNrcG9pbnQoc2JpLCAmY3BjKTsKPiA+IC0gICAgICAgICAgICAg dXBfd3JpdGUoJnNiaS0+Z2NfbG9jayk7Cj4gPiAtICAgICB9Cj4gPiAgICAgICBmMmZzX3RyYWNl X2lvcyhOVUxMLCAxKTsKPiA+Cj4gPiAgICAgICByZXR1cm4gZXJyOwo+ID4gQEAgLTE2NzQsNiAr MTY4NSw4IEBAIHN0YXRpYyBpbnQgZjJmc19zaG93X29wdGlvbnMoc3RydWN0IHNlcV9maWxlICpz ZXEsIHN0cnVjdCBkZW50cnkgKnJvb3QpCj4gPiAgICAgICBpZiAodGVzdF9vcHQoc2JpLCBESVNB QkxFX0NIRUNLUE9JTlQpKQo+ID4gICAgICAgICAgICAgICBzZXFfcHJpbnRmKHNlcSwgIixjaGVj a3BvaW50PWRpc2FibGU6JXUiLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRjJG U19PUFRJT04oc2JpKS51bnVzYWJsZV9jYXApOwo+ID4gKyAgICAgaWYgKHRlc3Rfb3B0KHNiaSwg TUVSR0VfQ0hFQ0tQT0lOVCkpCj4gPiArICAgICAgICAgICAgIHNlcV9wdXRzKHNlcSwgIixjaGVj a3BvaW50PW1lcmdlIik7Cj4gPiAgICAgICBpZiAoRjJGU19PUFRJT04oc2JpKS5mc3luY19tb2Rl ID09IEZTWU5DX01PREVfUE9TSVgpCj4gPiAgICAgICAgICAgICAgIHNlcV9wcmludGYoc2VxLCAi LGZzeW5jX21vZGU9JXMiLCAicG9zaXgiKTsKPiA+ICAgICAgIGVsc2UgaWYgKEYyRlNfT1BUSU9O KHNiaSkuZnN5bmNfbW9kZSA9PSBGU1lOQ19NT0RFX1NUUklDVCkKPiA+IEBAIC0xOTU0LDYgKzE5 NjcsMTggQEAgc3RhdGljIGludCBmMmZzX3JlbW91bnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwg aW50ICpmbGFncywgY2hhciAqZGF0YSkKPiA+ICAgICAgICAgICAgICAgfQo+ID4gICAgICAgfQo+ ID4KPiA+ICsgICAgIGlmICghdGVzdF9vcHQoc2JpLCBNRVJHRV9DSEVDS1BPSU5UKSkgewo+ID4g KyAgICAgICAgICAgICBmMmZzX3N0b3BfY2twdF90aHJlYWQoc2JpKTsKPiA+ICsgICAgIH0gZWxz ZSB7Cj4gPiArICAgICAgICAgICAgIGVyciA9IGYyZnNfc3RhcnRfY2twdF90aHJlYWQoc2JpKTsK PiA+ICsgICAgICAgICAgICAgaWYgKGVycikgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgIGYy ZnNfZXJyKHNiaSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBzdGFy dCBGMkZTIGlzc3VlX2NoZWNrcG9pbnRfdGhyZWFkICglZCkiLAo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICBlcnIpOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgIGdvdG8gcmVzdG9yZV9n YzsKPiA+ICsgICAgICAgICAgICAgfQo+ID4gKyAgICAgfQo+ID4gKwo+ID4gICAgICAgLyoKPiA+ ICAgICAgICAqIFdlIHN0b3AgaXNzdWUgZmx1c2ggdGhyZWFkIGlmIEZTIGlzIG1vdW50ZWQgYXMg Uk8KPiA+ICAgICAgICAqIG9yIGlmIGZsdXNoX21lcmdlIGlzIG5vdCBwYXNzZWQgaW4gbW91bnQg b3B0aW9uLgo+ID4gQEAgLTM3MDEsNiArMzcyNiwxOCBAQCBzdGF0aWMgaW50IGYyZnNfZmlsbF9z dXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQo+ID4K PiA+ICAgICAgIGYyZnNfaW5pdF9mc3luY19ub2RlX2luZm8oc2JpKTsKPiA+Cj4gPiArICAgICAv KiBzZXR1cCBjaGVja3BvaW50IHJlcXVlc3QgY29udHJvbCBhbmQgc3RhcnQgY2hlY2twb2ludCBp c3N1ZSB0aHJlYWQgKi8KPiA+ICsgICAgIGYyZnNfaW5pdF9ja3B0X3JlcV9jb250cm9sKHNiaSk7 Cj4gPiArICAgICBpZiAodGVzdF9vcHQoc2JpLCBNRVJHRV9DSEVDS1BPSU5UKSkgewo+ID4gKyAg ICAgICAgICAgICBlcnIgPSBmMmZzX3N0YXJ0X2NrcHRfdGhyZWFkKHNiaSk7Cj4gPiArICAgICAg ICAgICAgIGlmIChlcnIpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICBmMmZzX2VycihzYmks Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gc3RhcnQgRjJGUyBpc3N1 ZV9jaGVja3BvaW50X3RocmVhZCAoJWQpIiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ZXJyKTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICBnb3RvIHN0b3BfY2twdF90aHJlYWQ7Cj4g PiArICAgICAgICAgICAgIH0KPiA+ICsgICAgIH0KPiA+ICsKPiA+ICAgICAgIC8qIHNldHVwIGYy ZnMgaW50ZXJuYWwgbW9kdWxlcyAqLwo+ID4gICAgICAgZXJyID0gZjJmc19idWlsZF9zZWdtZW50 X21hbmFnZXIoc2JpKTsKPiA+ICAgICAgIGlmIChlcnIpIHsKPiA+IEBAIC0zOTEwLDYgKzM5NDcs OCBAQCBzdGF0aWMgaW50IGYyZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2 b2lkICpkYXRhLCBpbnQgc2lsZW50KQo+ID4gIGZyZWVfc206Cj4gPiAgICAgICBmMmZzX2Rlc3Ry b3lfc2VnbWVudF9tYW5hZ2VyKHNiaSk7Cj4gPiAgICAgICBmMmZzX2Rlc3Ryb3lfcG9zdF9yZWFk X3dxKHNiaSk7Cj4gPiArc3RvcF9ja3B0X3RocmVhZDoKPiA+ICsgICAgIGYyZnNfc3RvcF9ja3B0 X3RocmVhZChzYmkpOwo+ID4gIGZyZWVfZGV2aWNlczoKPiA+ICAgICAgIGRlc3Ryb3lfZGV2aWNl X2xpc3Qoc2JpKTsKPiA+ICAgICAgIGt2ZnJlZShzYmktPmNrcHQpOwo+ID4gLS0KPiA+IDIuMzAu MC4yOTYuZzJiZmIxYzQ2ZDgtZ29vZwo+ID4KPiA+Cj4gPgo+ID4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IExpbnV4LWYyZnMtZGV2ZWwgbWFpbGlu ZyBsaXN0Cj4gPiBMaW51eC1mMmZzLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldAo+ID4gaHR0 cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vbGludXgtZjJmcy1kZXZl bAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4 LWYyZnMtZGV2ZWwgbWFpbGluZyBsaXN0CkxpbnV4LWYyZnMtZGV2ZWxAbGlzdHMuc291cmNlZm9y Z2UubmV0Cmh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2xpbnV4 LWYyZnMtZGV2ZWwK