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:03:12 +0200 Message-ID: <1480060992-28112-2-git-send-email-andr2000@gmail.com> References: <1480060992-28112-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: <1480060992-28112-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 LS0KIGluY2x1ZGUveGVuL2ludGVyZmFjZS9pby9zbmRpZi5oIHwgNzA1ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDcwNSBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2lvL3NuZGlmLmgK CmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8vc25kaWYuaCBiL2luY2x1ZGUv eGVuL2ludGVyZmFjZS9pby9zbmRpZi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmQyY2YyYWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8v c25kaWYuaApAQCAtMCwwICsxLDcwNSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogc25k aWYuaAorICoKKyAqIFVuaWZpZWQgc291bmQtZGV2aWNlIEkvTyBpbnRlcmZhY2UgZm9yIFhlbiBn dWVzdCBPU2VzLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdh cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0 bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg bWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBj b3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUg U29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo aXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMg b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF WFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICog QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFN QUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U UkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBD T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJ TkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBHbG9i YWxMb2dpYyBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgRVBBTSBTeXN0ZW1zIEluYy4KKyAq CisgKiBBdXRob3JzOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8T2xla3NhbmRyX0FuZHJ1c2hj aGVua29AZXBhbS5jb20+CisgKiAgICAgICAgICBPbGVrc2FuZHIgR3J5dHNvdiA8T2xla3NhbmRy X0dyeXRzb3ZAZXBhbS5jb20+CisgKiAgICAgICAgICBPbGVrc2FuZHIgRG15dHJ5c2h5biA8b2xl a3NhbmRyLmRteXRyeXNoeW5AZ2xvYmFsbG9naWMuY29tPgorICogICAgICAgICAgSXVyaWkgS29u b3ZhbGVua28gPGl1cmlpLmtvbm92YWxlbmtvQGdsb2JhbGxvZ2ljLmNvbT4KKyAqLworCisjaWZu ZGVmIF9fWEVOX1BVQkxJQ19JT19YRU5TTkRfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19JT19Y RU5TTkRfSF9fCisKKyNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL2lvL3JpbmcuaD4KKyNpbmNsdWRl IDx4ZW4vaW50ZXJmYWNlL2dyYW50X3RhYmxlLmg+CisKKy8qCisgKiBGcm9udC0+YmFjayBub3Rp ZmljYXRpb25zOiBXaGVuIGVucXVldWluZyBhIG5ldyByZXF1ZXN0LCBzZW5kaW5nIGEKKyAqIG5v dGlmaWNhdGlvbiBjYW4gYmUgbWFkZSBjb25kaXRpb25hbCBvbiByZXFfZXZlbnQgKGkuZS4sIHRo ZSBnZW5lcmljCisgKiBob2xkLW9mZiBtZWNoYW5pc20gcHJvdmlkZWQgYnkgdGhlIHJpbmcgbWFj cm9zKS4gQmFja2VuZHMgbXVzdCBzZXQKKyAqIHJlcV9ldmVudCBhcHByb3ByaWF0ZWx5IChlLmcu LCB1c2luZyBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9SRVFVRVNUUygpKS4KKyAqCisgKiBCYWNrLT5m cm9udCBub3RpZmljYXRpb25zOiBXaGVuIGVucXVldWluZyBhIG5ldyByZXNwb25zZSwgc2VuZGlu ZyBhCisgKiBub3RpZmljYXRpb24gY2FuIGJlIG1hZGUgY29uZGl0aW9uYWwgb24gcnNwX2V2ZW50 IChpLmUuLCB0aGUgZ2VuZXJpYworICogaG9sZC1vZmYgbWVjaGFuaXNtIHByb3ZpZGVkIGJ5IHRo ZSByaW5nIG1hY3JvcykuIEZyb250ZW5kcyBtdXN0IHNldAorICogcnNwX2V2ZW50IGFwcHJvcHJp YXRlbHkgKGUuZy4sIHVzaW5nIFJJTkdfRklOQUxfQ0hFQ0tfRk9SX1JFU1BPTlNFUygpKS4KKyAq LworCisvKgorICogRmVhdHVyZSBhbmQgUGFyYW1ldGVyIE5lZ290aWF0aW9uCisgKiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIFRoZSB0d28gaGFsdmVzIG9mIGEgUGFyYS12 aXJ0dWFsIHNvdW5kIGNhcmQgZHJpdmVyIHV0aWxpemUgbm9kZXMgd2l0aGluIHRoZQorICogWGVu U3RvcmUgdG8gY29tbXVuaWNhdGUgY2FwYWJpbGl0aWVzIGFuZCB0byBuZWdvdGlhdGUgb3BlcmF0 aW5nIHBhcmFtZXRlcnMuCisgKiBUaGlzIHNlY3Rpb24gZW51bWVyYXRlcyB0aGVzZSBub2RlcyB3 aGljaCByZXNpZGUgaW4gdGhlIHJlc3BlY3RpdmUgZnJvbnQgYW5kCisgKiBiYWNrZW5kIHBvcnRp b25zIG9mIHRoZSBYZW5TdG9yZSwgZm9sbG93aW5nIHRoZSBYZW5CdXMgY29udmVudGlvbi4KKyAq CisgKiBBbGwgZGF0YSBpbiB0aGUgWGVuU3RvcmUgaXMgc3RvcmVkIGFzIHN0cmluZ3MuICBOb2Rl cyBzcGVjaWZ5aW5nIG51bWVyaWMKKyAqIHZhbHVlcyBhcmUgZW5jb2RlZCBpbiBkZWNpbWFsLiAg SW50ZWdlciB2YWx1ZSByYW5nZXMgbGlzdGVkIGJlbG93IGFyZQorICogZXhwcmVzc2VkIGFzIGZp eGVkIHNpemVkIGludGVnZXIgdHlwZXMgY2FwYWJsZSBvZiBzdG9yaW5nIHRoZSBjb252ZXJzaW9u CisgKiBvZiBhIHByb3Blcmx5IGZvcm1hdGVkIG5vZGUgc3RyaW5nLCB3aXRob3V0IGxvc3Mgb2Yg aW5mb3JtYXRpb24uCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBCYWNrZW5kIFhlbkJ1cyBOb2RlcworICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBZGRyZXNzaW5nIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIEluZGljZXMgdXNlZCB0byBhZGRy ZXNzIGZyb250ZW5kcywgZHJpdmVyIGluc3RhbmNlcywgY2FyZHMsCisgKiBkZXZpY2VzIGFuZCBz dHJlYW1zLgorICoKKyAqIGZyb250ZW5kX2lkCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWlu dD4KKyAqCisgKiAgICAgIERvbWFpbiBJRCBvZiB0aGUgc291bmQgZnJvbnRlbmQuCisgKgorICog ZHJ2X2lkeAorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICogICAgICBaZXJv IGJhc2VkIGNvbnRpZ3VvdXMgaW5kZXggb2YgdGhlIHZpcnR1YWxpemVkIHNvdW5kIGRyaXZlciBp bnN0YW5jZSBpbgorICogICAgICB0aGlzIGRvbWFpbi4gTXVsdGlwbGUgUFYgZHJpdmVycyBhcmUg YWxsb3dlZCBpbiB0aGUgZG9tYWluCisgKiAgICAgIGF0IHRoZSBzYW1lIHRpbWUuCisgKgorICog ZGV2X2lkCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIFVuaXF1 ZSBkZXZpY2UgSUQuCisgKiAgICAgIERvZXNuJ3QgaGF2ZSB0byBiZSB6ZXJvIGJhc2VkIGFuZC9v ciB0byBiZSBjb250aWd1b3VzLgorICoKKyAqIHN0cmVhbV9pZHgKKyAqICAgICAgVmFsdWVzOiAg ICAgICAgIDx1aW50PgorICoKKyAqICAgICAgWmVybyBiYXNlZCBjb250aWd1b3VzIGluZGV4IG9m IHRoZSBzdHJlYW0gb2YgdGhlIGRldmljZS4KKyAqCisgKiBFeGFtcGxlIGZvciB0aGUgZnJvbnRl bmQgcnVubmluZyBpbiBkb21haW4gNSwgaW5zdGFuY2Ugb2YgdGhlIGRyaXZlcgorICogaW4gdGhl IGZyb250IGlzIDAgKHNpbmdsZSBvciBmaXJzdCBQViBkcml2ZXIpLCBkZXZpY2UgaWQgMiwKKyAq IGZpcnN0IHN0cmVhbSAoMCk6CisgKiAvbG9jYWwvZG9tYWluLzxmcm9udGVuZF9pZD4vZGV2aWNl L3ZzbmQvPGRydl9pZHg+LworICogICAgICAgICBkZXZpY2UvPGRldl9pZD4vc3RyZWFtLzxzdHJl YW1faWR4Pi90eXBlID0gInAiCisgKiAvbG9jYWwvZG9tYWluLzUvZGV2aWNlL3ZzbmQvMC9kZXZp Y2UvMi9zdHJlYW0vMC90eXBlID0gInAiCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tIFBDTSBzZXR0aW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoK KyAqIEV2ZXJ5IHZpcnR1YWxpemVkIHNvdW5kIGZyb250ZW5kIGhhcyBzZXQgb2YgZGV2aWNlcyBh bmQgc3RyZWFtcywgZWFjaAorICogaXMgaW5kaXZpZHVhbGx5IGNvbmZpZ3VyZWQuIFBhcnQgb2Yg dGhlIFBDTSBjb25maWd1cmF0aW9uIGNhbiBiZSBkZWZpbmVkIGF0CisgKiBoaWdoZXIgbGV2ZWwg YW5kIGJlIGZ1bGx5IG9yIHBhcnRpYWxseSByZS11c2VkIGJ5IHRoZSB1bmRlcmx5aW5nIGxheWVy cy4KKyAqIFRoZXNlIGNvbmZpZ3VyYXRpb24gdmFsdWVzIGFyZToKKyAqICBvIG51bWJlciBvZiBj aGFubmVscyAobWluL21heCkKKyAqICBvIHN1cHBvcnRlZCBzYW1wbGUgcmF0ZXMKKyAqICBvIHN1 cHBvcnRlZCBzYW1wbGUgZm9ybWF0cy4KKyAqIEUuZy4gb25lIGNhbiBkZWZpbmUgdGhlc2UgdmFs dWVzIGZvciB0aGUgd2hvbGUgZHJpdmVyLCBkZXZpY2Ugb3Igc3RyZWFtLgorICogRXZlcnkgdW5k ZXJseWluZyBsYXllciBpbiB0dXJuIGNhbiByZS1kZWZpbmUgc29tZSBvciBhbGwgb2YgdGhlbSB0 byBiZXR0ZXIKKyAqIGZpdCBpdHMgbmVlZHMuIEZvciBleGFtcGxlLCBkcml2ZXIgbWF5IGRlZmlu ZSBudW1iZXIgb2YgY2hhbm5lbHMgdG8gYmUKKyAqIGluIFsxOyA4XSByYW5nZSwgYW5kIHNvbWUg cGFydGljdWxhciBzdHJlYW0gbWF5IGJlIGxpbWl0ZWQgdG8gWzE7IDJdIG9ubHkuCisgKiBUaGUg cnVsZSBpcyB0aGF0IHRoZSB1bmRlcmx5aW5nIGxheWVyIG11c3QgYmUgYSBzdWJzZXQgb2YgdGhl IHVwcGVyIGxheWVyCisgKiByYW5nZS4KKyAqCisgKiBOb3RlOiBpZiBhbnkgb2YgdGhlIHZhbHVl cyBhcmUgbm90IGRlZmluZWQgdGhlbiBQViBkcml2ZXIgc2hvdWxkIHVzZQorICogaXRzIGRlZmF1 bHQgdmFsdWVzIGluc3RlYWQuCisgKgorICogY2hhbm5lbHMtbWluCisgKiAgICAgIFZhbHVlczog ICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBjaGFubmVs cyB0aGF0IGlzIHN1cHBvcnRlZC4KKyAqICAgICAgTXVzdCBiZSBhdCBsZWFzdCAxLiBJZiBub3Qg ZGVmaW5lZCB0aGVuIHVzZSBmcm9udGVuZCdzIGRlZmF1bHQuCisgKgorICogY2hhbm5lbHMtbWF4 CisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIFRoZSBtYXhpbXVt IGFtb3VudCBvZiBjaGFubmVscyB0aGF0IGlzIHN1cHBvcnRlZC4KKyAqICAgICAgTXVzdCBiZSBh dCBsZWFzdCA8Y2hhbm5lbHMtbWluPi4gSWYgbm90IGRlZmluZWQgdGhlbiB1c2UgZnJvbnRlbmQn cworICogICAgICBkZWZhdWx0LgorICoKKyAqIHNhbXBsZS1yYXRlcworICogICAgICBWYWx1ZXM6 ICAgICAgICAgPGxpc3Qgb2YgdWludHM+CisgKgorICogICAgICBMaXN0IG9mIHN1cHBvcnRlZCBz YW1wbGUgcmF0ZXMgc2VwYXJhdGVkIGJ5IFhFTlNORF9MSVNUX1NFUEFSQVRPUi4KKyAqICAgICAg SWYgbm90IGRlZmluZWQgdGhlbiB1c2UgZnJvbnRlbmQncyBkZWZhdWx0LiBTYW1wbGUgcmF0ZXMg YXJlIGV4cHJlc3NlZAorICogICAgICBhcyBhIGxpc3Qgb2YgZGVjaW1hbCB2YWx1ZXMgdy9vIGFu eSBvcmRlcmluZyByZXF1aXJlbWVudC4KKyAqCisgKiBzYW1wbGUtZm9ybWF0cworICogICAgICBW YWx1ZXM6ICAgICAgICAgPGxpc3Qgb2YgWEVOU05EX1BDTV9GT1JNQVRfWFhYX1NUUj4KKyAqCisg KiAgICAgIExpc3Qgb2Ygc3VwcG9ydGVkIHNhbXBsZSBmb3JtYXRzIHNlcGFyYXRlZCBieSBYRU5T TkRfTElTVF9TRVBBUkFUT1IuCisgKiAgICAgIElmIG5vdCBkZWZpbmVkIHRoZW4gdXNlIGZyb250 ZW5kJ3MgZGVmYXVsdC4KKyAqCisgKiBidWZmZXItc2l6ZQorICogICAgICBWYWx1ZXM6ICAgICAg ICAgPHVpbnQ+CisgKgorICogICAgICBUaGUgbWF4aW11bSBzaXplIGluIG9jdGV0cyBvZiB0aGUg YnVmZmVyIHRvIGFsbG9jYXRlIHBlciBzdHJlYW0uCisgKgorICogRXhhbXBsZSBjb25maWd1cmF0 aW9uOgorICoKKyAqIERyaXZlciBjb25maWd1cmF0aW9uIHVzZWQgYnkgYWxsIHN0cmVhbXM6Cisg KiAvbG9jYWwvZG9tYWluLzUvZGV2aWNlL3ZzbmQvMC9zYW1wbGUtZm9ybWF0cyA9ICJzODt1ODtz MTZfbGU7czE2X2JlIgorICogU3RyZWFtIG92ZXJyaWRlcyBzYW1wbGUgcmF0ZXMgc3VwcG9ydGVk OgorICogL2xvY2FsL2RvbWFpbi81L2RldmljZS92c25kLzAvZGV2aWNlLzIvc3RyZWFtLzAvc2Ft cGxlLXJhdGVzID0KKyAqICAgICAgICAiODAwMDsyMjA1MDs0NDEwMDs0ODAwMCIKKyAqCisgKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tIFZpcnR1YWwgc291bmQgY2FyZCBzZXR0aW5ncyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICogc2hvcnQtbmFtZQorICogICAgICBWYWx1ZXM6ICAgICAg ICAgPGNoYXJbMzJdPgorICoKKyAqICAgICAgU2hvcnQgbmFtZSBvZiB0aGUgdmlydHVhbCBzb3Vu ZCBjYXJkLiBPcHRpb25hbC4KKyAqCisgKiBsb25nLW5hbWUKKyAqICAgICAgVmFsdWVzOiAgICAg ICAgIDxjaGFyWzgwXT4KKyAqCisgKiAgICAgIExvbmcgbmFtZSBvZiB0aGUgdmlydHVhbCBzb3Vu ZCBjYXJkLiBPcHRpb25hbC4KKyAqCisgKiBGb3IgZXhhbXBsZSwKKyAqIC9sb2NhbC9kb21haW4v NS9kZXZpY2UvdnNuZC8wL3Nob3J0LW5hbWUgPSAiVmlydHVhbCBhdWRpbyIKKyAqIC9sb2NhbC9k b21haW4vNS9kZXZpY2UvdnNuZC8wL2xvbmctbmFtZSA9CisgKiAgICAgICAgICJWaXJ0dWFsIGF1 ZGlvIGF0IGNlbnRlciBzdGFjayIKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IERldmljZSBzZXR0aW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogbmFt ZQorICogICAgICBWYWx1ZXM6ICAgICAgICAgPGNoYXJbODBdPgorICoKKyAqICAgICAgTmFtZSBv ZiB0aGUgc291bmQgZGV2aWNlIHdpdGhpbiB0aGUgdmlydHVhbCBzb3VuZCBjYXJkLiBPcHRpb25h bC4KKyAqCisgKiBGb3IgZXhhbXBsZSwKKyAqIC9sb2NhbC9kb21haW4vNS9kZXZpY2UvdnNuZC8w L2RldmljZS8wL25hbWUgPSAiR2VuZXJhbCBhbmFsb2ciCisgKgorICotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSBTdHJlYW0gc2V0dGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICoKKyAqIHR5cGUKKyAqICAgICAgVmFsdWVzOiAgICAgICAgICJwIiwgImMiCisgKgor ICogICAgICBTdHJlYW0gdHlwZTogInAiIC0gcGxheWJhY2sgc3RyZWFtLCAiYyIgLSBjYXB0dXJl IHN0cmVhbQorICoKKyAqICAgICAgSWYgYm90aCBjYXB0dXJlIGFuZCBwbGF5YmFjayBhcmUgbmVl ZGVkIHRoZW4gdHdvIHN0cmVhbXMgbmVlZCB0byBiZQorICogICAgICBkZWZpbmVkIHVuZGVyIHRo ZSBzYW1lIGRldmljZS4gRm9yIGV4YW1wbGUsCisgKiAgICAgIC9sb2NhbC9kb21haW4vNS9kZXZp Y2UvdnNuZC8wL2RldmljZS8wL3N0cmVhbS8wL3R5cGUgPSAicCIKKyAqICAgICAgL2xvY2FsL2Rv bWFpbi81L2RldmljZS92c25kLzAvZGV2aWNlLzAvc3RyZWFtLzEvdHlwZSA9ICJjIgorICoKKyAq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRl bmQgWGVuQnVzIE5vZGVzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tIFJlcXVlc3QgVHJhbnNwb3J0IFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqCisgKiBUaGVzZSBhcmUgcGVyIHN0cmVhbS4KKyAqCisgKiBldmVudC1jaGFu bmVsCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIFRoZSBpZGVu dGlmaWVyIG9mIHRoZSBYZW4gZXZlbnQgY2hhbm5lbCB1c2VkIHRvIHNpZ25hbCBhY3Rpdml0eQor ICogICAgICBpbiB0aGUgcmluZyBidWZmZXIuCisgKgorICogcmluZy1yZWYKKyAqICAgICAgVmFs dWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgVGhlIFhlbiBncmFudCByZWZlcmVuY2Ug Z3JhbnRpbmcgcGVybWlzc2lvbiBmb3IgdGhlIGJhY2tlbmQgdG8gbWFwCisgKiAgICAgIGEgc29s ZSBwYWdlIGluIGEgc2luZ2xlIHBhZ2Ugc2l6ZWQgcmluZyBidWZmZXIuCisgKgorICogaW5kZXgK KyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgQWZ0ZXIgc3RyZWFt IGluaXRpYWxpemF0aW9uIGl0IGlzIGFzc2lnbmVkIGEgdW5pcXVlIElEICh3aXRoaW4gdGhlIGZy b250CisgKiAgICAgIGRyaXZlciksIHNvIGV2ZXJ5IHN0cmVhbSBvZiB0aGUgZnJvbnRlbmQgY2Fu IGJlIGlkZW50aWZpZWQgYnkgdGhlCisgKiAgICAgIGJhY2tlbmQgYnkgdGhpcyBJRC4gVGhpcyBp cyBub3QgZXF1YWwgdG8gc3RyZWFtX2lkeCBhcyB0aGUgbGF0ZXIgaXMKKyAqICAgICAgemVybyBi YXNlZCB3aXRoaW4gYSBkZXZpY2UsIGJ1dCB0aGlzIGluZGV4IGlzIGNvbnRpZ3VvdXMgd2l0aGlu IHRoZQorICogICAgICBkcml2ZXIuCisgKi8KKworLyoKKyAqIFNUQVRFIERJQUdSQU1TCisgKgor ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RhcnR1cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorICoKKyAqIFRvb2wgc3RhY2sgY3JlYXRlcyBmcm9udCBhbmQgYmFjayBzdGF0 ZSBub2RlcyB3aXRoIGluaXRpYWwgc3RhdGUKKyAqIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nLgor ICogVG9vbCBzdGFjayBjcmVhdGVzIGFuZCBzZXRzIHVwIGZyb250ZW5kIHNvdW5kIGNvbmZpZ3Vy YXRpb24gbm9kZXMgcGVyIGRvbWFpbi4KKyAqCisgKiBGcm9udCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQmFjaworICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAg ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIFhlbmJ1c1N0YXRlSW5p dGlhbGlzaW5nICAgICAgICAgICAgICBYZW5idXNTdGF0ZUluaXRpYWxpc2luZworICogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvIFF1ZXJ5IGJhY2tlbmQgZGV2aWNlIGlk ZW50aWZpY2F0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YS4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBPcGVuIGFu ZCB2YWxpZGF0ZSBiYWNrZW5kIGRldmljZS4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYKKyAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZUluaXRXYWl0CisgKgorICogbyBRdWVyeSBmcm9u dGVuZCBjb25maWd1cmF0aW9uCisgKiBvIEFsbG9jYXRlIGFuZCBpbml0aWFsaXplCisgKiAgIGV2 ZW50IGNoYW5uZWxzIHBlciBjb25maWd1cmVkCisgKiAgIHBsYXliYWNrL2NhcHR1cmUgc3RyZWFt LgorICogbyBQdWJsaXNoIHRyYW5zcG9ydCBwYXJhbWV0ZXJzCisgKiAgIHRoYXQgd2lsbCBiZSBp biBlZmZlY3QgZHVyaW5nCisgKiAgIHRoaXMgY29ubmVjdGlvbi4KKyAqICAgICAgICAgICAgICB8 CisgKiAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgIFYKKyAqIFhlbmJ1c1N0YXRlSW5p dGlhbGlzZWQKKyAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8g UXVlcnkgZnJvbnRlbmQgdHJhbnNwb3J0IHBhcmFtZXRlcnMuCisgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG8gQ29ubmVjdCB0byB0aGUgZXZlbnQgY2hhbm5lbHMuCisg KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBWCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVD b25uZWN0ZWQKKyAqCisgKiAgbyBDcmVhdGUgYW5kIGluaXRpYWxpemUgT1MKKyAqICB2aXJ0dWFs IHNvdW5kIGRldmljZSBpbnN0YW5jZXMKKyAqICBhcyBwZXIgY29uZmlndXJhdGlvbi4KKyAqICAg ICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgIFYKKyAqIFhl bmJ1c1N0YXRlQ29ubmVjdGVkCisgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFhlbmJ1c1N0YXRlVW5rbm93bgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFhlbmJ1c1N0YXRlQ2xvc2VkCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWGVuYnVzU3RhdGVDbG9zaW5nCisgKiBvIFJlbW92ZSB2aXJ0dWFsIHNvdW5k IGRldmljZQorICogbyBSZW1vdmUgZXZlbnQgY2hhbm5lbHMKKyAqICAgICAgICAgICAgICB8Cisg KiAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgIFYKKyAqIFhlbmJ1c1N0YXRlQ2xvc2Vk CisgKgorICovCisKKy8qCisgKiBQQ00gRk9STUFUUworICoKKyAqIFhFTlNORF9QQ01fRk9STUFU Xzxmb3JtYXQ+W188ZW5kaWFuPl0KKyAqCisgKiBmb3JtYXQ6IDxTL1UvRj48Yml0cz4gb3IgPG5h bWU+CisgKiAgICAgUyAtIHNpZ25lZCwgVSAtIHVuc2lnbmVkLCBGIC0gZmxvYXQKKyAqICAgICBi aXRzIC0gOCwgMTYsIDI0LCAzMgorICogICAgIG5hbWUgLSBNVV9MQVcsIEdTTSwgZXRjLgorICoK KyAqIGVuZGlhbjogPExFL0JFPiwgbWF5IGJlIGFic2VudAorICogICAgIExFIC0gTGl0dGxlIGVu ZGlhbiwgQkUgLSBCaWcgZW5kaWFuCisgKi8KKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzgg ICAgICAgICAgICAwCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1U4ICAgICAgICAgICAgMQor I2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMTZfTEUgICAgICAgIDIKKyNkZWZpbmUgWEVOU05E X1BDTV9GT1JNQVRfUzE2X0JFICAgICAgICAzCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1Ux Nl9MRSAgICAgICAgNAorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMTZfQkUgICAgICAgIDUK KyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzI0X0xFICAgICAgICA2CisjZGVmaW5lIFhFTlNO RF9QQ01fRk9STUFUX1MyNF9CRSAgICAgICAgNworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9V MjRfTEUgICAgICAgIDgKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTI0X0JFICAgICAgICA5 CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MzMl9MRSAgICAgICAgMTAKKyNkZWZpbmUgWEVO U05EX1BDTV9GT1JNQVRfUzMyX0JFICAgICAgICAxMQorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1B VF9VMzJfTEUgICAgICAgIDEyCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UzMl9CRSAgICAg ICAgMTMKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjMyX0xFICAgICAgICAxNCAvKiA0LWJ5 dGUgZmxvYXQsIElFRUUtNzU0IDMyLWJpdCwgKi8KKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRf RjMyX0JFICAgICAgICAxNSAvKiByYW5nZSAtMS4wIHRvIDEuMCAgICAgICAgICAgICAgKi8KKyNk ZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjY0X0xFICAgICAgICAxNiAvKiA4LWJ5dGUgZmxvYXQs IElFRUUtNzU0IDY0LWJpdCwgKi8KKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjY0X0JFICAg ICAgICAxNyAvKiByYW5nZSAtMS4wIHRvIDEuMCAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgWEVO U05EX1BDTV9GT1JNQVRfSUVDOTU4X1NVQkZSQU1FX0xFIDE4CisjZGVmaW5lIFhFTlNORF9QQ01f Rk9STUFUX0lFQzk1OF9TVUJGUkFNRV9CRSAxOQorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9N VV9MQVcgICAgICAgIDIwCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0FfTEFXICAgICAgICAg MjEKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfSU1BX0FEUENNICAgICAyMgorI2RlZmluZSBY RU5TTkRfUENNX0ZPUk1BVF9NUEVHICAgICAgICAgIDIzCisjZGVmaW5lIFhFTlNORF9QQ01fRk9S TUFUX0dTTSAgICAgICAgICAgMjQKKworLyoKKyAqIFJFUVVFU1QgQ09ERVMuCisgKi8KKyNkZWZp bmUgWEVOU05EX09QX09QRU4gICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFhFTlNORF9PUF9D TE9TRSAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBYRU5TTkRfT1BfUkVBRCAgICAgICAgICAg ICAgICAgIDIKKyNkZWZpbmUgWEVOU05EX09QX1dSSVRFICAgICAgICAgICAgICAgICAzCisjZGVm aW5lIFhFTlNORF9PUF9TRVRfVk9MVU1FICAgICAgICAgICAgNAorI2RlZmluZSBYRU5TTkRfT1Bf R0VUX1ZPTFVNRSAgICAgICAgICAgIDUKKyNkZWZpbmUgWEVOU05EX09QX01VVEUgICAgICAgICAg ICAgICAgICA2CisjZGVmaW5lIFhFTlNORF9PUF9VTk1VVEUgICAgICAgICAgICAgICAgNworCisv KgorICogWEVOU1RPUkUgRklFTEQgQU5EIFBBVEggTkFNRSBTVFJJTkdTLCBIRUxQRVJTLgorICov CisjZGVmaW5lIFhFTlNORF9EUklWRVJfTkFNRSAgICAgICAgICAgICAgICAgICAidnNuZCIKKwor I2RlZmluZSBYRU5TTkRfTElTVF9TRVBBUkFUT1IgICAgICAgICAgICAgICAgIjsiCisvKiBQYXRo IGVudHJpZXMgKi8KKyNkZWZpbmUgWEVOU05EX1BBVEhfREVWSUNFICAgICAgICAgICAgICAgICAg ICJkZXZpY2UiCisjZGVmaW5lIFhFTlNORF9QQVRIX1NUUkVBTSAgICAgICAgICAgICAgICAgICAi c3RyZWFtIgorLyogRmllbGQgbmFtZXMgKi8KKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1ZDQVJEX1NI T1JUX05BTUUgICAgICAgICJzaG9ydC1uYW1lIgorI2RlZmluZSBYRU5TTkRfRklFTERfVkNBUkRf TE9OR19OQU1FICAgICAgICAgImxvbmctbmFtZSIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1JJTkdf UkVGICAgICAgICAgICAgICAgICJyaW5nLXJlZiIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0VWVF9D SE5MICAgICAgICAgICAgICAgICJldmVudC1jaGFubmVsIgorI2RlZmluZSBYRU5TTkRfRklFTERf REVWSUNFX05BTUUgICAgICAgICAgICAgIm5hbWUiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9UWVBF ICAgICAgICAgICAgICAgICAgICAidHlwZSIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1NUUkVBTV9J TkRFWCAgICAgICAgICAgICJpbmRleCIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0NIQU5ORUxTX01J TiAgICAgICAgICAgICJjaGFubmVscy1taW4iCisjZGVmaW5lIFhFTlNORF9GSUVMRF9DSEFOTkVM U19NQVggICAgICAgICAgICAiY2hhbm5lbHMtbWF4IgorI2RlZmluZSBYRU5TTkRfRklFTERfU0FN UExFX1JBVEVTICAgICAgICAgICAgInNhbXBsZS1yYXRlcyIKKyNkZWZpbmUgWEVOU05EX0ZJRUxE X1NBTVBMRV9GT1JNQVRTICAgICAgICAgICJzYW1wbGUtZm9ybWF0cyIKKyNkZWZpbmUgWEVOU05E X0ZJRUxEX0JVRkZFUl9TSVpFICAgICAgICAgICAgICJidWZmZXItc2l6ZSIKKworLyogU3RyZWFt IHR5cGUgZmllbGQgdmFsdWVzLiAqLworI2RlZmluZSBYRU5TTkRfU1RSRUFNX1RZUEVfUExBWUJB Q0sgICAgICAgICAgInAiCisjZGVmaW5lIFhFTlNORF9TVFJFQU1fVFlQRV9DQVBUVVJFICAgICAg ICAgICAiYyIKKy8qIFNhbXBsZSByYXRlIG1heCBzdHJpbmcgbGVuZ3RoICovCisjZGVmaW5lIFhF TlNORF9TQU1QTEVfUkFURV9NQVhfTEVOICAgICAgICAgICAgNgorLyogU2FtcGxlIGZvcm1hdCBm aWVsZCB2YWx1ZXMgKi8KKyNkZWZpbmUgWEVOU05EX1NBTVBMRV9GT1JNQVRfTUFYX0xFTiAgICAg ICAgIDI0CisKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzhfU1RSICAgICAgICAgICAgICAg ICAiczgiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1U4X1NUUiAgICAgICAgICAgICAgICAg InU4IgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMTZfTEVfU1RSICAgICAgICAgICAgICJz MTZfbGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MxNl9CRV9TVFIgICAgICAgICAgICAg InMxNl9iZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTE2X0xFX1NUUiAgICAgICAgICAg ICAidTE2X2xlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMTZfQkVfU1RSICAgICAgICAg ICAgICJ1MTZfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MyNF9MRV9TVFIgICAgICAg ICAgICAgInMyNF9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzI0X0JFX1NUUiAgICAg ICAgICAgICAiczI0X2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMjRfTEVfU1RSICAg ICAgICAgICAgICJ1MjRfbGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UyNF9CRV9TVFIg ICAgICAgICAgICAgInUyNF9iZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzMyX0xFX1NU UiAgICAgICAgICAgICAiczMyX2xlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMzJfQkVf U1RSICAgICAgICAgICAgICJzMzJfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UzMl9M RV9TVFIgICAgICAgICAgICAgInUzMl9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTMy X0JFX1NUUiAgICAgICAgICAgICAidTMyX2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9G MzJfTEVfU1RSICAgICAgICAgICAgICJmbG9hdF9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JN QVRfRjMyX0JFX1NUUiAgICAgICAgICAgICAiZmxvYXRfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01f Rk9STUFUX0Y2NF9MRV9TVFIgICAgICAgICAgICAgImZsb2F0NjRfbGUiCisjZGVmaW5lIFhFTlNO RF9QQ01fRk9STUFUX0Y2NF9CRV9TVFIgICAgICAgICAgICAgImZsb2F0NjRfYmUiCisjZGVmaW5l IFhFTlNORF9QQ01fRk9STUFUX0lFQzk1OF9TVUJGUkFNRV9MRV9TVFIgImllYzk1OF9zdWJmcmFt ZV9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfSUVDOTU4X1NVQkZSQU1FX0JFX1NUUiAi aWVjOTU4X3N1YmZyYW1lX2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9NVV9MQVdfU1RS ICAgICAgICAgICAgICJtdV9sYXciCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0FfTEFXX1NU UiAgICAgICAgICAgICAgImFfbGF3IgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9JTUFfQURQ Q01fU1RSICAgICAgICAgICJpbWFfYWRwY20iCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX01Q RUdfU1RSICAgICAgICAgICAgICAgIm1wZWciCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0dT TV9TVFIgICAgICAgICAgICAgICAgImdzbSIKKworLyoKKyAqIFNUQVRVUyBSRVRVUk4gQ09ERVMu CisgKi8KKyAvKiBPcGVyYXRpb24gZmFpbGVkIGZvciBzb21lIHVuc3BlY2lmaWVkIHJlYXNvbiAo ZS4gZy4gLUVJTykuICovCisjZGVmaW5lIFhFTlNORF9SU1BfRVJST1IgICAgICAgICAgICAgICAg ICgtMSkKKyAvKiBPcGVyYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4gKi8KKyNkZWZpbmUg WEVOU05EX1JTUF9PS0FZICAgICAgICAgICAgICAgICAgMAorCisvKgorICogRGVzY3JpcHRpb24g b2YgdGhlIHByb3RvY29sIGJldHdlZW4gZnJvbnRlbmQgYW5kIGJhY2tlbmQgZHJpdmVyLgorICoK KyAqIFRoZSB0d28gaGFsdmVzIG9mIGEgUGFyYS12aXJ0dWFsIHNvdW5kIGRyaXZlciBjb21tdW5p Y2F0ZXMgd2l0aAorICogZWFjaCBvdGhlciB1c2luZyBhIHNoYXJlZCBwYWdlIGFuZCBhbiBldmVu dCBjaGFubmVsLgorICogU2hhcmVkIHBhZ2UgY29udGFpbnMgYSByaW5nIHdpdGggcmVxdWVzdC9y ZXNwb25zZSBwYWNrZXRzLgorICoKKyAqCisgKiBBbGwgcmVxdWVzdCBwYWNrZXRzIGhhdmUgdGhl IHNhbWUgbGVuZ3RoICg2NCBvY3RldHMpCisgKgorICoKKyAqIFJlcXVlc3Qgb3BlbiAtIG9wZW4g YSBQQ00gc3RyZWFtIGZvciBwbGF5YmFjayBvciBjYXB0dXJlOgorICogICAgICAgICAgMCAgICAg ICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAgMyAgICAgICAg b2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgIGlkICAgICAg ICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAgIHwgICAgIHN0cmVhbV9pZHggIHwKKyAqICstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmcg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjbV9yYXRlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgIHBjbV9mb3JtYXQg ICAgIHwgIHBjbV9jaGFubmVscyAgIHwgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAg IHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgZ3Jl Zl9kaXJlY3Rvcnlfc3RhcnQgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBpZCAtIHVpbnQxNl90 LCBwcml2YXRlIGd1ZXN0IHZhbHVlLCBlY2hvZWQgaW4gcmVzcG9uc2UKKyAqIG9wZXJhdGlvbiAt IHVpbnQ4X3QsIFhFTlNORF9PUF9PUEVOCisgKiBzdHJlYW1faWR4IC0gdWludDhfdCwgaW5kZXgg b2YgdGhlIHN0cmVhbSAoInN0cmVhbXNfaWR4IiBYZW5TdG9yZSBlbnRyeQorICogICBvZiB0aGUg c3RyZWFtKQorICogcGNtX3JhdGUgLSB1aW50MzJfdCwgc3RyZWFtIGRhdGEgcmF0ZSwgSHoKKyAq IHBjbV9mb3JtYXQgLSB1aW50OF90LCBYRU5TTkRfUENNX0ZPUk1BVF9YWFggdmFsdWUKKyAqIHBj bV9jaGFubmVscyAtIHVpbnQ4X3QsIG51bWJlciBvZiBjaGFubmVscyBvZiB0aGlzIHN0cmVhbQor ICogZ3JlZl9kaXJlY3Rvcnlfc3RhcnQgLSBncmFudF9yZWZfdCwgYSByZWZlcmVuY2UgdG8gdGhl IGZpcnN0IHNoYXJlZCBwYWdlCisgKiAgIGRlc2NyaWJpbmcgc2hhcmVkIGJ1ZmZlciByZWZlcmVu Y2VzLiBBdCBsZWFzdCBvbmUgcGFnZSBleGlzdHMuIElmIHNoYXJlZAorICogICBidWZmZXIgc2l6 ZSBleGNlZWRzIHdoYXQgY2FuIGJlIGFkZHJlc3NlZCBieSB0aGlzIHNpbmdsZSBwYWdlLCB0aGVu CisgKiAgIHJlZmVyZW5jZSB0byB0aGUgbmV4dCBwYWdlIG11c3QgYmUgc3VwcGxpZWQgKGdyZWZf ZGlyX25leHRfcGFnZSBiZWxvdworICogICBpcyBub3QgTlVMTCkKKyAqLworCitzdHJ1Y3QgeGVu c25kX29wZW5fcmVxIHsKKyAgICB1aW50MzJfdCBwY21fcmF0ZTsgLyogaW4gSHogKi8KKyAgICB1 aW50OF90IHBjbV9mb3JtYXQ7CisgICAgdWludDhfdCBwY21fY2hhbm5lbHM7CisgICAgdWludDE2 X3QgX19yZXNlcnZlZDA7CisgICAgZ3JhbnRfcmVmX3QgZ3JlZl9kaXJlY3Rvcnlfc3RhcnQ7Cit9 OworCisvKgorICogU2hhcmVkIHBhZ2UgZm9yIFhFTlNORF9PUF9PUEVOIGJ1ZmZlciBkZXNjcmlw dG9yIChncmVmX2RpcmVjdG9yeSBpbiB0aGUKKyAqICAgcmVxdWVzdCkgZW1wbG95cyBhIGxpc3Qg b2YgcGFnZXMsIGRlc2NyaWJpbmcgYWxsIHBhZ2VzIG9mIHRoZSBzaGFyZWQgZGF0YQorICogICBi dWZmZXI6CisgKiAgICAgICAgICAwICAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAg MiAgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICog fCAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZl9kaXJfbmV4dF9wYWdlICAgICAgICAgICAg ICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbnVtX2dyZWZzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ3JlZlswXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZlsxXSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3JlZltOIC0xXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAor ICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGdyZWZfZGlyX25leHRfcGFnZSAtIGdyYW50X3Jl Zl90LCByZWZlcmVuY2UgdG8gdGhlIG5leHQgcGFnZSBkZXNjcmliaW5nCisgKiAgIHBhZ2UgZGly ZWN0b3J5CisgKiBudW1fZ3JlZnMgLSBudW1iZXIgb2YgZ3JlZnMgaW4gdGhpcyBwYWdlCisgKiBn cmVmW2ldIC0gZ3JhbnRfcmVmX3QsIHJlZmVyZW5jZSB0byBhIHNoYXJlZCBwYWdlIG9mIHRoZSBi dWZmZXIKKyAqICAgYWxsb2NhdGVkIGF0IFhFTlNORF9PUF9PUEVOCisgKi8KKworc3RydWN0IHhl bnNuZF9wYWdlX2RpcmVjdG9yeSB7CisgICAgZ3JhbnRfcmVmX3QgZ3JlZl9kaXJfbmV4dF9wYWdl OworICAgIHVpbnQzMl90IG51bV9ncmVmczsKKyAgICBncmFudF9yZWZfdCBncmVmWzBdOworfTsK KworLyoKKyAqICBSZXF1ZXN0IGNsb3NlIC0gY2xvc2UgYW4gb3BlbmVkIHBjbSBzdHJlYW06Cisg KiAgICAgICAgICAwICAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAgMiAgICAgICAg ICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg ICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCAgICBvcGVyYXRpb24gICAgfCAgICAgc3RyZWFt X2lkeCAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGFkZGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwor ICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGlkIC0gdWludDE2X3QsIHByaXZhdGUg Z3Vlc3QgdmFsdWUsIGVjaG9lZCBpbiByZXNwb25zZQorICogb3BlcmF0aW9uIC0gdWludDhfdCwg WEVOU05EX09QX0NMT1NFCisgKiBzdHJlYW1faWR4IC0gdWludDhfdCwgaW5kZXggb2YgdGhlIHN0 cmVhbSAoInN0cmVhbXNfaWR4IiBYZW5TdG9yZSBlbnRyeQorICogICBvZiB0aGUgc3RyZWFtKQor ICovCisKK3N0cnVjdCB4ZW5zbmRfY2xvc2VfcmVxIHsKKyAgICAvKiBwbGFjZSBob2xkZXIsIHJl bW92ZSBpZiBjaGFuZ2luZyB0aGUgc3RydWN0dXJlIChDODkgY29uY2VybikgKi8KKyAgICB1aW50 OF90IF9fcGxhY2Vob2xkZXI7Cit9OworCisvKgorICogUmVxdWVzdCByZWFkL3dyaXRlIC0gdXNl ZCBmb3IgcmVhZCAoZm9yIGNhcHR1cmUpIG9yIHdyaXRlIChmb3IgcGxheWJhY2spOgorICogICAg ICAgICAgMCAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAg ICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAg ICAgIGlkICAgICAgICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAgIHwgICAgIHN0cmVhbV9pZHgg IHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBhZGRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK KyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBp ZCAtIHVpbnQxNl90LCBwcml2YXRlIGd1ZXN0IHZhbHVlLCBlY2hvZWQgaW4gcmVzcG9uc2UKKyAq IG9wZXJhdGlvbiAtIHVpbnQ4X3QsIFhFTlNORF9PUF9SRUFEL1hFTlNORF9PUF9XUklURQorICog c3RyZWFtX2lkeCAtIHVpbnQ4X3QsIGluZGV4IG9mIHRoZSBzdHJlYW0gKCJzdHJlYW1zX2lkeCIg WGVuU3RvcmUgZW50cnkKKyAqICAgb2YgdGhlIHN0cmVhbSkKKyAqIG9mZnNldCAtIHVpbnQzMl90 LCByZWFkIG9yIHdyaXRlIGRhdGEgb2Zmc2V0IHdpdGhpbiB0aGUgc2hhcmVkIGJ1ZmZlcgorICog ICBwYXNzZWQgd2l0aCBYRU5TTkRfT1BfT1BFTiByZXF1ZXN0CisgKiBsZW5ndGggLSB1aW50MzJf dCwgcmVhZCBvciB3cml0ZSBkYXRhIGxlbmd0aAorICovCisKK3N0cnVjdCB4ZW5zbmRfd3JpdGVf cmVxIHsKKyAgICB1aW50MzJfdCBvZmZzZXQ7CisgICAgdWludDMyX3QgbGVuOworfTsKKworc3Ry dWN0IHhlbnNuZF9yZWFkX3JlcSB7CisgICAgdWludDMyX3Qgb2Zmc2V0OworICAgIHVpbnQzMl90 IGxlbjsKK307CisKKy8qCisgKiBSZXF1ZXN0IHNldC9nZXQgdm9sdW1lIC0gc2V0L2dldCBjaGFu bmVscycgdm9sdW1lIG9mIHRoZSBzdHJlYW0gZ2l2ZW46CisgKiAgICAgICAgICAwICAgICAgICAg ICAgICAgICAxICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAzICAgICAgICBvY3Rl dAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgaWQgICAgICAgICAg ICAgICAgfCAgICBvcGVyYXRpb24gICAgfCAgICAgc3RyZWFtX2lkeCAgfAorICogKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAor ICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKworICoKKyAqIGlkIC0gdWludDE2X3QsIHByaXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBp biByZXNwb25zZQorICogb3BlcmF0aW9uIC0gdWludDhfdCwgWEVOU05EX09QX1NFVF9WT0xVTUUg b3IgWEVOU05EX09QX0dFVF9WT0xVTUUKKyAqIHN0cmVhbV9pZHggLSB1aW50OF90LCBpbmRleCBv ZiB0aGUgc3RyZWFtICgic3RyZWFtc19pZHgiIFhlblN0b3JlIGVudHJ5CisgKiAgIG9mIHRoZSBz dHJlYW0pCisgKiBCdWZmZXIgcGFzc2VkIHdpdGggWEVOU05EX09QX09QRU4gaXMgdXNlZCB0byBl eGNoYW5nZSB2b2x1bWUKKyAqIHZhbHVlczoKKyAqCisgKiAgICAgICAgICAwICAgICAgICAgICAg ICAgICAxICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAor ICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj aGFubmVsWzBdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsWzFdICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogKy9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogICAgICAgICAgICAgICAgICBjaGFu bmVsW1hFTlNORF9PUF9PUEVOLnBjbV9jaGFubmVscyAtIDFdICAgICAgICAgICAgICAgfAorICog Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGNoYW5uZWxbaV0gLSBzaW50MzJfdCwgdm9sdW1lIG9m IGktdGggY2hhbm5lbAorICogVm9sdW1lIGlzIGV4cHJlc3NlZCBhcyBhIHNpZ25lZCB2YWx1ZSBp biBzdGVwcyBvZiAwLjAwMSBkQiwKKyAqIHdoaWxlIDAgYmVpbmcgMCBkQi4KKyAqLworCitzdHJ1 Y3QgeGVuc25kX2dldF92b2xfcmVxIHsKKyAgICAvKiBwbGFjZSBob2xkZXIsIHJlbW92ZSBpZiBj aGFuZ2luZyB0aGUgc3RydWN0dXJlIChDODkgY29uY2VybikgKi8KKyAgICB1aW50OF90IF9fcGxh Y2Vob2xkZXI7Cit9OworCitzdHJ1Y3QgeGVuc25kX3NldF92b2xfcmVxIHsKKyAgICAvKiBwbGFj ZSBob2xkZXIsIHJlbW92ZSBpZiBjaGFuZ2luZyB0aGUgc3RydWN0dXJlIChDODkgY29uY2Vybikg Ki8KKyAgICB1aW50OF90IF9fcGxhY2Vob2xkZXI7Cit9OworCisvKgorICogUmVxdWVzdCBtdXRl L3VubXV0ZSAtIG11dGUvdW5tdXRlIHN0cmVhbToKKyAqICAgICAgICAgIDAgICAgICAgICAgICAg ICAgIDEgICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cisg KiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAg ICB8ICAgIG9wZXJhdGlvbiAgICB8ICAgICBzdHJlYW1faWR4ICB8CisgKiArLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiAr LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2Vy dmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r CisgKgorICogaWQgLSB1aW50MTZfdCwgcHJpdmF0ZSBndWVzdCB2YWx1ZSwgZWNob2VkIGluIHJl c3BvbnNlCisgKiBvcGVyYXRpb24gLSB1aW50OF90LCBYRU5TTkRfT1BfTVVURS9YRU5TTkRfT1Bf VU5NVVRFCisgKiBzdHJlYW1faWR4IC0gdWludDhfdCwgaW5kZXggb2YgdGhlIHN0cmVhbSAoInN0 cmVhbXNfaWR4IiBYZW5TdG9yZSBlbnRyeQorICogICBvZiB0aGUgc3RyZWFtKQorICogQnVmZmVy IHBhc3NlZCB3aXRoIFhFTlNORF9PUF9PUEVOIGlzIHVzZWQgdG8gZXhjaGFuZ2UgbXV0ZS91bm11 dGUKKyAqIHZhbHVlczoKKyAqCisgKiAgICAgICAgICAwICAgICAgICAgICAgICAgICAxICAgICAg ICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKworICogfCAgIGNoYW5uZWxbMF0gICAgfCAgIGNoYW5uZWxbMV0gICAgfCAgIGNoYW5u ZWxbMl0gICAgfCAgIGNoYW5uZWxbM10gICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogKy9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgIGNoYW5uZWxbaV0gICAg fCAgIGNoYW5uZWxbaSsxXSAgfCAgIGNoYW5uZWxbaSsyXSAgfCAgIGNoYW5uZWxbaSszXSAgfAor ICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKworICogKy9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKworICoKKyAqIGNoYW5uZWxbaV0gLSB1aW50OF90LCBub24temVybyBpZiBpLXRoIGNoYW5u ZWwgbmVlZHMgdG8gYmUgbXV0ZWQvdW5tdXRlZAorICogTnVtYmVyIG9mIGNoYW5uZWxzIHBhc3Nl ZCBpcyBlcXVhbCB0byBYRU5TTkRfT1BfT1BFTiByZXF1ZXN0IHBjbV9jaGFubmVscworICogZmll bGQKKyAqLworCitzdHJ1Y3QgeGVuc25kX211dGVfcmVxIHsKKyAgICAvKiBwbGFjZSBob2xkZXIs IHJlbW92ZSBpZiBjaGFuZ2luZyB0aGUgc3RydWN0dXJlIChDODkgY29uY2VybikgKi8KKyAgICB1 aW50OF90IF9fcGxhY2Vob2xkZXI7Cit9OworCitzdHJ1Y3QgeGVuc25kX3VubXV0ZV9yZXEgewor ICAgIC8qIHBsYWNlIGhvbGRlciwgcmVtb3ZlIGlmIGNoYW5naW5nIHRoZSBzdHJ1Y3R1cmUgKEM4 OSBjb25jZXJuKSAqLworICAgIHVpbnQ4X3QgX19wbGFjZWhvbGRlcjsKK307CisKKy8qCisgKiBB bGwgcmVzcG9uc2UgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoNjQgYnl0ZXMpCisgKgor ICogUmVzcG9uc2UgZm9yIGFsbCByZXF1ZXN0czoKKyAqICAgICAgICAgIDAgICAgICAgICAgICAg ICAgIDEgICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cisg KiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAg ICB8ICAgIG9wZXJhdGlvbiAgICB8ICAgICBzdHJlYW1faWR4ICB8CisgKiArLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAg c3RhdHVzICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAg ICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAr LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r CisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogaWQgLSB1 aW50MTZfdCwgY29waWVkIGZyb20gdGhlIHJlcXVlc3QKKyAqIHN0cmVhbV9pZHggLSB1aW50OF90 LCBjb3BpZWQgZnJvbSByZXF1ZXN0CisgKiBvcGVyYXRpb24gLSB1aW50OF90LCBYRU5TTkRfT1Bf WFhYIC0gY29waWVkIGZyb20gcmVxdWVzdAorICogc3RhdHVzIC0gaW50OF90LCByZXNwb25zZSBz dGF0dXMgKFhFTlNORF9SU1BfPz8/KQorICovCisKK3VuaW9uIHhlbnNuZF9yZXEgeworICAgIHN0 cnVjdCB7CisgICAgICAgIHVpbnQxNl90IGlkOworICAgICAgICB1aW50OF90IG9wZXJhdGlvbjsK KyAgICAgICAgdWludDhfdCBzdHJlYW1faWR4OworICAgICAgICB1aW50MzJfdCBwYWRkaW5nOwor ICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICBzdHJ1Y3QgeGVuc25kX29wZW5fcmVxIG9wZW47 CisgICAgICAgICAgICAgICAgc3RydWN0IHhlbnNuZF9jbG9zZV9yZXEgY2xvc2U7CisgICAgICAg ICAgICAgICAgc3RydWN0IHhlbnNuZF93cml0ZV9yZXEgd3JpdGU7CisgICAgICAgICAgICAgICAg c3RydWN0IHhlbnNuZF9yZWFkX3JlcSByZWFkOworICAgICAgICAgICAgICAgIHN0cnVjdCB4ZW5z bmRfZ2V0X3ZvbF9yZXEgZ2V0X3ZvbDsKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuc25kX3Nl dF92b2xfcmVxIHNldF92b2w7CisgICAgICAgICAgICAgICAgc3RydWN0IHhlbnNuZF9tdXRlX3Jl cSBtdXRlOworICAgICAgICAgICAgICAgIHN0cnVjdCB4ZW5zbmRfdW5tdXRlX3JlcSB1bm11dGU7 CisgICAgICAgICAgICB9IG9wOworICAgICAgICB9IGRhdGE7CisgICAgdWludDhfdCByYXdbNjRd OworfTsKKwordW5pb24geGVuc25kX3Jlc3AgeworICAgIHN0cnVjdCB7CisgICAgICAgIHVpbnQx Nl90IGlkOworICAgICAgICB1aW50OF90IG9wZXJhdGlvbjsKKyAgICAgICAgdWludDhfdCBzdHJl YW1faWR4OworICAgICAgICBpbnQ4X3Qgc3RhdHVzOworICAgIH0gZGF0YTsKKyAgICB1aW50OF90 IHJhd1s2NF07Cit9OworCitERUZJTkVfUklOR19UWVBFUyh4ZW5fc25kaWYsIHN0cnVjdCB4ZW5z bmRfcmVxLCBzdHJ1Y3QgeGVuc25kX3Jlc3ApOworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0lP X1hFTlNORF9IX18gKi8KLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==