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 9D30DA0508; Thu, 14 Apr 2022 14:07:56 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8D01F40687; Thu, 14 Apr 2022 14:07:56 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id 5DB1740687 for ; Thu, 14 Apr 2022 14:07:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1649938074; x=1681474074; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=lYGXEYAY4jBj1YTFQvhhO8KqUXn4QLzt5PsqX2c1YMs=; b=Hgk6E9I9nhynZZ687W7E8mxRWx9EPe5+kJdLBerSL7DgDyhsauKWW90t Ns29I9Xm1sRTcZXJug0yGFqpk0VLVxUalpdMKfmlQiiT/ItsSnx/P0sTa DFZAzC7JrGPEnrA30hkuSJ5RnR+wiMbBOjZfj/WW10weGK1fdGZxguX73 BJjENWzEN+FFvmGKoxF9RDBWHFf09ANyoLhDVJXyl64aAK7LZWW802z/W H/rEGcUzJRu91liRgV6U5P6o7a4yVB5m1JbmuFjfDZulZU2w3cFHA75PC BdnLCsHvwcMtNB+rElvKBIBFWiOCrm73j1elSIIHGG1TRJKlgJw+4G5TW A==; X-IronPort-AV: E=McAfee;i="6400,9594,10316"; a="243500812" X-IronPort-AV: E=Sophos;i="5.90,259,1643702400"; d="scan'208";a="243500812" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Apr 2022 05:07:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,259,1643702400"; d="scan'208";a="527373540" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by orsmga006.jf.intel.com with ESMTP; 14 Apr 2022 05:07:53 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Thu, 14 Apr 2022 05:07:52 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Thu, 14 Apr 2022 05:07:52 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Thu, 14 Apr 2022 05:07:52 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.171) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Thu, 14 Apr 2022 05:07:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LL4jAzXF1LL5CzJpipFuKZlid9A0Fua8/yOqm2R7Amu3MeTILua4XDGkTOKQN3Ayzvbqv8JstVODyyQ12DMNhxWJnjofHXrLHI4nlWMKxZs9+1qbSwh59unMNWMH9a4j4YhlQm87AdNvq0F8/VeGdBnGxTfJ2Cv/HVGUmODxtLiyGr/hA6QTATLMM0hiTMUr2v+9b57zPi0AC4vaFtNengCAANp5QoIWIm36IiBJW4M/qhVITHKFbkbelWct2EGnOHJ/GlTFH1mLZmf9Kd9/BYZwTE2aaAG92SVH6d8U/jrWaaLOP/rsvjjX9ZALUFy6Pp8JNyi4CjnXCemJR1pOvQ== 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=lYGXEYAY4jBj1YTFQvhhO8KqUXn4QLzt5PsqX2c1YMs=; b=eE4rXr/PkMfv9VzWx3O9vLsUbPFL0UhS22TUHguR2cbnFTKj9JMtI5vpn2SXokcFPBwexperKAYHNW6ifvBodN7xfCVqOeHbqwd5s2t0n7ONqf0xhKbWmqqQcoHx44+Qh7ar1sC4ycoTCxx0u8QQZvx1EijvTm+IrOW13/SqNXE1hGKC00pPsiokJAy3tig8mXz00AKdsx7sUQtPopwGyxSXTjSE4b0XwEhp+kTRZuAVX4TiWGGoyQreeN4h2Bh29qjz7ojMzlJUWPwVDgp76ycJXo+LvusHoQ+VHeitbccpMlXoXtgarXq/8htkoGqmnmfOjoBWeHyX4CZrWyt0tA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by MWHPR1101MB2176.namprd11.prod.outlook.com (2603:10b6:301:4f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Thu, 14 Apr 2022 12:07:49 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::dc35:d5af:9936:eef3]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::dc35:d5af:9936:eef3%3]) with mapi id 15.20.5164.020; Thu, 14 Apr 2022 12:07:49 +0000 From: "Ananyev, Konstantin" To: Owen Hilyard , Jerin Jacob CC: dpdk-dev , Honnappa Nagarahalli , Thomas Monjalon Subject: RE: [PATCH v1 0/4] [RFC] Testpmd RPC API Thread-Topic: [PATCH v1 0/4] [RFC] Testpmd RPC API Thread-Index: AQHYSskkgTwbAVwLOU6VMW0GTkXA5qzqyvmAgAA4PICAAM5kgIACAf+AgAGAbtA= Date: Thu, 14 Apr 2022 12:07:49 +0000 Message-ID: References: <20220407214707.29730-1-ohilyard@iol.unh.edu> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.401.20 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 735713b5-93e6-4ba3-c0c5-08da1e0f64fa x-ms-traffictypediagnostic: MWHPR1101MB2176:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: sFzQ3s/fTtknsbxJL1YiuU7hn9Z5fhvWDLyYe9He6gZ7AeHE3X9kHY3W0ngqptl8nlzl6gUyi3+UnoivH/KSVbmE7SDMhmZePk7InEExGDWqIG5VaUlsEyOFhBDKixUb0cKriOKclc2pjUpsBhkED9O+OjBMIrk92ZzUVCRMNysNYvoybCQmNPybSW2UkjCXx1wQ74nQDqxC4DI8GDqNxIzPYwBafYWAeb/OwQReq4YQVcX5LWv6B7jJa42blVFT7/6xYuZWhb1jCGqppnh5LN+byPWY49KyjIow5bNl+QXl7Svq9az0NkiigPyUCcsavrYSruzQW3gt+WzdCji40g7/QwtjW6t6MX/1FfoyggvPINDRMktJMuaxZCkDd1CHuWSQxVh2aUiBRl8Yn4Ynpgt6ywHj+/8POrn31WDa8lfQhgB3QQHuAqTctRBq1qEvuLOvAcosFZGhHFbnbkpC40+vScRh+vVZoSWrKp3AoGG6X6ETZLIOtZjzw9/2OC94Jsp9mMxtcupPstTYxFieX4xGWCGgo6RGr/FNPWjbbBBYezQo1yDxEXYRABy+R4bOFlZvwLnfELCWhAv3G+pU6aFAWdNk6QyLnH3JmOKpcBq4olb0nVZ6CJFKC8Is/6eE8HgdYH2CeWwg2JoBlvklNqVkOVQ26nCAT/mDadk7t1+rQt9ADfJm/6kbB9JdsZms38B2+g0KE2Zd+QL2HK7/W2YaAemdk+Ul9NCtvMYBgCVfLmYORY2+k0WOlm2ay19fM+aWt0x258b1wojg93pdOYDGlX6Ubs6Ijm1IQVLFPVc= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(86362001)(5660300002)(64756008)(66476007)(122000001)(9686003)(6506007)(66574015)(53546011)(7696005)(8676002)(55016003)(2906002)(4326008)(66946007)(71200400001)(66556008)(30864003)(66446008)(54906003)(186003)(26005)(83380400001)(38070700005)(76116006)(316002)(33656002)(966005)(52536014)(508600001)(110136005)(8936002)(38100700002)(82960400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZGtKN3JnZW5sMU11UzJ2Nk4yUWtoa3UxRGlPWWw3MEpBN0NQQnRJNzNwdzZS?= =?utf-8?B?cm1nTHVIZUlBdTdacHdFdWh0VS9aOUxabVRhblNKRjhhTmQ0UnVqRThRK0Yv?= =?utf-8?B?c1ViNkptKzNhUVNWM3UvUFdpQnVjZlpJN1J6Smh6VnkrUGxkQ0VPdlI3K2xP?= =?utf-8?B?UlRBWDFFa3o5eDVjN2lCNDF1VWtXZVMwdGFKUklUV1RtT2k0K1YxSUhyYVRv?= =?utf-8?B?dDQwSHdlVmJNeHpReDQvbnc1TVJyY1BSZnNBWmRHZ1J4WHd2RzRFclZZcEFn?= =?utf-8?B?ZnRkQUF6S05uM25WOGVOUnV4bHdnV3JCWlkzTXRmaGdZM1FaWExMc21wU2FD?= =?utf-8?B?MXZBWHZJeWw2b2F1ZVozczhZVEl3dnBDaXk3NHgrOHNROU8vMUlBTXA3TU13?= =?utf-8?B?VXZjVUNtYVRzdGdrSS9uYjNkTTV1MDVhbEgvOThBVXNvcG10SWhZNVA2UEho?= =?utf-8?B?VkkyZ2pEUmRJc3lSY0RJQzdEQmk1UlNnVEVsVFQ5VnlxTk5lQjNxUzdMN3d4?= =?utf-8?B?cHZqMzFldE1uN2FsVys2ZlJEdUNpWUNFWXNnOXdmNmo5M2gyM0lwd1NCSDd0?= =?utf-8?B?Wk5WeHNOYWZSVG8yRkVPMUJHakR2YzdHYWs2aElXQlVNQWpPNnQ0Z3VseGsz?= =?utf-8?B?MGF4NWE4TE9CVWZWYlZnSXpDSWpyTnBCOUtTY09GS0wvbFp3MjBmaUdPNWpX?= =?utf-8?B?NHpKaUFwb1Z4ejRVQnBtcGdWS1dRengvdDJ6cXQzLy9mU2pUb3J0MGpFdFVO?= =?utf-8?B?MnNZWE5MZEZsRFhoL3Y5Z281N1pVclNHU0FQMGFSUUo2YkVNSjAvSi9UOXUr?= =?utf-8?B?aFVjM1lHelFvS211cENjSW5JSmdOT0xqbG9OYkZFTjNFdURpTVFyUHpXYjRq?= =?utf-8?B?L3Yyam82akJUcEU4WTFUaTN6RHVtWXhsK29XNW5yUmQvQ29tMDR0TUhsNlJl?= =?utf-8?B?SzVHU1pad0tSaUR1RWFlVy91YVRBSE4vbGJkeXNtdnB6YzFPSitpU0UxeHNQ?= =?utf-8?B?SXEzQ0NqOGdraUJWcDlDT2R3Qk52OE16Y01FZi9CMXRJVllNdDlUZXdpWHg3?= =?utf-8?B?ZUtOM2IvV2RNME92VUZKQUFFckxUMFlsS0UvTTBRMXAvSHpzNTNTVHI3bGpj?= =?utf-8?B?bTBoQXY3Q1Z1dWxxdGVRbnMxVUpYZUdzK2hGU1JscXZwbi9YbGtBbDZaOFc3?= =?utf-8?B?M20yQXBCY2NQQ0diRkxIeTJRdmhHcnJHMVlHY3dFUXNGWmVJQmxIdFJ6dElx?= =?utf-8?B?TlE3OSs5UWpQM3Z3dENBZXJZS05GMzVrQy9TSGowRkt4SWhROStOSFhGVzBz?= =?utf-8?B?LzNVczQ1SFdERHJJRk9tQ0dkMGJnN282cjIrTG5DYWZ1bUREYkMyRDB2bUZ4?= =?utf-8?B?S0xTREtNcXBIOGxZVG5yQ3ZXaGtZa3pmUEpWendYbytCcXVqYmFoTkJQOTVz?= =?utf-8?B?Mjh0T0ZoYXVPVTlGa0xWNlhvSUkzVHlTZ1F0N1lvNG0zOGdSblVmcEZHQjNS?= =?utf-8?B?czV1citoTTZhWm9KOVAwTWxjUXl2b0ZCcUs0bFVEMkY4cnRUSWJ5dkJHYmVa?= =?utf-8?B?ZWw4b3dPNkllS2NjWDlIbXNnR0lQU21ZZjJlV2wvRlp6TmJUZ2gwQmxWSUdG?= =?utf-8?B?TlhoSWxTemp3QXlXdDlnSkF1czNkWUpqTEZ4YnJSU3d6N1UxTlpyYkhYTGs0?= =?utf-8?B?NVdzUlZnL3p5cDIzZUFyd3pPVzQyZ0hVSWF1aExiaCt0M3JCWjdySEZ0alpS?= =?utf-8?B?d0pCL3NINXcwVEt6M2IzUjdWN3NOUG9CQmFlNmxGMUMwQUgzZWFOSWxxTGx0?= =?utf-8?B?Ymx6SFN5SDJjMGxmVktzT0p0amxEalA0a2dJbzlFdklDUnpvSmkwY25oT0lO?= =?utf-8?B?WXp3RUY4ME1nV1NlTDZzZWQzcGtKdmpZWHlvUkl3Z1A0Mk1aOGNGaWJadjBW?= =?utf-8?B?aEFNUWNITUJVU2ZudVVuQ2xPOC8xR3duYnZucnBZL0pZOXRYYTBlUS9GN2Ur?= =?utf-8?B?OE5SVnFPNGFQR0xPbmt5TDBqTk9lME4ybWQ1MlR1NWpnZFFBL2paTXlvUmE4?= =?utf-8?B?eVpsc0JpaDhlaDlHejhxeXFZOTBXTlRPeEFUQkVveTVuREtyc0NwQzkrZXJQ?= =?utf-8?B?cFFGZk1ob3oxb0piQUJPS0NRVStmNWdnN2Vva0loRkFaMWplQmtUdXBrb1c4?= =?utf-8?B?UkNkVllIdnoyeXZpOEphc2ppZVV3MWVuWFYwNmZuTnlhTUIzYmNVdUp6bEZl?= =?utf-8?B?aUYyUXVXTXg5S2ZPMU5jQ3dlSUsvUk9XdGg2blpPdGptMU82ZHpiQzJ0MVhz?= =?utf-8?B?VDZacnFINEFydHp5TlFJVWhyTVZLakpNTUdtWVhocXBkMXg2UTFveGRVNGxu?= =?utf-8?Q?zkO9URPI7MgRPBlI=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 735713b5-93e6-4ba3-c0c5-08da1e0f64fa X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Apr 2022 12:07:49.2906 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zzS/N4F7pPruM+pFHDqi6vQWxXjgC9j0/GCSPpgKip4MUiwn6hmS621RHx2CDL/PXh93Rt+cHKQbTmKTeeyvnkW/mXSzAEbFVP1EZWqifnA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1101MB2176 X-OriginatorOrg: intel.com 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 DQpIaSBldmVyeW9uZSwNCg0KRmlyc3Qgb2YgYWxsIHRoYW5rcyBPd2VuIGZvciBzdGVwcGluZyBm b3J3YXJkIHdpdGggdGhpcyBSRkMuDQpGZXcgdGhvdWdodHMgb24gdGhpcyBzdWJqZWN0IGJlbG93 Lg0KS29uc3RhbnRpbiAgIA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IEFuYW55ZXYsIEtvbnN0YW50aW4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+DQo+IFNl bnQ6IFRodXJzZGF5LCBBcHJpbCAxNCwgMjAyMiAxMjo1OSBQTQ0KPiBUbzogQW5hbnlldiwgS29u c3RhbnRpbiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT4NCj4gU3ViamVjdDogRlc6IFtQ QVRDSCB2MSAwLzRdIFtSRkNdIFRlc3RwbWQgUlBDIEFQSQ0KPiANCj4gDQo+IA0KPiBGcm9tOiBP d2VuIEhpbHlhcmQgPG9oaWx5YXJkQGlvbC51bmguZWR1Pg0KPiBTZW50OiBXZWRuZXNkYXksIEFw cmlsIDEzLCAyMDIyIDE6NDcgUE0NCj4gVG86IEplcmluIEphY29iIDxqZXJpbmphY29ia0BnbWFp bC5jb20+DQo+IENjOiBkcGRrLWRldiA8ZGV2QGRwZGsub3JnPjsgSG9ubmFwcGEgTmFnYXJhaGFs bGkgPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+OyBUaG9tYXMgTW9uamFsb24gPHRob21h c0Btb25qYWxvbi5uZXQ+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjEgMC80XSBbUkZDXSBUZXN0 cG1kIFJQQyBBUEkNCj4gDQo+IElmIHNvLCBJIHRoaW5rLCBnUlBDIHNlcnZpY2Ugd291bGQgYmUg YWxvbmcgd2l0aCBleGlzdGluZyB0ZXN0cG1kIGZ1bmN0aW9ucywgbGlrZSBzdGFydF9wYWNrZXRf Zm9yd2FyZGluZygpLg0KPiANCj4gSXQgd2FzIG15IGludGVudGlvbiB0byByZS11c2UgZXhpc3Rp bmcgZnVuY3Rpb25zLiBJIHVzZWQgdGhlIEFDTCB0ZXN0cyBhcyBhbiBleGFtcGxlIGJlY2F1c2Ug dGhleSBhcmUgbW9yZSBzZWxmLWNvbnRhaW5lZCB0aGVuIFRlc3RwbWQsDQo+IHdoaWNoIG1hZGUg Y3JlYXRpbmcgdGhlIHByb29mIG9mIGNvbmNlcHQgbXVjaCBlYXNpZXIuDQo+IA0KPiBBbHNvLCBX ZSBkb24ndCBuZWVkIHRvIHJld3JpdGUgdGhlIGV4aXN0aW5nIHRlc3RwbWQsIEluc3RlYWQsIFJQ QyBzZXJ2aWNlLCB3ZSBjYW4gYWRkIGluIGV4aXN0aW5nIGFwcC90ZXN0LXBtZC8NCj4gDQo+IFRo ZSByZWFzb24gdGhhdCBJIHNwbGl0IG91dCB0aGUgc2VydmljZXMgaXMgdGhhdCB0aGVyZSBkb2Vz bid0IHNlZW0gdG8gYmUgYSB3YXkgdG8gcHJvZHVjZSBtdWx0aXBsZSBiaW5hcmllcyB3aXRob3V0 IHJlLXdyaXRpbmcgdGhhdCBzZWN0aW9uIG9mDQo+IHRoZSBidWlsZCBzeXN0ZW0uIEkgd2FudGVk IHRvIGF2b2lkIHRoZSBoYXJkIHJlcXVpcmVtZW50IG9mIGhhdmluZyBhIEMrKyBjb21waWxlciBh dmFpbGFibGUgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byB1c2UgdGVzdHBtZCwgc2luY2UgdGhhdA0K PiBtYXkgYWZmZWN0IHdoYXQgcGxhdGZvcm1zIFRlc3RwbWQgY2FuIHJ1biBvbiBhbmQgSSB3YW50 IHRvIGF2b2lkIHRoaXMgYmVpbmcgYW55IGtpbmQgb2YgYnJlYWtpbmcgY2hhbmdlLiBJZiB3ZSBk ZWNpZGUgdG8gZ28gdGhlIHJvdXRlIG9mDQo+IHB1dHRpbmcgaXQgYWxsIGluIGEgc2luZ2xlIGFw cGxpY2F0aW9uLCB3ZSB3b3VsZCBuZWVkIHRvIGNvbmRpdGlvbmFsbHkgZW5hYmxlIHRoZSBnUlBD IHNlcnZpY2UgYXQgYnVpbGQgdGltZS4gTWVzb24ncyBjdXJyZW50IGxhY2sgb2Ygc3VwcG9ydA0K PiBmb3IgY29uZGl0aW9uYWxseSBkZXRlY3RpbmcgY29tcGlsZXJzIGNhdXNlcyBpc3N1ZXMgaGVy ZS4NCj4gDQo+IEkgdGhpbmssIERQREsgaGFzIG9ubHkgb25lIGludGVyYWN0aXZlIHRlc3QgY2Fz ZSB3aGljaCBpcyB0ZXN0cG1kLA0KPiANCj4gQ291bGQgeW91IHBvaW50IG1lIHRvIHRoYXQgdGVz dCBjYXNlPyBFaXRoZXIgaW52b2NhdGlvbiBvciBzb3VyY2UgaXMgb2suIEkgY2FuJ3Qgc2VlIGFu eXRoaW5nIHRoYXQgd291bGQgbGVhZCBtZSB0byBhc3N1bWUgdXNlIG9mIHRlc3RwbWQgaW4NCj4g Im1lc29uIHRlc3QgLS1saXN0Ii4gVG8gbXkga25vd2xlZGdlLCBhbGwgb2YgdGhlIHRlc3QgY2Fz ZXMgdGhhdCB1c2UgdGVzdHBtZCBhcmUgaW4gRFRTLiBJZiB0aGVyZSBpcyBhIHRlc3QgdGhhdCB1 c2VzIHRlc3RwbWQgYnV0IGlzIG5vdCBwYXJ0IG9mDQo+IERUUywgSSB0aGluayBpdCB3b3VsZCBi ZSBhIGNhbmRpZGF0ZSBmb3IgbW92aW5nIGludG8gRFRTIGFzc3VtaW5nIGl0J3Mgbm90IGEgdW5p dCB0ZXN0Lg0KPiANCj4gSG93IHlvdSBhcmUgcGxhbm5pbmcgdG8gZG8gbm9uaW50ZXJhY3RpdmUg dGVzdCBjYXNlcz8NCj4gDQo+IEknbSBub3QgcGxhbm5pbmcgdG8gbWFrZSBhbnkgY2hhbmdlIHRv IHVuaXQgdGVzdGluZywgeW91IGNhbiByZWFkIG1vcmUgYWJvdXQgaG93IHRlc3RpbmcgaXMgY3Vy cmVudGx5IGNvbmR1Y3RlZA0KPiBoZXJlOiBodHRwczovL3d3dy5kcGRrLm9yZy9ibG9nLzIwMjEv MDcvMDUvZHBkay10ZXN0aW5nLWFwcHJvYWNoZXMvDQo+IA0KPiBJZiB0aGVyZSBpcyBhIHVuaXQg dGVzdCB0aGF0IGludm9sdmVzIHRlc3RwbWQsIHRoZXJlIGFyZSB0d28gcG9zc2liaWxpdGllcy4N Cj4gMS4gSWYgd2UgYXJlIG1ha2luZyBhIHNlcGFyYXRlIGFwcGxpY2F0aW9uIGZvciBUZXN0cG1k IHdpdGggdGhlIGdSUEMgYXBpLCB0aGVuIG5vdGhpbmcgY2hhbmdlcyBleGNlcHQgZm9yIHBvc3Np Ymx5IGNoYW5naW5nIHdoZXJlIHNvbWUNCj4gb2YgdGhlIHRlc3RwbWQgc291cmNlIGxpdmVzIGlu IG9yZGVyIHRvIGVuYWJsZSBjb2RlIHJldXNlIGJldHdlZW4gdGhlIHR3byBhcHBsaWNhdGlvbnMu DQo+IDIuIElmIGdSUEMgaXMgYmVpbmcgYWRkZWQgdG8gVGVzdHBtZCwgdGhlbiB0aGUgdW5pdCB0 ZXN0IHNob3VsZCBzdGlsbCBmdW5jdGlvbiBhcyBpdCBwcmV2aW91c2x5IGRpZCBpZiBJIGRvIGFu eSBuZWNlc3NhcnkgcmVmYWN0b3JpbmcgYXMgY29ycmVjdGx5Lg0KPiANCj4gSSB0aGluaywga2V5 IHNob3VsZCBiZSBsZXZlcmFnaW5nIGV4aXN0aW5nIHRlc3QgY2FzZXMgYXMgbXVjaCBhcyBwb3Nz aWJsZSBhbmQgbWFrZSBlYXN5IGZvciBkZXZlbG9wZXJzIHRvIGFkZCBuZXcgdGVzdCBjYXNlcy4N Cj4gDQo+IFRoYXQgaXMgcGFydCBvZiB0aGUgcmVhc29uIHdoeSBJIHdhbnQgdG8gYmUgYWJsZSB0 byBkbyB0aGlzLiBBZGRpbmcgYSBuZXcgdGVzdCBpbiBEVFMgaXMgdmVyeSBlYXN5IGlmIHRoZSBm dW5jdGlvbmFsaXR5IG5lZWRlZCBhbHJlYWR5IGV4aXN0cyBpbg0KPiBUZXN0cG1kLiBJZiB0aGUg ZnVuY3Rpb25hbGl0eSBkb2VzIG5vdCBleGlzdCwgdGhlbiBhZGRpbmcgdGhlIHRlc3QgYmVjb21l cyBkaWZmaWN1bHQsIGR1ZSB0byB0aGUgcmVxdWlyZWQgbW9kaWZpY2F0aW9ucyB0byB0aGUgVGVz dHBtZCBsZXhlcg0KPiBhbmQgcGFyc2VyIHRvIGFjY29tbW9kYXRlIHRoZSBuZXcgY29tbWFuZC4g TXkgcGxhbiBpcyB0byBsZWF2ZSB1bml0IHRlc3RpbmcgaW4gQywgYnV0IGhlbHAgbWFrZSBpdCBl YXNpZXIgdG8gZXhwb3NlIEMgZnVuY3Rpb25zIHRvIFB5dGhvbg0KPiBmb3IgaW50ZWdyYXRpb24g dGVzdGluZy4gVGhpcyBnaXZlcyB1cyB0aGUgYmVzdCBvZiBib3RoIHdvcmxkcyBpbiB0ZXJtcyBv ZiBhY2Nlc3MgdG8gRFBESyBhbmQgdGhlIGFiaWxpdHkgdG8gdXNlIGEgaGlnaC1sZXZlbCBsYW5n dWFnZSB0byB3cml0ZQ0KPiB0aGUgdGVzdHMuDQo+IA0KPiBPbiBUdWUsIEFwciAxMiwgMjAyMiBh dCAyOjA3IEFNIEplcmluIEphY29iIDxtYWlsdG86amVyaW5qYWNvYmtAZ21haWwuY29tPiB3cm90 ZToNCj4gT24gTW9uLCBBcHIgMTEsIDIwMjIgYXQgMTE6MTkgUE0gT3dlbiBIaWx5YXJkIDxtYWls dG86b2hpbHlhcmRAaW9sLnVuaC5lZHU+IHdyb3RlOg0KPiA+Pg0KPiA+PiBzY2hlbWUgaXMgcHJv YmFibHkgb3Zlci1lbmdpbmVlcmVkDQo+ID4NCj4gPg0KPiA+IEkgdHJpZWQgbXkgaGFyZGVzdCB0 byBrZWVwIHRoaXMgYXMgc2ltcGxlIGFzIHBvc3NpYmxlLiBUaGUgcmVxdWlyZW1lbnRzIGltcG9z ZWQgYnkgRFRTIGJlaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGluIFB5dGhvbiByZXN0cmljdGVk DQo+IHdoYXQgSSBjb3VsZCBkbyBhIGxvdC4gTmVlZGluZyB0byBiZSBjb21wYXRpYmxlIHdpdGgg RFBESydzIGxpY2Vuc2UgYWxzbyBnb3QgcmlkIG9mIGEgbG90IG9mIG9wdGlvbnMuIEJpbmRpbmcg Z2VuZXJhdG9ycyBhcmUgbWFkZSBmb3Igc2ltcGxlDQo+IHByb2plY3RzLCBhbmQgRFBESyBpcyBu b3QgYSBzaW1wbGUgcHJvamVjdC4gVGhlcmUgd2VyZSBzb21lIG90aGVyIG9wdGlvbnMgcmVsYXRl ZCB0byBjaG9pY2UgaW4gdGhlIFJQQyBmcmFtZXdvcmssIGJ1dCB2ZXJ5IGZldyBSUEMNCj4gcHJv dG9jb2xzIHNlZW0gdG8gd29yayB3ZWxsIHdpdGggQyBhbmQgYmUgdXNhYmxlIGZyb20gUHl0aG9u LCB3aGljaCBpcyB3aHkgSSBlbmRlZCB1cCB1c2luZyBDKysgd2l0aCBnUlBDLiBNb3N0IG9mIHRo ZSBjb2RlIGluDQo+IGFwaV9pbXBsLmNjIGlzIHRha2VuIGZyb20gL2FwcC90ZXN0LWFjbC9tYWlu LmMsIGFuZCB0aGUgbmV3IHBhcnQgaXMgbW9zdGx5IHRoZSBDKysgY2xhc3MgYXQgdGhlIGJvdHRv bS4gT3ZlcmFsbCwgdGhpcyBwcm9wb3NhbCBjb21lcyBvdXQgdG8NCj4gfjEwMCBsaW5lcyBvZiBu ZXcgQysrLCA5IGxpbmVzIG9mIEMsIDEyIGxpbmVzIG9mIGdSUEMgUHJvdG9idWYgYW5kIDEwMCBs aW5lcyBvZiBNZXNvbi4gZ1JQQyBtYXkgYmUgYWJsZSB0byBkbyBhIGxvdCBtb3JlIHRoYW4gSSBu ZWVkIGl0IHRvDQo+IGZvciB0aGUgcHJvb2Ygb2YgY29uY2VwdCwgYnV0IG1hbnkgb2YgdGhlIGZl YXR1cmVzIHRoYXQgYXJlIG5vdCB1c2VkLCBsaWtlIGJpLWRpcmVjdGlvbmFsIHN0cmVhbWluZywg YmVjb21lIHZlcnkgdXNlZnVsIGluIHdyaXRpbmcgbW9yZQ0KPiBjb21wbGljYXRlZCB0ZXN0cy4g T3ZlcmFsbCwgdGhpcyBzb2x1dGlvbiBpcyBwcm9iYWJseSBtb3JlIGNhcGFibGUgdGhhbiB3ZSBu ZWVkIGl0IHRvIGJlLCBidXQgSSB0aGluayB0aGF0IHRob3NlIGV4dHJhIGNhcGFiaWxpdGllcyBk b24ndCBjb21lDQo+IGF0IGEgdmVyeSBsYXJnZSBjb3N0Lg0KPiANCj4gDQo+IE5vdyBpdCBpcyBj bGVhciwgSSB3YXMgY2FycmllZCBhd2F5IHdpdGggdGhlIFBPQyB0ZXN0IGFwcGxpY2F0aW9uIGFu ZA0KPiBJIHdhcyBub3Qga25vd2luZyBleGlzdGluZyBEVFMgdGVzdHMgYXJlIGJhc2VkIG9uIHB5 dGhvbg0KPiANCj4gSXMgYmVsb3cgYSBmYWlyIHN1bW1hcnk/DQo+IA0KPiAxKSBEUERLIGhhcyBp bnRlcmFjdGl2ZSB0ZXN0IGNhc2VzIGFuZCBubyBpbnRlcmFjdGl2ZSB0ZXN0IGNhc2VzLg0KPiAN Cj4gRm9yIFRoZSBpbnRlcmFjdGl2ZSB0ZXN0IGNhc2UgbGlrZSB0ZXN0cG1kLCBJIGFncmVlIHRo YXQgd2UgY2FuIGVuYWJsZQ0KPiBSUEMgc2VydmljZSB2aWEgZ1JQQyBzZXJ2ZXIgaW4gQysrIGFz ICBhbmQgY2xpZW50IGluIFB5dGhvbiwgYW5kDQo+IHNvbWV0aGluZyBhbG9uZyB0aGUgbGluZXMg b2YgZXhwb3NpbmcgdGhlIGV4aXN0aW5nIHRlc3QtcG1kIGNvbW1hbmQNCj4gbGluZSBmdW5jdGlv biBhcyBzZXJ2aWNlDQo+IHRvIGF2b2lkIGNvbW1hbmQgbGluZSBwYXJzaW5nIGFuZCByZXVzZSB0 aGUgZXhpc3RpbmcgcHl0aG9uIHRlc3Qgc3VpdGUuDQo+IA0KPiBJZiBzbywgSSB0aGluaywgZ1JQ QyBzZXJ2aWNlIHdvdWxkIGJlIGFsb25nIHdpdGggZXhpc3RpbmcgdGVzdHBtZA0KPiBmdW5jdGlv bnMsIGxpa2Ugc3RhcnRfcGFja2V0X2ZvcndhcmRpbmcoKS4gQWxzbywgV2UgZG9uJ3QgbmVlZCB0 bw0KPiByZXdyaXRlIHRoZSBleGlzdGluZyB0ZXN0cG1kLA0KPiBJbnN0ZWFkLCBSUEMgc2Vydmlj ZSwgd2UgY2FuIGFkZCBpbiBleGlzdGluZyBhcHAvdGVzdC1wbWQvIGFuZCBob29rIHRvDQo+IGV4 aXN0aW5nIGNvcmUgdGVzdHBtZCBmdW5jdGlvbnMgdG8gYnlwYXNzIHRoZSBjb21tYW5kLWxpbmUg cGFyc2luZyBpbg0KPiBDIGFuZCBjb250cm9sIGZyb20gcHl0aG9uIGNsaWVudCBhcyBuZWVkZWQg YXMgc2VydmljZS4NCj4gDQo+IEFsc28sIEkgYWdyZWUgdGhhdCBwdWxsaW5nIGluIGdSUEMgQysr IHNlcnZlciBib2lsZXJwbGF0ZSBhbmQgaG9va2luZw0KPiB0byBDIGZ1bmN0aW9ucyBpcyBhIGdv b2QgaWRlYSBhcyBpdCBpcyB0aGUgYmVzdCBDLWJhc2VkIFJQQyBzY2hlbWUNCj4gYXZhaWxhYmxl IHRvZGF5Lg0KPiANCj4gMilJIHRoaW5rLCBEUERLIGhhcyBvbmx5IG9uZSBpbnRlcmFjdGl2ZSB0 ZXN0IGNhc2Ugd2hpY2ggaXMgdGVzdHBtZCwNCj4gUmVtYWluaW5nIHRlc3QgY2FzZXMgYXJlIG5v bi1pbnRlcmFjdGl2ZSwgbm9uLWludGVyYWN0aXZlIHRlc3QgY2FzZXMNCj4gY2FuIHNpbXBseSBy dW4gb3ZlciBzc2ggd2l0aCBwYXNzd29yZGxlc3MgbG9naW4uIFJpZ2h0Pw0KPiBEbyB3ZSBuZWVk IGdSUEMgZm9yIHRoYXQ/IFdpbGwgdGhlIGZvbGxvd2luZyBzY2hlbWUgc3VmZmljZT8gSWYgbm90 LA0KPiBIb3cgeW91IGFyZSBwbGFubmluZyB0byBkbyBub25pbnRlcmFjdGl2ZSB0ZXN0IGNhc2Vz Pw0KPiBpLmUNCj4gYSlDb3B5IHRlc3QgdG8gdGFyZ2V0DQo+IGIpIHJlc3VsdD1gc3NoIHVzZXJu YW1lQElQIC9wYXRoL3RvL3Rlc3RhcHAvaW4vdGFyZ2V0YA0KPiANCj4gSSB0aGluaywga2V5IHNo b3VsZCBiZSBsZXZlcmFnaW5nIGV4aXN0aW5nIHRlc3QgY2FzZXMgYXMgbXVjaCBhcw0KPiBwb3Nz aWJsZSBhbmQgbWFrZSBlYXN5IGZvciBkZXZlbG9wZXJzIHRvIGFkZCBuZXcgdGVzdCBjYXNlcy4N Cj4gDQo+IA0KPiA+Pg0KPiA+PiBOb3cgdGhhdCwgVGVzdCBjb2RlIGlzIGFsc28gcGFydCBvZiBE UERLLg0KPiA+DQo+ID4NCj4gPiBEVFMgaXMgcHVyZSBweXRob24uIEkgdHJpZWQgdG8gdXNlIEZG SSB0byBjYWxsIGRpcmVjdGx5IGludG8gRFBESyBmcm9tIFB5dGhvbiBhbmQgdGhlbiB1c2UgeG1s cnBjIGZyb20gdGhlIHB5dGhvbiBzdGFuZGFyZCBsaWJyYXJ5LiBBcw0KPiBtZW50aW9uZWQgaW4g dGhlIHdyaXRldXAsIEkgY291bGRuJ3QgZmluZCBhIGJpbmRpbmcgZ2VuZXJhdG9yIHRoYXQgd291 bGQgcHJvcGVybHkgaGFuZGxlIERQREsncyBhbGxvY2F0b3JzLCB3aGljaCBtYWRlIGl0IHNvIHRo YXQgYW55dGhpbmcNCj4gcGFzc2VkIHRvIERQREsgdXNpbmcgcHl0aG9uIHdhcyBhbGxvY2F0ZWQg dXNpbmcgdGhlIHN5c3RlbSBtYWxsb2MuIEkgZG9uJ3QgdGhpbmsgaXQgaXMgd2lzZSB0byBhdHRl bXB0IHRvIHByb2dyYW1tYXRpY2FsbHkgcmUtd3JpdGUgdGhlDQo+IGdlbmVyYXRlZCBjb2RlIHRv IGFsbG93IGZvciBjdXN0b20gYWxsb2NhdG9ycy4gVGhlIG9yaWdpbmFsIHJlYXNvbiBmb3IgbmVl ZGluZyB0byBoYXZlIERUUyBhbmQgRFBESyBpbiB0aGUgc2FtZSByZXBvc2l0b3J5IHdhcyBzbyB0 aGF0DQo+IHRlc3RzIGNvdWxkIGJlIGNvbW1pdHRlZCBhbmQgcnVuIGFsb25nc2lkZSB0aGUgZmVh dHVyZSBwYXRjaC4NCj4gPg0KPiA+PiBJbnRlcmFjdGl2ZSAtIFRlc3RwbWQgb25lLCBJIGJlbGll dmUsIEZlZWRpbmcgc3RkaW4gcHJvZ3JhbW1hdGljYWxseSB3b3VsZCBzdWZmaWNlIHRvIHRlc3Qg YWxsIHRoZSBjb21iaW5hdGlvbnMuDQo+ID4NCj4gPg0KPiA+IE9uZSBvZiB0aGUgaXNzdWVzIHRo aXMgaXMgdHJ5aW5nIHRvIGFkZHJlc3MgaXMgdGhhdCBodW1hbi1yZWFkYWJsZSBzdHJpbmdzIGFy ZSBhIHBvb3Igd2F5IHRvIHBhc3MgY29tcGxleCBpbmZvcm1hdGlvbiBiZXR3ZWVuIHR3bw0KPiBw cm9ncmFtcy4gRFRTIGlzIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgaXQgY2FuIGhhdmUgdXAg dG8gMyBwaHlzaWNhbCBzZXJ2ZXJzIGludm9sdmVkIGluIGFueSBnaXZlbiB0ZXN0LiBUaGlzIG1l YW5zIHRoYXQgaXQncyBub3Qgc3RkaW4gdmlhIGENCj4gcGlwZSwgaXQncyBhbiBlbnRpcmUgU1NI IHNlc3Npb24uIFRoaXMgYWRkcyBhIG5vdGljZWFibGUgYW1vdW50IG9mIG92ZXJoZWFkIHdoZW4g dHJ5aW5nIHRvIHNlbmQgYW5kIHZlcmlmeSB0aGUgcmVzdWx0IG9mIHNlbmRpbmcgMSwwMDArDQo+ IHBhY2tldHMsIHNpbmNlIHRoZSBsYWNrIG9mIHN0cnVjdHVyZWQgb3V0cHV0IG1lYW5zIGVhY2gg cGFja2V0IG11c3QgYmUgY2hlY2tlZCBiZWZvcmUgdGhlIG5leHQgY2FuIGJlIHNlbnQuIFRoaXMg bWlnaHQgYmUgc29sdmFibGUgYnkNCj4gYWRkaW5nIGEgc3RydWN0dXJlZCBvdXRwdXQgbW9kZSB0 byB0ZXN0cG1kLCBidXQgdGhhdCB3b3VsZCBpbnZvbHZlIGNvbW1pdHRpbmcgdG8gd3JpdGluZyBv dXRwdXQgdHdpY2UgZm9yIGV2ZXJ5IGZ1bmN0aW9uIGluIHRlc3RwbWQNCj4gZm9yZXZlci4NCj4g Pg0KPiA+PiBXZSBuZWVkIHRvIGFkZCBhbGwgdGVzdCBjYXNlcyBpbiB0aGlzIG1vZGVsIGFuZCB3 ZSBuZWVkIHRvIG1haW50YWluIHR3byBzZXRzIG9mIHByb2dyYW1zLihUcmFkaXRpb25hbCB0ZXN0 cyBhbmQgZ1JQQyBtb2RlbC1iYXNlZA0KPiB0ZXN0cykuDQo+ID4NCj4gPg0KPiA+IEFzc3VtaW5n IGJ5IHRyYWRpdGlvbmFsIHRlc3RzIHlvdSBtZWFuIHRoZSB1bml0IHRlc3RzIHJ1biBieSBNZXNv biwgSSB3b3VsZCBhcmd1ZSB0aGF0IHdlIGFyZSBhbHJlYWR5IG1haW50YWluaW5nIDIga2luZHMg b2YgdGVzdHMuIFRoZQ0KPiB1bml0IHRlc3RzLCBhbmQgdGhlIHB5dGhvbi1iYXNlZCBEVFMgdGVz dHMuIE15IGludGVudGlvbiBpcyB0byBjcmVhdGUgYSB0aGluIHdyYXBwZXIgYXJvdW5kIERQREsg dGhhdCB3b3VsZCBiZSBleHBvc2VkIHZpYSBnUlBDLCBsaWtlIHlvdQ0KPiBzZWUgaGVyZSwgYW5k IHVzZSB0aGF0IGFzIG1pZHdhcmUuIFRoZW4sIHdlIHdvdWxkIGhhdmUgdHdvIGZyb250LWVuZHMu IFRlc3RwbWQsIHdoaWNoIHRha2VzIHRleHQgYW5kIHRoZW4gY2FsbHMgbWlkd2FyZSBhcyBpdCBk b2VzIG5vdywNCj4gYW5kIHRoZSBnUlBDIGZyb250ZW5kLCB3aGljaCBwYXJzZXMgbWVzc2FnZXMg ZnJvbSB0aGUgUlBDIHNlcnZlciBhbmQgcnVucyB0aGUgbWlkd2FyZS4gVGhpcyB3b3VsZCBlbmFi bGUgdGVzdHBtZCB0byBzdGlsbCBiZSB1c2VkIHRvDQo+IHNhbml0eSBjaGVjayBhIERQREsgaW5z dGFsbGF0aW9uLCBidXQgd2Ugd291bGQgbm90IG5lZWQgdG8gY29udGludWFsbHkgZXhwYW5kIFRl c3RwbWQuIFRoZSBwcmltYXJ5IGlzc3VlIGlzIHRoYXQsIHJpZ2h0IG5vdywgYW55dGhpbmcgbm90 DQo+IGluY2x1ZGVkIGluIFRlc3RwbWQgaXMgbm90IHJlYWxseSB0ZXN0YWJsZSBieSBEVFMuIFRo aXMgaW5jbHVkZXMgcG9ydGlvbnMgb2YgdGhlIFJURSBGbG93IEFQSSwgd2hpY2ggd2FzIHBhcnQg b2YgbXkgcmVhc29uIGZvciBwcm9wb3NpbmcgdGhpcy4NCj4gVGhlIFJURSBGbG93IEFQSSB3b3Vs ZCwgaW4gbXkgZXN0aW1hdGlvbiwgaWYgZnVsbHkgaW1wbGVtZW50ZWQgaW50byBUZXN0cG1kLCBw cm9iYWJseSBhZGQgYXQgbGVhc3QgYW5vdGhlciAxMCwwMDAgbGluZXMgb2YgY29kZS4gQXMNCj4g bWVudGlvbmVkIGluIG15IHByb3Bvc2FsLCBUZXN0cG1kIGFscmVhZHkgZG9lcyBtb3JlIHBhcnNp bmcgYW5kIGxleGluZyB0aGFuIGl0IGRvZXMgaW50ZXJhY3Rpb24gd2l0aCBEUERLIGJ5IGxpbmUg Y291bnQuIEFsc28sIHNpbmNlIEkgYW0NCj4gcHJvcG9zaW5nIG1ha2luZyB0aGlzIGEgc2VwYXJh dGUgYXBwbGljYXRpb24sIHdlIHdvdWxkIGJlIGFibGUgdG8gZ3JhZHVhbGx5IG1pZ3JhdGUgdGhl IHRlc3RzIGluc2lkZSBvZiBEVFMuIFRoaXMgd291bGQgaGF2ZSBubyBlZmZlY3Qgb24NCj4gYW55 dGhpbmcgZXhjZXB0IGZvciBUZXN0cG1kLCB0aGUgbmV3IGFwcGxpY2F0aW9uIGFuZCB0aGUgYWRk aXRpb24gb2YgYSBmbGFnIHRvIHRvZ2dsZSB0aGUgdXNlIG9mIGEgQysrIGNvbXBpbGVyLg0KPiA+ DQo+ID4gSSdtIG5vdCBzdXJlIGV4YWN0bHkgd2hhdCB5b3UgbWVhbiBieSBnUlBDIG1vZGVsLWJh c2VkIHRlc3RzLiBnUlBDIHVzZXMgY2xhc3NlcyB0byBtb2RlbCBzZXJ2aWNlcywgYnV0IGZvciB0 aGlzIHVzZWNhc2Ugd2UgYXJlDQo+IGVzc2VudGlhbGx5IHVzaW5nIGl0IHRvIHRyYW5zZmVyIGZ1 bmN0aW9uIGFyZ3VtZW50cyBhY3Jvc3MgdGhlIGludGVybmV0IGFuZCB0aGVuIHBhc3MgdGhlIHJl dHVybiB2YWx1ZSBiYWNrLiBBbnkgUlBDIGZyYW1ld29yayB3b3VsZA0KPiBmdW5jdGlvbiBzaW1p bGFybHkgaWYgSSBpZ25vcmVkIHRoZSByZXN0cmljdGlvbnMgb2Ygd2hpY2ggbGFuZ3VhZ2VzIHRv IHVzZSwgYW5kIHRoZSBjaG9pY2UgaXMgbm90IGltcG9ydGFudCB0byBob3cgdGVzdHMgYXJlIGNv bmR1Y3RlZC4gUHV0DQo+IGFub3RoZXIgd2F5LCBob3cgeW91IHdyaXRlIGEgdGVzdCBmb3IgRFRT IHdpbGwgbm90IGNoYW5nZSBtdWNoIGlmIHlvdSBhcmUgdXNpbmcgdGhpcyBvciB0ZXN0cG1kLCBp dCdzIGp1c3QgaG93IHlvdSB0cmFuc2ZlciBkYXRhIGFuZCBnZXQgaXQNCj4gYmFjayB0aGF0IEkg d2FudCB0byBjaGFuZ2UuDQoNCi0gSW4gZ2VuZXJhbCBJIHRoaW5rIGl0IGlzIGEgZ29vZCBpZGVh IHRvIGFkZGluZyBnUlBDIGJpbmRpbmcgdG8gdGVzdHBtZCB0byBleHBvc2UvaW1wcm92ZSB0ZXN0 aW5nIGF1dG9tYXRpb24uDQogIFRob3VnaCBJIHRoaW5rIHdlIHNob3VsZG7igJl0IHJlbW92ZSBl eGlzdGluZyBDTEkgaW50ZXJmYWNlLg0KICBJZGVhbGx5IEnigJlkIGxpa2UgdG8gaGF2ZSBib3Ro IOKAkyBDTEkgYW5kIGdSUEMgZm9yIGFsbCBjb21tYW5kcy4NCiAgRG9u4oCZdCBrbm93IGhvdyBy ZWFsaXN0aWMgaXMgdGhhdCwgYnV0IGF0IGxlYXN0IGZvciBtYWpvciBjb21tYW5kcyAtICBwb3J0 L3F1ZXVlIGNvbmZpZ3VyZSwgc3RhcnQvc3RvcCwgZXRjLg0KLSBDb25kaXRpb25hbCBjb21waWxh dGlvbiAobmV3IG1lc29uIGZsYWcgb3Igc28pIGlzIHByb2JhYmx5IGdvb2QgZW5vdWdoIGZvciB0 aGlzIGNhc2UuICAgDQotIEFib3V0IFJGQyBpdHNlbGYgLSBJIHVuZGVyc3RhbmQgdGhhdCB5b3Ug Y2hvb3NlIHRlc3RhY2wgZm9yIHNpbXBsaWNpdHksIGJ1dCBpbiBmYWN0LCBpdCBpcyBhIHN0YW5k YWxvbmUgYXBwbGljYXRpb24NCiAgdGhhdCBoYXMgbm90IG11Y2ggY29tbW9uIHdpdGggdGVzdHBt ZCBpdHNlbGYgYW5kIHRoZSBwcm9ibGVtcyB0aGF0IHlvdSBtZW50aW9uZWQ6DQogIGludGVyYWN0 aXZlIGNvbW1hbmRzLCBwYXJhbWV0ZXIgYW5kIHJlc3VsdHMgcGFyc2luZywgZXRjLg0KICBXb3Vs ZCBpdCBiZSBwb3NzaWJsZSB0byB0cnkgaW1wbGVtZW50IHNvbWV0aGluZyBtb3JlIHJlYWxpc3Rp YyB3aXRoIHRlc3RwbWQgaXRzZWxmLA0KICBsaWtlIHNpbXBsZSB0ZXN0LXBtZCBwb3J0L3F1ZXVl IGNvbmZpZ3VyZSwgc3RhcnQsICByZXN1bHQgY29sbGVjdGlvbiwgZXRjLj8NCiAgVG8gZ2V0IGEg YmV0dGVyIGlkZWEgaG93IGl0IGlzIGdvaW5nIHRvIHdvcmsgYW5kIGhvdyBjb21wbGljYXRlZCBp dCB3b3VsZCBiZS4NCg0KDQo=