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=-5.2 required=3.0 tests=DKIM_ADSP_DISCARD,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,T_DKIMWL_WL_HIGH,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 8C550C2BCA1 for ; Fri, 7 Jun 2019 17:18:33 +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 54BF0206E0 for ; Fri, 7 Jun 2019 17:18:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="U0DFnRX3"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=megous.com header.i=@megous.com header.b="hgaQ2+Ex" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 54BF0206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=megous.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-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=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=mw9Uvq9dSoKHS4iLvk3UjesQ8MFeQms7VZGC+mH01pI=; b=U0DFnRX3qATJvm BumfEwI2wRU34NXDlC8kbsyeCQu4jKyJnHuwcyhxG94+GDDlYJO0urvNE06iFbNzMbM81ff8b/xuZ Naw2Us24ZqF7AF6856vfERPIV8C8D2hxl77cF7u5FGcxypjgjiRlUefOPKYvFsp/CeuzSVUTOgpxC 6nKLbB85GajiDVaPoG8Kv+XEGe5gf0TAcUflQV+MtwHiSS7h8gvNNLw6cJyU9v84szZt2XtJfj02N iMDm2hvR3CeWmVgVfvj/sPPM1GSph4L8F4iuwn7hR/gwyPDBTyjbzzfMAI+0ov8AO/rPsy85beoFZ 71VTww1HgXabALoNO9bg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hZIVc-0005Ib-Jn; Fri, 07 Jun 2019 17:18:32 +0000 Received: from vps.xff.cz ([195.181.215.36]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hZIVY-0005HZ-Ic for linux-arm-kernel@lists.infradead.org; Fri, 07 Jun 2019 17:18:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megous.com; s=mail; t=1559927901; bh=0lrwHqz5H3XHMmluOaggCud6AE9iFy/tAGK3K0bdsxk=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=hgaQ2+ExfL3doQIFVxhVJ9utqA0m23Nvt5ZbtKt0PR7MPrYtlwb1PY3K/fFoe2be2 78dUZv/t1Gji6vgHJw5BBdetfh/sM3FQ56WtEWTaHLjxxyVsfWN1h/88mH7ILUVRNR OC/qmuVPKpkH8GV2ZX7t8fCGZ3U8DkUQGxwIz35M= Date: Fri, 7 Jun 2019 19:18:21 +0200 From: =?utf-8?Q?Ond=C5=99ej?= Jirman To: Frank Lee Subject: Re: [PATCH v3 1/3] thermal: sun8i: add thermal driver for h6 Message-ID: <20190607171821.zpb5e6aurdfcflpb@core.my.home> Mail-Followup-To: Frank Lee , rui.zhang@intel.com, Eduardo Valentin , Daniel Lezcano , robh+dt@kernel.org, Mark Rutland , Maxime Ripard , Chen-Yu Tsai , David Miller , Mauro Carvalho Chehab , Greg Kroah-Hartman , Linus Walleij , Nicolas Ferre , paulmck@linux.ibm.com, devicetree@vger.kernel.org, Linux Kernel Mailing List , Linux ARM , Linux PM References: <20190525181329.18657-1-tiny.windzz@gmail.com> <20190525181329.18657-2-tiny.windzz@gmail.com> <20190527142544.skblqfcz5fqfzxgl@core.my.home> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190607_101828_956642_54664862 X-CRM114-Status: GOOD ( 37.50 ) 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: Mark Rutland , devicetree@vger.kernel.org, Linux PM , Maxime Ripard , Greg Kroah-Hartman , Linus Walleij , Daniel Lezcano , Linux Kernel Mailing List , Eduardo Valentin , Chen-Yu Tsai , robh+dt@kernel.org, Mauro Carvalho Chehab , rui.zhang@intel.com, paulmck@linux.ibm.com, David Miller , Linux ARM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGVsbG8gRnJhbmssCgpPbiBGcmksIEp1biAwNywgMjAxOSBhdCAwOTo1MDowOFBNICswODAwLCBG cmFuayBMZWUgd3JvdGU6Cj4gSEkgT25kxZllaiwKPiAKPiAKPiBPbiBNb24sIE1heSAyNywgMjAx OSBhdCAxMDoyNSBQTSBPbmTFmWVqIEppcm1hbiA8bWVnb3VzQG1lZ291cy5jb20+IHdyb3RlOgo+ ID4KPiA+IEhpIFlhbmd0YW8sCj4gPgo+ID4gT24gU2F0LCBNYXkgMjUsIDIwMTkgYXQgMDI6MTM6 MjdQTSAtMDQwMCwgWWFuZ3RhbyBMaSB3cm90ZToKPiA+ID4gVGhpcyBwYXRjaCBhZGRzIHRoZSBz dXBwb3J0IGZvciBhbGx3aW5uZXIgdGhlcm1hbCBzZW5zb3IsIHdpdGhpbgo+ID4gPiBhbGx3aW5u ZXIgU29DLiBJdCB3aWxsIHJlZ2lzdGVyIHNlbnNvcnMgZm9yIHRoZXJtYWwgZnJhbWV3b3JrCj4g PiA+IGFuZCB1c2UgZGV2aWNlIHRyZWUgdG8gYmluZCBjb29saW5nIGRldmljZS4KPiA+ID4KPiA+ ID4gU2lnbmVkLW9mZi1ieTogWWFuZ3RhbyBMaSA8dGlueS53aW5kenpAZ21haWwuY29tPgo+ID4g PiAtLS0KPiA+ID4gIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwo+ID4g PiAgZHJpdmVycy90aGVybWFsL0tjb25maWcgICAgICAgICB8ICAxNCArCj4gPiA+ICBkcml2ZXJz L3RoZXJtYWwvTWFrZWZpbGUgICAgICAgIHwgICAxICsKPiA+ID4gIGRyaXZlcnMvdGhlcm1hbC9z dW44aV90aGVybWFsLmMgfCA0MzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ ID4gIDQgZmlsZXMgY2hhbmdlZCwgNDU5IGluc2VydGlvbnMoKykKPiA+ID4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL3RoZXJtYWwvc3VuOGlfdGhlcm1hbC5jCj4gPiA+Cj4gPiA+IGRpZmYg LS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCj4gPiA+IGluZGV4IDIzMzZkZDI2ZWNl NC4uZDMxMmY5ZWVjZjBkIDEwMDY0NAo+ID4gPiAtLS0gYS9NQUlOVEFJTkVSUwo+ID4gPiArKysg Yi9NQUlOVEFJTkVSUwo+ID4gPiBAQCAtNjc0LDYgKzY3NCwxMyBAQCBMOiAgICAgICBsaW51eC1j cnlwdG9Admdlci5rZXJuZWwub3JnCj4gPiA+ICBTOiAgIE1haW50YWluZWQKPiA+ID4gIEY6ICAg ZHJpdmVycy9jcnlwdG8vc3VueGktc3MvCj4gPiA+Cj4gPiA+ICtBTExXSU5ORVIgVEhFUk1BTCBE UklWRVIKPiA+ID4gK006ICAgWWFuZ3RhbyBMaSA8dGlueS53aW5kenpAZ21haWwuY29tPgo+ID4g PiArTDogICBsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmcKPiA+ID4gK1M6ICAgTWFpbnRhaW5lZAo+ ID4gPiArRjogICBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdGhlcm1hbC9zdW44 aS10aGVybWFsLnlhbWwKPiA+ID4gK0Y6ICAgZHJpdmVycy90aGVybWFsL3N1bjhpX3RoZXJtYWwu Ywo+ID4gPiArCj4gPiA+ICBBTExXSU5ORVIgVlBVIERSSVZFUgo+ID4gPiAgTTogICBNYXhpbWUg UmlwYXJkIDxtYXhpbWUucmlwYXJkQGJvb3RsaW4uY29tPgo+ID4gPiAgTTogICBQYXVsIEtvY2lh bGtvd3NraSA8cGF1bC5rb2NpYWxrb3dza2lAYm9vdGxpbi5jb20+Cj4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZyBiL2RyaXZlcnMvdGhlcm1hbC9LY29uZmlnCj4gPiA+ IGluZGV4IDk5NjYzNjRhNmRlYi4uZTU0NjUwNTNkNjZmIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2 ZXJzL3RoZXJtYWwvS2NvbmZpZwo+ID4gPiArKysgYi9kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZwo+ ID4gPiBAQCAtMjYyLDYgKzI2MiwyMCBAQCBjb25maWcgU1BFQVJfVEhFUk1BTAo+ID4gPiAgICAg ICAgIEVuYWJsZSB0aGlzIHRvIHBsdWcgdGhlIFNQRUFyIHRoZXJtYWwgc2Vuc29yIGRyaXZlciBp bnRvIHRoZSBMaW51eAo+ID4gPiAgICAgICAgIHRoZXJtYWwgZnJhbWV3b3JrLgo+ID4gPgo+ID4g PiArY29uZmlnIFNVTjhJX1RIRVJNQUwKPiA+ID4gKyAgICAgdHJpc3RhdGUgIkFsbHdpbm5lciBz dW44aSB0aGVybWFsIGRyaXZlciIKPiA+ID4gKyAgICAgZGVwZW5kcyBvbiBBUkNIX1NVTlhJIHx8 IENPTVBJTEVfVEVTVAo+ID4gPiArICAgICBkZXBlbmRzIG9uIEhBU19JT01FTQo+ID4gPiArICAg ICBkZXBlbmRzIG9uIE5WTUVNX1NVTlhJX1NJRAo+ID4gPiArICAgICBkZXBlbmRzIG9uIE9GCj4g PiA+ICsgICAgIGRlcGVuZHMgb24gUkVTRVRfQ09OVFJPTExFUgo+ID4gPiArICAgICBoZWxwCj4g PiA+ICsgICAgICAgU3VwcG9ydCBmb3IgdGhlIHN1bjhpIHRoZXJtYWwgc2Vuc29yIGRyaXZlciBp bnRvIHRoZSBMaW51eCB0aGVybWFsCj4gPiA+ICsgICAgICAgZnJhbWV3b3JrLgo+ID4gPiArCj4g PiA+ICsgICAgICAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0g aGVyZTogdGhlCj4gPiA+ICsgICAgICAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHN1bjhpLXRoZXJt YWwuCj4gPiA+ICsKPiA+ID4gIGNvbmZpZyBST0NLQ0hJUF9USEVSTUFMCj4gPiA+ICAgICAgIHRy aXN0YXRlICJSb2NrY2hpcCB0aGVybWFsIGRyaXZlciIKPiA+ID4gICAgICAgZGVwZW5kcyBvbiBB UkNIX1JPQ0tDSElQIHx8IENPTVBJTEVfVEVTVAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy90 aGVybWFsL01ha2VmaWxlIGIvZHJpdmVycy90aGVybWFsL01ha2VmaWxlCj4gPiA+IGluZGV4IDc0 YTM3YzdmODQ3YS4uZmE2ZjhiMjA2MjgxIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL3RoZXJt YWwvTWFrZWZpbGUKPiA+ID4gKysrIGIvZHJpdmVycy90aGVybWFsL01ha2VmaWxlCj4gPiA+IEBA IC0zMSw2ICszMSw3IEBAIHRoZXJtYWxfc3lzLSQoQ09ORklHX0RFVkZSRVFfVEhFUk1BTCkgKz0g ZGV2ZnJlcV9jb29saW5nLm8KPiA+ID4gIG9iai15ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArPSBicm9hZGNvbS8KPiA+ID4gIG9iai0kKENPTkZJR19USEVSTUFMX01NSU8pICAgICAg ICAgICArPSB0aGVybWFsX21taW8ubwo+ID4gPiAgb2JqLSQoQ09ORklHX1NQRUFSX1RIRVJNQUwp ICArPSBzcGVhcl90aGVybWFsLm8KPiA+ID4gK29iai0kKENPTkZJR19TVU44SV9USEVSTUFMKSAg ICAgKz0gc3VuOGlfdGhlcm1hbC5vCj4gPiA+ICBvYmotJChDT05GSUdfUk9DS0NISVBfVEhFUk1B TCkgICAgICAgKz0gcm9ja2NoaXBfdGhlcm1hbC5vCj4gPiA+ICBvYmotJChDT05GSUdfUkNBUl9U SEVSTUFMKSAgICs9IHJjYXJfdGhlcm1hbC5vCj4gPiA+ICBvYmotJChDT05GSUdfUkNBUl9HRU4z X1RIRVJNQUwpICAgICAgKz0gcmNhcl9nZW4zX3RoZXJtYWwubwo+ID4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy90aGVybWFsL3N1bjhpX3RoZXJtYWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9zdW44aV90 aGVybWFsLmMKPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ID4gaW5kZXggMDAwMDAwMDAw MDAwLi5hOWNjMjE5N2Y0Y2IKPiA+ID4gLS0tIC9kZXYvbnVsbAo+ID4gPiArKysgYi9kcml2ZXJz L3RoZXJtYWwvc3VuOGlfdGhlcm1hbC5jCj4gPiA+IEBAIC0wLDAgKzEsNDM3IEBACj4gPiA+ICsv LyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ID4gPiArLyoKPiA+ID4gKyAqIFRo ZXJtYWwgc2Vuc29yIGRyaXZlciBmb3IgQWxsd2lubmVyIFNPQwo+ID4gPiArICogQ29weXJpZ2h0 IChDKSAyMDE5IFlhbmd0YW8gTGkKPiA+ID4gKyAqCj4gPiA+ICsgKiBCYXNlZCBvbiB0aGUgd29y ayBvZiBJY2Vub3d5IFpoZW5nIDxpY2Vub3d5QGFvc2MuaW8+Cj4gPiA+ICsgKiBCYXNlZCBvbiB0 aGUgd29yayBvZiBPbmRyZWogSmlybWFuIDxtZWdvdXNAbWVnb3VzLmNvbT4KPiA+ID4gKyAqIEJh c2VkIG9uIHRoZSB3b3JrIG9mIEpvc2VmIEdhamR1c2VrIDxhdHhAYXR4Lm5hbWU+Cj4gPiA+ICsg Ki8KPiA+ID4gKwo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgo+ID4gPiArI2luY2x1ZGUg PGxpbnV4L2RldmljZS5oPgo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgo+ID4g PiArI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUu aD4KPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9udm1lbS1jb25zdW1lci5oPgo+ID4gPiArI2luY2x1 ZGUgPGxpbnV4L29mX2RldmljZS5oPgo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2Rl dmljZS5oPgo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgo+ID4gPiArI2luY2x1ZGUg PGxpbnV4L3Jlc2V0Lmg+Cj4gPiA+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+ID4gPiArI2lu Y2x1ZGUgPGxpbnV4L3RoZXJtYWwuaD4KPiA+ID4gKwo+ID4gPiArI2RlZmluZSBNQVhfU0VOU09S X05VTSAgICAgICA0Cj4gPiA+ICsKPiA+ID4gKyNkZWZpbmUgRlRfVEVNUF9NQVNLICAgICAgICAg ICAgICAgICAgICAgICAgIEdFTk1BU0soMTEsIDApCj4gPiA+ICsjZGVmaW5lIFRFTVBfQ0FMSUJf TUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFTk1BU0soMTEsIDApCj4gPiA+ICsj ZGVmaW5lIFRFTVBfVE9fUkVHICAgICAgICAgICAgICAgICAgICAgICAgICA2NzIKPiA+ID4gKyNk ZWZpbmUgQ0FMSUJSQVRFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4ODAwCj4gPiA+ICsK PiA+ID4gKyNkZWZpbmUgU1VONTBJX1RIU19DVFJMMCAgICAgICAgICAgICAgICAgICAgIDB4MDAK PiA+ID4gKyNkZWZpbmUgU1VONTBJX0g2X1RIU19FTkFCTEUgICAgICAgICAgICAgICAgIDB4MDQK PiA+ID4gKyNkZWZpbmUgU1VONTBJX0g2X1RIU19QQyAgICAgICAgICAgICAgICAgICAgIDB4MDgK PiA+ID4gKyNkZWZpbmUgU1VONTBJX0g2X1RIU19ESUMgICAgICAgICAgICAgICAgICAgIDB4MTAK PiA+ID4gKyNkZWZpbmUgU1VONTBJX0g2X1RIU19ESVMgICAgICAgICAgICAgICAgICAgIDB4MjAK PiA+ID4gKyNkZWZpbmUgU1VONTBJX0g2X1RIU19NRkMgICAgICAgICAgICAgICAgICAgIDB4MzAK PiA+ID4gKyNkZWZpbmUgU1VONTBJX0g2X1RIU19URU1QX0NBTElCICAgICAgICAgICAgIDB4YTAK PiA+ID4gKyNkZWZpbmUgU1VONTBJX0g2X1RIU19URU1QX0RBVEEgICAgICAgICAgICAgICAgICAg ICAgMHhjMAo+ID4gPiArCj4gPiA+ICsjZGVmaW5lIFNVTjUwSV9USFNfQ1RSTDBfVF9BQ1EoeCkg ICAgICAgICAgICAoKEdFTk1BU0soMTUsIDApICYgKHgpKSA8PCAxNikKPiA+ID4gKyNkZWZpbmUg U1VONTBJX1RIU19GSUxURVJfRU4gICAgICAgICAgICAgICAgIEJJVCgyKQo+ID4gPiArI2RlZmlu ZSBTVU41MElfVEhTX0ZJTFRFUl9UWVBFKHgpICAgICAgICAgICAgKEdFTk1BU0soMSwgMCkgJiAo eCkpCj4gPiA+ICsjZGVmaW5lIFNVTjUwSV9INl9USFNfUENfVEVNUF9QRVJJT0QoeCkgICAgICAg ICAgICAgICgoR0VOTUFTSygxOSwgMCkgJiAoeCkpIDw8IDEyKQo+ID4gPiArI2RlZmluZSBTVU41 MElfSDZfVEhTX0RBVEFfSVJRX1NUUyh4KSAgICAgICAgICAgICAgICBCSVQoeCkKPiA+ID4gKwo+ ID4gPiArLyogbWlsbGlkZWdyZWUgY2Vsc2l1cyAqLwo+ID4gPiArI2RlZmluZSBTVU41MElfSDZf RlRfREVWSUFUSU9OICAgICAgICAgICAgICAgICAgICAgICA3MDAwCj4gPiA+ICsKPiA+ID4gK3N0 cnVjdCB0aHNfZGV2aWNlOwo+ID4gPiArCj4gPiA+ICtzdHJ1Y3QgdHNlbnNvciB7Cj4gPiA+ICsg ICAgIHN0cnVjdCB0aHNfZGV2aWNlICAgICAgICAgICAgICAgKnRtZGV2Owo+ID4gPiArICAgICBz dHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAgICAgICp0emQ7Cj4gPiA+ICsgICAgIGludCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWQ7Cj4gPiA+ICsgICAgIHdhaXRfcXVldWVfaGVhZF90 ICAgICAgICAgICAgICAgd2FpdF9xdWV1ZTsKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gK3N0cnVj dCB0aHNfdGhlcm1hbF9jaGlwIHsKPiA+ID4gKyAgICAgaW50ICAgICAgICAgICAgIHNlbnNvcl9u dW07Cj4gPiA+ICsgICAgIGludCAgICAgICAgICAgICBvZmZzZXQ7Cj4gPiA+ICsgICAgIGludCAg ICAgICAgICAgICBzY2FsZTsKPiA+ID4gKyAgICAgaW50ICAgICAgICAgICAgIGZ0X2RldmlhdGlv bjsKPiA+ID4gKyAgICAgaW50ICAgICAgICAgICAgIHRlbXBfY2FsaWJfYmFzZTsKPiA+ID4gKyAg ICAgaW50ICAgICAgICAgICAgIHRlbXBfZGF0YV9iYXNlOwo+ID4gPiArICAgICBpbnQgICAgICAg ICAgICAgKCpjYWxpYnJhdGUpKHN0cnVjdCB0aHNfZGV2aWNlICp0bWRldik7Cj4gPiA+ICsgICAg IGludCAgICAgICAgICAgICAoKmluaXQpKHN0cnVjdCB0aHNfZGV2aWNlICp0bWRldik7Cj4gPiA+ ICsgICAgIGlycXJldHVybl90ICAgICAoKmlycV90aHJlYWQpKGludCBpcnEsIHZvaWQgKmRhdGEp Owo+ID4gPiArfTsKPiA+ID4gKwo+ID4gPiArc3RydWN0IHRoc19kZXZpY2Ugewo+ID4gPiArICAg ICBjb25zdCBzdHJ1Y3QgdGhzX3RoZXJtYWxfY2hpcCAgICAgICAgICAgKmNoaXA7Cj4gPiA+ICsg ICAgIHN0cnVjdCBkZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAqZGV2Owo+ID4gPiAr ICAgICBzdHJ1Y3QgcmVnbWFwICAgICAgICAgICAgICAgICAgICAgICAgICAgKnJlZ21hcDsKPiA+ ID4gKyAgICAgc3RydWN0IHJlc2V0X2NvbnRyb2wgICAgICAgICAgICAgICAgICAgICpyZXNldDsK PiA+ID4gKyAgICAgc3RydWN0IGNsayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpidXNf Y2xrOwo+ID4gPiArICAgICBzdHJ1Y3QgdHNlbnNvciAgICAgICAgICAgICAgICAgICAgICAgICAg c2Vuc29yW01BWF9TRU5TT1JfTlVNXTsKPiA+ID4gKyAgICAgaW50ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRhdGFfcmVhZHk7Cj4gPiA+ICt9Owo+ID4gPiArCj4gPiA+ICsv KiBUZW1wIFVuaXQ6IG1pbGxpZGVncmVlIENlbHNpdXMgKi8KPiA+ID4gK3N0YXRpYyBpbnQgc3Vu OGlfdGhzX3JlZzJ0ZW1wKHN0cnVjdCB0aHNfZGV2aWNlICp0bWRldiwKPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCByZWcpCj4gPiA+ICt7Cj4gPiA+ICsgICAgIHJldHVybiAo cmVnICsgdG1kZXYtPmNoaXAtPm9mZnNldCkgKiB0bWRldi0+Y2hpcC0+c2NhbGU7Cj4gPiA+ICt9 Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBpbnQgc3VuOGlfdGhzX2dldF90ZW1wKHZvaWQgKmRhdGEs IGludCAqdGVtcCkKPiA+ID4gK3sKPiA+ID4gKyAgICAgc3RydWN0IHRzZW5zb3IgKnMgPSBkYXRh Owo+ID4gPiArICAgICBzdHJ1Y3QgdGhzX2RldmljZSAqdG1kZXYgPSBzLT50bWRldjsKPiA+ID4g KyAgICAgaW50IHZhbDsKPiA+ID4gKwo+ID4gPiArICAgICB3YWl0X2V2ZW50KHMtPndhaXRfcXVl dWUsIHRtZGV2LT5kYXRhX3JlYWR5ICYgQklUKHMtPmlkKSk7Cj4gPiA+ICsgICAgIHRtZGV2LT5k YXRhX3JlYWR5ICY9IH5CSVQocy0+aWQpOwo+ID4KPiA+IEkndmUgbG9va2VkIGF0IHRoZXJtYWxf Y29yZS5jIGFuZCBpdCBsb29rcyBsaWtlIHRoYXQgdGhlIHByb3BlciB3YXkgdG8gaGFuZGxlCj4g PiB0aGlzIHNpdHVhdGlvbiBpcyBqdXN0IHJldHVybmluZyAtRUFHQUlOLgo+IAo+IFdoYXQgd2Ug YXJlIGRvaW5nIG5vdyBpcyB0byB0dXJuIGl0IGludG8gYW4gaW50ZXJydXB0LWJhc2VkIHByb2dy YW0uCj4gRXZlcnkgdGltZSB3ZSB1c2UgdGVtcGVyYXR1cmUgZGF0YSwgd2UgbmVlZCB0byB3YWl0 IHVudGlsIG5ldyBkYXRhIGlzIGNvbGxlY3RlZC4KCk5vIHlvdSBkb24ndCBuZWVkIHRvIHdhaXQs IGFuZCBieSB3YWl0aW5nIHlvdSdyZSBibG9ja2luZyBhIGxvdCBvZiB0aW5ncyBpbgp0aGVybWFs X2NvcmUuYyBmb3Igbm8gcmVhc29uLgoKPiA+Cj4gPiBTZWUgdXBkYXRlX3RlbXBlcmF0dXJlKCkg ZnVuY3Rpb24gaW4gdGhlcm1hbF9jb3JlLmMuCj4gPgo+ID4gVGhhdCB3aWxsIHN1cHByZXNzIHRo ZSB3YXJuaW5nIGFib3V0IGZhaWx1cmUgdG8gcmVhZCB0aGVybWFsIHpvbmUuIEFsc28KPiA+IGl0 J3MgbXVjaCBzaW1wbGVyIHRoYW4gdGhpcyB3YWl0X3F1ZXVlIHN0dWZmLiBObyBvdGhlciB0aGVy bWFsIGRyaXZlciB1c2VzIHRoaXMKPiA+IGVpdGhlci4gQWxzbyBnZXRfdGVtcCBpcyBjYWxsZWQg dW5kZXIgdGhlcm1hbF9saXN0X2xvY2sgbXV0ZXggYW5kIHRoYXQgd291bGQKPiA+IGJsb2NrIGNv b2xpbmcgZGV2aWNlIHJlZ2lzdHJhdGlvbnMgYW5kIGdvZCBrbm93cyB3aGF0IGVsc2UuCj4gCj4g U2luY2UgdGhlcmUgaXMgbm8gdmFsaWQgdGVtcGVyYXR1cmUgZGF0YSwgaXQgY2Fubm90IGJlIGJs b2NrZWQuCgpTb3JyeSwgSSBkb24ndCB1bmRlcnN0YW5kIHlvdXIgbWVhbmluZyBoZXJlLiBnZXRf dGVtcCB3aWxsIGJsb2NrIGluCndhaXRfZXZlbnQsIGFuZCB0aGUgYWJvdmUgbWVudGlvbmVkIGxv Y2sgaW4gdHogY29kZSB3aWxsIGJlIGhlbGQgZHVyaW5nIGFsbCB0aGlzCnRpbWUsIHVudGlsIHlv dSBnZXQgZGF0YV9yZWFkeSBjb25kaXRpb24gc2F0aXNpZmllZCBzb21ldGltZXMgaW4gdGhlIGZ1 dHVyZS4KCmh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L2xhdGVzdC9zb3VyY2UvZHJp dmVycy90aGVybWFsL3RoZXJtYWxfY29yZS5jI0w0MwoKVGhpcyB3aWxsIHByZXZlbnQgYWxsIHRp bWUgem9uZXMgaW4gdGhlIHN5c3RlbSBmcm9tIGJlaW5nIHVwZGF0ZWQsIHJlZ3NpdGVyZWQsCmV0 YywgYmVjYXVzZSBpdCdzIGEgZHJpdmVyIGxldmVsIGxvY2suCgpHaXZlbiB0aGF0IHRoaXMgaXMg Y2FsbGVkIGZyb20gX190aGVybWFsX2Nvb2xpbmdfZGV2aWNlX3JlZ2lzdGVyOgoKaHR0cHM6Ly9l bGl4aXIuYm9vdGxpbi5jb20vbGludXgvbGF0ZXN0L3NvdXJjZS9kcml2ZXJzL3RoZXJtYWwvdGhl cm1hbF9jb3JlLmMjTDk5NwoKVGhpcyB3aWxsIHN0b3AgYWxsIG90aGVyIHRoZXJtYWwgem9uZXMg ZnJvbSByZWdpc3RlcmluZyBmb3Igbm8gcmVhc29uLgoKSnVzdCByZXR1cm4gLUVBR0FJTiwgYXMg ZXhwZWN0ZWQgaGVyZToKCmh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L2xhdGVzdC9z b3VyY2UvZHJpdmVycy90aGVybWFsL3RoZXJtYWxfY29yZS5jI0w0MzEKCkFuZCB0aGUgZHJpdmVy IHdpbGwgd29yayBpbiBib3RoIGludGVycnVwdCBkcml2ZW4gYW5kIHBvbGxlZCBtb2RlIGp1c3Qg ZmluZSwKd2l0aG91dCBhbnkgd2FybmluZ3Mgb3IgZGVsYXlzIG9yIHRha2luZyB0aGlzIGxvY2sg Zm9yIG5vIHJlYXNvbiBmb3IgdG9vIGxvbmcuCgp0aGFuayB5b3UgYW5kIHJlZ2FyZHMsCglvLgoK PiBNQlIsCj4gWWFuZ3Rhbwo+IAo+ID4KPiA+IE90aGVyIHRoYW4gdGhhdCwgYW5kIHdoYXQgTWF4 aW1lIHNhaWQsIEkgZG9uJ3Qgc2VlIGFueSBtb3JlIGlzc3Vlcy4KPiA+Cj4gPiB0aGFuayB5b3Us Cj4gPiAgICAgICAgIG8uCj4gPgo+ID4gPiArICAgICByZWdtYXBfcmVhZCh0bWRldi0+cmVnbWFw LCB0bWRldi0+Y2hpcC0+dGVtcF9kYXRhX2Jhc2UgKwo+ID4gPiArICAgICAgICAgICAgICAgICAw eDQgKiBzLT5pZCwgJnZhbCk7Cj4gPiA+ICsKPiA+ID4gKyAgICAgKnRlbXAgPSBzdW44aV90aHNf cmVnMnRlbXAodG1kZXYsIHZhbCk7Cj4gPiA+ICsgICAgIC8qCj4gPiA+ICsgICAgICAqIFhYIC0g QWNjb3JkaW5nIHRvIHRoZSBvcmlnaW5hbCBzZGssIHRoZXJlIGFyZSBzb21lIHBsYXRmb3Jtcyhy YXJlbHkpCj4gPiA+ICsgICAgICAqIHRoYXQgYWRkIGEgZml4ZWQgb2Zmc2V0IHZhbHVlIGFmdGVy IGNhbGN1bGF0aW5nIHRoZSB0ZW1wZXJhdHVyZQo+ID4gPiArICAgICAgKiB2YWx1ZS4gV2UgY2Fu J3Qgc2ltcGx5IHB1dCBpdCBvbiB0aGUgZm9ybXVsYSBmb3IgY2FsY3VsYXRpbmcgdGhlCj4gPiA+ ICsgICAgICAqIHRlbXBlcmF0dXJlIGFib3ZlLCBiZWNhdXNlIHRoZSBmb3JtdWxhIGZvciBjYWxj dWxhdGluZyB0aGUKPiA+ID4gKyAgICAgICogdGVtcGVyYXR1cmUgYWJvdmUgaXMgYWxzbyB1c2Vk IHdoZW4gdGhlIHNlbnNvciBpcyBjYWxpYnJhdGVkLiBJZgo+ID4gPiArICAgICAgKiBkbyB0aGlz LCB0aGUgY29ycmVjdCBjYWxpYnJhdGlvbiBmb3JtdWxhIGlzIGhhcmQgdG8ga25vdy4KPiA+ID4g KyAgICAgICovCj4gPiA+ICsgICAgIGlmICh0bWRldi0+Y2hpcC0+ZnRfZGV2aWF0aW9uKQo+ID4g PiArICAgICAgICAgICAgICp0ZW1wICs9IHRtZGV2LT5jaGlwLT5mdF9kZXZpYXRpb247Cj4gPiA+ ICsKPiA+ID4gKyAgICAgcmV0dXJuIDA7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX29mX2RldmljZV9vcHMgdGhzX29wcyA9IHsKPiA+ID4g KyAgICAgLmdldF90ZW1wID0gc3VuOGlfdGhzX2dldF90ZW1wLAo+ID4gPiArfTsKPiA+ID4gKwo+ ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIGNvbmZpZyA9IHsKPiA+ID4g KyAgICAgLnJlZ19iaXRzID0gMzIsCj4gPiA+ICsgICAgIC52YWxfYml0cyA9IDMyLAo+ID4gPiAr ICAgICAucmVnX3N0cmlkZSA9IDQsCj4gPiA+ICsgICAgIC5mYXN0X2lvID0gdHJ1ZSwKPiA+ID4g K307Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBpcnFyZXR1cm5fdCBzdW41MGlfaDZfaXJxX3RocmVh ZChpbnQgaXJxLCB2b2lkICpkYXRhKQo+ID4gPiArewo+ID4gPiArICAgICB3YWl0X3F1ZXVlX2hl YWRfdCAqZGF0YV93YWl0Owo+ID4gPiArICAgICBzdHJ1Y3QgdGhzX2RldmljZSAqdG1kZXYgPSBk YXRhOwo+ID4gPiArICAgICBpbnQgaSwgc3RhdGU7Cj4gPiA+ICsKPiA+ID4gKyAgICAgcmVnbWFw X3JlYWQodG1kZXYtPnJlZ21hcCwgU1VONTBJX0g2X1RIU19ESVMsICZzdGF0ZSk7Cj4gPiA+ICsK PiA+ID4gKyAgICAgZm9yIChpID0gMDsgaSA8IHRtZGV2LT5jaGlwLT5zZW5zb3JfbnVtOyBpKysp IHsKPiA+ID4gKyAgICAgICAgICAgICBkYXRhX3dhaXQgPSAmdG1kZXYtPnNlbnNvcltpXS53YWl0 X3F1ZXVlOwo+ID4gPiArCj4gPiA+ICsgICAgICAgICAgICAgaWYgKHN0YXRlICYgU1VONTBJX0g2 X1RIU19EQVRBX0lSUV9TVFMoaSkpIHsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIC8qIGNs ZWFyIGRhdGEgaXJxIHBlbmRpbmcgKi8KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHJlZ21h cF93cml0ZSh0bWRldi0+cmVnbWFwLCBTVU41MElfSDZfVEhTX0RJUywKPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTVU41MElfSDZfVEhTX0RBVEFfSVJRX1NUUyhpKSk7 Cj4gPiA+ICsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHRtZGV2LT5kYXRhX3JlYWR5IHw9 IEJJVChpKTsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHdha2VfdXAoZGF0YV93YWl0KTsK PiA+ID4gKyAgICAgICAgICAgICB9Cj4gPiA+ICsgICAgIH0KPiA+ID4gKwo+ID4gPiArICAgICBy ZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBpbnQgc3Vu OGlfdGhzX3Jlc291cmNlX2luaXQoc3RydWN0IHRoc19kZXZpY2UgKnRtZGV2KQo+ID4gPiArewo+ ID4gPiArICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSB0bWRldi0+ZGV2Owo+ID4gPiArICAgICBz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxhdGZvcm1fZGV2aWNlKGRldik7Cj4g PiA+ICsgICAgIHN0cnVjdCByZXNvdXJjZSAqbWVtOwo+ID4gPiArICAgICB2b2lkIF9faW9tZW0g KmJhc2U7Cj4gPiA+ICsgICAgIGludCByZXQsIGlycTsKPiA+ID4gKwo+ID4gPiArICAgICBtZW0g PSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwo+ID4gPiAr ICAgICBiYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRldiwgbWVtKTsKPiA+ID4gKyAgICAg aWYgKElTX0VSUihiYXNlKSkKPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihiYXNl KTsKPiA+ID4gKwo+ID4gPiArICAgICB0bWRldi0+cmVnbWFwID0gZGV2bV9yZWdtYXBfaW5pdF9t bWlvKGRldiwgYmFzZSwgJmNvbmZpZyk7Cj4gPiA+ICsgICAgIGlmIChJU19FUlIodG1kZXYtPnJl Z21hcCkpCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIodG1kZXYtPnJlZ21hcCk7 Cj4gPiA+ICsKPiA+ID4gKyAgICAgdG1kZXYtPnJlc2V0ID0gZGV2bV9yZXNldF9jb250cm9sX2dl dChkZXYsIDApOwo+ID4gPiArICAgICBpZiAoSVNfRVJSKHRtZGV2LT5yZXNldCkpCj4gPiA+ICsg ICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIodG1kZXYtPnJlc2V0KTsKPiA+ID4gKwo+ID4gPiAr ICAgICB0bWRldi0+YnVzX2NsayA9IGRldm1fY2xrX2dldCgmcGRldi0+ZGV2LCAiYnVzIik7Cj4g PiA+ICsgICAgIGlmIChJU19FUlIodG1kZXYtPmJ1c19jbGspKQo+ID4gPiArICAgICAgICAgICAg IHJldHVybiBQVFJfRVJSKHRtZGV2LT5idXNfY2xrKTsKPiA+ID4gKwo+ID4gPiArICAgICBpcnEg PSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwo+ID4gPiArICAgICBpZiAoaXJxIDwgMCkKPiA+ ID4gKyAgICAgICAgICAgICByZXR1cm4gaXJxOwo+ID4gPiArCj4gPiA+ICsgICAgIHJldCA9IGRl dm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoZGV2LCBpcnEsIE5VTEwsCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1kZXYtPmNoaXAtPmlycV90aHJlYWQsCj4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJRRl9PTkVTSE9ULCAidGhz IiwgdG1kZXYpOwo+ID4gPiArICAgICBpZiAocmV0KQo+ID4gPiArICAgICAgICAgICAgIHJldHVy biByZXQ7Cj4gPiA+ICsKPiA+ID4gKyAgICAgcmV0ID0gcmVzZXRfY29udHJvbF9kZWFzc2VydCh0 bWRldi0+cmVzZXQpOwo+ID4gPiArICAgICBpZiAocmV0KQo+ID4gPiArICAgICAgICAgICAgIHJl dHVybiByZXQ7Cj4gPiA+ICsKPiA+ID4gKyAgICAgcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKHRt ZGV2LT5idXNfY2xrKTsKPiA+ID4gKyAgICAgaWYgKHJldCkKPiA+ID4gKyAgICAgICAgICAgICBn b3RvIGFzc2VydF9yZXNldDsKPiA+ID4gKwo+ID4gPiArICAgICByZXQgPSB0bWRldi0+Y2hpcC0+ Y2FsaWJyYXRlKHRtZGV2KTsKPiA+ID4gKyAgICAgaWYgKHJldCkKPiA+ID4gKyAgICAgICAgICAg ICBnb3RvIGJ1c19kaXNhYmxlOwo+ID4gPiArCj4gPiA+ICsgICAgIHJldHVybiAwOwo+ID4gPiAr Cj4gPiA+ICtidXNfZGlzYWJsZToKPiA+ID4gKyAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHRt ZGV2LT5idXNfY2xrKTsKPiA+ID4gK2Fzc2VydF9yZXNldDoKPiA+ID4gKyAgICAgcmVzZXRfY29u dHJvbF9hc3NlcnQodG1kZXYtPnJlc2V0KTsKPiA+ID4gKwo+ID4gPiArICAgICByZXR1cm4gcmV0 Owo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgaW50IHN1bjUwaV90aHNfY2FsaWJyYXRl KHN0cnVjdCB0aHNfZGV2aWNlICp0bWRldikKPiA+ID4gK3sKPiA+ID4gKyAgICAgc3RydWN0IG52 bWVtX2NlbGwgKmNhbGNlbGw7Cj4gPiA+ICsgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IHRtZGV2 LT5kZXY7Cj4gPiA+ICsgICAgIHUxNiAqY2FsZGF0YTsKPiA+ID4gKyAgICAgc2l6ZV90IGNhbGxl bjsKPiA+ID4gKyAgICAgaW50IGZ0X3RlbXA7Cj4gPiA+ICsgICAgIGludCBpLCByZXQgPSAwOwo+ ID4gPiArCj4gPiA+ICsgICAgIGNhbGNlbGwgPSBkZXZtX252bWVtX2NlbGxfZ2V0KGRldiwgImNh bGliIik7Cj4gPiA+ICsgICAgIGlmIChJU19FUlIoY2FsY2VsbCkpIHsKPiA+ID4gKyAgICAgICAg ICAgICBpZiAoUFRSX0VSUihjYWxjZWxsKSA9PSAtRVBST0JFX0RFRkVSKQo+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIC1FUFJPQkVfREVGRVI7Cj4gPiA+ICsgICAgICAgICAgICAg LyoKPiA+ID4gKyAgICAgICAgICAgICAgKiBFdmVuIGlmIHRoZSBleHRlcm5hbCBjYWxpYnJhdGlv biBkYXRhIHN0b3JlZCBpbiBzaWQgaXMKPiA+ID4gKyAgICAgICAgICAgICAgKiBub3QgYWNjZXNz aWJsZSwgdGhlIFRIUyBoYXJkd2FyZSBjYW4gc3RpbGwgd29yaywgYWx0aG91Z2gKPiA+ID4gKyAg ICAgICAgICAgICAgKiB0aGUgZGF0YSB3b24ndCBiZSBzbyBhY2N1cmF0ZS4KPiA+ID4gKyAgICAg ICAgICAgICAgKgo+ID4gPiArICAgICAgICAgICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIG9mIGNh bGlicmF0aW9uIHJlZ2lzdGVyIGlzIDB4ODAwIGZvcgo+ID4gPiArICAgICAgICAgICAgICAqIGV2 ZXJ5IHNlbnNvciwgYW5kIHRoZSBjYWxpYnJhdGlvbiB2YWx1ZSBpcyB1c3VhbGx5IDB4N3h4Cj4g PiA+ICsgICAgICAgICAgICAgICogb3IgMHg4eHgsIHNvIHRoZXkgd29uJ3QgYmUgYXdheSBmcm9t IHRoZSBkZWZhdWx0IHZhbHVlCj4gPiA+ICsgICAgICAgICAgICAgICogZm9yIGEgbG90Lgo+ID4g PiArICAgICAgICAgICAgICAqCj4gPiA+ICsgICAgICAgICAgICAgICogU28gaGVyZSB3ZSBkbyBu b3QgcmV0dXJuIGVycm9yIGlmIHRoZSBjYWxpYmFydGlvbiBkYXRhIGlzCj4gPiA+ICsgICAgICAg ICAgICAgICogbm90IGF2YWlsYWJsZSwgZXhjZXB0IHRoZSBwcm9iZSBuZWVkcyBkZWZlcnJpbmcu Cj4gPiA+ICsgICAgICAgICAgICAgICovCj4gPiA+ICsgICAgICAgICAgICAgZ290byBvdXQ7Cj4g PiA+ICsgICAgIH0KPiA+ID4gKwo+ID4gPiArICAgICBjYWxkYXRhID0gbnZtZW1fY2VsbF9yZWFk KGNhbGNlbGwsICZjYWxsZW4pOwo+ID4gPiArICAgICBpZiAoSVNfRVJSKGNhbGRhdGEpKSB7Cj4g PiA+ICsgICAgICAgICAgICAgcmV0ID0gUFRSX0VSUihjYWxkYXRhKTsKPiA+ID4gKyAgICAgICAg ICAgICBnb3RvIG91dDsKPiA+ID4gKyAgICAgfQo+ID4gPiArCj4gPiA+ICsgICAgIGlmICghY2Fs ZGF0YVswXSB8fCBjYWxsZW4gPCAyICsgMiAqIHRtZGV2LT5jaGlwLT5zZW5zb3JfbnVtKSB7Cj4g PiA+ICsgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKPiA+ID4gKyAgICAgICAgICAgICBnb3Rv IG91dF9mcmVlOwo+ID4gPiArICAgICB9Cj4gPiA+ICsKPiA+ID4gKyAgICAgLyoKPiA+ID4gKyAg ICAgICogZWZ1c2UgbGF5b3V0Ogo+ID4gPiArICAgICAgKgo+ID4gPiArICAgICAgKiAgICAgIDAg ICAxMSAgMTYgICAgICAgMzIKPiA+ID4gKyAgICAgICogICAgICArLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0rCj4gPiA+ICsgICAgICAqICAgICAgfHRlbXB8ICB8c2Vuc29yMHxzZW5zb3IxfAo+ID4g PiArICAgICAgKiAgICAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsKPiA+ID4gKyAgICAgICoK PiA+ID4gKyAgICAgICogVGhlIGNhbGlicmF0aW9uIGRhdGEgb24gdGhlIEg2IGlzIHRoZSBhbWJp ZW50IHRlbXBlcmF0dXJlIGFuZAo+ID4gPiArICAgICAgKiBzZW5zb3IgdmFsdWVzIHRoYXQgYXJl IGZpbGxlZCBkdXJpbmcgdGhlIGZhY3RvcnkgdGVzdCBzdGFnZS4KPiA+ID4gKyAgICAgICoKPiA+ ID4gKyAgICAgICogVGhlIHVuaXQgb2Ygc3RvcmVkIEZUIHRlbXBlcmF0dXJlIGlzIDAuMSBkZWdy ZWVlIGNlbHVzaXMuCj4gPiA+ICsgICAgICAqIFRocm91Z2ggdGhlIHN0b3JlZCBhbWJpZW50IHRl bXBlcmF0dXJlIGFuZCB0aGUgZGF0YSByZWFkCj4gPiA+ICsgICAgICAqIGJ5IHRoZSBzZW5zb3Is IGFmdGVyIGEgY2VydGFpbiBjYWxjdWxhdGlvbiwgdGhlIGNhbGlicmF0aW9uCj4gPiA+ICsgICAg ICAqIHZhbHVlIHRvIGJlIGNvbXBlbnNhdGVkIGNhbiBiZSBvYnRhaW5lZC4KPiA+ID4gKyAgICAg ICovCj4gPiA+ICsgICAgIGZ0X3RlbXAgPSBjYWxkYXRhWzBdICYgRlRfVEVNUF9NQVNLOwo+ID4g PiArCj4gPiA+ICsgICAgIGZvciAoaSA9IDA7IGkgPCB0bWRldi0+Y2hpcC0+c2Vuc29yX251bTsg aSsrKSB7Cj4gPiA+ICsgICAgICAgICAgICAgaW50IHJlZyA9IChpbnQpY2FsZGF0YVtpICsgMV07 Cj4gPiA+ICsgICAgICAgICAgICAgaW50IHNlbnNvcl90ZW1wID0gc3VuOGlfdGhzX3JlZzJ0ZW1w KHRtZGV2LCByZWcpOwo+ID4gPiArICAgICAgICAgICAgIGludCBkZWx0YSwgY2RhdGEsIGNhbGli X29mZmVzdDsKPiA+ID4gKwo+ID4gPiArICAgICAgICAgICAgIC8qCj4gPiA+ICsgICAgICAgICAg ICAgICogVG8gY2FsY3VsYXRlIHRoZSBjYWxpYnJhdGlvbiB2YWx1ZToKPiA+ID4gKyAgICAgICAg ICAgICAgKgo+ID4gPiArICAgICAgICAgICAgICAqIFgoaW4gQ2Vsc2l1cykgPSBUcyAtIGZ0X3Rl bXAKPiA+ID4gKyAgICAgICAgICAgICAgKiBkZWx0YSA9IFggKiAxMDAwMCAvIFRFTVBfVE9fUkVH Cj4gPiA+ICsgICAgICAgICAgICAgICogY2RhdGEgPSBDQUxJQlJBVEVfREVGQVVMVCAtIGRlbHRh Cj4gPiA+ICsgICAgICAgICAgICAgICoKPiA+ID4gKyAgICAgICAgICAgICAgKiBjZGF0YTogY2Fs aWJyYXRpb24gdmFsdWUKPiA+ID4gKyAgICAgICAgICAgICAgKi8KPiA+ID4gKyAgICAgICAgICAg ICBkZWx0YSA9IChzZW5zb3JfdGVtcCAtIGZ0X3RlbXAgKiAxMDApICogMTAgLyBURU1QX1RPX1JF RzsKPiA+ID4gKyAgICAgICAgICAgICBjZGF0YSA9IENBTElCUkFURV9ERUZBVUxUIC0gZGVsdGE7 Cj4gPiA+ICsgICAgICAgICAgICAgaWYgKGNkYXRhICYgflRFTVBfQ0FMSUJfTUFTSykgewo+ID4g PiArICAgICAgICAgICAgICAgICAgICAgLyoKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAq IENhbGlicmF0aW9uIHZhbHVlIG1vcmUgdGhhbiAxMi1iaXQsIGJ1dCBjYWxpYnJhdGlvbgo+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICogcmVnaXN0ZXIgaXMgMTItYml0LiBJbiB0aGlzIGNh c2UsIHRocyBoYXJkd2FyZSBjYW4KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAqIHN0aWxs IHdvcmsgd2l0aG91dCBjYWxpYnJhdGlvbiwgYWx0aG91Z2ggdGhlIGRhdGEKPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAqIHdvbid0IGJlIHNvIGFjY3VyYXRlLgo+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICovCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBkZXZfd2FybihkZXYs ICJzZW5zb3IlZCBpcyBub3QgY2FsaWJyYXRlZC5cbiIsIGkpOwo+ID4gPiArCj4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICBjb250aW51ZTsKPiA+ID4gKyAgICAgICAgICAgICB9Cj4gPiA+ICsK PiA+ID4gKyAgICAgICAgICAgICBjYWxpYl9vZmZlc3QgPSB0bWRldi0+Y2hpcC0+dGVtcF9jYWxp Yl9iYXNlICsgKGkgLyAyKSAqIDB4NDsKPiA+ID4gKwo+ID4gPiArICAgICAgICAgICAgIGlmIChp ICUgMikgewo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgaW50IHZhbDsKPiA+ID4gKwo+ID4g PiArICAgICAgICAgICAgICAgICAgICAgcmVnbWFwX3JlYWQodG1kZXYtPnJlZ21hcCwgY2FsaWJf b2ZmZXN0LCAmdmFsKTsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHZhbCA9ICh2YWwgJiBU RU1QX0NBTElCX01BU0spIHwgKGNkYXRhIDw8IDE2KTsKPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgIHJlZ21hcF93cml0ZSh0bWRldi0+cmVnbWFwLCBjYWxpYl9vZmZlc3QsIHZhbCk7Cj4gPiA+ ICsgICAgICAgICAgICAgfSBlbHNlIHsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHJlZ21h cF93cml0ZSh0bWRldi0+cmVnbWFwLCBjYWxpYl9vZmZlc3QsIGNkYXRhKTsKPiA+ID4gKyAgICAg ICAgICAgICB9Cj4gPiA+ICsgICAgIH0KPiA+ID4gKwo+ID4gPiArb3V0X2ZyZWU6Cj4gPiA+ICsg ICAgIGtmcmVlKGNhbGRhdGEpOwo+ID4gPiArb3V0Ogo+ID4gPiArICAgICByZXR1cm4gcmV0Owo+ ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgaW50IHN1bjhpX3Roc19yZWdpc3RlcihzdHJ1 Y3QgdGhzX2RldmljZSAqdG1kZXYpCj4gPiA+ICt7Cj4gPiA+ICsgICAgIHN0cnVjdCB0aGVybWFs X3pvbmVfZGV2aWNlICp0emQ7Cj4gPiA+ICsgICAgIGludCBpOwo+ID4gPiArCj4gPiA+ICsgICAg IGZvciAoaSA9IDA7IGkgPCB0bWRldi0+Y2hpcC0+c2Vuc29yX251bTsgaSsrKSB7Cj4gPiA+ICsg ICAgICAgICAgICAgdG1kZXYtPnNlbnNvcltpXS50bWRldiA9IHRtZGV2Owo+ID4gPiArICAgICAg ICAgICAgIHRtZGV2LT5zZW5zb3JbaV0uaWQgPSBpOwo+ID4gPiArICAgICAgICAgICAgIHRtZGV2 LT5zZW5zb3JbaV0udHpkID0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIGRldm1fdGhlcm1h bF96b25lX29mX3NlbnNvcl9yZWdpc3Rlcih0bWRldi0+ZGV2LAo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksCj4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JnRtZGV2LT5zZW5zb3JbaV0sCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRoc19vcHMpOwo+ID4gPiArICAgICAgICAgICAg IGlmIChJU19FUlIodG1kZXYtPnNlbnNvcltpXS50emQpKQo+ID4gPiArICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIFBUUl9FUlIodHpkKTsKPiA+ID4gKyAgICAgfQo+ID4gPiArCj4gPiA+ICsg ICAgIHJldHVybiAwOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgaW50IHN1bjhpX3Ro c19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4gPiArewo+ID4gPiArICAg ICBzdHJ1Y3QgdGhzX2RldmljZSAqdG1kZXY7Cj4gPiA+ICsgICAgIHN0cnVjdCBkZXZpY2UgKmRl diA9ICZwZGV2LT5kZXY7Cj4gPiA+ICsgICAgIGludCBpLCByZXQ7Cj4gPiA+ICsKPiA+ID4gKyAg ICAgdG1kZXYgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnRtZGV2KSwgR0ZQX0tFUk5FTCk7 Cj4gPiA+ICsgICAgIGlmICghdG1kZXYpCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIC1FTk9N RU07Cj4gPiA+ICsKPiA+ID4gKyAgICAgdG1kZXYtPmRldiA9IGRldjsKPiA+ID4gKyAgICAgdG1k ZXYtPmNoaXAgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBkZXYtPmRldik7Cj4gPiA+ICsg ICAgIGlmICghdG1kZXYtPmNoaXApCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7 Cj4gPiA+ICsKPiA+ID4gKyAgICAgLyoKPiA+ID4gKyAgICAgICogSW5pdGlhbGl6ZSB3YWl0X3F1 ZXVlIGluIGFkdmFuY2UsIHRvIGF2b2lkIGNhbGxpbmcgd2FrZV91cAo+ID4gPiArICAgICAgKiBi ZWZvcmUgdGhzIGlzIHJlZ2lzdGVyZWQgaW4gaXNyLgo+ID4gPiArICAgICAgKi8KPiA+ID4gKyAg ICAgZm9yIChpID0gMDsgaSA8IHRtZGV2LT5jaGlwLT5zZW5zb3JfbnVtOyBpKyspCj4gPiA+ICsg ICAgICAgICAgICAgaW5pdF93YWl0cXVldWVfaGVhZCgmdG1kZXYtPnNlbnNvcltpXS53YWl0X3F1 ZXVlKTsKPiA+ID4gKwo+ID4gPiArICAgICBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCB0bWRl dik7Cj4gPiA+ICsKPiA+ID4gKyAgICAgcmV0ID0gc3VuOGlfdGhzX3Jlc291cmNlX2luaXQodG1k ZXYpOwo+ID4gPiArICAgICBpZiAocmV0KQo+ID4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7 Cj4gPiA+ICsKPiA+ID4gKyAgICAgcmV0ID0gdG1kZXYtPmNoaXAtPmluaXQodG1kZXYpOwo+ID4g PiArICAgICBpZiAocmV0KQo+ID4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ICsK PiA+ID4gKyAgICAgcmV0ID0gc3VuOGlfdGhzX3JlZ2lzdGVyKHRtZGV2KTsKPiA+ID4gKyAgICAg aWYgKHJldCkKPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiArCj4gPiA+ICsg ICAgIHJldHVybiByZXQ7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBpbnQgc3VuOGlf dGhzX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4gPiArewo+ID4gPiAr ICAgICBzdHJ1Y3QgdGhzX2RldmljZSAqdG1kZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2 KTsKPiA+ID4gKwo+ID4gPiArICAgICBjbGtfZGlzYWJsZV91bnByZXBhcmUodG1kZXYtPmJ1c19j bGspOwo+ID4gPiArICAgICByZXNldF9jb250cm9sX2Fzc2VydCh0bWRldi0+cmVzZXQpOwo+ID4g PiArCj4gPiA+ICsgICAgIHJldHVybiAwOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMg aW50IHN1bjUwaV90aGVybWFsX2luaXQoc3RydWN0IHRoc19kZXZpY2UgKnRtZGV2KQo+ID4gPiAr ewo+ID4gPiArICAgICBpbnQgdmFsOwo+ID4gPiArCj4gPiA+ICsgICAgIC8qCj4gPiA+ICsgICAg ICAqIGNsa2luID0gMjRNSHoKPiA+ID4gKyAgICAgICogVCBhY3F1aXJlID0gY2xraW4gLyAoeCAr IDEpCj4gPiA+ICsgICAgICAqICAgICAgICAgICA9IDIwdXMKPiA+ID4gKyAgICAgICovCj4gPiA+ ICsgICAgIHJlZ21hcF93cml0ZSh0bWRldi0+cmVnbWFwLCBTVU41MElfVEhTX0NUUkwwLAo+ID4g PiArICAgICAgICAgICAgICAgICAgU1VONTBJX1RIU19DVFJMMF9UX0FDUSg0NzkpKTsKPiA+ID4g KyAgICAgLyogYXZlcmFnZSBvdmVyIDQgc2FtcGxlcyAqLwo+ID4gPiArICAgICByZWdtYXBfd3Jp dGUodG1kZXYtPnJlZ21hcCwgU1VONTBJX0g2X1RIU19NRkMsCj4gPiA+ICsgICAgICAgICAgICAg ICAgICBTVU41MElfVEhTX0ZJTFRFUl9FTiB8Cj4gPiA+ICsgICAgICAgICAgICAgICAgICBTVU41 MElfVEhTX0ZJTFRFUl9UWVBFKDEpKTsKPiA+ID4gKyAgICAgLyogcGVyaW9kID0gKHggKyAxKSAq IDQwOTYgLyBjbGtpbjsgfjEwbXMgKi8KPiA+ID4gKyAgICAgcmVnbWFwX3dyaXRlKHRtZGV2LT5y ZWdtYXAsIFNVTjUwSV9INl9USFNfUEMsCj4gPiA+ICsgICAgICAgICAgICAgICAgICBTVU41MElf SDZfVEhTX1BDX1RFTVBfUEVSSU9EKDU4KSk7Cj4gPiA+ICsgICAgIC8qIGVuYWJsZSBzZW5zb3Ig Ki8KPiA+ID4gKyAgICAgdmFsID0gR0VOTUFTSyh0bWRldi0+Y2hpcC0+c2Vuc29yX251bSAtIDEs IDApOwo+ID4gPiArICAgICByZWdtYXBfd3JpdGUodG1kZXYtPnJlZ21hcCwgU1VONTBJX0g2X1RI U19FTkFCTEUsIHZhbCk7Cj4gPiA+ICsgICAgIC8qIHRoZXJtYWwgZGF0YSBpbnRlcnJ1cHQgZW5h YmxlICovCj4gPiA+ICsgICAgIHZhbCA9IEdFTk1BU0sodG1kZXYtPmNoaXAtPnNlbnNvcl9udW0g LSAxLCAwKTsKPiA+ID4gKyAgICAgcmVnbWFwX3dyaXRlKHRtZGV2LT5yZWdtYXAsIFNVTjUwSV9I Nl9USFNfRElDLCB2YWwpOwo+ID4gPiArCj4gPiA+ICsgICAgIHJldHVybiAwOwo+ID4gPiArfQo+ ID4gPiArCj4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHRoc190aGVybWFsX2NoaXAgc3VuNTBp X2g2X3RocyA9IHsKPiA+ID4gKyAgICAgLnNlbnNvcl9udW0gPSAyLAo+ID4gPiArICAgICAub2Zm c2V0ID0gLTI3OTQsCj4gPiA+ICsgICAgIC5zY2FsZSA9IC02NywKPiA+ID4gKyAgICAgLmZ0X2Rl dmlhdGlvbiA9IFNVTjUwSV9INl9GVF9ERVZJQVRJT04sCj4gPiA+ICsgICAgIC50ZW1wX2NhbGli X2Jhc2UgPSBTVU41MElfSDZfVEhTX1RFTVBfQ0FMSUIsCj4gPiA+ICsgICAgIC50ZW1wX2RhdGFf YmFzZSA9IFNVTjUwSV9INl9USFNfVEVNUF9EQVRBLAo+ID4gPiArICAgICAuY2FsaWJyYXRlID0g c3VuNTBpX3Roc19jYWxpYnJhdGUsCj4gPiA+ICsgICAgIC5pbml0ID0gc3VuNTBpX3RoZXJtYWxf aW5pdCwKPiA+ID4gKyAgICAgLmlycV90aHJlYWQgPSBzdW41MGlfaDZfaXJxX3RocmVhZCwKPiA+ ID4gK307Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9m X3Roc19tYXRjaFtdID0gewo+ID4gPiArICAgICB7IC5jb21wYXRpYmxlID0gImFsbHdpbm5lcixz dW41MGktaDYtdGhzIiwgLmRhdGEgPSAmc3VuNTBpX2g2X3RocyB9LAo+ID4gPiArICAgICB7IC8q IHNlbnRpbmVsICovIH0sCj4gPiA+ICt9Owo+ID4gPiArTU9EVUxFX0RFVklDRV9UQUJMRShvZiwg b2ZfdGhzX21hdGNoKTsKPiA+ID4gKwo+ID4gPiArc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2 ZXIgdGhzX2RyaXZlciA9IHsKPiA+ID4gKyAgICAgLnByb2JlID0gc3VuOGlfdGhzX3Byb2JlLAo+ ID4gPiArICAgICAucmVtb3ZlID0gc3VuOGlfdGhzX3JlbW92ZSwKPiA+ID4gKyAgICAgLmRyaXZl ciA9IHsKPiA+ID4gKyAgICAgICAgICAgICAubmFtZSA9ICJzdW44aS10aGVybWFsIiwKPiA+ID4g KyAgICAgICAgICAgICAub2ZfbWF0Y2hfdGFibGUgPSBvZl90aHNfbWF0Y2gsCj4gPiA+ICsgICAg IH0sCj4gPiA+ICt9Owo+ID4gPiArbW9kdWxlX3BsYXRmb3JtX2RyaXZlcih0aHNfZHJpdmVyKTsK PiA+ID4gKwo+ID4gPiArTU9EVUxFX0RFU0NSSVBUSU9OKCJUaGVybWFsIHNlbnNvciBkcml2ZXIg Zm9yIEFsbHdpbm5lciBTT0MiKTsKPiA+ID4gK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKPiA+ ID4gLS0KPiA+ID4gMi4xNy4wCj4gPiA+Cj4gPiA+Cj4gPiA+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiA+IGxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0Cj4gPiA+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwo+ID4gPiBo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJu ZWwKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ IGxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cj4gbGludXgtYXJtLWtlcm5lbEBsaXN0cy5p bmZyYWRlYWQub3JnCj4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVs QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==