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 12A15A0093; Mon, 3 Oct 2022 10:30:09 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 01D0C40695; Mon, 3 Oct 2022 10:30:09 +0200 (CEST) Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2068.outbound.protection.outlook.com [40.107.101.68]) by mails.dpdk.org (Postfix) with ESMTP id 2431840693 for ; Mon, 3 Oct 2022 10:30:08 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ezOLb+wkUBEThj5tXiQlASMMcvgeDJKcEaSlU7l82tGKbzDExvjP4qeLJxhEM0ga6uLecvf6lmQ5Vu0G+bBlbTwyZ1f4+oC+mBvn997JFRJx7BzjQsZ3RJJUA8zCaUtrn+9RLC4pRvyZNGoTO+hU41rriVawJsHYBXMVJkU6tnRHY2AwRlOY97+3G+DGymPeljzYsTaj6E6WL3Em2FlysfFxCXe2zfqJyq41RYmsoupQMaGjnlaDp3aL4eX+zyoqix2jnlVONAeWi11+zPDXWjD95LCgJBSW3tGHVGgsm98Y1tpODazf2jpmzHM9fsUUw/QU928DYD/rB2UONCRHxg== 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=VcjxSOVKHd5ym4KvNFq3DBNeHJbT7/Xpr+hHsAS8YaI=; b=NIWdps4QU0PDJ7B5ctlvlojMbtWhLe4j6p0PhNp0gLn1q1p7KRhwOsS79H9PTG/M8aukQOpqKLVmT4fv8BgXyAtGFnwDZNQHZAabzPSLGBFzsuKDZCS2OM1DV8iWLCoXRIUjX/65QT2nbomadmkLEsFqgbLGvWalk2Mh5Bk/srUkuoB0wtSPn8C7fEmr2F+syZnVqCLCX2TIr6PN9YFbSyaKdT/R7RpuAn8TLNFaaqPGMEv8DYm4eth9rQTzC5MEqc8xb4DJ2j+Qu4GYSzY4LDjUXiz2Ix2jZCZByV+39SNUVJfF7igysAw3jC5pfcER20QmZu5g0x3V8eodKiwBaA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VcjxSOVKHd5ym4KvNFq3DBNeHJbT7/Xpr+hHsAS8YaI=; b=sUBHyVMSLIyjNuji1e0aLZx2W7mEhHqf5e1i+gITeWbdPjcE79pSKMPL8oofVX67gV2uEWs3yUMKN9dCgKNCS+5tXHFSNnvaOLBlOJ68KvOrE2tSrceENiYzquW1DYA0dg05ycBbX5Pw9tcQCP0l4CPjiM89rD7tt5KAtUM8OahpXljkoqz51aF/iP9uEwxczTeai1e8CtXgH9z2AdyS3GyJzluJBYmEr/ksdTxS/Y65fM4p17wMk6m40AtIr0dTG7GTgsDYoD8Scx8sU5rj+Ev9vLxNti0Ui9MPUcdhIcqQk3zqx2G87RLAp5Fr/hghCX90726NzLdQ+Cd7XE1RmA== Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by PH8PR12MB6818.namprd12.prod.outlook.com (2603:10b6:510:1c9::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.28; Mon, 3 Oct 2022 08:30:06 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::aca6:34e4:3478:16fe]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::aca6:34e4:3478:16fe%5]) with mapi id 15.20.5676.020; Mon, 3 Oct 2022 08:30:06 +0000 From: Ori Kam To: Andrew Rybchenko , Michael Baum , "dev@dpdk.org" CC: Matan Azrad , Raslan Darawsheh Subject: RE: [PATCH 3/3] ethdev: add structure for indirect AGE update Thread-Topic: [PATCH 3/3] ethdev: add structure for indirect AGE update Thread-Index: AQHYzcoSIIEoMQhN3ECQ48vZZX50wq38YbGAgAAGSfA= Date: Mon, 3 Oct 2022 08:30:05 +0000 Message-ID: References: <20220921145409.511328-1-michaelba@nvidia.com> <20220921145409.511328-4-michaelba@nvidia.com> <811afcdb-2081-b20d-5d49-8659760a7026@oktetlabs.ru> In-Reply-To: <811afcdb-2081-b20d-5d49-8659760a7026@oktetlabs.ru> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW2PR12MB4666:EE_|PH8PR12MB6818:EE_ x-ms-office365-filtering-correlation-id: 8e004359-0b55-47a5-391c-08daa51979a4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: q8FR9p/HvBXMa7NqMo3b4HDBWzlD7ZNlRRg2MfLKS/HqXeYXDu7pX+EzU1P9bo/CDFMASt6//Hp8ZI7i9k4ag24ORuTr7abYRkNW41uJkXFJeGJGtTSq9537l2TEZ4iQmOV9T7IIj7lD/rrHdMLGyYAfnAUJDw/XwVrRcIALAkPw/ErY+UZAl8b4W8tjCsIuehbwgNNqCjNUSsJqoSlKea45uao2sAej+VMaK19wFd4CnK3qxZCnFhZeoIQxKb3SJoFRezStsI0tKWG/yGZE+3OBwnNEIfVMxJ6H/ybZcZLZzC2KshVtC3zIOhxWP11G6oj4yNscwrnyqDsy/HDTFf23f7NYkTvbyoDCnVMeA2Gv3gqTEz+w3zjMl14+tDI2XEk5eATmrMqQ899gVSehJoOdBZ077gsVK92SfxATUGj5U+KBKMfudidKKukKL9vrs9ZiA3hiiPhIp97zQ4uV2HJPxr3dqpH6cCYLjeLovgr/YKnUQ22G8qMBkxDJ1CaxelqNE0oMUxwG5PHPBnLWOoO06/1VmWZk2pzSQFMDQ5J9Edv3fAbENA6XQBVx/hnFcjlGh9M3+E8z94sCLv9cR64oay6eRWpXe7rzWPkK/Eg4cJ9by+hB7V1ioWfctWfU4B3yOEXVCz5XyccWg6QG/jA+RWSrkeseKo3a2AkoWLdCd4hotPoJIFnwkKGbLxCI+RL2poq6HAJB5by9NaUkk4gPWh8ef2yviMzTYvM9cuUXNdecHr7VRO3ushQOYYpQz4MOyJ1N/Y/onRf0+X70HYKTdw4QSuRocS1NwtD9tFk= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW2PR12MB4666.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(39860400002)(396003)(376002)(346002)(136003)(366004)(451199015)(122000001)(38100700002)(71200400001)(38070700005)(54906003)(52536014)(107886003)(8936002)(2906002)(110136005)(41300700001)(15650500001)(478600001)(83380400001)(5660300002)(316002)(53546011)(6506007)(7696005)(55016003)(86362001)(30864003)(33656002)(186003)(4326008)(8676002)(76116006)(64756008)(66446008)(66476007)(66556008)(66946007)(26005)(9686003)(87944003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cXJlWmRVS1Q3WkZlUSszNFJCb0hmNUN3aHlsNDhxRVZkZVA4bG1IR3dZRWJT?= =?utf-8?B?V1JyWWtDT0NxWGlEY3paaGpUOWlmcW9IMUdpbkRvcHBuamZoT285YlloMUUr?= =?utf-8?B?NHhHUWt0YSs1QzIvSXpJM0pQeENRSTVoNDdMMDlQVmtWcFhNaFBvRUtSZWhV?= =?utf-8?B?NXpvTU9XamZMY2FOOWw3d3RIZ1I5ZUs1VHQvcTd2MFRFTDdhdDhIR1ZHK05I?= =?utf-8?B?OHBRbGg5SFBCRW0rd1dSdkRpR2NobE5sUXFHMlJDTEM1dm80STJGN1F3VW1N?= =?utf-8?B?ZGxZd3JpeDB4Q0doYmdwRXJkc3ZZY1dqUURiblFvczUzL3VvcEJjQkNrUnNa?= =?utf-8?B?cjBjbkV4NjRnUVhGblk0VW1IMmwzRWFQSlpwWk1maW1wVGVxZHVtanYvamR0?= =?utf-8?B?bmtHSFZLMjJhMU43RWZZMkhtSTFTcytBTktRNFBWOWdXN0pLVUxTTDBIM3dy?= =?utf-8?B?WU1hMlRwQ3o3Z2hZbkd3MXRTbDVhMWpHRDU2NTRjWVhqL2ZWUFJMa2RJWjI2?= =?utf-8?B?L0RoRGFmc2dDajRvNmNjM2dFT0tOaU94S3BhcHhBd1JJSlAvWmpwNGRTcTFa?= =?utf-8?B?b1ZwOERYY0pmaFMyYVYwTzZiQmw1ZkhVY2dTUkpvcWhvaXhwd2VzMFFEczlp?= =?utf-8?B?c3B6MVAxNjVQUUM0ZlM1R3RIVGRYUTJyQ3ZVYWxlNHVIbTU3WmlHcEV2TUdK?= =?utf-8?B?VUh3QmtVNzJDYW8xdURkaG5Oa0VZbmp4YTQzSzhvdnpjR01uVlUrUFc5VzF4?= =?utf-8?B?OVBOdXk1SWErODJMNnpydkszdGNDMFRCb2RKRHUzejQrVmY4TEtCdWxTQzhZ?= =?utf-8?B?aUpEV3FhRGFCbHlJaFJzdmJDa25WVUQvM2NZdjhQczRmcnNENVpwWm1yc2gy?= =?utf-8?B?K0tsSTlsWmlNb0ZBQmtyTWdTT2RLT29rbGNRSWJMc2pYV0pGY2dQNk1oWTZM?= =?utf-8?B?UldhcXNOOVVnM1hSYnBkbm81SXZNVHQ5SFRmS1NSNmNsb25kMWZyMFc0a2Fn?= =?utf-8?B?cFRJOTUyemFwREswa053UG1taHh0SmhWNCsveUFzeTNkeEZMYWg3YjJPajc3?= =?utf-8?B?VE92aVN5WXRYQkI4ZGpKQVVFWVQ3cDBPOXdUVVJmMVJSRlVMeVd5Tm16YzFH?= =?utf-8?B?SzhlM29QMXUyV2VKblc5dVE5OXh3Q1pZRVpXMkJZaUF2U0hnSExLSnhVTHQ2?= =?utf-8?B?dklXeVZsQS9jUGlIYWFTenBxdmxqUERrMDhoWVFwN3JacERZUTAwVGQrb25T?= =?utf-8?B?MTZMYS9ESnRyZGtXM00zTElsYmNaaTliT0VuSDVYNUVNMGpVb0Q2SzdBVlVQ?= =?utf-8?B?UDMzZHN5QW1yRjlML1NSVWZkNExMRTNJR0NWK29QRnBhTHBwdklxSXdmQ2R4?= =?utf-8?B?d3RIT1M0cXd2TDNPSDViSTdmakJ2UmNyUHgvSXRtZkhmMkJBNG8rWk04YWFS?= =?utf-8?B?cVhtN2E5eEt1REdSZlZvSnFOMFZxL1BkOEdKTklhM1czWnBkUUdFYk04c01I?= =?utf-8?B?Z2NsOHhCdExTSzRvWXp2SUg5M0VnTlB3N0ZUcG9Db0VKMEFOd2NVb3I2YlBH?= =?utf-8?B?R3pVandubldSYnVCYk1KUDlERGNMc3Q0NVRNTU03d29lWUFkN1J3LzgxY3lh?= =?utf-8?B?c2grTmp6UVdSNEl3TGJRYkNySzRvMDlYWU5lRkViVUYzMm1wbVR6cHdubDVX?= =?utf-8?B?WWViQVFhSWFZZ1RNY3Q1RHBTcGovNFBOVnk1WUp6eEhwN3pCdzU3UVViQ1Mw?= =?utf-8?B?dXFmYi9tMnVmcHpMU1RLekJiYVI5MDR5VHBXemV0c0xuWkMxQjdzMVdJVk9M?= =?utf-8?B?Z3R0QWRTQ3RCOTdzTU5VWVhhYjFsbGxGUFNPR3o1RldPWTdpRXk2aDZKQVhX?= =?utf-8?B?d0J2TTcvb2d4azBieWd3cUdic2FhdjlNSUs4d1k0djI4V2ZqN0dTYjllREJE?= =?utf-8?B?cWRCMkxZckszWGNINVRVdUZLZU1tVW5aeXhwUFNZVWJKckltQXZTWGR3eG5s?= =?utf-8?B?Z1VJTXZVRjJ4dTJEbnRkL2ZtNzU1STFEM05PbnpJV2hXMWkvL01VOWNHWkZV?= =?utf-8?B?cmcyckROMHFCeXc4bnRGZEZQVGQ2ZkpTOGFwZlNiSjZOVUFoS1JzSHQyYlJi?= =?utf-8?Q?4gAI=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW2PR12MB4666.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8e004359-0b55-47a5-391c-08daa51979a4 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Oct 2022 08:30:05.9292 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Ua20ONpEOHGHLl/sm0RLUZpuzbfo9zLDajhGcNGVtwzjEMgllH4dAOjuW+ewERhwvVA7IUYYfwlWUxTryJcwmQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6818 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 SGkgQW5kcmV3LA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFuZHJl dyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiBTZW50OiBNb25k YXksIDMgT2N0b2JlciAyMDIyIDExOjA0DQo+IA0KPiBPbiA5LzIxLzIyIDE3OjU0LCBNaWNoYWVs IEJhdW0gd3JvdGU6DQo+ID4gQWRkIGEgbmV3IHN0cnVjdHVyZSBmb3IgaW5kaXJlY3QgQUdFIHVw ZGF0ZS4NCj4gPg0KPiA+IFRoaXMgbmV3IHN0cnVjdHVyZSBlbmFibGVzOg0KPiA+IDEuIFVwZGF0 ZSB0aW1lb3V0IHZhbHVlLg0KPiA+IDIuIFN0b3AgQUdFIGNoZWNraW5nLg0KPiA+IDMuIFN0YXJ0 IEFHRSBjaGVja2luZy4NCj4gPiA0LiByZXN0YXJ0IEFHRSBjaGVja2luZy4NCj4gPg0KPiA+IFNp Z25lZC1vZmYtYnk6IE1pY2hhZWwgQmF1bSA8bWljaGFlbGJhQG52aWRpYS5jb20+DQo+ID4gLS0t DQo+ID4gICBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmMgICAgICAgIHwgNjYNCj4gKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gICBhcHAvdGVzdC1wbWQvY29uZmlnLmMgICAg ICAgICAgICAgIHwgMTggKysrKysrKy0NCj4gPiAgIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVf Zmxvdy5yc3QgfCAyNSArKysrKysrKystLQ0KPiA+ICAgbGliL2V0aGRldi9ydGVfZmxvdy5oICAg ICAgICAgICAgICB8IDI3ICsrKysrKysrKysrKw0KPiA+ICAgNCBmaWxlcyBjaGFuZ2VkLCAxMzIg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9hcHAv dGVzdC1wbWQvY21kbGluZV9mbG93LmMgYi9hcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmMNCj4g PiBpbmRleCA0ZmI5MGE5MmNiLi5hMzE1ZmQ5ZGVkIDEwMDY0NA0KPiA+IC0tLSBhL2FwcC90ZXN0 LXBtZC9jbWRsaW5lX2Zsb3cuYw0KPiA+ICsrKyBiL2FwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cu Yw0KPiA+IEBAIC01ODMsNiArNTgzLDkgQEAgZW51bSBpbmRleCB7DQo+ID4gICAJQUNUSU9OX1NF VF9JUFY2X0RTQ1BfVkFMVUUsDQo+ID4gICAJQUNUSU9OX0FHRSwNCj4gPiAgIAlBQ1RJT05fQUdF X1RJTUVPVVQsDQo+ID4gKwlBQ1RJT05fQUdFX1VQREFURSwNCj4gPiArCUFDVElPTl9BR0VfVVBE QVRFX1RJTUVPVVQsDQo+ID4gKwlBQ1RJT05fQUdFX1VQREFURV9UT1VDSCwNCj4gPiAgIAlBQ1RJ T05fU0FNUExFLA0KPiA+ICAgCUFDVElPTl9TQU1QTEVfUkFUSU8sDQo+ID4gICAJQUNUSU9OX1NB TVBMRV9JTkRFWCwNCj4gPiBAQCAtMTg2OSw2ICsxODcyLDcgQEAgc3RhdGljIGNvbnN0IGVudW0g aW5kZXggbmV4dF9hY3Rpb25bXSA9IHsNCj4gPiAgIAlBQ1RJT05fU0VUX0lQVjRfRFNDUCwNCj4g PiAgIAlBQ1RJT05fU0VUX0lQVjZfRFNDUCwNCj4gPiAgIAlBQ1RJT05fQUdFLA0KPiA+ICsJQUNU SU9OX0FHRV9VUERBVEUsDQo+ID4gICAJQUNUSU9OX1NBTVBMRSwNCj4gPiAgIAlBQ1RJT05fSU5E SVJFQ1QsDQo+ID4gICAJQUNUSU9OX01PRElGWV9GSUVMRCwNCj4gPiBAQCAtMjExMyw2ICsyMTE3 LDE0IEBAIHN0YXRpYyBjb25zdCBlbnVtIGluZGV4IGFjdGlvbl9hZ2VbXSA9IHsNCj4gPiAgIAla RVJPLA0KPiA+ICAgfTsNCj4gPg0KPiA+ICtzdGF0aWMgY29uc3QgZW51bSBpbmRleCBhY3Rpb25f YWdlX3VwZGF0ZVtdID0gew0KPiA+ICsJQUNUSU9OX0FHRV9VUERBVEUsDQo+ID4gKwlBQ1RJT05f QUdFX1VQREFURV9USU1FT1VULA0KPiA+ICsJQUNUSU9OX0FHRV9VUERBVEVfVE9VQ0gsDQo+ID4g KwlBQ1RJT05fTkVYVCwNCj4gPiArCVpFUk8sDQo+ID4gK307DQo+ID4gKw0KPiA+ICAgc3RhdGlj IGNvbnN0IGVudW0gaW5kZXggYWN0aW9uX3NhbXBsZVtdID0gew0KPiA+ICAgCUFDVElPTl9TQU1Q TEUsDQo+ID4gICAJQUNUSU9OX1NBTVBMRV9SQVRJTywNCj4gPiBAQCAtMjE5MSw2ICsyMjAzLDkg QEAgc3RhdGljIGludCBwYXJzZV92Y19zcGVjKHN0cnVjdCBjb250ZXh0ICosIGNvbnN0DQo+IHN0 cnVjdCB0b2tlbiAqLA0KPiA+ICAgCQkJIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50LCB2b2lk ICosIHVuc2lnbmVkIGludCk7DQo+ID4gICBzdGF0aWMgaW50IHBhcnNlX3ZjX2NvbmYoc3RydWN0 IGNvbnRleHQgKiwgY29uc3Qgc3RydWN0IHRva2VuICosDQo+ID4gICAJCQkgY29uc3QgY2hhciAq LCB1bnNpZ25lZCBpbnQsIHZvaWQgKiwgdW5zaWduZWQgaW50KTsNCj4gPiArc3RhdGljIGludCBw YXJzZV92Y19jb25mX3RpbWVvdXQoc3RydWN0IGNvbnRleHQgKiwgY29uc3Qgc3RydWN0IHRva2Vu ICosDQo+ID4gKwkJCQkgY29uc3QgY2hhciAqLCB1bnNpZ25lZCBpbnQsIHZvaWQgKiwNCj4gPiAr CQkJCSB1bnNpZ25lZCBpbnQpOw0KPiA+ICAgc3RhdGljIGludCBwYXJzZV92Y19pdGVtX2VjcHJp X3R5cGUoc3RydWN0IGNvbnRleHQgKiwgY29uc3Qgc3RydWN0IHRva2VuICosDQo+ID4gICAJCQkJ ICAgIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50LA0KPiA+ICAgCQkJCSAgICB2b2lkICosIHVu c2lnbmVkIGludCk7DQo+ID4gQEAgLTYxOTQsNiArNjIwOSwzMCBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHRva2VuIHRva2VuX2xpc3RbXSA9IHsNCj4gPiAgIAkJLm5leHQgPSBORVhUKGFjdGlvbl9h Z2UsDQo+IE5FWFRfRU5UUlkoQ09NTU9OX1VOU0lHTkVEKSksDQo+ID4gICAJCS5jYWxsID0gcGFy c2VfdmNfY29uZiwNCj4gPiAgIAl9LA0KPiA+ICsJW0FDVElPTl9BR0VfVVBEQVRFXSA9IHsNCj4g PiArCQkubmFtZSA9ICJhZ2VfdXBkYXRlIiwNCj4gPiArCQkuaGVscCA9ICJ1cGRhdGUgYWdpbmcg cGFyYW1ldGVyIiwNCj4gPiArCQkubmV4dCA9IE5FWFQoYWN0aW9uX2FnZV91cGRhdGUpLA0KPiA+ ICsJCS5wcml2ID0gUFJJVl9BQ1RJT04oQUdFLA0KPiA+ICsJCQkJICAgIHNpemVvZihzdHJ1Y3Qg cnRlX2Zsb3dfdXBkYXRlX2FnZSkpLA0KPiA+ICsJCS5jYWxsID0gcGFyc2VfdmMsDQo+ID4gKwl9 LA0KPiA+ICsJW0FDVElPTl9BR0VfVVBEQVRFX1RJTUVPVVRdID0gew0KPiA+ICsJCS5uYW1lID0g InRpbWVvdXQiLA0KPiA+ICsJCS5oZWxwID0gImFnZSB0aW1lb3V0IHVwZGF0ZSB2YWx1ZSIsDQo+ ID4gKwkJLmFyZ3MgPSBBUkdTKEFSR1NfRU5UUllfQkYoc3RydWN0IHJ0ZV9mbG93X3VwZGF0ZV9h Z2UsDQo+ID4gKwkJCQkJICAgdGltZW91dCwgMjQpKSwNCj4gPiArCQkubmV4dCA9IE5FWFQoYWN0 aW9uX2FnZV91cGRhdGUsDQo+IE5FWFRfRU5UUlkoQ09NTU9OX1VOU0lHTkVEKSksDQo+ID4gKwkJ LmNhbGwgPSBwYXJzZV92Y19jb25mX3RpbWVvdXQsDQo+ID4gKwl9LA0KPiA+ICsJW0FDVElPTl9B R0VfVVBEQVRFX1RPVUNIXSA9IHsNCj4gPiArCQkubmFtZSA9ICJ0b3VjaCIsDQo+ID4gKwkJLmhl bHAgPSAidGhpcyBmbG93IGlzIHRvdWNoZWQiLA0KPiA+ICsJCS5uZXh0ID0gTkVYVChhY3Rpb25f YWdlX3VwZGF0ZSwNCj4gTkVYVF9FTlRSWShDT01NT05fQk9PTEVBTikpLA0KPiA+ICsJCS5hcmdz ID0gQVJHUyhBUkdTX0VOVFJZX0JGKHN0cnVjdCBydGVfZmxvd191cGRhdGVfYWdlLA0KPiA+ICsJ CQkJCSAgIHRvdWNoLCAxKSksDQo+ID4gKwkJLmNhbGwgPSBwYXJzZV92Y19jb25mLA0KPiA+ICsJ fSwNCj4gPiAgIAlbQUNUSU9OX1NBTVBMRV0gPSB7DQo+ID4gICAJCS5uYW1lID0gInNhbXBsZSIs DQo+ID4gICAJCS5oZWxwID0gInNldCBhIHNhbXBsZSBhY3Rpb24iLA0KPiA+IEBAIC03MDMxLDYg KzcwNzAsMzMgQEAgcGFyc2VfdmNfY29uZihzdHJ1Y3QgY29udGV4dCAqY3R4LCBjb25zdCBzdHJ1 Y3QNCj4gdG9rZW4gKnRva2VuLA0KPiA+ICAgCXJldHVybiBsZW47DQo+ID4gICB9DQo+ID4NCj4g PiArLyoqIFBhcnNlIGFjdGlvbiBjb25maWd1cmF0aW9uIGZpZWxkLiAqLw0KPiA+ICtzdGF0aWMg aW50DQo+ID4gK3BhcnNlX3ZjX2NvbmZfdGltZW91dChzdHJ1Y3QgY29udGV4dCAqY3R4LCBjb25z dCBzdHJ1Y3QgdG9rZW4gKnRva2VuLA0KPiA+ICsJCSAgICAgIGNvbnN0IGNoYXIgKnN0ciwgdW5z aWduZWQgaW50IGxlbiwNCj4gPiArCQkgICAgICB2b2lkICpidWYsIHVuc2lnbmVkIGludCBzaXpl KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgYnVmZmVyICpvdXQgPSBidWY7DQo+ID4gKwlzdHJ1Y3Qg cnRlX2Zsb3dfdXBkYXRlX2FnZSAqdXBkYXRlOw0KPiA+ICsNCj4gPiArCSh2b2lkKXNpemU7DQo+ ID4gKwlpZiAoY3R4LT5jdXJyICE9IEFDVElPTl9BR0VfVVBEQVRFX1RJTUVPVVQpDQo+ID4gKwkJ cmV0dXJuIC0xOw0KPiA+ICsJLyogVG9rZW4gbmFtZSBtdXN0IG1hdGNoLiAqLw0KPiA+ICsJaWYg KHBhcnNlX2RlZmF1bHQoY3R4LCB0b2tlbiwgc3RyLCBsZW4sIE5VTEwsIDApIDwgMCkNCj4gPiAr CQlyZXR1cm4gLTE7DQo+ID4gKwkvKiBOb3RoaW5nIGVsc2UgdG8gZG8gaWYgdGhlcmUgaXMgbm8g YnVmZmVyLiAqLw0KPiA+ICsJaWYgKCFvdXQpDQo+ID4gKwkJcmV0dXJuIGxlbjsNCj4gPiArCS8q IFBvaW50IHRvIHNlbGVjdGVkIG9iamVjdC4gKi8NCj4gPiArCWN0eC0+b2JqZWN0ID0gb3V0LT5h cmdzLnZjLmRhdGE7DQo+ID4gKwljdHgtPm9iam1hc2sgPSBOVUxMOw0KPiA+ICsJLyogVXBkYXRl IHRoZSB0aW1lb3V0IGlzIHZhbGlkLiAqLw0KPiA+ICsJdXBkYXRlID0gKHN0cnVjdCBydGVfZmxv d191cGRhdGVfYWdlICopb3V0LT5hcmdzLnZjLmRhdGE7DQo+ID4gKwl1cGRhdGUtPnRpbWVvdXRf dmFsaWQgPSAxOw0KPiA+ICsJcmV0dXJuIGxlbjsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgIC8qKiBQ YXJzZSBlQ1BSSSBjb21tb24gaGVhZGVyIHR5cGUgZmllbGQuICovDQo+ID4gICBzdGF0aWMgaW50 DQo+ID4gICBwYXJzZV92Y19pdGVtX2VjcHJpX3R5cGUoc3RydWN0IGNvbnRleHQgKmN0eCwgY29u c3Qgc3RydWN0IHRva2VuICp0b2tlbiwNCj4gPiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QtcG1kL2Nv bmZpZy5jIGIvYXBwL3Rlc3QtcG1kL2NvbmZpZy5jDQo+ID4gaW5kZXggMzE5NTI0NjdmYi4uNDU0 OTUzODVkNyAxMDA2NDQNCj4gPiAtLS0gYS9hcHAvdGVzdC1wbWQvY29uZmlnLmMNCj4gPiArKysg Yi9hcHAvdGVzdC1wbWQvY29uZmlnLmMNCj4gPiBAQCAtMjA2NSw2ICsyMDY1LDcgQEAgcG9ydF9h Y3Rpb25faGFuZGxlX3VwZGF0ZShwb3J0aWRfdCBwb3J0X2lkLA0KPiB1aW50MzJfdCBpZCwNCj4g PiAgIAlpZiAoIXBpYSkNCj4gPiAgIAkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gICAJc3dpdGNoIChw aWEtPnR5cGUpIHsNCj4gPiArCWNhc2UgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfQUdFOg0KPiA+ICAg CWNhc2UgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfQ09OTlRSQUNLOg0KPiA+ICAgCQl1cGRhdGUgPSBh Y3Rpb24tPmNvbmY7DQo+ID4gICAJCWJyZWFrOw0KPiA+IEBAIC0yOTA0LDYgKzI5MDUsOCBAQCBw b3J0X3F1ZXVlX2FjdGlvbl9oYW5kbGVfdXBkYXRlKHBvcnRpZF90DQo+IHBvcnRfaWQsDQo+ID4g ICAJc3RydWN0IHJ0ZV9wb3J0ICpwb3J0Ow0KPiA+ICAgCXN0cnVjdCBydGVfZmxvd19lcnJvciBl cnJvcjsNCj4gPiAgIAlzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2hhbmRsZSAqYWN0aW9uX2hhbmRs ZTsNCj4gPiArCXN0cnVjdCBwb3J0X2luZGlyZWN0X2FjdGlvbiAqcGlhOw0KPiA+ICsJY29uc3Qg dm9pZCAqdXBkYXRlOw0KPiA+DQo+ID4gICAJYWN0aW9uX2hhbmRsZSA9IHBvcnRfYWN0aW9uX2hh bmRsZV9nZXRfYnlfaWQocG9ydF9pZCwgaWQpOw0KPiA+ICAgCWlmICghYWN0aW9uX2hhbmRsZSkN Cj4gPiBAQCAtMjkxNSw4ICsyOTE4LDIxIEBAIHBvcnRfcXVldWVfYWN0aW9uX2hhbmRsZV91cGRh dGUocG9ydGlkX3QNCj4gcG9ydF9pZCwNCj4gPiAgIAkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gICAJ fQ0KPiA+DQo+ID4gKwlwaWEgPSBhY3Rpb25fZ2V0X2J5X2lkKHBvcnRfaWQsIGlkKTsNCj4gPiAr CWlmICghcGlhKQ0KPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsNCj4gPiArCXN3aXRjaCAo cGlhLT50eXBlKSB7DQo+ID4gKwljYXNlIFJURV9GTE9XX0FDVElPTl9UWVBFX0FHRToNCj4gPiAr CQl1cGRhdGUgPSBhY3Rpb24tPmNvbmY7DQo+ID4gKwkJYnJlYWs7DQo+ID4gKwlkZWZhdWx0Og0K PiA+ICsJCXVwZGF0ZSA9IGFjdGlvbjsNCj4gPiArCQlicmVhazsNCj4gPiArCX0NCj4gPiArDQo+ ID4gICAJaWYgKHJ0ZV9mbG93X2FzeW5jX2FjdGlvbl9oYW5kbGVfdXBkYXRlKHBvcnRfaWQsIHF1 ZXVlX2lkLCAmYXR0ciwNCj4gPiAtCQkJCSAgICBhY3Rpb25faGFuZGxlLCBhY3Rpb24sIE5VTEws ICZlcnJvcikpIHsNCj4gPiArCQkJCSAgICBhY3Rpb25faGFuZGxlLCB1cGRhdGUsIE5VTEwsICZl cnJvcikpIHsNCj4gPiAgIAkJcmV0dXJuIHBvcnRfZmxvd19jb21wbGFpbigmZXJyb3IpOw0KPiA+ ICAgCX0NCj4gPiAgIAlwcmludGYoIkluZGlyZWN0IGFjdGlvbiAjJXUgdXBkYXRlIHF1ZXVlZFxu IiwgaWQpOw0KPiA+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cu cnN0DQo+IGIvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdA0KPiA+IGluZGV4IDU4 ODkxNGIyMzEuLmRhZTkxMjEyNzkgMTAwNjQ0DQo+ID4gLS0tIGEvZG9jL2d1aWRlcy9wcm9nX2d1 aWRlL3J0ZV9mbG93LnJzdA0KPiA+ICsrKyBiL2RvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxv dy5yc3QNCj4gPiBAQCAtMjk1OCw3ICsyOTU4LDcgQEAgT3RoZXJ3aXNlLCBSVEVfRkxPV19FUlJP Ul9UWVBFX0FDVElPTg0KPiBlcnJvciB3aWxsIGJlIHJldHVybmVkLg0KPiA+ICAgQWN0aW9uOiBg YEFHRWBgDQo+ID4gICBeXl5eXl5eXl5eXl5eXl4NCj4gPg0KPiA+IC1TZXQgYWdlaW5nIHRpbWVv dXQgY29uZmlndXJhdGlvbiB0byBhIGZsb3cuDQo+ID4gK1NldCBhZ2luZyB0aW1lb3V0IGNvbmZp Z3VyYXRpb24gdG8gYSBmbG93Lg0KPiA+DQo+ID4gICBFdmVudCBSVEVfRVRIX0VWRU5UX0ZMT1df QUdFRCB3aWxsIGJlIHJlcG9ydGVkIGlmDQo+ID4gICB0aW1lb3V0IHBhc3NlZCB3aXRob3V0IGFu eSBtYXRjaGluZyBvbiB0aGUgZmxvdy4NCj4gPiBAQCAtMjk3Nyw4ICsyOTc3LDggQEAgdGltZW91 dCBwYXNzZWQgd2l0aG91dCBhbnkgbWF0Y2hpbmcgb24gdGhlDQo+IGZsb3cuDQo+ID4gICAgICB8 IGBgY29udGV4dGBgICB8IHVzZXIgaW5wdXQgZmxvdyBjb250ZXh0ICAgICAgICAgfA0KPiA+ICAg ICAgKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4g Pg0KPiA+IC1RdWVyeSBzdHJ1Y3R1cmUgdG8gcmV0cmlldmUgYWdlaW5nIHN0YXR1cyBpbmZvcm1h dGlvbiBvZiBhDQo+ID4gLXNoYXJlZCBBR0UgYWN0aW9uLCBvciBhIGZsb3cgcnVsZSB1c2luZyB0 aGUgQUdFIGFjdGlvbjoNCj4gPiArUXVlcnkgc3RydWN0dXJlIHRvIHJldHJpZXZlIGFnaW5nIHN0 YXR1cyBpbmZvcm1hdGlvbiBvZiBhbg0KPiA+ICtpbmRpcmVjdCBBR0UgYWN0aW9uLCBvciBhIGZs b3cgcnVsZSB1c2luZyB0aGUgQUdFIGFjdGlvbjoNCj4gPg0KPiA+ICAgLi4gX3RhYmxlX3J0ZV9m bG93X3F1ZXJ5X2FnZToNCj4gPg0KPiA+IEBAIC0yOTk0LDYgKzI5OTQsMjUgQEAgc2hhcmVkIEFH RSBhY3Rpb24sIG9yIGEgZmxvdyBydWxlIHVzaW5nIHRoZSBBR0UNCj4gYWN0aW9uOg0KPiA+ICAg ICAgfCBgYHNlY19zaW5jZV9sYXN0X2hpdGBgICAgICAgIHwgb3V0IHwgU2Vjb25kcyBzaW5jZSBs YXN0IHRyYWZmaWMgaGl0ICAgICAgICAgfA0KPiA+ICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Kw0KPiA+DQo+ID4gK1VwZGF0ZSBzdHJ1Y3R1cmUgdG8gbW9kaWZ5IHRoZSBwYXJhbWV0ZXJzIG9m IGFuIGluZGlyZWN0IEFHRSBhY3Rpb24uDQo+ID4gK1RoZSB1cGRhdGUgc3RydWN0dXJlIGlzIHVz ZWQgYnkgYGBydGVfZmxvd19hY3Rpb25faGFuZGxlX3VwZGF0ZSgpYGANCj4gZnVuY3Rpb24uDQo+ ID4gKw0KPiA+ICsuLiBfdGFibGVfcnRlX2Zsb3dfdXBkYXRlX2FnZToNCj4gPiArDQo+ID4gKy4u IHRhYmxlOjogQUdFIHVwZGF0ZQ0KPiA+ICsNCj4gPiArICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rDQo+ID4gKyAgIHwgRmllbGQgICAgICAgICAgICAgfCBWYWx1ZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiA+ICsNCj4gKz09 PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K PiA9PT09PT09PT09PT09PT09PT09PT09PT09Kw0KPiA+ICsgICB8IGBgdGltZW91dGBgICAgICAg IHwgMjQgYml0cyB0aW1lb3V0IHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwNCj4gPiArICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ID4gKyAgIHwg YGB0aW1lb3V0X3ZhbGlkYGAgfCAxIGJpdCwgdGltZW91dCB2YWx1ZSBpcyB2YWxpZCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiA+ICsgICArLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsNCj4gPiArICAgfCBgYHRvdWNoYGAgICAgICAgICB8IDEgYml0LCB0b3VjaCB0aGUgQUdF IGFjdGlvbiB0byBzZXQgYGBzZWNfc2luY2VfbGFzdF9oaXRgYCAwDQo+IHwNCj4gPiArICAgKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ID4gKyAgIHwgYGByZXNlcnZlZGBgICAgICAgfCA2 IGJpdHMgcmVzZXJ2ZWQsIG11c3QgYmUgemVybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfA0KPiA+ICsgICArLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiArDQo+ID4gICBB Y3Rpb246IGBgU0FNUExFYGANCj4gPiAgIF5eXl5eXl5eXl5eXl5eXl5eXg0KPiA+DQo+ID4gZGlm ZiAtLWdpdCBhL2xpYi9ldGhkZXYvcnRlX2Zsb3cuaCBiL2xpYi9ldGhkZXYvcnRlX2Zsb3cuaA0K PiA+IGluZGV4IGQ4MzBiMDIzMjEuLmEyMWQ0MzdjZjggMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2V0 aGRldi9ydGVfZmxvdy5oDQo+ID4gKysrIGIvbGliL2V0aGRldi9ydGVfZmxvdy5oDQo+ID4gQEAg LTI5NTQsNiArMjk1NCwzMyBAQCBzdHJ1Y3QgcnRlX2Zsb3dfcXVlcnlfYWdlIHsNCj4gPiAgIAl1 aW50MzJfdCBzZWNfc2luY2VfbGFzdF9oaXQ6MjQ7IC8qKjwgU2Vjb25kcyBzaW5jZSBsYXN0IHRy YWZmaWMgaGl0LiAqLw0KPiA+ICAgfTsNCj4gPg0KPiA+ICsvKioNCj4gPiArICogQHdhcm5pbmcN Cj4gPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIHN0cnVjdHVyZSBtYXkgY2hhbmdlIHdpdGhv dXQgcHJpb3Igbm90aWNlDQo+ID4gKyAqDQo+ID4gKyAqIFJURV9GTE9XX0FDVElPTl9UWVBFX0FH RQ0KPiA+ICsgKg0KPiA+ICsgKiBVcGRhdGUgaW5kaXJlY3QgQUdFIGFjdGlvbiBhdHRyaWJ1dGVz Og0KPiA+ICsgKiAgLSBUaW1lb3V0IGNhbiBiZSB1cGRhdGVkIGluY2x1ZGluZyBzdG9wL3N0YXJ0 IGFjdGlvbjoNCj4gPiArICogICAgICstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICsgKiAgICAgfCBPbGQgVGltZW91dCB8IE5l dyBUaW1lb3V0IHwgVXBkYXRpbmcgICAgICAgICAgICAgICAgICAgICB8DQo+ID4gKyAqDQo+ICs9 PT09PT09PT09PT09Kz09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N Cj4gPSsNCj4gPiArICogICAgIHwgMCAgICAgICAgICAgfCBwb3NpdGl2ZSAgICB8IFN0YXJ0IGFn aW5nIHdpdGggbmV3IHZhbHVlICAgfA0KPiA+ICsgKiAgICAgKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ID4gKyAqICAgICB8IHBv c2l0aXZlICAgIHwgMCAgICAgICAgICAgfCBTdG9wIGFnaW5nCQkJICB8DQo+ID4gKyAqICAgICAr LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSsNCj4gPiArICogICAgIHwgcG9zaXRpdmUgICAgfCBwb3NpdGl2ZSAgICB8IENoYW5nZSB0aW1l b3V0IHRvIG5ldyB2YWx1ZSAgfA0KPiA+ICsgKiAgICAgKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ID4gKyAqICAtIHNlY19zaW5j ZV9sYXN0X2hpdCBjYW4gYmUgcmVzZXQuDQo+ID4gKyAqLw0KPiA+ICtzdHJ1Y3QgcnRlX2Zsb3df dXBkYXRlX2FnZSB7DQo+IA0KPiBJIHRoaW5rIGl0IHdvcnNlIHRvIG1lbnRpb24gdGhlIHN0cnVj dHVyZSBpbg0KPiBSVEVfRkxPV19BQ1RJT05fVFlQRV9BR0UgZGVzY3JpcHRpb24uDQoNCldoYXQg ZG8geW91IG1lYW4/DQoNCj4gDQo+ID4gKwl1aW50MzJfdCByZXNlcnZlZDo2OyAvKio8IFJlc2Vy dmVkLCBtdXN0IGJlIHplcm8uICovDQo+ID4gKwl1aW50MzJfdCB0aW1lb3V0X3ZhbGlkOjE7IC8q KjwgVGhlIHRpbWVvdXQgaXMgdmFsaWQgZm9yIHVwZGF0ZS4gKi8NCj4gPiArCXVpbnQzMl90IHRp bWVvdXQ6MjQ7IC8qKjwgVGltZSBpbiBzZWNvbmRzLiAqLw0KPiA+ICsJdWludDMyX3QgdG91Y2g6 MTsNCj4gPiArCS8qKjwgTWVhbnMgdGhhdCBhZ2luZyBzaG91bGQgYXNzdW1lIHBhY2tldCBwYXNz ZWQgdGhlIGFnaW5nLiAqLw0KPiANCj4gRG9jdW1lbnRhdGlvbiBhZnRlciBjb2RlIG1ha2VzIHNl bnNlIGlmIGl0IGlzIGluIHRoZSBzYW1lIGxpbmUuDQo+IElmIHRoZSBkb2N1bWVudGF0aW9uIGlz IGluIGl0cyBvd24gbGluZSwgaXQgc2hvdWxkIGJlIGJlZm9yZQ0KPiB0aGUgY29kZSBhbmQgdXNl IC8qKiBwcmVmaXguDQo+IA0KDQorMQ0KDQo+IE9uZSBtb3JlIHF1ZXN0aW9uOiB3aHkgb3JkZXIg aW4gdGhlIGRvY3VtZW50YXRpb24gYWJvdmUgZG9lcw0KPiBub3QgbWF0Y2ggb3JkZXIgaGVyZT8N Cj4gDQoNCkkgdGhpbmsgd2UgY2FuIHJlbW92ZSBpdCBmcm9tIHRoZSBkb2N1bWVudGF0aW9uIHNp bmNlIGl0IGRvZXNuJ3QgYWRkIGFueXRoaW5nDQoNCj4gPiArfTsNCj4gPiArDQo+ID4gICAvKioN Cj4gPiAgICAqIEB3YXJuaW5nDQo+ID4gICAgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgc3RydWN0 dXJlIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UNCg0K