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 68301A052B; Tue, 28 Jul 2020 17:39:20 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E449B2B8D; Tue, 28 Jul 2020 17:39:18 +0200 (CEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70081.outbound.protection.outlook.com [40.107.7.81]) by dpdk.org (Postfix) with ESMTP id E64852B86 for ; Tue, 28 Jul 2020 17:39:16 +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=W0qYaUszB14OKYKm9RrgIqXQScay+pTLmYY5OQry+hM=; b=gtVj4AJ77v+ce8YiVydOOck3fNbYrTKvftBRm3TWEaPs7As7ywBxESMQuTNj4eANoUpeXakdQXRwf8CEYeljFbbfH+MssPCrNAa45N/7Eh4G/ajftC1M94n8lbuXsdIbWDGIpgACtCT5ssl9JgzaSISlwT/pNIWLXxVQD0uSo1c= Received: from PR2P264CA0042.FRAP264.PROD.OUTLOOK.COM (2603:10a6:101:1::30) by AM6PR08MB5208.eurprd08.prod.outlook.com (2603:10a6:20b:eb::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.26; Tue, 28 Jul 2020 15:39:14 +0000 Received: from VE1EUR03FT004.eop-EUR03.prod.protection.outlook.com (2603:10a6:101:1:cafe::d5) by PR2P264CA0042.outlook.office365.com (2603:10a6:101:1::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3239.16 via Frontend Transport; Tue, 28 Jul 2020 15:39:14 +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 VE1EUR03FT004.mail.protection.outlook.com (10.152.18.106) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.10 via Frontend Transport; Tue, 28 Jul 2020 15:39:14 +0000 Received: ("Tessian outbound 8f45de5545d6:v62"); Tue, 28 Jul 2020 15:39:13 +0000 X-CR-MTA-TID: 64aa7808 Received: from 1ae3e7e983de.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 11A4E939-33F9-44D7-9445-30DFF35D8203.1; Tue, 28 Jul 2020 15:39:08 +0000 Received: from EUR03-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 1ae3e7e983de.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 28 Jul 2020 15:39:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WNpBdKym/fBnp6iLW5W3Ov2H42Fw5tpwkez5uNdqDbA0JOgEx+EQM/5/bytmznyzd8jDIWfH48d5M1pMeNg4ieiwyYA90K356ERvVoJ7bBnqE49yHj34Imofs9u+WVH3Ab23Y5lYvQJvJn67dDgsM9GvYmq2CB1a2s2e+EXN6NipdVoYsA6ZIJSV3cbzrD589nNZaGy81l/f+urGxbQoNxG1v7kYIS8957QkoLPwG2PYEuzyQqlecTuA5Hylb1MfKH0w57Cf5NdDg6E0TGv424oQJ1s8JUIqll6PAG7xLkCH+F81d+Ng7IfTVKTGJnbevhauF5NUvvXvnCBG7zCcwQ== 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=W0qYaUszB14OKYKm9RrgIqXQScay+pTLmYY5OQry+hM=; b=Y8bAgPCuJtiMYkdnsyENLJuwi2i0G31cWoOFAPq6SKx7zaTseKVbewn9jHvJLwyOq4indICT35+o/GCUEFmNEAZRLHyI5rVYJ7kQRS6iXJHrSzR/bMoCpp/eml9qGl+h2EHy18j9gEapzDUFadoiHoyEx4xilymkGjGTwGZ/nRe3zMk5gYifkq0Vfdz09yC0By2gyMdqOVI1fH6WJdt/kdWvaRDep7vhxepXiTPV1kRlns+VhVnBQORr944LFPFiIkX/enqozdq0/AhefGd0nqsF3OUFDtA9mNVUz+2mYYUwpUOgGXyoMpVF8byDOBU3nKT0I9N9KBL2v3UGIW2LDA== 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=W0qYaUszB14OKYKm9RrgIqXQScay+pTLmYY5OQry+hM=; b=gtVj4AJ77v+ce8YiVydOOck3fNbYrTKvftBRm3TWEaPs7As7ywBxESMQuTNj4eANoUpeXakdQXRwf8CEYeljFbbfH+MssPCrNAa45N/7Eh4G/ajftC1M94n8lbuXsdIbWDGIpgACtCT5ssl9JgzaSISlwT/pNIWLXxVQD0uSo1c= Received: from DB6PR0802MB2216.eurprd08.prod.outlook.com (2603:10a6:4:85::9) by DB6PR0801MB1975.eurprd08.prod.outlook.com (2603:10a6:4:75::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.27; Tue, 28 Jul 2020 15:39:06 +0000 Received: from DB6PR0802MB2216.eurprd08.prod.outlook.com ([fe80::9d1d:207b:e89d:199d]) by DB6PR0802MB2216.eurprd08.prod.outlook.com ([fe80::9d1d:207b:e89d:199d%10]) with mapi id 15.20.3216.034; Tue, 28 Jul 2020 15:39:05 +0000 From: Honnappa Nagarahalli To: =?utf-8?B?R2HDq3RhbiBSaXZldA==?= , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= CC: Parav Pandit , "dev@dpdk.org" , "ferruh.yigit@intel.com" , "thomas@monjalon.net" , Ray Kinsella , Neil Horman , "rasland@mellanox.com" , "orika@mellanox.com" , "matan@mellanox.com" , Joyce Kong , nd , Honnappa Nagarahalli , nd Thread-Topic: [dpdk-dev] [PATCH v10 01/10] eal: introduce macro for bit definition Thread-Index: AQHWYchMrCU7CS5MUE2qwW8u7ExifakXC76QgAQM8qCAASvC0IAAWneAgAAgmgCAAGMe0A== Date: Tue, 28 Jul 2020 15:39:05 +0000 Message-ID: References: <20200610171728.89-2-parav@mellanox.com> <20200724143906.7453-1-parav@mellanox.com> <20200724143906.7453-2-parav@mellanox.com> <98CBD80474FA8B44BF855DF32C47DC35C61160@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35C61169@smartserver.smartshare.dk> <20200728092906.3qmnncichcettmxr@u256.net> In-Reply-To: <20200728092906.3qmnncichcettmxr@u256.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 682e54bd-96e1-4762-81e2-6b40c6e73e1c.0 x-checkrecipientchecked: true Authentication-Results-Original: u256.net; dkim=none (message not signed) header.d=none;u256.net; dmarc=none action=none header.from=arm.com; x-originating-ip: [70.112.90.121] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: ce40bea0-8746-416c-4feb-08d8330c61b6 x-ms-traffictypediagnostic: DB6PR0801MB1975:|AM6PR08MB5208: 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:7691;OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 7i7JfhMmsqj2sis5tV9y5k0FrvsQnEAI/6yb9BDKg0isuUuzGcPbAItPjwkTQplJ2bOJ4HYf9abmmGlTL910ri46OZTa5PxwRiUTLMe62Z2w32gQxM//QkC2xYBUfdMrC6BKveH9H1p5yss57hceqB/xgrQcwtPq+1BDSLBK58CdtQ1s8xiBKDRS1aFFjKs4uavG203cq9WCHOOaBrM3l08jSrl6CTC5g7Xcff0vbG6KidYGjt8JGd/G6ajJ4hdaXHSDKlIfo55H5grw7nFvn0ICYN73xxtWHTRe1Nq3OIp0uidk3GnM62HSlrYmmo4cSyvowcpmGGW+dbzjTfBypVgPFYb/v8wXOR8GUa+nEu1LAQTyNglhapHYsp0F27NE1vNyhKRGDpy9Xp6Y0/rMrw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0802MB2216.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(396003)(136003)(366004)(376002)(346002)(39860400002)(2906002)(64756008)(110136005)(76116006)(66446008)(83380400001)(55016002)(66946007)(8936002)(8676002)(66556008)(33656002)(54906003)(7416002)(316002)(86362001)(66476007)(26005)(9686003)(186003)(5660300002)(66574015)(7696005)(4326008)(478600001)(966005)(53546011)(45080400002)(6506007)(71200400001)(52536014); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: 7egNyXZCeMuFx8bPSh2z1PB0EYN39Y2mxUkwMrlAjSe7hThJywT6c1sqmPCGm0qZEYXzFt2bZvGzlsyr6FnwP+T+ODIOpz6emwm5Swx+bjADwGpB9ZyMnVWYJ7AhNtAPhjqtH8+r4MnOaHBUvA2bBPWGTds4pg4lzxYRnnlzijJK+zKWP0sC6F+7HJHbNURhVuMCBNtfa34C8zw0LbgTxHhtTAwPf9bxENXC2+HRjnoey4Aow1wmUHIOH1x5kGg9/OBA77a02UZ2+eAo0OzDX709O/520Cm/gT9uRySaUyHgPG5fO7SX5FyOh5VdwCciZk2JhfVbrnjVgNFWg5XJGMJfZf2IEBxHS3mMEgTvQfb6EZdII3AvT3jOyZfrINpKJTNNe1cN3J6Fi5nNbd8C7h1XUPqAoRaTQnrIW18+xIcZEpCYzG8Q+b9RdccS1dNR67weavW4yNupgcLMrWi22BVxZ+cOR9vMikq1zdkjv0rC/NHMP4GGbefzwAhOlGC2 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1975 Original-Authentication-Results: u256.net; dkim=none (message not signed) header.d=none;u256.net; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT004.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: d724c667-d8ee-4f4b-fc38-08d8330c5ca6 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TeYCZ1bNSaRzMJXN/grI4rkQlNrQWm3nI4eu4klzVavPjfTeWSH7/rXdjMyP0IqvFphMMx+tLAhlrDcqwZM5HRZms54oYxiV5U0y5xRGO8exUyPZAdxUM68d5lyHQk/3xbPHscTsYF4rzgMi8B2mqmrN5aPUR1YMk+yPNw33omw47MWNPKx5PbwoHjTz8bjxww2AfOP34TKbs7SPdiEU5eUAM3zggny+E2ZMZj9+oHeDiLLio/OvRoiCzO1nFzaq8wQ0CsMurYvNlaLJdizqhQ3dUaqAeOs3xflIlo0+Pfermq9+nihsg26URVag9QSof53iL/YIU0jCvgkj7WUXbPRkUcb/hTvxqdsiERvizzxkohIY5+FRtKwzd5LH3DqWhb9n3zsa2Oqpft12q0sF67QLs3k6wgkiuSGah08oTg/fY9qUGlgtoJXyULxNq/KACUprogZnMnkY+z52f0f5IWllcNQu8LPE1/g5Hh99bX4= 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)(346002)(136003)(376002)(39860400002)(396003)(46966005)(8676002)(36906005)(45080400002)(2906002)(316002)(966005)(9686003)(55016002)(70586007)(70206006)(52536014)(53546011)(86362001)(478600001)(356005)(8936002)(186003)(33656002)(54906003)(110136005)(82740400003)(47076004)(82310400002)(26005)(4326008)(66574015)(5660300002)(83380400001)(7696005)(6506007)(81166007)(336012); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jul 2020 15:39:14.3428 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ce40bea0-8746-416c-4feb-08d8330c61b6 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: VE1EUR03FT004.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB5208 Subject: Re: [dpdk-dev] [PATCH v10 01/10] eal: introduce macro for bit definition 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" PHNuaXA+DQoNCj4gDQo+IE9uIDI4LzA3LzIwIDEwOjI0ICswMjAwLCBNb3J0ZW4gQnLDuHJ1cCB3 cm90ZToNCj4gPiArIFJheSBhbmQgTmVpbCBhcyBBQkkgUG9saWN5IG1haW50YWluZXJzLg0KPiA+ DQo+ID4gPiBGcm9tOiBIb25uYXBwYSBOYWdhcmFoYWxsaSBbbWFpbHRvOkhvbm5hcHBhLk5hZ2Fy YWhhbGxpQGFybS5jb21dDQo+ID4gPiBTZW50OiBUdWVzZGF5LCBKdWx5IDI4LCAyMDIwIDQ6MTkg QU0NCj4gPiA+DQo+ID4gPiA8c25pcD4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gU3ViamVjdDog W2RwZGstZGV2XSBbUEFUQ0ggdjEwIDAxLzEwXSBlYWw6IGludHJvZHVjZSBtYWNybyBmb3INCj4g PiA+IGJpdA0KPiA+ID4gPiA+IGRlZmluaXRpb24NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBU aGVyZSBhcmUgc2V2ZXJhbCBkcml2ZXJzIHdoaWNoIGR1cGxpY2F0ZSBiaXQgZ2VuZXJhdGlvbiBt YWNyby4NCj4gPiA+ID4gPiA+IEludHJvZHVjZSBhIGdlbmVyaWMgYml0IG1hY3JvcyBzbyB0aGF0 IHN1Y2ggZHJpdmVycyBhdm9pZA0KPiA+ID4gcmVkZWZpbmluZw0KPiA+ID4gPiA+IHNhbWUgaW4N Cj4gPiA+ID4gPiA+IG11bHRpcGxlIGRyaXZlcnMuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g U2lnbmVkLW9mZi1ieTogUGFyYXYgUGFuZGl0IDxwYXJhdkBtZWxsYW5veC5jb20+DQo+ID4gPiA+ ID4gPiBBY2tlZC1ieTogTWF0YW4gQXpyYWQgPG1hdGFuQG1lbGxhbm94LmNvbT4NCj4gPiA+ID4g PiA+IEFja2VkLWJ5OiBNb3J0ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPg0K PiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiBDaGFuZ2Vsb2c6DQo+ID4gPiA+ID4gPiB2NC0+ djU6DQo+ID4gPiA+ID4gPiAgLSBBZGRyZXNzZWQgY29tbWVudHMgZnJvbSBNb3J0ZW4gQnLDuHJ1 cA0KPiA+ID4gPiA+ID4gIC0gUmVuYW1lZCBuZXdseSBhZGRlZCBtYWNybyB0byBSVEVfQklUNjQN Cj4gPiA+ID4gPiA+ICAtIEFkZGVkIGRveHlnZW4gY29tbWVudCBzZWN0aW9uIGZvciB0aGUgbWFj cm8NCj4gPiA+ID4gPiA+IHYxLT52MjoNCj4gPiA+ID4gPiA+ICAtIEFkZHJlc3NlZCBjb21tZW50 cyBmcm9tIFRob21hcyBhbmQgR2F0ZW4uDQo+ID4gPiA+ID4gPiAgLSBBdm9pZGVkIG5ldyBmaWxl LCBhZGRlZCBtYWNybyB0byBydGVfYml0b3BzLmgNCj4gPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ ID4gIGxpYi9saWJydGVfZWFsL2luY2x1ZGUvcnRlX2JpdG9wcy5oIHwgOCArKysrKysrKw0KPiA+ ID4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykNCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9lYWwvaW5jbHVkZS9ydGVfYml0b3Bz LmgNCj4gPiA+ID4gPiA+IGIvbGliL2xpYnJ0ZV9lYWwvaW5jbHVkZS9ydGVfYml0b3BzLmgNCj4g PiA+ID4gPiA+IGluZGV4IDc0MDkyN2YzYi4uY2E0NmExMTBmIDEwMDY0NA0KPiA+ID4gPiA+ID4g LS0tIGEvbGliL2xpYnJ0ZV9lYWwvaW5jbHVkZS9ydGVfYml0b3BzLmgNCj4gPiA+ID4gPiA+ICsr KyBiL2xpYi9saWJydGVfZWFsL2luY2x1ZGUvcnRlX2JpdG9wcy5oDQo+ID4gPiA+ID4gPiBAQCAt MTcsNiArMTcsMTQgQEANCj4gPiA+ID4gPiA+ICAjaW5jbHVkZSA8cnRlX2RlYnVnLmg+DQo+ID4g PiA+ID4gPiAgI2luY2x1ZGUgPHJ0ZV9jb21wYXQuaD4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiArLyoqDQo+ID4gPiA+ID4gPiArICogR2V0IHRoZSB1aW50NjRfdCB2YWx1ZSBmb3IgYSBzcGVj aWZpZWQgYml0IHNldC4NCj4gPiA+ID4gPiA+ICsgKg0KPiA+ID4gPiA+ID4gKyAqIEBwYXJhbSBu cg0KPiA+ID4gPiA+ID4gKyAqICAgVGhlIGJpdCBudW1iZXIgaW4gcmFuZ2Ugb2YgMCB0byA2My4N Cj4gPiA+ID4gPiA+ICsgKi8NCj4gPiA+ID4gPiA+ICsjZGVmaW5lIFJURV9CSVQ2NChucikgKFVJ TlQ2NF9DKDEpIDw8IChucikpDQo+ID4gPiA+ID4gSW4gZ2VuZXJhbCwgdGhlIG1hY3JvcyBoYXZl IGJlZW4gYXZvaWRlZCBpbiB0aGlzIGZpbGUuIFN1Z2dlc3QNCj4gPiA+ID4gPiBjaGFuZ2luZyB0 aGlzIHRvIGFuIGlubGluZSBmdW5jdGlvbi4NCj4gPiA+ID4NCj4gPiA+ID4gVGhhdCBoYXMgYmVl biBkaXNjdXNzZWQgYWxyZWFkeSwgYW5kIHJlamVjdGVkIGZvciBnb29kIHJlYXNvbnM6DQo+ID4g PiA+DQo+IGh0dHA6Ly9pbmJveC5kcGRrLm9yZy9kZXYvQU0wUFIwNU1CNDg2NjgyM0IwMTcwQjkw RjY3OUEyNzY1RDE2NDBADQo+ID4gPiA+IEFNMFBSMDVNQjQ4NjYuZXVycHJkMDUucHJvZC5vdXRs b29rLmNvbS8NCj4gPiA+IFRoYW5rIHlvdSBmb3IgdGhlIGxpbmsuDQo+ID4gPiBJbiB0aGlzIHBh dGNoIHNlcmllcywgSSBzZWUgdGhlIG1hY3JvIGJlaW5nIHVzZWQgaW4gZW51bQ0KPiA+ID4gaW5p dGlhbGl6YXRpb24NCj4gPiA+ICg3LzEwIGluIHYxMSkgYXMgd2VsbCBhcyBpbiBmdW5jdGlvbnMg KDgvMTAgaW4gdjExKS4gRG9lcyBpdCBtYWtlDQo+ID4gPiBzZW5zZSB0byBpbnRyb2R1Y2UgdXNl IGlubGluZSBmdW5jdGlvbnMgYW5kIHVzZSB0aGUgaW5saW5lIGZ1bmN0aW9ucw0KPiA+ID4gZm9y IDgvMTA/DQo+ID4gPiBJZiB3ZSBkbyB0aGlzLCB3ZSBzaG91bGQgZG9jdW1lbnQgaW4gcnRlX2Jp dG9wcy5oIHRoYXQgaW5saW5lDQo+ID4gPiBmdW5jdGlvbnMgc2hvdWxkIGJlIHVzZWQgd2hlcmV2 ZXIgcG9zc2libGUuDQo+ID4NCj4gPiBJIHdvdWxkIGFncmVlLCBidXQgb25seSBpbiB0aGVvcnku IEkgZGlzYWdyZWUgaW4gcmVhbGl0eSwgYW5kIGFyZ3VlIHRoYXQgdGhlcmUNCj4gc2hvdWxkIG9u bHkgYmUgbWFjcm9zIGZvciB0aGlzLiBIZXJlIGlzIHdoeToNCj4gPg0KPiA+IHJ0ZV9ieXRlb3Jk ZXIuaCBoYXMgYm90aCBSVEVfQkVubigpIG1hY3JvcyBhbmQgcnRlX2NwdV90b19iZV9ubigpDQo+ IGZ1bmN0aW9ucywgZm9yIGRvaW5nIHRoZSBzYW1lIHRoaW5nIGF0IGNvbXBpbGUgdGltZSBvciBh dCBydW4gdGltZS4gVGhlcmUgYXJlDQo+IG5vIGNvbXBpbGUgdGltZSB3YXJuaW5ncyBpZiB0aGUg d3Jvbmcgb25lIGlzIGJlaW5nIHVzZWQsIHNvIEkgYW0gY2VydGFpbiB0aGF0DQo+IHdlIGNhbiBm aW5kIGNvZGUgdGhhdCB1c2VzIHRoZSBtYWNybyB3aGVyZSB0aGUgZnVuY3Rpb24gc2hvdWxkIGJl IHVzZWQsIG9yDQo+IHZpY2UgdmVyc2EuDQpBZ3JlZSwgdGhlcmUgaXMgbm90IGEgc3VpdGFibGUg d2F5IHRvIGVuZm9yY2UgdGhlIHVzZSBvZiBvbmUgb3ZlciB0aGUgb3RoZXIgKG90aGVyIHRoYW4g Y29kZSByZXZpZXcpLg0KDQpXaGVuIHRoZSBBUElzIGluIHJ0ZV9iaXRvcHMuaCB3ZXJlIGludHJv ZHVjZWQsIHRoZXJlIHdhcyBhIGRpc2N1c3Npb24gYXJvdW5kIHVzaW5nIHRoZSBtYWNyb3MuIEkg d2FzIGZvciB1c2luZyBtYWNyb3MgYXMgaXQgd291bGQgaGF2ZSBrZXB0IHRoZSBjb2RlIGFzIHdl bGwgYXMgbnVtYmVyIG9mIEFQSXMgc21hbGxlci4gSG93ZXZlciwgdGhlcmUgd2FzIGEgZGVjaXNp b24gbWFkZSBub3QgdG8gdXNlIG1hY3JvcyBhbmQgaW5zdGVhZCBwcm92aWRlIGlubGluZSBmdW5j dGlvbnMuIEl0IHdhcyBub3RoaW5nIHRvIGRvIHdpdGggcGVyZm9ybWFuY2UuIFNvLCBJIGFtIGp1 c3Qgc2F5aW5nIHRoYXQgd2UgbmVlZCB0byBmb2xsb3cgdGhlIHNhbWUgcHJpbmNpcGxlcyBhdCBs ZWFzdCBmb3IgdGhpcyBmaWxlLg0KDQo+ID4NCj4gDQo+IEhpLA0KPiANCj4gSXQgaXMgbm90IGNs ZWFyIHRvIG1lLCByZWFkaW5nIHRoaXMgdGhyZWFkLCB3aGF0IGlzIHRoZSBtb3RpdmF0aW9uIHRv IGVuZm9yY2UNCj4gdXNlIG9mIGlubGluZSBmdW5jdGlvbnM/IElzIGl0IHBlcmYsIGNvbXBpbGVy IHR5cGUgY2hlY2tpbmcsIG9yIHVzYWdlIGNoZWNrcz8NCj4gDQo+IE1hY3JvcyBhcmUgY2hlY2tl ZCBhdCBjb21waWxlIHRpbWUgd2hlbiBwb3NzaWJsZSwgdGhvdWdoIGl0IGNhbiBiZQ0KPiBpbXBy b3ZlZCB1cG9uLiBCdXQgSSBhZ3JlZSB3aXRoIE1vcnRlbiwgcHJvcG9zaW5nIHR3byBmb3JtcyBl bnN1cmVzIGRldnMNCj4gd2lsbCBzb21ldGltZXMgdXNlIHRoZSB3cm9uZyBvbmUsIGFuZCB3ZSB3 b3VsZCBuZWVkIGEgcHJhY3RpY2FsIHdheSB0bw0KPiBjaGVjayB1c2FnZXMuDQo+IA0KPiA+IFdo aWNoIG9wZW5zIGFub3RoZXIsIGhpZ2hlciBsZXZlbCwgcXVlc3Rpb246IFdvdWxkIGl0IGJlIHBv c3NpYmxlIHRvIGFkZCBhDQo+IGNvbXBpbGUgdGltZSBjaGVjayBtYWNybyBpbiBydGVfY29tbW9u LmggZm9yIHRoZXNlIGFuZCBzaW1pbGFyPw0KPiA+DQo+IA0KPiBDYW4geW91IGNsYXJpZnkgeW91 ciBpZGVhPyBJcyBpcyBzb21ldGhpbmcgc2ltaWxhciB0bzoNCj4gDQo+ICAgICAjZGVmaW5lIF9C SVQ2NChuKSAoVUlOVDY0X0MoMSkgPDwgKG4pKQ0KPiAgICAgc3RhdGljIGlubGluZSB1aW50NjRf dA0KPiAgICAgYml0NjQodWludDY0X3QgbikNCj4gICAgIHsNCj4gICAgICAgICAgICAgYXNzZXJ0 KG4gPCA2NCk7DQo+ICAgICAgICAgICAgIHJldHVybiAoVUlOVDY0X0MoMSkgPDwgbik7DQo+ICAg ICB9DQo+ICAgICAvKiBJbnRlZ2VyIENvbnN0YW50IEV4cHJlc3Npb24/ICovDQo+ICAgICAjZGVm aW5lIElDRV9QKHgpIChzaXplb2YoaW50KSA9PSBzaXplb2YoKigxID8gKCh2b2lkKikoKHgpICog MGwpKSA6IChpbnQqKTEpKSkNCj4gICAgICNkZWZpbmUgQklUNjQobikgKElDRV9QKG4pID8gX0JJ VDY0KG4pIDogYml0NjQobikpDQo+IA0KPiBJIGRvbid0IHRoaW5rIHNvLCBidXQgdGhpcyBpcyBh cyBjbG9zZSBhcyBhdXRvbWF0aWMgY29tcGlsZS10aW1lIGNoZWNrIGFuZA0KPiBhdXRvbWF0aWMg dXNlIG9mIHByb3BlciBtYWNybyB2cy4gZnVuY3Rpb24gSSBrbm93IG9mLCBkaWQgeW91IGhhdmUg c29tZXRoaW5nDQo+IGVsc2UgaW4gbWluZD8NCj4gDQo+IEluIHRoaXMga2luZCBvZiBjb2RlOg0K PiANCj4gICAgI2luY2x1ZGUgPHN0ZGlvLmg+DQo+ICAgICNpbmNsdWRlIDxzdGRpbnQuaD4NCj4g ICAgI2luY2x1ZGUgPGludHR5cGVzLmg+DQo+ICAgICNpbmNsdWRlIDxhc3NlcnQuaD4NCj4gDQo+ ICAgIGVudW0gdmFscyB7DQo+ICAgICAgICAgICAgWkVSTyA9IDAsDQo+ICAgICAgICAgICAgT05F ID0gQklUNjQoMSksDQo+ICAgICAgICAgICAgVFdPID0gQklUNjQoMiksDQo+ICAgICAgICAgICAg VEhSRUUgPSBCSVQ2NCgzKSwNCj4gICAgfTsNCj4gDQo+ICAgIGludCBtYWluKHZvaWQpDQo+ICAg IHsNCj4gICAgICAgICAgICB1aW50NjRfdCB4ID0gT05FOw0KPiANCj4gICAgICAgICAgICB4ID0g QklUNjQoMCk7DQo+ICAgICAgICAgICAgeCA9IEJJVDY0KDEpOw0KPiAgICAgICAgICAgIHggPSBC SVQ2NCg2MCk7DQo+ICAgICAgICAgICAgeCA9IEJJVDY0KDY0KTsNCj4gICAgICAgICAgICB4ID0g QklUNjQoeCk7DQo+IA0KPiAgICAgICAgICAgIHByaW50ZigieDogMHglIiBQUkl4NjQgIlxuIiwg eCk7DQo+IA0KPiAgICAgICAgICAgIHJldHVybiAwOw0KPiAgICB9DQo+IA0KPiBUaGUgZW51bSBp cyBkZWZpbmVkIHVzaW5nIHRoZSBtYWNybywgeCA9IEJJVDY0KDY0KTsgdHJpZ2dlcnMgdGhlIGZv bGxvd2luZw0KPiB3YXJuaW5nIHdpdGggR0NDOg0KPiANCj4gY29uc3RhbnRfYml0b3AuYzo2OjMy OiB3YXJuaW5nOiBsZWZ0IHNoaWZ0IGNvdW50ID49IHdpZHRoIG9mIHR5cGUgWy1Xc2hpZnQtDQo+ IGNvdW50LW92ZXJmbG93XQ0KPiAgICAgNiB8ICNkZWZpbmUgX0JJVDY0KG4pIChVSU5UNjRfQygx KSA8PCAobikpDQo+IA0KPiBhbmQgeCA9IEJJVDY0KHgpOyB0cmlnZ2VycyB0aGUgYXNzZXJ0KCkg YXQgcnVudGltZS4NCj4gDQo+ID4gRnVydGhlcm1vcmU6IEZvciB0aGUgUlRFX0JJVG5uKCkgb3Bl cmF0aW9ucyBpbiB0aGlzIHBhdGNoIHNldCwgSSBleHBlY3QgdGhlDQo+IGNvbXBpbGVyIHRvIGdl bmVyYXRlIHBlcmZlY3RseSBlZmZpY2llbnQgY29kZSB1c2luZyB0aGUgbWFjcm8gZm9yIHJ1biB0 aW1lIHVzZS4NCj4gSS5lLiB0aGVyZSB3b3VsZCBiZSBubyBwZXJmb3JtYW5jZSBhZHZhbnRhZ2Ug YnkgYWxzbyBpbXBsZW1lbnRpbmcgdGhlDQo+IG1hY3JvcyBhcyBmdW5jdGlvbnMgZm9yIHJ1biB0 aW1lIHVzZS4NCj4gPg0KPiANCj4gUmVnYXJkcywNCj4gLS0NCj4gR2HDq3Rhbg0K