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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id AA611C433F5 for ; Mon, 24 Jan 2022 06:37:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D9BEB6B0081; Mon, 24 Jan 2022 01:37:32 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D4B8F6B0083; Mon, 24 Jan 2022 01:37:32 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BEC2C6B0085; Mon, 24 Jan 2022 01:37:32 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0053.hostedemail.com [216.40.44.53]) by kanga.kvack.org (Postfix) with ESMTP id ACBFC6B0081 for ; Mon, 24 Jan 2022 01:37:32 -0500 (EST) Received: from smtpin31.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 5D6398249980 for ; Mon, 24 Jan 2022 06:37:32 +0000 (UTC) X-FDA: 79064224344.31.5C480FD Received: from JPN01-OS0-obe.outbound.protection.outlook.com (mail-os0jpn01on2088.outbound.protection.outlook.com [40.107.113.88]) by imf06.hostedemail.com (Postfix) with ESMTP id BFD9D180006 for ; Mon, 24 Jan 2022 06:37:30 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d8aEUbq7LUZHX0q0ot1D+BiRE9Afk8BvrS729TYihTJ95xSHlldY0pht0ANJQi2quMLSnaMk2PMp3OzP5V5sUuTI/11OeLGdMT9GZiQe6ckWDKCIrfbbN5KjDu0wKYCioRgrHBtY7GD8O+VeflA6xaA4bXVFlvjp+VsGMQZ+zRKELoKEhnwblFENUVSmJSI6QzsJM09T/nLKiypfTwfi2DaDMjGfp5mFtv/mmS2iIHOCRg1pMnXyx2lTx+0YRYfRU6uNbiPNlSDbqHS5oTyKrQvONoWSWdASsywm5xC6or1Rr8Wvl1abVgk3zg4dsCeu885p7PN7jkoIYAzkXbk5yw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KH/+veXzjq02leP757/uSTnHYYgiJrF1yk7re/5x8EA=; b=lnz0GqsCTb+nr39t7igjrkUb3RMK4+c5CWN2Q6BrRimvF3wQtB2UozPc5mMW5tj96B5AwUYoFbgS2sMmaN4V79xP0tKw11b44VEkelLMjdG9YeKJ+JsMpoo7Yc8Rmio3h35x92qbGX31cDAF+H+Ri1GBcc2vgo7Ui5oYyKyeAblpZyLZWW2KPY7HtU3rCv920a/5372GQle+reF6yud+XJK7NDIEYXTNDRWL8EPa6mPor0FIF6eQ6CAZ7GGKrdcpSSEImOd+qTdlHD87lz2Cx5UUPlkzW/TYieK7ZOAhxEXL/W8msMFX+AvnoKH+qdS1mHXX6URpTTcn09QhrQqYyQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nec.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KH/+veXzjq02leP757/uSTnHYYgiJrF1yk7re/5x8EA=; b=j+YuyGKy7PfnSMeR7DdMPfUqr7HoBN6EEkFask2mlVlTVR9kKceZTaZqJI7Z9fJljFk8Wf5DWolT2sj4b528aINTQ0ebsb/Uctb4jzx/nWlvH+zVkxnd1MQR/Q+9o2aT/PUt2/UgJSzdZaPy0rl4N/8RzF/fn9VfYB6Y53+bpDk= Received: from TYWPR01MB8591.jpnprd01.prod.outlook.com (2603:1096:400:13c::10) by OSAPR01MB4097.jpnprd01.prod.outlook.com (2603:1096:604:31::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.8; Mon, 24 Jan 2022 06:37:26 +0000 Received: from TYWPR01MB8591.jpnprd01.prod.outlook.com ([fe80::7c3a:9153:8e79:6a9b]) by TYWPR01MB8591.jpnprd01.prod.outlook.com ([fe80::7c3a:9153:8e79:6a9b%3]) with mapi id 15.20.4909.017; Mon, 24 Jan 2022 06:37:26 +0000 From: =?utf-8?B?SE9SSUdVQ0hJIE5BT1lBKOWggOWPo+OAgOebtOS5nyk=?= To: Mike Kravetz CC: Naoya Horiguchi , "linux-mm@kvack.org" , Andrew Morton , David Hildenbrand , Oscar Salvador , Michal Hocko , Ding Hui , Tony Luck , Aneesh Kumar K.V , Miaohe Lin , Yang Shi , Peter Xu , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH v4 1/3] mm/hwpoison: mf_mutex for soft offline and unpoison Thread-Topic: [PATCH v4 1/3] mm/hwpoison: mf_mutex for soft offline and unpoison Thread-Index: AQHYDltIyCSsf6XVq0y85ykgyXV9dqxt1UAAgAPnt4A= Date: Mon, 24 Jan 2022 06:37:26 +0000 Message-ID: <20220124063721.GA2570139@hori.linux.bs1.fc.nec.co.jp> References: <20211115084006.3728254-1-naoya.horiguchi@linux.dev> <20211115084006.3728254-2-naoya.horiguchi@linux.dev> <10577ef3-57c4-b1eb-cd0f-40518dfd9ad0@oracle.com> <993a94b8-b845-5f28-691e-5fd14f2597ee@oracle.com> In-Reply-To: <993a94b8-b845-5f28-691e-5fd14f2597ee@oracle.com> Accept-Language: ja-JP, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d47517c6-52b9-487c-2300-08d9df03fc8d x-ms-traffictypediagnostic: OSAPR01MB4097:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: lrJA4hLU/f+k5rQNPkbgkoz820XfwnnpPiQKjYNeU664oilHXDTwIedA+i1vvkeR+DCqlAi29Vi0MvfZ5UCDtJQRhBtCd9hmhTBAkfy1IBopRt4gH6LL6u3V2riKBQaBtYFr6Vrf1K7ig2dG8iQsoQS5BLSJD8k7a4b4kS5fiAgLGkyCh8hc7GptMIXFBPz9jHMVh63fXeXFnQfbGVfHGSTRjIIwEGksdlRAor0kyWERlBdP7/jE0Q7CHVgd9oNWDVSzLegOr2ZsJZ3Jk0++IewXJxZ39Moi2X9X9tQMc6zoUGuo0EooainGYMLrnJfoYFtxbxP7GDsskn4xJ+qFvC/h7qlxtM9Gz1IjpfxwM9ISkzYRqGKVZrS5TpUvCBbo+RmQ0g6WL3xMpCHK1WODuBTMBQw49KGFkq7ll+MXr7fclozav0bgaCXQGso5oJvHNchVytKQRsiGKlyi730BzapkypoQCAckGFMf3AUIXFwIxTIRAg6BSVUOK4hMT5YF/ZEfEKP8D46CUrNR0X16XFtI4nrK9+IpI4OUTyAohh77l8fw23FxghXq743tr/EufRt7dwc4rx15VF6EosKMf72u7cUpj668zI2608UykLQ21IcOnTw2SglEwwwdMzluIyXI2Ylu2oJKRQ00PTlLxm2iASiA7wgA7yYuS9s9qWocg3CyzHIR9pRw05cxheg1GT3no3ahu1hIeGpi1pCMBg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYWPR01MB8591.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(66476007)(9686003)(6512007)(4326008)(66946007)(122000001)(33656002)(2906002)(6486002)(7416002)(5660300002)(38070700005)(508600001)(26005)(66446008)(64756008)(66556008)(83380400001)(1076003)(85182001)(76116006)(6916009)(82960400001)(71200400001)(6506007)(53546011)(86362001)(186003)(55236004)(316002)(38100700002)(8936002)(54906003)(8676002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MmlFaWprdGlPUE16OHBpNmRzWmREQjhhVjBTMzBoYUtHOUI5ZGVDeGhRZ2ds?= =?utf-8?B?NFZwZStURGN5b25NSE5DbndKeENOd1VGSmIwazFxbEs2Kys4SzhKR3ZmdVMv?= =?utf-8?B?U0N5WG1iaUhtR3h4bi9DM0lpWHhOMnRnN1ZvYWE3UGR3ZmdnMlUySW5uZE1S?= =?utf-8?B?TkkwRDV6VmFScmRRMEdURDFOeTBBYkJLK3Q0Q0srMFEyYXZ3eTg4WGlpRzcz?= =?utf-8?B?TXRNRklRcXJHRDMzMzlHRmk3Zi9HZ3VFa0hWaCtTMXY5bHRUV0dVMjR1M3Z0?= =?utf-8?B?K1hTSllKK3pIK3FubTdKaXowZTdqc1N4TzhHdTVOUG9qOGpBR2pqRFlmRkg0?= =?utf-8?B?cnRnNmFKZEFRVWpReWt6NktQdDcrR20xRi8xTDBBUVBNOEY2T0o0QjJzdW5v?= =?utf-8?B?bDJMeHBsNEl4dTN4UFIrb0lXZGZCK2Uzd2U0RHR5TVc4ZjlmWGdQRC9YOFdl?= =?utf-8?B?cmRBRFdud3VMM21jVTBUa1Rac2RtSDhkTTBBOWl0TWUzSkZTenkyQUFmdmVV?= =?utf-8?B?ZlV5SlBZOGhFV1BFSkpPdXFWMU1saEltSG5ZTDJhWkJPVHRJWnBRbnQ3M2gr?= =?utf-8?B?YjlKVllnbExuNWdydDNpUmcvcHFXWDR3SjI4TVZwMVJBaWdidy8xeTJ1VVJG?= =?utf-8?B?WjZOTjFidlZkTDJPcUFhT01NS0dpR2dBSUk4YTJTQ3ZxcFBPMzRVZnV1RzdL?= =?utf-8?B?ZngwNUhwUVRKUk5tSGk5TllpSzV4b1NEOUZ6WTJySDVScGZtNFhjYnltKzc0?= =?utf-8?B?Rm53VDVWK3JJVTVyT1JRVmlRVkZTS3BLblVnMlcwTS95d1BmVlNreGM4SmtI?= =?utf-8?B?b1l6OXhIejA1MGdXQUROc1ByYTBhZWtwb0ZLR0dxOCtKMytjWVA5YS9Qa3VW?= =?utf-8?B?WGVDbEdqTk45RklLTTlXMXo3RXVobTFqOWhYV1cwRmJuYXJxcFY4MS85K2FM?= =?utf-8?B?ZHByZW1GQkRGcXZCOXJ6dldlbXBQL1VMVkdhNzh0OG9FNWpXbzMvZndZSUlj?= =?utf-8?B?M2ZLa0s0TStUTVl3OGpXVHpjamdscm00QkkxOVc2WW8rdzZjR0pYNmlya2h0?= =?utf-8?B?bzlxY2xRWDVyN1hIMC9uZlFwbVZBN3FVcEhkNXBGM0taTFVacDNZQkZ0OWxa?= =?utf-8?B?OS9EbnFjYWJDRFdJdk8rTUNvS0IvdklDVUE5QkZMMCtpTGUzM1htcXlRSyti?= =?utf-8?B?ZWRaS2VTSjdsQXU1R0dpbVRmVGhreUdPUHdyakZqVkVJOENVUUFvY1cvNmps?= =?utf-8?B?QktXUjJvaDVQNTVqaXpoL1NzZVl5bUp4anJWc2V3aTJlNDJjWUVVWE42bDRJ?= =?utf-8?B?Y1ViWS9lMFlxTXJteTN0bG5JL1J0Z2w3RFdKaGhDcmJ4eFdWSVRReEF1QXBW?= =?utf-8?B?VGZnWHFkUnFmbzNwbUM0VEFoSzZQMEFsVHgwNHdjTnlzRnJzUlVaeDNLMTBG?= =?utf-8?B?OUNNVFZTNkc5UWcyeHNmZSsvZ2VOeWUxRnNSMTYzR1lOSUpiTnF2YytoVkhB?= =?utf-8?B?UmpwRW9veSthb3JsbTVIQXl3T1krNUVsZWJTVnJ3Z1VtVnoxWE9hTGVxRzRl?= =?utf-8?B?a0ZUYXh2MUlZOUNRRmF0SEZ3Mlh2MC9mSitDNWVsQ2NoZUJtb1FDbUh5NEZH?= =?utf-8?B?NnNHNkdoRXhOK1QwaUx1TDZ1NFFFNkhQZ3FDSEhjS2hsUWcwcXVBMkVCVjZa?= =?utf-8?B?ODY4Qzh6dUQzNnBESkY4RVd5RlhCYlZiTFNRMUQ4V1V1aFA0M25XK1RNSFV4?= =?utf-8?B?aHRDcFF6L0M3ME11WWltSmdoL1MyUUdFZkZzZ3Q5eVRmN0ozc2gwVllobHdL?= =?utf-8?B?NWhPcWtpSDg4Y0V0Zy93TGVJeFhvOGpMSkNWbkc3S3BLbnp6TlQ2azltVE9R?= =?utf-8?B?ZGZWT05qSG1rNGxHMExPUzZ3Y2ovdkZsKy84SmlTWjN5b3h6aFBHaG1TckN0?= =?utf-8?B?VkxKWmpCdFlWUW93c3JxQ21BUlFETzVUL09rTmJDNytkOFFoY0V5S1VVdUY5?= =?utf-8?B?UkJMUFd6VWQwbHIyOFUraGpEZ256VnBBY2lPZFFqY3dTZDZuWVJJQkpmVVpk?= =?utf-8?B?MUdmVXNVSU5POTMraytnR0hEQjMzQmhMYVZjVjZIOFJLeC9QM0ZCZFRtS21G?= =?utf-8?B?TlNhR0IxNGt1eG5YNnpKbVZaS3N1aTJlT3QzNXlyelhsWGdad20xZHFnbGVQ?= =?utf-8?Q?ix+UF19SOH4oz7pL/7Simm0=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <1D77F197F49D6045A9FB446737D66117@jpnprd01.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nec.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYWPR01MB8591.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d47517c6-52b9-487c-2300-08d9df03fc8d X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jan 2022 06:37:26.3702 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: e67df547-9d0d-4f4d-9161-51c6ed1f7d11 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: pEWhJQ6Jxwuk7ozax86WSHDowRIK6O2zyn0KsoZKvF9J+1shwbuKQXNHHU3FYJzpKj2g3ENt6XKAZe4gkKqp0A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSAPR01MB4097 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: BFD9D180006 X-Stat-Signature: qzwa9t31btdboozjc38s5k4ob66pyedh Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=nec.com header.s=selector1 header.b=j+YuyGKy; dmarc=pass (policy=none) header.from=nec.com; spf=pass (imf06.hostedemail.com: domain of naoya.horiguchi@nec.com designates 40.107.113.88 as permitted sender) smtp.mailfrom=naoya.horiguchi@nec.com X-HE-Tag: 1643006250-254487 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: T24gRnJpLCBKYW4gMjEsIDIwMjIgYXQgMTA6NTk6MTRBTSAtMDgwMCwgTWlrZSBLcmF2ZXR6IHdy b3RlOg0KPiBPbiAxLzIwLzIyIDE2OjA5LCBNaWtlIEtyYXZldHogd3JvdGU6DQo+ID4gT24gMTEv MTUvMjEgMDA6NDAsIE5hb3lhIEhvcmlndWNoaSB3cm90ZToNCj4gPj4gRnJvbTogTmFveWEgSG9y aWd1Y2hpIDxuYW95YS5ob3JpZ3VjaGlAbmVjLmNvbT4NCj4gPj4NCj4gPj4gT3JpZ2luYWxseSBt Zl9tdXRleCBpcyBpbnRyb2R1Y2VkIHRvIHNlcmlhbGl6ZSBtdWx0aXBsZSBNQ0UgZXZlbnRzLCBi dXQNCj4gPj4gaXQgaXMgbm90IHRoYXQgdXNlZnVsIHRvIGFsbG93IHVucG9pc29uIHRvIHJ1biBp biBwYXJhbGxlbCB3aXRoIG1lbW9yeV9mYWlsdXJlKCkNCj4gPj4gYW5kIHNvZnQgb2ZmbGluZS4g IFNvIGFwcGx5IG1mX211dGV4IHRvIHNvZnQgb2ZmbGluZSBhbmQgdW5wb2lzb24uDQo+ID4+IFRo ZSBtZW1vcnkgZmFpbHVyZSBoYW5kbGVyIGFuZCBzb2Z0IG9mZmxpbmUgaGFuZGxlciBnZXQgc2lt cGxlciB3aXRoIHRoaXMuDQo+ID4+DQo+IA0KPiBTb3JyeSBmb3IgdGhlIGxhdGUgcXVlc3Rpb24u DQo+IA0KPiBJdCBpcyBub3QgZGlyZWN0bHkgcGFydCBvZiB0aGlzIGNoYW5nZSwgYnV0IGNhbiB3 ZSBhbHNvIHJlbW92ZSB0aGUgY2hlY2sgaW4NCj4gX19zb2Z0X29mZmxpbmVfcGFnZSBhZnRlciB0 aGlzIGNvbW1lbnQ/DQo+IA0KPiAgICAgICAgIC8qDQo+ICAgICAgICAgICogQ2hlY2sgUGFnZUhX UG9pc29uIGFnYWluIGluc2lkZSBwYWdlIGxvY2sgYmVjYXVzZSBQYWdlSFdQb2lzb24NCj4gICAg ICAgICAgKiBpcyBzZXQgYnkgbWVtb3J5X2ZhaWx1cmUoKSBvdXRzaWRlIHBhZ2UgbG9jay4gTm90 ZSB0aGF0DQo+ICAgICAgICAgICogbWVtb3J5X2ZhaWx1cmUoKSBhbHNvIGRvdWJsZS1jaGVja3Mg UGFnZUhXUG9pc29uIGluc2lkZSBwYWdlIGxvY2ssDQo+ICAgICAgICAgICogc28gdGhlcmUncyBu byByYWNlIGJldHdlZW4gc29mdF9vZmZsaW5lX3BhZ2UoKSBhbmQgbWVtb3J5X2ZhaWx1cmUoKS4N Cj4gICAgICAgICAgKi8NCg0KWW91J3JlIHJpZ2h0LiBUaGlzIGNvbW1lbnQgaXMgb2Jzb2xldGUu IEknbGwgc2VuZCBhIHBhdGNoIGxhdGVyLg0KDQpBbmQgeW91IHBvaW50ZWQgb3V0IHNvbWUgaW1w b3J0YW50IHBvaW50cyBpbiB0aGUgcHJldmlvdXMgZW1haWwsIHRoYW5rIHlvdS4NCg0KPiBUaGVy ZSBhcmUgb25seSB0d28gcGxhY2VzIG90aGVyIHBsYWNlcyB3aGVyZSBQYWdlSFdQb2lzb24gaXMg bW9kaWZpZWQgd2l0aG91dA0KPiB0aGUgbXV0ZXguICBUaGV5IGFyZToNCj4gLSB0ZXN0X2FuZF9j bGVhcl9wbWVtX3BvaXNvbg0KPiAgIEkgJ3RoaW5rJyBwbWVtIGVycm9yIGhhbmRsaW5nIGlzIGRv bmUgc2VwYXJhdGVseSBzbyB0aGlzIGRvZXMgbm90IGFwcGx5Lg0KDQpZZXMsIHNvZnQtb2ZmbGlu ZSBub3IgdW5wb2lzb24gc2hvdWxkIHdvcmsgZm9yIHBtZW0gZXJyb3IsIHNvIHRoZSByZWxldmFu dA0KcmFjZSBzaG91bGQgbm90IGJlIHByb2JsZW1hdGljLg0KDQo+IC0gY2xlYXJfaHdwb2lzb25l ZF9wYWdlcw0KPiAgIENhbGxlZCBiZWZvcmUgcmVtb3ZpbmcgbWVtb3J5IChhbmQgZGVsZXRpbmcg bWVtbWFwKSB0byByZWNvbmNpbGUgY291bnQNCj4gICBvZiBwb2lzb25lZCBwYWdlcy4gIFNob3Vs ZCBub3QgYmUgYW4gaXNzdWUgYW5kIHRlY2huaWNhbGx5IEkgZG8gbm90IHRoaW5rDQo+ICAgdGhl IENsZWFyUGFnZUhXUG9pc29uKCkgaXMgYWN0dWFsbHkgbmVlZGVkIGluIHRoaXMgcm91dGluZS4N Cg0KUmlnaHQsIHRoaXMgQ2xlYXJQYWdlSFdQb2lzb24oKSBtaWdodCBiZSB1bm5lY2Vzc2FyeSBi ZWNhdXNlIHN0cnVjdCBwYWdlcw0KYXJlIGZyZWVkIHNvb24gYWZ0ZXIuICBCdXQgdGhpcyBmdW5j dGlvbiBhbHNvIHVwZGF0ZXMgbnVtX3BvaXNvbmVkX3BhZ2VzLA0KYW5kIHRoZSByYWNlIGNvdWxk IGJyZWFrIHRoZSBjb3VudGVyLiAgSSdsbCBjaGVjayB0aGUgZWZmZWN0IG9mIHRoZSByYWNlDQp3 aXRoIGhvdHJlbW92ZSBhbmQgaG93IG1mX211dGV4IGNhbiBzb2x2ZSBpdC4NCg0KVGhhbmtzLA0K TmFveWEgSG9yaWd1Y2hp