From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-Id: <20170124100509.53LGRxbi@smtp2m.mail.yandex.net> Date: Tue, 24 Jan 2017 14:50:32 +0800 Subject: Re: [PATCH 07/11] clk: sunxi-ng: Add A80 Display Engine CCU From: Icenowy Zheng To: Chen-Yu Tsai Cc: Michael Turquette , Mark Rutland , Rob Herring , linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Stephen Boyd , Maxime Ripard , linux-arm-kernel@lists.infradead.org, linux-sunxi@googlegroups.com MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 List-ID: CjIwMTflubQx5pyIMjTml6UgMTA6MzLkuo4gQ2hlbi1ZdSBUc2FpIDx3ZW5zQGNzaWUub3JnPuWG memBk++8mgo+Cj4gQWRkIHN1cHBvcnQgZm9yIHRoZSBkaXNwbGF5IGVuZ2luZSBjbG9jayBjb250 cm9scyBmb3VuZCBvbiB0aGUgQTgwLiAKPgo+IFNpZ25lZC1vZmYtYnk6IENoZW4tWXUgVHNhaSA8 d2Vuc0Bjc2llLm9yZz4gCj4gLS0tIAo+IC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3N1 bjlpLWRlLnR4dMKgwqDCoMKgwqDCoMKgwqAgfMKgIDI4ICsrIAo+IGRyaXZlcnMvY2xrL3N1bnhp LW5nL01ha2VmaWxlwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzC oMKgIDEgKyAKPiBkcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuOWktYTgwLWRlLmPCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHwgMjgzICsrKysrKysrKysrKysrKysrKysrKyAKPiBkcml2ZXJzL2Ns ay9zdW54aS1uZy9jY3Utc3VuOWktYTgwLWRlLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAz MyArKysgCj4gaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9zdW45aS1hODAtZGUuaMKgwqDCoMKg wqDCoMKgwqDCoMKgIHzCoCA4MCArKysrKysgCj4gaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9z dW45aS1hODAtZGUuaMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA1OCArKysrKyAKPiA2IGZpbGVz IGNoYW5nZWQsIDQ4MyBpbnNlcnRpb25zKCspIAo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVu dGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svc3VuOWktZGUudHh0IAo+IGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuOWktYTgwLWRlLmMgCj4gY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW45aS1hODAtZGUuaCAK PiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9zdW45aS1hODAt ZGUuaCAKPiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9zdW45 aS1hODAtZGUuaCAKPgo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmlu ZGluZ3MvY2xvY2svc3VuOWktZGUudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL2Nsb2NrL3N1bjlpLWRlLnR4dCAKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NCAKPiBpbmRleCAw MDAwMDAwMDAwMDAuLjNhNWU2ZGY3MDY3NyAKPiAtLS0gL2Rldi9udWxsIAo+ICsrKyBiL0RvY3Vt ZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9zdW45aS1kZS50eHQgCj4gQEAgLTAs MCArMSwyOCBAQCAKPiArQWxsd2lubmVyIEE4MCBEaXNwbGF5IEVuZ2luZSBDbG9jayBDb250cm9s IEJpbmRpbmcgCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAKPiArIAo+ ICtSZXF1aXJlZCBwcm9wZXJ0aWVzIDogCj4gKy0gY29tcGF0aWJsZTogbXVzdCBjb250YWluIG9u ZSBvZiB0aGUgZm9sbG93aW5nIGNvbXBhdGlibGVzOiAKPiArIC0gImFsbHdpbm5lcixzdW45aS1h ODAtZGUtY2xvY2tzIiAKPiArIAo+ICstIHJlZzogTXVzdCBjb250YWluIHRoZSByZWdpc3RlcnMg YmFzZSBhZGRyZXNzIGFuZCBsZW5ndGggCj4gKy0gY2xvY2tzOiBwaGFuZGxlIHRvIHRoZSBjbG9j a3MgZmVlZGluZyB0aGUgZGlzcGxheSBlbmdpbmUgc3Vic3lzdGVtLiAKPiArIMKgIFRocmVlIGFy ZSBuZWVkZWQ6IAo+ICvCoCAtICJtb2QiOiB0aGUgZGlzcGxheSBlbmdpbmUgbW9kdWxlIGNsb2Nr IAo+ICvCoCAtICJkcmFtIjogdGhlIERSQU0gYnVzIGNsb2NrIGZvciB0aGUgc3lzdGVtIAo+ICvC oCAtICJidXMiOiB0aGUgYnVzIGNsb2NrIGZvciB0aGUgd2hvbGUgZGlzcGxheSBlbmdpbmUgc3Vi c3lzdGVtIAo+ICstIGNsb2NrLW5hbWVzOiBNdXN0IGNvbnRhaW4gdGhlIGNsb2NrIG5hbWVzIGRl c2NyaWJlZCBqdXN0IGFib3ZlIAo+ICstIHJlc2V0czogcGhhbmRsZSB0byB0aGUgcmVzZXQgY29u dHJvbCBmb3IgdGhlIGRpc3BsYXkgZW5naW5lIHN1YnN5c3RlbS4gCj4gKy0gI2Nsb2NrLWNlbGxz IDogbXVzdCBjb250YWluIDEgCj4gKy0gI3Jlc2V0LWNlbGxzIDogbXVzdCBjb250YWluIDEgCj4g KyAKPiArRXhhbXBsZTogCj4gK2RlX2Nsb2NrczogY2xvY2tAMDMwMDAwMDAgeyAKPiArIGNvbXBh dGlibGUgPSAiYWxsd2lubmVyLHN1bjlpLWE4MC1kZS1jbGtzIjsgCgpEaWZmZXJlbnQgZnJvbSB0 aGUgY29tcGF0aWJsZSBhYm92ZS4uLgoKPiArIHJlZyA9IDwweDAzMDAwMDAwIDB4MzA+OyAKPiAr IGNsb2NrcyA9IDwmY2N1IENMS19ERT4sIDwmY2N1IENMS19TRFJBTT4sIDwmY2N1IENMS19CVVNf REU+OyAKPiArIGNsb2NrLW5hbWVzID0gIm1vZCIsICJkcmFtIiwgImJ1cyI7IAo+ICsgcmVzZXRz ID0gPCZjY3UgUlNUX0JVU19ERT47IAo+ICsgI2Nsb2NrLWNlbGxzID0gPDE+OyAKPiArICNyZXNl dC1jZWxscyA9IDwxPjsgCj4gK307IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdW54aS1u Zy9NYWtlZmlsZSBiL2RyaXZlcnMvY2xrL3N1bnhpLW5nL01ha2VmaWxlIAo+IGluZGV4IDhmMzdl ZjdmYjY3ZC4uNmZlYWFjMGM1NjAwIDEwMDY0NCAKPiAtLS0gYS9kcml2ZXJzL2Nsay9zdW54aS1u Zy9NYWtlZmlsZSAKPiArKysgYi9kcml2ZXJzL2Nsay9zdW54aS1uZy9NYWtlZmlsZSAKPiBAQCAt MjYsNCArMjYsNSBAQCBvYmotJChDT05GSUdfU1VOOElfQTMzX0NDVSkgKz0gY2N1LXN1bjhpLWEz My5vIAo+IG9iai0kKENPTkZJR19TVU44SV9IM19DQ1UpICs9IGNjdS1zdW44aS1oMy5vIAo+IG9i ai0kKENPTkZJR19TVU44SV9WM1NfQ0NVKSArPSBjY3Utc3VuOGktdjNzLm8gCj4gb2JqLSQoQ09O RklHX1NVTjlJX0E4MF9DQ1UpICs9IGNjdS1zdW45aS1hODAubyAKPiArb2JqLSQoQ09ORklHX1NV TjlJX0E4MF9DQ1UpICs9IGNjdS1zdW45aS1hODAtZGUubyAKPiBvYmotJChDT05GSUdfU1VOOUlf QTgwX0NDVSkgKz0gY2N1LXN1bjlpLWE4MC11c2IubyAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9j bGsvc3VueGktbmcvY2N1LXN1bjlpLWE4MC1kZS5jIGIvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1 LXN1bjlpLWE4MC1kZS5jIAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0IAo+IGluZGV4IDAwMDAwMDAw MDAwMC4uM2ZjMjdkYjBhNDlhIAo+IC0tLSAvZGV2L251bGwgCj4gKysrIGIvZHJpdmVycy9jbGsv c3VueGktbmcvY2N1LXN1bjlpLWE4MC1kZS5jIAo+IEBAIC0wLDAgKzEsMjgzIEBAIAo+ICsvKiAK PiArICogQ29weXJpZ2h0IChjKSAyMDE2IENoZW4tWXUgVHNhaS4gQWxsIHJpZ2h0cyByZXNlcnZl ZC4gCj4gKyAqIAo+ICsgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIAo+ICsgKiBMaWNlbnNlIHZlcnNpb24gMiwgYXMg cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGFuZCAKPiArICogbWF5 IGJlIGNvcGllZCwgZGlzdHJpYnV0ZWQsIGFuZCBtb2RpZmllZCB1bmRlciB0aG9zZSB0ZXJtcy4g Cj4gKyAqIAo+ICsgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwgCj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIAo+ICsgKiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuwqAgU2VlIHRoZSAKPiArICogR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gCj4gKyAqLyAKPiArIAo+ ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+IAo+ICsjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVy Lmg+IAo+ICsjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPiAKPiArI2luY2x1ZGUgPGxpbnV4 L3BsYXRmb3JtX2RldmljZS5oPiAKPiArI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+IAo+ICsgCj4g KyNpbmNsdWRlICJjY3VfY29tbW9uLmgiIAo+ICsjaW5jbHVkZSAiY2N1X2Rpdi5oIiAKPiArI2lu Y2x1ZGUgImNjdV9nYXRlLmgiIAo+ICsjaW5jbHVkZSAiY2N1X3Jlc2V0LmgiIAo+ICsgCj4gKyNp bmNsdWRlICJjY3Utc3VuOWktYTgwLWRlLmgiIAo+ICsgCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FU RShmZTBfY2xrLCAiZmUwIiwgImZlMC1kaXYiLCAKPiArIMKgwqDCoMKgwqAgMHgwMCwgQklUKDAp LCAwKTsgCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShmZTFfY2xrLCAiZmUxIiwgImZlMS1kaXYi LCAKPiArIMKgwqDCoMKgwqAgMHgwMCwgQklUKDEpLCAwKTsgCj4gK3N0YXRpYyBTVU5YSV9DQ1Vf R0FURShmZTJfY2xrLCAiZmUyIiwgImZlMi1kaXYiLCAKPiArIMKgwqDCoMKgwqAgMHgwMCwgQklU KDIpLCAwKTsgCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShpZXBfZGV1MF9jbGssICJpZXAtZGV1 MCIsICJkZSIsIAo+ICsgwqDCoMKgwqDCoCAweDAwLCBCSVQoNCksIDApOyAKPiArc3RhdGljIFNV TlhJX0NDVV9HQVRFKGllcF9kZXUxX2NsaywgImllcC1kZXUxIiwgImRlIiwgCj4gKyDCoMKgwqDC oMKgIDB4MDAsIEJJVCg1KSwgMCk7IAo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYmUwX2Nsaywg ImJlMCIsICJiZTAtZGl2IiwgCj4gKyDCoMKgwqDCoMKgIDB4MDAsIEJJVCg4KSwgMCk7IAo+ICtz dGF0aWMgU1VOWElfQ0NVX0dBVEUoYmUxX2NsaywgImJlMSIsICJiZTEtZGl2IiwgCj4gKyDCoMKg wqDCoMKgIDB4MDAsIEJJVCg5KSwgMCk7IAo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYmUyX2Ns aywgImJlMiIsICJiZTItZGl2IiwgCj4gKyDCoMKgwqDCoMKgIDB4MDAsIEJJVCgxMCksIDApOyAK PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKGllcF9kcmMwX2NsaywgImllcC1kcmMwIiwgImRlIiwg Cj4gKyDCoMKgwqDCoMKgIDB4MDAsIEJJVCgxMiksIDApOyAKPiArc3RhdGljIFNVTlhJX0NDVV9H QVRFKGllcF9kcmMxX2NsaywgImllcC1kcmMxIiwgImRlIiwgCj4gKyDCoMKgwqDCoMKgIDB4MDAs IEJJVCgxMyksIDApOyAKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKG1lcmdlX2NsaywgIm1lcmdl IiwgImRlIiwgCj4gKyDCoMKgwqDCoMKgIDB4MDAsIEJJVCgyMCksIDApOyAKPiArIAo+ICtzdGF0 aWMgU1VOWElfQ0NVX0dBVEUoZHJhbV9mZTBfY2xrLCAiZHJhbS1mZTAiLCAic2RyYW0iLCAKPiAr IMKgwqDCoMKgwqAgMHgwNCwgQklUKDApLCAwKTsgCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShk cmFtX2ZlMV9jbGssICJkcmFtLWZlMSIsICJzZHJhbSIsIAo+ICsgwqDCoMKgwqDCoCAweDA0LCBC SVQoMSksIDApOyAKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKGRyYW1fZmUyX2NsaywgImRyYW0t ZmUyIiwgInNkcmFtIiwgCj4gKyDCoMKgwqDCoMKgIDB4MDQsIEJJVCgyKSwgMCk7IAo+ICtzdGF0 aWMgU1VOWElfQ0NVX0dBVEUoZHJhbV9kZXUwX2NsaywgImRyYW0tZGV1MCIsICJzZHJhbSIsIAo+ ICsgwqDCoMKgwqDCoCAweDA0LCBCSVQoNCksIDApOyAKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRF KGRyYW1fZGV1MV9jbGssICJkcmFtLWRldTEiLCAic2RyYW0iLCAKPiArIMKgwqDCoMKgwqAgMHgw NCwgQklUKDUpLCAwKTsgCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShkcmFtX2JlMF9jbGssICJk cmFtLWJlMCIsICJzZHJhbSIsIAo+ICsgwqDCoMKgwqDCoCAweDA0LCBCSVQoOCksIDApOyAKPiAr c3RhdGljIFNVTlhJX0NDVV9HQVRFKGRyYW1fYmUxX2NsaywgImRyYW0tYmUxIiwgInNkcmFtIiwg Cj4gKyDCoMKgwqDCoMKgIDB4MDQsIEJJVCg5KSwgMCk7IAo+ICtzdGF0aWMgU1VOWElfQ0NVX0dB VEUoZHJhbV9iZTJfY2xrLCAiZHJhbS1iZTIiLCAic2RyYW0iLCAKPiArIMKgwqDCoMKgwqAgMHgw NCwgQklUKDEwKSwgMCk7IAo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoZHJhbV9kcmMwX2Nsaywg ImRyYW0tZHJjMCIsICJzZHJhbSIsIAo+ICsgwqDCoMKgwqDCoCAweDA0LCBCSVQoMTIpLCAwKTsg Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShkcmFtX2RyYzFfY2xrLCAiZHJhbS1kcmMxIiwgInNk cmFtIiwgCj4gKyDCoMKgwqDCoMKgIDB4MDQsIEJJVCgxMyksIDApOyAKPiArIAo+ICtzdGF0aWMg U1VOWElfQ0NVX0dBVEUoYnVzX2ZlMF9jbGssICJidXMtZmUwIiwgImJ1cy1kZSIsIAo+ICsgwqDC oMKgwqDCoCAweDA4LCBCSVQoMCksIDApOyAKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKGJ1c19m ZTFfY2xrLCAiYnVzLWZlMSIsICJidXMtZGUiLCAKPiArIMKgwqDCoMKgwqAgMHgwOCwgQklUKDEp LCAwKTsgCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShidXNfZmUyX2NsaywgImJ1cy1mZTIiLCAi YnVzLWRlIiwgCj4gKyDCoMKgwqDCoMKgIDB4MDgsIEJJVCgyKSwgMCk7IAo+ICtzdGF0aWMgU1VO WElfQ0NVX0dBVEUoYnVzX2RldTBfY2xrLCAiYnVzLWRldTAiLCAiYnVzLWRlIiwgCj4gKyDCoMKg wqDCoMKgIDB4MDgsIEJJVCg0KSwgMCk7IAo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX2Rl dTFfY2xrLCAiYnVzLWRldTEiLCAiYnVzLWRlIiwgCj4gKyDCoMKgwqDCoMKgIDB4MDgsIEJJVCg1 KSwgMCk7IAo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUoYnVzX2JlMF9jbGssICJidXMtYmUwIiwg ImJ1cy1kZSIsIAo+ICsgwqDCoMKgwqDCoCAweDA4LCBCSVQoOCksIDApOyAKPiArc3RhdGljIFNV TlhJX0NDVV9HQVRFKGJ1c19iZTFfY2xrLCAiYnVzLWJlMSIsICJidXMtZGUiLCAKPiArIMKgwqDC oMKgwqAgMHgwOCwgQklUKDkpLCAwKTsgCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShidXNfYmUy X2NsaywgImJ1cy1iZTIiLCAiYnVzLWRlIiwgCj4gKyDCoMKgwqDCoMKgIDB4MDgsIEJJVCgxMCks IDApOyAKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKGJ1c19kcmMwX2NsaywgImJ1cy1kcmMwIiwg ImJ1cy1kZSIsIAo+ICsgwqDCoMKgwqDCoCAweDA4LCBCSVQoMTIpLCAwKTsgCj4gK3N0YXRpYyBT VU5YSV9DQ1VfR0FURShidXNfZHJjMV9jbGssICJidXMtZHJjMSIsICJidXMtZGUiLCAKPiArIMKg wqDCoMKgwqAgMHgwOCwgQklUKDEzKSwgMCk7IAo+ICsgCj4gK3N0YXRpYyBTVU5YSV9DQ1VfTShm ZTBfZGl2X2NsaywgImZlMC1kaXYiLCAiZGUiLCAweDIwLCAwLCA0LCAwKTsgCj4gK3N0YXRpYyBT VU5YSV9DQ1VfTShmZTFfZGl2X2NsaywgImZlMS1kaXYiLCAiZGUiLCAweDIwLCA0LCA0LCAwKTsg Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfTShmZTJfZGl2X2NsaywgImZlMi1kaXYiLCAiZGUiLCAweDIw LCA4LCA0LCAwKTsgCj4gK3N0YXRpYyBTVU5YSV9DQ1VfTShiZTBfZGl2X2NsaywgImJlMC1kaXYi LCAiZGUiLCAweDIwLCAxNiwgNCwgMCk7IAo+ICtzdGF0aWMgU1VOWElfQ0NVX00oYmUxX2Rpdl9j bGssICJiZTEtZGl2IiwgImRlIiwgMHgyMCwgMjAsIDQsIDApOyAKPiArc3RhdGljIFNVTlhJX0ND VV9NKGJlMl9kaXZfY2xrLCAiYmUyLWRpdiIsICJkZSIsIDB4MjAsIDI0LCA0LCAwKTsgCj4gKyAK PiArc3RhdGljIHN0cnVjdCBjY3VfY29tbW9uICpzdW45aV9hODBfZGVfY2xrc1tdID0geyAKPiAr ICZmZTBfY2xrLmNvbW1vbiwgCj4gKyAmZmUxX2Nsay5jb21tb24sIAo+ICsgJmZlMl9jbGsuY29t bW9uLCAKPiArICZpZXBfZGV1MF9jbGsuY29tbW9uLCAKPiArICZpZXBfZGV1MV9jbGsuY29tbW9u LCAKPiArICZiZTBfY2xrLmNvbW1vbiwgCj4gKyAmYmUxX2Nsay5jb21tb24sIAo+ICsgJmJlMl9j bGsuY29tbW9uLCAKPiArICZpZXBfZHJjMF9jbGsuY29tbW9uLCAKPiArICZpZXBfZHJjMV9jbGsu Y29tbW9uLCAKPiArICZtZXJnZV9jbGsuY29tbW9uLCAKPiArIAo+ICsgJmRyYW1fZmUwX2Nsay5j b21tb24sIAo+ICsgJmRyYW1fZmUxX2Nsay5jb21tb24sIAo+ICsgJmRyYW1fZmUyX2Nsay5jb21t b24sIAo+ICsgJmRyYW1fZGV1MF9jbGsuY29tbW9uLCAKPiArICZkcmFtX2RldTFfY2xrLmNvbW1v biwgCj4gKyAmZHJhbV9iZTBfY2xrLmNvbW1vbiwgCj4gKyAmZHJhbV9iZTFfY2xrLmNvbW1vbiwg Cj4gKyAmZHJhbV9iZTJfY2xrLmNvbW1vbiwgCj4gKyAmZHJhbV9kcmMwX2Nsay5jb21tb24sIAo+ ICsgJmRyYW1fZHJjMV9jbGsuY29tbW9uLCAKPiArIAo+ICsgJmJ1c19mZTBfY2xrLmNvbW1vbiwg Cj4gKyAmYnVzX2ZlMV9jbGsuY29tbW9uLCAKPiArICZidXNfZmUyX2Nsay5jb21tb24sIAo+ICsg JmJ1c19kZXUwX2Nsay5jb21tb24sIAo+ICsgJmJ1c19kZXUxX2Nsay5jb21tb24sIAo+ICsgJmJ1 c19iZTBfY2xrLmNvbW1vbiwgCj4gKyAmYnVzX2JlMV9jbGsuY29tbW9uLCAKPiArICZidXNfYmUy X2Nsay5jb21tb24sIAo+ICsgJmJ1c19kcmMwX2Nsay5jb21tb24sIAo+ICsgJmJ1c19kcmMxX2Ns ay5jb21tb24sIAo+ICsgCj4gKyAmZmUwX2Rpdl9jbGsuY29tbW9uLCAKPiArICZmZTFfZGl2X2Ns ay5jb21tb24sIAo+ICsgJmZlMl9kaXZfY2xrLmNvbW1vbiwgCj4gKyAmYmUwX2Rpdl9jbGsuY29t bW9uLCAKPiArICZiZTFfZGl2X2Nsay5jb21tb24sIAo+ICsgJmJlMl9kaXZfY2xrLmNvbW1vbiwg Cj4gK307IAo+ICsgCj4gK3N0YXRpYyBzdHJ1Y3QgY2xrX2h3X29uZWNlbGxfZGF0YSBzdW45aV9h ODBfZGVfaHdfY2xrcyA9IHsgCj4gKyAuaHdzID0geyAKPiArIFtDTEtfRkUwXSA9ICZmZTBfY2xr LmNvbW1vbi5odywgCj4gKyBbQ0xLX0ZFMV0gPSAmZmUxX2Nsay5jb21tb24uaHcsIAo+ICsgW0NM S19GRTJdID0gJmZlMl9jbGsuY29tbW9uLmh3LCAKPiArIFtDTEtfSUVQX0RFVTBdID0gJmllcF9k ZXUwX2Nsay5jb21tb24uaHcsIAo+ICsgW0NMS19JRVBfREVVMV0gPSAmaWVwX2RldTFfY2xrLmNv bW1vbi5odywgCj4gKyBbQ0xLX0JFMF0gPSAmYmUwX2Nsay5jb21tb24uaHcsIAo+ICsgW0NMS19C RTFdID0gJmJlMV9jbGsuY29tbW9uLmh3LCAKPiArIFtDTEtfQkUyXSA9ICZiZTJfY2xrLmNvbW1v bi5odywgCj4gKyBbQ0xLX0lFUF9EUkMwXSA9ICZpZXBfZHJjMF9jbGsuY29tbW9uLmh3LCAKPiAr IFtDTEtfSUVQX0RSQzFdID0gJmllcF9kcmMxX2Nsay5jb21tb24uaHcsIAo+ICsgW0NMS19NRVJH RV0gPSAmbWVyZ2VfY2xrLmNvbW1vbi5odywgCj4gKyAKPiArIFtDTEtfRFJBTV9GRTBdID0gJmRy YW1fZmUwX2Nsay5jb21tb24uaHcsIAo+ICsgW0NMS19EUkFNX0ZFMV0gPSAmZHJhbV9mZTFfY2xr LmNvbW1vbi5odywgCj4gKyBbQ0xLX0RSQU1fRkUyXSA9ICZkcmFtX2ZlMl9jbGsuY29tbW9uLmh3 LCAKPiArIFtDTEtfRFJBTV9ERVUwXSA9ICZkcmFtX2RldTBfY2xrLmNvbW1vbi5odywgCj4gKyBb Q0xLX0RSQU1fREVVMV0gPSAmZHJhbV9kZXUxX2Nsay5jb21tb24uaHcsIAo+ICsgW0NMS19EUkFN X0JFMF0gPSAmZHJhbV9iZTBfY2xrLmNvbW1vbi5odywgCj4gKyBbQ0xLX0RSQU1fQkUxXSA9ICZk cmFtX2JlMV9jbGsuY29tbW9uLmh3LCAKPiArIFtDTEtfRFJBTV9CRTJdID0gJmRyYW1fYmUyX2Ns ay5jb21tb24uaHcsIAo+ICsgW0NMS19EUkFNX0RSQzBdID0gJmRyYW1fZHJjMF9jbGsuY29tbW9u Lmh3LCAKPiArIFtDTEtfRFJBTV9EUkMxXSA9ICZkcmFtX2RyYzFfY2xrLmNvbW1vbi5odywgCj4g KyAKPiArIFtDTEtfQlVTX0ZFMF0gPSAmYnVzX2ZlMF9jbGsuY29tbW9uLmh3LCAKPiArIFtDTEtf QlVTX0ZFMV0gPSAmYnVzX2ZlMV9jbGsuY29tbW9uLmh3LCAKPiArIFtDTEtfQlVTX0ZFMl0gPSAm YnVzX2ZlMl9jbGsuY29tbW9uLmh3LCAKPiArIFtDTEtfQlVTX0RFVTBdID0gJmJ1c19kZXUwX2Ns ay5jb21tb24uaHcsIAo+ICsgW0NMS19CVVNfREVVMV0gPSAmYnVzX2RldTFfY2xrLmNvbW1vbi5o dywgCj4gKyBbQ0xLX0JVU19CRTBdID0gJmJ1c19iZTBfY2xrLmNvbW1vbi5odywgCj4gKyBbQ0xL X0JVU19CRTFdID0gJmJ1c19iZTFfY2xrLmNvbW1vbi5odywgCj4gKyBbQ0xLX0JVU19CRTJdID0g JmJ1c19iZTJfY2xrLmNvbW1vbi5odywgCj4gKyBbQ0xLX0JVU19EUkMwXSA9ICZidXNfZHJjMF9j bGsuY29tbW9uLmh3LCAKPiArIFtDTEtfQlVTX0RSQzFdID0gJmJ1c19kcmMxX2Nsay5jb21tb24u aHcsIAo+ICsgCj4gKyBbQ0xLX0ZFMF9ESVZdID0gJmZlMF9kaXZfY2xrLmNvbW1vbi5odywgCj4g KyBbQ0xLX0ZFMV9ESVZdID0gJmZlMV9kaXZfY2xrLmNvbW1vbi5odywgCj4gKyBbQ0xLX0ZFMl9E SVZdID0gJmZlMl9kaXZfY2xrLmNvbW1vbi5odywgCj4gKyBbQ0xLX0JFMF9ESVZdID0gJmJlMF9k aXZfY2xrLmNvbW1vbi5odywgCj4gKyBbQ0xLX0JFMV9ESVZdID0gJmJlMV9kaXZfY2xrLmNvbW1v bi5odywgCj4gKyBbQ0xLX0JFMl9ESVZdID0gJmJlMl9kaXZfY2xrLmNvbW1vbi5odywgCj4gKyB9 LCAKPiArIC5udW0gPSBDTEtfTlVNQkVSLCAKPiArfTsgCj4gKyAKPiArc3RhdGljIHN0cnVjdCBj Y3VfcmVzZXRfbWFwIHN1bjlpX2E4MF9kZV9yZXNldHNbXSA9IHsgCj4gKyBbUlNUX0ZFMF0gPSB7 IDB4MGMsIEJJVCgwKSB9LCAKPiArIFtSU1RfRkUxXSA9IHsgMHgwYywgQklUKDEpIH0sIAo+ICsg W1JTVF9GRTJdID0geyAweDBjLCBCSVQoMikgfSwgCj4gKyBbUlNUX0RFVTBdID0geyAweDBjLCBC SVQoNCkgfSwgCj4gKyBbUlNUX0RFVTFdID0geyAweDBjLCBCSVQoNSkgfSwgCj4gKyBbUlNUX0JF MF0gPSB7IDB4MGMsIEJJVCg4KSB9LCAKPiArIFtSU1RfQkUxXSA9IHsgMHgwYywgQklUKDkpIH0s IAo+ICsgW1JTVF9CRTJdID0geyAweDBjLCBCSVQoMTApIH0sIAo+ICsgW1JTVF9EUkMwXSA9IHsg MHgwYywgQklUKDEyKSB9LCAKPiArIFtSU1RfRFJDMV0gPSB7IDB4MGMsIEJJVCgxMykgfSwgCj4g KyBbUlNUX01FUkdFXSA9IHsgMHgwYywgQklUKDIwKSB9LCAKPiArfTsgCj4gKyAKPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBzdW54aV9jY3VfZGVzYyBzdW45aV9hODBfZGVfY2xrX2Rlc2MgPSB7IAo+ ICsgLmNjdV9jbGtzID0gc3VuOWlfYTgwX2RlX2Nsa3MsIAo+ICsgLm51bV9jY3VfY2xrcyA9IEFS UkFZX1NJWkUoc3VuOWlfYTgwX2RlX2Nsa3MpLCAKPiArIAo+ICsgLmh3X2Nsa3MgPSAmc3VuOWlf YTgwX2RlX2h3X2Nsa3MsIAo+ICsgCj4gKyAucmVzZXRzID0gc3VuOWlfYTgwX2RlX3Jlc2V0cywg Cj4gKyAubnVtX3Jlc2V0cyA9IEFSUkFZX1NJWkUoc3VuOWlfYTgwX2RlX3Jlc2V0cyksIAo+ICt9 OyAKPiArIAo+ICtzdGF0aWMgaW50IHN1bjlpX2E4MF9kZV9jbGtfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikgCj4gK3sgCj4gKyBzdHJ1Y3QgcmVzb3VyY2UgKnJlczsgCj4gKyBz dHJ1Y3QgY2xrICpidXNfY2xrOyAKPiArIHN0cnVjdCByZXNldF9jb250cm9sICpyc3RjOyAKPiAr IHZvaWQgX19pb21lbSAqcmVnOyAKPiArIGludCByZXQ7IAo+ICsgCj4gKyByZXMgPSBwbGF0Zm9y bV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOyAKPiArIHJlZyA9IGRldm1f aW9yZW1hcF9yZXNvdXJjZSgmcGRldi0+ZGV2LCByZXMpOyAKPiArIGlmIChJU19FUlIocmVnKSkg Cj4gKyByZXR1cm4gUFRSX0VSUihyZWcpOyAKPiArIAo+ICsgYnVzX2NsayA9IGRldm1fY2xrX2dl dCgmcGRldi0+ZGV2LCAiYnVzIik7IAo+ICsgaWYgKElTX0VSUihidXNfY2xrKSkgeyAKPiArIHJl dCA9IFBUUl9FUlIoYnVzX2Nsayk7IAo+ICsgaWYgKHJldCAhPSAtRVBST0JFX0RFRkVSKSAKPiAr IGRldl9lcnIoJnBkZXYtPmRldiwgIkNvdWxkbid0IGdldCBidXMgY2xrOiAlZFxuIiwgcmV0KTsg Cj4gKyByZXR1cm4gcmV0OyAKPiArIH0gCj4gKyAKPiArIHJzdGMgPSBkZXZtX3Jlc2V0X2NvbnRy b2xfZ2V0X2V4Y2x1c2l2ZSgmcGRldi0+ZGV2LCBOVUxMKTsgCj4gKyBpZiAoSVNfRVJSKHJzdGMp KSB7IAo+ICsgcmV0ID0gUFRSX0VSUihidXNfY2xrKTsgCj4gKyBpZiAocmV0ICE9IC1FUFJPQkVf REVGRVIpIAo+ICsgZGV2X2VycigmcGRldi0+ZGV2LCAKPiArICJDb3VsZG4ndCBnZXQgcmVzZXQg Y29udHJvbDogJWRcbiIsIHJldCk7IAo+ICsgcmV0dXJuIHJldDsgCj4gKyB9IAo+ICsgCj4gKyAv KiBUaGUgYnVzIGNsb2NrIG5lZWRzIHRvIGJlIGVuYWJsZWQgZm9yIHVzIHRvIGFjY2VzcyB0aGUg cmVnaXN0ZXJzICovIAo+ICsgcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGJ1c19jbGspOyAKPiAr IGlmIChyZXQpIHsgCj4gKyBkZXZfZXJyKCZwZGV2LT5kZXYsICJDb3VsZG4ndCBlbmFibGUgYnVz IGNsazogJWRcbiIsIHJldCk7IAo+ICsgcmV0dXJuIHJldDsgCj4gKyB9IAo+ICsgCj4gKyAvKiBU aGUgcmVzZXQgY29udHJvbCBuZWVkcyB0byBiZSBhc3NlcnRlZCBmb3IgdGhlIGNvbnRyb2xzIHRv IHdvcmsgKi8gCj4gKyByZXQgPSByZXNldF9jb250cm9sX2RlYXNzZXJ0KHJzdGMpOyAKPiArIGlm IChyZXQpIHsgCj4gKyBkZXZfZXJyKCZwZGV2LT5kZXYsIAo+ICsgIkNvdWxkbid0IGRlYXNzZXJ0 IHJlc2V0IGNvbnRyb2w6ICVkXG4iLCByZXQpOyAKPiArIGdvdG8gZXJyX2Rpc2FibGVfY2xrOyAK PiArIH0gCj4gKyAKPiArIHJldCA9IHN1bnhpX2NjdV9wcm9iZShwZGV2LT5kZXYub2Zfbm9kZSwg cmVnLCAKPiArIMKgwqDCoMKgwqAgJnN1bjlpX2E4MF9kZV9jbGtfZGVzYyk7IAo+ICsgaWYgKHJl dCkgCj4gKyBnb3RvIGVycl9hc3NlcnRfcmVzZXQ7IAo+ICsgCj4gKyByZXR1cm4gMDsgCj4gKyAK PiArZXJyX2Fzc2VydF9yZXNldDogCj4gKyByZXNldF9jb250cm9sX2Fzc2VydChyc3RjKTsgCj4g K2Vycl9kaXNhYmxlX2NsazogCj4gKyBjbGtfZGlzYWJsZV91bnByZXBhcmUoYnVzX2Nsayk7IAo+ ICsgcmV0dXJuIHJldDsgCj4gK30gCj4gKyAKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZp Y2VfaWQgc3VuOWlfYTgwX2RlX2Nsa19pZHNbXSA9IHsgCj4gKyB7IC5jb21wYXRpYmxlID0gImFs bHdpbm5lcixzdW45aS1hODAtZGUtY2xrcyIgfSwgCj4gKyB7IH0gCj4gK307IAo+ICsgCj4gK3N0 YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHN1bjlpX2E4MF9kZV9jbGtfZHJpdmVyID0geyAK PiArIC5wcm9iZSA9IHN1bjlpX2E4MF9kZV9jbGtfcHJvYmUsIAo+ICsgLmRyaXZlciA9IHsgCj4g KyAubmFtZSA9ICJzdW45aS1hODAtZGUtY2xrcyIsIAo+ICsgLm9mX21hdGNoX3RhYmxlID0gc3Vu OWlfYTgwX2RlX2Nsa19pZHMsIAo+ICsgfSwgCj4gK307IAo+ICtidWlsdGluX3BsYXRmb3JtX2Ry aXZlcihzdW45aV9hODBfZGVfY2xrX2RyaXZlcik7IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Ns ay9zdW54aS1uZy9jY3Utc3VuOWktYTgwLWRlLmggYi9kcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Ut c3VuOWktYTgwLWRlLmggCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQgCj4gaW5kZXggMDAwMDAwMDAw MDAwLi5hNDc2OTA0MWU0MGYgCj4gLS0tIC9kZXYvbnVsbCAKPiArKysgYi9kcml2ZXJzL2Nsay9z dW54aS1uZy9jY3Utc3VuOWktYTgwLWRlLmggCj4gQEAgLTAsMCArMSwzMyBAQCAKPiArLyogCj4g KyAqIENvcHlyaWdodCAyMDE2IENoZW4tWXUgVHNhaSAKPiArICogCj4gKyAqIENoZW4tWXUgVHNh aSA8d2Vuc0Bjc2llLm9yZz4gCj4gKyAqIAo+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSAKPiArICogaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkgCj4gKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDIgb2YgdGhlIExpY2Vuc2UsIG9yIAo+ICsgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLiAKPiArICogCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAKPiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgCj4gKyAqIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS7CoCBTZWUgdGhlIAo+ ICsgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAKPiArICov IAo+ICsgCj4gKyNpZm5kZWYgX0NDVV9TVU45SV9BODBfREVfSF8gCj4gKyNkZWZpbmUgX0NDVV9T VU45SV9BODBfREVfSF8gCj4gKyAKPiArI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL3N1bjlp LWE4MC1kZS5oPiAKPiArI2luY2x1ZGUgPGR0LWJpbmRpbmdzL3Jlc2V0L3N1bjlpLWE4MC1kZS5o PiAKPiArIAo+ICsvKiBJbnRlcm1lZGlhcnkgY2xvY2sgZGl2aWRlcnMgYXJlIG5vdCBleHBvcnRl ZCAqLyAKPiArI2RlZmluZSBDTEtfRkUwX0RJViAzMSAKPiArI2RlZmluZSBDTEtfRkUxX0RJViAz MiAKPiArI2RlZmluZSBDTEtfRkUyX0RJViAzMyAKPiArI2RlZmluZSBDTEtfQkUwX0RJViAzNCAK PiArI2RlZmluZSBDTEtfQkUxX0RJViAzNSAKPiArI2RlZmluZSBDTEtfQkUyX0RJViAzNiAKPiAr IAo+ICsjZGVmaW5lIENMS19OVU1CRVIgKENMS19CRTJfRElWICsgMSkgCj4gKyAKPiArI2VuZGlm IC8qIF9DQ1VfU1VOOUlfQTgwX0RFX0hfICovIAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJp bmRpbmdzL2Nsb2NrL3N1bjlpLWE4MC1kZS5oIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9z dW45aS1hODAtZGUuaCAKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NCAKPiBpbmRleCAwMDAwMDAwMDAw MDAuLjNkYWQ2YzNjZDEzMSAKPiAtLS0gL2Rldi9udWxsIAo+ICsrKyBiL2luY2x1ZGUvZHQtYmlu ZGluZ3MvY2xvY2svc3VuOWktYTgwLWRlLmggCj4gQEAgLTAsMCArMSw4MCBAQCAKPiArLyogCj4g KyAqIENvcHlyaWdodCAoQykgMjAxNiBDaGVuLVl1IFRzYWkgPHdlbnNAY3NpZS5vcmc+IAo+ICsg KiAKPiArICogVGhpcyBmaWxlIGlzIGR1YWwtbGljZW5zZWQ6IHlvdSBjYW4gdXNlIGl0IGVpdGhl ciB1bmRlciB0aGUgdGVybXMgCj4gKyAqIG9mIHRoZSBHUEwgb3IgdGhlIFgxMSBsaWNlbnNlLCBh dCB5b3VyIG9wdGlvbi4gTm90ZSB0aGF0IHRoaXMgZHVhbCAKPiArICogbGljZW5zaW5nIG9ubHkg YXBwbGllcyB0byB0aGlzIGZpbGUsIGFuZCBub3QgdGhpcyBwcm9qZWN0IGFzIGEgCj4gKyAqIHdo b2xlLiAKPiArICogCj4gKyAqwqAgYSkgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAKPiArICrCoMKgwqDCoCBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyAKPiArICrCoMKg wqDCoCBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMiBvZiB0aGUgCj4gKyAqwqDCoMKgwqAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4gCj4gKyAqIAo+ICsgKsKgwqDCoMKgIFRoaXMgZmlsZSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAKPiArICrCoMKg wqDCoCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZiAKPiArICrCoMKgwqDCoCBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuwqAgU2VlIHRoZSAKPiArICrCoMKgwqDCoCBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAKPiArICogCj4gKyAqIE9yLCBhbHRl cm5hdGl2ZWx5LCAKPiArICogCj4gKyAqwqAgYikgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gCj4gKyAqwqDCoMKgwqAgb2J0YWluaW5n IGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gCj4g KyAqwqDCoMKgwqAgZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCAKPiArICrCoMKgwqDCoCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQg bGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgCj4gKyAqwqDCoMKgwqAgY29weSwgbW9kaWZ5 LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIAo+ICsgKsKg wqDCoMKgIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z IHRvIHdob20gdGhlIAo+ICsgKsKgwqDCoMKgIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBz bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIAo+ICsgKsKgwqDCoMKgIGNvbmRpdGlvbnM6IAo+ ICsgKiAKPiArICrCoMKgwqDCoCBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSAKPiArICrCoMKgwqDCoCBpbmNsdWRlZCBpbiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4gCj4gKyAqIAo+ ICsgKsKgwqDCoMKgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB UlJBTlRZIE9GIEFOWSBLSU5ELCAKPiArICrCoMKgwqDCoCBFWFBSRVNTIE9SIElNUExJRUQsIElO Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgCj4gKyAqwqDCoMKgwqAg T0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Cj4gKyAqwqDCoMKgwqAgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVU SE9SUyBPUiBDT1BZUklHSFQgCj4gKyAqwqDCoMKgwqAgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIAo+ICsgKsKgwqDCoMKgIFdIRVRI RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyAK PiArICrCoMKgwqDCoCBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU V0FSRSBPUiBUSEUgVVNFIE9SIAo+ICsgKsKgwqDCoMKgIE9USEVSIERFQUxJTkdTIElOIFRIRSBT T0ZUV0FSRS4gCj4gKyAqLyAKPiArIAo+ICsjaWZuZGVmIF9EVF9CSU5ESU5HU19DTE9DS19TVU45 SV9BODBfREVfSF8gCj4gKyNkZWZpbmUgX0RUX0JJTkRJTkdTX0NMT0NLX1NVTjlJX0E4MF9ERV9I XyAKPiArIAo+ICsjZGVmaW5lIENMS19GRTAgMCAKPiArI2RlZmluZSBDTEtfRkUxIDEgCj4gKyNk ZWZpbmUgQ0xLX0ZFMiAyIAo+ICsjZGVmaW5lIENMS19JRVBfREVVMCAzIAo+ICsjZGVmaW5lIENM S19JRVBfREVVMSA0IAo+ICsjZGVmaW5lIENMS19CRTAgNSAKPiArI2RlZmluZSBDTEtfQkUxIDYg Cj4gKyNkZWZpbmUgQ0xLX0JFMiA3IAo+ICsjZGVmaW5lIENMS19JRVBfRFJDMCA4IAo+ICsjZGVm aW5lIENMS19JRVBfRFJDMSA5IAo+ICsjZGVmaW5lIENMS19NRVJHRSAxMCAKPiArIAo+ICsjZGVm aW5lIENMS19EUkFNX0ZFMCAxMSAKPiArI2RlZmluZSBDTEtfRFJBTV9GRTEgMTIgCj4gKyNkZWZp bmUgQ0xLX0RSQU1fRkUyIDEzIAo+ICsjZGVmaW5lIENMS19EUkFNX0RFVTAgMTQgCj4gKyNkZWZp bmUgQ0xLX0RSQU1fREVVMSAxNSAKPiArI2RlZmluZSBDTEtfRFJBTV9CRTAgMTYgCj4gKyNkZWZp bmUgQ0xLX0RSQU1fQkUxIDE3IAo+ICsjZGVmaW5lIENMS19EUkFNX0JFMiAxOCAKPiArI2RlZmlu ZSBDTEtfRFJBTV9EUkMwIDE5IAo+ICsjZGVmaW5lIENMS19EUkFNX0RSQzEgMjAgCj4gKyAKPiAr I2RlZmluZSBDTEtfQlVTX0ZFMCAyMSAKPiArI2RlZmluZSBDTEtfQlVTX0ZFMSAyMiAKPiArI2Rl ZmluZSBDTEtfQlVTX0ZFMiAyMyAKPiArI2RlZmluZSBDTEtfQlVTX0RFVTAgMjQgCj4gKyNkZWZp bmUgQ0xLX0JVU19ERVUxIDI1IAo+ICsjZGVmaW5lIENMS19CVVNfQkUwIDI2IAo+ICsjZGVmaW5l IENMS19CVVNfQkUxIDI3IAo+ICsjZGVmaW5lIENMS19CVVNfQkUyIDI4IAo+ICsjZGVmaW5lIENM S19CVVNfRFJDMCAyOSAKPiArI2RlZmluZSBDTEtfQlVTX0RSQzEgMzAgCj4gKyAKPiArI2VuZGlm IC8qIF9EVF9CSU5ESU5HU19DTE9DS19TVU45SV9BODBfREVfSF8gKi8gCj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQvc3VuOWktYTgwLWRlLmggYi9pbmNsdWRlL2R0LWJp bmRpbmdzL3Jlc2V0L3N1bjlpLWE4MC1kZS5oIAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0IAo+IGlu ZGV4IDAwMDAwMDAwMDAwMC4uMjA1MDcyNzcwMTcxIAo+IC0tLSAvZGV2L251bGwgCj4gKysrIGIv aW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9zdW45aS1hODAtZGUuaCAKPiBAQCAtMCwwICsxLDU4 IEBAIAo+ICsvKiAKPiArICogQ29weXJpZ2h0IChDKSAyMDE2IENoZW4tWXUgVHNhaSA8d2Vuc0Bj c2llLm9yZz4gCj4gKyAqIAo+ICsgKiBUaGlzIGZpbGUgaXMgZHVhbC1saWNlbnNlZDogeW91IGNh biB1c2UgaXQgZWl0aGVyIHVuZGVyIHRoZSB0ZXJtcyAKPiArICogb2YgdGhlIEdQTCBvciB0aGUg WDExIGxpY2Vuc2UsIGF0IHlvdXIgb3B0aW9uLiBOb3RlIHRoYXQgdGhpcyBkdWFsIAo+ICsgKiBs aWNlbnNpbmcgb25seSBhcHBsaWVzIHRvIHRoaXMgZmlsZSwgYW5kIG5vdCB0aGlzIHByb2plY3Qg YXMgYSAKPiArICogd2hvbGUuIAo+ICsgKiAKPiArICrCoCBhKSBUaGlzIGZpbGUgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIAo+ICsgKsKgwqDCoMKgIG1v ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIAo+ICsgKsKgwqDCoMKgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAKPiArICrCoMKgwqDCoCBMaWNlbnNlLCBvciAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAKPiArICogCj4gKyAqwqDCoMKgwqAg VGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsIAo+ICsgKsKgwqDCoMKgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIAo+ICsgKsKgwqDCoMKgIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS7CoCBTZWUgdGhlIAo+ICsgKsKgwqDC oMKgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuIAo+ICsgKiAK PiArICogT3IsIGFsdGVybmF0aXZlbHksIAo+ICsgKiAKPiArICrCoCBiKSBQZXJtaXNzaW9uIGlz IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiAKPiArICrCoMKg wqDCoCBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiAKPiArICrCoMKgwqDCoCBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IAo+ICsgKsKgwqDCoMKgIHJlc3RyaWN0aW9uLCBpbmNs dWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCAKPiArICrCoMKgwqDC oCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBh bmQvb3IgCj4gKyAqwqDCoMKgwqAgc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8g cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgCj4gKyAqwqDCoMKgwqAgU29mdHdhcmUgaXMgZnVy bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgCj4gKyAqwqDCoMKgwqAg Y29uZGl0aW9uczogCj4gKyAqIAo+ICsgKsKgwqDCoMKgIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90 aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIAo+ICsgKsKgwqDCoMKgIGlu Y2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3 YXJlLiAKPiArICogCj4gKyAqwqDCoMKgwqAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJ UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIAo+ICsgKsKgwqDCoMKgIEVYUFJFU1Mg T1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyAK PiArICrCoMKgwqDCoCBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFORCAKPiArICrCoMKgwqDCoCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5U IFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCAKPiArICrCoMKgwqDCoCBIT0xERVJTIEJF IExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgCj4gKyAq wqDCoMKgwqAgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX SVNFLCBBUklTSU5HIAo+ICsgKsKgwqDCoMKgIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O IFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgCj4gKyAqwqDCoMKgwqAgT1RIRVIgREVB TElOR1MgSU4gVEhFIFNPRlRXQVJFLiAKPiArICovIAo+ICsgCj4gKyNpZm5kZWYgX0RUX0JJTkRJ TkdTX1JFU0VUX1NVTjlJX0E4MF9ERV9IXyAKPiArI2RlZmluZSBfRFRfQklORElOR1NfUkVTRVRf U1VOOUlfQTgwX0RFX0hfIAo+ICsgCj4gKyNkZWZpbmUgUlNUX0ZFMCAwIAo+ICsjZGVmaW5lIFJT VF9GRTEgMSAKPiArI2RlZmluZSBSU1RfRkUyIDIgCj4gKyNkZWZpbmUgUlNUX0RFVTAgMyAKPiAr I2RlZmluZSBSU1RfREVVMSA0IAo+ICsjZGVmaW5lIFJTVF9CRTAgNSAKPiArI2RlZmluZSBSU1Rf QkUxIDYgCj4gKyNkZWZpbmUgUlNUX0JFMiA3IAo+ICsjZGVmaW5lIFJTVF9EUkMwIDggCj4gKyNk ZWZpbmUgUlNUX0RSQzEgOSAKPiArI2RlZmluZSBSU1RfTUVSR0UgMTAgCj4gKyAKPiArI2VuZGlm IC8qIF9EVF9CSU5ESU5HU19SRVNFVF9TVU45SV9BODBfREVfSF8gKi8gCj4gLS0gCj4gMi4xMS4w IAo+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAK PiBsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdCAKPiBsaW51eC1hcm0ta2VybmVsQGxpc3Rz LmluZnJhZGVhZC5vcmcgCj4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1hcm0ta2VybmVsIAo=