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 9E6703A7835; Tue, 5 May 2026 03:11:17 +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=1777950679; cv=none; b=X8RbBvYgGyZBWaLtwbA0MH6lja44UITwo1dtWKQFc0IT804bjSktOf6kxRXKQH4YoxvdLNBDHNSJwDF4Xs0p+1Ot3FViaanY5rCzmxT6+AT26F3GV5q3nf5yY/gi15uVQJaM2ozUmVOOEfC2oujumX8YzMhtSpMKecvI72kh36c= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777950679; c=relaxed/simple; bh=133FNcxuiOZ7raWoWcE8LMy/nB2XMQC6pKCeo26yjkU=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=UCqGH4RdoOEMGk8qEf2k5E2Ob28Juxs7AVfyuQjz9tUeXK4vrNfqNNQOt4H5QMnCPOcfrjv5cuuPSEMNkyj8IhT7S4G18A7gls7xfVNxjasE7b5suKpl2W1oAucrvnR36reVcTvMW4vTVt8NB/2N0XKjBxI5XT6xZKEHEJBNBkY= 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=U1C0ksyH; 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="U1C0ksyH" X-SpamFilter-By: ArmorX SpamTrap 5.80 with qID 6453ARlZ4945732, This message is accepted by code: ctloc85258 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=realtek.com; s=dkim; t=1777950627; bh=133FNcxuiOZ7raWoWcE8LMy/nB2XMQC6pKCeo26yjkU=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:Content-Transfer-Encoding:MIME-Version; b=U1C0ksyHZZ7s02AGdjKTvPHQfWbniwsUTB3Cf/riT9WIUrJReFMmGroq3+BIVtCjm eie2KwH9hVz1TVp8ZCkppAQultgOvVbFHnEhkmxhdF5sunaxD+jJNcd+Pt2tE5Ifvt kYWKeFA89lqE9tfnxj+LWWjoXv80IeCqiiYoOImJg3h58X+3DoIUBZat6svIgQxqkN cN89m75RJaDo/Z4TAuJFQnO6GuemyADgsaGIMiN21pDQWFQOgPhMGM6oIOadjohEgJ inpSAgCH4n1pTaePV4k3eFgP9Pe2y55P7aoSH90Y19JodD+Le60x61HSvdRZHRgQwd 2SS9QEmsNTSTg== Received: from mail.realtek.com (rtkexhmbs03.realtek.com.tw[10.21.1.53]) by rtits2.realtek.com.tw (8.15.2/3.27/5.94) with ESMTPS id 6453ARlZ4945732 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 5 May 2026 11:10:27 +0800 Received: from RTKEXHMBS06.realtek.com.tw (10.21.1.56) 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.1748.10; Tue, 5 May 2026 11:10:27 +0800 Received: from RTKEXHMBS06.realtek.com.tw ([fe80::ed72:3015:2840:4458]) by RTKEXHMBS06.realtek.com.tw ([fe80::ed72:3015:2840:4458%10]) with mapi id 15.02.1748.010; Tue, 5 May 2026 11:10:27 +0800 From: =?utf-8?B?U2h1bWluZyBb6IyD5pu46YqYXQ==?= To: Pierre-Louis Bossart , Aaron Ma CC: Oder Chiou , Liam Girdwood , Mark Brown , Jaroslav Kysela , "Takashi Iwai" , "linux-sound@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH] ASoC: rt1320-sdw: don't poll PDE state on power-down Thread-Topic: [PATCH] ASoC: rt1320-sdw: don't poll PDE state on power-down Thread-Index: AQHc1uHqkccyV2H7akqb5qhDDsK8xrX0YjKAgACGrACAAdPyAIAACtIAgAC7+YCAARM2AIAEfL4AgACoOTA= Date: Tue, 5 May 2026 03:10:23 +0000 Message-ID: <78cfbf996d4841fda613e72ca5471e2f@realtek.com> References: <20260428073726.1611777-1-aaron.ma@canonical.com> <69a3d80d-c9aa-459f-8522-c07e225bd5d9@linux.dev> <78c57b26-505f-473d-8472-a491ede5aad9@linux.dev> <579aaccd-990f-449e-a3ab-802b17925ab4@linux.dev> In-Reply-To: Accept-Language: zh-TW, en-US Content-Language: zh-TW Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 PiA+Pj4+Pj4+IHJ0MTMyMF9wZGUyM19ldmVudChQUkVfUE1EKSB3cml0ZXMgUkVRX1BPV0VSX1NU QVRFPVBTMw0KPiB0aGVuDQo+ID4+Pj4+Pj4gcG9sbHMgQUNUVUFMX1BPV0VSX1NUQVRFLiBEQVBN IGZpcmVzIFBSRV9QTUQgd2hpbGUgdGhlDQo+IFNvdW5kV2lyZQ0KPiA+Pj4+Pj4+IGRhdGEgcG9y dCBpcyBzdGlsbCBzdHJlYW1pbmcg4oCUIHRoZSBjb2RlYyBjYW5ub3QgcmVhY2ggUFMzIHVudGls DQo+ID4+Pj4+Pj4gdGhlIHBvcnQgc3RvcHMsIHNvIHRoZSBwb2xsIGFsd2F5cyB0aW1lcyBvdXQg ZHVyaW5nIHBsYXliYWNrLg0KPiA+Pj4+Pj4+IFRoaXMgYmxvY2tzDQo+ID4+Pj4+Pj4gc25kX2N0 bF9lbGVtX3dyaXRlKCkgZm9yIDItM3MgbWFraW5nIG11dGUgdW5yZXNwb25zaXZlLg0KPiA+Pj4+ Pj4+DQo+ID4+Pj4+Pj4gUmVtb3ZlIHRoZSBwb2xsIGZyb20gUFJFX1BNRCBpbiBydDEzMjBfcGRl MjNfZXZlbnQoKSBhbmQNCj4gPj4+Pj4+PiBydDEzMjBfcGRlMTFfZXZlbnQoKS4gVGhlIGNvZGVj IHRyYW5zaXRpb25zIHRvIFBTMyBvbiBpdHMgb3duDQo+ID4+Pj4+Pj4gb25jZSB0aGUgZGF0YSBw b3J0IGJlY29tZXMgaW5hY3RpdmUuIEtlZXAgdGhlIFBPU1RfUE1VIHBvbGwg4oCUIG9uDQo+ID4+ Pj4+Pj4gcG93ZXItdXAgdGhlIGRvbWFpbiBtdXN0IHJlYWNoIFBTMCBiZWZvcmUgYXVkaW8gY2Fu IGZsb3cuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBGaXhlczogZjQ2NWQxMGNkNzMxICgiQVNvQzog cnQxMzIwOiBBZGQgc3VwcG9ydCBmb3IgdmVyc2lvbiBDIikNCj4gPj4+Pj4+PiBTaWduZWQtb2Zm LWJ5OiBBYXJvbiBNYSA8YWFyb24ubWFAY2Fub25pY2FsLmNvbT4NCj4gPj4+Pj4+PiAtLS0NCj4g Pj4+Pj4+PiAgc291bmQvc29jL2NvZGVjcy9ydDEzMjAtc2R3LmMgfCAyIC0tDQo+ID4+Pj4+Pj4g IDEgZmlsZSBjaGFuZ2VkLCAyIGRlbGV0aW9ucygtKQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gZGlm ZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvcnQxMzIwLXNkdy5jDQo+ID4+Pj4+Pj4gYi9zb3Vu ZC9zb2MvY29kZWNzL3J0MTMyMC1zZHcuYyBpbmRleA0KPiA+Pj4+Pj4+IDE5MmZhYTQzMWI1ZTku LmU0MmU4YjZkZTg1M2UgMTAwNjQ0DQo+ID4+Pj4+Pj4gLS0tIGEvc291bmQvc29jL2NvZGVjcy9y dDEzMjAtc2R3LmMNCj4gPj4+Pj4+PiArKysgYi9zb3VuZC9zb2MvY29kZWNzL3J0MTMyMC1zZHcu Yw0KPiA+Pj4+Pj4+IEBAIC0yMDAwLDcgKzIwMDAsNiBAQCBzdGF0aWMgaW50IHJ0MTMyMF9wZGUx MV9ldmVudChzdHJ1Y3QNCj4gc25kX3NvY19kYXBtX3dpZGdldCAqdywNCj4gPj4+Pj4+PiAgICAg ICAgICAgICAgIHJlZ21hcF93cml0ZShydDEzMjAtPnJlZ21hcCwNCj4gPj4+Pj4+PiAgICAgICAg ICAgICAgICAgICAgICAgU0RXX1NEQ0FfQ1RMKEZVTkNfTlVNX01JQywNCj4gUlQxMzIwX1NEQ0Ff RU5UX1BERTExLA0KPiA+Pj4+Pj4+DQo+IFJUMTMyMF9TRENBX0NUTF9SRVFfUE9XRVJfU1RBVEUs IDApLCBwczMpOw0KPiA+Pj4+Pj4+IC0gICAgICAgICAgICAgcnQxMzIwX3BkZV90cmFuc2l0aW9u X2RlbGF5KHJ0MTMyMCwNCj4gRlVOQ19OVU1fTUlDLCBSVDEzMjBfU0RDQV9FTlRfUERFMTEsIHBz Myk7DQo+ID4+Pj4+Pj4gICAgICAgICAgICAgICBicmVhazsNCj4gPj4+Pj4+PiAgICAgICBkZWZh dWx0Og0KPiA+Pj4+Pj4+ICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4+Pj4+Pj4gQEAgLTIwMjgs NyArMjAyNyw2IEBAIHN0YXRpYyBpbnQgcnQxMzIwX3BkZTIzX2V2ZW50KHN0cnVjdA0KPiBzbmRf c29jX2RhcG1fd2lkZ2V0ICp3LA0KPiA+Pj4+Pj4+ICAgICAgICAgICAgICAgcmVnbWFwX3dyaXRl KHJ0MTMyMC0+cmVnbWFwLA0KPiA+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICBTRFdfU0RD QV9DVEwoRlVOQ19OVU1fQU1QLA0KPiBSVDEzMjBfU0RDQV9FTlRfUERFMjMsDQo+ID4+Pj4+Pj4N Cj4gUlQxMzIwX1NEQ0FfQ1RMX1JFUV9QT1dFUl9TVEFURSwgMCksIHBzMyk7DQo+ID4+Pj4+Pj4g LSAgICAgICAgICAgICBydDEzMjBfcGRlX3RyYW5zaXRpb25fZGVsYXkocnQxMzIwLA0KPiBGVU5D X05VTV9BTVAsIFJUMTMyMF9TRENBX0VOVF9QREUyMywgcHMzKTsNCj4gPj4+Pj4+DQo+ID4+Pj4+ PiBubywgc29ycnksIHRoYXQncyBjbGVhcmx5IHdyb25nLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFdo ZW4gd2UgdG91Y2ggdGhlIHJlcXVlc3RlZCBwb3dlciBzdGF0ZSwgd2UgKnNoYWxsKiB3YWl0IGZv ciB0aGUNCj4gcG93ZXIgc3RhdGUgdG8gYmUgcmVhY2hlZC4NCj4gPj4+Pj4+IHJlbW92aW5nIHRo ZSB0cmFuc2l0aW9uIGRlbGF5IGlzIHNpbGx5Lg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFlvdSB3b3Vs ZCByZWFsbHkgbmVlZCB0byBmaW5kIG91dCB3aHkgc3RyZWFtaW5nIHN0aWxsIG9jY3VycyB3aGVu IHlvdQ0KPiBnZXQgYSBEQVBNIGV2ZW50LiBUaGF0IGRvZXNuJ3Qgc2VlbSByaWdodCBpbiB0aGUg Zmlyc3QgcGxhY2UuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiAgVGhlIHN0cmVhbSBpcyBh Y3RpdmUgYnkgZGVzaWduIOKAlCB0aGlzIGlzIGEgbXV0ZSwgbm90IGEgc3RyZWFtIGNsb3NlLg0K PiA+Pj4+Pg0KPiA+Pj4+PiBUbyByZXByb2R1Y2U6DQo+ID4+Pj4+DQo+ID4+Pj4+ICAgMS4gUGxh eSBhdWRpbyB0aHJvdWdoIHJ0MTMyMCBzcGVha2VyIChhcGxheSBvciBQaXBlV2lyZSkNCj4gPj4+ Pj4gICAyLiBQcmVzcyBzcGVha2VyIG11dGUga2V5IChvciBhbWl4ZXIgY3NldCBvbiBib3RoIEZV MjEgY2hhbm5lbHMpDQo+ID4+Pj4+ICAgMy4gU2Vjb25kIGNoYW5uZWwgbXV0ZSB0YWtlcyAyLTNz IHRvIHJldHVybg0KPiA+Pj4+Pg0KPiA+Pj4+PiBNdXRpbmcgYm90aCBjaGFubmVscyByZW1vdmVz IHRoZSBsYXN0IERBUE0gcGF0aCBjb25zdW1lciBvZiBQREUyMy4NCj4gPj4+Pj4gREFQTSBmaXJl cyBQUkVfUE1EIHdoaWxlIFBpcGVXaXJlIHN0aWxsIGhvbGRzIHRoZSBQQ00gb3BlbiDigJQNCj4g Pj4+Pj4gRFAxIGtlZXBzIHN0cmVhbWluZyB6ZXJvcy4gVGhlIGNvZGVjIGNhbm5vdCByZWFjaCBQ UzMgd2hpbGUgaXRzDQo+ID4+Pj4+IGRhdGEgcG9ydCBpcyBhY3RpdmUsIHNvIHRoZSBwb2xsIGFs d2F5cyB0aW1lcyBvdXQuIFRoZSBtdXRlDQo+ID4+Pj4+IHJlZ2lzdGVyIHdyaXRlIHRoYXQgYWN0 dWFsbHkgc2lsZW5jZXMgdGhlIHNwZWFrZXIgaGFwcGVucyBhZnRlciB0aGlzDQo+IHVzZWxlc3Mg d2FpdC4NCj4gPj4+Pj4NCj4gPj4+Pj4gSSBjb25maXJtZWQgdmlhIFNvdW5kV2lyZSBkZWJ1Z2Zz IHJlYWRzOiBBQ1RVQUxfUE9XRVJfU1RBVEUNCj4gc3RheXMNCj4gPj4+Pj4gUFMwIHdoaWxlIHRo ZSBwb3J0IHN0cmVhbXMgYW5kIG9ubHkgdHJhbnNpdGlvbnMgdG8gUFMzIGFmdGVyDQo+ID4+Pj4+ IFBpcGVXaXJlIGNhbGxzIGh3X2ZyZWUgKH4zcyBsYXRlcikuIFRoZSBwb2xsIGNhbiBuZXZlciBz dWNjZWVkIGluIHRoaXMNCj4gcGF0aC4NCj4gPj4+Pj4NCj4gPj4+Pj4gRXZlcnkgb3RoZXIgUmVh bHRlayBTRENBIGFtcCBkcml2ZXIgZG9lcyBmaXJlLWFuZC1mb3JnZXQgb24NCj4gPj4+Pj4gUFJF X1BNRCB3aXRoIG5vIHRyYW5zaXRpb24gZGVsYXkg4oCUIHJ0NzEyX3NkY2FfcGRlMjNfZXZlbnQo KSwNCj4gPj4+Pj4gcnQ3MjFfc2RjYV9wZGU0MV9ldmVudCgpLCBydDEzMTZfcGRlMjRfZXZlbnQo KSwgYW5kDQo+ID4+Pj4+IHJ0MTAxN19zZGNhX3BkZTIzX2V2ZW50KCkgYWxsIGp1c3Qgd3JpdGUg UFMzIGFuZCByZXR1cm4uIHJ0MTMyMCBpcyB0aGUNCj4gb25seSBvbmUgdGhhdCBwb2xscyBvbiBw b3dlci1kb3duLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGUgUE9TVF9QTVUgcG9sbCBpcyBrZXB0IOKA lCBvbiBwb3dlci11cCB0aGUgZG9tYWluIG11c3QgcmVhY2ggUFMwDQo+ID4+Pj4+IGJlZm9yZSBh dWRpbyBjYW4gZmxvdywgYW5kIHRoZSBwb3J0IGlzIG5vdCB5ZXQgYWN0aXZlIGF0IHRoYXQNCj4g Pj4+Pj4gcG9pbnQgc28gdGhlIHRyYW5zaXRpb24gc3VjY2VlZHMgaW1tZWRpYXRlbHkuDQo+ID4+ Pj4NCj4gPj4+PiB3ZWxsIHRoYXQncyBhbiBpbnRlcmVzdGluZyBpc3N1ZS4gSU1ITyBhbGwgdGhv c2UgZHJpdmVycyBhcmUgYnJva2VuIHRoZW4uLi4NCj4gPj4+PiBBIG11dGUgc2hvdWxkIGxldCB0 aGUgcG9ydHMgYWN0aXZlIGFuZCBub3Qgc3RhcnQgYW55IHBvd2VyIHRyYW5zaXRpb25zIG9uDQo+ IHRoZSBjb2RlYyBzaWRlLg0KPiA+Pj4+IFRoYXQncyB3aGF0IHNob3VsZCBiZSBmaXhlZCBmaXJz dC4NCj4gPj4+Pg0KPiA+Pj4+IEkgYW0gbm90IHN1cmUgZWl0aGVyIHdoeSBQaXBlV2lyZSB3b3Vs ZCBzZW5kIGEgaHdfZnJlZSBvbiBhIG11dGUNCj4gZWl0aGVyLCB0aGF0J3MgYSBzdXJlIHdoYXQg dG8gaGF2ZSBhdWRpYmxlIGRlbGF5cyBhbmQgZ2xpdGNoZXMuIE11dGUgIT0gU3RvcC4NCj4gPj4+ Pg0KPiA+Pj4NCj4gPj4+IGh3X2ZyZWUgaXMgbm90IGludm9sdmVkIGhlcmUuIFRoZSBtdXRlIGlz IHB1cmVseSBhdCB0aGUgY29kZWMncyBGVQ0KPiA+Pj4gbGV2ZWwgKEZVX01VVEU9MSBzaWxlbmNl cyB0aGUgb3V0cHV0KSDigJQgdGhlIFBDTSBzdHJlYW0gcmVtYWlucyBvcGVuDQo+ID4+PiBhbmQN Cj4gPj4+IERQMSBzdGF5cyBhY3RpdmUuIFNvdW5kV2lyZSBkZWJ1Z2ZzIGNvbmZpcm1zOiBhZnRl ciBtdXRlIGR1cmluZw0KPiA+Pj4gcGxheWJhY2ssIFJFUV9QT1dFUl9TVEFURT1QUzMgYnV0IEFD VFVBTF9QT1dFUl9TVEFURSByZW1haW5zDQo+IFBTMC4NCj4gPj4+IFRoZSBjb2RlYyBjYW5ub3Qg dHJhbnNpdGlvbiB3aGlsZSB0aGUgcG9ydCBpcyBzdHJlYW1pbmcuIEFzIGxvbmcgYXMNCj4gPj4+ IHRoZSBhcHBsaWNhdGlvbiBrZWVwcyBwbGF5aW5nLCB0aGlzIHN0YXRlIHBlcnNpc3RzIGluZGVm aW5pdGVseS4NCj4gPj4+DQo+ID4+PiBUaGUgcG93ZXIgdHJhbnNpdGlvbiBpcyBub3QgdHJpZ2dl cmVkIGJ5IFBpcGVXaXJlIGVpdGhlci4gSXQgaXMNCj4gPj4+IHN0YW5kYXJkIERBUE0gYmVoYXZp b3I6IG11dGluZyBib3RoIEZVMjEgY2hhbm5lbHMgcmVtb3ZlcyB0aGUgbGFzdA0KPiA+Pj4gYWN0 aXZlIHBhdGggY29uc3VtZXIgb2YgUERFMjMsIHNvIERBUE0gZXZhbHVhdGVzIHRoZSB3aWRnZXQg YXMNCj4gPj4+IHVudXNlZCBhbmQgZmlyZXMgUFJFX1BNRC4gVGhpcyBpcyBob3cgZXZlcnkgcnQ3 eHgvcnQxM3h4IGRyaXZlcidzIERBUE0NCj4gZ3JhcGggd29ya3MgdG9kYXkuDQo+ID4+Pg0KPiA+ Pj4gVGhlIHBvbGwgaXRzZWxmIGlzIGJyb2tlbiBpbiB0aGlzIHBhdGg6IGl0IGNhbm5vdCBzdWNj ZWVkIHdoaWxlIHRoZQ0KPiA+Pj4gcG9ydCBpcyBhY3RpdmUsIGFsd2F5cyB0aW1lcyBvdXQsIGFu ZCB0aGUgaGFuZGxlciBjb250aW51ZXMgYW55d2F5Lg0KPiA+Pj4gUmVtb3ZpbmcgaXQgZml4ZXMg dGhlIHVzZXItZmFjaW5nIDItM3MgbXV0ZSBsYXRlbmN5IHdpdGhvdXQgY2hhbmdpbmcNCj4gPj4+ IGFueSBEQVBNIHRvcG9sb2d5IG9yIHBvd2VyIHNlbWFudGljcyDigJQgdGhlIFJFUV9QT1dFUl9T VEFURT1QUzMNCj4gd3JpdGUNCj4gPj4+IGlzIHN0aWxsIGlzc3VlZCwgYW5kIHRoZSBjb2RlYyB0 cmFuc2l0aW9ucyBvbmNlIHRoZSBwb3J0IHN0b3BzLg0KPiA+Pg0KPiA+PiB3ZWxsIHdlJ3JlIHRh bGtpbmcgcGFzdCBlYWNoIG90aGVyLiBUaGUgb25seSB0aGluZyB3ZSBhZ3JlZSBvbiBpcyB0aGF0 IGdvaW5nDQo+IHRvIFBTMyB3aGlsZSBhdWRpbyBpcyBzdGlsbCBzdHJlYW1pbmcgaXMgcmVhbGx5 IGJhZC4NCj4gPj4NCj4gPj4gVG8gcmVwZWF0IG15c2VsZiwgdGhlcmUgaXMgKm5vIHJlYXNvbiog d2h5IGEgbXV0ZSBzaG91bGQgdHJpZ2dlciBhDQo+IHBvd2VyLWRvd24uDQo+ID4+IEkgYW0gbm90 IGV4cGVydCBlbm91Z2ggaW4gREFQTSBidXQgdGhhdCBpc24ndCBhIGRlc2lyZWQgYmVoYXZpb3Iu DQo+ID4+DQo+ID4+IERvbid0IGZpeCB0aGlzIHVud2FudGVkIGJlaGF2aW9yIHdpdGggYSBjaGFu Z2UgaW4gaG93IHRoZSBwb3dlciBzdGF0ZQ0KPiB0cmFuc2l0aW9uIGlzIGltcGxlbWVudGVkLCBm aXggdGhlIHVud2FudGVkIGJlaGF2aW9yIGluc3RlYWQuDQo+ID4+DQo+ID4+DQo+ID4NCj4gPiBU aGUgY3VycmVudCBydDEzMjAgYmVoYXZpb3IgaXMgY29uc2lzdGVudCB3aXRoIGhvdyB0aGlzIGRy aXZlciBtb2RlbHMNCj4gPiB0aGUgcGxheWJhY2sgcGF0aCBpbiBEQVBNLg0KPiA+DQo+ID4gREFQ TSBpcyBkb2N1bWVudGVkIHRvIG1ha2UgcG93ZXIgZGVjaXNpb25zIGZyb20gc3RyZWFtIGFjdGl2 aXR5IGFuZA0KPiA+IG1peGVyIHNldHRpbmdzLCB3aXRoIHRob3NlIGRlY2lzaW9ucyBkZXJpdmVk IGZyb20gdGhlIHJvdXRpbmcgZ3JhcGgNCj4gPiAoYERvY3VtZW50YXRpb24vc291bmQvc29jL2Rh cG0ucnN0YCkuDQo+ID4NCj4gPiBJbiBydDEzMjAsIHRoZSBzcGVha2VyIG11dGUgY29udHJvbHMg YXJlDQo+IGBTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEVgDQo+ID4gc3dpdGNoZXMgb24gdGhl IHR3byBgRlUyMWAgbXV0ZSBiaXRzLCBhbmQgdGhlIHBsYXliYWNrIHBhdGggaXMgYERQMVJYDQo+ ID4gLT4gRlUyMSAtPiBPVDIzIEwvUiAtPiBTUE9ML1NQT1JgLCB3aXRoIGBGVTIxYCBhbHNvIGRl cGVuZGluZyBvbiBgUERFDQo+ID4gMjNgLg0KPiA+DQo+ID4gV2l0aCB0aGF0IGdyYXBoLCBtdXRp bmcgYm90aCBzcGVha2VyIHN3aXRjaGVzIHJlbW92ZXMgdGhlIGFjdGl2ZQ0KPiA+IHNwZWFrZXIg cGF0aCwgc28gYFBERSAyM2AgcmVjZWl2aW5nIGBQUkVfUE1EYCBpcyBjb25zaXN0ZW50IHdpdGgg dGhlDQo+ID4gY3VycmVudCBEQVBNIG1vZGVsIG9mIHRoaXMgZHJpdmVyLg0KPiA+DQo+ID4gR2l2 ZW4gdGhhdCwgSSB0aGluayB0aGUgaW1tZWRpYXRlIGJ1ZyBpcyB0aGUgc3luY2hyb25vdXMgd2Fp dCBpbg0KPiA+IGBydDEzMjBfcGRlMjNfZXZlbnQoUFJFX1BNRClgLCBub3QgdGhlIGZhY3QgdGhh dCBEQVBNIGF0dGVtcHRzIHRvDQo+ID4gcG93ZXIgZG93biB0aGUgbm93LXVudXNlZCBzcGVha2Vy IHN1cHBseSBwYXRoLg0KPiANCj4gTXkgcG9pbnQgaXMgdGhhdCB0aGUgREFQTSBtb2RlbCBzZWVt cyB3cm9uZy4gTXV0aW5nIHNob3VsZCBub3QgaGF2ZSBhbnkNCj4gaW1wYWN0cyBvbiBwb3dlciBt YW5hZ2VtZW50Lg0KPiANCj4gRm9yIHNvbWUgcmVhc29uIHRoZSBSVDEzMjAgZHJpdmVyIGRpZmZl cnMgZnJvbSBwcmV2aW91cyBjb2RlYyBkcml2ZXJzOg0KPiANCj4gc3RhdGljIGNvbnN0IHN0cnVj dCBzbmRfa2NvbnRyb2xfbmV3IHJ0MTMyMF9zcGtfbF9kYWMgPQ0KPiAgICAgICAgIFNPQ19EQVBN X1NJTkdMRV9BVVRPRElTQUJMRSgiU3dpdGNoIiwNCj4gICAgICAgICAgICAgICAgIFNEV19TRENB X0NUTChGVU5DX05VTV9BTVAsDQo+IFJUMTMyMF9TRENBX0VOVF9GVTIxLCBSVDEzMjBfU0RDQV9D VExfRlVfTVVURSwgQ0hfMDEpLA0KPiAgICAgICAgICAgICAgICAgMCwgMSwgMSk7DQo+IA0KPiBz dGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgcnQxMzE4X3N0b19kYWMgPQ0KPiAg ICAgICAgIFNPQ19EQVBNX0RPVUJMRV9SKCJTd2l0Y2giLA0KPiAgICAgICAgICAgICAgICAgU0RX X1NEQ0FfQ1RMKEZVTkNfTlVNX1NNQVJUX0FNUCwNCj4gUlQxMzE4X1NEQ0FfRU5UX0ZVMjEsIFJU MTMxOF9TRENBX0NUTF9GVV9NVVRFLCBDSF9MKSwNCj4gICAgICAgICAgICAgICAgIFNEV19TRENB X0NUTChGVU5DX05VTV9TTUFSVF9BTVAsDQo+IFJUMTMxOF9TRENBX0VOVF9GVTIxLCBSVDEzMThf U0RDQV9DVExfRlVfTVVURSwgQ0hfUiksDQo+ICAgICAgICAgICAgICAgICAwLCAxLCAxKTsNCj4g DQo+IEFuZCB0aGUgbWFpbiBxdWVzdGlvbiBpcyAid2h5Ij8NCj4gVGhlcmUncyBiZWVuIG5vIGNo YW5nZSBpbiB0aGUgdG9wb2xvZ3kgZGVmaW5pdGlvbiwgRlUyMSBwbGF5cyBleGFjdGx5IHRoZQ0K PiBzYW1lIHJvbGUgYnV0IGlzIGhhbmRsZWQgZGlmZmVyZW50bHkuDQo+IA0KPiBNYXliZSB0aGVy ZSBhcmUgc2VwYXJhdGUgREFDcyBmb3IgbGVmdCBhbmQgcmlnaHQsIGJ1dCB0aGF0IGRvZXNuJ3Qg bWVhbiB3ZQ0KPiB3YW50IG11dGluZyB0byBpbXBhY3QgUERFIG1hbmFnZW1lbnQuDQo+IElmIHlv dSBsb29rIGF0IHRoZSBoZWxwZXIgdGhhdCBpcyBiZWluZyBpbnRyb2R1Y2VkLCBubyBvbmUgaGFz IGFueSBwbGFucyB0bw0KPiByZW1vdmUgdGhlIHN5bmNocm9ub3VzIHdhaXQgYWZ0ZXIgY2hhbmdp bmcgcG93ZXIgc3RhdGVzLg0KPiANCj4gU2h1bWluZywgY2FuIHlvdSBwbGVhc2UgY2hpbWUgaW4/ DQo+IA0KDQpIaSBBYXJvbiwNCg0KU29ycnksIEkgZG9uJ3QgaGF2ZSBhIGNsZWFyIHVuZGVyc3Rh bmRpbmcgb2YgdGhlIHJvb3QgY2F1c2UgYXQgdGhlIG1vbWVudC4NCkNvdWxkIHlvdSBsZXQgbWUg a25vdyB3aGljaCBwcm9qZWN0IHRoaXMgaXNzdWUgd2FzIGVuY291bnRlcmVkIGluPw0KQWxzbywg Y291bGQgeW91IHBsZWFzZSBjb250YWN0IFJlYWx0ZWsncyBQTT8gDQpXZSBjYW4gaW52b2x2ZSB0 aGUgb3duZXIgb2YgdGhpcyBwcm9qZWN0IHRvIGhlbHAgcmVwcm9kdWNlIGFuZCBpbnZlc3RpZ2F0 ZSB0aGUgaXNzdWUgb24gdGhlIFJlYWx0ZWsgc2lkZS4NCg0KDQo=