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=-8.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED, USER_AGENT_SANE_2 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 ECAF2C433E0 for ; Mon, 6 Jul 2020 06:59:24 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 824C320724 for ; Mon, 6 Jul 2020 06:59:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="ZWXHNQeH" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 824C320724 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id DE39E6B0003; Mon, 6 Jul 2020 02:59:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D6D726B0005; Mon, 6 Jul 2020 02:59:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C0D436B0006; Mon, 6 Jul 2020 02:59:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0112.hostedemail.com [216.40.44.112]) by kanga.kvack.org (Postfix) with ESMTP id A8CC86B0003 for ; Mon, 6 Jul 2020 02:59:23 -0400 (EDT) Received: from smtpin04.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 2FB528248047 for ; Mon, 6 Jul 2020 06:59:23 +0000 (UTC) X-FDA: 77006749806.04.farm69_41148e626ea9 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin04.hostedemail.com (Postfix) with ESMTP id F2AF88005A9F for ; Mon, 6 Jul 2020 06:59:22 +0000 (UTC) X-HE-Tag: farm69_41148e626ea9 X-Filterd-Recvd-Size: 13839 Received: from mailgw01.mediatek.com (unknown [210.61.82.183]) by imf08.hostedemail.com (Postfix) with ESMTP for ; Mon, 6 Jul 2020 06:59:21 +0000 (UTC) X-UUID: 9bf760c3df2f4e80aff10f4192957e77-20200706 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=nPZqNQDBxsg4ytdwwt0Endr8/iEUUms3Rc4LlN2aaeY=; b=ZWXHNQeH1glsAO9qmsaQtK4QYBMYcdFFunWVpfOPSc1cQesMWSBAg0Ozg8+WOSsU9dvXY14iZK/duB2n1jtMLwoUc4oi6ytmd41yiS55w74pYvxhSxLs7Xg5E6xTCYgeat0yLC84FmyOqfTx2hmx3I9sabm+/rE/4Cg7W8bfa2k=; X-UUID: 9bf760c3df2f4e80aff10f4192957e77-20200706 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 393689281; Mon, 06 Jul 2020 14:59:17 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs01n1.mediatek.inc (172.21.101.68) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 6 Jul 2020 14:59:13 +0800 Received: from [172.21.84.99] (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 6 Jul 2020 14:59:13 +0800 Message-ID: <1594018755.1706.3.camel@mtksdccf07> Subject: Re: [PATCH v2] kasan: fix KASAN unit tests for tag-based KASAN From: Walter Wu To: Dmitry Vyukov CC: Andrey Ryabinin , Alexander Potapenko , Matthias Brugger , kasan-dev , Linux-MM , LKML , Linux ARM , wsd_upstream , , "Andrey Konovalov" , Andrew Morton Date: Mon, 6 Jul 2020 14:59:15 +0800 In-Reply-To: References: <20200706022150.20848-1-walter-zh.wu@mediatek.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-MTK: N Content-Transfer-Encoding: base64 X-Rspamd-Queue-Id: F2AF88005A9F X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam02 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: T24gTW9uLCAyMDIwLTA3LTA2IGF0IDA4OjE5ICswMjAwLCBEbWl0cnkgVnl1a292IHdyb3RlOg0K PiBPbiBNb24sIEp1bCA2LCAyMDIwIGF0IDQ6MjEgQU0gV2FsdGVyIFd1IDx3YWx0ZXItemgud3VA bWVkaWF0ZWsuY29tPiB3cm90ZToNCj4gPg0KPiA+IFdlIHVzZSB0YWctYmFzZWQgS0FTQU4sIHRo ZW4gS0FTQU4gdW5pdCB0ZXN0cyBkb24ndCBkZXRlY3Qgb3V0LW9mLWJvdW5kcw0KPiA+IG1lbW9y eSBhY2Nlc3MuIFRoZXkgbmVlZCB0byBiZSBmaXhlZC4NCj4gPg0KPiA+IFdpdGggdGFnLWJhc2Vk IEtBU0FOLCB0aGUgc3RhdGUgb2YgZWFjaCAxNiBhbGlnbmVkIGJ5dGVzIG9mIG1lbW9yeSBpcw0K PiA+IGVuY29kZWQgaW4gb25lIHNoYWRvdyBieXRlIGFuZCB0aGUgc2hhZG93IHZhbHVlIGlzIHRh ZyBvZiBwb2ludGVyLCBzbw0KPiA+IHdlIG5lZWQgdG8gcmVhZCBuZXh0IHNoYWRvdyBieXRlLCB0 aGUgc2hhZG93IHZhbHVlIGlzIG5vdCBlcXVhbCB0byB0YWcNCj4gPiB2YWx1ZSBvZiBwb2ludGVy LCBzbyB0aGF0IHRhZy1iYXNlZCBLQVNBTiB3aWxsIGRldGVjdCBvdXQtb2YtYm91bmRzDQo+ID4g bWVtb3J5IGFjY2Vzcy4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFdhbHRlciBXdSA8d2FsdGVy LXpoLnd1QG1lZGlhdGVrLmNvbT4NCj4gPiBDYzogQW5kcmV5IFJ5YWJpbmluIDxhcnlhYmluaW5A dmlydHVvenpvLmNvbT4NCj4gPiBDYzogRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtvdkBnb29nbGUuY29t Pg0KPiA+IENjOiBBbGV4YW5kZXIgUG90YXBlbmtvIDxnbGlkZXJAZ29vZ2xlLmNvbT4NCj4gPiBD YzogTWF0dGhpYXMgQnJ1Z2dlciA8bWF0dGhpYXMuYmdnQGdtYWlsLmNvbT4NCj4gPiBDYzogQW5k cmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPg0KPiA+IENjOiBBbmRyZXcgTW9y dG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPg0KPiA+IC0tLQ0KPiA+DQo+ID4gY2hhbmdl cyBzaW5jZSB2MToNCj4gPiAtIFJlZHVjZSBhbW91bnQgb2Ygbm9uLWNvbXBpbGVkIGNvZGUuDQo+ ID4gLSBLVW5pdC1LQVNBTiBJbnRlZ3JhdGlvbiBwYXRjaHNldCBhcmUgbm90IG1lcmdlZCB5ZXQu IE15IHBhdGNoIHNob3VsZA0KPiA+ICAgaGF2ZSBjb25mbGljdCB3aXRoIGl0LCBpZiBuZWVkZWQs IHdlIGNhbiBjb250aW51ZSB0byB3YWl0IGl0Lg0KPiA+DQo+ID4gLS0tDQo+ID4NCj4gPiAgbGli L3Rlc3Rfa2FzYW4uYyB8IDgxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgMTcgZGVs ZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvbGliL3Rlc3Rfa2FzYW4uYyBiL2xpYi90 ZXN0X2thc2FuLmMNCj4gPiBpbmRleCBlMzA4N2Q5MGUwMGQuLjY2MDY2NDQzOWQ1MiAxMDA2NDQN Cj4gPiAtLS0gYS9saWIvdGVzdF9rYXNhbi5jDQo+ID4gKysrIGIvbGliL3Rlc3Rfa2FzYW4uYw0K PiA+IEBAIC00MCw3ICs0MCwxMSBAQCBzdGF0aWMgbm9pbmxpbmUgdm9pZCBfX2luaXQga21hbGxv Y19vb2JfcmlnaHQodm9pZCkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICAgICAg ICAgfQ0KPiA+DQo+ID4gLSAgICAgICBwdHJbc2l6ZV0gPSAneCc7DQo+ID4gKyAgICAgICBpZiAo SVNfRU5BQkxFRChDT05GSUdfS0FTQU5fR0VORVJJQykpDQo+ID4gKyAgICAgICAgICAgICAgIHB0 cltzaXplXSA9ICd4JzsNCj4gPiArICAgICAgIGVsc2UNCj4gPiArICAgICAgICAgICAgICAgcHRy W3NpemUgKyA1XSA9ICd4JzsNCj4gPiArDQo+IA0KPiBIaSBXYWx0ZXIsDQo+IA0KPiBXb3VsZCBp ZiBiZSBwb3NzaWJsZSB0byBpbnRyb2R1Y2Ugc29tZXRoaW5nIGxpa2U6DQo+IA0KPiAjZGVmaW5l IE9PQl9UQUdfT0ZGIChJU19FTkFCTEVEKENPTkZJR19LQVNBTl9HRU5FUklDKSA/IDAgOiA4KQ0K PiANCg0KSXQgaXMgZ29vZCBzdWdnZXN0aW9uLiBUaGFua3MuDQoNCj4gYW5kIHRoZW4gYWRkIGl0 IHRocm91Z2hvdXQgYXMNCj4gDQo+ICAgICAgICAgcHRyW3NpemUgKyBPT0JfVEFHX09GRl0gPSAn eCc7DQo+IA0KPiA/DQo+IFRoZSBjdXJyZW50IHZlcnNpb24gcmVzdWx0cyBpbiBxdWl0ZSBzb21l IGFtb3VudCBvZiBhZGRpdGlvbmFsIGNvZGUNCj4gdGhhdCBuZWVkcyB0byBiZSByZWFkLCBleHRl bmRlZCAgYW5kIG1haW50YWluZWQgaW4gdGhlIGZ1dHVyZS4gU28gSSBhbQ0KPiB0aGlua2luZyBp ZiBpdCdzIHBvc3NpYmxlIHRvIG1pbmltaXplIGl0IHNvbWVob3cuLi4NCj4gDQoNCk9rLCBJIHdp bGwgc2VuZCBuZXh0IHBhdGNoIGJ5IHlvdXIgc3VnZ2VzdGlvbi4NCg0KVGhhbmtzLg0KDQo+ID4g ICAgICAgICBrZnJlZShwdHIpOw0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtOTIsNyArOTYsMTEgQEAg c3RhdGljIG5vaW5saW5lIHZvaWQgX19pbml0IGttYWxsb2NfcGFnZWFsbG9jX29vYl9yaWdodCh2 b2lkKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm47DQo+ID4gICAgICAgICB9DQo+ID4NCj4g PiAtICAgICAgIHB0cltzaXplXSA9IDA7DQo+ID4gKyAgICAgICBpZiAoSVNfRU5BQkxFRChDT05G SUdfS0FTQU5fR0VORVJJQykpDQo+ID4gKyAgICAgICAgICAgICAgIHB0cltzaXplXSA9IDA7DQo+ ID4gKyAgICAgICBlbHNlDQo+ID4gKyAgICAgICAgICAgICAgIHB0cltzaXplICsgNl0gPSAwOw0K PiA+ICsNCj4gPiAgICAgICAgIGtmcmVlKHB0cik7DQo+ID4gIH0NCj4gPg0KPiA+IEBAIC0xNjIs NyArMTcwLDExIEBAIHN0YXRpYyBub2lubGluZSB2b2lkIF9faW5pdCBrbWFsbG9jX29vYl9rcmVh bGxvY19tb3JlKHZvaWQpDQo+ID4gICAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiAgICAgICAg IH0NCj4gPg0KPiA+IC0gICAgICAgcHRyMltzaXplMl0gPSAneCc7DQo+ID4gKyAgICAgICBpZiAo SVNfRU5BQkxFRChDT05GSUdfS0FTQU5fR0VORVJJQykpDQo+ID4gKyAgICAgICAgICAgICAgIHB0 cjJbc2l6ZTJdID0gJ3gnOw0KPiA+ICsgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICBw dHIyW3NpemUyICsgMTNdID0gJ3gnOw0KPiA+ICsNCj4gPiAgICAgICAgIGtmcmVlKHB0cjIpOw0K PiA+ICB9DQo+ID4NCj4gPiBAQCAtMTgwLDcgKzE5MiwxMiBAQCBzdGF0aWMgbm9pbmxpbmUgdm9p ZCBfX2luaXQga21hbGxvY19vb2Jfa3JlYWxsb2NfbGVzcyh2b2lkKQ0KPiA+ICAgICAgICAgICAg ICAgICBrZnJlZShwdHIxKTsNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICAgICAg ICAgfQ0KPiA+IC0gICAgICAgcHRyMltzaXplMl0gPSAneCc7DQo+ID4gKw0KPiA+ICsgICAgICAg aWYgKElTX0VOQUJMRUQoQ09ORklHX0tBU0FOX0dFTkVSSUMpKQ0KPiA+ICsgICAgICAgICAgICAg ICBwdHIyW3NpemUyXSA9ICd4JzsNCj4gPiArICAgICAgIGVsc2UNCj4gPiArICAgICAgICAgICAg ICAgcHRyMltzaXplMiArIDJdID0gJ3gnOw0KPiA+ICsNCj4gPiAgICAgICAgIGtmcmVlKHB0cjIp Ow0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtMjE2LDcgKzIzMywxMSBAQCBzdGF0aWMgbm9pbmxpbmUg dm9pZCBfX2luaXQga21hbGxvY19vb2JfbWVtc2V0XzIodm9pZCkNCj4gPiAgICAgICAgICAgICAg ICAgcmV0dXJuOw0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4gLSAgICAgICBtZW1zZXQocHRyKzcs IDAsIDIpOw0KPiA+ICsgICAgICAgaWYgKElTX0VOQUJMRUQoQ09ORklHX0tBU0FOX0dFTkVSSUMp KQ0KPiA+ICsgICAgICAgICAgICAgICBtZW1zZXQocHRyKzcsIDAsIDIpOw0KPiA+ICsgICAgICAg ZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICBtZW1zZXQocHRyKzE1LCAwLCAyKTsNCj4gPiArDQo+ ID4gICAgICAgICBrZnJlZShwdHIpOw0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtMjMyLDcgKzI1Mywx MSBAQCBzdGF0aWMgbm9pbmxpbmUgdm9pZCBfX2luaXQga21hbGxvY19vb2JfbWVtc2V0XzQodm9p ZCkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4g LSAgICAgICBtZW1zZXQocHRyKzUsIDAsIDQpOw0KPiA+ICsgICAgICAgaWYgKElTX0VOQUJMRUQo Q09ORklHX0tBU0FOX0dFTkVSSUMpKQ0KPiA+ICsgICAgICAgICAgICAgICBtZW1zZXQocHRyKzUs IDAsIDQpOw0KPiA+ICsgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICBtZW1zZXQocHRy KzE1LCAwLCA0KTsNCj4gPiArDQo+ID4gICAgICAgICBrZnJlZShwdHIpOw0KPiA+ICB9DQo+ID4N Cj4gPiBAQCAtMjQ5LDcgKzI3NCwxMSBAQCBzdGF0aWMgbm9pbmxpbmUgdm9pZCBfX2luaXQga21h bGxvY19vb2JfbWVtc2V0Xzgodm9pZCkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ ICAgICAgICAgfQ0KPiA+DQo+ID4gLSAgICAgICBtZW1zZXQocHRyKzEsIDAsIDgpOw0KPiA+ICsg ICAgICAgaWYgKElTX0VOQUJMRUQoQ09ORklHX0tBU0FOX0dFTkVSSUMpKQ0KPiA+ICsgICAgICAg ICAgICAgICBtZW1zZXQocHRyKzEsIDAsIDgpOw0KPiA+ICsgICAgICAgZWxzZQ0KPiA+ICsgICAg ICAgICAgICAgICBtZW1zZXQocHRyKzE1LCAwLCA4KTsNCj4gPiArDQo+ID4gICAgICAgICBrZnJl ZShwdHIpOw0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtMjY1LDcgKzI5NCwxMSBAQCBzdGF0aWMgbm9p bmxpbmUgdm9pZCBfX2luaXQga21hbGxvY19vb2JfbWVtc2V0XzE2KHZvaWQpDQo+ID4gICAgICAg ICAgICAgICAgIHJldHVybjsNCj4gPiAgICAgICAgIH0NCj4gPg0KPiA+IC0gICAgICAgbWVtc2V0 KHB0cisxLCAwLCAxNik7DQo+ID4gKyAgICAgICBpZiAoSVNfRU5BQkxFRChDT05GSUdfS0FTQU5f R0VORVJJQykpDQo+ID4gKyAgICAgICAgICAgICAgIG1lbXNldChwdHIrMSwgMCwgMTYpOw0KPiA+ ICsgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICBtZW1zZXQocHRyKzE1LCAwLCAxNik7 DQo+ID4gKw0KPiA+ICAgICAgICAga2ZyZWUocHRyKTsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTI4 MSw3ICszMTQsMTEgQEAgc3RhdGljIG5vaW5saW5lIHZvaWQgX19pbml0IGttYWxsb2Nfb29iX2lu X21lbXNldCh2b2lkKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm47DQo+ID4gICAgICAgICB9 DQo+ID4NCj4gPiAtICAgICAgIG1lbXNldChwdHIsIDAsIHNpemUrNSk7DQo+ID4gKyAgICAgICBp ZiAoSVNfRU5BQkxFRChDT05GSUdfS0FTQU5fR0VORVJJQykpDQo+ID4gKyAgICAgICAgICAgICAg IG1lbXNldChwdHIsIDAsIHNpemUrNSk7DQo+ID4gKyAgICAgICBlbHNlDQo+ID4gKyAgICAgICAg ICAgICAgIG1lbXNldChwdHIsIDAsIHNpemUrNyk7DQo+ID4gKw0KPiA+ICAgICAgICAga2ZyZWUo cHRyKTsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTQxNSw3ICs0NTIsMTEgQEAgc3RhdGljIG5vaW5s aW5lIHZvaWQgX19pbml0IGttZW1fY2FjaGVfb29iKHZvaWQpDQo+ID4gICAgICAgICAgICAgICAg IHJldHVybjsNCj4gPiAgICAgICAgIH0NCj4gPg0KPiA+IC0gICAgICAgKnAgPSBwW3NpemVdOw0K PiA+ICsgICAgICAgaWYgKElTX0VOQUJMRUQoQ09ORklHX0tBU0FOX0dFTkVSSUMpKQ0KPiA+ICsg ICAgICAgICAgICAgICAqcCA9IHBbc2l6ZV07DQo+ID4gKyAgICAgICBlbHNlDQo+ID4gKyAgICAg ICAgICAgICAgICpwID0gcFtzaXplICsgOF07DQo+ID4gKw0KPiA+ICAgICAgICAga21lbV9jYWNo ZV9mcmVlKGNhY2hlLCBwKTsNCj4gPiAgICAgICAgIGttZW1fY2FjaGVfZGVzdHJveShjYWNoZSk7 DQo+ID4gIH0NCj4gPiBAQCAtNDk3LDYgKzUzOCw3IEBAIHN0YXRpYyBub2lubGluZSB2b2lkIF9f aW5pdCBjb3B5X3VzZXJfdGVzdCh2b2lkKQ0KPiA+ICAgICAgICAgY2hhciBfX3VzZXIgKnVzZXJt ZW07DQo+ID4gICAgICAgICBzaXplX3Qgc2l6ZSA9IDEwOw0KPiA+ICAgICAgICAgaW50IHVudXNl ZDsNCj4gPiArICAgICAgIHNpemVfdCBvb2Jfc2l6ZTsNCj4gPg0KPiA+ICAgICAgICAga21lbSA9 IGttYWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7DQo+ID4gICAgICAgICBpZiAoIWttZW0pDQo+ID4g QEAgLTUxMSwyNiArNTUzLDMxIEBAIHN0YXRpYyBub2lubGluZSB2b2lkIF9faW5pdCBjb3B5X3Vz ZXJfdGVzdCh2b2lkKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm47DQo+ID4gICAgICAgICB9 DQo+ID4NCj4gPiArICAgICAgIGlmIChJU19FTkFCTEVEKENPTkZJR19LQVNBTl9HRU5FUklDKSkN Cj4gPiArICAgICAgICAgICAgICAgb29iX3NpemUgPSAxOw0KPiA+ICsgICAgICAgZWxzZQ0KPiA+ ICsgICAgICAgICAgICAgICBvb2Jfc2l6ZSA9IDc7DQo+ID4gKw0KPiA+ICAgICAgICAgcHJfaW5m bygib3V0LW9mLWJvdW5kcyBpbiBjb3B5X2Zyb21fdXNlcigpXG4iKTsNCj4gPiAtICAgICAgIHVu dXNlZCA9IGNvcHlfZnJvbV91c2VyKGttZW0sIHVzZXJtZW0sIHNpemUgKyAxKTsNCj4gPiArICAg ICAgIHVudXNlZCA9IGNvcHlfZnJvbV91c2VyKGttZW0sIHVzZXJtZW0sIHNpemUgKyBvb2Jfc2l6 ZSk7DQo+ID4NCj4gPiAgICAgICAgIHByX2luZm8oIm91dC1vZi1ib3VuZHMgaW4gY29weV90b191 c2VyKClcbiIpOw0KPiA+IC0gICAgICAgdW51c2VkID0gY29weV90b191c2VyKHVzZXJtZW0sIGtt ZW0sIHNpemUgKyAxKTsNCj4gPiArICAgICAgIHVudXNlZCA9IGNvcHlfdG9fdXNlcih1c2VybWVt LCBrbWVtLCBzaXplICsgb29iX3NpemUpOw0KPiA+DQo+ID4gICAgICAgICBwcl9pbmZvKCJvdXQt b2YtYm91bmRzIGluIF9fY29weV9mcm9tX3VzZXIoKVxuIik7DQo+ID4gLSAgICAgICB1bnVzZWQg PSBfX2NvcHlfZnJvbV91c2VyKGttZW0sIHVzZXJtZW0sIHNpemUgKyAxKTsNCj4gPiArICAgICAg IHVudXNlZCA9IF9fY29weV9mcm9tX3VzZXIoa21lbSwgdXNlcm1lbSwgc2l6ZSArIG9vYl9zaXpl KTsNCj4gPg0KPiA+ICAgICAgICAgcHJfaW5mbygib3V0LW9mLWJvdW5kcyBpbiBfX2NvcHlfdG9f dXNlcigpXG4iKTsNCj4gPiAtICAgICAgIHVudXNlZCA9IF9fY29weV90b191c2VyKHVzZXJtZW0s IGttZW0sIHNpemUgKyAxKTsNCj4gPiArICAgICAgIHVudXNlZCA9IF9fY29weV90b191c2VyKHVz ZXJtZW0sIGttZW0sIHNpemUgKyBvb2Jfc2l6ZSk7DQo+ID4NCj4gPiAgICAgICAgIHByX2luZm8o Im91dC1vZi1ib3VuZHMgaW4gX19jb3B5X2Zyb21fdXNlcl9pbmF0b21pYygpXG4iKTsNCj4gPiAt ICAgICAgIHVudXNlZCA9IF9fY29weV9mcm9tX3VzZXJfaW5hdG9taWMoa21lbSwgdXNlcm1lbSwg c2l6ZSArIDEpOw0KPiA+ICsgICAgICAgdW51c2VkID0gX19jb3B5X2Zyb21fdXNlcl9pbmF0b21p YyhrbWVtLCB1c2VybWVtLCBzaXplICsgb29iX3NpemUpOw0KPiA+DQo+ID4gICAgICAgICBwcl9p bmZvKCJvdXQtb2YtYm91bmRzIGluIF9fY29weV90b191c2VyX2luYXRvbWljKClcbiIpOw0KPiA+ IC0gICAgICAgdW51c2VkID0gX19jb3B5X3RvX3VzZXJfaW5hdG9taWModXNlcm1lbSwga21lbSwg c2l6ZSArIDEpOw0KPiA+ICsgICAgICAgdW51c2VkID0gX19jb3B5X3RvX3VzZXJfaW5hdG9taWMo dXNlcm1lbSwga21lbSwgc2l6ZSArIG9vYl9zaXplKTsNCj4gPg0KPiA+ICAgICAgICAgcHJfaW5m bygib3V0LW9mLWJvdW5kcyBpbiBzdHJuY3B5X2Zyb21fdXNlcigpXG4iKTsNCj4gPiAtICAgICAg IHVudXNlZCA9IHN0cm5jcHlfZnJvbV91c2VyKGttZW0sIHVzZXJtZW0sIHNpemUgKyAxKTsNCj4g PiArICAgICAgIHVudXNlZCA9IHN0cm5jcHlfZnJvbV91c2VyKGttZW0sIHVzZXJtZW0sIHNpemUg KyBvb2Jfc2l6ZSk7DQo+ID4NCj4gPiAgICAgICAgIHZtX211bm1hcCgodW5zaWduZWQgbG9uZyl1 c2VybWVtLCBQQUdFX1NJWkUpOw0KPiA+ICAgICAgICAga2ZyZWUoa21lbSk7DQo+ID4gLS0NCj4g PiAyLjE4LjANCj4gPg0KPiA+IC0tDQo+ID4gWW91IHJlY2VpdmVkIHRoaXMgbWVzc2FnZSBiZWNh dXNlIHlvdSBhcmUgc3Vic2NyaWJlZCB0byB0aGUgR29vZ2xlIEdyb3VwcyAia2FzYW4tZGV2IiBn cm91cC4NCj4gPiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgZ3JvdXAgYW5kIHN0b3AgcmVjZWl2 aW5nIGVtYWlscyBmcm9tIGl0LCBzZW5kIGFuIGVtYWlsIHRvIGthc2FuLWRldit1bnN1YnNjcmli ZUBnb29nbGVncm91cHMuY29tLg0KPiA+IFRvIHZpZXcgdGhpcyBkaXNjdXNzaW9uIG9uIHRoZSB3 ZWIgdmlzaXQgaHR0cHM6Ly91cmxkZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vZ3JvdXBzLmdvb2ds ZS5jb20vZC9tc2dpZC9rYXNhbi1kZXYvMjAyMDA3MDYwMjIxNTAuMjA4NDgtMS13YWx0ZXItemgu d3UqNDBtZWRpYXRlay5jb21fXztKUSEhQ1RSTktBOXdNZzBBUmJ3IXpxR1NfZy1vTEk3bzY4NTBH alZfUDdZUVByOFN1ZmRlQzhmYm50MjdvNFd0dmhYNVBaOC1lWjZCV3lGM2J3bTdUaXppcHckIC4N Cg0K