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=-13.8 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,URIBL_BLOCKED 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 5604DC4361B for ; Thu, 10 Dec 2020 13:33:46 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 B9E002310C for ; Thu, 10 Dec 2020 13:33:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B9E002310C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=aosc.io Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Date: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=GVEIWVWZV2VHEdlnKXtBjqmlQWlQtDnQHQmN4Cs4Z6k=; b=hnpyYz0lAOzt1Mcluvz+P+I1J g8qJYrMy+wLyC3Rq0c0O0I0yIJ7PcpMdeFTdYlGvxk3knNm3GkQFoASkitxvnerEGi0lxuY9fGEFZ GwdGF5fXfp+hw+Wj1PiaitYZh4AiJ39IDwsuq6HkIm3KRvoqe11/2BVUNnXUvKU5KdHepkfDvg+Jq SsGSUntPzDhfheaahV3ugLs5We7K5mhOKlQqjk0CeBKQlMU+r3Ofe3empXWqbfP1DZdEBuj9QC0Su Wz4LIqGRxSdfz/xOZ1fSfpoqSyRKiYrwXEtKpNyY6ME4laQYy/h3Fm0cAoS6zkjBjtDXqnXYCPuZp EIp31Mn5w==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1knM3F-0000wg-Rj; Thu, 10 Dec 2020 13:32:09 +0000 Received: from relay3.mymailcheap.com ([217.182.119.155]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1knM3B-0000vm-3t for linux-arm-kernel@lists.infradead.org; Thu, 10 Dec 2020 13:32:08 +0000 Received: from filter2.mymailcheap.com (filter2.mymailcheap.com [91.134.140.82]) by relay3.mymailcheap.com (Postfix) with ESMTPS id 5A81B3F1CC; Thu, 10 Dec 2020 14:32:03 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by filter2.mymailcheap.com (Postfix) with ESMTP id 36B5A2A510; Thu, 10 Dec 2020 14:32:03 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mymailcheap.com; s=default; t=1607607123; bh=DtG4n9dnvnWuHN/tjqHxwVJFTZvoOorThdmW7A7NU4M=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=gcgU+WhgSvTchvXjOR3io6/zNMntSZfNDxdh+VkAG8LiQujLuFgYinImzna0faZH2 IcEAnZwOam2uDZhxB1TMs1U7p4YL2YdaxgihDuRmABxb6fz4n1DWe8KNpjaRSyO3la 3rtVqPwiGtrlW4ZnonN1V36BqG3km93CESTLXbeI= X-Virus-Scanned: Debian amavisd-new at filter2.mymailcheap.com Received: from filter2.mymailcheap.com ([127.0.0.1]) by localhost (filter2.mymailcheap.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BB7OSmwd-Lem; Thu, 10 Dec 2020 14:31:59 +0100 (CET) Received: from mail20.mymailcheap.com (mail20.mymailcheap.com [51.83.111.147]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by filter2.mymailcheap.com (Postfix) with ESMTPS; Thu, 10 Dec 2020 14:31:59 +0100 (CET) Received: from [213.133.102.83] (ml.mymailcheap.com [213.133.102.83]) by mail20.mymailcheap.com (Postfix) with ESMTP id A0F7041EFF; Thu, 10 Dec 2020 13:31:58 +0000 (UTC) Authentication-Results: mail20.mymailcheap.com; dkim=pass (1024-bit key; unprotected) header.d=aosc.io header.i=@aosc.io header.b="tHxtcJ0N"; dkim-atps=neutral AI-Spam-Status: Not processed Received: from ice-e5v2.lan (unknown [59.41.161.121]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail20.mymailcheap.com (Postfix) with ESMTPSA id A6874422FF; Thu, 10 Dec 2020 13:31:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=aosc.io; s=default; t=1607607105; bh=DtG4n9dnvnWuHN/tjqHxwVJFTZvoOorThdmW7A7NU4M=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=tHxtcJ0NrSRd1AcGAGsXz9WnZAypR8L/cBfGdnqljCk8AWJcuWgjcJNwp/oVMkZoX K1o6XzwhJ+fxL8iYpRFrn1xWbPksNaiYh+N6THs4p5I2cMdt+ke0w9mVZU/y4dqIJ+ 096I6xQCrigG6bB9JQ1OxZigxYPeBdmtlp+3sIo0= Message-ID: Subject: Re: [linux-sunxi] [PATCH 5/8] clk: sunxi-ng: Add support for the Allwinner H616 CCU From: Icenowy Zheng To: andre.przywara@arm.com, Maxime Ripard , Chen-Yu Tsai , Jernej Skrabec Date: Thu, 10 Dec 2020 21:31:35 +0800 In-Reply-To: <20201202135409.13683-6-andre.przywara@arm.com> References: <20201202135409.13683-1-andre.przywara@arm.com> <20201202135409.13683-6-andre.przywara@arm.com> User-Agent: Evolution 3.36.5 MIME-Version: 1.0 X-Rspamd-Server: mail20.mymailcheap.com X-Spamd-Result: default: False [1.40 / 20.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(0.00)[aosc.io:s=default]; MID_RHS_MATCH_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; TAGGED_RCPT(0.00)[dt]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[aosc.io]; R_SPF_SOFTFAIL(0.00)[~all]; RECEIVED_SPAMHAUS_PBL(0.00)[59.41.161.121:received]; TO_MATCH_ENVRCPT_SOME(0.00)[]; ML_SERVERS(-3.10)[213.133.102.83]; DKIM_TRACE(0.00)[aosc.io:+]; RCPT_COUNT_TWELVE(0.00)[15]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:213.133.96.0/19, country:DE]; RCVD_COUNT_TWO(0.00)[2]; SUSPICIOUS_RECIPS(1.50)[]; HFILTER_HELO_BAREIP(3.00)[213.133.102.83,1] X-Rspamd-Queue-Id: A0F7041EFF X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201210_083205_640089_DBD6B853 X-CRM114-Status: GOOD ( 29.14 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Philipp Zabel , Stephen Boyd , Linus Walleij , linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, linux-sunxi@googlegroups.com, Rob Herring , Icenowy Zheng , Yangtao Li , Michael Turquette , linux-arm-kernel@lists.infradead.org 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 5ZyoIDIwMjAtMTItMDLmmJ/mnJ/kuInnmoQgMTM6NTQgKzAwMDDvvIxBbmRyZSBQcnp5d2FyYeWG memBk++8mgo+IFdoaWxlIHRoZSBjbG9ja3MgYXJlIGZhaXJseSBzaW1pbGFyIHRvIHRoZSBINiwg bWFueSBkaWZmZXIgaW4gdGlueQo+IGRldGFpbHMsIHNvIGEgc2VwYXJhdGUgY2xvY2sgZHJpdmVy IHNlZW1zIGluZGljYXRlZC4KPiAKPiBEZXJpdmVkIGZyb20gdGhlIEg2IGNsb2NrIGRyaXZlciwg YW5kIGFkanVzdGVkIGFjY29yZGluZyB0byB0aGUKPiBtYW51YWwuCj4gCj4gU2lnbmVkLW9mZi1i eTogQW5kcmUgUHJ6eXdhcmEgPGFuZHJlLnByenl3YXJhQGFybS5jb20+Cj4gLS0tCj4gIGRyaXZl cnMvY2xrL3N1bnhpLW5nL0tjb25maWcgICAgICAgICAgICAgICAgfCAgICA3ICstCj4gIGRyaXZl cnMvY2xrL3N1bnhpLW5nL01ha2VmaWxlICAgICAgICAgICAgICAgfCAgICAxICsKPiAgZHJpdmVy cy9jbGsvc3VueGktbmcvY2N1LXN1bjUwaS1oNjE2LmMgICAgICB8IDExMzQKPiArKysrKysrKysr KysrKysrKysrCj4gIGRyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW41MGktaDYxNi5oICAgICAg fCAgIDU4ICsKPiAgaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9zdW41MGktaDYxNi1jY3UuaCB8 ICAxMTAgKysKPiAgaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9zdW41MGktaDYxNi1jY3UuaCB8 ICAgNjcgKysKPiAgNiBmaWxlcyBjaGFuZ2VkLCAxMzc2IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW41 MGktaDYxNi5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Ut c3VuNTBpLWg2MTYuaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kdC1iaW5kaW5ncy9j bG9jay9zdW41MGktaDYxNi1jY3UuaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kdC1i aW5kaW5ncy9yZXNldC9zdW41MGktaDYxNi1jY3UuaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2Nsay9zdW54aS1uZy9LY29uZmlnIGIvZHJpdmVycy9jbGsvc3VueGktCj4gbmcvS2NvbmZpZwo+ IGluZGV4IGNlNWY1ODQ3ZDVkMy4uY2Q0NmQ4ODUzODc2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Y2xrL3N1bnhpLW5nL0tjb25maWcKPiArKysgYi9kcml2ZXJzL2Nsay9zdW54aS1uZy9LY29uZmln Cj4gQEAgLTMyLDggKzMyLDEzIEBAIGNvbmZpZyBTVU41MElfSDZfQ0NVCj4gIAlkZWZhdWx0IEFS TTY0ICYmIEFSQ0hfU1VOWEkKPiAgCWRlcGVuZHMgb24gKEFSTTY0ICYmIEFSQ0hfU1VOWEkpIHx8 IENPTVBJTEVfVEVTVAo+ICAKPiArY29uZmlnIFNVTjUwSV9INjE2X0NDVQo+ICsJYm9vbCAiU3Vw cG9ydCBmb3IgdGhlIEFsbHdpbm5lciBINjE2IENDVSIKPiArCWRlZmF1bHQgQVJNNjQgJiYgQVJD SF9TVU5YSQo+ICsJZGVwZW5kcyBvbiAoQVJNNjQgJiYgQVJDSF9TVU5YSSkgfHwgQ09NUElMRV9U RVNUCj4gKwo+ICBjb25maWcgU1VONTBJX0g2X1JfQ0NVCj4gLQlib29sICJTdXBwb3J0IGZvciB0 aGUgQWxsd2lubmVyIEg2IFBSQ00gQ0NVIgo+ICsJYm9vbCAiU3VwcG9ydCBmb3IgdGhlIEFsbHdp bm5lciBINiBhbmQgSDYxNiBQUkNNIENDVSIKPiAgCWRlZmF1bHQgQVJNNjQgJiYgQVJDSF9TVU5Y SQo+ICAJZGVwZW5kcyBvbiAoQVJNNjQgJiYgQVJDSF9TVU5YSSkgfHwgQ09NUElMRV9URVNUCj4g IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdW54aS1uZy9NYWtlZmlsZSBiL2RyaXZlcnMv Y2xrL3N1bnhpLQo+IG5nL01ha2VmaWxlCj4gaW5kZXggM2ViNWNmZjQwZWFjLi45NmMzMjQzMDZk OTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9jbGsvc3VueGktbmcvTWFrZWZpbGUKPiArKysgYi9k cml2ZXJzL2Nsay9zdW54aS1uZy9NYWtlZmlsZQo+IEBAIC0yNiw2ICsyNiw3IEBAIG9iai0kKENP TkZJR19TVU41MElfQTY0X0NDVSkJKz0gY2N1LXN1bjUwaS0KPiBhNjQubwo+ICBvYmotJChDT05G SUdfU1VONTBJX0ExMDBfQ0NVKQkrPSBjY3Utc3VuNTBpLWExMDAubwo+ICBvYmotJChDT05GSUdf U1VONTBJX0ExMDBfUl9DQ1UpCSs9IGNjdS1zdW41MGktYTEwMC1yLm8KPiAgb2JqLSQoQ09ORklH X1NVTjUwSV9INl9DQ1UpCSs9IGNjdS1zdW41MGktaDYubwo+ICtvYmotJChDT05GSUdfU1VONTBJ X0g2MTZfQ0NVKQkrPSBjY3Utc3VuNTBpLWg2MTYubwo+ICBvYmotJChDT05GSUdfU1VONTBJX0g2 X1JfQ0NVKQkrPSBjY3Utc3VuNTBpLWg2LXIubwo+ICBvYmotJChDT05GSUdfU1VONElfQTEwX0ND VSkJKz0gY2N1LXN1bjRpLWExMC5vCj4gIG9iai0kKENPTkZJR19TVU41SV9DQ1UpCQkrPSBjY3Ut c3VuNWkubwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuNTBpLWg2 MTYuYwo+IGIvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjUwaS1oNjE2LmMKPiBuZXcgZmls ZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uM2ZiYjI1OGYwMzU0Cj4gLS0tIC9k ZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW41MGktaDYxNi5jCj4g QEAgLTAsMCArMSwxMTM0IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w Cj4gKy8qCj4gKyAqIENvcHlyaWdodCAoYykgMjAyMCBBcm0gTHRkLgo+ICsgKiBCYXNlZCBvbiB0 aGUgSDYgQ0NVIGRyaXZlciwgd2hpY2ggaXM6Cj4gKyAqICAgQ29weXJpZ2h0IChjKSAyMDE3IElj ZW5vd3kgWmhlbmcgPGljZW5vd3lAYW9zYy5pbz4KPiArICovCj4gKwo+ICsjaW5jbHVkZSA8bGlu dXgvY2xrLXByb3ZpZGVyLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9pby5oPgo+ICsjaW5jbHVkZSA8 bGludXgvb2ZfYWRkcmVzcy5oPgo+ICsjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+ Cj4gKwo+ICsjaW5jbHVkZSAiY2N1X2NvbW1vbi5oIgo+ICsjaW5jbHVkZSAiY2N1X3Jlc2V0Lmgi Cj4gKwo+ICsjaW5jbHVkZSAiY2N1X2Rpdi5oIgo+ICsjaW5jbHVkZSAiY2N1X2dhdGUuaCIKPiAr I2luY2x1ZGUgImNjdV9tcC5oIgo+ICsjaW5jbHVkZSAiY2N1X211bHQuaCIKPiArI2luY2x1ZGUg ImNjdV9uay5oIgo+ICsjaW5jbHVkZSAiY2N1X25rbS5oIgo+ICsjaW5jbHVkZSAiY2N1X25rbXAu aCIKPiArI2luY2x1ZGUgImNjdV9ubS5oIgo+ICsKPiArI2luY2x1ZGUgImNjdS1zdW41MGktaDYx Ni5oIgo+ICsKPiArLyoKPiArICogVGhlIENQVSBQTEwgaXMgYWN0dWFsbHkgTlAgY2xvY2ssIHdp dGggUCBiZWluZyAvMSwgLzIgb3IgLzQuCj4gSG93ZXZlcgo+ICsgKiBQIHNob3VsZCBvbmx5IGJl IHVzZWQgZm9yIG91dHB1dCBmcmVxdWVuY2llcyBsb3dlciB0aGFuIDI4OCBNSHouCj4gKyAqCj4g KyAqIEZvciBub3cgd2UgY2FuIGp1c3QgbW9kZWwgaXQgYXMgYSBtdWx0aXBsaWVyIGNsb2NrLCBh bmQgZm9yY2UgUAo+IHRvIC8xLgo+ICsgKgo+ICsgKiBUaGUgTSBmYWN0b3IgaXMgcHJlc2VudCBp biB0aGUgcmVnaXN0ZXIncyBkZXNjcmlwdGlvbiwgYnV0IG5vdCBpbgo+IHRoZQo+ICsgKiBmcmVx dWVuY3kgZm9ybXVsYSwgYW5kIGl0J3MgZG9jdW1lbnRlZCBhcyAiTSBpcyBvbmx5IHVzZWQgZm9y Cj4gYmFja2Rvb3IKPiArICogdGVzdGluZyIsIHNvIGl0J3Mgbm90IG1vZGVsbGVkIGFuZCB0aGVu IGZvcmNlIHRvIDAuCj4gKyAqLwo+ICsjZGVmaW5lIFNVTjUwSV9INjE2X1BMTF9DUFVYX1JFRwkw eDAwMAo+ICtzdGF0aWMgc3RydWN0IGNjdV9tdWx0IHBsbF9jcHV4X2NsayA9IHsKPiArCS5lbmFi bGUJCT0gQklUKDMxKSwKPiArCS5sb2NrCQk9IEJJVCgyOCksCj4gKwkubXVsdAkJPSBfU1VOWElf Q0NVX01VTFRfTUlOKDgsIDgsIDEyKSwKPiArCS5jb21tb24JCT0gewo+ICsJCS5yZWcJCT0gMHgw MDAsCj4gKwkJLmh3LmluaXQJPSBDTEtfSFdfSU5JVCgicGxsLWNwdXgiLCAib3NjMjRNIiwKPiAr CQkJCQkgICAgICAmY2N1X211bHRfb3BzLAo+ICsJCQkJCSAgICAgIENMS19TRVRfUkFURV9VTkdB VEUpLAo+ICsJfSwKPiArfTsKPiArCj4gKy8qIFNvbWUgUExMcyBhcmUgaW5wdXQgKiBOIC8gZGl2 MSAvIFAuIE1vZGVsIHRoZW0gYXMgTktNUCB3aXRoIG5vIEsKPiAqLwo+ICsjZGVmaW5lIFNVTjUw SV9INjE2X1BMTF9ERFIwX1JFRwkweDAxMAo+ICtzdGF0aWMgc3RydWN0IGNjdV9ua21wIHBsbF9k ZHIwX2NsayA9IHsKPiArCS5lbmFibGUJCT0gQklUKDMxKSwKPiArCS5sb2NrCQk9IEJJVCgyOCks Cj4gKwkubgkJPSBfU1VOWElfQ0NVX01VTFRfTUlOKDgsIDgsIDEyKSwKPiArCS5tCQk9IF9TVU5Y SV9DQ1VfRElWKDEsIDEpLCAvKiBpbnB1dCBkaXZpZGVyICovCj4gKwkucAkJPSBfU1VOWElfQ0NV X0RJVigwLCAxKSwgLyogb3V0cHV0IGRpdmlkZXIgKi8KPiArCS5jb21tb24JCT0gewo+ICsJCS5y ZWcJCT0gMHgwMTAsCj4gKwkJLmh3LmluaXQJPSBDTEtfSFdfSU5JVCgicGxsLWRkcjAiLCAib3Nj MjRNIiwKPiArCQkJCQkgICAgICAmY2N1X25rbXBfb3BzLAo+ICsJCQkJCSAgICAgIENMS19TRVRf UkFURV9VTkdBVEUpLAo+ICsJfSwKPiArfTsKPiArCj4gKyNkZWZpbmUgU1VONTBJX0g2MTZfUExM X0REUjFfUkVHCTB4MDE4Cj4gK3N0YXRpYyBzdHJ1Y3QgY2N1X25rbXAgcGxsX2RkcjFfY2xrID0g ewo+ICsJLmVuYWJsZQkJPSBCSVQoMzEpLAo+ICsJLmxvY2sJCT0gQklUKDI4KSwKPiArCS5uCQk9 IF9TVU5YSV9DQ1VfTVVMVF9NSU4oOCwgOCwgMTIpLAo+ICsJLm0JCT0gX1NVTlhJX0NDVV9ESVYo MSwgMSksIC8qIGlucHV0IGRpdmlkZXIgKi8KPiArCS5wCQk9IF9TVU5YSV9DQ1VfRElWKDAsIDEp LCAvKiBvdXRwdXQgZGl2aWRlciAqLwo+ICsJLmNvbW1vbgkJPSB7Cj4gKwkJLnJlZwkJPSAweDAx OCwKPiArCQkuaHcuaW5pdAk9IENMS19IV19JTklUKCJwbGwtZGRyMSIsICJvc2MyNE0iLAo+ICsJ CQkJCSAgICAgICZjY3VfbmttcF9vcHMsCj4gKwkJCQkJICAgICAgQ0xLX1NFVF9SQVRFX1VOR0FU RSksCj4gKwl9LAo+ICt9Owo+ICsKPiArI2RlZmluZSBTVU41MElfSDYxNl9QTExfUEVSSVBIMF9S RUcJMHgwMjAKPiArc3RhdGljIHN0cnVjdCBjY3VfbmttcCBwbGxfcGVyaXBoMF9jbGsgPSB7Cj4g KwkuZW5hYmxlCQk9IEJJVCgzMSksCj4gKwkubG9jawkJPSBCSVQoMjgpLAo+ICsJLm4JCT0gX1NV TlhJX0NDVV9NVUxUX01JTig4LCA4LCAxMiksCj4gKwkubQkJPSBfU1VOWElfQ0NVX0RJVigxLCAx KSwgLyogaW5wdXQgZGl2aWRlciAqLwo+ICsJLnAJCT0gX1NVTlhJX0NDVV9ESVYoMCwgMSksIC8q IG91dHB1dCBkaXZpZGVyICovCj4gKwkuZml4ZWRfcG9zdF9kaXYJPSA0LAoKSXNuJ3QgaXQgMiBo ZXJlPwoKVGhlIHVzZXIgbWFudWFsIHNheXM6CgpgYGAKUExMX1BFUkkwKDJYKSA9IDI0IE1IeipO L00wL00xClBMTF9QRVJJMCgxWCkgPSAyNCBNSHoqTi9NMC9NMS8yCmBgYAoKKwkuY29tbW9uCQk9 IHsKPiArCQkucmVnCQk9IDB4MDIwLAo+ICsJCS5mZWF0dXJlcwk9IENDVV9GRUFUVVJFX0ZJWEVE X1BPU1RESVYsCj4gKwkJLmh3LmluaXQJPSBDTEtfSFdfSU5JVCgicGxsLXBlcmlwaDAiLCAib3Nj MjRNIiwKPiArCQkJCQkgICAgICAmY2N1X25rbXBfb3BzLAo+ICsJCQkJCSAgICAgIENMS19TRVRf UkFURV9VTkdBVEUpLAo+ICsJfSwKPiArfTsKPiArCj4gKyNkZWZpbmUgU1VONTBJX0g2MTZfUExM X1BFUklQSDFfUkVHCTB4MDI4Cj4gK3N0YXRpYyBzdHJ1Y3QgY2N1X25rbXAgcGxsX3BlcmlwaDFf Y2xrID0gewo+ICsJLmVuYWJsZQkJPSBCSVQoMzEpLAo+ICsJLmxvY2sJCT0gQklUKDI4KSwKPiAr CS5uCQk9IF9TVU5YSV9DQ1VfTVVMVF9NSU4oOCwgOCwgMTIpLAo+ICsJLm0JCT0gX1NVTlhJX0ND VV9ESVYoMSwgMSksIC8qIGlucHV0IGRpdmlkZXIgKi8KPiArCS5wCQk9IF9TVU5YSV9DQ1VfRElW KDAsIDEpLCAvKiBvdXRwdXQgZGl2aWRlciAqLwo+ICsJLmZpeGVkX3Bvc3RfZGl2CT0gNCwKPiAr CS5jb21tb24JCT0gewo+ICsJCS5yZWcJCT0gMHgwMjgsCj4gKwkJLmZlYXR1cmVzCT0gQ0NVX0ZF QVRVUkVfRklYRURfUE9TVERJViwKPiArCQkuaHcuaW5pdAk9IENMS19IV19JTklUKCJwbGwtcGVy aXBoMSIsICJvc2MyNE0iLAo+ICsJCQkJCSAgICAgICZjY3VfbmttcF9vcHMsCj4gKwkJCQkJICAg ICAgQ0xLX1NFVF9SQVRFX1VOR0FURSksCj4gKwl9LAo+ICt9Owo+ICsKPiArI2RlZmluZSBTVU41 MElfSDYxNl9QTExfR1BVX1JFRwkJMHgwMzAKPiArc3RhdGljIHN0cnVjdCBjY3VfbmttcCBwbGxf Z3B1X2NsayA9IHsKPiArCS5lbmFibGUJCT0gQklUKDMxKSwKPiArCS5sb2NrCQk9IEJJVCgyOCks Cj4gKwkubgkJPSBfU1VOWElfQ0NVX01VTFRfTUlOKDgsIDgsIDEyKSwKPiArCS5tCQk9IF9TVU5Y SV9DQ1VfRElWKDEsIDEpLCAvKiBpbnB1dCBkaXZpZGVyICovCj4gKwkucAkJPSBfU1VOWElfQ0NV X0RJVigwLCAxKSwgLyogb3V0cHV0IGRpdmlkZXIgKi8KPiArCS5jb21tb24JCT0gewo+ICsJCS5y ZWcJCT0gMHgwMzAsCj4gKwkJLmh3LmluaXQJPSBDTEtfSFdfSU5JVCgicGxsLWdwdSIsICJvc2My NE0iLAo+ICsJCQkJCSAgICAgICZjY3VfbmttcF9vcHMsCj4gKwkJCQkJICAgICAgQ0xLX1NFVF9S QVRFX1VOR0FURSksCj4gKwl9LAo+ICt9Owo+ICsKPiArLyoKPiArICogRm9yIFZpZGVvIFBMTHMs IHRoZSBvdXRwdXQgZGl2aWRlciBpcyBkZXNjcmliZWQgYXMgInVzZWQgZm9yCj4gdGVzdGluZyIK PiArICogaW4gdGhlIHVzZXIgbWFudWFsLiBTbyBpdCdzIG5vdCBtb2RlbGxlZCBhbmQgZm9yY2Vk IHRvIDAuCj4gKyAqLwo+ICsjZGVmaW5lIFNVTjUwSV9INjE2X1BMTF9WSURFTzBfUkVHCTB4MDQw Cj4gK3N0YXRpYyBzdHJ1Y3QgY2N1X25tIHBsbF92aWRlbzBfY2xrID0gewo+ICsJLmVuYWJsZQkJ PSBCSVQoMzEpLAo+ICsJLmxvY2sJCT0gQklUKDI4KSwKPiArCS5uCQk9IF9TVU5YSV9DQ1VfTVVM VF9NSU4oOCwgOCwgMTIpLAo+ICsJLm0JCT0gX1NVTlhJX0NDVV9ESVYoMSwgMSksIC8qIGlucHV0 IGRpdmlkZXIgKi8KPiArCS5maXhlZF9wb3N0X2Rpdgk9IDQsCj4gKwkubWluX3JhdGUJPSAyODgw MDAwMDAsCj4gKwkubWF4X3JhdGUJPSAyNDAwMDAwMDAwVUwsCj4gKwkuY29tbW9uCQk9IHsKPiAr CQkucmVnCQk9IDB4MDQwLAo+ICsJCS5mZWF0dXJlcwk9IENDVV9GRUFUVVJFX0ZJWEVEX1BPU1RE SVYsCj4gKwkJLmh3LmluaXQJPSBDTEtfSFdfSU5JVCgicGxsLXZpZGVvMCIsICJvc2MyNE0iLAo+ ICsJCQkJCSAgICAgICZjY3Vfbm1fb3BzLAo+ICsJCQkJCSAgICAgIENMS19TRVRfUkFURV9VTkdB VEUpLAo+ICsJfSwKPiArfTsKPiArCj4gKyNkZWZpbmUgU1VONTBJX0g2MTZfUExMX1ZJREVPMV9S RUcJMHgwNDgKPiArc3RhdGljIHN0cnVjdCBjY3Vfbm0gcGxsX3ZpZGVvMV9jbGsgPSB7Cj4gKwku ZW5hYmxlCQk9IEJJVCgzMSksCj4gKwkubG9jawkJPSBCSVQoMjgpLAo+ICsJLm4JCT0gX1NVTlhJ X0NDVV9NVUxUX01JTig4LCA4LCAxMiksCj4gKwkubQkJPSBfU1VOWElfQ0NVX0RJVigxLCAxKSwg LyogaW5wdXQgZGl2aWRlciAqLwo+ICsJLmZpeGVkX3Bvc3RfZGl2CT0gNCwKPiArCS5taW5fcmF0 ZQk9IDI4ODAwMDAwMCwKPiArCS5tYXhfcmF0ZQk9IDI0MDAwMDAwMDBVTCwKPiArCS5jb21tb24J CT0gewo+ICsJCS5yZWcJCT0gMHgwNDgsCj4gKwkJLmZlYXR1cmVzCT0gQ0NVX0ZFQVRVUkVfRklY RURfUE9TVERJViwKPiArCQkuaHcuaW5pdAk9IENMS19IV19JTklUKCJwbGwtdmlkZW8xIiwgIm9z YzI0TSIsCj4gKwkJCQkJICAgICAgJmNjdV9ubV9vcHMsCj4gKwkJCQkJICAgICAgQ0xLX1NFVF9S QVRFX1VOR0FURSksCj4gKwl9LAo+ICt9Owo+ICsKPiArI2RlZmluZSBTVU41MElfSDYxNl9QTExf VklERU8yX1JFRwkweDA1MAo+ICtzdGF0aWMgc3RydWN0IGNjdV9ubSBwbGxfdmlkZW8yX2NsayA9 IHsKPiArCS5lbmFibGUJCT0gQklUKDMxKSwKPiArCS5sb2NrCQk9IEJJVCgyOCksCj4gKwkubgkJ PSBfU1VOWElfQ0NVX01VTFRfTUlOKDgsIDgsIDEyKSwKPiArCS5tCQk9IF9TVU5YSV9DQ1VfRElW KDEsIDEpLCAvKiBpbnB1dCBkaXZpZGVyICovCj4gKwkuZml4ZWRfcG9zdF9kaXYJPSA0LAo+ICsJ Lm1pbl9yYXRlCT0gMjg4MDAwMDAwLAo+ICsJLm1heF9yYXRlCT0gMjQwMDAwMDAwMFVMLAo+ICsJ LmNvbW1vbgkJPSB7Cj4gKwkJLnJlZwkJPSAweDA1MCwKPiArCQkuZmVhdHVyZXMJPSBDQ1VfRkVB VFVSRV9GSVhFRF9QT1NURElWLAo+ICsJCS5ody5pbml0CT0gQ0xLX0hXX0lOSVQoInBsbC12aWRl bzIiLCAib3NjMjRNIiwKPiArCQkJCQkgICAgICAmY2N1X25tX29wcywKPiArCQkJCQkgICAgICBD TEtfU0VUX1JBVEVfVU5HQVRFKSwKPiArCX0sCj4gK307Cj4gKwo+ICsjZGVmaW5lIFNVTjUwSV9I NjE2X1BMTF9WRV9SRUcJCTB4MDU4Cj4gK3N0YXRpYyBzdHJ1Y3QgY2N1X25rbXAgcGxsX3ZlX2Ns ayA9IHsKPiArCS5lbmFibGUJCT0gQklUKDMxKSwKPiArCS5sb2NrCQk9IEJJVCgyOCksCj4gKwku bgkJPSBfU1VOWElfQ0NVX01VTFRfTUlOKDgsIDgsIDEyKSwKPiArCS5tCQk9IF9TVU5YSV9DQ1Vf RElWKDEsIDEpLCAvKiBpbnB1dCBkaXZpZGVyICovCj4gKwkucAkJPSBfU1VOWElfQ0NVX0RJVigw LCAxKSwgLyogb3V0cHV0IGRpdmlkZXIgKi8KPiArCS5jb21tb24JCT0gewo+ICsJCS5yZWcJCT0g MHgwNTgsCj4gKwkJLmh3LmluaXQJPSBDTEtfSFdfSU5JVCgicGxsLXZlIiwgIm9zYzI0TSIsCj4g KwkJCQkJICAgICAgJmNjdV9ua21wX29wcywKPiArCQkJCQkgICAgICBDTEtfU0VUX1JBVEVfVU5H QVRFKSwKPiArCX0sCj4gK307Cj4gKwo+ICsjZGVmaW5lIFNVTjUwSV9INjE2X1BMTF9ERV9SRUcJ CTB4MDYwCj4gK3N0YXRpYyBzdHJ1Y3QgY2N1X25rbXAgcGxsX2RlX2NsayA9IHsKPiArCS5lbmFi bGUJCT0gQklUKDMxKSwKPiArCS5sb2NrCQk9IEJJVCgyOCksCj4gKwkubgkJPSBfU1VOWElfQ0NV X01VTFRfTUlOKDgsIDgsIDEyKSwKPiArCS5tCQk9IF9TVU5YSV9DQ1VfRElWKDEsIDEpLCAvKiBp bnB1dCBkaXZpZGVyICovCj4gKwkucAkJPSBfU1VOWElfQ0NVX0RJVigwLCAxKSwgLyogb3V0cHV0 IGRpdmlkZXIgKi8KPiArCS5jb21tb24JCT0gewo+ICsJCS5yZWcJCT0gMHgwNjAsCj4gKwkJLmh3 LmluaXQJPSBDTEtfSFdfSU5JVCgicGxsLWRlIiwgIm9zYzI0TSIsCj4gKwkJCQkJICAgICAgJmNj dV9ua21wX29wcywKPiArCQkJCQkgICAgICBDTEtfU0VUX1JBVEVfVU5HQVRFKSwKPiArCX0sCj4g K307Cj4gKwo+ICsvKgo+ICsgKiBUT0RPOiBEZXRlcm1pbmUgU0RNIHNldHRpbmdzIGZvciB0aGUg YXVkaW8gUExMLiBUaGUgbWFudWFsCj4gc3VnZ2VzdHMKPiArICogUExMX0ZBQ1RPUl9OPTE2LCBQ TExfUE9TVF9ESVZfUD0yLCBPVVRQVVRfRElWPTIsCj4gcGF0dGVybj0weGUwMDBjNDliCj4gKyAq IGZvciAyNC41NzYgTUh6LCBhbmQgUExMX0ZBQ1RPUl9OPTIyLCBQTExfUE9TVF9ESVZfUD0zLAo+ IE9VVFBVVF9ESVY9MiwKPiArICogcGF0dGVybj0weGUwMDEyODhjIGZvciAyMi41NzkyIE1Iei4K PiArICogVGhpcyBjbGFzaGVzIHdpdGggb3VyIGZpeGVkIFBMTF9QT1NUX0RJVl9QLgo+ICsgKi8K PiArI2RlZmluZSBTVU41MElfSDYxNl9QTExfQVVESU9fUkVHCTB4MDc4Cj4gK3N0YXRpYyBzdHJ1 Y3QgY2N1X25tIHBsbF9hdWRpb19oc19jbGsgPSB7Cj4gKwkuZW5hYmxlCQk9IEJJVCgzMSksCj4g KwkubG9jawkJPSBCSVQoMjgpLAo+ICsJLm4JCT0gX1NVTlhJX0NDVV9NVUxUX01JTig4LCA4LCAx MiksCj4gKwkubQkJPSBfU1VOWElfQ0NVX0RJVigxLCAxKSwgLyogaW5wdXQgZGl2aWRlciAqLwo+ ICsJLmNvbW1vbgkJPSB7Cj4gKwkJLnJlZwkJPSAweDA3OCwKPiArCQkuaHcuaW5pdAk9IENMS19I V19JTklUKCJwbGwtYXVkaW8taHMiLCAib3NjMjRNIiwKPiArCQkJCQkgICAgICAmY2N1X25tX29w cywKPiArCQkJCQkgICAgICBDTEtfU0VUX1JBVEVfVU5HQVRFKSwKPiArCX0sCj4gK307Cj4gKwo+ ICtzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGNwdXhfcGFyZW50c1tdID0geyAib3NjMjRNIiwg Im9zYzMyayIsCj4gKwkJCQkJImlvc2MiLCAicGxsLWNwdXgiLCAicGxsLQo+IHBlcmlwaDAiIH07 Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfTVVYKGNwdXhfY2xrLCAiY3B1eCIsIGNwdXhfcGFyZW50cywK PiArCQkgICAgIDB4NTAwLCAyNCwgMywgQ0xLX1NFVF9SQVRFX1BBUkVOVCB8Cj4gQ0xLX0lTX0NS SVRJQ0FMKTsKPiArc3RhdGljIFNVTlhJX0NDVV9NKGF4aV9jbGssICJheGkiLCAiY3B1eCIsIDB4 NTAwLCAwLCAyLCAwKTsKPiArc3RhdGljIFNVTlhJX0NDVV9NKGNwdXhfYXBiX2NsaywgImNwdXgt YXBiIiwgImNwdXgiLCAweDUwMCwgOCwgMiwKPiAwKTsKPiArCj4gK3N0YXRpYyBjb25zdCBjaGFy ICogY29uc3QgcHNpX2FoYjFfYWhiMl9wYXJlbnRzW10gPSB7ICJvc2MyNE0iLAo+ICJvc2MzMmsi LAo+ICsJCQkJCQkgICAgICAiaW9zYyIsICJwbGwtCj4gcGVyaXBoMCIgfTsKPiArc3RhdGljIFNV TlhJX0NDVV9NUF9XSVRIX01VWChwc2lfYWhiMV9haGIyX2NsaywgInBzaS1haGIxLWFoYjIiLAo+ ICsJCQkgICAgIHBzaV9haGIxX2FoYjJfcGFyZW50cywKPiArCQkJICAgICAweDUxMCwKPiArCQkJ ICAgICAwLCAyLAkvKiBNICovCj4gKwkJCSAgICAgOCwgMiwJLyogUCAqLwo+ICsJCQkgICAgIDI0 LCAyLAkvKiBtdXggKi8KPiArCQkJICAgICAwKTsKPiArCj4gK3N0YXRpYyBjb25zdCBjaGFyICog Y29uc3QgYWhiM19hcGIxX2FwYjJfcGFyZW50c1tdID0geyAib3NjMjRNIiwKPiAib3NjMzJrIiwK PiArCQkJCQkJICAgICAgICJwc2ktYWhiMS1haGIyIiwKPiArCQkJCQkJICAgICAgICJwbGwtcGVy aXBoMCIgfTsKPiArc3RhdGljIFNVTlhJX0NDVV9NUF9XSVRIX01VWChhaGIzX2NsaywgImFoYjMi LAo+IGFoYjNfYXBiMV9hcGIyX3BhcmVudHMsIDB4NTFjLAo+ICsJCQkgICAgIDAsIDIsCS8qIE0g Ki8KPiArCQkJICAgICA4LCAyLAkvKiBQICovCj4gKwkJCSAgICAgMjQsIDIsCS8qIG11eCAqLwo+ ICsJCQkgICAgIDApOwo+ICsKPiArc3RhdGljIFNVTlhJX0NDVV9NUF9XSVRIX01VWChhcGIxX2Ns aywgImFwYjEiLAo+IGFoYjNfYXBiMV9hcGIyX3BhcmVudHMsIDB4NTIwLAo+ICsJCQkgICAgIDAs IDIsCS8qIE0gKi8KPiArCQkJICAgICA4LCAyLAkvKiBQICovCj4gKwkJCSAgICAgMjQsIDIsCS8q IG11eCAqLwo+ICsJCQkgICAgIDApOwo+ICsKPiArc3RhdGljIFNVTlhJX0NDVV9NUF9XSVRIX01V WChhcGIyX2NsaywgImFwYjIiLAo+IGFoYjNfYXBiMV9hcGIyX3BhcmVudHMsIDB4NTI0LAo+ICsJ CQkgICAgIDAsIDIsCS8qIE0gKi8KPiArCQkJICAgICA4LCAyLAkvKiBQICovCj4gKwkJCSAgICAg MjQsIDIsCS8qIG11eCAqLwo+ICsJCQkgICAgIDApOwo+ICsKPiArc3RhdGljIGNvbnN0IGNoYXIg KiBjb25zdCBtYnVzX3BhcmVudHNbXSA9IHsgIm9zYzI0TSIsICJwbGwtcGVyaXBoMC0KPiAyeCIs Cj4gKwkJCQkJICAgICAicGxsLWRkcjAiLCAicGxsLWRkcjEiIH07Cj4gK3N0YXRpYyBTVU5YSV9D Q1VfTV9XSVRIX01VWF9HQVRFKG1idXNfY2xrLCAibWJ1cyIsIG1idXNfcGFyZW50cywKPiAweDU0 MCwKPiArCQkJCQkwLCAzLAkvKiBNICovCj4gKwkJCQkJMjQsIDIsCS8qIG11eCAqLwo+ICsJCQkJ CUJJVCgzMSksCS8qIGdhdGUgKi8KPiArCQkJCQlDTEtfSVNfQ1JJVElDQUwpOwo+ICsKPiArc3Rh dGljIGNvbnN0IGNoYXIgKiBjb25zdCBkZV9wYXJlbnRzW10gPSB7ICJwbGwtZGUiLCAicGxsLXBl cmlwaDAtCj4gMngiIH07Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfTV9XSVRIX01VWF9HQVRFKGRlX2Ns aywgImRlIiwgZGVfcGFyZW50cywgMHg2MDAsCj4gKwkJCQkgICAgICAgMCwgNCwJLyogTSAqLwo+ ICsJCQkJICAgICAgIDI0LCAxLAkvKiBtdXggKi8KPiArCQkJCSAgICAgICBCSVQoMzEpLAkvKiBn YXRlICovCj4gKwkJCQkgICAgICAgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Cj4gKwo+ICtzdGF0aWMg U1VOWElfQ0NVX0dBVEUoYnVzX2RlX2NsaywgImJ1cy1kZSIsICJwc2ktYWhiMS1haGIyIiwKPiAr CQkgICAgICAweDYwYywgQklUKDApLCAwKTsKPiArCj4gK3N0YXRpYyBTVU5YSV9DQ1VfTV9XSVRI X01VWF9HQVRFKGRlaW50ZXJsYWNlX2NsaywgImRlaW50ZXJsYWNlIiwKPiArCQkJCSAgICAgICBk ZV9wYXJlbnRzLAo+ICsJCQkJICAgICAgIDB4NjIwLAo+ICsJCQkJICAgICAgIDAsIDQsCS8qIE0g Ki8KPiArCQkJCSAgICAgICAyNCwgMSwJLyogbXV4ICovCj4gKwkJCQkgICAgICAgQklUKDMxKSwJ LyogZ2F0ZSAqLwo+ICsJCQkJICAgICAgIDApOwo+ICsKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRF KGJ1c19kZWludGVybGFjZV9jbGssICJidXMtZGVpbnRlcmxhY2UiLCAicHNpLQo+IGFoYjEtYWhi MiIsCj4gKwkJICAgICAgMHg2MmMsIEJJVCgwKSwgMCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NV X01fV0lUSF9NVVhfR0FURShnMmRfY2xrLCAiZzJkIiwgZGVfcGFyZW50cywgMHg2MzAsCj4gKwkJ CQkgICAgICAgMCwgNCwJLyogTSAqLwo+ICsJCQkJICAgICAgIDI0LCAxLAkvKiBtdXggKi8KPiAr CQkJCSAgICAgICBCSVQoMzEpLAkvKiBnYXRlICovCj4gKwkJCQkgICAgICAgMCk7Cj4gKwo+ICtz dGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX2cyZF9jbGssICJidXMtZzJkIiwgInBzaS1haGIxLWFo YjIiLAo+ICsJCSAgICAgIDB4NjNjLCBCSVQoMCksIDApOwo+ICsKPiArc3RhdGljIGNvbnN0IGNo YXIgKiBjb25zdCBncHUwX3BhcmVudHNbXSA9IHsgInBsbC1ncHUiLCAiZ3B1MSIgfTsKPiArc3Rh dGljIFNVTlhJX0NDVV9NX1dJVEhfTVVYX0dBVEUoZ3B1MF9jbGssICJncHUwIiwgZ3B1MF9wYXJl bnRzLAo+IDB4NjcwLAo+ICsJCQkJICAgICAgIDAsIDIsCS8qIE0gKi8KPiArCQkJCSAgICAgICAy NCwgMSwJLyogbXV4ICovCj4gKwkJCQkgICAgICAgQklUKDMxKSwJLyogZ2F0ZSAqLwo+ICsJCQkJ ICAgICAgIENMS19TRVRfUkFURV9QQVJFTlQpOwo+ICtzdGF0aWMgU1VOWElfQ0NVX01fV0lUSF9H QVRFKGdwdTFfY2xrLCAiZ3B1MSIsICJwbGwtcGVyaXBoMC0yeCIsCj4gMHg2NzQsCj4gKwkJCQkJ MCwgMywJLyogTSAqLwo+ICsJCQkJCUJJVCgzMSksLyogZ2F0ZSAqLwo+ICsJCQkJCTApOwo+ICsK PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKGJ1c19ncHVfY2xrLCAiYnVzLWdwdSIsICJwc2ktYWhi MS1haGIyIiwKPiArCQkgICAgICAweDY3YywgQklUKDApLCAwKTsKPiArCj4gK3N0YXRpYyBjb25z dCBjaGFyICogY29uc3QgY2VfcGFyZW50c1tdID0geyAib3NjMjRNIiwgInBsbC1wZXJpcGgwLQo+ IDJ4IiB9Owo+ICtzdGF0aWMgU1VOWElfQ0NVX01QX1dJVEhfTVVYX0dBVEUoY2VfY2xrLCAiY2Ui LCBjZV9wYXJlbnRzLCAweDY4MCwKPiArCQkJCQkwLCA0LAkvKiBNICovCj4gKwkJCQkJOCwgMiwJ LyogTiAqLwo+ICsJCQkJCTI0LCAxLAkvKiBtdXggKi8KPiArCQkJCQlCSVQoMzEpLC8qIGdhdGUg Ki8KPiArCQkJCQkwKTsKPiArCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShidXNfY2VfY2xrLCAi YnVzLWNlIiwgInBzaS1haGIxLWFoYjIiLAo+ICsJCSAgICAgIDB4NjhjLCBCSVQoMCksIDApOwo+ ICsKPiArc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB2ZV9wYXJlbnRzW10gPSB7ICJwbGwtdmUi IH07Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfTV9XSVRIX01VWF9HQVRFKHZlX2NsaywgInZlIiwgdmVf cGFyZW50cywgMHg2OTAsCj4gKwkJCQkgICAgICAgMCwgMywJLyogTSAqLwo+ICsJCQkJICAgICAg IDI0LCAxLAkvKiBtdXggKi8KPiArCQkJCSAgICAgICBCSVQoMzEpLAkvKiBnYXRlICovCj4gKwkJ CQkgICAgICAgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dB VEUoYnVzX3ZlX2NsaywgImJ1cy12ZSIsICJwc2ktYWhiMS1haGIyIiwKPiArCQkgICAgICAweDY5 YywgQklUKDApLCAwKTsKPiArCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShidXNfZG1hX2Nsaywg ImJ1cy1kbWEiLCAicHNpLWFoYjEtYWhiMiIsCj4gKwkJICAgICAgMHg3MGMsIEJJVCgwKSwgMCk7 Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX2hzdGltZXJfY2xrLCAiYnVzLWhzdGlt ZXIiLCAicHNpLWFoYjEtCj4gYWhiMiIsCj4gKwkJICAgICAgMHg3M2MsIEJJVCgwKSwgMCk7Cj4g Kwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYXZzX2NsaywgImF2cyIsICJvc2MyNE0iLCAweDc0 MCwgQklUKDMxKSwgMCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX2RiZ19jbGss ICJidXMtZGJnIiwgInBzaS1haGIxLWFoYjIiLAo+ICsJCSAgICAgIDB4NzhjLCBCSVQoMCksIDAp Owo+ICsKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKGJ1c19wc2lfY2xrLCAiYnVzLXBzaSIsICJw c2ktYWhiMS1haGIyIiwKPiArCQkgICAgICAweDc5YywgQklUKDApLCAwKTsKPiArCj4gK3N0YXRp YyBTVU5YSV9DQ1VfR0FURShidXNfcHdtX2NsaywgImJ1cy1wd20iLCAiYXBiMSIsIDB4N2FjLCBC SVQoMCksCj4gMCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX2lvbW11X2Nsaywg ImJ1cy1pb21tdSIsICJhcGIxIiwgMHg3YmMsCj4gQklUKDApLCAwKTsKPiArCj4gK3N0YXRpYyBj b25zdCBjaGFyICogY29uc3QgZHJhbV9wYXJlbnRzW10gPSB7ICJwbGwtZGRyMCIsICJwbGwtZGRy MSIKPiB9Owo+ICtzdGF0aWMgc3RydWN0IGNjdV9kaXYgZHJhbV9jbGsgPSB7Cj4gKwkuZGl2CQk9 IF9TVU5YSV9DQ1VfRElWKDAsIDIpLAo+ICsJLm11eAkJPSBfU1VOWElfQ0NVX01VWCgyNCwgMiks Cj4gKwkuY29tbW9uCT0gewo+ICsJCS5yZWcJCT0gMHg4MDAsCj4gKwkJLmh3LmluaXQJPSBDTEtf SFdfSU5JVF9QQVJFTlRTKCJkcmFtIiwKPiArCQkJCQkJICAgICAgZHJhbV9wYXJlbnRzLAo+ICsJ CQkJCQkgICAgICAmY2N1X2Rpdl9vcHMsCj4gKwkJCQkJCSAgICAgIENMS19JU19DUklUSUNBTCks Cj4gKwl9LAo+ICt9Owo+ICsKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKG1idXNfZG1hX2Nsaywg Im1idXMtZG1hIiwgIm1idXMiLAo+ICsJCSAgICAgIDB4ODA0LCBCSVQoMCksIDApOwo+ICtzdGF0 aWMgU1VOWElfQ0NVX0dBVEUobWJ1c192ZV9jbGssICJtYnVzLXZlIiwgIm1idXMiLAo+ICsJCSAg ICAgIDB4ODA0LCBCSVQoMSksIDApOwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUobWJ1c19jZV9j bGssICJtYnVzLWNlIiwgIm1idXMiLAo+ICsJCSAgICAgIDB4ODA0LCBCSVQoMiksIDApOwo+ICtz dGF0aWMgU1VOWElfQ0NVX0dBVEUobWJ1c190c19jbGssICJtYnVzLXRzIiwgIm1idXMiLAo+ICsJ CSAgICAgIDB4ODA0LCBCSVQoMyksIDApOwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUobWJ1c19u YW5kX2NsaywgIm1idXMtbmFuZCIsICJtYnVzIiwKPiArCQkgICAgICAweDgwNCwgQklUKDUpLCAw KTsKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKG1idXNfZzJkX2NsaywgIm1idXMtZzJkIiwgIm1i dXMiLAo+ICsJCSAgICAgIDB4ODA0LCBCSVQoMTApLCAwKTsKPiArCj4gK3N0YXRpYyBTVU5YSV9D Q1VfR0FURShidXNfZHJhbV9jbGssICJidXMtZHJhbSIsICJwc2ktYWhiMS1haGIyIiwKPiArCQkg ICAgICAweDgwYywgQklUKDApLCBDTEtfSVNfQ1JJVElDQUwpOwo+ICsKPiArc3RhdGljIGNvbnN0 IGNoYXIgKiBjb25zdCBuYW5kX3NwaV9wYXJlbnRzW10gPSB7ICJvc2MyNE0iLCAicGxsLQo+IHBl cmlwaDAiLAo+ICsJCQkJCSAgICAgInBsbC1wZXJpcGgxIiwgInBsbC0KPiBwZXJpcGgwLTJ4IiwK PiArCQkJCQkgICAgICJwbGwtcGVyaXBoMS0yeCIgfTsKPiArc3RhdGljIFNVTlhJX0NDVV9NUF9X SVRIX01VWF9HQVRFKG5hbmQwX2NsaywgIm5hbmQwIiwKPiBuYW5kX3NwaV9wYXJlbnRzLCAweDgx MCwKPiArCQkJCQkwLCA0LAkvKiBNICovCj4gKwkJCQkJOCwgMiwJLyogTiAqLwo+ICsJCQkJCTI0 LCAzLAkvKiBtdXggKi8KPiArCQkJCQlCSVQoMzEpLC8qIGdhdGUgKi8KPiArCQkJCQkwKTsKPiAr Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfTVBfV0lUSF9NVVhfR0FURShuYW5kMV9jbGssICJuYW5kMSIs Cj4gbmFuZF9zcGlfcGFyZW50cywgMHg4MTQsCj4gKwkJCQkJMCwgNCwJLyogTSAqLwo+ICsJCQkJ CTgsIDIsCS8qIE4gKi8KPiArCQkJCQkyNCwgMywJLyogbXV4ICovCj4gKwkJCQkJQklUKDMxKSwv KiBnYXRlICovCj4gKwkJCQkJMCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX25h bmRfY2xrLCAiYnVzLW5hbmQiLCAiYWhiMyIsIDB4ODJjLAo+IEJJVCgwKSwgMCk7Cj4gKwo+ICtz dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG1tY19wYXJlbnRzW10gPSB7ICJvc2MyNE0iLCAicGxs LXBlcmlwaDAtCj4gMngiLAo+ICsJCQkJCSAgICAicGxsLXBlcmlwaDEtMngiIH07Cj4gK3N0YXRp YyBTVU5YSV9DQ1VfTVBfV0lUSF9NVVhfR0FURV9QT1NURElWKG1tYzBfY2xrLCAibW1jMCIsCj4g bW1jX3BhcmVudHMsIDB4ODMwLAo+ICsJCQkJCSAgMCwgNCwJCS8qIE0gKi8KPiArCQkJCQkgIDgs IDIsCQkvKiBOICovCj4gKwkJCQkJICAyNCwgMiwJLyogbXV4ICovCj4gKwkJCQkJICBCSVQoMzEp LAkvKiBnYXRlICovCj4gKwkJCQkJICAyLAkJLyogcG9zdC1kaXYKPiAqLwo+ICsJCQkJCSAgMCk7 Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX01QX1dJVEhfTVVYX0dBVEVfUE9TVERJVihtbWMxX2Ns aywgIm1tYzEiLAo+IG1tY19wYXJlbnRzLCAweDgzNCwKPiArCQkJCQkgIDAsIDQsCQkvKiBNICov Cj4gKwkJCQkJICA4LCAyLAkJLyogTiAqLwo+ICsJCQkJCSAgMjQsIDIsCS8qIG11eCAqLwo+ICsJ CQkJCSAgQklUKDMxKSwJLyogZ2F0ZSAqLwo+ICsJCQkJCSAgMiwJCS8qIHBvc3QtZGl2Cj4gKi8K PiArCQkJCQkgIDApOwo+ICsKPiArc3RhdGljIFNVTlhJX0NDVV9NUF9XSVRIX01VWF9HQVRFX1BP U1RESVYobW1jMl9jbGssICJtbWMyIiwKPiBtbWNfcGFyZW50cywgMHg4MzgsCj4gKwkJCQkJICAw LCA0LAkJLyogTSAqLwo+ICsJCQkJCSAgOCwgMiwJCS8qIE4gKi8KPiArCQkJCQkgIDI0LCAyLAkv KiBtdXggKi8KPiArCQkJCQkgIEJJVCgzMSksCS8qIGdhdGUgKi8KPiArCQkJCQkgIDIsCQkvKiBw b3N0LWRpdgo+ICovCj4gKwkJCQkJICAwKTsKPiArCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShi dXNfbW1jMF9jbGssICJidXMtbW1jMCIsICJhaGIzIiwgMHg4NGMsCj4gQklUKDApLCAwKTsKPiAr c3RhdGljIFNVTlhJX0NDVV9HQVRFKGJ1c19tbWMxX2NsaywgImJ1cy1tbWMxIiwgImFoYjMiLCAw eDg0YywKPiBCSVQoMSksIDApOwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX21tYzJfY2xr LCAiYnVzLW1tYzIiLCAiYWhiMyIsIDB4ODRjLAo+IEJJVCgyKSwgMCk7Cj4gKwo+ICtzdGF0aWMg U1VOWElfQ0NVX0dBVEUoYnVzX3VhcnQwX2NsaywgImJ1cy11YXJ0MCIsICJhcGIyIiwgMHg5MGMs Cj4gQklUKDApLCAwKTsKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKGJ1c191YXJ0MV9jbGssICJi dXMtdWFydDEiLCAiYXBiMiIsIDB4OTBjLAo+IEJJVCgxKSwgMCk7Cj4gK3N0YXRpYyBTVU5YSV9D Q1VfR0FURShidXNfdWFydDJfY2xrLCAiYnVzLXVhcnQyIiwgImFwYjIiLCAweDkwYywKPiBCSVQo MiksIDApOwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX3VhcnQzX2NsaywgImJ1cy11YXJ0 MyIsICJhcGIyIiwgMHg5MGMsCj4gQklUKDMpLCAwKTsKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRF KGJ1c191YXJ0NF9jbGssICJidXMtdWFydDQiLCAiYXBiMiIsIDB4OTBjLAo+IEJJVCg0KSwgMCk7 Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShidXNfdWFydDVfY2xrLCAiYnVzLXVhcnQ1IiwgImFw YjIiLCAweDkwYywKPiBCSVQoNSksIDApOwo+ICsKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKGJ1 c19pMmMwX2NsaywgImJ1cy1pMmMwIiwgImFwYjIiLCAweDkxYywKPiBCSVQoMCksIDApOwo+ICtz dGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX2kyYzFfY2xrLCAiYnVzLWkyYzEiLCAiYXBiMiIsIDB4 OTFjLAo+IEJJVCgxKSwgMCk7Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShidXNfaTJjMl9jbGss ICJidXMtaTJjMiIsICJhcGIyIiwgMHg5MWMsCj4gQklUKDIpLCAwKTsKPiArc3RhdGljIFNVTlhJ X0NDVV9HQVRFKGJ1c19pMmMzX2NsaywgImJ1cy1pMmMzIiwgImFwYjIiLCAweDkxYywKPiBCSVQo MyksIDApOwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX2kyYzRfY2xrLCAiYnVzLWkyYzQi LCAiYXBiMiIsIDB4OTFjLAo+IEJJVCg0KSwgMCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX01Q X1dJVEhfTVVYX0dBVEUoc3BpMF9jbGssICJzcGkwIiwKPiBuYW5kX3NwaV9wYXJlbnRzLCAweDk0 MCwKPiArCQkJCQkwLCA0LAkvKiBNICovCj4gKwkJCQkJOCwgMiwJLyogTiAqLwo+ICsJCQkJCTI0 LCAzLAkvKiBtdXggKi8KPiArCQkJCQlCSVQoMzEpLC8qIGdhdGUgKi8KPiArCQkJCQkwKTsKPiAr Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfTVBfV0lUSF9NVVhfR0FURShzcGkxX2NsaywgInNwaTEiLAo+ IG5hbmRfc3BpX3BhcmVudHMsIDB4OTQ0LAo+ICsJCQkJCTAsIDQsCS8qIE0gKi8KPiArCQkJCQk4 LCAyLAkvKiBOICovCj4gKwkJCQkJMjQsIDMsCS8qIG11eCAqLwo+ICsJCQkJCUJJVCgzMSksLyog Z2F0ZSAqLwo+ICsJCQkJCTApOwo+ICsKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKGJ1c19zcGkw X2NsaywgImJ1cy1zcGkwIiwgImFoYjMiLCAweDk2YywKPiBCSVQoMCksIDApOwo+ICtzdGF0aWMg U1VOWElfQ0NVX0dBVEUoYnVzX3NwaTFfY2xrLCAiYnVzLXNwaTEiLCAiYWhiMyIsIDB4OTZjLAo+ IEJJVCgxKSwgMCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoZW1hY18yNW1fY2xrLCAi ZW1hYy0yNW0iLCAiYWhiMyIsIDB4OTcwLAo+ICsJCSAgICAgIEJJVCgzMSkgfCBCSVQoMzApLCAw KTsKPiArCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShidXNfZW1hYzBfY2xrLCAiYnVzLWVtYWMw IiwgImFoYjMiLCAweDk3YywKPiBCSVQoMCksIDApOwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUo YnVzX2VtYWMxX2NsaywgImJ1cy1lbWFjMSIsICJhaGIzIiwgMHg5N2MsCj4gQklUKDEpLCAwKTsK PiArCj4gK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdHNfcGFyZW50c1tdID0geyAib3NjMjRN IiwgInBsbC1wZXJpcGgwIgo+IH07Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfTVBfV0lUSF9NVVhfR0FU RSh0c19jbGssICJ0cyIsIHRzX3BhcmVudHMsIDB4OWIwLAo+ICsJCQkJCTAsIDQsCS8qIE0gKi8K PiArCQkJCQk4LCAyLAkvKiBOICovCj4gKwkJCQkJMjQsIDEsCS8qIG11eCAqLwo+ICsJCQkJCUJJ VCgzMSksLyogZ2F0ZSAqLwo+ICsJCQkJCTApOwo+ICsKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRF KGJ1c190c19jbGssICJidXMtdHMiLCAiYWhiMyIsIDB4OWJjLCBCSVQoMCksCj4gMCk7Cj4gKwo+ ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX3Roc19jbGssICJidXMtdGhzIiwgImFwYjEiLCAw eDlmYywgQklUKDApLAo+IDApOwo+ICsKPiArc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhdWRp b19wYXJlbnRzW10gPSB7ICJwbGwtYXVkaW8tMXgiLCAicGxsLQo+IGF1ZGlvLTJ4IiwKPiArCQkJ CQkgICAgICAicGxsLWF1ZGlvLTR4IiwgInBsbC0KPiBhdWRpby1ocyIgfTsKPiArc3RhdGljIHN0 cnVjdCBjY3VfZGl2IHNwZGlmX2NsayA9IHsKPiArCS5lbmFibGUJCT0gQklUKDMxKSwKPiArCS5k aXYJCT0gX1NVTlhJX0NDVV9ESVZfRkxBR1MoOCwgMiwKPiBDTEtfRElWSURFUl9QT1dFUl9PRl9U V08pLAo+ICsJLm11eAkJPSBfU1VOWElfQ0NVX01VWCgyNCwgMiksCj4gKwkuY29tbW9uCQk9IHsK PiArCQkucmVnCQk9IDB4YTIwLAo+ICsJCS5ody5pbml0CT0gQ0xLX0hXX0lOSVRfUEFSRU5UUygi c3BkaWYiLAo+ICsJCQkJCQkgICAgICBhdWRpb19wYXJlbnRzLAo+ICsJCQkJCQkgICAgICAmY2N1 X2Rpdl9vcHMsCj4gKwkJCQkJCSAgICAgIDApLAo+ICsJfSwKPiArfTsKPiArCj4gK3N0YXRpYyBT VU5YSV9DQ1VfR0FURShidXNfc3BkaWZfY2xrLCAiYnVzLXNwZGlmIiwgImFwYjEiLCAweGEyYywK PiBCSVQoMCksIDApOwo+ICsKPiArc3RhdGljIHN0cnVjdCBjY3VfZGl2IGRtaWNfY2xrID0gewo+ ICsJLmVuYWJsZQkJPSBCSVQoMzEpLAo+ICsJLmRpdgkJPSBfU1VOWElfQ0NVX0RJVl9GTEFHUyg4 LCAyLAo+IENMS19ESVZJREVSX1BPV0VSX09GX1RXTyksCj4gKwkubXV4CQk9IF9TVU5YSV9DQ1Vf TVVYKDI0LCAyKSwKPiArCS5jb21tb24JCT0gewo+ICsJCS5yZWcJCT0gMHhhNDAsCj4gKwkJLmh3 LmluaXQJPSBDTEtfSFdfSU5JVF9QQVJFTlRTKCJkbWljIiwKPiArCQkJCQkJICAgICAgYXVkaW9f cGFyZW50cywKPiArCQkJCQkJICAgICAgJmNjdV9kaXZfb3BzLAo+ICsJCQkJCQkgICAgICAwKSwK PiArCX0sCj4gK307Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX2RtaWNfY2xrLCAi YnVzLWRtaWMiLCAiYXBiMSIsIDB4YTRjLAo+IEJJVCgwKSwgMCk7Cj4gKwo+ICtzdGF0aWMgU1VO WElfQ0NVX01fV0lUSF9NVVhfR0FURShhdWRpb19jb2RlY18xeF9jbGssICJhdWRpby1jb2RlYy0K PiAxeCIsCj4gKwkJCQkgYXVkaW9fcGFyZW50cywgMHhhNTAsCj4gKwkJCQkgMCwgNCwJLyogTSAq Lwo+ICsJCQkJIDI0LCAyLAkvKiBtdXggKi8KPiArCQkJCSBCSVQoMzEpLAkvKiBnYXRlICovCj4g KwkJCQkgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfTV9XSVRIX01V WF9HQVRFKGF1ZGlvX2NvZGVjXzR4X2NsaywgImF1ZGlvLWNvZGVjLQo+IDR4IiwKPiArCQkJCSBh dWRpb19wYXJlbnRzLCAweGE1NCwKPiArCQkJCSAwLCA0LAkvKiBNICovCj4gKwkJCQkgMjQsIDIs CS8qIG11eCAqLwo+ICsJCQkJIEJJVCgzMSksCS8qIGdhdGUgKi8KPiArCQkJCSBDTEtfU0VUX1JB VEVfUEFSRU5UKTsKPiArCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShidXNfYXVkaW9fY29kZWNf Y2xrLCAiYnVzLWF1ZGlvLWNvZGVjIiwKPiAiYXBiMSIsIDB4YTVjLAo+ICsJCUJJVCgwKSwgMCk7 Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGNjdV9kaXYgYXVkaW9faHViX2NsayA9IHsKPiArCS5lbmFi bGUJCT0gQklUKDMxKSwKPiArCS5kaXYJCT0gX1NVTlhJX0NDVV9ESVZfRkxBR1MoOCwgMiwKPiBD TEtfRElWSURFUl9QT1dFUl9PRl9UV08pLAo+ICsJLm11eAkJPSBfU1VOWElfQ0NVX01VWCgyNCwg MiksCj4gKwkuY29tbW9uCQk9IHsKPiArCQkucmVnCQk9IDB4YTYwLAo+ICsJCS5ody5pbml0CT0g Q0xLX0hXX0lOSVRfUEFSRU5UUygiYXVkaW8taHViIiwKPiArCQkJCQkJICAgICAgYXVkaW9fcGFy ZW50cywKPiArCQkJCQkJICAgICAgJmNjdV9kaXZfb3BzLAo+ICsJCQkJCQkgICAgICAwKSwKPiAr CX0sCj4gK307Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX2F1ZGlvX2h1Yl9jbGss ICJidXMtYXVkaW8taHViIiwgImFwYjEiLAo+IDB4YTZjLCBCSVQoMCksIDApOwo+ICsKPiArLyoK PiArICogVGhlcmUgYXJlIE9IQ0kgMTJNIGNsb2NrIHNvdXJjZSBzZWxlY3Rpb24gYml0cyBmb3Ig MiBVU0IgMi4wCj4gcG9ydHMuCj4gKyAqIFdlIHdpbGwgZm9yY2UgdGhlbSB0byAwICgxMk0gZGl2 aWRlZCBmcm9tIDQ4TSkuCj4gKyAqLwo+ICsjZGVmaW5lIFNVTjUwSV9INjE2X1VTQjBfQ0xLX1JF RwkJMHhhNzAKPiArI2RlZmluZSBTVU41MElfSDYxNl9VU0IxX0NMS19SRUcJCTB4YTc0Cj4gKyNk ZWZpbmUgU1VONTBJX0g2MTZfVVNCMl9DTEtfUkVHCQkweGE3OAo+ICsjZGVmaW5lIFNVTjUwSV9I NjE2X1VTQjNfQ0xLX1JFRwkJMHhhN2MKPiArCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURSh1c2Jf b2hjaTBfY2xrLCAidXNiLW9oY2kwIiwgIm9zYzEyTSIsIDB4YTcwLAo+IEJJVCgzMSksIDApOwo+ ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUodXNiX3BoeTBfY2xrLCAidXNiLXBoeTAiLCAib3NjMjRN IiwgMHhhNzAsCj4gQklUKDI5KSwgMCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUodXNi X29oY2kxX2NsaywgInVzYi1vaGNpMSIsICJvc2MxMk0iLCAweGE3NCwKPiBCSVQoMzEpLCAwKTsK PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKHVzYl9waHkxX2NsaywgInVzYi1waHkxIiwgIm9zYzI0 TSIsIDB4YTc0LAo+IEJJVCgyOSksIDApOwo+ICsKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKHVz Yl9vaGNpMl9jbGssICJ1c2Itb2hjaTIiLCAib3NjMTJNIiwgMHhhNzgsCj4gQklUKDMxKSwgMCk7 Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURSh1c2JfcGh5Ml9jbGssICJ1c2ItcGh5MiIsICJvc2My NE0iLCAweGE3OCwKPiBCSVQoMjkpLCAwKTsKPiArCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURSh1 c2Jfb2hjaTNfY2xrLCAidXNiLW9oY2kzIiwgIm9zYzEyTSIsIDB4YTdjLAo+IEJJVCgzMSksIDAp Owo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUodXNiX3BoeTNfY2xrLCAidXNiLXBoeTMiLCAib3Nj MTJNIiwgMHhhN2MsCj4gQklUKDI5KSwgMCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUo YnVzX29oY2kwX2NsaywgImJ1cy1vaGNpMCIsICJhaGIzIiwgMHhhOGMsCj4gQklUKDApLCAwKTsK PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKGJ1c19vaGNpMV9jbGssICJidXMtb2hjaTEiLCAiYWhi MyIsIDB4YThjLAo+IEJJVCgxKSwgMCk7Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShidXNfb2hj aTJfY2xrLCAiYnVzLW9oY2kyIiwgImFoYjMiLCAweGE4YywKPiBCSVQoMiksIDApOwo+ICtzdGF0 aWMgU1VOWElfQ0NVX0dBVEUoYnVzX29oY2kzX2NsaywgImJ1cy1vaGNpMyIsICJhaGIzIiwgMHhh OGMsCj4gQklUKDMpLCAwKTsKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKGJ1c19laGNpMF9jbGss ICJidXMtZWhjaTAiLCAiYWhiMyIsIDB4YThjLAo+IEJJVCg0KSwgMCk7Cj4gK3N0YXRpYyBTVU5Y SV9DQ1VfR0FURShidXNfZWhjaTFfY2xrLCAiYnVzLWVoY2kxIiwgImFoYjMiLCAweGE4YywKPiBC SVQoNSksIDApOwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX2VoY2kyX2NsaywgImJ1cy1l aGNpMiIsICJhaGIzIiwgMHhhOGMsCj4gQklUKDYpLCAwKTsKPiArc3RhdGljIFNVTlhJX0NDVV9H QVRFKGJ1c19laGNpM19jbGssICJidXMtZWhjaTMiLCAiYWhiMyIsIDB4YThjLAo+IEJJVCg3KSwg MCk7Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShidXNfb3RnX2NsaywgImJ1cy1vdGciLCAiYWhi MyIsIDB4YThjLCBCSVQoOCksCj4gMCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVz X2tleWFkY19jbGssICJidXMta2V5YWRjIiwgImFwYjEiLCAweGE5YywKPiBCSVQoMCksIDApOwo+ ICsKPiArc3RhdGljIHN0cnVjdCBjbGtfZml4ZWRfZmFjdG9yIHBsbF9wZXJpcGgwXzR4X2NsazsK PiArCj4gK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaGRtaV9wYXJlbnRzW10gPSB7ICJwbGwt dmlkZW8wIiwgInBsbC0KPiB2aWRlbzAtNHgiLAo+ICsJCQkJCSAgICAgInBsbC12aWRlbzIiLCAi cGxsLXZpZGVvMi0KPiA0eCIgfTsKPiArc3RhdGljIFNVTlhJX0NDVV9NX1dJVEhfTVVYX0dBVEUo aGRtaV9jbGssICJoZG1pIiwgaGRtaV9wYXJlbnRzLAo+IDB4YjAwLAo+ICsJCQkJIDAsIDQsCQkv KiBNICovCj4gKwkJCQkgMjQsIDIsCQkvKiBtdXggKi8KPiArCQkJCSBCSVQoMzEpLAkvKiBnYXRl ICovCj4gKwkJCQkgMCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoaGRtaV9zbG93X2Ns aywgImhkbWktc2xvdyIsICJvc2MyNE0iLCAweGIwNCwKPiBCSVQoMzEpLCAwKTsKPiArCj4gK3N0 YXRpYyBjb25zdCBjaGFyICogY29uc3QgaGRtaV9jZWNfcGFyZW50c1tdID0geyAib3NjMzJrIiwg InBsbC0KPiBwZXJpcGgwLTJ4IiB9Owo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNjdV9tdXhfZml4 ZWRfcHJlZGl2IGhkbWlfY2VjX3ByZWRpdnNbXSA9IHsKPiArCXsgLmluZGV4ID0gMSwgLmRpdiA9 IDM2NjIxIH0sCj4gK307Cj4gKwo+ICsjZGVmaW5lIFNVTjUwSV9INjE2X0hETUlfQ0VDX0NMS19S RUcJCTB4YjEwCj4gK3N0YXRpYyBzdHJ1Y3QgY2N1X211eCBoZG1pX2NlY19jbGsgPSB7Cj4gKwku ZW5hYmxlCQk9IEJJVCgzMSksCj4gKwo+ICsJLm11eAkJPSB7Cj4gKwkJLnNoaWZ0CT0gMjQsCj4g KwkJLndpZHRoCT0gMiwKPiArCj4gKwkJLmZpeGVkX3ByZWRpdnMJPSBoZG1pX2NlY19wcmVkaXZz LAo+ICsJCS5uX3ByZWRpdnMJPSBBUlJBWV9TSVpFKGhkbWlfY2VjX3ByZWRpdnMpLAo+ICsJfSwK PiArCj4gKwkuY29tbW9uCQk9IHsKPiArCQkucmVnCQk9IDB4YjEwLAo+ICsJCS5mZWF0dXJlcwk9 IENDVV9GRUFUVVJFX1ZBUklBQkxFX1BSRURJViwKPiArCQkuaHcuaW5pdAk9IENMS19IV19JTklU X1BBUkVOVFMoImhkbWktY2VjIiwKPiArCQkJCQkJICAgICAgaGRtaV9jZWNfcGFyZW50cywKPiAr CQkJCQkJICAgICAgJmNjdV9tdXhfb3BzLAo+ICsJCQkJCQkgICAgICAwKSwKPiArCX0sCj4gK307 Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX2hkbWlfY2xrLCAiYnVzLWhkbWkiLCAi YWhiMyIsIDB4YjFjLAo+IEJJVCgwKSwgMCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUo YnVzX3Rjb25fdG9wX2NsaywgImJ1cy10Y29uLXRvcCIsICJhaGIzIiwKPiArCQkgICAgICAweGI1 YywgQklUKDApLCAwKTsKPiArCj4gK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdGNvbl90djBf cGFyZW50c1tdID0geyAicGxsLXZpZGVvMCIsCj4gKwkJCQkJCSAicGxsLXZpZGVvMC00eCIsCj4g KwkJCQkJCSAicGxsLXZpZGVvMSIsCj4gKwkJCQkJCSAicGxsLXZpZGVvMS00eCIgfTsKPiArc3Rh dGljIFNVTlhJX0NDVV9NUF9XSVRIX01VWF9HQVRFKHRjb25fdHYwX2NsaywgInRjb24tdHYwIiwK PiArCQkJCSAgdGNvbl90djBfcGFyZW50cywgMHhiODAsCj4gKwkJCQkgIDAsIDQsCQkvKiBNICov Cj4gKwkJCQkgIDgsIDIsCQkvKiBQICovCj4gKwkJCQkgIDI0LCAzLAkvKiBtdXggKi8KPiArCQkJ CSAgQklUKDMxKSwJLyogZ2F0ZSAqLwo+ICsJCQkJICBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKPiAr Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShidXNfdGNvbl90djBfY2xrLCAiYnVzLXRjb24tdHYw IiwgImFoYjMiLAo+ICsJCSAgICAgIDB4YjljLCBCSVQoMCksIDApOwo+ICsKPiArc3RhdGljIGNv bnN0IGNoYXIgKiBjb25zdCBoZGNwX3BhcmVudHNbXSA9IHsgInBsbC1wZXJpcGgwIiwgInBsbC0K PiBwZXJpcGgxIiB9Owo+ICtzdGF0aWMgU1VOWElfQ0NVX01fV0lUSF9NVVhfR0FURShoZGNwX2Ns aywgImhkY3AiLCBoZGNwX3BhcmVudHMsCj4gMHhjNDAsCj4gKwkJCQkgMCwgNCwJCS8qIE0gKi8K PiArCQkJCSAyNCwgMiwJCS8qIG11eCAqLwo+ICsJCQkJIEJJVCgzMSksCS8qIGdhdGUgKi8KPiAr CQkJCSAwKTsKPiArCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShidXNfaGRjcF9jbGssICJidXMt aGRjcCIsICJhaGIzIiwgMHhjNGMsCj4gQklUKDApLCAwKTsKPiArCj4gKy8qIEZpeGVkIGZhY3Rv ciBjbG9ja3MgKi8KPiArc3RhdGljIENMS19GSVhFRF9GQUNUT1JfRldfTkFNRShvc2MxMk1fY2xr LCAib3NjMTJNIiwgImhvc2MiLCAyLCAxLAo+IDApOwo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVj dCBjbGtfaHcgKmNsa19wYXJlbnRfcGxsX2F1ZGlvW10gPSB7Cj4gKwkmcGxsX2F1ZGlvX2hzX2Ns ay5jb21tb24uaHcKPiArfTsKPiArCj4gKy8qCj4gKyAqIFRoZSBkaXZpZGVyIG9mIHBsbC1hdWRp byBpcyBmaXhlZCB0byAyNCBmb3Igbm93LCBzbyAyNDU3NjAwMCBhbmQKPiAyMjU3OTIwMAo+ICsg KiByYXRlcyBjYW4gYmUgc2V0IGV4YWN0bHkgaW4gY29uanVuY3Rpb24gd2l0aCBzaWdtYS1kZWx0 YQo+IG1vZHVsYXRpb24uCj4gKyAqLwo+ICtzdGF0aWMgQ0xLX0ZJWEVEX0ZBQ1RPUl9IV1MocGxs X2F1ZGlvXzF4X2NsaywgInBsbC1hdWRpby0xeCIsCj4gKwkJCSAgICBjbGtfcGFyZW50X3BsbF9h dWRpbywKPiArCQkJICAgIDk2LCAxLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKPiArc3RhdGljIENM S19GSVhFRF9GQUNUT1JfSFdTKHBsbF9hdWRpb18yeF9jbGssICJwbGwtYXVkaW8tMngiLAo+ICsJ CQkgICAgY2xrX3BhcmVudF9wbGxfYXVkaW8sCj4gKwkJCSAgICA0OCwgMSwgQ0xLX1NFVF9SQVRF X1BBUkVOVCk7Cj4gK3N0YXRpYyBDTEtfRklYRURfRkFDVE9SX0hXUyhwbGxfYXVkaW9fNHhfY2xr LCAicGxsLWF1ZGlvLTR4IiwKPiArCQkJICAgIGNsa19wYXJlbnRfcGxsX2F1ZGlvLAo+ICsJCQkg ICAgMjQsIDEsIENMS19TRVRfUkFURV9QQVJFTlQpOwo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVj dCBjbGtfaHcgKnBsbF9wZXJpcGgwX3BhcmVudHNbXSA9IHsKPiArCSZwbGxfcGVyaXBoMF9jbGsu Y29tbW9uLmh3Cj4gK307Cj4gK3N0YXRpYyBDTEtfRklYRURfRkFDVE9SX0hXUyhwbGxfcGVyaXBo MF80eF9jbGssICJwbGwtcGVyaXBoMC00eCIsCj4gKwkJCSAgICBwbGxfcGVyaXBoMF9wYXJlbnRz LAo+ICsJCQkgICAgMSwgNCwgMCk7Cj4gK3N0YXRpYyBDTEtfRklYRURfRkFDVE9SX0hXUyhwbGxf cGVyaXBoMF8yeF9jbGssICJwbGwtcGVyaXBoMC0yeCIsCj4gKwkJCSAgICBwbGxfcGVyaXBoMF9w YXJlbnRzLAo+ICsJCQkgICAgMSwgMiwgMCk7Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNs a19odyAqcGxsX3BlcmlwaDFfcGFyZW50c1tdID0gewo+ICsJJnBsbF9wZXJpcGgxX2Nsay5jb21t b24uaHcKPiArfTsKPiArc3RhdGljIENMS19GSVhFRF9GQUNUT1JfSFdTKHBsbF9wZXJpcGgxXzR4 X2NsaywgInBsbC1wZXJpcGgxLTR4IiwKPiArCQkJICAgIHBsbF9wZXJpcGgxX3BhcmVudHMsCj4g KwkJCSAgICAxLCA0LCAwKTsKPiArc3RhdGljIENMS19GSVhFRF9GQUNUT1JfSFdTKHBsbF9wZXJp cGgxXzJ4X2NsaywgInBsbC1wZXJpcGgxLTJ4IiwKPiArCQkJICAgIHBsbF9wZXJpcGgxX3BhcmVu dHMsCj4gKwkJCSAgICAxLCAyLCAwKTsKPiArCj4gK3N0YXRpYyBDTEtfRklYRURfRkFDVE9SX0hX KHBsbF92aWRlbzBfNHhfY2xrLCAicGxsLXZpZGVvMC00eCIsCj4gKwkJCSAgICZwbGxfdmlkZW8w X2Nsay5jb21tb24uaHcsCj4gKwkJCSAgIDEsIDQsIENMS19TRVRfUkFURV9QQVJFTlQpOwo+ICtz dGF0aWMgQ0xLX0ZJWEVEX0ZBQ1RPUl9IVyhwbGxfdmlkZW8xXzR4X2NsaywgInBsbC12aWRlbzEt NHgiLAo+ICsJCQkgICAmcGxsX3ZpZGVvMV9jbGsuY29tbW9uLmh3LAo+ICsJCQkgICAxLCA0LCBD TEtfU0VUX1JBVEVfUEFSRU5UKTsKPiArc3RhdGljIENMS19GSVhFRF9GQUNUT1JfSFcocGxsX3Zp ZGVvMl80eF9jbGssICJwbGwtdmlkZW8yLTR4IiwKPiArCQkJICAgJnBsbF92aWRlbzJfY2xrLmNv bW1vbi5odywKPiArCQkJICAgMSwgNCwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Cj4gKwo+ICtzdGF0 aWMgc3RydWN0IGNjdV9jb21tb24gKnN1bjUwaV9oNjE2X2NjdV9jbGtzW10gPSB7Cj4gKwkmcGxs X2NwdXhfY2xrLmNvbW1vbiwKPiArCSZwbGxfZGRyMF9jbGsuY29tbW9uLAo+ICsJJnBsbF9kZHIx X2Nsay5jb21tb24sCj4gKwkmcGxsX3BlcmlwaDBfY2xrLmNvbW1vbiwKPiArCSZwbGxfcGVyaXBo MV9jbGsuY29tbW9uLAo+ICsJJnBsbF9ncHVfY2xrLmNvbW1vbiwKPiArCSZwbGxfdmlkZW8wX2Ns ay5jb21tb24sCj4gKwkmcGxsX3ZpZGVvMV9jbGsuY29tbW9uLAo+ICsJJnBsbF92aWRlbzJfY2xr LmNvbW1vbiwKPiArCSZwbGxfdmVfY2xrLmNvbW1vbiwKPiArCSZwbGxfZGVfY2xrLmNvbW1vbiwK PiArCSZwbGxfYXVkaW9faHNfY2xrLmNvbW1vbiwKPiArCSZjcHV4X2Nsay5jb21tb24sCj4gKwkm YXhpX2Nsay5jb21tb24sCj4gKwkmY3B1eF9hcGJfY2xrLmNvbW1vbiwKPiArCSZwc2lfYWhiMV9h aGIyX2Nsay5jb21tb24sCj4gKwkmYWhiM19jbGsuY29tbW9uLAo+ICsJJmFwYjFfY2xrLmNvbW1v biwKPiArCSZhcGIyX2Nsay5jb21tb24sCj4gKwkmbWJ1c19jbGsuY29tbW9uLAo+ICsJJmRlX2Ns ay5jb21tb24sCj4gKwkmYnVzX2RlX2Nsay5jb21tb24sCj4gKwkmZGVpbnRlcmxhY2VfY2xrLmNv bW1vbiwKPiArCSZidXNfZGVpbnRlcmxhY2VfY2xrLmNvbW1vbiwKPiArCSZnMmRfY2xrLmNvbW1v biwKPiArCSZidXNfZzJkX2Nsay5jb21tb24sCj4gKwkmZ3B1MF9jbGsuY29tbW9uLAo+ICsJJmJ1 c19ncHVfY2xrLmNvbW1vbiwKPiArCSZncHUxX2Nsay5jb21tb24sCj4gKwkmY2VfY2xrLmNvbW1v biwKPiArCSZidXNfY2VfY2xrLmNvbW1vbiwKPiArCSZ2ZV9jbGsuY29tbW9uLAo+ICsJJmJ1c192 ZV9jbGsuY29tbW9uLAo+ICsJJmJ1c19kbWFfY2xrLmNvbW1vbiwKPiArCSZidXNfaHN0aW1lcl9j bGsuY29tbW9uLAo+ICsJJmF2c19jbGsuY29tbW9uLAo+ICsJJmJ1c19kYmdfY2xrLmNvbW1vbiwK PiArCSZidXNfcHNpX2Nsay5jb21tb24sCj4gKwkmYnVzX3B3bV9jbGsuY29tbW9uLAo+ICsJJmJ1 c19pb21tdV9jbGsuY29tbW9uLAo+ICsJJmRyYW1fY2xrLmNvbW1vbiwKPiArCSZtYnVzX2RtYV9j bGsuY29tbW9uLAo+ICsJJm1idXNfdmVfY2xrLmNvbW1vbiwKPiArCSZtYnVzX2NlX2Nsay5jb21t b24sCj4gKwkmbWJ1c190c19jbGsuY29tbW9uLAo+ICsJJm1idXNfbmFuZF9jbGsuY29tbW9uLAo+ ICsJJm1idXNfZzJkX2Nsay5jb21tb24sCj4gKwkmYnVzX2RyYW1fY2xrLmNvbW1vbiwKPiArCSZu YW5kMF9jbGsuY29tbW9uLAo+ICsJJm5hbmQxX2Nsay5jb21tb24sCj4gKwkmYnVzX25hbmRfY2xr LmNvbW1vbiwKPiArCSZtbWMwX2Nsay5jb21tb24sCj4gKwkmbW1jMV9jbGsuY29tbW9uLAo+ICsJ Jm1tYzJfY2xrLmNvbW1vbiwKPiArCSZidXNfbW1jMF9jbGsuY29tbW9uLAo+ICsJJmJ1c19tbWMx X2Nsay5jb21tb24sCj4gKwkmYnVzX21tYzJfY2xrLmNvbW1vbiwKPiArCSZidXNfdWFydDBfY2xr LmNvbW1vbiwKPiArCSZidXNfdWFydDFfY2xrLmNvbW1vbiwKPiArCSZidXNfdWFydDJfY2xrLmNv bW1vbiwKPiArCSZidXNfdWFydDNfY2xrLmNvbW1vbiwKPiArCSZidXNfdWFydDRfY2xrLmNvbW1v biwKPiArCSZidXNfdWFydDVfY2xrLmNvbW1vbiwKPiArCSZidXNfaTJjMF9jbGsuY29tbW9uLAo+ ICsJJmJ1c19pMmMxX2Nsay5jb21tb24sCj4gKwkmYnVzX2kyYzJfY2xrLmNvbW1vbiwKPiArCSZi dXNfaTJjM19jbGsuY29tbW9uLAo+ICsJJmJ1c19pMmM0X2Nsay5jb21tb24sCj4gKwkmc3BpMF9j bGsuY29tbW9uLAo+ICsJJnNwaTFfY2xrLmNvbW1vbiwKPiArCSZidXNfc3BpMF9jbGsuY29tbW9u LAo+ICsJJmJ1c19zcGkxX2Nsay5jb21tb24sCj4gKwkmZW1hY18yNW1fY2xrLmNvbW1vbiwKPiAr CSZidXNfZW1hYzBfY2xrLmNvbW1vbiwKPiArCSZidXNfZW1hYzFfY2xrLmNvbW1vbiwKPiArCSZ0 c19jbGsuY29tbW9uLAo+ICsJJmJ1c190c19jbGsuY29tbW9uLAo+ICsJJmJ1c190aHNfY2xrLmNv bW1vbiwKPiArCSZzcGRpZl9jbGsuY29tbW9uLAo+ICsJJmJ1c19zcGRpZl9jbGsuY29tbW9uLAo+ ICsJJmRtaWNfY2xrLmNvbW1vbiwKPiArCSZidXNfZG1pY19jbGsuY29tbW9uLAo+ICsJJmF1ZGlv X2NvZGVjXzF4X2Nsay5jb21tb24sCj4gKwkmYXVkaW9fY29kZWNfNHhfY2xrLmNvbW1vbiwKPiAr CSZidXNfYXVkaW9fY29kZWNfY2xrLmNvbW1vbiwKPiArCSZhdWRpb19odWJfY2xrLmNvbW1vbiwK PiArCSZidXNfYXVkaW9faHViX2Nsay5jb21tb24sCj4gKwkmdXNiX29oY2kwX2Nsay5jb21tb24s Cj4gKwkmdXNiX3BoeTBfY2xrLmNvbW1vbiwKPiArCSZ1c2Jfb2hjaTFfY2xrLmNvbW1vbiwKPiAr CSZ1c2JfcGh5MV9jbGsuY29tbW9uLAo+ICsJJnVzYl9vaGNpMl9jbGsuY29tbW9uLAo+ICsJJnVz Yl9waHkyX2Nsay5jb21tb24sCj4gKwkmdXNiX29oY2kzX2Nsay5jb21tb24sCj4gKwkmdXNiX3Bo eTNfY2xrLmNvbW1vbiwKPiArCSZidXNfb2hjaTBfY2xrLmNvbW1vbiwKPiArCSZidXNfb2hjaTFf Y2xrLmNvbW1vbiwKPiArCSZidXNfb2hjaTJfY2xrLmNvbW1vbiwKPiArCSZidXNfb2hjaTNfY2xr LmNvbW1vbiwKPiArCSZidXNfZWhjaTBfY2xrLmNvbW1vbiwKPiArCSZidXNfZWhjaTFfY2xrLmNv bW1vbiwKPiArCSZidXNfZWhjaTJfY2xrLmNvbW1vbiwKPiArCSZidXNfZWhjaTNfY2xrLmNvbW1v biwKPiArCSZidXNfb3RnX2Nsay5jb21tb24sCj4gKwkmYnVzX2tleWFkY19jbGsuY29tbW9uLAo+ ICsJJmhkbWlfY2xrLmNvbW1vbiwKPiArCSZoZG1pX3Nsb3dfY2xrLmNvbW1vbiwKPiArCSZoZG1p X2NlY19jbGsuY29tbW9uLAo+ICsJJmJ1c19oZG1pX2Nsay5jb21tb24sCj4gKwkmYnVzX3Rjb25f dG9wX2Nsay5jb21tb24sCj4gKwkmdGNvbl90djBfY2xrLmNvbW1vbiwKPiArCSZidXNfdGNvbl90 djBfY2xrLmNvbW1vbiwKPiArCSZoZGNwX2Nsay5jb21tb24sCj4gKwkmYnVzX2hkY3BfY2xrLmNv bW1vbiwKPiArfTsKPiArCj4gK3N0YXRpYyBzdHJ1Y3QgY2xrX2h3X29uZWNlbGxfZGF0YSBzdW41 MGlfaDYxNl9od19jbGtzID0gewo+ICsJLmh3cwk9IHsKPiArCQlbQ0xLX09TQzEyTV0JCT0gJm9z YzEyTV9jbGsuaHcsCj4gKwkJW0NMS19QTExfQ1BVWF0JCT0gJnBsbF9jcHV4X2Nsay5jb21tb24u aHcsCj4gKwkJW0NMS19QTExfRERSMF0JCT0gJnBsbF9kZHIwX2Nsay5jb21tb24uaHcsCj4gKwkJ W0NMS19QTExfRERSMV0JCT0gJnBsbF9kZHIxX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19QTExf UEVSSVBIMF0JPSAmcGxsX3BlcmlwaDBfY2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX1BMTF9QRVJJ UEgwXzJYXQk9ICZwbGxfcGVyaXBoMF8yeF9jbGsuaHcsCj4gKwkJW0NMS19QTExfUEVSSVBIMF80 WF0JPSAmcGxsX3BlcmlwaDBfNHhfY2xrLmh3LAo+ICsJCVtDTEtfUExMX1BFUklQSDFdCT0gJnBs bF9wZXJpcGgxX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19QTExfUEVSSVBIMV8yWF0JPSAmcGxs X3BlcmlwaDFfMnhfY2xrLmh3LAo+ICsJCVtDTEtfUExMX1BFUklQSDFfNFhdCT0gJnBsbF9wZXJp cGgxXzR4X2Nsay5odywKPiArCQlbQ0xLX1BMTF9HUFVdCQk9ICZwbGxfZ3B1X2Nsay5jb21tb24u aHcsCj4gKwkJW0NMS19QTExfVklERU8wXQk9ICZwbGxfdmlkZW8wX2Nsay5jb21tb24uaHcsCj4g KwkJW0NMS19QTExfVklERU8wXzRYXQk9ICZwbGxfdmlkZW8wXzR4X2Nsay5odywKPiArCQlbQ0xL X1BMTF9WSURFTzFdCT0gJnBsbF92aWRlbzFfY2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX1BMTF9W SURFTzFfNFhdCT0gJnBsbF92aWRlbzFfNHhfY2xrLmh3LAo+ICsJCVtDTEtfUExMX1ZJREVPMl0J PSAmcGxsX3ZpZGVvMl9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfUExMX1ZJREVPMl80WF0JPSAm cGxsX3ZpZGVvMl80eF9jbGsuaHcsCj4gKwkJW0NMS19QTExfVkVdCQk9ICZwbGxfdmVfY2xrLmNv bW1vbi5odywKPiArCQlbQ0xLX1BMTF9ERV0JCT0gJnBsbF9kZV9jbGsuY29tbW9uLmh3LAo+ICsJ CVtDTEtfUExMX0FVRElPX0hTXQk9Cj4gJnBsbF9hdWRpb19oc19jbGsuY29tbW9uLmh3LAo+ICsJ CVtDTEtfUExMX0FVRElPXzFYXQk9ICZwbGxfYXVkaW9fMXhfY2xrLmh3LAo+ICsJCVtDTEtfUExM X0FVRElPXzJYXQk9ICZwbGxfYXVkaW9fMnhfY2xrLmh3LAo+ICsJCVtDTEtfUExMX0FVRElPXzRY XQk9ICZwbGxfYXVkaW9fNHhfY2xrLmh3LAo+ICsJCVtDTEtfQ1BVWF0JCT0gJmNwdXhfY2xrLmNv bW1vbi5odywKPiArCQlbQ0xLX0FYSV0JCT0gJmF4aV9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtf Q1BVWF9BUEJdCQk9ICZjcHV4X2FwYl9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfUFNJX0FIQjFf QUhCMl0JPQo+ICZwc2lfYWhiMV9haGIyX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19BSEIzXQkJ PSAmYWhiM19jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQVBCMV0JCT0gJmFwYjFfY2xrLmNvbW1v bi5odywKPiArCQlbQ0xLX0FQQjJdCQk9ICZhcGIyX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19N QlVTXQkJPSAmbWJ1c19jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfREVdCQk9ICZkZV9jbGsuY29t bW9uLmh3LAo+ICsJCVtDTEtfQlVTX0RFXQkJPSAmYnVzX2RlX2Nsay5jb21tb24uaHcsCj4gKwkJ W0NMS19ERUlOVEVSTEFDRV0JPSAmZGVpbnRlcmxhY2VfY2xrLmNvbW1vbi5odywKPiArCQlbQ0xL X0JVU19ERUlOVEVSTEFDRV0JPQo+ICZidXNfZGVpbnRlcmxhY2VfY2xrLmNvbW1vbi5odywKPiAr CQlbQ0xLX0cyRF0JCT0gJmcyZF9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQlVTX0cyRF0JCT0g JmJ1c19nMmRfY2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX0dQVTBdCQk9ICZncHUwX2Nsay5jb21t b24uaHcsCj4gKwkJW0NMS19CVVNfR1BVXQkJPSAmYnVzX2dwdV9jbGsuY29tbW9uLmh3LAo+ICsJ CVtDTEtfR1BVMV0JCT0gJmdwdTFfY2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX0NFXQkJPSAmY2Vf Y2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX0JVU19DRV0JCT0gJmJ1c19jZV9jbGsuY29tbW9uLmh3 LAo+ICsJCVtDTEtfVkVdCQk9ICZ2ZV9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQlVTX1ZFXQkJ PSAmYnVzX3ZlX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19CVVNfRE1BXQkJPSAmYnVzX2RtYV9j bGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQlVTX0hTVElNRVJdCT0gJmJ1c19oc3RpbWVyX2Nsay5j b21tb24uaHcsCj4gKwkJW0NMS19BVlNdCQk9ICZhdnNfY2xrLmNvbW1vbi5odywKPiArCQlbQ0xL X0JVU19EQkddCQk9ICZidXNfZGJnX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19CVVNfUFNJXQkJ PSAmYnVzX3BzaV9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQlVTX1BXTV0JCT0gJmJ1c19wd21f Y2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX0JVU19JT01NVV0JCT0gJmJ1c19pb21tdV9jbGsuY29t bW9uLmh3LAo+ICsJCVtDTEtfRFJBTV0JCT0gJmRyYW1fY2xrLmNvbW1vbi5odywKPiArCQlbQ0xL X01CVVNfRE1BXQkJPSAmbWJ1c19kbWFfY2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX01CVVNfVkVd CQk9ICZtYnVzX3ZlX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19NQlVTX0NFXQkJPSAmbWJ1c19j ZV9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfTUJVU19UU10JCT0gJm1idXNfdHNfY2xrLmNvbW1v bi5odywKPiArCQlbQ0xLX01CVVNfTkFORF0JCT0gJm1idXNfbmFuZF9jbGsuY29tbW9uLmh3LAo+ ICsJCVtDTEtfTUJVU19HMkRdCQk9ICZtYnVzX2cyZF9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtf QlVTX0RSQU1dCQk9ICZidXNfZHJhbV9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfTkFORDBdCQk9 ICZuYW5kMF9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfTkFORDFdCQk9ICZuYW5kMV9jbGsuY29t bW9uLmh3LAo+ICsJCVtDTEtfQlVTX05BTkRdCQk9ICZidXNfbmFuZF9jbGsuY29tbW9uLmh3LAo+ ICsJCVtDTEtfTU1DMF0JCT0gJm1tYzBfY2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX01NQzFdCQk9 ICZtbWMxX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19NTUMyXQkJPSAmbW1jMl9jbGsuY29tbW9u Lmh3LAo+ICsJCVtDTEtfQlVTX01NQzBdCQk9ICZidXNfbW1jMF9jbGsuY29tbW9uLmh3LAo+ICsJ CVtDTEtfQlVTX01NQzFdCQk9ICZidXNfbW1jMV9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQlVT X01NQzJdCQk9ICZidXNfbW1jMl9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQlVTX1VBUlQwXQkJ PSAmYnVzX3VhcnQwX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19CVVNfVUFSVDFdCQk9ICZidXNf dWFydDFfY2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX0JVU19VQVJUMl0JCT0gJmJ1c191YXJ0Ml9j bGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQlVTX1VBUlQzXQkJPSAmYnVzX3VhcnQzX2Nsay5jb21t b24uaHcsCj4gKwkJW0NMS19CVVNfVUFSVDRdCQk9ICZidXNfdWFydDRfY2xrLmNvbW1vbi5odywK PiArCQlbQ0xLX0JVU19VQVJUNV0JCT0gJmJ1c191YXJ0NV9jbGsuY29tbW9uLmh3LAo+ICsJCVtD TEtfQlVTX0kyQzBdCQk9ICZidXNfaTJjMF9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQlVTX0ky QzFdCQk9ICZidXNfaTJjMV9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQlVTX0kyQzJdCQk9ICZi dXNfaTJjMl9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQlVTX0kyQzNdCQk9ICZidXNfaTJjM19j bGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQlVTX0kyQzRdCQk9ICZidXNfaTJjNF9jbGsuY29tbW9u Lmh3LAo+ICsJCVtDTEtfU1BJMF0JCT0gJnNwaTBfY2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX1NQ STFdCQk9ICZzcGkxX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19CVVNfU1BJMF0JCT0gJmJ1c19z cGkwX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19CVVNfU1BJMV0JCT0gJmJ1c19zcGkxX2Nsay5j b21tb24uaHcsCj4gKwkJW0NMS19FTUFDXzI1TV0JCT0gJmVtYWNfMjVtX2Nsay5jb21tb24uaHcs Cj4gKwkJW0NMS19CVVNfRU1BQzBdCQk9ICZidXNfZW1hYzBfY2xrLmNvbW1vbi5odywKPiArCQlb Q0xLX0JVU19FTUFDMV0JCT0gJmJ1c19lbWFjMV9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfVFNd CQk9ICZ0c19jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQlVTX1RTXQkJPSAmYnVzX3RzX2Nsay5j b21tb24uaHcsCj4gKwkJW0NMS19CVVNfVEhTXQkJPSAmYnVzX3Roc19jbGsuY29tbW9uLmh3LAo+ ICsJCVtDTEtfU1BESUZdCQk9ICZzcGRpZl9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQlVTX1NQ RElGXQkJPSAmYnVzX3NwZGlmX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19ETUlDXQkJPSAmZG1p Y19jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQlVTX0RNSUNdCQk9ICZidXNfZG1pY19jbGsuY29t bW9uLmh3LAo+ICsJCVtDTEtfQVVESU9fQ09ERUNfMVhdCT0KPiAmYXVkaW9fY29kZWNfMXhfY2xr LmNvbW1vbi5odywKPiArCQlbQ0xLX0FVRElPX0NPREVDXzRYXQk9Cj4gJmF1ZGlvX2NvZGVjXzR4 X2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19CVVNfQVVESU9fQ09ERUNdCT0KPiAmYnVzX2F1ZGlv X2NvZGVjX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19BVURJT19IVUJdCQk9ICZhdWRpb19odWJf Y2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX0JVU19BVURJT19IVUJdCT0KPiAmYnVzX2F1ZGlvX2h1 Yl9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfVVNCX09IQ0kwXQkJPSAmdXNiX29oY2kwX2Nsay5j b21tb24uaHcsCj4gKwkJW0NMS19VU0JfUEhZMF0JCT0gJnVzYl9waHkwX2Nsay5jb21tb24uaHcs Cj4gKwkJW0NMS19VU0JfT0hDSTFdCQk9ICZ1c2Jfb2hjaTFfY2xrLmNvbW1vbi5odywKPiArCQlb Q0xLX1VTQl9QSFkxXQkJPSAmdXNiX3BoeTFfY2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX1VTQl9P SENJMl0JCT0gJnVzYl9vaGNpMl9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfVVNCX1BIWTJdCQk9 ICZ1c2JfcGh5Ml9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfVVNCX09IQ0kzXQkJPSAmdXNiX29o Y2kzX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19VU0JfUEhZM10JCT0gJnVzYl9waHkzX2Nsay5j b21tb24uaHcsCj4gKwkJW0NMS19CVVNfT0hDSTBdCQk9ICZidXNfb2hjaTBfY2xrLmNvbW1vbi5o dywKPiArCQlbQ0xLX0JVU19PSENJMV0JCT0gJmJ1c19vaGNpMV9jbGsuY29tbW9uLmh3LAo+ICsJ CVtDTEtfQlVTX09IQ0kyXQkJPSAmYnVzX29oY2kyX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19C VVNfT0hDSTNdCQk9ICZidXNfb2hjaTNfY2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX0JVU19FSENJ MF0JCT0gJmJ1c19laGNpMF9jbGsuY29tbW9uLmh3LAo+ICsJCVtDTEtfQlVTX0VIQ0kxXQkJPSAm YnVzX2VoY2kxX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19CVVNfRUhDSTJdCQk9ICZidXNfZWhj aTJfY2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX0JVU19FSENJM10JCT0gJmJ1c19laGNpM19jbGsu Y29tbW9uLmh3LAo+ICsJCVtDTEtfQlVTX09UR10JCT0gJmJ1c19vdGdfY2xrLmNvbW1vbi5odywK PiArCQlbQ0xLX0JVU19LRVlBRENdCT0gJmJ1c19rZXlhZGNfY2xrLmNvbW1vbi5odywKPiArCQlb Q0xLX0hETUldCQk9ICZoZG1pX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19IRE1JX1NMT1ddCQk9 ICZoZG1pX3Nsb3dfY2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX0hETUlfQ0VDXQkJPSAmaGRtaV9j ZWNfY2xrLmNvbW1vbi5odywKPiArCQlbQ0xLX0JVU19IRE1JXQkJPSAmYnVzX2hkbWlfY2xrLmNv bW1vbi5odywKPiArCQlbQ0xLX0JVU19UQ09OX1RPUF0JPQo+ICZidXNfdGNvbl90b3BfY2xrLmNv bW1vbi5odywKPiArCQlbQ0xLX1RDT05fVFYwXQkJPSAmdGNvbl90djBfY2xrLmNvbW1vbi5odywK PiArCQlbQ0xLX0JVU19UQ09OX1RWMF0JPQo+ICZidXNfdGNvbl90djBfY2xrLmNvbW1vbi5odywK PiArCQlbQ0xLX0hEQ1BdCQk9ICZoZGNwX2Nsay5jb21tb24uaHcsCj4gKwkJW0NMS19CVVNfSERD UF0JCT0gJmJ1c19oZGNwX2Nsay5jb21tb24uaHcsCj4gKwl9LAo+ICsJLm51bSA9IENMS19OVU1C RVIsCj4gK307Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGNjdV9yZXNldF9tYXAgc3VuNTBpX2g2MTZf Y2N1X3Jlc2V0c1tdID0gewo+ICsJW1JTVF9NQlVTXQkJPSB7IDB4NTQwLCBCSVQoMzApIH0sCj4g Kwo+ICsJW1JTVF9CVVNfREVdCQk9IHsgMHg2MGMsIEJJVCgxNikgfSwKPiArCVtSU1RfQlVTX0RF SU5URVJMQUNFXQk9IHsgMHg2MmMsIEJJVCgxNikgfSwKPiArCVtSU1RfQlVTX0dQVV0JCT0geyAw eDY3YywgQklUKDE2KSB9LAo+ICsJW1JTVF9CVVNfQ0VdCQk9IHsgMHg2OGMsIEJJVCgxNikgfSwK PiArCVtSU1RfQlVTX1ZFXQkJPSB7IDB4NjljLCBCSVQoMTYpIH0sCj4gKwlbUlNUX0JVU19ETUFd CQk9IHsgMHg3MGMsIEJJVCgxNikgfSwKPiArCVtSU1RfQlVTX0hTVElNRVJdCT0geyAweDczYywg QklUKDE2KSB9LAo+ICsJW1JTVF9CVVNfREJHXQkJPSB7IDB4NzhjLCBCSVQoMTYpIH0sCj4gKwlb UlNUX0JVU19QU0ldCQk9IHsgMHg3OWMsIEJJVCgxNikgfSwKPiArCVtSU1RfQlVTX1BXTV0JCT0g eyAweDdhYywgQklUKDE2KSB9LAo+ICsJW1JTVF9CVVNfSU9NTVVdCQk9IHsgMHg3YmMsIEJJVCgx NikgfSwKPiArCVtSU1RfQlVTX0RSQU1dCQk9IHsgMHg4MGMsIEJJVCgxNikgfSwKPiArCVtSU1Rf QlVTX05BTkRdCQk9IHsgMHg4MmMsIEJJVCgxNikgfSwKPiArCVtSU1RfQlVTX01NQzBdCQk9IHsg MHg4NGMsIEJJVCgxNikgfSwKPiArCVtSU1RfQlVTX01NQzFdCQk9IHsgMHg4NGMsIEJJVCgxNykg fSwKPiArCVtSU1RfQlVTX01NQzJdCQk9IHsgMHg4NGMsIEJJVCgxOCkgfSwKPiArCVtSU1RfQlVT X1VBUlQwXQkJPSB7IDB4OTBjLCBCSVQoMTYpIH0sCj4gKwlbUlNUX0JVU19VQVJUMV0JCT0geyAw eDkwYywgQklUKDE3KSB9LAo+ICsJW1JTVF9CVVNfVUFSVDJdCQk9IHsgMHg5MGMsIEJJVCgxOCkg fSwKPiArCVtSU1RfQlVTX1VBUlQzXQkJPSB7IDB4OTBjLCBCSVQoMTkpIH0sCj4gKwlbUlNUX0JV U19VQVJUNF0JCT0geyAweDkwYywgQklUKDIwKSB9LAo+ICsJW1JTVF9CVVNfVUFSVDVdCQk9IHsg MHg5MGMsIEJJVCgyMSkgfSwKPiArCVtSU1RfQlVTX0kyQzBdCQk9IHsgMHg5MWMsIEJJVCgxNikg fSwKPiArCVtSU1RfQlVTX0kyQzFdCQk9IHsgMHg5MWMsIEJJVCgxNykgfSwKPiArCVtSU1RfQlVT X0kyQzJdCQk9IHsgMHg5MWMsIEJJVCgxOCkgfSwKPiArCVtSU1RfQlVTX0kyQzNdCQk9IHsgMHg5 MWMsIEJJVCgxOSkgfSwKPiArCVtSU1RfQlVTX0kyQzRdCQk9IHsgMHg5MWMsIEJJVCgyMCkgfSwK PiArCVtSU1RfQlVTX1NQSTBdCQk9IHsgMHg5NmMsIEJJVCgxNikgfSwKPiArCVtSU1RfQlVTX1NQ STFdCQk9IHsgMHg5NmMsIEJJVCgxNykgfSwKPiArCVtSU1RfQlVTX0VNQUMwXQkJPSB7IDB4OTdj LCBCSVQoMTYpIH0sCj4gKwlbUlNUX0JVU19FTUFDMV0JCT0geyAweDk3YywgQklUKDE3KSB9LAo+ ICsJW1JTVF9CVVNfVFNdCQk9IHsgMHg5YmMsIEJJVCgxNikgfSwKPiArCVtSU1RfQlVTX1RIU10J CT0geyAweDlmYywgQklUKDE2KSB9LAo+ICsJW1JTVF9CVVNfU1BESUZdCQk9IHsgMHhhMmMsIEJJ VCgxNikgfSwKPiArCVtSU1RfQlVTX0RNSUNdCQk9IHsgMHhhNGMsIEJJVCgxNikgfSwKPiArCVtS U1RfQlVTX0FVRElPX0NPREVDXQk9IHsgMHhhNWMsIEJJVCgxNikgfSwKPiArCVtSU1RfQlVTX0FV RElPX0hVQl0JPSB7IDB4YTZjLCBCSVQoMTYpIH0sCj4gKwo+ICsJW1JTVF9VU0JfUEhZMF0JCT0g eyAweGE3MCwgQklUKDMwKSB9LAo+ICsJW1JTVF9VU0JfUEhZMV0JCT0geyAweGE3NCwgQklUKDMw KSB9LAo+ICsJW1JTVF9VU0JfUEhZMl0JCT0geyAweGE3OCwgQklUKDMwKSB9LAo+ICsJW1JTVF9V U0JfUEhZM10JCT0geyAweGE3YywgQklUKDMwKSB9LAo+ICsKPiArCVtSU1RfQlVTX09IQ0kwXQkJ PSB7IDB4YThjLCBCSVQoMTYpIH0sCj4gKwlbUlNUX0JVU19PSENJMV0JCT0geyAweGE4YywgQklU KDE3KSB9LAo+ICsJW1JTVF9CVVNfT0hDSTJdCQk9IHsgMHhhOGMsIEJJVCgxOCkgfSwKPiArCVtS U1RfQlVTX09IQ0kzXQkJPSB7IDB4YThjLCBCSVQoMTkpIH0sCj4gKwlbUlNUX0JVU19FSENJMF0J CT0geyAweGE4YywgQklUKDIwKSB9LAo+ICsJW1JTVF9CVVNfRUhDSTFdCQk9IHsgMHhhOGMsIEJJ VCgyMSkgfSwKPiArCVtSU1RfQlVTX0VIQ0kyXQkJPSB7IDB4YThjLCBCSVQoMjIpIH0sCj4gKwlb UlNUX0JVU19FSENJM10JCT0geyAweGE4YywgQklUKDIzKSB9LAo+ICsJW1JTVF9CVVNfT1RHXQkJ PSB7IDB4YThjLCBCSVQoMjQpIH0sCj4gKwlbUlNUX0JVU19LRVlBRENdCT0geyAweGE5YywgQklU KDE2KSB9LAo+ICsKPiArCVtSU1RfQlVTX0hETUldCQk9IHsgMHhiMWMsIEJJVCgxNikgfSwKPiAr CVtSU1RfQlVTX0hETUlfU1VCXQk9IHsgMHhiMWMsIEJJVCgxNykgfSwKPiArCVtSU1RfQlVTX1RD T05fVE9QXQk9IHsgMHhiNWMsIEJJVCgxNikgfSwKPiArCVtSU1RfQlVTX1RDT05fVFYwXQk9IHsg MHhiOWMsIEJJVCgxNikgfSwKPiArCVtSU1RfQlVTX0hEQ1BdCQk9IHsgMHhjNGMsIEJJVCgxNikg fSwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3VueGlfY2N1X2Rlc2Mgc3VuNTBp X2g2MTZfY2N1X2Rlc2MgPSB7Cj4gKwkuY2N1X2Nsa3MJPSBzdW41MGlfaDYxNl9jY3VfY2xrcywK PiArCS5udW1fY2N1X2Nsa3MJPSBBUlJBWV9TSVpFKHN1bjUwaV9oNjE2X2NjdV9jbGtzKSwKPiAr Cj4gKwkuaHdfY2xrcwk9ICZzdW41MGlfaDYxNl9od19jbGtzLAo+ICsKPiArCS5yZXNldHMJCT0g c3VuNTBpX2g2MTZfY2N1X3Jlc2V0cywKPiArCS5udW1fcmVzZXRzCT0gQVJSQVlfU0laRShzdW41 MGlfaDYxNl9jY3VfcmVzZXRzKSwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCB1MzIgcGxsX3Jl Z3NbXSA9IHsKPiArCVNVTjUwSV9INjE2X1BMTF9DUFVYX1JFRywKPiArCVNVTjUwSV9INjE2X1BM TF9ERFIwX1JFRywKPiArCVNVTjUwSV9INjE2X1BMTF9ERFIxX1JFRywKPiArCVNVTjUwSV9INjE2 X1BMTF9QRVJJUEgwX1JFRywKPiArCVNVTjUwSV9INjE2X1BMTF9QRVJJUEgxX1JFRywKPiArCVNV TjUwSV9INjE2X1BMTF9HUFVfUkVHLAo+ICsJU1VONTBJX0g2MTZfUExMX1ZJREVPMF9SRUcsCj4g KwlTVU41MElfSDYxNl9QTExfVklERU8xX1JFRywKPiArCVNVTjUwSV9INjE2X1BMTF9WSURFTzJf UkVHLAo+ICsJU1VONTBJX0g2MTZfUExMX1ZFX1JFRywKPiArCVNVTjUwSV9INjE2X1BMTF9ERV9S RUcsCj4gKwlTVU41MElfSDYxNl9QTExfQVVESU9fUkVHLAo+ICt9Owo+ICsKPiArc3RhdGljIGNv bnN0IHUzMiBwbGxfdmlkZW9fcmVnc1tdID0gewo+ICsJU1VONTBJX0g2MTZfUExMX1ZJREVPMF9S RUcsCj4gKwlTVU41MElfSDYxNl9QTExfVklERU8xX1JFRywKPiArCVNVTjUwSV9INjE2X1BMTF9W SURFTzJfUkVHLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHUzMiB1c2IyX2Nsa19yZWdzW10g PSB7Cj4gKwlTVU41MElfSDYxNl9VU0IwX0NMS19SRUcsCj4gKwlTVU41MElfSDYxNl9VU0IxX0NM S19SRUcsCj4gKwlTVU41MElfSDYxNl9VU0IyX0NMS19SRUcsCj4gKwlTVU41MElfSDYxNl9VU0Iz X0NMS19SRUcsCj4gK307Cj4gKwo+ICtzdGF0aWMgaW50IHN1bjUwaV9oNjE2X2NjdV9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgcmVzb3VyY2UgKnJl czsKPiArCXZvaWQgX19pb21lbSAqcmVnOwo+ICsJdTMyIHZhbDsKPiArCWludCBpOwo+ICsKPiAr CXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Cj4g KwlyZWcgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgcmVzKTsKPiArCWlmIChJ U19FUlIocmVnKSkKPiArCQlyZXR1cm4gUFRSX0VSUihyZWcpOwo+ICsKPiArCS8qIEVuYWJsZSB0 aGUgbG9jayBiaXRzIG9uIGFsbCBQTExzICovCj4gKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0la RShwbGxfcmVncyk7IGkrKykgewo+ICsJCXZhbCA9IHJlYWRsKHJlZyArIHBsbF9yZWdzW2ldKTsK PiArCQl2YWwgfD0gQklUKDI5KTsKPiArCQl3cml0ZWwodmFsLCByZWcgKyBwbGxfcmVnc1tpXSk7 Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSAqIEZvcmNlIHRoZSBvdXRwdXQgZGl2aWRlciBvZiB2aWRl byBQTExzIHRvIDAuCj4gKwkgKgo+ICsJICogU2VlIHRoZSBjb21tZW50IGJlZm9yZSBwbGwtdmlk ZW8wIGRlZmluaXRpb24gZm9yIHRoZSByZWFzb24uCj4gKwkgKi8KPiArCWZvciAoaSA9IDA7IGkg PCBBUlJBWV9TSVpFKHBsbF92aWRlb19yZWdzKTsgaSsrKSB7Cj4gKwkJdmFsID0gcmVhZGwocmVn ICsgcGxsX3ZpZGVvX3JlZ3NbaV0pOwo+ICsJCXZhbCAmPSB+QklUKDApOwo+ICsJCXdyaXRlbCh2 YWwsIHJlZyArIHBsbF92aWRlb19yZWdzW2ldKTsKPiArCX0KPiArCj4gKwkvKgo+ICsJICogRm9y Y2UgT0hDSSAxMk0gY2xvY2sgc291cmNlcyB0byAwMCAoMTJNSHogZGl2aWRlZCBmcm9tCj4gNDhN SHopCj4gKwkgKgo+ICsJICogVGhpcyBjbG9jayBtdXggaXMgc3RpbGwgbXlzdGVyaW91cywgYW5k IHRoZSBjb2RlIGp1c3QKPiBlbmZvcmNlcwo+ICsJICogaXQgdG8gaGF2ZSBhIHZhbGlkIGNsb2Nr IHBhcmVudC4KPiArCSAqLwo+ICsJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUodXNiMl9jbGtf cmVncyk7IGkrKykgewo+ICsJCXZhbCA9IHJlYWRsKHJlZyArIHVzYjJfY2xrX3JlZ3NbaV0pOwo+ ICsJCXZhbCAmPSB+R0VOTUFTSygyNSwgMjQpOwo+ICsJCXdyaXRlbCAodmFsLCByZWcgKyB1c2Iy X2Nsa19yZWdzW2ldKTsKPiArCX0KPiArCj4gKwkvKgo+ICsJICogRm9yY2UgdGhlIHBvc3QtZGl2 aWRlciBvZiBwbGwtYXVkaW8gdG8gMTIgYW5kIHRoZSBvdXRwdXQKPiBkaXZpZGVyCj4gKwkgKiBv ZiBpdCB0byAyLCBzbyAyNDU3NjAwMCBhbmQgMjI1NzkyMDAgcmF0ZXMgY2FuIGJlIHNldAo+IGV4 YWN0bHkuCj4gKwkgKi8KPiArCXZhbCA9IHJlYWRsKHJlZyArIFNVTjUwSV9INjE2X1BMTF9BVURJ T19SRUcpOwo+ICsJdmFsICY9IH4oR0VOTUFTSygyMSwgMTYpIHwgQklUKDApKTsKPiArCXdyaXRl bCh2YWwgfCAoMTEgPDwgMTYpIHwgQklUKDApLCByZWcgKwo+IFNVTjUwSV9INjE2X1BMTF9BVURJ T19SRUcpOwo+ICsKPiArCS8qCj4gKwkgKiBGaXJzdCBjbG9jayBwYXJlbnQgKG9zYzMySykgaXMg dW51c2FibGUgZm9yIENFQy4gQnV0IHNpbmNlCj4gdGhlcmUKPiArCSAqIGlzIG5vIGdvb2Qgd2F5 IHRvIGZvcmNlIHBhcmVudCBzd2l0Y2ggKGJvdGggcnVuIHdpdGggc2FtZQo+IGZyZXF1ZW5jeSks Cj4gKwkgKiBqdXN0IHNldCBzZWNvbmQgY2xvY2sgcGFyZW50IGhlcmUuCj4gKwkgKi8KPiArCXZh bCA9IHJlYWRsKHJlZyArIFNVTjUwSV9INjE2X0hETUlfQ0VDX0NMS19SRUcpOwo+ICsJdmFsIHw9 IEJJVCgyNCk7Cj4gKwl3cml0ZWwodmFsLCByZWcgKyBTVU41MElfSDYxNl9IRE1JX0NFQ19DTEtf UkVHKTsKPiArCj4gKwlyZXR1cm4gc3VueGlfY2N1X3Byb2JlKHBkZXYtPmRldi5vZl9ub2RlLCBy ZWcsCj4gJnN1bjUwaV9oNjE2X2NjdV9kZXNjKTsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBvZl9kZXZpY2VfaWQgc3VuNTBpX2g2MTZfY2N1X2lkc1tdID0gewo+ICsJeyAuY29tcGF0 aWJsZSA9ICJhbGx3aW5uZXIsc3VuNTBpLWg2MTYtY2N1IiwKPiArCQkuZGF0YSA9ICZzdW41MGlf aDYxNl9jY3VfZGVzYyB9LAo+ICsJeyB9Cj4gK307Cj4gKwo+ICtzdGF0aWMgc3RydWN0IHBsYXRm b3JtX2RyaXZlciBzdW41MGlfaDYxNl9jY3VfZHJpdmVyID0gewo+ICsJLnByb2JlCT0gc3VuNTBp X2g2MTZfY2N1X3Byb2JlLAo+ICsJLmRyaXZlcgk9IHsKPiArCQkubmFtZQk9ICJzdW41MGktaDYx Ni1jY3UiLAo+ICsJCS5vZl9tYXRjaF90YWJsZQk9IHN1bjUwaV9oNjE2X2NjdV9pZHMsCj4gKwl9 LAo+ICt9Owo+ICtidWlsdGluX3BsYXRmb3JtX2RyaXZlcihzdW41MGlfaDYxNl9jY3VfZHJpdmVy KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjUwaS1oNjE2LmgK PiBiL2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW41MGktaDYxNi5oCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLmRhOGYwYjEyMDZmOQo+IC0tLSAvZGV2L251 bGwKPiArKysgYi9kcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuNTBpLWg2MTYuaAo+IEBAIC0w LDAgKzEsNTggQEAKPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KPiAr LyoKPiArICogQ29weXJpZ2h0IDIwMjAgQXJtIEx0ZC4KPiArICovCj4gKwo+ICsjaWZuZGVmIF9D Q1VfU1VONTBJX0g2MTZfSF8KPiArI2RlZmluZSBfQ0NVX1NVTjUwSV9INjE2X0hfCj4gKwo+ICsj aW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svc3VuNTBpLWg2MTYtY2N1Lmg+Cj4gKyNpbmNsdWRl IDxkdC1iaW5kaW5ncy9yZXNldC9zdW41MGktaDYxNi1jY3UuaD4KPiArCj4gKyNkZWZpbmUgQ0xL X09TQzEyTQkJMAo+ICsjZGVmaW5lIENMS19QTExfQ1BVWAkJMQo+ICsjZGVmaW5lIENMS19QTExf RERSMAkJMgo+ICsjZGVmaW5lIENMS19QTExfRERSMQkJMwo+ICsKPiArLyogUExMX1BFUklQSDAg ZXhwb3J0ZWQgZm9yIFBSQ00gKi8KPiArCj4gKyNkZWZpbmUgQ0xLX1BMTF9QRVJJUEgwXzJYCTUK PiArI2RlZmluZSBDTEtfUExMX1BFUklQSDBfNFgJNgo+ICsjZGVmaW5lIENMS19QTExfUEVSSVBI MQkJNwo+ICsjZGVmaW5lIENMS19QTExfUEVSSVBIMV8yWAk4Cj4gKyNkZWZpbmUgQ0xLX1BMTF9Q RVJJUEgxXzRYCTkKPiArI2RlZmluZSBDTEtfUExMX0dQVQkJMTAKPiArI2RlZmluZSBDTEtfUExM X1ZJREVPMAkJMTEKPiArI2RlZmluZSBDTEtfUExMX1ZJREVPMF80WAkxMgo+ICsjZGVmaW5lIENM S19QTExfVklERU8xCQkxMwo+ICsjZGVmaW5lIENMS19QTExfVklERU8xXzRYCTE0Cj4gKyNkZWZp bmUgQ0xLX1BMTF9WSURFTzIJCTE1Cj4gKyNkZWZpbmUgQ0xLX1BMTF9WSURFTzJfNFgJMTYKPiAr I2RlZmluZSBDTEtfUExMX1ZFCQkxNwo+ICsjZGVmaW5lIENMS19QTExfREUJCTE4Cj4gKyNkZWZp bmUgQ0xLX1BMTF9BVURJT19IUwkxOQo+ICsjZGVmaW5lIENMS19QTExfQVVESU9fMVgJMjAKPiAr I2RlZmluZSBDTEtfUExMX0FVRElPXzJYCTIxCj4gKyNkZWZpbmUgQ0xLX1BMTF9BVURJT180WAky Mgo+ICsKPiArLyogQ1BVWCBjbG9jayBleHBvcnRlZCBmb3IgRFZGUyAqLwo+ICsKPiArI2RlZmlu ZSBDTEtfQVhJCQkJMjQKPiArI2RlZmluZSBDTEtfQ1BVWF9BUEIJCTI1Cj4gKyNkZWZpbmUgQ0xL X1BTSV9BSEIxX0FIQjIJMjYKPiArI2RlZmluZSBDTEtfQUhCMwkJMjcKPiArCj4gKy8qIEFQQjEg Y2xvY2sgZXhwb3J0ZWQgZm9yIFBJTyAqLwo+ICsKPiArI2RlZmluZSBDTEtfQVBCMgkJMjkKPiAr I2RlZmluZSBDTEtfTUJVUwkJMzAKPiArCj4gKy8qIEFsbCBtb2R1bGUgY2xvY2tzIGFuZCBidXMg Z2F0ZXMgYXJlIGV4cG9ydGVkIGV4Y2VwdCBEUkFNICovCj4gKwo+ICsjZGVmaW5lIENMS19EUkFN CQk1MQo+ICsKPiArI2RlZmluZSBDTEtfQlVTX0RSQU0JCTU4Cj4gKwo+ICsjZGVmaW5lIENMS19O VU1CRVIJCShDTEtfQlVTX0hEQ1AgKyAxKQo+ICsKPiArI2VuZGlmIC8qIF9DQ1VfU1VONTBJX0g2 MTZfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9zdW41MGkt aDYxNi1jY3UuaAo+IGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9zdW41MGktaDYxNi1jY3Uu aAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi5hOWNjODg0NGUz YTkKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9zdW41 MGktaDYxNi1jY3UuaAo+IEBAIC0wLDAgKzEsMTEwIEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiAoR1BMLTIuMCsgb3IgTUlUKQo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjAg QXJtIEx0ZC4KPiArICovCj4gKwo+ICsjaWZuZGVmIF9EVF9CSU5ESU5HU19DTEtfU1VONTBJX0g2 MTZfSF8KPiArI2RlZmluZSBfRFRfQklORElOR1NfQ0xLX1NVTjUwSV9INjE2X0hfCj4gKwo+ICsj ZGVmaW5lIENMS19QTExfUEVSSVBIMAkJNAo+ICsKPiArI2RlZmluZSBDTEtfQ1BVWAkJMjMKPiAr Cj4gKyNkZWZpbmUgQ0xLX0FQQjEJCTI4Cj4gKwo+ICsjZGVmaW5lIENMS19ERQkJCTMxCj4gKyNk ZWZpbmUgQ0xLX0JVU19ERQkJMzIKPiArI2RlZmluZSBDTEtfREVJTlRFUkxBQ0UJCTMzCj4gKyNk ZWZpbmUgQ0xLX0JVU19ERUlOVEVSTEFDRQkzNAo+ICsjZGVmaW5lIENMS19HMkQJCQkzNQo+ICsj ZGVmaW5lIENMS19CVVNfRzJECQkzNgo+ICsjZGVmaW5lIENMS19HUFUwCQkzNwo+ICsjZGVmaW5l IENMS19CVVNfR1BVCQkzOAo+ICsjZGVmaW5lIENMS19HUFUxCQkzOQo+ICsjZGVmaW5lIENMS19D RQkJCTQwCj4gKyNkZWZpbmUgQ0xLX0JVU19DRQkJNDEKPiArI2RlZmluZSBDTEtfVkUJCQk0Mgo+ ICsjZGVmaW5lIENMS19CVVNfVkUJCTQzCj4gKyNkZWZpbmUgQ0xLX0JVU19ETUEJCTQ0Cj4gKyNk ZWZpbmUgQ0xLX0JVU19IU1RJTUVSCQk0NQo+ICsjZGVmaW5lIENMS19BVlMJCQk0Ngo+ICsjZGVm aW5lIENMS19CVVNfREJHCQk0Nwo+ICsjZGVmaW5lIENMS19CVVNfUFNJCQk0OAo+ICsjZGVmaW5l IENMS19CVVNfUFdNCQk0OQo+ICsjZGVmaW5lIENMS19CVVNfSU9NTVUJCTUwCj4gKwo+ICsjZGVm aW5lIENMS19NQlVTX0RNQQkJNTIKPiArI2RlZmluZSBDTEtfTUJVU19WRQkJNTMKPiArI2RlZmlu ZSBDTEtfTUJVU19DRQkJNTQKPiArI2RlZmluZSBDTEtfTUJVU19UUwkJNTUKPiArI2RlZmluZSBD TEtfTUJVU19OQU5ECQk1Ngo+ICsjZGVmaW5lIENMS19NQlVTX0cyRAkJNTcKPiArCj4gKyNkZWZp bmUgQ0xLX05BTkQwCQk1OQo+ICsjZGVmaW5lIENMS19OQU5EMQkJNjAKPiArI2RlZmluZSBDTEtf QlVTX05BTkQJCTYxCj4gKyNkZWZpbmUgQ0xLX01NQzAJCTYyCj4gKyNkZWZpbmUgQ0xLX01NQzEJ CTYzCj4gKyNkZWZpbmUgQ0xLX01NQzIJCTY0Cj4gKyNkZWZpbmUgQ0xLX0JVU19NTUMwCQk2NQo+ ICsjZGVmaW5lIENMS19CVVNfTU1DMQkJNjYKPiArI2RlZmluZSBDTEtfQlVTX01NQzIJCTY3Cj4g KyNkZWZpbmUgQ0xLX0JVU19VQVJUMAkJNjgKPiArI2RlZmluZSBDTEtfQlVTX1VBUlQxCQk2OQo+ ICsjZGVmaW5lIENMS19CVVNfVUFSVDIJCTcwCj4gKyNkZWZpbmUgQ0xLX0JVU19VQVJUMwkJNzEK PiArI2RlZmluZSBDTEtfQlVTX1VBUlQ0CQk3Mgo+ICsjZGVmaW5lIENMS19CVVNfVUFSVDUJCTcz Cj4gKyNkZWZpbmUgQ0xLX0JVU19JMkMwCQk3NAo+ICsjZGVmaW5lIENMS19CVVNfSTJDMQkJNzUK PiArI2RlZmluZSBDTEtfQlVTX0kyQzIJCTc2Cj4gKyNkZWZpbmUgQ0xLX0JVU19JMkMzCQk3Nwo+ ICsjZGVmaW5lIENMS19CVVNfSTJDNAkJNzgKPiArI2RlZmluZSBDTEtfU1BJMAkJNzkKPiArI2Rl ZmluZSBDTEtfU1BJMQkJODAKPiArI2RlZmluZSBDTEtfQlVTX1NQSTAJCTgxCj4gKyNkZWZpbmUg Q0xLX0JVU19TUEkxCQk4Mgo+ICsjZGVmaW5lIENMS19FTUFDXzI1TQkJODMKPiArI2RlZmluZSBD TEtfQlVTX0VNQUMwCQk4NAo+ICsjZGVmaW5lIENMS19CVVNfRU1BQzEJCTg1Cj4gKyNkZWZpbmUg Q0xLX1RTCQkJODYKPiArI2RlZmluZSBDTEtfQlVTX1RTCQk4Nwo+ICsjZGVmaW5lIENMS19CVVNf VEhTCQk4OAo+ICsjZGVmaW5lIENMS19TUERJRgkJODkKPiArI2RlZmluZSBDTEtfQlVTX1NQRElG CQk5MAo+ICsjZGVmaW5lIENMS19ETUlDCQk5MQo+ICsjZGVmaW5lIENMS19CVVNfRE1JQwkJOTIK PiArI2RlZmluZSBDTEtfQVVESU9fQ09ERUNfMVgJOTMKPiArI2RlZmluZSBDTEtfQVVESU9fQ09E RUNfNFgJOTQKPiArI2RlZmluZSBDTEtfQlVTX0FVRElPX0NPREVDCTk1Cj4gKyNkZWZpbmUgQ0xL X0FVRElPX0hVQgkJOTYKPiArI2RlZmluZSBDTEtfQlVTX0FVRElPX0hVQgk5Nwo+ICsjZGVmaW5l IENMS19VU0JfT0hDSTAJCTk4Cj4gKyNkZWZpbmUgQ0xLX1VTQl9QSFkwCQk5OQo+ICsjZGVmaW5l IENMS19VU0JfT0hDSTEJCTEwMAo+ICsjZGVmaW5lIENMS19VU0JfUEhZMQkJMTAxCj4gKyNkZWZp bmUgQ0xLX1VTQl9PSENJMgkJMTAyCj4gKyNkZWZpbmUgQ0xLX1VTQl9QSFkyCQkxMDMKPiArI2Rl ZmluZSBDTEtfVVNCX09IQ0kzCQkxMDQKPiArI2RlZmluZSBDTEtfVVNCX1BIWTMJCTEwNQo+ICsj ZGVmaW5lIENMS19CVVNfT0hDSTAJCTEwNgo+ICsjZGVmaW5lIENMS19CVVNfT0hDSTEJCTEwNwo+ ICsjZGVmaW5lIENMS19CVVNfT0hDSTIJCTEwOAo+ICsjZGVmaW5lIENMS19CVVNfT0hDSTMJCTEw OQo+ICsjZGVmaW5lIENMS19CVVNfRUhDSTAJCTExMAo+ICsjZGVmaW5lIENMS19CVVNfRUhDSTEJ CTExMQo+ICsjZGVmaW5lIENMS19CVVNfRUhDSTIJCTExMgo+ICsjZGVmaW5lIENMS19CVVNfRUhD STMJCTExMwo+ICsjZGVmaW5lIENMS19CVVNfT1RHCQkxMTQKPiArI2RlZmluZSBDTEtfQlVTX0tF WUFEQwkJMTE1Cj4gKyNkZWZpbmUgQ0xLX0hETUkJCTExNgo+ICsjZGVmaW5lIENMS19IRE1JX1NM T1cJCTExNwo+ICsjZGVmaW5lIENMS19IRE1JX0NFQwkJMTE4Cj4gKyNkZWZpbmUgQ0xLX0JVU19I RE1JCQkxMTkKPiArI2RlZmluZSBDTEtfQlVTX1RDT05fVE9QCTEyMAo+ICsjZGVmaW5lIENMS19U Q09OX1RWMAkJMTIxCj4gKyNkZWZpbmUgQ0xLX0JVU19UQ09OX1RWMAkxMjIKPiArI2RlZmluZSBD TEtfSERDUAkJMTIzCj4gKyNkZWZpbmUgQ0xLX0JVU19IRENQCQkxMjQKPiArCj4gKyNlbmRpZiAv KiBfRFRfQklORElOR1NfQ0xLX1NVTjUwSV9INjE2X0hfICovCj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHQtYmluZGluZ3MvcmVzZXQvc3VuNTBpLWg2MTYtY2N1LmgKPiBiL2luY2x1ZGUvZHQtYmlu ZGluZ3MvcmVzZXQvc3VuNTBpLWg2MTYtY2N1LmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGlu ZGV4IDAwMDAwMDAwMDAwMC4uMWM5OTJjZmJiYmFiCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2lu Y2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQvc3VuNTBpLWg2MTYtY2N1LmgKPiBAQCAtMCwwICsxLDY3 IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIuMCsgb3IgTUlUKQo+ICsv Kgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWNlbm93eSBaaGVuZyA8aWNlbm93eUBhb3NjLmlv Pgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX0RUX0JJTkRJTkdTX1JFU0VUX1NVTjUwSV9INjE2X0hf Cj4gKyNkZWZpbmUgX0RUX0JJTkRJTkdTX1JFU0VUX1NVTjUwSV9INjE2X0hfCj4gKwo+ICsjZGVm aW5lIFJTVF9NQlVTCQkwCj4gKyNkZWZpbmUgUlNUX0JVU19ERQkJMQo+ICsjZGVmaW5lIFJTVF9C VVNfREVJTlRFUkxBQ0UJMgo+ICsjZGVmaW5lIFJTVF9CVVNfR1BVCQkzCj4gKyNkZWZpbmUgUlNU X0JVU19DRQkJNAo+ICsjZGVmaW5lIFJTVF9CVVNfVkUJCTUKPiArI2RlZmluZSBSU1RfQlVTX0RN QQkJNgo+ICsjZGVmaW5lIFJTVF9CVVNfSFNUSU1FUgkJNwo+ICsjZGVmaW5lIFJTVF9CVVNfREJH CQk4Cj4gKyNkZWZpbmUgUlNUX0JVU19QU0kJCTkKPiArI2RlZmluZSBSU1RfQlVTX1BXTQkJMTAK PiArI2RlZmluZSBSU1RfQlVTX0lPTU1VCQkxMQo+ICsjZGVmaW5lIFJTVF9CVVNfRFJBTQkJMTIK PiArI2RlZmluZSBSU1RfQlVTX05BTkQJCTEzCj4gKyNkZWZpbmUgUlNUX0JVU19NTUMwCQkxNAo+ ICsjZGVmaW5lIFJTVF9CVVNfTU1DMQkJMTUKPiArI2RlZmluZSBSU1RfQlVTX01NQzIJCTE2Cj4g KyNkZWZpbmUgUlNUX0JVU19VQVJUMAkJMTcKPiArI2RlZmluZSBSU1RfQlVTX1VBUlQxCQkxOAo+ ICsjZGVmaW5lIFJTVF9CVVNfVUFSVDIJCTE5Cj4gKyNkZWZpbmUgUlNUX0JVU19VQVJUMwkJMjAK PiArI2RlZmluZSBSU1RfQlVTX1VBUlQ0CQkyMQo+ICsjZGVmaW5lIFJTVF9CVVNfVUFSVDUJCTIy Cj4gKyNkZWZpbmUgUlNUX0JVU19JMkMwCQkyMwo+ICsjZGVmaW5lIFJTVF9CVVNfSTJDMQkJMjQK PiArI2RlZmluZSBSU1RfQlVTX0kyQzIJCTI1Cj4gKyNkZWZpbmUgUlNUX0JVU19JMkMzCQkyNgo+ ICsjZGVmaW5lIFJTVF9CVVNfSTJDNAkJMjcKPiArI2RlZmluZSBSU1RfQlVTX1NQSTAJCTI4Cj4g KyNkZWZpbmUgUlNUX0JVU19TUEkxCQkyOQo+ICsjZGVmaW5lIFJTVF9CVVNfRU1BQzAJCTMwCj4g KyNkZWZpbmUgUlNUX0JVU19FTUFDMQkJMzEKPiArI2RlZmluZSBSU1RfQlVTX1RTCQkzMgo+ICsj ZGVmaW5lIFJTVF9CVVNfVEhTCQkzMwo+ICsjZGVmaW5lIFJTVF9CVVNfU1BESUYJCTM0Cj4gKyNk ZWZpbmUgUlNUX0JVU19ETUlDCQkzNQo+ICsjZGVmaW5lIFJTVF9CVVNfQVVESU9fQ09ERUMJMzYK PiArI2RlZmluZSBSU1RfQlVTX0FVRElPX0hVQgkzNwo+ICsjZGVmaW5lIFJTVF9VU0JfUEhZMAkJ MzgKPiArI2RlZmluZSBSU1RfVVNCX1BIWTEJCTM5Cj4gKyNkZWZpbmUgUlNUX1VTQl9QSFkyCQk0 MAo+ICsjZGVmaW5lIFJTVF9VU0JfUEhZMwkJNDEKPiArI2RlZmluZSBSU1RfQlVTX09IQ0kwCQk0 Mgo+ICsjZGVmaW5lIFJTVF9CVVNfT0hDSTEJCTQzCj4gKyNkZWZpbmUgUlNUX0JVU19PSENJMgkJ NDQKPiArI2RlZmluZSBSU1RfQlVTX09IQ0kzCQk0NQo+ICsjZGVmaW5lIFJTVF9CVVNfRUhDSTAJ CTQ2Cj4gKyNkZWZpbmUgUlNUX0JVU19FSENJMQkJNDcKPiArI2RlZmluZSBSU1RfQlVTX0VIQ0ky CQk0OAo+ICsjZGVmaW5lIFJTVF9CVVNfRUhDSTMJCTQ5Cj4gKyNkZWZpbmUgUlNUX0JVU19PVEcJ CTUwCj4gKyNkZWZpbmUgUlNUX0JVU19IRE1JCQk1MQo+ICsjZGVmaW5lIFJTVF9CVVNfSERNSV9T VUIJNTIKPiArI2RlZmluZSBSU1RfQlVTX1RDT05fVE9QCTUzCj4gKyNkZWZpbmUgUlNUX0JVU19U Q09OX1RWMAk1NAo+ICsjZGVmaW5lIFJTVF9CVVNfSERDUAkJNTUKPiArI2RlZmluZSBSU1RfQlVT X0tFWUFEQwkJNTYKPiArCj4gKyNlbmRpZiAvKiBfRFRfQklORElOR1NfUkVTRVRfU1VONTBJX0g2 MTZfSF8gKi8KPiAtLSAKPiAyLjE3LjUKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFy bS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK