From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v8] This is ABI for the two halves of a Para-virtual sound driver to communicate with each to other. Date: Fri, 11 Nov 2016 16:24:14 -0500 Message-ID: <20161111212414.GB2304@char.us.oracle.com> References: <1478292693-4107-1-git-send-email-andr2000@gmail.com> <1478292693-4107-2-git-send-email-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1478292693-4107-2-git-send-email-andr2000@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: "Andrushchenko, Oleksandr" Cc: lars.kurth@citrix.com, iurii.konovalenko@globallogic.com, xen-devel@lists.xensource.com, ian.campbell@citrix.com, vlad.babchuk@gmail.com, ian.jackson@eu.citrix.com, oleksandr.dmytryshyn@globallogic.com, tim@xen.org, andrii.anisov@gmail.com, olekstysh@gmail.com, embedded-pv-devel@lists.xenproject.org, al1img@gmail.com, jbeulich@suse.com, keir.fraser@citrix.com, dario.faggioli@citrix.com, joculator@gmail.com List-Id: xen-devel@lists.xenproject.org T24gRnJpLCBOb3YgMDQsIDIwMTYgYXQgMTA6NTE6MzNQTSArMDIwMCwgQW5kcnVzaGNoZW5rbywg T2xla3NhbmRyIHdyb3RlOgo+IFNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBEbXl0cnlzaHluIDxv bGVrc2FuZHIuZG15dHJ5c2h5bkBnbG9iYWxsb2dpYy5jb20+Cj4gU2lnbmVkLW9mZi1ieTogSXVy aWkgS29ub3ZhbGVua28gPGl1cmlpLmtvbm92YWxlbmtvQGdsb2JhbGxvZ2ljLmNvbT4KPiBTaWdu ZWQtb2ZmLWJ5OiBBbmRydXNoY2hlbmtvLCBPbGVrc2FuZHIgPGFuZHIyMDAwQGdtYWlsLmNvbT4K PiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgR3J5dHNvdiA8YWwxaW1nQGdtYWlsLmNvbT4KPiAt LS0KPiBDaGFuZ2VzIHNpbmNlIHYxOgo+ICAqIHJlbW92ZWQgX19hdHRyaWJ1dGVfXygoX19wYWNr ZWRfXykpIGZyb20gYWxsIHN0cnVjdHVyZXMgZGVmaW5pdGlvbnMKPiAKPiBDaGFuZ2VzIHNpbmNl IHYyOgo+ICAqIHJlbW92ZWQgYWxsIEMgc3RydWN0dXJlcwo+ICAqIGFkZGVkIHByb3RvY29sIGRl c2NyaXB0aW9uIGJldHdlZW4gZnJvbnRlbmQgYW5kIGJhY2tlbmQgZHJpdmVycwo+IAo+IENoYW5n ZXMgc2luY2UgdjM6Cj4gICogZml4ZWQgc29tZSB0eXBvcwo+ICAqIHJlbmFtZWQgWEVOU05EX1BD TV9GT1JNQVRfRkxPQVRfKiogdG8gWEVOU05EX1BDTV9GT1JNQVRfRjMyXyoqCj4gICogcmVuYW1l ZCBYRU5TTkRfUENNX0ZPUk1BVF9GTE9BVDY0XyoqIHRvIFhFTlNORF9QQ01fRk9STUFUX0Y2NF8q Kgo+ICAqIGFkZGVkICdpZCcgZmllbGQgdG8gdGhlIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHBhY2tl dHMKPiAgKiByZW5hbWVkICdzdHJlYW1faWQnIHRvICdzdHJlYW0nIGluIHRoZSBwYWNrZXRzIGRl c2NyaXB0aW9uCj4gICogcmVuYW1lZCAncGNtX2RhdGFfcmF0ZScgdG8gJ3BjbV9yYXRlJyBpbiB0 aGUgcGFja2V0cyBkZXNjcmlwdGlvbgo+ICAqIHJlbmFtZWQgJ3BjbV9zdHJlYW1fdHlwZScgdG8g J3BjbV90eXBlJyBpbiB0aGUgcGFja2V0cyBkZXNjcmlwdGlvbgo+ICAqIHJlbW92ZWQgJ3N0cmVh bV9pZCcgZmllbGQgZnJvbSB0aGUgcmVzcG9uc2UgcGFja2V0cwo+IAo+IENoYW5nZXMgc2luY2Ug djQ6Cj4gICogcmVuYW1lZCAnc3RyZWFtX2lkJyBiYWNrIHRvIHRoZSB0byAnc3RyZWFtJyBpbiB0 aGUgcGFja2V0cyBkZXNjcmlwdGlvbgo+ICAqIG1vdmVkICdpZCcgZmllbGQgdG8gdGhlIHVwcGVy IHBvc2l0aW9uIGluIHRoZSByZXNwb25zZSBwYWNrZXRzCj4gCj4gQ2hhbmdlcyBzaW5jZSB2NToK PiAgKiBTbGlnaHRseSByZXdvcmtlZCByZXF1ZXN0L3Jlc3BvbnNlIHBhY2tldHMKPiAgKiBTaXpl IG9mIHRoZSByZXF1ZXN0L3Jlc3BvbnNlIHBhY2tldCBpcyBjaGFuZ2VkIHRvIHRoZSA2NCBieXRl cwo+ICAqIE5vdyBwYXJhbWV0ZXJzIGZvciB0aGUgWEVOU05EX09QX1NFVF9WT0xVTUUvWEVOU05E X09QX0dFVF9WT0xVTUUgYXJlCj4gICAgcGFzc2VkIHZpYSBzaGFyZWQgcGFnZQo+ICAqIEFkZGVk IHBhcmFtZXRlcnMgZm9yIHRoZSBYZW5CdXMgbm9kZXMgKG5vdyBlYWNoIHN0cmVhbSBjYW4gYmUg bWFwcGVkCj4gICAgdG8gdGhlIGRlZmluZWQgc291bmQgZGV2aWNlIGluIHRoZSBiYWNrZW5kIHVz aW5nIHRob3NlIHBhcmFtZXRlcnMpCj4gICogQWRkZWQgWGVuQnVzIHN0YXRlIGRpYWdyYW1zIGRl c2NyaXB0aW9uCj4gCj4gQ2hhbmdlcyBzaW5jZSB2NjoKPiAgKiBSZXdvcmtlZCBzdHJlYW1zIGRl c2NyaXB0aW9uICBpbiB0aGUgQmFja2VuZCBYZW5CdXMgTm9kZXMKPiAKPiBDaGFuZ2VzIHNpbmNl IHY3Ogo+ICAqIHJlLXdvcmtlZCBiYWNrZW5kIGRldmljZSBwYXJhbWV0ZXJzIHRvIGJlIG1vcmUg Z2VuZXJpYyBhbmQgZmxleGlibGUKPiAgKiBleHRlbmRlZCBmcm9udGVuZCBkZXZpY2UgcGFyYW1l dGVycwo+ICAqIHNsaWdodGx5IHVwZGF0ZWQgc3RhdGUgbWFjaGluZSBkZXNjcmlwdGlvbiBhZGRl ZCBtdXRlL3VubXV0ZSBjb21tYW5kcwo+ICAqIGFkZGVkIGNvbnN0YW50cyBmb3IgWGVuU3RvcmUg Y29uZmlndXJhdGlvbiBzdHJpbmdzCj4gICAgKGZpZWxkcywgUENNIGZvcm1hdHMgZXRjLikKPiAg KiBjaGFuZ2VkIHJlcXVlc3QvcmVzcG9uc2Ugc3RydWN0dXJlIHNpemUgZnJvbSA2NCBvY3RldHMg dG8gMTYKPiAgKiBpbnRyb2R1Y2VkIGR5bmFtaWMgYnVmZmVyIGFsbG9jYXRpb24gaW5zdGVhZCBv Zgo+ICAgIHN0YXRpYyBYRU5TTkRfTUFYX1BBR0VTX1BFUl9SRVFVRVNUCj4gICogcmUtd29ya2Vk IG9wZW4gcmVxdWVzdCB0byBhbGxvdyBkeW5hbWljIGJ1ZmZlciBhbGxvY2F0aW9uCj4gICogcmUt d29ya2VkIHJlYWQvd3JpdGUvdm9sdW1lIHJlcXVlc3RzLCBzbyB0aGV5IGRvbid0IHBhc3MgZ3Jl ZnM6Cj4gICAgYnVmZmVyIGZyb20gdGhlIG9wZW4gcmVxdWVzdCBpcyB1c2VkIGZvciB0aGVzZSBv cGVyYXRpb25zIHRvIHBhc3MgZGF0YQo+ICAqIHNwZWNpZmllZCB0eXBlIG9mIHRoZSB2b2x1bWUg dmFsdWUgdG8gYmUgYSBzaWduZWQgdmFsdWUgaW4gc3RlcHMKPiAgICBvZiAwLjAwMSBkQm0sIHdo aWxlIDAgYmVpbmcgMGRCbS4KPiAgKiBhZGRlZCBMaW51eCBpbmNsdWRlIGZpbGUgd2l0aCBzdHJ1 Y3R1cmUgZGVmaW5pdGlvbnMKPiAtLS0KPiAtLS0KPiAgeGVuL2luY2x1ZGUvcHVibGljL2lvL3Nu ZGlmLmggICAgICAgfCA1ODMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4g IHhlbi9pbmNsdWRlL3B1YmxpYy9pby9zbmRpZl9saW51eC5oIHwgMTE0ICsrKysrKysKPiAgMiBm aWxlcyBjaGFuZ2VkLCA2OTcgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVu L2luY2x1ZGUvcHVibGljL2lvL3NuZGlmLmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNs dWRlL3B1YmxpYy9pby9zbmRpZl9saW51eC5oCj4gCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L3B1YmxpYy9pby9zbmRpZi5oIGIveGVuL2luY2x1ZGUvcHVibGljL2lvL3NuZGlmLmgKPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLmRmNzA1YTYKPiAtLS0gL2Rldi9udWxs Cj4gKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2lvL3NuZGlmLmgKPiBAQCAtMCwwICsxLDU4MyBA QAo+ICsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqIHNuZGlmLmgKPiArICoKPiArICogVW5p ZmllZCBzb3VuZC1kZXZpY2UgSS9PIGludGVyZmFjZSBmb3IgWGVuIGd1ZXN0IE9TZXMuCj4gKyAq Cj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh bnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKPiArICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNz b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCj4gKyAqIGRl YWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0 IGxpbWl0YXRpb24gdGhlCj4gKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgo+ICsgKiBzZWxsIGNvcGll cyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0 d2FyZSBpcwo+ICsgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu ZyBjb25kaXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg dGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+ICsgKiBhbGwgY29w aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPiArICoKPiArICog VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z IEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF RCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNI QUxMIFRIRQo+ICsgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig QU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB TiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZS T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IgT1RIRVIKPiArICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKiBDb3B5 cmlnaHQgKEMpIDIwMTMtMjAxNSBHbG9iYWxMb2dpYyBJbmMuCj4gKyAqIENvcHlyaWdodCAoQykg MjAxNiBFUEFNIFN5c3RlbXMgSW5jLgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX19YRU5fUFVCTElD X0lPX1hFTlNORF9IX18KPiArI2RlZmluZSBfX1hFTl9QVUJMSUNfSU9fWEVOU05EX0hfXwo+ICsK PiArLyoKPiArICogRnJvbnQtPmJhY2sgbm90aWZpY2F0aW9uczogV2hlbiBlbnF1ZXVpbmcgYSBu ZXcgcmVxdWVzdCwgc2VuZGluZyBhCj4gKyAqIG5vdGlmaWNhdGlvbiBjYW4gYmUgbWFkZSBjb25k aXRpb25hbCBvbiByZXFfZXZlbnQgKGkuZS4sIHRoZSBnZW5lcmljCj4gKyAqIGhvbGQtb2ZmIG1l Y2hhbmlzbSBwcm92aWRlZCBieSB0aGUgcmluZyBtYWNyb3MpLiBCYWNrZW5kcyBtdXN0IHNldAo+ ICsgKiByZXFfZXZlbnQgYXBwcm9wcmlhdGVseSAoZS5nLiwgdXNpbmcgUklOR19GSU5BTF9DSEVD S19GT1JfUkVRVUVTVFMoKSkuCj4gKyAqCj4gKyAqIEJhY2stPmZyb250IG5vdGlmaWNhdGlvbnM6 IFdoZW4gZW5xdWV1aW5nIGEgbmV3IHJlc3BvbnNlLCBzZW5kaW5nIGEKPiArICogbm90aWZpY2F0 aW9uIGNhbiBiZSBtYWRlIGNvbmRpdGlvbmFsIG9uIHJzcF9ldmVudCAoaS5lLiwgdGhlIGdlbmVy aWMKPiArICogaG9sZC1vZmYgbWVjaGFuaXNtIHByb3ZpZGVkIGJ5IHRoZSByaW5nIG1hY3Jvcyku IEZyb250ZW5kcyBtdXN0IHNldAo+ICsgKiByc3BfZXZlbnQgYXBwcm9wcmlhdGVseSAoZS5nLiwg dXNpbmcgUklOR19GSU5BTF9DSEVDS19GT1JfUkVTUE9OU0VTKCkpLgo+ICsgKi8KPiArCj4gKy8q Cj4gKyAqIEZlYXR1cmUgYW5kIFBhcmFtZXRlciBOZWdvdGlhdGlvbgo+ICsgKiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KPiArICogVGhlIHR3byBoYWx2ZXMgb2YgYSBQYXJhLXZp cnR1YWwgc291bmQgY2FyZCBkcml2ZXIgdXRpbGl6ZSBub2RlcyB3aXRoaW4gdGhlCj4gKyAqIFhl blN0b3JlIHRvIGNvbW11bmljYXRlIGNhcGFiaWxpdGllcyBhbmQgdG8gbmVnb3RpYXRlIG9wZXJh dGluZyBwYXJhbWV0ZXJzLgo+ICsgKiBUaGlzIHNlY3Rpb24gZW51bWVyYXRlcyB0aGVzZSBub2Rl cyB3aGljaCByZXNpZGUgaW4gdGhlIHJlc3BlY3RpdmUgZnJvbnQgYW5kCj4gKyAqIGJhY2tlbmQg cG9ydGlvbnMgb2YgdGhlIFhlblN0b3JlLCBmb2xsb3dpbmcgdGhlIFhlbkJ1cyBjb252ZW50aW9u Lgo+ICsgKgo+ICsgKiBBbGwgZGF0YSBpbiB0aGUgWGVuU3RvcmUgaXMgc3RvcmVkIGFzIHN0cmlu Z3MuICBOb2RlcyBzcGVjaWZ5aW5nIG51bWVyaWMKPiArICogdmFsdWVzIGFyZSBlbmNvZGVkIGlu IGRlY2ltYWwuICBJbnRlZ2VyIHZhbHVlIHJhbmdlcyBsaXN0ZWQgYmVsb3cgYXJlCj4gKyAqIGV4 cHJlc3NlZCBhcyBmaXhlZCBzaXplZCBpbnRlZ2VyIHR5cGVzIGNhcGFibGUgb2Ygc3RvcmluZyB0 aGUgY29udmVyc2lvbgo+ICsgKiBvZiBhIHByb3Blcmx5IGZvcm1hdGVkIG5vZGUgc3RyaW5nLCB3 aXRob3V0IGxvc3Mgb2YgaW5mb3JtYXRpb24uCj4gKyAqCj4gKyAqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Kgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrZW5kIFhlbkJ1cyBOb2Rlcwo+ ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKPiArICoKPiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSBBZGRyZXNzaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ ICsgKgo+ICsgKiBJbmRpY2VzIHVzZWQgdG8gYWRkcmVzcyBmcm9udGVuZHMsIGRyaXZlciBpbnN0 YW5jZXMsIGNhcmRzLAo+ICsgKiBkZXZpY2VzIGFuZCBzdHJlYW1zLgo+ICsgKgo+ICsgKiBmcm9u dGVuZC1pZAo+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludD4KPiArICoKPiArICogICAg ICBEb21haW4gSUQgb2YgdGhlIHNvdW5kIGZyb250ZW5kLgo+ICsgKgo+ICsgKiBkcnZfaWR4CgpI b3cgY29tZSB5b3UgdXNlIF8gaGVyZSBidXQgZnJvbnRlbmQtaWQgaGFzIGFuICctJz8gRG8geW91 IHdhbnQgdG8ga2VlcAp0aGVtIGFsbCB0aGUgc2FtZT8KCj4gKyAqICAgICAgVmFsdWVzOiAgICAg ICAgIDx1aW50Pgo+ICsgKgo+ICsgKiAgICAgIFplcm8gYmFzZWQgaW5kZXggb2YgdGhlIHZpcnR1 YWxpemVkIHNvdW5kIGRyaXZlciBpbnN0YW5jZSBpbiB0aGlzIGRvbWFpbi4KPiArICogICAgICBN dWx0aXBsZSBQViBkcml2ZXJzIGFyZSBhbGxvd2VkIGluIHRoZSBkb21haW4gYXQgdGhlIHNhbWUg dGltZS4KCkkgdGhpbmsgdGhhdCBpcyBnaXZlbi4gWW91IGNhbiBoYXZlIG11bHRpcGxlIE5JQ3Mg Zm9yIGV4YW1wbGUuIEkgd291ZGwKcmVtb3ZlIHRoYXQgc2VudGVuY2UuCj4gKyAqCj4gKyAqIGNh cmRfaWR4Cj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50Pgo+ICsgKgo+ICsgKiAgICAg IFplcm8gYmFzZWQgaW5kZXggb2YgdGhlIGNhcmQgd2l0aGluIHRoZSBkcml2ZXIuCgoKQ2FuIGl0 IGJlIGRpc2NvbnRpbmdvdXM/IEFrYTogMCwgMSwgMiwgNSA/Cgo+ICsgKgo+ICsgKiBkZXZfaWQK PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+Cj4gKyAqCj4gKyAqICAgICAgVW5pcXVl ICh3aXRoaW4gZ2l2ZW4gY2FyZCBpbnN0YW5jZSkgZGV2aWNlIElELgo+ICsgKiAgICAgIERvZXNu J3QgaGF2ZSB0byBiZSB6ZXJvIGJhc2VkIGFuZC9vciBiZSBjb250aWd1b3VzLgoKT2gsIHNvIHRo ZXkgY2FyZF9pZHggYW5kIGRydl9pZHggTVVTVCBiZSBjb250aW5nb3VzPyBZb3UgbWF5IHdhbnQK dG8gc2F5IHRoYXQgaW4gZGV0YWlsLgoKPiArICoKPiArICogc3RyZWFtX2lkeAo+ICsgKiAgICAg IFZhbHVlczogICAgICAgICA8dWludD4KPiArICoKPiArICogICAgICBaZXJvIGJhc2VkIGluZGV4 IG9mIHRoZSBzdHJlYW0gb2YgdGhlIGRldmljZS4KCkNhbiBpdCBiZSBjb250aW5nb3VzIG9yIGRp c2NvdW50aW5nb3VzPwoKPiArICoKPiArICogRXhhbXBsZSBmb3IgdGhlIGZyb250ZW5kIHJ1bm5p bmcgaW4gZG9tYWluIDUsIGluc3RhbmNlIG9mIHRoZSBkcml2ZXIKPiArICogaW4gdGhlIGZyb250 IGlzIDAgKHNpbmdsZSBvciBmaXJzdCBQViBkcml2ZXIpLCBzb3VuZCBjYXJkIDAsIGRldmljZSBp ZCAyLAo+ICsgKiBmaXJzdCBzdHJlYW0gKDApOgo+ICsgKiAvbG9jYWwvZG9tYWluLzxmcm9udGVu ZC1pZD4vZGV2aWNlL3ZzbmQvPGRydl9pZHg+L2NhcmQvPGNhcmRfaWR4Pi8KPiArICogCWRldmlj ZS88ZGV2X2lkPi9zdHJlYW0vPHN0cmVhbV9pZHg+L3R5cGUgPSAicCIKPiArICogL2xvY2FsL2Rv bWFpbi81L2RldmljZS92c25kLzAvY2FyZC8wL2RldmljZS8yL3N0cmVhbS8wL3R5cGUgPSAicCIK CkFoIHBlcmZlY3QhCgo+ICsgKgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g UENNIHNldHRpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAq IEV2ZXJ5IHZpcnR1YWxpemVkIHNvdW5kIGZyb250ZW5kIGhhcyBzZXQgb2YgY2FyZHMsIGRldmlj ZXMgYW5kIHN0cmVhbXMsIGVhY2gKPiArICogaXMgaW5kaXZpZHVhbGx5IGNvbmZpZ3VyZWQuIFBh cnQgb2YgdGhlIFBDTSBjb25maWd1cmF0aW9uIGNhbiBiZSBkZWZpbmVkIGF0Cj4gKyAqIGhpZ2hl ciBsZXZlbCBhbmQgYmUgZnVsbHkgb3IgcGFydGlhbGx5IHJlLXVzZWQgYnkgdGhlIHVuZGVybHlp bmcgbGF5ZXJzLgo+ICsgKiBUaGVzZSBjb25maWd1cmF0aW9uIHZhbHVlcyBhcmU6Cj4gKyAqICBv IG51bWJlciBvZiBjaGFubmVscyAobWluL21heCkKPiArICogIG8gc3VwcG9ydGVkIHNhbXBsZSBy YXRlcwo+ICsgKiAgbyBzdXBwb3J0ZWQgc2FtcGxlIGZvcm1hdHMuCj4gKyAqIEUuZy4gb25lIGNh biBkZWZpbmUgdGhlc2UgdmFsdWVzIGZvciB0aGUgd2hvbGUgY2FyZCwgd2hvbGUgZGV2aWNlIG9y IHN0cmVhbS4KPiArICogRXZlcnkgdW5kZXJseWluZyBsYXllciBpbiB0dXJuIGNhbiByZS1kZWZp bmUgc29tZSBvciBhbGwgb2YgdGhlbSB0byBiZXR0ZXIKPiArICogZml0IGl0cyBuZWVkcy4gRm9y IGV4YW1wbGUsIGNhcmQgbWF5IGRlZmluZSBudW1iZXIgb2YgY2hhbm5lbHMgdG8gYmUKPiArICog aW4gWzE7IDhdIHJhbmdlLCBhbmQgc29tZSBwYXJ0aWN1bGFyIHN0cmVhbSBtYXkgYmUgbGltaXRl ZCB0byBbMTsgMl0gb25seS4KPiArICogVGhlIHJ1bGUgaXMgdGhhdCB0aGUgdW5kZXJseWluZyBs YXllciBtdXN0IGJlIGEgc3Vic2V0IG9mIHRoZSB1cHBlciBsYXllcgo+ICsgKiByYW5nZS4KPiAr ICoKPiArICogY2hhbm5lbHMtbWluCj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxzdHJpbmcg cmVwcmVzZW50aW5nIGEgcG9zaXRpdmUgaW50ZWdlcj4KPiArICoKPiArICogICAgICBUaGUgbWlu aW11bSBhbW91bnQgb2YgY2hhbm5lbHMgdGhhdCBpcyBzdXBwb3J0ZWQuCj4gKyAqICAgICAgTXVz dCBiZSBhdCBsZWFzdCAxLiBJZiBub3QgZGVmaW5lZCB0aGVuIHVzZSBmcm9udGVuZCdzIGRlZmF1 bHQuCgpJIGRvbid0IHNlZSB0aGUgZnJvbnRlbmQncyBkZWZhdWx0IGxhdGVyIGluIHRoZSBkb2M/ Cj4gKyAqCj4gKyAqIGNoYW5uZWxzLW1heAo+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8c3Ry aW5nIHJlcHJlc2VudGluZyBhIHBvc2l0aXZlIGludGVnZXI+Cj4gKyAqCj4gKyAqICAgICAgVGhl IG1heGltdW0gYW1vdW50IG9mIGNoYW5uZWxzIHRoYXQgaXMgc3VwcG9ydGVkLgo+ICsgKiAgICAg IE11c3QgYmUgYXQgbGVhc3QgPGNoYW5uZWxzLW1pbj4uIElmIG5vdCBkZWZpbmVkIHRoZW4gdXNl IGZyb250ZW5kJ3MKPiArICogICAgICBkZWZhdWx0LgoKQWdhaW4sIG5vdCBzZWVpbmcgdGhlIGZy b250ZW5kJ3MgZGVmYXVsdD8gUGVyaGFwcyBoYXZlOgoKIlNlZSBYWVoiCj4gKyAqCj4gKyAqIHNh bXBsZS1yYXRlcwo+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8bGlzdCBvZiB1aW50cz4KPiAr ICoKPiArICogICAgICBMaXN0IG9mIHN1cHBvcnRlZCBzYW1wbGUgcmF0ZXMgc2VwYXJhdGVkIGJ5 IFhFTlNORF9MSVNUX1NFUEFSQVRPUi4KCkFueSBvcmRlcmluZyBydWxlcz8gT3IgY2FuIGl0IGJl IHJhbmRvbTogNDQxMDA7OTYwMDsweEZGRkZGCgpBbmQgZG9lcyBpdCBoYXZlIHRvIGJlIGRlY2lt YWwgb3IgY2FuIHlvdSB1c2UgaGV4IHZhbHVlcz8KCj4gKyAqICAgICAgSWYgbm90IGRlZmluZWQg dGhlbiB1c2UgZnJvbnRlbmQncyBkZWZhdWx0Lgo+ICsgKgo+ICsgKiBzYW1wbGUtZm9ybWF0cwo+ ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8bGlzdCBvZiBYRU5TTkRfUENNX0ZPUk1BVF9YWFhf U1RSPgo+ICsgKgo+ICsgKiAgICAgIExpc3Qgb2Ygc3VwcG9ydGVkIHNhbXBsZSBmb3JtYXRzIHNl cGFyYXRlZCBieSBYRU5TTkRfTElTVF9TRVBBUkFUT1IuCj4gKyAqICAgICAgSWYgbm90IGRlZmlu ZWQgdGhlbiB1c2UgZnJvbnRlbmQncyBkZWZhdWx0LgoKQW55IG9yZGVyaW5nIHZhbHVlcz8gQ2Fu IGl0IGJlOiAiczE2X2JlO3M4IiA/CgoKQW5kIHdoZXJlIGNhbiBJIGZpbmQgdGhlIGZyb250ZW5k J3MgZGVmYXVsdD8KPiArICoKPiArICogYnVmZmVyLXNpemUKPiArICogICAgICBWYWx1ZXM6ICAg ICAgICAgPHN0cmluZyByZXByZXNlbnRpbmcgYSBwb3NpdGl2ZSBpbnRlZ2VyPgo+ICsgKgo+ICsg KiAgICAgIFRoZSBtYXhpbXVtIHNpemUgaW4gb2N0ZXRzIG9mIHRoZSBidWZmZXIgdG8gYWxsb2Nh dGUgcGVyIHN0cmVhbS4KCldoZXJlIGlzIHRoZSBtYXhpbXVtIHN0cmVhbSB2YWx1ZSBkZWZpbmVk PwoKT3Igd291bGQgdGhhdCBiZSBjaGFubmVscy1tYXg/Cgo+ICsgKgo+ICsgKiBFeGFtcGxlIGNv bmZpZ3VyYXRpb246Cj4gKyAqCj4gKyAqIENhcmQgY29uZmlndXJhdGlvbiB1c2VkIGJ5IGFsbCBz dHJlYW1zOgo+ICsgKiAvbG9jYWwvZG9tYWluLzUvZGV2aWNlL3ZzbmQvMC9jYXJkLzAvc2FtcGxl LWZvcm1hdHMgPSAiczg7dTg7czE2X2xlO3MxNl9iZSIKPiArICogU3RyZWFtIG92ZXJyaWRlcyBz YW1wbGUgcmF0ZXMgc3VwcG9ydGVkOgoKTm90IHN1cmUgSSBmb2xsb3cgdGhhdCBzZW50ZW5jZS4K PiArICogL2xvY2FsL2RvbWFpbi81L2RldmljZS92c25kLzAvY2FyZC8xL2RldmljZS8yL3N0cmVh bS8wL3NhbXBsZS1yYXRlcyA9ICI4MDAwOzIyMDUwOzQ0MTAwOzQ4MDAwIgo+ICsgKgo+ICsgKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDYXJkIHNldHRpbmdzIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAqIHNob3J0LW5hbWUKPiArICogICAgICBWYWx1ZXM6ICAg ICAgICAgPGNoYXJbMzJdPgo+ICsgKgo+ICsgKiAgICAgIFNob3J0IG5hbWUgb2YgdGhlIGNhcmQu CgpIb3cgY29tZSBpdCBpcyBsaW1pdGVkIHRvIDMyIGJ5dGVzPwo+ICsgKgo+ICsgKiBsb25nLW5h bWUKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPGNoYXJbODBdPgo+ICsgKgo+ICsgKiAgICAg IExvbmcgbmFtZSBvZiB0aGUgY2FyZC4KCldoeSB0d28gbmFtZXM/CkNBbiBvbmUgb2YgdGhlbSBi ZSBza2lwcGVkIChzYXkgeW91IG9ubHkgd2FudCB0byB1c2UgJ3Nob3J0LW5hbWUnID8KCj4gKyAq Cj4gKyAqIEZvciBleGFtcGxlLAo+ICsgKiAvbG9jYWwvZG9tYWluLzUvZGV2aWNlL3ZzbmQvMC9j YXJkLzAvc2hvcnQtbmFtZSA9ICJWaXJ0dWFsIGF1ZGlvIgo+ICsgKiAvbG9jYWwvZG9tYWluLzUv ZGV2aWNlL3ZzbmQvMC9jYXJkLzAvbG9uZy1uYW1lID0gIlZpcnR1YWwgYXVkaW8gYXQgY2VudGVy IHN0YWNrIgo+ICsgKgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIERldmljZSBz ZXR0aW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgKiBuYW1lCj4gKyAq ICAgICAgVmFsdWVzOiAgICAgICAgIDxjaGFyWzgwXT4KPiArICoKPiArICogICAgICBOYW1lIG9m IHRoZSBzb3VuZCBkZXZpY2Ugb2YgdGhlIGNhcmQgZ2l2ZW4uCgpJIHRoaW5rIHRoZSAnZ2l2ZW4n IGNhbiBnbyBhd2F5LiBXaHkgaXMgdGhlcmUgYSBsaW1pdCBvZiA4MCBjaGFyYWN0ZXJzPwoKPiAr ICoKPiArICogRm9yIGV4YW1wbGUsCj4gKyAqIC9sb2NhbC9kb21haW4vNS9kZXZpY2UvdnNuZC8w L2NhcmQvMC9kZXZpY2UvMC9uYW1lID0gIkdlbmVyYWwgYW5hbG9nIgo+ICsgKgo+ICsgKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSBzZXR0aW5ncyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIHR5cGUKPiArICogICAgICBWYWx1ZXM6ICAgICAg ICAgInAiLCAiYyIKPiArICoKPiArICogICAgICBTdHJlYW0gdHlwZTogInAiIC0gcGxheWJhY2sg c3RyZWFtLCAiYyIgLSBjYXB0dXJlIHN0cmVhbQo+ICsgKgo+ICsgKiAgICAgIElmIGJvdGggY2Fw dHVyZSBhbmQgcGxheWJhY2sgYXJlIG5lZWRlZCB0aGVuIHR3byBzdHJlYW1zIG5lZWQgdG8gYmUK PiArICogICAgICBkZWZpbmVkIHVuZGVyIHRoZSBzYW1lIGRldmljZS4gRm9yIGV4YW1wbGUsCj4g KyAqICAgICAgL2xvY2FsL2RvbWFpbi81L2RldmljZS92c25kLzAvY2FyZC8wL2RldmljZS8wL3N0 cmVhbS8wL3R5cGUgPSAicCIKPiArICogICAgICAvbG9jYWwvZG9tYWluLzUvZGV2aWNlL3ZzbmQv MC9jYXJkLzAvZGV2aWNlLzAvc3RyZWFtLzEvdHlwZSA9ICJjIgo+ICsgKgo+ICsgKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQgWGVu QnVzIE5vZGVzCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKgo+ICsgKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tIFJlcXVlc3QgVHJhbnNwb3J0IFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPiArICoKPiArICogVGhlc2UgYXJlIHBlciBzdHJlYW0uCj4gKyAqCj4gKyAqIGV2 ZW50LWNoYW5uZWwKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHN0cmluZyByZXByZXNlbnRp bmcgYSBwb3NpdGl2ZSBpbnRlZ2VyPgo+ICsgKgo+ICsgKiAgICAgIFRoZSBpZGVudGlmaWVyIG9m IHRoZSBYZW4gZXZlbnQgY2hhbm5lbCB1c2VkIHRvIHNpZ25hbCBhY3Rpdml0eQo+ICsgKiAgICAg IGluIHRoZSByaW5nIGJ1ZmZlci4KPiArICoKPiArICogcmluZy1yZWYKPiArICogICAgICBWYWx1 ZXM6ICAgICAgICAgPHN0cmluZyByZXByZXNlbnRpbmcgYSBwb3NpdGl2ZSBpbnRlZ2VyPgo+ICsg Kgo+ICsgKiAgICAgIFRoZSBYZW4gZ3JhbnQgcmVmZXJlbmNlIGdyYW50aW5nIHBlcm1pc3Npb24g Zm9yIHRoZSBiYWNrZW5kIHRvIG1hcAo+ICsgKiAgICAgIGEgc29sZSBwYWdlIGluIGEgc2luZ2xl IHBhZ2Ugc2l6ZWQgcmluZyBidWZmZXIuCj4gKyAqCj4gKyAqIGluZGV4Cj4gKyAqICAgICAgVmFs dWVzOiAgICAgICAgIDxzdHJpbmcgcmVwcmVzZW50aW5nIGEgcG9zaXRpdmUgaW50ZWdlcj4KPiAr ICoKPiArICogICAgICBBZnRlciBzdHJlYW0gaW5pdGlhbGl6YXRpb24gaXQgaXMgYXNzaWduZWQg YSB1bmlxdWUgSUQgKHdpdGhpbiB0aGUgZnJvbnQKPiArICogICAgICBkcml2ZXIpLCBzbyBldmVy eSBzdHJlYW0gb2YgdGhlIGZyb250ZW5kIGNhbiBiZSBpZGVudGlmaWVkIGJ5IHRoZQo+ICsgKiAg ICAgIGJhY2tlbmQgYnkgdGhpcyBJRC4KCkJ1dCBkb2Vzbid0IGl0IGhhdmUgdGhhdCBhbHJlYWR5 IGJ5IHRoZSB2aXJ0dWUgb2Ygc3RyZWFtX2lkeCA/Cgo+ICsgKi8KPiArCj4gKy8qCj4gKyAqIFNU QVRFIERJQUdSQU1TCj4gKyAqCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnR1cCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICoKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqCj4gKyAqIFRvb2wgc3Rh Y2sgY3JlYXRlcyBmcm9udCBhbmQgYmFjayBzdGF0ZSBub2RlcyB3aXRoIGluaXRpYWwgc3RhdGUK PiArICogWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcuCj4gKyAqIFRvb2wgc3RhY2sgY3JlYXRlcyBh bmQgc2V0cyB1cCBmcm9udGVuZCBzb3VuZCBjb25maWd1cmF0aW9uIG5vZGVzIHBlciBkb21haW4u Cj4gKyAqCj4gKyAqIEZyb250ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrCj4g KyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgICA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Cj4gKyAqIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nICAgICAg ICAgICAgICBYZW5idXNTdGF0ZUluaXRpYWxpc2luZwo+ICsgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG8gUXVlcnkgYmFja2VuZCBkZXZpY2UgaWRlbnRpZmljYXRpb24K PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuCj4gKyAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBPcGVuIGFuZCB2YWxpZGF0 ZSBiYWNrZW5kIGRldmljZS4KPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8Cj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYKPiArICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlSW5pdFdhaXQKPiArICoKPiArICogbyBRdWVyeSBm cm9udGVuZCBjb25maWd1cmF0aW9uCj4gKyAqIG8gQWxsb2NhdGUgYW5kIGluaXRpYWxpemUKPiAr ICogICBldmVudCBjaGFubmVscyBwZXIgY29uZmlndXJlZAo+ICsgKiAgIHBsYXliYWNrL2NhcHR1 cmUgc3RyZWFtLgo+ICsgKiBvIFB1Ymxpc2ggdHJhbnNwb3J0IHBhcmFtZXRlcnMKPiArICogICB0 aGF0IHdpbGwgYmUgaW4gZWZmZWN0IGR1cmluZwo+ICsgKiAgIHRoaXMgY29ubmVjdGlvbi4KPiAr ICogICAgICAgICAgICAgIHwKPiArICogICAgICAgICAgICAgIHwKPiArICogICAgICAgICAgICAg IFYKPiArICogWGVuYnVzU3RhdGVJbml0aWFsaXNlZAo+ICsgKgo+ICsgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG8gUXVlcnkgZnJvbnRlbmQgdHJhbnNwb3J0IHBhcmFt ZXRlcnMuCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBDb25u ZWN0IHRvIHRoZSBldmVudCBjaGFubmVscy4KPiArICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gKyAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICsgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYKPiArICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlQ29ubmVjdGVkCj4gKyAqCj4gKyAq ICBvIENyZWF0ZSBhbmQgaW5pdGlhbGl6ZSBPUwo+ICsgKiAgdmlydHVhbCBzb3VuZCBkZXZpY2Ug aW5zdGFuY2VzCj4gKyAqICBhcyBwZXIgY29uZmlndXJhdGlvbi4KPiArICogICAgICAgICAgICAg IHwKPiArICogICAgICAgICAgICAgIHwKPiArICogICAgICAgICAgICAgIFYKPiArICogWGVuYnVz U3RhdGVDb25uZWN0ZWQKPiArICoKCgpObyBtaWdyYXRpb24vZGlzY29ubmVjdGlvbiBzdGF0ZT8K Cj4gKyAqLwo+ICsKPiArLyoKPiArICogUENNIEZPUk1BVFMKPiArICoKPiArICogWEVOU05EX1BD TV9GT1JNQVRfPGZvcm1hdD5bXzxlbmRpYW4+XQo+ICsgKgo+ICsgKiBmb3JtYXQ6IDxTL1UvRj48 Yml0cz4gb3IgPG5hbWU+Cj4gKyAqICAgICBTIC0gc2lnbmVkLCBVIC0gdW5zaWduZWQsIEYgLSBm bG9hdAo+ICsgKiAgICAgYml0cyAtIDgsIDE2LCAyNCwgMzIKPiArICogICAgIG5hbWUgLSBNVV9M QVcsIEdTTSwgZXRjLgo+ICsgKgo+ICsgKiBlbmRpYW46IDxMRS9CRT4sIG1heSBiZSBhYnNlbnQK PiArICogICAgIExFIC0gTGl0dGxlIGVuZGlhbiwgQkUgLSBCaWcgZW5kaWFuCj4gKyAqLwo+ICsj ZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1M4ICAgICAgICAgICAgMAo+ICsjZGVmaW5lIFhFTlNO RF9QQ01fRk9STUFUX1U4ICAgICAgICAgICAgMQo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFU X1MxNl9MRSAgICAgICAgMgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MxNl9CRSAgICAg ICAgMwo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UxNl9MRSAgICAgICAgNAo+ICsjZGVm aW5lIFhFTlNORF9QQ01fRk9STUFUX1UxNl9CRSAgICAgICAgNQo+ICsjZGVmaW5lIFhFTlNORF9Q Q01fRk9STUFUX1MyNF9MRSAgICAgICAgNgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1My NF9CRSAgICAgICAgNwo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UyNF9MRSAgICAgICAg OAo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UyNF9CRSAgICAgICAgOQo+ICsjZGVmaW5l IFhFTlNORF9QQ01fRk9STUFUX1MzMl9MRSAgICAgICAgMTAKPiArI2RlZmluZSBYRU5TTkRfUENN X0ZPUk1BVF9TMzJfQkUgICAgICAgIDExCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTMy X0xFICAgICAgICAxMgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UzMl9CRSAgICAgICAg MTMKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GMzJfTEUgICAgICAgIDE0IC8qIDQtYnl0 ZSBmbG9hdCwgSUVFRS03NTQgMzItYml0LCAqLwo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFU X0YzMl9CRSAgICAgICAgMTUgLyogcmFuZ2UgLTEuMCB0byAxLjAgICAgICAgICAgICAgICovCj4g KyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjY0X0xFICAgICAgICAxNiAvKiA4LWJ5dGUgZmxv YXQsIElFRUUtNzU0IDY0LWJpdCwgKi8KPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GNjRf QkUgICAgICAgIDE3IC8qIHJhbmdlIC0xLjAgdG8gMS4wICAgICAgICAgICAgICAqLwo+ICsjZGVm aW5lIFhFTlNORF9QQ01fRk9STUFUX0lFQzk1OF9TVUJGUkFNRV9MRSAxOAo+ICsjZGVmaW5lIFhF TlNORF9QQ01fRk9STUFUX0lFQzk1OF9TVUJGUkFNRV9CRSAxOQo+ICsjZGVmaW5lIFhFTlNORF9Q Q01fRk9STUFUX01VX0xBVyAgICAgICAgMjAKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9B X0xBVyAgICAgICAgIDIxCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfSU1BX0FEUENNICAg ICAyMgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX01QRUcgICAgICAgICAgMjMKPiArI2Rl ZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9HU00gICAgICAgICAgIDI0Cj4gKyNkZWZpbmUgWEVOU05E X1BDTV9GT1JNQVRfU1BFQ0lBTCAgICAgICAzMSAvKiBBbnkgb3RoZXIgdW5zcGVjaWZpZWQgZm9y bWF0ICovCj4gKwo+ICsvKgo+ICsgKiBSRVFVRVNUIENPREVTLgo+ICsgKi8KPiArI2RlZmluZSBY RU5TTkRfT1BfT1BFTiAgICAgICAgICAgICAgICAgIDAKPiArI2RlZmluZSBYRU5TTkRfT1BfQ0xP U0UgICAgICAgICAgICAgICAgIDEKPiArI2RlZmluZSBYRU5TTkRfT1BfUkVBRCAgICAgICAgICAg ICAgICAgIDIKPiArI2RlZmluZSBYRU5TTkRfT1BfV1JJVEUgICAgICAgICAgICAgICAgIDMKPiAr I2RlZmluZSBYRU5TTkRfT1BfU0VUX1ZPTFVNRSAgICAgICAgICAgIDQKPiArI2RlZmluZSBYRU5T TkRfT1BfR0VUX1ZPTFVNRSAgICAgICAgICAgIDUKPiArI2RlZmluZSBYRU5TTkRfT1BfTVVURSAg ICAgICAgICAgICAgICAgIDYKPiArI2RlZmluZSBYRU5TTkRfT1BfVU5NVVRFICAgICAgICAgICAg ICAgIDcKPiArCj4gKy8qCj4gKyAqIFhFTlNUT1JFIEZJRUxEIEFORCBQQVRIIE5BTUUgU1RSSU5H UywgSEVMUEVSUy4KPiArICovCj4gKyNkZWZpbmUgWEVOU05EX0RSSVZFUl9OQU1FICAgICAgICAg ICAgICAgICAgICJ2c25kIgo+ICsKPiArI2RlZmluZSBYRU5TTkRfTElTVF9TRVBBUkFUT1IgICAg ICAgICAgICAgICAgIjsiCj4gKy8qIFBhdGggZW50cmllcyAqLwo+ICsjZGVmaW5lIFhFTlNORF9Q QVRIX0NBUkQgICAgICAgICAgICAgICAgICAgICAiY2FyZCIKPiArI2RlZmluZSBYRU5TTkRfUEFU SF9ERVZJQ0UgICAgICAgICAgICAgICAgICAgImRldmljZSIKPiArI2RlZmluZSBYRU5TTkRfUEFU SF9TVFJFQU0gICAgICAgICAgICAgICAgICAgInN0cmVhbSIKPiArLyogRmllbGQgbmFtZXMgKi8K PiArI2RlZmluZSBYRU5TTkRfRklFTERfQ0FSRF9TSE9SVF9OQU1FICAgICAgICAgInNob3J0LW5h bWUiCj4gKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0NBUkRfTE9OR19OQU1FICAgICAgICAgICJsb25n LW5hbWUiCj4gKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1JJTkdfUkVGICAgICAgICAgICAgICAgICJy aW5nLXJlZiIKPiArI2RlZmluZSBYRU5TTkRfRklFTERfRVZUX0NITkwgICAgICAgICAgICAgICAg ImV2ZW50LWNoYW5uZWwiCj4gKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0RFVklDRV9OQU1FICAgICAg ICAgICAgICJuYW1lIgo+ICsjZGVmaW5lIFhFTlNORF9GSUVMRF9UWVBFICAgICAgICAgICAgICAg ICAgICAidHlwZSIKPiArI2RlZmluZSBYRU5TTkRfRklFTERfU1RSRUFNX0lOREVYICAgICAgICAg ICAgImluZGV4Igo+ICsjZGVmaW5lIFhFTlNORF9GSUVMRF9DSEFOTkVMU19NSU4gICAgICAgICAg ICAiY2hhbm5lbHMtbWluIgo+ICsjZGVmaW5lIFhFTlNORF9GSUVMRF9DSEFOTkVMU19NQVggICAg ICAgICAgICAiY2hhbm5lbHMtbWF4Igo+ICsjZGVmaW5lIFhFTlNORF9GSUVMRF9TQU1QTEVfUkFU RVMgICAgICAgICAgICAic2FtcGxlLXJhdGVzIgo+ICsjZGVmaW5lIFhFTlNORF9GSUVMRF9TQU1Q TEVfRk9STUFUUyAgICAgICAgICAic2FtcGxlLWZvcm1hdHMiCj4gKyNkZWZpbmUgWEVOU05EX0ZJ RUxEX0JVRkZFUl9TSVpFICAgICAgICAgICAgICJidWZmZXItc2l6ZSIKPiArCj4gKy8qIFN0cmVh bSB0eXBlIGZpZWxkIHZhbHVlcy4gKi8KPiArI2RlZmluZSBYRU5TTkRfU1RSRUFNX1RZUEVfUExB WUJBQ0sgICAgICAgICAgInAiCj4gKyNkZWZpbmUgWEVOU05EX1NUUkVBTV9UWVBFX0NBUFRVUkUg ICAgICAgICAgICJjIgo+ICsvKiBTYW1wbGUgcmF0ZSBtYXggc3RyaW5nIGxlbmd0aCAqLwo+ICsj ZGVmaW5lIFhFTlNORF9TQU1QTEVfUkFURV9NQVhfTEVOICAgICAgICAgICAgNgo+ICsvKiBTYW1w bGUgZm9ybWF0IGZpZWxkIHZhbHVlcyAqLwo+ICsjZGVmaW5lIFhFTlNORF9TQU1QTEVfRk9STUFU X01BWF9MRU4gICAgICAgICAyNAo+ICsKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TOF9T VFIgICAgICAgICAgICAgICAgICJzOCIKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VOF9T VFIgICAgICAgICAgICAgICAgICJ1OCIKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMTZf TEVfU1RSICAgICAgICAgICAgICJzMTZfbGUiCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRf UzE2X0JFX1NUUiAgICAgICAgICAgICAiczE2X2JlIgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9S TUFUX1UxNl9MRV9TVFIgICAgICAgICAgICAgInUxNl9sZSIKPiArI2RlZmluZSBYRU5TTkRfUENN X0ZPUk1BVF9VMTZfQkVfU1RSICAgICAgICAgICAgICJ1MTZfYmUiCj4gKyNkZWZpbmUgWEVOU05E X1BDTV9GT1JNQVRfUzI0X0xFX1NUUiAgICAgICAgICAgICAiczI0X2xlIgo+ICsjZGVmaW5lIFhF TlNORF9QQ01fRk9STUFUX1MyNF9CRV9TVFIgICAgICAgICAgICAgInMyNF9iZSIKPiArI2RlZmlu ZSBYRU5TTkRfUENNX0ZPUk1BVF9VMjRfTEVfU1RSICAgICAgICAgICAgICJ1MjRfbGUiCj4gKyNk ZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTI0X0JFX1NUUiAgICAgICAgICAgICAidTI0X2JlIgo+ ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MzMl9MRV9TVFIgICAgICAgICAgICAgInMzMl9s ZSIKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMzJfQkVfU1RSICAgICAgICAgICAgICJz MzJfYmUiCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTMyX0xFX1NUUiAgICAgICAgICAg ICAidTMyX2xlIgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UzMl9CRV9TVFIgICAgICAg ICAgICAgInUzMl9iZSIKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GMzJfTEVfU1RSICAg ICAgICAgICAgICJmbG9hdF9sZSIKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GMzJfQkVf U1RSICAgICAgICAgICAgICJmbG9hdF9iZSIKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9G NjRfTEVfU1RSICAgICAgICAgICAgICJmbG9hdDY0X2xlIgo+ICsjZGVmaW5lIFhFTlNORF9QQ01f Rk9STUFUX0Y2NF9CRV9TVFIgICAgICAgICAgICAgImZsb2F0NjRfYmUiCj4gKyNkZWZpbmUgWEVO U05EX1BDTV9GT1JNQVRfSUVDOTU4X1NVQkZSQU1FX0xFX1NUUiAiaWVjOTU4X3N1YmZyYW1lX2xl Igo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0lFQzk1OF9TVUJGUkFNRV9CRV9TVFIgImll Yzk1OF9zdWJmcmFtZV9iZSIKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9NVV9MQVdfU1RS ICAgICAgICAgICAgICJtdV9sYXciCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfQV9MQVdf U1RSICAgICAgICAgICAgICAiYV9sYXciCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfSU1B X0FEUENNX1NUUiAgICAgICAgICAiaW1hX2FkcGNtIgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9S TUFUX01QRUdfU1RSICAgICAgICAgICAgICAgIm1wZWciCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9G T1JNQVRfR1NNX1NUUiAgICAgICAgICAgICAgICAiZ3NtIgo+ICsjZGVmaW5lIFhFTlNORF9QQ01f Rk9STUFUX1NQRUNJQUxfU1RSICAgICAgICAgICAgInNwZWNpYWwiCj4gKwo+ICsvKgo+ICsgKiBT VEFUVVMgUkVUVVJOIENPREVTLgo+ICsgKi8KPiArIC8qIE9wZXJhdGlvbiBmYWlsZWQgZm9yIHNv bWUgdW5zcGVjaWZpZWQgcmVhc29uIChlLiBnLiAtRUlPKS4gKi8KCldvdWxkIGl0IG1ha2Ugc2Vu c2UgdG8gc2F5IHdoZXJlIHRoZSBlcnJubyB2YWx1ZSBpcyBzdG9yZWQgaW4gdGhlIHJpbmcKc3Ry dWN0dXJlPwoKPiArI2RlZmluZSBYRU5TTkRfUlNQX0VSUk9SICAgICAgICAgICAgICAgICAoLTEp Cj4gKyAvKiBPcGVyYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4gKi8KPiArI2RlZmluZSBY RU5TTkRfUlNQX09LQVkgICAgICAgICAgICAgICAgICAwCj4gKwo+ICsvKgo+ICsgKiBEZXNjcmlw dGlvbiBvZiB0aGUgcHJvdG9jb2wgYmV0d2VlbiBmcm9udGVuZCBhbmQgYmFja2VuZCBkcml2ZXIu Cj4gKyAqCj4gKyAqIFRoZSB0d28gaGFsdmVzIG9mIGEgUGFyYS12aXJ0dWFsIHNvdW5kIGRyaXZl ciBjb21tdW5pY2F0ZXMgd2l0aAo+ICsgKiBlYWNoIG90aGVyIHVzaW5nIGEgc2hhcmVkIHBhZ2Ug YW5kIGFuIGV2ZW50IGNoYW5uZWwuCj4gKyAqIFNoYXJlZCBwYWdlIGNvbnRhaW5zIGEgcmluZyB3 aXRoIHJlcXVlc3QvcmVzcG9uc2UgcGFja2V0cy4KPiArICoKPiArICoKPiArICogQWxsIHJlcXVl c3QgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoMTYgb2N0ZXRzKQo+ICsgKgo+ICsgKgo+ ICsgKiBSZXF1ZXN0IG9wZW4gLSBvcGVuIGEgUENNIHN0cmVhbSBmb3IgcGxheWJhY2sgb3IgY2Fw dHVyZToKPiArICogICAgICAgICAgMCAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAg IDIgICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwo+ ICsgKiB8ICAgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgIG9wZXJhdGlvbiAg ICB8ICAgICBzdHJlYW1faWR4ICB8Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNtX3JhdGUgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgIHBjbV9mb3JtYXQgICAg IHwgIHBjbV9jaGFubmVscyAgIHwgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgIHwK PiArICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgIGdy ZWZfZGlyZWN0b3J5X3N0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gKyAqICstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSsKPiArCj4gKyAqIGlkIC0gdWludDE2X3QsIHByaXZhdGUgZ3Vlc3QgdmFsdWUs IGVjaG9lZCBpbiByZXNwb25zZQo+ICsgKiBvcGVyYXRpb24gLSB1aW50OF90LCBYRU5TTkRfT1Bf T1BFTgo+ICsgKiBzdHJlYW1faWR4IC0gdWludDhfdCwgaW5kZXggb2YgdGhlIHN0cmVhbSAoInN0 cmVhbXNfaWR4IiBYZW5TdG9yZSBlbnRyeQo+ICsgKiAgIG9mIHRoZSBzdHJlYW0pCgpJcyB0aGlz IG5lY2Vzc2FyeT8KPiArICogcGNtX3JhdGUgLSB1aW50MzJfdCwgc3RyZWFtIGRhdGEgcmF0ZSwg SHoKPiArICogcGNtX2Zvcm1hdCAtIHVpbnQ4X3QsIFhFTlNORF9QQ01fRk9STUFUX1hYWCB2YWx1 ZQo+ICsgKiBwY21fY2hhbm5lbHMgLSB1aW50OF90LCBudW1iZXIgb2YgY2hhbm5lbHMgb2YgdGhp cyBzdHJlYW0KPiArICogZ3JlZl9kaXJlY3Rvcnlfc3RhcnQgLSBncmFudF9yZWZfdCwgYSByZWZl cmVuY2UgdG8gdGhlIGZpcnN0IHNoYXJlZCBwYWdlCj4gKyAqICAgZGVzY3JpYmluZyBzaGFyZWQg YnVmZmVyIHJlZmVyZW5jZXMuIEF0IGxlYXN0IG9uZSBwYWdlIGV4aXN0cy4gSWYgc2hhcmVkCj4g KyAqICAgYnVmZmVyIHNpemUgZXhjZWVkcyB3aGF0IGNhbiBiZSBhZGRyZXNzZWQgYnkgdGhpcyBz aW5nbGUgcGFnZSwgdGhlbgo+ICsgKiAgIHJlZmVyZW5jZSB0byB0aGUgbmV4dCBwYWdlIG11c3Qg YmUgc3VwcGxpZWQgKGdyZWZfZGlyX25leHRfcGFnZSBiZWxvdwo+ICsgKiAgIGlzIG5vdCBOVUxM KQo+ICsgKgo+ICsgKiBTaGFyZWQgcGFnZSBmb3IgWEVOU05EX09QX09QRU4gYnVmZmVyIGRlc2Ny aXB0b3IgKGdyZWZfZGlyZWN0b3J5IGluIHRoZQo+ICsgKiAgIHJlcXVlc3QpIGVtcGxveXMgYSBs aXN0IG9mIHBhZ2VzLCBkZXNjcmliaW5nIGFsbCBwYWdlcyBvZiB0aGUgc2hhcmVkIGRhdGEKPiAr ICogICBidWZmZXI6Cj4gKyAqICAgICAgICAgIDAgICAgICAgICAgICAgICAgIDEgICAgICAgICAg ICAgICAgICAyICAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4gKyAqICstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZl9kaXJfbmV4dF9wYWdl ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bV9ncmVmcyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwKPiArICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBncmVmWzBdICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ3JlZlsxXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICsg KiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqICsvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPiArICogKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmVmW04gLTFd ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKPiAr ICoKPiArICogZ3JlZl9kaXJfbmV4dF9wYWdlIC0gZ3JhbnRfcmVmX3QsIHJlZmVyZW5jZSB0byB0 aGUgbmV4dCBwYWdlIGRlc2NyaWJpbmcKPiArICogICBwYWdlIGRpcmVjdG9yeQo+ICsgKiBudW1f Z3JlZnMgLSBudW1iZXIgb2YgZ3JlZnMgaW4gdGhpcyBwYWdlCj4gKyAqIGdyZWZbaV0gLSBncmFu dF9yZWZfdCwgcmVmZXJlbmNlIHRvIGEgc2hhcmVkIHBhZ2Ugb2YgdGhlIGJ1ZmZlcgo+ICsgKiAg IGFsbG9jYXRlZCBhdCBYRU5TTkRfT1BfT1BFTgo+ICsgKgo+ICsgKiBSZXF1ZXN0IGNsb3NlIC0g Y2xvc2UgYW4gb3BlbmVkIHBjbSBzdHJlYW06Cj4gKyAqICAgICAgICAgIDAgICAgICAgICAgICAg ICAgIDEgICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4g KyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgaWQgICAgICAgICAg ICAgICAgfCAgICBvcGVyYXRpb24gICAgfCAgICAgc3RyZWFtX2lkeCAgfAo+ICsgKiArLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiArICogKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwo+ ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqCj4gKyAqIGlkIC0gdWludDE2 X3QsIHByaXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBpbiByZXNwb25zZQo+ICsgKiBvcGVyYXRp b24gLSB1aW50OF90LCBYRU5TTkRfT1BfQ0xPU0UKPiArICogc3RyZWFtX2lkeCAtIHVpbnQ4X3Qs IGluZGV4IG9mIHRoZSBzdHJlYW0gKCJzdHJlYW1zX2lkeCIgWGVuU3RvcmUgZW50cnkKPiArICog ICBvZiB0aGUgc3RyZWFtKQo+ICsgKgo+ICsgKgo+ICsgKiBSZXF1ZXN0IHJlYWQvd3JpdGUgLSB1 c2VkIGZvciByZWFkIChmb3IgY2FwdHVyZSkgb3Igd3JpdGUgKGZvciBwbGF5YmFjayk6Cj4gKyAq ICAgICAgICAgIDAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgICAyICAgICAgICAg ICAgICAgIDMgICAgICAgIG9jdGV0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAg ICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCAgICBvcGVyYXRpb24gICAgfCAgICAgc3Ry ZWFtX2lkeCAgfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK PiArICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZW5ndGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gKyAqICstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r Cj4gKyAqCj4gKyAqIGlkIC0gdWludDE2X3QsIHByaXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBp biByZXNwb25zZQo+ICsgKiBvcGVyYXRpb24gLSB1aW50OF90LCBYRU5TTkRfT1BfUkVBRC9YRU5T TkRfT1BfV1JJVEUKPiArICogc3RyZWFtX2lkeCAtIHVpbnQ4X3QsIGluZGV4IG9mIHRoZSBzdHJl YW0gKCJzdHJlYW1zX2lkeCIgWGVuU3RvcmUgZW50cnkKPiArICogICBvZiB0aGUgc3RyZWFtKQo+ ICsgKiBvZmZzZXQgLSB1aW50MzJfdCwgcmVhZCBvciB3cml0ZSBkYXRhIG9mZnNldCB3aXRoaW4g dGhlIHNoYXJlZCBidWZmZXIKCm9mZnNldCBvciBpbmRleCA/Cj4gKyAqICAgcGFzc2VkIHdpdGgg WEVOU05EX09QX09QRU4gcmVxdWVzdAo+ICsgKiBsZW5ndGggLSB1aW50MzJfdCwgcmVhZCBvciB3 cml0ZSBkYXRhIGxlbmd0aAoKV2hhdCBpZiBpdCBpcyBtb3JlIHRoYW4gb25lIHBhZ2U/IFdvdWxk IGl0IHNwaWxsIG92ZXIgdG8gdGhlIG5leHQgJ29mZnNldCcgPwo+ICsgKgo+ICsgKgo+ICsgKiBS ZXF1ZXN0IHNldC9nZXQgdm9sdW1lIC0gc2V0L2dldCBjaGFubmVscycgdm9sdW1lIG9mIHRoZSBz dHJlYW0gZ2l2ZW46Cj4gKyAqICAgICAgICAgIDAgICAgICAgICAgICAgICAgIDEgICAgICAgICAg ICAgICAgICAyICAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4gKyAqICstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCAgICBvcGVy YXRpb24gICAgfCAgICAgc3RyZWFtX2lkeCAgfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwKPiArICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICsg KiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqCj4gKyAqIGlkIC0gdWludDE2X3QsIHByaXZhdGUgZ3Vl c3QgdmFsdWUsIGVjaG9lZCBpbiByZXNwb25zZQo+ICsgKiBvcGVyYXRpb24gLSB1aW50OF90LCBY RU5TTkRfT1BfU0VUX1ZPTFVNRSBvciBYRU5TTkRfT1BfR0VUX1ZPTFVNRQo+ICsgKiBzdHJlYW1f aWR4IC0gdWludDhfdCwgaW5kZXggb2YgdGhlIHN0cmVhbSAoInN0cmVhbXNfaWR4IiBYZW5TdG9y ZSBlbnRyeQo+ICsgKiAgIG9mIHRoZSBzdHJlYW0pCj4gKyAqIEJ1ZmZlciBwYXNzZWQgd2l0aCBY RU5TTkRfT1BfT1BFTiBpcyB1c2VkIHRvIGV4Y2hhbmdlIHZvbHVtZQo+ICsgKiB2YWx1ZXM6CgpJ IHByZXN1bWUgdGhpcyBpcyB0aGUgZmlyc3Qgb25lPyBPciB3b3VsZCBpdCBtYWtlIHNlbnNlIHRv IGluY2x1ZGUgdGhlICdvZmZzZXQnCnRvIG1lbnRpb24gd2hpY2ggb2YgdGhlIHBhZ2VzIGl0IGhh cz8KCllvdSBjb3VsZCBwb3RlbnRpYWxseSBoYXZlIFhFTlNORF9PUF9XUklURS5vZmZzZXQ9MSBh bmQgcmlnaHQgYWZ0ZXIKdGhhdCBoYXZlIFhFTlNORF9PUF9TRVRfVk9MVU1FIChhbmQgaG9wZWZ1 bGx5IGl0IHdvdWxkIGJlIHVzaW5nIHRoZSBuZXh0CmdyYW50IHBhZ2U/IEJ1dCB3aGF0IGlmIGl0 IHdhbnRzIHRvIHVzZSBhIHNwZWNpZmljIG9uZSAtIHNheSBhbHdheXMgMjU1IG9uZT8pCgo+ICsg Kgo+ICsgKiAgICAgICAgICAwICAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAgMiAg ICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFswXSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwKPiArICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbMV0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKPiArICogKy9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ICsg KiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqICAgICAgICAgICAgICAgICAgY2hhbm5lbFtYRU5TTkRf T1BfT1BFTi5wY21fY2hhbm5lbHMgLSAxXSAgICAgICAgICAgICAgIHwKPiArICogKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKwo+ICsgKgo+ICsgKiBjaGFubmVsW2ldIC0gc2ludDMyX3QsIHZvbHVtZSBvZiBpLXRo IGNoYW5uZWwKPiArICogVm9sdW1lIGlzIGV4cHJlc3NlZCBhcyBhIHNpZ25lZCB2YWx1ZSBpbiBz dGVwcyBvZiAwLjAwMSBkQm0sCj4gKyAqIHdoaWxlIDAgYmVpbmcgMGRCbS4KPiArICoKPiArICoK PiArICogUmVxdWVzdCBtdXRlL3VubXV0ZSAtIG11dGUvdW5tdXRlIHN0cmVhbToKPiArICogICAg ICAgICAgMCAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAg ICAgMyAgICAgICAgb2N0ZXQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAg ICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgIG9wZXJhdGlvbiAgICB8ICAgICBzdHJlYW1f aWR4ICB8Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICsg KiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiArICogKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKPiAr ICoKPiArICogaWQgLSB1aW50MTZfdCwgcHJpdmF0ZSBndWVzdCB2YWx1ZSwgZWNob2VkIGluIHJl c3BvbnNlCj4gKyAqIG9wZXJhdGlvbiAtIHVpbnQ4X3QsIFhFTlNORF9PUF9NVVRFL1hFTlNORF9P UF9VTk1VVEUKPiArICogc3RyZWFtX2lkeCAtIHVpbnQ4X3QsIGluZGV4IG9mIHRoZSBzdHJlYW0g KCJzdHJlYW1zX2lkeCIgWGVuU3RvcmUgZW50cnkKPiArICogICBvZiB0aGUgc3RyZWFtKQoKQWdh aW4sIEkgdGhpbmsgeW91IG5lZWQgYW4gaW5kZXggaW4gdGhlIGdyYW50IHBhZ2VzIC4uCj4gKyAq IEJ1ZmZlciBwYXNzZWQgd2l0aCBYRU5TTkRfT1BfT1BFTiBpcyB1c2VkIHRvIGV4Y2hhbmdlIG11 dGUvdW5tdXRlCj4gKyAqIHZhbHVlczoKPiArICoKPiArICogICAgICAgICAgMCAgICAgICAgICAg ICAgICAgMSAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQK PiArICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgY2hhbm5lbFswXSAgICB8ICAgY2hhbm5l bFsxXSAgICB8ICAgY2hhbm5lbFsyXSAgICB8ICAgY2hhbm5lbFszXSAgICB8Cj4gKyAqICstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSsKPiArICogKy9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r Cj4gKyAqIHwgICBjaGFubmVsW2ldICAgIHwgICBjaGFubmVsW2krMV0gIHwgICBjaGFubmVsW2kr Ml0gIHwgICBjaGFubmVsW2krM10gIHwKPiArICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiArL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC98Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKPiArICoKPiArICogY2hhbm5lbFtp XSAtIHVpbnQ4X3QsIG5vbi16ZXJvIGlmIGktdGggY2hhbm5lbCBuZWVkcyB0byBiZSBtdXRlZC91 bm11dGVkCj4gKyAqIE51bWJlciBvZiBjaGFubmVscyBwYXNzZWQgaXMgZXF1YWwgdG8gWEVOU05E X09QX09QRU4gcmVxdWVzdCBwY21fY2hhbm5lbHMKPiArICogZmllbGQKPiArICoKPiArICoKPiAr ICogQWxsIHJlc3BvbnNlIHBhY2tldHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDY0IGJ5dGVzKQo+ ICsgKgo+ICsgKiBSZXNwb25zZSBmb3IgYWxsIHJlcXVlc3RzOgo+ICsgKiAgICAgICAgICAwICAg ICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAzICAgICAg ICBvY3RldAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgIGlk ICAgICAgICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAgIHwgICAgIHN0cmVhbV9pZHggIHwKPiAr ICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgc3RhdHVzICAgICB8ICAgICAgICAgICAg ICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICB8Cj4gKyAqICstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCj4g KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKPiArICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwo+ICsgKgo+ICsgKiBp ZCAtIHVpbnQxNl90LCBjb3BpZWQgZnJvbSB0aGUgcmVxdWVzdAo+ICsgKiBzdHJlYW1faWR4IC0g dWludDhfdCwgY29waWVkIGZyb20gcmVxdWVzdAo+ICsgKiBvcGVyYXRpb24gLSB1aW50OF90LCBY RU5TTkRfT1BfWFhYIC0gY29waWVkIGZyb20gcmVxdWVzdAo+ICsgKiBzdGF0dXMgLSBpbnQ4X3Qs IHJlc3BvbnNlIHN0YXR1cyAoWEVOU05EX1JTUF8/Pz8pCgpIbW0sIHdoYXQgYWJvdXQgYWxzbyBp bmNsdWRpbmcgYW4gJ2ludCBlcnJubycgd2hpY2ggaXMgbW9yZSBvZiBhbiBPUyBzcGVjaWZpYwp2 YWx1ZS4KCj4gKyAqLwo+ICsKPiArc3RydWN0IHhlbnNuZF9yZXF1ZXN0IHsKPiArICAgIHVpbnQ4 X3QgcmF3WzE2XTsKPiArfTsKCkhvdyBjb21lIHlvdSBwaWNrIDE2LCBub3Qgc2F5IDMyIG9yIHNv bWV0aGluZyBtb3JlIGNhY2hlLWxpbmUgZnJpZW5kbHk/CgpJdCBpcyBPSyB0byBhZGQgcGFkZGlu Zy4KPiArCj4gK3N0cnVjdCB4ZW5zbmRfcmVzcG9uc2Ugewo+ICsgICAgdWludDhfdCByYXdbMTZd Owo+ICt9Owo+ICsKPiArI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19JT19YRU5TTkRfSF9fICovCj4g ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9pby9zbmRpZl9saW51eC5oIGIveGVuL2lu Y2x1ZGUvcHVibGljL2lvL3NuZGlmX2xpbnV4LmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGlu ZGV4IDAwMDAwMDAuLjU4ZWM5NmMKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIveGVuL2luY2x1ZGUv cHVibGljL2lvL3NuZGlmX2xpbnV4LmgKPiBAQCAtMCwwICsxLDExNCBAQAo+ICsvKgo+ICsgKiAg VW5pZmllZCBzb3VuZC1kZXZpY2UgSS9PIGludGVyZmFjZSBmb3IgWGVuIGd1ZXN0IE9TZXMKPiAr ICoKPiArICogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo+ICsgKiAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cj4gKyAqICAgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg b3IKPiArICogICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+ICsgKgo+ICsg KiAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAo+ICsgKiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4gKyAqICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQo+ICsgKiAgIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4gKyAqCj4gKyAqICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK PiArICogICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl ZSBTb2Z0d2FyZQo+ICsgKiAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3Vp dGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3IFVTQQoKCllvdSBhcmUgcHV0dGluZyBhbiBH UEwgaGVhZGVyIGluIHRoZSAncHVibGljJyBkaXJlY3RvcnkuCgpUaGUgcHVibGljIGhlYWRlcnMg c2hvdWxkIGJlIEJTRCwgc2VlIENPUFlJTkcgaW4gdGhlIHJvb3Qgb2YgWGVuCmRpcmVjdG9yeS4K CllvdXIgcHJldmlvdXMgZmlsZSBoYWQgdGhlIEJTRCwgaG93IGNvbWUgeW91IGFyZSBkb2luZyBH UEwgaGVyZT8KCgoKPiArICoKPiArICogQ29weXJpZ2h0IChDKSAyMDE2IEVQQU0gU3lzdGVtcyBJ bmMuCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBfX1hFTl9QVUJMSUNfSU9fWEVOU05EX0xJTlVYX0hf Xwo+ICsjZGVmaW5lIF9fWEVOX1BVQkxJQ19JT19YRU5TTkRfTElOVVhfSF9fCj4gKwo+ICsjaWZk ZWYgX19LRVJORUxfXwo+ICsjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS9pby9yaW5nLmg+Cj4gKyNp bmNsdWRlIDx4ZW4vaW50ZXJmYWNlL2dyYW50X3RhYmxlLmg+Cj4gKyNlbHNlCj4gKyNpbmNsdWRl IDx4ZW4vaW8vcmluZy5oPgo+ICsjaW5jbHVkZSA8eGVuL2dyYW50X3RhYmxlLmg+Cj4gKyNlbmRp Zgo+ICsjaWYgMAo+ICsjaW5jbHVkZSA8eGVuL2luY2x1ZGUvcHVibGljL2lvL3NuZGlmLmg+Cj4g KyNlbHNlCj4gKyN3YXJuaW5nICJUT0RPOiBwcm9wZXJseSBpbmNsdWRlIGJhc2UgcHJvdG9jb2wg aGVhZGVyIgoKQWhhLiBQcmVzdW1hcmlseSB0aGF0IHNob3VsZCBnbyBhd2F5PwoKPiArI2luY2x1 ZGUgInNuZGlmLmgiCj4gKyNlbmRpZgo+ICsKPiArc3RydWN0IHhlbnNuZF9vcGVuX3JlcSB7Cj4g Kwl1aW50MzJfdCBwY21fcmF0ZTsKPiArCXVpbnQ4X3QgcGNtX2Zvcm1hdDsKPiArCXVpbnQ4X3Qg cGNtX2NoYW5uZWxzOwo+ICsJLyogaW4gSHogKi8KPiArCXVpbnQxNl90IF9fcmVzZXJ2ZWQwOwo+ ICsJZ3JhbnRfcmVmX3QgZ3JlZl9kaXJlY3Rvcnlfc3RhcnQ7Cj4gK30gX19hdHRyaWJ1dGVfXygo cGFja2VkKSk7CgpIbSwgSSByZWNhbGwgZm9sa3MgZnJvd25pbmcgb24gdXNpbmcgR0NDLWlzbSBs aWtlIHRoaXMuIFRoZXNlIGFyZQpwdWJsaWMgaGVhZGVycyBhbmQgY2FuIGJlIGluZ2VzdGVkIGJ5 IGNvbXBpbGVycyBsaWtlIE1pY3Jvc29mdApvciBvdGhlciB0aGF0IGRvbid0IGdyb2sgX19wYWNr ZXRfXy4KCkNvdWxkIHlvdSByZW1vdmUgaXQgYW5kIHN0aWxsIG1ha2Ugc3VyZSB0aGUgc3RydWN0 dXJlIGhhcyB0aGUgcmlnaHQKc2l6ZS9vZmZzZXQ/IHBhaG9sZSBoZWxwcyBhIGxvdC4KCj4gKwo+ ICtzdHJ1Y3QgeGVuc25kX3BhZ2VfZGlyZWN0b3J5IHsKPiArCWdyYW50X3JlZl90IGdyZWZfZGly X25leHRfcGFnZTsKPiArCXVpbnQzMl90IG51bV9ncmVmczsKPiArCWdyYW50X3JlZl90IGdyZWZb MF07Cj4gK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Cj4gKwo+ICtzdHJ1Y3QgeGVuc25kX2Ns b3NlX3JlcSB7Cj4gK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Cj4gKwo+ICtzdHJ1Y3QgeGVu c25kX3dyaXRlX3JlcSB7Cj4gKwl1aW50MzJfdCBvZmZzZXQ7Cj4gKwl1aW50MzJfdCBsZW47Cj4g K30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Cj4gKwo+ICtzdHJ1Y3QgeGVuc25kX3JlYWRfcmVx IHsKPiArCXVpbnQzMl90IG9mZnNldDsKPiArCXVpbnQzMl90IGxlbjsKPiArfSBfX2F0dHJpYnV0 ZV9fKChwYWNrZWQpKTsKPiArCj4gK3N0cnVjdCB4ZW5zbmRfZ2V0X3ZvbF9yZXEgewo+ICt9IF9f YXR0cmlidXRlX18oKHBhY2tlZCkpOwo+ICsKPiArc3RydWN0IHhlbnNuZF9zZXRfdm9sX3JlcSB7 Cj4gK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Cj4gKwo+ICtzdHJ1Y3QgeGVuc25kX211dGVf cmVxIHsKPiArfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKPiArCj4gK3N0cnVjdCB4ZW5zbmRf dW5tdXRlX3JlcSB7Cj4gK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Cj4gKwo+ICtzdHJ1Y3Qg eGVuc25kX3JlcSB7Cj4gKwl1bmlvbiB7Cj4gKwkJc3RydWN0IHhlbnNuZF9yZXF1ZXN0IHJhdzsK PiArCQlzdHJ1Y3Qgewo+ICsJCQl1aW50MTZfdCBpZDsKPiArCQkJdWludDhfdCBvcGVyYXRpb247 Cj4gKwkJCXVpbnQ4X3Qgc3RyZWFtX2lkeDsKPiArCQkJdW5pb24gewo+ICsJCQkJc3RydWN0IHhl bnNuZF9vcGVuX3JlcSBvcGVuOwo+ICsJCQkJc3RydWN0IHhlbnNuZF9jbG9zZV9yZXEgY2xvc2U7 Cj4gKwkJCQlzdHJ1Y3QgeGVuc25kX3dyaXRlX3JlcSB3cml0ZTsKPiArCQkJCXN0cnVjdCB4ZW5z bmRfcmVhZF9yZXEgcmVhZDsKPiArCQkJCXN0cnVjdCB4ZW5zbmRfZ2V0X3ZvbF9yZXEgZ2V0X3Zv bDsKPiArCQkJCXN0cnVjdCB4ZW5zbmRfc2V0X3ZvbF9yZXEgc2V0X3ZvbDsKPiArCQkJCXN0cnVj dCB4ZW5zbmRfbXV0ZV9yZXEgbXV0ZTsKPiArCQkJCXN0cnVjdCB4ZW5zbmRfdW5tdXRlX3JlcSB1 bm11dGU7Cj4gKwkJCX0gb3A7Cj4gKwkJfSBkYXRhOwo+ICsJfSB1Owo+ICt9Owo+ICsKPiArc3Ry dWN0IHhlbnNuZF9yZXNwIHsKPiArCXVuaW9uIHsKPiArCQlzdHJ1Y3QgeGVuc25kX3Jlc3BvbnNl IHJhdzsKPiArCQlzdHJ1Y3Qgewo+ICsJCQl1aW50MTZfdCBpZDsKPiArCQkJdWludDhfdCBvcGVy YXRpb247Cj4gKwkJCXVpbnQ4X3Qgc3RyZWFtX2lkeDsKPiArCQkJaW50OF90IHN0YXR1czsKPiAr CQl9IGRhdGE7Cj4gKwl9IHU7Cj4gK307Cj4gKwo+ICtERUZJTkVfUklOR19UWVBFUyh4ZW5fc25k aWYsIHN0cnVjdCB4ZW5zbmRfcmVxLAo+ICsJCXN0cnVjdCB4ZW5zbmRfcmVzcCk7Cj4gKwo+ICsj ZW5kaWYgLyogX19YRU5fUFVCTElDX0lPX1hFTlNORF9MSU5VWF9IX18gKi8KPiAtLSAKPiAyLjcu NAo+IAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4gWGVuLWRldmVsIG1haWxpbmcgbGlzdAo+IFhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCj4gaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==