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 DCC1EA00C4 for ; Mon, 11 Jul 2022 11:14:17 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D5E9840DFD; Mon, 11 Jul 2022 11:14:17 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mails.dpdk.org (Postfix) with ESMTP id 8C0F94021F; Mon, 11 Jul 2022 11:14:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1657530855; x=1689066855; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=WdGhN4D5udU5w+fgbP3/B0kRnWz6rfk88tsENBknQYE=; b=kdk5gQMs9wFCBTRcelRrWpVehCH73T1BpPmR2WJgFr5g9HqheHJ9N1C+ UJ+Hpvi87ig3jn5WAAnfPhRRfbsZ8LLOtZrhISm1YGNqFwS03/GizGF0u E3d3qRS83u5LzVo9Y+hG0pURJZQ7FAvhPMwqAHcjCKdHFPeYp75mypMjs TuHlbXMQkoLjkaMcOaBaP8cm6VJ7vbHmLWdNP+yr9IFjwb4CqCwGuvyas I3F31iC6i7taWIgPx74MTct0vQ6N/HbNFzGvOBpVXqjmRKYwrMGXTJOAg +CGSS4b1mZaOpS0b1xUYlQxW3iufFaubYD00t0EmvF0SZL9+kfRFHxRDo Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10404"; a="348595792" X-IronPort-AV: E=Sophos;i="5.92,262,1650956400"; d="scan'208";a="348595792" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jul 2022 02:14:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,262,1650956400"; d="scan'208";a="598967466" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga007.fm.intel.com with ESMTP; 11 Jul 2022 02:14:14 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 11 Jul 2022 02:14:13 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 11 Jul 2022 02:14:13 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Mon, 11 Jul 2022 02:14:13 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.173) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Mon, 11 Jul 2022 02:14:13 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TN7T/p7o0qPbqIaNuWyB4Nh9RGjQlT01fyHBeQO751OvRXJWoOMgJTd7z2YvruKcBAkHQYOS1l3fr3yBT6lT0BBous0PtZrrMlzLXyf0x/VNV9kbBz8t0YDoFPhmWFQGAhDkadlHnR5eF5fqpBSnnIndd+/WQxPCGAieSg56Wz5oX+ZF7Dul05sszfJGoQr3SsVnSjOQHWd1FKy2Aaf9axJ3pjnr1Bp2FRb/bnDUHEpQY/MSZZcWBV+IQsqXbVNxg+eE7/INVdVEJOmtfIPcGaS2qq2Oxhbf/iH2wgpRKIETiOyMfwQ7zQ5CJ9t5Nsni8i2SxY/b7fvPVpE/yeREmQ== 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=WdGhN4D5udU5w+fgbP3/B0kRnWz6rfk88tsENBknQYE=; b=X+XYcGMD7GG4rlGZdUHYuHs/ChQ9MSNPLajD2K9/6rC6bPPBRLQ+CRBkDs525wzE7JB6tEOvtRxQSfadwAHDM5RVe+6GXiubM+BTXiDwgaz15ocgn2YRlZCYEVSILbA4gKQyB4rMBaKfB9lSgmkb2ypBEnJi4FDn49wGH/kOlyTDCKFGavIT01uc1YT0fW9eGKw3tW6QyXeF8fIRD/0x3CmMKBRZExzNTBp4+d7OGXdW1vuneGwvYhusL8H1M7lMaAv3eOgJRt+/KhDMPXGDzZbxq2BnxNcnIzqV/NL2pedIG1oBy10C5HGedgSu+c02c5TMcm6E4oP/ei3h/ZenbA== 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 SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17) by DM6PR11MB3561.namprd11.prod.outlook.com (2603:10b6:5:136::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.25; Mon, 11 Jul 2022 09:14:11 +0000 Received: from SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::54a0:2dbc:18b7:2aa9]) by SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::54a0:2dbc:18b7:2aa9%7]) with mapi id 15.20.5417.026; Mon, 11 Jul 2022 09:14:11 +0000 From: "Xia, Chenbo" To: "Pei, Andy" , Maxime Coquelin , "Ma, WenwuX" , "dev@dpdk.org" CC: "Hu, Jiayu" , "Wang, Yinan" , "He, Xingguang" , "stable@dpdk.org" Subject: RE: [PATCH v3] vhost: fix deadlock when message handling failed Thread-Topic: [PATCH v3] vhost: fix deadlock when message handling failed Thread-Index: AQHYYdOEKu9g1FyxTkKQD9JcwcJOS60jHxmAgFYhhgCAAALL4IAAAveAgAACinA= Date: Mon, 11 Jul 2022 09:14:11 +0000 Message-ID: References: <20220505134008.2865-1-wenwux.ma@intel.com> <20220507132753.11357-1-wenwux.ma@intel.com> In-Reply-To: Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: 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: 5677f46a-3fcd-42f5-581f-08da631db79b x-ms-traffictypediagnostic: DM6PR11MB3561:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Sc1wd2YWZybYIbmyubzf1HR/k3zGsCabE5PZy4ltgjK1UGStXdtOe00/PzE05MtClkLnf0j++tu51R8hD9pLC7cpB5SfSvmtoR12bq+v3QLDx3dRuncF6YSbQrxFGaDYsHhP0JXiOf80/eg/BCv8QOyaSgePVnB8Y9WxFh1ihQFv/BU77TKuWc6uOtUApFaOBxhnQ2Y1OalCgcfZiNHBEss20w+8yR1iD48umzJkm3/pujq8WB+FVvYR7pRZyT97oZsbfFyKTBNwK5uBuuGxDLIFABsWKwiL7mnys3JuzS7288sWumbQ6KkgZagxuj0z230g7DHkeoIOseYU+fVErfnJgMIX5lZBv2rGxnKh86lyy/p+ow/7VK0dJ6kaAK7SGmuKwaMciW/slRzrAUwq3MqLhOgi/XaG5xuaLKzN9wh5bG7E5Bnt11zxVOurvYbNka839eiXbAzB4B3uvIr5KWxvYM9IQv4kTN5Caal2778lOfqH9NU8qu/76+Mj/gBlxU62luveLMz4j9WF4GjrHQtSeTcYwao2zI5JEx8WgnEys7CbTISFs/B6fLfFD6SMO8iZX9ab8KqNksK+sfIAejQRXHzADYAGZhPb0/3ZXTI/tNnVpRns2rDsyaT2+GKCy8TjMDfEtNS7eN7Mhbj21IPptbLDDxzgrq2N5xlTW0V/gkzHGSln1lIRNaOyMOKyHJdQyLdRawrtrpLaELIyNIiwvTJILEBxUki+5p5j0iRkmVJNJEk7HkJXynVl/CvsdK/LOXy6xsH3ejiHfulipHRBrW+mIYPulzqz3fFhaGQRa2XD9nb2z0dQTA9B9LNNE8vAWCD3/6h7qybINvQyvA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB3504.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(366004)(39860400002)(376002)(136003)(346002)(396003)(38100700002)(2906002)(478600001)(15650500001)(316002)(33656002)(83380400001)(122000001)(5660300002)(55016003)(8676002)(66946007)(8936002)(82960400001)(6506007)(66476007)(9686003)(76116006)(52536014)(7696005)(86362001)(4326008)(38070700005)(26005)(110136005)(54906003)(64756008)(41300700001)(186003)(66556008)(66446008)(71200400001)(53546011)(21314003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SjFWZXYxY3pkU29CUnN6WFdKbUV5cHlndVVMeSs0OU1IWWZMb1NtT3Q4Vkdx?= =?utf-8?B?N2dNNE1rZVlGdGU2WWRpU1NIVlFJVHdoaFRaTW9TMFhKelF4K1hIRjVDLzhy?= =?utf-8?B?T2ZCR1ErUjRiOW9pNEV3emhEUlRYbnpJK3gxV3VBb2w0TytROHFGZUJCeEow?= =?utf-8?B?dURzL2M1a204MWVDd0lQRFNHOGRZTk9wY0RnQmJac1RYZnZsV1BONWE1bGFp?= =?utf-8?B?UldiazNsaDl2aUVBRXc2WnFSUm10TWFCUmpIdU5maHNRbUVOdndPQThFWTdw?= =?utf-8?B?MUZRQjZQa0dKV3Z4NVYvWDdyeHVTSllpdm9HUksyTlVuY2pZZXMxQ0RjK1Fu?= =?utf-8?B?bWF4Tlk3Wi9sWVBlL1hmOTNCbW81TElOQ003OXZQaTQwOUFGdUNHYXJpa3FR?= =?utf-8?B?RHFoVGZuN29na0tqWmdJMjR0WGQzYmpjWjNqczJxSVdrTXpmbzZUZXJ5V1pE?= =?utf-8?B?djBmdnhuWjdGcFJhcXdCL0V6dEdiN2xZWlJYdnJrQVhLT3VqNmtRZmV4ODhs?= =?utf-8?B?V0pQNTl2bjNremVQOTczVmVGMzZic1ZHaUdBK3EvK3hjdFhkbnpxQkY3Q2E0?= =?utf-8?B?Q0xwS0R6anNOTHBQeldWOWliREpLT2ptRmlRTG9Bbm5IRnE5VE9VNFhTV1BT?= =?utf-8?B?KyticHloSjhMSTgxQ0hnbVp2RFBGMXdYcmJrL3Z5MDRCajM3T3Nmck9NTTBr?= =?utf-8?B?clJNeWhpeENXTE5VdDlJQWZQV2tBeE5kaVNxRndjMVBLRFZkb2VqVkM1TU5J?= =?utf-8?B?Z1JCSlk4M050SnFMT3JDTVZraFFSaHJMYm5OTFdkME9jT3czcVdoU1VtK2tY?= =?utf-8?B?bWZFQVFKemxXTmZjb1VaVGdlK0RXZVI0ZzJRbVVLZkZsdHNzZi83Rlk1YlVa?= =?utf-8?B?ZjAwNXkzZlFPdVhQa1ZSMXNrVWdwL1B1NDFMMUVza2lNZEtMY2NNNDBkZm5v?= =?utf-8?B?UzU3ZUZOZUNKRll0VWlKKzMxUFdzOEJ5YkQxTzNNTWNXY1pGbUlYdGY1b0Js?= =?utf-8?B?bjJJL2JUNklJVXpxMkhlVTFwaHNpMHhGN0Z3SHBZNy96cGRYaE1neXp4RTJp?= =?utf-8?B?VzlZQU5ERkdkM1p2M3lhbUJwS1Y3d3hZR1pUQ3I4b29uWm43OWwzbVNFcnVy?= =?utf-8?B?TTNTbk1ZNDhZRTd4MXJ2bVM5V3RxQlZKeWIraEh1czUzbGpvZ0lKeTZxQXB0?= =?utf-8?B?TGNSU3J4NVJic0dON0FUN3Z4aUI1TmtWSC9pYnJwc1lMT1FrekhuUk42V08y?= =?utf-8?B?OEQ2SFNOcTdLTEdNWmlWVEdURXFhQ0tPVXRpcFVFbFA0b0dQVlBFQ0xwbDVo?= =?utf-8?B?bWZNWkFHdGRoR1ZJOFhMTk9aR0xtQUd0WlhaNUovUGp6WGpSa3lZNjZCcllS?= =?utf-8?B?Znhtc2pQQytSVTZ0M091YnR3Vi9oT0ZUZmlEbGxxeSt0Yk16K1BpL0tEa2dX?= =?utf-8?B?RlI4ZG0yd0QxMTM5ekxyUUhtb25FMXB0NEtBTWQ3elFqVjZWUjVQV3JWL3h1?= =?utf-8?B?Qk1laUJ1QkNtUHNPKzZXUU8wSGpRc1lDZ3pPbXJIb2ZISVI0dEg4b0RkNy9x?= =?utf-8?B?OFlXYzF4TmtpZit5UUpxdGZxZFpoZ1JwM1d6enpiMXlncVNaVWw3UkxYZ0RZ?= =?utf-8?B?ZFRsRlZsZG0zUzZqVG91QlRENHBqZ1Y3ZmdPTXIzSjdhdkhVa3VRaWRORnZy?= =?utf-8?B?UVZxTGQrRDhOWmpjUVdSUkVET0RoS0R4REtPRHFkRkRGUDN6K3czQUhMWmZ1?= =?utf-8?B?UG10YTkzdXhSVXhVeERLVUJuTXJicmdyaHBIa2dsU2YzYnRMRHVrRTlpekZn?= =?utf-8?B?Zmh1dlhMZERNRW9sbFhBOFl0YnZCd0hYTXZlTW9OeHN6UjJIT2t6Tkp0LytB?= =?utf-8?B?U0svT0xleCt6aHN6Uk9ic3FBRThmSU1PSm0rQ1ZSYzhrWFUrSDF4R2ZHbnV4?= =?utf-8?B?M2tZOFdtWnpkQTdjbStEb21VY1pCMjBYUVNHd1N2MDRrUkpKelJrQlBiTlFa?= =?utf-8?B?TjB5UlBIV08xa0xvczNKZ0wxcnJzL0gyaVlrbUQ0bCtva0tzU00yK0RZb0F6?= =?utf-8?B?OFF5V2NUZWZKbjJIV0NwMUdwUVU3bjRzTVdOdHlvdDhxTE5USGVLNnAwOEsx?= =?utf-8?Q?4ULMcCPbBrVp7HZQ7jWoR6m/H?= 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: SN6PR11MB3504.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5677f46a-3fcd-42f5-581f-08da631db79b X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jul 2022 09:14:11.1490 (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: Mkb1UU74J5m+EqQ9tHIa+o9/TJeCSJlMOsIzhskkFyNHBjFuyx2EgjqnI3ubrBzMB8CFCx3KmsPiK9/iGCNCiQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3561 X-OriginatorOrg: intel.com X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org SGkgQW5keSwNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBQZWksIEFu ZHkgPGFuZHkucGVpQGludGVsLmNvbT4NCj4gU2VudDogTW9uZGF5LCBKdWx5IDExLCAyMDIyIDU6 MDMgUE0NCj4gVG86IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT47IE1heGltZSBD b3F1ZWxpbg0KPiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+OyBNYSwgV2Vud3VYIDx3ZW53 dXgubWFAaW50ZWwuY29tPjsNCj4gZGV2QGRwZGsub3JnDQo+IENjOiBIdSwgSmlheXUgPGppYXl1 Lmh1QGludGVsLmNvbT47IFdhbmcsIFlpbmFuIDx5aW5hbi53YW5nQGludGVsLmNvbT47IEhlLA0K PiBYaW5nZ3VhbmcgPHhpbmdndWFuZy5oZUBpbnRlbC5jb20+OyBzdGFibGVAZHBkay5vcmcNCj4g U3ViamVjdDogUkU6IFtQQVRDSCB2M10gdmhvc3Q6IGZpeCBkZWFkbG9jayB3aGVuIG1lc3NhZ2Ug aGFuZGxpbmcgZmFpbGVkDQo+IA0KPiBISSBDaGVuYm8sDQo+IA0KPiBTZWUgYmVsb3cgZXhhbXBs ZQ0KPiANCj4gMS4NCj4gCXJldCA9IHJlYWRfdmhvc3RfbWVzc2FnZShkZXYsIGZkLCAmY3R4KTsN Cj4gCWlmIChyZXQgPD0gMCkgew0KPiAJCWlmIChyZXQgPCAwKQ0KPiAJCQlWSE9TVF9MT0dfQ09O RklHKGRldi0+aWZuYW1lLCBFUlIsICJ2aG9zdCByZWFkIG1lc3NhZ2UNCj4gZmFpbGVkXG4iKTsN Cj4gCQllbHNlDQo+IAkJCVZIT1NUX0xPR19DT05GSUcoZGV2LT5pZm5hbWUsIElORk8sICJ2aG9z dCBwZWVyDQo+IGNsb3NlZFxuIik7DQo+IA0KPiAJCXJldHVybiAtMTsNCj4gCX0NCj4gDQo+IDIu DQo+IAlyZXQgPSB2aG9zdF91c2VyX2NoZWNrX2FuZF9hbGxvY19xdWV1ZV9wYWlyKGRldiwgJmN0 eCk7DQo+IAlpZiAocmV0IDwgMCkgew0KPiAJCVZIT1NUX0xPR19DT05GSUcoZGV2LT5pZm5hbWUs IEVSUiwgImZhaWxlZCB0byBhbGxvYyBxdWV1ZVxuIik7DQo+IAkJcmV0dXJuIC0xOw0KPiAJfQ0K PiANCj4gDQo+IDMuIHJldCA9IC0xDQo+IAl9IGVsc2UgaWYgKHJldCA9PSBSVEVfVkhPU1RfTVNH X1JFU1VMVF9FUlIpIHsNCj4gCQlWSE9TVF9MT0dfQ09ORklHKGRldi0+aWZuYW1lLCBFUlIsICJ2 aG9zdCBtZXNzYWdlIGhhbmRsaW5nDQo+IGZhaWxlZC5cbiIpOw0KPiAJCXJldCA9IC0xOw0KPiAJ CWdvdG8gdW5sb2NrOw0KPiAJfQ0KPiANCj4gSSBtZWFuIHJldCBpcyB1c2VkIHRvIGNoZWNrIHRo ZSBmdW5jdGlvbiBpcyByZXR1cm5lZCBzdWNjZXNzZnVsbHkgb3Igbm90DQo+IHdoaWxlIGl0IGlz IGFsc28gdXNlZCB0byBzdG9yZSB2aG9zdCBtc2cgcmV0dXJuIGNvZGUgbGlrZQ0KPiAiUlRFX1ZI T1NUX01TR19SRVNVTFRfWFhYIi4NCg0KSXQgbWFrZXMgc2Vuc2UgdG8gbWFrZSBpdCB0d28sIG9u ZSBpbnQgZm9yIHJldHVybiB2YWx1ZSwgb25lIGVudW0NCnJ0ZV92aG9zdF9tc2dfcmVzdWx0IG9u bHkgZm9yIG1lc3NhZ2UgaGFuZGxpbmcuIElNSE8sIHRoaXMgY291bGQgaW1wcm92ZSANCnJlYWRh YmlsaXR5Lg0KDQpUaGFua3MsDQpDaGVuYm8NCg0KPiANCj4gDQo+IA0KPiANCj4gPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGlu dGVsLmNvbT4NCj4gPiBTZW50OiBNb25kYXksIEp1bHkgMTEsIDIwMjIgNDo1NCBQTQ0KPiA+IFRv OiBQZWksIEFuZHkgPGFuZHkucGVpQGludGVsLmNvbT47IE1heGltZSBDb3F1ZWxpbg0KPiA+IDxt YXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT47IE1hLCBXZW53dVggPHdlbnd1eC5tYUBpbnRlbC5j b20+Ow0KPiA+IGRldkBkcGRrLm9yZw0KPiA+IENjOiBIdSwgSmlheXUgPGppYXl1Lmh1QGludGVs LmNvbT47IFdhbmcsIFlpbmFuIDx5aW5hbi53YW5nQGludGVsLmNvbT47DQo+IEhlLA0KPiA+IFhp bmdndWFuZyA8eGluZ2d1YW5nLmhlQGludGVsLmNvbT47IHN0YWJsZUBkcGRrLm9yZw0KPiA+IFN1 YmplY3Q6IFJFOiBbUEFUQ0ggdjNdIHZob3N0OiBmaXggZGVhZGxvY2sgd2hlbiBtZXNzYWdlIGhh bmRsaW5nIGZhaWxlZA0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ ID4gRnJvbTogUGVpLCBBbmR5IDxhbmR5LnBlaUBpbnRlbC5jb20+DQo+ID4gPiBTZW50OiBNb25k YXksIEp1bHkgMTEsIDIwMjIgNDo0MiBQTQ0KPiA+ID4gVG86IE1heGltZSBDb3F1ZWxpbiA8bWF4 aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+OyBNYSwgV2Vud3VYDQo+ID4gPiA8d2Vud3V4Lm1hQGlu dGVsLmNvbT47IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT47DQo+ID4gPiBkZXZA ZHBkay5vcmcNCj4gPiA+IENjOiBIdSwgSmlheXUgPGppYXl1Lmh1QGludGVsLmNvbT47IFdhbmcs IFlpbmFuDQo+ID4gPiA8eWluYW4ud2FuZ0BpbnRlbC5jb20+OyBIZSwgWGluZ2d1YW5nIDx4aW5n Z3VhbmcuaGVAaW50ZWwuY29tPjsNCj4gPiA+IHN0YWJsZUBkcGRrLm9yZw0KPiA+ID4gU3ViamVj dDogUkU6IFtQQVRDSCB2M10gdmhvc3Q6IGZpeCBkZWFkbG9jayB3aGVuIG1lc3NhZ2UgaGFuZGxp bmcNCj4gPiA+IGZhaWxlZA0KPiA+ID4NCj4gPiA+IEhJIEFMTCwNCj4gPiA+DQo+ID4gPiBJIHNl ZSB0aGF0IGluIGZ1bmN0aW9uIHZob3N0X3VzZXJfbXNnX2hhbmRsZXIuDQo+ID4gPiBXZSB1c2Ug InJldCIgdG8gc3RvcmUgYm90aCB2aG9zdCBtc2cgcmV0dXJuIGNvZGUgbGlrZQ0KPiA+ID4gIlJU RV9WSE9TVF9NU0dfUkVTVUxUX1hYWCIgYW5kIGZ1bmN0aW9uIHJldHVybiB2YWx1ZS4NCj4gPiA+ IEkgd29uZGVyIGlmIGl0IGlzIGJldHRlciB0byB1c2UgdHdvIGRpZmZlcmVudCB2YXJpYWJsZSB0 byBtYWtlIGl0IGVhc3kNCj4gPiA+IHRvIHJlYWQuDQo+ID4NCj4gPiBCeSBzYXlpbmcgJ2Z1bmN0 aW9uIHJldHVybiB2YWx1ZScsIHlvdSBtZWFuIHdoaWNoIGZ1bmN0aW9uPyBDYW4geW91DQo+IGVs YWJvcmF0ZQ0KPiA+IG1vcmU/DQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gQ2hlbmJvDQo+ID4NCj4g PiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IE1h eGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+ID4gPiA+IFNlbnQ6 IFR1ZXNkYXksIE1heSAxNywgMjAyMiA5OjI0IFBNDQo+ID4gPiA+IFRvOiBNYSwgV2Vud3VYIDxX ZW53dVguTWFAaW50ZWwuY29tPjsgWGlhLCBDaGVuYm8NCj4gPiA+ID4gPENoZW5iby5YaWFAaW50 ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4gPiA+IENjOiBIdSwgSmlheXUgPEppYXl1Lkh1QGlu dGVsLmNvbT47IFdhbmcsIFlpbmFuDQo+ID4gPiA+IDx5aW5hbi53YW5nQGludGVsLmNvbT47DQo+ ID4gPiBIZSwNCj4gPiA+ID4gWGluZ2d1YW5nIDx4aW5nZ3VhbmcuaGVAaW50ZWwuY29tPjsgc3Rh YmxlQGRwZGsub3JnDQo+ID4gPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjNdIHZob3N0OiBmaXgg ZGVhZGxvY2sgd2hlbiBtZXNzYWdlIGhhbmRsaW5nDQo+ID4gPiA+IGZhaWxlZA0KPiA+ID4gPg0K PiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBPbiA1LzcvMjIgMTU6MjcsIFdlbnd1IE1hIHdyb3Rl Og0KPiA+ID4gPiA+IEluIHZob3N0X3VzZXJfbXNnX2hhbmRsZXIoKSwgaWYgdmhvc3QgbWVzc2Fn ZSBoYW5kbGluZyBmYWlsZWQsIHdlDQo+ID4gPiA+ID4gc2hvdWxkIGNoZWNrIHdoZXRoZXIgdGhl IHF1ZXVlIGlzIGxvY2tlZCBhbmQgcmVsZWFzZSB0aGUgbG9jaw0KPiA+ID4gPiA+IGJlZm9yZSBy ZXR1cm5pbmcuIE9yLCBpdCB3aWxsIGNhdXNlIGEgZGVhZGxvY2sgbGF0ZXIuDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiBGaXhlczogN2YzMWQ0ZWEwNWNhICgidmhvc3Q6IGZpeCBsb2NrIG9uIGRldmlj ZSByZWFkaW5lc3MNCj4gPiA+ID4gPiBub3RpZmljYXRpb24iKQ0KPiA+ID4gPiA+IENjOiBzdGFi bGVAZHBkay5vcmcNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFdlbnd1IE1h IDx3ZW53dXgubWFAaW50ZWwuY29tPg0KPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ICAgbGliL3Zo b3N0L3Zob3N0X3VzZXIuYyB8IDEwICsrKysrKy0tLS0NCj4gPiA+ID4gPiAgIDEgZmlsZSBjaGFu Z2VkLCA2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQo+ID4gPiA+ID4NCj4gPiA+ID4N Cj4gPiA+ID4gQXBwbGllZCB0byBkcGRrLW5leHQtdmlydGlvL21haW4uDQo+ID4gPiA+DQo+ID4g PiA+IFRoYW5rcywNCj4gPiA+ID4gTWF4aW1lDQoNCg==