From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Osipenko Subject: Re: [PATCH v2] drm/tegra: Add kerneldoc for UAPI Date: Sat, 19 May 2018 01:18:05 +0300 Message-ID: <015e6ef1-e020-f339-2517-49330cc8616a@gmail.com> References: <20180517154132.10058-8-thierry.reding@gmail.com> <20180518203337.26476-1-thierry.reding@gmail.com> <71541779-b4a9-43f3-f3e0-dd74e244ba93@gmail.com> <20180518215819.GA28123@ulmo> <20180518221305.GA29384@ulmo> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180518221305.GA29384@ulmo> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org, Mikko Perttunen List-Id: linux-tegra@vger.kernel.org T24gMTkuMDUuMjAxOCAwMToxMywgVGhpZXJyeSBSZWRpbmcgd3JvdGU6Cj4gT24gRnJpLCBNYXkg MTgsIDIwMTggYXQgMTE6NTg6MTlQTSArMDIwMCwgVGhpZXJyeSBSZWRpbmcgd3JvdGU6Cj4+IE9u IFNhdCwgTWF5IDE5LCAyMDE4IGF0IDEyOjQyOjIyQU0gKzAzMDAsIERtaXRyeSBPc2lwZW5rbyB3 cm90ZToKPj4+IE9uIDE4LjA1LjIwMTggMjM6MzMsIFRoaWVycnkgUmVkaW5nIHdyb3RlOgo+Pj4+ IEZyb206IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5jb20+Cj4+Pj4KPj4+PiBEb2N1 bWVudCB0aGUgdXNlcnNwYWNlIEFCSSB3aXRoIGtlcm5lbGRvYyB0byBwcm92aWRlIHNvbWUgaW5m b3JtYXRpb24gb24KPj4+PiBob3cgdG8gdXNlIGl0Lgo+Pj4+Cj4+Pj4gdjI6Cj4+Pj4gLSBrZWVw IEdFTSBvYmplY3QgY3JlYXRpb24gZmxhZ3MgZm9yIEFCSSBjb21wYXRpYmlsaXR5Cj4+Pj4gLSBm aXggdHlwbyBpbiBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdF9pbmNyIGtlcm5lbGRvYwo+Pj4+IC0g Zml4IHR5cG9zIGluIHN0cnVjdCBkcm1fdGVncmFfc3VibWl0IGtlcm5lbGRvYwo+Pj4+IC0gcmV3 b3JkZWQgc29tZSBkZXNjcmlwdGlvbnMgYXMgc3VnZ2VzdGVkCj4+Pj4KPj4+PiBTaWduZWQtb2Zm LWJ5OiBUaGllcnJ5IFJlZGluZyA8dHJlZGluZ0BudmlkaWEuY29tPgo+Pj4+IC0tLQo+Pj4+ICBp bmNsdWRlL3VhcGkvZHJtL3RlZ3JhX2RybS5oIHwgNDgwICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystCj4+Pj4gIDEgZmlsZSBjaGFuZ2VkLCA0NzEgaW5zZXJ0aW9ucygrKSwgOSBk ZWxldGlvbnMoLSkKPj4+Pgo+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL3RlZ3Jh X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS90ZWdyYV9kcm0uaAo+Pj4+IGluZGV4IDk5ZTE1ZDgy ZDFlOS4uN2UxMjFjNjljZDlhIDEwMDY0NAo+Pj4+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vdGVn cmFfZHJtLmgKPj4+PiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL3RlZ3JhX2RybS5oCj4+Pj4gQEAg LTMyLDE0MyArMzIsNjA1IEBAIGV4dGVybiAiQyIgewo+Pj4+ICAjZGVmaW5lIERSTV9URUdSQV9H RU1fQ1JFQVRFX1RJTEVEICAgICAoMSA8PCAwKQo+Pj4+ICAjZGVmaW5lIERSTV9URUdSQV9HRU1f Q1JFQVRFX0JPVFRPTV9VUCAoMSA8PCAxKQo+Pj4+ICAKPj4+PiArLyoqCj4+Pj4gKyAqIHN0cnVj dCBkcm1fdGVncmFfZ2VtX2NyZWF0ZSAtIHBhcmFtZXRlcnMgZm9yIHRoZSBHRU0gb2JqZWN0IGNy ZWF0aW9uIElPQ1RMCj4+Pj4gKyAqLwo+Pj4+ICBzdHJ1Y3QgZHJtX3RlZ3JhX2dlbV9jcmVhdGUg ewo+Pj4+ICsJLyoqCj4+Pj4gKwkgKiBAc2l6ZToKPj4+PiArCSAqCj4+Pj4gKwkgKiBUaGUgc2l6 ZSwgaW4gYnl0ZXMsIG9mIHRoZSBidWZmZXIgb2JqZWN0IHRvIGJlIGNyZWF0ZWQuCj4+Pj4gKwkg Ki8KPj4+PiAgCV9fdTY0IHNpemU7Cj4+Pj4gKwo+Pj4+ICsJLyoqCj4+Pj4gKwkgKiBAZmxhZ3M6 Cj4+Pj4gKwkgKgo+Pj4+ICsJICogQSBiaXRtYXNrIG9mIGZsYWdzIHRoYXQgaW5mbHVlbmNlIHRo ZSBjcmVhdGlvbiBvZiBHRU0gb2JqZWN0czoKPj4+PiArCSAqCj4+Pj4gKwkgKiBEUk1fVEVHUkFf R0VNX0NSRUFURV9USUxFRAo+Pj4+ICsJICogICBVc2UgdGhlIDE2eDE2IHRpbGluZyBmb3JtYXQg Zm9yIHRoaXMgYnVmZmVyLgo+Pj4+ICsJICoKPj4+PiArCSAqIERSTV9URUdSQV9HRU1fQ1JFQVRF X0JPVFRPTV9VUAo+Pj4+ICsJICogICBUaGUgYnVmZmVyIGhhcyBhIGJvdHRvbS11cCBsYXlvdXQu Cj4+Pj4gKwkgKi8KPj4+PiAgCV9fdTMyIGZsYWdzOwo+Pj4+ICsKPj4+PiArCS8qKgo+Pj4+ICsJ ICogQGhhbmRsZToKPj4+PiArCSAqCj4+Pj4gKwkgKiBUaGUgaGFuZGxlIG9mIHRoZSBjcmVhdGVk IEdFTSBvYmplY3QuIFNldCBieSB0aGUga2VybmVsIHVwb24KPj4+PiArCSAqIHN1Y2Nlc3NmdWwg Y29tcGxldGlvbiBvZiB0aGUgSU9DVEwuCj4+Pj4gKwkgKi8KPj4+PiAgCV9fdTMyIGhhbmRsZTsK Pj4+PiAgfTsKPj4+PiAgCj4+Pj4gKy8qKgo+Pj4+ICsgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2dlbV9t bWFwIC0gcGFyYW1ldGVycyBmb3IgdGhlIEdFTSBtbWFwIElPQ1RMCj4+Pj4gKyAqLwo+Pj4+ICBz dHJ1Y3QgZHJtX3RlZ3JhX2dlbV9tbWFwIHsKPj4+PiArCS8qKgo+Pj4+ICsJICogQGhhbmRsZToK Pj4+PiArCSAqCj4+Pj4gKwkgKiBIYW5kbGUgb2YgdGhlIEdFTSBvYmplY3QgdG8gb2J0YWluIGFu IG1tYXAgb2Zmc2V0IGZvci4KPj4+PiArCSAqLwo+Pj4+ICAJX191MzIgaGFuZGxlOwo+Pj4+ICsK Pj4+PiArCS8qKgo+Pj4+ICsJICogQHBhZDoKPj4+PiArCSAqCj4+Pj4gKwkgKiBTdHJ1Y3R1cmUg cGFkZGluZyB0aGF0IG1heSBiZSB1c2VkIGluIHRoZSBmdXR1cmUuIE11c3QgYmUgMC4KPj4+PiAr CSAqLwo+Pj4+ICAJX191MzIgcGFkOwo+Pj4+ICsKPj4+PiArCS8qKgo+Pj4+ICsJICogQG9mZnNl dDoKPj4+PiArCSAqCj4+Pj4gKwkgKiBUaGUgbW1hcCBvZmZzZXQgZm9yIHRoZSBnaXZlbiBHRU0g b2JqZWN0LiBTZXQgYnkgdGhlIGtlcm5lbCB1cG9uCj4+Pj4gKwkgKiBzdWNjZXNzZnVsIGNvbXBs ZXRpb24gb2YgdGhlIElPQ1RMLgo+Pj4+ICsJICovCj4+Pj4gIAlfX3U2NCBvZmZzZXQ7Cj4+Pj4g IH07Cj4+Pj4gIAo+Pj4+ICsvKioKPj4+PiArICogc3RydWN0IGRybV90ZWdyYV9zeW5jcHRfcmVh ZCAtIHBhcmFtZXRlcnMgZm9yIHRoZSByZWFkIHN5bmNwb2ludCBJT0NUTAo+Pj4+ICsgKi8KPj4+ PiAgc3RydWN0IGRybV90ZWdyYV9zeW5jcHRfcmVhZCB7Cj4+Pj4gKwkvKioKPj4+PiArCSAqIEBp ZDoKPj4+PiArCSAqCj4+Pj4gKwkgKiBJRCBvZiB0aGUgc3luY3BvaW50IHRvIHJlYWQgdGhlIGN1 cnJlbnQgdmFsdWUgZnJvbS4KPj4+PiArCSAqLwo+Pj4+ICAJX191MzIgaWQ7Cj4+Pj4gKwo+Pj4+ ICsJLyoqCj4+Pj4gKwkgKiBAdmFsdWU6Cj4+Pj4gKwkgKgo+Pj4+ICsJICogVGhlIGN1cnJlbnQg c3luY3BvaW50IHZhbHVlLiBTZXQgYnkgdGhlIGtlcm5lbCB1cG9uIHN1Y2Nlc3NmdWwKPj4+PiAr CSAqIGNvbXBsZXRpb24gb2YgdGhlIElPQ1RMLgo+Pj4+ICsJICovCj4+Pj4gIAlfX3UzMiB2YWx1 ZTsKPj4+PiAgfTsKPj4+PiAgCj4+Pj4gKy8qKgo+Pj4+ICsgKiBzdHJ1Y3QgZHJtX3RlZ3JhX3N5 bmNwdF9pbmNyIC0gcGFyYW1ldGVycyBmb3IgdGhlIGluY3JlbWVudCBzeW5jcG9pbnQgSU9DVEwK Pj4+PiArICovCj4+Pj4gIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0X2luY3Igewo+Pj4+ICsJLyoq Cj4+Pj4gKwkgKiBAaWQ6Cj4+Pj4gKwkgKgo+Pj4+ICsJICogSUQgb2YgdGhlIHN5bmNwb2ludCB0 byBpbmNyZW1lbnQuCj4+Pj4gKwkgKi8KPj4+PiAgCV9fdTMyIGlkOwo+Pj4+ICsKPj4+PiArCS8q Kgo+Pj4+ICsJICogQHBhZDoKPj4+PiArCSAqCj4+Pj4gKwkgKiBTdHJ1Y3R1cmUgcGFkZGluZyB0 aGF0IG1heSBiZSB1c2VkIGluIHRoZSBmdXR1cmUuIE11c3QgYmUgMC4KPj4+PiArCSAqLwo+Pj4+ ICAJX191MzIgcGFkOwo+Pj4+ICB9Owo+Pj4+ICAKPj4+PiArLyoqCj4+Pj4gKyAqIHN0cnVjdCBk cm1fdGVncmFfc3luY3B0X3dhaXQgLSBwYXJhbWV0ZXJzIGZvciB0aGUgd2FpdCBzeW5jcG9pbnQg SU9DVEwKPj4+PiArICovCj4+Pj4gIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0X3dhaXQgewo+Pj4+ ICsJLyoqCj4+Pj4gKwkgKiBAaWQ6Cj4+Pj4gKwkgKgo+Pj4+ICsJICogSUQgb2YgdGhlIHN5bmNw b2ludCB0byB3YWl0IG9uLgo+Pj4+ICsJICovCj4+Pj4gIAlfX3UzMiBpZDsKPj4+PiArCj4+Pj4g KwkvKioKPj4+PiArCSAqIEB0aHJlc2g6Cj4+Pj4gKwkgKgo+Pj4+ICsJICogVGhyZXNob2xkIHZh bHVlIGZvciB3aGljaCB0byB3YWl0Lgo+Pj4+ICsJICovCj4+Pj4gIAlfX3UzMiB0aHJlc2g7Cj4+ Pj4gKwo+Pj4+ICsJLyoqCj4+Pj4gKwkgKiBAdGltZW91dDoKPj4+PiArCSAqCj4+Pj4gKwkgKiBU aW1lb3V0LCBpbiBtaWxsaXNlY29uZHMsIHRvIHdhaXQuCj4+Pj4gKwkgKi8KPj4+PiAgCV9fdTMy IHRpbWVvdXQ7Cj4+Pj4gKwo+Pj4+ICsJLyoqCj4+Pj4gKwkgKiBAdmFsdWU6Cj4+Pj4gKwkgKgo+ Pj4+ICsJICogVGhlIG5ldyBzeW5jcG9pbnQgdmFsdWUgYWZ0ZXIgdGhlIHdhaXQuIFNldCBieSB0 aGUga2VybmVsIHVwb24KPj4+PiArCSAqIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZiB0aGUgSU9D VEwuCj4+Pj4gKwkgKi8KPj4+PiAgCV9fdTMyIHZhbHVlOwo+Pj4+ICB9Owo+Pj4+ICAKPj4+PiAg I2RlZmluZSBEUk1fVEVHUkFfTk9fVElNRU9VVAkoMHhmZmZmZmZmZikKPj4+PiAgCj4+Pj4gKy8q Kgo+Pj4+ICsgKiBzdHJ1Y3QgZHJtX3RlZ3JhX29wZW5fY2hhbm5lbCAtIHBhcmFtZXRlcnMgZm9y IHRoZSBvcGVuIGNoYW5uZWwgSU9DVEwKPj4+PiArICovCj4+Pj4gIHN0cnVjdCBkcm1fdGVncmFf b3Blbl9jaGFubmVsIHsKPj4+PiArCS8qKgo+Pj4+ICsJICogQGNsaWVudDoKPj4+PiArCSAqCj4+ Pj4gKwkgKiBUaGUgY2xpZW50IElEIGZvciB0aGlzIGNoYW5uZWwuCj4+Pj4gKwkgKi8KPj4+PiAg CV9fdTMyIGNsaWVudDsKPj4+PiArCj4+Pj4gKwkvKioKPj4+PiArCSAqIEBwYWQ6Cj4+Pj4gKwkg Kgo+Pj4+ICsJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNlZCBpbiB0aGUgZnV0 dXJlLiBNdXN0IGJlIDAuCj4+Pj4gKwkgKi8KPj4+PiAgCV9fdTMyIHBhZDsKPj4+PiArCj4+Pj4g KwkvKioKPj4+PiArCSAqIEBjb250ZXh0Ogo+Pj4+ICsJICoKPj4+PiArCSAqIFRoZSBhcHBsaWNh dGlvbiBjb250ZXh0IG9mIHRoaXMgY2hhbm5lbC4gU2V0IGJ5IHRoZSBrZXJuZWwgdXBvbgo+Pj4+ ICsJICogc3VjY2Vzc2Z1bCBjb21wbGV0aW9uIG9mIHRoZSBJT0NUTC4gVGhpcyBjb250ZXh0IG5l ZWRzIHRvIGJlIHBhc3NlZAo+Pj4+ICsJICogdG8gdGhlIERSTV9URUdSQV9DSEFOTkVMX0NMT1NF IG9yIHRoZSBEUk1fVEVHUkFfU1VCTUlUIElPQ1RMcy4KPj4+PiArCSAqLwo+Pj4+ICAJX191NjQg Y29udGV4dDsKPj4+PiAgfTsKPj4+PiAgCj4+Pj4gKy8qKgo+Pj4+ICsgKiBzdHJ1Y3QgZHJtX3Rl Z3JhX2Nsb3NlX2NoYW5uZWwgLSBwYXJhbWV0ZXJzIGZvciB0aGUgY2xvc2UgY2hhbm5lbCBJT0NU TAo+Pj4+ICsgKi8KPj4+PiAgc3RydWN0IGRybV90ZWdyYV9jbG9zZV9jaGFubmVsIHsKPj4+PiAr CS8qKgo+Pj4+ICsJICogQGNvbnRleHQ6Cj4+Pj4gKwkgKgo+Pj4+ICsJICogVGhlIGFwcGxpY2F0 aW9uIGNvbnRleHQgb2YgdGhpcyBjaGFubmVsLiBUaGlzIGlzIG9idGFpbmVkIGZyb20gdGhlCj4+ Pj4gKwkgKiBEUk1fVEVHUkFfT1BFTl9DSEFOTkVMIElPQ1RMLgo+Pj4+ICsJICovCj4+Pj4gIAlf X3U2NCBjb250ZXh0Owo+Pj4+ICB9Owo+Pj4+ICAKPj4+PiArLyoqCj4+Pj4gKyAqIHN0cnVjdCBk cm1fdGVncmFfZ2V0X3N5bmNwdCAtIHBhcmFtZXRlcnMgZm9yIHRoZSBnZXQgc3luY3BvaW50IElP Q1RMCj4+Pj4gKyAqLwo+Pj4+ICBzdHJ1Y3QgZHJtX3RlZ3JhX2dldF9zeW5jcHQgewo+Pj4+ICsJ LyoqCj4+Pj4gKwkgKiBAY29udGV4dDoKPj4+PiArCSAqCj4+Pj4gKwkgKiBUaGUgYXBwbGljYXRp b24gY29udGV4dCBpZGVudGlmeWluZyB0aGUgY2hhbm5lbCBmb3Igd2hpY2ggdG8gb2J0YWluCj4+ Pj4gKwkgKiB0aGUgc3luY3BvaW50IElELgo+Pj4+ICsJICovCj4+Pj4gIAlfX3U2NCBjb250ZXh0 Owo+Pj4+ICsKPj4+PiArCS8qKgo+Pj4+ICsJICogQGluZGV4Ogo+Pj4+ICsJICoKPj4+PiArCSAq IEluZGV4IG9mIHRoZSBjbGllbnQgc3luY3BvaW50IGZvciB3aGljaCB0byBvYnRhaW4gdGhlIElE Lgo+Pj4+ICsJICovCj4+Pj4gIAlfX3UzMiBpbmRleDsKPj4+PiArCj4+Pj4gKwkvKioKPj4+PiAr CSAqIEBpZDoKPj4+PiArCSAqCj4+Pj4gKwkgKiBUaGUgSUQgb2YgdGhlIGdpdmVuIHN5bmNwb2lu dC4gU2V0IGJ5IHRoZSBrZXJuZWwgdXBvbiBzdWNjZXNzZnVsCj4+Pj4gKwkgKiBjb21wbGV0aW9u IG9mIHRoZSBJT0NUTC4KPj4+PiArCSAqLwo+Pj4+ICAJX191MzIgaWQ7Cj4+Pj4gIH07Cj4+Pj4g IAo+Pj4+ICsvKioKPj4+PiArICogc3RydWN0IGRybV90ZWdyYV9nZXRfc3luY3B0X2Jhc2UgLSBw YXJhbWV0ZXJzIGZvciB0aGUgZ2V0IHdhaXQgYmFzZSBJT0NUTAo+Pj4+ICsgKi8KPj4+PiAgc3Ry dWN0IGRybV90ZWdyYV9nZXRfc3luY3B0X2Jhc2Ugewo+Pj4+ICsJLyoqCj4+Pj4gKwkgKiBAY29u dGV4dDoKPj4+PiArCSAqCj4+Pj4gKwkgKiBUaGUgYXBwbGljYXRpb24gY29udGV4dCBpZGVudGlm eWluZyBmb3Igd2hpY2ggY2hhbm5lbCB0byBvYnRhaW4gdGhlCj4+Pj4gKwkgKiB3YWl0IGJhc2Uu Cj4+Pj4gKwkgKi8KPj4+PiAgCV9fdTY0IGNvbnRleHQ7Cj4+Pj4gKwo+Pj4+ICsJLyoqCj4+Pj4g KwkgKiBAc3luY3B0Ogo+Pj4+ICsJICoKPj4+PiArCSAqIElEIG9mIHRoZSBzeW5jcG9pbnQgZm9y IHdoaWNoIHRvIG9idGFpbiB0aGUgd2FpdCBiYXNlLgo+Pj4+ICsJICovCj4+Pj4gIAlfX3UzMiBz eW5jcHQ7Cj4+Pj4gKwo+Pj4+ICsJLyoqCj4+Pj4gKwkgKiBAaWQ6Cj4+Pj4gKwkgKgo+Pj4+ICsJ ICogVGhlIElEIG9mIHRoZSB3YWl0IGJhc2UgY29ycmVzcG9uZGluZyB0byB0aGUgY2xpZW50IHN5 bmNwb2ludC4gU2V0Cj4+Pj4gKwkgKiBieSB0aGUga2VybmVsIHVwb24gc3VjY2Vzc2Z1bCBjb21w bGV0aW9uIG9mIHRoZSBJT0NUTC4KPj4+PiArCSAqLwo+Pj4+ICAJX191MzIgaWQ7Cj4+Pj4gIH07 Cj4+Pj4gIAo+Pj4+ICsvKioKPj4+PiArICogc3RydWN0IGRybV90ZWdyYV9zeW5jcHQgLSBzeW5j cG9pbnQgaW5jcmVtZW50IG9wZXJhdGlvbgo+Pj4+ICsgKi8KPj4+PiAgc3RydWN0IGRybV90ZWdy YV9zeW5jcHQgewo+Pj4+ICsJLyoqCj4+Pj4gKwkgKiBAaWQ6Cj4+Pj4gKwkgKgo+Pj4+ICsJICog SUQgb2YgdGhlIHN5bmNwb2ludCB0byBvcGVyYXRlIG9uLgo+Pj4+ICsJICovCj4+Pj4gIAlfX3Uz MiBpZDsKPj4+PiArCj4+Pj4gKwkvKioKPj4+PiArCSAqIEBpbmNyczoKPj4+PiArCSAqCj4+Pj4g KwkgKiBOdW1iZXIgb2YgaW5jcmVtZW50cyB0byBwZXJmb3JtIGZvciB0aGUgc3luY3BvaW50Lgo+ Pj4+ICsJICovCj4+Pj4gIAlfX3UzMiBpbmNyczsKPj4+PiAgfTsKPj4+PiAgCj4+Pj4gKy8qKgo+ Pj4+ICsgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2NtZGJ1ZiAtIHN0cnVjdHVyZSBkZXNjcmliaW5nIGEg Y29tbWFuZCBidWZmZXIKPj4+PiArICovCj4+Pj4gIHN0cnVjdCBkcm1fdGVncmFfY21kYnVmIHsK Pj4+PiArCS8qKgo+Pj4+ICsJICogQGhhbmRsZToKPj4+PiArCSAqCj4+Pj4gKwkgKiBIYW5kbGUg dG8gYSBHRU0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbW1hbmQgYnVmZmVyLgo+Pj4+ICsJICov Cj4+Pj4gIAlfX3UzMiBoYW5kbGU7Cj4+Pj4gKwo+Pj4+ICsJLyoqCj4+Pj4gKwkgKiBAb2Zmc2V0 Ogo+Pj4+ICsJICoKPj4+PiArCSAqIE9mZnNldCwgaW4gYnl0ZXMsIGludG8gdGhlIEdFTSBvYmpl Y3QgaWRlbnRpZmllZCBieSBAaGFuZGxlIGF0Cj4+Pj4gKwkgKiB3aGljaCB0aGUgY29tbWFuZCBi dWZmZXIgc3RhcnRzLgo+Pj4+ICsJICovCj4+Pj4gIAlfX3UzMiBvZmZzZXQ7Cj4+Pj4gKwo+Pj4+ ICsJLyoqCj4+Pj4gKwkgKiBAd29yZHM6Cj4+Pj4gKwkgKgo+Pj4+ICsJICogTnVtYmVyIG9mIDMy LWJpdCB3b3JkcyBpbiB0aGlzIGNvbW1hbmQgYnVmZmVyLgo+Pj4+ICsJICovCj4+Pj4gIAlfX3Uz MiB3b3JkczsKPj4+PiArCj4+Pj4gKwkvKioKPj4+PiArCSAqIEBwYWQ6Cj4+Pj4gKwkgKgo+Pj4+ ICsJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNlZCBpbiB0aGUgZnV0dXJlLiBN dXN0IGJlIDAuCj4+Pj4gKwkgKi8KPj4+PiAgCV9fdTMyIHBhZDsKPj4+PiAgfTsKPj4+PiAgCj4+ Pj4gKy8qKgo+Pj4+ICsgKiBzdHJ1Y3QgZHJtX3RlZ3JhX3JlbG9jIC0gR0VNIG9iamVjdCByZWxv Y2F0aW9uIHN0cnVjdHVyZQo+Pj4+ICsgKi8KPj4+PiAgc3RydWN0IGRybV90ZWdyYV9yZWxvYyB7 Cj4+Pj4gIAlzdHJ1Y3Qgewo+Pj4+ICsJCS8qKgo+Pj4+ICsJCSAqIEBjbWRidWYuaGFuZGxlOgo+ Pj4+ICsJCSAqCj4+Pj4gKwkJICogSGFuZGxlIHRvIHRoZSBHRU0gb2JqZWN0IGNvbnRhaW5pbmcg dGhlIGNvbW1hbmQgYnVmZmVyIGZvcgo+Pj4+ICsJCSAqIHdoaWNoIHRvIHBlcmZvcm0gdGhpcyBH RU0gb2JqZWN0IHJlbG9jYXRpb24uCj4+Pj4gKwkJICovCj4+Pj4gIAkJX191MzIgaGFuZGxlOwo+ Pj4+ICsKPj4+PiArCQkvKioKPj4+PiArCQkgKiBAY21kYnVmLm9mZnNldDoKPj4+PiArCQkgKgo+ Pj4+ICsJCSAqIE9mZnNldCwgaW4gYnl0ZXMsIGludG8gdGhlIGNvbW1hbmQgYnVmZmVyIGF0IHdo aWNoIHRvCj4+Pj4gKwkJICogaW5zZXJ0IHRoZSByZWxvY2F0ZWQgYWRkcmVzcy4KPj4+PiArCQkg Ki8KPj4+PiAgCQlfX3UzMiBvZmZzZXQ7Cj4+Pj4gIAl9IGNtZGJ1ZjsKPj4+PiAgCXN0cnVjdCB7 Cj4+Pj4gKwkJLyoqCj4+Pj4gKwkJICogQHRhcmdldC5oYW5kbGU6Cj4+Pj4gKwkJICoKPj4+PiAr CQkgKiBIYW5kbGUgdG8gdGhlIEdFTSBvYmplY3QgdG8gYmUgcmVsb2NhdGVkLgo+Pj4+ICsJCSAq Lwo+Pj4+ICAJCV9fdTMyIGhhbmRsZTsKPj4+PiArCj4+Pj4gKwkJLyoqCj4+Pj4gKwkJICogQHRh cmdldC5vZmZzZXQ6Cj4+Pj4gKwkJICoKPj4+PiArCQkgKiBPZmZzZXQsIGluIGJ5dGVzLCBpbnRv IHRoZSB0YXJnZXQgR0VNIG9iamVjdCBhdCB3aGljaCB0aGUKPj4+PiArCQkgKiByZWxvY2F0ZWQg ZGF0YSBzdGFydHMuCj4+Pj4gKwkJICovCj4+Pj4gIAkJX191MzIgb2Zmc2V0Owo+Pj4+ICAJfSB0 YXJnZXQ7Cj4+Pj4gKwo+Pj4+ICsJLyoqCj4+Pj4gKwkgKiBAc2hpZnQ6Cj4+Pj4gKwkgKgo+Pj4+ ICsJICogVGhlIG51bWJlciBvZiBiaXRzIGJ5IHdoaWNoIHRvIHNoaWZ0IHJlbG9jYXRlZCBhZGRy ZXNzZXMuCj4+Pj4gKwkgKi8KPj4+PiAgCV9fdTMyIHNoaWZ0Owo+Pj4+ICsKPj4+PiArCS8qKgo+ Pj4+ICsJICogQHBhZDoKPj4+PiArCSAqCj4+Pj4gKwkgKiBTdHJ1Y3R1cmUgcGFkZGluZyB0aGF0 IG1heSBiZSB1c2VkIGluIHRoZSBmdXR1cmUuIE11c3QgYmUgMC4KPj4+PiArCSAqLwo+Pj4+ICAJ X191MzIgcGFkOwo+Pj4+ICB9Owo+Pj4+ICAKPj4+PiArLyoqCj4+Pj4gKyAqIHN0cnVjdCBkcm1f dGVncmFfd2FpdGNoayAtIHdhaXQgY2hlY2sgc3RydWN0dXJlCj4+Pj4gKyAqLwo+Pj4+ICBzdHJ1 Y3QgZHJtX3RlZ3JhX3dhaXRjaGsgewo+Pj4+ICsJLyoqCj4+Pj4gKwkgKiBAaGFuZGxlOgo+Pj4+ ICsJICoKPj4+PiArCSAqIEhhbmRsZSB0byB0aGUgR0VNIG9iamVjdCBjb250YWluaW5nIGEgY29t bWFuZCBzdHJlYW0gb24gd2hpY2ggdG8KPj4+PiArCSAqIHBlcmZvcm0gdGhlIHdhaXQgY2hlY2su Cj4+Pj4gKwkgKi8KPj4+PiAgCV9fdTMyIGhhbmRsZTsKPj4+PiArCj4+Pj4gKwkvKioKPj4+PiAr CSAqIEBvZmZzZXQ6Cj4+Pj4gKwkgKgo+Pj4+ICsJICogT2Zmc2V0LCBpbiBieXRlcywgb2YgdGhl IGxvY2F0aW9uIGluIHRoZSBjb21tYW5kIHN0cmVhbSB0byBwZXJmb3JtCj4+Pj4gKwkgKiB0aGUg d2FpdCBjaGVjayBvbi4KPj4+PiArCSAqLwo+Pj4+ICAJX191MzIgb2Zmc2V0Owo+Pj4+ICsKPj4+ PiArCS8qKgo+Pj4+ICsJICogQHN5bmNwdDoKPj4+PiArCSAqCj4+Pj4gKwkgKiBJRCBvZiB0aGUg c3luY3BvaW50IHRvIHdhaXQgY2hlY2suCj4+Pj4gKwkgKi8KPj4+PiAgCV9fdTMyIHN5bmNwdDsK Pj4+PiArCj4+Pj4gKwkvKioKPj4+PiArCSAqIEB0aHJlc2g6Cj4+Pj4gKwkgKgo+Pj4+ICsJICog VGhyZXNob2xkIHZhbHVlIGZvciB3aGljaCB0byBjaGVjay4KPj4+PiArCSAqLwo+Pj4+ICAJX191 MzIgdGhyZXNoOwo+Pj4+ICB9Owo+Pj4+ICAKPj4+PiArLyoqCj4+Pj4gKyAqIHN0cnVjdCBkcm1f dGVncmFfc3VibWl0IC0gam9iIHN1Ym1pc3Npb24gc3RydWN0dXJlCj4+Pj4gKyAqLwo+Pj4+ICBz dHJ1Y3QgZHJtX3RlZ3JhX3N1Ym1pdCB7Cj4+Pj4gKwkvKioKPj4+PiArCSAqIEBjb250ZXh0Ogo+ Pj4+ICsJICoKPj4+PiArCSAqIFRoZSBhcHBsaWNhdGlvbiBjb250ZXh0IGlkZW50aWZ5aW5nIHRo ZSBjaGFubmVsIHRvIHVzZSBmb3IgdGhlCj4+Pj4gKwkgKiBleGVjdXRpb24gb2YgdGhpcyBqb2Iu Cj4+Pj4gKwkgKi8KPj4+PiAgCV9fdTY0IGNvbnRleHQ7Cj4+Pj4gKwo+Pj4+ICsJLyoqCj4+Pj4g KwkgKiBAbnVtX3N5bmNwdHM6Cj4+Pj4gKwkgKgo+Pj4+ICsJICogVGhlIG51bWJlciBvZiBzeW5j cG9pbnRzIG9wZXJhdGVkIG9uIGJ5IHRoaXMgam9iLgo+Pj4+ICsJICovCj4+Pj4gIAlfX3UzMiBu dW1fc3luY3B0czsKPj4+PiArCj4+Pj4gKwkvKioKPj4+PiArCSAqIEBudW1fY21kYnVmczoKPj4+ PiArCSAqCj4+Pj4gKwkgKiBUaGUgbnVtYmVyIG9mIGNvbW1hbmQgYnVmZmVycyB0byBleGVjdXRl IGFzIHBhcnQgb2YgdGhpcyBqb2IuCj4+Pj4gKwkgKi8KPj4+PiAgCV9fdTMyIG51bV9jbWRidWZz Owo+Pj4+ICsKPj4+PiArCS8qKgo+Pj4+ICsJICogQG51bV9yZWxvY3M6Cj4+Pj4gKwkgKgo+Pj4+ ICsJICogVGhlIG51bWJlciBvZiByZWxvY2F0aW9ucyB0byBwZXJmb3JtIGJlZm9yZSBleGVjdXRp bmcgdGhpcyBqb2IuCj4+Pj4gKwkgKi8KPj4+PiAgCV9fdTMyIG51bV9yZWxvY3M7Cj4+Pj4gKwo+ Pj4+ICsJLyoqCj4+Pj4gKwkgKiBAbnVtX3dhaXRjaGtzOgo+Pj4+ICsJICoKPj4+PiArCSAqIFRo ZSBudW1iZXIgb2Ygd2FpdCBjaGVja3MgdG8gcGVyZm9ybSBhcyBwYXJ0IG9mIHRoaXMgam9iLgo+ Pj4+ICsJICovCj4+Pj4gIAlfX3UzMiBudW1fd2FpdGNoa3M7Cj4+Pj4gKwo+Pj4+ICsJLyoqCj4+ Pj4gKwkgKiBAd2FpdGNoa19tYXNrOgo+Pj4+ICsJICoKPj4+PiArCSAqIEJpdG1hc2sgb2YgdmFs aWQgd2FpdCBjaGVja3MuCj4+Pj4gKwkgKi8KPj4+PiAgCV9fdTMyIHdhaXRjaGtfbWFzazsKPj4+ PiArCj4+Pj4gKwkvKioKPj4+PiArCSAqIEB0aW1lb3V0Ogo+Pj4+ICsJICoKPj4+PiArCSAqIFRp bWVvdXQsIGluIG1pbGxpc2Vjb25kcywgYmVmb3JlIHRoaXMgam9iIGlzIGNhbmNlbGxlZC4KPj4+ PiArCSAqLwo+Pj4+ICAJX191MzIgdGltZW91dDsKPj4+PiArCj4+Pj4gKwkvKioKPj4+PiArCSAq IEBzeW5jcHRzOgo+Pj4+ICsJICoKPj4+PiArCSAqIEEgcG9pbnRlciB0byBAbnVtX3N5bmNwdHMg JnN0cnVjdCBkcm1fdGVncmFfc3luY3B0IHN0cnVjdHVyZXMgdGhhdAo+Pj4KPj4+IEknbSBub3Qg c3VyZSB3aGV0aGVyIHRoaXMgInBvaW50ZXIgdG8gQG51bV9zeW5jcHRzIiBtYWtlcyBzZW5zZSwg c2hvdWxkbid0IGl0IGJlOgo+Pj4KPj4+IAlBIHBvaW50ZXIgdG8gJnN0cnVjdCBkcm1fdGVncmFf c3luY3B0IHN0cnVjdHVyZXMgdGhhdC4uLgo+Pj4KPj4+ID8KPj4+Cj4+PiBTYW1lIGZvciB0aGUg QGNtZGJ1ZnMvQHJlbG9jcy9Ad2FpdGNoa3MgbWVtYmVycy4KPj4KPj4gSSB3YW50ZWQgdG8gaGF2 ZSB0aGUgcmVmZXJlbmNlcyB0byB0aG9zZSBmaWVsZHMgaW4gdGhlIHRleHQgc28gdGhhdCBpdAo+ PiBiZWNvbWVzIG9idmlvdXMgdGhhdCBudW1fc3luY3B0cyBkZWZpbmVzIHRoZSBudW1iZXIgb2Yg ZW50cmllcyBpbiB0aGlzCj4+IHN5bmNwdHMgYXJyYXkuCj4+Cj4+IFBlcmhhcHMgYSBiZXR0ZXIg Zm9ybXVsYXRpb24gd291bGQgYmU6Cj4+Cj4+IAlBIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgQG51 bV9zeW5jcHRzICZzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdAo+PiAJc3RydWN0dXJlIHRoYXQuLi4K Pj4KPj4gPwoKVGhhdCB2YXJpYW50IGlzIGdvb2QgdG8gbWUuCgo+IAo+IEFub3RoZXIgYWx0ZXJu YXRpdmUgbWF5IGJlOgo+IAo+IAkvKioKPiAJICogQHN5bmNwdHM6Cj4gCSAqCj4gCSAqIEEgcG9p bnRlciB0byBhbiBhcnJheSBvZiAmc3RydWN0IGRybV90ZWdyYV9zeW5jcHQgc3RydWN0dXJlIHRo YXQKPiAJICogc3BlY2lmeSB0aGUgc3luY3BvaW50IG9wZXJhdGlvbnMgcGVyZm9ybWVkIGFzIHBh cnQgb2YgdGhpcyBqb2IuCj4gCSAqIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5 IG11c3QgYmUgZXF1YWwgdG8gdGhlIHZhbHVlCj4gCSAqIGdpdmVuIGJ5IEBudW1fc3luY3B0cy4K PiAJICovCj4gCj4gVGhhdCdzIHNsaWdodGx5IGVhc2llciB0byByZWFkIGJ1dCBhbHNvIHZlcnkg ZXhwbGljaXQgaW4gcmVsYXRpbmcgYm90aAo+IGZpZWxkcyB0byBvbmUgYW5vdGhlci4gUGVyaGFw cyBhIHR3by13YXkgbGluayBjYW4gYmUgZXN0YWJsaXNoZWQgYnkKPiBhZGRpbmcgc29tZXRoaW5n IGxpa2UgdGhpcyB0byB0aGUgZGVzY3JpcHRpb24gb2YgQG51bV9zeW5jcHRzOgo+IAo+IAkvKioK PiAJICogQG51bV9zeW5jcHRzOgo+IAkgKgo+IAkgKiBUaGUgbnVtYmVyIG9mIHN5bmNwb2ludHMg b3BlcmF0ZWQgb24gYnkgdGhpcyBqb2IuIFRoaXMgZGVmaW5lcwo+IAkgKiB0aGUgbGVuZ3RoIG9m IHRoZSBhcnJheSBwb2ludGVkIHRvIGJ5IEBzeW5jcHRzLgo+IAkgKi8KCkJ1dCB0aGlzIHZhcmlh bnQgaXMgZXZlbiBiZXR0ZXIuCgpJIGRvbid0IG1pbmQgZWl0aGVyIHdheSwgY2hvb3NlIHdoYXQg eW91IHByZWZlci4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==