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 3E715A0C4C; Thu, 2 Sep 2021 17:38:38 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BBBDA4003E; Thu, 2 Sep 2021 17:38:37 +0200 (CEST) Received: from m1329.mail.163.com (m1329.mail.163.com [220.181.13.29]) by mails.dpdk.org (Postfix) with ESMTP id 02CDF4003C for ; Thu, 2 Sep 2021 17:38:32 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=Date:From:Subject:MIME-Version:Message-ID; bh=Cx3yn 5e4P75w5pqIi+oRW87ICf5zb15HT9Kn54KFHVg=; b=YQd/YJ6vpgDOkpTtBXeMr i+A1j9c6t1zeFdWkcdz3ApPPIst2QYvV8yA/BukTzrp7ZNXDU55jaq2gjs/9xKEx IsJH+LrN8ixeo26agJLYds6ivOL9VEIcri8o/09U1aJLukF8yZ84YTOg6TuVIf5I rj5OZeZYkw45PyV8xxWWvM= Received: from gaoxiangliu0$163.com ( [39.182.52.167] ) by ajax-webmail-wmsvr29 (Coremail) ; Thu, 2 Sep 2021 23:38:27 +0800 (CST) X-Originating-IP: [39.182.52.167] Date: Thu, 2 Sep 2021 23:38:27 +0800 (CST) From: "Gaoxiang Liu" To: "Xia, Chenbo" Cc: "maxime.coquelin@redhat.com" , "dev@dpdk.org" , "liugaoxiang@huawei.com" X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.13 build 20210622(1d4788a8) Copyright (c) 2002-2021 www.mailtech.cn 163com In-Reply-To: References: <20210820154615.551-1-gaoxiangliu0@163.com> <20210827141925.1500-1-gaoxiangliu0@163.com> X-CM-CTRLDATA: ur2/k2Zvb3Rlcl9odG09ODk5Mzo1Ng== MIME-Version: 1.0 Message-ID: <120eb1f4.155.17ba7294da6.Coremail.gaoxiangliu0@163.com> X-Coremail-Locale: zh_CN X-CM-TRANSID: HcGowABn6A307zBh_0EUAA--.41322W X-CM-SenderInfo: xjdr5xxdqjzxjxq6il2tof0z/xtbB3QsCOmBHKNbpywAAsV X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== Content-Type: text/plain; charset=GBK Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [dpdk-dev] [PATCH v6] vhost: fix crash on port deletion 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 Sender: "dev" CgoKSGkgY2hlbmJvLAp3aHkgdGhpcyBpcyBub3QgbW92ZWQgdXA/Cj4+ICsJCWlmICh2c29ja2V0 LT5pc19zZXJ2ZXIpIHsKPj4gKwkJCWNsb3NlKHZzb2NrZXQtPnNvY2tldF9mZCk7Cj4+ICsJCQl1 bmxpbmsocGF0aCk7Cj4+ICAJCX0KPT0+QmVjYXVzZSBpZiB0aGlzIGlzIG1vdmVkIHVwLCBhbmQg aWYgZGVsZXRpbmcgY29ubiBmZCBmcm9tIGZkc2V0cyBmYWlsZWQsCml0IHdpbGwgYXJyaXZlIHRo ZSAiYWdhaW4iIGxhYmVsLCB0aGVuIGNsb3NlIHZzb2NrZXQtPnNvY2tldF9mZCBhbmQgdXBsaW5r ICJwYXRoIiBhZ2Fpbi4KaXQncyBub3QgbmVjZXNzYXJ5LgpBbmQgY2xvc2luZyBzb2NrZXRfZmQg ZG9lcyBub3QgIHRyaWdnZXIgdmhvc3RfdXNlcl9zZXJ2ZXJfbmV3X2Nvbm5lY3Rpb24uCgoKVGhh bmtzLgpHYW94aWFuZwoKCkF0IDIwMjEtMDgtMzEgMTM6Mzc6MzgsICJYaWEsIENoZW5ibyIgPGNo ZW5iby54aWFAaW50ZWwuY29tPiB3cm90ZToKPkhpIEdhb3hpYW5nLAo+Cj4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tCj4+IEZyb206IEdhb3hpYW5nIExpdSA8Z2FveGlhbmdsaXUwQDE2My5j b20+Cj4+IFNlbnQ6IEZyaWRheSwgQXVndXN0IDI3LCAyMDIxIDEwOjE5IFBNCj4+IFRvOiBtYXhp bWUuY29xdWVsaW5AcmVkaGF0LmNvbTsgWGlhLCBDaGVuYm8gPGNoZW5iby54aWFAaW50ZWwuY29t Pgo+PiBDYzogZGV2QGRwZGsub3JnOyBsaXVnYW94aWFuZ0BodWF3ZWkuY29tOyBHYW94aWFuZyBM aXUgPGdhb3hpYW5nbGl1MEAxNjMuY29tPgo+PiBTdWJqZWN0OiBbUEFUQ0ggdjZdIHZob3N0OiBm aXggY3Jhc2ggb24gcG9ydCBkZWxldGlvbgo+PiAKPj4gVGhlIHJ0ZV92aG9zdF9kcml2ZXJfdW5y ZWdpc3RlcigpIGFuZCB2aG9zdF91c2VyX3JlYWRfY2IoKQo+PiBjYW4gYmUgY2FsbGVkIGF0IHRo ZSBzYW1lIHRpbWUgYnkgMiB0aHJlYWRzLgo+PiB3aGVuIG1lbW9yeSBvZiB2c29ja2V0IGlzIGZy ZWVkIGluIHJ0ZV92aG9zdF9kcml2ZXJfdW5yZWdpc3RlcigpLAo+PiB0aGUgaW52YWxpZCBtZW1v cnkgb2YgdnNvY2tldCBpcyBhY2Nlc3NlZCBpbiB2aG9zdF91c2VyX3JlYWRfY2IoKS4KPj4gSXQn cyBhIGJ1ZyBvZiBib3RoIG1vZGUgZm9yIHZob3N0IGFzIHNlcnZlciBvciBjbGllbnQuCj4+IAo+ PiBFLmcuLHZob3N0dXNlciBwb3J0IGlzIGNyZWF0ZWQgYXMgc2VydmVyLgo+Cj5QdXQgYSBzcGFj ZSBhZnRlciAnLCcKPgo+PiBUaHJlYWQxIGNhbGxzIHJ0ZV92aG9zdF9kcml2ZXJfdW5yZWdpc3Rl cigpLgo+PiBCZWZvcmUgdGhlIGxpc3RlbiBmZCBpcyBkZWxldGVkIGZyb20gcG9sbCB3YWl0aW5n IGZkcywKPj4gInZob3N0LWV2ZW50cyIgdGhyZWFkIHRoZW4gY2FsbHMgdmhvc3RfdXNlcl9zZXJ2 ZXJfbmV3X2Nvbm5lY3Rpb24oKSwKPj4gdGhlbiBhIG5ldyBjb25uIGZkIGlzIGFkZGVkIGluIGZk c2V0IHdoZW4gdHJ5aW5nIHRvIHJlY29ubmVjdC4KPj4gInZob3N0LWV2ZW50cyIgdGhyZWFkIHRo ZW4gY2FsbHMgdmhvc3RfdXNlcl9yZWFkX2NiKCkgYW5kCj4+IGFjY2Vzc2VzIGludmFsaWQgbWVt b3J5IG9mIHNvY2tldCB3aGlsZSB0aHJlYWQxIGZyZWVzIHRoZSBtZW1vcnkgb2YKPj4gdnNvY2tl dC4KPj4gCj4+IEUuZy4sdmhvc3R1c2VyIHBvcnQgaXMgY3JlYXRlZCBhcyBjbGllbnQuCj4KPlNh bWUgaGVyZS4KPgo+PiBUaHJlYWQxIGNhbGxzIHJ0ZV92aG9zdF9kcml2ZXJfdW5yZWdpc3Rlcigp Lgo+PiBCZWZvcmUgdnNvY2tldCBvZiByZWNvbm4gaXMgZGVsZXRlZCBmcm9tIHJlY29ubiBsaXN0 LAo+PiAidmhvc3RfcmVjb25uIiB0aHJlYWQgdGhlbiBjYWxscyB2aG9zdF91c2VyX2FkZF9jb25u ZWN0aW9uKCkKPj4gdGhlbiBhIG5ldyBjb25uIGZkIGlzIGFkZGVkIGluIGZkc2V0IHdoZW4gdHJ5 aW5nIHRvIHJlY29ubmVjdC4KPj4gInZob3N0LWV2ZW50cyIgdGhyZWFkIHRoZW4gY2FsbHMgdmhv c3RfdXNlcl9yZWFkX2NiKCkgYW5kCj4+IGFjY2Vzc2VzIGludmFsaWQgbWVtb3J5IG9mIHNvY2tl dCB3aGlsZSB0aHJlYWQxIGZyZWVzIHRoZSBtZW1vcnkgb2YKPj4gdnNvY2tldC4KPj4gCj4+IFRo ZSBmaXggaXMgdG8gbW92ZSB0aGUgImZkc2V0X3RyeV9kZWwiIGluIGZyb250IG9mIGZyZWUgbWVt b3J5IG9mIGNvbm4sCj4+IHRoZW4gYXZvaWQgdGhlIHJhY2UgY29uZGl0aW9uLgo+PiAKPj4gVGhl IGNvcmUgdHJhY2UgaXM6Cj4+IFByb2dyYW0gdGVybWluYXRlZCB3aXRoIHNpZ25hbCAxMSwgU2Vn bWVudGF0aW9uIGZhdWx0Lgo+PiAKPj4gRml4ZXM6IDUyZDg3NGRjNjcwNSAoInZob3N0OiBmaXgg Y3Jhc2ggb24gY2xvc2luZyBpbiBjbGllbnQgbW9kZSIpCj4+IAo+PiBTaWduZWQtb2ZmLWJ5OiBH YW94aWFuZyBMaXUgPGxpdWdhb3hpYW5nQGh1YXdlaS5jb20+Cj4+IC0tLQo+PiAKPj4gdjI6Cj4+ ICogRml4IGNvZGluZyBzdHlsZSBpc3N1ZXMuCj4+IAo+PiB2MzoKPj4gKiBBZGQgZGV0YWlsZWQg bG9nLgo+PiAKPj4gdjQ6Cj4+ICogQWRkIHRoZSByZWFzb24sIHdoZW4gdmhvc3R1c2VyIHBvcnQg aXMgY3JlYXRlZCBhcyBzZXJ2ZXIuCj4+IAo+PiB2NToKPj4gKiBBZGQgZGV0YWlsZWQgbG9nIHdo ZW4gdmhvc3R1c2VyIHBvcnQgaXMgY3JlYXRlZCBhcyBjbGllbnQKPj4gCj4+IHY2Ogo+PiAqIEFk ZCAncGF0aCcgY2hlY2sgYmVmb3JlIGRlbGV0aW5nIGxpc3RlbiBmZAo+PiAqIEZpeCBzcGVsbGlu ZyBpc3N1ZXMKPj4gLS0tCj4+ICBsaWIvdmhvc3Qvc29ja2V0LmMgfCAxMDggKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICAxIGZpbGUgY2hhbmdlZCwgNTQg aW5zZXJ0aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCj4+IAo+PiBkaWZmIC0tZ2l0IGEvbGliL3Zo b3N0L3NvY2tldC5jIGIvbGliL3Zob3N0L3NvY2tldC5jCj4+IGluZGV4IDVkMGQ3MjhkNS4uMjdk NWU4Njk1IDEwMDY0NAo+PiAtLS0gYS9saWIvdmhvc3Qvc29ja2V0LmMKPj4gKysrIGIvbGliL3Zo b3N0L3NvY2tldC5jCj4+IEBAIC0xMDIzLDY2ICsxMDIzLDY2IEBAIHJ0ZV92aG9zdF9kcml2ZXJf dW5yZWdpc3Rlcihjb25zdCBjaGFyICpwYXRoKQo+PiAKPj4gIAlmb3IgKGkgPSAwOyBpIDwgdmhv c3RfdXNlci52c29ja2V0X2NudDsgaSsrKSB7Cj4+ICAJCXN0cnVjdCB2aG9zdF91c2VyX3NvY2tl dCAqdnNvY2tldCA9IHZob3N0X3VzZXIudnNvY2tldHNbaV07Cj4+ICsJCWlmIChzdHJjbXAodnNv Y2tldC0+cGF0aCwgcGF0aCkpIHsKPj4gKwkJCWNvbnRpbnVlOwo+PiArCQl9Cj4KPmJyYWNlcyB7 fSBhcmUgbm90IG5lY2Vzc2FyeSBmb3Igc2luZ2xlIHN0YXRlbWVudCBibG9ja3MKPgo+PiAKPj4g LQkJaWYgKCFzdHJjbXAodnNvY2tldC0+cGF0aCwgcGF0aCkpIHsKPj4gLQkJCXB0aHJlYWRfbXV0 ZXhfbG9jaygmdnNvY2tldC0+Y29ubl9tdXRleCk7Cj4+IC0JCQlmb3IgKGNvbm4gPSBUQUlMUV9G SVJTVCgmdnNvY2tldC0+Y29ubl9saXN0KTsKPj4gLQkJCSAgICAgY29ubiAhPSBOVUxMOwo+PiAt CQkJICAgICBjb25uID0gbmV4dCkgewo+PiAtCQkJCW5leHQgPSBUQUlMUV9ORVhUKGNvbm4sIG5l eHQpOwo+PiAtCj4+IC0JCQkJLyoKPj4gLQkJCQkgKiBJZiByL3djYiBpcyBleGVjdXRpbmcsIHJl bGVhc2UgdnNvY2tldCdzCj4+IC0JCQkJICogY29ubl9tdXRleCBhbmQgdmhvc3RfdXNlcidzIG11 dGV4IGxvY2tzLCBhbmQKPj4gLQkJCQkgKiB0cnkgYWdhaW4gc2luY2UgdGhlIHIvd2NiIG1heSB1 c2UgdGhlCj4+IC0JCQkJICogY29ubl9tdXRleCBhbmQgbXV0ZXggbG9ja3MuCj4+IC0JCQkJICov Cj4+IC0JCQkJaWYgKGZkc2V0X3RyeV9kZWwoJnZob3N0X3VzZXIuZmRzZXQsCj4+IC0JCQkJCQkg IGNvbm4tPmNvbm5mZCkgPT0gLTEpIHsKPj4gLQkJCQkJcHRocmVhZF9tdXRleF91bmxvY2soCj4+ IC0JCQkJCQkJJnZzb2NrZXQtPmNvbm5fbXV0ZXgpOwo+PiAtCQkJCQlwdGhyZWFkX211dGV4X3Vu bG9jaygmdmhvc3RfdXNlci5tdXRleCk7Cj4+IC0JCQkJCWdvdG8gYWdhaW47Cj4+IC0JCQkJfQo+ PiAtCj4+IC0JCQkJVkhPU1RfTE9HX0NPTkZJRyhJTkZPLAo+PiAtCQkJCQkiZnJlZSBjb25uZmQg PSAlZCBmb3IgZGV2aWNlICclcydcbiIsCj4+IC0JCQkJCWNvbm4tPmNvbm5mZCwgcGF0aCk7Cj4+ IC0JCQkJY2xvc2UoY29ubi0+Y29ubmZkKTsKPj4gLQkJCQl2aG9zdF9kZXN0cm95X2RldmljZShj b25uLT52aWQpOwo+PiAtCQkJCVRBSUxRX1JFTU9WRSgmdnNvY2tldC0+Y29ubl9saXN0LCBjb25u LCBuZXh0KTsKPj4gLQkJCQlmcmVlKGNvbm4pOwo+PiAtCQkJfQo+PiAtCQkJcHRocmVhZF9tdXRl eF91bmxvY2soJnZzb2NrZXQtPmNvbm5fbXV0ZXgpOwo+PiAtCj4+IC0JCQlpZiAodnNvY2tldC0+ aXNfc2VydmVyKSB7Cj4+IC0JCQkJLyoKPj4gLQkJCQkgKiBJZiByL3djYiBpcyBleGVjdXRpbmcs IHJlbGVhc2Ugdmhvc3RfdXNlcidzCj4+IC0JCQkJICogbXV0ZXggbG9jaywgYW5kIHRyeSBhZ2Fp biBzaW5jZSB0aGUgci93Y2IKPj4gLQkJCQkgKiBtYXkgdXNlIHRoZSBtdXRleCBsb2NrLgo+PiAt CQkJCSAqLwo+PiAtCQkJCWlmIChmZHNldF90cnlfZGVsKCZ2aG9zdF91c2VyLmZkc2V0LAo+PiAt CQkJCQkJdnNvY2tldC0+c29ja2V0X2ZkKSA9PSAtMSkgewo+PiAtCQkJCQlwdGhyZWFkX211dGV4 X3VubG9jaygmdmhvc3RfdXNlci5tdXRleCk7Cj4+IC0JCQkJCWdvdG8gYWdhaW47Cj4+IC0JCQkJ fQo+PiAtCj4+IC0JCQkJY2xvc2UodnNvY2tldC0+c29ja2V0X2ZkKTsKPj4gLQkJCQl1bmxpbmso cGF0aCk7Cj4+IC0JCQl9IGVsc2UgaWYgKHZzb2NrZXQtPnJlY29ubmVjdCkgewo+PiAtCQkJCXZo b3N0X3VzZXJfcmVtb3ZlX3JlY29ubmVjdCh2c29ja2V0KTsKPj4gKwkJaWYgKHZzb2NrZXQtPmlz X3NlcnZlcikgewo+PiArCQkJLyoKPj4gKwkJCSAqIElmIHIvd2NiIGlzIGV4ZWN1dGluZywgcmVs ZWFzZSB2aG9zdF91c2VyJ3MKPj4gKwkJCSAqIG11dGV4IGxvY2ssIGFuZCB0cnkgYWdhaW4gc2lu Y2UgdGhlIHIvd2NiCj4+ICsJCQkgKiBtYXkgdXNlIHRoZSBtdXRleCBsb2NrLgo+PiArCQkJICov Cj4+ICsJCQlpZiAoZmRzZXRfdHJ5X2RlbCgmdmhvc3RfdXNlci5mZHNldCwgdnNvY2tldC0+c29j a2V0X2ZkKSA9PQo+PiAtMSkgewo+PiArCQkJCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZ2aG9zdF91 c2VyLm11dGV4KTsKPj4gKwkJCQlnb3RvIGFnYWluOwo+PiAgCQkJfQo+PiArCQl9IGVsc2UgaWYg KHZzb2NrZXQtPnJlY29ubmVjdCkgewo+PiArCQkJdmhvc3RfdXNlcl9yZW1vdmVfcmVjb25uZWN0 KHZzb2NrZXQpOwo+PiArCQl9Cj4+IAo+PiAtCQkJcHRocmVhZF9tdXRleF9kZXN0cm95KCZ2c29j a2V0LT5jb25uX211dGV4KTsKPj4gLQkJCXZob3N0X3VzZXJfc29ja2V0X21lbV9mcmVlKHZzb2Nr ZXQpOwo+PiArCQlwdGhyZWFkX211dGV4X2xvY2soJnZzb2NrZXQtPmNvbm5fbXV0ZXgpOwo+PiAr CQlmb3IgKGNvbm4gPSBUQUlMUV9GSVJTVCgmdnNvY2tldC0+Y29ubl9saXN0KTsKPj4gKwkJCSBj b25uICE9IE5VTEw7Cj4+ICsJCQkgY29ubiA9IG5leHQpIHsKPj4gKwkJCW5leHQgPSBUQUlMUV9O RVhUKGNvbm4sIG5leHQpOwo+PiAKPj4gLQkJCWNvdW50ID0gLS12aG9zdF91c2VyLnZzb2NrZXRf Y250Owo+PiAtCQkJdmhvc3RfdXNlci52c29ja2V0c1tpXSA9IHZob3N0X3VzZXIudnNvY2tldHNb Y291bnRdOwo+PiAtCQkJdmhvc3RfdXNlci52c29ja2V0c1tjb3VudF0gPSBOVUxMOwo+PiAtCQkJ cHRocmVhZF9tdXRleF91bmxvY2soJnZob3N0X3VzZXIubXV0ZXgpOwo+PiArCQkJLyoKPj4gKwkJ CSAqIElmIHIvd2NiIGlzIGV4ZWN1dGluZywgcmVsZWFzZSB2c29ja2V0J3MKPj4gKwkJCSAqIGNv bm5fbXV0ZXggYW5kIHZob3N0X3VzZXIncyBtdXRleCBsb2NrcywgYW5kCj4+ICsJCQkgKiB0cnkg YWdhaW4gc2luY2UgdGhlIHIvd2NiIG1heSB1c2UgdGhlCj4+ICsJCQkgKiBjb25uX211dGV4IGFu ZCBtdXRleCBsb2Nrcy4KPj4gKwkJCSAqLwo+PiArCQkJaWYgKGZkc2V0X3RyeV9kZWwoJnZob3N0 X3VzZXIuZmRzZXQsCj4+ICsJCQkJCSAgY29ubi0+Y29ubmZkKSA9PSAtMSkgewo+PiArCQkJCXB0 aHJlYWRfbXV0ZXhfdW5sb2NrKCZ2c29ja2V0LT5jb25uX211dGV4KTsKPj4gKwkJCQlwdGhyZWFk X211dGV4X3VubG9jaygmdmhvc3RfdXNlci5tdXRleCk7Cj4+ICsJCQkJZ290byBhZ2FpbjsKPj4g KwkJCX0KPj4gKwo+PiArCQkJVkhPU1RfTE9HX0NPTkZJRyhJTkZPLAo+PiArCQkJCSJmcmVlIGNv bm5mZCA9ICVkIGZvciBkZXZpY2UgJyVzJ1xuIiwKPj4gKwkJCQljb25uLT5jb25uZmQsIHBhdGgp Owo+PiArCQkJY2xvc2UoY29ubi0+Y29ubmZkKTsKPj4gKwkJCXZob3N0X2Rlc3Ryb3lfZGV2aWNl KGNvbm4tPnZpZCk7Cj4+ICsJCQlUQUlMUV9SRU1PVkUoJnZzb2NrZXQtPmNvbm5fbGlzdCwgY29u biwgbmV4dCk7Cj4+ICsJCQlmcmVlKGNvbm4pOwo+PiArCQl9Cj4+ICsJCXB0aHJlYWRfbXV0ZXhf dW5sb2NrKCZ2c29ja2V0LT5jb25uX211dGV4KTsKPj4gCj4+IC0JCQlyZXR1cm4gMDsKPj4gKwkJ aWYgKHZzb2NrZXQtPmlzX3NlcnZlcikgewo+PiArCQkJY2xvc2UodnNvY2tldC0+c29ja2V0X2Zk KTsKPj4gKwkJCXVubGluayhwYXRoKTsKPj4gIAkJfQo+Cj5JIHRoaW5rIHlvdSBtaXNzIG15IGNv bW1lbnQgaW4gVjUgb2YgYXNraW5nIHdoeSB0aGlzIGlzIG5vdCBtb3ZlZCB1cCBhZnRlcgo+ZmRz ZXRfdHJ5X2RlbCBzZXJ2ZXIgc29ja2V0IGZkLgo+Cj5UaGFua3MsCj5DaGVuYm8KPgo+PiArCj4+ ICsJCXB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmdnNvY2tldC0+Y29ubl9tdXRleCk7Cj4+ICsJCXZo b3N0X3VzZXJfc29ja2V0X21lbV9mcmVlKHZzb2NrZXQpOwo+PiArCj4+ICsJCWNvdW50ID0gLS12 aG9zdF91c2VyLnZzb2NrZXRfY250Owo+PiArCQl2aG9zdF91c2VyLnZzb2NrZXRzW2ldID0gdmhv c3RfdXNlci52c29ja2V0c1tjb3VudF07Cj4+ICsJCXZob3N0X3VzZXIudnNvY2tldHNbY291bnRd ID0gTlVMTDsKPj4gKwkJcHRocmVhZF9tdXRleF91bmxvY2soJnZob3N0X3VzZXIubXV0ZXgpOwo+ PiArCQlyZXR1cm4gMDsKPj4gIAl9Cj4+ICAJcHRocmVhZF9tdXRleF91bmxvY2soJnZob3N0X3Vz ZXIubXV0ZXgpOwo+PiAKPj4gLS0KPj4gMi4zMi4wCj4+IAo+Cg==