From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 77B713CC315 for ; Mon, 7 Sep 2026 03:39:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=211.75.126.72 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788752398; cv=none; b=do7/BEuvnNjH8kAWrKQelCw87JuA3L5Au6R+CWcoUaInnX2+gtoDCNmKn+sPnfK1SZJ3zsCGJNnig7M+nty3NTb0rW+gh6J6bU7h9+Uzxa4eA/JS0l9NACCYTQuo3FgoXCI6niBPULW7oiNaYGcLuTTo4qeHn1rm1IJOs5AZv4k= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788752398; c=relaxed/simple; bh=n4PDyWcY81SsVOqO5L9yBZNe6RRsZ3gjci1GMGWHAAw=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=OH8unVAjVsrF4dMrAyE1XJEy3hgVffnXVFYU31MJ+VMKOF3oP65JUGtVSzxcW3pDH9KJtT9vDBNvcimcBcf/yVL1h0PqFUfreFlUw/S6FlJLtbbH8MKDRHviBdpz9WXUoWoNcWBJ2aMj3Z2be2S0ZXCBYJxB0fYp1hceQENtkqY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=realtek.com; spf=pass smtp.mailfrom=realtek.com; dkim=pass (2048-bit key) header.d=realtek.com header.i=@realtek.com header.b=STe2Jl1r; arc=none smtp.client-ip=211.75.126.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=realtek.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=realtek.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=realtek.com header.i=@realtek.com header.b="STe2Jl1r" X-SpamFilter-By: ArmorX SpamTrap 5.80 with qID 6873dpTO32444448, This message is accepted by code: ctloc85258 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=realtek.com; s=dkim; t=1788752392; bh=n4PDyWcY81SsVOqO5L9yBZNe6RRsZ3gjci1GMGWHAAw=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:Content-Transfer-Encoding:MIME-Version; b=STe2Jl1reOSUI3E8AOpheF978itthQQsIA998OW68+pvXfA2+DWAjhPmOp2IxCZjb XpsmpRN8JW2s5up4hPZeqaRX6shSWtGiY2ZluRO9YuMWKtwMhKXNdWXvX0Dh4Lvs8P YBlq94wn0Xz73i/bwb6hp23TMlP1FG0m1dHmABZCYUtirq/CPLTnB6DFqHpFLshss/ kgqv11CGvA0LV0YXP3jswq/8dPD8BXxUlIGvSUxAKrn5pVCmNSMiu5//5m6c29gyaW ZZW5iww46O7mtUSTzALQ87uuDOuEX48vEnscCc2/sCDvKglgFg3RXyo5lD0ey2428x V0ISW7e4Wjtew== Received: from mail.realtek.com (rtkexhmbs03.realtek.com.tw[10.21.1.53]) by rtits2.realtek.com.tw (8.15.2/3.29/5.94) with ESMTPS id 6873dpTO32444448 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 7 Sep 2026 11:39:51 +0800 Received: from RTKEXHMBS01.realtek.com.tw (172.21.6.40) by RTKEXHMBS03.realtek.com.tw (10.21.1.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Mon, 7 Sep 2026 11:39:52 +0800 Received: from RTKEXHMBS06.realtek.com.tw (10.21.1.56) by RTKEXHMBS01.realtek.com.tw (172.21.6.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Mon, 7 Sep 2026 11:39:52 +0800 Received: from RTKEXHMBS06.realtek.com.tw ([::1]) by RTKEXHMBS06.realtek.com.tw ([fe80::126f:59ad:658:674d%10]) with mapi id 15.02.2562.043; Mon, 7 Sep 2026 11:39:52 +0800 From: Ping-Ke Shih To: Bitterblue Smith , "linux-wireless@vger.kernel.org" CC: "i.mafifi17@gmail.com" Subject: RE: [PATCH rtw-next v2] wifi: rtw88: usb: Download the reserved page synchronously Thread-Topic: [PATCH rtw-next v2] wifi: rtw88: usb: Download the reserved page synchronously Thread-Index: AQHdPRLoXQlR62ebbEKsbdmDIXxqibbCdF0g Date: Mon, 7 Sep 2026 03:39:51 +0000 Message-ID: <7debfdba54064dd18ce87e940939f26d@realtek.com> References: <8efe15ee-bdea-428b-a636-3e801c22009f@gmail.com> In-Reply-To: <8efe15ee-bdea-428b-a636-3e801c22009f@gmail.com> Accept-Language: en-US, zh-TW Content-Language: zh-TW Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Qml0dGVyYmx1ZSBTbWl0aCA8cnRsODgyMWNlcmZlMkBnbWFpbC5jb20+IHdyb3RlOg0KPiBGcm9t OiBNb2hhbW1lZCBBZmlmaSA8aS5tYWZpZmkxN0BnbWFpbC5jb20+DQo+IA0KPiBJbiBBUCBtb2Rl IHRoZSByZXNlcnZlZCBwYWdlICh3aGljaCBjb250YWlucyB0aGUgYmVhY29uKSBpcyBkb3dubG9h ZGVkDQo+IHRvIHRoZSBjaGlwIGJ5IHJ0d19md193cml0ZV9kYXRhX3JzdmRfcGFnZSgpLiBUaGF0 IGZ1bmN0aW9uIHdyaXRlcyB0aGUNCj4gZGF0YSB2aWEgcnR3X2hjaV93cml0ZV9kYXRhX3JzdmRf cGFnZSgpIGFuZCB0aGVuIGltbWVkaWF0ZWx5IHBvbGxzIHRoZQ0KPiBoYXJkd2FyZSBCQ05fVkFM SUQgYml0IHRvIGNvbmZpcm0gdGhlIGZpcm13YXJlIGFjY2VwdGVkIHRoZSBiZWFjb24uDQoNCkl0 IGxvb2tzIGxpa2UgZG93bmxvYWRpbmcgcmVzZXJ2ZWQgcGFnZSB1c2VzIHVzYl9zdWJtaXRfdXJi KCkgYW5kDQpyZWFkL3dyaXRlIElPIHVzZXMgdXNiX2NvbnRyb2xfbXNnKCkuIERvIHRoZXkgZ28g dmlhIGRpZmZlcmVudCBVU0IgcGlwZXM/DQoNCihJIGp1c3Qgd2FudCB0byBrbm93IG1vcmUgVVNC KQ0KDQo+IA0KPiBPbiBVU0IsIHJ0d191c2Jfd3JpdGVfZGF0YV9yc3ZkX3BhZ2UoKSBlbmRzIHVw IGluIHJ0d191c2Jfd3JpdGVfcG9ydCgpLA0KPiB3aGljaCBzdWJtaXRzIHRoZSBVUkIgd2l0aCB1 c2Jfc3VibWl0X3VyYigpIGFuZCByZXR1cm5zIGFzIHNvb24gYXMgdGhlDQo+IHRyYW5zZmVyIGlz IHF1ZXVlZC4gVGhlIGNvbXBsZXRpb24gY2FsbGJhY2sgb25seSBmcmVlcyB0aGUgc2tiLiBBcyBh DQo+IHJlc3VsdCB0aGUgQkNOX1ZBTElEIHBvbGwgY2FuIHJ1biB3aGlsZSB0aGUgYmVhY29uIGlz IHN0aWxsIGluIGZsaWdodA0KPiBvbiB0aGUgYnVzLCBhbmQgdGhlIHBvbGwgdGltZXMgb3V0IGV2 ZW4gdGhvdWdoIHRoZSBkb3dubG9hZCBpdHNlbGYgaXMNCj4gZmluZS4NCj4gDQo+IFRoaXMgc2hv d3MgdXAgYXM6DQo+IA0KPiAgIHJ0d184ODIyYnU6IGVycm9yIGJlYWNvbiB2YWxpZA0KPiAgIHJ0 d184ODIyYnU6IGZhaWxlZCB0byBkb3dubG9hZCBkcnYgcnN2ZCBwYWdlDQo+IA0KPiBUaGUgZmFp bHVyZSBpcyBpbnRlcm1pdHRlbnQgYmVjYXVzZSB0aGUgcG9sbCByZXRyaWVzIHNvbWV0aW1lcyBj b3Zlcg0KPiB0aGUgdHJhbnNmZXIgdGltZS4gSXQgb2NjdXJzIGluIGJ1cnN0cyB3aGVuIHNvbWV0 aGluZyB0cmlnZ2VycyByZXBlYXRlZA0KPiBiZWFjb24gdXBkYXRlcywgc3VjaCBhcyBzdGF0aW9u cyBhc3NvY2lhdGluZyBhbmQgZGlzYXNzb2NpYXRpbmcuDQo+IA0KPiBGaXggdGhpcyBieSBhZGRp bmcgYSBzeW5jaHJvbm91cyBidWxrLW91dCBoZWxwZXIgdGhhdCB3YWl0cyBmb3IgdGhlIFVSQg0K PiB0byBjb21wbGV0ZSwgYW5kIHVzaW5nIGl0IGZvciB0aGUgcmVzZXJ2ZWQgcGFnZSBkb3dubG9h ZC4gT25seSB0aGUNCj4gcmVzZXJ2ZWQgcGFnZSAvIGJlYWNvbiBwYXRoIGlzIG1hZGUgc3luY2hy b25vdXM7IHRoZSBub3JtYWwgZGF0YSBUWA0KPiBwYXRoIGlzIGxlZnQgdW50b3VjaGVkLCBzbyB0 aHJvdWdocHV0IGlzIHVuYWZmZWN0ZWQuDQo+IA0KPiBUaGUgcmVzZXJ2ZWQgcGFnZSBkb3dubG9h ZCBydW5zIGluIHByb2Nlc3MgY29udGV4dCB1bmRlciBydHdkZXYtPm11dGV4LA0KPiBzbyBzbGVl cGluZyB0aGVyZSBpcyBzYWZlLg0KPiANCj4gQ2xvc2VzOiBodHRwczovL2dpdGh1Yi5jb20vbHdm aW5nZXIvcnR3ODgvaXNzdWVzLzQ1MQ0KPiBTaWduZWQtb2ZmLWJ5OiBNb2hhbW1lZCBBZmlmaSA8 aS5tYWZpZmkxN0BnbWFpbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IEJpdHRlcmJsdWUgU21pdGgg PHJ0bDg4MjFjZXJmZTJAZ21haWwuY29tPg0KPiAtLS0NCj4gdjI6DQo+ICAtIEZpeCBjb21waWxh dGlvbiBlcnJvciBpbiBydHdfdXNiX3dyaXRlX2RhdGFfcnN2ZF9wYWdlKCkuDQo+IC0tLQ0KPiAg ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYyB8IDkxICsrKysrKysrKysr KysrKysrKysrKysrLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVr L3J0dzg4L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYw0K PiBpbmRleCBjOTA4MDI5MTk0NzMuLmQzMTI5Nzk1NGYyMiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYw0KPiArKysgYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jDQo+IEBAIC0zOTQsNiArMzk0LDcxIEBAIHN0YXRp YyBpbnQgcnR3X3VzYl93cml0ZV9wb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHFzZWws IHN0cnVjdCBza19idWZmICpzDQo+ICAgICAgICAgcmV0dXJuIHJldDsNCj4gIH0NCj4gDQo+ICtz dHJ1Y3QgcnR3X3VzYl93cml0ZV9kYXRhX3N5bmNfY2Igew0KPiArICAgICAgIHN0cnVjdCBjb21w bGV0aW9uIGRvbmU7DQo+ICsgICAgICAgaW50IHN0YXR1czsNCj4gK307DQo+ICsNCj4gK3N0YXRp YyB2b2lkIHJ0d191c2Jfd3JpdGVfcG9ydF9zeW5jX2NvbXBsZXRlKHN0cnVjdCB1cmIgKnVyYikN Cj4gK3sNCj4gKyAgICAgICBzdHJ1Y3QgcnR3X3VzYl93cml0ZV9kYXRhX3N5bmNfY2IgKmNiID0g dXJiLT5jb250ZXh0Ow0KPiArDQo+ICsgICAgICAgY2ItPnN0YXR1cyA9IHVyYi0+c3RhdHVzOw0K PiArICAgICAgIGNvbXBsZXRlKCZjYi0+ZG9uZSk7DQo+ICt9DQo+ICsNCj4gKy8qIFN5bmNocm9u b3VzIGJ1bGstb3V0IHRoYXQgcmV0dXJucyBvbmx5IGFmdGVyIHRoZSBkYXRhIGhhcyBhY3R1YWxs eSBiZWVuDQoNCkZpcnN0IGxpbmUgb2YgY29tbWVudCBibG9jayBzaG91bGQgYmUgZW1wdHksIGJ1 dCBJJ2QgcmVtb3ZlIHRoaXMgY29tbWV0Lg0KKHNlZSBiZWxvdykNCg0KPiArICogdHJhbnNmZXJy ZWQgdG8gdGhlIGRldmljZS4gUmVxdWlyZWQgZm9yIHRoZSByZXNlcnZlZC1wYWdlIC8gYmVhY29u DQo+ICsgKiBkb3dubG9hZDogdGhlIGNhbGxlciBwb2xscyB0aGUgaGFyZHdhcmUgQkNOX1ZBTElE IGJpdCBpbW1lZGlhdGVseSBhZnRlcg0KPiArICogdGhpcyByZXR1cm5zLCBzbyB0aGUgYnl0ZXMg bXVzdCBiZSBvbiB0aGUgY2hpcCBieSB0aGVuLiBUaGUgbm9ybWFsIGFzeW5jDQo+ICsgKiBUWCBw YXRoIHJhY2VzIHRoYXQgcG9sbCwgd2hpY2ggc2hvd3MgdXAgYXMgaW50ZXJtaXR0ZW50DQo+ICsg KiAiZXJyb3IgYmVhY29uIHZhbGlkIiAvICJmYWlsZWQgdG8gZG93bmxvYWQgZHJ2IHJzdmQgcGFn ZSIgaW4gQVAgbW9kZSwNCj4gKyAqIG1vcmUgb2Z0ZW4gb24gNSBHSHogd2hlcmUgdGhlIGxhcmdl ciBiZWFjb24gdGFrZXMgbG9uZ2VyIHRvIHRyYW5zZmVyLg0KPiArICovDQo+ICtzdGF0aWMgaW50 IHJ0d191c2Jfd3JpdGVfcG9ydF9zeW5jKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHFzZWws DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNr YikNCj4gK3sNCj4gKyAgICAgICBzdHJ1Y3QgcnR3X3VzYiAqcnR3dXNiID0gcnR3X2dldF91c2Jf cHJpdihydHdkZXYpOw0KPiArICAgICAgIHN0cnVjdCB1c2JfZGV2aWNlICp1c2JkID0gcnR3dXNi LT51ZGV2Ow0KPiArICAgICAgIHN0cnVjdCBydHdfdXNiX3dyaXRlX2RhdGFfc3luY19jYiBjYjsN Cj4gKyAgICAgICBpbnQgZXAgPSBxc2VsX3RvX2VwKHJ0d3VzYiwgcXNlbCk7DQo+ICsgICAgICAg dW5zaWduZWQgaW50IHBpcGU7DQo+ICsgICAgICAgc3RydWN0IHVyYiAqdXJiOw0KPiArICAgICAg IGludCByZXQ7DQo+ICsNCj4gKyAgICAgICBpZiAoZXAgPCAwKQ0KPiArICAgICAgICAgICAgICAg cmV0dXJuIGVwOw0KPiArDQo+ICsgICAgICAgdXJiID0gdXNiX2FsbG9jX3VyYigwLCBHRlBfS0VS TkVMKTsNCj4gKyAgICAgICBpZiAoIXVyYikNCj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5P TUVNOw0KPiArDQo+ICsgICAgICAgaW5pdF9jb21wbGV0aW9uKCZjYi5kb25lKTsNCj4gKyAgICAg ICBjYi5zdGF0dXMgPSAtRUlOUFJPR1JFU1M7DQo+ICsNCj4gKyAgICAgICBwaXBlID0gdXNiX3Nu ZGJ1bGtwaXBlKHVzYmQsIHJ0d3VzYi0+b3V0X2VwW2VwXSk7DQo+ICsgICAgICAgdXNiX2ZpbGxf YnVsa191cmIodXJiLCB1c2JkLCBwaXBlLCBza2ItPmRhdGEsIHNrYi0+bGVuLA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgIHJ0d191c2Jfd3JpdGVfcG9ydF9zeW5jX2NvbXBsZXRlLCAmY2Ip Ow0KPiArICAgICAgIHVyYi0+dHJhbnNmZXJfZmxhZ3MgfD0gVVJCX1pFUk9fUEFDS0VUOw0KPiAr DQo+ICsgICAgICAgcmV0ID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfS0VSTkVMKTsNCj4gKyAg ICAgICBpZiAocmV0KQ0KPiArICAgICAgICAgICAgICAgZ290byBvdXQ7DQo+ICsNCj4gKyAgICAg ICAvKiA1IHMgbWF0Y2hlcyB0aGUgdmVuZG9yIGRyaXZlcidzIGJ1bGstb3V0IHRpbWVvdXQgKi8N Cj4gKyAgICAgICBpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmY2IuZG9uZSwgbXNl Y3NfdG9famlmZmllcyg1MDAwKSkpIHsNCj4gKyAgICAgICAgICAgICAgIHVzYl9raWxsX3VyYih1 cmIpOw0KPiArICAgICAgICAgICAgICAgcmV0ID0gLUVUSU1FRE9VVDsNCj4gKyAgICAgICB9IGVs c2Ugew0KPiArICAgICAgICAgICAgICAgcmV0ID0gY2Iuc3RhdHVzOw0KPiArICAgICAgIH0NCj4g Kw0KPiArb3V0Og0KPiArICAgICAgIHVzYl9mcmVlX3VyYih1cmIpOw0KPiArDQo+ICsgICAgICAg cmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiAgc3RhdGljIGJvb2wgcnR3X3VzYl90eF9hZ2dfc2ti KHN0cnVjdCBydHdfdXNiICpydHd1c2IsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QpDQo+ICB7 DQo+ICAgICAgICAgc3RydWN0IHJ0d19kZXYgKnJ0d2RldiA9IHJ0d3VzYi0+cnR3ZGV2Ow0KPiBA QCAtNTQzLDEzICs2MDgsMzcgQEAgc3RhdGljIGludCBydHdfdXNiX3dyaXRlX2RhdGFfcnN2ZF9w YWdlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICpidWYsDQo+ICB7DQo+ICAgICAgICAgY29u c3Qgc3RydWN0IHJ0d19jaGlwX2luZm8gKmNoaXAgPSBydHdkZXYtPmNoaXA7DQo+ICAgICAgICAg c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHswfTsNCj4gKyAgICAgICBzdHJ1Y3Qg c2tfYnVmZiAqc2tiOw0KPiArICAgICAgIGludCByZXQ7DQo+IA0KPiAgICAgICAgIHBrdF9pbmZv LnR4X3BrdF9zaXplID0gc2l6ZTsNCj4gICAgICAgICBwa3RfaW5mby5xc2VsID0gVFhfREVTQ19R U0VMX0JFQUNPTjsNCj4gICAgICAgICBwa3RfaW5mby5vZmZzZXQgPSBjaGlwLT50eF9wa3RfZGVz Y19zejsNCj4gICAgICAgICBwa3RfaW5mby5scyA9IHRydWU7DQo+IA0KDQpJIGZlZWwgeW91IGNh biByZW1vdmUgY29tbWVudCBhYm92ZSBydHdfdXNiX3dyaXRlX3BvcnRfc3luYygpLCBhbmQganVz dCBoYXZlDQphIHNpbXBsZSBjb21tZW50IGhlcmUgdG8gZGVzY3JpYmUgdXNpbmcgX3N5bmMgdmVy c2lvbiBvZg0KcnR3X3VzYl93cml0ZV9wb3J0X3N5bmMoKSwgYmVjYXVzZSBjYWxsZXJzIGNoZWNr IEJDTl9WQUxJRCBpbW1lZGlhdGVseS4gDQoNCj4gLSAgICAgICByZXR1cm4gcnR3X3VzYl93cml0 ZV9kYXRhKHJ0d2RldiwgJnBrdF9pbmZvLCBidWYpOw0KPiArICAgICAgIHNrYiA9IGRldl9hbGxv Y19za2IoY2hpcC0+dHhfcGt0X2Rlc2Nfc3ogKyBzaXplKTsNCj4gKyAgICAgICBpZiAoIXNrYikN Cj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiArDQo+ICsgICAgICAgc2tiX3Jl c2VydmUoc2tiLCBjaGlwLT50eF9wa3RfZGVzY19zeik7DQo+ICsgICAgICAgc2tiX3B1dF9kYXRh KHNrYiwgYnVmLCBzaXplKTsNCj4gKyAgICAgICBza2JfcHVzaChza2IsIGNoaXAtPnR4X3BrdF9k ZXNjX3N6KTsNCj4gKyAgICAgICBtZW1zZXQoc2tiLT5kYXRhLCAwLCBjaGlwLT50eF9wa3RfZGVz Y19zeik7DQo+ICsgICAgICAgcnR3X3R4X2ZpbGxfdHhfZGVzYyhydHdkZXYsICZwa3RfaW5mbywg c2tiKTsNCj4gKyAgICAgICBydHdfdHhfZmlsbF90eGRlc2NfY2hlY2tzdW0ocnR3ZGV2LCAmcGt0 X2luZm8sIHNrYi0+ZGF0YSk7DQo+ICsNCj4gKyAgICAgICAvKiBEb3dubG9hZCB0aGUgYmVhY29u L3Jlc2VydmVkIHBhZ2Ugc3luY2hyb25vdXNseSBzbyB0aGF0IHRoZSBjYWxsZXIncw0KPiArICAg ICAgICAqIHN1YnNlcXVlbnQgQkNOX1ZBTElEIHBvbGwgb2JzZXJ2ZXMgdGhlIGNvbXBsZXRlZCB0 cmFuc2ZlciBpbnN0ZWFkIG9mDQo+ICsgICAgICAgICogcmFjaW5nIHRoZSBhc3luYyBUWCBwYXRo Lg0KPiArICAgICAgICAqLw0KPiArICAgICAgIHJldCA9IHJ0d191c2Jfd3JpdGVfcG9ydF9zeW5j KHJ0d2RldiwgcGt0X2luZm8ucXNlbCwgc2tiKTsNCj4gKyAgICAgICBpZiAocmV0KQ0KPiArICAg ICAgICAgICAgICAgcnR3X2VycihydHdkZXYsICJmYWlsZWQgdG8gZG93bmxvYWQgcnN2ZCBwYWdl IG92ZXIgVVNCLCByZXQ9JWRcbiIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldCk7DQo+ ICsNCj4gKyAgICAgICBkZXZfa2ZyZWVfc2tiX2FueShza2IpOw0KPiArDQo+ICsgICAgICAgcmV0 dXJuIHJldDsNCg0KQ2FuIHdlIG1vdmUgdGhpcyBjaHVuayBpbnRvIGEgZnVuY3Rpb24gbGlrZSBy dHdfdXNiX3dyaXRlX2RhdGFfc3luYygpPw0KT3IgaXMgaXQgcG9zc2libGUgdG8gZXh0ZW5kIGFy Z3VtZW50cyBvZiBydHdfdXNiX3dyaXRlX2RhdGEoKT8gQmVjYXVzZSB0aGV5DQpkbyBtYW55IHNp bWlsYXIgdGhpbmdzLg0KDQpCdXQgSSBkb24ndCBhc2sgdG8gZXh0ZW5kIHJ0d191c2Jfd3JpdGVf cG9ydCgpLCBiZWNhdXNlDQpydHdfdXNiX3dyaXRlX3BvcnRfc3luYygpIGlzIHF1aXRlIGRpZmZl cmVudDsgYXQgbGVhc3Qgbm8gbWFueSBkcml2ZXItc3BlY2lmaWMNCnNldHRpbmdzLg0KDQo+ICB9 DQo+IA0KPiAgc3RhdGljIGludCBydHdfdXNiX3dyaXRlX2RhdGFfaDJjKHN0cnVjdCBydHdfZGV2 ICpydHdkZXYsIHU4ICpidWYsIHUzMiBzaXplKQ0KPiAtLQ0KPiAyLjU1LjANCg0K