From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC] drm: Start documenting userspace ABI Date: Tue, 18 Nov 2014 15:27:27 +0100 Message-ID: <20141118142727.GD25711@phenom.ffwll.local> References: <1416320373-18445-1-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f50.google.com (mail-wg0-f50.google.com [74.125.82.50]) by gabe.freedesktop.org (Postfix) with ESMTP id 3127B6E4E9 for ; Tue, 18 Nov 2014 06:27:05 -0800 (PST) Received: by mail-wg0-f50.google.com with SMTP id k14so9710792wgh.23 for ; Tue, 18 Nov 2014 06:27:04 -0800 (PST) Content-Disposition: inline In-Reply-To: <1416320373-18445-1-git-send-email-thierry.reding@gmail.com> 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: Daniel Vetter , Laurent Pinchart , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBOb3YgMTgsIDIwMTQgYXQgMDM6MTk6MzNQTSArMDEwMCwgVGhpZXJyeSBSZWRpbmcg d3JvdGU6Cj4gRnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KPiAKPiBB ZnRlciBzZWVpbmcgaG93IHRoZSBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQiB3YXMgaW1wbGVt ZW50ZWQgd2l0aAo+IGRpZmZlcmVudCBzZW1hbnRpY3Mgb24gZGlmZmVyZW50IGRyaXZlcnMgaXQg c2VlbXMgbGlrZSBhIGdvb2QgaWRlYSB0bwo+IHN0YXJ0IHRvIG1vcmUgcmlnb3JvdXNseSBkb2N1 bWVudCB1c2Vyc3BhY2UgQUJJIHRvIGF2b2lkIHRoZXNlIHRoaW5ncwo+IGluIHRoZSBmdXR1cmUu Cj4gCj4gVGhpcyBpcyBhIGZpcnN0IGRyYWZ0IG9mIHdoYXQgc3VjaCBkb2N1bWVudGF0aW9uIGNv dWxkIGxvb2sgbGlrZS4gTm90Cj4gYWxsIElPQ1RMcyBhcmUgZG9jdW1lbnRlZCBhbmQgc29tZSBl eHBsYW5hdGlvbiBhYm91dCB0aGUgb3RoZXIgc3lzdGVtCj4gY2FsbHMgKG1tYXAoKSwgcG9sbCgp LCByZWFkKCksIC4uLikgd291bGQgYmUgZ29vZCB0b28uIEJ1dCBJIHdhbnRlZCB0bwo+IHNlbmQg dGhpcyBvdXQgZm9yIGVhcmx5IHJldmlldyB0byBzZWUgaWYgdGhlIGRpcmVjdGlvbiBpcyByZWFz b25hYmxlLgo+IElmIHNvIG15IHBsYW4gaXMgdG8gY29udGludWUgdG8gY2hpcCBhd2F5IGF0IHRo aXMgYXMgSSBmaW5kIHRpbWUuCj4gCj4gU2lnbmVkLW9mZi1ieTogVGhpZXJyeSBSZWRpbmcgPHRy ZWRpbmdAbnZpZGlhLmNvbT4KCkltbyBmb3IgaW9jdGxzIHRoZSByaWdodCB0aGluZyB0byBkbyBp cyBoYXZpbmcgcHJvcGVyIG1hbnBhZ2VzLCBub3QKa2VybmVsZG9jIG9yIERvY0Jvb2sgc2VjdGlv bnMuIG1hbnBhZ2VzIHJlYWxseSBsZW5kIHRoZW1zZWx2ZXMgd2VsbCB0bwpzcGVjaWZ5IGFsbCB0 aGUgZGlmZmVyZW50IGZhY2V0cyBvZiBhIHNpbmdsZSBpbnRlcmZhY2UuCgpBbHNvLCB3ZSBhbHJl YWR5IGhhdmUgc29tZSBza2VsZXRvbiBvZiB0aGF0IGluIGxpYmRybSwgc28gSSB0aGluawpleHRl bmRpbmcgdGhhdCB3b3VsZCBiZSBiZXN0LgotRGFuaWVsCgo+IC0tLQo+ICBEb2N1bWVudGF0aW9u L0RvY0Jvb2svZHJtLnRtcGwgfCA3MDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0KPiAgaW5jbHVkZS91YXBpL2RybS9kcm0uaCAgICAgICAgIHwgIDk1ICsrKystLQo+ ICAyIGZpbGVzIGNoYW5nZWQsIDc3MyBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2RybS50bXBsIGIvRG9jdW1lbnRh dGlvbi9Eb2NCb29rL2RybS50bXBsCj4gaW5kZXggZmZlMGQ5YjQxODI2Li5iYzEyNWMwNDMwMzIg MTAwNjQ0Cj4gLS0tIGEvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2RybS50bXBsCj4gKysrIGIvRG9j dW1lbnRhdGlvbi9Eb2NCb29rL2RybS50bXBsCj4gQEAgLTM4MzEsOCArMzgzMSw3MDYgQEAgaW50 IG51bV9pb2N0bHM7PC9zeW5vcHNpcz4KPiAgCj4gICAgPC9jaGFwdGVyPgo+ICA8L3BhcnQ+Cj4g KzxwYXJ0IGlkPSJkcm1BQkkiPgo+ICsgIDx0aXRsZT5EUk0gVXNlcnNwYWNlIEFCSTwvdGl0bGU+ Cj4gKyAgPHBhcnRpbnRybz4KPiArICAgIDxwYXJhPgo+ICsgICAgICBUaGlzIHRoaXJkIHBhcnQg b2YgdGhlIERSTSBEZXZlbG9wZXIncyBHdWlkZSBkb2N1bWVudHMgdXNlcnNwYWNlCj4gKyAgICAg IGludGVyZmFjZXMuIERSTSBkZXZpY2VzIGNhbiBiZSBhY2Nlc3NlZCB1c2luZyBzdGFuZGFyZCBm aWxlIG9wZXJhdGlvbnMKPiArICAgICAgc3VjaCBhcyBvcGVuKCksIGNsb3NlKCksIGlvY3RsKCkg b3IgbW1hcCgpLiBIb3cgdGhlc2UgdHJhbnNsYXRlIHRvIHRoZQo+ICsgICAgICBEUk0gZHJpdmVy cyBpcyBleHBsYWluZWQgaW4gdGhlIGZvbGxvd2luZyBjaGFwdGVycy4KPiArICAgIDwvcGFyYT4K PiArICAgIDxwYXJhPgo+ICsgICAgICBGb3IgZHJpdmVyLXNwZWNpZmljIHVzZXJzcGFjZSBpbnRl cmZhY2VzIChidWZmZXIgYWxsb2NhdGlvbiBhbmQKPiArICAgICAgbWFuYWdlbWVudCwgY29tbWFu ZCBzdHJlYW0gc3VibWlzc2lvbiwgLi4uKSByZWZlciB0byB0aGUgZHJpdmVyLXNwZWNpZmljCj4g KyAgICAgIHNlY3Rpb25zIGluIDxsaW5rIGxpbmtlbmQ9ImRybURyaXZlcnMiIGVuZHRlcm09ImRy bURyaXZlcnMudGl0bGUiLz4uCj4gKyAgICA8L3BhcmE+Cj4gKyAgPC9wYXJ0aW50cm8+Cj4gKyAg PGNoYXB0ZXIgaWQ9ImRybUlvY3RsIj4KPiArICAgIDx0aXRsZT5EUk0gSU9DVExzPC90aXRsZT4K PiArICAgIDxwYXJhPgo+ICsgICAgICBBIG51bWJlciBvZiBJT0NUTHMgY2FuIGJlIHBlcmZvcm1l ZCBvbiBhIERSTSBkZXZpY2Ugbm9kZS4gTWFueSBvZiB0aGVtCj4gKyAgICAgIGFyZSBnZW5lcmlj IGFuZCBhcHBseSB0byBhbGwgZGV2aWNlcywgb3RoZXJzIGFyZSBjb25zaWRlcmVkIGxlZ2FjeSBh bmQKPiArICAgICAgc2hvdWxkIG5vIGxvbmdlciBiZSB1c2VkIGluIG5ldyB1c2Vyc3BhY2UgYXBw bGljYXRpb25zLgo+ICsgICAgPC9wYXJhPgo+ICsgICAgPHNlY3QxPgo+ICsgICAgICA8dGl0bGU+ SWRlbnRpZmljYXRpb248L3RpdGxlPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxl PkRSTV9JT0NUTF9WRVJTSU9OIC0gcXVlcnkgZHJpdmVyIG5hbWUgYW5kIHZlcnNpb248L3RpdGxl Pgo+ICsgICAgICAgIDxwYXJhPgo+ICsgICAgICAgICAgQWZ0ZXIgb3BlbmluZyBhIERSTSBkZXZp Y2UsIHVzZXJzcGFjZSBhcHBsaWNhdGlvbnMgd2lsbCB0eXBpY2FsbHkKPiArICAgICAgICAgIHdh bnQgdG8gaWRlbnRpZnkgdGhlIGRyaXZlciBib3VuZCB0byB0aGUgZGV2aWNlLiBUaGV5IGNhbiB1 c2UgdGhpcwo+ICsgICAgICAgICAgSU9DVEwgdG8gb2J0YWluIGluZm9ybWF0aW9uIGFib3V0IHRo ZSBkcml2ZXIgaW4gdGhlIGZvcm0gb2YgYQo+ICsgICAgICAgICAgPHN0cnVjdG5hbWU+ZHJtX3Zl cnNpb248L3N0cnVjdG5hbWU+IHN0cnVjdHVyZS4KPiArICAgICAgICA8L3BhcmE+Cj4gKyFGaW5j bHVkZS91YXBpL2RybS9kcm0uaCBkcm1fdmVyc2lvbgo+ICsgICAgICAgIDxwYXJhPgo+ICsgICAg ICAgICAgUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3Igb25lIG9mIHRoZSBmb2xsb3dpbmcgZXJyb3Ig Y29kZXMgb24KPiArICAgICAgICAgIGZhaWx1cmU6Cj4gKyAgICAgICAgPC9wYXJhPgo+ICsgICAg ICAgIDx2YXJpYWJsZWxpc3Q+Cj4gKyAgICAgICAgICA8dmFybGlzdGVudHJ5Pgo+ICsgICAgICAg ICAgICA8dGVybT48Y29uc3RhbnQ+RUZBVUxUPC9jb25zdGFudD48L3Rlcm0+Cj4gKyAgICAgICAg ICAgIDxsaXN0aXRlbT4KPiArICAgICAgICAgICAgICA8cGFyYT4KPiArICAgICAgICAgICAgICAg IElmIGRhdGEgY2Fubm90IGJlIGNvcGllZCB0byBhbnkgb2YgdGhlCj4gKyAgICAgICAgICAgICAg ICA8c3RydWN0ZmllbGQ+bmFtZTwvc3RydWN0ZmllbGQ+LAo+ICsgICAgICAgICAgICAgICAgPHN0 cnVjdGZpZWxkPmRhdGU8L3N0cnVjdGZpZWxkPiBvcgo+ICsgICAgICAgICAgICAgICAgPHN0cnVj dGZpZWxkPmRlc2M8L3N0cnVjdGZpZWxkPiBmaWVsZHMuCj4gKyAgICAgICAgICAgICAgPC9wYXJh Pgo+ICsgICAgICAgICAgICA8L2xpc3RpdGVtPgo+ICsgICAgICAgICAgPC92YXJsaXN0ZW50cnk+ Cj4gKyAgICAgICAgPC92YXJpYWJsZWxpc3Q+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxz ZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX0dFVF9VTklRVUUgLSBnZXQgdW5pcXVl IGRldmljZSBuYW1lPC90aXRsZT4KPiArICAgICAgICA8cGFyYT4KPiArICAgICAgICAgIEVhY2gg ZGV2aWNlIGhhcyBhIHVuaXF1ZSBuYW1lIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhpcyBpcyB1c2Vm dWwgdG8KPiArICAgICAgICAgIGRpZmZlcmVudGlhdGUgYmV0d2VlbiB0d28gZGV2aWNlcyBkcml2 ZW4gYnkgdGhlIHNhbWUgZHJpdmVyLiBVbmlxdWUKPiArICAgICAgICAgIG5hbWVzIG9mIGRldmlj ZXMgY2FuIGJlIG9idGFpbmVkIHdpdGggdGhpcyBJT0NUTCBhbmQgdGhlIHJlc3VsdCBpcwo+ICsg ICAgICAgICAgcmV0dXJuZWQgaW4gYSA8c3RydWN0bmFtZT5kcm1fdW5pcXVlPC9zdHJ1Y3RuYW1l PiBzdHJ1Y3R1cmUuCj4gKyAgICAgICAgPC9wYXJhPgo+ICshRmluY2x1ZGUvdWFwaS9kcm0vZHJt LmggZHJtX3VuaXF1ZQo+ICsgICAgICAgIDxwYXJhPgo+ICsgICAgICAgICAgUmV0dXJucyAwIG9u IHN1Y2Nlc3Mgb3Igb25lIG9mIHRoZSBmb2xsb3dpbmcgZXJyb3IgY29kZXMgb24gZmFpbHVyZToK PiArICAgICAgICA8L3BhcmE+Cj4gKyAgICAgICAgPHZhcmlhYmxlbGlzdD4KPiArICAgICAgICAg IDx2YXJsaXN0ZW50cnk+Cj4gKyAgICAgICAgICAgIDx0ZXJtPjxjb25zdGFudD5FRkFVTFQ8L2Nv bnN0YW50PjwvdGVybT4KPiArICAgICAgICAgICAgPGxpc3RpdGVtPgo+ICsgICAgICAgICAgICAg IDxwYXJhPgo+ICsgICAgICAgICAgICAgICAgSWYgdGhlIGRldmljZSdzIHVuaXF1ZSBuYW1lIGNh bm5vdCBiZSBjb3BpZWQgdG8gdGhlCj4gKyAgICAgICAgICAgICAgICA8c3RydWN0ZmllbGQ+dW5p cXVlPC9zdHJ1Y3RmaWVsZD4gZmllbGQuCj4gKyAgICAgICAgICAgICAgPC9wYXJhPgo+ICsgICAg ICAgICAgICA8L2xpc3RpdGVtPgo+ICsgICAgICAgICAgPC92YXJsaXN0ZW50cnk+Cj4gKyAgICAg ICAgPC92YXJpYWJsZWxpc3Q+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiAr ICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX1NFVF9WRVJTSU9OIC0gcmVxdWVzdCBpbnRlcmZhY2Ug dmVyc2lvbjwvdGl0bGU+Cj4gKyAgICAgICAgPHBhcmE+Cj4gKyAgICAgICAgICBSZXF1ZXN0IGEg c3BlY2lmaWMgaW50ZXJmYWNlIG9yIGRyaXZlciB2ZXJzaW9uLiBUaGUgdmFsdWVzIHBhc3NlZCBp bgo+ICsgICAgICAgICAgdGhlIDxzdHJ1Y3RuYW1lPmRybV9zZXRfdmVyc2lvbjwvc3RydWN0bmFt ZT4gc3RydWN0dXJlIGFyZSBtYXRjaGVkCj4gKyAgICAgICAgICBhZ2FpbnN0IHRoZSBEUk0gaW50 ZXJmYWNlIGFuZCBkcml2ZXIgdmVyc2lvbnMuCj4gKyAgICAgICAgPC9wYXJhPgo+ICshRmluY2x1 ZGUvdWFwaS9kcm0vZHJtLmggZHJtX3NldF92ZXJzaW9uCj4gKyAgICAgICAgPHBhcmE+Cj4gKyAg ICAgICAgICBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBvbmUgb2YgdGhlIGZvbGxvd2luZyBlcnJv ciBjb2RlcyBvbiBmYWlsdXJlOgo+ICsgICAgICAgIDwvcGFyYT4KPiArICAgICAgICA8dmFyaWFi bGVsaXN0Pgo+ICsgICAgICAgICAgPHZhcmxpc3RlbnRyeT4KPiArICAgICAgICAgICAgPHRlcm0+ PGNvbnN0YW50PkVJTlZBTDwvY29uc3RhbnQ+PC90ZXJtPgo+ICsgICAgICAgICAgICA8bGlzdGl0 ZW0+Cj4gKyAgICAgICAgICAgICAgPHBhcmE+Cj4gKyAgICAgICAgICAgICAgICBJZiB0aGUgaW50 ZXJmYWNlIHZlcnNpb24gaW4gdGhlIGtlcm5lbCBpcyBpbmNvbXBhdGlibGUgd2l0aAo+ICsgICAg ICAgICAgICAgICAgdGhhdCByZXF1ZXN0ZWQgYnkgdGhlIHVzZXJzcGFjZSBhcHBsaWNhdGlvbiBv ciBpZiB0aGUgZHJpdmVyCj4gKyAgICAgICAgICAgICAgICBpcyBub3QgY29tcGF0aWJsZSB3aXRo IHRoZSB2ZXJzaW9uIHJlcXVlc3RlZCBieSB0aGUgdXNlcnNwYWNlCj4gKyAgICAgICAgICAgICAg ICBhcHBsaWNhdGlvbi4KPiArICAgICAgICAgICAgICA8L3BhcmE+Cj4gKyAgICAgICAgICAgIDwv bGlzdGl0ZW0+Cj4gKyAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KPiArICAgICAgICA8L3Zhcmlh YmxlbGlzdD4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0 aXRsZT5EUk1fSU9DVExfR0VUX0NBUCAtIHF1ZXJ5IGRldmljZSBjYXBhYmlsaXRpZXM8L3RpdGxl Pgo+ICsgICAgICAgIDxwYXJhPgo+ICsgICAgICAgICAgRFJNIGRyaXZlcnMgdmFyeSBpbiB0ZXJt cyBvZiB3aGljaCBmdW5jdGlvbmFsaXR5IHRoYXQgdGhleSBzdXBwb3J0Lgo+ICsgICAgICAgICAg RXZlbiB3aXRoaW4gb25lIGRyaXZlciwgY2VydGFpbiBkZXZpY2VzIG1heSBub3Qgc3VwcG9ydCB0 aGUgc2FtZQo+ICsgICAgICAgICAgZnVuY3Rpb25hbGl0eSBhcyBvdGhlcnMuIFRoZSA8Y29uc3Rh bnQ+RFJNX0lPQ1RMX0dFVF9DQVA8L2NvbnN0YW50Pgo+ICsgICAgICAgICAgSU9DVEwgY2FuIGJl IHVzZWQgdG8gcXVlcnkgc3VjaCBjYXBhYmlsaXRpZXMgYXQgcnVudGltZS4KPiArICAgICAgICA8 L3BhcmE+Cj4gKyAgICAgICAgPHBhcmE+Cj4gKyAgICAgICAgICBUaGUgZm9sbG93aW5nIGlzIGEg bGlzdCBvZiBhdmFpbGFibGUgY2FwYWJpbGl0aWVzLiBVc2Vyc3BhY2UKPiArICAgICAgICAgIGFw cGxpY2F0aW9ucyBzZXQgdGhlIDxzdHJ1Y3RmaWVsZD5jYXBhYmlsaXR5PC9zdHJ1Y3RmaWVsZD4g dG8gb25lIG9mCj4gKyAgICAgICAgICB0aGVzZSBiZWZvcmUgcGVyZm9ybWluZyB0aGUgSU9DVEwu IFRoZSBrZXJuZWwgcmV0dXJucyB0aGUgY2FwYWJpbGl0eQo+ICsgICAgICAgICAgdmFsdWUgaW4g dGhlIDxzdHJ1Y3RmaWVsZD52YWx1ZTwvc3RydWN0ZmllbGQ+IGZpZWxkLiBUeXBpY2FsbHkgdGhp cwo+ICsgICAgICAgICAgd2lsbCBiZSBhIGJvb2xlYW4gKDAgb3IgMSkgdmFsdWUgdGhhdCBkZW5v dGVzIHdoZXRoZXIgb3Igbm90IHRoZQo+ICsgICAgICAgICAgZGV2aWNlIHN1cHBvcnRzIHRoZSBn aXZlbiBjYXBhYmlsaXR5LiBJbiBvdGhlciBjYXNlcyB0aGUgcmV0dXJuZWQKPiArICAgICAgICAg IHZhbHVlIGlzIG51bWVyaWNhbCBhbmQgdGhlIG1lYW5pbmcgaXMgc3BlY2lmaWVkIGJlbG93Lgo+ ICsgICAgICAgIDwvcGFyYT4KPiArIUZpbmNsdWRlL3VhcGkvZHJtL2RybS5oIGRybV9nZXRfY2Fw Cj4gKyAgICAgICAgPHZhcmlhYmxlbGlzdD4KPiArICAgICAgICAgIDx2YXJsaXN0ZW50cnk+Cj4g KyAgICAgICAgICAgIDx0ZXJtPjxjb25zdGFudD5EUk1fQ0FQX0RVTUJfQlVGRkVSPC9jb25zdGFu dD48L3Rlcm0+Cj4gKyAgICAgICAgICAgIDxsaXN0aXRlbT4KPiArICAgICAgICAgICAgICA8cGFy YT4KPiArICAgICAgICAgICAgICAgIFRoZSBkZXZpY2Ugc3VwcG9ydHMgdGhlIGNyZWF0aW9uIG9m IGR1bWIgYnVmZmVycy4gRHVtYiBidWZmZXJzCj4gKyAgICAgICAgICAgICAgICBhcmUgdHlwaWNh bGx5IHVzZWQgZm9yIHVuYWNjZWxlcmF0ZWQgb3BlcmF0aW9ucy4gVGhlc2UgYnVmZmVycwo+ICsg ICAgICAgICAgICAgICAgY2FuIGJlIG1hcHBlZCB0byB1c2Vyc3BhY2Ugc28gdGhhdCBzb2Z0d2Fy ZSBjYW4gZHJhdyBpbnRvIHRoZW0KPiArICAgICAgICAgICAgICAgIGFuZCBhdHRhY2ggdGhlbSB0 byBhIENSVEMgZm9yIHNjYW5vdXQuCj4gKyAgICAgICAgICAgICAgPC9wYXJhPgo+ICsgICAgICAg ICAgICA8L2xpc3RpdGVtPgo+ICsgICAgICAgICAgPC92YXJsaXN0ZW50cnk+Cj4gKyAgICAgICAg ICA8dmFybGlzdGVudHJ5Pgo+ICsgICAgICAgICAgICA8dGVybT48Y29uc3RhbnQ+RFJNX0NBUF9W QkxBTktfSElHSF9DUlRDPC9jb25zdGFudD48L3Rlcm0+Cj4gKyAgICAgICAgICAgIDxsaXN0aXRl bT4KPiArICAgICAgICAgICAgICA8cGFyYT4KPiArICAgICAgICAgICAgICAgIFRoZSBkZXZpY2Ug aXMgY2FwYWJsZSBvZiB3YWl0aW5nIGZvciBWQkxBTksgZXZlbnRzIG9uIGFsbAo+ICsgICAgICAg ICAgICAgICAgQ1JUQ3MuCj4gKyAgICAgICAgICAgICAgPC9wYXJhPgo+ICsgICAgICAgICAgICA8 L2xpc3RpdGVtPgo+ICsgICAgICAgICAgPC92YXJsaXN0ZW50cnk+Cj4gKyAgICAgICAgICA8dmFy bGlzdGVudHJ5Pgo+ICsgICAgICAgICAgICA8dGVybT48Y29uc3RhbnQ+RFJNX0NBUF9EVU1CX1BS RUZFUlJFRF9ERVBUSDwvY29uc3RhbnQ+PC90ZXJtPgo+ICsgICAgICAgICAgICA8bGlzdGl0ZW0+ Cj4gKyAgICAgICAgICAgICAgPHBhcmE+Cj4gKyAgICAgICAgICAgICAgICBUaGUgcHJlZmVycmVk IHBpeGVsIGJpdCBkZXB0aCBvZiBkdW1iIGJ1ZmZlcnMuCj4gKyAgICAgICAgICAgICAgPC9wYXJh Pgo+ICsgICAgICAgICAgICA8L2xpc3RpdGVtPgo+ICsgICAgICAgICAgPC92YXJsaXN0ZW50cnk+ Cj4gKyAgICAgICAgICA8dmFybGlzdGVudHJ5Pgo+ICsgICAgICAgICAgICA8dGVybT48Y29uc3Rh bnQ+RFJNX0NBUF9EVU1CX1BSRUZFUl9TSEFET1c8L2NvbnN0YW50PjwvdGVybT4KPiArICAgICAg ICAgICAgPGxpc3RpdGVtPgo+ICsgICAgICAgICAgICAgIDxwYXJhPgo+ICsgICAgICAgICAgICAg ICAgV2hldGhlciB1c2Vyc3BhY2Ugc2hvdWxkIHByZWZlciBzaGFkb3cgbW9kZSBvbiBkdW1iIGJ1 ZmZlcnMuCj4gKyAgICAgICAgICAgICAgPC9wYXJhPgo+ICsgICAgICAgICAgICA8L2xpc3RpdGVt Pgo+ICsgICAgICAgICAgPC92YXJsaXN0ZW50cnk+Cj4gKyAgICAgICAgICA8dmFybGlzdGVudHJ5 Pgo+ICsgICAgICAgICAgICA8dGVybT48Y29uc3RhbnQ+RFJNX0NBUF9QUklNRTwvY29uc3RhbnQ+ PC90ZXJtPgo+ICsgICAgICAgICAgICA8bGlzdGl0ZW0+Cj4gKyAgICAgICAgICAgICAgPHBhcmE+ Cj4gKyAgICAgICAgICAgICAgICBUaGUgZGV2aWNlIHN1cHBvcnRzIERNQS1CVUYgc2hhcmluZyB1 c2luZyBQUklNRS4gVGhlIHZhbHVlCj4gKyAgICAgICAgICAgICAgICByZXR1cm5lZCBpcyBhIG1h c2sgb2YgdGhlIGZvbGxvd2luZyBiaXRzOgo+ICsgICAgICAgICAgICAgIDwvcGFyYT4KPiArICAg ICAgICAgICAgICA8dmFyaWFibGVsaXN0Pgo+ICsgICAgICAgICAgICAgICAgPHZhcmxpc3RlbnRy eT4KPiArICAgICAgICAgICAgICAgICAgPHRlcm0+PGNvbnN0YW50PkRSTV9QUklNRV9DQVBfSU1Q T1JUPC9jb25zdGFudD48L3Rlcm0+Cj4gKyAgICAgICAgICAgICAgICAgIDxsaXN0aXRlbT4KPiAr ICAgICAgICAgICAgICAgICAgICA8cGFyYT4KPiArICAgICAgICAgICAgICAgICAgICAgIFRoZSBk ZXZpY2Ugc3VwcG9ydHMgaW1wb3J0aW5nIERNQS1CVUYgYnVmZmVycyB1c2luZwo+ICsgICAgICAg ICAgICAgICAgICAgICAgUFJJTUUuCj4gKyAgICAgICAgICAgICAgICAgICAgPC9wYXJhPgo+ICsg ICAgICAgICAgICAgICAgICA8L2xpc3RpdGVtPgo+ICsgICAgICAgICAgICAgICAgPC92YXJsaXN0 ZW50cnk+Cj4gKyAgICAgICAgICAgICAgICA8dmFybGlzdGVudHJ5Pgo+ICsgICAgICAgICAgICAg ICAgICA8dGVybT48Y29uc3RhbnQ+RFJNX1BSSU1FX0NBUF9FWFBPUlQ8L2NvbnN0YW50PjwvdGVy bT4KPiArICAgICAgICAgICAgICAgICAgPGxpc3RpdGVtPgo+ICsgICAgICAgICAgICAgICAgICAg IDxwYXJhPgo+ICsgICAgICAgICAgICAgICAgICAgICAgVGhlIGRldmljZSBzdXBwb3J0cyBleHBv cnRpbmcgRE1BLUJVRiBidWZmZXJzIHVzaW5nCj4gKyAgICAgICAgICAgICAgICAgICAgICBQUklN RS4KPiArICAgICAgICAgICAgICAgICAgICA8L3BhcmE+Cj4gKyAgICAgICAgICAgICAgICAgIDwv bGlzdGl0ZW0+Cj4gKyAgICAgICAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KPiArICAgICAgICAg ICAgICA8L3ZhcmlhYmxlbGlzdD4KPiArICAgICAgICAgICAgPC9saXN0aXRlbT4KPiArICAgICAg ICAgIDwvdmFybGlzdGVudHJ5Pgo+ICsgICAgICAgICAgPHZhcmxpc3RlbnRyeT4KPiArICAgICAg ICAgICAgPHRlcm0+PGNvbnN0YW50PkRSTV9DQVBfVElNRVNUQU1QX01PTk9UT05JQzwvY29uc3Rh bnQ+PC90ZXJtPgo+ICsgICAgICAgICAgICA8bGlzdGl0ZW0+Cj4gKyAgICAgICAgICAgICAgPHBh cmE+Cj4gKyAgICAgICAgICAgICAgICBUaGUgdGltZXN0YW1wIGFzc29jaWF0ZWQgd2l0aCBWQkxB TksgZXZlbnRzIGlzIG1vbm90b25pY2FsbHkKPiArICAgICAgICAgICAgICAgIGluY3JlYXNpbmcg KG5vdCBpbmZsdWVuY2VkIGJ5IHN5bmNocm9uaXphdGlvbiB0byBleHRlcm5hbAo+ICsgICAgICAg ICAgICAgICAgY2xvY2tzLCBzdWNoIGFzIE5UUCBvciBSVEMsIG5vciBsZWFwIHNlY29uZHMpLgo+ ICsgICAgICAgICAgICAgIDwvcGFyYT4KPiArICAgICAgICAgICAgPC9saXN0aXRlbT4KPiArICAg ICAgICAgIDwvdmFybGlzdGVudHJ5Pgo+ICsgICAgICAgICAgPHZhcmxpc3RlbnRyeT4KPiArICAg ICAgICAgICAgPHRlcm0+PGNvbnN0YW50PkRSTV9DQVBfQVNZTkNfUEFHRV9GTElQPC9jb25zdGFu dD48L3Rlcm0+Cj4gKyAgICAgICAgICAgIDxsaXN0aXRlbT4KPiArICAgICAgICAgICAgICA8cGFy YT4KPiArICAgICAgICAgICAgICAgIFRoZSBkZXZpY2Ugc3VwcG9ydHMgYXN5bmNocm9ub3VzIChp LmUuIGltbWVkaWF0ZSwgbm9uLVZCTEFOSwo+ICsgICAgICAgICAgICAgICAgc3luY2hyb25pemVk KSBwYWdlIGZsaXBzLgo+ICsgICAgICAgICAgICAgIDwvcGFyYT4KPiArICAgICAgICAgICAgPC9s aXN0aXRlbT4KPiArICAgICAgICAgIDwvdmFybGlzdGVudHJ5Pgo+ICsgICAgICAgICAgPHZhcmxp c3RlbnRyeT4KPiArICAgICAgICAgICAgPHRlcm0+PGNvbnN0YW50PkRSTV9DQVBfQ1VSU09SX1dJ RFRIPC9jb25zdGFudD48L3Rlcm0+Cj4gKyAgICAgICAgICAgIDxsaXN0aXRlbT4KPiArICAgICAg ICAgICAgICA8cGFyYT4KPiArICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSByZXR1cm5lZCBpcyBh IHZhbGlkIHdpZHRoIGZvciB0aGUgaGFyZHdhcmUgY3Vyc29yLgo+ICsgICAgICAgICAgICAgICAg SGFyZHdhcmUtYWdub3N0aWMgdXNlcnNwYWNlIGFwcGxpY2F0aW9ucyBjYW4gdXNlIHRoaXMgdG8g aGVscAo+ICsgICAgICAgICAgICAgICAgZGV0ZXJtaW5lIHRoZSBwcm9wZXIgc2l6ZSBmb3IgdGhl IGhhcmR3YXJlIGN1cnNvci4KPiArICAgICAgICAgICAgICA8L3BhcmE+Cj4gKyAgICAgICAgICAg IDwvbGlzdGl0ZW0+Cj4gKyAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KPiArICAgICAgICAgIDx2 YXJsaXN0ZW50cnk+Cj4gKyAgICAgICAgICAgIDx0ZXJtPjxjb25zdGFudD5EUk1fQ0FQX0NVUlNP Ul9IRUlHSFQ8L2NvbnN0YW50PjwvdGVybT4KPiArICAgICAgICAgICAgPGxpc3RpdGVtPgo+ICsg ICAgICAgICAgICAgIDxwYXJhPgo+ICsgICAgICAgICAgICAgICAgVGhlIHZhbHVlIHJldHVybmVk IGlzIGEgdmFsaWQgaGVpZ2h0IGZvciB0aGUgaGFyZHdhcmUgY3Vyc29yLgo+ICsgICAgICAgICAg ICAgICAgSGFyZHdhcmUtYWdub3N0aWMgdXNlcnNwYWNlIGFwcGxpY2F0aW9ucyBjYW4gdXNlIHRo aXMgdG8gaGVscAo+ICsgICAgICAgICAgICAgICAgZGV0ZXJtaW5lIHRoZSBwcm9wZXIgc2l6ZSBm b3IgdGhlIGhhcmR3YXJlIGN1cnNvci4KPiArICAgICAgICAgICAgICA8L3BhcmE+Cj4gKyAgICAg ICAgICAgIDwvbGlzdGl0ZW0+Cj4gKyAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KPiArICAgICAg ICA8L3ZhcmlhYmxlbGlzdD4KPiArICAgICAgICA8cGFyYT4KPiArICAgICAgICAgIFJldHVybnMg MCBvbiBzdWNjZXNzIG9yIG9uZSBvZiB0aGUgZm9sbG93aW5nIGVycm9yIGNvZGVzIG9uIGZhaWx1 cmU6Cj4gKyAgICAgICAgPC9wYXJhPgo+ICsgICAgICAgIDx2YXJpYWJsZWxpc3Q+Cj4gKyAgICAg ICAgICA8dmFybGlzdGVudHJ5Pgo+ICsgICAgICAgICAgICA8dGVybT48Y29uc3RhbnQ+RUlOVkFM PC9jb25zdGFudD48L3Rlcm0+Cj4gKyAgICAgICAgICAgIDxsaXN0aXRlbT4KPiArICAgICAgICAg ICAgICA8cGFyYT4KPiArICAgICAgICAgICAgICAgIElmIHRoZSB2YWx1ZSBpbiB0aGUgPHN0cnVj dGZpZWxkPmNhcGFiaWxpdHk8L3N0cnVjdGZpZWxkPgo+ICsgICAgICAgICAgICAgICAgZmllbGQg aXMgbm90IHN1cHBvcnRlZC4KPiArICAgICAgICAgICAgICA8L3BhcmE+Cj4gKyAgICAgICAgICAg IDwvbGlzdGl0ZW0+Cj4gKyAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KPiArICAgICAgICA8L3Zh cmlhYmxlbGlzdD4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAg IDx0aXRsZT5EUk1fSU9DVExfU0VUX0NMSUVOVF9DQVAgLSBhZHZlcnRpc2UgY2xpZW50IGNhcGFi aWxpdGllczwvdGl0bGU+Cj4gKyAgICAgICAgPHBhcmE+Cj4gKyAgICAgICAgICBTZW1hbnRpY3Mg c29tZXRpbWVzIGNoYW5nZSBhcyBhbiBpbnRlcmZhY2VzIGV2b2x2ZXMuIFRvIHByZXNlcnZlCj4g KyAgICAgICAgICBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBhbmQgc3RpbGwgdGFrZSBhZHZhbnRh Z2Ugb2YgbmV3IGZlYXR1cmVzCj4gKyAgICAgICAgICB1c2Vyc3BhY2UgY2FuIHVzZSB0aGlzIElP Q1RMIHRvIGFkdmVydGlzZSBpdHMgb3duIGNhcGFiaWxpdGllcy4KPiArICAgICAgICA8L3BhcmE+ Cj4gKyAgICAgICAgPHBhcmE+Cj4gKyAgICAgICAgICBVc2Vyc3BhY2UgYXBwbGljYXRpb25zIHNl dCA8c3RydWN0ZmllbGQ+Y2FwYWJpbGl0eTwvc3RydWN0ZmllbGQ+Cj4gKyAgICAgICAgICBhbmQg PHN0cnVjdGZpZWxkPnZhbHVlPC9zdHJ1Y3RmaWVsZD4gYXBwcm9wcmlhdGVseSBhbmQgcGFzcyB0 aGUKPiArICAgICAgICAgIDxzdHJ1Y3RuYW1lPmRybV9zZXRfY2xpZW50X2NhcDwvc3RydWN0bmFt ZT4gc3RydWN0dXJlIHRvIHRoaXMKPiArICAgICAgICAgIElPQ1RMLiBCZWxvdyBpcyBhIGxpc3Qg b2YgdmFsaWQgY2FwYWJpbGl0aWVzLgo+ICsgICAgICAgIDwvcGFyYT4KPiArIUZpbmNsdWRlL3Vh cGkvZHJtL2RybS5oIGRybV9zZXRfY2xpZW50X2NhcAo+ICsgICAgICAgIDx2YXJpYWJsZWxpc3Q+ Cj4gKyAgICAgICAgICA8dmFybGlzdGVudHJ5Pgo+ICsgICAgICAgICAgICA8dGVybT48Y29uc3Rh bnQ+RFJNX0NMSUVOVF9DQVBfU1RFUkVPXzNEPC9jb25zdGFudD48L3Rlcm0+Cj4gKyAgICAgICAg ICAgIDxsaXN0aXRlbT4KPiArICAgICAgICAgICAgICA8cGFyYT4KPiArICAgICAgICAgICAgICAg IFRoZSBkZXZpY2Ugd2lsbCBleHBvc2Ugc3RlcmVvIDNEIGNhcGFiaWxpdGllcyBvZiBtb25pdG9y cyBieQo+ICsgICAgICAgICAgICAgICAgYWR2ZXJ0aXNpbmcgdGhlIHN1cHBvcnRlZCAzRCBsYXlv dXRzIGluIHRoZSBmbGFncyBvZiB0aGUKPiArICAgICAgICAgICAgICAgIDxzdHJ1Y3RuYW1lPmRy bV9tb2RlX21vZGVpbmZvPC9zdHJ1Y3RuYW1lPiBzdHJ1Y3R1cmUuCj4gKyAgICAgICAgICAgICAg PC9wYXJhPgo+ICsgICAgICAgICAgICAgIDxwYXJhPgo+ICsgICAgICAgICAgICAgICAgVmFsaWQg dmFsdWVzIGFyZSAwIChkaXNhYmxlKSBvciAxIChlbmFibGUpLgo+ICsgICAgICAgICAgICAgIDwv cGFyYT4KPiArICAgICAgICAgICAgPC9saXN0aXRlbT4KPiArICAgICAgICAgIDwvdmFybGlzdGVu dHJ5Pgo+ICsgICAgICAgICAgPHZhcmxpc3RlbnRyeT4KPiArICAgICAgICAgICAgPHRlcm0+PGNv bnN0YW50PkRSTV9DTElFTlRfQ0FQX1VOSVZFUlNBTF9QTEFORVM8L2NvbnN0YW50PjwvdGVybT4K PiArICAgICAgICAgICAgPGxpc3RpdGVtPgo+ICsgICAgICAgICAgICAgIDxwYXJhPgo+ICsgICAg ICAgICAgICAgICAgVGhlIGRldmljZSB3aWxsIGV4cG9zZSBwbGFuZXMgb2YgYWxsIHR5cGVzIChw cmltYXJ5LCBvdmVybGF5Cj4gKyAgICAgICAgICAgICAgICBhbmQgY3Vyc29yKSB0byB1c2Vyc3Bh Y2UsIGluIGNvbnRyYXN0IHdpdGggdGhlIGRlZmF1bHQgbW9kZQo+ICsgICAgICAgICAgICAgICAg d2hlcmUgb25seSBvdmVybGF5IHBsYW5lcyBhcmUgZXhwb3NlZC4KPiArICAgICAgICAgICAgICA8 L3BhcmE+Cj4gKyAgICAgICAgICAgICAgPHBhcmE+Cj4gKyAgICAgICAgICAgICAgICBWYWxpZCB2 YWx1ZXMgYXJlIDAgKGRpc2FibGUpIG9yIDEgKGVuYWJsZSkuCj4gKyAgICAgICAgICAgICAgPC9w YXJhPgo+ICsgICAgICAgICAgICA8L2xpc3RpdGVtPgo+ICsgICAgICAgICAgPC92YXJsaXN0ZW50 cnk+Cj4gKyAgICAgICAgPC92YXJpYWJsZWxpc3Q+Cj4gKyAgICAgICAgPHBhcmE+Cj4gKyAgICAg ICAgICBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBvbmUgb2YgdGhlIGZvbGxvd2luZyBlcnJvciBj b2RlcyBvbiBmYWlsdXJlOgo+ICsgICAgICAgIDwvcGFyYT4KPiArICAgICAgICA8dmFyaWFibGVs aXN0Pgo+ICsgICAgICAgICAgPHZhcmxpc3RlbnRyeT4KPiArICAgICAgICAgICAgPHRlcm0+PGNv bnN0YW50PkVJTlZBTDwvY29uc3RhbnQ+PC90ZXJtPgo+ICsgICAgICAgICAgICA8bGlzdGl0ZW0+ Cj4gKyAgICAgICAgICAgICAgPHBhcmE+Cj4gKyAgICAgICAgICAgICAgICBJZiB0aGUgdmFsdWUg b2YgdGhlIDxzdHJ1Y3RmaWVsZD5jYXBhYmlsaXR5PC9zdHJ1Y3RmaWVsZD4KPiArICAgICAgICAg ICAgICAgIGZpZWxkIGlzIG5vdCBzdXBwb3J0ZWQgb3IgdGhlIHZhbHVlIGluIHRoZSA8c3RydWN0 ZmllbGQ+Cj4gKyAgICAgICAgICAgICAgICB2YWx1ZTwvc3RydWN0ZmllbGQ+IGZpZWxkIGlzIG5v dCB2YWxpZCBmb3IgdGhlIGNhcGFiaWxpdHkuCj4gKyAgICAgICAgICAgICAgPC9wYXJhPgo+ICsg ICAgICAgICAgICA8L2xpc3RpdGVtPgo+ICsgICAgICAgICAgPC92YXJsaXN0ZW50cnk+Cj4gKyAg ICAgICAgPC92YXJpYWJsZWxpc3Q+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICA8L3NlY3QxPgo+ ICsgICAgPHNlY3QxPgo+ICsgICAgICA8dGl0bGU+QXV0aGVudGljYXRpb248L3RpdGxlPgo+ICsg ICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9JT0NUTF9HRVRfTUFHSUM8L3RpdGxl Pgo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRS TV9JT0NUTF9BVVRIX01BR0lDPC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNl Y3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1fSU9DVExfU0VUX01BU1RFUjwvdGl0bGU+Cj4gKyAg ICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RM X0RST1BfTUFTVEVSPC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgIDwvc2VjdDE+Cj4g KyAgICA8c2VjdDE+Cj4gKyAgICAgIDx0aXRsZT5CdWZmZXIgTWFuYWdlbWVudDwvdGl0bGU+Cj4g KyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX0dFTV9DTE9TRSAtIHJl bW92ZSBhIEdFTSBvYmplY3Q8L3RpdGxlPgo+ICsgICAgICAgIDxwYXJhPgo+ICsgICAgICAgICAg UmVtb3ZlcyB0aGUgaGFuZGxlIG9mIGEgR0VNIG9iamVjdCBhbmQgZHJvcHMgdGhlIGhhbmRsZSdz IHJlZmVyZW5jZQo+ICsgICAgICAgICAgdG8gdGhlIG9iamVjdC4gSWYgdGhlIGhhbmRsZSB3YXMg aG9sZGluZyB0aGUgbGFzdCByZWZlcmVuY2UsIHRoZQo+ICsgICAgICAgICAgR0VNIG9iamVjdCBp cyBkZXN0cm95ZWQuCj4gKyAgICAgICAgPC9wYXJhPgo+ICshRmluY2x1ZGUvdWFwaS9kcm0vZHJt LmggZHJtX2dlbV9jbG9zZQo+ICsgICAgICAgIDxwYXJhPgo+ICsgICAgICAgICAgUmV0dXJucyAw IG9uIHN1Y2Nlc3Mgb3Igb25lIG9mIHRoZSBmb2xsb3dpbmcgZXJyb3IgY29kZXMgb24gZmFpbHVy ZToKPiArICAgICAgICA8L3BhcmE+Cj4gKyAgICAgICAgPHZhcmlhYmxlbGlzdD4KPiArICAgICAg ICAgIDx2YXJsaXN0ZW50cnk+Cj4gKyAgICAgICAgICAgIDx0ZXJtPjxjb25zdGFudD5FTk9ERVY8 L2NvbnN0YW50PjwvdGVybT4KPiArICAgICAgICAgICAgPGxpc3RpdGVtPgo+ICsgICAgICAgICAg ICAgIDxwYXJhPgo+ICsgICAgICAgICAgICAgICAgSWYgdGhlIGRldmljZSBkb2Vzbid0IHN1cHBv cnQgR0VNIG9iamVjdHMuCj4gKyAgICAgICAgICAgICAgPC9wYXJhPgo+ICsgICAgICAgICAgICA8 L2xpc3RpdGVtPgo+ICsgICAgICAgICAgPC92YXJsaXN0ZW50cnk+Cj4gKyAgICAgICAgICA8dmFy bGlzdGVudHJ5Pgo+ICsgICAgICAgICAgICA8dGVybT48Y29uc3RhbnQ+RUlOVkFMPC9jb25zdGFu dD48L3Rlcm0+Cj4gKyAgICAgICAgICAgIDxsaXN0aXRlbT4KPiArICAgICAgICAgICAgICA8cGFy YT4KPiArICAgICAgICAgICAgICAgIElmIG5vIEdFTSBvYmplY3Qgd2l0aCB0aGUgc3BlY2lmaWVk IGhhbmRsZSBleGlzdHMuCj4gKyAgICAgICAgICAgICAgPC9wYXJhPgo+ICsgICAgICAgICAgICA8 L2xpc3RpdGVtPgo+ICsgICAgICAgICAgPC92YXJsaXN0ZW50cnk+Cj4gKyAgICAgICAgPC92YXJp YWJsZWxpc3Q+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8 dGl0bGU+RFJNX0lPQ1RMX0dFTV9GTElOSyAtIGV4cG9ydCBhIEdFTSBvYmplY3QgYnkgbmFtZTwv dGl0bGU+Cj4gKyAgICAgICAgPHBhcmE+Cj4gKyAgICAgICAgICBDcmVhdGVzIGEgZ2xvYmFsIG5h bWUgZm9yIGEgR0VNIG9iamVjdC4KPiArICAgICAgICA8L3BhcmE+Cj4gKyFGaW5jbHVkZS91YXBp L2RybS9kcm0uaCBkcm1fZ2VtX2ZsaW5rCj4gKyAgICAgICAgPHBhcmE+Cj4gKyAgICAgICAgICBU aGUgbmFtZSBkb2VzIG5vdCBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBvYmplY3QuIElmIGEgcmVm ZXJlbmNlIGlzCj4gKyAgICAgICAgICBuZWVkZWQsIG9wZW4gdGhlIEdFTSBvYmplY3QgdXNpbmcg dGhlIDxjb25zdGFudD5EUk1fSU9DVExfR0VNX09QRU4KPiArICAgICAgICAgIDwvY29uc3RhbnQ+ IElPQ1RMLgo+ICsgICAgICAgIDwvcGFyYT4KPiArICAgICAgICA8cGFyYT4KPiArICAgICAgICAg IFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIG9uZSBvZiB0aGUgZm9sbG93aW5nIGVycm9yIGNvZGVz IG9uIGZhaWx1cmU6Cj4gKyAgICAgICAgPC9wYXJhPgo+ICsgICAgICAgIDx2YXJpYWJsZWxpc3Q+ Cj4gKyAgICAgICAgICA8dmFybGlzdGVudHJ5Pgo+ICsgICAgICAgICAgICA8dGVybT48Y29uc3Rh bnQ+RU5PREVWPC9jb25zdGFudD48L3Rlcm0+Cj4gKyAgICAgICAgICAgIDxsaXN0aXRlbT4KPiAr ICAgICAgICAgICAgICA8cGFyYT4KPiArICAgICAgICAgICAgICAgIElmIHRoZSBkZXZpY2UgZG9l c24ndCBzdXBwb3J0IEdFTSBvYmplY3RzLgo+ICsgICAgICAgICAgICAgIDwvcGFyYT4KPiArICAg ICAgICAgICAgPC9saXN0aXRlbT4KPiArICAgICAgICAgIDwvdmFybGlzdGVudHJ5Pgo+ICsgICAg ICAgICAgPHZhcmxpc3RlbnRyeT4KPiArICAgICAgICAgICAgPHRlcm0+PGNvbnN0YW50PkVOT0VO VDwvY29uc3RhbnQ+PC90ZXJtPgo+ICsgICAgICAgICAgICA8bGlzdGl0ZW0+Cj4gKyAgICAgICAg ICAgICAgPHBhcmE+Cj4gKyAgICAgICAgICAgICAgICBJZiBubyBHRU0gb2JqZWN0IHdpdGggdGhl IHNwZWNpZmllZCBoYW5kbGUgZXhpc3RzIG9yIGlmIGl0IGlzCj4gKyAgICAgICAgICAgICAgICBp biB0aGUgcHJvY2VzcyBvZiBiZWluZyByZW1vdmVkLgo+ICsgICAgICAgICAgICAgIDwvcGFyYT4K PiArICAgICAgICAgICAgPC9saXN0aXRlbT4KPiArICAgICAgICAgIDwvdmFybGlzdGVudHJ5Pgo+ ICsgICAgICAgIDwvdmFyaWFibGVsaXN0Pgo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2Vj dDI+Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9JT0NUTF9HRU1fT1BFTiAtIG9wZW4gYSBHRU0gb2Jq ZWN0IGJ5IG5hbWU8L3RpdGxlPgo+ICsgICAgICAgIDxwYXJhPgo+ICsgICAgICAgICAgT3BlbnMg YSBHRU0gb2JqZWN0IGJ5IG5hbWUuCj4gKyAgICAgICAgPC9wYXJhPgo+ICshRmluY2x1ZGUvdWFw aS9kcm0vZHJtLmggZHJtX2dlbV9vcGVuCj4gKyAgICAgICAgPHBhcmE+Cj4gKyAgICAgICAgICBS ZXR1cm5zIDAgb24gc3VjY2VzcyBvciBvbmUgb2YgdGhlIGZvbGxvd2luZyBlcnJvciBjb2RlcyBv biBmYWlsdXJlOgo+ICsgICAgICAgIDwvcGFyYT4KPiArICAgICAgICA8dmFyaWFibGVsaXN0Pgo+ ICsgICAgICAgICAgPHZhcmxpc3RlbnRyeT4KPiArICAgICAgICAgICAgPHRlcm0+PGNvbnN0YW50 PkVOT0RFVjwvY29uc3RhbnQ+PC90ZXJtPgo+ICsgICAgICAgICAgICA8bGlzdGl0ZW0+Cj4gKyAg ICAgICAgICAgICAgPHBhcmE+Cj4gKyAgICAgICAgICAgICAgICBJZiB0aGUgZGV2aWNlIGRvZXNu J3Qgc3VwcG9ydCBHRU0gb2JqZWN0cy4KPiArICAgICAgICAgICAgICA8L3BhcmE+Cj4gKyAgICAg ICAgICAgIDwvbGlzdGl0ZW0+Cj4gKyAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KPiArICAgICAg ICAgIDx2YXJsaXN0ZW50cnk+Cj4gKyAgICAgICAgICAgIDx0ZXJtPjxjb25zdGFudD5FTk9FTlQ8 L2NvbnN0YW50PjwvdGVybT4KPiArICAgICAgICAgICAgPGxpc3RpdGVtPgo+ICsgICAgICAgICAg ICAgIDxwYXJhPgo+ICsgICAgICAgICAgICAgICAgSWYgbm8gR0VNIG9iamVjdCB3aXRoIHRoZSBz cGVjaWZpZWQgaGFuZGxlIGV4aXN0cy4KPiArICAgICAgICAgICAgICA8L3BhcmE+Cj4gKyAgICAg ICAgICAgIDwvbGlzdGl0ZW0+Cj4gKyAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KPiArICAgICAg ICA8L3ZhcmlhYmxlbGlzdD4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgIDwvc2VjdDE+Cj4gKyAg ICA8c2VjdDE+Cj4gKyAgICAgIDx0aXRsZT5ETUEtQlVGIFNoYXJpbmcgKFBSSU1FKTwvdGl0bGU+ Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX1BSSU1FX0hBTkRM RV9UT19GRCAtIGV4cG9ydCBhIERNQS1CVUYgYnVmZmVyPC90aXRsZT4KPiArICAgICAgICA8cGFy YT4KPiArICAgICAgICAgIEV4cG9ydHMgYSBidWZmZXIgb2JqZWN0IGlkZW50aWZpZWQgYnkgaXRz IGhhbmRsZSB1c2luZyBETUEtQlVGLiBUaGUKPiArICAgICAgICAgIGZpbGUgZGVzY3JpcHRvciBv YnRhaW5lZCBkdXJpbmcgdGhpcyBwcm9jZXNzIGNhbiBiZSBpbXBvcnRlZCBpbnRvIGEKPiArICAg ICAgICAgIGRpZmZlcmVudCBkcml2ZXIgc3VwcG9ydGluZyBETUEtQlVGIGZvciB6ZXJvLWNvcHkg c2hhcmluZyBvZiBidWZmZXIKPiArICAgICAgICAgIGNvbnRlbnQuCj4gKyAgICAgICAgPC9wYXJh Pgo+ICsgICAgICAgIDxwYXJhPgo+ICsgICAgICAgICAgVGhlIG9ubHkgc3VwcG9ydGVkIGZsYWcg aW4gdGhlIDxzdHJ1Y3RmaWVsZD5mbGFnczwvc3RydWN0ZmllbGQ+Cj4gKyAgICAgICAgICBmaWVs ZCBpcyA8Y29uc3RhbnQ+RE1BX0NMT0VYRUM8L2NvbnN0YW50Pi4KPiArICAgICAgICA8L3BhcmE+ Cj4gKyFGaW5jbHVkZS91YXBpL2RybS9kcm0uaCBkcm1fcHJpbWVfaGFuZGxlCj4gKyAgICAgICAg PHBhcmE+Cj4gKyAgICAgICAgICBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBvbmUgb2YgdGhlIGZv bGxvd2luZyBlcnJvciBjb2RlcyBvbiBmYWlsdXJlOgo+ICsgICAgICAgIDwvcGFyYT4KPiArICAg ICAgICA8dmFyaWFibGVsaXN0Pgo+ICsgICAgICAgICAgPHZhcmxpc3RlbnRyeT4KPiArICAgICAg ICAgICAgPHRlcm0+PGNvbnN0YW50PkVJTlZBTDwvY29uc3RhbnQ+PC90ZXJtPgo+ICsgICAgICAg ICAgICA8bGlzdGl0ZW0+Cj4gKyAgICAgICAgICAgICAgPHBhcmE+Cj4gKyAgICAgICAgICAgICAg ICBJZiB0aGUgZHJpdmVyIGRvZXMgbm90IHN1cHBvcnQgYnVmZmVyIHNoYXJpbmcgdXNpbmcgUFJJ TUUgb3IKPiArICAgICAgICAgICAgICAgIGlmIHRoZSBmbGFncyBzcGVjaWZpZWQgaW4gPHN0cnVj dGZpZWxkPmZsYWdzPC9zdHJ1Y3RmaWVsZD4gYXJlCj4gKyAgICAgICAgICAgICAgICBpbnZhbGlk Lgo+ICsgICAgICAgICAgICAgIDwvcGFyYT4KPiArICAgICAgICAgICAgPC9saXN0aXRlbT4KPiAr ICAgICAgICAgIDwvdmFybGlzdGVudHJ5Pgo+ICsgICAgICAgICAgPHZhcmxpc3RlbnRyeT4KPiAr ICAgICAgICAgICAgPHRlcm0+PGNvbnN0YW50PkVOT1NZUzwvY29uc3RhbnQ+PC90ZXJtPgo+ICsg ICAgICAgICAgICA8bGlzdGl0ZW0+Cj4gKyAgICAgICAgICAgICAgPHBhcmE+Cj4gKyAgICAgICAg ICAgICAgICBJZiB0aGUgZHJpdmVyIGRvZXMgbm90IHN1cHBvcnQgZXhwb3J0aW5nIGJ1ZmZlcnMg dXNpbmcgUFJJTUUuCj4gKyAgICAgICAgICAgICAgPC9wYXJhPgo+ICsgICAgICAgICAgICA8L2xp c3RpdGVtPgo+ICsgICAgICAgICAgPC92YXJsaXN0ZW50cnk+Cj4gKyAgICAgICAgPC92YXJpYWJs ZWxpc3Q+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0 bGU+RFJNX0lPQ1RMX1BSSU1FX0ZEX1RPX0hBTkRMRSAtIGltcG9ydCBhIERNQS1CVUYgYnVmZmVy PC90aXRsZT4KPiArICAgICAgICA8cGFyYT4KPiArICAgICAgICAgIEltcG9ydHMgYSBETUEtQlVG IGJ1ZmZlciBpZGVudGlmaWVkIGJ5IGl0cyBmaWxlIGRlc2NyaXB0b3IuIEJ1ZmZlcnMKPiArICAg ICAgICAgIGltcG9ydGVkIHVzaW5nIHRoaXMgSU9DVEwgYXJlIGFzc2lnbmVkIGEgbmV3IGhhbmRs ZSByZWxhdGl2ZSB0byB0aGUKPiArICAgICAgICAgIGRldmljZSBhbmQgY2FuIGJlIHVzZWQgbGlr ZSBhbnkgbmF0aXZlbHktYWxsb2NhdGVkIGJ1ZmZlci4KPiArICAgICAgICA8L3BhcmE+Cj4gKyAg ICAgICAgPHBhcmE+Cj4gKyAgICAgICAgICBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBvbmUgb2Yg dGhlIGZvbGxvd2luZyBlcnJvciBjb2RlcyBvbiBmYWlsdXJlOgo+ICsgICAgICAgIDwvcGFyYT4K PiArICAgICAgICA8dmFyaWFibGVsaXN0Pgo+ICsgICAgICAgICAgPHZhcmxpc3RlbnRyeT4KPiAr ICAgICAgICAgICAgPHRlcm0+PGNvbnN0YW50PkVJTlZBTDwvY29uc3RhbnQ+PC90ZXJtPgo+ICsg ICAgICAgICAgICA8bGlzdGl0ZW0+Cj4gKyAgICAgICAgICAgICAgPHBhcmE+Cj4gKyAgICAgICAg ICAgICAgICBJZiB0aGUgZHJpdmVyIGRvZXMgbm90IHN1cHBvcnQgYnVmZmVyIHNoYXJpbmcgdXNp bmcgUFJJTUUuCj4gKyAgICAgICAgICAgICAgPC9wYXJhPgo+ICsgICAgICAgICAgICA8L2xpc3Rp dGVtPgo+ICsgICAgICAgICAgPC92YXJsaXN0ZW50cnk+Cj4gKyAgICAgICAgICA8dmFybGlzdGVu dHJ5Pgo+ICsgICAgICAgICAgICA8dGVybT48Y29uc3RhbnQ+RU5PU1lTPC9jb25zdGFudD48L3Rl cm0+Cj4gKyAgICAgICAgICAgIDxsaXN0aXRlbT4KPiArICAgICAgICAgICAgICA8cGFyYT4KPiAr ICAgICAgICAgICAgICAgIElmIHRoZSBkcml2ZXIgZG9lcyBub3Qgc3VwcG9ydCBpbXBvcnRpbmcg YnVmZmVycyB1c2luZyBQUklNRS4KPiArICAgICAgICAgICAgICA8L3BhcmE+Cj4gKyAgICAgICAg ICAgIDwvbGlzdGl0ZW0+Cj4gKyAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KPiArICAgICAgICA8 L3ZhcmlhYmxlbGlzdD4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgIDwvc2VjdDE+Cj4gKyAgICA8 c2VjdDE+Cj4gKyAgICAgIDx0aXRsZT5Nb2Rlc2V0dGluZzwvdGl0bGU+Cj4gKyAgICAgIDxzZWN0 Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX01PREVfR0VUUkVTT1VSQ0VTPC90aXRsZT4K PiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1f SU9DVExfTU9ERV9HRVRDUlRDPC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNl Y3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1fSU9DVExfTU9ERV9TRVRDUlRDPC90aXRsZT4KPiAr ICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1fSU9D VExfTU9ERV9DVVJTT1I8L3RpdGxlPgo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2VjdDI+ Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9JT0NUTF9NT0RFX0dFVEdBTU1BPC90aXRsZT4KPiArICAg ICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1fSU9DVExf TU9ERV9TRVRHQU1NQTwvdGl0bGU+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4K PiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX01PREVfR0VURU5DT0RFUjwvdGl0bGU+Cj4gKyAg ICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RM X01PREVfR0VUQ09OTkVDVE9SPC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNl Y3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1fSU9DVExfTU9ERV9BVFRBQ0hNT0RFPC90aXRsZT4K PiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1f SU9DVExfTU9ERV9ERVRBQ0hNT0RFPC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAg PHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1fSU9DVExfTU9ERV9HRVRQUk9QRVJUWTwvdGl0 bGU+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+ RFJNX0lPQ1RMX01PREVfU0VUUFJPUEVSVFk8L3RpdGxlPgo+ICsgICAgICA8L3NlY3QyPgo+ICsg ICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9JT0NUTF9NT0RFX0dFVFBST1BCTE9C PC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0 aXRsZT5EUk1fSU9DVExfTU9ERV9HRVRGQjwvdGl0bGU+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAg ICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX01PREVfQURERkI8L3RpdGxl Pgo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRS TV9JT0NUTF9NT0RFX1JNRkI8L3RpdGxlPgo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2Vj dDI+Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9JT0NUTF9NT0RFX1BBR0VfRkxJUDwvdGl0bGU+Cj4g KyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lP Q1RMX01PREVfRElSVFlGQjwvdGl0bGU+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0 Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX01PREVfQ1JFQVRFX0RVTUI8L3RpdGxlPgo+ ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9J T0NUTF9NT0RFX01BUF9EVU1CPC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNl Y3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1fSU9DVExfTU9ERV9ERVNUUk9ZX0RVTUI8L3RpdGxl Pgo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRS TV9JT0NUTF9NT0RFX0dFVFBMQU5FUkVTT1VSQ0VTPC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4K PiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1fSU9DVExfTU9ERV9HRVRQTEFO RTwvdGl0bGU+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8 dGl0bGU+RFJNX0lPQ1RMX01PREVfU0VUUExBTkU8L3RpdGxlPgo+ICsgICAgICA8L3NlY3QyPgo+ ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9JT0NUTF9NT0RFX0FEREZCMjwv dGl0bGU+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0 bGU+RFJNX0lPQ1RMX01PREVfT0JKX0dFVFBST1BFUlRJRVM8L3RpdGxlPgo+ICsgICAgICA8L3Nl Y3QyPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9JT0NUTF9NT0RFX09C Sl9TRVRQUk9QRVJUWTwvdGl0bGU+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4K PiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX01PREVfQ1VSU09SMjwvdGl0bGU+Cj4gKyAgICAg IDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX1dB SVRfVkJMQU5LPC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgIDwvc2VjdDE+Cj4gKyAg ICA8c2VjdDE+Cj4gKyAgICAgIDx0aXRsZT5MZWdhY3kgSU9DVExzPC90aXRsZT4KPiArICAgICAg PHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1fSU9DVExfU0VUX1VOSVFVRTwvdGl0bGU+Cj4g KyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lP Q1RMX0lSUV9CVVNJRDwvdGl0bGU+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4K PiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX0dFVF9NQVA8L3RpdGxlPgo+ICsgICAgICA8L3Nl Y3QyPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9JT0NUTF9HRVRfQ0xJ RU5UPC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAg IDx0aXRsZT5EUk1fSU9DVExfR0VUX1NUQVRTPC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiAr ICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1fSU9DVExfTU9ERVNFVF9DVEw8L3Rp dGxlPgo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxl PkRSTV9JT0NUTF9CTE9DSzwvdGl0bGU+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0 Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX1VOQkxPQ0s8L3RpdGxlPgo+ICsgICAgICA8 L3NlY3QyPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9JT0NUTF9DT05U Uk9MPC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAg IDx0aXRsZT5EUk1fSU9DVExfQUREX01BUDwvdGl0bGU+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAg ICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX0FERF9CVUZTPC90aXRsZT4K PiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1f SU9DVExfTUFSS19CVUZTPC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3Qy Pgo+ICsgICAgICAgIDx0aXRsZT5EUk1fSU9DVExfSU5GT19CVUZTPC90aXRsZT4KPiArICAgICAg PC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1fSU9DVExfTUFQ X0JVRlM8L3RpdGxlPgo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAg ICAgPHRpdGxlPkRSTV9JT0NUTF9GUkVFX0JVRlM8L3RpdGxlPgo+ICsgICAgICA8L3NlY3QyPgo+ ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9JT0NUTF9STV9NQVA8L3RpdGxl Pgo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRS TV9JT0NUTF9TRVRfU0FSRUFfQ1RYPC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAg PHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1fSU9DVExfR0VUX1NBUkVBX0NUWDwvdGl0bGU+ Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJN X0lPQ1RMX0FERF9DVFg8L3RpdGxlPgo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2VjdDI+ Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9JT0NUTF9STV9DVFg8L3RpdGxlPgo+ICsgICAgICA8L3Nl Y3QyPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9JT0NUTF9NT0RfQ1RY PC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0 aXRsZT5EUk1fSU9DVExfR0VUX0NUWDwvdGl0bGU+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAg IDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX1NXSVRDSF9DVFg8L3RpdGxlPgo+ ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9J T0NUTF9ORVdfQ1RYPC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ ICsgICAgICAgIDx0aXRsZT5EUk1fSU9DVExfUkVTX0NUWDwvdGl0bGU+Cj4gKyAgICAgIDwvc2Vj dDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX0FERF9EUkFX PC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0 aXRsZT5EUk1fSU9DVExfUk1fRFJBVzwvdGl0bGU+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAg IDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX0RNQTwvdGl0bGU+Cj4gKyAgICAg IDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX0xP Q0s8L3RpdGxlPgo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAg PHRpdGxlPkRSTV9JT0NUTF9VTkxPQ0s8L3RpdGxlPgo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAg ICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9JT0NUTF9GSU5JU0g8L3RpdGxlPgo+ICsg ICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9JT0NU TF9BR1BfQUNRVUlSRTwvdGl0bGU+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4K PiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX0FHUF9SRUxFQVNFPC90aXRsZT4KPiArICAgICAg PC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1fSU9DVExfQUdQ X0VOQUJMRTwvdGl0bGU+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAg ICAgICA8dGl0bGU+RFJNX0lPQ1RMX0FHUF9JTkZPPC90aXRsZT4KPiArICAgICAgPC9zZWN0Mj4K PiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5EUk1fSU9DVExfQUdQX0FMTE9DPC90 aXRsZT4KPiArICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0aXRs ZT5EUk1fSU9DVExfQUdQX0ZSRUU8L3RpdGxlPgo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8 c2VjdDI+Cj4gKyAgICAgICAgPHRpdGxlPkRSTV9JT0NUTF9BR1BfQklORDwvdGl0bGU+Cj4gKyAg ICAgIDwvc2VjdDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RM X0FHUF9VTkJJTkQ8L3RpdGxlPgo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2VjdDI+Cj4g KyAgICAgICAgPHRpdGxlPkRSTV9JT0NUTF9TR19BTExPQzwvdGl0bGU+Cj4gKyAgICAgIDwvc2Vj dDI+Cj4gKyAgICAgIDxzZWN0Mj4KPiArICAgICAgICA8dGl0bGU+RFJNX0lPQ1RMX1NHX0ZSRUU8 L3RpdGxlPgo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAgICA8c2VjdDI+Cj4gKyAgICAgICAgPHRp dGxlPkRSTV9JT0NUTF9VUERBVEVfRFJBVzwvdGl0bGU+Cj4gKyAgICAgIDwvc2VjdDI+Cj4gKyAg ICA8L3NlY3QxPgo+ICsgIDwvY2hhcHRlcj4KPiArPC9wYXJ0Pgo+ICA8cGFydCBpZD0iZHJtRHJp dmVycyI+Cj4gLSAgPHRpdGxlPkRSTSBEcml2ZXJzPC90aXRsZT4KPiArICA8dGl0bGUgaWQ9ImRy bURyaXZlcnMudGl0bGUiPkRSTSBEcml2ZXJzPC90aXRsZT4KPiAgCj4gICAgPHBhcnRpbnRybz4K PiAgICAgIDxwYXJhPgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIGIvaW5j bHVkZS91YXBpL2RybS9kcm0uaAo+IGluZGV4IGIwYjg1NTYxMzY0MS4uZWM1MzNlYTc0MzI0IDEw MDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKPiArKysgYi9pbmNsdWRlL3VhcGkv ZHJtL2RybS5oCj4gQEAgLTEsNSArMSw0IEBACj4gIC8qKgo+IC0gKiBcZmlsZSBkcm0uaAo+ICAg KiBIZWFkZXIgZm9yIHRoZSBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIKPiAgICoKPiAgICogXGF1 dGhvciBSaWNrYXJkIEUuIChSaWspIEZhaXRoIDxmYWl0aEB2YWxpbnV4LmNvbT4KPiBAQCAtMTIx LDkgKzEyMCwyNCBAQCBzdHJ1Y3QgZHJtX2h3X2xvY2sgewo+ICB9Owo+ICAKPiAgLyoqCj4gLSAq IERSTV9JT0NUTF9WRVJTSU9OIGlvY3RsIGFyZ3VtZW50IHR5cGUuCj4gKyAqIHN0cnVjdCBkcm1f dmVyc2lvbiAtIERSTV9JT0NUTF9WRVJTSU9OIElPQ1RMIGFyZ3VtZW50IHR5cGUKPiArICogQHZl cnNpb25fbWFqb3I6IG1ham9yIHZlcnNpb24KPiArICogQHZlcnNpb25fbWlub3I6IG1pbm9yIHZl cnNpb24KPiArICogQHZlcnNpb25fcGF0Y2hsZXZlbDogcGF0Y2ggbGV2ZWwKPiArICogQG5hbWVf bGVuOiBsZW5ndGggb2YgbmFtZSBidWZmZXIKPiArICogQG5hbWU6IGRyaXZlciBuYW1lCj4gKyAq IEBkYXRlX2xlbjogbGVuZ3RoIG9mIGRhdGUgYnVmZmVyCj4gKyAqIEBkYXRlOiBkcml2ZXIgZGF0 ZQo+ICsgKiBAZGVzY19sZW46IGxlbmd0aCBvZiBkZXNjcmlwdGlvbiBidWZmZXIKPiArICogQGRl c2M6IGRyaXZlciBkZXNjcmlwdGlvbgo+ICAgKgo+IC0gKiBcc2EgZHJtR2V0VmVyc2lvbigpLgo+ ICsgKiBUaGUgQG5hbWUsIEBkYXRlIGFuZCBAZGVzYyBmaWVsZHMgbXVzdCBwb2ludCB0byBidWZm ZXJzIGFsbG9jYXRlZCBieSB0aGUKPiArICogdXNlcnNwYWNlIGFwcGxpY2F0aW9uLiBPbmx5IEBu YW1lX2xlbiwgQGRhdGVfbGVuIG9yIEBkZXNjX2xlbiBjaGFyYWN0ZXJzCj4gKyAqIHdpbGwgYmUg d3JpdHRlbiBpbnRvIHRoZXNlIGJ1ZmZlcnMsIHNvIHRoZSBzdHJpbmdzIG1heSBiZSB0cnVuY2F0 ZWQuIFRoZQo+ICsgKiBrZXJuZWwgc2V0cyB0aGUgQG5hbWVfbGVuLCBAZGF0ZV9sZW4gYW5kIEBk ZXNjX2xlbiBmaWVsZHMgdG8gdGhlIGFjdHVhbAo+ICsgKiBsZW5ndGhzIG9mIHRoZSBzdHJpbmdz IHVwb24gcmV0dXJuIChub3QgaW5jY2x1ZGluZyB0aGUgdGVybWluYXRpbmcgTlVMCj4gKyAqIGNo YXJhY3RlcikuIFVzZXJzcGFjZSBjYW4gY2FsbCB0aGlzIElPQ1RMIHdpdGggYWxsIGxlbmd0aHMg c2V0IHRvIDAgKGFuZAo+ICsgKiBidWZmZXJzIHRvIE5VTEwpIHRvIGRldGVybWluZSB0aGUgZXhh Y3Qgc2l6ZSBvZiB0aGUgYnVmZmVycyB0byBhbGxvY2F0ZS4KPiAgICovCj4gIHN0cnVjdCBkcm1f dmVyc2lvbiB7Cj4gIAlpbnQgdmVyc2lvbl9tYWpvcjsJICAvKio8IE1ham9yIHZlcnNpb24gKi8K PiBAQCAtMTM4LDkgKzE1MiwxNyBAQCBzdHJ1Y3QgZHJtX3ZlcnNpb24gewo+ICB9Owo+ICAKPiAg LyoqCj4gLSAqIERSTV9JT0NUTF9HRVRfVU5JUVVFIGlvY3RsIGFyZ3VtZW50IHR5cGUuCj4gKyAq IHN0cnVjdCBkcm1fdW5pcXVlIC0gRFJNX0lPQ1RMX0dFVF9VTklRVUUgSU9DVEwgYXJndW1lbnQg dHlwZQo+ICsgKiBAdW5pcXVlX2xlbjogbGVuZ3RoIG9mIHVuaXF1ZSBuYW1lIGZvciBkcml2ZXIg aW5zdGFudGlhdGlvbgo+ICsgKiBAdW5pcXVlOiB1bmlxdWUgbmFtZSBmb3IgZHJpdmVyIGluc3Rh bnRpYXRpb24KPiAgICoKPiAtICogXHNhIGRybUdldEJ1c2lkKCkgYW5kIGRybVNldEJ1c0lkKCku Cj4gKyAqIFRoZSBAdW5pcXVlIGZpZWxkIG11c3QgcG9pbnQgdG8gYSBidWZmZXIgYWxsb2NhdGVk IGJ5IHRoZSB1c2Vyc3BhY2UKPiArICogYXBwbGljYXRpb24uIElmIHRoZSBAdW5pcXVlX2xlbiBm aWVsZCBpcyBsZXNzIHRoYW4gdGhlIGFjdHVhbCBzaXplIG9mIHRoZQo+ICsgKiB1bmlxdWUgbmFt ZSBvZiB0aGUgZGV2aWNlLCB0aGUga2VybmVsIHdpbGwgbm90IGZpbGwgdGhlIEB1bmlxdWUgZmll bGQgYnV0Cj4gKyAqIHJldHVybiB0aGUgYWN0dWFsIHNpemUgaW4gQHVuaXF1ZV9sZW4gaW5zdGVh ZC4gVXNlcnNwYWNlIGFwcGxpY2F0aW9ucwo+ICsgKiB3aWxsIHR5cGljYWxseSBwZXJmb3JtIHRo ZSBJT0NUTCBvbmNlIHdpdGggQHVuaXF1ZV9sZW4gYW5kIEB1bmlxdWUgc2V0IHRvCj4gKyAqIDAg YW5kIE5VTEwsIHJlc3BlY3RpdmVseSwgYWxsb2NhdGUgYSBidWZmZXIgdXNpbmcgdGhlIHJldHVy bmVkIGxlbmd0aCBhbmQKPiArICogcGVyZm9ybSB0aGUgSU9DVEwgYWdhaW4gd2l0aCB0aGUgcHJv cGVybHkgc2l6ZWQgYnVmZmVyLgo+ICAgKi8KPiAgc3RydWN0IGRybV91bmlxdWUgewo+ICAJc2l6 ZV90IHVuaXF1ZV9sZW47CSAgLyoqPCBMZW5ndGggb2YgdW5pcXVlICovCj4gQEAgLTU3Myw3ICs1 OTUsMTEgQEAgc3RydWN0IGRybV9zY2F0dGVyX2dhdGhlciB7Cj4gIH07Cj4gIAo+ICAvKioKPiAt ICogRFJNX0lPQ1RMX1NFVF9WRVJTSU9OIGlvY3RsIGFyZ3VtZW50IHR5cGUuCj4gKyAqIHN0cnVj dCBkcm1fc2V0X3ZlcnNpb24gLSBEUk1fSU9DVExfU0VUX1ZFUlNJT04gSU9DVEwgYXJndW1lbnQg dHlwZQo+ICsgKiBAZHJtX2RpX21ham9yOiBEUk0gaW50ZXJmYWNlIG1ham9yIHZlcnNpb24KPiAr ICogQGRybV9kaV9taW5vcjogRFJNIGludGVyZmFjZSBtaW5vciB2ZXJzaW9uCj4gKyAqIEBkcm1f ZGRfbWFqb3I6IERSTSBkcml2ZXIgbWFqb3IgdmVyc2lvbgo+ICsgKiBAZHJtX2RkX21pbm9yOiBE Uk0gZHJpdmVyIG1pbm9yIHZlcnNpb24KPiAgICovCj4gIHN0cnVjdCBkcm1fc2V0X3ZlcnNpb24g ewo+ICAJaW50IGRybV9kaV9tYWpvcjsKPiBAQCAtNTgyLDE0ICs2MDgsMjEgQEAgc3RydWN0IGRy bV9zZXRfdmVyc2lvbiB7Cj4gIAlpbnQgZHJtX2RkX21pbm9yOwo+ICB9Owo+ICAKPiAtLyoqIERS TV9JT0NUTF9HRU1fQ0xPU0UgaW9jdGwgYXJndW1lbnQgdHlwZSAqLwo+ICsvKioKPiArICogc3Ry dWN0IGRybV9nZW1fY2xvc2UgLSBEUk1fSU9DVExfR0VNX0NMT1NFIElPQ1RMIGFyZ3VtZW50IHR5 cGUKPiArICogQGhhbmRsZTogaGFuZGxlIG9mIG9iamVjdCB0byBjbG9zZQo+ICsgKiBAcGFkOiBw YWRkaW5nIGZvciA2NC1iaXQgYWxpZ25tZW50Cj4gKyAqLwo+ICBzdHJ1Y3QgZHJtX2dlbV9jbG9z ZSB7Cj4gLQkvKiogSGFuZGxlIG9mIHRoZSBvYmplY3QgdG8gYmUgY2xvc2VkLiAqLwo+ICAJX191 MzIgaGFuZGxlOwo+ICAJX191MzIgcGFkOwo+ICB9Owo+ICAKPiAtLyoqIERSTV9JT0NUTF9HRU1f RkxJTksgaW9jdGwgYXJndW1lbnQgdHlwZSAqLwo+ICsvKioKPiArICogc3RydWN0IGRybV9nZW1f ZmxpbmsgLSBEUk1fSU9DVExfR0VNX0ZMSU5LIElPQ1RMIGFyZ3VtZW50IHR5cGUKPiArICogQGhh bmRsZTogaGFuZGxlIG9mIG9iamVjdCB0byBleHBvcnQKPiArICogQG5hbWU6IHJldHVybmVkIG9i amVjdCBuYW1lCj4gKyAqLwo+ICBzdHJ1Y3QgZHJtX2dlbV9mbGluayB7Cj4gIAkvKiogSGFuZGxl IGZvciB0aGUgb2JqZWN0IGJlaW5nIG5hbWVkICovCj4gIAlfX3UzMiBoYW5kbGU7Cj4gQEAgLTU5 OCwxNSArNjMxLDE1IEBAIHN0cnVjdCBkcm1fZ2VtX2ZsaW5rIHsKPiAgCV9fdTMyIG5hbWU7Cj4g IH07Cj4gIAo+IC0vKiogRFJNX0lPQ1RMX0dFTV9PUEVOIGlvY3RsIGFyZ3VtZW50IHR5cGUgKi8K PiArLyoqCj4gKyAqIHN0cnVjdCBkcm1fZ2VtX29wZW4gLSBEUk1fSU9DVExfR0VNX09QRU4gSU9D VEwgYXJndW1lbnQgdHlwZQo+ICsgKiBAbmFtZTogbmFtZSBvZiB0aGUgb2JqZWN0IGJlaW5nIG9w ZW5lZAo+ICsgKiBAaGFuZGxlOiByZXR1cm5lZCBvYmplY3QgaGFuZGxlCj4gKyAqIEBzaXplOiBy ZXR1cm5lZCBvYmplY3Qgc2l6ZQo+ICsgKi8KPiAgc3RydWN0IGRybV9nZW1fb3BlbiB7Cj4gLQkv KiogTmFtZSBvZiBvYmplY3QgYmVpbmcgb3BlbmVkICovCj4gIAlfX3UzMiBuYW1lOwo+IC0KPiAt CS8qKiBSZXR1cm5lZCBoYW5kbGUgZm9yIHRoZSBvYmplY3QgKi8KPiAgCV9fdTMyIGhhbmRsZTsK PiAtCj4gLQkvKiogUmV0dXJuZWQgc2l6ZSBvZiB0aGUgb2JqZWN0ICovCj4gIAlfX3U2NCBzaXpl Owo+ICB9Owo+ICAKPiBAQCAtNjMxLDcgKzY2NCwxMSBAQCBzdHJ1Y3QgZHJtX2dlbV9vcGVuIHsK PiAgI2RlZmluZSBEUk1fQ0FQX0NVUlNPUl9XSURUSAkJMHg4Cj4gICNkZWZpbmUgRFJNX0NBUF9D VVJTT1JfSEVJR0hUCQkweDkKPiAgCj4gLS8qKiBEUk1fSU9DVExfR0VUX0NBUCBpb2N0bCBhcmd1 bWVudCB0eXBlICovCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZHJtX2dldF9jYXAgLSBEUk1fSU9DVExf R0VUX0NBUCBJT0NUTCBhcmd1bWVudCB0eXBlCj4gKyAqIEBjYXBhYmlsaXR5OiBkZXZpY2UvZHJp dmVyIGNhcGFiaWxpdHkgdG8gcXVlcnkKPiArICogQHZhbHVlOiByZXR1cm4gbG9jYXRpb24gZm9y IHRoZSB2YWx1ZQo+ICsgKi8KPiAgc3RydWN0IGRybV9nZXRfY2FwIHsKPiAgCV9fdTY0IGNhcGFi aWxpdHk7Cj4gIAlfX3U2NCB2YWx1ZTsKPiBAQCAtNjU0LDIwICs2OTEsMzYgQEAgc3RydWN0IGRy bV9nZXRfY2FwIHsKPiAgICovCj4gICNkZWZpbmUgRFJNX0NMSUVOVF9DQVBfVU5JVkVSU0FMX1BM QU5FUyAgMgo+ICAKPiAtLyoqIERSTV9JT0NUTF9TRVRfQ0xJRU5UX0NBUCBpb2N0bCBhcmd1bWVu dCB0eXBlICovCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZHJtX3NldF9jbGllbnRfY2FwIC0gRFJNX0lP Q1RMX1NFVF9DTElFTlRfQ0FQIElPQ1RMIGFyZ3VtZW50IHR5cGUKPiArICogQGNhcGFiaWxpdHk6 IGNsaWVudCBjYXBhYmlsaXR5Cj4gKyAqIEB2YWx1ZTogY2FwYWJpbGl0eSB2YWx1ZQo+ICsgKi8K PiAgc3RydWN0IGRybV9zZXRfY2xpZW50X2NhcCB7Cj4gIAlfX3U2NCBjYXBhYmlsaXR5Owo+ICAJ X191NjQgdmFsdWU7Cj4gIH07Cj4gIAo+ICAjZGVmaW5lIERSTV9DTE9FWEVDIE9fQ0xPRVhFQwo+ ICsKPiArLyoqCj4gKyAqIHN0cnVjdCBkcm1fcHJpbWVfaGFuZGxlIC0gRFJNX0lPQ1RMX1BSSU1F XyogSU9DVEwgYXJndW1lbnQgdHlwZQo+ICsgKiBAaGFuZGxlOiBidWZmZXIgb2JqZWN0IGhhbmRs ZQo+ICsgKiBAZmxhZ3M6IGV4cG9ydCBmbGFncyAob25seSBhcHBsaWNhYmxlIGZvciBEUk1fSU9D VExfUFJJTUVfSEFORExFX1RPX0ZEKQo+ICsgKiBAZmQ6IERNQS1CVUYgZmlsZSBkZXNjcmlwdG9y Cj4gKyAqCj4gKyAqIEZvciBEUk1fSU9DVExfUFJJTUVfSEFORExFX1RPX0ZEIChleHBvcnQpIHRo ZSBAaGFuZGxlIGlzIHBhc3NlZCBpbiBhbG9uZwo+ICsgKiB3aXRoIGEgc2V0IG9mIEBmbGFncyAo b25seSBEUk1fQ0xPRVhFQyBpcyBjdXJyZW50bHkgdmFsaWQpLiBVcG9uIHJldHVybiB0aGUKPiAr ICogQGZkIGZpZWxkIGNvbnRhaW5zIGEgZmlsZSBkZXNjcmlwdG9yIHRoYXQgY2FuIGJlIHVzZWQg dG8gaW1wb3J0IHRoZSBidWZmZXIKPiArICogaW50byBhbm90aGVyIGRyaXZlci4KPiArICoKPiAr ICogRm9yIERSTV9JT0NUTF9QUklNRV9GRF9UT19IQU5ETEUgKGltcG9ydCkgdGhlIGZpbGUgZGVz Y3JpcHRvciBjb3JyZXNwb25kaW5nCj4gKyAqIHRvIHRoZSBidWZmZXIgdGhhdCBpcyB0byBiZSBp bXBvcnRlZCBpcyBzcGVjaWZpZWQgaW4gQGZkLiBVcG9uIHJldHVybiB0aGUKPiArICogQGhhbmRs ZSBmaWVsZCBjb250YWlucyBhIGRldmljZS1sb2NhbCBoYW5kbGUgdG8gdGhlIGltcG9ydGVkIGJ1 ZmZlciBvYmplY3QuCj4gKyAqLwo+ICBzdHJ1Y3QgZHJtX3ByaW1lX2hhbmRsZSB7Cj4gIAlfX3Uz MiBoYW5kbGU7Cj4gLQo+IC0JLyoqIEZsYWdzLi4gb25seSBhcHBsaWNhYmxlIGZvciBoYW5kbGUt PmZkICovCj4gIAlfX3UzMiBmbGFnczsKPiAtCj4gLQkvKiogUmV0dXJuZWQgZG1hYnVmIGZpbGUg ZGVzY3JpcHRvciAqLwo+ICAJX19zMzIgZmQ7Cj4gIH07Cj4gIAo+IC0tIAo+IDIuMS4zCj4gCgot LSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KKzQx ICgwKSA3OSAzNjUgNTcgNDggLSBodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=