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 DE191A0350; Tue, 23 Jun 2020 11:02:22 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 42B701D5C2; Tue, 23 Jun 2020 11:02:22 +0200 (CEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2069.outbound.protection.outlook.com [40.107.21.69]) by dpdk.org (Postfix) with ESMTP id 1D3C61D5A4 for ; Tue, 23 Jun 2020 11:02:21 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lWOikTfvbRv0wFNxRDGNOqbep0KldMXqWsk3P+uh30qw6p2Qp+5BisPjeoU2zqJ7gftpKULjkffsbarGi3KzdLCV5h+cbyZUxJ/r10atR7jJXAfYVg6lPELb65HIwjuqGRknY6kVAEOa2xRNiOtc6Xhtq0qF1R0uc7ir5hXpq6jkE1xMhT+sqVCghZrGoayiT0YRSzl80+6/aj8+pwupybU8y+KXms8mr0M1g795j7toLTLcWH6KVGJf6gl9j7Tp3W66Y47SKOalgBGFI01iufxFqCoARVSllmOFAHQieo8k6JUo2iQwujekFxXaaxCpZVZydeZvhlsmdv0mzgHgQQ== 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=pIHdkoV/tJ9Bh8nf6U74lPeZpb88SL4VZdZuNoCgWhA=; b=Fe11O3Az7kqStkXYfxuVcHdVOmn2C1HwM2OcUMJS9RHW7snJcJLbi1dMibIFX3Fv7DHhgtoTBPXTFep29+wbpdAGWVQ+Mt1+EZKh1d+4j4BCeO5aSR4e1pQ1Qd/O/7Wp7mirbpbWun6XeNar5Hz6QnLCa9EeKuY5y+AE9LKx04ZpzJieltqgt5sMqXQvjvu5tPY09WuAats4ZaJYwL6V2driOGR60AIPtU+k16CJhD63pJ7VUBX9b7wjxFMnF3cDqZ5zNt8ohXD+rLcsHOiA7y6XsNnFdr/0Ufd2tiDD3+9JlThw3jDyTd5KYxPoKsVs80+53ylB3Lc0Q8mpBO5CiA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pIHdkoV/tJ9Bh8nf6U74lPeZpb88SL4VZdZuNoCgWhA=; b=e+zD76rkcUHcITVMpm2uohkiKLlACAvwkXzcamLKCcnAQ9jV5gr17nRUkGWC+gW58Knk5XbqDaFk3SgOAzoAbHWIMG79cjziBpomc33SAyTEqw+Ysg07K4wkRhd4e3zRAUoEMmG4/b3vD+/N0SpHvFqhlItndw/+H2sdgRXqCGo= Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com (2603:10a6:208:f::11) by AM0PR0502MB3634.eurprd05.prod.outlook.com (2603:10a6:208:18::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.22; Tue, 23 Jun 2020 09:02:19 +0000 Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::b189:d782:4c74:7998]) by AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::b189:d782:4c74:7998%7]) with mapi id 15.20.3109.027; Tue, 23 Jun 2020 09:02:19 +0000 From: Matan Azrad To: Maxime Coquelin , Xiao Wang CC: "dev@dpdk.org" Thread-Topic: [PATCH v1 3/4] vhost: improve device ready definition Thread-Index: AQHWRY1+WLgdYR0e1E+Ph0x8zoCWqqjfjwYAgAA4hqCAAC+iAIACniawgAG2/YCAAAcQgIAAB3QAgAAM1OCAAC/AgIAACy5AgAAclQCAAAzpQIAAEnUAgAEB7XA= Date: Tue, 23 Jun 2020 09:02:19 +0000 Message-ID: References: <1592497686-433697-1-git-send-email-matan@mellanox.com> <1592497686-433697-4-git-send-email-matan@mellanox.com> <631a3cf3-f21a-b292-b475-93552d8f73e8@redhat.com> <96191de9-63bd-0937-5bdd-d81e9db14e9f@redhat.com> <74f35cd8-3543-ba1c-0dc7-1502599e6cf7@redhat.com> <197079f4-7436-4f9e-7b8e-b8cb42042ffb@redhat.com> <62311463-2bc1-7f8b-1ec0-da31418e1d75@redhat.com> <6a2d8143-e48d-cdef-5b16-1c340d99b1ae@redhat.com> In-Reply-To: Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=mellanox.com; x-originating-ip: [77.124.38.174] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 2f704621-f9e3-403f-a4b1-08d817542294 x-ms-traffictypediagnostic: AM0PR0502MB3634: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 04433051BF x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qUE4vOTZ0v/JkA7s1SiMOCA0SwXmhPDfSrxpUDLHz8wJtKx2x1M6O43BXflIKJHa/SSIPR7s0JErPcwb+J55tYQwXZ57rjultc9VOXA1n3bsLtsAqPFRNdgBfdbPFqH46w1B9Ru9SDHQJu55aYGYlwwjGoTFyPhlwHdo0XrcVwkSP1iRSKqf5Fkf0XyabKx5YBU6mwH/nhARDFYeflDsozqKo8Y9KhNpFyRCw1l16hjs+umE2T0jUjtHSz/ChM1Ep1GwiVqd927tevSjxFfA3PpBrtlEnpVlIQCV5bcc+C+DC51e2q8xeFXTlaGJA5RbnP4hwzIyVLuclXK8BmBSHw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR0502MB4019.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(376002)(396003)(346002)(39860400002)(366004)(136003)(2906002)(6506007)(53546011)(7696005)(33656002)(5660300002)(110136005)(316002)(186003)(8676002)(52536014)(86362001)(76116006)(71200400001)(4326008)(478600001)(26005)(9686003)(66446008)(55016002)(64756008)(66556008)(66476007)(66946007)(8936002)(83380400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: MpxVAEw6tskUN/c+zHEbNC6dHVKJLKhCinJQp63rqaYuHVljT5ik9+7UaiLnWq+hbHpBKOIax4jfIICZVqAmKFiJj4BMDOH+aT2VPMBvEJYQo5vXbozpE3h+lS+CSyWb+GhgUd3CwqYbtbvyvPYeTTGCMN8+GkAV3DKCT9NriwFlF6933lwE+r1krYKdDboX5tPEaLazhFSbvNpu3Xsj4s5RiSenxO8xKzJTXZ5CIZaGxUo/3iMWAbiXP79+k3USybSJoevxCqDMEK7nfgez0tu9GpOkhzXRCX3t0e7cTN6aZPdLRCLiuj4LxPSBaef9+f/qEgH2iZIewVm2WE1aiwXf86IC2nsPC4ELNHP9PwRavkDgV+OmlELhCLv9cgQmlNYZNQComU5qY+JqfN46vNAj5myX/1ov6aUUMxpfr2xgxM8D1u8ma2dhRGL9GlUCo8MLQmkx8p/Xm2hjwie6sKD3hYW10VR336otH4juKAJuA7vLcs764Lmk3icDa4o4 x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2f704621-f9e3-403f-a4b1-08d817542294 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jun 2020 09:02:19.5844 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: yt2dfH4Ppw4kArR7r6xStkbPoYbIXWnPaXu5sa6BPZDN+XUN2l0S3C1e0+4lQAJu6KBx1NMGzVX/Y70SiKjHYw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3634 Subject: Re: [dpdk-dev] [PATCH v1 3/4] vhost: improve device ready 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" DQoNCkZyb206IE1heGltZSBDb3F1ZWxpbjoNCj4gT24gNi8yMi8yMCA1OjUxIFBNLCBNYXRhbiBB enJhZCB3cm90ZToNCj4gPg0KPiA+DQo+ID4gRnJvbTogTWF4aW1lIENvcXVlbGluOg0KPiA+PiBP biA2LzIyLzIwIDM6NDMgUE0sIE1hdGFuIEF6cmFkIHdyb3RlOg0KPiA+Pj4NCj4gPj4+DQo+ID4+ PiBGcm9tOiBNYXhpbWUgQ29xdWVsaW46DQo+ID4+Pj4gU2VudDogTW9uZGF5LCBKdW5lIDIyLCAy MDIwIDM6MzMgUE0NCj4gPj4+PiBUbzogTWF0YW4gQXpyYWQgPG1hdGFuQG1lbGxhbm94LmNvbT47 IFhpYW8gV2FuZw0KPiA+Pj4+IDx4aWFvLncud2FuZ0BpbnRlbC5jb20+DQo+ID4+Pj4gQ2M6IGRl dkBkcGRrLm9yZw0KPiA+Pj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjEgMy80XSB2aG9zdDogaW1w cm92ZSBkZXZpY2UgcmVhZHkgZGVmaW5pdGlvbg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+ Pj4+IE9uIDYvMjIvMjAgMTI6MDYgUE0sIE1hdGFuIEF6cmFkIHdyb3RlOg0KPiA+Pj4+Pg0KPiA+ Pj4+PiBIaSBNYXhpbWUNCj4gPj4+Pj4NCj4gPj4+Pj4gRnJvbTogTWF4aW1lIENvcXVlbGluIDxt YXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gPj4+Pj4+IFNlbnQ6IE1vbmRheSwgSnVuZSAy MiwgMjAyMCAxMTo1NiBBTQ0KPiA+Pj4+Pj4gVG86IE1hdGFuIEF6cmFkIDxtYXRhbkBtZWxsYW5v eC5jb20+OyBYaWFvIFdhbmcNCj4gPj4+Pj4+IDx4aWFvLncud2FuZ0BpbnRlbC5jb20+DQo+ID4+ Pj4+PiBDYzogZGV2QGRwZGsub3JnDQo+ID4+Pj4+PiBTdWJqZWN0OiBSZTogW1BBVENIIHYxIDMv NF0gdmhvc3Q6IGltcHJvdmUgZGV2aWNlIHJlYWR5DQo+ID4+Pj4+PiBkZWZpbml0aW9uDQo+ID4+ Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBPbiA2LzIyLzIwIDEwOjQxIEFNLCBN YXRhbiBBenJhZCB3cm90ZToNCj4gPj4+Pj4+Pj4gVGhlIGlzc3VlIGlzIGlmIHlvdSBvbmx5IGNo ZWNrIHJlYWR5IHN0YXRlIG9ubHkgYmVmb3JlIGFuZA0KPiA+Pj4+Pj4+PiBhZnRlciB0aGUgbWVz c2FnZSBhZmZlY3RpbmcgdGhlIHJpbmcgaXMgaGFuZGxlZCwgaXQgY2FuIGJlDQo+ID4+Pj4+Pj4+ IHJlYWR5IGF0IGJvdGggc3RhZ2VzLCB3aGlsZSB0aGUgcmluZ3MgaGF2ZSBjaGFuZ2VkIGFuZCBz dGF0ZQ0KPiA+Pj4+Pj4+PiBjaGFuZ2UgY2FsbGJhY2sgc2hvdWxkDQo+ID4+Pj4+PiBoYXZlIGJl ZW4gY2FsbGVkLg0KPiA+Pj4+Pj4+IEJ1dCBpbiB0aGlzIHZlcnNpb24gSSBjaGVja2VkIHR3aWNl LCBiZWZvcmUgbWVzc2FnZSBoYW5kbGVyIGFuZA0KPiA+Pj4+Pj4+IGFmdGVyDQo+ID4+Pj4+PiBt ZXNzYWdlIGhhbmRsZXIsIHNvIGl0IHNob3VsZCBjYXRjaCBhbnkgdXBkYXRlLg0KPiA+Pj4+Pj4N Cj4gPj4+Pj4+IE5vLCB0aGlzIGlzIG5vdCBlbm91Z2gsIHdlIGhhdmUgdG8gY2hlY2sgYWxzbyBk dXJpbmcgc29tZQ0KPiA+Pj4+Pj4gaGFuZGxlcnMsIHNvIHRoYXQgdGhlIHJlYWR5IHN0YXRlIGlz IGludmFsaWRhdGVkIGJlY2F1c2UNCj4gPj4+Pj4+IHNvbWV0aW1lcyBpdCB3aWxsIGJlIHJlYWR5 IGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG1lc3NhZ2UgaGFuZGxlciBidXQNCj4gd2l0aCBkaWZmZXJl bnQgdmFsdWVzLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFRoYXQncyB3aGF0IEkgZGlkIGluIG15IGV4 YW1wbGUgcGF0Y2g6DQo+ID4+Pj4+PiBAQCAtMTg0NywxNSArMTg5MiwxNiBAQCB2aG9zdF91c2Vy X3NldF92cmluZ19raWNrKHN0cnVjdA0KPiA+PiB2aXJ0aW9fbmV0DQo+ID4+Pj4+PiAqKnBkZXYs IHN0cnVjdCBWaG9zdFVzZXJNc2cgKm1zZywNCj4gPj4+Pj4+DQo+ID4+Pj4+PiAuLi4NCj4gPj4+ Pj4+DQo+ID4+Pj4+PiAgICAgICAgIGlmICh2cS0+a2lja2ZkID49IDApDQo+ID4+Pj4+PiAgICAg ICAgICAgICAgICAgY2xvc2UodnEtPmtpY2tmZCk7DQo+ID4+Pj4+PiArDQo+ID4+Pj4+PiArICAg ICAgIHZxLT5raWNrZmQgPSBWSVJUSU9fVU5JTklUSUFMSVpFRF9FVkVOVEZEOw0KPiA+Pj4+Pj4g Kw0KPiA+Pj4+Pj4gKyAgICAgICB2aG9zdF91c2VyX3VwZGF0ZV92cmluZ19zdGF0ZShkZXYsIGZp bGUuaW5kZXgpOw0KPiA+Pj4+Pj4gKw0KPiA+Pj4+Pj4gICAgICAgICB2cS0+a2lja2ZkID0gZmls ZS5mZDsNCj4gPj4+Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gV2l0aG91dCB0aGF0LCB0aGUgcmVh ZHkgY2hlY2sgd2lsbCByZXR1cm4gcmVhZHkgYmVmb3JlIGFuZCBhZnRlcg0KPiA+Pj4+Pj4gdGhl IGtpY2tmZCBjaGFuZ2VkIGFuZCB0aGUgZHJpdmVyIHdvbid0IGJlIG5vdGlmaWVkLg0KPiA+Pj4+ Pg0KPiA+Pj4+PiBUaGUgZHJpdmVyIHdpbGwgYmUgbm90aWZpZWQgaW4gdGhlIG5leHQNCj4gPj4+ Pj4gVkhPU1RfVVNFUl9TRVRfVlJJTkdfRU5BQkxFDQo+ID4+Pj4gbWVzc2FnZSBhY2NvcmRpbmcg dG8gdjEuDQo+ID4+Pj4+DQo+ID4+Pj4+IE9uZSBvZiBvdXIgYXNzdW1wdGlvbiB3ZSBhZ3JlZWQg b24gaW4gdGhlIGRlc2lnbiBtYWlsIGlzIHRoYXQgaXQNCj4gPj4+Pj4gZG9lc24ndA0KPiA+Pj4+ IG1ha2Ugc2Vuc2UgdGhhdCBRRU1VIHdpbGwgY2hhbmdlIHF1ZXVlIGNvbmZpZ3VyYXRpb24gd2l0 aG91dA0KPiA+Pj4+IGVuYWJsaW5nIHRoZSBxdWV1ZSBhZ2Fpbi4NCj4gPj4+Pj4gQmVjYXVzZSBv ZiB0aGF0IHdlIGRlY2lkZWQgdG8gZm9yY2UgY2FsbGluZyBzdGF0ZSBjYWxsYmFjayBhZ2Fpbg0K PiA+Pj4+PiB3aGVuDQo+ID4+Pj4gUUVNVSBzZW5kIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0VOQUJM RSgxKSBtZXNzYWdlIGV2ZW4gaWYgdGhlDQo+ID4+IHF1ZXVlIGlzDQo+ID4+Pj4gYWxyZWFkeSBy ZWFkeS4NCj4gPj4+Pj4gU28gd2hlbiBkcml2ZXIvYXBwIHNlZSBzdGF0ZSBlbmFibGUtPmVuYWJs ZSwgaXQgc2hvdWxkIHRha2UgaW50bw0KPiA+Pj4+PiBhY2NvdW50DQo+ID4+Pj4gdGhhdCB0aGUg cXVldWUgY29uZmlndXJhdGlvbiB3YXMgcHJvYmFibHkgY2hhbmdlZC4NCj4gPj4+Pj4NCj4gPj4+ Pj4gSSB0aGluayB0aGF0IHRoaXMgYXNzdW1wdGlvbiBpcyBjb3JyZWN0IGFjY29yZGluZyB0byB0 aGUgUUVNVSBjb2RlLg0KPiA+Pj4+DQo+ID4+Pj4gWWVzLCB0aGlzIHdhcyBvdXIgaW5pdGlhbCBh c3N1bXB0aW9uLg0KPiA+Pj4+IEJ1dCBub3cgbG9va2luZyBpbnRvIHRoZSBkZXRhaWxzIG9mIHRo ZSBpbXBsZW1lbnRhdGlvbiwgSSBmaW5kIGl0DQo+ID4+Pj4gaXMgZXZlbiBjbGVhbmVyICYgY2xl YXJlciBub3QgdG8gZG8gdGhpcyBhc3N1bXB0aW9uLg0KPiA+Pj4+DQo+ID4+Pj4+IFRoYXQncyB3 aHkgSSBwcmVmZXIgdG8gY29sbGVjdCBhbGwgdGhlIHJlYWR5IGNoZWNrcyBjYWxsYmFja3MNCj4g Pj4+Pj4gKHF1ZXVlIHN0YXRlIGFuZA0KPiA+Pj4+IGRldmljZSBuZXdcY29uZikgdG8gb25lIGZ1 bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgYWZ0ZXIgdGhlDQo+ID4+Pj4gbWVzc2FnZQ0KPiA+ Pj4+IGhhbmRsZXI6DQo+ID4+Pj4+IFBzZXVkbzoNCj4gPj4+Pj4gIHZob3N0X3VzZXJfdXBkYXRl X3JlYWR5X3N0YXR1c2VzKCkgew0KPiA+Pj4+PiAJc3dpdGNoIChtc2cpOg0KPiA+Pj4+PiAJCWNh c2UgZW5hYmxlOg0KPiA+Pj4+PiAJCQlpZihlbmFibGUgaXMgMSkNCj4gPj4+Pj4gCQkJCWZvcmNl IHF1ZXVlIHN0YXRlID0xLg0KPiA+Pj4+PiAJCWNhc2UgY2FsbGZkDQo+ID4+Pj4+IAkJY2FzZSBr aWNrZmQNCj4gPj4+Pj4gCQkJCS4uLi4uDQo+ID4+Pj4+IAkJQ2hlY2sgcXVldWUgYW5kIGRldmlj ZSByZWFkeSArIGNhbGwgY2FsbGJhY2tzIGlmIG5lZWRlZC4uDQo+ID4+Pj4+IAkJRGVmYXVsdA0K PiA+Pj4+PiAJCQlSZXR1cm47DQo+ID4+Pj4+IH0NCj4gPj4+Pg0KPiA+Pj4+IEkgZmluZCBpdCBt b3JlIG5hdHVyYWwgdG8gImludmFsaWRhdGUiIHJlYWR5IHN0YXRlIHdoZXJlIGl0IGlzDQo+ID4+ Pj4gaGFuZGxlZCAoYWZ0ZXIgdnJpbmdfaW52YWxpZGF0ZSgpLCBiZWZvcmUgc2V0dGluZyBuZXcg RkQgZm9yIGNhbGwgJg0KPiA+Pj4+IGtpY2ssIC4uLikNCj4gPj4+DQo+ID4+PiBJIHRoaW5rIHRo YXQgaWYgeW91IGdvIHdpdGggdGhpcyBkaXJlY3Rpb24sIGlmIHRoZSBmaXJzdCBxdWV1ZSBwYWly DQo+ID4+PiBpcyBpbnZhbGlkYXRlZCwNCj4gPj4geW91IG5lZWQgdG8gbm90aWZ5IGFwcFxkcml2 ZXIgYWxzbyBhYm91dCBkZXZpY2UgcmVhZHkgY2hhbmdlLg0KPiA+Pj4gQWxzbyBpdCB3aWxsIGNh dXNlIDIgbm90aWZpY2F0aW9ucyB0byB0aGUgZHJpdmVyIGluc3RlYWQgb2Ygb25lIGluDQo+ID4+ PiBjYXNlIG9mIEZEDQo+ID4+IGNoYW5nZS4NCj4gPj4NCj4gPj4gWW91J2xsIGFsd2F5cyBlbmQt dXAgd2l0aCB0d28gbm90aWZpY2F0aW9ucywgZWl0aGVyIFFlbXUgaGFzIHNlbnQgdGhlDQo+ID4+ IGRpc2FibGUgYW5kIHNvIHlvdSdsbCBoYXZlIG9uZSBub3RpZmljYXRpb24gZm9yIHRoZSBkaXNh YmxlIGFuZCBvbmUNCj4gPj4gZm9yIHRoZSBlbmFibGUsIG9yIGl0IGRpZG4ndCBzZW50IHRoZSBk aXNhYmxlIGFuZCBpdCB3aWxsIGhhcHBlbiBhdA0KPiA+PiBvbGQgdmFsdWUgaW52YWxpZGF0aW9u IHRpbWUgYW5kIGFmdGVyIG5ldyB2YWx1ZSBpcyB0YWtlbiBpbnRvIGFjY291bnQuDQo+ID4+DQo+ ID4NCj4gPiBJIGRvbid0IHNlZSBpdCBpbiBjdXJyZW50IFFFTVUgYmVoYXZpb3IuDQo+ID4gV2hl biB3b3JraW5nIE1RIEkgc2VlIHRoYXQgc29tZSB2aXJ0cXMgZ2V0IGNvbmZpZ3VyYXRpb24gbWVz c2FnZSB3aGlsZQ0KPiB0aGV5IGFyZSBpbiBlbmFibGVkIHN0YXRlLg0KPiA+IFRoZW4sIGVuYWJs ZSBtZXNzYWdlIGlzIHNlbnQgYWdhaW4gbGF0ZXIuDQo+IA0KPiBJIGd1ZXNzIHlvdSBtZWFuIHRo ZSBmaXJzdCBxdWV1ZSBwYWlyPyBBbmQgaXQgd291bGQgbm90IGJlIGluIHJlYWR5IHN0YXRlIGFz IGl0DQo+IHdvdWxkIGJlIHRoZSBpbml0aWFsIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHF1ZXVlPw0K DQpFdmVuIGFmdGVyIGluaXRpYWxpemF0aW9uIHdoZW4gcXVldWUgaXMgcmVhZHkuDQoNCj4gPg0K PiA+Pj4gV2h5IG5vdCB0byB0YWtlIHRoaXMgY29ycmVjdCBhc3N1bXB0aW9uIGFuZCB1cGRhdGUg cmVhZHkgc3RhdGUgb25seQ0KPiA+Pj4gaW4gb25lDQo+ID4+IHBvaW50IGluIHRoZSBjb2RlIGlu c3RlYWQgb2YgZG9pbmcgaXQgaW4gYWxsIHRoZSBjb25maWd1cmF0aW9uIGhhbmRsZXJzDQo+IGFy b3VuZD8NCj4gPj4+IElNTywgSXQgaXMgY29ycmVjdCwgbGVzcyBpbnRydXNpdmUsIHNpbXBsZXIs IGNsZWFyZXIgYW5kIGNsZWFuZXIuDQo+ID4+DQo+ID4+IEkganVzdCBsb29rZWQgY2xvc2VyIGF0 IHRoZSBWaG9zdC11c2VyIHNwZWMsIGFuZCBJJ20gbm8gbW9yZSBzbyBzdXJlDQo+ID4+IHRoaXMg aXMgYSBjb3JyZWN0IGFzc3VtcHRpb246DQo+ID4+DQo+ID4+ICJXaGlsZSBwcm9jZXNzaW5nIHRo ZSByaW5ncyAod2hldGhlciB0aGV5IGFyZSBlbmFibGVkIG9yIG5vdCksIGNsaWVudA0KPiA+PiBt dXN0IHN1cHBvcnQgY2hhbmdpbmcgc29tZSBjb25maWd1cmF0aW9uIGFzcGVjdHMgb24gdGhlIGZs eS4iDQo+ID4NCj4gPiBPaywgdGhpcyBkb2Vzbid0IGV4cGxhaW4gaG93IGNvbmZpZ3VyYXRpb24g aXMgY2hhbmdlZCBvbiB0aGUgZmx5Lg0KPiANCj4gSSBhZ3JlZSBpdCBsYWNrcyBhIGJpdCBvZiBj bGFyaXR5Lg0KPiANCj4gPiBBcyBJIG1lbnRpb25lZCwgUUVNVSBzZW5kcyBlbmFibGUgbWVzc2Fn ZSBhbHdheXMgYWZ0ZXIgY29uZmlndXJhdGlvbg0KPiBtZXNzYWdlLg0KPiANCj4gWWVzLCBidXQg d2Ugc2hvdWxkIG5vdCBkbyBhc3N1bXB0aW9ucyBvbiBjdXJyZW50IFFlbXUgdmVyc2lvbiB3aGVu DQo+IHBvc3NpYmxlLiBCZXR0ZXIgdG8gYmUgc2FmZSBhbmQgZm9sbG93IHRoZSBzcGVjaWZpY2F0 aW9uLCBpdCB3aWxsIGJlIG1vcmUgcm9idXN0Lg0KPiBUaGVyZSBpcyBhbHNvIHRoZSBWaXJ0aW8t dXNlciBQTUQgdG8gdGFrZSBpbnRvIGFjY291bnQgZm9yIGV4YW1wbGUuDQoNCkkgdW5kZXJzdGFu ZCB5b3VyIHBvaW50IGhlcmUgYnV0IGRvIHlvdSByZWFsbHkgd2FudCB0byBiZSByZWFkeSBmb3Ig YW55IGNvbmZpZ3VyYXRpb24gdXBkYXRlIGluIHJ1biB0aW1lPw0KV2hhdCBkb2VzIGl0IG1lYW4/ IEhvdyBkYXRhdHBhdGggc2hvdWxkIGhhbmRsZSBjb25maWd1cmF0aW9uIGZyb20gY29udHJvbCB0 aHJlYWQgaW4gcnVuIHRpbWUgd2hpbGUgdHJhZmZpYyBpcyBvbj8NCkZvciBleGFtcGxlLCBjaGFu Z2luZyBxdWV1ZSBzaXplIFwgYWRkcmVzc2VzIG11c3Qgc3RvcCB0cmFmZmljIGJlZm9yZS4uLg0K QWxzbyBjaGFuZ2luZyBGRHMgaXMgdmVyeSBzZW5zaXRpdmUuDQoNCkl0IGRvZXNuJ3QgbWFrZSBz ZW5zZSB0byBtZS4NCg0KQWxzbywgYWNjb3JkaW5nIHRvICJvbiB0aGUgZmx5IiBkaXJlY3Rpb24g d2Ugc2hvdWxkIG5vdCBkaXNhYmxlIHRoZSBxdWV1ZSB1bmxlc3MgZW5hYmxlIG1lc3NhZ2UgaXMg Y29taW5nIHRvIGRpc2FibGUgaXQuDQoNCkluIGFkZGl0aW9uOg0KRG8geW91IHJlYWxseSB3YW50 IHRvIHRvZ2dsZSB2RFBBIGRyaXZlcnNcYXBwIGZvciBhbnkgY29uZmlndXJhdGlvbiBtZXNzYWdl PyBJdCBtYXkgY2F1c2UgcXVldWUgcmVjcmVhdGlvbiBmb3IgZWFjaCBvbmUgKGF0IGxlYXN0IGZv ciBtbHg1KS4NCg0KDQo+IFRoYW5rcywNCj4gTWF4aW1lDQo+IA0KPiA+DQo+ID4+PiBJbiBhZGRp dGlvbiBpdCBzYXZlcyB0aGUgc3R5bGUgdGhhdCBhbHJlYWR5IHVzZWQgaW4gdGhpcyBmdW5jdGlv biBpbjoNCj4gPj4+IC0gdmhvc3RfdXNlcl9jaGVja19hbmRfYWxsb2NfcXVldWVfcGFpcg0KPiA+ Pj4gLSAJc3dpdGNoIChyZXF1ZXN0KSB7DQo+ID4+PiAJY2FzZSBWSE9TVF9VU0VSX1NFVF9GRUFU VVJFUzoNCj4gPj4+IAljYXNlIFZIT1NUX1VTRVJfU0VUX1BST1RPQ09MX0ZFQVRVUkVTOg0KPiA+ Pj4gCWNhc2UgVkhPU1RfVVNFUl9TRVRfT1dORVI6DQo+ID4+PiAJY2FzZSBWSE9TVF9VU0VSX1NF VF9NRU1fVEFCTEU6DQo+ID4+PiAJY2FzZSBWSE9TVF9VU0VSX1NFVF9MT0dfQkFTRToNCj4gPj4+ IAljYXNlIFZIT1NUX1VTRVJfU0VUX0xPR19GRDoNCj4gPj4+IAljYXNlIFZIT1NUX1VTRVJfU0VU X1ZSSU5HX05VTToNCj4gPj4+IAljYXNlIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0FERFI6DQo+ID4+ PiAJY2FzZSBWSE9TVF9VU0VSX1NFVF9WUklOR19CQVNFOg0KPiA+Pj4gCWNhc2UgVkhPU1RfVVNF Ul9TRVRfVlJJTkdfS0lDSzoNCj4gPj4+IAljYXNlIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0NBTEw6 DQo+ID4+PiAJY2FzZSBWSE9TVF9VU0VSX1NFVF9WUklOR19FUlI6DQo+ID4+PiAJY2FzZSBWSE9T VF9VU0VSX1NFVF9WUklOR19FTkFCTEU6DQo+ID4+PiAJY2FzZSBWSE9TVF9VU0VSX1NFTkRfUkFS UDoNCj4gPj4+IAljYXNlIFZIT1NUX1VTRVJfTkVUX1NFVF9NVFU6DQo+ID4+PiAJY2FzZSBWSE9T VF9VU0VSX1NFVF9TTEFWRV9SRVFfRkQ6DQo+ID4+PiAJCQl2aG9zdF91c2VyX2xvY2tfYWxsX3F1 ZXVlX3BhaXJzKGRldik7DQo+ID4+Pg0KPiA+Pj4gTWF0YW4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4N Cj4gPj4+DQo+ID4NCg0K