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 9248DA04B5; Wed, 30 Sep 2020 18:37:26 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6AB9A1D5AC; Wed, 30 Sep 2020 18:37:25 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id ED4821D575 for ; Wed, 30 Sep 2020 18:37:22 +0200 (CEST) IronPort-SDR: 230Lfxxo+u1W67S9KFf0tfHy2TFL57/41g8AV9LPT3A11D5DWXsyzZg08BFFXTOXozV1jDWk8E tC8l/I8I2tHw== X-IronPort-AV: E=McAfee;i="6000,8403,9760"; a="142497292" X-IronPort-AV: E=Sophos;i="5.77,322,1596524400"; d="scan'208";a="142497292" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2020 09:37:20 -0700 IronPort-SDR: zrtaQEyWojSSrOB5VswjNbM3hpBfOk63+nKoQxth8XXOvCIYntJg1Cb4bcRDEayAfhj1nj+Djc jhot1eQUqigg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,322,1596524400"; d="scan'208";a="325092349" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga002.jf.intel.com with ESMTP; 30 Sep 2020 09:37:20 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 30 Sep 2020 09:37:20 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 30 Sep 2020 09:37:20 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.171) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 30 Sep 2020 09:37:20 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T9MDlVj/Unu/mAaHjwW8r+TLNT9LZ4DSWQtXX7C4Bc0T/yAjUz+rl0Wo59F1sJ4F4HqKJJ48eSbsa0+ScC9V1cKjUEFuw20YBHrxvBRP6O2+cvaYHt2yRzqDFIVZOIbN6417KHnjdnF1eG86YaviEKlIfjv8Hb3EVLtfnAJbXBagmB+dKdcP7V7kqh5pmqZII+GwjpMSFCTCee3F6SHc1R4STB+C1PRm2ER/BOZmodRnOjaFR+yTFzHaeCpA4fDUZOLkMjuaxS7MxX2XLQdN2bp3HQQO9dEO/Zt/RffmmZue6J2VPsAMowf3zIane8TPo6PdXZ/Fvlm4dQEfhve8zA== 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=sDvFgk+TtwVYUgIVtRukSaMenL8SvLTzr60WuFMpJOQ=; b=lcAU3lqE7WODHYnm9Jl1lrGmTXX+uPSxtswUnH/yrUdkFv0cJL79ALndob6C+gpdDzw6cEKy5EHCiGAeLhebfKEiascq8kEX+BQOVvg4zk31HqSMysUH/YOXfv7EQeyXo6TK1VXANrj4Zm+yVhda6c2/cBaVQAE96ygR+CUQyp6RWX3lOriiaF9q5Talx9SBtogVhrE+JPCsGNb/kc2f4CQTn0j00moxKyltyhLHojDVwJeD9IQ68n2dpk+yrEdJKxGwEtO/TlmT7OsXwxRiWnrWcxOWhhcRoeiKcveXkcvgoNIuVpIrtpFX0AvCH5fp3RRg47icsnxkWnsZmiW3Bg== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sDvFgk+TtwVYUgIVtRukSaMenL8SvLTzr60WuFMpJOQ=; b=Q/LB4i3G5WGbIRHCUyf0zfe013eXJmK9qCkxNIM+SPV/RyMLpueZKYzRIBGcKLrESIGCNGJnzS+GcdHKQ2pVakzHxtEc3jbY3wXp2xq4DefewwC2TfqrZXwqp4UVL2jy/L3qUhdk4o2GfRvPS7timOkOj8Z0dBPFsiUEJVeDAVU= Received: from BL0PR11MB3043.namprd11.prod.outlook.com (2603:10b6:208:33::19) by MN2PR11MB4616.namprd11.prod.outlook.com (2603:10b6:208:26f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.32; Wed, 30 Sep 2020 16:37:16 +0000 Received: from BL0PR11MB3043.namprd11.prod.outlook.com ([fe80::11fa:a7fe:329d:9239]) by BL0PR11MB3043.namprd11.prod.outlook.com ([fe80::11fa:a7fe:329d:9239%5]) with mapi id 15.20.3433.032; Wed, 30 Sep 2020 16:37:16 +0000 From: "Zhang, Roy Fan" To: Maxime Coquelin , "Xia, Chenbo" , "Liu, Changpeng" , "dev@dpdk.org" CC: "matan@mellanox.com" , "Zawadzki, Tomasz" , "Yigit, Ferruh" Thread-Topic: [dpdk-dev] [PATCH] vhost: return ready when at least 1 vring is configured Thread-Index: AQHWlmojl+zDDeRl5UGA47Zp7KQYjKl/v1DQgAC8HoCAANbMAIAADRiQ Date: Wed, 30 Sep 2020 16:37:15 +0000 Message-ID: References: <1598944057-32690-1-git-send-email-changpeng.liu@intel.com> <8e0e8343-4e85-71f3-8c85-07eb1cff6079@redhat.com> <06542643-cc20-5e3e-26ae-7100005dc97d@redhat.com> <24b547af-2cda-36db-cb66-e5523d169556@redhat.com> <0f8b9daf-3ed7-0ede-8c0c-f2a1bcef9ca4@redhat.com> <42d0c319-314f-80ea-f3d7-21eaf567c2fa@redhat.com> In-Reply-To: <42d0c319-314f-80ea-f3d7-21eaf567c2fa@redhat.com> Accept-Language: zh-Hans-HK, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [95.44.220.85] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 997f38c8-361d-4f23-4e44-08d8655f1778 x-ms-traffictypediagnostic: MN2PR11MB4616: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fLoG1IDUlSXEgqvPlPzqWK6scLMmLdMERYvWAMru50VW/EQ8ABZ3+vNvxVNuMfvxIXpklP0ln6TxO+yQOFr4lEX2PNr9VtmCjY4q99Z/MepU4Uso3d8MTni+V6xlfIc8qJtWB6kQZEBs+RTjzTKzDXAG+mwrIdSGoEGrvO2f3RJ4/p+Xue82YVQObLfGwglsPwBtWr9LlA/IhmhY0tvaFVfOtCdCqyqOvayDtOOtey4XklCAKcqqD+5QYRQiEi1iU/iffnysiXIaHS0a4IdyCyMe3OuoNS/3AaN1ocw06X5uFe9X73y+M8qU5dW5q9Ca2vluIIbovFxDSnRPwwrUnQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL0PR11MB3043.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(366004)(396003)(136003)(376002)(346002)(4326008)(316002)(71200400001)(54906003)(186003)(26005)(7696005)(83380400001)(107886003)(53546011)(6506007)(2906002)(76116006)(33656002)(478600001)(55016002)(30864003)(86362001)(9686003)(110136005)(8936002)(5660300002)(8676002)(66946007)(52536014)(64756008)(66556008)(66476007)(66446008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: ZS/JkGFTsnCUs3zwWfEnt2yV+mUR4kyxfhrmK9a6SRavddWjZvvPwqhsuguaviswEefmztBneQeqqAIPTZ54ApmPXeEpYcstMNfwyXvQDqUCSegGY38rF+Hs847qS5bYsTO1DcfztJ19aqtHE078dBV0atgQhDbqm8PUZ0Ei6L6E4rUOpZrSBIUxHfmQPYBbBFs1y6CJiX3LFy5iu792BJL1zXwKbwLuV6vMSFSWdxnE7TVYFnWwRApLNgeawsW3RV5eUNcch9KgQ3VA0L3tiXGWvTvbJ6DEVFjpwO8UUoASry4BDCNGUhWWItzh4nv2L9UawVQZK8XhtMhPFlbBWFngHnAKHVNoXWbUrN6Dj4rF3oG4kRionOAlRYL/hgjEVIItEVstzN37mt2akLpYlONjUGQy5DeehqJjteZetmsCxgyUn4wZx2Pa1cvbGmz0mudePY0KT+g3yYPAtGdrFtlwmgDsosHgjU2Tr/DHMyVCBpgR14zQqTx6/EcJ0Z7e87TUUc/gRlA2wIOHWp1o37DkY8BGMMkcm1qQQF+OePpafyHfdyjJpRoRUSd2wJsOIZYUmTrtyPiGOhdnbpdLCapABbkFsKWxUXQtBbdKTczSBt3ZLcB2fAQrICfTTJ9EoknTw+xNq9/zSwCUXju0CQ== 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: BL0PR11MB3043.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 997f38c8-361d-4f23-4e44-08d8655f1778 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Sep 2020 16:37:15.9546 (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: 8UzS/sXD5hUiO8AlFD9gAEf6fy12JqEdDKsUnvwu0nyT+QZ+xkSpwcbuOXfG8lhYPaNVPD2xUTynCUlq3XBUrQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4616 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] vhost: return ready when at least 1 vring is configured 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" SGkgQ2hlbmJvIGFuZCBNYXhpbWUsDQoNClRoYW5rcyBmb3IgcmVwbHlpbmcgdGhlIGVtYWlsLiAN Cg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGltZSBDb3F1ZWxp biA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVt YmVyIDMwLCAyMDIwIDQ6MzcgUE0NCj4gVG86IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVs LmNvbT47IFpoYW5nLCBSb3kgRmFuDQo+IDxyb3kuZmFuLnpoYW5nQGludGVsLmNvbT47IExpdSwg Q2hhbmdwZW5nIDxjaGFuZ3BlbmcubGl1QGludGVsLmNvbT47DQo+IGRldkBkcGRrLm9yZw0KPiBD YzogbWF0YW5AbWVsbGFub3guY29tOyBaYXdhZHpraSwgVG9tYXN6IDx0b21hc3ouemF3YWR6a2lA aW50ZWwuY29tPjsNCj4gWWlnaXQsIEZlcnJ1aCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4NCj4g U3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIXSB2aG9zdDogcmV0dXJuIHJlYWR5IHdoZW4g YXQgbGVhc3QgMSB2cmluZyBpcw0KPiBjb25maWd1cmVkDQo+IA0KPiBIaSwNCj4gDQo+IE9uIDkv MzAvMjAgNDo0OCBBTSwgWGlhLCBDaGVuYm8gd3JvdGU6DQo+ID4gSGkgRmFuICYgTWF4aW1lLA0K PiA+DQo+ID4gSSBhbSB0aGlua2luZyB0aGF0IHNob3VsZCB3ZSBtb3ZlIHNldF9mZWF0dXJlcyBv dXRzaWRlIG9mIG5ld19kZXZpY2UNCj4gY2FsbGJhY2sNCj4gPiBmb3IgY3J5cHRvIGRldmljZT8g SSBzZWUgdGhhdCBuZXQgYW5kIGJsayBkZXZpY2VzIGJvdGggc2V0IGZlYXR1cmVzIGJldHdlZW4N Cj4gcmVnaXN0ZXINCj4gPiBhbmQgc3RhcnQsIGFuZCBwZXJzb25hbGx5IEkgdGhpbmsgdGhpcyBt YWtlcyBzZW5zZSB0aGF0IGRldmljZSBmZWF0dXJlcyBhcmUNCj4gc2V0DQo+ID4gYmVmb3JlIGRl dmljZSBzdGFydCBhbmQgcmVhZHkuIEhvdyBkbyB5b3UgdGhpbmsg8J+Yij8NCg0KVGhlIHJlYXNv biBpdCBpcyBzZXQgaW5zaWRlIHJ0ZV92aG9zdF9jcnlwdG9fY3JlYXRlKCkgaXMgbG9naWNhbGx5 IHNwZWFraW5nDQp0aGUgdXNlciBzaG91bGRuJ3QgZXhwZWN0IHRvIGhhdmUgdG8gc2V0IHRoZSBm ZWF0dXJlIGZsYWdzIGV2ZW4gYWZ0ZXIgdGhlIGNyZWF0ZQ0KZnVuY3Rpb24gaXMgY2FsbGVkIC0g YW5kIHdoYXQgSSBrbm93IGluIHRoZSBhcHBsaWNhdGlvbiB0aGUgb25seSB3YXkgdG8ga25vdyB0 aGUNCnZpZCBmb3IgdGhlIGZpcnN0IHRpbWUgaXMgd2hlbiBuZXdfZGV2aWNlKCkgaXMgaW52b2tl ZC4gU28gaWYgdGhlcmUgaXMgYXdheSB0byBrbm93DQp0aGUgdmlkIGJlZm9yZSBuZXdfZGV2aWNl KCkgaXMgaW52b2tlZCBJIGFtIGhhcHB5IHRvIGNoYW5nZSB0aGUgc2FtcGxlIGFwcC4NCg0KPiAN Cj4gSW5kZWVkLCB3ZSBjYW5ub3QgY29uc2lkZXIgdGhlIGRldmljZSB0byBiZSByZWFkeSAoYW5k IHNvIGNhbGwNCj4gLm5ld19kZXZpY2UgY2FsbGJhY2spIGlmIGZlYXR1cmVzIGhhdmVuJ3QgYmVl biBuZWdvdGlhdGVkLg0KPiANCj4gSSBhZ3JlZSwgcnRlX3Zob3N0X2RyaXZlcl9zZXRfZmVhdHVy ZXMoKSBoYXMgdG8gYmUgY2FsbGVkIGJlZm9yZQ0KPiAubmV3X2RldmljZSgpLCBhbmQgdGhhdCdz IHRoZSByZWFzb24gd2h5IGl0IHRha2VzIHNvY2tldCdzIHBhdGggYW5kIG5vdA0KPiB2aWQgYXMg aW5wdXQuDQoNCkRpZmZlcmVudCB0aGFuIHZob3N0X2Jsaywgdmhvc3RfY3J5cHRvIGxpZXMgaW4g dGhlIGxpYnJhcnkgYW5kIG5lZWRzIHRvIGJlDQphYmxlIHRvIGJlIHRyZWF0ZWQgZXZlbmx5IGFz IHZpcnRpb19uZXQuIFdpdGhvdXQgdGhlIG5ld19kZXZpY2UoKSBjYWxsaW5nDQpydGVfdmhvc3Rf Y3J5cHRvX2NyZWF0ZSgpIHRoZSBmZWF0dXJlIGZsYWcgY2Fubm90IGJlIHNldC4gV2l0aG91dCBz ZXR0aW5nDQp0aGUgZmVhdHVyZSBmbGFnIHRoZSBkZXZpY2UgaXMgYWx3YXlzIHRyZWF0ZWQgYXMg dmlydGlvX25ldCBkZXZpY2UsIGhlbmNlIGl0DQpjYW5ub3QgcGFzcyB0aGUgdmlydGlvX2lzX3Jl YWR5KCkgY2hlY2sgYXMgdGhlIG51bWJlciBvZiBxdWV1ZXMgdmlydGlvDQpjcnlwdCB1c2VzIGlz IG9ubHkgMSBpbnN0ZWFkIG9mIDIgKHJlcXVpcmVkIGJ5IHZpcnRpb19uZXQpLg0KDQpSZWdhcmRz LA0KRmFuDQo+IA0KPiBUaGFua3MsDQo+IE1heGltZQ0KPiANCj4gDQo+ID4gVGhhbmtzLA0KPiA+ IENoZW5ibw0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206 IFpoYW5nLCBSb3kgRmFuIDxyb3kuZmFuLnpoYW5nQGludGVsLmNvbT4NCj4gPj4gU2VudDogV2Vk bmVzZGF5LCBTZXB0ZW1iZXIgMzAsIDIwMjAgMjoxNSBBTQ0KPiA+PiBUbzogTWF4aW1lIENvcXVl bGluIDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT47IExpdSwgQ2hhbmdwZW5nDQo+ID4+IDxj aGFuZ3BlbmcubGl1QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+PiBDYzogbWF0YW5AbWVs bGFub3guY29tOyBYaWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+Ow0KPiBaYXdhZHpr aSwNCj4gPj4gVG9tYXN6IDx0b21hc3ouemF3YWR6a2lAaW50ZWwuY29tPjsgWWlnaXQsIEZlcnJ1 aA0KPiA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4NCj4gPj4gU3ViamVjdDogUkU6IFtkcGRrLWRl dl0gW1BBVENIXSB2aG9zdDogcmV0dXJuIHJlYWR5IHdoZW4gYXQgbGVhc3QgMSB2cmluZw0KPiA+ PiBpcyBjb25maWd1cmVkDQo+ID4+DQo+ID4+IEhpIE1heGltZSwNCj4gPj4NCj4gPj4gVGhhbmtz IGZvciB0ZWxsaW5nIG1lIHRoYXQgYnV0IHZob3N0X2NyeXB0byBpcyBzdGlsbCBicmVha2luZy4N Cj4gPj4NCj4gPj4gVmlydGlvLWNyeXB0byAoYm90aCBMS0NGIHZpcnRpby1jcnlwdCBkcml2ZXIg YW5kIERQREsgdmlydGlvLWNyeXB0byBQTUQpDQo+ID4+IHdvbid0IGNyZWF0ZSBkZXZpY2UgcXVl dWUgdW50aWwgdGhlIGNyeXB0byBzZXNzaW9uIGlzIHJlcXVpcmVkIHRvIGJlDQo+ID4+IGNyZWF0 ZWQuIFRodXMgdnFfaXNfcmVhZHkoKSB3aWxsIG5ldmVyIHJldHVybiB0cnVlIGR1cmluZyBpbml0 aWFsaXphdGlvbiAtDQo+ID4+IGhlbmNlIG5ld19kZXZpY2UoKSBpbiB2aG9zdF9jcnlwdG8gc2Ft cGxlIGFwcCB3aWxsIG5ldmVyIGJlIHRyaWdnZXJlZC4NCj4gPj4gQWxzbyBzaW5jZSBydGVfdmhv c3RfZHJpdmVyX3NldF9mZWF0dXJlcygpIGlzIGNhbGxlZCBpbnNpZGUNCj4gPj4gcnRlX3Zob3N0 X2NyeXB0b19jcmVhdGUoKSwgd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5IG5ld19kZXZpY2UoKSBoYW5k bGVyLA0KPiB3ZQ0KPiA+PiBjYW5ub3QgdXBkYXRlIHRoZSBkZXYtPmZsYWdzIHRvIGJ5cGFzcyB0 aGUgImlmIChkZXYtPmZsYWdzICYNCj4gPj4gVklSVElPX0RFVl9CVUlMVElOX1ZJUlRJT19ORVQp IiBjaGVjayBiZWZvcmUgbmV3X2RldmljZSgpIGlzIGNhbGxlZC4NCj4gPj4gd2hhdCB0aGUgbmV3 IGxvZ2ljIHZpcnRpb19pc19yZWFkeSgpIHJlcXVpcmVtZW50IHdpbGwgbmV2ZXIgbWVldCBmb3IN Cj4gPj4gdmhvc3RfY3J5cHRvLg0KPiA+Pg0KPiA+PiBBIHdheSB0byBmaXggaXQgaXMgd2l0aCB0 aGUgZm9sbG93aW5nIGNoYW5nZSAtDQo+ID4+DQo+ID4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRl X3Zob3N0L3Zob3N0X3VzZXIuYyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4+ IGluZGV4IGIwMGUxZjkxZC4uZTUyNjNhMzYwIDEwMDY0NA0KPiA+PiAtLS0gYS9saWIvbGlicnRl X3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+PiArKysgYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3Vz ZXIuYw0KPiA+PiBAQCAtMTkzNyw2ICsxOTM3LDE0IEBAIHZob3N0X3VzZXJfc2V0X3ZyaW5nX2tp Y2soc3RydWN0IHZpcnRpb19uZXQNCj4gKipwZGV2LA0KPiA+PiBzdHJ1Y3QgVmhvc3RVc2VyTXNn ICptc2csDQo+ID4+ICAgICAgICAgICAgICAgICB9DQo+ID4+ICAgICAgICAgfQ0KPiA+Pg0KPiA+ PiArICAgICAgIC8qIHZpcnRpby1jcnlwdG8gdnEgaXMgbm90IHJlYWR5IHVudGlsIHNlc3Npb24g aXMgY3JlYXRlZC4gQ2hlY2sNCj4gPj4gKyAgICAgICAgKiBoZXJlIGlmIHdlIG5lZWQgdG8gaW5p dGlhbGl6ZSBkZXZpY2UgYWdhaW4NCj4gPj4gKyAgICAgICAgKi8NCj4gPj4gKyAgICAgICBpZiAo IShkZXYtPmZsYWdzICYgVklSVElPX0RFVl9SVU5OSU5HKSkgew0KPiA+PiArICAgICAgICAgICAg ICAgaWYgKGRldi0+bm90aWZ5X29wcy0+bmV3X2RldmljZShkZXYtPnZpZCkgPT0gMCkNCj4gPj4g KyAgICAgICAgICAgICAgICAgICAgICAgZGV2LT5mbGFncyB8PSBWSVJUSU9fREVWX1JVTk5JTkc7 DQo+ID4+ICsgICAgICAgfQ0KPiA+PiArDQo+ID4+ICAgICAgICAgcmV0dXJuIFJURV9WSE9TVF9N U0dfUkVTVUxUX09LOw0KPiA+PiAgfQ0KPiA+Pg0KPiA+PiBidXQgSSBjYW5ub3QgYWRkIHZpcnRp b19pc19yZWFkeSgpIGluc2lkZSB0aGUgIiBpZiAoIShkZXYtPmZsYWdzICYNCj4gPj4gVklSVElP X0RFVl9SVU5OSU5HKSkiIGNoZWNrLCBzaW5jZSB3ZSBuZWVkIG5ld19kZXZpY2UoKSBpcyBjYWxs ZWQgdG8NCj4gc2V0DQo+ID4+IHRoZSBmZWF0dXJlIGZsYWdzIC0gaWYgdG8gc2V0IHRoZSBmZWF0 dXJlIGZsYWdzIGluIHRoZSBleGFtcGxlIGluc3RlYWQsDQo+ID4+IHRoZSBsb2dpYyB3aWxsIG5v dCByaWdodCwgc2luY2UgdmlydGlvLW5ldCBkb2VzIG5vdCByZXF1aXJlIHRoZSB1c2VyIHRvDQo+ ID4+IHNldCB0aGUgZmxhZ3MgdGhlbXNlbHZlcyBlaXRoZXIuDQo+ID4+DQo+ID4+IFJlZ2FyZHMs DQo+ID4+IEZhbg0KPiA+Pg0KPiA+Pg0KPiA+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPj4+IEZyb206IE1heGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+ DQo+ID4+PiBTZW50OiBUdWVzZGF5LCBTZXB0ZW1iZXIgMjksIDIwMjAgMzowNiBQTQ0KPiA+Pj4g VG86IFpoYW5nLCBSb3kgRmFuIDxyb3kuZmFuLnpoYW5nQGludGVsLmNvbT47IExpdSwgQ2hhbmdw ZW5nDQo+ID4+PiA8Y2hhbmdwZW5nLmxpdUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPj4+ IENjOiBtYXRhbkBtZWxsYW5veC5jb207IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNv bT47DQo+IFphd2FkemtpLA0KPiA+Pj4gVG9tYXN6IDx0b21hc3ouemF3YWR6a2lAaW50ZWwuY29t Pg0KPiA+Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIXSB2aG9zdDogcmV0dXJuIHJl YWR5IHdoZW4gYXQgbGVhc3QgMQ0KPiA+PiB2cmluZyBpcw0KPiA+Pj4gY29uZmlndXJlZA0KPiA+ Pj4NCj4gPj4+IEhpIEZhbiwNCj4gPj4+DQo+ID4+PiBUaGUgcGF0Y2ggaXMgYWxyZWFkeSBtZXJn ZWQgaW4gbWFpbiBicmFuY2g6DQo+ID4+Pg0KPiA+Pj4gY29tbWl0IDA5NDI0YzNmNzQzMTE1NTVj MzNkM2Q0Y2RjMmNhMzY1NGNlMTNiMWMNCj4gPj4+IEF1dGhvcjogTWF4aW1lIENvcXVlbGluIDxt YXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gPj4+IERhdGU6ICAgV2VkIFNlcCAyMyAxMTo0 OTowMiAyMDIwICswMjAwDQo+ID4+Pg0KPiA+Pj4gICAgIHZob3N0OiBmaXggZXh0ZXJuYWwgYmFj a2VuZHMgcmVhZGluZXNzDQo+ID4+Pg0KPiA+Pj4gICAgIENvbW1pdCBkMGZjYzM4ZjVmYTQgKCJ2 aG9zdDogaW1wcm92ZSBkZXZpY2UgcmVhZGluZXNzIG5vdGlmaWNhdGlvbnMiKQ0KPiA+Pj4gICAg IG1ha2VzIHRoZSBhc3N1bXB0aW9uIHRoYXQgZXZlcnkgVmlydGlvIGRldmljZXMgYXJlIGNvbnNp ZGVyZWQNCj4gPj4+ICAgICByZWFkeSBmb3IgcHJlb2Nlc3NpbmcgYXMgc29vbiBhcyBmaXJzdCBx dWV1ZSBwYWlyIGlzIGNvbmZpZ3VyZWQNCj4gPj4+ICAgICBhbmQgZW5hYmxlZC4NCj4gPj4+DQo+ ID4+PiAgICAgV2hpbGUgdGhpcyBpcyB0cnVlIGZvciBWaXJ0aW8tbmV0LCBpdCBpc24ndCBmb3Ig VmlydGlvLXNjc2kNCj4gPj4+ICAgICBhbmQgVmlydGlvLWJsay4NCj4gPj4+DQo+ID4+PiAgICAg VGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IG9ubHkgbWFraW5nIHRoaXMgYXNzdW1wdGlvbiBmb3IN Cj4gPj4+ICAgICB0aGUgYnVpbHRpbiBWaXJ0aW8tbmV0IGJhY2tlbmQsIGFuZCByZXN0b3JlcyBi YWNrIHRvIHByZXZpb3VzDQo+ID4+PiAgICAgYmVoYXZpb3VyIGZvciBvdGhlciBiYWNrZW5kcy4N Cj4gPj4+DQo+ID4+PiAgICAgRml4ZXM6IGQwZmNjMzhmNWZhNCAoInZob3N0OiBpbXByb3ZlIGRl dmljZSByZWFkaW5lc3Mgbm90aWZpY2F0aW9ucyIpDQo+ID4+Pg0KPiA+Pj4gICAgIFJlcG9ydGVk LWJ5OiBDaGFuZ3BlbmcgTGl1IDxjaGFuZ3BlbmcubGl1QGludGVsLmNvbT4NCj4gPj4+ICAgICBT aWduZWQtb2ZmLWJ5OiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29t Pg0KPiA+Pj4gICAgIFNpZ25lZC1vZmYtYnk6IENoYW5ncGVuZyBMaXUgPGNoYW5ncGVuZy5saXVA aW50ZWwuY29tPg0KPiA+Pj4gICAgIFJldmlld2VkLWJ5OiBDaGVuYm8gWGlhIDxjaGVuYm8ueGlh QGludGVsLmNvbT4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gUmVnYXJkcywNCj4gPj4+IE1heGltZQ0K PiA+Pj4NCj4gPj4+IE9uIDkvMjkvMjAgMzo1NCBQTSwgWmhhbmcsIFJveSBGYW4gd3JvdGU6DQo+ ID4+Pj4gSGkgTWF4aW1lLA0KPiA+Pj4+DQo+ID4+Pj4gVmhvc3QtY3J5cHRvIGhhcyBleGFjdGx5 IHRoZSBzYW1lIGlzc3VlLiBDaGFuZ3BlbmcncyBwYXRjaCBmaXhlZCBpdC4NCj4gPj4+PiBDb3Vs ZCB5b3UgZ2l2ZSBtZSBhIHNob3V0IHdoZW4geW91ciBwYXRjaCBpcyBvdXQsIHNvIEkgY2FuIGhh dmUgYSB0ZXN0Pw0KPiA+Pj4+DQo+ID4+Pj4gUmVnYXJkcywNCj4gPj4+PiBGYW4NCj4gPj4+Pg0K PiA+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+PiBGcm9tOiBkZXYgPGRl di1ib3VuY2VzQGRwZGsub3JnPiBPbiBCZWhhbGYgT2YgTWF4aW1lIENvcXVlbGluDQo+ID4+Pj4+ IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDIzLCAyMDIwIDk6MDUgQU0NCj4gPj4+Pj4gVG86 IExpdSwgQ2hhbmdwZW5nIDxjaGFuZ3BlbmcubGl1QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0K PiA+Pj4+PiBDYzogbWF0YW5AbWVsbGFub3guY29tOyBYaWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBp bnRlbC5jb20+Ow0KPiA+Pj4gWmF3YWR6a2ksDQo+ID4+Pj4+IFRvbWFzeiA8dG9tYXN6Lnphd2Fk emtpQGludGVsLmNvbT4NCj4gPj4+Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIXSB2 aG9zdDogcmV0dXJuIHJlYWR5IHdoZW4gYXQgbGVhc3QgMQ0KPiA+PiB2cmluZw0KPiA+Pj4gaXMN Cj4gPj4+Pj4gY29uZmlndXJlZA0KPiA+Pj4+Pg0KPiA+Pj4+PiBIaSBDaGFuZ3BlbmcsDQo+ID4+ Pj4+DQo+ID4+Pj4+IE9uIDkvMjIvMjAgOToyMiBBTSwgTGl1LCBDaGFuZ3Blbmcgd3JvdGU6DQo+ ID4+Pj4+PiBIaSBNYXhpbWUsDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gVGhlIGNvZGUgeW91IHdyb3Rl IHN0aWxsIG5lZWQgdG8gY2hlY2sgbnJfdnJpbmcgaXMgMCBvciBub3QsIHNlZSB0aGUNCj4gPj4g ZXh0cmENCj4gPj4+IDINCj4gPj4+Pj4gbGluZXMgYWRkZWQgYmVsb3csIHRoZW4gaXQgY2FuIHdv cmsgd2l0aCBteSB0ZXN0cyBmb3Igbm93LCBjb3VsZCB5b3UNCj4gPj4+IHN1Ym1pdA0KPiA+Pj4+ PiBhIHBhdGNoIHRvIERQREsgdG8gYXBwbHkgdGhlIHBhdGNoPyBUaGFua3MuDQo+ID4+Pj4+DQo+ ID4+Pj4+IFRoYW5rcyEgWW91IGFyZSByaWdodC4NCj4gPj4+Pj4NCj4gPj4+Pj4gSSdsbCBzZW5k IHRoZSBwYXRjaCBub3cgaW5jbHVkaW5nIHlvdXIgZml4Lg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4gQlRX LCBkcGRrIHZob3N0IGxpYnJhcnkgc3RpbGwgaGFzIGFuIGlzc3VlLCBpdCdzIG5vdCByZWxhdGVk IHdpdGgNCj4gPj4gY29tbWl0DQo+ID4+Pj4+IGQwZmNjMzhmLCB0aGUgR3Vlc3QgZHJpdmVyIG1h eSBvbmx5IGtpY2sgMSB2cmluZyBldmVuIGl0IHNlbmRzDQo+ID4+PiBOVU1fUVVFVUVTDQo+ID4+ Pj4+IHdpdGggYSBiaWdnZXIgdmFsdWUsDQo+ID4+Pj4+PiB0aGlzIGlzIHF1aXRlIGNvbW1vbiBp biBzZWFiaW9zLCBlLmc6IHZpcnRpb19ibGsgd2lsbCBvbmx5IHVzZSAxDQo+ID4+IHZyaW5nIGlu DQo+ID4+Pj4+IHNlYWJpb3MsIHRoaXMgbWVhbnMgdGhlIGJhY2tlbmQgd2lsbCBuZXZlciBnZXQg c3RhcnRlZCBpbiBCSU9TLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4gSWYgSSB1bmRlcnN0 YW5kIGNvcnJlY3RseSwgdGhpcyBpcyBub3QgYSByZWdyZXNzaW9uIGJ1dCBoYXMgYWx3YXlzDQo+ ID4+IGJlZW4NCj4gPj4+Pj4gaGVyZT8NCj4gPj4+Pj4NCj4gPj4+Pj4gV2Ugc2hvdWxkIHdvcmsg b24gZml4aW5nIGl0IGFueXdheSwgYnV0IEknbSBub3Qgc3VyZSB0byBoYXZlIHRoZSB0aW1lDQo+ ID4+Pj4+IGZvciB2MjAuMTEuMC4gSXQgd291bGQgYmUgZ3JlYXQgaWYgeW91IGNvdWxkIHByb3Zp ZGUgc3RlcHMgdG8NCj4gPj4gcmVwcm9kdWNlDQo+ID4+Pj4+IGl0LiBNYXliZSBmaWxlIGEgYnVn IGluIERQREsgdHJhY2tlcj8NCj4gPj4+Pj4NCj4gPj4+Pj4gVGhhbmtzLA0KPiA+Pj4+PiBNYXhp bWUNCj4gPj4+Pj4NCj4gPj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+ Pj4+IEZyb206IE1heGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+ ID4+Pj4+Pj4gU2VudDogTW9uZGF5LCBTZXB0ZW1iZXIgMjEsIDIwMjAgNjoyMCBQTQ0KPiA+Pj4+ Pj4+IFRvOiBMaXUsIENoYW5ncGVuZyA8Y2hhbmdwZW5nLmxpdUBpbnRlbC5jb20+OyBkZXZAZHBk ay5vcmcNCj4gPj4+Pj4+PiBDYzogbWF0YW5AbWVsbGFub3guY29tOyBYaWEsIENoZW5ibyA8Y2hl bmJvLnhpYUBpbnRlbC5jb20+Ow0KPiA+Pj4+PiBaYXdhZHpraSwNCj4gPj4+Pj4+PiBUb21hc3og PHRvbWFzei56YXdhZHpraUBpbnRlbC5jb20+DQo+ID4+Pj4+Pj4gU3ViamVjdDogUmU6IFtQQVRD SF0gdmhvc3Q6IHJldHVybiByZWFkeSB3aGVuIGF0IGxlYXN0IDEgdnJpbmcgaXMNCj4gPj4+Pj4g Y29uZmlndXJlZA0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IE9u IDkvMjEvMjAgNzowMyBBTSwgTGl1LCBDaGFuZ3Blbmcgd3JvdGU6DQo+ID4+Pj4+Pj4+IEhpIE1h eGltZSwNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+ID4+Pj4+Pj4+PiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRo YXQuY29tPg0KPiA+Pj4+Pj4+Pj4gU2VudDogRnJpZGF5LCBTZXB0ZW1iZXIgMTgsIDIwMjAgNTo1 NCBQTQ0KPiA+Pj4+Pj4+Pj4gVG86IExpdSwgQ2hhbmdwZW5nIDxjaGFuZ3BlbmcubGl1QGludGVs LmNvbT47IGRldkBkcGRrLm9yZw0KPiA+Pj4+Pj4+Pj4gQ2M6IG1hdGFuQG1lbGxhbm94LmNvbTsg WGlhLCBDaGVuYm8gPGNoZW5iby54aWFAaW50ZWwuY29tPjsNCj4gPj4+Pj4gWmF3YWR6a2ksDQo+ ID4+Pj4+Pj4+PiBUb21hc3ogPHRvbWFzei56YXdhZHpraUBpbnRlbC5jb20+DQo+ID4+Pj4+Pj4+ PiBTdWJqZWN0OiBSZTogW1BBVENIXSB2aG9zdDogcmV0dXJuIHJlYWR5IHdoZW4gYXQgbGVhc3Qg MSB2cmluZyBpcw0KPiA+Pj4+PiBjb25maWd1cmVkDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4g SGkgQ2hhbmdwZW5nLA0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IE9uIDkvMS8yMCA5OjA3IEFN LCBDaGFuZ3BlbmcgTGl1IHdyb3RlOg0KPiA+Pj4+Pj4+Pj4+IENvbW1pdCBkMGZjYzM4ZiAidmhv c3Q6IGltcHJvdmUgZGV2aWNlIHJlYWRpbmVzcw0KPiBub3RpZmljYXRpb25zIg0KPiA+Pj4+Pj4+ Pj4+IG5lZWRzIGF0IGxlYXN0IDIgdnJpbmdzIGJlZm9yZSBjaGFuZ2luZyB0aGUgZGV2aWNlIHN0 YXRlIHRvDQo+ID4+Pj4+Pj4+Pj4gcmVhZHksIHRoaXMgaXMgZmluZSBmb3IgTkVUIGRldmljZSBi dXQgbm90IGNvcnJlY3QgZm9yIEJMSw0KPiA+Pj4+Pj4+Pj4+IGRldmljZS4NCj4gPj4+Pj4+Pj4+ Pg0KPiA+Pj4+Pj4+Pj4+IFRoZSBudW1iZXIgb2YgdnJpbmcgcmVxdWlyZWQgc2hvdWxkIGJlIGJh c2VkIG9uIHRoZSBkZXZpY2UNCj4gPj4+Pj4+Pj4+PiB0eXBlLCBlLmcuIHZpcnRpb19zY3NpIGRl dmljZSBuZWVkcyBhdCBsZWFzdCAzIHZyaW5ncywgYW5kDQo+ID4+Pj4+Pj4+Pj4gdmlydGlvX25l dCBuZWVkcyBhdCBsZWFzdCAyIHZyaW5ncywgdmlydGlvX2JsayBuZWVkcyBhdCBsZWFzdA0KPiA+ Pj4+Pj4+Pj4+IDEgdnJpbmcuIFNvIGluc3RlYWQgb2YgZG9pbmcgaXQgaW4gdmhvc3QgbGlicmFy eSBpdCdzIGJldHRlcg0KPiA+Pj4+Pj4+Pj4+IHRoYXQgdGhlIGFwcGxpY2F0aW9uIHdobyB1c2Vz IHRoaXMgbGlicmFyeSBkbyB0aGlzIGNoZWNrLg0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4g U2lnbmVkLW9mZi1ieTogQ2hhbmdwZW5nIExpdSA8Y2hhbmdwZW5nLmxpdUBpbnRlbC5jb20+DQo+ ID4+Pj4+Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4+Pj4gIGxpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNl ci5jIHwgMiArLQ0KPiA+Pj4+Pj4+Pj4+ICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkNCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9s aWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+Pj4+PiBiL2xpYi9saWJydGVfdmhvc3Qv dmhvc3RfdXNlci5jDQo+ID4+Pj4+Pj4+Pj4gaW5kZXggYzNjOTI0Zi4uNGQxODgzYyAxMDA2NDQN Cj4gPj4+Pj4+Pj4+PiAtLS0gYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+Pj4+ Pj4+Pj4+ICsrKyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4+Pj4+Pj4+Pj4g QEAgLTEzNDMsNyArMTM0Myw3IEBADQo+ID4+Pj4+Pj4+Pj4gIAkgICAgICAgdnEtPmVuYWJsZWQ7 DQo+ID4+Pj4+Pj4+Pj4gIH0NCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IC0jZGVmaW5lIFZJ UlRJT19ERVZfTlVNX1ZRU19UT19CRV9SRUFEWSAydQ0KPiA+Pj4+Pj4+Pj4+ICsjZGVmaW5lIFZJ UlRJT19ERVZfTlVNX1ZRU19UT19CRV9SRUFEWSAxdQ0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ IEkgdGhpbmsgaXQgd291bGQgYmUgYmV0dGVyIHRvIHJlbHkgb24NCj4gPj4+IFZJUlRJT19ERVZf QlVJTFRJTl9WSVJUSU9fTkVUDQo+ID4+Pj4+IHRvDQo+ID4+Pj4+Pj4+PiBrbm93IHdoZXRoZXIg aXQgc2hvdWxkIHdhaXQgZm9yIDEgb3IgMiBxdWV1ZXMgdG8gZGV0ZXJtaW5lIGlmDQo+ID4+IHJl YWR5Lg0KPiA+Pj4+Pj4+PiB2aXJ0aW9fc2NzaSBuZWVkcyBhdCBsZWFzdCAzIHZyaW5ncywgc28g Ym90aCAxIGFuZCAyIGNhbid0IHdvcmsNCj4gPj4gZm9yDQo+ID4+Pj4+IHZpcnRpb19zY3NpDQo+ ID4+Pj4+Pj4gZGV2aWNlLg0KPiA+Pj4+Pj4+PiBDYW4gd2UgZXhwb3NlIGFuIEFQSSB0byBsZXQg dGhlIGNhbGxlciB0byBzZXQgdGhlIG1pbmltdW0NCj4gbnVtYmVyDQo+ID4+IG9mDQo+ID4+Pj4+ IHZyaW5ncw0KPiA+Pj4+Pj4+IHJlcXVpcmVkIGJ5DQo+ID4+Pj4+Pj4+IHZpcnRpbyBkZXZpY2U/ DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBPSywgdGhhbmtzIGZvciBwb2ludGluZyB0aGlzIG91dCwg SSBtaXNzZWQgaXQuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBJJ20gbm90IGluIGZhdm9yIG9mIGlu dHJvZHVjaW5nIGFuIG5ldyBBUEkgZm9yIHRoaXMuDQo+ID4+Pj4+Pj4gSSBwcm9wb3NlIHRvIHJl c3RyaWN0IGNoYW5nZSBpbnRyb2R1Y2VkIGluIGNvbW1pdCBkMGZjYzM4ZiB0byB0aGUNCj4gPj4+ Pj4+PiBidWlsdGluIG5ldCBiYWNrZW5kLiBDYW4geW91IGhhdmUgYSB0cnkgd2l0aCBiZWxvdyBw YXRjaD8NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFRoYW5rcyBpbiBhZHZhbmNlLA0KPiA+Pj4+Pj4+ IE1heGltZQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ PiAgc3RhdGljIGludA0KPiA+Pj4+Pj4+Pj4+ICB2aXJ0aW9faXNfcmVhZHkoc3RydWN0IHZpcnRp b19uZXQgKmRldikNCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+ Pj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4+PiBiL2xp Yi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4+Pj4+Pj4gaW5kZXggNTAxMjE4ZTE5Mi4u ZjU3MWVmOTNmYyAxMDA2NDQNCj4gPj4+Pj4+PiAtLS0gYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0 X3VzZXIuYw0KPiA+Pj4+Pj4+ICsrKyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jDQo+ ID4+Pj4+Pj4gQEAgLTEzNDMsMjEgKzEzNDMsMjUgQEAgdnFfaXNfcmVhZHkoc3RydWN0IHZpcnRp b19uZXQgKmRldiwNCj4gc3RydWN0DQo+ID4+Pj4+Pj4gdmhvc3RfdmlydHF1ZXVlICp2cSkNCj4g Pj4+Pj4+PiAgICAgICAgICAgICAgICB2cS0+ZW5hYmxlZDsNCj4gPj4+Pj4+PiAgfQ0KPiA+Pj4+ Pj4+DQo+ID4+Pj4+Pj4gLSNkZWZpbmUgVklSVElPX0RFVl9OVU1fVlFTX1RPX0JFX1JFQURZIDJ1 DQo+ID4+Pj4+Pj4gKyNkZWZpbmUgVklSVElPX0JVSUxUSU5fTlVNX1ZRU19UT19CRV9SRUFEWSAy dQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gIHN0YXRpYyBpbnQNCj4gPj4+Pj4+PiAgdmlydGlvX2lz X3JlYWR5KHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYpDQo+ID4+Pj4+Pj4gIHsNCj4gPj4+Pj4+PiAg ICAgICAgIHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZxOw0KPiA+Pj4+Pj4+IC0gICAgICAgdWlu dDMyX3QgaTsNCj4gPj4+Pj4+PiArICAgICAgIHVpbnQzMl90IGksIG5yX3ZyaW5nID0gZGV2LT5u cl92cmluZzsNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgICAgICAgaWYgKGRldi0+ZmxhZ3MgJiBW SVJUSU9fREVWX1JFQURZKQ0KPiA+Pj4+Pj4+ICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCj4g Pj4+Pj4+Pg0KPiA+Pj4+Pj4+IC0gICAgICAgaWYgKGRldi0+bnJfdnJpbmcgPCBWSVJUSU9fREVW X05VTV9WUVNfVE9fQkVfUkVBRFkpDQo+ID4+Pj4+Pj4gLSAgICAgICAgICAgICAgIHJldHVybiAw Ow0KPiA+Pj4+Pj4+ICsgICAgICAgaWYgKGRldi0+ZmxhZ3MgJiBWSVJUSU9fREVWX0JVSUxUSU5f VklSVElPX05FVCkgew0KPiA+Pj4+Pj4+ICsgICAgICAgICAgICAgICBucl92cmluZyA9IFZJUlRJ T19CVUlMVElOX05VTV9WUVNfVE9fQkVfUkVBRFk7DQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ICsg ICAgICAgICAgICAgICBpZiAoZGV2LT5ucl92cmluZyA8IG5yX3ZyaW5nKQ0KPiA+Pj4+Pj4+ICsg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOw0KPiA+Pj4+Pj4+ICsgICAgICAgfQ0KPiA+ Pj4+Pj4NCj4gPj4+Pj4+ICAgICsgICAgICAgICBpZighbnJfdnJpbmcpDQo+ID4+Pj4+PiAgICAr ICAgICAgICAgICAgIHJldHVybiAwOw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gLSAgICAgICBmb3Ig KGkgPSAwOyBpIDwgVklSVElPX0RFVl9OVU1fVlFTX1RPX0JFX1JFQURZOyBpKyspIHsNCj4gPj4+ Pj4+PiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBucl92cmluZzsgaSsrKSB7DQo+ID4+Pj4+Pj4g ICAgICAgICAgICAgICAgIHZxID0gZGV2LT52aXJ0cXVldWVbaV07DQo+ID4+Pj4+Pj4NCj4gPj4+ Pj4+PiAgICAgICAgICAgICAgICAgaWYgKCF2cV9pc19yZWFkeShkZXYsIHZxKSkNCj4gPj4+Pj4+ DQo+ID4+Pj4NCj4gPg0KDQo=