From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH 00/17 v5] SBSA UART emulation support in Xen Date: Wed, 5 Jul 2017 20:51:50 +0100 Message-ID: <7871eb52-9c1e-3706-fa44-b00354f92900@arm.com> References: <1498117132-27139-1-git-send-email-bhupinder.thakur@linaro.org> <252391ba-4f94-920a-e3a2-92b2fa3fc4fa@arm.com> <9da1b0dc-af82-d270-0118-347e1aff8afc@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dSqL9-0002Nv-UR for xen-devel@lists.xenproject.org; Wed, 05 Jul 2017 19:52:00 +0000 In-Reply-To: <9da1b0dc-af82-d270-0118-347e1aff8afc@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Stefano Stabellini Cc: Wei Liu , Ard Biesheuvel , Ian Jackson , Bhupinder Thakur , xen-devel@lists.xenproject.org, nd@arm.com, lersek@redhat.com, Christoffer Dall List-Id: xen-devel@lists.xenproject.org T24gMDUvMDcvMjAxNyAyMDo0MywgSnVsaWVuIEdyYWxsIHdyb3RlOgo+Cj4KPiBPbiAwNS8wNy8y MDE3IDIwOjA2LCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6Cj4+IE9uIFdlZCwgNSBKdWwgMjAx NywgSnVsaWVuIEdyYWxsIHdyb3RlOgo+Pj4gT24gMDcvMDQvMjAxNyAwODozMSBBTSwgQmh1cGlu ZGVyIFRoYWt1ciB3cm90ZToKPj4+PiBIaSBKdWxpZW4sCj4+Pgo+Pj4gSGkgQmh1cGluZGVyLAo+ Pj4KPj4+IFRoYW5rIHlvdSBmb3IgdGhlIHN1bW1hcnkhCj4+Pgo+Pj4gWy4uLl0KPj4+Pgo+Pj4+ IEN1cnJlbnRseSwgVUVGSSBmaXJtd2FyZSB1c2VzIGh2YyBhcyB0aGUgY29uc29sZSBmb3IgaW5w dXQvb3V0cHV0LiBOb3cKPj4+PiB3aXRoIHRoZSBzdXBwb3J0Cj4+Pj4gb2YgU0JTQSBVQVJUIGlu IFhlbiwgaXQgaXMgcHJlZmVycmFibGUgdGhhdCBVRUZJIGZpcm13YXJlIHNob3VsZCBiZQo+Pj4+ IGFibGUgdG8gdGhlIHVhcnQKPj4+PiBhcyB3ZWxsLgo+Pj4+Cj4+Pj4gT25lIG9wdGlvbiB3aGlj aCB3YXMgZGlzY3Vzc2VkIHdhcyB0byB1c2UgcGwwMTEgcHVyZWx5IGFzIGEgZGVidWcKPj4+PiBw b3J0LiBDdXJyZW50bHkgdGhlIGRlYnVnCj4+Pj4gcHJpbnRzIGFyZSBpbnRlcm1peGVkIHdpdGgg dGhlIG5vcm1hbCBjb25zb2xlIG91dHB1dC4gTm93IHdpdGggdWFydAo+Pj4+IHBvcnQgYmVjb21p bmcgYXZhaWxhYmxlCj4+Pj4gdGhlIGRlYnVnIHByaW50cyBjYW4gYmUgcmVkaXJlY3RlZCB0byBw bDAxMSB0aHVzIGNsZWFuaW5nIHVwIHRoZQo+Pj4+IGNvbnNvbGUKPj4+PiBvdXRwdXQuCj4+Pj4K Pj4+PiBPdGhlciBvcHRpb24gaXMgdG8gb3V0cHV0IGV2ZXJ5dGhpbmcgb24gYm90aCBIVkMgYW5k IHBsMDExIGJvdGggYnV0IGl0Cj4+Pj4gdGFrZXMgYXdheSB0aGUgYWR2YW50YWdlCj4+Pj4gb2Yg c2VwYXJhdGluZyBvdXQgdGhlIGRlYnVnIGFuZCBub3JtYWwgY29uc29sZSBwcmludHMuIEhvd2V2 ZXIsIHBsMDExCj4+Pj4gY2FuIGJlIHVzZWQgYXMgZGVidWcKPj4+PiBwb3J0IGJhc2VkIG9uIGEg Y29tcGlsZSB0aW1lIGZsYWcuIElmIHRoaXMgY29tcGlsZS10aW1lIGlzIG9mZiwgdGhlbgo+Pj4+ IHRoZSBvdXRwdXQgY2FuIGJlIHNlbnQgdG8gYm90aAo+Pj4+IEhWQyBhbmQgcGwwMTEuCj4+Pj4K Pj4+PiBCYXNlZCBvbiB0aGlzIGRpc2N1c3Npb24gSSBmZWVsIHRoYXQ6Cj4+Pj4gLSB0aGUgZGVm YXVsdCBiZWhhdmlvdXIgc2hvdWxkIGJlIHdyaXRpbmcgdGhlIG91dHB1dCB0byBib3RoIEhWQyBh bmQKPj4+PiBwbDAxMS4KPj4+Cj4+PiBIbW1tLiBJZiBJIHJlbWVtYmVyIGNvcnJlY3RseSB0aGlz IHdhcyBzdWdnZXN0ZWQgYnV0IHJ1bGVkIG91dC4gSXQgd2FzCj4+PiBjb25zaWRlcmVkIHRoYXQg cGwwMTEgYW5kIFBWIGNvbnNvbGUgc2hvdWxkIG5vdCBiZSB0cmVhdGVkIGVxdWFsLgo+Pj4gUEww MTEgd291bGQKPj4+IGJlIHVzZWQgZm9yIGJvb3QgZGlhZ25vc3RpY3MgKGkuZSBpbWFnaW5lIGFu IEltYWdlIHdpdGggbm8gWGVuIHN1cHBvcnQpLgo+Pgo+PiBBY3R1YWxseSBJIHJlbWVtYmVyIHRo ZSBvcHBvc2l0ZToKPj4gYWZkMmU5MzEtNzA2Yi02ZTI1LTFmMGUtZmVlZTE2ZTgzYzg4QHJlZGhh dC5jb20gKHRoaXMgd2FzIGEgcHJpdmF0ZQo+PiByZXBseSB0aG91Z2gpLgo+Cj4gVGhpcyB3YXMg YW4gYW5zd2VyIHRvIG15IHF1ZXN0aW9uIHdoZXRoZXIgYSB1c2VyIGNvdWxkIHNlbGVjdCB0aGUg c2VyaWFsCj4gYnkgaGltc2VsZi4gVG8gdGhpcyByZXBseSwgeW91IGFza2VkIHdoZXRoZXIgaXQg d2FzIGZlYXNpYmxlIHRvIG91dHB1dAo+IG9uIGFsbCB0aGUgc2VyaWFscyBjb25zb2xlLCBidXQg SSBkb24ndCBzZWUgYW55IHllcy9ubyBhbnN3ZXIuCj4KPiBPbiB0aGUgcmVzdCBvZiB0aGUgdGhy ZWFkLCBpdCBoYXMgYmVlbiBtZW50aW9uZWQgaXQgd2FzIGRpZmZpY3VsdCB0bwo+IG11bHRpcGxl eCB0byBzZXJpYWwgY29uc29sZSAoSSBmb3J3YXJkZWQgeW91IHRoZSB0aHJlYWQpLiBDaHJpc3Rv ZmZlciwKPiBMYXN6bG8gYW5kIEFyZCBhZ3JlZWQgdGhhdCBQTDAxMSBzaG91bGQgb25seSBiZSB1 c2VkIGFzIGJvb3QgZGlhZ25vc3RpY3MKPiBhbmQgZGVidWcgKGlmIHNlbGVjdGVkIGF0IGNvbXBp bGUgdGltZSkuCgpBY3R1YWxseSBjb3B5aW5nIGhlcmUgYXMgYW5zd2VyIGFzIExhc3psbyB3YXMg aGFwcHkgdG8gZm9yd2FyZCB0aGUgCmFuc3dlciBvbiBwdWJsaWMgbGlzdDogKCtDQyBDaHJpc3Rv ZmZlciBhbmQgQXJkKQoKKiBTbywgZmlyc3Qgb2YgYWxsLCB0aGUgZGVidWcgcG9ydCBtdXN0IGJl IGEgc3VwZXIgZHVtYiBkZXZpY2UsCiAgIGF2YWlsYWJsZSB0byB0aGUgZWFybGllc3QgZmlybXdh cmUgcGhhc2VzLiBJdCBiYXNpY2FsbHkgaGFzIHRvIGJlIGEKICAgcGxhdGZvcm0gZGV2aWNlLCB3 aG9zZSBsb2NhdGlvbiBhbmQgYXR0cmlidXRlcyBjYW4gYmUgZmlndXJlZCBvdXQKICAgd2l0aG91 dCBodyBkaXNjb3Zlcnkgb3IgZW51bWVyYXRpb24uIChTY2FubmluZyB0aGUgRFRCIGlzIGZpbmUs IGFsYmVpdAogICBhbHJlYWR5IHF1aXRlIGxhYm9yaW91cyBpbiB0aGUgZWFybGllc3QgcGhhc2Vz LikgUENJLCB2aXJ0aW8sIG9yIFhlblBWCiAgIGRldmljZXMgYXJlIHVuc3VpdGFibGUgZm9yIHRo aXMuCgoqIEluIE9WTUYgKHg4NiksIHdlIHVzZSB0aGUgUUVNVSBkZWJ1ZyBwb3J0IGZvciB0aGlz IHB1cnBvc2UKICAgKGhhcmQtY29kaW5nIHRoZSBhY2Nlc3NlcyB0byBJTyBwb3J0IDB4NDAyKS4g Rm9yIHRoaXMsIHdlIGhhdmUgYQogICBzcGVjaWFsaXplZCBEZWJ1Z0xpYiBpbnN0YW5jZSwgdW5k ZXIKICAgIk92bWZQa2cvTGlicmFyeS9QbGF0Zm9ybURlYnVnTGliSW9Qb3J0Ii4KCiogVGhlIHNl cmlhbCBwb3J0ICgiQ09NMSIpIGlzIHVzZWQgZXF1aXZhbGVudGx5IHdpdGggdGhlIGdyYXBoaWNh bAogICBkaXNwbGF5IGFuZCB0aGUgVVNCIGFuZCBQUy8yIGtleWJvYXJkKHMpLCBmb3IgY29uc29s ZSBwdXJwb3Nlcy4gVGhlCiAgIGNvbnNvbGUocykgYmVjb21lIGF2YWlsYWJsZSBtdWNoIGxhdGVy IGR1cmluZyBmaXJtd2FyZSBib290IChvbmx5IGluCiAgIHRoZSBCRFMgcGhhc2UpLgoKKiBJbiBv cmRlciBmb3IgYSBkZXZpY2UgdG8gYmUgdXNhYmxlIGFzIGEgY29uc29sZSwgdGhlIGRyaXZlciBz dGFjayBtdXN0CiAgIChyZWN1cnNpdmVseSkgcHJvdmlkZSB0aGUgZm9sbG93aW5nIHR3byAiaGln aGVyIGxldmVsIGFic3RyYWN0aW9ucyIgb24KICAgdG9wIG9mIHRoZSBkZXZpY2U6CgogICAtIEVm aVNpbXBsZVRleHRJblByb3RvY29sIE9SIEVmaVNpbXBsZVRleHRJbnB1dEV4UHJvdG9jb2wsCiAg IC0gQU5EIEVmaVNpbXBsZVRleHRPdXRQcm90b2NvbAoKICAgSWYgdGhlc2UgYXJlIHByb3ZpZGVk LCB0aGVuIHRoZSBjb25zb2xlIHNwbGl0dGVyIC8gbXVsdGlwbGV4ZXIKICAgbWVudGlvbmVkIGJ5 IEFyZCB3aWxsIHRha2UgY2FyZSBvZiB0aGUgcmVzdC4KCiogSW4gT1ZNRiAoeDg2KSwgdGhpcyBp cyB0aGUgcmVsZXZhbnQgcHJvdG9jb2wgYW5kIGRyaXZlciBzdGFjayBmb3IgdGhlCiAgICJDT00x IiBzZXJpYWwgcG9ydCAobm90ZSB0aGF0IHRoZSBuZWNlc3NhcnkgImhpZ2ggbGV2ZWwgYWJzdHJh Y3Rpb25zIgogICBJIG1lbnRpb25lZCBhYm92ZSBhcmUgYXQgdGhlIGJvdHRvbSk6CgogICAgICAg ICAgICAgTWRlTW9kdWxlUGtnL0J1cy9QY2kvUGNpQnVzRHhlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgICAgICAgICAgICAg W0VmaVBjaUlvUHJvdG9jb2xdCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAogICAgICAgICAgICAgICBQY0F0Q2hpcHNldFBrZy9Jc2FBY3Bp RHhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgfAogICAgICAgICAgICAgICAgIFtFZmlJc2FBY3BpUHJvdG9jb2xdCiAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgSW50ZWxG cmFtZXdvcmtNb2R1bGVQa2cvQnVzL0lzYS9Jc2FCdXNEeGUKICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgICAgIFtF ZmlJc2FJb1Byb3RvY29sXQogICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwKICAgICBJbnRlbEZyYW1ld29ya01vZHVsZVBrZy9CdXMvSXNhL0lz YVNlcmlhbER4ZQogICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKICAgICAgICAgICAgICAgICBbRWZpU2VyaWFsSW9Qcm90b2NvbF0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgogICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAg ICAgICAgICBVbml2ZXJzYWwvQ29uc29sZS9UZXJtaW5hbER4ZQogICAgICAgICAgICAgICAgICAg ICAgICAgICBeCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICBbRWZp U2ltcGxlVGV4dEluUHJvdG9jb2wsCiAgICAgICAgICAgICAgIEVmaVNpbXBsZVRleHRJbnB1dEV4 UHJvdG9jb2wsCiAgICAgICAgICAgICAgIEVmaVNpbXBsZVRleHRPdXRQcm90b2NvbF0KCiAgIE1v c3Qgb2YgdGhpcyBzdGFjayBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQgKHVwIHRvIGFuZCBpbmNsdWRp bmcKICAgSXNhU2VyaWFsRHhlLCB3aGljaCBwcm9kdWNlcyBbRWZpU2VyaWFsSW9Qcm90b2NvbF0p LiBUaGUgdW5pdmVyc2FsCiAgIHBhcnQgc3RhcnRzIG9ubHkgd2l0aCBUZXJtaW5hbER4ZSwgd2hp Y2ggY29uc3VtZXMKICAgW0VmaVNlcmlhbElvUHJvdG9jb2xdLCBhbmQgcHJvZHVjZXMgdGhlIG5l ZWRlZCBoaWdoZXIgbGV2ZWwKICAgYWJzdHJhY3Rpb25zIG9uIHRvcC4KCiogT1ZNRiBjYW4gYmUg YnVpbHQgKHdpdGggLUQgREVCVUdfT05fU0VSSUFMX1BPUlQpIHRvIGlnbm9yZSB0aGUgUUVNVQog ICBkZWJ1ZyBwb3J0IGFuZCB0byBkaXJlY3QgZGVidWcgbWVzc2FnZXMgdG8gdGhlIHNlcmlhbCBw b3J0IGluc3RlYWQuIEluCiAgIHRoYXQgY2FzZSwgd2UgdXNlIHRoZSBmb2xsb3dpbmcgbGlicmFy eSBpbnN0YW5jZXMsIGZvciBkaXJlY3RpbmcgZGVidWcKICAgbWVzc2FnZXMgdG8gdGhlIHNlcmlh bCBwb3J0OgoKICAgLSBTZXJpYWxQb3J0TGliOiBQY0F0Q2hpcHNldFBrZy9MaWJyYXJ5L1Nlcmlh bElvTGliCiAgIC0gRGVidWdMaWI6IE1kZVBrZy9MaWJyYXJ5L0Jhc2VEZWJ1Z0xpYlNlcmlhbFBv cnQKCiAgIFRoZSBEZWJ1Z0xpYiBpbnN0YW5jZSB1c2VzIFNlcmlhbFBvcnRMaWIgaW50ZXJmYWNl cyB0byBwcmludAogICBjaGFyYWN0ZXJzLCBhbmQgdGhlIFNlcmlhbFBvcnRMaWIgaW5zdGFuY2Ug bWVudGlvbmVkIGFib3ZlIGhhcmRjb2RlcwogICAweDNGOCBhcyB0aGUgIkNPTTEiIFVBUlQgYmFz ZSBhZGRyZXNzLgoKICAgVGhpcyBkZWJ1Zy1vbi1zZXJpYWwgYnVpbGQgd29ya3MsIGJ1dCBvbmNl IHdlJ3JlIGluIHRoZSBCRFMgcGhhc2UsIHRoZQogICBzZXJpYWwgb3V0cHV0IHdpbGwgYmUgYSBt aXh0dXJlIG9mIGNvbnNvbGUgc3R1ZmYgYW5kIGRlYnVnIG1lc3NhZ2VzLAogICBiZWNhdXNlIHRo ZSB0d28gc2VwYXJhdGUgcGF0aHMgZGVzY3JpYmVkIGFib3ZlIGR1bXAgb3V0cHV0IHRvIHRoZQog ICBleGFjdCBzYW1lIGRldmljZS4KCiAgIFNvIHRoZSByZWNvbW1lbmRlZCAoYW5kIGRlZmF1bHQp IGJ1aWxkIGlzIHRvIHNlbmQgREVCVUdzIHRvIHRoZSBRRU1VCiAgIGRlYnVnIHBvcnQgKHJlZGly ZWN0aW5nIHRoZW0gdG8gYSBob3N0IHNpZGUgZmlsZSksIGFuZCB0byB1c2UgIkNPTTEiCiAgIG9u bHkgZm9yIGNvbnNvbGUgcHVycG9zZXMuCgoqIHFlbXUtc3lzdGVtLWFhcmNoNjQgaGFzIG5vICJk ZWJ1ZyBwb3J0Iiwgc28gaW4gQXJtVmlydFFlbXUgd2UgaGF2ZQogICBzb21ldGhpbmcgdGhhdCBj YW4gYmUgY29tcGFyZWQgdG8gdGhlIChzdWItb3B0aW1hbCkgIi1ECiAgIERFQlVHX09OX1NFUklB TF9QT1JUIiBidWlsZCBvZiBPVk1GLiBOYW1lbHksIGRlYnVnIG1lc3NhZ2VzIGFuZAogICBjb25z b2xlIG91dHB1dCBhcmUgaW50ZXJtaXhlZC4KCiogSW4gcGFydGljdWxhciwgZm9yIHRoZSBERUJV RyBtZXNzYWdlcywgd2UgdXNlIHRoZSBmb2xsb3dpbmcgbGlicmFyeQogICBpbnN0YW5jZXM6Cgog ICAtIFBMMDExVWFydExpYjogQXJtUGxhdGZvcm1Qa2cvRHJpdmVycy9QTDAxMVVhcnQvUEwwMTFV YXJ0LmluZgoKICAgLSBTZXJpYWxQb3J0TGliIFsxXToKICAgICBBcm1WaXJ0UGtnL0xpYnJhcnkv RmR0UEwwMTFTZXJpYWxQb3J0TGliL0Vhcmx5RmR0UEwwMTFTZXJpYWxQb3J0TGliLmluZgogICAg IChpbiBlYXJseSBmaXJtd2FyZSBwaGFzZXMgd2l0aCBubyB3cml0ZWFibGUgUkFNKQoKICAgLSBT ZXJpYWxQb3J0TGliIFsyXToKICAgICBBcm1WaXJ0UGtnL0xpYnJhcnkvRmR0UEwwMTFTZXJpYWxQ b3J0TGliL0ZkdFBMMDExU2VyaWFsUG9ydExpYi5pbmYKICAgICAobGF0ZXIgZmlybXdhcmUgcGhh c2VzIHdpdGggd3JpdGVhYmxlIFJBTSkKCiAgIC0gRGVidWdMaWI6IE1kZVBrZy9MaWJyYXJ5L0Jh c2VEZWJ1Z0xpYlNlcmlhbFBvcnQKCiAgIFRoZSBEZWJ1Z0xpYiBpbnN0YW5jZSBpcyB0aGUgc2Ft ZSBhcyBpbiBPVk1GJ3MgLUQgREVCVUdfT05fU0VSSUFMX1BPUlQKICAgYnVpbGQsIGJ1dCB0aGUg c2VyaWFsIHBvcnQgQVBJcyBhcmUgZmlsbGVkIGluIGJ5IGRpZmZlcmVudCBsaWJyYXJ5CiAgIGlu c3RhbmNlcy4KCiAgIEZvciB0aGUgZWFybHkgZmlybXdhcmUgcGhhc2VzLCB3ZSB1c2UgRWFybHlG ZHRQTDAxMVNlcmlhbFBvcnRMaWIsCiAgIHdoaWNoIHBhcnNlcyB0aGUgUEwwMTEgbG9jYXRpb24g ZnJvbSB0aGUgRFRCIG9uIGV2ZXJ5IHNpbmdsZSBzZXJpYWwKICAgcG9ydCBBUEkgaW52b2NhdGlv bi4gSW4gbGF0ZXIgZmlybXdhcmUgcGhhc2VzLCB3ZSB1c2UKICAgRmR0UEwwMTFTZXJpYWxQb3J0 TGliLCB3aGljaCBjYW4gY2FjaGUgdGhlIHBhcnNlZCBsb2NhdGlvbiBpbiBzdGF0aWMKICAgdmFy aWFibGVzLgoKICAgRmluYWxseSwgYm90aCBTZXJpYWxQb3J0TGliIGluc3RhbmNlcyBhc2sgdGhl IHNhbWUgUEwwMTFVYXJ0TGliIHRvCiAgIHBlcmZvcm0gdGhlIGFjdHVhbCBQTDAxMSBhY2Nlc3Nl cy4KCiogTm93IHRoYXQgd2UgZ290IHRoZSBERUJVRyBtZXNzYWdlIHByaW50aW5nIGZvciBBcm1W aXJ0UWVtdSBvdXQgb2YgdGhlCiAgIHdheSwgbGV0J3MgbG9vayBhdCBob3cgUEwwMTEgaXMgdXNl ZCBmb3IgY29uc29sZSBwdXJwb3Nlcy4gKEFnYWluLAogICBzaGFyaW5nIHRoZSBzYW1lIFBMMDEx IGJldHdlZW4gY29uc29sZSBhbmQgREVCVUcgbWVzc2FnZXMgaXMgbm90CiAgIG9wdGltYWwsIGJ1 dCB0aGVyZSBpcyBubyBzZXBhcmF0ZSBkZWJ1ZyBwb3J0IGZvciB0aGUgYWFyY2g2NCB0YXJnZXQu KQoKICAgICAgICAgICAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9TZXJpYWxEeGUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgogICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICAg ICAgICAgICAgW0VmaVNlcmlhbElvUHJvdG9jb2xdCiAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgICAgICAgVW5pdmVyc2FsL0Nv bnNvbGUvVGVybWluYWxEeGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogICAgICAgICAg ICAgICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgW0VmaVNpbXBsZVRleHRJblByb3RvY29s LAogICAgICAgICAgICAgICBFZmlTaW1wbGVUZXh0SW5wdXRFeFByb3RvY29sLAogICAgICAgICAg ICAgICBFZmlTaW1wbGVUZXh0T3V0UHJvdG9jb2xdCgogICBBbGwgdGhlIGRyaXZlcnMgaW4gdGhp cyBzdGFjayBhcmUgdW5pdmVyc2FsLCBhbmQgU2VyaWFsRHhlIHByb2R1Y2VzCiAgIGV4YWN0bHkg b25lIFtFZmlTZXJpYWxJb1Byb3RvY29sXSBpbnN0YW5jZSB3aXRob3V0IGNvbnN1bWluZyBvdGhl cgogICBwcm90b2NvbCBpbnN0YW5jZXMuIFRoZSB0cmljayBpcyB0aGF0IGl0IGRlbGVnYXRlcyB0 aGUgYWN0dWFsIHdvcmsgdG8KICAgdGhlIHBsYXRmb3JtJ3MgU2VyaWFsUG9ydExpYiBpbnN0YW5j ZSAod2hpY2ggaXMgbGlua2VkIGludG8gdGhlCiAgIFNlcmlhbER4ZSBleGVjdXRhYmxlKS4KCiAg IEluIEFybVZpcnRRZW11J3MgY2FzZSwgdGhpcyBpbnN0YW5jZSBpcyB0aGUgb25lIG1hcmtlZCBh Ym92ZSBhcwogICAiU2VyaWFsUG9ydExpYiBbMl0iLCB3aGljaCBpbiB0dXJuIHB1bGxzIGluIFBM MDExVWFydExpYiBhcyB3ZWxsLgoKKiBDb25zaWRlcmluZyB0aGUgQXJtVmlydFhlbiBjYXNlLiBC b3RoIHBhdGhzIChERUJVRyBtZXNzYWdlcyBhbmQKICAgY29uc29sZSBJTykgYXJlIGlkZW50aWNh bCB0byB0aG9zZSBpbiBBcm1WaXJ0UWVtdSwgZXhjZXB0IHdlIHVzZSB0aGUKICAgZm9sbG93aW5n IHNlcmlhbCBwb3J0IGxpYnJhcnkgaW5zdGFuY2U6CgogICAtIFNlcmlhbFBvcnRMaWI6IE92bWZQ a2cvTGlicmFyeS9YZW5Db25zb2xlU2VyaWFsUG9ydExpYgoKICAgWW91IG1pZ2h0IG5vdGljZSB0 aGF0IHdlIGRvbid0IGhhdmUgdHdvIFNlcmlhbFBvcnRMaWIgaW5zdGFuY2VzIGhlcmUsCiAgIG9u ZSBmb3IgImVhcmx5IiAoUkFNLWxlc3MpIHBoYXNlcyBhbmQgYW5vdGhlciBmb3IgImxhdGUiIChS QU0tZnVsKQogICBwaGFzZXMsIGxpa2Ugd2UgaGF2ZSBpbiBBcm1WaXJ0UWVtdS4gQXMgZmFyIGFz IEkgdW5kZXJzdGFuZCwgdGhlCiAgIHJlYXNvbiBpcyB0aGF0IFhlbiBndWVzdHMgbGFjayB0aGUg ImVhcmx5IiAoUkFNLWxlc3MpIHBoYXNlcyB0b3RhbGx5LAogICBhbmQgc28gd2UgY2FuIGdldCBh d2F5IHdpdGgganVzdCBhIFNlcmlhbFBvcnRMaWIgaW5zdGFuY2UgdGhhdAogICByZXF1aXJlcyB3 cml0ZWFibGUgUkFNLgoKICAgVGhpcyBsaWJyYXJ5IGluc3RhbmNlIHBlcmZvcm1zIFhlbiBoeXBl cmNhbGxzLiBCdXQsIHRoYXQgbWFrZXMgbm8KICAgZGlmZmVyZW5jZSB0aGF0IHRoZSBzYW1lIFNl cmlhbFBvcnRMaWIgaW5zdGFuY2UgaXMgdXNlZCBmb3IgKmJvdGgqCiAgIHBhdGhzLCBuYW1lbHkg Y29uc29sZSBJTyBhbmQgREVCVUcgbWVzc2FnZXMuCgoqIE5vdywgYXNzdW1pbmcgWGVuIGdldHMg YW5vdGhlciBzZXJpYWwgcG9ydCwgaS5lLiBpdCdsbCBoYXZlIGJvdGgKICAgZW11bGF0ZWQgUEww MTEgYW5kIHRoZSBwYXJhdmlydCBjb25zb2xlIGRldmljZS4gQmFzZWQgb24gbXkgZXhwZXJpZW5j ZQogICB3aXRoIE9WTUYgKHdoZXJlIERFQlVHcyBhbmQgY29uc29sZSBJTyB1c2UgZGlmZmVyZW50 IGRldmljZXMpLCBJJ2QKICAgcmVjb21tZW5kIHRvIGRlZGljYXRlIG9uZSBkZXZpY2UgdG8gREVC VUcgbWVzc2FnZXMsIGFuZCBhbm90aGVyIHRvCiAgIGNvbnNvbGUgSU8uIEkgd291bGQgKm5vdCog cmVjb21tZW5kIG11bHRpcGxleGluZyBVRUZJIGNvbnNvbGUgSU8gdG8KICAgYm90aCBQTDAxMSBh bmQgdGhlIFhlblBWIGNvbnNvbGUgLS0gc2ltcGx5IGJlY2F1c2Ugc2VwYXJhdGluZyBERUJVR3MK ICAgZnJvbSBjb25zb2xlIElPIGlzIG11Y2ggbW9yZSBpbXBvcnRhbnQgdGhhbiB0aGF0LiBTbyBp ZiB5b3UgZ2FpbgogICBhbm90aGVyLCBwcmltaXRpdmUgZW5vdWdoIHNlcmlhbCBwb3J0LWxpa2Ug ZGV2aWNlLCBkZWZpbml0ZWx5IGRlZGljYXRlCiAgIGl0IHRvIHRoaXMgc2VwYXJhdGlvbiwgSU1I TyEKCiAgIFdoZXRoZXIgeW91IGFzc2lnbiBQTDAxMSB0byBERUJVR3MgYW5kIGtlZXAgVUVGSSBj b25zb2xlIElPIChpbmNsdWRpbmcKICAgZ3J1YjIgSU8sIGZvciBleGFtcGxlKSBvbiBYZW5QViwg b3IgYXNzaWduIHRoZW0gdGhlIG90aGVyIHdheSBhcm91bmQsCiAgIGlzIGEgbWF0dGVyIG9mIHRh c3RlIChvciBzdGFuZGFyZHMpLCBJIGd1ZXNzLgoKICAgLSBGb3Iga2VlcGluZyB0aGUgVUVGSSBj b25zb2xlIElPIG9uIFhlblBWLCBhbmQgbW92aW5nIHRoZSBERUJVRwogICAgIG1lc3NhZ2VzIHRv IHRoZSBuZXcgUEwwMTE6IGltcGxlbWVudCBhIG5ldyBEZWJ1Z0xpYiBpbnN0YW5jZSB0aGF0CiAg ICAgZ3JhYnMgdGhlIFBMMDExIGxvY2F0aW9uIGluIGEgbWFubmVyIHRoYXQgaXMgc3BlY2lmaWMg dG8gWGVuIGd1ZXN0cwogICAgIChteSBndWVzczogc2ltcGx5IG9wZW4tY29kZSBpdD8pIGFuZCB0 aGVuIGRlbGVnYXRlcyB0aGUgdHJhbnNtaXQKICAgICB3b3JrIHRvIFBMMDExVWFydExpYi4gVGhh dCdzIGFsbC4KCiAgIC0gRm9yIHRoZSBpbnZlcnNlOiBhZGQgYSBuZXcgRGVidWdMaWIgaW5zdGFu Y2UgdGhhdCBlbWJlZHMKICAgICBYZW5Db25zb2xlU2VyaWFsUG9ydExpYidzIGZ1bmN0aW9uYWxp dHksIGFuZCBhZGQgYSBTZXJpYWxQb3J0TGliCiAgICAgaW5zdGFjZSAtLSBhIHZhcmlhbnQgb2Yg RmR0UEwwMTFTZXJpYWxQb3J0TGliLmluZiAtLSB0aGF0IGdyYWJzIHRoZQogICAgIFBMMDExIGxv Y2F0aW9uIGluIGEgWGVuLXNwZWNpZmljIHdheSwgYW5kIGRlbGVnYXRlcyB0aGUgdHJhbnNtaXQK ICAgICB3b3JrIHRvIFBMMDExVWFydExpYi4KCiAgIEJvdGggb2YgdGhlc2UgaW52b2x2ZSB0aGUg aW50cm9kdWN0aW9uIG9mIGEgRGVidWdMaWIgaW5zdGFuY2UgdGhhdAogICBkb2VzICpub3QqIGRl cGVuZCBvbiB0aGUgU2VyaWFsUG9ydExpYiBjbGFzcy4KCiogT2ZmIHRoZSB0b3Agb2YgbXkgaGVh ZCwgSSBjYW4ndCBzYXkgaG93IChhbmQgKndoZXRoZXIqKSB0aGlzIGRpdmlzaW9uCiAgIG9mIGxv ZyBkZXZpY2VzIGluIFVFRkkgc2hvdWxkIGJlIG1pcnJvcmVkIHRvIHRoZSBMaW51eCBndWVzdCBP UyBhcwogICB3ZWxsLiBFYXJsaWVyIEkgbWFkZSBhbiBlZmZvcnQgdG8gdW5kZXJzdGFuZCBob3cg TGludXggaGFuZGxlZCBEQkcyCiAgIHZlcnN1cyBTUENSIHZlcnN1cy4uLiB3aGF0ZXZlciwgYnV0 IEkndmUgZm9yZ290dGVuIGFsbCB0aGF0IGJ5IG5vdy4KCiogSWYgeW91ICphYnNvbHV0ZWx5KiB3 YW50IHRvIG11bHRpcGxleCBib3RoIGRlYnVnIG1lc3NhZ2VzIGFuZCBjb25zb2xlCiAgIElPIHRv IGJvdGggUEwwMTEgYW5kIHRoZSBYZW5QViBjb25zb2xlLCB0aGVuIGEgbmV3IERYRSBkcml2ZXIg d2lsbCBiZQogICBuZWNlc3NhcnkgdGhhdCBwcm9kdWNlcyBhbm90aGVyIEVmaVNlcmlhbElvUHJv dG9jb2wgaW5zdGFuY2UsIHdpdGhvdXQKICAgZ29pbmcgdGhyb3VnaCB0aGUgU2VyaWFsUG9ydExp YiBjbGFzcy4KCiAgIFRoaXMgZHJpdmVyIGNvdWxkIGJlIGEgY2xvbmUgb2YgU2VyaWFsRHhlLCBi dXQgaW5zdGVhZCBvZiBjb25zdW1pbmcKICAgU2VyaWFsUG9ydExpYiAod2hpY2ggd2UgcmVzb2x2 ZSB0byBYZW5Db25zb2xlU2VyaWFsUG9ydExpYiBpbgogICBBcm1WaXJ0WGVuKSwgaXQgY291bGQg YmUgbW9kaWZpZWQgdG86CgogICAtIGdyYWIgdGhlIFBMMDExIGxvY2F0aW9uIGluIGEgWGVuLXNw ZWNpZmljIHdheSwKCiAgIC0gdGFsayB0byBQTDAxMVVhcnRMaWIgZGlyZWN0bHkuCgogICBBZ2Fp biwgSSBkbyBub3QgcmVjb21tZW5kIHRoaXM7IGl0IHdvdWxkIGp1c3QgZHVwbGljYXRlIHRoZSBu dW1iZXIgb2YKICAgZGV2aWNlcyBvbiB3aGljaCB5b3UnZCBnZXQgYSBtaXh0dXJlIG9mIERFQlVH cyBhbmQgY29uc29sZSBJTy4gSWYgWGVuCiAgIGlzIGdhaW5pbmcgYW5vdGhlciBzZXJpYWwgcG9y dCwgdXNlIHRoYXQgb3Bwb3J0dW5pdHkgdG8gc2VwYXJhdGUKICAgREVCVUdzIGZyb20gY29uc29s ZSBJTywgbGlrZSBPVk1GIGRvZXMuIFdoaWNoIGRldmljZSBpcyBnb2luZyB0byBiZQogICB1c2Vk IGZvciB3aGljaCByb2xlIGlzIGEgbWF0dGVyIG9mIHRhc3RlLCBvciBtYXliZSBpdCBjYW4gYmUg ZGVkdWNlZAogICBmcm9tIHRoZSByZWxldmFudCBzcGVjcyAoQVJNIFZNIHNwZWMgb3IgbWF5YmUg dGhlIFNCQlIpLgoKVGhhbmtzLApMYXN6bG8KUFM6IHBscyBmZWVsIGZyZWUgdG8gZndkIHRoaXMg dG8gc29tZSBwdWJsaWMgbGlzdCBzbyB0aGF0IG90aGVycyBjYW4KY29tbWVudCBzaG91bGQgdGhl eSB3YW50IHRvLgoKLS0gCkp1bGllbiBHcmFsbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==