From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DE696C433F5 for ; Tue, 14 Sep 2021 08:44:12 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 31F6B60EE0 for ; Tue, 14 Sep 2021 08:44:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 31F6B60EE0 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=nvidia.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=nongnu.org Received: from localhost ([::1]:55758 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mQ431-00083o-7t for qemu-devel@archiver.kernel.org; Tue, 14 Sep 2021 04:44:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56804) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mQ41I-0005iZ-39; Tue, 14 Sep 2021 04:42:24 -0400 Received: from mail-mw2nam10on2073.outbound.protection.outlook.com ([40.107.94.73]:60833 helo=NAM10-MW2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mQ41E-00075W-S8; Tue, 14 Sep 2021 04:42:23 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oL39BbaX9X/4Me464vajf0Krly+NmpVMGvRZQW4O1nAvAf0O1ROx5SjhFA3y++RFXEhHWwq11jFfy7rdXKmTKHFM1gQCCv+gKSJXXV7QdYqvCZw72AeCZ+GmgkUGAbT/R0cukTsBXFeIbI1PhRryW48K3IcCMeplsi9jjyoHrO1MSZhAsBZ3azG9Uc/b5lbS8uhKUH9B1ipIQ6wLf6dAxO3H31aSzOQWXaZqHASHZ9rc8Uf4Qace/VUlznpZfatxiL1fNBBGTuj0JHoecKTl3Ax422CzfZvhd4lXNBsgpYFu8o7N1oGw3k76+D0LR6rCEU/hRItFQ+I0TQ9+Q0nf4Q== 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; bh=G4PtEeobcZrghA72B9sVRDaG5vjkvADUyj1lNou7kk4=; b=gL4GQgcHp0XD1t5TcEzSAFuvwUPelyNHAhW/kbCY0nNSuUmArhOy7iOljfvXSSiunUiToziXdr1aX2D4iO+iWMEmJXJb9vQmczAAntUBTlodN1RVPfI1iivL3fOSssihr/TiZ9NePcQ8yc6BOvBMWLzU3zg/KtMt1Rp6NSy6n4aEJujzEFY5UYsZHCzA5es8Z0MlG+ba5Nfe9zQmwcIO4hk8q1BwdWA6wAhFv+HZshwRpDfy+YvbOWm+UrXNNdRX/Brkx5YNjwuUXEK6dJStfCNc3iOMvSHyliexi0lLykt/zUDUBW+ROVpeyBeZ6sXDDeKeE/wSRymSsPuKYPOD/w== 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=G4PtEeobcZrghA72B9sVRDaG5vjkvADUyj1lNou7kk4=; b=oNy6UT6X3rtSIVpUGbj1l5z79PMnymuiiHRMQxxeBpe7tacCAW1li0aCQ6kOQpl3MjYHqqq+fttM94k3cyOGju0f3N5HYPsjA8HUiT+x+NBfKW+dCtAFa3UrdsAYurJUzn1MGOFKrrWnsmUmn7w1KmNNKBnNfIZx3WnWFXF+w754wiSiOOevyp22J5IdeyA61TIOw/+ad7qUYOmjameFdjfgiVKrKkXiXJ0dLaHPX0+u661XE7fGSaM2l8c/KWBYRX6/TWNMzA2Iqe7jJTpiJrJBl0EHG7xeoSisHSgevoKjMp1rMrEZ0NUGWd4OXjq+1JArAX5gAyClaeRxt49aBw== Received: from DM4PR12MB5373.namprd12.prod.outlook.com (2603:10b6:5:39a::17) by DM4PR12MB5229.namprd12.prod.outlook.com (2603:10b6:5:398::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.16; Tue, 14 Sep 2021 08:42:16 +0000 Received: from DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::584f:672a:653f:fe25]) by DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::584f:672a:653f:fe25%5]) with mapi id 15.20.4500.019; Tue, 14 Sep 2021 08:42:16 +0000 From: "Xueming(Steven) Li" To: "qemu-devel@nongnu.org" CC: "mlevitsk@redhat.com" , "mst@redhat.com" , "zhangyuwei.9149@bytedance.com" , "qemu-stable@nongnu.org" , "tiwei.bie@intel.com" Subject: Re: [PATCH 1/2] vhost-user: fix VirtQ notifier cleanup Thread-Topic: [PATCH 1/2] vhost-user: fix VirtQ notifier cleanup Thread-Index: AQHXp/IiBl6HcRdigUWfmop/y6LIsKujOPGA Date: Tue, 14 Sep 2021 08:42:16 +0000 Message-ID: References: <20210912162014.106704-1-xuemingl@nvidia.com> <20210912162014.106704-2-xuemingl@nvidia.com> In-Reply-To: <20210912162014.106704-2-xuemingl@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.40.4 authentication-results: nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e4767308-6fb9-46b3-ab63-08d9775b8e61 x-ms-traffictypediagnostic: DM4PR12MB5229: x-microsoft-antispam-prvs: x-ms-exchange-transport-forked: True x-ms-oob-tlc-oobclassifiers: OLM:983; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: q7MQSxP4slepNxOSz97AZYZqOVLwjZGUdrVBSvJOd/wjWNVBoyw+9pcqIy/AWg1zYC4MY4pEQP1Sy8/ZJUKEVxWq+8WVzxkTYlKr+s7NLnuRkUaPp+7n0fGHc2BNXVyCPG8Q5AHCzX+VWvEI6OXhXj+fRzwdA4p93e5NKCXyaTSHK46XJrOgPjgMnMd6gvgf1T9hU/nmZUURMm/m5l3OK9JXHq/RlyWpD6yI86Vtl17lqsjfnVw/78CNv2t0KEp+FqAk8FZ5vL/nThcH3rNseDaFKJCjB9/GqSu+mpv2C2R+S46eI4A7XYirVbh9HQUxoToIxVXoB7esqX41GBuFSkYlvi9pZfMJID76CU2YPc3JJzv+siaKhiLAPcW+WCatrdwj2MvATxUu6/F7qtvEJJTAPoTQZ5EZ3ejt6A2tM6kplh5YipiPIIFUFazWADkt4h+8aiH/2FCfbBJslWz6fnhHQqz1XwqZ002vFNk54iK8QQy3hgPC/OV88Aifusu890fLvqBkSyvqN/XrbQWAV2VBFNYu4GP6XDh+45c6+vOQvlQRKg/eVKTxFkhJIcht6qRFlxdApbxpB+NwDw2T8nKXGlpF6bplqKUQJaOEFvcL0muTrHaVj+agdG19UK04Y58TXE8GHPr3CFrxHDgx1YRA1yf0XWoywqG9R/u3tE+vkJ8WCoozxAs4hj1/bSOZk92ZbEV4MEzMgTcrWJ/R0A== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR12MB5373.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(366004)(39860400002)(396003)(136003)(346002)(38100700002)(86362001)(6486002)(6916009)(83380400001)(316002)(2616005)(38070700005)(66946007)(91956017)(54906003)(36756003)(122000001)(66476007)(66556008)(2906002)(8676002)(26005)(478600001)(8936002)(71200400001)(64756008)(66446008)(5660300002)(6512007)(4326008)(76116006)(6506007)(186003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SjFwa2RFbVdLNjVIV1VldHl1UHJpYmFES1pVQXZTTzNqN000QkF1b1lVTTB4?= =?utf-8?B?Q0dMV0Yza0E3ZWdUS3VEUm9ZMkZpYlg0a3M4R2tLVG5vdkZKMytrNm5OY05u?= =?utf-8?B?RldESjFJV05NeTRpZlkrZW5sQ2w0bVFubGw1a2JEem9VUDBVQUdFT05nYndE?= =?utf-8?B?aUpEd2ppcHZpZEh1clc2WmtOdG9Cbmw3a1IyTG9sOFN4V0tCL2o5blRiS3ZX?= =?utf-8?B?Z2lCMGFjdU9CM2d5bW1QeGgvQkxqWlBIcGtQYW1kVS9jYmVoOEJvVVFnOGl5?= =?utf-8?B?SFE5cHFjSjI0Mld4L09RdGtxQ2pFNVl5YVo3cUVsOHd0MVVmZEJRaDNIS1hm?= =?utf-8?B?UlZyZ1QwcUFDZk9ReVhlSkRRVUZGTzY4VkRiRHk4dEYxc3BmUU5TcFRINnRm?= =?utf-8?B?SDZobm0zQ1hZRndya0JsQ3RISkorZlNJYTM2ZW9JM2FENFVnZmdlYkJ1alow?= =?utf-8?B?ZFNTN2FHcG5Ud1lGRkpKd2Z4cTU1UW13OHJRRlNnT29kai9CMGhudWM1L1lB?= =?utf-8?B?aHRhYThHMDNKMzVLMVoxazVhOGZpeEx2aXQyTkdQVTlLdG5ZblJ4czRPcGwx?= =?utf-8?B?elVZS3VUbXNGS3dCaUh6OUNUR3YzcEd0RjZHL0t0WWpKU2Y5NWNGV2wzMnpW?= =?utf-8?B?T0lyeTRtUGFWcFpudkFPMlRQSlJDMGhhQU9taDJ2Q0NvWm1abXF3YkM5MmxB?= =?utf-8?B?elJEZHdBckRZUEEzeUhDMEZ3MFkwUFpIVlVBSmo2SU9zYkdjWUt0KzBiS2M4?= =?utf-8?B?RURZQzhmamJYMHJUR2pIZHphWVJadzA1TkptM0pjajZaR05ralFZSXVzNWJT?= =?utf-8?B?SXlpd1hvd21Dekp2TTBJYlZPSXJrUzJFZUJoL3BsNFhGamJWZHNWd00yTkw0?= =?utf-8?B?NFYvRkFKWFdQbXRqdWZhdVZYeW53eC8vSitMRUQ3ajZDbnpiMWJyNi9OeWtW?= =?utf-8?B?Rk8rdFdHMlcxdWFKL2VZbGgvbVhWU1V1R0RILzU1MkpyOEcxZUZaaldmNXRN?= =?utf-8?B?WUl3R0p2S21jR0UwRUtzeFdzYkFRUUxKOTVmcko0UWNUS2llbkdzTWpIVVJ6?= =?utf-8?B?MzRIdHF6NlJlMEZJMzh2THpaMGZhU25jTlNJUm5lMDkwRTh5MkxqUzcxS21k?= =?utf-8?B?OTFjM3dxaWFtTTJxZkRJcEhucXVjNG1oeHJLdUNYeHpKV09naDBZK1hiMk1r?= =?utf-8?B?eW5odUJKYUt2USs2dGxJMFA0eCt2MFFHS0hxTmhSK0t0OGJMZWNmVlFMeVA3?= =?utf-8?B?Z29jT081Q3d2cjJzdE51Z05JeVFYZXorRHlZQUZhUmVwOVBIMm8wNzN0OXlB?= =?utf-8?B?THlmUURrbnZIZWZhZjdwVTBPWUFWOGhoS0Vpb0xhVXBJU1JGZUhOTVN4UCsw?= =?utf-8?B?dnNiWndCeVlGTkxMRXR0c2NOL215SVMzZ1V6QU5IWXNIN1lCRWFoaTd1d3V6?= =?utf-8?B?RTc4N0VKRW5xV094eGM0M1pWMU5hYjNuQ3lvYVZncDJUQXk2bVRsWU9UYWkw?= =?utf-8?B?OWpUUVQ1SXFobXE0WHZNWHd3ZVlHQ01jcVcyOHU4STFzUkZPL1hoQnI4ZWhL?= =?utf-8?B?bHpHR1gvRjZnbGsvWHExY0hobjJlNHFJWGRocjE3QW5ERmE4NUFQQTlpRW5q?= =?utf-8?B?QUx3R0VXOWE2MnBMUUJWdzkwdXdva3dvK2Vpa2NPNHdOYmh4R1l2Z1YwOTBI?= =?utf-8?B?eHZpVk55czhUeXpoRkdIUkVmTEtmNytJa2NYZ1JwcGpwREJtUHlWT3hoeGFq?= =?utf-8?B?ZWZDOGlNY1NyNSs2TnlGQk1lSzVTY05ZR0lZcTcxL2U2cmVxSVU4OTdJdXF4?= =?utf-8?B?Y3ovOEVKbEI1MnJSVHFsZz09?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5373.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e4767308-6fb9-46b3-ab63-08d9775b8e61 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Sep 2021 08:42:16.2965 (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: 2ADcA+GaeQzfpBl5CEf3d7p9ok1KbP47MZYZbKbx+rm9rbetYeWy/xIwIo6Lp2moZfyrs/CWHJlV4+Jydz9LyA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5229 Received-SPF: softfail client-ip=40.107.94.73; envelope-from=xuemingl@nvidia.com; helo=NAM10-MW2-obe.outbound.protection.outlook.com X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.398, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" DQoNCg0KT24gTW9uLCAyMDIxLTA5LTEzIGF0IDAwOjIwICswODAwLCBYdWVtaW5nIExpIHdyb3Rl Og0KPiBXaGVuIHZob3N0LXVzZXIgZGV2aWNlIGNsZWFudXAgYW5kIHVubW1hcCBub3RpZmllciBh ZGRyZXNzLCBWTSBjcHUNCj4gdGhyZWFkIHRoYXQgd3JpdGluZyB0aGUgbm90aWZpZXIgZmFpbGVk IHdpdGggYWNjZXNzaW5nIGludmFsaWQgYWRkcmVzcy4NCj4gDQo+IFRvIGF2b2lkIHRoaXMgY29u Y3VycmVudCBpc3N1ZSwgd2FpdCBtZW1vcnkgZmxhdHZpZXcgdXBkYXRlIGJ5IGRyYWluaW5nDQo+ IHJjdSBjYWxsYmFja3MsIHRoZW4gdW5tYXAgbm90aWZpZXJzLg0KPiANCj4gRml4ZXM6IDQ0ODY2 NTIxYmQ2ZSAoInZob3N0LXVzZXI6IHN1cHBvcnQgcmVnaXN0ZXJpbmcgZXh0ZXJuYWwgaG9zdA0K PiBub3RpZmllcnMiKQ0KPiBDYzogdGl3ZWkuYmllQGludGVsLmNvbQ0KPiBDYzogcWVtdS1zdGFi bGVAbm9uZ251Lm9yZw0KPiBDYzogWXV3ZWkgWmhhbmcgPHpoYW5neXV3ZWkuOTE0OUBieXRlZGFu Y2UuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBYdWVtaW5nIExpIDx4dWVtaW5nbEBudmlkaWEuY29t Pg0KPiAtLS0NCj4gwqBody92aXJ0aW8vdmhvc3QtdXNlci5jIHwgMTkgKysrKysrKysrKysrLS0t LS0tLQ0KPiDCoDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygt KQ0KPiANCj4gZGlmZiAtLWdpdCBhL2h3L3ZpcnRpby92aG9zdC11c2VyLmMgYi9ody92aXJ0aW8v dmhvc3QtdXNlci5jDQo+IGluZGV4IDJjODU1NjIzN2YuLjU4NzIyYWIyN2MgMTAwNjQ0DQo+IC0t LSBhL2h3L3ZpcnRpby92aG9zdC11c2VyLmMNCj4gKysrIGIvaHcvdmlydGlvL3Zob3N0LXVzZXIu Yw0KPiBAQCAtMTE2NSw2ICsxMTY1LDEwIEBAIHN0YXRpYyB2b2lkDQo+IHZob3N0X3VzZXJfaG9z dF9ub3RpZmllcl9yZW1vdmUoc3RydWN0IHZob3N0X2RldiAqZGV2LA0KPiDCoA0KPiDCoMKgwqDC oCBpZiAobi0+YWRkciAmJiBuLT5zZXQpIHsNCj4gwqDCoMKgwqDCoMKgwqDCoCB2aXJ0aW9fcXVl dWVfc2V0X2hvc3Rfbm90aWZpZXJfbXIodmRldiwgcXVldWVfaWR4LCAmbi0+bXIsDQo+IGZhbHNl KTsNCj4gK8KgwqDCoMKgwqDCoMKgIC8qIFdhaXQgVk0gdGhyZWFkcyBhY2Nlc3Npbmcgb2xkIGZs YXR2aWV3IHdoaWNoIGNvbnRhaW5zDQo+IG5vdGlmaWVyLiAqLw0KPiArwqDCoMKgwqDCoMKgwqAg ZHJhaW5fY2FsbF9yY3UoKTsNCj4gK8KgwqDCoMKgwqDCoMKgIG11bm1hcChuLT5hZGRyLCBxZW11 X3JlYWxfaG9zdF9wYWdlX3NpemUpOw0KPiArwqDCoMKgwqDCoMKgwqAgbi0+YWRkciA9IE5VTEw7 DQo+IMKgwqDCoMKgwqDCoMKgwqAgbi0+c2V0ID0gZmFsc2U7DQo+IMKgwqDCoMKgIH0NCj4gwqB9 DQo+IEBAIC0xNTAyLDEyICsxNTA2LDcgQEAgc3RhdGljIGludA0KPiB2aG9zdF91c2VyX3NsYXZl X2hhbmRsZV92cmluZ19ob3N0X25vdGlmaWVyKHN0cnVjdCB2aG9zdF9kZXYgKmRldiwNCj4gwqAN Cj4gwqDCoMKgwqAgbiA9ICZ1c2VyLT5ub3RpZmllcltxdWV1ZV9pZHhdOw0KPiDCoA0KPiAtwqDC oMKgIGlmIChuLT5hZGRyKSB7DQo+IC3CoMKgwqDCoMKgwqDCoCB2aXJ0aW9fcXVldWVfc2V0X2hv c3Rfbm90aWZpZXJfbXIodmRldiwgcXVldWVfaWR4LCAmbi0+bXIsDQo+IGZhbHNlKTsNCj4gLcKg wqDCoMKgwqDCoMKgIG9iamVjdF91bnBhcmVudChPQkpFQ1QoJm4tPm1yKSk7DQo+IC3CoMKgwqDC oMKgwqDCoCBtdW5tYXAobi0+YWRkciwgcGFnZV9zaXplKTsNCj4gLcKgwqDCoMKgwqDCoMKgIG4t PmFkZHIgPSBOVUxMOw0KPiAtwqDCoMKgIH0NCj4gK8KgwqDCoCB2aG9zdF91c2VyX2hvc3Rfbm90 aWZpZXJfcmVtb3ZlKGRldiwgcXVldWVfaWR4KTsNCj4gwqANCj4gwqDCoMKgwqAgaWYgKGFyZWEt PnU2NCAmIFZIT1NUX1VTRVJfVlJJTkdfTk9GRF9NQVNLKSB7DQo+IMKgwqDCoMKgwqDCoMKgwqAg cmV0dXJuIDA7DQo+IEBAIC0yNDg0LDExICsyNDgzLDE3IEBAIHZvaWQgdmhvc3RfdXNlcl9jbGVh bnVwKFZob3N0VXNlclN0YXRlICp1c2VyKQ0KPiDCoMKgwqDCoCBmb3IgKGkgPSAwOyBpIDwgVklS VElPX1FVRVVFX01BWDsgaSsrKSB7DQo+IMKgwqDCoMKgwqDCoMKgwqAgaWYgKHVzZXItPm5vdGlm aWVyW2ldLmFkZHIpIHsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG9iamVjdF91bnBhcmVu dChPQkpFQ1QoJnVzZXItPm5vdGlmaWVyW2ldLm1yKSk7DQo+ICvCoMKgwqDCoMKgwqDCoCB9DQo+ ICvCoMKgwqAgfQ0KPiArwqDCoMKgIG1lbW9yeV9yZWdpb25fdHJhbnNhY3Rpb25fY29tbWl0KCk7 DQo+ICvCoMKgwqAgLyogV2FpdCBWTSB0aHJlYWRzIGFjY2Vzc2luZyBvbGQgZmxhdHZpZXcgd2hp Y2ggY29udGFpbnMgbm90aWZpZXIuDQo+ICovDQo+ICvCoMKgwqAgZHJhaW5fY2FsbF9yY3UoKTsN Cg0KVGhpcyBSQ1UgY2FsbCB3b3JrcyBvbiBtYWluIHRocmVhZCBldmVudCBvbiBleHRlcm5hbCB2 RFBBIGFwcGxpY2F0aW9uDQpzaHR1ZG93bi4gSWYgZHJpdmVyIHJlc2V0IGRldmljZSBpbnNpZGUg Vk0sIGV2ZW50IGhhbmRsaW5nIGNvbWVzIGZyb20NCnZDUFUgdGhyZWFkIGFuZCBkZWFkIGxvY2sg aGVyZS4gSXMgdGhlcmUgYSBsaW1pdGF0aW9uIHRvIGNhbGwgdGhpcyBBUEkNCmZyb20gdkNQVSB0 aHJlYWQ/IENjIE1heGltIHdob20gdGhlIGF1dGhvciBvZiB0aGlzIEFQSS4NCg0KT24gdGhlIG90 aGVyIGhhbmQsIHdoZW4gZHJpdmVyIGluaXRpYXRlIGEgZGV2aWNlIHJlc2V0LCB0aGUgVlENCmFj Y2Vzc2luZyBzaG91bGQgYmVpbmcgc3RvcHBlZCwgaXQncyBzYWZlIHRvIHNraXAgZHJhaW5pbmcg UkNVIGhlcmUuDQp2Q1BVIHRocmVhZHMgc2V0IHRocmVhZCBsb2NhbCB2YXJpYWJsZSAiY3VycmVu dF9jcHUiLCBieSBjaGVja2luZyBpdCwNCnRoZSBkZWFkIGxvY2sgZGlzYXBlYXIuDQoNCkhlcmUg aXMgdGhlIGRldGFpbCBvZiBkZWFkIGxvY2sgdGhyZWFkOg0KSWQgICBUYXJnZXQgSWQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUNCiogMSAgICBUaHJlYWQg MHg3ZjUzOTFkNDcwMDAgKExXUCA0ODY5MSkgInFlbXUtc3lzdGVtLXg4NiINCjB4MDAwMDdmNTM4 YjIzY2IzNiBpbiBwcG9sbCAoKSBmcm9tIC9saWI2NC9saWJjLnNvLjYNCjIgICAgVGhyZWFkIDB4 N2Y1MzdlYWU2NzAwIChMV1AgNDg2OTIpICJxZW11LXN5c3RlbS14ODYiDQoweDAwMDA3ZjUzOGIy NDI1MmQgaW4gc3lzY2FsbCAoKSBmcm9tIC9saWI2NC9saWJjLnNvLjYNCjMgICAgVGhyZWFkIDB4 N2Y1MzdjYWE4NzAwIChMV1AgNDg3MTcpICJxZW11LXN5c3RlbS14ODYiDQoweDAwMDA3ZjUzOGIy M2U2MmIgaW4gaW9jdGwgKCkgZnJvbSAvbGliNjQvbGliYy5zby42DQo0ICAgIFRocmVhZCAweDdm NTI2ZmRmZjcwMCAoTFdQIDQ4NzE4KSAicWVtdS1zeXN0ZW0teDg2Ig0KMHgwMDAwN2Y1MzhiMjNl NjJiIGluIGlvY3RsICgpIGZyb20gL2xpYjY0L2xpYmMuc28uNg0KNSAgICBUaHJlYWQgMHg3ZjUy NmY1ZmU3MDAgKExXUCA0ODcxOSkgInFlbXUtc3lzdGVtLXg4NiINCjB4MDAwMDdmNTM4YjIzZTYy YiBpbiBpb2N0bCAoKSBmcm9tIC9saWI2NC9saWJjLnNvLjYNCjYgICAgVGhyZWFkIDB4N2Y1MjZl ZGZkNzAwIChMV1AgNDg3MjApICJxZW11LXN5c3RlbS14ODYiDQoweDAwMDA3ZjUzOGIyM2U2MmIg aW4gaW9jdGwgKCkgZnJvbSAvbGliNjQvbGliYy5zby42DQo3ICAgIFRocmVhZCAweDdmNTI2ZTVm YzcwMCAoTFdQIDQ4NzIxKSAicWVtdS1zeXN0ZW0teDg2Ig0KMHgwMDAwN2Y1MzhiMjNlNjJiIGlu IGlvY3RsICgpIGZyb20gL2xpYjY0L2xpYmMuc28uNg0KOCAgICBUaHJlYWQgMHg3ZjUyNmRkZmI3 MDAgKExXUCA0ODcyMikgInFlbXUtc3lzdGVtLXg4NiINCjB4MDAwMDdmNTM4YjIzZTYyYiBpbiBp b2N0bCAoKSBmcm9tIC9saWI2NC9saWJjLnNvLjYNCjkgICAgVGhyZWFkIDB4N2Y1MjZkNWZhNzAw IChMV1AgNDg3MjMpICJxZW11LXN5c3RlbS14ODYiDQoweDAwMDA3ZjUzOGIyNDI1MmQgaW4gc3lz Y2FsbCAoKSBmcm9tIC9saWI2NC9saWJjLnNvLjYNCjEwICAgVGhyZWFkIDB4N2Y1MjZjZGY5NzAw IChMV1AgNDg3MjQpICJxZW11LXN5c3RlbS14ODYiDQoweDAwMDA3ZjUzOGIyM2U2MmIgaW4gaW9j dGwgKCkgZnJvbSAvbGliNjQvbGliYy5zby42DQozNCAgIFRocmVhZCAweDdmNTIyY2E4YjcwMCAo TFdQIDQ5NjAxKSAicWVtdS1zeXN0ZW0teDg2Ig0KMHgwMDAwN2Y1MzhjM2NiZGYyIGluIGRvX2Z1 dGV4X3dhaXQgKCkgZnJvbSAvbGliNjQvbGlicHRocmVhZC5zby4wDQoNCg0KKGdkYikgdCAyDQpb U3dpdGNoaW5nIHRvIHRocmVhZCAyIChUaHJlYWQgMHg3ZjUzN2VhZTY3MDAgKExXUCA0ODY5Mikp XQ0KIzAgIDB4MDAwMDdmNTM4YjI0MjUyZCBpbiBzeXNjYWxsICgpIGZyb20gL2xpYjY0L2xpYmMu c28uNg0KKGdkYikgYnQNCiMwICAweDAwMDA3ZjUzOGIyNDI1MmQgaW4gc3lzY2FsbCAoKSBhdCAv bGliNjQvbGliYy5zby42DQojMSAgMHgwMDAwNTViNTNiOWNiZDI4IGluIHFlbXVfZnV0ZXhfd2Fp dCAoZj0weDU1YjUzYzQ2NTZmOA0KPHJjdV9jYWxsX3JlYWR5X2V2ZW50PiwgdmFsPTQyOTQ5Njcy OTUpIGF0IHFlbXUvaW5jbHVkZS9xZW11L2Z1dGV4Lmg6MjkNCiMyICAweDAwMDA1NWI1M2I5Y2Jl ZWMgaW4gcWVtdV9ldmVudF93YWl0IChldj0weDU1YjUzYzQ2NTZmOA0KPHJjdV9jYWxsX3JlYWR5 X2V2ZW50PikgYXQgcWVtdS91dGlsL3FlbXUtdGhyZWFkLXBvc2l4LmM6NDgwDQojMyAgMHgwMDAw NTViNTNiOWQ2YzYyIGluIGNhbGxfcmN1X3RocmVhZCAob3BhcXVlPTB4MCkgYXQNCnFlbXUvdXRp bC9yY3UuYzoyNTgNCiM0ICAweDAwMDA1NWI1M2I5Y2MwOWYgaW4gcWVtdV90aHJlYWRfc3RhcnQg KGFyZ3M9MHg1NWI1M2NkNWFhNzApIGF0DQpxZW11L3V0aWwvcWVtdS10aHJlYWQtcG9zaXguYzo1 NDENCiM1ICAweDAwMDA3ZjUzOGMzYzMxNGEgaW4gc3RhcnRfdGhyZWFkICgpIGF0IC9saWI2NC9s aWJwdGhyZWFkLnNvLjANCiM2ICAweDAwMDA3ZjUzOGIyNDdkYzMgaW4gY2xvbmUgKCkgYXQgL2xp YjY0L2xpYmMuc28uNg0KDQoNCihnZGIpIHQgOSAgLy8gdkNQVSB0aHJlYWQNCltTd2l0Y2hpbmcg dG8gdGhyZWFkIDkgKFRocmVhZCAweDdmNTI2ZDVmYTcwMCAoTFdQIDQ4NzIzKSldDQojMCAgMHgw MDAwN2Y1MzhiMjQyNTJkIGluIHN5c2NhbGwgKCkgZnJvbSAvbGliNjQvbGliYy5zby42DQooZ2Ri KSBidA0KIzAgIDB4MDAwMDdmNTM4YjI0MjUyZCBpbiBzeXNjYWxsICgpIGF0IC9saWI2NC9saWJj LnNvLjYNCiMxICAweDAwMDA1NWI1M2I5Y2JkMjggaW4gcWVtdV9mdXRleF93YWl0IChmPTB4N2Y1 MjZkNWY4ZDAwLA0KdmFsPTQyOTQ5NjcyOTUpIGF0IHFlbXUvaW5jbHVkZS9xZW11L2Z1dGV4Lmg6 MjkNCiMyICAweDAwMDA1NWI1M2I5Y2JlZWMgaW4gcWVtdV9ldmVudF93YWl0IChldj0weDdmNTI2 ZDVmOGQwMCkgYXQNCnFlbXUvdXRpbC9xZW11LXRocmVhZC1wb3NpeC5jOjQ4MA0KIzMgIDB4MDAw MDU1YjUzYjlkNmRmZiBpbiBkcmFpbl9jYWxsX3JjdSAoKSBhdCBxZW11L3V0aWwvcmN1LmM6MzQz DQojNCAgMHgwMDAwNTViNTNiNzczN2MzIGluIHZob3N0X3VzZXJfaG9zdF9ub3RpZmllcl9yZW1v dmUNCihkZXY9MHg1NWI1M2QwYzVhYTAsIHF1ZXVlX2lkeD0wKSBhdCBxZW11L2h3L3ZpcnRpby92 aG9zdC11c2VyLmM6MTE1Ng0KIzUgIDB4MDAwMDU1YjUzYjc3Mzk1NiBpbiB2aG9zdF91c2VyX2dl dF92cmluZ19iYXNlDQooZGV2PTB4NTViNTNkMGM1YWEwLCByaW5nPTB4N2Y1MjZkNWY5MDQwKSBh dCBxZW11L2h3L3ZpcnRpby92aG9zdC0NCnVzZXIuYzoxMTk4DQojNiAgMHgwMDAwNTViNTNiNzZk ZjI5IGluIHZob3N0X3ZpcnRxdWV1ZV9zdG9wIChkZXY9MHg1NWI1M2QwYzVhYTAsDQp2ZGV2PTB4 NTViNTNkZWI2MGIwLCB2cT0weDU1YjUzZDBjNWQxMCwgaWR4PTApIGF0DQpxZW11L2h3L3ZpcnRp by92aG9zdC5jOjEyMTkNCiM3ICAweDAwMDA1NWI1M2I3NmZiODUgaW4gdmhvc3RfZGV2X3N0b3Ag KGhkZXY9MHg1NWI1M2QwYzVhYTAsDQp2ZGV2PTB4NTViNTNkZWI2MGIwKSBhdCBxZW11L2h3L3Zp cnRpby92aG9zdC5jOjE4MzcNCiM4ICAweDAwMDA1NWI1M2I0ZDdiYjEgaW4gdmhvc3RfbmV0X3N0 b3Bfb25lIChuZXQ9MHg1NWI1M2QwYzVhYTAsDQpkZXY9MHg1NWI1M2RlYjYwYjApIGF0IHFlbXUv aHcvbmV0L3Zob3N0X25ldC5jOjMxMw0KIzkgIDB4MDAwMDU1YjUzYjRkN2VjYiBpbiB2aG9zdF9u ZXRfc3RvcCAoZGV2PTB4NTViNTNkZWI2MGIwLA0KbmNzPTB4NTViNTNlMjQ0ZDUwLCB0b3RhbF9x dWV1ZXM9NjQpIGF0IHFlbXUvaHcvbmV0L3Zob3N0X25ldC5jOjM5Ng0KIzEwIDB4MDAwMDU1YjUz YjcxZjg3ZCBpbiB2aXJ0aW9fbmV0X3Zob3N0X3N0YXR1cyAobj0weDU1YjUzZGViNjBiMCwNCnN0 YXR1cz0wICdcMDAwJykgYXQgcWVtdS9ody9uZXQvdmlydGlvLW5ldC5jOjI5NQ0KIzExIDB4MDAw MDU1YjUzYjcxZmFkYSBpbiB2aXJ0aW9fbmV0X3NldF9zdGF0dXMgKHZkZXY9MHg1NWI1M2RlYjYw YjAsDQpzdGF0dXM9MCAnXDAwMCcpIGF0IHFlbXUvaHcvbmV0L3ZpcnRpby1uZXQuYzozNjkNCiMx MiAweDAwMDA1NWI1M2I3NjU4NDQgaW4gdmlydGlvX3NldF9zdGF0dXMgKHZkZXY9MHg1NWI1M2Rl YjYwYjAsIHZhbD0wDQonXDAwMCcpIGF0IHFlbXUvaHcvdmlydGlvL3ZpcnRpby5jOjE5NTYNCiMx MyAweDAwMDA1NWI1M2I1YzVkNTggaW4gdmlydGlvX3BjaV9jb21tb25fd3JpdGUNCihvcGFxdWU9 MHg1NWI1M2RlYWRlMzAsIGFkZHI9MjAsIHZhbD0wLCBzaXplPTEpIGF0DQpxZW11L2h3L3ZpcnRp by92aXJ0aW8tcGNpLmM6MTI5Mg0KIzE0IDB4MDAwMDU1YjUzYjZjODVmZCBpbiBtZW1vcnlfcmVn aW9uX3dyaXRlX2FjY2Vzc29yDQoobXI9MHg1NWI1M2RlYWU4OTAsIGFkZHI9MjAsIHZhbHVlPTB4 N2Y1MjZkNWY5MzM4LCBzaXplPTEsIHNoaWZ0PTAsDQptYXNrPTI1NSwgYXR0cnM9Li4uKQ0KICAg IGF0IHFlbXUvc29mdG1tdS9tZW1vcnkuYzo0OTINCiMxNSAweDAwMDA1NWI1M2I2Yzg4MzggaW4g YWNjZXNzX3dpdGhfYWRqdXN0ZWRfc2l6ZSAoYWRkcj0yMCwNCnZhbHVlPTB4N2Y1MjZkNWY5MzM4 LCBzaXplPTEsIGFjY2Vzc19zaXplX21pbj0xLCBhY2Nlc3Nfc2l6ZV9tYXg9NCwNCmFjY2Vzc19m bj0NCiAgICAweDU1YjUzYjZjODUwYiA8bWVtb3J5X3JlZ2lvbl93cml0ZV9hY2Nlc3Nvcj4sIG1y PTB4NTViNTNkZWFlODkwLA0KYXR0cnM9Li4uKSBhdCBxZW11L3NvZnRtbXUvbWVtb3J5LmM6NTU0 DQojMTYgMHgwMDAwNTViNTNiNmNiODM3IGluIG1lbW9yeV9yZWdpb25fZGlzcGF0Y2hfd3JpdGUN Cihtcj0weDU1YjUzZGVhZTg5MCwgYWRkcj0yMCwgZGF0YT0wLCBvcD1NT184LCBhdHRycz0uLi4p IGF0DQpxZW11L3NvZnRtbXUvbWVtb3J5LmM6MTUwNA0KIzE3IDB4MDAwMDU1YjUzYjZiZWJlZSBp biBmbGF0dmlld193cml0ZV9jb250aW51ZSAoZnY9MHg3ZjUyNjQwMDNhZjAsDQphZGRyPTQyNjE0 MTI4ODQsIGF0dHJzPS4uLiwgcHRyPTB4N2Y1MzkxYjk3MDI4LCBsZW49MSwgYWRkcjE9MjAsIGw9 MSwNCm1yPTB4NTViNTNkZWFlODkwKQ0KICAgIGF0IHFlbXUvc29mdG1tdS9waHlzbWVtLmM6Mjc4 MA0KIzE4IDB4MDAwMDU1YjUzYjZiZWQzMyBpbiBmbGF0dmlld193cml0ZSAoZnY9MHg3ZjUyNjQw MDNhZjAsDQphZGRyPTQyNjE0MTI4ODQsIGF0dHJzPS4uLiwgYnVmPTB4N2Y1MzkxYjk3MDI4LCBs ZW49MSkgYXQNCnFlbXUvc29mdG1tdS9waHlzbWVtLmM6MjgyMA0KIzE5IDB4MDAwMDU1YjUzYjZi ZjA5ZiBpbiBhZGRyZXNzX3NwYWNlX3dyaXRlIChhcz0weDU1YjUzYzQ0NjBhMA0KPGFkZHJlc3Nf c3BhY2VfbWVtb3J5PiwgYWRkcj00MjYxNDEyODg0LCBhdHRycz0uLi4sIGJ1Zj0weDdmNTM5MWI5 NzAyOCwNCmxlbj0xKQ0KICAgIGF0IHFlbXUvc29mdG1tdS9waHlzbWVtLmM6MjkxMg0KIzIwIDB4 MDAwMDU1YjUzYjZiZjEwYyBpbiBhZGRyZXNzX3NwYWNlX3J3IChhcz0weDU1YjUzYzQ0NjBhMA0K PGFkZHJlc3Nfc3BhY2VfbWVtb3J5PiwgYWRkcj00MjYxNDEyODg0LCBhdHRycz0uLi4sIGJ1Zj0w eDdmNTM5MWI5NzAyOCwNCmxlbj0xLCBpc193cml0ZT10cnVlKQ0KICAgIGF0IHFlbXUvc29mdG1t dS9waHlzbWVtLmM6MjkyMg0KIzIxIDB4MDAwMDU1YjUzYjdlM2JmZCBpbiBrdm1fY3B1X2V4ZWMg KGNwdT0weDU1YjUzZDIwMGIzMCkgYXQNCnFlbXUvYWNjZWwva3ZtL2t2bS1hbGwuYzoyODkzDQoj MjIgMHgwMDAwNTViNTNiN2U1OWM2IGluIGt2bV92Y3B1X3RocmVhZF9mbiAoYXJnPTB4NTViNTNk MjAwYjMwKSBhdA0KcWVtdS9hY2NlbC9rdm0va3ZtLWFjY2VsLW9wcy5jOjQ5DQojMjMgMHgwMDAw NTViNTNiOWNjMDlmIGluIHFlbXVfdGhyZWFkX3N0YXJ0IChhcmdzPTB4NTViNTNkMjBkYTAwKSBh dA0KcWVtdS91dGlsL3FlbXUtdGhyZWFkLXBvc2l4LmM6NTQxDQojMjQgMHgwMDAwN2Y1MzhjM2Mz MTRhIGluIHN0YXJ0X3RocmVhZCAoKSBhdCAvbGliNjQvbGlicHRocmVhZC5zby4wDQojMjUgMHgw MDAwN2Y1MzhiMjQ3ZGMzIGluIGNsb25lICgpIGF0IC9saWI2NC9saWJjLnNvLjYNCg0KDQo+ICvC oMKgwqAgZm9yIChpID0gMDsgaSA8IFZJUlRJT19RVUVVRV9NQVg7IGkrKykgew0KPiArwqDCoMKg wqDCoMKgwqAgaWYgKHVzZXItPm5vdGlmaWVyW2ldLmFkZHIpIHsNCj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIG11bm1hcCh1c2VyLT5ub3RpZmllcltpXS5hZGRyLCBxZW11X3JlYWxfaG9zdF9w YWdlX3NpemUpOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdXNlci0+bm90aWZpZXJbaV0u YWRkciA9IE5VTEw7DQo+IMKgwqDCoMKgwqDCoMKgwqAgfQ0KPiDCoMKgwqDCoCB9DQo+IC3CoMKg wqAgbWVtb3J5X3JlZ2lvbl90cmFuc2FjdGlvbl9jb21taXQoKTsNCj4gwqDCoMKgwqAgdXNlci0+ Y2hyID0gTlVMTDsNCj4gwqB9DQo+IMKgDQoNCg==