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=-2.0 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no 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 729F1C2BA17 for ; Mon, 6 Apr 2020 17:57:39 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 4631C206F8 for ; Mon, 6 Apr 2020 17:57:39 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="OLrbqz0p"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="AD/JRFWQ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4631C206F8 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QlLpVAvCYH7fEheaRvrAk2DW5G+3WP8s7WW/9sAYu5Q=; b=OLrbqz0pjukkcL mAeDW1Ws6VXx1F+Ww1dXDveV4dnL5hiezumd8QYhQt1OuqB9KjpL5r//NT/o3aVOoKVZ8ITNNpCna kezdRpyzgRxu5WdMLpjoc+hz7fMjdluddQ1RRnvs1F0JpyNf7lW83bGeXWhkA7ODNxivXcow6m6DS PvA2dAEV2CQ4enWXbmZD11ykG0ceQhytgtedR3ZbGCB/+A+N/eclh92WSR0ZuytnkyuqvnXUawxFQ HP30N1WBjJ6JScSk/K+jbQR4S+7EJy3ruFMQ0mk6mm2yoVAOQ8TbeJwXPk6bkWhhC0J5PbXxnZTyn PqFN4nm2PiUIYRHnqijA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jLW00-000318-JS; Mon, 06 Apr 2020 17:57:28 +0000 Received: from mail-pj1-x1043.google.com ([2607:f8b0:4864:20::1043]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jLVzs-0002tf-7w; Mon, 06 Apr 2020 17:57:22 +0000 Received: by mail-pj1-x1043.google.com with SMTP id l36so151019pjb.3; Mon, 06 Apr 2020 10:57:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:autocrypt:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=bxQube0OQQHHs3SJlM/RaFX62Q68hQJGKbCMyA10mJE=; b=AD/JRFWQTy5ltK2XHADztW95BXTNo76PlkKB6sqLnMKQJ9av2FxCUayJnMEEqb2Ggv 3xjtWx3s8XmCd1+aoRG8WUgxHzhvI4aUTHceXypq2LHY1mgjPUZCGQNNuBe5zt7cbuWU WKlAk+5B4xyEbrL/d2sZKkc4du7J4v7Wk2xZj8TSZMTTJdBuL0YCz79KemJxtQE+xDQ9 crSaAOWUHF2JoVI8OKGFIMYkZeS8NgBTPj7u4539HDAMGelKRFi8ce38yRL/kM/YvOkV JjQGtTB8fLqgWG66Crm8kEEa2PY4jl8Ck2HR6d2vjmZ4sl7ihuy4fRcJXXuVgLDDY25+ Mzlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=bxQube0OQQHHs3SJlM/RaFX62Q68hQJGKbCMyA10mJE=; b=nrjXMZxFp5DO9DmbxrDdzFLavn0lvfNtcbbS4mSi8GtY9jAYOlin47ftWNqo4+OPXy HrFAlHZSOfbtAipfhrWR+3OHOlD+8jcY7W4z8hCDvX+hZrnf9Vy0Txh7X7LRrYJ7jIrz rd4a+ju9NoW6cBc15sjblTZKFkXKT3Tun6h5ikeJJUuTtAybUhSZNUluxoE2m4RI0z2V 8s5V34YxM88jBGDeDwyBUmem65tVWbehP1CoPeTSnz0HMviZg1JzJz9rAjORzpY8OFYD EMAIhxtnIUGZdzTO6uEkPuD8FMROdzP++yTD4qEeB5/v4arx4CMzWiKrMOIM3sItbwbB iC/A== X-Gm-Message-State: AGi0PuZ2XherlWqciBSDMA/eYdneQq+sWhnzC+Zo5dPhIcMGs180QJH9 CyYugAMYr+X1N7XM0RqTkpjG3w+3 X-Google-Smtp-Source: APiQypLEQvFFZacSZTTIgYGwPdSNRYgAVZw63hTKK9aFpjH5qQ+7la9WET25yaJ0YH3+VHYfpKCgGg== X-Received: by 2002:a17:90a:fe0f:: with SMTP id ck15mr406960pjb.192.1586195838430; Mon, 06 Apr 2020 10:57:18 -0700 (PDT) Received: from [192.168.1.3] (ip68-111-84-250.oc.oc.cox.net. [68.111.84.250]) by smtp.gmail.com with ESMTPSA id z30sm12075584pfq.84.2020.04.06.10.57.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 06 Apr 2020 10:57:17 -0700 (PDT) Subject: Re: [PATCH net-next] net: dsa: add GRO support via gro_cells To: Alexander Lobakin , Andrew Lunn References: <20200406105910.32339-1-79537434260@yandex.com> <20200406144758.GC301483@lunn.ch> <20241586185765@iva8-5e86d95f65ab.qloud-c.yandex.net> <45511586194390@myt1-2a4fe5d26a82.qloud-c.yandex.net> From: Florian Fainelli Autocrypt: addr=f.fainelli@gmail.com; keydata= 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 M5kY0ACeNhCZJvZ5g4C2Lc9fcTHu8jxmEkI= Message-ID: <97a880e4-de7d-1f94-d35b-2635fbd8237e@gmail.com> Date: Mon, 6 Apr 2020 10:57:15 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: <45511586194390@myt1-2a4fe5d26a82.qloud-c.yandex.net> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200406_105720_288464_765E0AAC X-CRM114-Status: GOOD ( 18.13 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Woojung Huh , "linux-kernel@vger.kernel.org" , Hauke Mehrtens , Linus Walleij , Sean Wang , Russell King , Vivien Didelot , Microchip Linux Driver Support , Vladimir Oltean , Claudiu Manoil , "linux-mediatek@lists.infradead.org" , Philipp Zabel , "netdev@vger.kernel.org" , Matthias Brugger , Jakub Kicinski , Oleksij Rempel , "David S. Miller" , "linux-arm-kernel@lists.infradead.org" , Mao Wenan Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org CgpPbiA0LzYvMjAyMCAxMDozNCBBTSwgQWxleGFuZGVyIExvYmFraW4gd3JvdGU6Cj4gMDYuMDQu MjAyMCwgMTg6MjEsICJBbGV4YW5kZXIgTG9iYWtpbiIgPGJsb29keXJlYXBlckB5YW5kZXgucnU+ Ogo+PiAwNi4wNC4yMDIwLCAxNzo0OCwgIkFuZHJldyBMdW5uIiA8YW5kcmV3QGx1bm4uY2g+Ogo+ Pj4gwqBPbiBNb24sIEFwciAwNiwgMjAyMCBhdCAwMTo1OToxMFBNICswMzAwLCBBbGV4YW5kZXIg TG9iYWtpbiB3cm90ZToKPj4+PiDCoMKgZ3JvX2NlbGxzIGxpYiBpcyB1c2VkIGJ5IGRpZmZlcmVu dCBlbmNhcHN1bGF0aW5nIG5ldGRldmljZXMsIHN1Y2ggYXMKPj4+PiDCoMKgZ2VuZXZlLCBtYWNz ZWMsIHZ4bGFuIGV0Yy4gdG8gc3BlZWQgdXAgZGVjYXBzdWxhdGVkIHRyYWZmaWMgcHJvY2Vzc2lu Zy4KPj4+PiDCoMKgQ1BVIHRhZyBpcyBhIHNvcnQgb2YgImVuY2Fwc3VsYXRpb24iLCBhbmQgd2Ug Y2FuIHVzZSB0aGUgc2FtZSBtZWNocyB0bwo+Pj4+IMKgwqBncmVhdGx5IGltcHJvdmUgb3ZlcmFs bCBEU0EgcGVyZm9ybWFuY2UuCj4+Pj4gwqDCoHNrYnMgYXJlIHBhc3NlZCB0byB0aGUgR1JPIGxh eWVyIGFmdGVyIHJlbW92aW5nIENQVSB0YWdzLCBzbyB3ZSBkb24ndAo+Pj4+IMKgwqBuZWVkIGFu eSBuZXcgcGFja2V0IG9mZmxvYWQgdHlwZXMgYXMgaXQgd2FzIGZpcnN0bHkgcHJvcG9zZWQgYnkg bWUgaW4KPj4+PiDCoMKgdGhlIGZpcnN0IEdSTy1vdmVyLURTQSB2YXJpYW50IFsxXS4KPj4+Pgo+ Pj4+IMKgwqBUaGUgc2l6ZSBvZiBzdHJ1Y3QgZ3JvX2NlbGxzIGlzIHNpemVvZih2b2lkICopLCBz byBob3Qgc3RydWN0Cj4+Pj4gwqDCoGRzYV9zbGF2ZV9wcml2IGJlY29tZXMgb25seSA0LzggYnl0 ZXMgYmlnZ2VyLCBhbmQgYWxsIGNyaXRpY2FsIGZpZWxkcwo+Pj4+IMKgwqByZW1haW4gaW4gb25l IDMyLWJ5dGUgY2FjaGVsaW5lLgo+Pj4+IMKgwqBUaGUgb3RoZXIgcG9zaXRpdmUgc2lkZSBlZmZl Y3QgaXMgdGhhdCBkcml2ZXJzIGZvciBuZXR3b3JrIGRldmljZXMKPj4+PiDCoMKgdGhhdCBjYW4g YmUgc2hpcHBlZCBhcyBDUFUgcG9ydHMgb2YgRFNBLWRyaXZlbiBzd2l0Y2hlcyBjYW4gbm93IHVz ZQo+Pj4+IMKgwqBuYXBpX2dyb19mcmFncygpIHRvIHBhc3Mgc2ticyB0byBrZXJuZWwuIFBhY2tl dHMgYnVpbHQgdGhhdCB3YXkgYXJlCj4+Pj4gwqDCoGNvbXBsZXRlbHkgbm9uLWxpbmVhciBhbmQg YXJlIGxpa2VseSBiZWluZyBkcm9wcGVkIHdpdGhvdXQgR1JPLgo+Pj4+Cj4+Pj4gwqDCoFRoaXMg d2FzIHRlc3RlZCBvbiB0by1iZS1tYWlubGluZWQtc29vbiBFdGhlcm5ldCBkcml2ZXIgdGhhdCB1 c2VzCj4+Pj4gwqDCoG5hcGlfZ3JvX2ZyYWdzKCksIGFuZCB0aGUgb3ZlcmFsbCBwZXJmb3JtYW5j ZSB3YXMgb24gcGFyIHdpdGggdGhlCj4+Pj4gwqDCoHZhcmlhbnQgZnJvbSBbMV0sIHNvbWV0aW1l cyBldmVuIGJldHRlciBkdWUgdG8gbWluaW1hbCBvdmVyaGVhZC4KPj4+PiDCoMKgbmV0LmNvcmUu Z3JvX25vcm1hbF9iYXRjaCB0dW5pbmcgbWF5IGhlbHAgdG8gcHVzaCBpdCB0byB0aGUgbGltaXQK Pj4+PiDCoMKgb24gcGFydGljdWxhciBzZXR1cHMgYW5kIHBsYXRmb3Jtcy4KPj4+Pgo+Pj4+IMKg wqBbMV0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbmV0ZGV2LzIwMTkxMjMwMTQzMDI4LjI3MzEz LTEtYWxvYmFraW5AZGxpbmsucnUvCj4+Pgo+Pj4gwqBIaSBBbGV4YW5kZXIKPj4KPj4gSGkgQW5k cmV3IQo+Pgo+Pj4gwqBuZXQtbmV4dCBpcyBjbG9zZWQgYXQgdGhlIG1vbWVudC4gU28geW91IHNo b3VsZCBvZiBwb3N0ZWQgdGhpcyB3aXRoIGFuCj4+PiDCoFJGQyBwcmVmaXguCj4+Cj4+IEkgc2F3 IHRoYXQgaXQncyBjbG9zZWQsIGJ1dCBkaWRuJ3Qga25ldyBhYm91dCAiUkZDIiB0YWdzIGZvciB0 aGF0IHBlcmlvZCwKPj4gc29ycnkuCj4+Cj4+PiDCoFRoZSBpbXBsZW1lbnRhdGlvbiBsb29rcyBu aWNlIGFuZCBzaW1wbGUuIEJ1dCBpdCB3b3VsZCBiZSBuaWNlIHRvIGhhdmUKPj4+IMKgc29tZSBw ZXJmb3JtYW5jZSBmaWd1cmVzLgo+Pgo+PiBJJ2xsIGRvLCBzdXJlLiBJIHRoaW5rIEknbGwgY29s bGVjdCB0aGUgc3RhdHMgd2l0aCB2YXJpb3VzIG1haW4gcmVjZWl2aW5nCj4+IGZ1bmN0aW9ucyBp biBFdGhlcm5ldCBkcml2ZXIgKG5hcGlfZ3JvX2ZyYWdzKCksIG5hcGlfZ3JvX3JlY2VpdmUoKSwK Pj4gbmV0aWZfcmVjZWl2ZV9za2IoKSwgbmV0aWZfcmVjZWl2ZV9za2JfbGlzdCgpKSwgYW5kIHdp dGggYW5kIHdpdGhvdXQgdGhpcwo+PiBwYXRjaCB0byBtYWtlIHRoZW0gYXMgY29tcGxldGUgYXMg cG9zc2libGUuCj4gCj4gT0ssIHNvIGhlcmUgd2UgZ28uCj4gCj4gTXkgZGV2aWNlIGlzIDEuMiBH SHogNC1jb3JlIE1JUFMzMiBSMi4gRXRoZXJuZXQgY29udHJvbGxlciByZXByZXNlbnRpbmcKPiB0 aGUgQ1BVIHBvcnQgaXMgY2FwYWJsZSBvZiBTL0csIGZyYWdsaXN0cyBTL0csIFRTTzQvNiBhbmQg R1NPIFVEUCBMNC4KPiBUZXN0cyBhcmUgcGVyZm9ybWVkIHRocm91Z2ggc2ltcGxlIElQb0UgVkxB TiBOQVQgZm9yd2FyZGluZyBzZXR1cAo+IChwb3J0MCA8LT4gcG9ydDEuMjE4KSB3aXRoIGlwZXJm MyBpbiBUQ1AgbW9kZS4KPiBuZXQuY29yZS5ncm9fbm9ybWFsX2JhdGNoIGlzIGFsd2F5cyBzZXQg dG8gMTYgYXMgdGhhdCB2YWx1ZSBzZWVtcyB0byBiZQo+IHRoZSBtb3N0IGVmZmVjdGl2ZSBmb3Ig dGhhdCBwYXJ0aWN1bGFyIGhhcmR3YXJlIGFuZCBkcml2ZXJzLgo+IAo+IFBhY2tldCBjb3VudGVy cyBvbiBldGgwIGFyZSB0aGUgcmVhbCBudW1iZXJzIG9mIG9uZ29pbmcgZnJhbWVzLiBDb3VudGVy cwo+IG9uIHBvcnRYIGFyZSBwdXJlLXNvZnR3YXJlIGFuZCBhcmUgdXBkYXRlZCBpbnNpZGUgbmV0 d29ya2luZyBzdGFjay4KPiAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAKPiBuZXRpZl9yZWNlaXZlX3NrYigp IGluIEV0aCBkcml2ZXIsIG5vIHBhdGNoOgo+IAo+IFsgSURdIEludGVydmFsICAgICAgICAgICBU cmFuc2ZlciAgICAgQml0cmF0ZSAgICAgICAgIFJldHIKPiBbICA1XSAgIDAuMDAtMTIwLjAxIHNl YyAgOS4wMCBHQnl0ZXMgICA2NDQgTWJpdHMvc2VjICA0MTMgIHNlbmRlcgo+IFsgIDVdICAgMC4w MC0xMjAuMDAgc2VjICA4Ljk5IEdCeXRlcyAgIDY0NCBNYml0cy9zZWMgICAgICAgcmVjZWl2ZXIK PiAKPiBldGgwCj4gUlggcGFja2V0czo3MDk3NzMxIGVycm9yczowIGRyb3BwZWQ6MCBvdmVycnVu czowIGZyYW1lOjAKPiBUWCBwYWNrZXRzOjcwOTc3MDIgZXJyb3JzOjAgZHJvcHBlZDowIG92ZXJy dW5zOjAgY2FycmllcjowCj4gCj4gcG9ydDAKPiBSWCBwYWNrZXRzOjQyNjA1MCBlcnJvcnM6MCBk cm9wcGVkOjAgb3ZlcnJ1bnM6MCBmcmFtZTowCj4gVFggcGFja2V0czo2NjcxODI5IGVycm9yczow IGRyb3BwZWQ6MCBvdmVycnVuczowIGNhcnJpZXI6MAo+IAo+IHBvcnQxCj4gUlggcGFja2V0czo2 NjcxNjgxIGVycm9yczowIGRyb3BwZWQ6MCBvdmVycnVuczowIGNhcnJpZXI6MAo+IFRYIHBhY2tl dHM6NDI1ODYyIGVycm9yczowIGRyb3BwZWQ6MCBvdmVycnVuczowIGNhcnJpZXI6MAo+IAo+IHBv cnQxLjIxOAo+IFJYIHBhY2tldHM6NjY3MTY3NyBlcnJvcnM6MCBkcm9wcGVkOjAgb3ZlcnJ1bnM6 MCBmcmFtZTowCj4gVFggcGFja2V0czo0MjU4NTEgZXJyb3JzOjAgZHJvcHBlZDowIG92ZXJydW5z OjAgY2FycmllcjowCj4gCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gCj4gbmV0aWZfcmVjZWl2ZV9za2JfbGlz dCgpIGluIEV0aCBkcml2ZXIsIG5vIHBhdGNoOgo+IAo+IFsgSURdIEludGVydmFsICAgICAgICAg ICBUcmFuc2ZlciAgICAgQml0cmF0ZSAgICAgICAgIFJldHIKPiBbICA1XSAgIDAuMDAtMTIwLjAx IHNlYyAgOS40OCBHQnl0ZXMgICA2NzkgTWJpdHMvc2VjICAxMjkgIHNlbmRlcgo+IFsgIDVdICAg MC4wMC0xMjAuMDAgc2VjICA5LjQ4IEdCeXRlcyAgIDY3OSBNYml0cy9zZWMgICAgICAgcmVjZWl2 ZXIKPiAKPiBldGgwCj4gUlggcGFja2V0czo3NDQ4MDk4IGVycm9yczowIGRyb3BwZWQ6MCBvdmVy cnVuczowIGZyYW1lOjAKPiBUWCBwYWNrZXRzOjc0NDgwNzMgZXJyb3JzOjAgZHJvcHBlZDowIG92 ZXJydW5zOjAgY2FycmllcjowCj4gCj4gcG9ydDAKPiBSWCBwYWNrZXRzOjQxNjExNSBlcnJvcnM6 MCBkcm9wcGVkOjAgb3ZlcnJ1bnM6MCBmcmFtZTowCj4gVFggcGFja2V0czo3MDMyMTIxIGVycm9y czowIGRyb3BwZWQ6MCBvdmVycnVuczowIGNhcnJpZXI6MAo+IAo+IHBvcnQxCj4gUlggcGFja2V0 czo3MDMxOTgzIGVycm9yczowIGRyb3BwZWQ6MCBvdmVycnVuczowIGZyYW1lOjAKPiBUWCBwYWNr ZXRzOjQxNTk0MSBlcnJvcnM6MCBkcm9wcGVkOjAgb3ZlcnJ1bnM6MCBjYXJyaWVyOjAKPiAKPiBw b3J0MS4yMTgKPiBSWCBwYWNrZXRzOjcwMzE5NzggZXJyb3JzOjAgZHJvcHBlZDowIG92ZXJydW5z OjAgZnJhbWU6MAo+IFRYIHBhY2tldHM6NDE1OTMwIGVycm9yczowIGRyb3BwZWQ6MCBvdmVycnVu czowIGNhcnJpZXI6MAo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IAo+IG5hcGlfZ3JvX3JlY2VpdmUoKSBp biBFdGggZHJpdmVyLCBubyBwYXRjaDoKPiAKPiBbIElEXSBJbnRlcnZhbCAgICAgICAgICAgVHJh bnNmZXIgICAgIEJpdHJhdGUgICAgICAgICBSZXRyCj4gWyAgNV0gICAwLjAwLTEyMC4wMSBzZWMg IDEwLjAgR0J5dGVzICAgNzE4IE1iaXRzL3NlYyAgMTA3ICBzZW5kZXIKPiBbICA1XSAgIDAuMDAt MTIwLjAwIHNlYyAgMTAuMCBHQnl0ZXMgICA3MTggTWJpdHMvc2VjICAgICAgIHJlY2VpdmVyCj4g Cj4gZXRoMAo+IFJYIHBhY2tldHM6Nzg2ODI4MSBlcnJvcnM6MCBkcm9wcGVkOjAgb3ZlcnJ1bnM6 MCBmcmFtZTowCj4gVFggcGFja2V0czo3ODY4MjY3IGVycm9yczowIGRyb3BwZWQ6MCBvdmVycnVu czowIGNhcnJpZXI6MAo+IAo+IHBvcnQwCj4gUlggcGFja2V0czo0MjkwODIgZXJyb3JzOjAgZHJv cHBlZDowIG92ZXJydW5zOjAgZnJhbWU6MAo+IFRYIHBhY2tldHM6NzQzOTM0MyBlcnJvcnM6MCBk cm9wcGVkOjAgb3ZlcnJ1bnM6MCBjYXJyaWVyOjAKPiAKPiBwb3J0MQo+IFJYIHBhY2tldHM6NzQz OTE5OSBlcnJvcnM6MCBkcm9wcGVkOjAgb3ZlcnJ1bnM6MCBmcmFtZTowCj4gVFggcGFja2V0czo0 Mjg5MTMgZXJyb3JzOjAgZHJvcHBlZDowIG92ZXJydW5zOjAgY2FycmllcjowCj4gCj4gcG9ydDEu MjE4Cj4gUlggcGFja2V0czo3NDM5MTk1IGVycm9yczowIGRyb3BwZWQ6MCBvdmVycnVuczowIGZy YW1lOjAKPiBUWCBwYWNrZXRzOjQyODkwMiBlcnJvcnM6MCBkcm9wcGVkOjAgb3ZlcnJ1bnM6MCBj YXJyaWVyOjAKPiAKPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiAKPiBuZXRpZl9yZWNlaXZlX3NrYigpIGluIEV0 aCBkcml2ZXIgKyBwYXRjaDoKPiAKPiBbIElEXSBJbnRlcnZhbCAgICAgICAgICAgVHJhbnNmZXIg ICAgIEJpdHJhdGUgICAgICAgICBSZXRyCj4gWyAgNV0gICAwLjAwLTEyMC4wMSBzZWMgIDEyLjIg R0J5dGVzICAgODcwIE1iaXRzL3NlYyAgMjI2NyBzZW5kZXIKPiBbICA1XSAgIDAuMDAtMTIwLjAw IHNlYyAgMTIuMiBHQnl0ZXMgICA4NzAgTWJpdHMvc2VjICAgICAgIHJlY2VpdmVyCj4gCj4gZXRo MAo+IFJYIHBhY2tldHM6OTQ3NDc5MiBlcnJvcnM6MCBkcm9wcGVkOjAgb3ZlcnJ1bnM6MCBmcmFt ZTowCj4gVFggcGFja2V0czo5NDc0Nzc3IGVycm9yczowIGRyb3BwZWQ6MCBvdmVycnVuczowIGNh cnJpZXI6MAo+IAo+IHBvcnQwCj4gUlggcGFja2V0czo0NTUyMDAgZXJyb3JzOjAgZHJvcHBlZDow IG92ZXJydW5zOjAgZnJhbWU6MAo+IFRYIHBhY2tldHM6MzUzMjg4IGVycm9yczowIGRyb3BwZWQ6 MCBvdmVycnVuczowIGNhcnJpZXI6MAo+IAo+IHBvcnQxCj4gUlggcGFja2V0czo5MDE5NTkyIGVy cm9yczowIGRyb3BwZWQ6MCBvdmVycnVuczowIGZyYW1lOjAKPiBUWCBwYWNrZXRzOjQ1NTAzNSBl cnJvcnM6MCBkcm9wcGVkOjAgb3ZlcnJ1bnM6MCBjYXJyaWVyOjAKPiAKPiBwb3J0MS4yMTgKPiBS WCBwYWNrZXRzOjM1MzE0NCBlcnJvcnM6MCBkcm9wcGVkOjAgb3ZlcnJ1bnM6MCBmcmFtZTowCj4g VFggcGFja2V0czo0NTUwMjQgZXJyb3JzOjAgZHJvcHBlZDowIG92ZXJydW5zOjAgY2Fycmllcjow Cj4gCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCj4gCj4gbmV0aWZfcmVjZWl2ZV9za2JfbGlzdCgpIGluIEV0aCBk cml2ZXIgKyBwYXRjaDoKPiAKPiBbIElEXSBJbnRlcnZhbCAgICAgICAgICAgVHJhbnNmZXIgICAg IEJpdHJhdGUgICAgICAgICBSZXRyCj4gWyAgNV0gICAwLjAwLTEyMC4wMSBzZWMgIDExLjYgR0J5 dGVzICAgODI3IE1iaXRzL3NlYyAgMjIyNCBzZW5kZXIKPiBbICA1XSAgIDAuMDAtMTIwLjAwIHNl YyAgMTEuNSBHQnl0ZXMgICA4MjcgTWJpdHMvc2VjICAgICAgIHJlY2VpdmVyCj4gCj4gZXRoMAo+ IFJYIHBhY2tldHM6ODk4MTY1MSBlcnJvcnM6MCBkcm9wcGVkOjAgb3ZlcnJ1bnM6MCBmcmFtZTow Cj4gVFggcGFja2V0czo4OTgxODcgZXJyb3JzOjAgZHJvcHBlZDowIG92ZXJydW5zOjAgY2Fycmll cjowCj4gCj4gcG9ydDAKPiBSWCBwYWNrZXRzOjQzNjE1OSBlcnJvcnM6MCBkcm9wcGVkOjAgb3Zl cnJ1bnM6MCBmcmFtZTowCj4gVFggcGFja2V0czozMzU2NjUgZXJyb3JzOjAgZHJvcHBlZDowIG92 ZXJydW5zOjAgY2FycmllcjowCj4gCj4gcG9ydDEKPiBSWCBwYWNrZXRzOjg1NDU0OTIgZXJyb3Jz OjAgZHJvcHBlZDowIG92ZXJydW5zOjAgZnJhbWU6MAo+IFRYIHBhY2tldHM6NDM2MDcxIGVycm9y czowIGRyb3BwZWQ6MCBvdmVycnVuczowIGNhcnJpZXI6MAo+IAo+IHBvcnQxLjIxOAo+IFJYIHBh Y2tldHM6MzM1NTkzIGVycm9yczowIGRyb3BwZWQ6MCBvdmVycnVuczowIGZyYW1lOjAKPiBUWCBw YWNrZXRzOjQzNjA2NSBlcnJvcnM6MCBkcm9wcGVkOjAgb3ZlcnJ1bnM6MCBjYXJyaWVyOjAKPiAK PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+IAo+IG5hcGlfZ3JvX3JlY2VpdmUoKSBpbiBFdGggZHJpdmVyICsgcGF0Y2g6Cj4gCj4g WyBJRF0gSW50ZXJ2YWwgICAgICAgICAgIFRyYW5zZmVyICAgICBCaXRyYXRlICAgICAgICAgUmV0 cgo+IFsgIDVdICAgMC4wMC0xMjAuMDEgc2VjICAxMS44IEdCeXRlcyAgIDg1NSBNYml0cy9zZWMg IDEyMiAgc2VuZGVyCj4gWyAgNV0gICAwLjAwLTEyMC4wMCBzZWMgIDExLjggR0J5dGVzICAgODU1 IE1iaXRzL3NlYyAgICAgICByZWNlaXZlcgo+IAo+IGV0aDAKPiBSWCBwYWNrZXRzOjkyOTIyMTQg ZXJyb3JzOjAgZHJvcHBlZDowIG92ZXJydW5zOjAgZnJhbWU6MAo+IFRYIHBhY2tldHM6OTI5MjE5 MCBlcnJvcnM6MCBkcm9wcGVkOjAgb3ZlcnJ1bnM6MCBjYXJyaWVyOjAKPiAKPiBwb3J0MAo+IFJY IHBhY2tldHM6NDM4NTE2IGVycm9yczowIGRyb3BwZWQ6MCBvdmVycnVuczowIGZyYW1lOjAKPiBU WCBwYWNrZXRzOjM0NzIzNiBlcnJvcnM6MCBkcm9wcGVkOjAgb3ZlcnJ1bnM6MCBjYXJyaWVyOjAK PiAKPiBwb3J0MQo+IFJYIHBhY2tldHM6ODg1MzY5OCBlcnJvcnM6MCBkcm9wcGVkOjAgb3ZlcnJ1 bnM6MCBmcmFtZTowCj4gVFggcGFja2V0czo0MzgzMzEgZXJyb3JzOjAgZHJvcHBlZDowIG92ZXJy dW5zOjAgY2FycmllcjowCj4gCj4gcG9ydDEuMjE4Cj4gUlggcGFja2V0czozNDcwODIgZXJyb3Jz OjAgZHJvcHBlZDowIG92ZXJydW5zOjAgZnJhbWU6MAo+IFRYIHBhY2tldHM6NDM4MzIwIGVycm9y czowIGRyb3BwZWQ6MCBvdmVycnVuczowIGNhcnJpZXI6MAo+IAo+IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gCj4gVGhlIG1haW4g Z29hbCBpcyBhY2hpZXZlZDogd2UgaGF2ZSBhYm91dCAxMDAtMjAwIE1icHMgb2YgcGVyZm9ybWFu Y2UKPiBib29zdCB3aGlsZSBpbi1zdGFjayBza2JzIGFyZSBncmVhdGx5IHJlZHVjZWQgZnJvbSB+ OC05IG1pbGxpb25zIHRvCj4gfjM1MDAwMCAoY29tcGFyZSBwb3J0MCBUWCBhbmQgcG9ydDEgUlgg d2l0aG91dCBwYXRjaCBhbmQgd2l0aCBpdCkuCgpBbmQgdGhlIG51bWJlciBvZiBUQ1AgcmV0cmll cyBpcyBhbHNvIGxvd2VyLCB3aGljaCBsaWtlbHkgbWVhbnMgdGhhdCB3ZQphcmUgbWFraW5nIGJl dHRlciB1c2Ugb2YgdGhlIGZsb3cgY29udHJvbCBidWlsdCBpbnRvIHRoZSBoYXJkd2FyZS9kcml2 ZXIKaGVyZT8KCkJUVyBkbyB5b3Uga25vdyB3aHkgeW91IGhhdmUgc28gbWFueSByZXRyaWVzIHRo b3VnaD8gSXQgc291bmRzIGxpa2UgeW91cgpmbG93IGNvbnRyb2wgaXMgbWlzc2luZyBhIGZldyBl ZGdlIGNhc2VzLCBvciB0aGF0IHlvdSBoYXZlIGFuIGluY29ycmVjdApjb25maWd1cmF0aW9uIG9m IHlvdXIgVFggYWRtaXNzaW9uIHF1ZXVlLgoKPiAKPiBUaGUgbWFpbiBib3R0bGVuZWNrIGluIGdy b19jZWxscyBzZXR1cCBpcyB0aGF0IEdSTyBsYXllciBzdGFydHMgdG8KPiB3b3JrIG9ubHkgYWZ0 ZXIgc2tiIGFyZSBiZWluZyBwcm9jZXNzZWQgYnkgRFNBIHN0YWNrLCBzbyB0aGV5IGFyZQo+IGdv aW5nIGZyYW1lLWJ5LWZyYW1lIHVudGlsIHRoYXQgbW9tZW50IChSWCBjb3VudGVyIG9uIHBvcnQx KS4KPiAKPiBJZiBvbmUgZGF5IHdlIGNoYW5nZSB0aGUgd2F5IG9mIGhhbmRsaW5nIGluY29taW5n IHBhY2tldHMgKG5vdAo+IHRocm91Z2ggZmFrZSBwYWNrZXRfdHlwZSksIHdlIGNvdWxkIGF2b2lk IHRoYXQgYnkgdW5ibG9ja2luZyBHUk8KPiBwcm9jZXNzaW5nIGluIGJldHdlZW4gRXRoIGRyaXZl ciBhbmQgRFNBIGNvcmUuCj4gV2l0aCBteSBjdXN0b20gcGFja2V0X29mZmxvYWQgZm9yIEVUSF9Q X1hEU0EgdGhhdCB3b3JrcyBvbmx5IGZvcgo+IG15IENQVSB0YWcgZm9ybWF0IEkgaGF2ZSBhYm91 dCB+OTEwLTkyMCBNYnBzIG9uIHRoZSBzYW1lIHBsYXRmb3JtLgo+IFRoaXMgd2F5IGRvZXNuJ3Qg Zml0IG1haW5saW5lIGNvZGUgb2YgY291cnNlLCBzbyBJJ20gd29ya2luZyBvbgo+IGFsdGVybmF0 aXZlIFJ4IHBhdGhzIGZvciBEU0EsIGUuZy4gdGhyb3VnaCBuZXRfZGV2aWNlOjpyeF9oYW5kbGVy KCkKPiBldGMuCj4gCj4gVW50aWwgdGhlbiwgZ3JvX2NlbGxzIHJlYWxseSBpbXByb3ZlIHRoaW5n cyBhIGxvdCB3aGlsZSB0aGUgYWN0dWFsCj4gcGF0Y2ggaXMgdGlueS4KPiAKLS0gCkZsb3JpYW4K Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW1l ZGlhdGVrIG1haWxpbmcgbGlzdApMaW51eC1tZWRpYXRla0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbWVkaWF0ZWsK