From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A071FC4338F for ; Fri, 30 Jul 2021 03:29:15 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5AD6F60FD7 for ; Fri, 30 Jul 2021 03:29:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 5AD6F60FD7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:CC:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=KhXWR2vzrZpSAYrTkRkyoYGntMj90TZ425C3uDj4tLg=; b=BWRt2+c3mO7lHu wcv+hypX7t9cTSg6Esya+AboQvzmmF9YLqJxihIDHg5Jj4yS4gSZq4d3Y/vtZNmKLjWW12hG/hoY2 kLnbaWRxuhNeYEH2fZOstBTm+WzOynfFFbdLVuTX65Wi81fvofCmYYKOdzjynaECjM4k0DGvJgUUj wmtVVXT3dZITfS7uZDeYbWIH1691xYIdseZzV+VlQRMRIJRTfLF1SnQZopFaymBWPqbGdmKJFBn+E iMQPiNi8C7mW5aFMHbwUm6w/0StshcvC6kpUPtOrZ4wYCRuMbBKSaH6ib9ydz3Qmy3yKN44giO/sR vJzN8rNUGGFir1DRFaGA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m9JCn-006wdI-Pp; Fri, 30 Jul 2021 03:29:01 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m9JCi-006wcB-5P; Fri, 30 Jul 2021 03:29:00 +0000 X-UUID: 9a27a8d56afd4636927802a53313e3e4-20210729 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=UnhIhxZN7HHdsJfSIOffPOiFQcGZN9qL87KYtRrQv5M=; b=a+BdLI9mN5dwB9INEawmH2tzDkBIWJvdAfMOkA6gJvycnChbqEpnN73PBwI/je5x5NcrsENQBCVu+F7GxYAxFQe89+Q0xFoQp5JXbIaMlwTsSA0xTWFOcBQOXuL5dg9H+V7SyBQz0e8JOV00smErmhbYC4QBgvuEiON2VLBNJhc=; X-UUID: 9a27a8d56afd4636927802a53313e3e4-20210729 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 898360932; Thu, 29 Jul 2021 20:28:55 -0700 Received: from mtkmbs05n2.mediatek.inc (172.21.101.140) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 29 Jul 2021 20:28:53 -0700 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs05n2.mediatek.inc (172.21.101.140) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 30 Jul 2021 11:28:51 +0800 Received: from mtksdccf07 (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 30 Jul 2021 11:28:51 +0800 Message-ID: <9e01bea8c7f0ba396789d0b06580e65113081f47.camel@mediatek.com> Subject: Re: [PATCH 13/14] drm/mediatek: add pseudo ovl support for MT8195 From: Nancy.Lin To: Chun-Kuang Hu CC: CK Hu , Philipp Zabel , "David Airlie" , Daniel Vetter , Rob Herring , Matthias Brugger , "jason-jh . lin" , Yongqiang Niu , DRI Development , "moderated list:ARM/Mediatek SoC support" , DTML , linux-kernel , Linux ARM , , srv_heupstream Date: Fri, 30 Jul 2021 11:28:51 +0800 In-Reply-To: References: <20210722094551.15255-1-nancy.lin@mediatek.com> <20210722094551.15255-13-nancy.lin@mediatek.com> X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210729_202856_326642_74D3FDC0 X-CRM114-Status: GOOD ( 35.14 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org SGkgQ2h1bi1LdWFuZywNCg0KVGhhbmtzIGZvciB5b3VyIHJldmlldy4NCg0KT24gU3VuLCAyMDIx LTA3LTI1IGF0IDA5OjU3ICswODAwLCBDaHVuLUt1YW5nIEh1IHdyb3RlOg0KPiAgSGksIE5hbmN5 Og0KPiANCj4gTmFuY3kuTGluIDxuYW5jeS5saW5AbWVkaWF0ZWsuY29tPiDmlrwgMjAyMeW5tDfm nIgyMuaXpSDpgLHlm5sg5LiL5Y2INTo0NuWvq+mBk++8mg0KPiA+IA0KPiA+IEFkZCBwc2V1ZG8g b3ZsIG1vZHVsZSBmaWxlczoNCj4gDQo+IE15IEVuZ2xpc2ggaXMgbm90IGdvb2QuIFRoZSB3b3Jk ICdwc2V1ZG8nIHNlZW1zIGxpa2UgJ2xvb2tzIGxpa2UgYnV0DQo+IGluZGVlZCBub3QgdGhlIHNh bWUnLg0KPiBJIHRoaW5rIHRoZSAncmVhbCcgb3ZsIGFsc28gaGFzIHJkbWEgYW5kIG1peGVyIGlu c2lkZSBpdCwgc28gSSBwcmVmZXINCj4gdG8gdHJlYXQgdGhlc2UgdHdvIG92bCBhcyBkaWZmZXJl bnQga2luZCBvZiBvdmwsIG5vdCBhIHJlYWwgb25lIGFuZCBhDQo+IHBzZXVkbyBvbmUuDQo+IERv ZXMgSSBtaXN1bmRlcnN0YW5kaW5nIHRoZSB3b3JkICdwc2V1ZG8nPw0KPiANCkkgd2FzIHRoaW5r aW5nIG9mIGVuY2Fwc3VsYXRpbmcgc2V2ZXJhbCBlbmdpbmVzIGluIHRoaXMgY29tcG9uZW50LiBU aGUNCnByZWZpeCAicHNldWRvIiB3YXMgbWVhbnQgdG8gZGlzdGluZ3Vpc2ggd2l0aCB0aGUgb3Jp Z2luIG92bC4gSSB3aWxsDQpjaGFuZ2UgcHNldWRvX292bCB0byBvdmxfYWRhcHRvci4NCg0KDQo+ ID4gUHNldWRvIG92bCBpcyBhbiBlbmNhcHN1bGF0ZWQgbW9kdWxlIGFuZCBkZXNpZ25lZCBmb3Ig c2ltcGxpZmllZA0KPiA+IERSTSBjb250cm9sIGZsb3cuIFRoaXMgbW9kdWxlIGlzIGNvbXBvc2Vk IG9mIDggUkRNQXMsIDQgTUVSR0VzIGFuZA0KPiA+IGFuIEVUSERSLiBUd28gUkRNQXMgbWVyZ2Ug aW50byBvbmUgbGF5ZXIsIHNvIHRoaXMgbW9kdWxlIHN1cHBvcnQgNA0KPiA+IGxheWVycy4NCj4g PiANCj4gPiBTaWduZWQtb2ZmLWJ5OiBOYW5jeS5MaW4gPG5hbmN5LmxpbkBtZWRpYXRlay5jb20+ DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZSAgICAgICAg ICAgICB8ICAgNCArLQ0KPiA+ICAuLi4vZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9wc2V1ZG9f b3ZsLmMgICAgfCA1OTMNCj4gPiArKysrKysrKysrKysrKysrKysNCj4gPiAgLi4uL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2Rpc3BfcHNldWRvX292bC5oICAgIHwgIDIzICsNCj4gPiAgZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19tZHBfcmRtYS5jICAgICAgIHwgNDU2ICsrKysrKysrKysrKysr DQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JkbWEuaCAgICAgICB8IDEw OSArKysrDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JlZ19yZG1hLmgg ICB8IDE2MCArKysrKw0KPiANCj4gU2VwZXJhdGUgbXRrX2RtcF9yZG1hIGRyaXZlciB0byBhbiBp bmRlcGVuZGVudCBwYXRjaC4NCj4gDQpPSywgSSB3aWxsIHNlcGFyYXRlIGl0Lg0KDQo+ID4gIDYg ZmlsZXMgY2hhbmdlZCwgMTM0NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfcHNldWRv X292bC5jDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2Rpc3BfcHNldWRvX292bC5oDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX21kcF9yZG1hLmMNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JkbWEuaA0KPiA+ICBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmVnX3JkbWEuaA0KPiA+IA0K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUNCj4gPiBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZQ0KPiA+IGluZGV4IDI3Yzg5ODQ3ZDQz Yi4uMzE2MTM1NjRmNDk5IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9NYWtlZmlsZQ0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZQ0K PiA+IEBAIC0xMyw3ICsxMyw5IEBAIG1lZGlhdGVrLWRybS15IDo9IG10a19kaXNwX2Njb3JyLm8g XA0KPiA+ICAgICAgICAgICAgICAgICAgIG10a19kcm1fZ2VtLm8gXA0KPiA+ICAgICAgICAgICAg ICAgICAgIG10a19kcm1fcGxhbmUubyBcDQo+ID4gICAgICAgICAgICAgICAgICAgbXRrX2RzaS5v IFwNCj4gPiAtICAgICAgICAgICAgICAgICBtdGtfZHBpLm8NCj4gPiArICAgICAgICAgICAgICAg ICBtdGtfZHBpLm8gXA0KPiA+ICsgICAgICAgICAgICAgICAgIG10a19kaXNwX3BzZXVkb19vdmwu byBcDQo+ID4gKyAgICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hLm8NCj4gPiANCj4gPiAgb2Jq LSQoQ09ORklHX0RSTV9NRURJQVRFSykgKz0gbWVkaWF0ZWstZHJtLm8NCj4gPiANCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX3BzZXVkb19vdmwuYw0K PiA+IGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX3BzZXVkb19vdmwuYw0KPiA+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi4wNDQ2ZmE5OWRk MGENCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kaXNwX3BzZXVkb19vdmwuYw0KPiA+IEBAIC0wLDAgKzEsNTkzIEBADQo+ID4gKy8vIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkNCj4gPiArLyoNCj4gPiArICogQ29w eXJpZ2h0IChjKSAyMDIxIE1lZGlhVGVrIEluYy4NCj4gPiArICovDQo+ID4gKw0KPiA+ICsjaW5j bHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L2Nsay5oPg0KPiA+ ICsjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVu dC5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+DQo+ID4gKyNpbmNsdWRlIDxs aW51eC9vZl9hZGRyZXNzLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2Uu aD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4NCj4gPiArI2luY2x1ZGUgPGxp bnV4L3NvYy9tZWRpYXRlay9tdGstbW1zeXMuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3NvYy9t ZWRpYXRlay9tdGstY21kcS5oPg0KPiA+ICsNCj4gPiArI2luY2x1ZGUgIm10a19kcm1fZHJ2Lmgi DQo+ID4gKyNpbmNsdWRlICJtdGtfZHJtX2NydGMuaCINCj4gPiArI2luY2x1ZGUgIm10a19kcm1f ZGRwX2NvbXAuaCINCj4gPiArI2luY2x1ZGUgIm10a19tZHBfcmRtYS5oIg0KPiA+ICsjaW5jbHVk ZSAibXRrX2Rpc3BfcHNldWRvX292bC5oIg0KPiA+ICsNCj4gPiArI2RlZmluZSBESVNQX01FUkdF X0VOQUJMRSAgICAgIDB4MA0KPiA+ICsgICAgICAgI2RlZmluZSBNRVJHRV9FTkFCTEUgQklUKDAp DQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfMCAgICAgICAweDEwDQo+ID4gKyNkZWZpbmUg RElTUF9NRVJHRV9DRkdfMSAgICAgICAweDE0DQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdf NCAgICAgICAweDIwDQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfNSAgICAgICAweDI0DQo+ ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfMTAgICAgICAweDM4DQo+ID4gKyAgICAgICAjZGVm aW5lIENGR18xMF9OT19TV0FQIDANCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18xMiAgICAg IDB4NDANCj4gPiArICAgICAgICNkZWZpbmUgQ0ZHMTJfMTBfMTBfMVBJXzJQT19CVUZfTU9ERSA2 DQo+ID4gKyAgICAgICAjZGVmaW5lIENGRzEyXzExXzEwXzFQSV8yUE9fTUVSR0UgMTgNCj4gPiAr I2RlZmluZSBESVNQX01FUkdFX0NGR18yNCAgICAgIDB4NzANCj4gPiArI2RlZmluZSBESVNQX01F UkdFX0NGR18yNSAgICAgIDB4NzQNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18yNiAgICAg IDB4NzgNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18yNyAgICAgIDB4N2MNCj4gPiArI2Rl ZmluZSBESVNQX01FUkdFX01VVEVfMCAgICAgIDB4ZjAwDQo+ID4gKw0KPiA+ICsjZGVmaW5lIE1U S19QU0VVRE9fT1ZMX1NJTkdMRV9QSVBFX01BWF9XSURUSCAxOTIwDQo+IA0KPiBXaGljaCBoYXJk d2FyZSBoYXMgdGhpcyBsaW1pdGF0aW9uPyBJIHdvdWxkIGxpa2UgdGhpcyBuYW1pbmcgdG8NCj4g cmVmbGVjdCB3aGljaCBoYXJkd2FyZSBoYXMgdGhpcyBsaW1pdGF0aW9uLg0KPiANClJETUEgaGFz IHRoZSBsaW1pdGF0aW9uLCBJIHdpbGwgbW9kaWZ5IGl0cyBuYW1pbmcuDQoNCj4gPiArDQo+ID4g K2VudW0gbXRrX3BzZXVkb19vdmxfY29tcF90eXBlIHsNCj4gPiArICAgICAgIFBTRVVET19PVkxf VFlQRV9SRE1BID0gMCwNCj4gPiArICAgICAgIFBTRVVET19PVkxfVFlQRV9NRVJHRSwNCj4gPiAr ICAgICAgIFBTRVVET19PVkxfVFlQRV9OVU0sDQo+ID4gK307DQo+ID4gKw0KPiA+ICtlbnVtIG10 a19wc2V1ZG9fb3ZsX2NvbXBfaWQgew0KPiA+ICsgICAgICAgUFNFVURPX09WTF9SRE1BX0JBU0Ug PSAwLA0KPiA+ICsgICAgICAgUFNFVURPX09WTF9NRFBfUkRNQTAgPSBQU0VVRE9fT1ZMX1JETUFf QkFTRSwNCj4gDQo+IEkgdGhpbmsgeW91IGNvdWxkIGRpcmVjdGx5IHVzZSBQU0VVRE9fT1ZMX01E UF9SRE1BMCBhbmQgcmVtb3ZlDQo+IFBTRVVET19PVkxfUkRNQV9CQVNFLg0KPiANCk9LLCBJIHdp bGwgcmVtb3ZlIGl0Lg0KDQo+ID4gKyAgICAgICBQU0VVRE9fT1ZMX01EUF9SRE1BMSwNCj4gPiAr ICAgICAgIFBTRVVET19PVkxfTURQX1JETUEyLA0KPiA+ICsgICAgICAgUFNFVURPX09WTF9NRFBf UkRNQTMsDQo+ID4gKyAgICAgICBQU0VVRE9fT1ZMX01EUF9SRE1BNCwNCj4gPiArICAgICAgIFBT RVVET19PVkxfTURQX1JETUE1LA0KPiA+ICsgICAgICAgUFNFVURPX09WTF9NRFBfUkRNQTYsDQo+ ID4gKyAgICAgICBQU0VVRE9fT1ZMX01EUF9SRE1BNywNCj4gPiArICAgICAgIFBTRVVET19PVkxf TUVSR0VfQkFTRSwNCj4gPiArICAgICAgIFBTRVVET19PVkxfTUVSR0UwID0gUFNFVURPX09WTF9N RVJHRV9CQVNFLA0KPiANCj4gRGl0dG8uDQoNCk9LLCBJIHdpbGwgcmVtb3ZlIGl0Lg0KPiANCj4g PiArICAgICAgIFBTRVVET19PVkxfTUVSR0UxLA0KPiA+ICsgICAgICAgUFNFVURPX09WTF9NRVJH RTIsDQo+ID4gKyAgICAgICBQU0VVRE9fT1ZMX01FUkdFMywNCj4gPiArICAgICAgIFBTRVVET19P VkxfSURfTUFYDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgcHNldWRvX292bF9kYXRhIHsN Cj4gPiArICAgICAgIHVuc2lnbmVkIGludCBsYXllcl9ucjsNCj4gPiArICAgICAgIHN0cnVjdCBt dGtfbWRwX3JkbWFfZmlmbyBmaWZvOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RydWN0IHBzZXVk b19vdmxfY29tcF9tYXRjaCB7DQo+ID4gKyAgICAgICBlbnVtIG10a19wc2V1ZG9fb3ZsX2NvbXBf dHlwZSB0eXBlOw0KPiA+ICsgICAgICAgaW50IGFsaWFzX2lkOw0KPiA+ICt9Ow0KPiA+ICsNCj4g PiArc3RydWN0IHBzZXVkb19vdmxfbWVyZ2VfY29uZmlnIHsNCj4gPiArICAgICAgIHVuc2lnbmVk IGludCBmbXQ7DQo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgbWVyZ2VfbW9kZTsNCj4gPiArICAg ICAgIHVuc2lnbmVkIGludCBpbl93WzJdOw0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IG91dF93 WzJdOw0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IGluX2g7DQo+ID4gK307DQo+ID4gKw0KPiA+ ICtzdHJ1Y3QgbXRrX3BzZXVkb19vdmxfY29tcCB7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZGV2aWNl ICpkZXY7DQo+ID4gKyAgICAgICBzdHJ1Y3QgY2xrICpjbGtzWzJdOw0KPiA+ICsgICAgICAgc3Ry dWN0IGNtZHFfY2xpZW50X3JlZyBjbWRxX2Jhc2U7DQo+ID4gKyAgICAgICB2b2lkIF9faW9tZW0g KnJlZ3M7DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgbXRrX2Rpc3BfcHNldWRvX292bCB7 DQo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX3BzZXVkb19vdmxfY29tcA0KPiA+IHBzZXVkb19vdmxf Y29tcFtQU0VVRE9fT1ZMX0lEX01BWF07DQo+ID4gKyAgICAgICBjb25zdCBzdHJ1Y3QgcHNldWRv X292bF9kYXRhICpkYXRhOw0KPiA+ICsgICAgICAgc3RydWN0IGRldmljZSAqbW1zeXNfZGV2Ow0K PiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwc2V1ZG9fb3Zs X2NvbXBfc3RyW10gPSB7DQo+ID4gKyAgICAgICAiUFNFVURPX09WTF9NRFBfUkRNQTAiLA0KPiA+ ICsgICAgICAgIlBTRVVET19PVkxfTURQX1JETUExIiwNCj4gPiArICAgICAgICJQU0VVRE9fT1ZM X01EUF9SRE1BMiIsDQo+ID4gKyAgICAgICAiUFNFVURPX09WTF9NRFBfUkRNQTMiLA0KPiA+ICsg ICAgICAgIlBTRVVET19PVkxfTURQX1JETUE0IiwNCj4gPiArICAgICAgICJQU0VVRE9fT1ZMX01E UF9SRE1BNSIsDQo+ID4gKyAgICAgICAiUFNFVURPX09WTF9NRFBfUkRNQTYiLA0KPiA+ICsgICAg ICAgIlBTRVVET19PVkxfTURQX1JETUE3IiwNCj4gPiArICAgICAgICJQU0VVRE9fT1ZMX01FUkdF MCIsDQo+ID4gKyAgICAgICAiUFNFVURPX09WTF9NRVJHRTEiLA0KPiA+ICsgICAgICAgIlBTRVVE T19PVkxfTUVSR0UyIiwNCj4gPiArICAgICAgICJQU0VVRE9fT1ZMX01FUkdFMyIsDQo+ID4gKyAg ICAgICAiUFNFVURPX09WTF9JRF9NQVgiDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29u c3QgY2hhciAqIGNvbnN0IHByaXZhdGVfY29tcF9zdGVtW1BTRVVET19PVkxfVFlQRV9OVU1dID0N Cj4gPiB7DQo+ID4gKyAgICAgICBbUFNFVURPX09WTF9UWVBFX1JETUFdID0gInZkbzFfcmRtYSIs DQo+ID4gKyAgICAgICBbUFNFVURPX09WTF9UWVBFX01FUkdFXSA9ICJtZXJnZSIsDQo+ID4gK307 DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHBzZXVkb19vdmxfY29tcF9tYXRjaA0K PiA+IGNvbXBfbWF0Y2hlc1tQU0VVRE9fT1ZMX0lEX01BWF0gPSB7DQo+ID4gKyAgICAgICBbUFNF VURPX09WTF9NRFBfUkRNQTBdID0gICAgICAgIHsgUFNFVURPX09WTF9UWVBFX1JETUEsIDANCj4g PiB9LA0KPiA+ICsgICAgICAgW1BTRVVET19PVkxfTURQX1JETUExXSA9ICAgICAgICB7IFBTRVVE T19PVkxfVFlQRV9SRE1BLCAxDQo+ID4gfSwNCj4gPiArICAgICAgIFtQU0VVRE9fT1ZMX01EUF9S RE1BMl0gPSAgICAgICAgeyBQU0VVRE9fT1ZMX1RZUEVfUkRNQSwgMg0KPiA+IH0sDQo+ID4gKyAg ICAgICBbUFNFVURPX09WTF9NRFBfUkRNQTNdID0gICAgICAgIHsgUFNFVURPX09WTF9UWVBFX1JE TUEsIDMNCj4gPiB9LA0KPiA+ICsgICAgICAgW1BTRVVET19PVkxfTURQX1JETUE0XSA9ICAgICAg ICB7IFBTRVVET19PVkxfVFlQRV9SRE1BLCA0DQo+ID4gfSwNCj4gPiArICAgICAgIFtQU0VVRE9f T1ZMX01EUF9SRE1BNV0gPSAgICAgICAgeyBQU0VVRE9fT1ZMX1RZUEVfUkRNQSwgNQ0KPiA+IH0s DQo+ID4gKyAgICAgICBbUFNFVURPX09WTF9NRFBfUkRNQTZdID0gICAgICAgIHsgUFNFVURPX09W TF9UWVBFX1JETUEsIDYNCj4gPiB9LA0KPiA+ICsgICAgICAgW1BTRVVET19PVkxfTURQX1JETUE3 XSA9ICAgICAgICB7IFBTRVVET19PVkxfVFlQRV9SRE1BLCA3DQo+ID4gfSwNCj4gPiArICAgICAg IFtQU0VVRE9fT1ZMX01FUkdFMF0gPSAgIHsgUFNFVURPX09WTF9UWVBFX01FUkdFLCAxIH0sDQo+ ID4gKyAgICAgICBbUFNFVURPX09WTF9NRVJHRTFdID0gICB7IFBTRVVET19PVkxfVFlQRV9NRVJH RSwgMiB9LA0KPiA+ICsgICAgICAgW1BTRVVET19PVkxfTUVSR0UyXSA9ICAgeyBQU0VVRE9fT1ZM X1RZUEVfTUVSR0UsIDMgfSwNCj4gPiArICAgICAgIFtQU0VVRE9fT1ZMX01FUkdFM10gPSAgIHsg UFNFVURPX09WTF9UWVBFX01FUkdFLCA0IH0sDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMg aW50IG10a19wc2V1ZG9fb3ZsX2ZpZm9fc2V0dGluZyhzdHJ1Y3QgbXRrX2Rpc3BfcHNldWRvX292 bA0KPiA+ICpwc2V1ZG9fb3ZsLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBjbWRxX3BrdCAqaGFuZGxlKQ0KPiA+ICt7DQo+ID4gKyAgICAgICBzdHJ1 Y3QgbXRrX3BzZXVkb19vdmxfY29tcCAqcmRtYSA9IE5VTEw7DQo+ID4gKyAgICAgICBjb25zdCBz dHJ1Y3QgcHNldWRvX292bF9kYXRhICpkYXRhID0gcHNldWRvX292bC0+ZGF0YTsNCj4gPiArICAg ICAgIGNvbnN0IHN0cnVjdCBtdGtfbWRwX3JkbWFfZmlmbyAqZmlmbyA9ICZkYXRhLT5maWZvOw0K PiA+ICsgICAgICAgaW50IGk7DQo+ID4gKw0KPiA+ICsgICAgICAgZm9yIChpID0gUFNFVURPX09W TF9NRFBfUkRNQTA7IGkgPD0gUFNFVURPX09WTF9NRFBfUkRNQTc7DQo+ID4gaSsrKSB7DQo+ID4g KyAgICAgICAgICAgICAgIHJkbWEgPSAmcHNldWRvX292bC0NCj4gPiA+cHNldWRvX292bF9jb21w W1BTRVVET19PVkxfUkRNQV9CQVNFICsgaV07DQo+ID4gKyAgICAgICAgICAgICAgIG10a19tZHBf cmRtYV9maWZvX2NvbmZpZyhyZG1hLT5yZWdzLCBoYW5kbGUsICZyZG1hLQ0KPiA+ID5jbWRxX2Jh c2UsIGZpZm8pOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIHJldHVybiAwOw0K PiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBtdGtfcHNldWRvX292bF9tZXJnZV9jb25m aWcoc3RydWN0IG10a19wc2V1ZG9fb3ZsX2NvbXANCj4gPiAqY29tcCwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0DQo+ID4gcHNldWRvX292bF9tZXJn ZV9jb25maWcgKm1lcmdlX2NmZywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCj4gPiArew0KPiA+ICsgICAgICAg c3dpdGNoIChtZXJnZV9jZmctPm1lcmdlX21vZGUpIHsNCj4gPiArICAgICAgIGNhc2UgNjoNCj4g PiArICAgICAgICAgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgKG1lcmdlX2NmZy0+aW5f aCA8PCAxNiB8DQo+ID4gbWVyZ2VfY2ZnLT5pbl93WzBdKSwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdzLA0KPiA+IERJU1BfTUVS R0VfQ0ZHXzApOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAo bWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPm91dF93WzBdKSwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdz LA0KPiA+IERJU1BfTUVSR0VfQ0ZHXzQpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dy aXRlKGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPmlu X3dbMF0pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wLT5jbWRxX2Jh c2UsIGNvbXAtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9DRkdfMjQpOw0KPiA+ICsgICAgICAgICAg ICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4g PiBtZXJnZV9jZmctPmluX3dbMF0pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9DRkdfMjUpOw0K PiA+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgIGNhc2UgMTg6DQo+ID4gKyAg ICAgICAgICAgICAgIG10a19kZHBfd3JpdGUoY21kcV9wa3QsIChtZXJnZV9jZmctPmluX2ggPDwg MTYgfA0KPiA+IG1lcmdlX2NmZy0+aW5fd1swXSksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmNvbXAtPmNtZHFfYmFzZSwgY29tcC0+cmVncywNCj4gPiBESVNQX01FUkdFX0NG R18wKTsNCj4gPiArICAgICAgICAgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgKG1lcmdl X2NmZy0+aW5faCA8PCAxNiB8DQo+ID4gbWVyZ2VfY2ZnLT5pbl93WzFdKSwNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdzLA0KPiA+ IERJU1BfTUVSR0VfQ0ZHXzEpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNt ZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPm91dF93WzBd KSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBj b21wLT5yZWdzLA0KPiA+IERJU1BfTUVSR0VfQ0ZHXzQpOw0KPiA+ICsgICAgICAgICAgICAgICBt dGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJn ZV9jZmctPmluX3dbMF0pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb21w LT5jbWRxX2Jhc2UsIGNvbXAtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9DRkdfMjQpOw0KPiA+ICsg ICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8 IDE2IHwNCj4gPiBtZXJnZV9jZmctPmluX3dbMV0pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9D RkdfMjUpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVy Z2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPmluX3dbMF0pLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtPnJlZ3MsDQo+ ID4gRElTUF9NRVJHRV9DRkdfMjYpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRl KGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPmluX3db MV0pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wLT5jbWRxX2Jhc2Us IGNvbXAtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9DRkdfMjcpOw0KPiA+ICsgICAgICAgICAgICAg ICBicmVhazsNCj4gPiArICAgICAgIGRlZmF1bHQ6DQo+ID4gKyAgICAgICAgICAgICAgIG10a19k ZHBfd3JpdGUoY21kcV9wa3QsIChtZXJnZV9jZmctPmluX2ggPDwgMTYgfA0KPiA+IG1lcmdlX2Nm Zy0+aW5fd1swXSksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbXAtPmNt ZHFfYmFzZSwgY29tcC0+cmVncywNCj4gPiBESVNQX01FUkdFX0NGR18wKTsNCj4gPiArICAgICAg ICAgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgKG1lcmdlX2NmZy0+aW5faCA8PCAxNiB8 DQo+ID4gbWVyZ2VfY2ZnLT5pbl93WzFdKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdzLA0KPiA+IERJU1BfTUVSR0VfQ0ZHXzEp Ow0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVyZ2VfY2Zn LT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPm91dF93WzBdKSwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdzLA0KPiA+IERJ U1BfTUVSR0VfQ0ZHXzQpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFf cGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPm91dF93WzFdKSwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21w LT5yZWdzLA0KPiA+IERJU1BfTUVSR0VfQ0ZHXzUpOw0KPiA+ICsgICAgICAgICAgICAgICBicmVh azsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFf cGt0LCBtZXJnZV9jZmctPm1lcmdlX21vZGUsICZjb21wLQ0KPiA+ID5jbWRxX2Jhc2UsDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgIGNvbXAtPnJlZ3MsIERJU1BfTUVSR0VfQ0ZHXzEyKTsNCj4g PiArICAgICAgIG10a19kZHBfd3JpdGUoY21kcV9wa3QsIENGR18xMF9OT19TV0FQLCAmY29tcC0+ Y21kcV9iYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICBjb21wLT5yZWdzLCBESVNQX01F UkdFX0NGR18xMCk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIDEs ICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtDQo+ID4gPnJlZ3MsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgRElTUF9NRVJHRV9FTkFCTEUsIE1FUkdFX0VOQUJMRSk7DQo+ID4gK30NCj4g PiArDQo+ID4gK3ZvaWQgbXRrX3BzZXVkb19vdmxfbGF5ZXJfY29uZmlnKHN0cnVjdCBkZXZpY2Ug KmRldiwgdW5zaWduZWQgaW50DQo+ID4gaWR4LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBtdGtfcGxhbmVfc3RhdGUgKnN0YXRlLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQo+ID4gK3sN Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfZGlzcF9wc2V1ZG9fb3ZsICpwc2V1ZG9fb3ZsID0NCj4g PiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArICAgICAgIHN0cnVjdCBtdGtfcGxhbmVfcGVu ZGluZ19zdGF0ZSAqcGVuZGluZyA9ICZzdGF0ZS0+cGVuZGluZzsNCj4gPiArICAgICAgIHN0cnVj dCBwc2V1ZG9fb3ZsX21lcmdlX2NvbmZpZyBtZXJnZV9jZmcgPSB7MH07DQo+ID4gKyAgICAgICBz dHJ1Y3QgbXRrX21kcF9yZG1hX2NmZyByZG1hX2NvbmZpZyA9IHswfTsNCj4gPiArICAgICAgIHN0 cnVjdCBtdGtfcHNldWRvX292bF9jb21wICpyZG1hX2w7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbXRr X3BzZXVkb19vdmxfY29tcCAqcmRtYV9yOw0KPiA+ICsgICAgICAgc3RydWN0IG10a19wc2V1ZG9f b3ZsX2NvbXAgKm1lcmdlOw0KPiA+ICsgICAgICAgY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5m byAqZm10X2luZm8gPQ0KPiA+IGRybV9mb3JtYXRfaW5mbyhwZW5kaW5nLT5mb3JtYXQpOw0KPiA+ ICsgICAgICAgYm9vbCB1c2VfZHVhbF9waXBlID0gZmFsc2U7DQo+ID4gKw0KPiA+ICsgICAgICAg ZGV2X2RiZyhkZXYsICIlcysgaWR4OiVkLCBlbmFibGU6JWQsIGZtdDoweCV4XG4iLCBfX2Z1bmNf XywNCj4gPiBpZHgsDQo+ID4gKyAgICAgICAgICAgICAgIHBlbmRpbmctPmVuYWJsZSwgcGVuZGlu Zy0+Zm9ybWF0KTsNCj4gPiArICAgICAgIGRldl9kYmcoZGV2LCAiYWRkciAweCVseCwgZmIgdzol ZCwgeyVkLCVkLCVkLCVkfVxuIiwNCj4gPiArICAgICAgICAgICAgICAgcGVuZGluZy0+YWRkciwg KHBlbmRpbmctPnBpdGNoIC8gZm10X2luZm8tPmNwcFswXSksDQo+ID4gKyAgICAgICAgICAgICAg IHBlbmRpbmctPngsIHBlbmRpbmctPnksIHBlbmRpbmctPndpZHRoLCBwZW5kaW5nLQ0KPiA+ID5o ZWlnaHQpOw0KPiA+ICsNCj4gPiArICAgICAgIHJkbWFfbCA9ICZwc2V1ZG9fb3ZsLT5wc2V1ZG9f b3ZsX2NvbXBbUFNFVURPX09WTF9SRE1BX0JBU0UNCj4gPiArIDIgKiBpZHhdOw0KPiA+ICsgICAg ICAgcmRtYV9yID0gJnBzZXVkb19vdmwtPnBzZXVkb19vdmxfY29tcFtQU0VVRE9fT1ZMX1JETUFf QkFTRQ0KPiA+ICsgMiAqIGlkeCArIDFdOw0KPiA+ICsgICAgICAgbWVyZ2UgPSAmcHNldWRvX292 bC0+cHNldWRvX292bF9jb21wW1BTRVVET19PVkxfTUVSR0VfQkFTRQ0KPiA+ICsgaWR4XTsNCj4g PiArDQo+ID4gKyAgICAgICBpZiAoIXBlbmRpbmctPmVuYWJsZSkgew0KPiA+ICsgICAgICAgICAg ICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIDB4MCwgJm1lcmdlLQ0KPiA+ID5jbWRx X2Jhc2UsIG1lcmdlLT5yZWdzLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRElTUF9NRVJHRV9FTkFCTEUsDQo+ID4gTUVSR0VfRU5BQkxFKTsNCj4gPiArICAgICAgICAg ICAgICAgbXRrX21kcF9yZG1hX3N0b3AocmRtYV9sLT5yZWdzLCBjbWRxX3BrdCwgJnJkbWFfbC0N Cj4gPiA+Y21kcV9iYXNlKTsNCj4gPiArICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hX3N0b3Ao cmRtYV9yLT5yZWdzLCBjbWRxX3BrdCwgJnJkbWFfci0NCj4gPiA+Y21kcV9iYXNlKTsNCj4gPiAr ICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAg IGlmIChwZW5kaW5nLT53aWR0aCA+IE1US19QU0VVRE9fT1ZMX1NJTkdMRV9QSVBFX01BWF9XSURU SCkNCj4gPiArICAgICAgICAgICAgICAgdXNlX2R1YWxfcGlwZSA9IHRydWU7DQo+ID4gKw0KPiA+ ICsgICAgICAgbWVyZ2VfY2ZnLm91dF93WzBdID0gcGVuZGluZy0+d2lkdGg7DQo+ID4gKyAgICAg ICBtZXJnZV9jZmcuaW5faCA9IHBlbmRpbmctPmhlaWdodDsNCj4gPiArICAgICAgIG1lcmdlX2Nm Zy5mbXQgPSBwZW5kaW5nLT5mb3JtYXQ7DQo+ID4gKyAgICAgICBpZiAodXNlX2R1YWxfcGlwZSkg ew0KPiA+ICsgICAgICAgICAgICAgICBtZXJnZV9jZmcubWVyZ2VfbW9kZSA9IENGRzEyXzExXzEw XzFQSV8yUE9fTUVSR0U7DQo+ID4gKyAgICAgICAgICAgICAgIG1lcmdlX2NmZy5pbl93WzBdID0g KHBlbmRpbmctPndpZHRoIC8gMikgKw0KPiA+ICgocGVuZGluZy0+d2lkdGggLyAyKSAlIDIpOw0K PiA+ICsgICAgICAgICAgICAgICBtZXJnZV9jZmcuaW5fd1sxXSA9IChwZW5kaW5nLT53aWR0aCAv IDIpIC0NCj4gPiAoKHBlbmRpbmctPndpZHRoIC8gMikgJSAyKTsNCj4gPiArICAgICAgIH0gZWxz ZSB7DQo+ID4gKyAgICAgICAgICAgICAgIG1lcmdlX2NmZy5tZXJnZV9tb2RlID0NCj4gPiBDRkcx Ml8xMF8xMF8xUElfMlBPX0JVRl9NT0RFOw0KPiA+ICsgICAgICAgICAgICAgICBtZXJnZV9jZmcu aW5fd1swXSA9IHBlbmRpbmctPndpZHRoOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAg ICAgIG10a19wc2V1ZG9fb3ZsX21lcmdlX2NvbmZpZyhtZXJnZSwgJm1lcmdlX2NmZywgY21kcV9w a3QpOw0KPiA+ICsNCj4gPiArICAgICAgIG10a19tbXN5c19kZHBfY29uZmlnKHBzZXVkb19vdmwt Pm1tc3lzX2RldiwNCj4gPiBNTVNZU19DT05GSUdfTUVSR0VfQVNZTkNfV0lEVEgsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZHgsIHBlbmRpbmctPndpZHRoIC8gMiwgY21kcV9w a3QpOw0KPiA+ICsgICAgICAgbXRrX21tc3lzX2RkcF9jb25maWcocHNldWRvX292bC0+bW1zeXNf ZGV2LA0KPiA+IE1NU1lTX0NPTkZJR19NRVJHRV9BU1lOQ19IRUlHSFQsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZHgsIHBlbmRpbmctPmhlaWdodCwgY21kcV9wa3QpOw0KPiA+ ICsNCj4gPiArICAgICAgIHJkbWFfY29uZmlnLnNvdXJjZV93aWR0aCA9IHBlbmRpbmctPnBpdGNo IC8gZm10X2luZm8tDQo+ID4gPmNwcFswXTsNCj4gPiArICAgICAgIHJkbWFfY29uZmlnLmNzY19l bmFibGUgPSBmbXRfaW5mby0+aXNfeXV2ID8gdHJ1ZSA6IGZhbHNlOw0KPiA+ICsgICAgICAgcmRt YV9jb25maWcucHJvZmlsZSA9IFJETUFfQ1NDX0ZVTEw3MDlfVE9fUkdCOw0KPiA+ICsgICAgICAg cmRtYV9jb25maWcuZW5jb2RlX3R5cGUgPSBSRE1BX0VOQ09ERV9OT05FOw0KPiA+ICsgICAgICAg cmRtYV9jb25maWcuYmxvY2tfc2l6ZSA9IFJETUFfQkxPQ0tfTk9ORTsNCj4gPiArICAgICAgIHJk bWFfY29uZmlnLndpZHRoID0gbWVyZ2VfY2ZnLmluX3dbMF07DQo+ID4gKyAgICAgICByZG1hX2Nv bmZpZy5oZWlnaHQgPSBwZW5kaW5nLT5oZWlnaHQ7DQo+ID4gKyAgICAgICByZG1hX2NvbmZpZy5h ZGRyMCA9IHBlbmRpbmctPmFkZHI7DQo+ID4gKyAgICAgICByZG1hX2NvbmZpZy5mbXQgPSBwZW5k aW5nLT5mb3JtYXQ7DQo+ID4gKyAgICAgICBtdGtfbWRwX3JkbWFfY29uZmlnKHJkbWFfbC0+cmVn cywgJnJkbWFfY29uZmlnLCBjbWRxX3BrdCwNCj4gPiAmcmRtYV9sLT5jbWRxX2Jhc2UpOw0KPiA+ ICsNCj4gPiArICAgICAgIHJkbWFfY29uZmlnLnhfbGVmdCA9IG1lcmdlX2NmZy5pbl93WzBdOw0K PiA+ICsgICAgICAgcmRtYV9jb25maWcud2lkdGggPSBtZXJnZV9jZmcuaW5fd1sxXTsNCj4gPiAr ICAgICAgIG10a19tZHBfcmRtYV9jb25maWcocmRtYV9yLT5yZWdzLCAmcmRtYV9jb25maWcsIGNt ZHFfcGt0LA0KPiA+ICZyZG1hX3ItPmNtZHFfYmFzZSk7DQo+ID4gKw0KPiA+ICsgICAgICAgbXRr X2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCAweDEsICZtZXJnZS0+Y21kcV9iYXNlLCBtZXJnZS0N Cj4gPiA+cmVncywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBESVNQX01FUkdFX0VO QUJMRSwgTUVSR0VfRU5BQkxFKTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRx X3BrdCwgMHgwLCAmbWVyZ2UtPmNtZHFfYmFzZSwgbWVyZ2UtDQo+ID4gPnJlZ3MsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgRElTUF9NRVJHRV9NVVRFXzAsIDB4MSk7DQo+ID4gKw0K PiA+ICsgICAgICAgbXRrX21kcF9yZG1hX3N0YXJ0KHJkbWFfbC0+cmVncywgY21kcV9wa3QsICZy ZG1hX2wtDQo+ID4gPmNtZHFfYmFzZSk7DQo+ID4gKyAgICAgICBpZiAodXNlX2R1YWxfcGlwZSkN Cj4gPiArICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hX3N0YXJ0KHJkbWFfci0+cmVncywgY21k cV9wa3QsICZyZG1hX3ItDQo+ID4gPmNtZHFfYmFzZSk7DQo+ID4gKyAgICAgICBlbHNlDQo+ID4g KyAgICAgICAgICAgICAgIG10a19tZHBfcmRtYV9zdG9wKHJkbWFfci0+cmVncywgY21kcV9wa3Qs ICZyZG1hX3ItDQo+ID4gPmNtZHFfYmFzZSk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQgbXRr X3BzZXVkb19vdmxfY29uZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHcsDQo+ ID4gdW5zaWduZWQgaW50IGgsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IHZyZWZyZXNoLCB1bnNpZ25lZCBpbnQgYnBjLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQo+ID4gK3sNCj4gPiArICAgICAg IHN0cnVjdCBtdGtfZGlzcF9wc2V1ZG9fb3ZsICpwc2V1ZG9fb3ZsID0NCj4gPiBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsNCj4gPiArDQo+ID4gKyAgICAgICBkZXZfaW5mbyhkZXYsICIlcyB3OiVkLCBo OiVkXG4iLCBfX2Z1bmNfXywgdywgaCk7DQo+ID4gKw0KPiA+ICsgICAgICAgbXRrX3BzZXVkb19v dmxfZmlmb19zZXR0aW5nKHBzZXVkb19vdmwsIGNtZHFfcGt0KTsNCj4gPiArfQ0KPiA+ICsNCj4g PiArdm9pZCBtdGtfcHNldWRvX292bF9zdGFydChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4gK3sN Cj4gPiArfQ0KPiA+ICsNCj4gPiArdm9pZCBtdGtfcHNldWRvX292bF9zdG9wKHN0cnVjdCBkZXZp Y2UgKmRldikNCj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0IG10a19kaXNwX3BzZXVkb19vdmwg KnBzZXVkb19vdmwgPQ0KPiA+IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ICsgICAgICAgc3Ry dWN0IG10a19wc2V1ZG9fb3ZsX2NvbXAgKnJkbWFfbDsNCj4gPiArICAgICAgIHN0cnVjdCBtdGtf cHNldWRvX292bF9jb21wICpyZG1hX3I7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX3BzZXVkb19v dmxfY29tcCAqbWVyZ2U7DQo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgcmVnOw0KPiA+ICsgICAg ICAgdTMyIGk7DQo+ID4gKw0KPiA+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IHBzZXVkb19vdmwt PmRhdGEtPmxheWVyX25yOyBpKyspIHsNCj4gPiArICAgICAgICAgICAgICAgcmRtYV9sID0gJnBz ZXVkb19vdmwtDQo+ID4gPnBzZXVkb19vdmxfY29tcFtQU0VVRE9fT1ZMX1JETUFfQkFTRSArIDIg KiBpXTsNCj4gPiArICAgICAgICAgICAgICAgcmRtYV9yID0gJnBzZXVkb19vdmwtDQo+ID4gPnBz ZXVkb19vdmxfY29tcFtQU0VVRE9fT1ZMX1JETUFfQkFTRSArIDIgKiBpICsgMV07DQo+ID4gKyAg ICAgICAgICAgICAgIG1lcmdlID0gJnBzZXVkb19vdmwtDQo+ID4gPnBzZXVkb19vdmxfY29tcFtQ U0VVRE9fT1ZMX01FUkdFX0JBU0UgKyBpXTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIG10 a19tZHBfcmRtYV9zdG9wKHJkbWFfbC0+cmVncywgTlVMTCwgJnJkbWFfbC0NCj4gPiA+Y21kcV9i YXNlKTsNCj4gPiArICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hX3N0b3AocmRtYV9yLT5yZWdz LCBOVUxMLCAmcmRtYV9yLQ0KPiA+ID5jbWRxX2Jhc2UpOw0KPiA+ICsNCj4gPiArICAgICAgICAg ICAgICAgcmVnID0gcmVhZGwobWVyZ2UtPnJlZ3MgKyBESVNQX01FUkdFX0VOQUJMRSk7DQo+ID4g KyAgICAgICAgICAgICAgIHJlZyA9IHJlZyAmIH5NRVJHRV9FTkFCTEU7DQo+ID4gKyAgICAgICAg ICAgICAgIHdyaXRlbF9yZWxheGVkKHJlZywgbWVyZ2UtPnJlZ3MgKw0KPiA+IERJU1BfTUVSR0Vf RU5BQkxFKTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIGRldmljZV9yZXNldF9vcHRpb25h bChtZXJnZS0+ZGV2KTsNCj4gPiArICAgICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiAraW50IG10 a19wc2V1ZG9fb3ZsX2Nsa19lbmFibGUoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICt7DQo+ID4g KyAgICAgICBzdHJ1Y3QgbXRrX2Rpc3BfcHNldWRvX292bCAqcHNldWRvX292bCA9DQo+ID4gZGV2 X2dldF9kcnZkYXRhKGRldik7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX3BzZXVkb19vdmxfY29t cCAqY29tcDsNCj4gPiArICAgICAgIGludCByZXQ7DQo+ID4gKyAgICAgICBpbnQgaTsNCj4gPiAr ICAgICAgIGludCBqOw0KPiA+ICsNCj4gPiArICAgICAgIGZvciAoaSA9IFBTRVVET19PVkxfTURQ X1JETUEwOyBpIDwgUFNFVURPX09WTF9JRF9NQVg7IGkrKykNCj4gPiB7DQo+ID4gKyAgICAgICAg ICAgICAgIGNvbXAgPSAmcHNldWRvX292bC0+cHNldWRvX292bF9jb21wW2ldOw0KPiA+ICsgICAg ICAgICAgICAgICBpZiAoIWNvbXAtPmRldikNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBj b250aW51ZTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIC8qIE5lZWQgdG8gcG93ZXIgb24g Zm9yIHByaXZhdGUgcmRtYSBkZXZpY2VzICovDQo+ID4gKyAgICAgICAgICAgICAgIGlmIChpIDwg UFNFVURPX09WTF9NRVJHRV9CQVNFKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0 ID0gcG1fcnVudGltZV9nZXRfc3luYyhjb21wLT5kZXYpOw0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGlmIChyZXQgPCAwKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGV2X2VycihkZXYsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJGYWlsZWQgdG8gcG93ZXIgb24sIGVycg0KPiA+ICVkLSVzXG4iLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQsDQo+ID4gcHNldWRvX292bF9jb21wX3N0 cltpXSk7DQo+ID4gKyAgICAgICAgICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAg IGZvciAoaiA9IDA7IGogPCBBUlJBWV9TSVpFKGNvbXAtPmNsa3MpOyBqKyspIHsNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICBpZiAoSVNfRVJSKGNvbXAtPmNsa3Nbal0pKQ0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIHJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShjb21wLT5jbGtzW2pdKTsNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0KQ0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGV2X2VycihkZXYsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gZW5hYmxlIGNsb2NrICVkLA0KPiA+IGVyciAlZC0l c1xuIiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgcmV0 LA0KPiA+IHBzZXVkb19vdmxfY29tcF9zdHJbaV0pOw0KPiA+ICsgICAgICAgICAgICAgICB9DQo+ ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJuIHJldDsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArdm9pZCBtdGtfcHNldWRvX292bF9jbGtfZGlzYWJsZShzdHJ1Y3QgZGV2aWNlICpk ZXYpDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCBtdGtfZGlzcF9wc2V1ZG9fb3ZsICpwc2V1 ZG9fb3ZsID0NCj4gPiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArICAgICAgIHN0cnVjdCBt dGtfcHNldWRvX292bF9jb21wICpjb21wOw0KPiA+ICsgICAgICAgaW50IHJldDsNCj4gPiArICAg ICAgIGludCBpOw0KPiA+ICsgICAgICAgaW50IGo7DQo+ID4gKw0KPiA+ICsgICAgICAgZm9yIChp ID0gUFNFVURPX09WTF9NRFBfUkRNQTA7IGkgPCBQU0VVRE9fT1ZMX0lEX01BWDsgaSsrKQ0KPiA+ IHsNCj4gPiArICAgICAgICAgICAgICAgY29tcCA9ICZwc2V1ZG9fb3ZsLT5wc2V1ZG9fb3ZsX2Nv bXBbaV07DQo+ID4gKyAgICAgICAgICAgICAgIGlmICghY29tcC0+ZGV2KQ0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgZm9y IChqID0gMDsgaSA8IEFSUkFZX1NJWkUoY29tcC0+Y2xrcyk7IGorKykgew0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIGlmIChJU19FUlIoY29tcC0+Y2xrc1tqXSkpDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICBjbGtfZGlzYWJsZV91bnByZXBhcmUoY29tcC0+Y2xrc1tqXSk7DQo+ID4gKyAgICAgICAgICAg ICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIC8qIE5lZWQgdG8gcG93ZXIgb2ZmIGZv ciBwcml2YXRlIHJkbWEgZGV2aWNlcyAqLw0KPiA+ICsgICAgICAgICAgICAgICBpZiAoaSA8IFBT RVVET19PVkxfTUVSR0VfQkFTRSkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldCA9 IHBtX3J1bnRpbWVfcHV0KGNvbXAtPmRldik7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg aWYgKHJldCA8IDApDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZfZXJy KGRldiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxl ZCB0byBwb3dlciBvZmYsIGVyci0NCj4gPiAlc1xuIiwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0LA0KPiA+IHBzZXVkb19vdmxfY29tcF9zdHJbaV0pOw0K PiA+ICsgICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICB9DQo+ID4gK30NCj4gPiArDQo+ID4g K3N0YXRpYyBpbnQgcHNldWRvX292bF9jb21wX2dldF9pZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0 cnVjdA0KPiA+IGRldmljZV9ub2RlICpub2RlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbnVtIG10a19wc2V1ZG9fb3ZsX2NvbXBfdHlwZQ0KPiA+IHR5cGUpDQo+ID4g K3sNCj4gPiArICAgICAgIGludCBhbGlhc19pZCA9IG9mX2FsaWFzX2dldF9pZChub2RlLA0KPiA+ IHByaXZhdGVfY29tcF9zdGVtW3R5cGVdKTsNCj4gPiArICAgICAgIGludCByZXQ7DQo+ID4gKyAg ICAgICBpbnQgaTsNCj4gPiArDQo+ID4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0la RShjb21wX21hdGNoZXMpOyBpKyspDQo+ID4gKyAgICAgICAgICAgICAgIGlmIChjb21wX21hdGNo ZXNbaV0udHlwZSA9PSB0eXBlICYmDQo+ID4gKyAgICAgICAgICAgICAgICAgICBjb21wX21hdGNo ZXNbaV0uYWxpYXNfaWQgPT0gYWxpYXNfaWQpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIGk7DQo+ID4gKw0KPiA+ICsgICAgICAgZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0 IGlkLiB0eXBlOiAlZCwgYWxpYXM6ICVkXG4iLA0KPiA+IHR5cGUsIGFsaWFzX2lkKTsNCj4gPiAr ICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IHBy aXZhdGVfY29tcF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0DQo+ID4gZGV2aWNlX25v ZGUgKm5vZGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbXRrX3Bz ZXVkb19vdmxfY29tcCAqY29tcCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu dW0gbXRrX3BzZXVkb19vdmxfY29tcF9pZCBpZCkNCj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqY29tcF9wZGV2Ow0KPiA+ICsgICAgICAgaW50IHJldDsNCj4gPiAr ICAgICAgIGludCBpOw0KPiA+ICsNCj4gPiArICAgICAgIGlmIChpZCA8IDAgfHwgaWQgPj0gUFNF VURPX09WTF9JRF9NQVgpIHsNCj4gPiArICAgICAgICAgICAgICAgZGV2X2VycihkZXYsICJJbnZh bGlkIGNvbXBvbmVudCBpZCAlZFxuIiwgaWQpOw0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4g LUVJTlZBTDsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICBjb21wX3BkZXYgPSBv Zl9maW5kX2RldmljZV9ieV9ub2RlKG5vZGUpOw0KPiA+ICsgICAgICAgaWYgKCFjb21wX3BkZXYp IHsNCj4gPiArICAgICAgICAgICAgICAgZGV2X3dhcm4oZGV2LCAiY2FuJ3QgZmluZCBwbGF0Zm9y bSBkZXZpY2Ugb2YNCj4gPiBub2RlOiVzXG4iLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICBub2RlLT5uYW1lKTsNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7DQo+ID4g KyAgICAgICB9DQo+ID4gKyAgICAgICBjb21wLT5kZXYgPSAmY29tcF9wZGV2LT5kZXY7DQo+ID4g KyAgICAgICBjb21wLT5yZWdzID0gb2ZfaW9tYXAobm9kZSwgMCk7DQo+ID4gKw0KPiA+ICsgICAg ICAgZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY29tcC0+Y2xrcyk7IGkrKykgew0KPiA+ICsg ICAgICAgICAgICAgICBjb21wLT5jbGtzW2ldID0gb2ZfY2xrX2dldChub2RlLCBpKTsNCj4gPiAr ICAgICAgICAgICAgICAgaWYgKElTX0VSUihjb21wLT5jbGtzW2ldKSkNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyNpZiBJU19S RUFDSEFCTEUoQ09ORklHX01US19DTURRKQ0KPiA+ICsgICAgICAgcmV0ID0gY21kcV9kZXZfZ2V0 X2NsaWVudF9yZWcoY29tcC0+ZGV2LCAmY29tcC0+Y21kcV9iYXNlLA0KPiA+IDApOw0KPiA+ICsg ICAgICAgaWYgKHJldCkNCj4gPiArICAgICAgICAgICAgICAgZGV2X2luZm8oZGV2LCAiZ2V0IG1l ZGlhdGVrLGdjZS1jbGllbnQtcmVnDQo+ID4gZmFpbCFcbiIpOw0KPiA+ICsjZW5kaWYNCj4gPiAr DQo+ID4gKyAgICAgICBpZiAoaWQgPCBQU0VVRE9fT1ZMX01FUkdFX0JBU0UpDQo+ID4gKyAgICAg ICAgICAgICAgIHBtX3J1bnRpbWVfZW5hYmxlKGNvbXAtPmRldik7DQo+ID4gKw0KPiA+ICsgICAg ICAgZGV2X2luZm8oZGV2LCAiW0RSTV1yZWdzOjB4JXAsIG5vZGU6JXNcbiIsIGNvbXAtPnJlZ3Ms DQo+ID4gcHNldWRvX292bF9jb21wX3N0cltpZF0pOw0KPiA+ICsNCj4gPiArICAgICAgIHJldHVy biAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG10a19kaXNwX3BzZXVkb19vdmxf Y29tcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlDQo+ID4gKnBkZXYpDQo+ID4gK3sNCj4g PiArICAgICAgIHJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG10a19k aXNwX3BzZXVkb19vdmxfY29tcF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZQ0KPiA+ICpw ZGV2KQ0KPiA+ICt7DQo+ID4gKyAgICAgICByZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiAr c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX3BzZXVkb19vdmxfY29tcF9kdF9p ZHNbXSA9IHsNCj4gPiArICAgICAgIHsNCj4gPiArICAgICAgICAgICAgICAgLmNvbXBhdGlibGUg PSAibWVkaWF0ZWssbXQ4MTk1LXZkbzEtcmRtYSIsDQo+ID4gKyAgICAgICAgICAgICAgIC5kYXRh ID0gKHZvaWQgKilQU0VVRE9fT1ZMX1RZUEVfUkRNQSwNCj4gPiArICAgICAgIH0sIHsNCj4gPiAr ICAgICAgICAgICAgICAgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTk1LXZkbzEtbWVyZ2Ui LA0KPiA+ICsgICAgICAgICAgICAgICAuZGF0YSA9ICh2b2lkICopUFNFVURPX09WTF9UWVBFX01F UkdFLA0KPiA+ICsgICAgICAgfSwNCj4gPiArICAgICAgIHt9LA0KPiA+ICt9Ow0KPiA+ICsNCj4g PiArc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2Rpc3BfcHNldWRvX292bF9jb21w X2RyaXZlciA9IHsNCj4gPiArICAgICAgIC5wcm9iZSAgICAgICAgICA9IG10a19kaXNwX3BzZXVk b19vdmxfY29tcF9wcm9iZSwNCj4gPiArICAgICAgIC5yZW1vdmUgICAgICAgICA9IG10a19kaXNw X3BzZXVkb19vdmxfY29tcF9yZW1vdmUsDQo+ID4gKyAgICAgICAuZHJpdmVyID0gew0KPiA+ICsg ICAgICAgICAgICAgICAubmFtZSAgID0gIm1lZGlhdGVrLWRpc3AtcHNldWRvLW92bC1jb21wIiwN Cj4gPiArICAgICAgICAgICAgICAgLm93bmVyICA9IFRISVNfTU9EVUxFLA0KPiA+ICsgICAgICAg ICAgICAgICAub2ZfbWF0Y2hfdGFibGUgPSBtdGtfcHNldWRvX292bF9jb21wX2R0X2lkcywNCj4g PiArICAgICAgIH0sDQo+ID4gK307DQo+ID4gK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIobXRrX2Rp c3BfcHNldWRvX292bF9jb21wX2RyaXZlcik7DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IHBzZXVk b19vdmxfY29tcF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPiArew0KPiA+ICsgICAgICAg c3RydWN0IG10a19kaXNwX3BzZXVkb19vdmwgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsN Cj4gPiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwgKnBhcmVudDsNCj4gPiArICAg ICAgIGludCBpLCByZXQ7DQo+ID4gKw0KPiA+ICsgICAgICAgcGFyZW50ID0gZGV2LT5wYXJlbnQt Pm9mX25vZGUtPnBhcmVudDsNCj4gPiArDQo+ID4gKyAgICAgICBmb3JfZWFjaF9jaGlsZF9vZl9u b2RlKHBhcmVudCwgbm9kZSkgew0KPiA+ICsgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgb2Zf ZGV2aWNlX2lkICpvZl9pZDsNCj4gPiArICAgICAgICAgICAgICAgZW51bSBtdGtfcHNldWRvX292 bF9jb21wX3R5cGUgdHlwZTsNCj4gPiArICAgICAgICAgICAgICAgc3RydWN0IG10a19wc2V1ZG9f b3ZsX2NvbXAgKmNvbXA7DQo+ID4gKyAgICAgICAgICAgICAgIGludCBpZDsNCj4gPiArDQo+ID4g KyAgICAgICAgICAgICAgIG9mX2lkID0gb2ZfbWF0Y2hfbm9kZShtdGtfcHNldWRvX292bF9jb21w X2R0X2lkcywNCj4gPiBub2RlKTsNCj4gPiArICAgICAgICAgICAgICAgaWYgKCFvZl9pZCkNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gPiArDQo+ID4gKyAgICAgICAg ICAgICAgIGlmICghb2ZfZGV2aWNlX2lzX2F2YWlsYWJsZShub2RlKSkgew0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIGRldl9pbmZvKGRldiwgIlNraXBwaW5nIGRpc2FibGVkIGNvbXBvbmVu dA0KPiA+ICVwT0ZcbiIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9k ZSk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+ID4gKyAgICAgICAg ICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIHR5cGUgPSAoZW51bSBtdGtfcHNl dWRvX292bF9jb21wX3R5cGUpb2ZfaWQtPmRhdGE7DQo+ID4gKyAgICAgICAgICAgICAgIGlkID0g cHNldWRvX292bF9jb21wX2dldF9pZChkZXYsIG5vZGUsIHR5cGUpOw0KPiA+ICsgICAgICAgICAg ICAgICBpZiAoaWQgPCAwKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZGV2X3dhcm4o ZGV2LCAiU2tpcHBpbmcgdW5rbm93biBjb21wb25lbnQNCj4gPiAlcE9GXG4iLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUpOw0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOw0KPiA+ICsgICAgICAgICAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAg ICAgICAgICAgICByZXQgPSBwcml2YXRlX2NvbXBfaW5pdChkZXYsIG5vZGUsICZwcml2LQ0KPiA+ ID5wc2V1ZG9fb3ZsX2NvbXBbaWRdLCBpZCk7DQo+ID4gKyAgICAgICAgICAgICAgIGlmIChyZXQp DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gPiArICAgICAgIH0N Cj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBwc2V1ZG9fb3ZsX2RhdGEgbXQ4MTk1X3BzZXVkb19vdmxfZHJpdmVyX2Rh dGENCj4gPiA9IHsNCj4gPiArICAgICAgIC5sYXllcl9uciA9IDQsDQo+ID4gKyAgICAgICAuZmlm by5yZWFkX3JlcXVlc3RfdHlwZSA9IDcsDQo+ID4gKyAgICAgICAuZmlmby5jb21tYW5kX2RpdiA9 IDEsDQo+ID4gKyAgICAgICAuZmlmby5leHRfcHJldXRyYV9lbiA9IDEsDQo+ID4gKyAgICAgICAu Zmlmby51bHRyYV9lbiA9IDAsDQo+ID4gKyAgICAgICAuZmlmby5wcmVfdWx0cmFfZW4gPSAxLA0K PiA+ICsgICAgICAgLmZpZm8uZXh0X3VsdHJhX2VuID0gMSwNCj4gPiArICAgICAgIC5maWZvLmV4 dHJkX2FyYl9tYXhfMCA9IDMsDQo+ID4gKyAgICAgICAuZmlmby5idWZfcmVzdl9zaXplXzAgPSAw LA0KPiA+ICsgICAgICAgLmZpZm8uaXNzdWVfcmVxX3RoXzAgPSAwLA0KPiA+ICsgICAgICAgLmZp Zm8udWx0cmFfaF9jb25fMCA9IDE1NiwNCj4gPiArICAgICAgIC5maWZvLnVsdHJhX2xfY29uXzAg PSAxMDQsDQo+ID4gK307DQo+IA0KPiBOb3cgb25seSBzdXBwb3J0IG9uZSBTb0MsIHNvIHJlbW92 ZSBkcml2ZXIgZGF0YSBhbmQgY2hhbmdlIHRoZXNlIHRvDQo+IGRlZmluaXRpb24gaW5zdGVhZCBv ZiB2YXJpYWJsZS4NCj4gDQpPSywgSSB3aWxsIHJlbW92ZSBpdC4NCg0KPiA+ICsNCj4gPiArc3Rh dGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcHNldWRvX292bF9kcml2ZXJfZHRfbWF0Y2hb XSA9IHsNCj4gPiArICAgICAgIHsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTk1LWRpc3At ZXRoZHIiLA0KPiA+ICsgICAgICAgICAuZGF0YSA9ICZtdDgxOTVfcHNldWRvX292bF9kcml2ZXJf ZGF0YX0sDQo+ID4gKyAgICAgICB7fSwNCj4gPiArfTsNCj4gPiArTU9EVUxFX0RFVklDRV9UQUJM RShvZiwgbXRrX2Rpc3BfcHNldWRvX292bF9kcml2ZXJfZHRfbWF0Y2gpOw0KPiA+ICsNCj4gPiAr c3RhdGljIGludCBtdGtfZGlzcF9wc2V1ZG9fb3ZsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCBtdGtfZGlzcF9wc2V1ZG9fb3Zs ICpwcml2Ow0KPiA+ICsgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsNCj4g PiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqcGhhbmRsZSA9IGRldi0+cGFyZW50LT5vZl9u b2RlOw0KPiA+ICsgICAgICAgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqb2ZfaWQ7DQo+ID4g KyAgICAgICBpbnQgcmV0Ow0KPiA+ICsgICAgICAgaW50IGk7DQo+ID4gKw0KPiA+ICsgICAgICAg ZGV2X2luZm8oZGV2LCAiJXMrXG4iLCBfX2Z1bmNfXyk7DQo+ID4gKw0KPiA+ICsgICAgICAgb2Zf aWQgPSBvZl9tYXRjaF9ub2RlKHBzZXVkb19vdmxfZHJpdmVyX2R0X21hdGNoLCBwaGFuZGxlKTsN Cj4gPiArICAgICAgIGlmICghb2ZfaWQpDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5P REVWOw0KPiA+ICsNCj4gPiArICAgICAgIHByaXYgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2Yo KnByaXYpLCBHRlBfS0VSTkVMKTsNCj4gPiArICAgICAgIGlmICghcHJpdikNCj4gPiArICAgICAg ICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4gKw0KPiA+ICsgICAgICAgcHJpdi0+bW1zeXNf ZGV2ID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7DQo+ID4gKw0KPiA+ICsgICAgICAgcHJpdi0+ ZGF0YSA9IG9mX2lkLT5kYXRhOw0KPiA+ICsgICAgICAgcGxhdGZvcm1fc2V0X2RydmRhdGEocGRl diwgcHJpdik7DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0ID0gcHNldWRvX292bF9jb21wX2luaXQo ZGV2KTsNCj4gPiArICAgICAgIGlmIChyZXQpIHsNCj4gPiArICAgICAgICAgICAgICAgZGV2X25v dGljZShkZXYsICJwc2V1ZG9fb3ZsIGNvbXAgaW5pdCBmYWlsXG4iKTsNCj4gPiArICAgICAgICAg ICAgICAgcmV0dXJuIHJldDsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICBkZXZf aW5mbyhkZXYsICIlcy1cbiIsIF9fZnVuY19fKTsNCj4gPiArICAgICAgIHJldHVybiByZXQ7DQo+ ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgbXRrX2Rpc3BfcHNldWRvX292bF9yZW1vdmUo c3RydWN0IHBsYXRmb3JtX2RldmljZQ0KPiA+ICpwZGV2KQ0KPiA+ICt7DQo+ID4gKyAgICAgICBz dHJ1Y3QgbXRrX2Rpc3BfcHNldWRvX292bCAqcHNldWRvX292bCA9DQo+ID4gZGV2X2dldF9kcnZk YXRhKCZwZGV2LT5kZXYpOw0KPiA+ICsgICAgICAgaW50IGk7DQo+ID4gKw0KPiA+ICsgICAgICAg Zm9yIChpID0gUFNFVURPX09WTF9NRFBfUkRNQTA7IGkgPCBQU0VVRE9fT1ZMX01FUkdFX0JBU0U7 DQo+ID4gaSsrKQ0KPiA+ICsgICAgICAgICAgICAgICBwbV9ydW50aW1lX2Rpc2FibGUocHNldWRv X292bC0NCj4gPiA+cHNldWRvX292bF9jb21wW2ldLmRldik7DQo+ID4gKw0KPiA+ICsgICAgICAg cmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRr X2Rpc3BfcHNldWRvX292bF9kcml2ZXIgPSB7DQo+ID4gKyAgICAgICAucHJvYmUgPSBtdGtfZGlz cF9wc2V1ZG9fb3ZsX3Byb2JlLA0KPiA+ICsgICAgICAgLnJlbW92ZSA9IG10a19kaXNwX3BzZXVk b19vdmxfcmVtb3ZlLA0KPiA+ICsgICAgICAgLmRyaXZlciA9IHsNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAubmFtZSA9ICJtZWRpYXRlay1kaXNwLXBzZXVkby1vdmwiLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIC5vd25lciA9IFRISVNfTU9EVUxFLA0KPiA+ICsgICAgICAgICAg ICAgICB9LA0KPiA+ICt9Ow0KPiA+ICttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKG10a19kaXNwX3Bz ZXVkb19vdmxfZHJpdmVyKTsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kaXNwX3BzZXVkb19vdmwuaA0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kaXNwX3BzZXVkb19vdmwuaA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5k ZXggMDAwMDAwMDAwMDAwLi5iM2ZlMWUxNzAyYjgNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX3BzZXVkb19vdmwuaA0KPiA+IEBA IC0wLDAgKzEsMjMgQEANCj4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAt b25seSAqLw0KPiA+ICsvKg0KPiA+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjEgTWVkaWFUZWsgSW5j Lg0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNpZm5kZWYgX19NVEtfRElTUF9QU0VVRE9fT1ZMX0hf Xw0KPiA+ICsjZGVmaW5lIF9fTVRLX0RJU1BfUFNFVURPX09WTF9IX18NCj4gPiArDQo+ID4gKyNp bmNsdWRlIDxkcm0vbWVkaWF0ZWtfZHJtLmg+DQo+ID4gKw0KPiA+ICt2b2lkIG10a19wc2V1ZG9f b3ZsX3N0YXJ0KHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ID4gK3ZvaWQgbXRrX3BzZXVkb19vdmxf c3RvcChzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICtpbnQgbXRrX3BzZXVkb19vdmxfY2xrX2Vu YWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICt2b2lkIG10a19wc2V1ZG9fb3ZsX2Nsa19k aXNhYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ID4gK3ZvaWQgbXRrX3BzZXVkb19vdmxfY29u ZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHcsDQo+ID4gdW5zaWduZWQgaW50 IGgsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHZyZWZyZXNo LCB1bnNpZ25lZCBpbnQgYnBjLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBjbWRxX3BrdCAqY21kcV9wa3QpOw0KPiA+ICt2b2lkIG10a19wc2V1ZG9fb3ZsX2xheWVyX2Nv bmZpZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludA0KPiA+IGlkeCwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpzdGF0 ZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY21kcV9wa3Qg KmNtZHFfcGt0KTsNCj4gPiArDQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmRtYS5jDQo+ID4gYi9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX21kcF9yZG1hLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uODFkM2NjNDg3MmViDQo+ID4gLS0tIC9kZXYvbnVsbA0K PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JkbWEuYw0KPiA+IEBA IC0wLDAgKzEsNDU2IEBADQo+ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w LW9ubHkNCj4gPiArLyoNCj4gPiArICogQ29weXJpZ2h0IChjKSAyMDIxIE1lZGlhVGVrIEluYy4N Cj4gPiArICovDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4NCj4gPiAr I2luY2x1ZGUgIm10a19kcm1fZHJ2LmgiDQo+ID4gKyNpbmNsdWRlICJtdGtfbWRwX3JlZ19yZG1h LmgiDQo+ID4gKyNpbmNsdWRlICJtdGtfbWRwX3JkbWEuaCINCj4gPiArDQo+ID4gKyNkZWZpbmUg UkRNQV9JTlBVVF9TV0FQICAgICAgICAgICAgICAgIEJJVCgxNCkNCj4gPiArI2RlZmluZSBSRE1B X0lOUFVUXzEwQklUICAgICAgIEJJVCgxOCkNCj4gPiArI2RlZmluZSBJUlFfSU5UX0VOX0FMTCBc DQo+ID4gKyAgICAgICAoUkVHX0ZMRF9NQVNLKEZMRF9VTkRFUlJVTl9JTlRfRU4pIHxcDQo+ID4g KyAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9SRUdfVVBEQVRFX0lOVF9FTikgfFwNCj4gPiArICAg ICAgICBSRUdfRkxEX01BU0soRkxEX0ZSQU1FX0NPTVBMRVRFX0lOVF9FTikpDQo+ID4gKw0KPiA+ ICtzdGF0aWMgdW5zaWduZWQgaW50IHJkbWFfZ2V0X3lfcGl0Y2godW5zaWduZWQgaW50IGZtdCwg dW5zaWduZWQNCj4gPiBpbnQgd2lkdGgpDQo+ID4gK3sNCj4gPiArICAgICAgIHN3aXRjaCAoZm10 KSB7DQo+ID4gKyAgICAgICBkZWZhdWx0Og0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1JH QjU2NToNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1I1NjU6DQo+ID4gKyAgICAgICAg ICAgICAgIHJldHVybiAyICogd2lkdGg7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfUkdC ODg4Og0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX0JHUjg4ODoNCj4gPiArICAgICAgICAg ICAgICAgcmV0dXJuIDMgKiB3aWR0aDsNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9SR0JY ODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9SR0JBODg4ODoNCj4gPiArICAgICAg IGNhc2UgRFJNX0ZPUk1BVF9CR1JYODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9C R1JBODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4ODoNCj4gPiArICAg ICAgIGNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1B VF9YQkdSODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoNCj4gPiAr ICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9BUkdCMjEwMTAxMDoNCj4gPiArICAgICAgIGNhc2UgRFJN X0ZPUk1BVF9BQkdSMjEwMTAxMDoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9SR0JBMTAx MDEwMjoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1JBMTAxMDEwMjoNCj4gPiArICAg ICAgICAgICAgICAgcmV0dXJuIDQgKiB3aWR0aDsNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1B VF9VWVZZOg0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1lVWVY6DQo+ID4gKyAgICAgICAg ICAgICAgIHJldHVybiAyICogd2lkdGg7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfTlYx MjoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9OVjIxOg0KPiA+ICsgICAgICAgICAgICAg ICByZXR1cm4gMSAqIHdpZHRoOw0KPiA+ICsgICAgICAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtz dGF0aWMgdW5zaWduZWQgaW50IHJkbWFfZ2V0X3V2X3BpdGNoKHVuc2lnbmVkIGludCBmbXQsIHVu c2lnbmVkDQo+ID4gaW50IHdpZHRoKQ0KPiA+ICt7DQo+ID4gKyAgICAgICBzd2l0Y2ggKGZtdCkg ew0KPiA+ICsgICAgICAgZGVmYXVsdDoNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfTlYxMjoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZP Uk1BVF9OVjIxOg0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gNCAqIHdpZHRoOw0KPiA+ICsg ICAgICAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdW5zaWduZWQgaW50IHJkbWFfZ2V0 X2Jsb2NrX2godW5zaWduZWQgaW50IG1vZGUpDQo+ID4gK3sNCj4gPiArICAgICAgIHN3aXRjaCAo bW9kZSkgew0KPiA+ICsgICAgICAgZGVmYXVsdDoNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJu IDA7DQo+ID4gKyAgICAgICBjYXNlIFJETUFfQkxPQ0tfOHg4Og0KPiA+ICsgICAgICAgY2FzZSBS RE1BX0JMT0NLXzE2eDg6DQo+ID4gKyAgICAgICBjYXNlIFJETUFfQkxPQ0tfMzJ4ODoNCj4gPiAr ICAgICAgICAgICAgICAgcmV0dXJuIDg7DQo+ID4gKyAgICAgICBjYXNlIFJETUFfQkxPQ0tfOHgx NjoNCj4gPiArICAgICAgIGNhc2UgUkRNQV9CTE9DS18xNngxNjoNCj4gPiArICAgICAgIGNhc2Ug UkRNQV9CTE9DS18zMngxNjoNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDE2Ow0KPiA+ICsg ICAgICAgY2FzZSBSRE1BX0JMT0NLXzh4MzI6DQo+ID4gKyAgICAgICBjYXNlIFJETUFfQkxPQ0tf MTZ4MzI6DQo+ID4gKyAgICAgICBjYXNlIFJETUFfQkxPQ0tfMzJ4MzI6DQo+ID4gKyAgICAgICAg ICAgICAgIHJldHVybiAzMjsNCj4gPiArICAgICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiArc3Rh dGljIHVuc2lnbmVkIGludCByZG1hX2dldF9ob3Jpem9udGFsX3NoaWZ0X3V2KHVuc2lnbmVkIGlu dCBmbXQpDQo+ID4gK3sNCj4gPiArICAgICAgIHN3aXRjaCAoZm10KSB7DQo+ID4gKyAgICAgICBk ZWZhdWx0Og0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiArICAgICAgIGNhc2Ug RFJNX0ZPUk1BVF9OVjEyOg0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX05WMjE6DQo+ID4g KyAgICAgICAgICAgICAgIHJldHVybiAxOw0KPiA+ICsgICAgICAgfQ0KPiA+ICt9DQo+ID4gKw0K PiA+ICtzdGF0aWMgdW5zaWduZWQgaW50IHJkbWFfZ2V0X3ZlcnRpY2FsX3NoaWZ0X3V2KHVuc2ln bmVkIGludCBmbXQpDQo+ID4gK3sNCj4gPiArICAgICAgIHN3aXRjaCAoZm10KSB7DQo+ID4gKyAg ICAgICBkZWZhdWx0Og0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiArICAgICAg IGNhc2UgRFJNX0ZPUk1BVF9OVjEyOg0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX05WMjE6 DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAxOw0KPiA+ICsgICAgICAgfQ0KPiA+ICt9DQo+ ID4gKw0KPiA+ICtzdGF0aWMgdW5zaWduZWQgaW50IHJkbWFfZ2V0X2JpdHNfcGVyX3BpeGVsX3ko dW5zaWduZWQgaW50IGZtdCkNCj4gPiArew0KPiA+ICsgICAgICAgc3dpdGNoIChmbXQpIHsNCj4g PiArICAgICAgIGRlZmF1bHQ6DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfUkdCNTY1Og0K PiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX0JHUjU2NToNCj4gPiArICAgICAgICAgICAgICAg cmV0dXJuIDE2Ow0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1JHQjg4ODoNCj4gPiArICAg ICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1I4ODg6DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAy NDsNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9SR0JYODg4ODoNCj4gPiArICAgICAgIGNh c2UgRFJNX0ZPUk1BVF9SR0JBODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1JY ODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1JBODg4ODoNCj4gPiArICAgICAg IGNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9B UkdCODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4ODoNCj4gPiArICAg ICAgIGNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJu IDMyOw0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1VZVlk6DQo+ID4gKyAgICAgICBjYXNl IERSTV9GT1JNQVRfWVVZVjoNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDE2Ow0KPiA+ICsg ICAgICAgY2FzZSBEUk1fRk9STUFUX05WMTI6DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRf TlYyMToNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDg7DQo+ID4gKyAgICAgICB9DQo+ID4g K30NCj4gPiArDQo+ID4gK3N0YXRpYyB1bnNpZ25lZCBpbnQgcmRtYV9nZXRfYml0c19wZXJfcGl4 ZWxfdXYodW5zaWduZWQgaW50IGZtdCkNCj4gPiArew0KPiA+ICsgICAgICAgc3dpdGNoIChmbXQp IHsNCj4gPiArICAgICAgIGRlZmF1bHQ6DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAwOw0K PiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX05WMTI6DQo+ID4gKyAgICAgICBjYXNlIERSTV9G T1JNQVRfTlYyMToNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDE2Ow0KPiA+ICsgICAgICAg fQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgYm9vbCB3aXRoX2FscGhhKHVpbnQzMl90IGZv cm1hdCkNCj4gPiArew0KPiA+ICsgICAgICAgY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAq Zm10X2luZm8gPQ0KPiA+IGRybV9mb3JtYXRfaW5mbyhmb3JtYXQpOw0KPiA+ICsNCj4gPiArICAg ICAgIHJldHVybiBmbXRfaW5mby0+aGFzX2FscGhhOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0 aWMgdW5zaWduZWQgaW50IHJkbWFfZm10X2NvbnZlcnQodW5zaWduZWQgaW50IGZtdCkNCj4gPiAr ew0KPiA+ICsgICAgICAgc3dpdGNoIChmbXQpIHsNCj4gPiArICAgICAgIGRlZmF1bHQ6DQo+ID4g KyAgICAgICBjYXNlIERSTV9GT1JNQVRfUkdCNTY1Og0KPiA+ICsgICAgICAgICAgICAgICByZXR1 cm4gUkRNQV9JTlBVVF9GT1JNQVRfUkdCNTY1Ow0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFU X0JHUjU2NToNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIFJETUFfSU5QVVRfRk9STUFUX1JH QjU2NSB8IFJETUFfSU5QVVRfU1dBUDsNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9SR0I4 ODg6DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBSRE1BX0lOUFVUX0ZPUk1BVF9SR0I4ODg7 DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfQkdSODg4Og0KPiA+ICsgICAgICAgICAgICAg ICByZXR1cm4gUkRNQV9JTlBVVF9GT1JNQVRfUkdCODg4IHwgUkRNQV9JTlBVVF9TV0FQOw0KPiA+ ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1JHQlg4ODg4Og0KPiA+ICsgICAgICAgY2FzZSBEUk1f Rk9STUFUX1JHQkE4ODg4Og0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9G T1JNQVRfQVJHQjg4ODg7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfQkdSWDg4ODg6DQo+ ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfQkdSQTg4ODg6DQo+ID4gKyAgICAgICAgICAgICAg IHJldHVybiBSRE1BX0lOUFVUX0ZPUk1BVF9BUkdCODg4OCB8DQo+ID4gUkRNQV9JTlBVVF9TV0FQ Ow0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4Og0KPiA+ICsgICAgICAgY2Fz ZSBEUk1fRk9STUFUX0FSR0I4ODg4Og0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gUkRNQV9J TlBVVF9GT1JNQVRfUkdCQTg4ODg7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfWEJHUjg4 ODg6DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfQUJHUjg4ODg6DQo+ID4gKyAgICAgICAg ICAgICAgIHJldHVybiBSRE1BX0lOUFVUX0ZPUk1BVF9SR0JBODg4OCB8DQo+ID4gUkRNQV9JTlBV VF9TV0FQOw0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX0FCR1IyMTAxMDEwOg0KPiA+ICsg ICAgICAgICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JNQVRfUkdCQTg4ODggfCBSRE1BX0lO UFVUX1NXQVANCj4gPiB8DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRE1B X0lOUFVUXzEwQklUOw0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX0FSR0IyMTAxMDEwOg0K PiA+ICsgICAgICAgICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JNQVRfUkdCQTg4ODggfA0K PiA+IFJETUFfSU5QVVRfMTBCSVQ7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfUkdCQTEw MTAxMDI6DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBSRE1BX0lOUFVUX0ZPUk1BVF9BUkdC ODg4OCB8IFJETUFfSU5QVVRfU1dBUA0KPiA+IHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJETUFfSU5QVVRfMTBCSVQ7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRf QkdSQTEwMTAxMDI6DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBSRE1BX0lOUFVUX0ZPUk1B VF9BUkdCODg4OCB8DQo+ID4gUkRNQV9JTlBVVF8xMEJJVDsNCj4gPiArICAgICAgIGNhc2UgRFJN X0ZPUk1BVF9VWVZZOg0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JN QVRfVVlWWTsNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9ZVVlWOg0KPiA+ICsgICAgICAg ICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JNQVRfWVVZMjsNCj4gPiArICAgICAgIH0NCj4g PiArfQ0KPiA+ICsNCj4gPiArdm9pZCBtdGtfbWRwX3JkbWFfc3RhcnQodm9pZCBfX2lvbWVtICpi YXNlLCBzdHJ1Y3QgY21kcV9wa3QNCj4gPiAqY21kcV9wa3QsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGNtZHFfY2xpZW50X3JlZyAqY21kcV9iYXNlKQ0KPiA+ICt7DQo+ID4g KyAgICAgICB1bnNpZ25lZCBpbnQgaW50ZW4gPSBJUlFfSU5UX0VOX0FMTDsNCj4gPiArDQo+ID4g KyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIGludGVuLCBjbWRxX2Jhc2UsIGJh c2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTURQX1JETUFfSU5URVJSVVBUX0VO QUJMRSwNCj4gPiBJUlFfSU5UX0VOX0FMTCk7DQo+IA0KPiBXaHkgZG8geW91IGVuYWJsZSByZG1h IGludGVycnVwdD8NCj4gDQpJIHdpbGwgcmVtb3ZlIGl0Lg0KDQo+ID4gKyAgICAgICBtdGtfZGRw X3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9ST1RfRU5BQkxFLA0KPiA+IDEp LCBjbWRxX2Jhc2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZSwgTURQX1JE TUFfRU4sDQo+ID4gUkVHX0ZMRF9NQVNLKEZMRF9ST1RfRU5BQkxFKSk7DQo+ID4gK30NCj4gPiAr DQo+ID4gK3ZvaWQgbXRrX21kcF9yZG1hX3N0b3Aodm9pZCBfX2lvbWVtICpiYXNlLCBzdHJ1Y3Qg Y21kcV9wa3QNCj4gPiAqY21kcV9wa3QsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgY21kcV9jbGllbnRfcmVnICpjbWRxX2Jhc2UpDQo+ID4gK3sNCj4gPiArICAgICAgIG10a19k ZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgUkVHX0ZMRF9WQUwoRkxEX1JPVF9FTkFCTEUsDQo+ID4g MCksIGNtZHFfYmFzZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLCBNRFBf UkRNQV9FTiwNCj4gPiBSRUdfRkxEX01BU0soRkxEX1JPVF9FTkFCTEUpKTsNCj4gPiArICAgICAg IG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgMCwgY21kcV9iYXNlLCBiYXNlLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgIE1EUF9SRE1BX0lOVEVSUlVQVF9FTkFCTEUsDQo+ID4g SVJRX0lOVF9FTl9BTEwpOw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0 LCAwLCBjbWRxX2Jhc2UsIGJhc2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTURQ X1JETUFfSU5URVJSVVBUX1NUQVRVUywNCj4gPiBJUlFfSU5UX0VOX0FMTCk7DQo+ID4gKyAgICAg ICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIDEsIGNtZHFfYmFzZSwgYmFzZSwNCj4gPiBN RFBfUkRNQV9SRVNFVCwgfjApOw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFf cGt0LCAwLCBjbWRxX2Jhc2UsIGJhc2UsDQo+ID4gTURQX1JETUFfUkVTRVQsIH4wKTsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArdm9pZCBtdGtfbWRwX3JkbWFfZmlmb19jb25maWcodm9pZCBfX2lvbWVt ICpiYXNlLCBzdHJ1Y3QgY21kcV9wa3QNCj4gPiAqY21kcV9wa3QsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGNtZHFfY2xpZW50X3JlZyAqY21kcV9iYXNlLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBtdGtfbWRwX3JkbWFf ZmlmbyAqZmlmbykNCj4gDQo+IFdoeSBkbyB5b3UgcGFzcyBmaWZvIGNvbmZpZyBmcm9tIG92bCB0 byByZG1hPw0KPiBJIHRoaW5rIGp1c3QgcmRtYSBrbm93IGhvdyB0byBzZXQgdGhlc2UgZmlmbyBw YXJhbWV0ZXIuDQo+IA0KSSB3aWxsIG1vdmUgZmlmbyBzZXR0aW5nIGluc2lkZSB0aGUgcmRtYSBk cml2ZXIuDQoNCj4gPiArew0KPiA+ICsgICAgICAgaW50IHJlZzsNCj4gPiArICAgICAgIGludCBy ZWdfdmFsOw0KPiA+ICsgICAgICAgaW50IHJlZ19tYXNrOw0KPiA+ICsNCj4gPiArICAgICAgIHJl ZyA9IE1EUF9SRE1BX0dNQ0lGX0NPTjsNCj4gPiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxEX1ZB TChGTERfUkRfUkVRX1RZUEUsIGZpZm8tDQo+ID4gPnJlYWRfcmVxdWVzdF90eXBlKSB8DQo+ID4g KyAgICAgICAgICAgICAgICAgUkVHX0ZMRF9WQUwoRkxEX0NPTU1BTkRfRElWLCBmaWZvLT5jb21t YW5kX2RpdikgfA0KPiA+ICsgICAgICAgICAgICAgICAgIFJFR19GTERfVkFMKEZMRF9FWFRfUFJF VUxUUkFfRU4sIGZpZm8tDQo+ID4gPmV4dF9wcmV1dHJhX2VuKSB8DQo+ID4gKyAgICAgICAgICAg ICAgICAgUkVHX0ZMRF9WQUwoRkxEX1VMVFJBX0VOLCBmaWZvLT51bHRyYV9lbikgfA0KPiA+ICsg ICAgICAgICAgICAgICAgIFJFR19GTERfVkFMKFBSRV9VTFRSQV9FTiwgZmlmby0+cHJlX3VsdHJh X2VuKSB8DQo+ID4gKyAgICAgICAgICAgICAgICAgUkVHX0ZMRF9WQUwoRkxEX0VYVF9VTFRSQV9F TiwgZmlmby0NCj4gPiA+ZXh0X3VsdHJhX2VuKTsNCj4gPiArICAgICAgIHJlZ19tYXNrID0gUkVH X0ZMRF9NQVNLKEZMRF9SRF9SRVFfVFlQRSkgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBSRUdf RkxEX01BU0soRkxEX0NPTU1BTkRfRElWKSB8DQo+ID4gKyAgICAgICAgICAgICAgICAgIFJFR19G TERfTUFTSyhGTERfRVhUX1BSRVVMVFJBX0VOKSB8DQo+ID4gKyAgICAgICAgICAgICAgICAgIFJF R19GTERfTUFTSyhGTERfVUxUUkFfRU4pIHwNCj4gPiArICAgICAgICAgICAgICAgICAgUkVHX0ZM RF9NQVNLKFBSRV9VTFRSQV9FTikgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBSRUdfRkxEX01B U0soRkxEX0VYVF9VTFRSQV9FTik7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21k cV9wa3QsIHJlZ192YWwsIGNtZHFfYmFzZSwgYmFzZSwgcmVnLA0KPiA+IHJlZ19tYXNrKTsNCj4g PiArDQo+ID4gKyAgICAgICByZWcgPSBNRFBfUkRNQV9ETUFfQ09OXzA7DQo+ID4gKyAgICAgICBy ZWdfdmFsID0gUkVHX0ZMRF9WQUwoRkxEX0VYVFJEX0FSQl9NQVgsIGZpZm8tDQo+ID4gPmV4dHJk X2FyYl9tYXhfMCkgfA0KPiA+ICsgICAgICAgICAgICAgICAgIFJFR19GTERfVkFMKEZMRF9CVUZf UkVTVl9TSVpFLCBmaWZvLQ0KPiA+ID5idWZfcmVzdl9zaXplXzApIHwNCj4gPiArICAgICAgICAg ICAgICAgICBSRUdfRkxEX1ZBTChGTERfSVNTVUVfUkVRX1RILCBmaWZvLQ0KPiA+ID5pc3N1ZV9y ZXFfdGhfMCk7DQo+ID4gKyAgICAgICByZWdfbWFzayA9IFJFR19GTERfTUFTSyhGTERfRVhUUkRf QVJCX01BWCkgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX0JVRl9S RVNWX1NJWkUpIHwNCj4gPiArICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9JU1NV RV9SRVFfVEgpOw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCByZWdf dmFsLCBjbWRxX2Jhc2UsIGJhc2UsIHJlZywNCj4gPiByZWdfbWFzayk7DQo+ID4gKw0KPiA+ICsg ICAgICAgcmVnID0gTURQX1JETUFfVVRSQV9IX0NPTl8wOw0KPiA+ICsgICAgICAgcmVnX3ZhbCA9 IFJFR19GTERfVkFMKEZMRF9QUkVVVFJBX0hfT0ZTXzAsIGZpZm8tDQo+ID4gPnVsdHJhX2hfY29u XzApOw0KPiA+ICsgICAgICAgcmVnX21hc2sgPSBSRUdfRkxEX01BU0soRkxEX1BSRVVUUkFfSF9P RlNfMCk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIHJlZ192YWws IGNtZHFfYmFzZSwgYmFzZSwgcmVnLA0KPiA+IHJlZ19tYXNrKTsNCj4gPiArDQo+ID4gKyAgICAg ICByZWcgPSBNRFBfUkRNQV9VVFJBX0xfQ09OXzA7DQo+ID4gKyAgICAgICByZWdfdmFsID0gUkVH X0ZMRF9WQUwoRkxEX1BSRVVUUkFfTF9PRlNfMCwgZmlmby0NCj4gPiA+dWx0cmFfbF9jb25fMCk7 DQo+ID4gKyAgICAgICByZWdfbWFzayA9IFJFR19GTERfTUFTSyhGTERfUFJFVVRSQV9MX09GU18w KTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgcmVnX3ZhbCwgY21k cV9iYXNlLCBiYXNlLCByZWcsDQo+ID4gcmVnX21hc2spOw0KPiA+ICsNCj4gPiArICAgICAgIHJl ZyA9IE1EUF9SRE1BX0RNQUJVRl9DT05fMTsNCj4gPiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxE X1ZBTChGTERfRVhUUkRfQVJCX01BWF8xLCAwKSB8DQo+ID4gKyAgICAgICAgICAgICAgICAgUkVH X0ZMRF9WQUwoRkxEX0JVRl9SRVNWX1NJWkVfMSwgMCkgfA0KPiA+ICsgICAgICAgICAgICAgICAg IFJFR19GTERfVkFMKEZMRF9JU1NVRV9SRVFfVEhfMSwgMCk7DQo+ID4gKyAgICAgICByZWdfbWFz ayA9IFJFR19GTERfTUFTSyhGTERfRVhUUkRfQVJCX01BWF8xKSB8DQo+ID4gKyAgICAgICAgICAg ICAgICAgIFJFR19GTERfTUFTSyhGTERfQlVGX1JFU1ZfU0laRV8xKSB8DQo+ID4gKyAgICAgICAg ICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfSVNTVUVfUkVRX1RIXzEpOw0KPiA+ICsgICAgICAg bXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCByZWdfdmFsLCBjbWRxX2Jhc2UsIGJhc2UsIHJl ZywNCj4gPiByZWdfbWFzayk7DQo+ID4gKw0KPiA+ICsgICAgICAgcmVnID0gTURQX1JETUFfVUxU UkFfVEhfSElHSF9DT05fMTsNCj4gPiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxEX1ZBTChGTERf UFJFX1VMVFJBX1RIX0hJR0hfT0ZTXzEsIDApOw0KPiA+ICsgICAgICAgcmVnX21hc2sgPSBSRUdf RkxEX01BU0soRkxEX1BSRV9VTFRSQV9USF9ISUdIX09GU18xKTsNCj4gPiArICAgICAgIG10a19k ZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgcmVnX3ZhbCwgY21kcV9iYXNlLCBiYXNlLCByZWcsDQo+ ID4gcmVnX21hc2spOw0KPiA+ICsNCj4gPiArICAgICAgIHJlZyA9IE1EUF9SRE1BX1VMVFJBX1RI X0xPV19DT05fMTsNCj4gPiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxEX1ZBTChGTERfUFJFX1VM VFJBX1RIX0xPV19PRlNfMSwgMCk7DQo+ID4gKyAgICAgICByZWdfbWFzayA9IFJFR19GTERfTUFT SyhGTERfUFJFX1VMVFJBX1RIX0xPV19PRlNfMSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRl X21hc2soY21kcV9wa3QsIHJlZ192YWwsIGNtZHFfYmFzZSwgYmFzZSwgcmVnLA0KPiA+IHJlZ19t YXNrKTsNCj4gPiArDQo+ID4gKyAgICAgICByZWcgPSBNRFBfUkRNQV9ETUFCVUZfQ09OXzI7DQo+ ID4gKyAgICAgICByZWdfdmFsID0gUkVHX0ZMRF9WQUwoRkxEX0VYVFJEX0FSQl9NQVhfMiwgMCkg fA0KPiA+ICsgICAgICAgICAgICAgICAgIFJFR19GTERfVkFMKEZMRF9CVUZfUkVTVl9TSVpFXzIs IDApIHwNCj4gPiArICAgICAgICAgICAgICAgICBSRUdfRkxEX1ZBTChGTERfSVNTVUVfUkVRX1RI XzIsIDApOw0KPiA+ICsgICAgICAgcmVnX21hc2sgPSBSRUdfRkxEX01BU0soRkxEX0VYVFJEX0FS Ql9NQVhfMikgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX0JVRl9S RVNWX1NJWkVfMikgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX0lT U1VFX1JFUV9USF8yKTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwg cmVnX3ZhbCwgY21kcV9iYXNlLCBiYXNlLCByZWcsDQo+ID4gcmVnX21hc2spOw0KPiA+ICsNCj4g PiArICAgICAgIHJlZyA9IE1EUF9SRE1BX1VUUkFfSF9DT05fMjsNCj4gPiArICAgICAgIHJlZ192 YWwgPSBSRUdfRkxEX1ZBTChGTERfUFJFX1VMVFJBX1RIX0hJR0hfT0ZTXzIsIDApOw0KPiA+ICsg ICAgICAgcmVnX21hc2sgPSBSRUdfRkxEX01BU0soRkxEX1BSRV9VTFRSQV9USF9ISUdIX09GU18y KTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgcmVnX3ZhbCwgY21k cV9iYXNlLCBiYXNlLCByZWcsDQo+ID4gcmVnX21hc2spOw0KPiA+ICsNCj4gPiArICAgICAgIHJl ZyA9IE1EUF9SRE1BX1VMVFJBX1RIX0xPV19DT05fMjsNCj4gPiArICAgICAgIHJlZ192YWwgPSBS RUdfRkxEX1ZBTChGTERfUFJFX1VMVFJBX1RIX0xPV19PRlNfMiwgMCk7DQo+ID4gKyAgICAgICBy ZWdfbWFzayA9IFJFR19GTERfTUFTSyhGTERfUFJFX1VMVFJBX1RIX0xPV19PRlNfMik7DQo+ID4g KyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIHJlZ192YWwsIGNtZHFfYmFzZSwg YmFzZSwgcmVnLA0KPiA+IHJlZ19tYXNrKTsNCj4gPiArDQo+ID4gKyAgICAgICByZWcgPSBNRFBf UkRNQV9ETUFCVUZfQ09OXzM7DQo+ID4gKyAgICAgICByZWdfdmFsID0gUkVHX0ZMRF9WQUwoRkxE X0VYVFJEX0FSQl9NQVhfMywgMCkgfA0KPiA+ICsgICAgICAgICAgICAgICAgIFJFR19GTERfVkFM KEZMRF9CVUZfUkVTVl9TSVpFXzMsIDApIHwNCj4gPiArICAgICAgICAgICAgICAgICBSRUdfRkxE X1ZBTChGTERfSVNTVUVfUkVRX1RIXzMsIDApOw0KPiA+ICsgICAgICAgcmVnX21hc2sgPSBSRUdf RkxEX01BU0soRkxEX0VYVFJEX0FSQl9NQVhfMykgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBS RUdfRkxEX01BU0soRkxEX0JVRl9SRVNWX1NJWkVfMykgfA0KPiA+ICsgICAgICAgICAgICAgICAg ICBSRUdfRkxEX01BU0soRkxEX0lTU1VFX1JFUV9USF8zKTsNCj4gPiArICAgICAgIG10a19kZHBf d3JpdGVfbWFzayhjbWRxX3BrdCwgcmVnX3ZhbCwgY21kcV9iYXNlLCBiYXNlLCByZWcsDQo+ID4g cmVnX21hc2spOw0KPiA+ICsNCj4gPiArICAgICAgIHJlZyA9IE1EUF9SRE1BX1VUUkFfSF9DT05f MzsNCj4gPiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxEX1ZBTChGTERfUFJFX1VMVFJBX1RIX0hJ R0hfT0ZTXzMsIDApOw0KPiA+ICsgICAgICAgcmVnX21hc2sgPSBSRUdfRkxEX01BU0soRkxEX1BS RV9VTFRSQV9USF9ISUdIX09GU18zKTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhj bWRxX3BrdCwgcmVnX3ZhbCwgY21kcV9iYXNlLCBiYXNlLCByZWcsDQo+ID4gcmVnX21hc2spOw0K PiA+ICsNCj4gPiArICAgICAgIHJlZyA9IE1EUF9SRE1BX1VMVFJBX1RIX0xPV19DT05fMzsNCj4g PiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxEX1ZBTChGTERfUFJFX1VMVFJBX1RIX0xPV19PRlNf MywgMCk7DQo+ID4gKyAgICAgICByZWdfbWFzayA9IFJFR19GTERfTUFTSyhGTERfUFJFX1VMVFJB X1RIX0xPV19PRlNfMyk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3Qs IHJlZ192YWwsIGNtZHFfYmFzZSwgYmFzZSwgcmVnLA0KPiA+IHJlZ19tYXNrKTsNCj4gPiArfQ0K PiA+ICsNCj4gPiArdm9pZCBtdGtfbWRwX3JkbWFfY29uZmlnKHZvaWQgX19pb21lbSAqYmFzZSwg c3RydWN0DQo+ID4gbXRrX21kcF9yZG1hX2NmZyAqY2ZnLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0LA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgY21kcV9jbGllbnRfcmVnICpjbWRxX2Jhc2UpDQo+ID4gK3sNCj4gPiAr ICAgICAgIHVuc2lnbmVkIGludCBzcmNfcGl0Y2hfdXYgPSByZG1hX2dldF91dl9waXRjaChjZmct PmZtdCwNCj4gPiBjZmctPnNvdXJjZV93aWR0aCk7DQo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQg c3JjX3BpdGNoX3kgPSByZG1hX2dldF95X3BpdGNoKGNmZy0+Zm10LCBjZmctDQo+ID4gPnNvdXJj ZV93aWR0aCk7DQo+IA0KPiBUaGlzIGlzIGdvdCBmcm9tIG10a19wbGFuZV9hdG9taWNfdXBkYXRl KCkuDQo+IA0KT0ssSSB3aWxsIG1vZGlmeSBpdC4NCg0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50 IGhfc2hpZnRfdXYgPSByZG1hX2dldF9ob3Jpem9udGFsX3NoaWZ0X3V2KGNmZy0NCj4gPiA+Zm10 KTsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCB2X3NoaWZ0X3V2ID0gcmRtYV9nZXRfdmVydGlj YWxfc2hpZnRfdXYoY2ZnLQ0KPiA+ID5mbXQpOw0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IGJw cF91diA9IHJkbWFfZ2V0X2JpdHNfcGVyX3BpeGVsX3V2KGNmZy0+Zm10KTsNCj4gPiArICAgICAg IHVuc2lnbmVkIGludCBibG9ja19oID0gcmRtYV9nZXRfYmxvY2tfaChjZmctPmJsb2NrX3NpemUp Ow0KPiANCj4gYmxvY2tfaCA9IDA7DQpPSywgSSB3aWxsIG1vZGlmeSBpdC4NCj4gDQo+ID4gKyAg ICAgICB1bnNpZ25lZCBpbnQgYnBwX3kgPSByZG1hX2dldF9iaXRzX3Blcl9waXhlbF95KGNmZy0+ Zm10KTsNCj4gDQo+IGRybV9mb3JtYXRfaW5mbygpLg0KT0ssIEkgd2lsbCBtb2RpZnkgaXQuDQo+ IA0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IHlfc3RhcnRfbGluZSA9IDA7DQo+ID4gKyAgICAg ICB1bnNpZ25lZCBpbnQgb2Zmc2V0X3kgPSAwOw0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IG9m ZnNldF91ID0gMDsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCBvZmZzZXRfdiA9IDA7DQo+ID4g Kw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LA0KPiA+IFJFR19GTERf VkFMKEZMRF9VTklGT1JNX0NPTkZJRywgMSksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgY21kcV9iYXNlLCBiYXNlLCBNRFBfUkRNQV9TUkNfQ09OLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfVU5JRk9STV9DT05GSUcpKTsNCj4gPiArICAg ICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgcmRtYV9mbXRfY29udmVydChjZmctPmZt dCksDQo+ID4gY21kcV9iYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2Us IE1EUF9SRE1BX1NSQ19DT04sDQo+ID4gUkVHX0ZMRF9NQVNLKEZMRF9TV0FQKSB8DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9TUkNfRk9STUFUKSB8DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9CSVRfTlVNQkVS KSk7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKCFjZmctPmNzY19lbmFibGUgJiYgd2l0aF9hbHBo YShjZmctPmZtdCkpDQo+ID4gKyAgICAgICAgICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRx X3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChGTERfT1VUUFVUX0FSR0IsIDEpLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kcV9iYXNlLCBiYXNlLA0KPiA+IE1EUF9SRE1B X1NSQ19DT04sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxE X01BU0soRkxEX09VVFBVVF9BUkdCKSk7DQo+ID4gKyAgICAgICBlbHNlDQo+ID4gKyAgICAgICAg ICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChGTERf T1VUUFVUX0FSR0IsIDApLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y21kcV9iYXNlLCBiYXNlLA0KPiA+IE1EUF9SRE1BX1NSQ19DT04sDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX09VVFBVVF9BUkdCKSk7DQo+ ID4gKw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCBjZmctPmFkZHIw LCBjbWRxX2Jhc2UsIGJhc2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTURQX1JE TUFfU1JDX0JBU0VfMCwNCj4gPiBSRUdfRkxEX01BU0soRkxEX1NSQ19CQVNFXzApKTsNCj4gPiAr ICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgY2ZnLT5hZGRyMSwgY21kcV9iYXNl LCBiYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIE1EUF9SRE1BX1NSQ19CQVNF XzEsDQo+ID4gUkVHX0ZMRF9NQVNLKEZMRF9TUkNfQkFTRV8xKSk7DQo+ID4gKyAgICAgICBtdGtf ZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIGNmZy0+YWRkcjIsIGNtZHFfYmFzZSwgYmFzZSwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICBNRFBfUkRNQV9TUkNfQkFTRV8yLA0KPiA+IFJF R19GTERfTUFTSyhGTERfU1JDX0JBU0VfMikpOw0KPiA+ICsNCj4gPiArICAgICAgIG10a19kZHBf d3JpdGVfbWFzayhjbWRxX3BrdCwgc3JjX3BpdGNoX3ksIGNtZHFfYmFzZSwgYmFzZSwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICBNRFBfUkRNQV9NRl9CS0dEX1NJWkVfSU5fQllURSwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX01GX0JLR0Rf V0IpKTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgc3JjX3BpdGNo X3V2LCBjbWRxX2Jhc2UsIGJhc2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTURQ X1JETUFfU0ZfQktHRF9TSVpFX0lOX0JZVEUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgUkVHX0ZMRF9NQVNLKEZMRF9TRl9CS0dEX1dCKSk7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYg KGNmZy0+ZW5jb2RlX3R5cGUgPT0gUkRNQV9FTkNPREVfQUZCQykgew0KPiANCj4gTmV2ZXIgYmUg aGVyZSwgc28gcmVtb3ZlLg0KPiANCk9LLCBJIHdpbGwgcmVtb3ZlIGl0Lg0KDQo+ID4gKyAgICAg ICAgICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChG TERfTUZfQktHRF9XUCwgY2ZnLT5zb3VyY2Vfd2lkdGgpLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY21kcV9iYXNlLCBiYXNlLA0KPiA+IE1EUF9SRE1BX01GX0JLR0Rf U0laRV9JTl9QSVhFTCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTERfTUFTSyhGTERfTUZfQktHRF9XUCkpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRw X3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwoRkxEX0JLR0RfSFAsIGNmZy0+ aGVpZ2h0KSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFz ZSwgYmFzZSwNCj4gPiBNRFBfUkRNQV9NRl9CS0dEX0hfU0laRV9JTl9QSVhFTCwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfQktHRF9IUCkp Ow0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4g UkVHX0ZMRF9WQUwoRkxEX0FGQkNfWVVWX1RSQU5TRk9STSwgMSksDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbWRxX2Jhc2UsIGJhc2UsDQo+ID4gTURQX1JETUFfQ09N UF9DT04sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01B U0soRkxEX0FGQkNfWVVWX1RSQU5TRg0KPiA+IE9STSkpOw0KPiA+ICsgICAgICAgICAgICAgICBt dGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwoRkxEX1VGQkRDX0VO LCAxKSwgY21kcV9iYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YmFzZSwgTURQX1JETUFfQ09NUF9DT04sDQo+ID4gUkVHX0ZMRF9NQVNLKEZMRF9VRkJEQ19FTikp Ow0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4g UkVHX0ZMRF9WQUwoRkxEX0FGQkNfRU4sIDEpLCBjbWRxX2Jhc2UsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBiYXNlLCBNRFBfUkRNQV9DT01QX0NPTiwNCj4gPiBSRUdf RkxEX01BU0soRkxEX0FGQkNfRU4pKTsNCj4gPiArICAgICAgIH0gZWxzZSB7DQo+ID4gKyAgICAg ICAgICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChG TERfQUZCQ19ZVVZfVFJBTlNGT1JNLCAwKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwNCj4gPiBNRFBfUkRNQV9DT01QX0NPTiwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfQUZCQ19Z VVZfVFJBTlNGDQo+ID4gT1JNKSk7DQo+ID4gKyAgICAgICAgICAgICAgIG10a19kZHBfd3JpdGVf bWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChGTERfVUZCRENfRU4sIDApLCBjbWRxX2Jh c2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLCBNRFBfUkRN QV9DT01QX0NPTiwNCj4gPiBSRUdfRkxEX01BU0soRkxEX1VGQkRDX0VOKSk7DQo+ID4gKyAgICAg ICAgICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChG TERfQUZCQ19FTiwgMCksIGNtZHFfYmFzZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJhc2UsIE1EUF9SRE1BX0NPTVBfQ09OLA0KPiA+IFJFR19GTERfTUFTSyhGTERf QUZCQ19FTikpOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIG10a19kZHBfd3Jp dGVfbWFzayhjbWRxX3BrdCwgUkVHX0ZMRF9WQUwoRkxEX09VVFBVVF8xMEIsDQo+ID4gMSksIGNt ZHFfYmFzZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLCBNRFBfUkRNQV9D T04sDQo+ID4gUkVHX0ZMRF9NQVNLKEZMRF9PVVRQVVRfMTBCKSk7DQo+ID4gKyAgICAgICBtdGtf ZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9TSU1QTEVfTU9ERSwNCj4g PiAxKSwgY21kcV9iYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UsIE1E UF9SRE1BX0NPTiwNCj4gPiBSRUdfRkxEX01BU0soRkxEX1NJTVBMRV9NT0RFKSk7DQo+ID4gKyAg ICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9UUkFOU19F TiwgY2ZnLQ0KPiA+ID5jc2NfZW5hYmxlKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICBjbWRxX2Jhc2UsIGJhc2UsIE1EUF9SRE1BX1RSQU5TRk9STV8wLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfVFJBTlNfRU4pKTsNCj4gPiArICAgICAg IG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChGTERfSU5UX01B VFJJWF9TRUwsIGNmZy0+cHJvZmlsZSksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg Y21kcV9iYXNlLCBiYXNlLCBNRFBfUkRNQV9UUkFOU0ZPUk1fMCwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX0lOVF9NQVRSSVhfU0VMKSk7DQo+ID4gKw0K PiA+ICsgICAgICAgaWYgKGNmZy0+YmxvY2tfc2l6ZSA9PSBSRE1BX0JMT0NLX05PTkUpIHsNCj4g PiArICAgICAgICAgICAgICAgeV9zdGFydF9saW5lID0gY2ZnLT55X3RvcDsNCj4gPiArDQo+ID4g KyAgICAgICAgICAgICAgIG9mZnNldF95ICA9IChjZmctPnhfbGVmdCAqIGJwcF95ID4+IDMpICsN Cj4gPiB5X3N0YXJ0X2xpbmUgKiBzcmNfcGl0Y2hfeTsNCj4gPiArICAgICAgICAgICAgICAgb2Zm c2V0X3UgID0gKChjZmctPnhfbGVmdCA+PiBoX3NoaWZ0X3V2KSAqIGJwcF91dg0KPiA+ID4+IDMp ICsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgKHlfc3RhcnRfbGluZSA+PiB2X3No aWZ0X3V2KSAqDQo+ID4gc3JjX3BpdGNoX3V2Ow0KPiA+ICsgICAgICAgICAgICAgICBvZmZzZXRf diAgPSAoKGNmZy0+eF9sZWZ0ID4+IGhfc2hpZnRfdXYpICogYnBwX3V2DQo+ID4gPj4gMykgKw0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAoeV9zdGFydF9saW5lID4+IHZfc2hpZnRf dXYpICoNCj4gPiBzcmNfcGl0Y2hfdXY7DQo+ID4gKyAgICAgICB9IGVsc2Ugew0KPiANCj4gTmV2 ZXIgYmUgaGVyZSwgc28gcmVtb3ZlLg0KDQpPSywgSSB3aWxsIHJlbW92ZSBpdC4NCj4gDQo+ID4g KyAgICAgICAgICAgICAgIG9mZnNldF95ID0gKGNmZy0+eF9sZWZ0ICogYmxvY2tfaCAqIGJwcF95 ID4+IDMpICsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAoY2ZnLT55X3RvcCkgKiBz cmNfcGl0Y2hfeTsNCj4gPiArICAgICAgICAgICAgICAgb2Zmc2V0X3UgPSAoKGNmZy0+eF9sZWZ0 ID4+IGhfc2hpZnRfdXYpICogKGJsb2NrX2gNCj4gPiA+PiB2X3NoaWZ0X3V2KSAqDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgYnBwX3V2ID4+IDMpICsgKGNmZy0+eV90b3ApICoNCj4g PiBzcmNfcGl0Y2hfdXY7DQo+ID4gKyAgICAgICAgICAgICAgIG9mZnNldF92ID0gKChjZmctPnhf bGVmdCA+PiBoX3NoaWZ0X3V2KSAqIChibG9ja19oDQo+ID4gPj4gdl9zaGlmdF91dikgKg0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGJwcF91diA+PiAzKSArIChjZmctPnlfdG9wKSAq DQo+ID4gc3JjX3BpdGNoX3V2Ow0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIGlm IChjZmctPmVuY29kZV90eXBlID09IFJETUFfRU5DT0RFX0FGQkMpIHsNCj4gDQo+IE5ldmVyIGJl IGhlcmUsIHNvIHJlbW92ZS4NCg0KT0ssIEkgd2lsbCByZW1vdmUgaXQuDQo+IA0KPiA+ICsgICAg ICAgICAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwo RkxEX1NSQ19PRkZTRVRfV1AsIGNmZy0+eF9sZWZ0KSwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwNCj4gPiBNRFBfUkRNQV9TUkNfT0ZGU0VU X1dQLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNL KEZMRF9TUkNfT0ZGU0VUX1dQKSkNCj4gPiA7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBt dGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwoRkxEX1NSQ19PRkZT RVRfSFAsIGNmZy0+eV90b3ApLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY21kcV9iYXNlLCBiYXNlLA0KPiA+IE1EUF9SRE1BX1NSQ19PRkZTRVRfSFAsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX1NSQ19PRkZT RVRfSFApKQ0KPiA+IDsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICBtdGtfZGRw X3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9TUkNfT0ZGU0VUXzAsDQo+ID4g b2Zmc2V0X3kpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFz ZSwgTURQX1JETUFfU1JDX09GRlNFVF8wLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg IFJFR19GTERfTUFTSyhGTERfU1JDX09GRlNFVF8wKSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dy aXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9TUkNfT0ZGU0VUXzEsDQo+ID4gb2Zm c2V0X3UpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwg TURQX1JETUFfU1JDX09GRlNFVF8xLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTERfTUFTSyhGTERfU1JDX09GRlNFVF8xKSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRl X21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9TUkNfT0ZGU0VUXzIsDQo+ID4gb2Zmc2V0 X3YpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwgTURQ X1JETUFfU1JDX09GRlNFVF8yLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19G TERfTUFTSyhGTERfU1JDX09GRlNFVF8yKSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21h c2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9NRl9TUkNfVywgY2ZnLQ0KPiA+ID53aWR0aCks DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgY21kcV9iYXNlLCBiYXNlLCBNRFBfUkRN QV9NRl9TUkNfU0laRSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01B U0soRkxEX01GX1NSQ19XKSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9w a3QsIFJFR19GTERfVkFMKEZMRF9NRl9TUkNfSCwgY2ZnLQ0KPiA+ID5oZWlnaHQpLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwgTURQX1JETUFfTUZfU1JD X1NJWkUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9N Rl9TUkNfSCkpOw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCBSRUdf RkxEX1ZBTChGTERfTUZfQ0xJUF9XLA0KPiA+IGNmZy0+d2lkdGgpLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwgTURQX1JETUFfTUZfQ0xJUF9TSVpFLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfTUZfQ0xJUF9X KSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFM KEZMRF9NRl9DTElQX0gsDQo+ID4gY2ZnLT5oZWlnaHQpLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwgTURQX1JETUFfTUZfQ0xJUF9TSVpFLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfTUZfQ0xJUF9IKSk7DQo+ ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9N Rl9PRkZTRVRfV18xLA0KPiA+IDApLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNt ZHFfYmFzZSwgYmFzZSwgTURQX1JETUFfTUZfT0ZGU0VUXzEsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9NRl9PRkZTRVRfV18xKSk7DQo+ID4gKyAgICAg ICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9NRl9PRkZTRVRf SF8xLA0KPiA+IDApLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwg YmFzZSwgTURQX1JETUFfTUZfT0ZGU0VUXzEsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgUkVHX0ZMRF9NQVNLKEZMRF9NRl9PRkZTRVRfSF8xKSk7DQo+ID4gKyAgICAgICBtdGtfZGRw X3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwoRkxEX0xJTkVfVEhSRVNIT0xE LCBjZmctPmhlaWdodCksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgY21kcV9iYXNl LCBiYXNlLCBNRFBfUkRNQV9UQVJHRVRfTElORSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICBSRUdfRkxEX01BU0soRkxEX0xJTkVfVEhSRVNIT0xEKSk7DQo+ID4gKyAgICAgICBtdGtf ZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwoRkxEX1RBUkdFVF9MSU5F X0VOLCAxKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBjbWRxX2Jhc2UsIGJhc2Us IE1EUF9SRE1BX1RBUkdFVF9MSU5FLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTERfTUFTSyhGTERfVEFSR0VUX0xJTkVfRU4pKTsNCj4gPiArfQ0KPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX21kcF9yZG1hLmgNCj4gPiBiL2RyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JkbWEuaA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi5jMTZiZmI3MTY2MTANCj4gPiAtLS0gL2Rldi9udWxs DQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmRtYS5oDQo+ID4g QEAgLTAsMCArMSwxMDkgQEANCj4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjAtb25seSAqLw0KPiA+ICsvKg0KPiA+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjEgTWVkaWFUZWsg SW5jLg0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNpZm5kZWYgX19NVEtfTURQX1JETUFfSF9fDQo+ ID4gKyNkZWZpbmUgX19NVEtfTURQX1JETUFfSF9fDQo+ID4gKw0KPiA+ICtlbnVtIHJkbWFfZm9y bWF0IHsNCj4gPiArICAgICAgIFJETUFfSU5QVVRfRk9STUFUX1JHQjU2NSA9IDAsDQo+ID4gKyAg ICAgICBSRE1BX0lOUFVUX0ZPUk1BVF9SR0I4ODggPSAxLA0KPiA+ICsgICAgICAgUkRNQV9JTlBV VF9GT1JNQVRfUkdCQTg4ODggPSAyLA0KPiA+ICsgICAgICAgUkRNQV9JTlBVVF9GT1JNQVRfQVJH Qjg4ODggPSAzLA0KPiA+ICsgICAgICAgUkRNQV9JTlBVVF9GT1JNQVRfVVlWWSA9IDQsDQo+ID4g KyAgICAgICBSRE1BX0lOUFVUX0ZPUk1BVF9ZVVkyID0gNSwNCj4gPiArICAgICAgIFJETUFfSU5Q VVRfRk9STUFUX1k4ID0gNywNCj4gPiArICAgICAgIFJETUFfSU5QVVRfRk9STUFUX1lWMTIgPSA4 LA0KPiA+ICsgICAgICAgUkRNQV9JTlBVVF9GT1JNQVRfVVlWWV8zUEwgPSA5LA0KPiA+ICsgICAg ICAgUkRNQV9JTlBVVF9GT1JNQVRfTlYxMiA9IDEyLA0KPiA+ICsgICAgICAgUkRNQV9JTlBVVF9G T1JNQVRfVVlWWV8yUEwgPSAxMywNCj4gPiArICAgICAgIFJETUFfSU5QVVRfRk9STUFUX1k0MTAg PSAxNA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArZW51bSByZG1hX3Byb2ZpbGUgew0KPiA+ICsgICAg ICAgUkRNQV9DU0NfUkdCX1RPX0pQRUcgPSAwLA0KPiA+ICsgICAgICAgUkRNQV9DU0NfUkdCX1RP X0ZVTEw3MDkgPSAxLA0KPiA+ICsgICAgICAgUkRNQV9DU0NfUkdCX1RPX0JUNjAxID0gMiwNCj4g PiArICAgICAgIFJETUFfQ1NDX1JHQl9UT19CVDcwOSA9IDMsDQo+ID4gKyAgICAgICBSRE1BX0NT Q19KUEVHX1RPX1JHQiA9IDQsDQo+ID4gKyAgICAgICBSRE1BX0NTQ19GVUxMNzA5X1RPX1JHQiA9 IDUsDQo+ID4gKyAgICAgICBSRE1BX0NTQ19CVDYwMV9UT19SR0IgPSA2LA0KPiA+ICsgICAgICAg UkRNQV9DU0NfQlQ3MDlfVE9fUkdCID0gNywNCj4gPiArICAgICAgIFJETUFfQ1NDX0pQRUdfVE9f QlQ2MDEgPSA4LA0KPiA+ICsgICAgICAgUkRNQV9DU0NfSlBFR19UT19CVDcwOSA9IDksDQo+ID4g KyAgICAgICBSRE1BX0NTQ19CVDYwMV9UT19KUEVHID0gMTAsDQo+ID4gKyAgICAgICBSRE1BX0NT Q19CVDcwOV9UT19CVDYwMSA9IDExLA0KPiA+ICsgICAgICAgUkRNQV9DU0NfQlQ2MDFfVE9fQlQ3 MDkgPSAxMg0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArZW51bSByZG1hX2VuY29kZSB7DQo+ID4gKyAg ICAgICBSRE1BX0VOQ09ERV9OT05FID0gMCwNCj4gPiArICAgICAgIFJETUFfRU5DT0RFX0FGQkMg PSAxLA0KPiA+ICsgICAgICAgUkRNQV9FTkNPREVfSFlGQkMgPSAyLA0KPiA+ICsgICAgICAgUkRN QV9FTkNPREVfVUZPX0RDUCA9IDMNCj4gPiArfTsNCj4gPiArDQo+ID4gK2VudW0gcmRtYV9ibG9j ayB7DQo+ID4gKyAgICAgICBSRE1BX0JMT0NLX05PTkUgPSAwLA0KPiA+ICsgICAgICAgUkRNQV9C TE9DS184eDggPSAxLA0KPiA+ICsgICAgICAgUkRNQV9CTE9DS184eDE2ID0gMiwNCj4gPiArICAg ICAgIFJETUFfQkxPQ0tfOHgzMiA9IDMsDQo+ID4gKyAgICAgICBSRE1BX0JMT0NLXzE2eDggPSA0 LA0KPiA+ICsgICAgICAgUkRNQV9CTE9DS18xNngxNiA9IDUsDQo+ID4gKyAgICAgICBSRE1BX0JM T0NLXzE2eDMyID0gNiwNCj4gPiArICAgICAgIFJETUFfQkxPQ0tfMzJ4OCA9IDcsDQo+ID4gKyAg ICAgICBSRE1BX0JMT0NLXzMyeDE2ID0gOCwNCj4gPiArICAgICAgIFJETUFfQkxPQ0tfMzJ4MzIg PSA5DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgbXRrX21kcF9yZG1hX2NmZyB7DQo+ID4g KyAgICAgICBlbnVtIHJkbWFfZW5jb2RlIGVuY29kZV90eXBlOw0KPiA+ICsgICAgICAgZW51bSBy ZG1hX2Jsb2NrIGJsb2NrX3NpemU7DQo+ID4gKyAgICAgICBlbnVtIHJkbWFfcHJvZmlsZSBwcm9m aWxlOw0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZV93aWR0aDsNCj4gPiArICAgICAg IHVuc2lnbmVkIGludCBhZGRyMDsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCBhZGRyMTsNCj4g PiArICAgICAgIHVuc2lnbmVkIGludCBhZGRyMjsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCB3 aWR0aDsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCBoZWlnaHQ7DQo+ID4gKyAgICAgICB1bnNp Z25lZCBpbnQgeF9sZWZ0Ow0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IHlfdG9wOw0KPiA+ICsg ICAgICAgYm9vbCBjc2NfZW5hYmxlOw0KPiA+ICsgICAgICAgaW50IGZtdDsNCj4gPiArfTsNCj4g PiArDQo+ID4gK3N0cnVjdCBtdGtfbWRwX3JkbWFfZmlmbyB7DQo+ID4gKyAgICAgICBpbnQgcmVh ZF9yZXF1ZXN0X3R5cGU7DQo+ID4gKyAgICAgICBpbnQgY29tbWFuZF9kaXY7DQo+ID4gKyAgICAg ICBpbnQgZXh0X3ByZXV0cmFfZW47DQo+ID4gKyAgICAgICBpbnQgdWx0cmFfZW47DQo+ID4gKyAg ICAgICBpbnQgcHJlX3VsdHJhX2VuOw0KPiA+ICsgICAgICAgaW50IGV4dF91bHRyYV9lbjsNCj4g PiArICAgICAgIGludCBleHRyZF9hcmJfbWF4XzA7DQo+ID4gKyAgICAgICBpbnQgYnVmX3Jlc3Zf c2l6ZV8wOw0KPiA+ICsgICAgICAgaW50IGlzc3VlX3JlcV90aF8wOw0KPiA+ICsgICAgICAgaW50 IHVsdHJhX2hfY29uXzA7DQo+ID4gKyAgICAgICBpbnQgdWx0cmFfbF9jb25fMDsNCj4gPiArfTsN Cj4gDQo+IE1vdmUgcmRtYSBpbnRlcm5hbCBkZWZpbml0aW9uIGluIC5jIGZpbGUuDQo+IA0KT0ss IEkgd2lsbCBtb3ZlIGl0IHRvIGludGVybmFsIC5jIGZpbGUuDQo+ID4gKw0KPiA+ICt2b2lkIG10 a19tZHBfcmRtYV9zdGFydCh2b2lkIF9faW9tZW0gKmJhc2UsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgY21kcV9jbGllbnRfcmVnICpjbWRxX2Jhc2UpOw0KPiA+ICsNCj4gPiAr dm9pZCBtdGtfbWRwX3JkbWFfc3RvcCh2b2lkIF9faW9tZW0gKmJhc2UsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0LA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGNtZHFfY2xpZW50X3JlZyAqY21kcV9iYXNlKTsNCj4gPiArDQo+ ID4gK3ZvaWQgbXRrX21kcF9yZG1hX2ZpZm9fY29uZmlnKHZvaWQgX19pb21lbSAqYmFzZSwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0 LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjbWRxX2NsaWVudF9y ZWcgKmNtZHFfYmFzZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgbXRrX21kcF9yZG1hX2ZpZm8NCj4gPiAqZmlmbyk7DQo+ID4gKw0KPiA+ICt2b2lkIG10 a19tZHBfcmRtYV9jb25maWcodm9pZCBfX2lvbWVtICpiYXNlLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgbXRrX21kcF9yZG1hX2NmZyAqY2ZnLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0LA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgY21kcV9jbGllbnRfcmVnICpjbWRxX2Jhc2UpOw0KPiANCj4g TW92ZSB0aGVzZSBwcm90b3R5cGUgdG8gbXRrX2Rpc3BfZHJ2LmgNCj4gDQpPSy4NCg0KPiA+ICsN Cj4gPiArI2VuZGlmIC8vIF9fTVRLX01EUF9SRE1BX0hfXw0KPiA+ICsNCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmVnX3JkbWEuaA0KPiA+IGIvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmVnX3JkbWEuaA0KPiA+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi4wOGFiZDlmMzliZDgNCj4gPiAtLS0g L2Rldi9udWxsDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmVn X3JkbWEuaA0KPiA+IEBAIC0wLDAgKzEsMTYwIEBADQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8NCj4gPiArLyoNCj4gPiArICogQ29weXJpZ2h0IChjKSAy MDIxIE1lZGlhVGVrIEluYy4NCj4gPiArICovDQo+ID4gKw0KPiA+ICsjaWZuZGVmIF9fTURQX1JE TUFfUkVHU19IX18NCj4gPiArI2RlZmluZSBfX01EUF9SRE1BX1JFR1NfSF9fDQo+ID4gKw0KPiA+ ICsjZGVmaW5lIFJFR19GTEQod2lkdGgsIHNoaWZ0KSBcDQo+ID4gKyAgICAgICAoKHVuc2lnbmVk IGludCkoKCgod2lkdGgpICYgMHhmZikgPDwgMTYpIHwgKChzaGlmdCkgJg0KPiA+IDB4ZmYpKSkN Cj4gPiArDQo+ID4gKyNkZWZpbmUgUkVHX0ZMRF9XSURUSChmaWVsZCkgKCh1bnNpZ25lZCBpbnQp KCgoZmllbGQpID4+IDE2KSAmDQo+ID4gMHhmZikpDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFJFR19G TERfU0hJRlQoZmllbGQpICgodW5zaWduZWQgaW50KSgoZmllbGQpICYgMHhmZikpDQo+ID4gKw0K PiA+ICsjZGVmaW5lIFJFR19GTERfTUFTSyhmaWVsZCkgXA0KPiA+ICsgICAgICAgKCh1bnNpZ25l ZCBpbnQpKCgxVUxMIDw8IFJFR19GTERfV0lEVEgoZmllbGQpKSAtIDEpIFwNCj4gPiArICAgICAg ICA8PCBSRUdfRkxEX1NISUZUKGZpZWxkKSkNCj4gPiArDQo+ID4gKyNkZWZpbmUgUkVHX0ZMRF9W QUwoZmllbGQsIHZhbCkgXA0KPiA+ICsgICAgICAgKCgodmFsKSA8PCBSRUdfRkxEX1NISUZUKGZp ZWxkKSkgJiBSRUdfRkxEX01BU0soZmllbGQpKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1E UF9SRE1BX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw MA0KPiA+ICsjZGVmaW5lIEZMRF9ST1RfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJFR19GTEQoMSwgMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9SRVNFVCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgNCj4gPiArDQo+ID4g KyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9JTlRFUlJVUFRfRU5BQkxFICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMTANCj4gPiArI2RlZmluZSBGTERfVU5ERVJSVU5fSU5UX0VOICAgICAg ICAgICAgICAgICAgICAgICBSRUdfRkxEKDEsIDIpDQo+ID4gKyNkZWZpbmUgRkxEX1JFR19VUERB VEVfSU5UX0VOICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCgxLCAxKQ0KPiA+ICsjZGVmaW5l IEZMRF9GUkFNRV9DT01QTEVURV9JTlRfRU4gICAgICAgICAgICAgICAgIFJFR19GTEQoMSwgMCkN Cj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9JTlRFUlJVUFRfU1RBVFVTICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTgNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBN RFBfUkRNQV9DT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MjANCj4gPiArI2RlZmluZSBGTERfT1VUUFVUXzEwQiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSRUdfRkxEKDEsIDUpDQo+ID4gKyNkZWZpbmUgRkxEX1NJTVBMRV9NT0RFICAgICAgICAgICAg ICAgICAgICAgICAgICAgUkVHX0ZMRCgxLCA0KQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1E UF9SRE1BX0dNQ0lGX0NPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAy OA0KPiA+ICsjZGVmaW5lIEZMRF9FWFRfVUxUUkFfRU4gICAgICAgICAgICAgICAgICAgICAgICAg IFJFR19GTEQoMSwgMTgpDQo+ID4gKyNkZWZpbmUgUFJFX1VMVFJBX0VOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUkVHX0ZMRCgyLCAxNikNCj4gPiArI2RlZmluZSBGTERfVUxUUkFfRU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDIsIDEyKQ0KPiA+ICsjZGVmaW5l IEZMRF9SRF9SRVFfVFlQRSAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoNCwgNCkN Cj4gPiArI2RlZmluZSBGTERfRVhUX1BSRVVMVFJBX0VOICAgICAgICAgICAgICAgICAgICAgICBS RUdfRkxEKDEsIDMpDQo+ID4gKyNkZWZpbmUgRkxEX0NPTU1BTkRfRElWICAgICAgICAgICAgICAg ICAgICAgICAgICAgUkVHX0ZMRCgxLCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9S RE1BX1NSQ19DT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMA0K PiA+ICsjZGVmaW5lIEZMRF9PVVRQVVRfQVJHQiAgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTEQoMSwgMjUpDQo+ID4gKyNkZWZpbmUgRkxEX0JJVF9OVU1CRVIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUkVHX0ZMRCgyLCAxOCkNCj4gPiArI2RlZmluZSBGTERfVU5JRk9STV9DT05G SUcgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDEsIDE3KQ0KPiA+ICsjZGVmaW5lIEZM RF9TV0FQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMSwgMTQpDQo+ ID4gKyNkZWZpbmUgRkxEX1NSQ19GT1JNQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVH X0ZMRCg0LCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX0NPTVBfQ09OICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOA0KPiA+ICsjZGVmaW5lIEZM RF9BRkJDX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMSwgMjIpDQo+ ID4gKyNkZWZpbmUgRkxEX0FGQkNfWVVWX1RSQU5TRk9STSAgICAgICAgICAgICAgICAgICAgUkVH X0ZMRCgxLCAyMSkNCj4gPiArI2RlZmluZSBGTERfVUZCRENfRU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSRUdfRkxEKDEsIDEyKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9S RE1BX01GX0JLR0RfU0laRV9JTl9CWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MA0K PiA+ICsjZGVmaW5lIEZMRF9NRl9CS0dEX1dCICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTEQoMjMsIDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFfTUZfQktHRF9T SVpFX0lOX1BJWEVMICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY4DQo+ID4gKyNkZWZpbmUg RkxEX01GX0JLR0RfV1AgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCgyMywgMCkN Cj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9NRl9TUkNfU0laRSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzANCj4gPiArI2RlZmluZSBGTERfTUZfU1JDX0gg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDE1LCAxNikNCj4gPiArI2RlZmlu ZSBGTERfTUZfU1JDX1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDE1LCAw KQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX01GX0NMSVBfU0laRSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3OA0KPiA+ICsjZGVmaW5lIEZMRF9NRl9DTElQ X0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMTUsIDE2KQ0KPiA+ICsjZGVm aW5lIEZMRF9NRl9DTElQX1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMTUs IDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFfTUZfT0ZGU0VUXzEgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwDQo+ID4gKyNkZWZpbmUgRkxEX01GX09G RlNFVF9IXzEgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCg2LCAxNikNCj4gPiArI2Rl ZmluZSBGTERfTUZfT0ZGU0VUX1dfMSAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDUs IDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFfU0ZfQktHRF9TSVpFX0lOX0JZ VEUgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkwDQo+ID4gKyNkZWZpbmUgRkxEX1NGX0JL R0RfV0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCgyMywgMCkNCj4gPiArDQo+ ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9NRl9CS0dEX0hfU0laRV9JTl9QSVhFTCAgICAgICAg ICAgICAgICAgICAgICAgMHgwOTgNCj4gPiArI2RlZmluZSBGTERfQktHRF9IUCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDIzLCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0K PiA+IE1EUF9SRE1BX1RBUkdFVF9MSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDBhMA0KPiA+ICsjZGVmaW5lIEZMRF9MSU5FX1RIUkVTSE9MRCAgICAgICAgICAgICAgICAg ICAgICAgIFJFR19GTEQoMTUsIDE3KQ0KPiA+ICsjZGVmaW5lIEZMRF9UQVJHRVRfTElORV9FTiAg ICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMSwgMTYpDQo+ID4gKw0KPiA+ICsjZGVmaW5l DQo+ID4gTURQX1JETUFfU1JDX09GRlNFVF8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MTE4DQo+ID4gKyNkZWZpbmUgRkxEX1NSQ19PRkZTRVRfMCAgICAgICAgICAgICAgICAg ICAgICAgICAgUkVHX0ZMRCgzMiwgMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRN QV9TUkNfT0ZGU0VUXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjANCj4g PiArI2RlZmluZSBGTERfU1JDX09GRlNFVF8xICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdf RkxEKDMyLCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX1NSQ19PRkZTRVRf MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyOA0KPiA+ICsjZGVmaW5lIEZM RF9TUkNfT0ZGU0VUXzIgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMzIsIDApDQo+ ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFfU1JDX09GRlNFVF9XUCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MTQ4DQo+ID4gKyNkZWZpbmUgRkxEX1NSQ19PRkZTRVRf V1AgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCgzMiwgMCkNCj4gPiArDQo+ID4gKyNk ZWZpbmUNCj4gPiBNRFBfUkRNQV9TUkNfT0ZGU0VUX0hQICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgxNTANCj4gPiArI2RlZmluZSBGTERfU1JDX09GRlNFVF9IUCAgICAgICAgICAg ICAgICAgICAgICAgICBSRUdfRkxEKDMyLCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1E UF9SRE1BX1RSQU5TRk9STV8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIw MA0KPiA+ICsjZGVmaW5lIEZMRF9JTlRfTUFUUklYX1NFTCAgICAgICAgICAgICAgICAgICAgICAg IFJFR19GTEQoNSwgMjMpDQo+ID4gKyNkZWZpbmUgRkxEX1RSQU5TX0VOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUkVHX0ZMRCgxLCAxNikNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBN RFBfUkRNQV9ETUFfQ09OXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgy NDANCj4gPiArI2RlZmluZSBGTERfRVhUUkRfQVJCX01BWCAgICAgICAgICAgICAgICAgICAgICAg ICBSRUdfRkxEKDQsIDI0KQ0KPiA+ICsjZGVmaW5lIEZMRF9CVUZfUkVTVl9TSVpFICAgICAgICAg ICAgICAgICAgICAgICAgIFJFR19GTEQoOCwgMTYpDQo+ID4gKyNkZWZpbmUgRkxEX0lTU1VFX1JF UV9USCAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCg4LCAwKQ0KPiA+ICsNCj4gPiAr I2RlZmluZQ0KPiA+IE1EUF9SRE1BX1VUUkFfSF9DT05fMCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDI0OA0KPiA+ICsjZGVmaW5lIEZMRF9QUkVVVFJBX0hfT0ZTXzAgICAgICAg ICAgICAgICAgICAgICAgIFJFR19GTEQoMTAsIDEwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+ IE1EUF9SRE1BX1VUUkFfTF9DT05fMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDI1MA0KPiA+ICsjZGVmaW5lIEZMRF9QUkVVVFJBX0xfT0ZTXzAgICAgICAgICAgICAgICAgICAg ICAgIFJFR19GTEQoMTAsIDEwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX0RN QUJVRl9DT05fMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1OA0KPiA+ICsj ZGVmaW5lIEZMRF9FWFRSRF9BUkJfTUFYXzEgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQo NCwgMjQpDQo+ID4gKyNkZWZpbmUgRkxEX0JVRl9SRVNWX1NJWkVfMSAgICAgICAgICAgICAgICAg ICAgICAgUkVHX0ZMRCg3LCAxNikNCj4gPiArI2RlZmluZSBGTERfSVNTVUVfUkVRX1RIXzEgICAg ICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDcsIDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ ID4gTURQX1JETUFfVUxUUkFfVEhfSElHSF9DT05fMSAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MjYwDQo+ID4gKyNkZWZpbmUgRkxEX1BSRV9VTFRSQV9USF9ISUdIX09GU18xICAgICAgICAg ICAgICAgUkVHX0ZMRCgxMCwgMTApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFf VUxUUkFfVEhfTE9XX0NPTl8xICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjY4DQo+ID4g KyNkZWZpbmUgRkxEX1BSRV9VTFRSQV9USF9MT1dfT0ZTXzEgICAgICAgICAgICAgICAgUkVHX0ZM RCgxMCwgMTApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFfRE1BQlVGX0NPTl8y ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjcwDQo+ID4gKyNkZWZpbmUgRkxE X0VYVFJEX0FSQl9NQVhfMiAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCg0LCAyNCkNCj4g PiArI2RlZmluZSBGTERfQlVGX1JFU1ZfU0laRV8yICAgICAgICAgICAgICAgICAgICAgICBSRUdf RkxEKDYsIDE2KQ0KPiA+ICsjZGVmaW5lIEZMRF9JU1NVRV9SRVFfVEhfMiAgICAgICAgICAgICAg ICAgICAgICAgIFJFR19GTEQoNiwgMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRN QV9VVFJBX0hfQ09OXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNzgNCj4g PiArI2RlZmluZSBGTERfUFJFX1VMVFJBX1RIX0hJR0hfT0ZTXzIgICAgICAgICAgICAgICBSRUdf RkxEKDEwLCAxMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9VTFRSQV9USF9M T1dfQ09OXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyODANCj4gPiArI2RlZmluZSBG TERfUFJFX1VMVFJBX1RIX0xPV19PRlNfMiAgICAgICAgICAgICAgICBSRUdfRkxEKDEwLCAxMCkN Cj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9ETUFCVUZfQ09OXzMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgyODgNCj4gPiArI2RlZmluZSBGTERfRVhUUkRfQVJC X01BWF8zICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDQsIDI0KQ0KPiA+ICsjZGVmaW5l IEZMRF9CVUZfUkVTVl9TSVpFXzMgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoNiwgMTYp DQo+ID4gKyNkZWZpbmUgRkxEX0lTU1VFX1JFUV9USF8zICAgICAgICAgICAgICAgICAgICAgICAg UkVHX0ZMRCg2LCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX1VUUkFfSF9D T05fMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5MA0KPiA+ICsjZGVmaW5l IEZMRF9QUkVfVUxUUkFfVEhfSElHSF9PRlNfMyAgICAgICAgICAgICAgIFJFR19GTEQoMTAsIDEw KQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX1VMVFJBX1RIX0xPV19DT05fMyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5OA0KPiA+ICsjZGVmaW5lIEZMRF9QUkVfVUxU UkFfVEhfTE9XX09GU18zICAgICAgICAgICAgICAgIFJFR19GTEQoMTAsIDEwKQ0KPiA+ICsNCj4g PiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX1NSQ19CQVNFXzAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweGYwMA0KPiA+ICsjZGVmaW5lIEZMRF9TUkNfQkFTRV8wICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMzIsIDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ ID4gTURQX1JETUFfU1JDX0JBU0VfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4ZjA4DQo+ID4gKyNkZWZpbmUgRkxEX1NSQ19CQVNFXzEgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUkVHX0ZMRCgzMiwgMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9T UkNfQkFTRV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmMTANCj4gPiAr I2RlZmluZSBGTERfU1JDX0JBU0VfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxE KDMyLCAwKQ0KPiA+ICsNCj4gPiArI2VuZGlmIC8qIF9fTURQX1JETUFfUkVHU19IX18gKi8NCj4g DQo+IE9ubHkgb25lIGZpbGUgbmVlZCB0aGVzZSwgc28gbW92ZSByZWdpc3RlciBkZWZpbml0b24g aW4gLmMgZmlsZS4NCj4gDQpPSy4NCg0KPiBSZWdhcmRzLA0KPiBDaHVuLUt1YW5nLg0KPiANCj4g PiArDQo+ID4gLS0NCj4gPiAyLjE4LjANCj4gPiANCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW1lZGlhdGVrIG1haWxpbmcgbGlzdApMaW51eC1t ZWRpYXRla0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtbWVkaWF0ZWsK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8398CC4338F for ; Fri, 30 Jul 2021 03:31:28 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 31F8B61008 for ; Fri, 30 Jul 2021 03:31:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 31F8B61008 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:CC:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5fVA5J/pUOwy/N6X3PemGnBguhLewxLrD05eltic6/s=; b=sSUGs1eizbPZAW J1WCILxH7WdzjAR9/QHf2AExYHGQTj1W/pAZuG8chG/D611mettWnliCq754NpARLehQYGbNvY4F7 LfGLUIa49OTuSlztP5/w1SFASmzR4qtfkau/22g9b1ilPeUZZLSzuIBu8av6GMT3lbO+P05S3+jnV gdGz1amy2qV1uOrvfiza80cCuSa65RN9KgwUjv4HN86OWdjwHgA8Td09Rjxff8MLJfo6eHUx7yrNh pjY7NOt2TO5KeGD0D7XjfXaC11lP9gi4Ojw9RskL3wHjt2te8qxhs98IhAHHG6cXZCx8SNt1fhJHf agVEe4jGrW82F+AKtHRw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m9JCq-006wdQ-93; Fri, 30 Jul 2021 03:29:04 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m9JCi-006wcB-5P; Fri, 30 Jul 2021 03:29:00 +0000 X-UUID: 9a27a8d56afd4636927802a53313e3e4-20210729 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=UnhIhxZN7HHdsJfSIOffPOiFQcGZN9qL87KYtRrQv5M=; b=a+BdLI9mN5dwB9INEawmH2tzDkBIWJvdAfMOkA6gJvycnChbqEpnN73PBwI/je5x5NcrsENQBCVu+F7GxYAxFQe89+Q0xFoQp5JXbIaMlwTsSA0xTWFOcBQOXuL5dg9H+V7SyBQz0e8JOV00smErmhbYC4QBgvuEiON2VLBNJhc=; X-UUID: 9a27a8d56afd4636927802a53313e3e4-20210729 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 898360932; Thu, 29 Jul 2021 20:28:55 -0700 Received: from mtkmbs05n2.mediatek.inc (172.21.101.140) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 29 Jul 2021 20:28:53 -0700 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs05n2.mediatek.inc (172.21.101.140) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 30 Jul 2021 11:28:51 +0800 Received: from mtksdccf07 (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 30 Jul 2021 11:28:51 +0800 Message-ID: <9e01bea8c7f0ba396789d0b06580e65113081f47.camel@mediatek.com> Subject: Re: [PATCH 13/14] drm/mediatek: add pseudo ovl support for MT8195 From: Nancy.Lin To: Chun-Kuang Hu CC: CK Hu , Philipp Zabel , "David Airlie" , Daniel Vetter , Rob Herring , Matthias Brugger , "jason-jh . lin" , Yongqiang Niu , DRI Development , "moderated list:ARM/Mediatek SoC support" , DTML , linux-kernel , Linux ARM , , srv_heupstream Date: Fri, 30 Jul 2021 11:28:51 +0800 In-Reply-To: References: <20210722094551.15255-1-nancy.lin@mediatek.com> <20210722094551.15255-13-nancy.lin@mediatek.com> X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210729_202856_326642_74D3FDC0 X-CRM114-Status: GOOD ( 35.14 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgQ2h1bi1LdWFuZywNCg0KVGhhbmtzIGZvciB5b3VyIHJldmlldy4NCg0KT24gU3VuLCAyMDIx LTA3LTI1IGF0IDA5OjU3ICswODAwLCBDaHVuLUt1YW5nIEh1IHdyb3RlOg0KPiAgSGksIE5hbmN5 Og0KPiANCj4gTmFuY3kuTGluIDxuYW5jeS5saW5AbWVkaWF0ZWsuY29tPiDmlrwgMjAyMeW5tDfm nIgyMuaXpSDpgLHlm5sg5LiL5Y2INTo0NuWvq+mBk++8mg0KPiA+IA0KPiA+IEFkZCBwc2V1ZG8g b3ZsIG1vZHVsZSBmaWxlczoNCj4gDQo+IE15IEVuZ2xpc2ggaXMgbm90IGdvb2QuIFRoZSB3b3Jk ICdwc2V1ZG8nIHNlZW1zIGxpa2UgJ2xvb2tzIGxpa2UgYnV0DQo+IGluZGVlZCBub3QgdGhlIHNh bWUnLg0KPiBJIHRoaW5rIHRoZSAncmVhbCcgb3ZsIGFsc28gaGFzIHJkbWEgYW5kIG1peGVyIGlu c2lkZSBpdCwgc28gSSBwcmVmZXINCj4gdG8gdHJlYXQgdGhlc2UgdHdvIG92bCBhcyBkaWZmZXJl bnQga2luZCBvZiBvdmwsIG5vdCBhIHJlYWwgb25lIGFuZCBhDQo+IHBzZXVkbyBvbmUuDQo+IERv ZXMgSSBtaXN1bmRlcnN0YW5kaW5nIHRoZSB3b3JkICdwc2V1ZG8nPw0KPiANCkkgd2FzIHRoaW5r aW5nIG9mIGVuY2Fwc3VsYXRpbmcgc2V2ZXJhbCBlbmdpbmVzIGluIHRoaXMgY29tcG9uZW50LiBU aGUNCnByZWZpeCAicHNldWRvIiB3YXMgbWVhbnQgdG8gZGlzdGluZ3Vpc2ggd2l0aCB0aGUgb3Jp Z2luIG92bC4gSSB3aWxsDQpjaGFuZ2UgcHNldWRvX292bCB0byBvdmxfYWRhcHRvci4NCg0KDQo+ ID4gUHNldWRvIG92bCBpcyBhbiBlbmNhcHN1bGF0ZWQgbW9kdWxlIGFuZCBkZXNpZ25lZCBmb3Ig c2ltcGxpZmllZA0KPiA+IERSTSBjb250cm9sIGZsb3cuIFRoaXMgbW9kdWxlIGlzIGNvbXBvc2Vk IG9mIDggUkRNQXMsIDQgTUVSR0VzIGFuZA0KPiA+IGFuIEVUSERSLiBUd28gUkRNQXMgbWVyZ2Ug aW50byBvbmUgbGF5ZXIsIHNvIHRoaXMgbW9kdWxlIHN1cHBvcnQgNA0KPiA+IGxheWVycy4NCj4g PiANCj4gPiBTaWduZWQtb2ZmLWJ5OiBOYW5jeS5MaW4gPG5hbmN5LmxpbkBtZWRpYXRlay5jb20+ DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZSAgICAgICAg ICAgICB8ICAgNCArLQ0KPiA+ICAuLi4vZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9wc2V1ZG9f b3ZsLmMgICAgfCA1OTMNCj4gPiArKysrKysrKysrKysrKysrKysNCj4gPiAgLi4uL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2Rpc3BfcHNldWRvX292bC5oICAgIHwgIDIzICsNCj4gPiAgZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19tZHBfcmRtYS5jICAgICAgIHwgNDU2ICsrKysrKysrKysrKysr DQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JkbWEuaCAgICAgICB8IDEw OSArKysrDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JlZ19yZG1hLmgg ICB8IDE2MCArKysrKw0KPiANCj4gU2VwZXJhdGUgbXRrX2RtcF9yZG1hIGRyaXZlciB0byBhbiBp bmRlcGVuZGVudCBwYXRjaC4NCj4gDQpPSywgSSB3aWxsIHNlcGFyYXRlIGl0Lg0KDQo+ID4gIDYg ZmlsZXMgY2hhbmdlZCwgMTM0NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfcHNldWRv X292bC5jDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2Rpc3BfcHNldWRvX292bC5oDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX21kcF9yZG1hLmMNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JkbWEuaA0KPiA+ICBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmVnX3JkbWEuaA0KPiA+IA0K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUNCj4gPiBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZQ0KPiA+IGluZGV4IDI3Yzg5ODQ3ZDQz Yi4uMzE2MTM1NjRmNDk5IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9NYWtlZmlsZQ0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZQ0K PiA+IEBAIC0xMyw3ICsxMyw5IEBAIG1lZGlhdGVrLWRybS15IDo9IG10a19kaXNwX2Njb3JyLm8g XA0KPiA+ICAgICAgICAgICAgICAgICAgIG10a19kcm1fZ2VtLm8gXA0KPiA+ICAgICAgICAgICAg ICAgICAgIG10a19kcm1fcGxhbmUubyBcDQo+ID4gICAgICAgICAgICAgICAgICAgbXRrX2RzaS5v IFwNCj4gPiAtICAgICAgICAgICAgICAgICBtdGtfZHBpLm8NCj4gPiArICAgICAgICAgICAgICAg ICBtdGtfZHBpLm8gXA0KPiA+ICsgICAgICAgICAgICAgICAgIG10a19kaXNwX3BzZXVkb19vdmwu byBcDQo+ID4gKyAgICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hLm8NCj4gPiANCj4gPiAgb2Jq LSQoQ09ORklHX0RSTV9NRURJQVRFSykgKz0gbWVkaWF0ZWstZHJtLm8NCj4gPiANCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX3BzZXVkb19vdmwuYw0K PiA+IGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX3BzZXVkb19vdmwuYw0KPiA+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi4wNDQ2ZmE5OWRk MGENCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kaXNwX3BzZXVkb19vdmwuYw0KPiA+IEBAIC0wLDAgKzEsNTkzIEBADQo+ID4gKy8vIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkNCj4gPiArLyoNCj4gPiArICogQ29w eXJpZ2h0IChjKSAyMDIxIE1lZGlhVGVrIEluYy4NCj4gPiArICovDQo+ID4gKw0KPiA+ICsjaW5j bHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L2Nsay5oPg0KPiA+ ICsjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVu dC5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+DQo+ID4gKyNpbmNsdWRlIDxs aW51eC9vZl9hZGRyZXNzLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2Uu aD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4NCj4gPiArI2luY2x1ZGUgPGxp bnV4L3NvYy9tZWRpYXRlay9tdGstbW1zeXMuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3NvYy9t ZWRpYXRlay9tdGstY21kcS5oPg0KPiA+ICsNCj4gPiArI2luY2x1ZGUgIm10a19kcm1fZHJ2Lmgi DQo+ID4gKyNpbmNsdWRlICJtdGtfZHJtX2NydGMuaCINCj4gPiArI2luY2x1ZGUgIm10a19kcm1f ZGRwX2NvbXAuaCINCj4gPiArI2luY2x1ZGUgIm10a19tZHBfcmRtYS5oIg0KPiA+ICsjaW5jbHVk ZSAibXRrX2Rpc3BfcHNldWRvX292bC5oIg0KPiA+ICsNCj4gPiArI2RlZmluZSBESVNQX01FUkdF X0VOQUJMRSAgICAgIDB4MA0KPiA+ICsgICAgICAgI2RlZmluZSBNRVJHRV9FTkFCTEUgQklUKDAp DQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfMCAgICAgICAweDEwDQo+ID4gKyNkZWZpbmUg RElTUF9NRVJHRV9DRkdfMSAgICAgICAweDE0DQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdf NCAgICAgICAweDIwDQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfNSAgICAgICAweDI0DQo+ ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfMTAgICAgICAweDM4DQo+ID4gKyAgICAgICAjZGVm aW5lIENGR18xMF9OT19TV0FQIDANCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18xMiAgICAg IDB4NDANCj4gPiArICAgICAgICNkZWZpbmUgQ0ZHMTJfMTBfMTBfMVBJXzJQT19CVUZfTU9ERSA2 DQo+ID4gKyAgICAgICAjZGVmaW5lIENGRzEyXzExXzEwXzFQSV8yUE9fTUVSR0UgMTgNCj4gPiAr I2RlZmluZSBESVNQX01FUkdFX0NGR18yNCAgICAgIDB4NzANCj4gPiArI2RlZmluZSBESVNQX01F UkdFX0NGR18yNSAgICAgIDB4NzQNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18yNiAgICAg IDB4NzgNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18yNyAgICAgIDB4N2MNCj4gPiArI2Rl ZmluZSBESVNQX01FUkdFX01VVEVfMCAgICAgIDB4ZjAwDQo+ID4gKw0KPiA+ICsjZGVmaW5lIE1U S19QU0VVRE9fT1ZMX1NJTkdMRV9QSVBFX01BWF9XSURUSCAxOTIwDQo+IA0KPiBXaGljaCBoYXJk d2FyZSBoYXMgdGhpcyBsaW1pdGF0aW9uPyBJIHdvdWxkIGxpa2UgdGhpcyBuYW1pbmcgdG8NCj4g cmVmbGVjdCB3aGljaCBoYXJkd2FyZSBoYXMgdGhpcyBsaW1pdGF0aW9uLg0KPiANClJETUEgaGFz IHRoZSBsaW1pdGF0aW9uLCBJIHdpbGwgbW9kaWZ5IGl0cyBuYW1pbmcuDQoNCj4gPiArDQo+ID4g K2VudW0gbXRrX3BzZXVkb19vdmxfY29tcF90eXBlIHsNCj4gPiArICAgICAgIFBTRVVET19PVkxf VFlQRV9SRE1BID0gMCwNCj4gPiArICAgICAgIFBTRVVET19PVkxfVFlQRV9NRVJHRSwNCj4gPiAr ICAgICAgIFBTRVVET19PVkxfVFlQRV9OVU0sDQo+ID4gK307DQo+ID4gKw0KPiA+ICtlbnVtIG10 a19wc2V1ZG9fb3ZsX2NvbXBfaWQgew0KPiA+ICsgICAgICAgUFNFVURPX09WTF9SRE1BX0JBU0Ug PSAwLA0KPiA+ICsgICAgICAgUFNFVURPX09WTF9NRFBfUkRNQTAgPSBQU0VVRE9fT1ZMX1JETUFf QkFTRSwNCj4gDQo+IEkgdGhpbmsgeW91IGNvdWxkIGRpcmVjdGx5IHVzZSBQU0VVRE9fT1ZMX01E UF9SRE1BMCBhbmQgcmVtb3ZlDQo+IFBTRVVET19PVkxfUkRNQV9CQVNFLg0KPiANCk9LLCBJIHdp bGwgcmVtb3ZlIGl0Lg0KDQo+ID4gKyAgICAgICBQU0VVRE9fT1ZMX01EUF9SRE1BMSwNCj4gPiAr ICAgICAgIFBTRVVET19PVkxfTURQX1JETUEyLA0KPiA+ICsgICAgICAgUFNFVURPX09WTF9NRFBf UkRNQTMsDQo+ID4gKyAgICAgICBQU0VVRE9fT1ZMX01EUF9SRE1BNCwNCj4gPiArICAgICAgIFBT RVVET19PVkxfTURQX1JETUE1LA0KPiA+ICsgICAgICAgUFNFVURPX09WTF9NRFBfUkRNQTYsDQo+ ID4gKyAgICAgICBQU0VVRE9fT1ZMX01EUF9SRE1BNywNCj4gPiArICAgICAgIFBTRVVET19PVkxf TUVSR0VfQkFTRSwNCj4gPiArICAgICAgIFBTRVVET19PVkxfTUVSR0UwID0gUFNFVURPX09WTF9N RVJHRV9CQVNFLA0KPiANCj4gRGl0dG8uDQoNCk9LLCBJIHdpbGwgcmVtb3ZlIGl0Lg0KPiANCj4g PiArICAgICAgIFBTRVVET19PVkxfTUVSR0UxLA0KPiA+ICsgICAgICAgUFNFVURPX09WTF9NRVJH RTIsDQo+ID4gKyAgICAgICBQU0VVRE9fT1ZMX01FUkdFMywNCj4gPiArICAgICAgIFBTRVVET19P VkxfSURfTUFYDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgcHNldWRvX292bF9kYXRhIHsN Cj4gPiArICAgICAgIHVuc2lnbmVkIGludCBsYXllcl9ucjsNCj4gPiArICAgICAgIHN0cnVjdCBt dGtfbWRwX3JkbWFfZmlmbyBmaWZvOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RydWN0IHBzZXVk b19vdmxfY29tcF9tYXRjaCB7DQo+ID4gKyAgICAgICBlbnVtIG10a19wc2V1ZG9fb3ZsX2NvbXBf dHlwZSB0eXBlOw0KPiA+ICsgICAgICAgaW50IGFsaWFzX2lkOw0KPiA+ICt9Ow0KPiA+ICsNCj4g PiArc3RydWN0IHBzZXVkb19vdmxfbWVyZ2VfY29uZmlnIHsNCj4gPiArICAgICAgIHVuc2lnbmVk IGludCBmbXQ7DQo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgbWVyZ2VfbW9kZTsNCj4gPiArICAg ICAgIHVuc2lnbmVkIGludCBpbl93WzJdOw0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IG91dF93 WzJdOw0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IGluX2g7DQo+ID4gK307DQo+ID4gKw0KPiA+ ICtzdHJ1Y3QgbXRrX3BzZXVkb19vdmxfY29tcCB7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZGV2aWNl ICpkZXY7DQo+ID4gKyAgICAgICBzdHJ1Y3QgY2xrICpjbGtzWzJdOw0KPiA+ICsgICAgICAgc3Ry dWN0IGNtZHFfY2xpZW50X3JlZyBjbWRxX2Jhc2U7DQo+ID4gKyAgICAgICB2b2lkIF9faW9tZW0g KnJlZ3M7DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgbXRrX2Rpc3BfcHNldWRvX292bCB7 DQo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX3BzZXVkb19vdmxfY29tcA0KPiA+IHBzZXVkb19vdmxf Y29tcFtQU0VVRE9fT1ZMX0lEX01BWF07DQo+ID4gKyAgICAgICBjb25zdCBzdHJ1Y3QgcHNldWRv X292bF9kYXRhICpkYXRhOw0KPiA+ICsgICAgICAgc3RydWN0IGRldmljZSAqbW1zeXNfZGV2Ow0K PiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwc2V1ZG9fb3Zs X2NvbXBfc3RyW10gPSB7DQo+ID4gKyAgICAgICAiUFNFVURPX09WTF9NRFBfUkRNQTAiLA0KPiA+ ICsgICAgICAgIlBTRVVET19PVkxfTURQX1JETUExIiwNCj4gPiArICAgICAgICJQU0VVRE9fT1ZM X01EUF9SRE1BMiIsDQo+ID4gKyAgICAgICAiUFNFVURPX09WTF9NRFBfUkRNQTMiLA0KPiA+ICsg ICAgICAgIlBTRVVET19PVkxfTURQX1JETUE0IiwNCj4gPiArICAgICAgICJQU0VVRE9fT1ZMX01E UF9SRE1BNSIsDQo+ID4gKyAgICAgICAiUFNFVURPX09WTF9NRFBfUkRNQTYiLA0KPiA+ICsgICAg ICAgIlBTRVVET19PVkxfTURQX1JETUE3IiwNCj4gPiArICAgICAgICJQU0VVRE9fT1ZMX01FUkdF MCIsDQo+ID4gKyAgICAgICAiUFNFVURPX09WTF9NRVJHRTEiLA0KPiA+ICsgICAgICAgIlBTRVVE T19PVkxfTUVSR0UyIiwNCj4gPiArICAgICAgICJQU0VVRE9fT1ZMX01FUkdFMyIsDQo+ID4gKyAg ICAgICAiUFNFVURPX09WTF9JRF9NQVgiDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29u c3QgY2hhciAqIGNvbnN0IHByaXZhdGVfY29tcF9zdGVtW1BTRVVET19PVkxfVFlQRV9OVU1dID0N Cj4gPiB7DQo+ID4gKyAgICAgICBbUFNFVURPX09WTF9UWVBFX1JETUFdID0gInZkbzFfcmRtYSIs DQo+ID4gKyAgICAgICBbUFNFVURPX09WTF9UWVBFX01FUkdFXSA9ICJtZXJnZSIsDQo+ID4gK307 DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHBzZXVkb19vdmxfY29tcF9tYXRjaA0K PiA+IGNvbXBfbWF0Y2hlc1tQU0VVRE9fT1ZMX0lEX01BWF0gPSB7DQo+ID4gKyAgICAgICBbUFNF VURPX09WTF9NRFBfUkRNQTBdID0gICAgICAgIHsgUFNFVURPX09WTF9UWVBFX1JETUEsIDANCj4g PiB9LA0KPiA+ICsgICAgICAgW1BTRVVET19PVkxfTURQX1JETUExXSA9ICAgICAgICB7IFBTRVVE T19PVkxfVFlQRV9SRE1BLCAxDQo+ID4gfSwNCj4gPiArICAgICAgIFtQU0VVRE9fT1ZMX01EUF9S RE1BMl0gPSAgICAgICAgeyBQU0VVRE9fT1ZMX1RZUEVfUkRNQSwgMg0KPiA+IH0sDQo+ID4gKyAg ICAgICBbUFNFVURPX09WTF9NRFBfUkRNQTNdID0gICAgICAgIHsgUFNFVURPX09WTF9UWVBFX1JE TUEsIDMNCj4gPiB9LA0KPiA+ICsgICAgICAgW1BTRVVET19PVkxfTURQX1JETUE0XSA9ICAgICAg ICB7IFBTRVVET19PVkxfVFlQRV9SRE1BLCA0DQo+ID4gfSwNCj4gPiArICAgICAgIFtQU0VVRE9f T1ZMX01EUF9SRE1BNV0gPSAgICAgICAgeyBQU0VVRE9fT1ZMX1RZUEVfUkRNQSwgNQ0KPiA+IH0s DQo+ID4gKyAgICAgICBbUFNFVURPX09WTF9NRFBfUkRNQTZdID0gICAgICAgIHsgUFNFVURPX09W TF9UWVBFX1JETUEsIDYNCj4gPiB9LA0KPiA+ICsgICAgICAgW1BTRVVET19PVkxfTURQX1JETUE3 XSA9ICAgICAgICB7IFBTRVVET19PVkxfVFlQRV9SRE1BLCA3DQo+ID4gfSwNCj4gPiArICAgICAg IFtQU0VVRE9fT1ZMX01FUkdFMF0gPSAgIHsgUFNFVURPX09WTF9UWVBFX01FUkdFLCAxIH0sDQo+ ID4gKyAgICAgICBbUFNFVURPX09WTF9NRVJHRTFdID0gICB7IFBTRVVET19PVkxfVFlQRV9NRVJH RSwgMiB9LA0KPiA+ICsgICAgICAgW1BTRVVET19PVkxfTUVSR0UyXSA9ICAgeyBQU0VVRE9fT1ZM X1RZUEVfTUVSR0UsIDMgfSwNCj4gPiArICAgICAgIFtQU0VVRE9fT1ZMX01FUkdFM10gPSAgIHsg UFNFVURPX09WTF9UWVBFX01FUkdFLCA0IH0sDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMg aW50IG10a19wc2V1ZG9fb3ZsX2ZpZm9fc2V0dGluZyhzdHJ1Y3QgbXRrX2Rpc3BfcHNldWRvX292 bA0KPiA+ICpwc2V1ZG9fb3ZsLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBjbWRxX3BrdCAqaGFuZGxlKQ0KPiA+ICt7DQo+ID4gKyAgICAgICBzdHJ1 Y3QgbXRrX3BzZXVkb19vdmxfY29tcCAqcmRtYSA9IE5VTEw7DQo+ID4gKyAgICAgICBjb25zdCBz dHJ1Y3QgcHNldWRvX292bF9kYXRhICpkYXRhID0gcHNldWRvX292bC0+ZGF0YTsNCj4gPiArICAg ICAgIGNvbnN0IHN0cnVjdCBtdGtfbWRwX3JkbWFfZmlmbyAqZmlmbyA9ICZkYXRhLT5maWZvOw0K PiA+ICsgICAgICAgaW50IGk7DQo+ID4gKw0KPiA+ICsgICAgICAgZm9yIChpID0gUFNFVURPX09W TF9NRFBfUkRNQTA7IGkgPD0gUFNFVURPX09WTF9NRFBfUkRNQTc7DQo+ID4gaSsrKSB7DQo+ID4g KyAgICAgICAgICAgICAgIHJkbWEgPSAmcHNldWRvX292bC0NCj4gPiA+cHNldWRvX292bF9jb21w W1BTRVVET19PVkxfUkRNQV9CQVNFICsgaV07DQo+ID4gKyAgICAgICAgICAgICAgIG10a19tZHBf cmRtYV9maWZvX2NvbmZpZyhyZG1hLT5yZWdzLCBoYW5kbGUsICZyZG1hLQ0KPiA+ID5jbWRxX2Jh c2UsIGZpZm8pOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIHJldHVybiAwOw0K PiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBtdGtfcHNldWRvX292bF9tZXJnZV9jb25m aWcoc3RydWN0IG10a19wc2V1ZG9fb3ZsX2NvbXANCj4gPiAqY29tcCwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0DQo+ID4gcHNldWRvX292bF9tZXJn ZV9jb25maWcgKm1lcmdlX2NmZywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCj4gPiArew0KPiA+ICsgICAgICAg c3dpdGNoIChtZXJnZV9jZmctPm1lcmdlX21vZGUpIHsNCj4gPiArICAgICAgIGNhc2UgNjoNCj4g PiArICAgICAgICAgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgKG1lcmdlX2NmZy0+aW5f aCA8PCAxNiB8DQo+ID4gbWVyZ2VfY2ZnLT5pbl93WzBdKSwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdzLA0KPiA+IERJU1BfTUVS R0VfQ0ZHXzApOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAo bWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPm91dF93WzBdKSwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdz LA0KPiA+IERJU1BfTUVSR0VfQ0ZHXzQpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dy aXRlKGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPmlu X3dbMF0pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wLT5jbWRxX2Jh c2UsIGNvbXAtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9DRkdfMjQpOw0KPiA+ICsgICAgICAgICAg ICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4g PiBtZXJnZV9jZmctPmluX3dbMF0pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9DRkdfMjUpOw0K PiA+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgIGNhc2UgMTg6DQo+ID4gKyAg ICAgICAgICAgICAgIG10a19kZHBfd3JpdGUoY21kcV9wa3QsIChtZXJnZV9jZmctPmluX2ggPDwg MTYgfA0KPiA+IG1lcmdlX2NmZy0+aW5fd1swXSksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmNvbXAtPmNtZHFfYmFzZSwgY29tcC0+cmVncywNCj4gPiBESVNQX01FUkdFX0NG R18wKTsNCj4gPiArICAgICAgICAgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgKG1lcmdl X2NmZy0+aW5faCA8PCAxNiB8DQo+ID4gbWVyZ2VfY2ZnLT5pbl93WzFdKSwNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdzLA0KPiA+ IERJU1BfTUVSR0VfQ0ZHXzEpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNt ZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPm91dF93WzBd KSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBj b21wLT5yZWdzLA0KPiA+IERJU1BfTUVSR0VfQ0ZHXzQpOw0KPiA+ICsgICAgICAgICAgICAgICBt dGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJn ZV9jZmctPmluX3dbMF0pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb21w LT5jbWRxX2Jhc2UsIGNvbXAtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9DRkdfMjQpOw0KPiA+ICsg ICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8 IDE2IHwNCj4gPiBtZXJnZV9jZmctPmluX3dbMV0pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9D RkdfMjUpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVy Z2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPmluX3dbMF0pLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtPnJlZ3MsDQo+ ID4gRElTUF9NRVJHRV9DRkdfMjYpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRl KGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPmluX3db MV0pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wLT5jbWRxX2Jhc2Us IGNvbXAtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9DRkdfMjcpOw0KPiA+ICsgICAgICAgICAgICAg ICBicmVhazsNCj4gPiArICAgICAgIGRlZmF1bHQ6DQo+ID4gKyAgICAgICAgICAgICAgIG10a19k ZHBfd3JpdGUoY21kcV9wa3QsIChtZXJnZV9jZmctPmluX2ggPDwgMTYgfA0KPiA+IG1lcmdlX2Nm Zy0+aW5fd1swXSksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbXAtPmNt ZHFfYmFzZSwgY29tcC0+cmVncywNCj4gPiBESVNQX01FUkdFX0NGR18wKTsNCj4gPiArICAgICAg ICAgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgKG1lcmdlX2NmZy0+aW5faCA8PCAxNiB8 DQo+ID4gbWVyZ2VfY2ZnLT5pbl93WzFdKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdzLA0KPiA+IERJU1BfTUVSR0VfQ0ZHXzEp Ow0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVyZ2VfY2Zn LT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPm91dF93WzBdKSwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdzLA0KPiA+IERJ U1BfTUVSR0VfQ0ZHXzQpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFf cGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPm91dF93WzFdKSwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21w LT5yZWdzLA0KPiA+IERJU1BfTUVSR0VfQ0ZHXzUpOw0KPiA+ICsgICAgICAgICAgICAgICBicmVh azsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFf cGt0LCBtZXJnZV9jZmctPm1lcmdlX21vZGUsICZjb21wLQ0KPiA+ID5jbWRxX2Jhc2UsDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgIGNvbXAtPnJlZ3MsIERJU1BfTUVSR0VfQ0ZHXzEyKTsNCj4g PiArICAgICAgIG10a19kZHBfd3JpdGUoY21kcV9wa3QsIENGR18xMF9OT19TV0FQLCAmY29tcC0+ Y21kcV9iYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICBjb21wLT5yZWdzLCBESVNQX01F UkdFX0NGR18xMCk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIDEs ICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtDQo+ID4gPnJlZ3MsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgRElTUF9NRVJHRV9FTkFCTEUsIE1FUkdFX0VOQUJMRSk7DQo+ID4gK30NCj4g PiArDQo+ID4gK3ZvaWQgbXRrX3BzZXVkb19vdmxfbGF5ZXJfY29uZmlnKHN0cnVjdCBkZXZpY2Ug KmRldiwgdW5zaWduZWQgaW50DQo+ID4gaWR4LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBtdGtfcGxhbmVfc3RhdGUgKnN0YXRlLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQo+ID4gK3sN Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfZGlzcF9wc2V1ZG9fb3ZsICpwc2V1ZG9fb3ZsID0NCj4g PiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArICAgICAgIHN0cnVjdCBtdGtfcGxhbmVfcGVu ZGluZ19zdGF0ZSAqcGVuZGluZyA9ICZzdGF0ZS0+cGVuZGluZzsNCj4gPiArICAgICAgIHN0cnVj dCBwc2V1ZG9fb3ZsX21lcmdlX2NvbmZpZyBtZXJnZV9jZmcgPSB7MH07DQo+ID4gKyAgICAgICBz dHJ1Y3QgbXRrX21kcF9yZG1hX2NmZyByZG1hX2NvbmZpZyA9IHswfTsNCj4gPiArICAgICAgIHN0 cnVjdCBtdGtfcHNldWRvX292bF9jb21wICpyZG1hX2w7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbXRr X3BzZXVkb19vdmxfY29tcCAqcmRtYV9yOw0KPiA+ICsgICAgICAgc3RydWN0IG10a19wc2V1ZG9f b3ZsX2NvbXAgKm1lcmdlOw0KPiA+ICsgICAgICAgY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5m byAqZm10X2luZm8gPQ0KPiA+IGRybV9mb3JtYXRfaW5mbyhwZW5kaW5nLT5mb3JtYXQpOw0KPiA+ ICsgICAgICAgYm9vbCB1c2VfZHVhbF9waXBlID0gZmFsc2U7DQo+ID4gKw0KPiA+ICsgICAgICAg ZGV2X2RiZyhkZXYsICIlcysgaWR4OiVkLCBlbmFibGU6JWQsIGZtdDoweCV4XG4iLCBfX2Z1bmNf XywNCj4gPiBpZHgsDQo+ID4gKyAgICAgICAgICAgICAgIHBlbmRpbmctPmVuYWJsZSwgcGVuZGlu Zy0+Zm9ybWF0KTsNCj4gPiArICAgICAgIGRldl9kYmcoZGV2LCAiYWRkciAweCVseCwgZmIgdzol ZCwgeyVkLCVkLCVkLCVkfVxuIiwNCj4gPiArICAgICAgICAgICAgICAgcGVuZGluZy0+YWRkciwg KHBlbmRpbmctPnBpdGNoIC8gZm10X2luZm8tPmNwcFswXSksDQo+ID4gKyAgICAgICAgICAgICAg IHBlbmRpbmctPngsIHBlbmRpbmctPnksIHBlbmRpbmctPndpZHRoLCBwZW5kaW5nLQ0KPiA+ID5o ZWlnaHQpOw0KPiA+ICsNCj4gPiArICAgICAgIHJkbWFfbCA9ICZwc2V1ZG9fb3ZsLT5wc2V1ZG9f b3ZsX2NvbXBbUFNFVURPX09WTF9SRE1BX0JBU0UNCj4gPiArIDIgKiBpZHhdOw0KPiA+ICsgICAg ICAgcmRtYV9yID0gJnBzZXVkb19vdmwtPnBzZXVkb19vdmxfY29tcFtQU0VVRE9fT1ZMX1JETUFf QkFTRQ0KPiA+ICsgMiAqIGlkeCArIDFdOw0KPiA+ICsgICAgICAgbWVyZ2UgPSAmcHNldWRvX292 bC0+cHNldWRvX292bF9jb21wW1BTRVVET19PVkxfTUVSR0VfQkFTRQ0KPiA+ICsgaWR4XTsNCj4g PiArDQo+ID4gKyAgICAgICBpZiAoIXBlbmRpbmctPmVuYWJsZSkgew0KPiA+ICsgICAgICAgICAg ICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIDB4MCwgJm1lcmdlLQ0KPiA+ID5jbWRx X2Jhc2UsIG1lcmdlLT5yZWdzLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRElTUF9NRVJHRV9FTkFCTEUsDQo+ID4gTUVSR0VfRU5BQkxFKTsNCj4gPiArICAgICAgICAg ICAgICAgbXRrX21kcF9yZG1hX3N0b3AocmRtYV9sLT5yZWdzLCBjbWRxX3BrdCwgJnJkbWFfbC0N Cj4gPiA+Y21kcV9iYXNlKTsNCj4gPiArICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hX3N0b3Ao cmRtYV9yLT5yZWdzLCBjbWRxX3BrdCwgJnJkbWFfci0NCj4gPiA+Y21kcV9iYXNlKTsNCj4gPiAr ICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAg IGlmIChwZW5kaW5nLT53aWR0aCA+IE1US19QU0VVRE9fT1ZMX1NJTkdMRV9QSVBFX01BWF9XSURU SCkNCj4gPiArICAgICAgICAgICAgICAgdXNlX2R1YWxfcGlwZSA9IHRydWU7DQo+ID4gKw0KPiA+ ICsgICAgICAgbWVyZ2VfY2ZnLm91dF93WzBdID0gcGVuZGluZy0+d2lkdGg7DQo+ID4gKyAgICAg ICBtZXJnZV9jZmcuaW5faCA9IHBlbmRpbmctPmhlaWdodDsNCj4gPiArICAgICAgIG1lcmdlX2Nm Zy5mbXQgPSBwZW5kaW5nLT5mb3JtYXQ7DQo+ID4gKyAgICAgICBpZiAodXNlX2R1YWxfcGlwZSkg ew0KPiA+ICsgICAgICAgICAgICAgICBtZXJnZV9jZmcubWVyZ2VfbW9kZSA9IENGRzEyXzExXzEw XzFQSV8yUE9fTUVSR0U7DQo+ID4gKyAgICAgICAgICAgICAgIG1lcmdlX2NmZy5pbl93WzBdID0g KHBlbmRpbmctPndpZHRoIC8gMikgKw0KPiA+ICgocGVuZGluZy0+d2lkdGggLyAyKSAlIDIpOw0K PiA+ICsgICAgICAgICAgICAgICBtZXJnZV9jZmcuaW5fd1sxXSA9IChwZW5kaW5nLT53aWR0aCAv IDIpIC0NCj4gPiAoKHBlbmRpbmctPndpZHRoIC8gMikgJSAyKTsNCj4gPiArICAgICAgIH0gZWxz ZSB7DQo+ID4gKyAgICAgICAgICAgICAgIG1lcmdlX2NmZy5tZXJnZV9tb2RlID0NCj4gPiBDRkcx Ml8xMF8xMF8xUElfMlBPX0JVRl9NT0RFOw0KPiA+ICsgICAgICAgICAgICAgICBtZXJnZV9jZmcu aW5fd1swXSA9IHBlbmRpbmctPndpZHRoOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAg ICAgIG10a19wc2V1ZG9fb3ZsX21lcmdlX2NvbmZpZyhtZXJnZSwgJm1lcmdlX2NmZywgY21kcV9w a3QpOw0KPiA+ICsNCj4gPiArICAgICAgIG10a19tbXN5c19kZHBfY29uZmlnKHBzZXVkb19vdmwt Pm1tc3lzX2RldiwNCj4gPiBNTVNZU19DT05GSUdfTUVSR0VfQVNZTkNfV0lEVEgsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZHgsIHBlbmRpbmctPndpZHRoIC8gMiwgY21kcV9w a3QpOw0KPiA+ICsgICAgICAgbXRrX21tc3lzX2RkcF9jb25maWcocHNldWRvX292bC0+bW1zeXNf ZGV2LA0KPiA+IE1NU1lTX0NPTkZJR19NRVJHRV9BU1lOQ19IRUlHSFQsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZHgsIHBlbmRpbmctPmhlaWdodCwgY21kcV9wa3QpOw0KPiA+ ICsNCj4gPiArICAgICAgIHJkbWFfY29uZmlnLnNvdXJjZV93aWR0aCA9IHBlbmRpbmctPnBpdGNo IC8gZm10X2luZm8tDQo+ID4gPmNwcFswXTsNCj4gPiArICAgICAgIHJkbWFfY29uZmlnLmNzY19l bmFibGUgPSBmbXRfaW5mby0+aXNfeXV2ID8gdHJ1ZSA6IGZhbHNlOw0KPiA+ICsgICAgICAgcmRt YV9jb25maWcucHJvZmlsZSA9IFJETUFfQ1NDX0ZVTEw3MDlfVE9fUkdCOw0KPiA+ICsgICAgICAg cmRtYV9jb25maWcuZW5jb2RlX3R5cGUgPSBSRE1BX0VOQ09ERV9OT05FOw0KPiA+ICsgICAgICAg cmRtYV9jb25maWcuYmxvY2tfc2l6ZSA9IFJETUFfQkxPQ0tfTk9ORTsNCj4gPiArICAgICAgIHJk bWFfY29uZmlnLndpZHRoID0gbWVyZ2VfY2ZnLmluX3dbMF07DQo+ID4gKyAgICAgICByZG1hX2Nv bmZpZy5oZWlnaHQgPSBwZW5kaW5nLT5oZWlnaHQ7DQo+ID4gKyAgICAgICByZG1hX2NvbmZpZy5h ZGRyMCA9IHBlbmRpbmctPmFkZHI7DQo+ID4gKyAgICAgICByZG1hX2NvbmZpZy5mbXQgPSBwZW5k aW5nLT5mb3JtYXQ7DQo+ID4gKyAgICAgICBtdGtfbWRwX3JkbWFfY29uZmlnKHJkbWFfbC0+cmVn cywgJnJkbWFfY29uZmlnLCBjbWRxX3BrdCwNCj4gPiAmcmRtYV9sLT5jbWRxX2Jhc2UpOw0KPiA+ ICsNCj4gPiArICAgICAgIHJkbWFfY29uZmlnLnhfbGVmdCA9IG1lcmdlX2NmZy5pbl93WzBdOw0K PiA+ICsgICAgICAgcmRtYV9jb25maWcud2lkdGggPSBtZXJnZV9jZmcuaW5fd1sxXTsNCj4gPiAr ICAgICAgIG10a19tZHBfcmRtYV9jb25maWcocmRtYV9yLT5yZWdzLCAmcmRtYV9jb25maWcsIGNt ZHFfcGt0LA0KPiA+ICZyZG1hX3ItPmNtZHFfYmFzZSk7DQo+ID4gKw0KPiA+ICsgICAgICAgbXRr X2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCAweDEsICZtZXJnZS0+Y21kcV9iYXNlLCBtZXJnZS0N Cj4gPiA+cmVncywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBESVNQX01FUkdFX0VO QUJMRSwgTUVSR0VfRU5BQkxFKTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRx X3BrdCwgMHgwLCAmbWVyZ2UtPmNtZHFfYmFzZSwgbWVyZ2UtDQo+ID4gPnJlZ3MsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgRElTUF9NRVJHRV9NVVRFXzAsIDB4MSk7DQo+ID4gKw0K PiA+ICsgICAgICAgbXRrX21kcF9yZG1hX3N0YXJ0KHJkbWFfbC0+cmVncywgY21kcV9wa3QsICZy ZG1hX2wtDQo+ID4gPmNtZHFfYmFzZSk7DQo+ID4gKyAgICAgICBpZiAodXNlX2R1YWxfcGlwZSkN Cj4gPiArICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hX3N0YXJ0KHJkbWFfci0+cmVncywgY21k cV9wa3QsICZyZG1hX3ItDQo+ID4gPmNtZHFfYmFzZSk7DQo+ID4gKyAgICAgICBlbHNlDQo+ID4g KyAgICAgICAgICAgICAgIG10a19tZHBfcmRtYV9zdG9wKHJkbWFfci0+cmVncywgY21kcV9wa3Qs ICZyZG1hX3ItDQo+ID4gPmNtZHFfYmFzZSk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQgbXRr X3BzZXVkb19vdmxfY29uZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHcsDQo+ ID4gdW5zaWduZWQgaW50IGgsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IHZyZWZyZXNoLCB1bnNpZ25lZCBpbnQgYnBjLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQo+ID4gK3sNCj4gPiArICAgICAg IHN0cnVjdCBtdGtfZGlzcF9wc2V1ZG9fb3ZsICpwc2V1ZG9fb3ZsID0NCj4gPiBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsNCj4gPiArDQo+ID4gKyAgICAgICBkZXZfaW5mbyhkZXYsICIlcyB3OiVkLCBo OiVkXG4iLCBfX2Z1bmNfXywgdywgaCk7DQo+ID4gKw0KPiA+ICsgICAgICAgbXRrX3BzZXVkb19v dmxfZmlmb19zZXR0aW5nKHBzZXVkb19vdmwsIGNtZHFfcGt0KTsNCj4gPiArfQ0KPiA+ICsNCj4g PiArdm9pZCBtdGtfcHNldWRvX292bF9zdGFydChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4gK3sN Cj4gPiArfQ0KPiA+ICsNCj4gPiArdm9pZCBtdGtfcHNldWRvX292bF9zdG9wKHN0cnVjdCBkZXZp Y2UgKmRldikNCj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0IG10a19kaXNwX3BzZXVkb19vdmwg KnBzZXVkb19vdmwgPQ0KPiA+IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ICsgICAgICAgc3Ry dWN0IG10a19wc2V1ZG9fb3ZsX2NvbXAgKnJkbWFfbDsNCj4gPiArICAgICAgIHN0cnVjdCBtdGtf cHNldWRvX292bF9jb21wICpyZG1hX3I7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX3BzZXVkb19v dmxfY29tcCAqbWVyZ2U7DQo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgcmVnOw0KPiA+ICsgICAg ICAgdTMyIGk7DQo+ID4gKw0KPiA+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IHBzZXVkb19vdmwt PmRhdGEtPmxheWVyX25yOyBpKyspIHsNCj4gPiArICAgICAgICAgICAgICAgcmRtYV9sID0gJnBz ZXVkb19vdmwtDQo+ID4gPnBzZXVkb19vdmxfY29tcFtQU0VVRE9fT1ZMX1JETUFfQkFTRSArIDIg KiBpXTsNCj4gPiArICAgICAgICAgICAgICAgcmRtYV9yID0gJnBzZXVkb19vdmwtDQo+ID4gPnBz ZXVkb19vdmxfY29tcFtQU0VVRE9fT1ZMX1JETUFfQkFTRSArIDIgKiBpICsgMV07DQo+ID4gKyAg ICAgICAgICAgICAgIG1lcmdlID0gJnBzZXVkb19vdmwtDQo+ID4gPnBzZXVkb19vdmxfY29tcFtQ U0VVRE9fT1ZMX01FUkdFX0JBU0UgKyBpXTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIG10 a19tZHBfcmRtYV9zdG9wKHJkbWFfbC0+cmVncywgTlVMTCwgJnJkbWFfbC0NCj4gPiA+Y21kcV9i YXNlKTsNCj4gPiArICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hX3N0b3AocmRtYV9yLT5yZWdz LCBOVUxMLCAmcmRtYV9yLQ0KPiA+ID5jbWRxX2Jhc2UpOw0KPiA+ICsNCj4gPiArICAgICAgICAg ICAgICAgcmVnID0gcmVhZGwobWVyZ2UtPnJlZ3MgKyBESVNQX01FUkdFX0VOQUJMRSk7DQo+ID4g KyAgICAgICAgICAgICAgIHJlZyA9IHJlZyAmIH5NRVJHRV9FTkFCTEU7DQo+ID4gKyAgICAgICAg ICAgICAgIHdyaXRlbF9yZWxheGVkKHJlZywgbWVyZ2UtPnJlZ3MgKw0KPiA+IERJU1BfTUVSR0Vf RU5BQkxFKTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIGRldmljZV9yZXNldF9vcHRpb25h bChtZXJnZS0+ZGV2KTsNCj4gPiArICAgICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiAraW50IG10 a19wc2V1ZG9fb3ZsX2Nsa19lbmFibGUoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICt7DQo+ID4g KyAgICAgICBzdHJ1Y3QgbXRrX2Rpc3BfcHNldWRvX292bCAqcHNldWRvX292bCA9DQo+ID4gZGV2 X2dldF9kcnZkYXRhKGRldik7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX3BzZXVkb19vdmxfY29t cCAqY29tcDsNCj4gPiArICAgICAgIGludCByZXQ7DQo+ID4gKyAgICAgICBpbnQgaTsNCj4gPiAr ICAgICAgIGludCBqOw0KPiA+ICsNCj4gPiArICAgICAgIGZvciAoaSA9IFBTRVVET19PVkxfTURQ X1JETUEwOyBpIDwgUFNFVURPX09WTF9JRF9NQVg7IGkrKykNCj4gPiB7DQo+ID4gKyAgICAgICAg ICAgICAgIGNvbXAgPSAmcHNldWRvX292bC0+cHNldWRvX292bF9jb21wW2ldOw0KPiA+ICsgICAg ICAgICAgICAgICBpZiAoIWNvbXAtPmRldikNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBj b250aW51ZTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIC8qIE5lZWQgdG8gcG93ZXIgb24g Zm9yIHByaXZhdGUgcmRtYSBkZXZpY2VzICovDQo+ID4gKyAgICAgICAgICAgICAgIGlmIChpIDwg UFNFVURPX09WTF9NRVJHRV9CQVNFKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0 ID0gcG1fcnVudGltZV9nZXRfc3luYyhjb21wLT5kZXYpOw0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGlmIChyZXQgPCAwKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGV2X2VycihkZXYsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJGYWlsZWQgdG8gcG93ZXIgb24sIGVycg0KPiA+ICVkLSVzXG4iLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQsDQo+ID4gcHNldWRvX292bF9jb21wX3N0 cltpXSk7DQo+ID4gKyAgICAgICAgICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAg IGZvciAoaiA9IDA7IGogPCBBUlJBWV9TSVpFKGNvbXAtPmNsa3MpOyBqKyspIHsNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICBpZiAoSVNfRVJSKGNvbXAtPmNsa3Nbal0pKQ0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIHJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShjb21wLT5jbGtzW2pdKTsNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0KQ0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGV2X2VycihkZXYsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gZW5hYmxlIGNsb2NrICVkLA0KPiA+IGVyciAlZC0l c1xuIiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgcmV0 LA0KPiA+IHBzZXVkb19vdmxfY29tcF9zdHJbaV0pOw0KPiA+ICsgICAgICAgICAgICAgICB9DQo+ ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJuIHJldDsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArdm9pZCBtdGtfcHNldWRvX292bF9jbGtfZGlzYWJsZShzdHJ1Y3QgZGV2aWNlICpk ZXYpDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCBtdGtfZGlzcF9wc2V1ZG9fb3ZsICpwc2V1 ZG9fb3ZsID0NCj4gPiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArICAgICAgIHN0cnVjdCBt dGtfcHNldWRvX292bF9jb21wICpjb21wOw0KPiA+ICsgICAgICAgaW50IHJldDsNCj4gPiArICAg ICAgIGludCBpOw0KPiA+ICsgICAgICAgaW50IGo7DQo+ID4gKw0KPiA+ICsgICAgICAgZm9yIChp ID0gUFNFVURPX09WTF9NRFBfUkRNQTA7IGkgPCBQU0VVRE9fT1ZMX0lEX01BWDsgaSsrKQ0KPiA+ IHsNCj4gPiArICAgICAgICAgICAgICAgY29tcCA9ICZwc2V1ZG9fb3ZsLT5wc2V1ZG9fb3ZsX2Nv bXBbaV07DQo+ID4gKyAgICAgICAgICAgICAgIGlmICghY29tcC0+ZGV2KQ0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgZm9y IChqID0gMDsgaSA8IEFSUkFZX1NJWkUoY29tcC0+Y2xrcyk7IGorKykgew0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIGlmIChJU19FUlIoY29tcC0+Y2xrc1tqXSkpDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICBjbGtfZGlzYWJsZV91bnByZXBhcmUoY29tcC0+Y2xrc1tqXSk7DQo+ID4gKyAgICAgICAgICAg ICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIC8qIE5lZWQgdG8gcG93ZXIgb2ZmIGZv ciBwcml2YXRlIHJkbWEgZGV2aWNlcyAqLw0KPiA+ICsgICAgICAgICAgICAgICBpZiAoaSA8IFBT RVVET19PVkxfTUVSR0VfQkFTRSkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldCA9 IHBtX3J1bnRpbWVfcHV0KGNvbXAtPmRldik7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg aWYgKHJldCA8IDApDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZfZXJy KGRldiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxl ZCB0byBwb3dlciBvZmYsIGVyci0NCj4gPiAlc1xuIiwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0LA0KPiA+IHBzZXVkb19vdmxfY29tcF9zdHJbaV0pOw0K PiA+ICsgICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICB9DQo+ID4gK30NCj4gPiArDQo+ID4g K3N0YXRpYyBpbnQgcHNldWRvX292bF9jb21wX2dldF9pZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0 cnVjdA0KPiA+IGRldmljZV9ub2RlICpub2RlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbnVtIG10a19wc2V1ZG9fb3ZsX2NvbXBfdHlwZQ0KPiA+IHR5cGUpDQo+ID4g K3sNCj4gPiArICAgICAgIGludCBhbGlhc19pZCA9IG9mX2FsaWFzX2dldF9pZChub2RlLA0KPiA+ IHByaXZhdGVfY29tcF9zdGVtW3R5cGVdKTsNCj4gPiArICAgICAgIGludCByZXQ7DQo+ID4gKyAg ICAgICBpbnQgaTsNCj4gPiArDQo+ID4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0la RShjb21wX21hdGNoZXMpOyBpKyspDQo+ID4gKyAgICAgICAgICAgICAgIGlmIChjb21wX21hdGNo ZXNbaV0udHlwZSA9PSB0eXBlICYmDQo+ID4gKyAgICAgICAgICAgICAgICAgICBjb21wX21hdGNo ZXNbaV0uYWxpYXNfaWQgPT0gYWxpYXNfaWQpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIGk7DQo+ID4gKw0KPiA+ICsgICAgICAgZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0 IGlkLiB0eXBlOiAlZCwgYWxpYXM6ICVkXG4iLA0KPiA+IHR5cGUsIGFsaWFzX2lkKTsNCj4gPiAr ICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IHBy aXZhdGVfY29tcF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0DQo+ID4gZGV2aWNlX25v ZGUgKm5vZGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbXRrX3Bz ZXVkb19vdmxfY29tcCAqY29tcCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu dW0gbXRrX3BzZXVkb19vdmxfY29tcF9pZCBpZCkNCj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqY29tcF9wZGV2Ow0KPiA+ICsgICAgICAgaW50IHJldDsNCj4gPiAr ICAgICAgIGludCBpOw0KPiA+ICsNCj4gPiArICAgICAgIGlmIChpZCA8IDAgfHwgaWQgPj0gUFNF VURPX09WTF9JRF9NQVgpIHsNCj4gPiArICAgICAgICAgICAgICAgZGV2X2VycihkZXYsICJJbnZh bGlkIGNvbXBvbmVudCBpZCAlZFxuIiwgaWQpOw0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4g LUVJTlZBTDsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICBjb21wX3BkZXYgPSBv Zl9maW5kX2RldmljZV9ieV9ub2RlKG5vZGUpOw0KPiA+ICsgICAgICAgaWYgKCFjb21wX3BkZXYp IHsNCj4gPiArICAgICAgICAgICAgICAgZGV2X3dhcm4oZGV2LCAiY2FuJ3QgZmluZCBwbGF0Zm9y bSBkZXZpY2Ugb2YNCj4gPiBub2RlOiVzXG4iLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICBub2RlLT5uYW1lKTsNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7DQo+ID4g KyAgICAgICB9DQo+ID4gKyAgICAgICBjb21wLT5kZXYgPSAmY29tcF9wZGV2LT5kZXY7DQo+ID4g KyAgICAgICBjb21wLT5yZWdzID0gb2ZfaW9tYXAobm9kZSwgMCk7DQo+ID4gKw0KPiA+ICsgICAg ICAgZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY29tcC0+Y2xrcyk7IGkrKykgew0KPiA+ICsg ICAgICAgICAgICAgICBjb21wLT5jbGtzW2ldID0gb2ZfY2xrX2dldChub2RlLCBpKTsNCj4gPiAr ICAgICAgICAgICAgICAgaWYgKElTX0VSUihjb21wLT5jbGtzW2ldKSkNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyNpZiBJU19S RUFDSEFCTEUoQ09ORklHX01US19DTURRKQ0KPiA+ICsgICAgICAgcmV0ID0gY21kcV9kZXZfZ2V0 X2NsaWVudF9yZWcoY29tcC0+ZGV2LCAmY29tcC0+Y21kcV9iYXNlLA0KPiA+IDApOw0KPiA+ICsg ICAgICAgaWYgKHJldCkNCj4gPiArICAgICAgICAgICAgICAgZGV2X2luZm8oZGV2LCAiZ2V0IG1l ZGlhdGVrLGdjZS1jbGllbnQtcmVnDQo+ID4gZmFpbCFcbiIpOw0KPiA+ICsjZW5kaWYNCj4gPiAr DQo+ID4gKyAgICAgICBpZiAoaWQgPCBQU0VVRE9fT1ZMX01FUkdFX0JBU0UpDQo+ID4gKyAgICAg ICAgICAgICAgIHBtX3J1bnRpbWVfZW5hYmxlKGNvbXAtPmRldik7DQo+ID4gKw0KPiA+ICsgICAg ICAgZGV2X2luZm8oZGV2LCAiW0RSTV1yZWdzOjB4JXAsIG5vZGU6JXNcbiIsIGNvbXAtPnJlZ3Ms DQo+ID4gcHNldWRvX292bF9jb21wX3N0cltpZF0pOw0KPiA+ICsNCj4gPiArICAgICAgIHJldHVy biAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG10a19kaXNwX3BzZXVkb19vdmxf Y29tcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlDQo+ID4gKnBkZXYpDQo+ID4gK3sNCj4g PiArICAgICAgIHJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG10a19k aXNwX3BzZXVkb19vdmxfY29tcF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZQ0KPiA+ICpw ZGV2KQ0KPiA+ICt7DQo+ID4gKyAgICAgICByZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiAr c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX3BzZXVkb19vdmxfY29tcF9kdF9p ZHNbXSA9IHsNCj4gPiArICAgICAgIHsNCj4gPiArICAgICAgICAgICAgICAgLmNvbXBhdGlibGUg PSAibWVkaWF0ZWssbXQ4MTk1LXZkbzEtcmRtYSIsDQo+ID4gKyAgICAgICAgICAgICAgIC5kYXRh ID0gKHZvaWQgKilQU0VVRE9fT1ZMX1RZUEVfUkRNQSwNCj4gPiArICAgICAgIH0sIHsNCj4gPiAr ICAgICAgICAgICAgICAgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTk1LXZkbzEtbWVyZ2Ui LA0KPiA+ICsgICAgICAgICAgICAgICAuZGF0YSA9ICh2b2lkICopUFNFVURPX09WTF9UWVBFX01F UkdFLA0KPiA+ICsgICAgICAgfSwNCj4gPiArICAgICAgIHt9LA0KPiA+ICt9Ow0KPiA+ICsNCj4g PiArc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2Rpc3BfcHNldWRvX292bF9jb21w X2RyaXZlciA9IHsNCj4gPiArICAgICAgIC5wcm9iZSAgICAgICAgICA9IG10a19kaXNwX3BzZXVk b19vdmxfY29tcF9wcm9iZSwNCj4gPiArICAgICAgIC5yZW1vdmUgICAgICAgICA9IG10a19kaXNw X3BzZXVkb19vdmxfY29tcF9yZW1vdmUsDQo+ID4gKyAgICAgICAuZHJpdmVyID0gew0KPiA+ICsg ICAgICAgICAgICAgICAubmFtZSAgID0gIm1lZGlhdGVrLWRpc3AtcHNldWRvLW92bC1jb21wIiwN Cj4gPiArICAgICAgICAgICAgICAgLm93bmVyICA9IFRISVNfTU9EVUxFLA0KPiA+ICsgICAgICAg ICAgICAgICAub2ZfbWF0Y2hfdGFibGUgPSBtdGtfcHNldWRvX292bF9jb21wX2R0X2lkcywNCj4g PiArICAgICAgIH0sDQo+ID4gK307DQo+ID4gK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIobXRrX2Rp c3BfcHNldWRvX292bF9jb21wX2RyaXZlcik7DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IHBzZXVk b19vdmxfY29tcF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPiArew0KPiA+ICsgICAgICAg c3RydWN0IG10a19kaXNwX3BzZXVkb19vdmwgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsN Cj4gPiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwgKnBhcmVudDsNCj4gPiArICAg ICAgIGludCBpLCByZXQ7DQo+ID4gKw0KPiA+ICsgICAgICAgcGFyZW50ID0gZGV2LT5wYXJlbnQt Pm9mX25vZGUtPnBhcmVudDsNCj4gPiArDQo+ID4gKyAgICAgICBmb3JfZWFjaF9jaGlsZF9vZl9u b2RlKHBhcmVudCwgbm9kZSkgew0KPiA+ICsgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgb2Zf ZGV2aWNlX2lkICpvZl9pZDsNCj4gPiArICAgICAgICAgICAgICAgZW51bSBtdGtfcHNldWRvX292 bF9jb21wX3R5cGUgdHlwZTsNCj4gPiArICAgICAgICAgICAgICAgc3RydWN0IG10a19wc2V1ZG9f b3ZsX2NvbXAgKmNvbXA7DQo+ID4gKyAgICAgICAgICAgICAgIGludCBpZDsNCj4gPiArDQo+ID4g KyAgICAgICAgICAgICAgIG9mX2lkID0gb2ZfbWF0Y2hfbm9kZShtdGtfcHNldWRvX292bF9jb21w X2R0X2lkcywNCj4gPiBub2RlKTsNCj4gPiArICAgICAgICAgICAgICAgaWYgKCFvZl9pZCkNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gPiArDQo+ID4gKyAgICAgICAg ICAgICAgIGlmICghb2ZfZGV2aWNlX2lzX2F2YWlsYWJsZShub2RlKSkgew0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIGRldl9pbmZvKGRldiwgIlNraXBwaW5nIGRpc2FibGVkIGNvbXBvbmVu dA0KPiA+ICVwT0ZcbiIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9k ZSk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+ID4gKyAgICAgICAg ICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIHR5cGUgPSAoZW51bSBtdGtfcHNl dWRvX292bF9jb21wX3R5cGUpb2ZfaWQtPmRhdGE7DQo+ID4gKyAgICAgICAgICAgICAgIGlkID0g cHNldWRvX292bF9jb21wX2dldF9pZChkZXYsIG5vZGUsIHR5cGUpOw0KPiA+ICsgICAgICAgICAg ICAgICBpZiAoaWQgPCAwKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZGV2X3dhcm4o ZGV2LCAiU2tpcHBpbmcgdW5rbm93biBjb21wb25lbnQNCj4gPiAlcE9GXG4iLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUpOw0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOw0KPiA+ICsgICAgICAgICAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAg ICAgICAgICAgICByZXQgPSBwcml2YXRlX2NvbXBfaW5pdChkZXYsIG5vZGUsICZwcml2LQ0KPiA+ ID5wc2V1ZG9fb3ZsX2NvbXBbaWRdLCBpZCk7DQo+ID4gKyAgICAgICAgICAgICAgIGlmIChyZXQp DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gPiArICAgICAgIH0N Cj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBwc2V1ZG9fb3ZsX2RhdGEgbXQ4MTk1X3BzZXVkb19vdmxfZHJpdmVyX2Rh dGENCj4gPiA9IHsNCj4gPiArICAgICAgIC5sYXllcl9uciA9IDQsDQo+ID4gKyAgICAgICAuZmlm by5yZWFkX3JlcXVlc3RfdHlwZSA9IDcsDQo+ID4gKyAgICAgICAuZmlmby5jb21tYW5kX2RpdiA9 IDEsDQo+ID4gKyAgICAgICAuZmlmby5leHRfcHJldXRyYV9lbiA9IDEsDQo+ID4gKyAgICAgICAu Zmlmby51bHRyYV9lbiA9IDAsDQo+ID4gKyAgICAgICAuZmlmby5wcmVfdWx0cmFfZW4gPSAxLA0K PiA+ICsgICAgICAgLmZpZm8uZXh0X3VsdHJhX2VuID0gMSwNCj4gPiArICAgICAgIC5maWZvLmV4 dHJkX2FyYl9tYXhfMCA9IDMsDQo+ID4gKyAgICAgICAuZmlmby5idWZfcmVzdl9zaXplXzAgPSAw LA0KPiA+ICsgICAgICAgLmZpZm8uaXNzdWVfcmVxX3RoXzAgPSAwLA0KPiA+ICsgICAgICAgLmZp Zm8udWx0cmFfaF9jb25fMCA9IDE1NiwNCj4gPiArICAgICAgIC5maWZvLnVsdHJhX2xfY29uXzAg PSAxMDQsDQo+ID4gK307DQo+IA0KPiBOb3cgb25seSBzdXBwb3J0IG9uZSBTb0MsIHNvIHJlbW92 ZSBkcml2ZXIgZGF0YSBhbmQgY2hhbmdlIHRoZXNlIHRvDQo+IGRlZmluaXRpb24gaW5zdGVhZCBv ZiB2YXJpYWJsZS4NCj4gDQpPSywgSSB3aWxsIHJlbW92ZSBpdC4NCg0KPiA+ICsNCj4gPiArc3Rh dGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcHNldWRvX292bF9kcml2ZXJfZHRfbWF0Y2hb XSA9IHsNCj4gPiArICAgICAgIHsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTk1LWRpc3At ZXRoZHIiLA0KPiA+ICsgICAgICAgICAuZGF0YSA9ICZtdDgxOTVfcHNldWRvX292bF9kcml2ZXJf ZGF0YX0sDQo+ID4gKyAgICAgICB7fSwNCj4gPiArfTsNCj4gPiArTU9EVUxFX0RFVklDRV9UQUJM RShvZiwgbXRrX2Rpc3BfcHNldWRvX292bF9kcml2ZXJfZHRfbWF0Y2gpOw0KPiA+ICsNCj4gPiAr c3RhdGljIGludCBtdGtfZGlzcF9wc2V1ZG9fb3ZsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCBtdGtfZGlzcF9wc2V1ZG9fb3Zs ICpwcml2Ow0KPiA+ICsgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsNCj4g PiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqcGhhbmRsZSA9IGRldi0+cGFyZW50LT5vZl9u b2RlOw0KPiA+ICsgICAgICAgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqb2ZfaWQ7DQo+ID4g KyAgICAgICBpbnQgcmV0Ow0KPiA+ICsgICAgICAgaW50IGk7DQo+ID4gKw0KPiA+ICsgICAgICAg ZGV2X2luZm8oZGV2LCAiJXMrXG4iLCBfX2Z1bmNfXyk7DQo+ID4gKw0KPiA+ICsgICAgICAgb2Zf aWQgPSBvZl9tYXRjaF9ub2RlKHBzZXVkb19vdmxfZHJpdmVyX2R0X21hdGNoLCBwaGFuZGxlKTsN Cj4gPiArICAgICAgIGlmICghb2ZfaWQpDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5P REVWOw0KPiA+ICsNCj4gPiArICAgICAgIHByaXYgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2Yo KnByaXYpLCBHRlBfS0VSTkVMKTsNCj4gPiArICAgICAgIGlmICghcHJpdikNCj4gPiArICAgICAg ICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4gKw0KPiA+ICsgICAgICAgcHJpdi0+bW1zeXNf ZGV2ID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7DQo+ID4gKw0KPiA+ICsgICAgICAgcHJpdi0+ ZGF0YSA9IG9mX2lkLT5kYXRhOw0KPiA+ICsgICAgICAgcGxhdGZvcm1fc2V0X2RydmRhdGEocGRl diwgcHJpdik7DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0ID0gcHNldWRvX292bF9jb21wX2luaXQo ZGV2KTsNCj4gPiArICAgICAgIGlmIChyZXQpIHsNCj4gPiArICAgICAgICAgICAgICAgZGV2X25v dGljZShkZXYsICJwc2V1ZG9fb3ZsIGNvbXAgaW5pdCBmYWlsXG4iKTsNCj4gPiArICAgICAgICAg ICAgICAgcmV0dXJuIHJldDsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICBkZXZf aW5mbyhkZXYsICIlcy1cbiIsIF9fZnVuY19fKTsNCj4gPiArICAgICAgIHJldHVybiByZXQ7DQo+ ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgbXRrX2Rpc3BfcHNldWRvX292bF9yZW1vdmUo c3RydWN0IHBsYXRmb3JtX2RldmljZQ0KPiA+ICpwZGV2KQ0KPiA+ICt7DQo+ID4gKyAgICAgICBz dHJ1Y3QgbXRrX2Rpc3BfcHNldWRvX292bCAqcHNldWRvX292bCA9DQo+ID4gZGV2X2dldF9kcnZk YXRhKCZwZGV2LT5kZXYpOw0KPiA+ICsgICAgICAgaW50IGk7DQo+ID4gKw0KPiA+ICsgICAgICAg Zm9yIChpID0gUFNFVURPX09WTF9NRFBfUkRNQTA7IGkgPCBQU0VVRE9fT1ZMX01FUkdFX0JBU0U7 DQo+ID4gaSsrKQ0KPiA+ICsgICAgICAgICAgICAgICBwbV9ydW50aW1lX2Rpc2FibGUocHNldWRv X292bC0NCj4gPiA+cHNldWRvX292bF9jb21wW2ldLmRldik7DQo+ID4gKw0KPiA+ICsgICAgICAg cmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRr X2Rpc3BfcHNldWRvX292bF9kcml2ZXIgPSB7DQo+ID4gKyAgICAgICAucHJvYmUgPSBtdGtfZGlz cF9wc2V1ZG9fb3ZsX3Byb2JlLA0KPiA+ICsgICAgICAgLnJlbW92ZSA9IG10a19kaXNwX3BzZXVk b19vdmxfcmVtb3ZlLA0KPiA+ICsgICAgICAgLmRyaXZlciA9IHsNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAubmFtZSA9ICJtZWRpYXRlay1kaXNwLXBzZXVkby1vdmwiLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIC5vd25lciA9IFRISVNfTU9EVUxFLA0KPiA+ICsgICAgICAgICAg ICAgICB9LA0KPiA+ICt9Ow0KPiA+ICttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKG10a19kaXNwX3Bz ZXVkb19vdmxfZHJpdmVyKTsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kaXNwX3BzZXVkb19vdmwuaA0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kaXNwX3BzZXVkb19vdmwuaA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5k ZXggMDAwMDAwMDAwMDAwLi5iM2ZlMWUxNzAyYjgNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX3BzZXVkb19vdmwuaA0KPiA+IEBA IC0wLDAgKzEsMjMgQEANCj4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAt b25seSAqLw0KPiA+ICsvKg0KPiA+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjEgTWVkaWFUZWsgSW5j Lg0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNpZm5kZWYgX19NVEtfRElTUF9QU0VVRE9fT1ZMX0hf Xw0KPiA+ICsjZGVmaW5lIF9fTVRLX0RJU1BfUFNFVURPX09WTF9IX18NCj4gPiArDQo+ID4gKyNp bmNsdWRlIDxkcm0vbWVkaWF0ZWtfZHJtLmg+DQo+ID4gKw0KPiA+ICt2b2lkIG10a19wc2V1ZG9f b3ZsX3N0YXJ0KHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ID4gK3ZvaWQgbXRrX3BzZXVkb19vdmxf c3RvcChzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICtpbnQgbXRrX3BzZXVkb19vdmxfY2xrX2Vu YWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICt2b2lkIG10a19wc2V1ZG9fb3ZsX2Nsa19k aXNhYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ID4gK3ZvaWQgbXRrX3BzZXVkb19vdmxfY29u ZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHcsDQo+ID4gdW5zaWduZWQgaW50 IGgsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHZyZWZyZXNo LCB1bnNpZ25lZCBpbnQgYnBjLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBjbWRxX3BrdCAqY21kcV9wa3QpOw0KPiA+ICt2b2lkIG10a19wc2V1ZG9fb3ZsX2xheWVyX2Nv bmZpZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludA0KPiA+IGlkeCwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpzdGF0 ZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY21kcV9wa3Qg KmNtZHFfcGt0KTsNCj4gPiArDQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmRtYS5jDQo+ID4gYi9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX21kcF9yZG1hLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uODFkM2NjNDg3MmViDQo+ID4gLS0tIC9kZXYvbnVsbA0K PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JkbWEuYw0KPiA+IEBA IC0wLDAgKzEsNDU2IEBADQo+ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w LW9ubHkNCj4gPiArLyoNCj4gPiArICogQ29weXJpZ2h0IChjKSAyMDIxIE1lZGlhVGVrIEluYy4N Cj4gPiArICovDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4NCj4gPiAr I2luY2x1ZGUgIm10a19kcm1fZHJ2LmgiDQo+ID4gKyNpbmNsdWRlICJtdGtfbWRwX3JlZ19yZG1h LmgiDQo+ID4gKyNpbmNsdWRlICJtdGtfbWRwX3JkbWEuaCINCj4gPiArDQo+ID4gKyNkZWZpbmUg UkRNQV9JTlBVVF9TV0FQICAgICAgICAgICAgICAgIEJJVCgxNCkNCj4gPiArI2RlZmluZSBSRE1B X0lOUFVUXzEwQklUICAgICAgIEJJVCgxOCkNCj4gPiArI2RlZmluZSBJUlFfSU5UX0VOX0FMTCBc DQo+ID4gKyAgICAgICAoUkVHX0ZMRF9NQVNLKEZMRF9VTkRFUlJVTl9JTlRfRU4pIHxcDQo+ID4g KyAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9SRUdfVVBEQVRFX0lOVF9FTikgfFwNCj4gPiArICAg ICAgICBSRUdfRkxEX01BU0soRkxEX0ZSQU1FX0NPTVBMRVRFX0lOVF9FTikpDQo+ID4gKw0KPiA+ ICtzdGF0aWMgdW5zaWduZWQgaW50IHJkbWFfZ2V0X3lfcGl0Y2godW5zaWduZWQgaW50IGZtdCwg dW5zaWduZWQNCj4gPiBpbnQgd2lkdGgpDQo+ID4gK3sNCj4gPiArICAgICAgIHN3aXRjaCAoZm10 KSB7DQo+ID4gKyAgICAgICBkZWZhdWx0Og0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1JH QjU2NToNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1I1NjU6DQo+ID4gKyAgICAgICAg ICAgICAgIHJldHVybiAyICogd2lkdGg7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfUkdC ODg4Og0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX0JHUjg4ODoNCj4gPiArICAgICAgICAg ICAgICAgcmV0dXJuIDMgKiB3aWR0aDsNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9SR0JY ODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9SR0JBODg4ODoNCj4gPiArICAgICAg IGNhc2UgRFJNX0ZPUk1BVF9CR1JYODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9C R1JBODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4ODoNCj4gPiArICAg ICAgIGNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1B VF9YQkdSODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoNCj4gPiAr ICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9BUkdCMjEwMTAxMDoNCj4gPiArICAgICAgIGNhc2UgRFJN X0ZPUk1BVF9BQkdSMjEwMTAxMDoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9SR0JBMTAx MDEwMjoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1JBMTAxMDEwMjoNCj4gPiArICAg ICAgICAgICAgICAgcmV0dXJuIDQgKiB3aWR0aDsNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1B VF9VWVZZOg0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1lVWVY6DQo+ID4gKyAgICAgICAg ICAgICAgIHJldHVybiAyICogd2lkdGg7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfTlYx MjoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9OVjIxOg0KPiA+ICsgICAgICAgICAgICAg ICByZXR1cm4gMSAqIHdpZHRoOw0KPiA+ICsgICAgICAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtz dGF0aWMgdW5zaWduZWQgaW50IHJkbWFfZ2V0X3V2X3BpdGNoKHVuc2lnbmVkIGludCBmbXQsIHVu c2lnbmVkDQo+ID4gaW50IHdpZHRoKQ0KPiA+ICt7DQo+ID4gKyAgICAgICBzd2l0Y2ggKGZtdCkg ew0KPiA+ICsgICAgICAgZGVmYXVsdDoNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfTlYxMjoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZP Uk1BVF9OVjIxOg0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gNCAqIHdpZHRoOw0KPiA+ICsg ICAgICAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdW5zaWduZWQgaW50IHJkbWFfZ2V0 X2Jsb2NrX2godW5zaWduZWQgaW50IG1vZGUpDQo+ID4gK3sNCj4gPiArICAgICAgIHN3aXRjaCAo bW9kZSkgew0KPiA+ICsgICAgICAgZGVmYXVsdDoNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJu IDA7DQo+ID4gKyAgICAgICBjYXNlIFJETUFfQkxPQ0tfOHg4Og0KPiA+ICsgICAgICAgY2FzZSBS RE1BX0JMT0NLXzE2eDg6DQo+ID4gKyAgICAgICBjYXNlIFJETUFfQkxPQ0tfMzJ4ODoNCj4gPiAr ICAgICAgICAgICAgICAgcmV0dXJuIDg7DQo+ID4gKyAgICAgICBjYXNlIFJETUFfQkxPQ0tfOHgx NjoNCj4gPiArICAgICAgIGNhc2UgUkRNQV9CTE9DS18xNngxNjoNCj4gPiArICAgICAgIGNhc2Ug UkRNQV9CTE9DS18zMngxNjoNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDE2Ow0KPiA+ICsg ICAgICAgY2FzZSBSRE1BX0JMT0NLXzh4MzI6DQo+ID4gKyAgICAgICBjYXNlIFJETUFfQkxPQ0tf MTZ4MzI6DQo+ID4gKyAgICAgICBjYXNlIFJETUFfQkxPQ0tfMzJ4MzI6DQo+ID4gKyAgICAgICAg ICAgICAgIHJldHVybiAzMjsNCj4gPiArICAgICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiArc3Rh dGljIHVuc2lnbmVkIGludCByZG1hX2dldF9ob3Jpem9udGFsX3NoaWZ0X3V2KHVuc2lnbmVkIGlu dCBmbXQpDQo+ID4gK3sNCj4gPiArICAgICAgIHN3aXRjaCAoZm10KSB7DQo+ID4gKyAgICAgICBk ZWZhdWx0Og0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiArICAgICAgIGNhc2Ug RFJNX0ZPUk1BVF9OVjEyOg0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX05WMjE6DQo+ID4g KyAgICAgICAgICAgICAgIHJldHVybiAxOw0KPiA+ICsgICAgICAgfQ0KPiA+ICt9DQo+ID4gKw0K PiA+ICtzdGF0aWMgdW5zaWduZWQgaW50IHJkbWFfZ2V0X3ZlcnRpY2FsX3NoaWZ0X3V2KHVuc2ln bmVkIGludCBmbXQpDQo+ID4gK3sNCj4gPiArICAgICAgIHN3aXRjaCAoZm10KSB7DQo+ID4gKyAg ICAgICBkZWZhdWx0Og0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiArICAgICAg IGNhc2UgRFJNX0ZPUk1BVF9OVjEyOg0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX05WMjE6 DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAxOw0KPiA+ICsgICAgICAgfQ0KPiA+ICt9DQo+ ID4gKw0KPiA+ICtzdGF0aWMgdW5zaWduZWQgaW50IHJkbWFfZ2V0X2JpdHNfcGVyX3BpeGVsX3ko dW5zaWduZWQgaW50IGZtdCkNCj4gPiArew0KPiA+ICsgICAgICAgc3dpdGNoIChmbXQpIHsNCj4g PiArICAgICAgIGRlZmF1bHQ6DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfUkdCNTY1Og0K PiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX0JHUjU2NToNCj4gPiArICAgICAgICAgICAgICAg cmV0dXJuIDE2Ow0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1JHQjg4ODoNCj4gPiArICAg ICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1I4ODg6DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAy NDsNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9SR0JYODg4ODoNCj4gPiArICAgICAgIGNh c2UgRFJNX0ZPUk1BVF9SR0JBODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1JY ODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1JBODg4ODoNCj4gPiArICAgICAg IGNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9B UkdCODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4ODoNCj4gPiArICAg ICAgIGNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJu IDMyOw0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1VZVlk6DQo+ID4gKyAgICAgICBjYXNl IERSTV9GT1JNQVRfWVVZVjoNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDE2Ow0KPiA+ICsg ICAgICAgY2FzZSBEUk1fRk9STUFUX05WMTI6DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRf TlYyMToNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDg7DQo+ID4gKyAgICAgICB9DQo+ID4g K30NCj4gPiArDQo+ID4gK3N0YXRpYyB1bnNpZ25lZCBpbnQgcmRtYV9nZXRfYml0c19wZXJfcGl4 ZWxfdXYodW5zaWduZWQgaW50IGZtdCkNCj4gPiArew0KPiA+ICsgICAgICAgc3dpdGNoIChmbXQp IHsNCj4gPiArICAgICAgIGRlZmF1bHQ6DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAwOw0K PiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX05WMTI6DQo+ID4gKyAgICAgICBjYXNlIERSTV9G T1JNQVRfTlYyMToNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDE2Ow0KPiA+ICsgICAgICAg fQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgYm9vbCB3aXRoX2FscGhhKHVpbnQzMl90IGZv cm1hdCkNCj4gPiArew0KPiA+ICsgICAgICAgY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAq Zm10X2luZm8gPQ0KPiA+IGRybV9mb3JtYXRfaW5mbyhmb3JtYXQpOw0KPiA+ICsNCj4gPiArICAg ICAgIHJldHVybiBmbXRfaW5mby0+aGFzX2FscGhhOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0 aWMgdW5zaWduZWQgaW50IHJkbWFfZm10X2NvbnZlcnQodW5zaWduZWQgaW50IGZtdCkNCj4gPiAr ew0KPiA+ICsgICAgICAgc3dpdGNoIChmbXQpIHsNCj4gPiArICAgICAgIGRlZmF1bHQ6DQo+ID4g KyAgICAgICBjYXNlIERSTV9GT1JNQVRfUkdCNTY1Og0KPiA+ICsgICAgICAgICAgICAgICByZXR1 cm4gUkRNQV9JTlBVVF9GT1JNQVRfUkdCNTY1Ow0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFU X0JHUjU2NToNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIFJETUFfSU5QVVRfRk9STUFUX1JH QjU2NSB8IFJETUFfSU5QVVRfU1dBUDsNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9SR0I4 ODg6DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBSRE1BX0lOUFVUX0ZPUk1BVF9SR0I4ODg7 DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfQkdSODg4Og0KPiA+ICsgICAgICAgICAgICAg ICByZXR1cm4gUkRNQV9JTlBVVF9GT1JNQVRfUkdCODg4IHwgUkRNQV9JTlBVVF9TV0FQOw0KPiA+ ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1JHQlg4ODg4Og0KPiA+ICsgICAgICAgY2FzZSBEUk1f Rk9STUFUX1JHQkE4ODg4Og0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9G T1JNQVRfQVJHQjg4ODg7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfQkdSWDg4ODg6DQo+ ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfQkdSQTg4ODg6DQo+ID4gKyAgICAgICAgICAgICAg IHJldHVybiBSRE1BX0lOUFVUX0ZPUk1BVF9BUkdCODg4OCB8DQo+ID4gUkRNQV9JTlBVVF9TV0FQ Ow0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4Og0KPiA+ICsgICAgICAgY2Fz ZSBEUk1fRk9STUFUX0FSR0I4ODg4Og0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gUkRNQV9J TlBVVF9GT1JNQVRfUkdCQTg4ODg7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfWEJHUjg4 ODg6DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfQUJHUjg4ODg6DQo+ID4gKyAgICAgICAg ICAgICAgIHJldHVybiBSRE1BX0lOUFVUX0ZPUk1BVF9SR0JBODg4OCB8DQo+ID4gUkRNQV9JTlBV VF9TV0FQOw0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX0FCR1IyMTAxMDEwOg0KPiA+ICsg ICAgICAgICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JNQVRfUkdCQTg4ODggfCBSRE1BX0lO UFVUX1NXQVANCj4gPiB8DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRE1B X0lOUFVUXzEwQklUOw0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX0FSR0IyMTAxMDEwOg0K PiA+ICsgICAgICAgICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JNQVRfUkdCQTg4ODggfA0K PiA+IFJETUFfSU5QVVRfMTBCSVQ7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfUkdCQTEw MTAxMDI6DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBSRE1BX0lOUFVUX0ZPUk1BVF9BUkdC ODg4OCB8IFJETUFfSU5QVVRfU1dBUA0KPiA+IHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJETUFfSU5QVVRfMTBCSVQ7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRf QkdSQTEwMTAxMDI6DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBSRE1BX0lOUFVUX0ZPUk1B VF9BUkdCODg4OCB8DQo+ID4gUkRNQV9JTlBVVF8xMEJJVDsNCj4gPiArICAgICAgIGNhc2UgRFJN X0ZPUk1BVF9VWVZZOg0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JN QVRfVVlWWTsNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9ZVVlWOg0KPiA+ICsgICAgICAg ICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JNQVRfWVVZMjsNCj4gPiArICAgICAgIH0NCj4g PiArfQ0KPiA+ICsNCj4gPiArdm9pZCBtdGtfbWRwX3JkbWFfc3RhcnQodm9pZCBfX2lvbWVtICpi YXNlLCBzdHJ1Y3QgY21kcV9wa3QNCj4gPiAqY21kcV9wa3QsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGNtZHFfY2xpZW50X3JlZyAqY21kcV9iYXNlKQ0KPiA+ICt7DQo+ID4g KyAgICAgICB1bnNpZ25lZCBpbnQgaW50ZW4gPSBJUlFfSU5UX0VOX0FMTDsNCj4gPiArDQo+ID4g KyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIGludGVuLCBjbWRxX2Jhc2UsIGJh c2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTURQX1JETUFfSU5URVJSVVBUX0VO QUJMRSwNCj4gPiBJUlFfSU5UX0VOX0FMTCk7DQo+IA0KPiBXaHkgZG8geW91IGVuYWJsZSByZG1h IGludGVycnVwdD8NCj4gDQpJIHdpbGwgcmVtb3ZlIGl0Lg0KDQo+ID4gKyAgICAgICBtdGtfZGRw X3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9ST1RfRU5BQkxFLA0KPiA+IDEp LCBjbWRxX2Jhc2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZSwgTURQX1JE TUFfRU4sDQo+ID4gUkVHX0ZMRF9NQVNLKEZMRF9ST1RfRU5BQkxFKSk7DQo+ID4gK30NCj4gPiAr DQo+ID4gK3ZvaWQgbXRrX21kcF9yZG1hX3N0b3Aodm9pZCBfX2lvbWVtICpiYXNlLCBzdHJ1Y3Qg Y21kcV9wa3QNCj4gPiAqY21kcV9wa3QsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgY21kcV9jbGllbnRfcmVnICpjbWRxX2Jhc2UpDQo+ID4gK3sNCj4gPiArICAgICAgIG10a19k ZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgUkVHX0ZMRF9WQUwoRkxEX1JPVF9FTkFCTEUsDQo+ID4g MCksIGNtZHFfYmFzZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLCBNRFBf UkRNQV9FTiwNCj4gPiBSRUdfRkxEX01BU0soRkxEX1JPVF9FTkFCTEUpKTsNCj4gPiArICAgICAg IG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgMCwgY21kcV9iYXNlLCBiYXNlLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgIE1EUF9SRE1BX0lOVEVSUlVQVF9FTkFCTEUsDQo+ID4g SVJRX0lOVF9FTl9BTEwpOw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0 LCAwLCBjbWRxX2Jhc2UsIGJhc2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTURQ X1JETUFfSU5URVJSVVBUX1NUQVRVUywNCj4gPiBJUlFfSU5UX0VOX0FMTCk7DQo+ID4gKyAgICAg ICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIDEsIGNtZHFfYmFzZSwgYmFzZSwNCj4gPiBN RFBfUkRNQV9SRVNFVCwgfjApOw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFf cGt0LCAwLCBjbWRxX2Jhc2UsIGJhc2UsDQo+ID4gTURQX1JETUFfUkVTRVQsIH4wKTsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArdm9pZCBtdGtfbWRwX3JkbWFfZmlmb19jb25maWcodm9pZCBfX2lvbWVt ICpiYXNlLCBzdHJ1Y3QgY21kcV9wa3QNCj4gPiAqY21kcV9wa3QsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGNtZHFfY2xpZW50X3JlZyAqY21kcV9iYXNlLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBtdGtfbWRwX3JkbWFf ZmlmbyAqZmlmbykNCj4gDQo+IFdoeSBkbyB5b3UgcGFzcyBmaWZvIGNvbmZpZyBmcm9tIG92bCB0 byByZG1hPw0KPiBJIHRoaW5rIGp1c3QgcmRtYSBrbm93IGhvdyB0byBzZXQgdGhlc2UgZmlmbyBw YXJhbWV0ZXIuDQo+IA0KSSB3aWxsIG1vdmUgZmlmbyBzZXR0aW5nIGluc2lkZSB0aGUgcmRtYSBk cml2ZXIuDQoNCj4gPiArew0KPiA+ICsgICAgICAgaW50IHJlZzsNCj4gPiArICAgICAgIGludCBy ZWdfdmFsOw0KPiA+ICsgICAgICAgaW50IHJlZ19tYXNrOw0KPiA+ICsNCj4gPiArICAgICAgIHJl ZyA9IE1EUF9SRE1BX0dNQ0lGX0NPTjsNCj4gPiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxEX1ZB TChGTERfUkRfUkVRX1RZUEUsIGZpZm8tDQo+ID4gPnJlYWRfcmVxdWVzdF90eXBlKSB8DQo+ID4g KyAgICAgICAgICAgICAgICAgUkVHX0ZMRF9WQUwoRkxEX0NPTU1BTkRfRElWLCBmaWZvLT5jb21t YW5kX2RpdikgfA0KPiA+ICsgICAgICAgICAgICAgICAgIFJFR19GTERfVkFMKEZMRF9FWFRfUFJF VUxUUkFfRU4sIGZpZm8tDQo+ID4gPmV4dF9wcmV1dHJhX2VuKSB8DQo+ID4gKyAgICAgICAgICAg ICAgICAgUkVHX0ZMRF9WQUwoRkxEX1VMVFJBX0VOLCBmaWZvLT51bHRyYV9lbikgfA0KPiA+ICsg ICAgICAgICAgICAgICAgIFJFR19GTERfVkFMKFBSRV9VTFRSQV9FTiwgZmlmby0+cHJlX3VsdHJh X2VuKSB8DQo+ID4gKyAgICAgICAgICAgICAgICAgUkVHX0ZMRF9WQUwoRkxEX0VYVF9VTFRSQV9F TiwgZmlmby0NCj4gPiA+ZXh0X3VsdHJhX2VuKTsNCj4gPiArICAgICAgIHJlZ19tYXNrID0gUkVH X0ZMRF9NQVNLKEZMRF9SRF9SRVFfVFlQRSkgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBSRUdf RkxEX01BU0soRkxEX0NPTU1BTkRfRElWKSB8DQo+ID4gKyAgICAgICAgICAgICAgICAgIFJFR19G TERfTUFTSyhGTERfRVhUX1BSRVVMVFJBX0VOKSB8DQo+ID4gKyAgICAgICAgICAgICAgICAgIFJF R19GTERfTUFTSyhGTERfVUxUUkFfRU4pIHwNCj4gPiArICAgICAgICAgICAgICAgICAgUkVHX0ZM RF9NQVNLKFBSRV9VTFRSQV9FTikgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBSRUdfRkxEX01B U0soRkxEX0VYVF9VTFRSQV9FTik7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21k cV9wa3QsIHJlZ192YWwsIGNtZHFfYmFzZSwgYmFzZSwgcmVnLA0KPiA+IHJlZ19tYXNrKTsNCj4g PiArDQo+ID4gKyAgICAgICByZWcgPSBNRFBfUkRNQV9ETUFfQ09OXzA7DQo+ID4gKyAgICAgICBy ZWdfdmFsID0gUkVHX0ZMRF9WQUwoRkxEX0VYVFJEX0FSQl9NQVgsIGZpZm8tDQo+ID4gPmV4dHJk X2FyYl9tYXhfMCkgfA0KPiA+ICsgICAgICAgICAgICAgICAgIFJFR19GTERfVkFMKEZMRF9CVUZf UkVTVl9TSVpFLCBmaWZvLQ0KPiA+ID5idWZfcmVzdl9zaXplXzApIHwNCj4gPiArICAgICAgICAg ICAgICAgICBSRUdfRkxEX1ZBTChGTERfSVNTVUVfUkVRX1RILCBmaWZvLQ0KPiA+ID5pc3N1ZV9y ZXFfdGhfMCk7DQo+ID4gKyAgICAgICByZWdfbWFzayA9IFJFR19GTERfTUFTSyhGTERfRVhUUkRf QVJCX01BWCkgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX0JVRl9S RVNWX1NJWkUpIHwNCj4gPiArICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9JU1NV RV9SRVFfVEgpOw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCByZWdf dmFsLCBjbWRxX2Jhc2UsIGJhc2UsIHJlZywNCj4gPiByZWdfbWFzayk7DQo+ID4gKw0KPiA+ICsg ICAgICAgcmVnID0gTURQX1JETUFfVVRSQV9IX0NPTl8wOw0KPiA+ICsgICAgICAgcmVnX3ZhbCA9 IFJFR19GTERfVkFMKEZMRF9QUkVVVFJBX0hfT0ZTXzAsIGZpZm8tDQo+ID4gPnVsdHJhX2hfY29u XzApOw0KPiA+ICsgICAgICAgcmVnX21hc2sgPSBSRUdfRkxEX01BU0soRkxEX1BSRVVUUkFfSF9P RlNfMCk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIHJlZ192YWws IGNtZHFfYmFzZSwgYmFzZSwgcmVnLA0KPiA+IHJlZ19tYXNrKTsNCj4gPiArDQo+ID4gKyAgICAg ICByZWcgPSBNRFBfUkRNQV9VVFJBX0xfQ09OXzA7DQo+ID4gKyAgICAgICByZWdfdmFsID0gUkVH X0ZMRF9WQUwoRkxEX1BSRVVUUkFfTF9PRlNfMCwgZmlmby0NCj4gPiA+dWx0cmFfbF9jb25fMCk7 DQo+ID4gKyAgICAgICByZWdfbWFzayA9IFJFR19GTERfTUFTSyhGTERfUFJFVVRSQV9MX09GU18w KTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgcmVnX3ZhbCwgY21k cV9iYXNlLCBiYXNlLCByZWcsDQo+ID4gcmVnX21hc2spOw0KPiA+ICsNCj4gPiArICAgICAgIHJl ZyA9IE1EUF9SRE1BX0RNQUJVRl9DT05fMTsNCj4gPiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxE X1ZBTChGTERfRVhUUkRfQVJCX01BWF8xLCAwKSB8DQo+ID4gKyAgICAgICAgICAgICAgICAgUkVH X0ZMRF9WQUwoRkxEX0JVRl9SRVNWX1NJWkVfMSwgMCkgfA0KPiA+ICsgICAgICAgICAgICAgICAg IFJFR19GTERfVkFMKEZMRF9JU1NVRV9SRVFfVEhfMSwgMCk7DQo+ID4gKyAgICAgICByZWdfbWFz ayA9IFJFR19GTERfTUFTSyhGTERfRVhUUkRfQVJCX01BWF8xKSB8DQo+ID4gKyAgICAgICAgICAg ICAgICAgIFJFR19GTERfTUFTSyhGTERfQlVGX1JFU1ZfU0laRV8xKSB8DQo+ID4gKyAgICAgICAg ICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfSVNTVUVfUkVRX1RIXzEpOw0KPiA+ICsgICAgICAg bXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCByZWdfdmFsLCBjbWRxX2Jhc2UsIGJhc2UsIHJl ZywNCj4gPiByZWdfbWFzayk7DQo+ID4gKw0KPiA+ICsgICAgICAgcmVnID0gTURQX1JETUFfVUxU UkFfVEhfSElHSF9DT05fMTsNCj4gPiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxEX1ZBTChGTERf UFJFX1VMVFJBX1RIX0hJR0hfT0ZTXzEsIDApOw0KPiA+ICsgICAgICAgcmVnX21hc2sgPSBSRUdf RkxEX01BU0soRkxEX1BSRV9VTFRSQV9USF9ISUdIX09GU18xKTsNCj4gPiArICAgICAgIG10a19k ZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgcmVnX3ZhbCwgY21kcV9iYXNlLCBiYXNlLCByZWcsDQo+ ID4gcmVnX21hc2spOw0KPiA+ICsNCj4gPiArICAgICAgIHJlZyA9IE1EUF9SRE1BX1VMVFJBX1RI X0xPV19DT05fMTsNCj4gPiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxEX1ZBTChGTERfUFJFX1VM VFJBX1RIX0xPV19PRlNfMSwgMCk7DQo+ID4gKyAgICAgICByZWdfbWFzayA9IFJFR19GTERfTUFT SyhGTERfUFJFX1VMVFJBX1RIX0xPV19PRlNfMSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRl X21hc2soY21kcV9wa3QsIHJlZ192YWwsIGNtZHFfYmFzZSwgYmFzZSwgcmVnLA0KPiA+IHJlZ19t YXNrKTsNCj4gPiArDQo+ID4gKyAgICAgICByZWcgPSBNRFBfUkRNQV9ETUFCVUZfQ09OXzI7DQo+ ID4gKyAgICAgICByZWdfdmFsID0gUkVHX0ZMRF9WQUwoRkxEX0VYVFJEX0FSQl9NQVhfMiwgMCkg fA0KPiA+ICsgICAgICAgICAgICAgICAgIFJFR19GTERfVkFMKEZMRF9CVUZfUkVTVl9TSVpFXzIs IDApIHwNCj4gPiArICAgICAgICAgICAgICAgICBSRUdfRkxEX1ZBTChGTERfSVNTVUVfUkVRX1RI XzIsIDApOw0KPiA+ICsgICAgICAgcmVnX21hc2sgPSBSRUdfRkxEX01BU0soRkxEX0VYVFJEX0FS Ql9NQVhfMikgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX0JVRl9S RVNWX1NJWkVfMikgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX0lT U1VFX1JFUV9USF8yKTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwg cmVnX3ZhbCwgY21kcV9iYXNlLCBiYXNlLCByZWcsDQo+ID4gcmVnX21hc2spOw0KPiA+ICsNCj4g PiArICAgICAgIHJlZyA9IE1EUF9SRE1BX1VUUkFfSF9DT05fMjsNCj4gPiArICAgICAgIHJlZ192 YWwgPSBSRUdfRkxEX1ZBTChGTERfUFJFX1VMVFJBX1RIX0hJR0hfT0ZTXzIsIDApOw0KPiA+ICsg ICAgICAgcmVnX21hc2sgPSBSRUdfRkxEX01BU0soRkxEX1BSRV9VTFRSQV9USF9ISUdIX09GU18y KTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgcmVnX3ZhbCwgY21k cV9iYXNlLCBiYXNlLCByZWcsDQo+ID4gcmVnX21hc2spOw0KPiA+ICsNCj4gPiArICAgICAgIHJl ZyA9IE1EUF9SRE1BX1VMVFJBX1RIX0xPV19DT05fMjsNCj4gPiArICAgICAgIHJlZ192YWwgPSBS RUdfRkxEX1ZBTChGTERfUFJFX1VMVFJBX1RIX0xPV19PRlNfMiwgMCk7DQo+ID4gKyAgICAgICBy ZWdfbWFzayA9IFJFR19GTERfTUFTSyhGTERfUFJFX1VMVFJBX1RIX0xPV19PRlNfMik7DQo+ID4g KyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIHJlZ192YWwsIGNtZHFfYmFzZSwg YmFzZSwgcmVnLA0KPiA+IHJlZ19tYXNrKTsNCj4gPiArDQo+ID4gKyAgICAgICByZWcgPSBNRFBf UkRNQV9ETUFCVUZfQ09OXzM7DQo+ID4gKyAgICAgICByZWdfdmFsID0gUkVHX0ZMRF9WQUwoRkxE X0VYVFJEX0FSQl9NQVhfMywgMCkgfA0KPiA+ICsgICAgICAgICAgICAgICAgIFJFR19GTERfVkFM KEZMRF9CVUZfUkVTVl9TSVpFXzMsIDApIHwNCj4gPiArICAgICAgICAgICAgICAgICBSRUdfRkxE X1ZBTChGTERfSVNTVUVfUkVRX1RIXzMsIDApOw0KPiA+ICsgICAgICAgcmVnX21hc2sgPSBSRUdf RkxEX01BU0soRkxEX0VYVFJEX0FSQl9NQVhfMykgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBS RUdfRkxEX01BU0soRkxEX0JVRl9SRVNWX1NJWkVfMykgfA0KPiA+ICsgICAgICAgICAgICAgICAg ICBSRUdfRkxEX01BU0soRkxEX0lTU1VFX1JFUV9USF8zKTsNCj4gPiArICAgICAgIG10a19kZHBf d3JpdGVfbWFzayhjbWRxX3BrdCwgcmVnX3ZhbCwgY21kcV9iYXNlLCBiYXNlLCByZWcsDQo+ID4g cmVnX21hc2spOw0KPiA+ICsNCj4gPiArICAgICAgIHJlZyA9IE1EUF9SRE1BX1VUUkFfSF9DT05f MzsNCj4gPiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxEX1ZBTChGTERfUFJFX1VMVFJBX1RIX0hJ R0hfT0ZTXzMsIDApOw0KPiA+ICsgICAgICAgcmVnX21hc2sgPSBSRUdfRkxEX01BU0soRkxEX1BS RV9VTFRSQV9USF9ISUdIX09GU18zKTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhj bWRxX3BrdCwgcmVnX3ZhbCwgY21kcV9iYXNlLCBiYXNlLCByZWcsDQo+ID4gcmVnX21hc2spOw0K PiA+ICsNCj4gPiArICAgICAgIHJlZyA9IE1EUF9SRE1BX1VMVFJBX1RIX0xPV19DT05fMzsNCj4g PiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxEX1ZBTChGTERfUFJFX1VMVFJBX1RIX0xPV19PRlNf MywgMCk7DQo+ID4gKyAgICAgICByZWdfbWFzayA9IFJFR19GTERfTUFTSyhGTERfUFJFX1VMVFJB X1RIX0xPV19PRlNfMyk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3Qs IHJlZ192YWwsIGNtZHFfYmFzZSwgYmFzZSwgcmVnLA0KPiA+IHJlZ19tYXNrKTsNCj4gPiArfQ0K PiA+ICsNCj4gPiArdm9pZCBtdGtfbWRwX3JkbWFfY29uZmlnKHZvaWQgX19pb21lbSAqYmFzZSwg c3RydWN0DQo+ID4gbXRrX21kcF9yZG1hX2NmZyAqY2ZnLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0LA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgY21kcV9jbGllbnRfcmVnICpjbWRxX2Jhc2UpDQo+ID4gK3sNCj4gPiAr ICAgICAgIHVuc2lnbmVkIGludCBzcmNfcGl0Y2hfdXYgPSByZG1hX2dldF91dl9waXRjaChjZmct PmZtdCwNCj4gPiBjZmctPnNvdXJjZV93aWR0aCk7DQo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQg c3JjX3BpdGNoX3kgPSByZG1hX2dldF95X3BpdGNoKGNmZy0+Zm10LCBjZmctDQo+ID4gPnNvdXJj ZV93aWR0aCk7DQo+IA0KPiBUaGlzIGlzIGdvdCBmcm9tIG10a19wbGFuZV9hdG9taWNfdXBkYXRl KCkuDQo+IA0KT0ssSSB3aWxsIG1vZGlmeSBpdC4NCg0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50 IGhfc2hpZnRfdXYgPSByZG1hX2dldF9ob3Jpem9udGFsX3NoaWZ0X3V2KGNmZy0NCj4gPiA+Zm10 KTsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCB2X3NoaWZ0X3V2ID0gcmRtYV9nZXRfdmVydGlj YWxfc2hpZnRfdXYoY2ZnLQ0KPiA+ID5mbXQpOw0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IGJw cF91diA9IHJkbWFfZ2V0X2JpdHNfcGVyX3BpeGVsX3V2KGNmZy0+Zm10KTsNCj4gPiArICAgICAg IHVuc2lnbmVkIGludCBibG9ja19oID0gcmRtYV9nZXRfYmxvY2tfaChjZmctPmJsb2NrX3NpemUp Ow0KPiANCj4gYmxvY2tfaCA9IDA7DQpPSywgSSB3aWxsIG1vZGlmeSBpdC4NCj4gDQo+ID4gKyAg ICAgICB1bnNpZ25lZCBpbnQgYnBwX3kgPSByZG1hX2dldF9iaXRzX3Blcl9waXhlbF95KGNmZy0+ Zm10KTsNCj4gDQo+IGRybV9mb3JtYXRfaW5mbygpLg0KT0ssIEkgd2lsbCBtb2RpZnkgaXQuDQo+ IA0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IHlfc3RhcnRfbGluZSA9IDA7DQo+ID4gKyAgICAg ICB1bnNpZ25lZCBpbnQgb2Zmc2V0X3kgPSAwOw0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IG9m ZnNldF91ID0gMDsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCBvZmZzZXRfdiA9IDA7DQo+ID4g Kw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LA0KPiA+IFJFR19GTERf VkFMKEZMRF9VTklGT1JNX0NPTkZJRywgMSksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgY21kcV9iYXNlLCBiYXNlLCBNRFBfUkRNQV9TUkNfQ09OLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfVU5JRk9STV9DT05GSUcpKTsNCj4gPiArICAg ICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgcmRtYV9mbXRfY29udmVydChjZmctPmZt dCksDQo+ID4gY21kcV9iYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2Us IE1EUF9SRE1BX1NSQ19DT04sDQo+ID4gUkVHX0ZMRF9NQVNLKEZMRF9TV0FQKSB8DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9TUkNfRk9STUFUKSB8DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9CSVRfTlVNQkVS KSk7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKCFjZmctPmNzY19lbmFibGUgJiYgd2l0aF9hbHBo YShjZmctPmZtdCkpDQo+ID4gKyAgICAgICAgICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRx X3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChGTERfT1VUUFVUX0FSR0IsIDEpLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kcV9iYXNlLCBiYXNlLA0KPiA+IE1EUF9SRE1B X1NSQ19DT04sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxE X01BU0soRkxEX09VVFBVVF9BUkdCKSk7DQo+ID4gKyAgICAgICBlbHNlDQo+ID4gKyAgICAgICAg ICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChGTERf T1VUUFVUX0FSR0IsIDApLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y21kcV9iYXNlLCBiYXNlLA0KPiA+IE1EUF9SRE1BX1NSQ19DT04sDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX09VVFBVVF9BUkdCKSk7DQo+ ID4gKw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCBjZmctPmFkZHIw LCBjbWRxX2Jhc2UsIGJhc2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTURQX1JE TUFfU1JDX0JBU0VfMCwNCj4gPiBSRUdfRkxEX01BU0soRkxEX1NSQ19CQVNFXzApKTsNCj4gPiAr ICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgY2ZnLT5hZGRyMSwgY21kcV9iYXNl LCBiYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIE1EUF9SRE1BX1NSQ19CQVNF XzEsDQo+ID4gUkVHX0ZMRF9NQVNLKEZMRF9TUkNfQkFTRV8xKSk7DQo+ID4gKyAgICAgICBtdGtf ZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIGNmZy0+YWRkcjIsIGNtZHFfYmFzZSwgYmFzZSwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICBNRFBfUkRNQV9TUkNfQkFTRV8yLA0KPiA+IFJF R19GTERfTUFTSyhGTERfU1JDX0JBU0VfMikpOw0KPiA+ICsNCj4gPiArICAgICAgIG10a19kZHBf d3JpdGVfbWFzayhjbWRxX3BrdCwgc3JjX3BpdGNoX3ksIGNtZHFfYmFzZSwgYmFzZSwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICBNRFBfUkRNQV9NRl9CS0dEX1NJWkVfSU5fQllURSwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX01GX0JLR0Rf V0IpKTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgc3JjX3BpdGNo X3V2LCBjbWRxX2Jhc2UsIGJhc2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTURQ X1JETUFfU0ZfQktHRF9TSVpFX0lOX0JZVEUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgUkVHX0ZMRF9NQVNLKEZMRF9TRl9CS0dEX1dCKSk7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYg KGNmZy0+ZW5jb2RlX3R5cGUgPT0gUkRNQV9FTkNPREVfQUZCQykgew0KPiANCj4gTmV2ZXIgYmUg aGVyZSwgc28gcmVtb3ZlLg0KPiANCk9LLCBJIHdpbGwgcmVtb3ZlIGl0Lg0KDQo+ID4gKyAgICAg ICAgICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChG TERfTUZfQktHRF9XUCwgY2ZnLT5zb3VyY2Vfd2lkdGgpLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY21kcV9iYXNlLCBiYXNlLA0KPiA+IE1EUF9SRE1BX01GX0JLR0Rf U0laRV9JTl9QSVhFTCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTERfTUFTSyhGTERfTUZfQktHRF9XUCkpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRw X3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwoRkxEX0JLR0RfSFAsIGNmZy0+ aGVpZ2h0KSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFz ZSwgYmFzZSwNCj4gPiBNRFBfUkRNQV9NRl9CS0dEX0hfU0laRV9JTl9QSVhFTCwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfQktHRF9IUCkp Ow0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4g UkVHX0ZMRF9WQUwoRkxEX0FGQkNfWVVWX1RSQU5TRk9STSwgMSksDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbWRxX2Jhc2UsIGJhc2UsDQo+ID4gTURQX1JETUFfQ09N UF9DT04sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01B U0soRkxEX0FGQkNfWVVWX1RSQU5TRg0KPiA+IE9STSkpOw0KPiA+ICsgICAgICAgICAgICAgICBt dGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwoRkxEX1VGQkRDX0VO LCAxKSwgY21kcV9iYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YmFzZSwgTURQX1JETUFfQ09NUF9DT04sDQo+ID4gUkVHX0ZMRF9NQVNLKEZMRF9VRkJEQ19FTikp Ow0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4g UkVHX0ZMRF9WQUwoRkxEX0FGQkNfRU4sIDEpLCBjbWRxX2Jhc2UsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBiYXNlLCBNRFBfUkRNQV9DT01QX0NPTiwNCj4gPiBSRUdf RkxEX01BU0soRkxEX0FGQkNfRU4pKTsNCj4gPiArICAgICAgIH0gZWxzZSB7DQo+ID4gKyAgICAg ICAgICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChG TERfQUZCQ19ZVVZfVFJBTlNGT1JNLCAwKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwNCj4gPiBNRFBfUkRNQV9DT01QX0NPTiwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfQUZCQ19Z VVZfVFJBTlNGDQo+ID4gT1JNKSk7DQo+ID4gKyAgICAgICAgICAgICAgIG10a19kZHBfd3JpdGVf bWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChGTERfVUZCRENfRU4sIDApLCBjbWRxX2Jh c2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLCBNRFBfUkRN QV9DT01QX0NPTiwNCj4gPiBSRUdfRkxEX01BU0soRkxEX1VGQkRDX0VOKSk7DQo+ID4gKyAgICAg ICAgICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChG TERfQUZCQ19FTiwgMCksIGNtZHFfYmFzZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJhc2UsIE1EUF9SRE1BX0NPTVBfQ09OLA0KPiA+IFJFR19GTERfTUFTSyhGTERf QUZCQ19FTikpOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIG10a19kZHBfd3Jp dGVfbWFzayhjbWRxX3BrdCwgUkVHX0ZMRF9WQUwoRkxEX09VVFBVVF8xMEIsDQo+ID4gMSksIGNt ZHFfYmFzZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLCBNRFBfUkRNQV9D T04sDQo+ID4gUkVHX0ZMRF9NQVNLKEZMRF9PVVRQVVRfMTBCKSk7DQo+ID4gKyAgICAgICBtdGtf ZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9TSU1QTEVfTU9ERSwNCj4g PiAxKSwgY21kcV9iYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UsIE1E UF9SRE1BX0NPTiwNCj4gPiBSRUdfRkxEX01BU0soRkxEX1NJTVBMRV9NT0RFKSk7DQo+ID4gKyAg ICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9UUkFOU19F TiwgY2ZnLQ0KPiA+ID5jc2NfZW5hYmxlKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICBjbWRxX2Jhc2UsIGJhc2UsIE1EUF9SRE1BX1RSQU5TRk9STV8wLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfVFJBTlNfRU4pKTsNCj4gPiArICAgICAg IG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChGTERfSU5UX01B VFJJWF9TRUwsIGNmZy0+cHJvZmlsZSksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg Y21kcV9iYXNlLCBiYXNlLCBNRFBfUkRNQV9UUkFOU0ZPUk1fMCwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX0lOVF9NQVRSSVhfU0VMKSk7DQo+ID4gKw0K PiA+ICsgICAgICAgaWYgKGNmZy0+YmxvY2tfc2l6ZSA9PSBSRE1BX0JMT0NLX05PTkUpIHsNCj4g PiArICAgICAgICAgICAgICAgeV9zdGFydF9saW5lID0gY2ZnLT55X3RvcDsNCj4gPiArDQo+ID4g KyAgICAgICAgICAgICAgIG9mZnNldF95ICA9IChjZmctPnhfbGVmdCAqIGJwcF95ID4+IDMpICsN Cj4gPiB5X3N0YXJ0X2xpbmUgKiBzcmNfcGl0Y2hfeTsNCj4gPiArICAgICAgICAgICAgICAgb2Zm c2V0X3UgID0gKChjZmctPnhfbGVmdCA+PiBoX3NoaWZ0X3V2KSAqIGJwcF91dg0KPiA+ID4+IDMp ICsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgKHlfc3RhcnRfbGluZSA+PiB2X3No aWZ0X3V2KSAqDQo+ID4gc3JjX3BpdGNoX3V2Ow0KPiA+ICsgICAgICAgICAgICAgICBvZmZzZXRf diAgPSAoKGNmZy0+eF9sZWZ0ID4+IGhfc2hpZnRfdXYpICogYnBwX3V2DQo+ID4gPj4gMykgKw0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAoeV9zdGFydF9saW5lID4+IHZfc2hpZnRf dXYpICoNCj4gPiBzcmNfcGl0Y2hfdXY7DQo+ID4gKyAgICAgICB9IGVsc2Ugew0KPiANCj4gTmV2 ZXIgYmUgaGVyZSwgc28gcmVtb3ZlLg0KDQpPSywgSSB3aWxsIHJlbW92ZSBpdC4NCj4gDQo+ID4g KyAgICAgICAgICAgICAgIG9mZnNldF95ID0gKGNmZy0+eF9sZWZ0ICogYmxvY2tfaCAqIGJwcF95 ID4+IDMpICsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAoY2ZnLT55X3RvcCkgKiBz cmNfcGl0Y2hfeTsNCj4gPiArICAgICAgICAgICAgICAgb2Zmc2V0X3UgPSAoKGNmZy0+eF9sZWZ0 ID4+IGhfc2hpZnRfdXYpICogKGJsb2NrX2gNCj4gPiA+PiB2X3NoaWZ0X3V2KSAqDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgYnBwX3V2ID4+IDMpICsgKGNmZy0+eV90b3ApICoNCj4g PiBzcmNfcGl0Y2hfdXY7DQo+ID4gKyAgICAgICAgICAgICAgIG9mZnNldF92ID0gKChjZmctPnhf bGVmdCA+PiBoX3NoaWZ0X3V2KSAqIChibG9ja19oDQo+ID4gPj4gdl9zaGlmdF91dikgKg0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGJwcF91diA+PiAzKSArIChjZmctPnlfdG9wKSAq DQo+ID4gc3JjX3BpdGNoX3V2Ow0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIGlm IChjZmctPmVuY29kZV90eXBlID09IFJETUFfRU5DT0RFX0FGQkMpIHsNCj4gDQo+IE5ldmVyIGJl IGhlcmUsIHNvIHJlbW92ZS4NCg0KT0ssIEkgd2lsbCByZW1vdmUgaXQuDQo+IA0KPiA+ICsgICAg ICAgICAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwo RkxEX1NSQ19PRkZTRVRfV1AsIGNmZy0+eF9sZWZ0KSwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwNCj4gPiBNRFBfUkRNQV9TUkNfT0ZGU0VU X1dQLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNL KEZMRF9TUkNfT0ZGU0VUX1dQKSkNCj4gPiA7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBt dGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwoRkxEX1NSQ19PRkZT RVRfSFAsIGNmZy0+eV90b3ApLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY21kcV9iYXNlLCBiYXNlLA0KPiA+IE1EUF9SRE1BX1NSQ19PRkZTRVRfSFAsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX1NSQ19PRkZT RVRfSFApKQ0KPiA+IDsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICBtdGtfZGRw X3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9TUkNfT0ZGU0VUXzAsDQo+ID4g b2Zmc2V0X3kpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFz ZSwgTURQX1JETUFfU1JDX09GRlNFVF8wLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg IFJFR19GTERfTUFTSyhGTERfU1JDX09GRlNFVF8wKSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dy aXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9TUkNfT0ZGU0VUXzEsDQo+ID4gb2Zm c2V0X3UpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwg TURQX1JETUFfU1JDX09GRlNFVF8xLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTERfTUFTSyhGTERfU1JDX09GRlNFVF8xKSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRl X21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9TUkNfT0ZGU0VUXzIsDQo+ID4gb2Zmc2V0 X3YpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwgTURQ X1JETUFfU1JDX09GRlNFVF8yLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19G TERfTUFTSyhGTERfU1JDX09GRlNFVF8yKSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21h c2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9NRl9TUkNfVywgY2ZnLQ0KPiA+ID53aWR0aCks DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgY21kcV9iYXNlLCBiYXNlLCBNRFBfUkRN QV9NRl9TUkNfU0laRSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01B U0soRkxEX01GX1NSQ19XKSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9w a3QsIFJFR19GTERfVkFMKEZMRF9NRl9TUkNfSCwgY2ZnLQ0KPiA+ID5oZWlnaHQpLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwgTURQX1JETUFfTUZfU1JD X1NJWkUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9N Rl9TUkNfSCkpOw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCBSRUdf RkxEX1ZBTChGTERfTUZfQ0xJUF9XLA0KPiA+IGNmZy0+d2lkdGgpLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwgTURQX1JETUFfTUZfQ0xJUF9TSVpFLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfTUZfQ0xJUF9X KSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFM KEZMRF9NRl9DTElQX0gsDQo+ID4gY2ZnLT5oZWlnaHQpLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwgTURQX1JETUFfTUZfQ0xJUF9TSVpFLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfTUZfQ0xJUF9IKSk7DQo+ ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9N Rl9PRkZTRVRfV18xLA0KPiA+IDApLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNt ZHFfYmFzZSwgYmFzZSwgTURQX1JETUFfTUZfT0ZGU0VUXzEsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9NRl9PRkZTRVRfV18xKSk7DQo+ID4gKyAgICAg ICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9NRl9PRkZTRVRf SF8xLA0KPiA+IDApLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwg YmFzZSwgTURQX1JETUFfTUZfT0ZGU0VUXzEsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgUkVHX0ZMRF9NQVNLKEZMRF9NRl9PRkZTRVRfSF8xKSk7DQo+ID4gKyAgICAgICBtdGtfZGRw X3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwoRkxEX0xJTkVfVEhSRVNIT0xE LCBjZmctPmhlaWdodCksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgY21kcV9iYXNl LCBiYXNlLCBNRFBfUkRNQV9UQVJHRVRfTElORSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICBSRUdfRkxEX01BU0soRkxEX0xJTkVfVEhSRVNIT0xEKSk7DQo+ID4gKyAgICAgICBtdGtf ZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwoRkxEX1RBUkdFVF9MSU5F X0VOLCAxKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBjbWRxX2Jhc2UsIGJhc2Us IE1EUF9SRE1BX1RBUkdFVF9MSU5FLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTERfTUFTSyhGTERfVEFSR0VUX0xJTkVfRU4pKTsNCj4gPiArfQ0KPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX21kcF9yZG1hLmgNCj4gPiBiL2RyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JkbWEuaA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi5jMTZiZmI3MTY2MTANCj4gPiAtLS0gL2Rldi9udWxs DQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmRtYS5oDQo+ID4g QEAgLTAsMCArMSwxMDkgQEANCj4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjAtb25seSAqLw0KPiA+ICsvKg0KPiA+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjEgTWVkaWFUZWsg SW5jLg0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNpZm5kZWYgX19NVEtfTURQX1JETUFfSF9fDQo+ ID4gKyNkZWZpbmUgX19NVEtfTURQX1JETUFfSF9fDQo+ID4gKw0KPiA+ICtlbnVtIHJkbWFfZm9y bWF0IHsNCj4gPiArICAgICAgIFJETUFfSU5QVVRfRk9STUFUX1JHQjU2NSA9IDAsDQo+ID4gKyAg ICAgICBSRE1BX0lOUFVUX0ZPUk1BVF9SR0I4ODggPSAxLA0KPiA+ICsgICAgICAgUkRNQV9JTlBV VF9GT1JNQVRfUkdCQTg4ODggPSAyLA0KPiA+ICsgICAgICAgUkRNQV9JTlBVVF9GT1JNQVRfQVJH Qjg4ODggPSAzLA0KPiA+ICsgICAgICAgUkRNQV9JTlBVVF9GT1JNQVRfVVlWWSA9IDQsDQo+ID4g KyAgICAgICBSRE1BX0lOUFVUX0ZPUk1BVF9ZVVkyID0gNSwNCj4gPiArICAgICAgIFJETUFfSU5Q VVRfRk9STUFUX1k4ID0gNywNCj4gPiArICAgICAgIFJETUFfSU5QVVRfRk9STUFUX1lWMTIgPSA4 LA0KPiA+ICsgICAgICAgUkRNQV9JTlBVVF9GT1JNQVRfVVlWWV8zUEwgPSA5LA0KPiA+ICsgICAg ICAgUkRNQV9JTlBVVF9GT1JNQVRfTlYxMiA9IDEyLA0KPiA+ICsgICAgICAgUkRNQV9JTlBVVF9G T1JNQVRfVVlWWV8yUEwgPSAxMywNCj4gPiArICAgICAgIFJETUFfSU5QVVRfRk9STUFUX1k0MTAg PSAxNA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArZW51bSByZG1hX3Byb2ZpbGUgew0KPiA+ICsgICAg ICAgUkRNQV9DU0NfUkdCX1RPX0pQRUcgPSAwLA0KPiA+ICsgICAgICAgUkRNQV9DU0NfUkdCX1RP X0ZVTEw3MDkgPSAxLA0KPiA+ICsgICAgICAgUkRNQV9DU0NfUkdCX1RPX0JUNjAxID0gMiwNCj4g PiArICAgICAgIFJETUFfQ1NDX1JHQl9UT19CVDcwOSA9IDMsDQo+ID4gKyAgICAgICBSRE1BX0NT Q19KUEVHX1RPX1JHQiA9IDQsDQo+ID4gKyAgICAgICBSRE1BX0NTQ19GVUxMNzA5X1RPX1JHQiA9 IDUsDQo+ID4gKyAgICAgICBSRE1BX0NTQ19CVDYwMV9UT19SR0IgPSA2LA0KPiA+ICsgICAgICAg UkRNQV9DU0NfQlQ3MDlfVE9fUkdCID0gNywNCj4gPiArICAgICAgIFJETUFfQ1NDX0pQRUdfVE9f QlQ2MDEgPSA4LA0KPiA+ICsgICAgICAgUkRNQV9DU0NfSlBFR19UT19CVDcwOSA9IDksDQo+ID4g KyAgICAgICBSRE1BX0NTQ19CVDYwMV9UT19KUEVHID0gMTAsDQo+ID4gKyAgICAgICBSRE1BX0NT Q19CVDcwOV9UT19CVDYwMSA9IDExLA0KPiA+ICsgICAgICAgUkRNQV9DU0NfQlQ2MDFfVE9fQlQ3 MDkgPSAxMg0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArZW51bSByZG1hX2VuY29kZSB7DQo+ID4gKyAg ICAgICBSRE1BX0VOQ09ERV9OT05FID0gMCwNCj4gPiArICAgICAgIFJETUFfRU5DT0RFX0FGQkMg PSAxLA0KPiA+ICsgICAgICAgUkRNQV9FTkNPREVfSFlGQkMgPSAyLA0KPiA+ICsgICAgICAgUkRN QV9FTkNPREVfVUZPX0RDUCA9IDMNCj4gPiArfTsNCj4gPiArDQo+ID4gK2VudW0gcmRtYV9ibG9j ayB7DQo+ID4gKyAgICAgICBSRE1BX0JMT0NLX05PTkUgPSAwLA0KPiA+ICsgICAgICAgUkRNQV9C TE9DS184eDggPSAxLA0KPiA+ICsgICAgICAgUkRNQV9CTE9DS184eDE2ID0gMiwNCj4gPiArICAg ICAgIFJETUFfQkxPQ0tfOHgzMiA9IDMsDQo+ID4gKyAgICAgICBSRE1BX0JMT0NLXzE2eDggPSA0 LA0KPiA+ICsgICAgICAgUkRNQV9CTE9DS18xNngxNiA9IDUsDQo+ID4gKyAgICAgICBSRE1BX0JM T0NLXzE2eDMyID0gNiwNCj4gPiArICAgICAgIFJETUFfQkxPQ0tfMzJ4OCA9IDcsDQo+ID4gKyAg ICAgICBSRE1BX0JMT0NLXzMyeDE2ID0gOCwNCj4gPiArICAgICAgIFJETUFfQkxPQ0tfMzJ4MzIg PSA5DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgbXRrX21kcF9yZG1hX2NmZyB7DQo+ID4g KyAgICAgICBlbnVtIHJkbWFfZW5jb2RlIGVuY29kZV90eXBlOw0KPiA+ICsgICAgICAgZW51bSBy ZG1hX2Jsb2NrIGJsb2NrX3NpemU7DQo+ID4gKyAgICAgICBlbnVtIHJkbWFfcHJvZmlsZSBwcm9m aWxlOw0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZV93aWR0aDsNCj4gPiArICAgICAg IHVuc2lnbmVkIGludCBhZGRyMDsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCBhZGRyMTsNCj4g PiArICAgICAgIHVuc2lnbmVkIGludCBhZGRyMjsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCB3 aWR0aDsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCBoZWlnaHQ7DQo+ID4gKyAgICAgICB1bnNp Z25lZCBpbnQgeF9sZWZ0Ow0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IHlfdG9wOw0KPiA+ICsg ICAgICAgYm9vbCBjc2NfZW5hYmxlOw0KPiA+ICsgICAgICAgaW50IGZtdDsNCj4gPiArfTsNCj4g PiArDQo+ID4gK3N0cnVjdCBtdGtfbWRwX3JkbWFfZmlmbyB7DQo+ID4gKyAgICAgICBpbnQgcmVh ZF9yZXF1ZXN0X3R5cGU7DQo+ID4gKyAgICAgICBpbnQgY29tbWFuZF9kaXY7DQo+ID4gKyAgICAg ICBpbnQgZXh0X3ByZXV0cmFfZW47DQo+ID4gKyAgICAgICBpbnQgdWx0cmFfZW47DQo+ID4gKyAg ICAgICBpbnQgcHJlX3VsdHJhX2VuOw0KPiA+ICsgICAgICAgaW50IGV4dF91bHRyYV9lbjsNCj4g PiArICAgICAgIGludCBleHRyZF9hcmJfbWF4XzA7DQo+ID4gKyAgICAgICBpbnQgYnVmX3Jlc3Zf c2l6ZV8wOw0KPiA+ICsgICAgICAgaW50IGlzc3VlX3JlcV90aF8wOw0KPiA+ICsgICAgICAgaW50 IHVsdHJhX2hfY29uXzA7DQo+ID4gKyAgICAgICBpbnQgdWx0cmFfbF9jb25fMDsNCj4gPiArfTsN Cj4gDQo+IE1vdmUgcmRtYSBpbnRlcm5hbCBkZWZpbml0aW9uIGluIC5jIGZpbGUuDQo+IA0KT0ss IEkgd2lsbCBtb3ZlIGl0IHRvIGludGVybmFsIC5jIGZpbGUuDQo+ID4gKw0KPiA+ICt2b2lkIG10 a19tZHBfcmRtYV9zdGFydCh2b2lkIF9faW9tZW0gKmJhc2UsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgY21kcV9jbGllbnRfcmVnICpjbWRxX2Jhc2UpOw0KPiA+ICsNCj4gPiAr dm9pZCBtdGtfbWRwX3JkbWFfc3RvcCh2b2lkIF9faW9tZW0gKmJhc2UsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0LA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGNtZHFfY2xpZW50X3JlZyAqY21kcV9iYXNlKTsNCj4gPiArDQo+ ID4gK3ZvaWQgbXRrX21kcF9yZG1hX2ZpZm9fY29uZmlnKHZvaWQgX19pb21lbSAqYmFzZSwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0 LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjbWRxX2NsaWVudF9y ZWcgKmNtZHFfYmFzZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgbXRrX21kcF9yZG1hX2ZpZm8NCj4gPiAqZmlmbyk7DQo+ID4gKw0KPiA+ICt2b2lkIG10 a19tZHBfcmRtYV9jb25maWcodm9pZCBfX2lvbWVtICpiYXNlLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgbXRrX21kcF9yZG1hX2NmZyAqY2ZnLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0LA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgY21kcV9jbGllbnRfcmVnICpjbWRxX2Jhc2UpOw0KPiANCj4g TW92ZSB0aGVzZSBwcm90b3R5cGUgdG8gbXRrX2Rpc3BfZHJ2LmgNCj4gDQpPSy4NCg0KPiA+ICsN Cj4gPiArI2VuZGlmIC8vIF9fTVRLX01EUF9SRE1BX0hfXw0KPiA+ICsNCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmVnX3JkbWEuaA0KPiA+IGIvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmVnX3JkbWEuaA0KPiA+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi4wOGFiZDlmMzliZDgNCj4gPiAtLS0g L2Rldi9udWxsDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmVn X3JkbWEuaA0KPiA+IEBAIC0wLDAgKzEsMTYwIEBADQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8NCj4gPiArLyoNCj4gPiArICogQ29weXJpZ2h0IChjKSAy MDIxIE1lZGlhVGVrIEluYy4NCj4gPiArICovDQo+ID4gKw0KPiA+ICsjaWZuZGVmIF9fTURQX1JE TUFfUkVHU19IX18NCj4gPiArI2RlZmluZSBfX01EUF9SRE1BX1JFR1NfSF9fDQo+ID4gKw0KPiA+ ICsjZGVmaW5lIFJFR19GTEQod2lkdGgsIHNoaWZ0KSBcDQo+ID4gKyAgICAgICAoKHVuc2lnbmVk IGludCkoKCgod2lkdGgpICYgMHhmZikgPDwgMTYpIHwgKChzaGlmdCkgJg0KPiA+IDB4ZmYpKSkN Cj4gPiArDQo+ID4gKyNkZWZpbmUgUkVHX0ZMRF9XSURUSChmaWVsZCkgKCh1bnNpZ25lZCBpbnQp KCgoZmllbGQpID4+IDE2KSAmDQo+ID4gMHhmZikpDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFJFR19G TERfU0hJRlQoZmllbGQpICgodW5zaWduZWQgaW50KSgoZmllbGQpICYgMHhmZikpDQo+ID4gKw0K PiA+ICsjZGVmaW5lIFJFR19GTERfTUFTSyhmaWVsZCkgXA0KPiA+ICsgICAgICAgKCh1bnNpZ25l ZCBpbnQpKCgxVUxMIDw8IFJFR19GTERfV0lEVEgoZmllbGQpKSAtIDEpIFwNCj4gPiArICAgICAg ICA8PCBSRUdfRkxEX1NISUZUKGZpZWxkKSkNCj4gPiArDQo+ID4gKyNkZWZpbmUgUkVHX0ZMRF9W QUwoZmllbGQsIHZhbCkgXA0KPiA+ICsgICAgICAgKCgodmFsKSA8PCBSRUdfRkxEX1NISUZUKGZp ZWxkKSkgJiBSRUdfRkxEX01BU0soZmllbGQpKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1E UF9SRE1BX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw MA0KPiA+ICsjZGVmaW5lIEZMRF9ST1RfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJFR19GTEQoMSwgMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9SRVNFVCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgNCj4gPiArDQo+ID4g KyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9JTlRFUlJVUFRfRU5BQkxFICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMTANCj4gPiArI2RlZmluZSBGTERfVU5ERVJSVU5fSU5UX0VOICAgICAg ICAgICAgICAgICAgICAgICBSRUdfRkxEKDEsIDIpDQo+ID4gKyNkZWZpbmUgRkxEX1JFR19VUERB VEVfSU5UX0VOICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCgxLCAxKQ0KPiA+ICsjZGVmaW5l IEZMRF9GUkFNRV9DT01QTEVURV9JTlRfRU4gICAgICAgICAgICAgICAgIFJFR19GTEQoMSwgMCkN Cj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9JTlRFUlJVUFRfU1RBVFVTICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTgNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBN RFBfUkRNQV9DT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MjANCj4gPiArI2RlZmluZSBGTERfT1VUUFVUXzEwQiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSRUdfRkxEKDEsIDUpDQo+ID4gKyNkZWZpbmUgRkxEX1NJTVBMRV9NT0RFICAgICAgICAgICAg ICAgICAgICAgICAgICAgUkVHX0ZMRCgxLCA0KQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1E UF9SRE1BX0dNQ0lGX0NPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAy OA0KPiA+ICsjZGVmaW5lIEZMRF9FWFRfVUxUUkFfRU4gICAgICAgICAgICAgICAgICAgICAgICAg IFJFR19GTEQoMSwgMTgpDQo+ID4gKyNkZWZpbmUgUFJFX1VMVFJBX0VOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUkVHX0ZMRCgyLCAxNikNCj4gPiArI2RlZmluZSBGTERfVUxUUkFfRU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDIsIDEyKQ0KPiA+ICsjZGVmaW5l IEZMRF9SRF9SRVFfVFlQRSAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoNCwgNCkN Cj4gPiArI2RlZmluZSBGTERfRVhUX1BSRVVMVFJBX0VOICAgICAgICAgICAgICAgICAgICAgICBS RUdfRkxEKDEsIDMpDQo+ID4gKyNkZWZpbmUgRkxEX0NPTU1BTkRfRElWICAgICAgICAgICAgICAg ICAgICAgICAgICAgUkVHX0ZMRCgxLCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9S RE1BX1NSQ19DT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMA0K PiA+ICsjZGVmaW5lIEZMRF9PVVRQVVRfQVJHQiAgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTEQoMSwgMjUpDQo+ID4gKyNkZWZpbmUgRkxEX0JJVF9OVU1CRVIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUkVHX0ZMRCgyLCAxOCkNCj4gPiArI2RlZmluZSBGTERfVU5JRk9STV9DT05G SUcgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDEsIDE3KQ0KPiA+ICsjZGVmaW5lIEZM RF9TV0FQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMSwgMTQpDQo+ ID4gKyNkZWZpbmUgRkxEX1NSQ19GT1JNQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVH X0ZMRCg0LCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX0NPTVBfQ09OICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOA0KPiA+ICsjZGVmaW5lIEZM RF9BRkJDX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMSwgMjIpDQo+ ID4gKyNkZWZpbmUgRkxEX0FGQkNfWVVWX1RSQU5TRk9STSAgICAgICAgICAgICAgICAgICAgUkVH X0ZMRCgxLCAyMSkNCj4gPiArI2RlZmluZSBGTERfVUZCRENfRU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSRUdfRkxEKDEsIDEyKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9S RE1BX01GX0JLR0RfU0laRV9JTl9CWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MA0K PiA+ICsjZGVmaW5lIEZMRF9NRl9CS0dEX1dCICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTEQoMjMsIDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFfTUZfQktHRF9T SVpFX0lOX1BJWEVMICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY4DQo+ID4gKyNkZWZpbmUg RkxEX01GX0JLR0RfV1AgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCgyMywgMCkN Cj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9NRl9TUkNfU0laRSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzANCj4gPiArI2RlZmluZSBGTERfTUZfU1JDX0gg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDE1LCAxNikNCj4gPiArI2RlZmlu ZSBGTERfTUZfU1JDX1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDE1LCAw KQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX01GX0NMSVBfU0laRSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3OA0KPiA+ICsjZGVmaW5lIEZMRF9NRl9DTElQ X0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMTUsIDE2KQ0KPiA+ICsjZGVm aW5lIEZMRF9NRl9DTElQX1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMTUs IDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFfTUZfT0ZGU0VUXzEgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwDQo+ID4gKyNkZWZpbmUgRkxEX01GX09G RlNFVF9IXzEgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCg2LCAxNikNCj4gPiArI2Rl ZmluZSBGTERfTUZfT0ZGU0VUX1dfMSAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDUs IDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFfU0ZfQktHRF9TSVpFX0lOX0JZ VEUgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkwDQo+ID4gKyNkZWZpbmUgRkxEX1NGX0JL R0RfV0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCgyMywgMCkNCj4gPiArDQo+ ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9NRl9CS0dEX0hfU0laRV9JTl9QSVhFTCAgICAgICAg ICAgICAgICAgICAgICAgMHgwOTgNCj4gPiArI2RlZmluZSBGTERfQktHRF9IUCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDIzLCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0K PiA+IE1EUF9SRE1BX1RBUkdFVF9MSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDBhMA0KPiA+ICsjZGVmaW5lIEZMRF9MSU5FX1RIUkVTSE9MRCAgICAgICAgICAgICAgICAg ICAgICAgIFJFR19GTEQoMTUsIDE3KQ0KPiA+ICsjZGVmaW5lIEZMRF9UQVJHRVRfTElORV9FTiAg ICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMSwgMTYpDQo+ID4gKw0KPiA+ICsjZGVmaW5l DQo+ID4gTURQX1JETUFfU1JDX09GRlNFVF8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MTE4DQo+ID4gKyNkZWZpbmUgRkxEX1NSQ19PRkZTRVRfMCAgICAgICAgICAgICAgICAg ICAgICAgICAgUkVHX0ZMRCgzMiwgMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRN QV9TUkNfT0ZGU0VUXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjANCj4g PiArI2RlZmluZSBGTERfU1JDX09GRlNFVF8xICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdf RkxEKDMyLCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX1NSQ19PRkZTRVRf MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyOA0KPiA+ICsjZGVmaW5lIEZM RF9TUkNfT0ZGU0VUXzIgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMzIsIDApDQo+ ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFfU1JDX09GRlNFVF9XUCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MTQ4DQo+ID4gKyNkZWZpbmUgRkxEX1NSQ19PRkZTRVRf V1AgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCgzMiwgMCkNCj4gPiArDQo+ID4gKyNk ZWZpbmUNCj4gPiBNRFBfUkRNQV9TUkNfT0ZGU0VUX0hQICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgxNTANCj4gPiArI2RlZmluZSBGTERfU1JDX09GRlNFVF9IUCAgICAgICAgICAg ICAgICAgICAgICAgICBSRUdfRkxEKDMyLCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1E UF9SRE1BX1RSQU5TRk9STV8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIw MA0KPiA+ICsjZGVmaW5lIEZMRF9JTlRfTUFUUklYX1NFTCAgICAgICAgICAgICAgICAgICAgICAg IFJFR19GTEQoNSwgMjMpDQo+ID4gKyNkZWZpbmUgRkxEX1RSQU5TX0VOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUkVHX0ZMRCgxLCAxNikNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBN RFBfUkRNQV9ETUFfQ09OXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgy NDANCj4gPiArI2RlZmluZSBGTERfRVhUUkRfQVJCX01BWCAgICAgICAgICAgICAgICAgICAgICAg ICBSRUdfRkxEKDQsIDI0KQ0KPiA+ICsjZGVmaW5lIEZMRF9CVUZfUkVTVl9TSVpFICAgICAgICAg ICAgICAgICAgICAgICAgIFJFR19GTEQoOCwgMTYpDQo+ID4gKyNkZWZpbmUgRkxEX0lTU1VFX1JF UV9USCAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCg4LCAwKQ0KPiA+ICsNCj4gPiAr I2RlZmluZQ0KPiA+IE1EUF9SRE1BX1VUUkFfSF9DT05fMCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDI0OA0KPiA+ICsjZGVmaW5lIEZMRF9QUkVVVFJBX0hfT0ZTXzAgICAgICAg ICAgICAgICAgICAgICAgIFJFR19GTEQoMTAsIDEwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+ IE1EUF9SRE1BX1VUUkFfTF9DT05fMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDI1MA0KPiA+ICsjZGVmaW5lIEZMRF9QUkVVVFJBX0xfT0ZTXzAgICAgICAgICAgICAgICAgICAg ICAgIFJFR19GTEQoMTAsIDEwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX0RN QUJVRl9DT05fMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1OA0KPiA+ICsj ZGVmaW5lIEZMRF9FWFRSRF9BUkJfTUFYXzEgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQo NCwgMjQpDQo+ID4gKyNkZWZpbmUgRkxEX0JVRl9SRVNWX1NJWkVfMSAgICAgICAgICAgICAgICAg ICAgICAgUkVHX0ZMRCg3LCAxNikNCj4gPiArI2RlZmluZSBGTERfSVNTVUVfUkVRX1RIXzEgICAg ICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDcsIDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ ID4gTURQX1JETUFfVUxUUkFfVEhfSElHSF9DT05fMSAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MjYwDQo+ID4gKyNkZWZpbmUgRkxEX1BSRV9VTFRSQV9USF9ISUdIX09GU18xICAgICAgICAg ICAgICAgUkVHX0ZMRCgxMCwgMTApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFf VUxUUkFfVEhfTE9XX0NPTl8xICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjY4DQo+ID4g KyNkZWZpbmUgRkxEX1BSRV9VTFRSQV9USF9MT1dfT0ZTXzEgICAgICAgICAgICAgICAgUkVHX0ZM RCgxMCwgMTApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFfRE1BQlVGX0NPTl8y ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjcwDQo+ID4gKyNkZWZpbmUgRkxE X0VYVFJEX0FSQl9NQVhfMiAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCg0LCAyNCkNCj4g PiArI2RlZmluZSBGTERfQlVGX1JFU1ZfU0laRV8yICAgICAgICAgICAgICAgICAgICAgICBSRUdf RkxEKDYsIDE2KQ0KPiA+ICsjZGVmaW5lIEZMRF9JU1NVRV9SRVFfVEhfMiAgICAgICAgICAgICAg ICAgICAgICAgIFJFR19GTEQoNiwgMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRN QV9VVFJBX0hfQ09OXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNzgNCj4g PiArI2RlZmluZSBGTERfUFJFX1VMVFJBX1RIX0hJR0hfT0ZTXzIgICAgICAgICAgICAgICBSRUdf RkxEKDEwLCAxMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9VTFRSQV9USF9M T1dfQ09OXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyODANCj4gPiArI2RlZmluZSBG TERfUFJFX1VMVFJBX1RIX0xPV19PRlNfMiAgICAgICAgICAgICAgICBSRUdfRkxEKDEwLCAxMCkN Cj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9ETUFCVUZfQ09OXzMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgyODgNCj4gPiArI2RlZmluZSBGTERfRVhUUkRfQVJC X01BWF8zICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDQsIDI0KQ0KPiA+ICsjZGVmaW5l IEZMRF9CVUZfUkVTVl9TSVpFXzMgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoNiwgMTYp DQo+ID4gKyNkZWZpbmUgRkxEX0lTU1VFX1JFUV9USF8zICAgICAgICAgICAgICAgICAgICAgICAg UkVHX0ZMRCg2LCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX1VUUkFfSF9D T05fMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5MA0KPiA+ICsjZGVmaW5l IEZMRF9QUkVfVUxUUkFfVEhfSElHSF9PRlNfMyAgICAgICAgICAgICAgIFJFR19GTEQoMTAsIDEw KQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX1VMVFJBX1RIX0xPV19DT05fMyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5OA0KPiA+ICsjZGVmaW5lIEZMRF9QUkVfVUxU UkFfVEhfTE9XX09GU18zICAgICAgICAgICAgICAgIFJFR19GTEQoMTAsIDEwKQ0KPiA+ICsNCj4g PiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX1NSQ19CQVNFXzAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweGYwMA0KPiA+ICsjZGVmaW5lIEZMRF9TUkNfQkFTRV8wICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMzIsIDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ ID4gTURQX1JETUFfU1JDX0JBU0VfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4ZjA4DQo+ID4gKyNkZWZpbmUgRkxEX1NSQ19CQVNFXzEgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUkVHX0ZMRCgzMiwgMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9T UkNfQkFTRV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmMTANCj4gPiAr I2RlZmluZSBGTERfU1JDX0JBU0VfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxE KDMyLCAwKQ0KPiA+ICsNCj4gPiArI2VuZGlmIC8qIF9fTURQX1JETUFfUkVHU19IX18gKi8NCj4g DQo+IE9ubHkgb25lIGZpbGUgbmVlZCB0aGVzZSwgc28gbW92ZSByZWdpc3RlciBkZWZpbml0b24g aW4gLmMgZmlsZS4NCj4gDQpPSy4NCg0KPiBSZWdhcmRzLA0KPiBDaHVuLUt1YW5nLg0KPiANCj4g PiArDQo+ID4gLS0NCj4gPiAyLjE4LjANCj4gPiANCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED, USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E33C4C4338F for ; Fri, 30 Jul 2021 03:28:58 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A5B5E60F59 for ; Fri, 30 Jul 2021 03:28:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org A5B5E60F59 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BFCC96F3A6; Fri, 30 Jul 2021 03:28:57 +0000 (UTC) Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) by gabe.freedesktop.org (Postfix) with ESMTPS id B943F6F3A6 for ; Fri, 30 Jul 2021 03:28:55 +0000 (UTC) X-UUID: a897ed6a24c44f119849ac0f38701a0c-20210730 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=UnhIhxZN7HHdsJfSIOffPOiFQcGZN9qL87KYtRrQv5M=; b=EixrjZxOFG6JnjdoqNgztP0FlLrtbgyH/pl0rlDqtpeUnHBsAECts4ig4RlYIZZwKEj15Ixt7nOePsM661ceqUPr9leIozcmLm7KZuaMKfBS2oEr3TjttDjtQhsG8Z+NTQjYkn6leHkDyXpgWfo4XbqL1PWSBS6SUC+H04GC814=; X-UUID: a897ed6a24c44f119849ac0f38701a0c-20210730 Received: from mtkcas07.mediatek.inc [(172.21.101.84)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 699064314; Fri, 30 Jul 2021 11:28:53 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs05n2.mediatek.inc (172.21.101.140) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 30 Jul 2021 11:28:51 +0800 Received: from mtksdccf07 (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 30 Jul 2021 11:28:51 +0800 Message-ID: <9e01bea8c7f0ba396789d0b06580e65113081f47.camel@mediatek.com> Subject: Re: [PATCH 13/14] drm/mediatek: add pseudo ovl support for MT8195 From: Nancy.Lin To: Chun-Kuang Hu Date: Fri, 30 Jul 2021 11:28:51 +0800 In-Reply-To: References: <20210722094551.15255-1-nancy.lin@mediatek.com> <20210722094551.15255-13-nancy.lin@mediatek.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 MIME-Version: 1.0 X-MTK: N Content-Transfer-Encoding: base64 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: DTML , srv_heupstream , David Airlie , "jason-jh . lin" , singo.chang@mediatek.com, linux-kernel , DRI Development , Yongqiang Niu , Matthias Brugger , Rob Herring , "moderated list:ARM/Mediatek SoC support" , Linux ARM Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgQ2h1bi1LdWFuZywNCg0KVGhhbmtzIGZvciB5b3VyIHJldmlldy4NCg0KT24gU3VuLCAyMDIx LTA3LTI1IGF0IDA5OjU3ICswODAwLCBDaHVuLUt1YW5nIEh1IHdyb3RlOg0KPiAgSGksIE5hbmN5 Og0KPiANCj4gTmFuY3kuTGluIDxuYW5jeS5saW5AbWVkaWF0ZWsuY29tPiDmlrwgMjAyMeW5tDfm nIgyMuaXpSDpgLHlm5sg5LiL5Y2INTo0NuWvq+mBk++8mg0KPiA+IA0KPiA+IEFkZCBwc2V1ZG8g b3ZsIG1vZHVsZSBmaWxlczoNCj4gDQo+IE15IEVuZ2xpc2ggaXMgbm90IGdvb2QuIFRoZSB3b3Jk ICdwc2V1ZG8nIHNlZW1zIGxpa2UgJ2xvb2tzIGxpa2UgYnV0DQo+IGluZGVlZCBub3QgdGhlIHNh bWUnLg0KPiBJIHRoaW5rIHRoZSAncmVhbCcgb3ZsIGFsc28gaGFzIHJkbWEgYW5kIG1peGVyIGlu c2lkZSBpdCwgc28gSSBwcmVmZXINCj4gdG8gdHJlYXQgdGhlc2UgdHdvIG92bCBhcyBkaWZmZXJl bnQga2luZCBvZiBvdmwsIG5vdCBhIHJlYWwgb25lIGFuZCBhDQo+IHBzZXVkbyBvbmUuDQo+IERv ZXMgSSBtaXN1bmRlcnN0YW5kaW5nIHRoZSB3b3JkICdwc2V1ZG8nPw0KPiANCkkgd2FzIHRoaW5r aW5nIG9mIGVuY2Fwc3VsYXRpbmcgc2V2ZXJhbCBlbmdpbmVzIGluIHRoaXMgY29tcG9uZW50LiBU aGUNCnByZWZpeCAicHNldWRvIiB3YXMgbWVhbnQgdG8gZGlzdGluZ3Vpc2ggd2l0aCB0aGUgb3Jp Z2luIG92bC4gSSB3aWxsDQpjaGFuZ2UgcHNldWRvX292bCB0byBvdmxfYWRhcHRvci4NCg0KDQo+ ID4gUHNldWRvIG92bCBpcyBhbiBlbmNhcHN1bGF0ZWQgbW9kdWxlIGFuZCBkZXNpZ25lZCBmb3Ig c2ltcGxpZmllZA0KPiA+IERSTSBjb250cm9sIGZsb3cuIFRoaXMgbW9kdWxlIGlzIGNvbXBvc2Vk IG9mIDggUkRNQXMsIDQgTUVSR0VzIGFuZA0KPiA+IGFuIEVUSERSLiBUd28gUkRNQXMgbWVyZ2Ug aW50byBvbmUgbGF5ZXIsIHNvIHRoaXMgbW9kdWxlIHN1cHBvcnQgNA0KPiA+IGxheWVycy4NCj4g PiANCj4gPiBTaWduZWQtb2ZmLWJ5OiBOYW5jeS5MaW4gPG5hbmN5LmxpbkBtZWRpYXRlay5jb20+ DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZSAgICAgICAg ICAgICB8ICAgNCArLQ0KPiA+ICAuLi4vZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9wc2V1ZG9f b3ZsLmMgICAgfCA1OTMNCj4gPiArKysrKysrKysrKysrKysrKysNCj4gPiAgLi4uL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2Rpc3BfcHNldWRvX292bC5oICAgIHwgIDIzICsNCj4gPiAgZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19tZHBfcmRtYS5jICAgICAgIHwgNDU2ICsrKysrKysrKysrKysr DQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JkbWEuaCAgICAgICB8IDEw OSArKysrDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JlZ19yZG1hLmgg ICB8IDE2MCArKysrKw0KPiANCj4gU2VwZXJhdGUgbXRrX2RtcF9yZG1hIGRyaXZlciB0byBhbiBp bmRlcGVuZGVudCBwYXRjaC4NCj4gDQpPSywgSSB3aWxsIHNlcGFyYXRlIGl0Lg0KDQo+ID4gIDYg ZmlsZXMgY2hhbmdlZCwgMTM0NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfcHNldWRv X292bC5jDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2Rpc3BfcHNldWRvX292bC5oDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX21kcF9yZG1hLmMNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JkbWEuaA0KPiA+ICBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmVnX3JkbWEuaA0KPiA+IA0K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUNCj4gPiBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZQ0KPiA+IGluZGV4IDI3Yzg5ODQ3ZDQz Yi4uMzE2MTM1NjRmNDk5IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9NYWtlZmlsZQ0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZQ0K PiA+IEBAIC0xMyw3ICsxMyw5IEBAIG1lZGlhdGVrLWRybS15IDo9IG10a19kaXNwX2Njb3JyLm8g XA0KPiA+ICAgICAgICAgICAgICAgICAgIG10a19kcm1fZ2VtLm8gXA0KPiA+ICAgICAgICAgICAg ICAgICAgIG10a19kcm1fcGxhbmUubyBcDQo+ID4gICAgICAgICAgICAgICAgICAgbXRrX2RzaS5v IFwNCj4gPiAtICAgICAgICAgICAgICAgICBtdGtfZHBpLm8NCj4gPiArICAgICAgICAgICAgICAg ICBtdGtfZHBpLm8gXA0KPiA+ICsgICAgICAgICAgICAgICAgIG10a19kaXNwX3BzZXVkb19vdmwu byBcDQo+ID4gKyAgICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hLm8NCj4gPiANCj4gPiAgb2Jq LSQoQ09ORklHX0RSTV9NRURJQVRFSykgKz0gbWVkaWF0ZWstZHJtLm8NCj4gPiANCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX3BzZXVkb19vdmwuYw0K PiA+IGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX3BzZXVkb19vdmwuYw0KPiA+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi4wNDQ2ZmE5OWRk MGENCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kaXNwX3BzZXVkb19vdmwuYw0KPiA+IEBAIC0wLDAgKzEsNTkzIEBADQo+ID4gKy8vIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkNCj4gPiArLyoNCj4gPiArICogQ29w eXJpZ2h0IChjKSAyMDIxIE1lZGlhVGVrIEluYy4NCj4gPiArICovDQo+ID4gKw0KPiA+ICsjaW5j bHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L2Nsay5oPg0KPiA+ ICsjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVu dC5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+DQo+ID4gKyNpbmNsdWRlIDxs aW51eC9vZl9hZGRyZXNzLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2Uu aD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4NCj4gPiArI2luY2x1ZGUgPGxp bnV4L3NvYy9tZWRpYXRlay9tdGstbW1zeXMuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3NvYy9t ZWRpYXRlay9tdGstY21kcS5oPg0KPiA+ICsNCj4gPiArI2luY2x1ZGUgIm10a19kcm1fZHJ2Lmgi DQo+ID4gKyNpbmNsdWRlICJtdGtfZHJtX2NydGMuaCINCj4gPiArI2luY2x1ZGUgIm10a19kcm1f ZGRwX2NvbXAuaCINCj4gPiArI2luY2x1ZGUgIm10a19tZHBfcmRtYS5oIg0KPiA+ICsjaW5jbHVk ZSAibXRrX2Rpc3BfcHNldWRvX292bC5oIg0KPiA+ICsNCj4gPiArI2RlZmluZSBESVNQX01FUkdF X0VOQUJMRSAgICAgIDB4MA0KPiA+ICsgICAgICAgI2RlZmluZSBNRVJHRV9FTkFCTEUgQklUKDAp DQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfMCAgICAgICAweDEwDQo+ID4gKyNkZWZpbmUg RElTUF9NRVJHRV9DRkdfMSAgICAgICAweDE0DQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdf NCAgICAgICAweDIwDQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfNSAgICAgICAweDI0DQo+ ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfMTAgICAgICAweDM4DQo+ID4gKyAgICAgICAjZGVm aW5lIENGR18xMF9OT19TV0FQIDANCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18xMiAgICAg IDB4NDANCj4gPiArICAgICAgICNkZWZpbmUgQ0ZHMTJfMTBfMTBfMVBJXzJQT19CVUZfTU9ERSA2 DQo+ID4gKyAgICAgICAjZGVmaW5lIENGRzEyXzExXzEwXzFQSV8yUE9fTUVSR0UgMTgNCj4gPiAr I2RlZmluZSBESVNQX01FUkdFX0NGR18yNCAgICAgIDB4NzANCj4gPiArI2RlZmluZSBESVNQX01F UkdFX0NGR18yNSAgICAgIDB4NzQNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18yNiAgICAg IDB4NzgNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18yNyAgICAgIDB4N2MNCj4gPiArI2Rl ZmluZSBESVNQX01FUkdFX01VVEVfMCAgICAgIDB4ZjAwDQo+ID4gKw0KPiA+ICsjZGVmaW5lIE1U S19QU0VVRE9fT1ZMX1NJTkdMRV9QSVBFX01BWF9XSURUSCAxOTIwDQo+IA0KPiBXaGljaCBoYXJk d2FyZSBoYXMgdGhpcyBsaW1pdGF0aW9uPyBJIHdvdWxkIGxpa2UgdGhpcyBuYW1pbmcgdG8NCj4g cmVmbGVjdCB3aGljaCBoYXJkd2FyZSBoYXMgdGhpcyBsaW1pdGF0aW9uLg0KPiANClJETUEgaGFz IHRoZSBsaW1pdGF0aW9uLCBJIHdpbGwgbW9kaWZ5IGl0cyBuYW1pbmcuDQoNCj4gPiArDQo+ID4g K2VudW0gbXRrX3BzZXVkb19vdmxfY29tcF90eXBlIHsNCj4gPiArICAgICAgIFBTRVVET19PVkxf VFlQRV9SRE1BID0gMCwNCj4gPiArICAgICAgIFBTRVVET19PVkxfVFlQRV9NRVJHRSwNCj4gPiAr ICAgICAgIFBTRVVET19PVkxfVFlQRV9OVU0sDQo+ID4gK307DQo+ID4gKw0KPiA+ICtlbnVtIG10 a19wc2V1ZG9fb3ZsX2NvbXBfaWQgew0KPiA+ICsgICAgICAgUFNFVURPX09WTF9SRE1BX0JBU0Ug PSAwLA0KPiA+ICsgICAgICAgUFNFVURPX09WTF9NRFBfUkRNQTAgPSBQU0VVRE9fT1ZMX1JETUFf QkFTRSwNCj4gDQo+IEkgdGhpbmsgeW91IGNvdWxkIGRpcmVjdGx5IHVzZSBQU0VVRE9fT1ZMX01E UF9SRE1BMCBhbmQgcmVtb3ZlDQo+IFBTRVVET19PVkxfUkRNQV9CQVNFLg0KPiANCk9LLCBJIHdp bGwgcmVtb3ZlIGl0Lg0KDQo+ID4gKyAgICAgICBQU0VVRE9fT1ZMX01EUF9SRE1BMSwNCj4gPiAr ICAgICAgIFBTRVVET19PVkxfTURQX1JETUEyLA0KPiA+ICsgICAgICAgUFNFVURPX09WTF9NRFBf UkRNQTMsDQo+ID4gKyAgICAgICBQU0VVRE9fT1ZMX01EUF9SRE1BNCwNCj4gPiArICAgICAgIFBT RVVET19PVkxfTURQX1JETUE1LA0KPiA+ICsgICAgICAgUFNFVURPX09WTF9NRFBfUkRNQTYsDQo+ ID4gKyAgICAgICBQU0VVRE9fT1ZMX01EUF9SRE1BNywNCj4gPiArICAgICAgIFBTRVVET19PVkxf TUVSR0VfQkFTRSwNCj4gPiArICAgICAgIFBTRVVET19PVkxfTUVSR0UwID0gUFNFVURPX09WTF9N RVJHRV9CQVNFLA0KPiANCj4gRGl0dG8uDQoNCk9LLCBJIHdpbGwgcmVtb3ZlIGl0Lg0KPiANCj4g PiArICAgICAgIFBTRVVET19PVkxfTUVSR0UxLA0KPiA+ICsgICAgICAgUFNFVURPX09WTF9NRVJH RTIsDQo+ID4gKyAgICAgICBQU0VVRE9fT1ZMX01FUkdFMywNCj4gPiArICAgICAgIFBTRVVET19P VkxfSURfTUFYDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgcHNldWRvX292bF9kYXRhIHsN Cj4gPiArICAgICAgIHVuc2lnbmVkIGludCBsYXllcl9ucjsNCj4gPiArICAgICAgIHN0cnVjdCBt dGtfbWRwX3JkbWFfZmlmbyBmaWZvOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RydWN0IHBzZXVk b19vdmxfY29tcF9tYXRjaCB7DQo+ID4gKyAgICAgICBlbnVtIG10a19wc2V1ZG9fb3ZsX2NvbXBf dHlwZSB0eXBlOw0KPiA+ICsgICAgICAgaW50IGFsaWFzX2lkOw0KPiA+ICt9Ow0KPiA+ICsNCj4g PiArc3RydWN0IHBzZXVkb19vdmxfbWVyZ2VfY29uZmlnIHsNCj4gPiArICAgICAgIHVuc2lnbmVk IGludCBmbXQ7DQo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgbWVyZ2VfbW9kZTsNCj4gPiArICAg ICAgIHVuc2lnbmVkIGludCBpbl93WzJdOw0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IG91dF93 WzJdOw0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IGluX2g7DQo+ID4gK307DQo+ID4gKw0KPiA+ ICtzdHJ1Y3QgbXRrX3BzZXVkb19vdmxfY29tcCB7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZGV2aWNl ICpkZXY7DQo+ID4gKyAgICAgICBzdHJ1Y3QgY2xrICpjbGtzWzJdOw0KPiA+ICsgICAgICAgc3Ry dWN0IGNtZHFfY2xpZW50X3JlZyBjbWRxX2Jhc2U7DQo+ID4gKyAgICAgICB2b2lkIF9faW9tZW0g KnJlZ3M7DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgbXRrX2Rpc3BfcHNldWRvX292bCB7 DQo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX3BzZXVkb19vdmxfY29tcA0KPiA+IHBzZXVkb19vdmxf Y29tcFtQU0VVRE9fT1ZMX0lEX01BWF07DQo+ID4gKyAgICAgICBjb25zdCBzdHJ1Y3QgcHNldWRv X292bF9kYXRhICpkYXRhOw0KPiA+ICsgICAgICAgc3RydWN0IGRldmljZSAqbW1zeXNfZGV2Ow0K PiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwc2V1ZG9fb3Zs X2NvbXBfc3RyW10gPSB7DQo+ID4gKyAgICAgICAiUFNFVURPX09WTF9NRFBfUkRNQTAiLA0KPiA+ ICsgICAgICAgIlBTRVVET19PVkxfTURQX1JETUExIiwNCj4gPiArICAgICAgICJQU0VVRE9fT1ZM X01EUF9SRE1BMiIsDQo+ID4gKyAgICAgICAiUFNFVURPX09WTF9NRFBfUkRNQTMiLA0KPiA+ICsg ICAgICAgIlBTRVVET19PVkxfTURQX1JETUE0IiwNCj4gPiArICAgICAgICJQU0VVRE9fT1ZMX01E UF9SRE1BNSIsDQo+ID4gKyAgICAgICAiUFNFVURPX09WTF9NRFBfUkRNQTYiLA0KPiA+ICsgICAg ICAgIlBTRVVET19PVkxfTURQX1JETUE3IiwNCj4gPiArICAgICAgICJQU0VVRE9fT1ZMX01FUkdF MCIsDQo+ID4gKyAgICAgICAiUFNFVURPX09WTF9NRVJHRTEiLA0KPiA+ICsgICAgICAgIlBTRVVE T19PVkxfTUVSR0UyIiwNCj4gPiArICAgICAgICJQU0VVRE9fT1ZMX01FUkdFMyIsDQo+ID4gKyAg ICAgICAiUFNFVURPX09WTF9JRF9NQVgiDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29u c3QgY2hhciAqIGNvbnN0IHByaXZhdGVfY29tcF9zdGVtW1BTRVVET19PVkxfVFlQRV9OVU1dID0N Cj4gPiB7DQo+ID4gKyAgICAgICBbUFNFVURPX09WTF9UWVBFX1JETUFdID0gInZkbzFfcmRtYSIs DQo+ID4gKyAgICAgICBbUFNFVURPX09WTF9UWVBFX01FUkdFXSA9ICJtZXJnZSIsDQo+ID4gK307 DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHBzZXVkb19vdmxfY29tcF9tYXRjaA0K PiA+IGNvbXBfbWF0Y2hlc1tQU0VVRE9fT1ZMX0lEX01BWF0gPSB7DQo+ID4gKyAgICAgICBbUFNF VURPX09WTF9NRFBfUkRNQTBdID0gICAgICAgIHsgUFNFVURPX09WTF9UWVBFX1JETUEsIDANCj4g PiB9LA0KPiA+ICsgICAgICAgW1BTRVVET19PVkxfTURQX1JETUExXSA9ICAgICAgICB7IFBTRVVE T19PVkxfVFlQRV9SRE1BLCAxDQo+ID4gfSwNCj4gPiArICAgICAgIFtQU0VVRE9fT1ZMX01EUF9S RE1BMl0gPSAgICAgICAgeyBQU0VVRE9fT1ZMX1RZUEVfUkRNQSwgMg0KPiA+IH0sDQo+ID4gKyAg ICAgICBbUFNFVURPX09WTF9NRFBfUkRNQTNdID0gICAgICAgIHsgUFNFVURPX09WTF9UWVBFX1JE TUEsIDMNCj4gPiB9LA0KPiA+ICsgICAgICAgW1BTRVVET19PVkxfTURQX1JETUE0XSA9ICAgICAg ICB7IFBTRVVET19PVkxfVFlQRV9SRE1BLCA0DQo+ID4gfSwNCj4gPiArICAgICAgIFtQU0VVRE9f T1ZMX01EUF9SRE1BNV0gPSAgICAgICAgeyBQU0VVRE9fT1ZMX1RZUEVfUkRNQSwgNQ0KPiA+IH0s DQo+ID4gKyAgICAgICBbUFNFVURPX09WTF9NRFBfUkRNQTZdID0gICAgICAgIHsgUFNFVURPX09W TF9UWVBFX1JETUEsIDYNCj4gPiB9LA0KPiA+ICsgICAgICAgW1BTRVVET19PVkxfTURQX1JETUE3 XSA9ICAgICAgICB7IFBTRVVET19PVkxfVFlQRV9SRE1BLCA3DQo+ID4gfSwNCj4gPiArICAgICAg IFtQU0VVRE9fT1ZMX01FUkdFMF0gPSAgIHsgUFNFVURPX09WTF9UWVBFX01FUkdFLCAxIH0sDQo+ ID4gKyAgICAgICBbUFNFVURPX09WTF9NRVJHRTFdID0gICB7IFBTRVVET19PVkxfVFlQRV9NRVJH RSwgMiB9LA0KPiA+ICsgICAgICAgW1BTRVVET19PVkxfTUVSR0UyXSA9ICAgeyBQU0VVRE9fT1ZM X1RZUEVfTUVSR0UsIDMgfSwNCj4gPiArICAgICAgIFtQU0VVRE9fT1ZMX01FUkdFM10gPSAgIHsg UFNFVURPX09WTF9UWVBFX01FUkdFLCA0IH0sDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMg aW50IG10a19wc2V1ZG9fb3ZsX2ZpZm9fc2V0dGluZyhzdHJ1Y3QgbXRrX2Rpc3BfcHNldWRvX292 bA0KPiA+ICpwc2V1ZG9fb3ZsLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBjbWRxX3BrdCAqaGFuZGxlKQ0KPiA+ICt7DQo+ID4gKyAgICAgICBzdHJ1 Y3QgbXRrX3BzZXVkb19vdmxfY29tcCAqcmRtYSA9IE5VTEw7DQo+ID4gKyAgICAgICBjb25zdCBz dHJ1Y3QgcHNldWRvX292bF9kYXRhICpkYXRhID0gcHNldWRvX292bC0+ZGF0YTsNCj4gPiArICAg ICAgIGNvbnN0IHN0cnVjdCBtdGtfbWRwX3JkbWFfZmlmbyAqZmlmbyA9ICZkYXRhLT5maWZvOw0K PiA+ICsgICAgICAgaW50IGk7DQo+ID4gKw0KPiA+ICsgICAgICAgZm9yIChpID0gUFNFVURPX09W TF9NRFBfUkRNQTA7IGkgPD0gUFNFVURPX09WTF9NRFBfUkRNQTc7DQo+ID4gaSsrKSB7DQo+ID4g KyAgICAgICAgICAgICAgIHJkbWEgPSAmcHNldWRvX292bC0NCj4gPiA+cHNldWRvX292bF9jb21w W1BTRVVET19PVkxfUkRNQV9CQVNFICsgaV07DQo+ID4gKyAgICAgICAgICAgICAgIG10a19tZHBf cmRtYV9maWZvX2NvbmZpZyhyZG1hLT5yZWdzLCBoYW5kbGUsICZyZG1hLQ0KPiA+ID5jbWRxX2Jh c2UsIGZpZm8pOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIHJldHVybiAwOw0K PiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBtdGtfcHNldWRvX292bF9tZXJnZV9jb25m aWcoc3RydWN0IG10a19wc2V1ZG9fb3ZsX2NvbXANCj4gPiAqY29tcCwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0DQo+ID4gcHNldWRvX292bF9tZXJn ZV9jb25maWcgKm1lcmdlX2NmZywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkNCj4gPiArew0KPiA+ICsgICAgICAg c3dpdGNoIChtZXJnZV9jZmctPm1lcmdlX21vZGUpIHsNCj4gPiArICAgICAgIGNhc2UgNjoNCj4g PiArICAgICAgICAgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgKG1lcmdlX2NmZy0+aW5f aCA8PCAxNiB8DQo+ID4gbWVyZ2VfY2ZnLT5pbl93WzBdKSwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdzLA0KPiA+IERJU1BfTUVS R0VfQ0ZHXzApOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAo bWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPm91dF93WzBdKSwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdz LA0KPiA+IERJU1BfTUVSR0VfQ0ZHXzQpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dy aXRlKGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPmlu X3dbMF0pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wLT5jbWRxX2Jh c2UsIGNvbXAtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9DRkdfMjQpOw0KPiA+ICsgICAgICAgICAg ICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4g PiBtZXJnZV9jZmctPmluX3dbMF0pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9DRkdfMjUpOw0K PiA+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgIGNhc2UgMTg6DQo+ID4gKyAg ICAgICAgICAgICAgIG10a19kZHBfd3JpdGUoY21kcV9wa3QsIChtZXJnZV9jZmctPmluX2ggPDwg MTYgfA0KPiA+IG1lcmdlX2NmZy0+aW5fd1swXSksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmNvbXAtPmNtZHFfYmFzZSwgY29tcC0+cmVncywNCj4gPiBESVNQX01FUkdFX0NG R18wKTsNCj4gPiArICAgICAgICAgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgKG1lcmdl X2NmZy0+aW5faCA8PCAxNiB8DQo+ID4gbWVyZ2VfY2ZnLT5pbl93WzFdKSwNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdzLA0KPiA+ IERJU1BfTUVSR0VfQ0ZHXzEpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNt ZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPm91dF93WzBd KSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBj b21wLT5yZWdzLA0KPiA+IERJU1BfTUVSR0VfQ0ZHXzQpOw0KPiA+ICsgICAgICAgICAgICAgICBt dGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJn ZV9jZmctPmluX3dbMF0pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb21w LT5jbWRxX2Jhc2UsIGNvbXAtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9DRkdfMjQpOw0KPiA+ICsg ICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8 IDE2IHwNCj4gPiBtZXJnZV9jZmctPmluX3dbMV0pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9D RkdfMjUpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVy Z2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPmluX3dbMF0pLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtPnJlZ3MsDQo+ ID4gRElTUF9NRVJHRV9DRkdfMjYpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRl KGNtZHFfcGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPmluX3db MV0pLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wLT5jbWRxX2Jhc2Us IGNvbXAtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9DRkdfMjcpOw0KPiA+ICsgICAgICAgICAgICAg ICBicmVhazsNCj4gPiArICAgICAgIGRlZmF1bHQ6DQo+ID4gKyAgICAgICAgICAgICAgIG10a19k ZHBfd3JpdGUoY21kcV9wa3QsIChtZXJnZV9jZmctPmluX2ggPDwgMTYgfA0KPiA+IG1lcmdlX2Nm Zy0+aW5fd1swXSksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbXAtPmNt ZHFfYmFzZSwgY29tcC0+cmVncywNCj4gPiBESVNQX01FUkdFX0NGR18wKTsNCj4gPiArICAgICAg ICAgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgKG1lcmdlX2NmZy0+aW5faCA8PCAxNiB8 DQo+ID4gbWVyZ2VfY2ZnLT5pbl93WzFdKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdzLA0KPiA+IERJU1BfTUVSR0VfQ0ZHXzEp Ow0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAobWVyZ2VfY2Zn LT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPm91dF93WzBdKSwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21wLT5yZWdzLA0KPiA+IERJ U1BfTUVSR0VfQ0ZHXzQpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFf cGt0LCAobWVyZ2VfY2ZnLT5pbl9oIDw8IDE2IHwNCj4gPiBtZXJnZV9jZmctPm91dF93WzFdKSwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+Y21kcV9iYXNlLCBjb21w LT5yZWdzLA0KPiA+IERJU1BfTUVSR0VfQ0ZHXzUpOw0KPiA+ICsgICAgICAgICAgICAgICBicmVh azsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFf cGt0LCBtZXJnZV9jZmctPm1lcmdlX21vZGUsICZjb21wLQ0KPiA+ID5jbWRxX2Jhc2UsDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgIGNvbXAtPnJlZ3MsIERJU1BfTUVSR0VfQ0ZHXzEyKTsNCj4g PiArICAgICAgIG10a19kZHBfd3JpdGUoY21kcV9wa3QsIENGR18xMF9OT19TV0FQLCAmY29tcC0+ Y21kcV9iYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICBjb21wLT5yZWdzLCBESVNQX01F UkdFX0NGR18xMCk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIDEs ICZjb21wLT5jbWRxX2Jhc2UsIGNvbXAtDQo+ID4gPnJlZ3MsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgRElTUF9NRVJHRV9FTkFCTEUsIE1FUkdFX0VOQUJMRSk7DQo+ID4gK30NCj4g PiArDQo+ID4gK3ZvaWQgbXRrX3BzZXVkb19vdmxfbGF5ZXJfY29uZmlnKHN0cnVjdCBkZXZpY2Ug KmRldiwgdW5zaWduZWQgaW50DQo+ID4gaWR4LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBtdGtfcGxhbmVfc3RhdGUgKnN0YXRlLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQo+ID4gK3sN Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfZGlzcF9wc2V1ZG9fb3ZsICpwc2V1ZG9fb3ZsID0NCj4g PiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArICAgICAgIHN0cnVjdCBtdGtfcGxhbmVfcGVu ZGluZ19zdGF0ZSAqcGVuZGluZyA9ICZzdGF0ZS0+cGVuZGluZzsNCj4gPiArICAgICAgIHN0cnVj dCBwc2V1ZG9fb3ZsX21lcmdlX2NvbmZpZyBtZXJnZV9jZmcgPSB7MH07DQo+ID4gKyAgICAgICBz dHJ1Y3QgbXRrX21kcF9yZG1hX2NmZyByZG1hX2NvbmZpZyA9IHswfTsNCj4gPiArICAgICAgIHN0 cnVjdCBtdGtfcHNldWRvX292bF9jb21wICpyZG1hX2w7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbXRr X3BzZXVkb19vdmxfY29tcCAqcmRtYV9yOw0KPiA+ICsgICAgICAgc3RydWN0IG10a19wc2V1ZG9f b3ZsX2NvbXAgKm1lcmdlOw0KPiA+ICsgICAgICAgY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5m byAqZm10X2luZm8gPQ0KPiA+IGRybV9mb3JtYXRfaW5mbyhwZW5kaW5nLT5mb3JtYXQpOw0KPiA+ ICsgICAgICAgYm9vbCB1c2VfZHVhbF9waXBlID0gZmFsc2U7DQo+ID4gKw0KPiA+ICsgICAgICAg ZGV2X2RiZyhkZXYsICIlcysgaWR4OiVkLCBlbmFibGU6JWQsIGZtdDoweCV4XG4iLCBfX2Z1bmNf XywNCj4gPiBpZHgsDQo+ID4gKyAgICAgICAgICAgICAgIHBlbmRpbmctPmVuYWJsZSwgcGVuZGlu Zy0+Zm9ybWF0KTsNCj4gPiArICAgICAgIGRldl9kYmcoZGV2LCAiYWRkciAweCVseCwgZmIgdzol ZCwgeyVkLCVkLCVkLCVkfVxuIiwNCj4gPiArICAgICAgICAgICAgICAgcGVuZGluZy0+YWRkciwg KHBlbmRpbmctPnBpdGNoIC8gZm10X2luZm8tPmNwcFswXSksDQo+ID4gKyAgICAgICAgICAgICAg IHBlbmRpbmctPngsIHBlbmRpbmctPnksIHBlbmRpbmctPndpZHRoLCBwZW5kaW5nLQ0KPiA+ID5o ZWlnaHQpOw0KPiA+ICsNCj4gPiArICAgICAgIHJkbWFfbCA9ICZwc2V1ZG9fb3ZsLT5wc2V1ZG9f b3ZsX2NvbXBbUFNFVURPX09WTF9SRE1BX0JBU0UNCj4gPiArIDIgKiBpZHhdOw0KPiA+ICsgICAg ICAgcmRtYV9yID0gJnBzZXVkb19vdmwtPnBzZXVkb19vdmxfY29tcFtQU0VVRE9fT1ZMX1JETUFf QkFTRQ0KPiA+ICsgMiAqIGlkeCArIDFdOw0KPiA+ICsgICAgICAgbWVyZ2UgPSAmcHNldWRvX292 bC0+cHNldWRvX292bF9jb21wW1BTRVVET19PVkxfTUVSR0VfQkFTRQ0KPiA+ICsgaWR4XTsNCj4g PiArDQo+ID4gKyAgICAgICBpZiAoIXBlbmRpbmctPmVuYWJsZSkgew0KPiA+ICsgICAgICAgICAg ICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIDB4MCwgJm1lcmdlLQ0KPiA+ID5jbWRx X2Jhc2UsIG1lcmdlLT5yZWdzLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRElTUF9NRVJHRV9FTkFCTEUsDQo+ID4gTUVSR0VfRU5BQkxFKTsNCj4gPiArICAgICAgICAg ICAgICAgbXRrX21kcF9yZG1hX3N0b3AocmRtYV9sLT5yZWdzLCBjbWRxX3BrdCwgJnJkbWFfbC0N Cj4gPiA+Y21kcV9iYXNlKTsNCj4gPiArICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hX3N0b3Ao cmRtYV9yLT5yZWdzLCBjbWRxX3BrdCwgJnJkbWFfci0NCj4gPiA+Y21kcV9iYXNlKTsNCj4gPiAr ICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAg IGlmIChwZW5kaW5nLT53aWR0aCA+IE1US19QU0VVRE9fT1ZMX1NJTkdMRV9QSVBFX01BWF9XSURU SCkNCj4gPiArICAgICAgICAgICAgICAgdXNlX2R1YWxfcGlwZSA9IHRydWU7DQo+ID4gKw0KPiA+ ICsgICAgICAgbWVyZ2VfY2ZnLm91dF93WzBdID0gcGVuZGluZy0+d2lkdGg7DQo+ID4gKyAgICAg ICBtZXJnZV9jZmcuaW5faCA9IHBlbmRpbmctPmhlaWdodDsNCj4gPiArICAgICAgIG1lcmdlX2Nm Zy5mbXQgPSBwZW5kaW5nLT5mb3JtYXQ7DQo+ID4gKyAgICAgICBpZiAodXNlX2R1YWxfcGlwZSkg ew0KPiA+ICsgICAgICAgICAgICAgICBtZXJnZV9jZmcubWVyZ2VfbW9kZSA9IENGRzEyXzExXzEw XzFQSV8yUE9fTUVSR0U7DQo+ID4gKyAgICAgICAgICAgICAgIG1lcmdlX2NmZy5pbl93WzBdID0g KHBlbmRpbmctPndpZHRoIC8gMikgKw0KPiA+ICgocGVuZGluZy0+d2lkdGggLyAyKSAlIDIpOw0K PiA+ICsgICAgICAgICAgICAgICBtZXJnZV9jZmcuaW5fd1sxXSA9IChwZW5kaW5nLT53aWR0aCAv IDIpIC0NCj4gPiAoKHBlbmRpbmctPndpZHRoIC8gMikgJSAyKTsNCj4gPiArICAgICAgIH0gZWxz ZSB7DQo+ID4gKyAgICAgICAgICAgICAgIG1lcmdlX2NmZy5tZXJnZV9tb2RlID0NCj4gPiBDRkcx Ml8xMF8xMF8xUElfMlBPX0JVRl9NT0RFOw0KPiA+ICsgICAgICAgICAgICAgICBtZXJnZV9jZmcu aW5fd1swXSA9IHBlbmRpbmctPndpZHRoOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAg ICAgIG10a19wc2V1ZG9fb3ZsX21lcmdlX2NvbmZpZyhtZXJnZSwgJm1lcmdlX2NmZywgY21kcV9w a3QpOw0KPiA+ICsNCj4gPiArICAgICAgIG10a19tbXN5c19kZHBfY29uZmlnKHBzZXVkb19vdmwt Pm1tc3lzX2RldiwNCj4gPiBNTVNZU19DT05GSUdfTUVSR0VfQVNZTkNfV0lEVEgsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZHgsIHBlbmRpbmctPndpZHRoIC8gMiwgY21kcV9w a3QpOw0KPiA+ICsgICAgICAgbXRrX21tc3lzX2RkcF9jb25maWcocHNldWRvX292bC0+bW1zeXNf ZGV2LA0KPiA+IE1NU1lTX0NPTkZJR19NRVJHRV9BU1lOQ19IRUlHSFQsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZHgsIHBlbmRpbmctPmhlaWdodCwgY21kcV9wa3QpOw0KPiA+ ICsNCj4gPiArICAgICAgIHJkbWFfY29uZmlnLnNvdXJjZV93aWR0aCA9IHBlbmRpbmctPnBpdGNo IC8gZm10X2luZm8tDQo+ID4gPmNwcFswXTsNCj4gPiArICAgICAgIHJkbWFfY29uZmlnLmNzY19l bmFibGUgPSBmbXRfaW5mby0+aXNfeXV2ID8gdHJ1ZSA6IGZhbHNlOw0KPiA+ICsgICAgICAgcmRt YV9jb25maWcucHJvZmlsZSA9IFJETUFfQ1NDX0ZVTEw3MDlfVE9fUkdCOw0KPiA+ICsgICAgICAg cmRtYV9jb25maWcuZW5jb2RlX3R5cGUgPSBSRE1BX0VOQ09ERV9OT05FOw0KPiA+ICsgICAgICAg cmRtYV9jb25maWcuYmxvY2tfc2l6ZSA9IFJETUFfQkxPQ0tfTk9ORTsNCj4gPiArICAgICAgIHJk bWFfY29uZmlnLndpZHRoID0gbWVyZ2VfY2ZnLmluX3dbMF07DQo+ID4gKyAgICAgICByZG1hX2Nv bmZpZy5oZWlnaHQgPSBwZW5kaW5nLT5oZWlnaHQ7DQo+ID4gKyAgICAgICByZG1hX2NvbmZpZy5h ZGRyMCA9IHBlbmRpbmctPmFkZHI7DQo+ID4gKyAgICAgICByZG1hX2NvbmZpZy5mbXQgPSBwZW5k aW5nLT5mb3JtYXQ7DQo+ID4gKyAgICAgICBtdGtfbWRwX3JkbWFfY29uZmlnKHJkbWFfbC0+cmVn cywgJnJkbWFfY29uZmlnLCBjbWRxX3BrdCwNCj4gPiAmcmRtYV9sLT5jbWRxX2Jhc2UpOw0KPiA+ ICsNCj4gPiArICAgICAgIHJkbWFfY29uZmlnLnhfbGVmdCA9IG1lcmdlX2NmZy5pbl93WzBdOw0K PiA+ICsgICAgICAgcmRtYV9jb25maWcud2lkdGggPSBtZXJnZV9jZmcuaW5fd1sxXTsNCj4gPiAr ICAgICAgIG10a19tZHBfcmRtYV9jb25maWcocmRtYV9yLT5yZWdzLCAmcmRtYV9jb25maWcsIGNt ZHFfcGt0LA0KPiA+ICZyZG1hX3ItPmNtZHFfYmFzZSk7DQo+ID4gKw0KPiA+ICsgICAgICAgbXRr X2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCAweDEsICZtZXJnZS0+Y21kcV9iYXNlLCBtZXJnZS0N Cj4gPiA+cmVncywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBESVNQX01FUkdFX0VO QUJMRSwgTUVSR0VfRU5BQkxFKTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRx X3BrdCwgMHgwLCAmbWVyZ2UtPmNtZHFfYmFzZSwgbWVyZ2UtDQo+ID4gPnJlZ3MsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgRElTUF9NRVJHRV9NVVRFXzAsIDB4MSk7DQo+ID4gKw0K PiA+ICsgICAgICAgbXRrX21kcF9yZG1hX3N0YXJ0KHJkbWFfbC0+cmVncywgY21kcV9wa3QsICZy ZG1hX2wtDQo+ID4gPmNtZHFfYmFzZSk7DQo+ID4gKyAgICAgICBpZiAodXNlX2R1YWxfcGlwZSkN Cj4gPiArICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hX3N0YXJ0KHJkbWFfci0+cmVncywgY21k cV9wa3QsICZyZG1hX3ItDQo+ID4gPmNtZHFfYmFzZSk7DQo+ID4gKyAgICAgICBlbHNlDQo+ID4g KyAgICAgICAgICAgICAgIG10a19tZHBfcmRtYV9zdG9wKHJkbWFfci0+cmVncywgY21kcV9wa3Qs ICZyZG1hX3ItDQo+ID4gPmNtZHFfYmFzZSk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQgbXRr X3BzZXVkb19vdmxfY29uZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHcsDQo+ ID4gdW5zaWduZWQgaW50IGgsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IHZyZWZyZXNoLCB1bnNpZ25lZCBpbnQgYnBjLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQo+ID4gK3sNCj4gPiArICAgICAg IHN0cnVjdCBtdGtfZGlzcF9wc2V1ZG9fb3ZsICpwc2V1ZG9fb3ZsID0NCj4gPiBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsNCj4gPiArDQo+ID4gKyAgICAgICBkZXZfaW5mbyhkZXYsICIlcyB3OiVkLCBo OiVkXG4iLCBfX2Z1bmNfXywgdywgaCk7DQo+ID4gKw0KPiA+ICsgICAgICAgbXRrX3BzZXVkb19v dmxfZmlmb19zZXR0aW5nKHBzZXVkb19vdmwsIGNtZHFfcGt0KTsNCj4gPiArfQ0KPiA+ICsNCj4g PiArdm9pZCBtdGtfcHNldWRvX292bF9zdGFydChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4gK3sN Cj4gPiArfQ0KPiA+ICsNCj4gPiArdm9pZCBtdGtfcHNldWRvX292bF9zdG9wKHN0cnVjdCBkZXZp Y2UgKmRldikNCj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0IG10a19kaXNwX3BzZXVkb19vdmwg KnBzZXVkb19vdmwgPQ0KPiA+IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ICsgICAgICAgc3Ry dWN0IG10a19wc2V1ZG9fb3ZsX2NvbXAgKnJkbWFfbDsNCj4gPiArICAgICAgIHN0cnVjdCBtdGtf cHNldWRvX292bF9jb21wICpyZG1hX3I7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX3BzZXVkb19v dmxfY29tcCAqbWVyZ2U7DQo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgcmVnOw0KPiA+ICsgICAg ICAgdTMyIGk7DQo+ID4gKw0KPiA+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IHBzZXVkb19vdmwt PmRhdGEtPmxheWVyX25yOyBpKyspIHsNCj4gPiArICAgICAgICAgICAgICAgcmRtYV9sID0gJnBz ZXVkb19vdmwtDQo+ID4gPnBzZXVkb19vdmxfY29tcFtQU0VVRE9fT1ZMX1JETUFfQkFTRSArIDIg KiBpXTsNCj4gPiArICAgICAgICAgICAgICAgcmRtYV9yID0gJnBzZXVkb19vdmwtDQo+ID4gPnBz ZXVkb19vdmxfY29tcFtQU0VVRE9fT1ZMX1JETUFfQkFTRSArIDIgKiBpICsgMV07DQo+ID4gKyAg ICAgICAgICAgICAgIG1lcmdlID0gJnBzZXVkb19vdmwtDQo+ID4gPnBzZXVkb19vdmxfY29tcFtQ U0VVRE9fT1ZMX01FUkdFX0JBU0UgKyBpXTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIG10 a19tZHBfcmRtYV9zdG9wKHJkbWFfbC0+cmVncywgTlVMTCwgJnJkbWFfbC0NCj4gPiA+Y21kcV9i YXNlKTsNCj4gPiArICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hX3N0b3AocmRtYV9yLT5yZWdz LCBOVUxMLCAmcmRtYV9yLQ0KPiA+ID5jbWRxX2Jhc2UpOw0KPiA+ICsNCj4gPiArICAgICAgICAg ICAgICAgcmVnID0gcmVhZGwobWVyZ2UtPnJlZ3MgKyBESVNQX01FUkdFX0VOQUJMRSk7DQo+ID4g KyAgICAgICAgICAgICAgIHJlZyA9IHJlZyAmIH5NRVJHRV9FTkFCTEU7DQo+ID4gKyAgICAgICAg ICAgICAgIHdyaXRlbF9yZWxheGVkKHJlZywgbWVyZ2UtPnJlZ3MgKw0KPiA+IERJU1BfTUVSR0Vf RU5BQkxFKTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIGRldmljZV9yZXNldF9vcHRpb25h bChtZXJnZS0+ZGV2KTsNCj4gPiArICAgICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiAraW50IG10 a19wc2V1ZG9fb3ZsX2Nsa19lbmFibGUoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICt7DQo+ID4g KyAgICAgICBzdHJ1Y3QgbXRrX2Rpc3BfcHNldWRvX292bCAqcHNldWRvX292bCA9DQo+ID4gZGV2 X2dldF9kcnZkYXRhKGRldik7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX3BzZXVkb19vdmxfY29t cCAqY29tcDsNCj4gPiArICAgICAgIGludCByZXQ7DQo+ID4gKyAgICAgICBpbnQgaTsNCj4gPiAr ICAgICAgIGludCBqOw0KPiA+ICsNCj4gPiArICAgICAgIGZvciAoaSA9IFBTRVVET19PVkxfTURQ X1JETUEwOyBpIDwgUFNFVURPX09WTF9JRF9NQVg7IGkrKykNCj4gPiB7DQo+ID4gKyAgICAgICAg ICAgICAgIGNvbXAgPSAmcHNldWRvX292bC0+cHNldWRvX292bF9jb21wW2ldOw0KPiA+ICsgICAg ICAgICAgICAgICBpZiAoIWNvbXAtPmRldikNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBj b250aW51ZTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIC8qIE5lZWQgdG8gcG93ZXIgb24g Zm9yIHByaXZhdGUgcmRtYSBkZXZpY2VzICovDQo+ID4gKyAgICAgICAgICAgICAgIGlmIChpIDwg UFNFVURPX09WTF9NRVJHRV9CQVNFKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0 ID0gcG1fcnVudGltZV9nZXRfc3luYyhjb21wLT5kZXYpOw0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGlmIChyZXQgPCAwKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGV2X2VycihkZXYsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJGYWlsZWQgdG8gcG93ZXIgb24sIGVycg0KPiA+ICVkLSVzXG4iLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQsDQo+ID4gcHNldWRvX292bF9jb21wX3N0 cltpXSk7DQo+ID4gKyAgICAgICAgICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAg IGZvciAoaiA9IDA7IGogPCBBUlJBWV9TSVpFKGNvbXAtPmNsa3MpOyBqKyspIHsNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICBpZiAoSVNfRVJSKGNvbXAtPmNsa3Nbal0pKQ0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIHJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShjb21wLT5jbGtzW2pdKTsNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0KQ0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGV2X2VycihkZXYsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gZW5hYmxlIGNsb2NrICVkLA0KPiA+IGVyciAlZC0l c1xuIiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgcmV0 LA0KPiA+IHBzZXVkb19vdmxfY29tcF9zdHJbaV0pOw0KPiA+ICsgICAgICAgICAgICAgICB9DQo+ ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJuIHJldDsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArdm9pZCBtdGtfcHNldWRvX292bF9jbGtfZGlzYWJsZShzdHJ1Y3QgZGV2aWNlICpk ZXYpDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCBtdGtfZGlzcF9wc2V1ZG9fb3ZsICpwc2V1 ZG9fb3ZsID0NCj4gPiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArICAgICAgIHN0cnVjdCBt dGtfcHNldWRvX292bF9jb21wICpjb21wOw0KPiA+ICsgICAgICAgaW50IHJldDsNCj4gPiArICAg ICAgIGludCBpOw0KPiA+ICsgICAgICAgaW50IGo7DQo+ID4gKw0KPiA+ICsgICAgICAgZm9yIChp ID0gUFNFVURPX09WTF9NRFBfUkRNQTA7IGkgPCBQU0VVRE9fT1ZMX0lEX01BWDsgaSsrKQ0KPiA+ IHsNCj4gPiArICAgICAgICAgICAgICAgY29tcCA9ICZwc2V1ZG9fb3ZsLT5wc2V1ZG9fb3ZsX2Nv bXBbaV07DQo+ID4gKyAgICAgICAgICAgICAgIGlmICghY29tcC0+ZGV2KQ0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgZm9y IChqID0gMDsgaSA8IEFSUkFZX1NJWkUoY29tcC0+Y2xrcyk7IGorKykgew0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIGlmIChJU19FUlIoY29tcC0+Y2xrc1tqXSkpDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICBjbGtfZGlzYWJsZV91bnByZXBhcmUoY29tcC0+Y2xrc1tqXSk7DQo+ID4gKyAgICAgICAgICAg ICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIC8qIE5lZWQgdG8gcG93ZXIgb2ZmIGZv ciBwcml2YXRlIHJkbWEgZGV2aWNlcyAqLw0KPiA+ICsgICAgICAgICAgICAgICBpZiAoaSA8IFBT RVVET19PVkxfTUVSR0VfQkFTRSkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldCA9 IHBtX3J1bnRpbWVfcHV0KGNvbXAtPmRldik7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg aWYgKHJldCA8IDApDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZfZXJy KGRldiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxl ZCB0byBwb3dlciBvZmYsIGVyci0NCj4gPiAlc1xuIiwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0LA0KPiA+IHBzZXVkb19vdmxfY29tcF9zdHJbaV0pOw0K PiA+ICsgICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICB9DQo+ID4gK30NCj4gPiArDQo+ID4g K3N0YXRpYyBpbnQgcHNldWRvX292bF9jb21wX2dldF9pZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0 cnVjdA0KPiA+IGRldmljZV9ub2RlICpub2RlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbnVtIG10a19wc2V1ZG9fb3ZsX2NvbXBfdHlwZQ0KPiA+IHR5cGUpDQo+ID4g K3sNCj4gPiArICAgICAgIGludCBhbGlhc19pZCA9IG9mX2FsaWFzX2dldF9pZChub2RlLA0KPiA+ IHByaXZhdGVfY29tcF9zdGVtW3R5cGVdKTsNCj4gPiArICAgICAgIGludCByZXQ7DQo+ID4gKyAg ICAgICBpbnQgaTsNCj4gPiArDQo+ID4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0la RShjb21wX21hdGNoZXMpOyBpKyspDQo+ID4gKyAgICAgICAgICAgICAgIGlmIChjb21wX21hdGNo ZXNbaV0udHlwZSA9PSB0eXBlICYmDQo+ID4gKyAgICAgICAgICAgICAgICAgICBjb21wX21hdGNo ZXNbaV0uYWxpYXNfaWQgPT0gYWxpYXNfaWQpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIGk7DQo+ID4gKw0KPiA+ICsgICAgICAgZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0 IGlkLiB0eXBlOiAlZCwgYWxpYXM6ICVkXG4iLA0KPiA+IHR5cGUsIGFsaWFzX2lkKTsNCj4gPiAr ICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IHBy aXZhdGVfY29tcF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0DQo+ID4gZGV2aWNlX25v ZGUgKm5vZGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbXRrX3Bz ZXVkb19vdmxfY29tcCAqY29tcCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu dW0gbXRrX3BzZXVkb19vdmxfY29tcF9pZCBpZCkNCj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqY29tcF9wZGV2Ow0KPiA+ICsgICAgICAgaW50IHJldDsNCj4gPiAr ICAgICAgIGludCBpOw0KPiA+ICsNCj4gPiArICAgICAgIGlmIChpZCA8IDAgfHwgaWQgPj0gUFNF VURPX09WTF9JRF9NQVgpIHsNCj4gPiArICAgICAgICAgICAgICAgZGV2X2VycihkZXYsICJJbnZh bGlkIGNvbXBvbmVudCBpZCAlZFxuIiwgaWQpOw0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4g LUVJTlZBTDsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICBjb21wX3BkZXYgPSBv Zl9maW5kX2RldmljZV9ieV9ub2RlKG5vZGUpOw0KPiA+ICsgICAgICAgaWYgKCFjb21wX3BkZXYp IHsNCj4gPiArICAgICAgICAgICAgICAgZGV2X3dhcm4oZGV2LCAiY2FuJ3QgZmluZCBwbGF0Zm9y bSBkZXZpY2Ugb2YNCj4gPiBub2RlOiVzXG4iLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICBub2RlLT5uYW1lKTsNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7DQo+ID4g KyAgICAgICB9DQo+ID4gKyAgICAgICBjb21wLT5kZXYgPSAmY29tcF9wZGV2LT5kZXY7DQo+ID4g KyAgICAgICBjb21wLT5yZWdzID0gb2ZfaW9tYXAobm9kZSwgMCk7DQo+ID4gKw0KPiA+ICsgICAg ICAgZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY29tcC0+Y2xrcyk7IGkrKykgew0KPiA+ICsg ICAgICAgICAgICAgICBjb21wLT5jbGtzW2ldID0gb2ZfY2xrX2dldChub2RlLCBpKTsNCj4gPiAr ICAgICAgICAgICAgICAgaWYgKElTX0VSUihjb21wLT5jbGtzW2ldKSkNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyNpZiBJU19S RUFDSEFCTEUoQ09ORklHX01US19DTURRKQ0KPiA+ICsgICAgICAgcmV0ID0gY21kcV9kZXZfZ2V0 X2NsaWVudF9yZWcoY29tcC0+ZGV2LCAmY29tcC0+Y21kcV9iYXNlLA0KPiA+IDApOw0KPiA+ICsg ICAgICAgaWYgKHJldCkNCj4gPiArICAgICAgICAgICAgICAgZGV2X2luZm8oZGV2LCAiZ2V0IG1l ZGlhdGVrLGdjZS1jbGllbnQtcmVnDQo+ID4gZmFpbCFcbiIpOw0KPiA+ICsjZW5kaWYNCj4gPiAr DQo+ID4gKyAgICAgICBpZiAoaWQgPCBQU0VVRE9fT1ZMX01FUkdFX0JBU0UpDQo+ID4gKyAgICAg ICAgICAgICAgIHBtX3J1bnRpbWVfZW5hYmxlKGNvbXAtPmRldik7DQo+ID4gKw0KPiA+ICsgICAg ICAgZGV2X2luZm8oZGV2LCAiW0RSTV1yZWdzOjB4JXAsIG5vZGU6JXNcbiIsIGNvbXAtPnJlZ3Ms DQo+ID4gcHNldWRvX292bF9jb21wX3N0cltpZF0pOw0KPiA+ICsNCj4gPiArICAgICAgIHJldHVy biAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG10a19kaXNwX3BzZXVkb19vdmxf Y29tcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlDQo+ID4gKnBkZXYpDQo+ID4gK3sNCj4g PiArICAgICAgIHJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG10a19k aXNwX3BzZXVkb19vdmxfY29tcF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZQ0KPiA+ICpw ZGV2KQ0KPiA+ICt7DQo+ID4gKyAgICAgICByZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiAr c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX3BzZXVkb19vdmxfY29tcF9kdF9p ZHNbXSA9IHsNCj4gPiArICAgICAgIHsNCj4gPiArICAgICAgICAgICAgICAgLmNvbXBhdGlibGUg PSAibWVkaWF0ZWssbXQ4MTk1LXZkbzEtcmRtYSIsDQo+ID4gKyAgICAgICAgICAgICAgIC5kYXRh ID0gKHZvaWQgKilQU0VVRE9fT1ZMX1RZUEVfUkRNQSwNCj4gPiArICAgICAgIH0sIHsNCj4gPiAr ICAgICAgICAgICAgICAgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTk1LXZkbzEtbWVyZ2Ui LA0KPiA+ICsgICAgICAgICAgICAgICAuZGF0YSA9ICh2b2lkICopUFNFVURPX09WTF9UWVBFX01F UkdFLA0KPiA+ICsgICAgICAgfSwNCj4gPiArICAgICAgIHt9LA0KPiA+ICt9Ow0KPiA+ICsNCj4g PiArc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2Rpc3BfcHNldWRvX292bF9jb21w X2RyaXZlciA9IHsNCj4gPiArICAgICAgIC5wcm9iZSAgICAgICAgICA9IG10a19kaXNwX3BzZXVk b19vdmxfY29tcF9wcm9iZSwNCj4gPiArICAgICAgIC5yZW1vdmUgICAgICAgICA9IG10a19kaXNw X3BzZXVkb19vdmxfY29tcF9yZW1vdmUsDQo+ID4gKyAgICAgICAuZHJpdmVyID0gew0KPiA+ICsg ICAgICAgICAgICAgICAubmFtZSAgID0gIm1lZGlhdGVrLWRpc3AtcHNldWRvLW92bC1jb21wIiwN Cj4gPiArICAgICAgICAgICAgICAgLm93bmVyICA9IFRISVNfTU9EVUxFLA0KPiA+ICsgICAgICAg ICAgICAgICAub2ZfbWF0Y2hfdGFibGUgPSBtdGtfcHNldWRvX292bF9jb21wX2R0X2lkcywNCj4g PiArICAgICAgIH0sDQo+ID4gK307DQo+ID4gK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIobXRrX2Rp c3BfcHNldWRvX292bF9jb21wX2RyaXZlcik7DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IHBzZXVk b19vdmxfY29tcF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPiArew0KPiA+ICsgICAgICAg c3RydWN0IG10a19kaXNwX3BzZXVkb19vdmwgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsN Cj4gPiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwgKnBhcmVudDsNCj4gPiArICAg ICAgIGludCBpLCByZXQ7DQo+ID4gKw0KPiA+ICsgICAgICAgcGFyZW50ID0gZGV2LT5wYXJlbnQt Pm9mX25vZGUtPnBhcmVudDsNCj4gPiArDQo+ID4gKyAgICAgICBmb3JfZWFjaF9jaGlsZF9vZl9u b2RlKHBhcmVudCwgbm9kZSkgew0KPiA+ICsgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgb2Zf ZGV2aWNlX2lkICpvZl9pZDsNCj4gPiArICAgICAgICAgICAgICAgZW51bSBtdGtfcHNldWRvX292 bF9jb21wX3R5cGUgdHlwZTsNCj4gPiArICAgICAgICAgICAgICAgc3RydWN0IG10a19wc2V1ZG9f b3ZsX2NvbXAgKmNvbXA7DQo+ID4gKyAgICAgICAgICAgICAgIGludCBpZDsNCj4gPiArDQo+ID4g KyAgICAgICAgICAgICAgIG9mX2lkID0gb2ZfbWF0Y2hfbm9kZShtdGtfcHNldWRvX292bF9jb21w X2R0X2lkcywNCj4gPiBub2RlKTsNCj4gPiArICAgICAgICAgICAgICAgaWYgKCFvZl9pZCkNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gPiArDQo+ID4gKyAgICAgICAg ICAgICAgIGlmICghb2ZfZGV2aWNlX2lzX2F2YWlsYWJsZShub2RlKSkgew0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIGRldl9pbmZvKGRldiwgIlNraXBwaW5nIGRpc2FibGVkIGNvbXBvbmVu dA0KPiA+ICVwT0ZcbiIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9k ZSk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+ID4gKyAgICAgICAg ICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIHR5cGUgPSAoZW51bSBtdGtfcHNl dWRvX292bF9jb21wX3R5cGUpb2ZfaWQtPmRhdGE7DQo+ID4gKyAgICAgICAgICAgICAgIGlkID0g cHNldWRvX292bF9jb21wX2dldF9pZChkZXYsIG5vZGUsIHR5cGUpOw0KPiA+ICsgICAgICAgICAg ICAgICBpZiAoaWQgPCAwKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZGV2X3dhcm4o ZGV2LCAiU2tpcHBpbmcgdW5rbm93biBjb21wb25lbnQNCj4gPiAlcE9GXG4iLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUpOw0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOw0KPiA+ICsgICAgICAgICAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAg ICAgICAgICAgICByZXQgPSBwcml2YXRlX2NvbXBfaW5pdChkZXYsIG5vZGUsICZwcml2LQ0KPiA+ ID5wc2V1ZG9fb3ZsX2NvbXBbaWRdLCBpZCk7DQo+ID4gKyAgICAgICAgICAgICAgIGlmIChyZXQp DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gPiArICAgICAgIH0N Cj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBwc2V1ZG9fb3ZsX2RhdGEgbXQ4MTk1X3BzZXVkb19vdmxfZHJpdmVyX2Rh dGENCj4gPiA9IHsNCj4gPiArICAgICAgIC5sYXllcl9uciA9IDQsDQo+ID4gKyAgICAgICAuZmlm by5yZWFkX3JlcXVlc3RfdHlwZSA9IDcsDQo+ID4gKyAgICAgICAuZmlmby5jb21tYW5kX2RpdiA9 IDEsDQo+ID4gKyAgICAgICAuZmlmby5leHRfcHJldXRyYV9lbiA9IDEsDQo+ID4gKyAgICAgICAu Zmlmby51bHRyYV9lbiA9IDAsDQo+ID4gKyAgICAgICAuZmlmby5wcmVfdWx0cmFfZW4gPSAxLA0K PiA+ICsgICAgICAgLmZpZm8uZXh0X3VsdHJhX2VuID0gMSwNCj4gPiArICAgICAgIC5maWZvLmV4 dHJkX2FyYl9tYXhfMCA9IDMsDQo+ID4gKyAgICAgICAuZmlmby5idWZfcmVzdl9zaXplXzAgPSAw LA0KPiA+ICsgICAgICAgLmZpZm8uaXNzdWVfcmVxX3RoXzAgPSAwLA0KPiA+ICsgICAgICAgLmZp Zm8udWx0cmFfaF9jb25fMCA9IDE1NiwNCj4gPiArICAgICAgIC5maWZvLnVsdHJhX2xfY29uXzAg PSAxMDQsDQo+ID4gK307DQo+IA0KPiBOb3cgb25seSBzdXBwb3J0IG9uZSBTb0MsIHNvIHJlbW92 ZSBkcml2ZXIgZGF0YSBhbmQgY2hhbmdlIHRoZXNlIHRvDQo+IGRlZmluaXRpb24gaW5zdGVhZCBv ZiB2YXJpYWJsZS4NCj4gDQpPSywgSSB3aWxsIHJlbW92ZSBpdC4NCg0KPiA+ICsNCj4gPiArc3Rh dGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcHNldWRvX292bF9kcml2ZXJfZHRfbWF0Y2hb XSA9IHsNCj4gPiArICAgICAgIHsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTk1LWRpc3At ZXRoZHIiLA0KPiA+ICsgICAgICAgICAuZGF0YSA9ICZtdDgxOTVfcHNldWRvX292bF9kcml2ZXJf ZGF0YX0sDQo+ID4gKyAgICAgICB7fSwNCj4gPiArfTsNCj4gPiArTU9EVUxFX0RFVklDRV9UQUJM RShvZiwgbXRrX2Rpc3BfcHNldWRvX292bF9kcml2ZXJfZHRfbWF0Y2gpOw0KPiA+ICsNCj4gPiAr c3RhdGljIGludCBtdGtfZGlzcF9wc2V1ZG9fb3ZsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCBtdGtfZGlzcF9wc2V1ZG9fb3Zs ICpwcml2Ow0KPiA+ICsgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsNCj4g PiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqcGhhbmRsZSA9IGRldi0+cGFyZW50LT5vZl9u b2RlOw0KPiA+ICsgICAgICAgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqb2ZfaWQ7DQo+ID4g KyAgICAgICBpbnQgcmV0Ow0KPiA+ICsgICAgICAgaW50IGk7DQo+ID4gKw0KPiA+ICsgICAgICAg ZGV2X2luZm8oZGV2LCAiJXMrXG4iLCBfX2Z1bmNfXyk7DQo+ID4gKw0KPiA+ICsgICAgICAgb2Zf aWQgPSBvZl9tYXRjaF9ub2RlKHBzZXVkb19vdmxfZHJpdmVyX2R0X21hdGNoLCBwaGFuZGxlKTsN Cj4gPiArICAgICAgIGlmICghb2ZfaWQpDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5P REVWOw0KPiA+ICsNCj4gPiArICAgICAgIHByaXYgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2Yo KnByaXYpLCBHRlBfS0VSTkVMKTsNCj4gPiArICAgICAgIGlmICghcHJpdikNCj4gPiArICAgICAg ICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4gKw0KPiA+ICsgICAgICAgcHJpdi0+bW1zeXNf ZGV2ID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7DQo+ID4gKw0KPiA+ICsgICAgICAgcHJpdi0+ ZGF0YSA9IG9mX2lkLT5kYXRhOw0KPiA+ICsgICAgICAgcGxhdGZvcm1fc2V0X2RydmRhdGEocGRl diwgcHJpdik7DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0ID0gcHNldWRvX292bF9jb21wX2luaXQo ZGV2KTsNCj4gPiArICAgICAgIGlmIChyZXQpIHsNCj4gPiArICAgICAgICAgICAgICAgZGV2X25v dGljZShkZXYsICJwc2V1ZG9fb3ZsIGNvbXAgaW5pdCBmYWlsXG4iKTsNCj4gPiArICAgICAgICAg ICAgICAgcmV0dXJuIHJldDsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICBkZXZf aW5mbyhkZXYsICIlcy1cbiIsIF9fZnVuY19fKTsNCj4gPiArICAgICAgIHJldHVybiByZXQ7DQo+ ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgbXRrX2Rpc3BfcHNldWRvX292bF9yZW1vdmUo c3RydWN0IHBsYXRmb3JtX2RldmljZQ0KPiA+ICpwZGV2KQ0KPiA+ICt7DQo+ID4gKyAgICAgICBz dHJ1Y3QgbXRrX2Rpc3BfcHNldWRvX292bCAqcHNldWRvX292bCA9DQo+ID4gZGV2X2dldF9kcnZk YXRhKCZwZGV2LT5kZXYpOw0KPiA+ICsgICAgICAgaW50IGk7DQo+ID4gKw0KPiA+ICsgICAgICAg Zm9yIChpID0gUFNFVURPX09WTF9NRFBfUkRNQTA7IGkgPCBQU0VVRE9fT1ZMX01FUkdFX0JBU0U7 DQo+ID4gaSsrKQ0KPiA+ICsgICAgICAgICAgICAgICBwbV9ydW50aW1lX2Rpc2FibGUocHNldWRv X292bC0NCj4gPiA+cHNldWRvX292bF9jb21wW2ldLmRldik7DQo+ID4gKw0KPiA+ICsgICAgICAg cmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRr X2Rpc3BfcHNldWRvX292bF9kcml2ZXIgPSB7DQo+ID4gKyAgICAgICAucHJvYmUgPSBtdGtfZGlz cF9wc2V1ZG9fb3ZsX3Byb2JlLA0KPiA+ICsgICAgICAgLnJlbW92ZSA9IG10a19kaXNwX3BzZXVk b19vdmxfcmVtb3ZlLA0KPiA+ICsgICAgICAgLmRyaXZlciA9IHsNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAubmFtZSA9ICJtZWRpYXRlay1kaXNwLXBzZXVkby1vdmwiLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIC5vd25lciA9IFRISVNfTU9EVUxFLA0KPiA+ICsgICAgICAgICAg ICAgICB9LA0KPiA+ICt9Ow0KPiA+ICttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKG10a19kaXNwX3Bz ZXVkb19vdmxfZHJpdmVyKTsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kaXNwX3BzZXVkb19vdmwuaA0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kaXNwX3BzZXVkb19vdmwuaA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5k ZXggMDAwMDAwMDAwMDAwLi5iM2ZlMWUxNzAyYjgNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX3BzZXVkb19vdmwuaA0KPiA+IEBA IC0wLDAgKzEsMjMgQEANCj4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAt b25seSAqLw0KPiA+ICsvKg0KPiA+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjEgTWVkaWFUZWsgSW5j Lg0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNpZm5kZWYgX19NVEtfRElTUF9QU0VVRE9fT1ZMX0hf Xw0KPiA+ICsjZGVmaW5lIF9fTVRLX0RJU1BfUFNFVURPX09WTF9IX18NCj4gPiArDQo+ID4gKyNp bmNsdWRlIDxkcm0vbWVkaWF0ZWtfZHJtLmg+DQo+ID4gKw0KPiA+ICt2b2lkIG10a19wc2V1ZG9f b3ZsX3N0YXJ0KHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ID4gK3ZvaWQgbXRrX3BzZXVkb19vdmxf c3RvcChzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICtpbnQgbXRrX3BzZXVkb19vdmxfY2xrX2Vu YWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICt2b2lkIG10a19wc2V1ZG9fb3ZsX2Nsa19k aXNhYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ID4gK3ZvaWQgbXRrX3BzZXVkb19vdmxfY29u ZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHcsDQo+ID4gdW5zaWduZWQgaW50 IGgsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHZyZWZyZXNo LCB1bnNpZ25lZCBpbnQgYnBjLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBjbWRxX3BrdCAqY21kcV9wa3QpOw0KPiA+ICt2b2lkIG10a19wc2V1ZG9fb3ZsX2xheWVyX2Nv bmZpZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludA0KPiA+IGlkeCwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpzdGF0 ZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY21kcV9wa3Qg KmNtZHFfcGt0KTsNCj4gPiArDQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmRtYS5jDQo+ID4gYi9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX21kcF9yZG1hLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uODFkM2NjNDg3MmViDQo+ID4gLS0tIC9kZXYvbnVsbA0K PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JkbWEuYw0KPiA+IEBA IC0wLDAgKzEsNDU2IEBADQo+ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w LW9ubHkNCj4gPiArLyoNCj4gPiArICogQ29weXJpZ2h0IChjKSAyMDIxIE1lZGlhVGVrIEluYy4N Cj4gPiArICovDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4NCj4gPiAr I2luY2x1ZGUgIm10a19kcm1fZHJ2LmgiDQo+ID4gKyNpbmNsdWRlICJtdGtfbWRwX3JlZ19yZG1h LmgiDQo+ID4gKyNpbmNsdWRlICJtdGtfbWRwX3JkbWEuaCINCj4gPiArDQo+ID4gKyNkZWZpbmUg UkRNQV9JTlBVVF9TV0FQICAgICAgICAgICAgICAgIEJJVCgxNCkNCj4gPiArI2RlZmluZSBSRE1B X0lOUFVUXzEwQklUICAgICAgIEJJVCgxOCkNCj4gPiArI2RlZmluZSBJUlFfSU5UX0VOX0FMTCBc DQo+ID4gKyAgICAgICAoUkVHX0ZMRF9NQVNLKEZMRF9VTkRFUlJVTl9JTlRfRU4pIHxcDQo+ID4g KyAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9SRUdfVVBEQVRFX0lOVF9FTikgfFwNCj4gPiArICAg ICAgICBSRUdfRkxEX01BU0soRkxEX0ZSQU1FX0NPTVBMRVRFX0lOVF9FTikpDQo+ID4gKw0KPiA+ ICtzdGF0aWMgdW5zaWduZWQgaW50IHJkbWFfZ2V0X3lfcGl0Y2godW5zaWduZWQgaW50IGZtdCwg dW5zaWduZWQNCj4gPiBpbnQgd2lkdGgpDQo+ID4gK3sNCj4gPiArICAgICAgIHN3aXRjaCAoZm10 KSB7DQo+ID4gKyAgICAgICBkZWZhdWx0Og0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1JH QjU2NToNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1I1NjU6DQo+ID4gKyAgICAgICAg ICAgICAgIHJldHVybiAyICogd2lkdGg7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfUkdC ODg4Og0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX0JHUjg4ODoNCj4gPiArICAgICAgICAg ICAgICAgcmV0dXJuIDMgKiB3aWR0aDsNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9SR0JY ODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9SR0JBODg4ODoNCj4gPiArICAgICAg IGNhc2UgRFJNX0ZPUk1BVF9CR1JYODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9C R1JBODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4ODoNCj4gPiArICAg ICAgIGNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1B VF9YQkdSODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoNCj4gPiAr ICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9BUkdCMjEwMTAxMDoNCj4gPiArICAgICAgIGNhc2UgRFJN X0ZPUk1BVF9BQkdSMjEwMTAxMDoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9SR0JBMTAx MDEwMjoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1JBMTAxMDEwMjoNCj4gPiArICAg ICAgICAgICAgICAgcmV0dXJuIDQgKiB3aWR0aDsNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1B VF9VWVZZOg0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1lVWVY6DQo+ID4gKyAgICAgICAg ICAgICAgIHJldHVybiAyICogd2lkdGg7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfTlYx MjoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9OVjIxOg0KPiA+ICsgICAgICAgICAgICAg ICByZXR1cm4gMSAqIHdpZHRoOw0KPiA+ICsgICAgICAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtz dGF0aWMgdW5zaWduZWQgaW50IHJkbWFfZ2V0X3V2X3BpdGNoKHVuc2lnbmVkIGludCBmbXQsIHVu c2lnbmVkDQo+ID4gaW50IHdpZHRoKQ0KPiA+ICt7DQo+ID4gKyAgICAgICBzd2l0Y2ggKGZtdCkg ew0KPiA+ICsgICAgICAgZGVmYXVsdDoNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfTlYxMjoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZP Uk1BVF9OVjIxOg0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gNCAqIHdpZHRoOw0KPiA+ICsg ICAgICAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdW5zaWduZWQgaW50IHJkbWFfZ2V0 X2Jsb2NrX2godW5zaWduZWQgaW50IG1vZGUpDQo+ID4gK3sNCj4gPiArICAgICAgIHN3aXRjaCAo bW9kZSkgew0KPiA+ICsgICAgICAgZGVmYXVsdDoNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJu IDA7DQo+ID4gKyAgICAgICBjYXNlIFJETUFfQkxPQ0tfOHg4Og0KPiA+ICsgICAgICAgY2FzZSBS RE1BX0JMT0NLXzE2eDg6DQo+ID4gKyAgICAgICBjYXNlIFJETUFfQkxPQ0tfMzJ4ODoNCj4gPiAr ICAgICAgICAgICAgICAgcmV0dXJuIDg7DQo+ID4gKyAgICAgICBjYXNlIFJETUFfQkxPQ0tfOHgx NjoNCj4gPiArICAgICAgIGNhc2UgUkRNQV9CTE9DS18xNngxNjoNCj4gPiArICAgICAgIGNhc2Ug UkRNQV9CTE9DS18zMngxNjoNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDE2Ow0KPiA+ICsg ICAgICAgY2FzZSBSRE1BX0JMT0NLXzh4MzI6DQo+ID4gKyAgICAgICBjYXNlIFJETUFfQkxPQ0tf MTZ4MzI6DQo+ID4gKyAgICAgICBjYXNlIFJETUFfQkxPQ0tfMzJ4MzI6DQo+ID4gKyAgICAgICAg ICAgICAgIHJldHVybiAzMjsNCj4gPiArICAgICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiArc3Rh dGljIHVuc2lnbmVkIGludCByZG1hX2dldF9ob3Jpem9udGFsX3NoaWZ0X3V2KHVuc2lnbmVkIGlu dCBmbXQpDQo+ID4gK3sNCj4gPiArICAgICAgIHN3aXRjaCAoZm10KSB7DQo+ID4gKyAgICAgICBk ZWZhdWx0Og0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiArICAgICAgIGNhc2Ug RFJNX0ZPUk1BVF9OVjEyOg0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX05WMjE6DQo+ID4g KyAgICAgICAgICAgICAgIHJldHVybiAxOw0KPiA+ICsgICAgICAgfQ0KPiA+ICt9DQo+ID4gKw0K PiA+ICtzdGF0aWMgdW5zaWduZWQgaW50IHJkbWFfZ2V0X3ZlcnRpY2FsX3NoaWZ0X3V2KHVuc2ln bmVkIGludCBmbXQpDQo+ID4gK3sNCj4gPiArICAgICAgIHN3aXRjaCAoZm10KSB7DQo+ID4gKyAg ICAgICBkZWZhdWx0Og0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiArICAgICAg IGNhc2UgRFJNX0ZPUk1BVF9OVjEyOg0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX05WMjE6 DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAxOw0KPiA+ICsgICAgICAgfQ0KPiA+ICt9DQo+ ID4gKw0KPiA+ICtzdGF0aWMgdW5zaWduZWQgaW50IHJkbWFfZ2V0X2JpdHNfcGVyX3BpeGVsX3ko dW5zaWduZWQgaW50IGZtdCkNCj4gPiArew0KPiA+ICsgICAgICAgc3dpdGNoIChmbXQpIHsNCj4g PiArICAgICAgIGRlZmF1bHQ6DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfUkdCNTY1Og0K PiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX0JHUjU2NToNCj4gPiArICAgICAgICAgICAgICAg cmV0dXJuIDE2Ow0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1JHQjg4ODoNCj4gPiArICAg ICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1I4ODg6DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAy NDsNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9SR0JYODg4ODoNCj4gPiArICAgICAgIGNh c2UgRFJNX0ZPUk1BVF9SR0JBODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1JY ODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1JBODg4ODoNCj4gPiArICAgICAg IGNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9B UkdCODg4ODoNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4ODoNCj4gPiArICAg ICAgIGNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJu IDMyOw0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1VZVlk6DQo+ID4gKyAgICAgICBjYXNl IERSTV9GT1JNQVRfWVVZVjoNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDE2Ow0KPiA+ICsg ICAgICAgY2FzZSBEUk1fRk9STUFUX05WMTI6DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRf TlYyMToNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDg7DQo+ID4gKyAgICAgICB9DQo+ID4g K30NCj4gPiArDQo+ID4gK3N0YXRpYyB1bnNpZ25lZCBpbnQgcmRtYV9nZXRfYml0c19wZXJfcGl4 ZWxfdXYodW5zaWduZWQgaW50IGZtdCkNCj4gPiArew0KPiA+ICsgICAgICAgc3dpdGNoIChmbXQp IHsNCj4gPiArICAgICAgIGRlZmF1bHQ6DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAwOw0K PiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX05WMTI6DQo+ID4gKyAgICAgICBjYXNlIERSTV9G T1JNQVRfTlYyMToNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDE2Ow0KPiA+ICsgICAgICAg fQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgYm9vbCB3aXRoX2FscGhhKHVpbnQzMl90IGZv cm1hdCkNCj4gPiArew0KPiA+ICsgICAgICAgY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAq Zm10X2luZm8gPQ0KPiA+IGRybV9mb3JtYXRfaW5mbyhmb3JtYXQpOw0KPiA+ICsNCj4gPiArICAg ICAgIHJldHVybiBmbXRfaW5mby0+aGFzX2FscGhhOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0 aWMgdW5zaWduZWQgaW50IHJkbWFfZm10X2NvbnZlcnQodW5zaWduZWQgaW50IGZtdCkNCj4gPiAr ew0KPiA+ICsgICAgICAgc3dpdGNoIChmbXQpIHsNCj4gPiArICAgICAgIGRlZmF1bHQ6DQo+ID4g KyAgICAgICBjYXNlIERSTV9GT1JNQVRfUkdCNTY1Og0KPiA+ICsgICAgICAgICAgICAgICByZXR1 cm4gUkRNQV9JTlBVVF9GT1JNQVRfUkdCNTY1Ow0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFU X0JHUjU2NToNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIFJETUFfSU5QVVRfRk9STUFUX1JH QjU2NSB8IFJETUFfSU5QVVRfU1dBUDsNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9SR0I4 ODg6DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBSRE1BX0lOUFVUX0ZPUk1BVF9SR0I4ODg7 DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfQkdSODg4Og0KPiA+ICsgICAgICAgICAgICAg ICByZXR1cm4gUkRNQV9JTlBVVF9GT1JNQVRfUkdCODg4IHwgUkRNQV9JTlBVVF9TV0FQOw0KPiA+ ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1JHQlg4ODg4Og0KPiA+ICsgICAgICAgY2FzZSBEUk1f Rk9STUFUX1JHQkE4ODg4Og0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9G T1JNQVRfQVJHQjg4ODg7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfQkdSWDg4ODg6DQo+ ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfQkdSQTg4ODg6DQo+ID4gKyAgICAgICAgICAgICAg IHJldHVybiBSRE1BX0lOUFVUX0ZPUk1BVF9BUkdCODg4OCB8DQo+ID4gUkRNQV9JTlBVVF9TV0FQ Ow0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4Og0KPiA+ICsgICAgICAgY2Fz ZSBEUk1fRk9STUFUX0FSR0I4ODg4Og0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gUkRNQV9J TlBVVF9GT1JNQVRfUkdCQTg4ODg7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfWEJHUjg4 ODg6DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfQUJHUjg4ODg6DQo+ID4gKyAgICAgICAg ICAgICAgIHJldHVybiBSRE1BX0lOUFVUX0ZPUk1BVF9SR0JBODg4OCB8DQo+ID4gUkRNQV9JTlBV VF9TV0FQOw0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX0FCR1IyMTAxMDEwOg0KPiA+ICsg ICAgICAgICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JNQVRfUkdCQTg4ODggfCBSRE1BX0lO UFVUX1NXQVANCj4gPiB8DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRE1B X0lOUFVUXzEwQklUOw0KPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX0FSR0IyMTAxMDEwOg0K PiA+ICsgICAgICAgICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JNQVRfUkdCQTg4ODggfA0K PiA+IFJETUFfSU5QVVRfMTBCSVQ7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfUkdCQTEw MTAxMDI6DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBSRE1BX0lOUFVUX0ZPUk1BVF9BUkdC ODg4OCB8IFJETUFfSU5QVVRfU1dBUA0KPiA+IHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJETUFfSU5QVVRfMTBCSVQ7DQo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRf QkdSQTEwMTAxMDI6DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBSRE1BX0lOUFVUX0ZPUk1B VF9BUkdCODg4OCB8DQo+ID4gUkRNQV9JTlBVVF8xMEJJVDsNCj4gPiArICAgICAgIGNhc2UgRFJN X0ZPUk1BVF9VWVZZOg0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JN QVRfVVlWWTsNCj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9ZVVlWOg0KPiA+ICsgICAgICAg ICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JNQVRfWVVZMjsNCj4gPiArICAgICAgIH0NCj4g PiArfQ0KPiA+ICsNCj4gPiArdm9pZCBtdGtfbWRwX3JkbWFfc3RhcnQodm9pZCBfX2lvbWVtICpi YXNlLCBzdHJ1Y3QgY21kcV9wa3QNCj4gPiAqY21kcV9wa3QsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGNtZHFfY2xpZW50X3JlZyAqY21kcV9iYXNlKQ0KPiA+ICt7DQo+ID4g KyAgICAgICB1bnNpZ25lZCBpbnQgaW50ZW4gPSBJUlFfSU5UX0VOX0FMTDsNCj4gPiArDQo+ID4g KyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIGludGVuLCBjbWRxX2Jhc2UsIGJh c2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTURQX1JETUFfSU5URVJSVVBUX0VO QUJMRSwNCj4gPiBJUlFfSU5UX0VOX0FMTCk7DQo+IA0KPiBXaHkgZG8geW91IGVuYWJsZSByZG1h IGludGVycnVwdD8NCj4gDQpJIHdpbGwgcmVtb3ZlIGl0Lg0KDQo+ID4gKyAgICAgICBtdGtfZGRw X3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9ST1RfRU5BQkxFLA0KPiA+IDEp LCBjbWRxX2Jhc2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZSwgTURQX1JE TUFfRU4sDQo+ID4gUkVHX0ZMRF9NQVNLKEZMRF9ST1RfRU5BQkxFKSk7DQo+ID4gK30NCj4gPiAr DQo+ID4gK3ZvaWQgbXRrX21kcF9yZG1hX3N0b3Aodm9pZCBfX2lvbWVtICpiYXNlLCBzdHJ1Y3Qg Y21kcV9wa3QNCj4gPiAqY21kcV9wa3QsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgY21kcV9jbGllbnRfcmVnICpjbWRxX2Jhc2UpDQo+ID4gK3sNCj4gPiArICAgICAgIG10a19k ZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgUkVHX0ZMRF9WQUwoRkxEX1JPVF9FTkFCTEUsDQo+ID4g MCksIGNtZHFfYmFzZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLCBNRFBf UkRNQV9FTiwNCj4gPiBSRUdfRkxEX01BU0soRkxEX1JPVF9FTkFCTEUpKTsNCj4gPiArICAgICAg IG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgMCwgY21kcV9iYXNlLCBiYXNlLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgIE1EUF9SRE1BX0lOVEVSUlVQVF9FTkFCTEUsDQo+ID4g SVJRX0lOVF9FTl9BTEwpOw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0 LCAwLCBjbWRxX2Jhc2UsIGJhc2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTURQ X1JETUFfSU5URVJSVVBUX1NUQVRVUywNCj4gPiBJUlFfSU5UX0VOX0FMTCk7DQo+ID4gKyAgICAg ICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIDEsIGNtZHFfYmFzZSwgYmFzZSwNCj4gPiBN RFBfUkRNQV9SRVNFVCwgfjApOw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFf cGt0LCAwLCBjbWRxX2Jhc2UsIGJhc2UsDQo+ID4gTURQX1JETUFfUkVTRVQsIH4wKTsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArdm9pZCBtdGtfbWRwX3JkbWFfZmlmb19jb25maWcodm9pZCBfX2lvbWVt ICpiYXNlLCBzdHJ1Y3QgY21kcV9wa3QNCj4gPiAqY21kcV9wa3QsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGNtZHFfY2xpZW50X3JlZyAqY21kcV9iYXNlLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBtdGtfbWRwX3JkbWFf ZmlmbyAqZmlmbykNCj4gDQo+IFdoeSBkbyB5b3UgcGFzcyBmaWZvIGNvbmZpZyBmcm9tIG92bCB0 byByZG1hPw0KPiBJIHRoaW5rIGp1c3QgcmRtYSBrbm93IGhvdyB0byBzZXQgdGhlc2UgZmlmbyBw YXJhbWV0ZXIuDQo+IA0KSSB3aWxsIG1vdmUgZmlmbyBzZXR0aW5nIGluc2lkZSB0aGUgcmRtYSBk cml2ZXIuDQoNCj4gPiArew0KPiA+ICsgICAgICAgaW50IHJlZzsNCj4gPiArICAgICAgIGludCBy ZWdfdmFsOw0KPiA+ICsgICAgICAgaW50IHJlZ19tYXNrOw0KPiA+ICsNCj4gPiArICAgICAgIHJl ZyA9IE1EUF9SRE1BX0dNQ0lGX0NPTjsNCj4gPiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxEX1ZB TChGTERfUkRfUkVRX1RZUEUsIGZpZm8tDQo+ID4gPnJlYWRfcmVxdWVzdF90eXBlKSB8DQo+ID4g KyAgICAgICAgICAgICAgICAgUkVHX0ZMRF9WQUwoRkxEX0NPTU1BTkRfRElWLCBmaWZvLT5jb21t YW5kX2RpdikgfA0KPiA+ICsgICAgICAgICAgICAgICAgIFJFR19GTERfVkFMKEZMRF9FWFRfUFJF VUxUUkFfRU4sIGZpZm8tDQo+ID4gPmV4dF9wcmV1dHJhX2VuKSB8DQo+ID4gKyAgICAgICAgICAg ICAgICAgUkVHX0ZMRF9WQUwoRkxEX1VMVFJBX0VOLCBmaWZvLT51bHRyYV9lbikgfA0KPiA+ICsg ICAgICAgICAgICAgICAgIFJFR19GTERfVkFMKFBSRV9VTFRSQV9FTiwgZmlmby0+cHJlX3VsdHJh X2VuKSB8DQo+ID4gKyAgICAgICAgICAgICAgICAgUkVHX0ZMRF9WQUwoRkxEX0VYVF9VTFRSQV9F TiwgZmlmby0NCj4gPiA+ZXh0X3VsdHJhX2VuKTsNCj4gPiArICAgICAgIHJlZ19tYXNrID0gUkVH X0ZMRF9NQVNLKEZMRF9SRF9SRVFfVFlQRSkgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBSRUdf RkxEX01BU0soRkxEX0NPTU1BTkRfRElWKSB8DQo+ID4gKyAgICAgICAgICAgICAgICAgIFJFR19G TERfTUFTSyhGTERfRVhUX1BSRVVMVFJBX0VOKSB8DQo+ID4gKyAgICAgICAgICAgICAgICAgIFJF R19GTERfTUFTSyhGTERfVUxUUkFfRU4pIHwNCj4gPiArICAgICAgICAgICAgICAgICAgUkVHX0ZM RF9NQVNLKFBSRV9VTFRSQV9FTikgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBSRUdfRkxEX01B U0soRkxEX0VYVF9VTFRSQV9FTik7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21k cV9wa3QsIHJlZ192YWwsIGNtZHFfYmFzZSwgYmFzZSwgcmVnLA0KPiA+IHJlZ19tYXNrKTsNCj4g PiArDQo+ID4gKyAgICAgICByZWcgPSBNRFBfUkRNQV9ETUFfQ09OXzA7DQo+ID4gKyAgICAgICBy ZWdfdmFsID0gUkVHX0ZMRF9WQUwoRkxEX0VYVFJEX0FSQl9NQVgsIGZpZm8tDQo+ID4gPmV4dHJk X2FyYl9tYXhfMCkgfA0KPiA+ICsgICAgICAgICAgICAgICAgIFJFR19GTERfVkFMKEZMRF9CVUZf UkVTVl9TSVpFLCBmaWZvLQ0KPiA+ID5idWZfcmVzdl9zaXplXzApIHwNCj4gPiArICAgICAgICAg ICAgICAgICBSRUdfRkxEX1ZBTChGTERfSVNTVUVfUkVRX1RILCBmaWZvLQ0KPiA+ID5pc3N1ZV9y ZXFfdGhfMCk7DQo+ID4gKyAgICAgICByZWdfbWFzayA9IFJFR19GTERfTUFTSyhGTERfRVhUUkRf QVJCX01BWCkgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX0JVRl9S RVNWX1NJWkUpIHwNCj4gPiArICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9JU1NV RV9SRVFfVEgpOw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCByZWdf dmFsLCBjbWRxX2Jhc2UsIGJhc2UsIHJlZywNCj4gPiByZWdfbWFzayk7DQo+ID4gKw0KPiA+ICsg ICAgICAgcmVnID0gTURQX1JETUFfVVRSQV9IX0NPTl8wOw0KPiA+ICsgICAgICAgcmVnX3ZhbCA9 IFJFR19GTERfVkFMKEZMRF9QUkVVVFJBX0hfT0ZTXzAsIGZpZm8tDQo+ID4gPnVsdHJhX2hfY29u XzApOw0KPiA+ICsgICAgICAgcmVnX21hc2sgPSBSRUdfRkxEX01BU0soRkxEX1BSRVVUUkFfSF9P RlNfMCk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIHJlZ192YWws IGNtZHFfYmFzZSwgYmFzZSwgcmVnLA0KPiA+IHJlZ19tYXNrKTsNCj4gPiArDQo+ID4gKyAgICAg ICByZWcgPSBNRFBfUkRNQV9VVFJBX0xfQ09OXzA7DQo+ID4gKyAgICAgICByZWdfdmFsID0gUkVH X0ZMRF9WQUwoRkxEX1BSRVVUUkFfTF9PRlNfMCwgZmlmby0NCj4gPiA+dWx0cmFfbF9jb25fMCk7 DQo+ID4gKyAgICAgICByZWdfbWFzayA9IFJFR19GTERfTUFTSyhGTERfUFJFVVRSQV9MX09GU18w KTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgcmVnX3ZhbCwgY21k cV9iYXNlLCBiYXNlLCByZWcsDQo+ID4gcmVnX21hc2spOw0KPiA+ICsNCj4gPiArICAgICAgIHJl ZyA9IE1EUF9SRE1BX0RNQUJVRl9DT05fMTsNCj4gPiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxE X1ZBTChGTERfRVhUUkRfQVJCX01BWF8xLCAwKSB8DQo+ID4gKyAgICAgICAgICAgICAgICAgUkVH X0ZMRF9WQUwoRkxEX0JVRl9SRVNWX1NJWkVfMSwgMCkgfA0KPiA+ICsgICAgICAgICAgICAgICAg IFJFR19GTERfVkFMKEZMRF9JU1NVRV9SRVFfVEhfMSwgMCk7DQo+ID4gKyAgICAgICByZWdfbWFz ayA9IFJFR19GTERfTUFTSyhGTERfRVhUUkRfQVJCX01BWF8xKSB8DQo+ID4gKyAgICAgICAgICAg ICAgICAgIFJFR19GTERfTUFTSyhGTERfQlVGX1JFU1ZfU0laRV8xKSB8DQo+ID4gKyAgICAgICAg ICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfSVNTVUVfUkVRX1RIXzEpOw0KPiA+ICsgICAgICAg bXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCByZWdfdmFsLCBjbWRxX2Jhc2UsIGJhc2UsIHJl ZywNCj4gPiByZWdfbWFzayk7DQo+ID4gKw0KPiA+ICsgICAgICAgcmVnID0gTURQX1JETUFfVUxU UkFfVEhfSElHSF9DT05fMTsNCj4gPiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxEX1ZBTChGTERf UFJFX1VMVFJBX1RIX0hJR0hfT0ZTXzEsIDApOw0KPiA+ICsgICAgICAgcmVnX21hc2sgPSBSRUdf RkxEX01BU0soRkxEX1BSRV9VTFRSQV9USF9ISUdIX09GU18xKTsNCj4gPiArICAgICAgIG10a19k ZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgcmVnX3ZhbCwgY21kcV9iYXNlLCBiYXNlLCByZWcsDQo+ ID4gcmVnX21hc2spOw0KPiA+ICsNCj4gPiArICAgICAgIHJlZyA9IE1EUF9SRE1BX1VMVFJBX1RI X0xPV19DT05fMTsNCj4gPiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxEX1ZBTChGTERfUFJFX1VM VFJBX1RIX0xPV19PRlNfMSwgMCk7DQo+ID4gKyAgICAgICByZWdfbWFzayA9IFJFR19GTERfTUFT SyhGTERfUFJFX1VMVFJBX1RIX0xPV19PRlNfMSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRl X21hc2soY21kcV9wa3QsIHJlZ192YWwsIGNtZHFfYmFzZSwgYmFzZSwgcmVnLA0KPiA+IHJlZ19t YXNrKTsNCj4gPiArDQo+ID4gKyAgICAgICByZWcgPSBNRFBfUkRNQV9ETUFCVUZfQ09OXzI7DQo+ ID4gKyAgICAgICByZWdfdmFsID0gUkVHX0ZMRF9WQUwoRkxEX0VYVFJEX0FSQl9NQVhfMiwgMCkg fA0KPiA+ICsgICAgICAgICAgICAgICAgIFJFR19GTERfVkFMKEZMRF9CVUZfUkVTVl9TSVpFXzIs IDApIHwNCj4gPiArICAgICAgICAgICAgICAgICBSRUdfRkxEX1ZBTChGTERfSVNTVUVfUkVRX1RI XzIsIDApOw0KPiA+ICsgICAgICAgcmVnX21hc2sgPSBSRUdfRkxEX01BU0soRkxEX0VYVFJEX0FS Ql9NQVhfMikgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX0JVRl9S RVNWX1NJWkVfMikgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX0lT U1VFX1JFUV9USF8yKTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwg cmVnX3ZhbCwgY21kcV9iYXNlLCBiYXNlLCByZWcsDQo+ID4gcmVnX21hc2spOw0KPiA+ICsNCj4g PiArICAgICAgIHJlZyA9IE1EUF9SRE1BX1VUUkFfSF9DT05fMjsNCj4gPiArICAgICAgIHJlZ192 YWwgPSBSRUdfRkxEX1ZBTChGTERfUFJFX1VMVFJBX1RIX0hJR0hfT0ZTXzIsIDApOw0KPiA+ICsg ICAgICAgcmVnX21hc2sgPSBSRUdfRkxEX01BU0soRkxEX1BSRV9VTFRSQV9USF9ISUdIX09GU18y KTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgcmVnX3ZhbCwgY21k cV9iYXNlLCBiYXNlLCByZWcsDQo+ID4gcmVnX21hc2spOw0KPiA+ICsNCj4gPiArICAgICAgIHJl ZyA9IE1EUF9SRE1BX1VMVFJBX1RIX0xPV19DT05fMjsNCj4gPiArICAgICAgIHJlZ192YWwgPSBS RUdfRkxEX1ZBTChGTERfUFJFX1VMVFJBX1RIX0xPV19PRlNfMiwgMCk7DQo+ID4gKyAgICAgICBy ZWdfbWFzayA9IFJFR19GTERfTUFTSyhGTERfUFJFX1VMVFJBX1RIX0xPV19PRlNfMik7DQo+ID4g KyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIHJlZ192YWwsIGNtZHFfYmFzZSwg YmFzZSwgcmVnLA0KPiA+IHJlZ19tYXNrKTsNCj4gPiArDQo+ID4gKyAgICAgICByZWcgPSBNRFBf UkRNQV9ETUFCVUZfQ09OXzM7DQo+ID4gKyAgICAgICByZWdfdmFsID0gUkVHX0ZMRF9WQUwoRkxE X0VYVFJEX0FSQl9NQVhfMywgMCkgfA0KPiA+ICsgICAgICAgICAgICAgICAgIFJFR19GTERfVkFM KEZMRF9CVUZfUkVTVl9TSVpFXzMsIDApIHwNCj4gPiArICAgICAgICAgICAgICAgICBSRUdfRkxE X1ZBTChGTERfSVNTVUVfUkVRX1RIXzMsIDApOw0KPiA+ICsgICAgICAgcmVnX21hc2sgPSBSRUdf RkxEX01BU0soRkxEX0VYVFJEX0FSQl9NQVhfMykgfA0KPiA+ICsgICAgICAgICAgICAgICAgICBS RUdfRkxEX01BU0soRkxEX0JVRl9SRVNWX1NJWkVfMykgfA0KPiA+ICsgICAgICAgICAgICAgICAg ICBSRUdfRkxEX01BU0soRkxEX0lTU1VFX1JFUV9USF8zKTsNCj4gPiArICAgICAgIG10a19kZHBf d3JpdGVfbWFzayhjbWRxX3BrdCwgcmVnX3ZhbCwgY21kcV9iYXNlLCBiYXNlLCByZWcsDQo+ID4g cmVnX21hc2spOw0KPiA+ICsNCj4gPiArICAgICAgIHJlZyA9IE1EUF9SRE1BX1VUUkFfSF9DT05f MzsNCj4gPiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxEX1ZBTChGTERfUFJFX1VMVFJBX1RIX0hJ R0hfT0ZTXzMsIDApOw0KPiA+ICsgICAgICAgcmVnX21hc2sgPSBSRUdfRkxEX01BU0soRkxEX1BS RV9VTFRSQV9USF9ISUdIX09GU18zKTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhj bWRxX3BrdCwgcmVnX3ZhbCwgY21kcV9iYXNlLCBiYXNlLCByZWcsDQo+ID4gcmVnX21hc2spOw0K PiA+ICsNCj4gPiArICAgICAgIHJlZyA9IE1EUF9SRE1BX1VMVFJBX1RIX0xPV19DT05fMzsNCj4g PiArICAgICAgIHJlZ192YWwgPSBSRUdfRkxEX1ZBTChGTERfUFJFX1VMVFJBX1RIX0xPV19PRlNf MywgMCk7DQo+ID4gKyAgICAgICByZWdfbWFzayA9IFJFR19GTERfTUFTSyhGTERfUFJFX1VMVFJB X1RIX0xPV19PRlNfMyk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3Qs IHJlZ192YWwsIGNtZHFfYmFzZSwgYmFzZSwgcmVnLA0KPiA+IHJlZ19tYXNrKTsNCj4gPiArfQ0K PiA+ICsNCj4gPiArdm9pZCBtdGtfbWRwX3JkbWFfY29uZmlnKHZvaWQgX19pb21lbSAqYmFzZSwg c3RydWN0DQo+ID4gbXRrX21kcF9yZG1hX2NmZyAqY2ZnLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0LA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgY21kcV9jbGllbnRfcmVnICpjbWRxX2Jhc2UpDQo+ID4gK3sNCj4gPiAr ICAgICAgIHVuc2lnbmVkIGludCBzcmNfcGl0Y2hfdXYgPSByZG1hX2dldF91dl9waXRjaChjZmct PmZtdCwNCj4gPiBjZmctPnNvdXJjZV93aWR0aCk7DQo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQg c3JjX3BpdGNoX3kgPSByZG1hX2dldF95X3BpdGNoKGNmZy0+Zm10LCBjZmctDQo+ID4gPnNvdXJj ZV93aWR0aCk7DQo+IA0KPiBUaGlzIGlzIGdvdCBmcm9tIG10a19wbGFuZV9hdG9taWNfdXBkYXRl KCkuDQo+IA0KT0ssSSB3aWxsIG1vZGlmeSBpdC4NCg0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50 IGhfc2hpZnRfdXYgPSByZG1hX2dldF9ob3Jpem9udGFsX3NoaWZ0X3V2KGNmZy0NCj4gPiA+Zm10 KTsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCB2X3NoaWZ0X3V2ID0gcmRtYV9nZXRfdmVydGlj YWxfc2hpZnRfdXYoY2ZnLQ0KPiA+ID5mbXQpOw0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IGJw cF91diA9IHJkbWFfZ2V0X2JpdHNfcGVyX3BpeGVsX3V2KGNmZy0+Zm10KTsNCj4gPiArICAgICAg IHVuc2lnbmVkIGludCBibG9ja19oID0gcmRtYV9nZXRfYmxvY2tfaChjZmctPmJsb2NrX3NpemUp Ow0KPiANCj4gYmxvY2tfaCA9IDA7DQpPSywgSSB3aWxsIG1vZGlmeSBpdC4NCj4gDQo+ID4gKyAg ICAgICB1bnNpZ25lZCBpbnQgYnBwX3kgPSByZG1hX2dldF9iaXRzX3Blcl9waXhlbF95KGNmZy0+ Zm10KTsNCj4gDQo+IGRybV9mb3JtYXRfaW5mbygpLg0KT0ssIEkgd2lsbCBtb2RpZnkgaXQuDQo+ IA0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IHlfc3RhcnRfbGluZSA9IDA7DQo+ID4gKyAgICAg ICB1bnNpZ25lZCBpbnQgb2Zmc2V0X3kgPSAwOw0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IG9m ZnNldF91ID0gMDsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCBvZmZzZXRfdiA9IDA7DQo+ID4g Kw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LA0KPiA+IFJFR19GTERf VkFMKEZMRF9VTklGT1JNX0NPTkZJRywgMSksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgY21kcV9iYXNlLCBiYXNlLCBNRFBfUkRNQV9TUkNfQ09OLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfVU5JRk9STV9DT05GSUcpKTsNCj4gPiArICAg ICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgcmRtYV9mbXRfY29udmVydChjZmctPmZt dCksDQo+ID4gY21kcV9iYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2Us IE1EUF9SRE1BX1NSQ19DT04sDQo+ID4gUkVHX0ZMRF9NQVNLKEZMRF9TV0FQKSB8DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9TUkNfRk9STUFUKSB8DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9CSVRfTlVNQkVS KSk7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKCFjZmctPmNzY19lbmFibGUgJiYgd2l0aF9hbHBo YShjZmctPmZtdCkpDQo+ID4gKyAgICAgICAgICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRx X3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChGTERfT1VUUFVUX0FSR0IsIDEpLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kcV9iYXNlLCBiYXNlLA0KPiA+IE1EUF9SRE1B X1NSQ19DT04sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxE X01BU0soRkxEX09VVFBVVF9BUkdCKSk7DQo+ID4gKyAgICAgICBlbHNlDQo+ID4gKyAgICAgICAg ICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChGTERf T1VUUFVUX0FSR0IsIDApLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y21kcV9iYXNlLCBiYXNlLA0KPiA+IE1EUF9SRE1BX1NSQ19DT04sDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX09VVFBVVF9BUkdCKSk7DQo+ ID4gKw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCBjZmctPmFkZHIw LCBjbWRxX2Jhc2UsIGJhc2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTURQX1JE TUFfU1JDX0JBU0VfMCwNCj4gPiBSRUdfRkxEX01BU0soRkxEX1NSQ19CQVNFXzApKTsNCj4gPiAr ICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgY2ZnLT5hZGRyMSwgY21kcV9iYXNl LCBiYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIE1EUF9SRE1BX1NSQ19CQVNF XzEsDQo+ID4gUkVHX0ZMRF9NQVNLKEZMRF9TUkNfQkFTRV8xKSk7DQo+ID4gKyAgICAgICBtdGtf ZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIGNmZy0+YWRkcjIsIGNtZHFfYmFzZSwgYmFzZSwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICBNRFBfUkRNQV9TUkNfQkFTRV8yLA0KPiA+IFJF R19GTERfTUFTSyhGTERfU1JDX0JBU0VfMikpOw0KPiA+ICsNCj4gPiArICAgICAgIG10a19kZHBf d3JpdGVfbWFzayhjbWRxX3BrdCwgc3JjX3BpdGNoX3ksIGNtZHFfYmFzZSwgYmFzZSwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICBNRFBfUkRNQV9NRl9CS0dEX1NJWkVfSU5fQllURSwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX01GX0JLR0Rf V0IpKTsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgc3JjX3BpdGNo X3V2LCBjbWRxX2Jhc2UsIGJhc2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTURQ X1JETUFfU0ZfQktHRF9TSVpFX0lOX0JZVEUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgUkVHX0ZMRF9NQVNLKEZMRF9TRl9CS0dEX1dCKSk7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYg KGNmZy0+ZW5jb2RlX3R5cGUgPT0gUkRNQV9FTkNPREVfQUZCQykgew0KPiANCj4gTmV2ZXIgYmUg aGVyZSwgc28gcmVtb3ZlLg0KPiANCk9LLCBJIHdpbGwgcmVtb3ZlIGl0Lg0KDQo+ID4gKyAgICAg ICAgICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChG TERfTUZfQktHRF9XUCwgY2ZnLT5zb3VyY2Vfd2lkdGgpLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY21kcV9iYXNlLCBiYXNlLA0KPiA+IE1EUF9SRE1BX01GX0JLR0Rf U0laRV9JTl9QSVhFTCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTERfTUFTSyhGTERfTUZfQktHRF9XUCkpOw0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRw X3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwoRkxEX0JLR0RfSFAsIGNmZy0+ aGVpZ2h0KSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFz ZSwgYmFzZSwNCj4gPiBNRFBfUkRNQV9NRl9CS0dEX0hfU0laRV9JTl9QSVhFTCwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfQktHRF9IUCkp Ow0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4g UkVHX0ZMRF9WQUwoRkxEX0FGQkNfWVVWX1RSQU5TRk9STSwgMSksDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbWRxX2Jhc2UsIGJhc2UsDQo+ID4gTURQX1JETUFfQ09N UF9DT04sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01B U0soRkxEX0FGQkNfWVVWX1RSQU5TRg0KPiA+IE9STSkpOw0KPiA+ICsgICAgICAgICAgICAgICBt dGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwoRkxEX1VGQkRDX0VO LCAxKSwgY21kcV9iYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YmFzZSwgTURQX1JETUFfQ09NUF9DT04sDQo+ID4gUkVHX0ZMRF9NQVNLKEZMRF9VRkJEQ19FTikp Ow0KPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4g UkVHX0ZMRF9WQUwoRkxEX0FGQkNfRU4sIDEpLCBjbWRxX2Jhc2UsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBiYXNlLCBNRFBfUkRNQV9DT01QX0NPTiwNCj4gPiBSRUdf RkxEX01BU0soRkxEX0FGQkNfRU4pKTsNCj4gPiArICAgICAgIH0gZWxzZSB7DQo+ID4gKyAgICAg ICAgICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChG TERfQUZCQ19ZVVZfVFJBTlNGT1JNLCAwKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwNCj4gPiBNRFBfUkRNQV9DT01QX0NPTiwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfQUZCQ19Z VVZfVFJBTlNGDQo+ID4gT1JNKSk7DQo+ID4gKyAgICAgICAgICAgICAgIG10a19kZHBfd3JpdGVf bWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChGTERfVUZCRENfRU4sIDApLCBjbWRxX2Jh c2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLCBNRFBfUkRN QV9DT01QX0NPTiwNCj4gPiBSRUdfRkxEX01BU0soRkxEX1VGQkRDX0VOKSk7DQo+ID4gKyAgICAg ICAgICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChG TERfQUZCQ19FTiwgMCksIGNtZHFfYmFzZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJhc2UsIE1EUF9SRE1BX0NPTVBfQ09OLA0KPiA+IFJFR19GTERfTUFTSyhGTERf QUZCQ19FTikpOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIG10a19kZHBfd3Jp dGVfbWFzayhjbWRxX3BrdCwgUkVHX0ZMRF9WQUwoRkxEX09VVFBVVF8xMEIsDQo+ID4gMSksIGNt ZHFfYmFzZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLCBNRFBfUkRNQV9D T04sDQo+ID4gUkVHX0ZMRF9NQVNLKEZMRF9PVVRQVVRfMTBCKSk7DQo+ID4gKyAgICAgICBtdGtf ZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9TSU1QTEVfTU9ERSwNCj4g PiAxKSwgY21kcV9iYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UsIE1E UF9SRE1BX0NPTiwNCj4gPiBSRUdfRkxEX01BU0soRkxEX1NJTVBMRV9NT0RFKSk7DQo+ID4gKyAg ICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9UUkFOU19F TiwgY2ZnLQ0KPiA+ID5jc2NfZW5hYmxlKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICBjbWRxX2Jhc2UsIGJhc2UsIE1EUF9SRE1BX1RSQU5TRk9STV8wLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfVFJBTlNfRU4pKTsNCj4gPiArICAgICAg IG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwNCj4gPiBSRUdfRkxEX1ZBTChGTERfSU5UX01B VFJJWF9TRUwsIGNmZy0+cHJvZmlsZSksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg Y21kcV9iYXNlLCBiYXNlLCBNRFBfUkRNQV9UUkFOU0ZPUk1fMCwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX0lOVF9NQVRSSVhfU0VMKSk7DQo+ID4gKw0K PiA+ICsgICAgICAgaWYgKGNmZy0+YmxvY2tfc2l6ZSA9PSBSRE1BX0JMT0NLX05PTkUpIHsNCj4g PiArICAgICAgICAgICAgICAgeV9zdGFydF9saW5lID0gY2ZnLT55X3RvcDsNCj4gPiArDQo+ID4g KyAgICAgICAgICAgICAgIG9mZnNldF95ICA9IChjZmctPnhfbGVmdCAqIGJwcF95ID4+IDMpICsN Cj4gPiB5X3N0YXJ0X2xpbmUgKiBzcmNfcGl0Y2hfeTsNCj4gPiArICAgICAgICAgICAgICAgb2Zm c2V0X3UgID0gKChjZmctPnhfbGVmdCA+PiBoX3NoaWZ0X3V2KSAqIGJwcF91dg0KPiA+ID4+IDMp ICsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgKHlfc3RhcnRfbGluZSA+PiB2X3No aWZ0X3V2KSAqDQo+ID4gc3JjX3BpdGNoX3V2Ow0KPiA+ICsgICAgICAgICAgICAgICBvZmZzZXRf diAgPSAoKGNmZy0+eF9sZWZ0ID4+IGhfc2hpZnRfdXYpICogYnBwX3V2DQo+ID4gPj4gMykgKw0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAoeV9zdGFydF9saW5lID4+IHZfc2hpZnRf dXYpICoNCj4gPiBzcmNfcGl0Y2hfdXY7DQo+ID4gKyAgICAgICB9IGVsc2Ugew0KPiANCj4gTmV2 ZXIgYmUgaGVyZSwgc28gcmVtb3ZlLg0KDQpPSywgSSB3aWxsIHJlbW92ZSBpdC4NCj4gDQo+ID4g KyAgICAgICAgICAgICAgIG9mZnNldF95ID0gKGNmZy0+eF9sZWZ0ICogYmxvY2tfaCAqIGJwcF95 ID4+IDMpICsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAoY2ZnLT55X3RvcCkgKiBz cmNfcGl0Y2hfeTsNCj4gPiArICAgICAgICAgICAgICAgb2Zmc2V0X3UgPSAoKGNmZy0+eF9sZWZ0 ID4+IGhfc2hpZnRfdXYpICogKGJsb2NrX2gNCj4gPiA+PiB2X3NoaWZ0X3V2KSAqDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgYnBwX3V2ID4+IDMpICsgKGNmZy0+eV90b3ApICoNCj4g PiBzcmNfcGl0Y2hfdXY7DQo+ID4gKyAgICAgICAgICAgICAgIG9mZnNldF92ID0gKChjZmctPnhf bGVmdCA+PiBoX3NoaWZ0X3V2KSAqIChibG9ja19oDQo+ID4gPj4gdl9zaGlmdF91dikgKg0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGJwcF91diA+PiAzKSArIChjZmctPnlfdG9wKSAq DQo+ID4gc3JjX3BpdGNoX3V2Ow0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIGlm IChjZmctPmVuY29kZV90eXBlID09IFJETUFfRU5DT0RFX0FGQkMpIHsNCj4gDQo+IE5ldmVyIGJl IGhlcmUsIHNvIHJlbW92ZS4NCg0KT0ssIEkgd2lsbCByZW1vdmUgaXQuDQo+IA0KPiA+ICsgICAg ICAgICAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwo RkxEX1NSQ19PRkZTRVRfV1AsIGNmZy0+eF9sZWZ0KSwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwNCj4gPiBNRFBfUkRNQV9TUkNfT0ZGU0VU X1dQLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNL KEZMRF9TUkNfT0ZGU0VUX1dQKSkNCj4gPiA7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBt dGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwoRkxEX1NSQ19PRkZT RVRfSFAsIGNmZy0+eV90b3ApLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY21kcV9iYXNlLCBiYXNlLA0KPiA+IE1EUF9SRE1BX1NSQ19PRkZTRVRfSFAsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRkxEX1NSQ19PRkZT RVRfSFApKQ0KPiA+IDsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICBtdGtfZGRw X3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9TUkNfT0ZGU0VUXzAsDQo+ID4g b2Zmc2V0X3kpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFz ZSwgTURQX1JETUFfU1JDX09GRlNFVF8wLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg IFJFR19GTERfTUFTSyhGTERfU1JDX09GRlNFVF8wKSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dy aXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9TUkNfT0ZGU0VUXzEsDQo+ID4gb2Zm c2V0X3UpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwg TURQX1JETUFfU1JDX09GRlNFVF8xLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTERfTUFTSyhGTERfU1JDX09GRlNFVF8xKSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRl X21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9TUkNfT0ZGU0VUXzIsDQo+ID4gb2Zmc2V0 X3YpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwgTURQ X1JETUFfU1JDX09GRlNFVF8yLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19G TERfTUFTSyhGTERfU1JDX09GRlNFVF8yKSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21h c2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9NRl9TUkNfVywgY2ZnLQ0KPiA+ID53aWR0aCks DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgY21kcV9iYXNlLCBiYXNlLCBNRFBfUkRN QV9NRl9TUkNfU0laRSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01B U0soRkxEX01GX1NSQ19XKSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9w a3QsIFJFR19GTERfVkFMKEZMRF9NRl9TUkNfSCwgY2ZnLQ0KPiA+ID5oZWlnaHQpLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwgTURQX1JETUFfTUZfU1JD X1NJWkUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9N Rl9TUkNfSCkpOw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCBSRUdf RkxEX1ZBTChGTERfTUZfQ0xJUF9XLA0KPiA+IGNmZy0+d2lkdGgpLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwgTURQX1JETUFfTUZfQ0xJUF9TSVpFLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfTUZfQ0xJUF9X KSk7DQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFM KEZMRF9NRl9DTElQX0gsDQo+ID4gY2ZnLT5oZWlnaHQpLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgIGNtZHFfYmFzZSwgYmFzZSwgTURQX1JETUFfTUZfQ0xJUF9TSVpFLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhGTERfTUZfQ0xJUF9IKSk7DQo+ ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9N Rl9PRkZTRVRfV18xLA0KPiA+IDApLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNt ZHFfYmFzZSwgYmFzZSwgTURQX1JETUFfTUZfT0ZGU0VUXzEsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKEZMRF9NRl9PRkZTRVRfV18xKSk7DQo+ID4gKyAgICAg ICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIFJFR19GTERfVkFMKEZMRF9NRl9PRkZTRVRf SF8xLA0KPiA+IDApLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfYmFzZSwg YmFzZSwgTURQX1JETUFfTUZfT0ZGU0VUXzEsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgUkVHX0ZMRF9NQVNLKEZMRF9NRl9PRkZTRVRfSF8xKSk7DQo+ID4gKyAgICAgICBtdGtfZGRw X3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwoRkxEX0xJTkVfVEhSRVNIT0xE LCBjZmctPmhlaWdodCksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgY21kcV9iYXNl LCBiYXNlLCBNRFBfUkRNQV9UQVJHRVRfTElORSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICBSRUdfRkxEX01BU0soRkxEX0xJTkVfVEhSRVNIT0xEKSk7DQo+ID4gKyAgICAgICBtdGtf ZGRwX3dyaXRlX21hc2soY21kcV9wa3QsDQo+ID4gUkVHX0ZMRF9WQUwoRkxEX1RBUkdFVF9MSU5F X0VOLCAxKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBjbWRxX2Jhc2UsIGJhc2Us IE1EUF9SRE1BX1RBUkdFVF9MSU5FLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTERfTUFTSyhGTERfVEFSR0VUX0xJTkVfRU4pKTsNCj4gPiArfQ0KPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX21kcF9yZG1hLmgNCj4gPiBiL2RyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JkbWEuaA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi5jMTZiZmI3MTY2MTANCj4gPiAtLS0gL2Rldi9udWxs DQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmRtYS5oDQo+ID4g QEAgLTAsMCArMSwxMDkgQEANCj4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjAtb25seSAqLw0KPiA+ICsvKg0KPiA+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjEgTWVkaWFUZWsg SW5jLg0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNpZm5kZWYgX19NVEtfTURQX1JETUFfSF9fDQo+ ID4gKyNkZWZpbmUgX19NVEtfTURQX1JETUFfSF9fDQo+ID4gKw0KPiA+ICtlbnVtIHJkbWFfZm9y bWF0IHsNCj4gPiArICAgICAgIFJETUFfSU5QVVRfRk9STUFUX1JHQjU2NSA9IDAsDQo+ID4gKyAg ICAgICBSRE1BX0lOUFVUX0ZPUk1BVF9SR0I4ODggPSAxLA0KPiA+ICsgICAgICAgUkRNQV9JTlBV VF9GT1JNQVRfUkdCQTg4ODggPSAyLA0KPiA+ICsgICAgICAgUkRNQV9JTlBVVF9GT1JNQVRfQVJH Qjg4ODggPSAzLA0KPiA+ICsgICAgICAgUkRNQV9JTlBVVF9GT1JNQVRfVVlWWSA9IDQsDQo+ID4g KyAgICAgICBSRE1BX0lOUFVUX0ZPUk1BVF9ZVVkyID0gNSwNCj4gPiArICAgICAgIFJETUFfSU5Q VVRfRk9STUFUX1k4ID0gNywNCj4gPiArICAgICAgIFJETUFfSU5QVVRfRk9STUFUX1lWMTIgPSA4 LA0KPiA+ICsgICAgICAgUkRNQV9JTlBVVF9GT1JNQVRfVVlWWV8zUEwgPSA5LA0KPiA+ICsgICAg ICAgUkRNQV9JTlBVVF9GT1JNQVRfTlYxMiA9IDEyLA0KPiA+ICsgICAgICAgUkRNQV9JTlBVVF9G T1JNQVRfVVlWWV8yUEwgPSAxMywNCj4gPiArICAgICAgIFJETUFfSU5QVVRfRk9STUFUX1k0MTAg PSAxNA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArZW51bSByZG1hX3Byb2ZpbGUgew0KPiA+ICsgICAg ICAgUkRNQV9DU0NfUkdCX1RPX0pQRUcgPSAwLA0KPiA+ICsgICAgICAgUkRNQV9DU0NfUkdCX1RP X0ZVTEw3MDkgPSAxLA0KPiA+ICsgICAgICAgUkRNQV9DU0NfUkdCX1RPX0JUNjAxID0gMiwNCj4g PiArICAgICAgIFJETUFfQ1NDX1JHQl9UT19CVDcwOSA9IDMsDQo+ID4gKyAgICAgICBSRE1BX0NT Q19KUEVHX1RPX1JHQiA9IDQsDQo+ID4gKyAgICAgICBSRE1BX0NTQ19GVUxMNzA5X1RPX1JHQiA9 IDUsDQo+ID4gKyAgICAgICBSRE1BX0NTQ19CVDYwMV9UT19SR0IgPSA2LA0KPiA+ICsgICAgICAg UkRNQV9DU0NfQlQ3MDlfVE9fUkdCID0gNywNCj4gPiArICAgICAgIFJETUFfQ1NDX0pQRUdfVE9f QlQ2MDEgPSA4LA0KPiA+ICsgICAgICAgUkRNQV9DU0NfSlBFR19UT19CVDcwOSA9IDksDQo+ID4g KyAgICAgICBSRE1BX0NTQ19CVDYwMV9UT19KUEVHID0gMTAsDQo+ID4gKyAgICAgICBSRE1BX0NT Q19CVDcwOV9UT19CVDYwMSA9IDExLA0KPiA+ICsgICAgICAgUkRNQV9DU0NfQlQ2MDFfVE9fQlQ3 MDkgPSAxMg0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArZW51bSByZG1hX2VuY29kZSB7DQo+ID4gKyAg ICAgICBSRE1BX0VOQ09ERV9OT05FID0gMCwNCj4gPiArICAgICAgIFJETUFfRU5DT0RFX0FGQkMg PSAxLA0KPiA+ICsgICAgICAgUkRNQV9FTkNPREVfSFlGQkMgPSAyLA0KPiA+ICsgICAgICAgUkRN QV9FTkNPREVfVUZPX0RDUCA9IDMNCj4gPiArfTsNCj4gPiArDQo+ID4gK2VudW0gcmRtYV9ibG9j ayB7DQo+ID4gKyAgICAgICBSRE1BX0JMT0NLX05PTkUgPSAwLA0KPiA+ICsgICAgICAgUkRNQV9C TE9DS184eDggPSAxLA0KPiA+ICsgICAgICAgUkRNQV9CTE9DS184eDE2ID0gMiwNCj4gPiArICAg ICAgIFJETUFfQkxPQ0tfOHgzMiA9IDMsDQo+ID4gKyAgICAgICBSRE1BX0JMT0NLXzE2eDggPSA0 LA0KPiA+ICsgICAgICAgUkRNQV9CTE9DS18xNngxNiA9IDUsDQo+ID4gKyAgICAgICBSRE1BX0JM T0NLXzE2eDMyID0gNiwNCj4gPiArICAgICAgIFJETUFfQkxPQ0tfMzJ4OCA9IDcsDQo+ID4gKyAg ICAgICBSRE1BX0JMT0NLXzMyeDE2ID0gOCwNCj4gPiArICAgICAgIFJETUFfQkxPQ0tfMzJ4MzIg PSA5DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgbXRrX21kcF9yZG1hX2NmZyB7DQo+ID4g KyAgICAgICBlbnVtIHJkbWFfZW5jb2RlIGVuY29kZV90eXBlOw0KPiA+ICsgICAgICAgZW51bSBy ZG1hX2Jsb2NrIGJsb2NrX3NpemU7DQo+ID4gKyAgICAgICBlbnVtIHJkbWFfcHJvZmlsZSBwcm9m aWxlOw0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZV93aWR0aDsNCj4gPiArICAgICAg IHVuc2lnbmVkIGludCBhZGRyMDsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCBhZGRyMTsNCj4g PiArICAgICAgIHVuc2lnbmVkIGludCBhZGRyMjsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCB3 aWR0aDsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCBoZWlnaHQ7DQo+ID4gKyAgICAgICB1bnNp Z25lZCBpbnQgeF9sZWZ0Ow0KPiA+ICsgICAgICAgdW5zaWduZWQgaW50IHlfdG9wOw0KPiA+ICsg ICAgICAgYm9vbCBjc2NfZW5hYmxlOw0KPiA+ICsgICAgICAgaW50IGZtdDsNCj4gPiArfTsNCj4g PiArDQo+ID4gK3N0cnVjdCBtdGtfbWRwX3JkbWFfZmlmbyB7DQo+ID4gKyAgICAgICBpbnQgcmVh ZF9yZXF1ZXN0X3R5cGU7DQo+ID4gKyAgICAgICBpbnQgY29tbWFuZF9kaXY7DQo+ID4gKyAgICAg ICBpbnQgZXh0X3ByZXV0cmFfZW47DQo+ID4gKyAgICAgICBpbnQgdWx0cmFfZW47DQo+ID4gKyAg ICAgICBpbnQgcHJlX3VsdHJhX2VuOw0KPiA+ICsgICAgICAgaW50IGV4dF91bHRyYV9lbjsNCj4g PiArICAgICAgIGludCBleHRyZF9hcmJfbWF4XzA7DQo+ID4gKyAgICAgICBpbnQgYnVmX3Jlc3Zf c2l6ZV8wOw0KPiA+ICsgICAgICAgaW50IGlzc3VlX3JlcV90aF8wOw0KPiA+ICsgICAgICAgaW50 IHVsdHJhX2hfY29uXzA7DQo+ID4gKyAgICAgICBpbnQgdWx0cmFfbF9jb25fMDsNCj4gPiArfTsN Cj4gDQo+IE1vdmUgcmRtYSBpbnRlcm5hbCBkZWZpbml0aW9uIGluIC5jIGZpbGUuDQo+IA0KT0ss IEkgd2lsbCBtb3ZlIGl0IHRvIGludGVybmFsIC5jIGZpbGUuDQo+ID4gKw0KPiA+ICt2b2lkIG10 a19tZHBfcmRtYV9zdGFydCh2b2lkIF9faW9tZW0gKmJhc2UsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgY21kcV9jbGllbnRfcmVnICpjbWRxX2Jhc2UpOw0KPiA+ICsNCj4gPiAr dm9pZCBtdGtfbWRwX3JkbWFfc3RvcCh2b2lkIF9faW9tZW0gKmJhc2UsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0LA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGNtZHFfY2xpZW50X3JlZyAqY21kcV9iYXNlKTsNCj4gPiArDQo+ ID4gK3ZvaWQgbXRrX21kcF9yZG1hX2ZpZm9fY29uZmlnKHZvaWQgX19pb21lbSAqYmFzZSwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0 LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjbWRxX2NsaWVudF9y ZWcgKmNtZHFfYmFzZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgbXRrX21kcF9yZG1hX2ZpZm8NCj4gPiAqZmlmbyk7DQo+ID4gKw0KPiA+ICt2b2lkIG10 a19tZHBfcmRtYV9jb25maWcodm9pZCBfX2lvbWVtICpiYXNlLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgbXRrX21kcF9yZG1hX2NmZyAqY2ZnLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0LA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgY21kcV9jbGllbnRfcmVnICpjbWRxX2Jhc2UpOw0KPiANCj4g TW92ZSB0aGVzZSBwcm90b3R5cGUgdG8gbXRrX2Rpc3BfZHJ2LmgNCj4gDQpPSy4NCg0KPiA+ICsN Cj4gPiArI2VuZGlmIC8vIF9fTVRLX01EUF9SRE1BX0hfXw0KPiA+ICsNCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmVnX3JkbWEuaA0KPiA+IGIvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmVnX3JkbWEuaA0KPiA+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi4wOGFiZDlmMzliZDgNCj4gPiAtLS0g L2Rldi9udWxsDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmVn X3JkbWEuaA0KPiA+IEBAIC0wLDAgKzEsMTYwIEBADQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8NCj4gPiArLyoNCj4gPiArICogQ29weXJpZ2h0IChjKSAy MDIxIE1lZGlhVGVrIEluYy4NCj4gPiArICovDQo+ID4gKw0KPiA+ICsjaWZuZGVmIF9fTURQX1JE TUFfUkVHU19IX18NCj4gPiArI2RlZmluZSBfX01EUF9SRE1BX1JFR1NfSF9fDQo+ID4gKw0KPiA+ ICsjZGVmaW5lIFJFR19GTEQod2lkdGgsIHNoaWZ0KSBcDQo+ID4gKyAgICAgICAoKHVuc2lnbmVk IGludCkoKCgod2lkdGgpICYgMHhmZikgPDwgMTYpIHwgKChzaGlmdCkgJg0KPiA+IDB4ZmYpKSkN Cj4gPiArDQo+ID4gKyNkZWZpbmUgUkVHX0ZMRF9XSURUSChmaWVsZCkgKCh1bnNpZ25lZCBpbnQp KCgoZmllbGQpID4+IDE2KSAmDQo+ID4gMHhmZikpDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFJFR19G TERfU0hJRlQoZmllbGQpICgodW5zaWduZWQgaW50KSgoZmllbGQpICYgMHhmZikpDQo+ID4gKw0K PiA+ICsjZGVmaW5lIFJFR19GTERfTUFTSyhmaWVsZCkgXA0KPiA+ICsgICAgICAgKCh1bnNpZ25l ZCBpbnQpKCgxVUxMIDw8IFJFR19GTERfV0lEVEgoZmllbGQpKSAtIDEpIFwNCj4gPiArICAgICAg ICA8PCBSRUdfRkxEX1NISUZUKGZpZWxkKSkNCj4gPiArDQo+ID4gKyNkZWZpbmUgUkVHX0ZMRF9W QUwoZmllbGQsIHZhbCkgXA0KPiA+ICsgICAgICAgKCgodmFsKSA8PCBSRUdfRkxEX1NISUZUKGZp ZWxkKSkgJiBSRUdfRkxEX01BU0soZmllbGQpKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1E UF9SRE1BX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw MA0KPiA+ICsjZGVmaW5lIEZMRF9ST1RfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJFR19GTEQoMSwgMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9SRVNFVCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgNCj4gPiArDQo+ID4g KyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9JTlRFUlJVUFRfRU5BQkxFICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMTANCj4gPiArI2RlZmluZSBGTERfVU5ERVJSVU5fSU5UX0VOICAgICAg ICAgICAgICAgICAgICAgICBSRUdfRkxEKDEsIDIpDQo+ID4gKyNkZWZpbmUgRkxEX1JFR19VUERB VEVfSU5UX0VOICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCgxLCAxKQ0KPiA+ICsjZGVmaW5l IEZMRF9GUkFNRV9DT01QTEVURV9JTlRfRU4gICAgICAgICAgICAgICAgIFJFR19GTEQoMSwgMCkN Cj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9JTlRFUlJVUFRfU1RBVFVTICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTgNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBN RFBfUkRNQV9DT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MjANCj4gPiArI2RlZmluZSBGTERfT1VUUFVUXzEwQiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSRUdfRkxEKDEsIDUpDQo+ID4gKyNkZWZpbmUgRkxEX1NJTVBMRV9NT0RFICAgICAgICAgICAg ICAgICAgICAgICAgICAgUkVHX0ZMRCgxLCA0KQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1E UF9SRE1BX0dNQ0lGX0NPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAy OA0KPiA+ICsjZGVmaW5lIEZMRF9FWFRfVUxUUkFfRU4gICAgICAgICAgICAgICAgICAgICAgICAg IFJFR19GTEQoMSwgMTgpDQo+ID4gKyNkZWZpbmUgUFJFX1VMVFJBX0VOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUkVHX0ZMRCgyLCAxNikNCj4gPiArI2RlZmluZSBGTERfVUxUUkFfRU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDIsIDEyKQ0KPiA+ICsjZGVmaW5l IEZMRF9SRF9SRVFfVFlQRSAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoNCwgNCkN Cj4gPiArI2RlZmluZSBGTERfRVhUX1BSRVVMVFJBX0VOICAgICAgICAgICAgICAgICAgICAgICBS RUdfRkxEKDEsIDMpDQo+ID4gKyNkZWZpbmUgRkxEX0NPTU1BTkRfRElWICAgICAgICAgICAgICAg ICAgICAgICAgICAgUkVHX0ZMRCgxLCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9S RE1BX1NSQ19DT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMA0K PiA+ICsjZGVmaW5lIEZMRF9PVVRQVVRfQVJHQiAgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTEQoMSwgMjUpDQo+ID4gKyNkZWZpbmUgRkxEX0JJVF9OVU1CRVIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUkVHX0ZMRCgyLCAxOCkNCj4gPiArI2RlZmluZSBGTERfVU5JRk9STV9DT05G SUcgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDEsIDE3KQ0KPiA+ICsjZGVmaW5lIEZM RF9TV0FQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMSwgMTQpDQo+ ID4gKyNkZWZpbmUgRkxEX1NSQ19GT1JNQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVH X0ZMRCg0LCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX0NPTVBfQ09OICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzOA0KPiA+ICsjZGVmaW5lIEZM RF9BRkJDX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMSwgMjIpDQo+ ID4gKyNkZWZpbmUgRkxEX0FGQkNfWVVWX1RSQU5TRk9STSAgICAgICAgICAgICAgICAgICAgUkVH X0ZMRCgxLCAyMSkNCj4gPiArI2RlZmluZSBGTERfVUZCRENfRU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSRUdfRkxEKDEsIDEyKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9S RE1BX01GX0JLR0RfU0laRV9JTl9CWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MA0K PiA+ICsjZGVmaW5lIEZMRF9NRl9CS0dEX1dCICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTEQoMjMsIDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFfTUZfQktHRF9T SVpFX0lOX1BJWEVMICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDY4DQo+ID4gKyNkZWZpbmUg RkxEX01GX0JLR0RfV1AgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCgyMywgMCkN Cj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9NRl9TUkNfU0laRSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzANCj4gPiArI2RlZmluZSBGTERfTUZfU1JDX0gg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDE1LCAxNikNCj4gPiArI2RlZmlu ZSBGTERfTUZfU1JDX1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDE1LCAw KQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX01GX0NMSVBfU0laRSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3OA0KPiA+ICsjZGVmaW5lIEZMRF9NRl9DTElQ X0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMTUsIDE2KQ0KPiA+ICsjZGVm aW5lIEZMRF9NRl9DTElQX1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMTUs IDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFfTUZfT0ZGU0VUXzEgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwDQo+ID4gKyNkZWZpbmUgRkxEX01GX09G RlNFVF9IXzEgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCg2LCAxNikNCj4gPiArI2Rl ZmluZSBGTERfTUZfT0ZGU0VUX1dfMSAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDUs IDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFfU0ZfQktHRF9TSVpFX0lOX0JZ VEUgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkwDQo+ID4gKyNkZWZpbmUgRkxEX1NGX0JL R0RfV0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCgyMywgMCkNCj4gPiArDQo+ ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9NRl9CS0dEX0hfU0laRV9JTl9QSVhFTCAgICAgICAg ICAgICAgICAgICAgICAgMHgwOTgNCj4gPiArI2RlZmluZSBGTERfQktHRF9IUCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDIzLCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0K PiA+IE1EUF9SRE1BX1RBUkdFVF9MSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDBhMA0KPiA+ICsjZGVmaW5lIEZMRF9MSU5FX1RIUkVTSE9MRCAgICAgICAgICAgICAgICAg ICAgICAgIFJFR19GTEQoMTUsIDE3KQ0KPiA+ICsjZGVmaW5lIEZMRF9UQVJHRVRfTElORV9FTiAg ICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMSwgMTYpDQo+ID4gKw0KPiA+ICsjZGVmaW5l DQo+ID4gTURQX1JETUFfU1JDX09GRlNFVF8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MTE4DQo+ID4gKyNkZWZpbmUgRkxEX1NSQ19PRkZTRVRfMCAgICAgICAgICAgICAgICAg ICAgICAgICAgUkVHX0ZMRCgzMiwgMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRN QV9TUkNfT0ZGU0VUXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMjANCj4g PiArI2RlZmluZSBGTERfU1JDX09GRlNFVF8xICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdf RkxEKDMyLCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX1NSQ19PRkZTRVRf MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyOA0KPiA+ICsjZGVmaW5lIEZM RF9TUkNfT0ZGU0VUXzIgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMzIsIDApDQo+ ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFfU1JDX09GRlNFVF9XUCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MTQ4DQo+ID4gKyNkZWZpbmUgRkxEX1NSQ19PRkZTRVRf V1AgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCgzMiwgMCkNCj4gPiArDQo+ID4gKyNk ZWZpbmUNCj4gPiBNRFBfUkRNQV9TUkNfT0ZGU0VUX0hQICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgxNTANCj4gPiArI2RlZmluZSBGTERfU1JDX09GRlNFVF9IUCAgICAgICAgICAg ICAgICAgICAgICAgICBSRUdfRkxEKDMyLCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1E UF9SRE1BX1RSQU5TRk9STV8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIw MA0KPiA+ICsjZGVmaW5lIEZMRF9JTlRfTUFUUklYX1NFTCAgICAgICAgICAgICAgICAgICAgICAg IFJFR19GTEQoNSwgMjMpDQo+ID4gKyNkZWZpbmUgRkxEX1RSQU5TX0VOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUkVHX0ZMRCgxLCAxNikNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBN RFBfUkRNQV9ETUFfQ09OXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgy NDANCj4gPiArI2RlZmluZSBGTERfRVhUUkRfQVJCX01BWCAgICAgICAgICAgICAgICAgICAgICAg ICBSRUdfRkxEKDQsIDI0KQ0KPiA+ICsjZGVmaW5lIEZMRF9CVUZfUkVTVl9TSVpFICAgICAgICAg ICAgICAgICAgICAgICAgIFJFR19GTEQoOCwgMTYpDQo+ID4gKyNkZWZpbmUgRkxEX0lTU1VFX1JF UV9USCAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCg4LCAwKQ0KPiA+ICsNCj4gPiAr I2RlZmluZQ0KPiA+IE1EUF9SRE1BX1VUUkFfSF9DT05fMCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDI0OA0KPiA+ICsjZGVmaW5lIEZMRF9QUkVVVFJBX0hfT0ZTXzAgICAgICAg ICAgICAgICAgICAgICAgIFJFR19GTEQoMTAsIDEwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+ IE1EUF9SRE1BX1VUUkFfTF9DT05fMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDI1MA0KPiA+ICsjZGVmaW5lIEZMRF9QUkVVVFJBX0xfT0ZTXzAgICAgICAgICAgICAgICAgICAg ICAgIFJFR19GTEQoMTAsIDEwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX0RN QUJVRl9DT05fMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1OA0KPiA+ICsj ZGVmaW5lIEZMRF9FWFRSRF9BUkJfTUFYXzEgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQo NCwgMjQpDQo+ID4gKyNkZWZpbmUgRkxEX0JVRl9SRVNWX1NJWkVfMSAgICAgICAgICAgICAgICAg ICAgICAgUkVHX0ZMRCg3LCAxNikNCj4gPiArI2RlZmluZSBGTERfSVNTVUVfUkVRX1RIXzEgICAg ICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDcsIDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ ID4gTURQX1JETUFfVUxUUkFfVEhfSElHSF9DT05fMSAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MjYwDQo+ID4gKyNkZWZpbmUgRkxEX1BSRV9VTFRSQV9USF9ISUdIX09GU18xICAgICAgICAg ICAgICAgUkVHX0ZMRCgxMCwgMTApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFf VUxUUkFfVEhfTE9XX0NPTl8xICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjY4DQo+ID4g KyNkZWZpbmUgRkxEX1BSRV9VTFRSQV9USF9MT1dfT0ZTXzEgICAgICAgICAgICAgICAgUkVHX0ZM RCgxMCwgMTApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ID4gTURQX1JETUFfRE1BQlVGX0NPTl8y ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjcwDQo+ID4gKyNkZWZpbmUgRkxE X0VYVFJEX0FSQl9NQVhfMiAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRCg0LCAyNCkNCj4g PiArI2RlZmluZSBGTERfQlVGX1JFU1ZfU0laRV8yICAgICAgICAgICAgICAgICAgICAgICBSRUdf RkxEKDYsIDE2KQ0KPiA+ICsjZGVmaW5lIEZMRF9JU1NVRV9SRVFfVEhfMiAgICAgICAgICAgICAg ICAgICAgICAgIFJFR19GTEQoNiwgMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRN QV9VVFJBX0hfQ09OXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNzgNCj4g PiArI2RlZmluZSBGTERfUFJFX1VMVFJBX1RIX0hJR0hfT0ZTXzIgICAgICAgICAgICAgICBSRUdf RkxEKDEwLCAxMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9VTFRSQV9USF9M T1dfQ09OXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyODANCj4gPiArI2RlZmluZSBG TERfUFJFX1VMVFJBX1RIX0xPV19PRlNfMiAgICAgICAgICAgICAgICBSRUdfRkxEKDEwLCAxMCkN Cj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9ETUFCVUZfQ09OXzMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgyODgNCj4gPiArI2RlZmluZSBGTERfRVhUUkRfQVJC X01BWF8zICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEKDQsIDI0KQ0KPiA+ICsjZGVmaW5l IEZMRF9CVUZfUkVTVl9TSVpFXzMgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTEQoNiwgMTYp DQo+ID4gKyNkZWZpbmUgRkxEX0lTU1VFX1JFUV9USF8zICAgICAgICAgICAgICAgICAgICAgICAg UkVHX0ZMRCg2LCAwKQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX1VUUkFfSF9D T05fMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5MA0KPiA+ICsjZGVmaW5l IEZMRF9QUkVfVUxUUkFfVEhfSElHSF9PRlNfMyAgICAgICAgICAgICAgIFJFR19GTEQoMTAsIDEw KQ0KPiA+ICsNCj4gPiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX1VMVFJBX1RIX0xPV19DT05fMyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDI5OA0KPiA+ICsjZGVmaW5lIEZMRF9QUkVfVUxU UkFfVEhfTE9XX09GU18zICAgICAgICAgICAgICAgIFJFR19GTEQoMTAsIDEwKQ0KPiA+ICsNCj4g PiArI2RlZmluZQ0KPiA+IE1EUF9SRE1BX1NSQ19CQVNFXzAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweGYwMA0KPiA+ICsjZGVmaW5lIEZMRF9TUkNfQkFTRV8wICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJFR19GTEQoMzIsIDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lDQo+ ID4gTURQX1JETUFfU1JDX0JBU0VfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4ZjA4DQo+ID4gKyNkZWZpbmUgRkxEX1NSQ19CQVNFXzEgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUkVHX0ZMRCgzMiwgMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUNCj4gPiBNRFBfUkRNQV9T UkNfQkFTRV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmMTANCj4gPiAr I2RlZmluZSBGTERfU1JDX0JBU0VfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxE KDMyLCAwKQ0KPiA+ICsNCj4gPiArI2VuZGlmIC8qIF9fTURQX1JETUFfUkVHU19IX18gKi8NCj4g DQo+IE9ubHkgb25lIGZpbGUgbmVlZCB0aGVzZSwgc28gbW92ZSByZWdpc3RlciBkZWZpbml0b24g aW4gLmMgZmlsZS4NCj4gDQpPSy4NCg0KPiBSZWdhcmRzLA0KPiBDaHVuLUt1YW5nLg0KPiANCj4g PiArDQo+ID4gLS0NCj4gPiAyLjE4LjANCj4gPiANCg==