From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: passt.top; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=aLQ3v0aO; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by passt.top (Postfix) with ESMTPS id AAAF75A0269 for ; Wed, 18 Mar 2026 08:21:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1773818476; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=jDxyNFqvmHxOfYgDQNZIxO0UY2FxR/YGA7K1oZVn2jE=; b=aLQ3v0aO/ysMpYXKC+QLoBWz1RYrVHIsJExxjG9U+nHBfy99X6/+a00hRKneg53b+BB2/S WzJpr+aXfXpBN42Za96A8PjbZanqNIV+1VrzBgrvUf8aeDyThvhWmuSiKuplT/lCq19lz1 9w30MMXScSNG5PJuUvf0832yI2QJ+bw= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-255-v2lcgKs_Og2MUQVL1_fJ9Q-1; Wed, 18 Mar 2026 03:21:14 -0400 X-MC-Unique: v2lcgKs_Og2MUQVL1_fJ9Q-1 X-Mimecast-MFC-AGG-ID: v2lcgKs_Og2MUQVL1_fJ9Q_1773818473 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-43b41d45be4so538952f8f.0 for ; Wed, 18 Mar 2026 00:21:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773818473; x=1774423273; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=jDxyNFqvmHxOfYgDQNZIxO0UY2FxR/YGA7K1oZVn2jE=; b=ouQdAK3MchrzomT3pQkFYwqnkzgpqIx4CG/e1fHRa9XVUTru9/QKynyqi9XSVS17mX 9+wSIG/ZR5I/W7cN9mCwjdxwMS5rYPNdt3kTtSzHvRowAQikKAEMnDiyLdBWhYI3ZOmM lE7xzPEgtWVOcRXEf12OY0XC00xV/0kai2BYcMwFeuxPxz/jbfVO8V5X9dW5I58PDCJe gKHoirXooWAN/JLjYOUC5QbW8Y+dhIjhdbkD/UazGFa4PPL26DGbM+IOK0MPAecL5EMN ccMG4xKkq4uC3lOTe23kYCyvJoDotrggPclJQUD/nkJZ5UVAIHYTI1GM6cYYyj9mEMOH K2XA== X-Forwarded-Encrypted: i=1; AJvYcCU1DSYE42DIYCsVjJo6HNbmbPStITZRGh5X3/RmIKiBgWxeKIHdg9p527Lnf9CrT222I5nx1yQUP58=@passt.top X-Gm-Message-State: AOJu0Yw/grKzqlUV61h6cMxUJBNcCkmxHX/oWGdNUggPdStFxAABiPao hxduRRVV6X7ieUVNEeuAqv4YoGDdI7x4dSq1nJ5m7C7vykHz2BGLMn9vHGAKZKqmxrxD2iZqiMY WwDRFKy7zoUc7MzRJcDXgI66byXlf99Gh7UbH9uM2m35+pUwnEiMo+w== X-Gm-Gg: ATEYQzwZr3QjUMbwTLOFAfnOqDwsBAq748KhCNYr/Nkyz9VUIIIILM8Ps622i0pFJP4 whnT7yWxDRO52kn1fwSOsUYMFRjMhC3tr6VW90ZkqMJgRbs/mB1SuBoB0tI33XVO8Vfo2XmD/SC pWKkWZEBbIGTzFoj4YAwLDAQIF20k7t7leSdAB4V4adn1AXRPmTVCvM/xAJPjRBnBU8Qp5kYgye 6WtPNRNZNfvVBFyTOHCqz9Zhl1VWfWV/VGNH6aXg0VwNzEHEt0+aeRGD1e+IAna9VZ71FsBDYTf b/QkDJSvnJfqvtFDrrKYOO3d3HSugACGx+G0+q1qoq59DxSBd2JiOty0z+ZtNSQFUDGbQ5HIhTk 0nqnLsC4txTxLLC57i20fMbjb1boAawyJUR42fjv30tvK63gIFh2MenEwDPs/MaAnrA== X-Received: by 2002:a5d:5d02:0:b0:439:c9fb:c552 with SMTP id ffacd0b85a97d-43b51960632mr4125060f8f.19.1773818472893; Wed, 18 Mar 2026 00:21:12 -0700 (PDT) X-Received: by 2002:a5d:5d02:0:b0:439:c9fb:c552 with SMTP id ffacd0b85a97d-43b51960632mr4125007f8f.19.1773818472301; Wed, 18 Mar 2026 00:21:12 -0700 (PDT) Received: from ?IPV6:2a01:e0a:e10:ef90:4326:a36e:a7cb:624b? ([2a01:e0a:e10:ef90:4326:a36e:a7cb:624b]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b5184962bsm5178337f8f.7.2026.03.18.00.21.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 18 Mar 2026 00:21:11 -0700 (PDT) Message-ID: <062fad4c-39f9-489e-8c98-544a4c6ada30@redhat.com> Date: Wed, 18 Mar 2026 08:21:10 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 3/3] vu_common: Move iovec management into vu_collect() To: David Gibson References: <20260313182618.4157365-1-lvivier@redhat.com> <20260313182618.4157365-4-lvivier@redhat.com> <20260317162350.058e10e0@elisabeth> <4705f7ab-9277-4462-ada6-6bee39342627@redhat.com> From: Laurent Vivier Autocrypt: addr=lvivier@redhat.com; keydata= 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 In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: T6IUi4i_J-Lds7AAApbxQRvoNWxyd6VppB3mKFbAkDU_1773818473 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Message-ID-Hash: B6STRKTJERC2F5GN6CYX7IHF5OUVCNSA X-Message-ID-Hash: B6STRKTJERC2F5GN6CYX7IHF5OUVCNSA X-MailFrom: lvivier@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Stefano Brivio , passt-dev@passt.top X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: T24gMy8xOC8yNiAwMjoxNiwgRGF2aWQgR2lic29uIHdyb3RlOg0KPiBPbiBUdWUsIE1hciAxNywg MjAyNiBhdCAwNTozMDozMlBNICswMTAwLCBMYXVyZW50IFZpdmllciB3cm90ZToNCj4+IE9uIDMv MTcvMjYgMTY6MjMsIFN0ZWZhbm8gQnJpdmlvIHdyb3RlOg0KPj4+IE9uIFR1ZSwgMTcgTWFyIDIw MjYgMDg6MjU6NDkgKzAxMDANCj4+PiBMYXVyZW50IFZpdmllciA8bHZpdmllckByZWRoYXQuY29t PiB3cm90ZToNCj4+Pg0KPj4+PiBPbiAzLzE3LzI2IDAzOjQwLCBEYXZpZCBHaWJzb24gd3JvdGU6 DQo+Pj4+PiBPbiBGcmksIE1hciAxMywgMjAyNiBhdCAwNzoyNjoxOFBNICswMTAwLCBMYXVyZW50 IFZpdmllciB3cm90ZToNCj4+Pj4+PiBQcmV2aW91c2x5LCBjYWxsZXJzIGhhZCB0byBwcmUtaW5p dGlhbGl6ZSB2aXJ0cXVldWUgZWxlbWVudHMgd2l0aCBpb3ZlYw0KPj4+Pj4+IGVudHJpZXMgdXNp bmcgdnVfc2V0X2VsZW1lbnQoKSBvciB2dV9pbml0X2VsZW0oKSBiZWZvcmUgY2FsbGluZw0KPj4+ Pj4+IHZ1X2NvbGxlY3QoKS4gIFRoaXMgbWVhbnQgZWFjaCBlbGVtZW50IG93bmVkIGEgZml4ZWQs IHByZS1hc3NpZ25lZCBpb3ZlYw0KPj4+Pj4+IHNsb3QuDQo+Pj4+Pj4NCj4+Pj4+PiBNb3ZlIHRo ZSBpb3ZlYyBhcnJheSBpbnRvIHZ1X2NvbGxlY3QoKSBhcyBleHBsaWNpdCBwYXJhbWV0ZXJzIChp bl9zZywNCj4+Pj4+PiBtYXhfaW5fc2csIGFuZCBpbl9udW0pLCBsZXR0aW5nIGl0IHBhc3MgdGhl IHJlbWFpbmluZyBpb3ZlYyBjYXBhY2l0eQ0KPj4+Pj4+IGRpcmVjdGx5IHRvIHZ1X3F1ZXVlX3Bv cCgpLiAgQSBydW5uaW5nIGN1cnJlbnRfaW92IGNvdW50ZXIgdHJhY2tzDQo+Pj4+Pj4gY29uc3Vt ZWQgZW50cmllcyBhY3Jvc3MgZWxlbWVudHMsIHNvIG11bHRpcGxlIGVsZW1lbnRzIHNoYXJlIGEg c2luZ2xlDQo+Pj4+Pj4gaW92ZWMgcG9vbC4gIFRoZSBvcHRpb25hbCBpbl9udW0gb3V0cHV0IHBh cmFtZXRlciByZXBvcnRzIGhvdyBtYW55IGlvdmVjDQo+Pj4+Pj4gZW50cmllcyB3ZXJlIGNvbnN1 bWVkLCBhbGxvd2luZyBjYWxsZXJzIHRvIHRyYWNrIHVzYWdlIGFjcm9zcyBtdWx0aXBsZQ0KPj4+ Pj4+IHZ1X2NvbGxlY3QoKSBjYWxscy4NCj4+Pj4+Pg0KPj4+Pj4+IFRoaXMgcmVtb3ZlcyB2dV9z ZXRfZWxlbWVudCgpIGFuZCB2dV9pbml0X2VsZW0oKSB3aGljaCBhcmUgbm8gbG9uZ2VyDQo+Pj4+ Pj4gbmVlZGVkLCBhbmQgaXMgYSBwcmVyZXF1aXNpdGUgZm9yIG11bHRpLWJ1ZmZlciBzdXBwb3J0 IHdoZXJlIGEgc2luZ2xlDQo+Pj4+Pj4gdmlydHF1ZXVlIGVsZW1lbnQgY2FuIHVzZSBtb3JlIHRo YW4gb25lIGlvdmVjIGVudHJ5LiAgRm9yIG5vdywgY2FsbGVycw0KPj4+Pj4+IGFzc2VydCB0aGUg Y3VycmVudCBzaW5nbGUtaW92ZWMtcGVyLWVsZW1lbnQgaW52YXJpYW50IHVudGlsIHRoZXkgYXJl DQo+Pj4+Pj4gdXBkYXRlZCB0byBoYW5kbGUgbXVsdGlwbGUgaW92ZWNzLg0KPj4+Pj4+DQo+Pj4+ Pj4gU2lnbmVkLW9mZi1ieTogTGF1cmVudCBWaXZpZXIgPGx2aXZpZXJAcmVkaGF0LmNvbT4NCj4+ Pj4+DQo+Pj4+PiBSZXZpZXdlZC1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJl YXIuaWQuYXU+DQo+Pj4+Pg0KPj4+Pj4gQ291cGxlIG9mIHRob3VnaHRzIG9uIHBvc3NpYmxlIHBv bGlzaCBiZWxvdy4NCj4+Pj4+DQo+Pj4+PiBbc25pcF0NCj4+Pj4+PiAgICAgLyoqDQo+Pj4+Pj4g ICAgICAqIHZ1X2NvbGxlY3QoKSAtIGNvbGxlY3QgdmlydGlvIGJ1ZmZlcnMgZnJvbSBhIGdpdmVu IHZpcnRxdWV1ZQ0KPj4+Pj4+ICAgICAgKiBAdmRldjoJCXZob3N0LXVzZXIgZGV2aWNlDQo+Pj4+ Pj4gICAgICAqIEB2cToJCQl2aXJ0cXVldWUgdG8gY29sbGVjdCBmcm9tDQo+Pj4+Pj4gLSAqIEBl bGVtOgkJQXJyYXkgb2YgdmlydHF1ZXVlIGVsZW1lbnQNCj4+Pj4+PiAtICogCQkJZWFjaCBlbGVt ZW50IG11c3QgYmUgaW5pdGlhbGl6ZWQgd2l0aCBvbmUgaW92ZWMgZW50cnkNCj4+Pj4+PiAtICog CQkJaW4gdGhlIGluX3NnIGFycmF5Lg0KPj4+Pj4+ICsgKiBAZWxlbToJCUFycmF5IG9mIEBtYXhf ZWxlbSB2aXJ0cXVldWUgZWxlbWVudHMNCj4+Pj4+PiAgICAgICogQG1heF9lbGVtOgkJTnVtYmVy IG9mIHZpcnRxdWV1ZSBlbGVtZW50cyBpbiB0aGUgYXJyYXkNCj4+Pj4+PiArICogQGluX3NnOgkJ SW5jb21pbmcgaW92ZWMgYXJyYXkgZm9yIGRldmljZS13cml0YWJsZSBkZXNjcmlwdG9ycw0KPj4+ Pj4+ICsgKiBAbWF4X2luX3NnOgkJTWF4aW11bSBudW1iZXIgb2YgZW50cmllcyBpbiBAaW5fc2cN Cj4+Pj4+PiArICogQGluX251bToJCU51bWJlciBvZiBjb2xsZWN0ZWQgZW50cmllcyBmcm9tIEBp bl9zZyAob3V0cHV0KQ0KPj4+Pj4+ICAgICAgKiBAc2l6ZToJCU1heGltdW0gc2l6ZSBvZiB0aGUg ZGF0YSBpbiB0aGUgZnJhbWUNCj4+Pj4+PiAgICAgICogQGNvbGxlY3RlZDoJCUNvbGxlY3RlZCBi dWZmZXIgbGVuZ3RoLCB1cCB0byBAc2l6ZSwgc2V0IG9uIHJldHVybg0KPj4+Pj4+ICAgICAgKg0K Pj4+Pj4+IEBAIC04MCwyMCArNjcsMjEgQEAgdm9pZCB2dV9pbml0X2VsZW0oc3RydWN0IHZ1X3Zp cnRxX2VsZW1lbnQgKmVsZW0sIHN0cnVjdCBpb3ZlYyAqaW92LCBpbnQgZWxlbV9jbnQNCj4+Pj4+ PiAgICAgICovDQo+Pj4+Pj4gICAgIGludCB2dV9jb2xsZWN0KGNvbnN0IHN0cnVjdCB2dV9kZXYg KnZkZXYsIHN0cnVjdCB2dV92aXJ0cSAqdnEsDQo+Pj4+Pj4gICAgIAkgICAgICAgc3RydWN0IHZ1 X3ZpcnRxX2VsZW1lbnQgKmVsZW0sIGludCBtYXhfZWxlbSwNCj4+Pj4+PiArCSAgICAgICBzdHJ1 Y3QgaW92ZWMgKmluX3NnLCBzaXplX3QgbWF4X2luX3NnLCBzaXplX3QgKmluX251bSwNCj4+Pj4+ PiAgICAgCSAgICAgICBzaXplX3Qgc2l6ZSwgc2l6ZV90ICpjb2xsZWN0ZWQpDQo+Pj4+Pj4gICAg IHsNCj4+Pj4+PiAgICAgCXNpemVfdCBjdXJyZW50X3NpemUgPSAwOw0KPj4+Pj4+ICsJc2l6ZV90 IGN1cnJlbnRfaW92ID0gMDsNCj4+Pj4+PiAgICAgCWludCBlbGVtX2NudCA9IDA7DQo+Pj4+Pj4g LQl3aGlsZSAoY3VycmVudF9zaXplIDwgc2l6ZSAmJiBlbGVtX2NudCA8IG1heF9lbGVtKSB7DQo+ Pj4+Pj4gLQkJc3RydWN0IGlvdmVjICppb3Y7DQo+Pj4+Pj4gKwl3aGlsZSAoY3VycmVudF9zaXpl IDwgc2l6ZSAmJiBlbGVtX2NudCA8IG1heF9lbGVtICYmDQo+Pj4+Pj4gKwkgICAgICAgY3VycmVu dF9pb3YgPCBtYXhfaW5fc2cpIHsNCj4+Pj4+PiAgICAgCQlpbnQgcmV0Ow0KPj4+Pj4+ICAgICAJ CXJldCA9IHZ1X3F1ZXVlX3BvcCh2ZGV2LCB2cSwgJmVsZW1bZWxlbV9jbnRdLA0KPj4+Pj4+IC0J CQkJICAgZWxlbVtlbGVtX2NudF0uaW5fc2csDQo+Pj4+Pj4gLQkJCQkgICBlbGVtW2VsZW1fY250 XS5pbl9udW0sDQo+Pj4+Pj4gLQkJCQkgICBlbGVtW2VsZW1fY250XS5vdXRfc2csDQo+Pj4+Pj4g LQkJCQkgICBlbGVtW2VsZW1fY250XS5vdXRfbnVtKTsNCj4+Pj4+PiArCQkJCSAgICZpbl9zZ1tj dXJyZW50X2lvdl0sDQo+Pj4+Pj4gKwkJCQkgICBtYXhfaW5fc2cgLSBjdXJyZW50X2lvdiwNCj4+ Pj4+PiArCQkJCSAgIE5VTEwsIDApOw0KPj4+Pj4+ICAgICAJCWlmIChyZXQgPCAwKQ0KPj4+Pj4+ ICAgICAJCQlicmVhazsNCj4+Pj4+PiBAQCAtMTAzLDE4ICs5MSwyMiBAQCBpbnQgdnVfY29sbGVj dChjb25zdCBzdHJ1Y3QgdnVfZGV2ICp2ZGV2LCBzdHJ1Y3QgdnVfdmlydHEgKnZxLA0KPj4+Pj4+ ICAgICAJCQlicmVhazsNCj4+Pj4+PiAgICAgCQl9DQo+Pj4+Pj4gLQkJaW92ID0gJmVsZW1bZWxl bV9jbnRdLmluX3NnWzBdOw0KPj4+Pj4+IC0NCj4+Pj4+PiAtCQlpZiAoaW92LT5pb3ZfbGVuID4g c2l6ZSAtIGN1cnJlbnRfc2l6ZSkNCj4+Pj4+PiAtCQkJaW92LT5pb3ZfbGVuID0gc2l6ZSAtIGN1 cnJlbnRfc2l6ZTsNCj4+Pj4+PiArCQllbGVtW2VsZW1fY250XS5pbl9udW0gPSBpb3ZfdHJ1bmNh dGUoZWxlbVtlbGVtX2NudF0uaW5fc2csDQo+Pj4+Pj4gKwkJCQkJCSAgICAgZWxlbVtlbGVtX2Nu dF0uaW5fbnVtLA0KPj4+Pj4+ICsJCQkJCQkgICAgIHNpemUgLSBjdXJyZW50X3NpemUpOw0KPj4+ Pj4NCj4+Pj4+IFdpbGwgZWxlbVtdLmluX251bSBhbHdheXMgZW5kIHVwIHdpdGggdGhlIHNhbWUg dmFsdWUgYXMgdGhlIEBpbl9udW0NCj4+Pj4+IHBhcmFtZXRlcj8gIElmIHNvLCBkbyB3ZSBuZWVk IHRoZSBleHBsaWNpdCBwYXJhbWV0ZXI/DQo+Pj4+DQo+Pj4+IEBpbl9udW0gcGFyYW1ldGVyIG9m IHZ1X2NvbGxlY3QoKT8NCj4+Pj4NCj4+Pj4gQGluX251bSBpcyB0aGUgc3VtIG9mIGFsbCBlbGVt W10uaW5fbnVtLCBpdCBjYW4gYmUgY29tcHV0ZWQgYnkgdGhlIGNhbGxlciBmdW5jdGlvbiBmcm9t DQo+Pj4+IGVsZW0sIGJ1dCBpdCBpcyBzaW1wbGVyIHRvIHJldHVybiBpdCBhcyB3ZSBuZWVkIHRv IGNvbXB1dGUgaXQgaW4gdGhlIGxvb3AuDQo+Pj4NCj4+PiBJJ20gbm90IHN1cmUgSSB1bmRlcnN0 b29kIHRoZSBwb2ludCBvZiBEYXZpZCdzIGNvbW1lbnQgaGVyZSwgYW5kIHRoaXMNCj4+PiBleHBs YW5hdGlvbiBtYWtlcyBzZW5zZSB0byBtZSBub3csIGJ1dCBpdCB0b29rIG1lIGEgYml0IHRvIGZp Z3VyZSB0aGF0DQo+Pj4gb3V0Lg0KPj4+DQo+Pj4gQ291bGQgaXQgYmUgdGhhdCBAaW5fbnVtIGlz IGEgYml0IGNvbmZ1c2luZyBhcyBpdCBoYXMgImluIiBhbmQgIm51bSIgaW4NCj4+PiBpdCwgYnV0 IGl0J3MgYWN0dWFsbHkgYW4gb3V0cHV0IHJlcHJlc2VudGluZyBob3cgbWFueSAiaW4iIGVudHJp ZXMgd2UNCj4+PiB1c2VkL25lZWQ/DQo+Pg0KPj4gRm9yIGFuIGVsZW1lbnQsICrDrG5fKm51bSBp cyB0aGUgbnVtYmVyIG9mICppbl8qc2cgd2UgaGF2ZSByZWFkIGZyb20gdGhlIHJpbmcgZm9yIGFu IGVsZW1lbnQuDQo+Pg0KPj4gSXQncyB2aXJ0aW8gc2VtYW50aWMsIHNvICAqaW5fKiBtZWFucyBz ZyBnb2luZyAqaW4qIHRoZSBndWVzdC4NCj4+DQo+PiBGb3IgKm91dF8qc2cgd2UgaGF2ZSAqb3V0 XypudW0uDQo+Pg0KPj4+DQo+Pj4gV2hhdCBpZiB3ZSByZW5hbWUgaXQgdG8gQGluX3VzZWQgb3Ig QGluX2NvbGxlY3RlZD8NCj4+Pg0KPj4NCj4+IFRoZSBpZGVhIHdhcyB0byBrZWVwIHRoZSBzYW1l IG5hbWUgYXMgaW4gdGhlIGVsZW1lbnQuIEJ1dCB3ZSBjYW4gY2hhbmdlIHRoaXMgdG8gQGluX3Vz ZWQuDQo+IA0KPiBXb3VsZCAiaW5fdG90YWwiIHdvcmsgYmV0dGVyIHRvIHN1Z2dlc3QgdGhhdCBp dCdzIHRoZSBzdW0gb2YgYWxsIHRoZQ0KPiBlbGVtZW50cycgaW5fbnVtPw0KPiANCg0KWWVzLCBJ IHRoaW5rIGl0IGdpdmVzIHRoZSBpbmZvcm1hdGlvbiBpdCdzIHRoZSBzdW0gb2YgdGhlIGluX251 bQ0KDQpUaGFua3MsDQpMYXVyZW50DQoNCg==