Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2709638pxv; Sun, 11 Jul 2021 23:26:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzh60C6jGd8xXJm2XI7/IMsLTflRKGf3SnqoIcfdXlnbZrWueVXpbbY//zBw/+qXDFj8EQf X-Received: by 2002:a02:9508:: with SMTP id y8mr8425916jah.28.1626071174615; Sun, 11 Jul 2021 23:26:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626071174; cv=none; d=google.com; s=arc-20160816; b=sv7RvLZDpd6PWKQXInzcNj4wCxhMtXpBmO1gtiLwOJZtnvdWokk5zHVrzFj6eCCTT1 Jc77mW59bLb6OG0yupZE3np9CTB7l5RdVDUDGuTy++uUqUi8kvKUJuwvR+0TSSSY8GYW jwQxtdtKrtJJMwmq26OnwpkY8I5IQKETWGn9QSjcG42IPR/vCyavXEJlTnxPX5ZmS2o+ tY2tIIvveXF4e2UppuveF5jKEU6wvWL9cEFl6f6MPxs3KJ395Dv9r0w4xddQ87PfYq53 OxnprlmpYPHkwh+fRRF2UnuLlxqhCIqVJefAHbdSKnn/gYP/62fZAeCllQxde9X7bPZC DU8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:authenticated-by; bh=pmrX3on5Od+9eP0Gf0Q0/BEqyqSWSpcuZloH28hkwhw=; b=EWvnV43FI13l7yvh6uyzdQKw2wBEgHCyGtbj9TAQb89WyQtR26laPuAxfPeI64yHf3 US1qcvjUJSipk+jlxT2ln+gIMqFAlY+f/fE8L43fsqD63A8JVoYIoYM6HCJ/3GoAbZSh S4uTUK9Mq8nM8lR9TNop6J+4SaxNEsv0KA1uRYMcYrQajMKU5md1xFoE2FYobaKcJfPs YeBd0rIOLk0BbIuGmMdIWV+8+EwOwmeHLQs+p3Al2v8Kw6A5nqnLe4sDkFr4/DGlpsfO Klzf2TscJs+1ARGb4Dc8l9bBa5dvlk5ely6HQbbdypTxbRFgUrl519eMqqd/fqYWWlfZ Tvlw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d1si16066653ila.19.2021.07.11.23.26.01; Sun, 11 Jul 2021 23:26:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235127AbhGLG2k (ORCPT + 99 others); Mon, 12 Jul 2021 02:28:40 -0400 Received: from rtits2.realtek.com ([211.75.126.72]:53476 "EHLO rtits2.realtek.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235377AbhGLG0v (ORCPT ); Mon, 12 Jul 2021 02:26:51 -0400 Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.73 with qID 16C6Nrt86006905, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36502.realtek.com.tw[172.21.6.25]) by rtits2.realtek.com.tw (8.15.2/2.71/5.88) with ESMTPS id 16C6Nrt86006905 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Mon, 12 Jul 2021 14:23:53 +0800 Received: from RTEXDAG01.realtek.com.tw (172.21.6.100) by RTEXH36502.realtek.com.tw (172.21.6.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Mon, 12 Jul 2021 14:23:53 +0800 Received: from RTEXMBS04.realtek.com.tw (172.21.6.97) by RTEXDAG01.realtek.com.tw (172.21.6.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Mon, 12 Jul 2021 14:23:52 +0800 Received: from RTEXMBS04.realtek.com.tw ([fe80::5bd:6f71:b434:7c91]) by RTEXMBS04.realtek.com.tw ([fe80::5bd:6f71:b434:7c91%5]) with mapi id 15.01.2106.013; Mon, 12 Jul 2021 14:23:52 +0800 From: Pkshih To: Oleksij Rempel CC: "kvalo@codeaurora.org" , "linux-wireless@vger.kernel.org" Subject: RE: [PATCH 03/24] rtw89: add core and trx files Thread-Topic: [PATCH 03/24] rtw89: add core and trx files Thread-Index: AQHXZA3LU5R+TYuZxkuDWNpxAtkG6Ks6gomAgAQ4pdA= Date: Mon, 12 Jul 2021 06:23:52 +0000 Message-ID: References: <20210618064625.14131-1-pkshih@realtek.com> <20210618064625.14131-4-pkshih@realtek.com> <20210709173223.GA2099@pengutronix.de> In-Reply-To: <20210709173223.GA2099@pengutronix.de> Accept-Language: en-US, zh-TW Content-Language: zh-TW X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.21.69.146] x-kse-serverinfo: RTEXDAG01.realtek.com.tw, 9 x-kse-attachmentfiltering-interceptor-info: no applicable attachment filtering rules found x-kse-antivirus-interceptor-info: scan successful x-kse-antivirus-info: =?utf-8?B?Q2xlYW4sIGJhc2VzOiAyMDIxLzcvMTEg5LiL5Y2IIDAxOjA3OjAw?= x-kse-bulkmessagesfiltering-scan-result: protection disabled Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-KSE-ServerInfo: RTEXH36502.realtek.com.tw, 9 X-KSE-Antivirus-Interceptor-Info: scan successful X-KSE-Antivirus-Info: =?utf-8?B?Q2xlYW4sIGJhc2VzOiAyMDIxLzcvMTIg5LiK5Y2IIDAyOjMxOjAw?= X-KSE-Attachment-Filter-Triggered-Rules: Clean X-KSE-Attachment-Filter-Triggered-Filters: Clean X-KSE-BulkMessagesFiltering-Scan-Result: protection disabled X-KSE-AntiSpam-Outbound-Interceptor-Info: scan successful X-KSE-AntiSpam-Version: 5.9.20, Database issued on: 07/12/2021 06:10:42 X-KSE-AntiSpam-Status: KAS_STATUS_NOT_DETECTED X-KSE-AntiSpam-Method: none X-KSE-AntiSpam-Rate: 0 X-KSE-AntiSpam-Info: Lua profiles 164973 [Jul 12 2021] X-KSE-AntiSpam-Info: Version: 5.9.20.0 X-KSE-AntiSpam-Info: Envelope from: pkshih@realtek.com X-KSE-AntiSpam-Info: LuaCore: 448 448 71fb1b37213ce9a885768d4012c46ac449c77b17 X-KSE-AntiSpam-Info: {Tracking_from_exist} X-KSE-AntiSpam-Info: {Tracking_uf_ne_domains} X-KSE-AntiSpam-Info: {Tracking_from_domain_doesnt_match_to} X-KSE-AntiSpam-Info: d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;realtek.com:7.1.1;127.0.0.199:7.1.2 X-KSE-AntiSpam-Info: Rate: 0 X-KSE-AntiSpam-Info: Status: not_detected X-KSE-AntiSpam-Info: Method: none X-KSE-AntiSpam-Info: Auth:dkim=none X-KSE-Antiphishing-Info: Clean X-KSE-Antiphishing-ScanningType: Heuristic X-KSE-Antiphishing-Method: None X-KSE-Antiphishing-Bases: 07/12/2021 06:13:00 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE9sZWtzaWogUmVtcGVsIFtt YWlsdG86by5yZW1wZWxAcGVuZ3V0cm9uaXguZGVdDQo+IFNlbnQ6IFNhdHVyZGF5LCBKdWx5IDEw LCAyMDIxIDE6MzIgQU0NCj4gVG86IFBrc2hpaA0KPiBDYzoga3ZhbG9AY29kZWF1cm9yYS5vcmc7 IGxpbnV4LXdpcmVsZXNzQHZnZXIua2VybmVsLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIDAz LzI0XSBydHc4OTogYWRkIGNvcmUgYW5kIHRyeCBmaWxlcw0KPiANCj4gT24gRnJpLCBKdW4gMTgs IDIwMjEgYXQgMDI6NDY6MDRQTSArMDgwMCwgUGluZy1LZSBTaGloIHdyb3RlOg0KPiA+IEltcGxl bWVudCBtYWluIGZsb3dzIHRoYXQgY29udGFpbnMgcmVnaXN0ZXIvdW5yZWdpc3RlciBtYWM4MDIx MSBodyB3aXRoDQo+ID4gaGFyZHdhcmUgY2FwYWJpbGl0eSwgcG93ZXIgb24vb2ZmIHNlcXVlbmNl LCBTVEEgc3RhdGUgYWN0aW9ucywgYW5kDQo+ID4gVFgvUlggcGF0aC4NCj4gPg0KPiA+IFRoZSBj aGlwIGluZm8gaXMgcmVhZCBmcm9tIGVmdXNlIHdoaWxlIHByb2JpbmcgUENJLCBhbmQgdGhlbiBp dCBjYW4gYmUNCj4gPiB1c2VkIHRvIGluZHVjZSBzdXBwb3J0ZWQgY2hhbm5lbCwgYmFuZCwgYml0 cmF0ZSwgaHQvdmh0L2hlIGNhcGFiaWxpdHksDQo+ID4gYW5kIGV0Yy4gVGhlbiwgd2UgcmVnaXN0 ZXIgaGFyZHdhcmUgd2l0aCB0aGVzZSBjYXBhYmlsaXRpZXMuDQo+ID4NCj4gPiBXaGVuIG5ldHdv cmsgaW50ZXJmYWNlIGlzIHVwLCBkcml2ZXIgZG9lcyBwb3dlci1vbiBzZXF1ZW5jZSB0byBlbmFi bGUgTUFDLA0KPiA+IEJCIGFuZCBSRiBmdW5jdGlvbiBibG9ja3MuIE9wcG9zaXRlbHksIGRvIHBv d2VyLW9mZiBzZXF1ZW5jZSB3aGVuDQo+ID4gaW50ZXJmYWNlIGlzIGdvaW5nIHRvIGRvd24uDQo+ ID4NCj4gPiBUbyBtYWludGFpbiBTVEEgc3RhdGUsIGZpdmUgY2FsbGJhY2tzIGFyZSBpbXBsZW1l bnRlZCAtLSBhZGQsIGFzc29jLA0KPiA+IGRpc2Fzc29jLCBkaXNjb25uZWN0IGFuZCByZW1vdmUu IEluIHdoaWNoIHN0YXRlLCBkcml2ZXIgdGVsbHMgZmlybXdhcmUgU1RBDQo+ID4gaW5mbyB2aWEg SDJDLg0KPiA+DQo+ID4gVFggZmxvdzoNCj4gPiBXaGVuIGEgU0tCIGlzIGdvaW5nIHRvIGJlIHRy YW5zbWl0dGVkLCB3ZSBtdXN0IGtub3cgaXRzIHR5cGUgZmlyc3QuIElmDQo+ID4gdGhlIHR5cGUg aXMgbWdtdCBvciBmd2NtZCBtYWRlIGJ5IGRyaXZlciwgU0tCIGlzIHF1ZXVlZCBpbnRvIGNvcnJl c3BvbmRpbmcNCj4gPiBETUEgY2hhbm5lbCBhbmQgUENJIHJpbmcuIFRoZSBvdGhlciB0eXBlIGlz IGRhdGEgZnJhbWUgdGhhdCBpcyBtb3JlDQo+ID4gY29tcGxleCwgYmVjYXVzZSBpdCBuZWVkcyB0 byBlc3RhYmxpc2ggQkEgc2Vzc2lvbiB0byBoYXZlIGJldHRlciB0aHJvdWdocHV0DQo+ID4gd2l0 aCBBTVBEVSBhbmQgQU1TRFUuDQo+ID4gSW4gb3JkZXIgdG8gaGF2ZSBiZXR0ZXIgUENJIERNQSBl ZmZpY2llbmN5LCB3ZSBkb24ndCBraWNrIG9mZiBETUEgZXZlcnkNCj4gPiBTS0IuIFdpdGggd2Fr ZSBUWCBxdWV1ZSwga2ljayBvZmYgRE1BIGFmdGVyIGEgYnVuY2ggb2YgU0tCcyBhcmUgd3JpdHRl bi4NCj4gPiBUbyBhY2hpZXZlIHRoaXMsIHdlIGhhdmUgdHdvIEhDSSBvcHMgLS0gdHhfd3JpdGUg YW5kIHR4X2tpY2tfb2ZmLg0KPiA+DQo+ID4gQkEgZXN0YWJsaXNobWVudCB3b3JrOg0KPiA+IEZv ciBkYXRhIGZyYW1lcywgd2Ugc3RhcnQgdG8gZXN0YWJsaXNoIEJBIHNlc3Npb24gaWYgdGhlIFNU QSBpcyBhc3NvY2lhdGVkDQo+ID4gd2l0aCBBUE1EVSBjYXBhYmlsaXR5IGFuZCB0aGUgVElEIHNl c3Npb24gaXNuJ3QgZXN0YWJsaXNoZWQsIGFuZCB0aGVuIHRoZQ0KPiA+IEJBIHdvcmsgaXMgdXNl ZCB0byBhc2sgbWFjODAyMTEgdG8gc3RhcnQgQU1QRFUgYWN0aW9ucy4gRHJpdmVyIGltcGxlbWVu dHMNCj4gPiBBTVBEVSBhY3Rpb24gY2FsbGJhY2tzIHRvIGtub3cgdGhlIHNlc3Npb24gaXMgZXN0 YWJsaXNoZWQsIHNvIHRoYXQgd2UgY2FuDQo+ID4gc2V0IEFHR19FTiBiaXQgaW4gVFggZGVzY3Jp cHRvciB0byBlbmFibGUgQU1QRFUuDQo+ID4NCj4gPiBSWCBmbG93Og0KPiA+IFdoZW4gYSBSWCBT S0IgaXMgZGVsaXZlcmVkIGZyb20gUENJLCBydHc4OV9jb3JlX3J4KCkgcHJvY2VzcyBpdCBkZXBu ZWRzIG9uDQo+ID4gaXRzIHR5cGUgLS0gV0lGSSwgQzJIIG9yIFBQRFUuIElmIHR5cGUgaXMgQzJI LCBpdCdzIHF1ZXVlZCBpbnRvIGEgQzJIDQo+ID4gcXVldWUsIGFuZCB3YWtlIGEgd29yayB0byBo YW5kbGUgdGhlIEMySCBwYWNrZXQuIElmIHR5cGUgaXMgV0lGSSwgaXQncyBhDQo+ID4gbm9ybWFs IFJYIHBhY2tldC4gV2hlbiBtZ210IG9yIGRhdGEgZnJhbWUgaXMgcmVjZWl2ZWQsIGl0IGlzIHF1 ZXVlZA0KPiA+IGludG8gcGVuZGluZyBSWCBTS0IgcXVldWUgdG8gd2FpdCBmb3IgY29ycmVzcG9u ZGluZyBQUERVIHBhY2tldCAoYW5vdGhlcg0KPiA+IFJYIHBhY2tldCB3aXRoIFBQRFUgdHlwZSkg dG8gZmlsbCBpdHMgcnhfc3RhdHVzLCBsaWtlIFJTU0kuIEFuZCwgdGhlbg0KPiA+IGluZGljYXRl IHRoaXMgcGFja2V0IHRvIG1hYzgwMjExLiBXaGVuIGNvbnRyb2wgZnJhbWUgaXMgcmVjZWl2ZWQs IGluZGljYXRlDQo+ID4gaXQgdG8gbWFjODAyMTEgaW1tZWRpYXRlbHkuDQo+ID4NCj4gPiBUcmFj ayB3b3JrOg0KPiA+IFVzZSB0cmFjayB3b3JrIHRvIG1vbml0b3IgUEhZIHN0YXR1cyB0byBrbm93 IHRoZSBjaGFuZ2VzIG9mIGVudmlyb25tZW50LA0KPiA+IGFuZCB0aGVuIHVwZGF0ZSBSQSBzdGF0 dXMgb3IgZG8gUkZLIGFjY29yZGluZ2x5Lg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogUGluZy1L ZSBTaGloIDxwa3NoaWhAcmVhbHRlay5jb20+DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvbmV0L3dp cmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jIHwgMjM1OSArKysrKysrKysrKysrKysNCj4gPiAg ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmggfCAzMzM2ICsrKysrKysr KysrKysrKysrKysrKw0KPiA+ICBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3R4 cnguaCB8ICAzOTMgKysrDQo+ID4gIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkv dXRpbC5jIHwgICAzNyArDQo+ID4gIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkv dXRpbC5oIHwgICAzMSArDQo+ID4gIDUgZmlsZXMgY2hhbmdlZCwgNjE1NiBpbnNlcnRpb25zKCsp DQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0 dzg5L2NvcmUuYw0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvd2lyZWxlc3Mv cmVhbHRlay9ydHc4OS9jb3JlLmgNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0 L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdHhyeC5oDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3V0aWwuYw0KPiA+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91dGlsLmgNCj4gPg0K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUu YyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jDQo+ID4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjNiZDMxZTY2OWFlYQ0KPiA+ IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0 dzg5L2NvcmUuYw0KPiA+IEBAIC0wLDAgKzEsMjM1OSBAQA0KDQpbLi4uXQ0KDQo+ID4gKw0KPiA+ ICtzdGF0aWMgZW51bSBydHc4OV9wc19tb2RlIHJ0dzg5X3VwZGF0ZV9wc19tb2RlKHN0cnVjdCBy dHc4OV9kZXYgKnJ0d2RldikNCj4gPiArew0KPiA+ICsJY29uc3Qgc3RydWN0IHJ0dzg5X2NoaXBf aW5mbyAqY2hpcCA9IHJ0d2Rldi0+Y2hpcDsNCj4gPiArDQo+ID4gKwlpZiAocnR3ODlfZGlzYWJs ZV9wc19tb2RlIHx8ICFjaGlwLT5wc19tb2RlX3N1cHBvcnRlZCkNCj4gPiArCQlyZXR1cm4gUlRX ODlfUFNfTU9ERV9OT05FOw0KPiA+ICsNCj4gPiArCWlmIChjaGlwLT5wc19tb2RlX3N1cHBvcnRl ZCAmIEJJVChSVFc4OV9QU19NT0RFX1BXUl9HQVRFRCkpDQo+ID4gKwkJcmV0dXJuIFJUVzg5X1BT X01PREVfUFdSX0dBVEVEOw0KPiANCj4gQ3VycmVudCBkcml2ZXIgc3VwcG9ydCBvbmx5IG9uZSBj aGlwIHdpdGggUlRXODlfUFNfTU9ERV9QV1JfR0FURUQsDQo+IFJUVzg5X1BTX01PREVfQ0xLX0dB VEVEIGFuZCBSVFc4OV9QU19NT0RFX1JGT0ZGLg0KPiANCj4gQWNjb3JkaW5nIHRvIHRoaXMgY29k ZSwgb25seSBSVFc4OV9QU19NT0RFX1BXUl9HQVRFRCB3aWxsIHJldHVybi4gUGxlYXNlDQo+IHJl bW92ZSBhbGwgb3RoZXIgbW9kZXMgdG8gcmVkdWNlIHJldmlldyBvdmVyaGVhZC4NCj4gDQoNClRo ZXkgYXJlIG5vdCBvbmx5IGxpc3Qgb2YgbW9kZXMsIGJ1dCBhbHNvIHRoZSBwcmlvcml0eS4gU28s IEknZCBsaWtlIHRvDQpwcmVzZXJ2ZSB0aGUgY29kZSB0byBjaGFuZ2UgdGhlIHByaW9yaXR5IGVh c2llci4gQW5kLCBJIHRoaW5rIHRoZSBsb2dpYw0KaXMgdmVyeSBlYXN5IHRoYXQgdGhlcmUncyBu byB0b28gbXVjaCBvdmVyaGVhZC4NCg0KWy4uLl0NCg0KPiA+ICsNCj4gPiAraW50IHJ0dzg5X2Nv cmVfcG93ZXJfb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KQ0KPiA+ICt7DQo+ID4gKwlpbnQg cmV0Ow0KPiA+ICsNCj4gPiArCXJldCA9IHJ0dzg5X21hY19wd3Jfb24ocnR3ZGV2KTsNCj4gPiAr CWlmIChyZXQpIHsNCj4gPiArCQlydHc4OV9lcnIocnR3ZGV2LCAiZmFpbGVkIHRvIHN0YXJ0IHBv d2VyIHNlcXVlbmNlXG4iKTsNCj4gPiArCQlnb3RvIGVycjsNCj4gPiArCX0NCj4gPiArDQo+ID4g KwlyZXR1cm4gMDsNCj4gPiArDQo+ID4gK2VycjoNCj4gPiArCXJldHVybiByZXQ7DQo+ID4gK30N Cj4gDQo+IHJ0dzg5X2NvcmVfcG93ZXJfb24oKSBpcyBub3QgdXNlZC4gcGxlYXNlIHJlbW90ZSBp dCB0byBhdm9pZCByZXZpZXcNCj4gb3ZlcmhlYWQuDQo+IA0KDQpSZW1vdmVkLg0KDQo+ID4gK3U4 IHJ0dzg5X2NvcmVfYWNxdWlyZV9iaXRfbWFwKHVuc2lnbmVkIGxvbmcgKmFkZHIsIHVuc2lnbmVk IGxvbmcgc2l6ZSkNCj4gPiArew0KPiA+ICsJdW5zaWduZWQgbG9uZyBiaXQ7DQo+ID4gKw0KPiA+ ICsJYml0ID0gZmluZF9maXJzdF96ZXJvX2JpdChhZGRyLCBzaXplKTsNCj4gPiArCWlmIChiaXQg PCBzaXplKQ0KPiA+ICsJCXNldF9iaXQoYml0LCBhZGRyKTsNCj4gPiArDQo+ID4gKwlyZXR1cm4g Yml0Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lkIHJ0dzg5X2NvcmVfcmVsZWFzZV9iaXRfbWFw KHVuc2lnbmVkIGxvbmcgKmFkZHIsIHU4IGJpdCkNCj4gPiArew0KPiA+ICsJY2xlYXJfYml0KGJp dCwgYWRkcik7DQo+ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQgcnR3ODlfY29yZV9yZWxlYXNlX2Fs bF9iaXRzX21hcCh1bnNpZ25lZCBsb25nICphZGRyLCB1bnNpZ25lZCBpbnQgbmJpdHMpDQo+ID4g K3sNCj4gPiArCWJpdG1hcF96ZXJvKGFkZHIsIG5iaXRzKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAr I2RlZmluZSBSVFc4OV9UWVBFX01BUFBJTkcoX3R5cGUpCVwNCj4gPiArCWNhc2UgTkw4MDIxMV9J RlRZUEVfICMjIF90eXBlOglcDQo+ID4gKwkJcnR3dmlmLT53aWZpX3JvbGUgPSBSVFc4OV9XSUZJ X1JPTEVfICMjIF90eXBlOwlcDQo+ID4gKwkJYnJlYWsNCj4gPiArdm9pZCBydHc4OV92aWZfdHlw ZV9tYXBwaW5nKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIGJvb2wgYXNzb2MpDQo+ID4gK3sN Cj4gPiArCXN0cnVjdCBydHc4OV92aWYgKnJ0d3ZpZiA9IChzdHJ1Y3QgcnR3ODlfdmlmICopdmlm LT5kcnZfcHJpdjsNCj4gPiArDQo+ID4gKwlzd2l0Y2ggKHZpZi0+dHlwZSkgew0KPiA+ICsJUlRX ODlfVFlQRV9NQVBQSU5HKEFESE9DKTsNCj4gPiArCVJUVzg5X1RZUEVfTUFQUElORyhTVEFUSU9O KTsNCj4gPiArCVJUVzg5X1RZUEVfTUFQUElORyhBUCk7DQo+ID4gKwlSVFc4OV9UWVBFX01BUFBJ TkcoQVBfVkxBTik7DQo+ID4gKwlSVFc4OV9UWVBFX01BUFBJTkcoTU9OSVRPUik7DQo+ID4gKwlS VFc4OV9UWVBFX01BUFBJTkcoTUVTSF9QT0lOVCk7DQo+ID4gKwlSVFc4OV9UWVBFX01BUFBJTkco UDJQX0NMSUVOVCk7DQo+ID4gKwlSVFc4OV9UWVBFX01BUFBJTkcoUDJQX0dPKTsNCj4gPiArCVJU Vzg5X1RZUEVfTUFQUElORyhQMlBfREVWSUNFKTsNCj4gPiArCVJUVzg5X1RZUEVfTUFQUElORyhO QU4pOw0KPiA+ICsJZGVmYXVsdDoNCj4gPiArCQlXQVJOX09OKDEpOw0KPiA+ICsJCWJyZWFrOw0K PiA+ICsJfQ0KPiANCj4gVGhpcyBzd2l0Y2ggc3RhdGVtZW50IG1ha2VzIG5vIHNlbnNlLiBPbmx5 IE5MODAyMTFfSUZUWVBFX0FQLA0KPiBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5ULCBOTDgwMjEx X0lGVFlQRV9BREhPQyBhbmQNCj4gTkw4MDIxMV9JRlRZUEVfU1RBVElPTiBhcmUgc3VwcG9ydGVk LiBQbGVhc2UgcmVtb3ZlIHRoaXMgbWFwcGluZw0KPiBvcGVuIGNvZGUgcnR3dmlmLT53aWZpX3Jv bGUgaW4gdGhlIGZvbGxvd2luZyBzd2l0Y2gNCj4gDQoNClJlbW92ZWQuDQoNCj4gPiArCXN3aXRj aCAodmlmLT50eXBlKSB7DQo+ID4gKwljYXNlIE5MODAyMTFfSUZUWVBFX0FQOg0KPiA+ICsJY2Fz ZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOg0KPiA+ICsJCXJ0d3ZpZi0+bmV0X3R5cGUgPSBS VFc4OV9ORVRfVFlQRV9BUF9NT0RFOw0KPiA+ICsJCXJ0d3ZpZi0+c2VsZl9yb2xlID0gUlRXODlf U0VMRl9ST0xFX0FQOw0KPiA+ICsJCWJyZWFrOw0KPiA+ICsJY2FzZSBOTDgwMjExX0lGVFlQRV9B REhPQzoNCj4gPiArCQlydHd2aWYtPm5ldF90eXBlID0gUlRXODlfTkVUX1RZUEVfQURfSE9DOw0K PiANCj4gUGxlYXNlIHNldCBydHd2aWYtPnNlbGZfcm9sZSBoZXJlLCB0byBtYWtlIGl0IGVhc3kg dG8gcmVhZC4NCj4gDQoNCldpbGwgYWRkIGl0Lg0KDQpbLi4uXQ0KDQoNCg==