From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v11] xen: add para-virtual sound interface header file Date: Fri, 25 Nov 2016 10:49:38 +0200 Message-ID: <1480063778-29935-2-git-send-email-andr2000@gmail.com> References: <1480063778-29935-1-git-send-email-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1480063778-29935-1-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: xen-devel@lists.xensource.com Cc: embedded-pv-devel@lists.xenproject.org, lars.kurth@citrix.com, vlad.babchuk@gmail.com, ian.jackson@eu.citrix.com, dario.faggioli@citrix.com, tim@xen.org, iurii.konovalenko@globallogic.com, andrii.anisov@gmail.com, olekstysh@gmail.com, andr2000@gmail.com, al1img@gmail.com, david.vrabel@citrix.com, JBeulich@suse.com, julien.grall@arm.com, oleksandr.dmytryshyn@globallogic.com, joculator@gmail.com List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPE9sZWtzYW5kcl9BbmRydXNoY2hlbmtvQGVw YW0uY29tPgoKVGhpcyBpcyB0aGUgQUJJIGZvciB0aGUgdHdvIGhhbHZlcyBvZiBhIHBhcmEtdmly dHVhbGl6ZWQKc291bmQgZHJpdmVyIHRvIGNvbW11bmljYXRlIHdpdGggZWFjaCB0byBvdGhlci4K ClNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxPbGVrc2FuZHJfQW5kcnVz aGNoZW5rb0BlcGFtLmNvbT4KU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEdyeXRzb3YgPE9sZWtz YW5kcl9Hcnl0c292QGVwYW0uY29tPgpTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgRG15dHJ5c2h5 biA8b2xla3NhbmRyLmRteXRyeXNoeW5AZ2xvYmFsbG9naWMuY29tPgpTaWduZWQtb2ZmLWJ5OiBJ dXJpaSBLb25vdmFsZW5rbyA8aXVyaWkua29ub3ZhbGVua29AZ2xvYmFsbG9naWMuY29tPgoKLS0t CkNoYW5nZXMgc2luY2UgdjE6CiAqIHJlbW92ZWQgX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykp IGZyb20gYWxsIHN0cnVjdHVyZXMgZGVmaW5pdGlvbnMKCkNoYW5nZXMgc2luY2UgdjI6CiAqIHJl bW92ZWQgYWxsIEMgc3RydWN0dXJlcwogKiBhZGRlZCBwcm90b2NvbCBkZXNjcmlwdGlvbiBiZXR3 ZWVuIGZyb250ZW5kIGFuZCBiYWNrZW5kIGRyaXZlcnMKCkNoYW5nZXMgc2luY2UgdjM6CiAqIGZp eGVkIHNvbWUgdHlwb3MKICogcmVuYW1lZCBYRU5TTkRfUENNX0ZPUk1BVF9GTE9BVF8qKiB0byBY RU5TTkRfUENNX0ZPUk1BVF9GMzJfKioKICogcmVuYW1lZCBYRU5TTkRfUENNX0ZPUk1BVF9GTE9B VDY0XyoqIHRvIFhFTlNORF9QQ01fRk9STUFUX0Y2NF8qKgogKiBhZGRlZCAnaWQnIGZpZWxkIHRv IHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSBwYWNrZXRzCiAqIHJlbmFtZWQgJ3N0cmVhbV9pZCcg dG8gJ3N0cmVhbScgaW4gdGhlIHBhY2tldHMgZGVzY3JpcHRpb24KICogcmVuYW1lZCAncGNtX2Rh dGFfcmF0ZScgdG8gJ3BjbV9yYXRlJyBpbiB0aGUgcGFja2V0cyBkZXNjcmlwdGlvbgogKiByZW5h bWVkICdwY21fc3RyZWFtX3R5cGUnIHRvICdwY21fdHlwZScgaW4gdGhlIHBhY2tldHMgZGVzY3Jp cHRpb24KICogcmVtb3ZlZCAnc3RyZWFtX2lkJyBmaWVsZCBmcm9tIHRoZSByZXNwb25zZSBwYWNr ZXRzCgpDaGFuZ2VzIHNpbmNlIHY0OgogKiByZW5hbWVkICdzdHJlYW1faWQnIGJhY2sgdG8gdGhl IHRvICdzdHJlYW0nIGluIHRoZSBwYWNrZXRzIGRlc2NyaXB0aW9uCiAqIG1vdmVkICdpZCcgZmll bGQgdG8gdGhlIHVwcGVyIHBvc2l0aW9uIGluIHRoZSByZXNwb25zZSBwYWNrZXRzCgpDaGFuZ2Vz IHNpbmNlIHY1OgogKiBTbGlnaHRseSByZXdvcmtlZCByZXF1ZXN0L3Jlc3BvbnNlIHBhY2tldHMK ICogU2l6ZSBvZiB0aGUgcmVxdWVzdC9yZXNwb25zZSBwYWNrZXQgaXMgY2hhbmdlZCB0byB0aGUg NjQgYnl0ZXMKICogTm93IHBhcmFtZXRlcnMgZm9yIHRoZSBYRU5TTkRfT1BfU0VUX1ZPTFVNRS9Y RU5TTkRfT1BfR0VUX1ZPTFVNRSBhcmUKICAgcGFzc2VkIHZpYSBzaGFyZWQgcGFnZQogKiBBZGRl ZCBwYXJhbWV0ZXJzIGZvciB0aGUgWGVuQnVzIG5vZGVzIChub3cgZWFjaCBzdHJlYW0gY2FuIGJl IG1hcHBlZAogICB0byB0aGUgZGVmaW5lZCBzb3VuZCBkZXZpY2UgaW4gdGhlIGJhY2tlbmQgdXNp bmcgdGhvc2UgcGFyYW1ldGVycykKICogQWRkZWQgWGVuQnVzIHN0YXRlIGRpYWdyYW1zIGRlc2Ny aXB0aW9uCgpDaGFuZ2VzIHNpbmNlIHY2OgogKiBSZXdvcmtlZCBzdHJlYW1zIGRlc2NyaXB0aW9u ICBpbiB0aGUgQmFja2VuZCBYZW5CdXMgTm9kZXMKCkNoYW5nZXMgc2luY2Ugdjc6CiAqIHJlLXdv cmtlZCBiYWNrZW5kIGRldmljZSBwYXJhbWV0ZXJzIHRvIGJlIG1vcmUgZ2VuZXJpYyBhbmQgZmxl eGlibGUKICogZXh0ZW5kZWQgZnJvbnRlbmQgZGV2aWNlIHBhcmFtZXRlcnMKICogc2xpZ2h0bHkg dXBkYXRlZCBzdGF0ZSBtYWNoaW5lIGRlc2NyaXB0aW9uIGFkZGVkIG11dGUvdW5tdXRlIGNvbW1h bmRzCiAqIGFkZGVkIGNvbnN0YW50cyBmb3IgWGVuU3RvcmUgY29uZmlndXJhdGlvbiBzdHJpbmdz CiAgIChmaWVsZHMsIFBDTSBmb3JtYXRzIGV0Yy4pCiAqIGNoYW5nZWQgcmVxdWVzdC9yZXNwb25z ZSBzdHJ1Y3R1cmUgc2l6ZSBmcm9tIDY0IG9jdGV0cyB0byAxNgogKiBpbnRyb2R1Y2VkIGR5bmFt aWMgYnVmZmVyIGFsbG9jYXRpb24gaW5zdGVhZCBvZgogICBzdGF0aWMgWEVOU05EX01BWF9QQUdF U19QRVJfUkVRVUVTVAogKiByZS13b3JrZWQgb3BlbiByZXF1ZXN0IHRvIGFsbG93IGR5bmFtaWMg YnVmZmVyIGFsbG9jYXRpb24KICogcmUtd29ya2VkIHJlYWQvd3JpdGUvdm9sdW1lIHJlcXVlc3Rz LCBzbyB0aGV5IGRvbid0IHBhc3MgZ3JlZnM6CiAgIGJ1ZmZlciBmcm9tIHRoZSBvcGVuIHJlcXVl c3QgaXMgdXNlZCBmb3IgdGhlc2Ugb3BlcmF0aW9ucyB0byBwYXNzIGRhdGEKICogc3BlY2lmaWVk IHR5cGUgb2YgdGhlIHZvbHVtZSB2YWx1ZSB0byBiZSBhIHNpZ25lZCB2YWx1ZSBpbiBzdGVwcwog ICBvZiAwLjAwMSBkQm0sIHdoaWxlIDAgYmVpbmcgMGRCbS4KICogYWRkZWQgTGludXggaW5jbHVk ZSBmaWxlIHdpdGggc3RydWN0dXJlIGRlZmluaXRpb25zCgpDaGFuZ2VzIHNpbmNlIHY4OgogKiBj aGFuZ2VkIGZyb250ZW5kLWlkIHRvIGZyb250ZW5kX2lkCiAqIHNpbmdsZSBzb3VuZCBjYXJkIHN1 cHBvcnQsIGNvbmZpZ3VyZWQgd2l0aCBidW5jaCBvZgogICBkZXZpY2VzL3N0cmVhbXMKICogY2xh cmlmdWNhdGlvbiBtYWRlIG9uIHNhbXBsZSByYXRlcyBhbmQgZm9ybWF0cyBleHByZXNzZWQgYXMK ICAgZGVjaW1hbHMgdy9vIGFueSBwYXJ0aWN1bGFyIG9yZGVyaW5nCiAqIHB1dCBkZXNjcmlwdGlv biBvZiBtaWdyYXRpb24vZGlzY29ubmVjdGlvbiBzdGF0ZQogKiByZXBsYWNlZCBfX2F0dHJpYnV0 ZV9fKChwYWNrZWQpKSB0byBfX3BhY2tlZAogKiBjaGFuZ2VkIHBhZGRpbmcgb2YgcmluZyBzdHJ1 Y3R1cmVzIHRvIDY0IHRvIGZpdCBjYWNoZSBsaW5lCiAqIHJlbW92ZWVkICNpZmRlZiBfX0tFUk5F TAogKiBleHBsaWNpdGx5IHN0YXRlZCB3aGljaCBpbmRpY2VzIGluIFhlblN0b3JlIGNvbmZpZ3Vy YXRpb24KICAgYXJlIGNvbnRpZ3VvdXMKICogYWRkZWQgZGVzY3JpcHRpb24gdG8gd2hhdCBmcm9u dGVuZCdzIGRlZmF1bHRzIGFyZQogKiBtYWRlIG5hbWVzIG9mIHZpcnR1YWwgY2FyZC9kZXZpY2Vz IG9wdGlvbmFsCiAqIHJlbW92ZWQgUENNX0ZPUk1BVF9TUEVDSUFMCiAqIGNoYW5nZWQgdm9sdW1l IHVuaXRzIGZyb20gZEJtIHRvIGRCCgpDaGFuZ2VzIHNpbmNlIHY5OgogKiByZW1vdmVkIHNuZGlm X2xpbnV4LmgKICogbW92ZWQgYWxsIHN0cnVjdHVyZXMgZnJvbSBzbmRpZl9saW51eC5oIHRvIHNu ZGlmLmgKICogc3RydWN0dXJlcyBwYWRkZWQgd2hlcmUgbmVlZGVkCiAqIGZpeGVkIEh6IGNvbW1l bnQKCkNoYW5nZXMgc2luY2UgdjEwOgogKiBmaXhlZCB0YWJzIHRvIDQgc3BhY2VzIHRvIGNvbXBs eSB3aXRoIFhlbiBjb2Rpbmcgc3R5bGUKICogYWRkZWQgcGxhY2Vob2xkZXJzIHRvIGVtcHR5IHN0 cnVjdHVyZXMgKEM4OSBjb25jZXJuKQogKiBhZGRlZCBtaXNzaW5nIGhlYWRlciBpbmNsdWRlcwot LS0KIHhlbi9pbmNsdWRlL3B1YmxpYy9pby9zbmRpZi5oIHwgNzA1ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDcwNSBpbnNlcnRpb25zKCsp CiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2luY2x1ZGUvcHVibGljL2lvL3NuZGlmLmgKCmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaW8vc25kaWYuaCBiL3hlbi9pbmNsdWRlL3B1Ymxp Yy9pby9zbmRpZi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjYjJkZjYK LS0tIC9kZXYvbnVsbAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaW8vc25kaWYuaApAQCAtMCww ICsxLDcwNSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogc25kaWYuaAorICoKKyAqIFVu aWZpZWQgc291bmQtZGV2aWNlIEkvTyBpbnRlcmZhY2UgZm9yIFhlbiBndWVzdCBPU2VzLgorICoK KyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg cGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0 ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0 aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh dGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNv ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAq IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6 CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJ TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F UkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO T05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZ UklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgor ICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBP VEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZU V0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBHbG9iYWxMb2dpYyBJbmMuCisg KiBDb3B5cmlnaHQgKEMpIDIwMTYgRVBBTSBTeXN0ZW1zIEluYy4KKyAqCisgKiBBdXRob3JzOiBP bGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8T2xla3NhbmRyX0FuZHJ1c2hjaGVua29AZXBhbS5jb20+ CisgKiAgICAgICAgICBPbGVrc2FuZHIgR3J5dHNvdiA8T2xla3NhbmRyX0dyeXRzb3ZAZXBhbS5j b20+CisgKiAgICAgICAgICBPbGVrc2FuZHIgRG15dHJ5c2h5biA8b2xla3NhbmRyLmRteXRyeXNo eW5AZ2xvYmFsbG9naWMuY29tPgorICogICAgICAgICAgSXVyaWkgS29ub3ZhbGVua28gPGl1cmlp Lmtvbm92YWxlbmtvQGdsb2JhbGxvZ2ljLmNvbT4KKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJ Q19JT19YRU5TTkRfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19JT19YRU5TTkRfSF9fCisKKyNp bmNsdWRlICJyaW5nLmgiCisjaW5jbHVkZSAiLi4vZ3JhbnRfdGFibGUuaCIKKworLyoKKyAqIEZy b250LT5iYWNrIG5vdGlmaWNhdGlvbnM6IFdoZW4gZW5xdWV1aW5nIGEgbmV3IHJlcXVlc3QsIHNl bmRpbmcgYQorICogbm90aWZpY2F0aW9uIGNhbiBiZSBtYWRlIGNvbmRpdGlvbmFsIG9uIHJlcV9l dmVudCAoaS5lLiwgdGhlIGdlbmVyaWMKKyAqIGhvbGQtb2ZmIG1lY2hhbmlzbSBwcm92aWRlZCBi eSB0aGUgcmluZyBtYWNyb3MpLiBCYWNrZW5kcyBtdXN0IHNldAorICogcmVxX2V2ZW50IGFwcHJv cHJpYXRlbHkgKGUuZy4sIHVzaW5nIFJJTkdfRklOQUxfQ0hFQ0tfRk9SX1JFUVVFU1RTKCkpLgor ICoKKyAqIEJhY2stPmZyb250IG5vdGlmaWNhdGlvbnM6IFdoZW4gZW5xdWV1aW5nIGEgbmV3IHJl c3BvbnNlLCBzZW5kaW5nIGEKKyAqIG5vdGlmaWNhdGlvbiBjYW4gYmUgbWFkZSBjb25kaXRpb25h bCBvbiByc3BfZXZlbnQgKGkuZS4sIHRoZSBnZW5lcmljCisgKiBob2xkLW9mZiBtZWNoYW5pc20g cHJvdmlkZWQgYnkgdGhlIHJpbmcgbWFjcm9zKS4gRnJvbnRlbmRzIG11c3Qgc2V0CisgKiByc3Bf ZXZlbnQgYXBwcm9wcmlhdGVseSAoZS5nLiwgdXNpbmcgUklOR19GSU5BTF9DSEVDS19GT1JfUkVT UE9OU0VTKCkpLgorICovCisKKy8qCisgKiBGZWF0dXJlIGFuZCBQYXJhbWV0ZXIgTmVnb3RpYXRp b24KKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogVGhlIHR3byBoYWx2 ZXMgb2YgYSBQYXJhLXZpcnR1YWwgc291bmQgY2FyZCBkcml2ZXIgdXRpbGl6ZSBub2RlcyB3aXRo aW4gdGhlCisgKiBYZW5TdG9yZSB0byBjb21tdW5pY2F0ZSBjYXBhYmlsaXRpZXMgYW5kIHRvIG5l Z290aWF0ZSBvcGVyYXRpbmcgcGFyYW1ldGVycy4KKyAqIFRoaXMgc2VjdGlvbiBlbnVtZXJhdGVz IHRoZXNlIG5vZGVzIHdoaWNoIHJlc2lkZSBpbiB0aGUgcmVzcGVjdGl2ZSBmcm9udCBhbmQKKyAq IGJhY2tlbmQgcG9ydGlvbnMgb2YgdGhlIFhlblN0b3JlLCBmb2xsb3dpbmcgdGhlIFhlbkJ1cyBj b252ZW50aW9uLgorICoKKyAqIEFsbCBkYXRhIGluIHRoZSBYZW5TdG9yZSBpcyBzdG9yZWQgYXMg c3RyaW5ncy4gIE5vZGVzIHNwZWNpZnlpbmcgbnVtZXJpYworICogdmFsdWVzIGFyZSBlbmNvZGVk IGluIGRlY2ltYWwuICBJbnRlZ2VyIHZhbHVlIHJhbmdlcyBsaXN0ZWQgYmVsb3cgYXJlCisgKiBl eHByZXNzZWQgYXMgZml4ZWQgc2l6ZWQgaW50ZWdlciB0eXBlcyBjYXBhYmxlIG9mIHN0b3Jpbmcg dGhlIGNvbnZlcnNpb24KKyAqIG9mIGEgcHJvcGVybHkgZm9ybWF0ZWQgbm9kZSBzdHJpbmcsIHdp dGhvdXQgbG9zcyBvZiBpbmZvcm1hdGlvbi4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2tlbmQgWGVuQnVzIE5vZGVzCisgKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFk ZHJlc3NpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogSW5kaWNl cyB1c2VkIHRvIGFkZHJlc3MgZnJvbnRlbmRzLCBkcml2ZXIgaW5zdGFuY2VzLCBjYXJkcywKKyAq IGRldmljZXMgYW5kIHN0cmVhbXMuCisgKgorICogZnJvbnRlbmRfaWQKKyAqICAgICAgVmFsdWVz OiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgRG9tYWluIElEIG9mIHRoZSBzb3VuZCBmcm9u dGVuZC4KKyAqCisgKiBkcnZfaWR4CisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludD4KKyAq CisgKiAgICAgIFplcm8gYmFzZWQgY29udGlndW91cyBpbmRleCBvZiB0aGUgdmlydHVhbGl6ZWQg c291bmQgZHJpdmVyIGluc3RhbmNlIGluCisgKiAgICAgIHRoaXMgZG9tYWluLiBNdWx0aXBsZSBQ ViBkcml2ZXJzIGFyZSBhbGxvd2VkIGluIHRoZSBkb21haW4KKyAqICAgICAgYXQgdGhlIHNhbWUg dGltZS4KKyAqCisgKiBkZXZfaWQKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoK KyAqICAgICAgVW5pcXVlIGRldmljZSBJRC4KKyAqICAgICAgRG9lc24ndCBoYXZlIHRvIGJlIHpl cm8gYmFzZWQgYW5kL29yIHRvIGJlIGNvbnRpZ3VvdXMuCisgKgorICogc3RyZWFtX2lkeAorICog ICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICogICAgICBaZXJvIGJhc2VkIGNvbnRp Z3VvdXMgaW5kZXggb2YgdGhlIHN0cmVhbSBvZiB0aGUgZGV2aWNlLgorICoKKyAqIEV4YW1wbGUg Zm9yIHRoZSBmcm9udGVuZCBydW5uaW5nIGluIGRvbWFpbiA1LCBpbnN0YW5jZSBvZiB0aGUgZHJp dmVyCisgKiBpbiB0aGUgZnJvbnQgaXMgMCAoc2luZ2xlIG9yIGZpcnN0IFBWIGRyaXZlciksIGRl dmljZSBpZCAyLAorICogZmlyc3Qgc3RyZWFtICgwKToKKyAqIC9sb2NhbC9kb21haW4vPGZyb250 ZW5kX2lkPi9kZXZpY2UvdnNuZC88ZHJ2X2lkeD4vCisgKiAgICAgICAgIGRldmljZS88ZGV2X2lk Pi9zdHJlYW0vPHN0cmVhbV9pZHg+L3R5cGUgPSAicCIKKyAqIC9sb2NhbC9kb21haW4vNS9kZXZp Y2UvdnNuZC8wL2RldmljZS8yL3N0cmVhbS8wL3R5cGUgPSAicCIKKyAqCisgKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gUENNIHNldHRpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKgorICogRXZlcnkgdmlydHVhbGl6ZWQgc291bmQgZnJvbnRlbmQgaGFzIHNl dCBvZiBkZXZpY2VzIGFuZCBzdHJlYW1zLCBlYWNoCisgKiBpcyBpbmRpdmlkdWFsbHkgY29uZmln dXJlZC4gUGFydCBvZiB0aGUgUENNIGNvbmZpZ3VyYXRpb24gY2FuIGJlIGRlZmluZWQgYXQKKyAq IGhpZ2hlciBsZXZlbCBhbmQgYmUgZnVsbHkgb3IgcGFydGlhbGx5IHJlLXVzZWQgYnkgdGhlIHVu ZGVybHlpbmcgbGF5ZXJzLgorICogVGhlc2UgY29uZmlndXJhdGlvbiB2YWx1ZXMgYXJlOgorICog IG8gbnVtYmVyIG9mIGNoYW5uZWxzIChtaW4vbWF4KQorICogIG8gc3VwcG9ydGVkIHNhbXBsZSBy YXRlcworICogIG8gc3VwcG9ydGVkIHNhbXBsZSBmb3JtYXRzLgorICogRS5nLiBvbmUgY2FuIGRl ZmluZSB0aGVzZSB2YWx1ZXMgZm9yIHRoZSB3aG9sZSBkcml2ZXIsIGRldmljZSBvciBzdHJlYW0u CisgKiBFdmVyeSB1bmRlcmx5aW5nIGxheWVyIGluIHR1cm4gY2FuIHJlLWRlZmluZSBzb21lIG9y IGFsbCBvZiB0aGVtIHRvIGJldHRlcgorICogZml0IGl0cyBuZWVkcy4gRm9yIGV4YW1wbGUsIGRy aXZlciBtYXkgZGVmaW5lIG51bWJlciBvZiBjaGFubmVscyB0byBiZQorICogaW4gWzE7IDhdIHJh bmdlLCBhbmQgc29tZSBwYXJ0aWN1bGFyIHN0cmVhbSBtYXkgYmUgbGltaXRlZCB0byBbMTsgMl0g b25seS4KKyAqIFRoZSBydWxlIGlzIHRoYXQgdGhlIHVuZGVybHlpbmcgbGF5ZXIgbXVzdCBiZSBh IHN1YnNldCBvZiB0aGUgdXBwZXIgbGF5ZXIKKyAqIHJhbmdlLgorICoKKyAqIE5vdGU6IGlmIGFu eSBvZiB0aGUgdmFsdWVzIGFyZSBub3QgZGVmaW5lZCB0aGVuIFBWIGRyaXZlciBzaG91bGQgdXNl CisgKiBpdHMgZGVmYXVsdCB2YWx1ZXMgaW5zdGVhZC4KKyAqCisgKiBjaGFubmVscy1taW4KKyAq ICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgVGhlIG1pbmltdW0gYW1v dW50IG9mIGNoYW5uZWxzIHRoYXQgaXMgc3VwcG9ydGVkLgorICogICAgICBNdXN0IGJlIGF0IGxl YXN0IDEuIElmIG5vdCBkZWZpbmVkIHRoZW4gdXNlIGZyb250ZW5kJ3MgZGVmYXVsdC4KKyAqCisg KiBjaGFubmVscy1tYXgKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAg ICAgVGhlIG1heGltdW0gYW1vdW50IG9mIGNoYW5uZWxzIHRoYXQgaXMgc3VwcG9ydGVkLgorICog ICAgICBNdXN0IGJlIGF0IGxlYXN0IDxjaGFubmVscy1taW4+LiBJZiBub3QgZGVmaW5lZCB0aGVu IHVzZSBmcm9udGVuZCdzCisgKiAgICAgIGRlZmF1bHQuCisgKgorICogc2FtcGxlLXJhdGVzCisg KiAgICAgIFZhbHVlczogICAgICAgICA8bGlzdCBvZiB1aW50cz4KKyAqCisgKiAgICAgIExpc3Qg b2Ygc3VwcG9ydGVkIHNhbXBsZSByYXRlcyBzZXBhcmF0ZWQgYnkgWEVOU05EX0xJU1RfU0VQQVJB VE9SLgorICogICAgICBJZiBub3QgZGVmaW5lZCB0aGVuIHVzZSBmcm9udGVuZCdzIGRlZmF1bHQu IFNhbXBsZSByYXRlcyBhcmUgZXhwcmVzc2VkCisgKiAgICAgIGFzIGEgbGlzdCBvZiBkZWNpbWFs IHZhbHVlcyB3L28gYW55IG9yZGVyaW5nIHJlcXVpcmVtZW50LgorICoKKyAqIHNhbXBsZS1mb3Jt YXRzCisgKiAgICAgIFZhbHVlczogICAgICAgICA8bGlzdCBvZiBYRU5TTkRfUENNX0ZPUk1BVF9Y WFhfU1RSPgorICoKKyAqICAgICAgTGlzdCBvZiBzdXBwb3J0ZWQgc2FtcGxlIGZvcm1hdHMgc2Vw YXJhdGVkIGJ5IFhFTlNORF9MSVNUX1NFUEFSQVRPUi4KKyAqICAgICAgSWYgbm90IGRlZmluZWQg dGhlbiB1c2UgZnJvbnRlbmQncyBkZWZhdWx0LgorICoKKyAqIGJ1ZmZlci1zaXplCisgKiAgICAg IFZhbHVlczogICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIFRoZSBtYXhpbXVtIHNpemUgaW4g b2N0ZXRzIG9mIHRoZSBidWZmZXIgdG8gYWxsb2NhdGUgcGVyIHN0cmVhbS4KKyAqCisgKiBFeGFt cGxlIGNvbmZpZ3VyYXRpb246CisgKgorICogRHJpdmVyIGNvbmZpZ3VyYXRpb24gdXNlZCBieSBh bGwgc3RyZWFtczoKKyAqIC9sb2NhbC9kb21haW4vNS9kZXZpY2UvdnNuZC8wL3NhbXBsZS1mb3Jt YXRzID0gInM4O3U4O3MxNl9sZTtzMTZfYmUiCisgKiBTdHJlYW0gb3ZlcnJpZGVzIHNhbXBsZSBy YXRlcyBzdXBwb3J0ZWQ6CisgKiAvbG9jYWwvZG9tYWluLzUvZGV2aWNlL3ZzbmQvMC9kZXZpY2Uv Mi9zdHJlYW0vMC9zYW1wbGUtcmF0ZXMgPQorICogICAgICAgICI4MDAwOzIyMDUwOzQ0MTAwOzQ4 MDAwIgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVmlydHVhbCBzb3VuZCBjYXJkIHNl dHRpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBzaG9ydC1uYW1lCisgKiAgICAg IFZhbHVlczogICAgICAgICA8Y2hhclszMl0+CisgKgorICogICAgICBTaG9ydCBuYW1lIG9mIHRo ZSB2aXJ0dWFsIHNvdW5kIGNhcmQuIE9wdGlvbmFsLgorICoKKyAqIGxvbmctbmFtZQorICogICAg ICBWYWx1ZXM6ICAgICAgICAgPGNoYXJbODBdPgorICoKKyAqICAgICAgTG9uZyBuYW1lIG9mIHRo ZSB2aXJ0dWFsIHNvdW5kIGNhcmQuIE9wdGlvbmFsLgorICoKKyAqIEZvciBleGFtcGxlLAorICog L2xvY2FsL2RvbWFpbi81L2RldmljZS92c25kLzAvc2hvcnQtbmFtZSA9ICJWaXJ0dWFsIGF1ZGlv IgorICogL2xvY2FsL2RvbWFpbi81L2RldmljZS92c25kLzAvbG9uZy1uYW1lID0KKyAqICAgICAg ICAgIlZpcnR1YWwgYXVkaW8gYXQgY2VudGVyIHN0YWNrIgorICoKKyAqLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gRGV2aWNlIHNldHRpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKiBuYW1lCisgKiAgICAgIFZhbHVlczogICAgICAgICA8Y2hhcls4MF0+CisgKgor ICogICAgICBOYW1lIG9mIHRoZSBzb3VuZCBkZXZpY2Ugd2l0aGluIHRoZSB2aXJ0dWFsIHNvdW5k IGNhcmQuIE9wdGlvbmFsLgorICoKKyAqIEZvciBleGFtcGxlLAorICogL2xvY2FsL2RvbWFpbi81 L2RldmljZS92c25kLzAvZGV2aWNlLzAvbmFtZSA9ICJHZW5lcmFsIGFuYWxvZyIKKyAqCisgKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSBzZXR0aW5ncyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogdHlwZQorICogICAgICBWYWx1ZXM6ICAgICAgICAg InAiLCAiYyIKKyAqCisgKiAgICAgIFN0cmVhbSB0eXBlOiAicCIgLSBwbGF5YmFjayBzdHJlYW0s ICJjIiAtIGNhcHR1cmUgc3RyZWFtCisgKgorICogICAgICBJZiBib3RoIGNhcHR1cmUgYW5kIHBs YXliYWNrIGFyZSBuZWVkZWQgdGhlbiB0d28gc3RyZWFtcyBuZWVkIHRvIGJlCisgKiAgICAgIGRl ZmluZWQgdW5kZXIgdGhlIHNhbWUgZGV2aWNlLiBGb3IgZXhhbXBsZSwKKyAqICAgICAgL2xvY2Fs L2RvbWFpbi81L2RldmljZS92c25kLzAvZGV2aWNlLzAvc3RyZWFtLzAvdHlwZSA9ICJwIgorICog ICAgICAvbG9jYWwvZG9tYWluLzUvZGV2aWNlL3ZzbmQvMC9kZXZpY2UvMC9zdHJlYW0vMS90eXBl ID0gImMiCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBGcm9udGVuZCBYZW5CdXMgTm9kZXMKKyAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoK KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVxdWVzdCBUcmFuc3BvcnQgUGFyYW1ldGVycyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFRoZXNlIGFyZSBwZXIgc3RyZWFtLgorICoK KyAqIGV2ZW50LWNoYW5uZWwKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAq ICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIFhlbiBldmVudCBjaGFubmVsIHVzZWQgdG8gc2ln bmFsIGFjdGl2aXR5CisgKiAgICAgIGluIHRoZSByaW5nIGJ1ZmZlci4KKyAqCisgKiByaW5nLXJl ZgorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICogICAgICBUaGUgWGVuIGdy YW50IHJlZmVyZW5jZSBncmFudGluZyBwZXJtaXNzaW9uIGZvciB0aGUgYmFja2VuZCB0byBtYXAK KyAqICAgICAgYSBzb2xlIHBhZ2UgaW4gYSBzaW5nbGUgcGFnZSBzaXplZCByaW5nIGJ1ZmZlci4K KyAqCisgKiBpbmRleAorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICogICAg ICBBZnRlciBzdHJlYW0gaW5pdGlhbGl6YXRpb24gaXQgaXMgYXNzaWduZWQgYSB1bmlxdWUgSUQg KHdpdGhpbiB0aGUgZnJvbnQKKyAqICAgICAgZHJpdmVyKSwgc28gZXZlcnkgc3RyZWFtIG9mIHRo ZSBmcm9udGVuZCBjYW4gYmUgaWRlbnRpZmllZCBieSB0aGUKKyAqICAgICAgYmFja2VuZCBieSB0 aGlzIElELiBUaGlzIGlzIG5vdCBlcXVhbCB0byBzdHJlYW1faWR4IGFzIHRoZSBsYXRlciBpcwor ICogICAgICB6ZXJvIGJhc2VkIHdpdGhpbiBhIGRldmljZSwgYnV0IHRoaXMgaW5kZXggaXMgY29u dGlndW91cyB3aXRoaW4gdGhlCisgKiAgICAgIGRyaXZlci4KKyAqLworCisvKgorICogU1RBVEUg RElBR1JBTVMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdGFydHVwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogVG9vbCBzdGFjayBjcmVhdGVzIGZyb250 IGFuZCBiYWNrIHN0YXRlIG5vZGVzIHdpdGggaW5pdGlhbCBzdGF0ZQorICogWGVuYnVzU3RhdGVJ bml0aWFsaXNpbmcuCisgKiBUb29sIHN0YWNrIGNyZWF0ZXMgYW5kIHNldHMgdXAgZnJvbnRlbmQg c291bmQgY29uZmlndXJhdGlvbiBub2RlcyBwZXIgZG9tYWluLgorICoKKyAqIEZyb250ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrCisgKiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0gICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICog WGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlSW5pdGlhbGlz aW5nCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gUXVlcnkgYmFj a2VuZCBkZXZpY2UgaWRlbnRpZmljYXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvIE9wZW4gYW5kIHZhbGlkYXRlIGJhY2tlbmQgZGV2aWNlLgorICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVgorICogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlSW5pdFdhaXQKKyAqCisg KiBvIFF1ZXJ5IGZyb250ZW5kIGNvbmZpZ3VyYXRpb24KKyAqIG8gQWxsb2NhdGUgYW5kIGluaXRp YWxpemUKKyAqICAgZXZlbnQgY2hhbm5lbHMgcGVyIGNvbmZpZ3VyZWQKKyAqICAgcGxheWJhY2sv Y2FwdHVyZSBzdHJlYW0uCisgKiBvIFB1Ymxpc2ggdHJhbnNwb3J0IHBhcmFtZXRlcnMKKyAqICAg dGhhdCB3aWxsIGJlIGluIGVmZmVjdCBkdXJpbmcKKyAqICAgdGhpcyBjb25uZWN0aW9uLgorICog ICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgVgorICog WGVuYnVzU3RhdGVJbml0aWFsaXNlZAorICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbyBRdWVyeSBmcm9udGVuZCB0cmFuc3BvcnQgcGFyYW1ldGVycy4KKyAqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBDb25uZWN0IHRvIHRoZSBldmVu dCBjaGFubmVscy4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFYKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBYZW5idXNTdGF0ZUNvbm5lY3RlZAorICoKKyAqICBvIENyZWF0ZSBhbmQgaW5pdGlhbGl6ZSBP UworICogIHZpcnR1YWwgc291bmQgZGV2aWNlIGluc3RhbmNlcworICogIGFzIHBlciBjb25maWd1 cmF0aW9uLgorICogICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICB8CisgKiAgICAgICAg ICAgICAgVgorICogWGVuYnVzU3RhdGVDb25uZWN0ZWQKKyAqCisgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVVbmtub3duCisgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVDbG9zZWQKKyAqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZUNsb3NpbmcKKyAqIG8gUmVtb3Zl IHZpcnR1YWwgc291bmQgZGV2aWNlCisgKiBvIFJlbW92ZSBldmVudCBjaGFubmVscworICogICAg ICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgVgorICogWGVu YnVzU3RhdGVDbG9zZWQKKyAqCisgKi8KKworLyoKKyAqIFBDTSBGT1JNQVRTCisgKgorICogWEVO U05EX1BDTV9GT1JNQVRfPGZvcm1hdD5bXzxlbmRpYW4+XQorICoKKyAqIGZvcm1hdDogPFMvVS9G PjxiaXRzPiBvciA8bmFtZT4KKyAqICAgICBTIC0gc2lnbmVkLCBVIC0gdW5zaWduZWQsIEYgLSBm bG9hdAorICogICAgIGJpdHMgLSA4LCAxNiwgMjQsIDMyCisgKiAgICAgbmFtZSAtIE1VX0xBVywg R1NNLCBldGMuCisgKgorICogZW5kaWFuOiA8TEUvQkU+LCBtYXkgYmUgYWJzZW50CisgKiAgICAg TEUgLSBMaXR0bGUgZW5kaWFuLCBCRSAtIEJpZyBlbmRpYW4KKyAqLworI2RlZmluZSBYRU5TTkRf UENNX0ZPUk1BVF9TOCAgICAgICAgICAgIDAKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTgg ICAgICAgICAgICAxCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MxNl9MRSAgICAgICAgMgor I2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMTZfQkUgICAgICAgIDMKKyNkZWZpbmUgWEVOU05E X1BDTV9GT1JNQVRfVTE2X0xFICAgICAgICA0CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1Ux Nl9CRSAgICAgICAgNQorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMjRfTEUgICAgICAgIDYK KyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzI0X0JFICAgICAgICA3CisjZGVmaW5lIFhFTlNO RF9QQ01fRk9STUFUX1UyNF9MRSAgICAgICAgOAorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9V MjRfQkUgICAgICAgIDkKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzMyX0xFICAgICAgICAx MAorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMzJfQkUgICAgICAgIDExCisjZGVmaW5lIFhF TlNORF9QQ01fRk9STUFUX1UzMl9MRSAgICAgICAgMTIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JN QVRfVTMyX0JFICAgICAgICAxMworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GMzJfTEUgICAg ICAgIDE0IC8qIDQtYnl0ZSBmbG9hdCwgSUVFRS03NTQgMzItYml0LCAqLworI2RlZmluZSBYRU5T TkRfUENNX0ZPUk1BVF9GMzJfQkUgICAgICAgIDE1IC8qIHJhbmdlIC0xLjAgdG8gMS4wICAgICAg ICAgICAgICAqLworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GNjRfTEUgICAgICAgIDE2IC8q IDgtYnl0ZSBmbG9hdCwgSUVFRS03NTQgNjQtYml0LCAqLworI2RlZmluZSBYRU5TTkRfUENNX0ZP Uk1BVF9GNjRfQkUgICAgICAgIDE3IC8qIHJhbmdlIC0xLjAgdG8gMS4wICAgICAgICAgICAgICAq LworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9JRUM5NThfU1VCRlJBTUVfTEUgMTgKKyNkZWZp bmUgWEVOU05EX1BDTV9GT1JNQVRfSUVDOTU4X1NVQkZSQU1FX0JFIDE5CisjZGVmaW5lIFhFTlNO RF9QQ01fRk9STUFUX01VX0xBVyAgICAgICAgMjAKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRf QV9MQVcgICAgICAgICAyMQorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9JTUFfQURQQ00gICAg IDIyCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX01QRUcgICAgICAgICAgMjMKKyNkZWZpbmUg WEVOU05EX1BDTV9GT1JNQVRfR1NNICAgICAgICAgICAyNAorCisvKgorICogUkVRVUVTVCBDT0RF Uy4KKyAqLworI2RlZmluZSBYRU5TTkRfT1BfT1BFTiAgICAgICAgICAgICAgICAgIDAKKyNkZWZp bmUgWEVOU05EX09QX0NMT1NFICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIFhFTlNORF9PUF9S RUFEICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBYRU5TTkRfT1BfV1JJVEUgICAgICAgICAg ICAgICAgIDMKKyNkZWZpbmUgWEVOU05EX09QX1NFVF9WT0xVTUUgICAgICAgICAgICA0CisjZGVm aW5lIFhFTlNORF9PUF9HRVRfVk9MVU1FICAgICAgICAgICAgNQorI2RlZmluZSBYRU5TTkRfT1Bf TVVURSAgICAgICAgICAgICAgICAgIDYKKyNkZWZpbmUgWEVOU05EX09QX1VOTVVURSAgICAgICAg ICAgICAgICA3CisKKy8qCisgKiBYRU5TVE9SRSBGSUVMRCBBTkQgUEFUSCBOQU1FIFNUUklOR1Ms IEhFTFBFUlMuCisgKi8KKyNkZWZpbmUgWEVOU05EX0RSSVZFUl9OQU1FICAgICAgICAgICAgICAg ICAgICJ2c25kIgorCisjZGVmaW5lIFhFTlNORF9MSVNUX1NFUEFSQVRPUiAgICAgICAgICAgICAg ICAiOyIKKy8qIFBhdGggZW50cmllcyAqLworI2RlZmluZSBYRU5TTkRfUEFUSF9ERVZJQ0UgICAg ICAgICAgICAgICAgICAgImRldmljZSIKKyNkZWZpbmUgWEVOU05EX1BBVEhfU1RSRUFNICAgICAg ICAgICAgICAgICAgICJzdHJlYW0iCisvKiBGaWVsZCBuYW1lcyAqLworI2RlZmluZSBYRU5TTkRf RklFTERfVkNBUkRfU0hPUlRfTkFNRSAgICAgICAgInNob3J0LW5hbWUiCisjZGVmaW5lIFhFTlNO RF9GSUVMRF9WQ0FSRF9MT05HX05BTUUgICAgICAgICAibG9uZy1uYW1lIgorI2RlZmluZSBYRU5T TkRfRklFTERfUklOR19SRUYgICAgICAgICAgICAgICAgInJpbmctcmVmIgorI2RlZmluZSBYRU5T TkRfRklFTERfRVZUX0NITkwgICAgICAgICAgICAgICAgImV2ZW50LWNoYW5uZWwiCisjZGVmaW5l IFhFTlNORF9GSUVMRF9ERVZJQ0VfTkFNRSAgICAgICAgICAgICAibmFtZSIKKyNkZWZpbmUgWEVO U05EX0ZJRUxEX1RZUEUgICAgICAgICAgICAgICAgICAgICJ0eXBlIgorI2RlZmluZSBYRU5TTkRf RklFTERfU1RSRUFNX0lOREVYICAgICAgICAgICAgImluZGV4IgorI2RlZmluZSBYRU5TTkRfRklF TERfQ0hBTk5FTFNfTUlOICAgICAgICAgICAgImNoYW5uZWxzLW1pbiIKKyNkZWZpbmUgWEVOU05E X0ZJRUxEX0NIQU5ORUxTX01BWCAgICAgICAgICAgICJjaGFubmVscy1tYXgiCisjZGVmaW5lIFhF TlNORF9GSUVMRF9TQU1QTEVfUkFURVMgICAgICAgICAgICAic2FtcGxlLXJhdGVzIgorI2RlZmlu ZSBYRU5TTkRfRklFTERfU0FNUExFX0ZPUk1BVFMgICAgICAgICAgInNhbXBsZS1mb3JtYXRzIgor I2RlZmluZSBYRU5TTkRfRklFTERfQlVGRkVSX1NJWkUgICAgICAgICAgICAgImJ1ZmZlci1zaXpl IgorCisvKiBTdHJlYW0gdHlwZSBmaWVsZCB2YWx1ZXMuICovCisjZGVmaW5lIFhFTlNORF9TVFJF QU1fVFlQRV9QTEFZQkFDSyAgICAgICAgICAicCIKKyNkZWZpbmUgWEVOU05EX1NUUkVBTV9UWVBF X0NBUFRVUkUgICAgICAgICAgICJjIgorLyogU2FtcGxlIHJhdGUgbWF4IHN0cmluZyBsZW5ndGgg Ki8KKyNkZWZpbmUgWEVOU05EX1NBTVBMRV9SQVRFX01BWF9MRU4gICAgICAgICAgICA2CisvKiBT YW1wbGUgZm9ybWF0IGZpZWxkIHZhbHVlcyAqLworI2RlZmluZSBYRU5TTkRfU0FNUExFX0ZPUk1B VF9NQVhfTEVOICAgICAgICAgMjQKKworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TOF9TVFIg ICAgICAgICAgICAgICAgICJzOCIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVThfU1RSICAg ICAgICAgICAgICAgICAidTgiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MxNl9MRV9TVFIg ICAgICAgICAgICAgInMxNl9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzE2X0JFX1NU UiAgICAgICAgICAgICAiczE2X2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMTZfTEVf U1RSICAgICAgICAgICAgICJ1MTZfbGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UxNl9C RV9TVFIgICAgICAgICAgICAgInUxNl9iZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzI0 X0xFX1NUUiAgICAgICAgICAgICAiczI0X2xlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9T MjRfQkVfU1RSICAgICAgICAgICAgICJzMjRfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFU X1UyNF9MRV9TVFIgICAgICAgICAgICAgInUyNF9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JN QVRfVTI0X0JFX1NUUiAgICAgICAgICAgICAidTI0X2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZP Uk1BVF9TMzJfTEVfU1RSICAgICAgICAgICAgICJzMzJfbGUiCisjZGVmaW5lIFhFTlNORF9QQ01f Rk9STUFUX1MzMl9CRV9TVFIgICAgICAgICAgICAgInMzMl9iZSIKKyNkZWZpbmUgWEVOU05EX1BD TV9GT1JNQVRfVTMyX0xFX1NUUiAgICAgICAgICAgICAidTMyX2xlIgorI2RlZmluZSBYRU5TTkRf UENNX0ZPUk1BVF9VMzJfQkVfU1RSICAgICAgICAgICAgICJ1MzJfYmUiCisjZGVmaW5lIFhFTlNO RF9QQ01fRk9STUFUX0YzMl9MRV9TVFIgICAgICAgICAgICAgImZsb2F0X2xlIgorI2RlZmluZSBY RU5TTkRfUENNX0ZPUk1BVF9GMzJfQkVfU1RSICAgICAgICAgICAgICJmbG9hdF9iZSIKKyNkZWZp bmUgWEVOU05EX1BDTV9GT1JNQVRfRjY0X0xFX1NUUiAgICAgICAgICAgICAiZmxvYXQ2NF9sZSIK KyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjY0X0JFX1NUUiAgICAgICAgICAgICAiZmxvYXQ2 NF9iZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfSUVDOTU4X1NVQkZSQU1FX0xFX1NUUiAi aWVjOTU4X3N1YmZyYW1lX2xlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9JRUM5NThfU1VC RlJBTUVfQkVfU1RSICJpZWM5NThfc3ViZnJhbWVfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9S TUFUX01VX0xBV19TVFIgICAgICAgICAgICAgIm11X2xhdyIKKyNkZWZpbmUgWEVOU05EX1BDTV9G T1JNQVRfQV9MQVdfU1RSICAgICAgICAgICAgICAiYV9sYXciCisjZGVmaW5lIFhFTlNORF9QQ01f Rk9STUFUX0lNQV9BRFBDTV9TVFIgICAgICAgICAgImltYV9hZHBjbSIKKyNkZWZpbmUgWEVOU05E X1BDTV9GT1JNQVRfTVBFR19TVFIgICAgICAgICAgICAgICAibXBlZyIKKyNkZWZpbmUgWEVOU05E X1BDTV9GT1JNQVRfR1NNX1NUUiAgICAgICAgICAgICAgICAiZ3NtIgorCisvKgorICogU1RBVFVT IFJFVFVSTiBDT0RFUy4KKyAqLworIC8qIE9wZXJhdGlvbiBmYWlsZWQgZm9yIHNvbWUgdW5zcGVj aWZpZWQgcmVhc29uIChlLiBnLiAtRUlPKS4gKi8KKyNkZWZpbmUgWEVOU05EX1JTUF9FUlJPUiAg ICAgICAgICAgICAgICAgKC0xKQorIC8qIE9wZXJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5 LiAqLworI2RlZmluZSBYRU5TTkRfUlNQX09LQVkgICAgICAgICAgICAgICAgICAwCisKKy8qCisg KiBEZXNjcmlwdGlvbiBvZiB0aGUgcHJvdG9jb2wgYmV0d2VlbiBmcm9udGVuZCBhbmQgYmFja2Vu ZCBkcml2ZXIuCisgKgorICogVGhlIHR3byBoYWx2ZXMgb2YgYSBQYXJhLXZpcnR1YWwgc291bmQg ZHJpdmVyIGNvbW11bmljYXRlcyB3aXRoCisgKiBlYWNoIG90aGVyIHVzaW5nIGEgc2hhcmVkIHBh Z2UgYW5kIGFuIGV2ZW50IGNoYW5uZWwuCisgKiBTaGFyZWQgcGFnZSBjb250YWlucyBhIHJpbmcg d2l0aCByZXF1ZXN0L3Jlc3BvbnNlIHBhY2tldHMuCisgKgorICoKKyAqIEFsbCByZXF1ZXN0IHBh Y2tldHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDY0IG9jdGV0cykKKyAqCisgKgorICogUmVxdWVz dCBvcGVuIC0gb3BlbiBhIFBDTSBzdHJlYW0gZm9yIHBsYXliYWNrIG9yIGNhcHR1cmU6CisgKiAg ICAgICAgICAwICAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAg ICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAg ICAgICAgaWQgICAgICAgICAgICAgICAgfCAgICBvcGVyYXRpb24gICAgfCAgICAgc3RyZWFtX2lk eCAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGFkZGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNtX3JhdGUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICog fCAgcGNtX2Zvcm1hdCAgICAgfCAgcGNtX2NoYW5uZWxzICAgfCAgICAgICAgICAgICByZXNlcnZl ZCAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAg ICAgICAgICAgICBncmVmX2RpcmVjdG9yeV9zdGFydCAgICAgICAgICAgICAgICAgICAgICAgICAg fAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICoKKyAq IGlkIC0gdWludDE2X3QsIHByaXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBpbiByZXNwb25zZQor ICogb3BlcmF0aW9uIC0gdWludDhfdCwgWEVOU05EX09QX09QRU4KKyAqIHN0cmVhbV9pZHggLSB1 aW50OF90LCBpbmRleCBvZiB0aGUgc3RyZWFtICgic3RyZWFtc19pZHgiIFhlblN0b3JlIGVudHJ5 CisgKiAgIG9mIHRoZSBzdHJlYW0pCisgKiBwY21fcmF0ZSAtIHVpbnQzMl90LCBzdHJlYW0gZGF0 YSByYXRlLCBIegorICogcGNtX2Zvcm1hdCAtIHVpbnQ4X3QsIFhFTlNORF9QQ01fRk9STUFUX1hY WCB2YWx1ZQorICogcGNtX2NoYW5uZWxzIC0gdWludDhfdCwgbnVtYmVyIG9mIGNoYW5uZWxzIG9m IHRoaXMgc3RyZWFtCisgKiBncmVmX2RpcmVjdG9yeV9zdGFydCAtIGdyYW50X3JlZl90LCBhIHJl ZmVyZW5jZSB0byB0aGUgZmlyc3Qgc2hhcmVkIHBhZ2UKKyAqICAgZGVzY3JpYmluZyBzaGFyZWQg YnVmZmVyIHJlZmVyZW5jZXMuIEF0IGxlYXN0IG9uZSBwYWdlIGV4aXN0cy4gSWYgc2hhcmVkCisg KiAgIGJ1ZmZlciBzaXplIGV4Y2VlZHMgd2hhdCBjYW4gYmUgYWRkcmVzc2VkIGJ5IHRoaXMgc2lu Z2xlIHBhZ2UsIHRoZW4KKyAqICAgcmVmZXJlbmNlIHRvIHRoZSBuZXh0IHBhZ2UgbXVzdCBiZSBz dXBwbGllZCAoZ3JlZl9kaXJfbmV4dF9wYWdlIGJlbG93CisgKiAgIGlzIG5vdCBOVUxMKQorICov CisKK3N0cnVjdCB4ZW5zbmRfb3Blbl9yZXEgeworICAgIHVpbnQzMl90IHBjbV9yYXRlOyAvKiBp biBIeiAqLworICAgIHVpbnQ4X3QgcGNtX2Zvcm1hdDsKKyAgICB1aW50OF90IHBjbV9jaGFubmVs czsKKyAgICB1aW50MTZfdCBfX3Jlc2VydmVkMDsKKyAgICBncmFudF9yZWZfdCBncmVmX2RpcmVj dG9yeV9zdGFydDsKK307CisKKy8qCisgKiBTaGFyZWQgcGFnZSBmb3IgWEVOU05EX09QX09QRU4g YnVmZmVyIGRlc2NyaXB0b3IgKGdyZWZfZGlyZWN0b3J5IGluIHRoZQorICogICByZXF1ZXN0KSBl bXBsb3lzIGEgbGlzdCBvZiBwYWdlcywgZGVzY3JpYmluZyBhbGwgcGFnZXMgb2YgdGhlIHNoYXJl ZCBkYXRhCisgKiAgIGJ1ZmZlcjoKKyAqICAgICAgICAgIDAgICAgICAgICAgICAgICAgIDEgICAg ICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICBncmVmX2Rpcl9uZXh0X3Bh Z2UgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1fZ3JlZnMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBncmVmWzBdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBncmVmWzFdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmVmW04gLTFdICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogZ3JlZl9kaXJfbmV4dF9w YWdlIC0gZ3JhbnRfcmVmX3QsIHJlZmVyZW5jZSB0byB0aGUgbmV4dCBwYWdlIGRlc2NyaWJpbmcK KyAqICAgcGFnZSBkaXJlY3RvcnkKKyAqIG51bV9ncmVmcyAtIG51bWJlciBvZiBncmVmcyBpbiB0 aGlzIHBhZ2UKKyAqIGdyZWZbaV0gLSBncmFudF9yZWZfdCwgcmVmZXJlbmNlIHRvIGEgc2hhcmVk IHBhZ2Ugb2YgdGhlIGJ1ZmZlcgorICogICBhbGxvY2F0ZWQgYXQgWEVOU05EX09QX09QRU4KKyAq LworCitzdHJ1Y3QgeGVuc25kX3BhZ2VfZGlyZWN0b3J5IHsKKyAgICBncmFudF9yZWZfdCBncmVm X2Rpcl9uZXh0X3BhZ2U7CisgICAgdWludDMyX3QgbnVtX2dyZWZzOworICAgIGdyYW50X3JlZl90 IGdyZWZbMF07Cit9OworCisvKgorICogIFJlcXVlc3QgY2xvc2UgLSBjbG9zZSBhbiBvcGVuZWQg cGNtIHN0cmVhbToKKyAqICAgICAgICAgIDAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAg ICAgICAyICAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r CisgKiB8ICAgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgIG9wZXJhdGlvbiAg ICB8ICAgICBzdHJlYW1faWR4ICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisg KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogaWQgLSB1aW50 MTZfdCwgcHJpdmF0ZSBndWVzdCB2YWx1ZSwgZWNob2VkIGluIHJlc3BvbnNlCisgKiBvcGVyYXRp b24gLSB1aW50OF90LCBYRU5TTkRfT1BfQ0xPU0UKKyAqIHN0cmVhbV9pZHggLSB1aW50OF90LCBp bmRleCBvZiB0aGUgc3RyZWFtICgic3RyZWFtc19pZHgiIFhlblN0b3JlIGVudHJ5CisgKiAgIG9m IHRoZSBzdHJlYW0pCisgKi8KKworc3RydWN0IHhlbnNuZF9jbG9zZV9yZXEgeworICAgIC8qIHBs YWNlIGhvbGRlciwgcmVtb3ZlIGlmIGNoYW5naW5nIHRoZSBzdHJ1Y3R1cmUgKEM4OSBjb25jZXJu KSAqLworICAgIHVpbnQ4X3QgX19wbGFjZWhvbGRlcjsKK307CisKKy8qCisgKiBSZXF1ZXN0IHJl YWQvd3JpdGUgLSB1c2VkIGZvciByZWFkIChmb3IgY2FwdHVyZSkgb3Igd3JpdGUgKGZvciBwbGF5 YmFjayk6CisgKiAgICAgICAgICAwICAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAg MiAgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICog fCAgICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCAgICBvcGVyYXRpb24gICAgfCAg ICAgc3RyZWFtX2lkeCAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGFkZGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb2Zmc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAor ICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKworICoKKyAqIGlkIC0gdWludDE2X3QsIHByaXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBp biByZXNwb25zZQorICogb3BlcmF0aW9uIC0gdWludDhfdCwgWEVOU05EX09QX1JFQUQvWEVOU05E X09QX1dSSVRFCisgKiBzdHJlYW1faWR4IC0gdWludDhfdCwgaW5kZXggb2YgdGhlIHN0cmVhbSAo InN0cmVhbXNfaWR4IiBYZW5TdG9yZSBlbnRyeQorICogICBvZiB0aGUgc3RyZWFtKQorICogb2Zm c2V0IC0gdWludDMyX3QsIHJlYWQgb3Igd3JpdGUgZGF0YSBvZmZzZXQgd2l0aGluIHRoZSBzaGFy ZWQgYnVmZmVyCisgKiAgIHBhc3NlZCB3aXRoIFhFTlNORF9PUF9PUEVOIHJlcXVlc3QKKyAqIGxl bmd0aCAtIHVpbnQzMl90LCByZWFkIG9yIHdyaXRlIGRhdGEgbGVuZ3RoCisgKi8KKworc3RydWN0 IHhlbnNuZF93cml0ZV9yZXEgeworICAgIHVpbnQzMl90IG9mZnNldDsKKyAgICB1aW50MzJfdCBs ZW47Cit9OworCitzdHJ1Y3QgeGVuc25kX3JlYWRfcmVxIHsKKyAgICB1aW50MzJfdCBvZmZzZXQ7 CisgICAgdWludDMyX3QgbGVuOworfTsKKworLyoKKyAqIFJlcXVlc3Qgc2V0L2dldCB2b2x1bWUg LSBzZXQvZ2V0IGNoYW5uZWxzJyB2b2x1bWUgb2YgdGhlIHN0cmVhbSBnaXZlbjoKKyAqICAgICAg ICAgIDAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAg IDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAg ICBpZCAgICAgICAgICAgICAgICB8ICAgIG9wZXJhdGlvbiAgICB8ICAgICBzdHJlYW1faWR4ICB8 CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYWRkaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cisg KiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogaWQgLSB1aW50MTZfdCwgcHJpdmF0ZSBndWVzdCB2 YWx1ZSwgZWNob2VkIGluIHJlc3BvbnNlCisgKiBvcGVyYXRpb24gLSB1aW50OF90LCBYRU5TTkRf T1BfU0VUX1ZPTFVNRSBvciBYRU5TTkRfT1BfR0VUX1ZPTFVNRQorICogc3RyZWFtX2lkeCAtIHVp bnQ4X3QsIGluZGV4IG9mIHRoZSBzdHJlYW0gKCJzdHJlYW1zX2lkeCIgWGVuU3RvcmUgZW50cnkK KyAqICAgb2YgdGhlIHN0cmVhbSkKKyAqIEJ1ZmZlciBwYXNzZWQgd2l0aCBYRU5TTkRfT1BfT1BF TiBpcyB1c2VkIHRvIGV4Y2hhbmdlIHZvbHVtZQorICogdmFsdWVzOgorICoKKyAqICAgICAgICAg IDAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgIDMg ICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNoYW5uZWxbMF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cisg KiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo YW5uZWxbMV0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rCisgKiArL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICAgICAg ICAgICAgICAgIGNoYW5uZWxbWEVOU05EX09QX09QRU4ucGNtX2NoYW5uZWxzIC0gMV0gICAgICAg ICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogY2hhbm5lbFtpXSAtIHNpbnQz Ml90LCB2b2x1bWUgb2YgaS10aCBjaGFubmVsCisgKiBWb2x1bWUgaXMgZXhwcmVzc2VkIGFzIGEg c2lnbmVkIHZhbHVlIGluIHN0ZXBzIG9mIDAuMDAxIGRCLAorICogd2hpbGUgMCBiZWluZyAwIGRC LgorICovCisKK3N0cnVjdCB4ZW5zbmRfZ2V0X3ZvbF9yZXEgeworICAgIC8qIHBsYWNlIGhvbGRl ciwgcmVtb3ZlIGlmIGNoYW5naW5nIHRoZSBzdHJ1Y3R1cmUgKEM4OSBjb25jZXJuKSAqLworICAg IHVpbnQ4X3QgX19wbGFjZWhvbGRlcjsKK307CisKK3N0cnVjdCB4ZW5zbmRfc2V0X3ZvbF9yZXEg eworICAgIC8qIHBsYWNlIGhvbGRlciwgcmVtb3ZlIGlmIGNoYW5naW5nIHRoZSBzdHJ1Y3R1cmUg KEM4OSBjb25jZXJuKSAqLworICAgIHVpbnQ4X3QgX19wbGFjZWhvbGRlcjsKK307CisKKy8qCisg KiBSZXF1ZXN0IG11dGUvdW5tdXRlIC0gbXV0ZS91bm11dGUgc3RyZWFtOgorICogICAgICAgICAg MCAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAgMyAg ICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgIGlk ICAgICAgICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAgIHwgICAgIHN0cmVhbV9pZHggIHwKKyAq ICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh ZGRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSsKKyAqCisgKiBpZCAtIHVpbnQxNl90LCBwcml2YXRlIGd1ZXN0IHZhbHVl LCBlY2hvZWQgaW4gcmVzcG9uc2UKKyAqIG9wZXJhdGlvbiAtIHVpbnQ4X3QsIFhFTlNORF9PUF9N VVRFL1hFTlNORF9PUF9VTk1VVEUKKyAqIHN0cmVhbV9pZHggLSB1aW50OF90LCBpbmRleCBvZiB0 aGUgc3RyZWFtICgic3RyZWFtc19pZHgiIFhlblN0b3JlIGVudHJ5CisgKiAgIG9mIHRoZSBzdHJl YW0pCisgKiBCdWZmZXIgcGFzc2VkIHdpdGggWEVOU05EX09QX09QRU4gaXMgdXNlZCB0byBleGNo YW5nZSBtdXRlL3VubXV0ZQorICogdmFsdWVzOgorICoKKyAqICAgICAgICAgIDAgICAgICAgICAg ICAgICAgIDEgICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0 CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgY2hhbm5lbFswXSAgICB8ICAgY2hhbm5lbFsx XSAgICB8ICAgY2hhbm5lbFsyXSAgICB8ICAgY2hhbm5lbFszXSAgICB8CisgKiArLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rCisgKiArL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAg Y2hhbm5lbFtpXSAgICB8ICAgY2hhbm5lbFtpKzFdICB8ICAgY2hhbm5lbFtpKzJdICB8ICAgY2hh bm5lbFtpKzNdICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiArL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cisg KiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogY2hhbm5lbFtpXSAtIHVpbnQ4X3QsIG5vbi16ZXJv IGlmIGktdGggY2hhbm5lbCBuZWVkcyB0byBiZSBtdXRlZC91bm11dGVkCisgKiBOdW1iZXIgb2Yg Y2hhbm5lbHMgcGFzc2VkIGlzIGVxdWFsIHRvIFhFTlNORF9PUF9PUEVOIHJlcXVlc3QgcGNtX2No YW5uZWxzCisgKiBmaWVsZAorICovCisKK3N0cnVjdCB4ZW5zbmRfbXV0ZV9yZXEgeworICAgIC8q IHBsYWNlIGhvbGRlciwgcmVtb3ZlIGlmIGNoYW5naW5nIHRoZSBzdHJ1Y3R1cmUgKEM4OSBjb25j ZXJuKSAqLworICAgIHVpbnQ4X3QgX19wbGFjZWhvbGRlcjsKK307CisKK3N0cnVjdCB4ZW5zbmRf dW5tdXRlX3JlcSB7CisgICAgLyogcGxhY2UgaG9sZGVyLCByZW1vdmUgaWYgY2hhbmdpbmcgdGhl IHN0cnVjdHVyZSAoQzg5IGNvbmNlcm4pICovCisgICAgdWludDhfdCBfX3BsYWNlaG9sZGVyOwor fTsKKworLyoKKyAqIEFsbCByZXNwb25zZSBwYWNrZXRzIGhhdmUgdGhlIHNhbWUgbGVuZ3RoICg2 NCBieXRlcykKKyAqCisgKiBSZXNwb25zZSBmb3IgYWxsIHJlcXVlc3RzOgorICogICAgICAgICAg MCAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAgMyAg ICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgIGlk ICAgICAgICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAgIHwgICAgIHN0cmVhbV9pZHggIHwKKyAq ICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh ZGRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSsKKyAqIHwgICAgICBzdGF0dXMgICAgIHwgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2 ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsK KyAqCisgKiBpZCAtIHVpbnQxNl90LCBjb3BpZWQgZnJvbSB0aGUgcmVxdWVzdAorICogc3RyZWFt X2lkeCAtIHVpbnQ4X3QsIGNvcGllZCBmcm9tIHJlcXVlc3QKKyAqIG9wZXJhdGlvbiAtIHVpbnQ4 X3QsIFhFTlNORF9PUF9YWFggLSBjb3BpZWQgZnJvbSByZXF1ZXN0CisgKiBzdGF0dXMgLSBpbnQ4 X3QsIHJlc3BvbnNlIHN0YXR1cyAoWEVOU05EX1JTUF8/Pz8pCisgKi8KKwordW5pb24geGVuc25k X3JlcSB7CisgICAgc3RydWN0IHsKKyAgICAgICAgdWludDE2X3QgaWQ7CisgICAgICAgIHVpbnQ4 X3Qgb3BlcmF0aW9uOworICAgICAgICB1aW50OF90IHN0cmVhbV9pZHg7CisgICAgICAgIHVpbnQz Ml90IHBhZGRpbmc7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIHN0cnVjdCB4ZW5zbmRf b3Blbl9yZXEgb3BlbjsKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuc25kX2Nsb3NlX3JlcSBj bG9zZTsKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuc25kX3dyaXRlX3JlcSB3cml0ZTsKKyAg ICAgICAgICAgICAgICBzdHJ1Y3QgeGVuc25kX3JlYWRfcmVxIHJlYWQ7CisgICAgICAgICAgICAg ICAgc3RydWN0IHhlbnNuZF9nZXRfdm9sX3JlcSBnZXRfdm9sOworICAgICAgICAgICAgICAgIHN0 cnVjdCB4ZW5zbmRfc2V0X3ZvbF9yZXEgc2V0X3ZvbDsKKyAgICAgICAgICAgICAgICBzdHJ1Y3Qg eGVuc25kX211dGVfcmVxIG11dGU7CisgICAgICAgICAgICAgICAgc3RydWN0IHhlbnNuZF91bm11 dGVfcmVxIHVubXV0ZTsKKyAgICAgICAgICAgIH0gb3A7CisgICAgICAgIH0gZGF0YTsKKyAgICB1 aW50OF90IHJhd1s2NF07Cit9OworCit1bmlvbiB4ZW5zbmRfcmVzcCB7CisgICAgc3RydWN0IHsK KyAgICAgICAgdWludDE2X3QgaWQ7CisgICAgICAgIHVpbnQ4X3Qgb3BlcmF0aW9uOworICAgICAg ICB1aW50OF90IHN0cmVhbV9pZHg7CisgICAgICAgIGludDhfdCBzdGF0dXM7CisgICAgfSBkYXRh OworICAgIHVpbnQ4X3QgcmF3WzY0XTsKK307CisKK0RFRklORV9SSU5HX1RZUEVTKHhlbl9zbmRp ZiwgdW5pb24geGVuc25kX3JlcSwgdW5pb24geGVuc25kX3Jlc3ApOworCisjZW5kaWYgLyogX19Y RU5fUFVCTElDX0lPX1hFTlNORF9IX18gKi8KLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==