From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8918AA0093; Wed, 9 Nov 2022 09:21:11 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 75510400D7; Wed, 9 Nov 2022 09:21:11 +0100 (CET) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2070.outbound.protection.outlook.com [40.107.20.70]) by mails.dpdk.org (Postfix) with ESMTP id E2FD6400D4 for ; Wed, 9 Nov 2022 09:21:10 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gRnMxiR2TbyfIv3rNYICHwliKicpGcad1nljd2nJVgeJGDuM79w0kTidYHxLrYeG798ypKbPkpd0koSKfFh+1yp47qPpbmtNXnLv4EwTocxPMDY5ZkiOCQzWr952XHj42G2JXqOJ6rQN1ierhjWG/gqCmbRj4mSuY18ozxw1DbmHVxh7bXzsbJQ/NsWZd64u3yQUoShUTDTbL01Pndi+S291/WiW1P/1ZooLLO5BcJkYPrvENsdvkderwzzMYXgl26nJgrVs9cYA2FLMkocL69aVZHu4mgITXYPpdK14bOfBBekDMM3KOx7Y/NQCD/eiHbSQW8lc6bmSWzCUtUFIKw== 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=dHQeVN2XtyRijz5Z9E/q4Ls81X8kI0GH3J1sNa14XwU=; b=fs4uupHcrtXUnvM5rmpFcB7nSgEn6wfsixCSO9r6iWERI7Ay4ZdaYYlUzfYDT6+5qLd5BLmbLxklAR5Jm8jMLemizDCwbWfhVQlwuRLo50QlN2sjQTMBZ2Ceiul5zNaaHzD/p+IhzRQBcke8rVFGSoUjPVQaPk/bZZK9LGAdruq0UouxG3JqRcLGijusOWszALorkpbY0V35dwqj48TMbrtsUUFHilLgXp8+Pca+pUxwTjAJbbCG3DcFYWQ3fRetIlwVNZqThMjnD3WJUSopc8lrhJj/8vDMDFY1c1Lhp6SH7vqzYFZVfy1O9qoRONLzWyLPuvBzQUZMY1cwYJWspg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dHQeVN2XtyRijz5Z9E/q4Ls81X8kI0GH3J1sNa14XwU=; b=Zk98G5eQd2upZKTLtYl+Z/iLjy4itD6Zyc5RzjcnPv9X42J4iAJz/GYFS4QKJxS6jr+uo9TXIhpEhIkQ7gyHTW3y3xmBwfzH/G95Jq9oZ7jlpQdJ/r8Ig+KzpMewt0VDGayaADyOaFb4AiM2wM9RP0ALkCo8ksv3rnBToBu+1JU= Received: from DB7PR07MB5978.eurprd07.prod.outlook.com (2603:10a6:10:80::15) by PA4PR07MB7342.eurprd07.prod.outlook.com (2603:10a6:102:f7::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.27; Wed, 9 Nov 2022 08:21:09 +0000 Received: from DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::65db:96fa:f30a:2df1]) by DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::65db:96fa:f30a:2df1%6]) with mapi id 15.20.5791.027; Wed, 9 Nov 2022 08:21:08 +0000 From: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , Konstantin Ananyev , Bruce Richardson , Thomas Monjalon CC: "andrew.rybchenko@oktetlabs.ru" , "olivier.matz@6wind.com" , "david.marchand@redhat.com" , "dev@dpdk.org" , "hofors@lysator.liu.se" , "stephen@networkplumber.org" , "jerinj@marvell.com" Subject: Re: FW: [PATCH v4 3/3] mempool: use cache for frequently updated stats Thread-Topic: FW: [PATCH v4 3/3] mempool: use cache for frequently updated stats Thread-Index: AQHY8EWGJHVmHQn4qECYwEvekL7ida40xLXwgAAcq8CAAAcqEIAAJACAgAAQHYCAABamgIAAAkcAgAAblgCAAL9igIAAN1gA Date: Wed, 9 Nov 2022 08:21:08 +0000 Message-ID: References: <98CBD80474FA8B44BF855DF32C47DC35D874A1@smartserver.smartshare.dk> <6110999.17fYzF0512@thomas> <98CBD80474FA8B44BF855DF32C47DC35D874A3@smartserver.smartshare.dk> <2028060.trqCLbgVIZ@thomas> <74775cadd8174c3797b4076929ebbcb7@huawei.com> <98CBD80474FA8B44BF855DF32C47DC35D874A4@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35D874A4@smartserver.smartshare.dk> Accept-Language: en-US, sv-SE Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DB7PR07MB5978:EE_|PA4PR07MB7342:EE_ x-ms-office365-filtering-correlation-id: b23a20a1-dfca-4f03-58dd-08dac22b5ac3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: SnsgrOuwyFd4AxpKYPuEPLjrqeO04xBqYp8IF2H9orGQqlhlTzLRvFsjvNbU/9dLDsfT4ebnFTJ3hANF7AJ4U8NxuE05qogNANEtEG+FAt0lKjHyXc4ey4Sq5TK0NuXvaIJBxdylldNMiV+7505/PkJWxOs0lmAgsDGEXSkJs//gQc1SFZ8DDcIT+J8R7qb21L20HcKjRE6dpsq92v8FGBULRdXP+WdT9uQq0Xga9gnaJEexkg/oT1zMXRuO6enc5OKTvML+6kRzl6ry4+uP+IggszueDHFAwY1jZY0xCbKpYVUpQ9Mn4Q+Qzuu+BVv+Dz/UgVVYWxU39F2+puvG5I084rOBmj2iqTKGJ6Jl2hCx5107VmkqdSca9DxkCZ/RiJ9ef8Zgm3IVgwHrhcWgBwubd5xDXeouv6dyRLgA4m+QLXx4ekkLukwz1GC1VLtdjVVceQbwtCnEERCk1YRpEAHybd63q6D6BAHCVaOT4hAqDZ330hhWCCK2SMsNspp4T6ErLwQwdwMRKU1aJm6NfLyKrUKVOHCYR3Y/6EOQty1SuVgeBdwVMMgLHs0QnKbHuA7wmNbojEPXnNcgtQZ5TFnVZE5khETdY5n7wPjMBC4ThbjjyBKJBRTZh/sYeTptoE2qvC9/YAIEAkyeJYDA08I96rpn6NMJ7ljdjKjKI+ZPlJ6ZcpWzxKRxDPqy18W4qkVStTazoa0Qg+euFYmc/zg4v+ZENWN384dyIM5ZuyI8PqOBo0Q0R0Ldi0oJLPx0Al+0t/5J8ii34/D/u5E5L4M6xS6uksMPvD4DCgFzHnxIeiGrPIWO99TXXSyObLMD9MC2S0FTcTst3c2aBC7C5UNUPPyHdJUuUi6umkP9Cqs= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR07MB5978.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(376002)(366004)(396003)(346002)(39860400002)(136003)(451199015)(966005)(6486002)(54906003)(71200400001)(110136005)(316002)(64756008)(478600001)(66446008)(66476007)(8676002)(4326008)(6512007)(6506007)(53546011)(31686004)(66556008)(26005)(76116006)(66946007)(2906002)(41300700001)(5660300002)(85202003)(66574015)(15650500001)(8936002)(186003)(7416002)(2616005)(83380400001)(36756003)(122000001)(38100700002)(85182001)(82960400001)(38070700005)(31696002)(86362001)(45980500001)(43740500002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OWdnTFhoaVM0UFY5QzE0aU80QlJVZkZhUzhzWEswQTBmbGVrNXF0WGpTdnFG?= =?utf-8?B?QjYyUTZLZ3FCVStCOHRhOUVETGJOaERtSzdGMXBCSWVHeWVUYVNPWWR5SnFv?= =?utf-8?B?V0wxZmdma3h0d01xbDJ0MXk1cmxmZUV6S0kzdHcySzVzaDh5US9UeHB5UUpY?= =?utf-8?B?eWtLQ1RpVGxVc1h4V0lPV2hIOGxJWUpvQlBKSSs0Z3Z4UnQvYklWMEd4Ri9P?= =?utf-8?B?eFF1aE5ZRmVncXVDVnpBYXpGdDBMS3dkMFVNaUdKb1c1b1dqZmtoQXIyaVd1?= =?utf-8?B?UmNwTmdkSVRvU2dLOTJkV3Z0RjMwZ1pwUlFCMmN0QW5QU1hpWXZ5VjRvRThV?= =?utf-8?B?My9tVUo2WVpTREVBTHNVYUREV0JqL3JkVWFNS3FtRldNVlcvdXlqYklnSGtY?= =?utf-8?B?L3RRU1YrZWNnME1lWHhlWndBYnB2RjZBUDE2S0lRUnZ5YVhGMXQ0cHZ4ZlFD?= =?utf-8?B?cmp1NnpOMGlUd25Zd2J2QzU3WjB3OStseHV6TDdSbUxncUZvZGdCSjI1QTVC?= =?utf-8?B?N3RjYURYZFdncmJDWW9ZV2p1dnhHektOZUp4OVMrZEZKZ05iMzk4U2FxY3NE?= =?utf-8?B?eTlnYVZSeno1VXBLK0NucGFOL2hITGdYVjlIY0dlWXFaK1lTcFg4eXlFMWV3?= =?utf-8?B?dzJzd0k3WDJhRklFSVNZZjI5RXBSaEl6NTJ0ODNiWCtsVFNHUjhPai83OGR5?= =?utf-8?B?R0RLaEVPOE9EeWs5dFJ0MHNVT3grQWdwT3ZjSVJiaTNOeldqVGw2bE03WDdS?= =?utf-8?B?MWhZMU1oUGRJNGk5eExxanc2MWNEcnVyT0c1V3BTRk9BZnJnbG9ZS29XSllU?= =?utf-8?B?VzJNL2JGc2ZuSGxGK1NCcExSekRxWVI0ZUtROXpmSlV4TGlGcGc1MU0yaThx?= =?utf-8?B?UTRRd0tXdXFpQ3VOaEVjUU11SGM5NllHQzA5WEROR295cnllaGtNUXVNV0Jl?= =?utf-8?B?MmgzTHoxeVZuamZpNE1MWEx2MmY5WGNaSGVYOEI0RHY5QTVuaXNnSDI1QVRF?= =?utf-8?B?UHNHNjBYRHpBSmJVMDZzTHNLY2ZTMDdRZnFERHlBSmpVNVZocjFqeGl2UVRu?= =?utf-8?B?ZEJOV3dvbzh5VnhkOSswQlZHMGZRNzBuYkl1TW5KbmtxTGEwcEZWRTFtYjh3?= =?utf-8?B?NDRzOERYbjF1WVdqV0h6SVlXTHJhSFM4MnR1N1VqdjRleTJ0Y0xIelRTVm95?= =?utf-8?B?TmJCcjQ2MjJTaUFkbGNlNEhGS2o3dU5VOUdPRUsvc0owWnNkSHFaazFZTkVL?= =?utf-8?B?cDYyaXlNeStUbERrWldpQkIybmFlUndlZlRnUnZjcFJNZ1lVSlVzTVpBYlR5?= =?utf-8?B?V29ZQkdrSDlDcnZhVURMeHQ2ZDd4T3JNYzlwT3RWdWltVTZCak13djRROWZQ?= =?utf-8?B?L0FzZUNrMHR4YmJjOFltRndLM09XWWU0TWUzVHg2TnhERmJ4NnN2ZXR2M21Z?= =?utf-8?B?SWw2K2c1OW05VGtjSXhSS2d2V3hzN1BsRTI1TktBRlExT2JsMFNtUUdQenRO?= =?utf-8?B?RmJzS2RheWk0L3UzbWR6YTZGcTJXQnh4TTJFL1k3U1o4L2Z0RlQrK0J5UExQ?= =?utf-8?B?U09zRm5qVmNqRS85bzFyT2IvUFd1ZnJ2Sjh5S0N6dGVVU0ErS2xQOEhMTXpW?= =?utf-8?B?S1ZrYXNHUi9Rb3plaTdkczdtc3g2RVZvSWpwV0pEWVh6SzFTQTYzL1FheVY0?= =?utf-8?B?SlptK3dpdHh6OWRVOTEyRGN5eWJrZ25HY3dONGJibDEyNy9sSnF4TE0vZ2ZH?= =?utf-8?B?Nmd2SnFLRVFvTFFvOEcreGJEOS9ZU0JaMFIvTW1VUWt6a3VEY0w2KzJuNjQ2?= =?utf-8?B?Ni9Bc0lFc3BzMUZxczYvOFI2N3ZSYVowajdvRW9tTkxMWmpqSitYZ1JkZjNL?= =?utf-8?B?RlhRZFFWZWNkNmJLeEUxWTNHeWVjY28vTjV6bkE1Rnc3UWtPblU5WkhKVFFs?= =?utf-8?B?Ni9IYm9nSnp0a0NqajlsbEtYSzdONXZ5ajZiRGozSzFQWW1Zek51UGJsV2Np?= =?utf-8?B?TExveVN3bU1LQkdldDhJVjBIU1hmWU5UQXduZkRKMDhYL3hXZ29Ramx1TkVJ?= =?utf-8?B?TGUzLy9BMmhmN0N3V3Y0QUQ1VWpCR3d2Z05zYTJ2TmJ5ZVZtNTNTenVOZ3Bt?= =?utf-8?B?NjVqRXV2TXFkT3VKc29MbHhwc3FPQVRHZ1RLTjNGV241MThoL0dtYVBheTdO?= =?utf-8?B?REE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <0977436EBF0B594B84D6FE7DBC338E1D@eurprd07.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB7PR07MB5978.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b23a20a1-dfca-4f03-58dd-08dac22b5ac3 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Nov 2022 08:21:08.8011 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: D4/DX87C5ggfZGPlXCcbKVnawjRVI2/OyRTzK1+SYBkov7hZuE3KivVeMAJ9kGgnIwDbHYZYVQrxqhebfjHvKJpsMaQOeo8sJwF8PCFM+z4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR07MB7342 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org T24gMjAyMi0xMS0wOSAwNjowMywgTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+PiBGcm9tOiBLb25z dGFudGluIEFuYW55ZXYgW21haWx0bzprb25zdGFudGluLmFuYW55ZXZAaHVhd2VpLmNvbV0NCj4+ IFNlbnQ6IFR1ZXNkYXksIDggTm92ZW1iZXIgMjAyMiAxOC4zOA0KPj4+DQo+Pj4gT24gVHVlLCBO b3YgMDgsIDIwMjIgYXQgMDQ6NTE6MTFQTSArMDEwMCwgVGhvbWFzIE1vbmphbG9uIHdyb3RlOg0K Pj4+PiAwOC8xMS8yMDIyIDE1OjMwLCBNb3J0ZW4gQnLDuHJ1cDoNCj4+Pj4+PiBGcm9tOiBUaG9t YXMgTW9uamFsb24gW21haWx0bzp0aG9tYXNAbW9uamFsb24ubmV0XQ0KPj4+Pj4+IDA4LzExLzIw MjIgMTI6MjUsIE1vcnRlbiBCcsO4cnVwOg0KPj4+Pj4+PiBGcm9tOiBNb3J0ZW4gQnLDuHJ1cA0K Pj4+Pj4+Pj4gRnJvbTogS29uc3RhbnRpbiBBbmFueWV2DQo+PiBbbWFpbHRvOmtvbnN0YW50aW4u YW5hbnlldkBodWF3ZWkuY29tXQ0KPj4+Pj4+Pj4gU2VudDogVHVlc2RheSwgOCBOb3ZlbWJlciAy MDIyIDEwLjIwDQo+Pj4+Pj4+Pj4gKyNpZmRlZiBSVEVfTElCUlRFX01FTVBPT0xfU1RBVFMNCj4+ Pj4+Pj4+PiArI2RlZmluZSBSVEVfTUVNUE9PTF9DQUNIRV9TVEFUX0FERChjYWNoZSwgbmFtZSwg bikNCj4+IChjYWNoZSktDQo+Pj4+Pj4+IGh0dHBzOi8vcHJvdGVjdDIuZmlyZWV5ZS5jb20vdjEv dXJsP2s9MzEzMjMzMzQtNTAxZDUxMjItMzEzMjczYWYtNDU0NDQ1NTU1NzMxLTI3YTg1OWU3ZWMx MzAzNWEmcT0xJmU9YTEyMGUyOGUtY2FhNy00NzgzLTk2ODYtNTg2OGM4NzE1NTNkJnU9aHR0cCUz QSUyRiUyRnN0YXRzLm5hbWUlMkYgKz0gbg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IEFzIEFuZHJldyBh bHJlYWR5IHBvaW50ZWQsIGl0IG5lZWRzIHRvIGJlOiAoKGNhY2hlKS0NCj4+PiBodHRwczovL3By b3RlY3QyLmZpcmVleWUuY29tL3YxL3VybD9rPTMxMzIzMzM0LTUwMWQ1MTIyLTMxMzI3M2FmLTQ1 NDQ0NTU1NTczMS0yN2E4NTllN2VjMTMwMzVhJnE9MSZlPWExMjBlMjhlLWNhYTctNDc4My05Njg2 LTU4NjhjODcxNTUzZCZ1PWh0dHAlM0ElMkYlMkZzdGF0cy5uYW1lJTJGICs9DQo+Pj4+Pj4gKG4p KQ0KPj4+Pj4+Pj4gQXBhcnQgZnJvbSB0aGF0LCBMR1RNLg0KPj4+Pj4+Pj4gU2VyaWVzLUFja2Vk LWJ5OiBLb25zdGFudGluIEFuYW55ZXYNCj4+IDxrb25zdGFudGluLmFuYW55ZXZAaHVhd2VpLmNv bT4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gQFRob21hcywgdGhpcyBzZXJpZXMgc2hvdWxkIGJlIHJlYWR5 IHRvIGFwcGx5Li4uIGl0IG5vdyBoYXMNCj4+IGJlZW46DQo+Pj4+Pj4+IFJldmlld2VkLWJ5OiAo bWVtcG9vbCBtYWludGFpbmVyKSBBbmRyZXcgUnliY2hlbmtvDQo+Pj4+Pj4gPGFuZHJldy5yeWJj aGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPj4+Pj4+PiBSZXZpZXdlZC1CeTogTWF0dGlhcyBSw7ZubmJs b20gPG1hdHRpYXMucm9ubmJsb21AZXJpY3Nzb24uY29tPg0KPj4+Pj4+PiBBY2tlZC1ieTogS29u c3RhbnRpbiBBbmFueWV2IDxrb25zdGFudGluLmFuYW55ZXZAaHVhd2VpLmNvbT4NCj4+Pj4+Pg0K Pj4+Pj4+IEJlaW5nIGFja2VkIGRvZXMgbm90IG1lYW4gaXQgaXMgZ29vZCB0byBhcHBseSBpbiAt cmMzLg0KPj4+Pj4NCj4+Pj4+IEkgdW5kZXJzdGFuZCB0aGF0IHRoZSBSRkMvdjEgb2YgdGhpcyBz ZXJpZXMgd2FzIGZvcm1hbGx5IHRvbyBsYXRlDQo+PiB0byBtYWtlIGl0IGluIDIyLjExLCBzbyBJ IHdpbGwgbm90IGNvbXBsYWluIGxvdWRseSBpZiB5b3UgY2hvb3NlIHRvDQo+Pj4gb21pdCBpdCBm b3IgMjIuMTEuDQo+Pj4+Pg0KPj4+Pj4gV2l0aCB0d28gaW5kZXBlbmRlbnQgcmV2aWV3cywgaW5j bHVkaW5nIGZyb20gYSBtZW1wb29sDQo+PiBtYWludGFpbmVyLCBJIHN0aWxsIGhhdmUgc29tZSBo b3BlLiBBbHNvIGNvbnNpZGVyaW5nIHRoZSByaXNrDQo+PiBhc3Nlc3NtZW50DQo+Pj4gYmVsb3cu IDstKQ0KPj4+Pj4NCj4+Pj4+PiBQbGVhc2UgdGVsbCB3aGF0IGlzIHRoZSBiZW5lZml0IGZvciAy Mi4xMSAoYmVmb3JlL2FmdGVyIGFuZA0KPj4gY29uZGl0aW9uKS4NCj4+Pj4+DQo+Pj4+PiBTaG9y dCB2ZXJzaW9uOiBXaXRoIHRoaXMgc2VyaWVzLCBtZW1wb29sIHN0YXRpc3RpY3MgY2FuIGJlIHVz ZWQNCj4+IGluIHByb2R1Y3Rpb24uIFdpdGhvdXQgaXQsIHRoZSBwZXJmb3JtYW5jZSBjb3N0DQo+ Pj4gKG1lbXBvb2xfcGVyZl9hdXRvdGVzdDogLTc0ICUpIGlzIHByb2hpYml0aXZlIQ0KPj4+Pj4N Cj4+Pj4+IExvbmcgdmVyc2lvbjoNCj4+Pj4+DQo+Pj4+PiBUaGUgcGF0Y2ggc2VyaWVzIHByb3Zp ZGVzIHNpZ25pZmljYW50bHkgaGlnaGVyIHBlcmZvcm1hbmNlIGZvcg0KPj4gbWVtcG9vbCBzdGF0 aXN0aWNzLCB3aGljaCBhcmUgcmVhZGFibGUgdGhyb3VnaA0KPj4+IHJ0ZV9tZW1wb29sX2R1bXAo RklMRSAqZiwgc3RydWN0IHJ0ZV9tZW1wb29sICptcCkuDQo+Pj4+Pg0KPj4+Pj4gV2l0aG91dCB0 aGlzIHNlcmllcywgeW91IGhhdmUgdG8gc2V0IFJURV9MSUJSVEVfTUVNUE9PTF9ERUJVRyBhdA0K Pj4gYnVpbGQgdGltZSB0byBnZXQgbWVtcG9vbCBzdGF0aXN0aWNzLg0KPj4+IFJURV9MSUJSVEVf TUVNUE9PTF9ERUJVRyBhbHNvIGVuYWJsZXMgcHJvdGVjdGl2ZSBjb29raWVzIGJlZm9yZSBhbmQN Cj4+IGFmdGVyIGVhY2ggbWVtcG9vbCBvYmplY3QsIHdoaWNoIGFyZSBhbGwgdmVyaWZpZWQgb24N Cj4+PiBnZXQvcHV0IGZyb20gdGhlIG1lbXBvb2wuIEFjY29yZGluZyB0byBtZW1wb29sX3BlcmZf YXV0b3Rlc3QsIHRoZQ0KPj4gcGVyZm9ybWFuY2UgY29zdCBvZiBtZW1wb29sIHN0YXRpc3RpY3Mg KGJ5IHNldHRpbmcNCj4+PiBSVEVfTElCUlRFX01FTVBPT0xfREVCVUcpIGlzIGEgNzQgJSBkZWNy ZWFzZSBpbiByYXRlX3BlcnNlYyBmb3INCj4+IG1lbXBvb2xzIHdpdGggY2FjaGUgKGkuZS4gbWJ1 ZiBwb29scykuIFByb2hpYml0aXZlIGZvciB1c2UgaW4NCj4+PiBwcm9kdWN0aW9uIQ0KPj4+Pj4N Cj4+Pj4+IFdpdGggdGhpcyBzZXJpZXMsIHRoZSBwZXJmb3JtYW5jZSBjb3N0IG9mIG1lbXBvb2wg c3RhdGlzdGljcyAoYnkNCj4+IHNldHRpbmcgUlRFX0xJQlJURV9NRU1QT09MX1NUQVRTKSBpbg0K Pj4+IG1lbXBvb2xfcGVyZl9hdXRvdGVzdCBpcyBvbmx5IDYuNyAlLCBzbyBtZW1wb29sIHN0YXRp c3RpY3MgY2FuIGJlDQo+PiB1c2VkIGluIHByb2R1Y3Rpb24uDQo+Pj4+Pg0KPj4+Pj4+IE5vdGUg dGhlcmUgaXMgYSByZWFsIHJpc2sgZG9pbmcgc3VjaCBjaGFuZ2UgdGhhdCBsYXRlLg0KPj4+Pj4N Cj4+Pj4+IFJpc2sgYXNzZXNzbWVudDoNCj4+Pj4+DQo+Pj4+PiBUaGUgcGF0Y2ggc2VyaWVzIGhh cyB6ZXJvIGVmZmVjdCB1bmxlc3MgZWl0aGVyDQo+PiBSVEVfTElCUlRFX01FTVBPT0xfREVCVUcg b3IgUlRFX0xJQlJURV9NRU1QT09MX1NUQVRTIGFyZSBzZXQgd2hlbg0KPj4+IGJ1aWxkaW5nLiBU aGV5IGFyZSBub3Qgc2V0IGluIHRoZSBkZWZhdWx0IGJ1aWxkLg0KPj4+Pg0KPj4+PiBJZiB0aGVz ZXMgYnVpbGQgZmxhZ3MgYXJlIG5vdCBzZXQsIHRoZXJlIGlzIG5vIHJpc2sgYW5kIG5vIGJlbmVm aXQuDQo+Pj4+IEJ1dCBpZiB0aGV5IGFyZSBzZXQsIHRoZXJlIGlzIGEgcmlzayBvZiByZWdyZXNz aW9uLA0KPj4+PiBmb3IgdGhlIGJlbmVmaXQgb2YgYW4gaW5jcmVhc2VkIHBlcmZvcm1hbmNlIG9m IGEgZGVidWcgZmVhdHVyZS4NCj4+Pj4gSSB3b3VsZCBzYXkgaXQgaXMgYmV0dGVyIHRvIGF2b2lk IGFueSBmdW5jdGlvbmFsIHJlZ3Jlc3Npb24gaW4gYQ0KPj4gZGVidWcgZmVhdHVyZQ0KPj4+PiBh dCB0aGlzIHN0YWdlLg0KPj4+PiBBbnkgb3RoZXIgb3Bpbmlvbj8NCj4+Pj4NCj4+PiBXaGlsZSBJ IGFncmVlIHRoYXQgd2Ugc2hvdWxkIGF2b2lkIGFueSBmdW5jdGlvbmFsIHJlZ3Jlc3Npb24sIEkN Cj4+IHdvbmRlciBob3cNCj4+PiB3aWRlbHkgdXNlZCB0aGUgZGVidWcgZmVhdHVyZSBpcywgYW5k IGhvdyBiaWcgdGhlIHJpc2sgb2YgYQ0KPj4gcmVncmVzc2lvbiBpcz8NCj4+PiBFdmVuIGlmIHRo ZXJlIGlzIG9uZSwgaGF2aW5nIGEgcmVncmVzc2lvbiBpbiBhIGRlYnVnIGZlYXR1cmUgaXMgYSBs b3QNCj4+IGxlc3MNCj4+PiBzZXJpb3VzIHRoYW4gaGF2aW5nIG9uZSBpbiBzb21ldGhpbmcgd2hp Y2ggZ29lcyBpbnRvIHByb2R1Y3Rpb24uDQo+Pj4NCj4+DQo+PiBVbmxlc3MgaXQgaW50cm9kdWNl cyBhbiBBQkkgYnJlYWthZ2UgKGFzIEkgdW5kZXJzdGFuZCBpdCBkb2Vzbid0KSwgSSdsbA0KPj4g d2FpdCB0aWxsIDIzLjAzLg0KPj4gSnVzdCBpbiBjYXNlLg0KPiANCj4gSWYgYnVpbHQgKGJvdGgg YmVmb3JlIGFuZCBhZnRlciB0aGlzIHNlcmllcykgd2l0aG91dCBSVEVfTElCUlRFX01FTVBPT0xf REVCVUcgKGFuZCB3aXRob3V0IFJURV9MSUJSVEVfTUVNUE9PTF9TVEFUUywgd2hpY2ggaXMgaW50 cm9kdWNlZCBieSB0aGUgc2VyaWVzKSwgdGhlcmUgaXMgbm8gQUJJIGJyZWFrYWdlLg0KPiANCj4g SWYgYnVpbHQgKGJvdGggYmVmb3JlIGFuZCBhZnRlciB0aGlzIHNlcmllcykgd2l0aCBSVEVfTElC UlRFX01FTVBPT0xfREVCVUcgKGFuZCB3aXRob3V0IFJURV9MSUJSVEVfTUVNUE9PTF9TVEFUUyks IHRoZSBBQkkgZGlmZmVycyBiZXR3ZWVuIGJlZm9yZSBhbmQgYWZ0ZXIgdGhpcyBzZXJpZXM6IFRo ZSBzdGF0cyBhcnJheSBkaXNhcHBlYXJzIGZyb20gc3RydWN0IHJ0ZV9tZW1wb29sLCBhbmQgdGhl IG91dHB1dCBmcm9tIHJ0ZV9tZW1wb29sX2R1bXAoKSBkb2VzIG5vdCBpbmNsdWRlIHRoZSBzdGF0 aXN0aWNzLg0KPiANCj4gSWYgYnVpbHQgKGJvdGggYmVmb3JlIGFuZCBhZnRlciB0aGlzIHNlcmll cykgd2l0aCBSVEVfTElCUlRFX01FTVBPT0xfREVCVUcgKGFuZCB3aXRoIFJURV9MSUJSVEVfTUVN UE9PTF9TVEFUUyksIHRoZSBBQkkgYWxzbyBkaWZmZXJzIGJldHdlZW4gYmVmb3JlIGFuZCBhZnRl ciB0aGlzIHNlcmllczogVGhlIHNpemUgb2YgdGhlIHN0YXRzIGFycmF5IGluIHN0cnVjdCBydGVf bWVtcG9vbCBncm93cyBieSBvbmUgZWxlbWVudC4NCj4gDQo+PiBCVFcsIGFzIGEgc2lkZSB0aG91 Z2h0IC0gaWYgdGhlIGltcGFjdCBpcyByZWFsbHkgdGhhdCBzbWFsbCBub3csIHdvdWxkDQo+PiBp dCBtYWtlIHNlbnNlIHRvIG1ha2UNCj4+IGl0IHJ1bi10aW1lIG9wdGlvbiwgaW5zdGVhZCBvZiBj b21waWxlLXRpbWUgb25lPw0KPiANCj4gVGhlIG1lbXBvb2wgZ2V0L3B1dCBmdW5jdGlvbnMgYXJl IHZlcnkgbGVhbiB3aGVuIGJ1aWx0IHdpdGhvdXQgU1RBVFMgb3IgREVCVUcuIFdpdGggYSBydW50 aW1lIG9wdGlvbiwgdGhlIHJlc3VsdGluZyBjb2RlIHdvdWxkIGJlIHNsaWdodGx5IGxvbmdlciwg YW5kIG9ubHkgb25lIGFkZGl0aW9uYWwgY29uZGl0aW9uYWwgd291bGQgYmUgaGl0IGluIHRoZSBj b21tb24gY2FzZSAoaS5lLiB3aGVuIHRoZSBvYmplY3RzIGRvbid0IG1pc3MgdGhlIG1lbXBvb2wg Y2FjaGUpLiBTbyB3aXRoIHN0YXRzIGRpc2FibGVkIChhdCBydW50aW1lKSwgaXQgd291bGQgb25s eSBhZGQgYSB2ZXJ5IHNtYWxsIHBlcmZvcm1hbmNlIGNvc3QuIEhvd2V2ZXIsIGNoZWNraW5nIHRo ZSB2YWx1ZSBvZiB0aGUgZW5hYmxlZC9kaXNhYmxlZCB2YXJpYWJsZSBjYW4gY2F1c2UgYSBDUFUg Y2FjaGUgbWlzcywgd2hpY2ggaGFzIGEgcGVyZm9ybWFuY2UgY29zdC4gQW5kIHRoZSBlbmFibGVk L2Rpc2FibGVkIHZhcmlhYmxlIHNob3VsZCBkZWZpbml0ZWx5IGJlIGdsb2JhbCAtIGlmIGl0IGlz IHBlciBtZW1wb29sLCBpdCB3aWxsIGNhdXNlIG1hbnkgQ1BVIGNhY2hlIG1pc3NlcyAoYmVjYXVz ZSB0aGUgY29tbW9uIGNhc2UgZG9lc24ndCB0b3VjaCB0aGUgbWVtcG9vbCBzdHJ1Y3R1cmUsIG9u bHkgdGhlIG1lbXBvb2wgY2FjaGUgc3RydWN0dXJlKS4NCj4gDQoNCkl0J3Mgbm90IHRvdGFsbHkg b2J2aW91cyB0aGF0IGEgY29uZGl0aW9uYWwgaXMgYmV0dGVyIHRoYW4ganVzdCBhbHdheXMgDQpw ZXJmb3JtaW5nIHRoZXNlIHNpbXBsZSBhcml0aG1ldGljIG9wZXJhdGlvbnMsIGV2ZW4gaWYgeW91 IGRvbid0IGtub3cgaWYgDQp5b3UgbmVlZCB0aGUgcmVzdWx0IChpLmUuLCBpZiBzdGF0cyBpcyBl bmFibGVkIG9yIG5vdCksIGVzcGVjaWFsbHkgc2luY2UgDQp0aGV5IG9wZXJhdGUgb24gYSBjYWNo ZSBsaW5lIHRoYXQgaXMgdmVyeSBsaWtlbHkgYWxyZWFkeSBvd25lZCBieSB0aGUgDQpjb3JlIHJ1 bm5pbmcgdGhlIGNvcmUgKHNpbmNlIHRoZSAnbGVuJyBmaWVsZHMgaXMgZnJlcXVlbnRseSB1c2Vk KS4NCg0KPiBBbHNvLCBjaGVja2luZyB0aGUgcnVudGltZSBvcHRpb24gc2hvdWxkIGhhdmUgdW5s aWtlbHkoKSwgc28gdGhlIHBlcmZvcm1hbmNlIGNvc3Qgb2YgdGhlIHN0YXRzICh3aGVuIGVuYWJs ZWQgYXQgcnVudGltZSkgaXMgYWxzbyBoaWdoZXIgdGhhbiB3aXRoIGEgYnVpbGQgdGltZSBvcHRp b24uIChZZXMsIGR5bmFtaWMgYnJhbmNoIHByZWRpY3Rpb24gd2lsbCBhbGxldmlhdGUgbW9zdCBv ZiB0aGlzLCBidXQgaXQgd2lsbCBjb25zdW1lIGVudHJpZXMgaW4gdGhlIGJyYW5jaCBwcmVkaWN0 b3IgdGFibGUgLSB0aGVzZSBhcmUgaW5saW5lZCBmdW5jdGlvbnMuIEp1c3QgbGlrZSB3ZSBhbHdh eXMgdHJ5IHRvIGF2b2lkIGNhY2hlIG1pc3NlcyBpbiBEUERLLCB3ZSBzaG91bGQgYWxzbyB0cnkg dG8gY29uc2VydmUgYnJhbmNoIHByZWRpY3RvciB0YWJsZSBlbnRyaWVzLiBJIGhhdGUgdGhlIGFy Z3VtZW50IHRoYXQgYnJhbmNoIHByZWRpY3Rpb24gZml4ZXMgY29uZGl0aW9uYWxzLCBlc3BlY2lh bGx5IGlmIHRoZXkgYXJlIHdlaXJkIG9yIGNvdWxkIGhhdmUgYmVlbiBhdm9pZGVkLikNCj4gDQo+ IEluIHRoZSBjb3N0L2JlbmVmaXQgYW5hbHlzaXMsIHdlIG5lZWQgdG8gY29uc2lkZXIgdGhhdCB0 aGVzZSBzdGF0aXN0aWNzIGFyZSBub3QgZmlsbC9lbXB0aW5lc3MgbGV2ZWwgc3RhdHVzIG9yIHNp bWlsYXIsIGJ1dCBvbmx5IGRlYnVnIGNvdW50ZXJzIChudW1iZXIgb2YgZ2V0L3B1dCB0cmFuc2Fj dGlvbnMgYW5kIG9iamVjdHMpLCBzbyB3ZSBuZWVkIHRvIGFzayBvdXJzZWx2ZXMgdGhpcyBxdWVz dGlvbjogSG93IG1hbnkgdXNlcnMgYXJlIGludGVyZXN0ZWQgaW4gdGhlc2Ugc3RhdGlzdGljcyBm b3IgcHJvZHVjdGlvbiBhbmQgYXJlIHVuYWJsZSB0byBidWlsZCB0aGVpciBhcHBsaWNhdGlvbiB3 aXRoIFJURV9MSUJSVEVfTUVNUE9PTF9TVEFUUz8NCj4gDQo+IEZvciBleGFtcGxlLCB3ZSAoU21h cnRTaGFyZSBTeXN0ZW1zKSBhcmUgb25seSBpbnRlcmVzdGVkIGluIHRoZW0gZm9yIGFwcGxpY2F0 aW9uIHByb2ZpbGluZyBwdXJwb3Nlcy4uLiB0cnlpbmcgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFu Y2UgYnkgc3RyaXZpbmcgZm9yIGEgaGlnaGVyIG51bWJlciBvZiBvYmplY3RzIHBlciBidXJzdCBp biBldmVyeSBwaXBlbGluZSBzdGFnZS4NCj4gDQo+PiBLb25zdGFudGluDQoNCg==