From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id F20DAA00BE; Wed, 8 Jul 2020 04:46:32 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6A6B91DC6B; Wed, 8 Jul 2020 04:46:31 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80048.outbound.protection.outlook.com [40.107.8.48]) by dpdk.org (Postfix) with ESMTP id 375131DB1D for ; Wed, 8 Jul 2020 04:46:30 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t9dv1Q1iV99lj2gI+WfAikyxi/qCCoDv35Sjo3IbF+U=; b=7K75rzdZEG7l3vGz1uWEaXrkZNk3Jb6yj+Ivcu0XipbRuRCooKG7KEGfJo9wCHhKTkmNMjlmldRlU3c1r0yCUQkbDWReQOIZxjxImI6lAVM7L7G8ewk4q980XC/Ps2QTY+Luczo3n64Ur8gjSU4E0Fb54kKLRqdMd8m6JkvVG1g= Received: from AM6PR08CA0027.eurprd08.prod.outlook.com (2603:10a6:20b:c0::15) by VE1PR08MB4800.eurprd08.prod.outlook.com (2603:10a6:802:a9::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.28; Wed, 8 Jul 2020 02:46:27 +0000 Received: from AM5EUR03FT053.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:c0:cafe::cd) by AM6PR08CA0027.outlook.office365.com (2603:10a6:20b:c0::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.20 via Frontend Transport; Wed, 8 Jul 2020 02:46:27 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT053.mail.protection.outlook.com (10.152.16.210) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.21 via Frontend Transport; Wed, 8 Jul 2020 02:46:27 +0000 Received: ("Tessian outbound e44de778b77e:v62"); Wed, 08 Jul 2020 02:46:27 +0000 X-CR-MTA-TID: 64aa7808 Received: from 751f880105db.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id E4A67153-4E9A-4357-B9E9-A8D8E4DF0F86.1; Wed, 08 Jul 2020 02:46:22 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 751f880105db.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 08 Jul 2020 02:46:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P2ujbgf351mvuKNan4tTCJBM5dih2bW4bQh/UGPnoxO2Xl3S6j7pvPSme1MJKRlIiPACwXpNBWP77in/Q+5iQsBhdah+R9ZsiqOYYjDyaZYYQclZYObeESsR5j9DkExz7sRLYLyZ2bIKUg3ZA+ve9Ge4L2PKYQe3cHdcEuWLVRjnGFlIQlwTVuhMteEww5xXtENrjcuk2Y857E53VLzlJ5+BqNfKSDSECr76nfCpbMDHwycrUFBllbrfTfwYvZuKburvR4+SShK9X4r2SAm/eNayr1JQc+7C3Wh2whkaxKHDDcLQvxFsUJVBtZ+eLeZiu/KJIt2LOMI2ui6KgvSqYg== 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-SenderADCheck; bh=t9dv1Q1iV99lj2gI+WfAikyxi/qCCoDv35Sjo3IbF+U=; b=cey62JbcaigTiFlgFTX9HhdeW/5YAOcXxZRGvVzMWZwV8GIkh0tSqN0fL5nvCrLvRFv+x3XqKaYwCPDAPx3buvMaJKVmSTgjYy2qmv/NIlXdbh0/9RKLe9LdACtyYWMdyySs+jgr4xm2WBAk8YRihZTscRwc4yKQuVK5JKXJ1fD3P6mtnWQXfD8qzD87W1kbU5Freskzgn8GP+c1M/sHT0J+LU32TwR1UQVnFlSM81HbCey+/abc88dv7RtPlwLUuwEM1WwAyPVytGCaXOovldLIks6Pgv0OdeNDsHZ65DAGKRZsUL1jNs9Bx/pfmAETrAfTW8a03km9Lg5HDxOMLQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t9dv1Q1iV99lj2gI+WfAikyxi/qCCoDv35Sjo3IbF+U=; b=7K75rzdZEG7l3vGz1uWEaXrkZNk3Jb6yj+Ivcu0XipbRuRCooKG7KEGfJo9wCHhKTkmNMjlmldRlU3c1r0yCUQkbDWReQOIZxjxImI6lAVM7L7G8ewk4q980XC/Ps2QTY+Luczo3n64Ur8gjSU4E0Fb54kKLRqdMd8m6JkvVG1g= Received: from DB7PR08MB3307.eurprd08.prod.outlook.com (2603:10a6:5:1b::32) by DB6PR0801MB1639.eurprd08.prod.outlook.com (2603:10a6:4:3b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.27; Wed, 8 Jul 2020 02:46:17 +0000 Received: from DB7PR08MB3307.eurprd08.prod.outlook.com ([fe80::e587:39e4:beb7:764f]) by DB7PR08MB3307.eurprd08.prod.outlook.com ([fe80::e587:39e4:beb7:764f%4]) with mapi id 15.20.3153.030; Wed, 8 Jul 2020 02:46:16 +0000 From: Joyce Kong To: David Marchand CC: Maxime Coquelin , "jerinj@marvell.com" , Zhihong Wang , Xiaolong Ye , Beilei Xing , Jeff Guo , "Mcnamara, John" , Matan Azrad , Shahaf Shuler , Viacheslav Ovsiienko , Honnappa Nagarahalli , Phil Yang , Ruifeng Wang , dev , nd Thread-Topic: [dpdk-dev] [PATCH v2 1/6] lib/eal: add a common wrapper for restricted pointers Thread-Index: AQHWVGaPsO2WVgJeHk2Pmd8N+fMhvaj89XaA Date: Wed, 8 Jul 2020 02:46:15 +0000 Message-ID: References: <20200611033248.39049-1-joyce.kong@arm.com> <20200706074930.54299-1-joyce.kong@arm.com> <20200706074930.54299-2-joyce.kong@arm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 75e9f66c-d9b5-45fe-9aca-268772ca43c7.0 x-checkrecipientchecked: true Authentication-Results-Original: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [203.126.0.111] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: b8886898-8f50-4162-0fa6-08d822e91cb8 x-ms-traffictypediagnostic: DB6PR0801MB1639:|VE1PR08MB4800: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:7219;OLM:7219; x-forefront-prvs: 04583CED1A X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: HeF5/hwtd8JLrBnLuzWqCiN98aAUD6xOdgRS/3NsQsGq8SdofEgmtDA7eoSj+XhYHy+VbGRjiM4rmyAwf4j49Yl3HS0Y447+Ff9z1RBuYjRMyEpTRHpvm8joCOTRDOkpMzfV8tpMyIJEmX+JFYp6xKs6jGHbuQftm+WXmwQeocdRIQXddB5qVV5PmfEucLskzwKvCumvGFEFOSoa4skW3KXTrUTPMob9UIJg0UwqWDEvutJ6b9AqPXA9qu9+rqqJgmpkT47ysXr77ZEgcl2/oHufb+MOPQq6S9bZxs6QorTzgVMxeTe1ZHCs9gTYXCsGjzv76UftjVkW26av4GBtJA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR08MB3307.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(396003)(366004)(39850400004)(346002)(136003)(376002)(4326008)(64756008)(52536014)(54906003)(76116006)(66556008)(66476007)(66946007)(9686003)(55016002)(71200400001)(83380400001)(66446008)(186003)(5660300002)(86362001)(8936002)(8676002)(2906002)(6506007)(478600001)(53546011)(6916009)(26005)(316002)(7416002)(7696005)(33656002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: 91OXhO7jgSwmAAitqtROkupjCk1exnBxVk1jHhJP4h9SFG4WngPssQWHRs9SUSs5+dmR4WMKXMBVPF/3m4pcyM1NtNkZkT/B4VBTRu3r3umhidno9CgftlV6jQ+queF8apX9rb6vywZRdoWG9AhY8nzFrjUkoKIN57Hz/VnlJ4JVWTXWap7dMHM32v12QFRdvZ0VDLb/Stdz2J5q/1Asc+2H+Sx5sr7yh1E+hoxCZ0hLBdfa7/NNkFiLx9Klqis7udyFgRNBx2885QOCRA2vZRXrhE2WVbog14nHl4S2LWtTR8dFTKzKJZ3Y3fuz7R5kUQCssxtrS2LeL8l4/vKjVUkwT4i8Xjfwhr0pICTT603h3SQHMhzjScH2ljAOriBnvzSiBMMwswnviEMi4SAvVJg1LoKnoVy1xFfRyzn0fFkbko6ivhs44Yf+Jj7jfg1qfravdanuO0/oIWNSDGqK2ygd7D2x9g16MG6lZxs3EpU= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1639 Original-Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT053.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFTY:; SFS:(4636009)(136003)(376002)(346002)(39850400004)(396003)(46966005)(186003)(9686003)(2906002)(7696005)(8936002)(53546011)(6506007)(83380400001)(26005)(33656002)(6862004)(8676002)(478600001)(316002)(36906005)(356005)(55016002)(82740400003)(81166007)(336012)(4326008)(82310400002)(54906003)(70206006)(70586007)(52536014)(86362001)(47076004)(5660300002); DIR:OUT; SFP:1101; X-MS-Office365-Filtering-Correlation-Id-Prvs: 7ba786cf-5865-4190-de46-08d822e9160c X-Forefront-PRVS: 04583CED1A X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DZPFkFy8YWWhHQ70Klc9JoZrIwMQCN8IePdCbSDLKhMSQDeXIqd8sPv4rDjth2JXJlxkM0BLdA886eGaYVhAYR1Xg4mnWQwyPVEHb+2XccwP3PHykISqPpT8CwBNM7K2VBMjym5fx2SGjoO5hbWDSpzAqRhgIKba+AdAfGQkoGQaKnd4MmBykSyofH8szmycq5U7RbTg5QSJ2Go6UiHpq+HWxKYPvbfW+ij0NuCNWRdbXun5mh5D/x+ijVUtSmiU71C0rg53Nl1rvToSWCfyGrNLrUQPu7+U/TkrNK/MMYBHGsyaaUJ8FLq+PnzMuQwt5Nr0hPSRAm+XJaW1P1UHPIokBxWFEcdr8Z0wV8UkF5/NL3pVLMhTA1TyCajWqjlIrwhHzv4/r57GDA+tjdlVpA== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jul 2020 02:46:27.6924 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b8886898-8f50-4162-0fa6-08d822e91cb8 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT053.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB4800 Subject: Re: [dpdk-dev] [PATCH v2 1/6] lib/eal: add a common wrapper for restricted pointers X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBEYXZpZCBNYXJjaGFuZCA8ZGF2 aWQubWFyY2hhbmRAcmVkaGF0LmNvbT4NCj4gU2VudDogVHVlc2RheSwgSnVseSA3LCAyMDIwIDk6 NTcgUE0NCj4gVG86IEpveWNlIEtvbmcgPEpveWNlLktvbmdAYXJtLmNvbT4NCj4gQ2M6IE1heGlt ZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+OyBqZXJpbmpAbWFydmVsbC5j b207DQo+IFpoaWhvbmcgV2FuZyA8emhpaG9uZy53YW5nQGludGVsLmNvbT47IFhpYW9sb25nIFll DQo+IDx4aWFvbG9uZy55ZUBpbnRlbC5jb20+OyBCZWlsZWkgWGluZyA8YmVpbGVpLnhpbmdAaW50 ZWwuY29tPjsgSmVmZiBHdW8NCj4gPGppYS5ndW9AaW50ZWwuY29tPjsgTWNuYW1hcmEsIEpvaG4g PGpvaG4ubWNuYW1hcmFAaW50ZWwuY29tPjsgTWF0YW4NCj4gQXpyYWQgPG1hdGFuQG1lbGxhbm94 LmNvbT47IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNAbWVsbGFub3guY29tPjsNCj4gVmlhY2hlc2xh diBPdnNpaWVua28gPHZpYWNoZXNsYXZvQG1lbGxhbm94LmNvbT47IEhvbm5hcHBhIE5hZ2FyYWhh bGxpDQo+IDxIb25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPjsgUGhpbCBZYW5nIDxQaGlsLllh bmdAYXJtLmNvbT47DQo+IFJ1aWZlbmcgV2FuZyA8UnVpZmVuZy5XYW5nQGFybS5jb20+OyBkZXYg PGRldkBkcGRrLm9yZz47IG5kDQo+IDxuZEBhcm0uY29tPg0KPiBTdWJqZWN0OiBSZTogW2RwZGst ZGV2XSBbUEFUQ0ggdjIgMS82XSBsaWIvZWFsOiBhZGQgYSBjb21tb24gd3JhcHBlciBmb3INCj4g cmVzdHJpY3RlZCBwb2ludGVycw0KPiANCj4gT24gTW9uLCBKdWwgNiwgMjAyMCBhdCA5OjUwIEFN IEpveWNlIEtvbmcgPGpveWNlLmtvbmdAYXJtLmNvbT4gd3JvdGU6DQo+ID4NCj4gPiBUaGUgJ3Jl c3RyaWN0JyBrZXl3b3JkIGlzIHJlY29nbml6ZWQgaW4gQzk5LCB3aGlsZSB0eXBlIHF1bGlmaWVy DQo+ID4gJ19fcmVzdHJpY3QnIGNvbXBpbGVzIG9rIGluIEMgd2l0aCBhbGwgbGFuZ3VhZ2UgbGV2 ZWxzLiBUaGlzIHBhdGNoIGlzDQo+ID4gdG8gYWRkIGEgd3JhcHBlciBkZWZpbmluZyAnX19ydGVf cmVzdHJpY3QnIHdpdGggJ3Jlc3RyaWN0JyBhbmQNCj4gPiAnX19yZXN0cmljdCcgdG8gYmUgc3Vw cG9ydGVkIGJ5IGFsbCBjb21waWxlcnMuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBKb3ljZSBL b25nIDxqb3ljZS5rb25nQGFybS5jb20+DQo+ID4gLS0tDQo+ID4gIGxpYi9saWJydGVfZWFsL2lu Y2x1ZGUvcnRlX2NvbW1vbi5oIHwgMTAgKysrKysrKysrKw0KPiA+ICAxIGZpbGUgY2hhbmdlZCwg MTAgaW5zZXJ0aW9ucygrKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZWFsL2lu Y2x1ZGUvcnRlX2NvbW1vbi5oDQo+ID4gYi9saWIvbGlicnRlX2VhbC9pbmNsdWRlL3J0ZV9jb21t b24uaA0KPiA+IGluZGV4IDA4NDNjZTY5ZS4uY2RhMzJjMDU2IDEwMDY0NA0KPiA+IC0tLSBhL2xp Yi9saWJydGVfZWFsL2luY2x1ZGUvcnRlX2NvbW1vbi5oDQo+ID4gKysrIGIvbGliL2xpYnJ0ZV9l YWwvaW5jbHVkZS9ydGVfY29tbW9uLmgNCj4gPiBAQCAtMTAzLDYgKzEwMywxNiBAQCB0eXBlZGVm IHVpbnQxNl90IHVuYWxpZ25lZF91aW50MTZfdDsNCj4gPiAgICovDQo+ID4gICNkZWZpbmUgX19y dGVfdW51c2VkIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKQ0KPiA+DQo+ID4gKy8qKg0KPiA+ ICsgKiBEZWZpbmUgYSB3cmFwcGVyIGZvciByZXN0cmljdGVkIHBvaW50ZXJzIHdoaWNoIGNhbiBi ZSBzdXBwb3J0ZWQNCj4gPiArICogYnkgYWxsIGNvbXBpbGVycy4NCj4gPiArICovDQo+ID4gKyNp ZiBfX1NURENfVkVSU0lPTl9fID49IDE5OTkwMQ0KPiA+ICsjZGVmaW5lIF9fcnRlX3Jlc3RyaWN0 IHJlc3RyaWN0DQo+ID4gKyNlbHNlDQo+ID4gKyNkZWZpbmUgX19ydGVfcmVzdHJpY3QgX19yZXN0 cmljdA0KPiA+ICsjZW5kaWYNCj4gPiArDQo+ID4gIC8qKg0KPiA+ICAgKiBkZWZpbml0aW9uIHRv IG1hcmsgYSB2YXJpYWJsZSBvciBmdW5jdGlvbiBwYXJhbWV0ZXIgYXMgdXNlZCBzbw0KPiA+ICAg KiBhcyB0byBhdm9pZCBhIGNvbXBpbGVyIHdhcm5pbmcNCj4gPiAtLQ0KPiA+IDIuMjcuMA0KPiA+ DQo+IA0KPiBUaGlzIHRyaWdnZXJzIGEgYnVpbGQgZXJyb3Igb24gQ2VudG9zIDcgYXMgcmVwb3J0 ZWQgYnkgdGhlIENJLg0KPiBJIHN1cHBvc2UgdGhlIGZvbGxvd2luZyB3b3VsZCBkbyB0aGUgdHJp Y2ssIHRob3VnaCBpdCBpcyB1bnRlc3RlZDoNCj4gDQo+IC8qKg0KPiAgKiBEZWZpbmUgYSB3cmFw cGVyIGZvciByZXN0cmljdGVkIHBvaW50ZXJzIHdoaWNoIGNhbiBiZSBzdXBwb3J0ZWQNCj4gICog YnkgYWxsIGNvbXBpbGVycy4NCj4gICovDQo+ICNpZiAhZGVmaW5lZChfX1NURENfVkVSU0lPTl9f KSB8fCBfX1NURENfVkVSU0lPTl9fIDwgMTk5OTAxTCAjZGVmaW5lDQo+IF9fcnRlX3Jlc3RyaWN0 IF9fcmVzdHJpY3QgI2Vsc2UgI2RlZmluZSBfX3J0ZV9yZXN0cmljdCByZXN0cmljdCAjZW5kaWYN Cj4gDQoNCldpbGwgYWRkIHRoaXMganVkZ2VtZW50IGluIG5leHQgdmVyc2lvbi4NCg0KPiANCj4g LS0NCj4gRGF2aWQgTWFyY2hhbmQNCg0K