From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v3 00/26] arm64: Dom0 ITS emulation Date: Fri, 31 Mar 2017 19:04:59 +0100 Message-ID: <20170331180525.30038-1-andre.przywara@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cu0tY-0005Es-31 for xen-devel@lists.xenproject.org; Fri, 31 Mar 2017 18:03:32 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall , Stefano Stabellini Cc: xen-devel@lists.xenproject.org, Shanker Donthineni , Vijay Kilari List-Id: xen-devel@lists.xenproject.org SGksCgphbm90aGVyIGRlc3BlcmF0ZSB0cnkgdG8gZ2V0IHRoZSBJVFMgRG9tMCBlbXVsYXRpb24g c2VyaWVzIHJlYWR5LgpNYWpvciBjaGFuZ2VzIHRoaXMgdGltZToKLSBJbnN0ZWFkIG9mIGFsbG9j YXRpbmcgc3RydWN0IHBlbmRpbmdfaXJxJ3Mgb24gdGhlIGZseSBkdXJpbmcgTFBJIGluamVjdGlv biwKICB3ZSBhbGxvY2F0ZSB0aGVtIHVwb24gbWFwcGluZyBhIGRldmljZSBhbmQgYXNzaWduIHRo ZW0gdXBvbiB0aGUgTFBJCiAgbWFwcGluZyBpbnRvIGEgcmFkaXggdHJlZSwgc28gdGhhdCB3ZSBj YW4gcXVpY2tseSBsb29rIHRoZW0gdXAuCi0gSW5zdGVhZCBvZiBtYXBwaW5nIHRoZSB2aXJ0dWFs IGNvbGxlY3Rpb24sIGRldmljZSBhbmQgcHJvcGVydHkgdGFibGVzCiAgdXBvbiB0aGUgSVRTL3Jl ZGlzdHJpYnV0b3IgZW5hYmxlbWVudCwgd2UganVzdCBtYXJrIHRob3NlIHBhZ2VzIG5vdyBhbmQK ICBtYXAgdGhlbSBvbmx5IGZvciB0aGUgYnJpZWYgcGVyaW9kIHdlIGFjdHVhbGx5IG5lZWQgdGhl bS4KICBUaGlzIGNoYW5nZXMgdGhlIG1hcF9ndWVzdF9wYWdlcygpIGZ1bmN0aW9ucyB0byBvbmx5 IG1hcCBhIHNpbmdsZSBwYWdlCiAgYW5kIHNvIGF2b2lkaW5nIHNvbWUgaXNzdWVzIHRoYXQgaGF2 ZSBiZWVuIHNwb3R0ZWQuIEkgYmVsaWV2ZSB0aGUKICBwdXRfZ3Vlc3RfcGFnZXMoKSBpbXBsZW1l bnRhdGlvbiBpcyBzdGlsbCBmaXNoeSwgSSBhbSBoYXBweSB0byB0YWtlIGFueQogIGFkdmljZSBv biBob3cgdG8gZml4IHRoaXMuCiAgU2luY2Ugb24tZGVtYW5kIG1hcHBpbmcgZG9lcyBub3Qgc2Vl bSBwcmFjdGljYWwgZm9yIHRoZSBwZW5kaW5nIGFuZAogIHByb3BlcnR5IHRhYmxlcywgd2UgY2Fj aGUgdGhlIGluZm9ybWF0aW9uIGluIHRob3NlIGluIHRoZSBuZXdseSBhdmFpbGFiZQogIHBlbmRp bmdfaXJxIHN0cnVjdHMuCgpUaGUgdGltZSBJIHBsYW5uZWQgZm9yIHRoZSBpbmRpcmVjdCBkZXZp Y2UgdGFibGUgd2FzIHNwZW50IG9uIHRoZSBhYm92ZSB0d28KaXRlbXMsIHNvIEkgd2lsbCB3cml0 ZSB0aGlzIG5vdyB3aGlsZSB0aGUgcmV2aWV3ZXJzIGFyZSBvbiBpdC4KCkkgdHJpZWQgdG8gY2hl Y2sgZXZlcnkgZXJyb3IgcmV0dXJuIGFuZCBraWNrIG91dCBldmVyeSBzaWduZWQgaW50LgpBbHNv IHRoZSBidWcgdGhhdCBWaWpheSByZXBvcnRlZCBoYXMgYmVlbiBmaXhlZCAoSSBob3BlKS4KV2hp bGUgdGhlIHR3byBjb21tYW5kIGxpbmUgcGFyYW1ldGVycyBhcmUgc3RpbGwgYXJvdW5kLCB0aGUg S2NvbmZpZwpvcHRpb25zIGhhdmUgYmVlbiByZW1vdmVkLgpJIHRyaWVkIHRvIHNlcGFyYXRlIGZ1 bmN0aW9ucyBiZXR3ZWVuIHRoZSBleGlzdGluZyBWR0lDIGFuZCB0aGUgTFBJCmFuZCBJVFMgY29k ZSBwYXJ0cy4gSG93ZXZlciB0aGVyZSBpcyBhbHdheXMgc29tZSBjb25uZWN0aW9uIHdoaWNoIHBy ZXZlbnRzCmEgY2xlYW4gc2VwYXJhdGlvbiAoSSB0cmllZCBzZXZlcmFsIGFwcHJvYWNoZXMpLgpJ IGNoZWNrZWQgdXNpbmcgdGhlIHZnaWNfb3BzIHN0cnVjdHVyZSwgYnV0IHRoYXQgZmVlbHMgbGlr ZSBhYnVzZSBmb3Igc29tZQpmdW5jdGlvbnMsIGFsc28gaGFzIGlzc3VlcyBzaW5jZSBhIEdJQ3Yz IGFuZCBhIEdJQ3YzIHdpdGggSVRTIGFyZSBub3QKcmVhbGx5IHNlcGFyYXRlIChib3RoIGNvdWxk IGhhdmUgTFBJcyksIGFuZCB0aGUgbGF0dGVyIHdvdWxkIGFsd2F5cyBiZSBhCnN1cGVyc2V0IG9m IHRoZSBmb3JtZXIsIHdoaWNoIGR1cGxpY2F0ZXMgY29kZSBhbmQgbWFrZXMgYSBzZXBhcmF0ZQp2 Z2ljX29wcyBxdWVzdGlvbmFibGUuCkFwYXJ0IGZyb20gdGhhdCB0aGVyZSB3ZXJlIGEgbG90IG9m IGZpeGVzIGFuZCByZXdvcmtzIGhlcmUgYW5kIHRoZXJlLCB0b28KbnVtZXJvdXMgdG8gbGlzdCBo ZXJlLgpJZiBJIGNhbiBiZSBvZiBoZWxwIHdpdGggYW55dGhpbmcsIHBsZWFzZSBsZXQgbWUga25v dy4KCkNoZWVycywKQW5kcmUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhp cyBzZXJpZXMgYWRkcyBzdXBwb3J0IGZvciBlbXVsYXRpb24gb2YgYW4gQVJNIEdJQ3YzIElUUyBp bnRlcnJ1cHQKY29udHJvbGxlci4gRm9yIGhhcmR3YXJlIHdoaWNoIHJlbGllcyBvbiB0aGUgSVRT IHRvIHByb3ZpZGUgaW50ZXJydXB0cyBmb3IKaXRzIHBlcmlwaGVyYWxzIHRoaXMgY29kZSBpcyBu ZWVkZWQgdG8gZ2V0IGEgbWFjaGluZSBib290ZWQgaW50byBEb20wIGF0CmFsbC4gSVRTIGVtdWxh dGlvbiBmb3IgRG9tVXMgaXMgb25seSByZWFsbHkgdXNlZnVsIHdpdGggUENJIHBhc3N0aHJvdWdo LAp3aGljaCBpcyBub3QgeWV0IGF2YWlsYWJsZSBmb3IgQVJNLiBJdCBpcyBleHBlY3RlZCB0aGF0 IHRoaXMgZmVhdHVyZQp3aWxsIGJlIGNvLWRldmVsb3BlZCB3aXRoIHRoZSBJVFMgRG9tVSBjb2Rl LiBIb3dldmVyIHRoaXMgY29kZSBkcm9wIGhlcmUKY29uc2lkZXJlZCBEb21VIGVtdWxhdGlvbiBh bHJlYWR5LCB0byBrZWVwIGxhdGVyIGFyY2hpdGVjdHVyYWwgY2hhbmdlcwp0byBhIG1pbmltdW0u CgpTb21lIGdlbmVyaWMgZGVzaWduIHByaW5jaXBsZXM6CgoqIFRoZSBjdXJyZW50IEdJQyBjb2Rl IHN0YXRpY2FsbHkgYWxsb2NhdGVzIHN0cnVjdHVyZXMgZm9yIGVhY2ggc3VwcG9ydGVkCklSUSAo Ym90aCBmb3IgdGhlIGhvc3QgYW5kIHRoZSBndWVzdCksIHdoaWNoIGR1ZSB0byB0aGUgcG90ZW50 aWFsbHkKbWlsbGlvbnMgb2YgTFBJIGludGVycnVwdHMgaXMgbm90IGZlYXNpYmxlIHRvIGNvcHkg Zm9yIHRoZSBJVFMuClNvIHdlIHJlZnJhaW4gZnJvbSBpbnRyb2R1Y2luZyB0aGUgSVRTIGFzIGEg Zmlyc3QgY2xhc3MgWGVuIGludGVycnVwdApjb250cm9sbGVyLCBhbHNvIHdlIGRvbid0IGhvbGQg c3RydWN0IGlycV9kZXNjJ3Mgb3Igc3RydWN0IHBlbmRpbmdfaXJxJ3MKZm9yIGVhY2ggcG9zc2li bGUgTFBJLgpGb3J0dW5hdGVseSBMUElzIGFyZSBvbmx5IGludGVyZXN0aW5nIHRvIGd1ZXN0cywg c28gd2UgZ2V0IGF3YXkgd2l0aApzdG9yaW5nIG9ubHkgdGhlIHZpcnR1YWwgSVJRIG51bWJlciBh bmQgdGhlIGd1ZXN0IFZDUFUgZm9yIGVhY2ggYWxsb2NhdGVkCmhvc3QgTFBJLCB3aGljaCBjYW4g YmUgc3Rhc2hlZCBpbnRvIG9uZSB1aW50NjRfdC4gVGhpcyBkYXRhIGlzIHN0b3JlZCBpbgphIHR3 by1sZXZlbCB0YWJsZSwgd2hpY2ggaXMgYm90aCBtZW1vcnkgZWZmaWNpZW50IGFuZCBxdWljayB0 byBhY2Nlc3MuCldlIGhvb2sgaW50byB0aGUgZXhpc3RpbmcgSVJRIGhhbmRsaW5nIGFuZCBWR0lD IGNvZGUgdG8gYXZvaWQgYWNjZXNzaW5nCnRoZSBub3JtYWwgc3RydWN0dXJlcywgcHJvdmlkaW5n IGFsdGVybmF0aXZlIG1ldGhvZHMgZm9yIGdldHRpbmcgdGhlCm5lZWRlZCBpbmZvcm1hdGlvbiAo cHJpb3JpdHksIGlzIGVuYWJsZWQ/KSBmb3IgTFBJcy4KRm9yIGludGVycnVwdHMgd2hpY2ggYXJl IHF1ZXVlZCB0byBvciBhcmUgYWN0dWFsbHkgaW4gYSBndWVzdCB3ZQphbGxvY2F0ZSBzdHJ1Y3Qg cGVuZGluZ19pcnEncyBvbiBkZW1hbmQuIEFzIGl0IGlzIGV4cGVjdGVkIHRoYXQgb25seSBhCnZl cnkgc21hbGwgbnVtYmVyIG9mIGludGVycnVwdHMgaXMgZXZlciBvbiBhIFZDUFUgYXQgdGhlIHNh bWUgdGltZSwgdGhpcwpzZWVtcyBsaWtlIHRoZSBiZXN0IGFwcHJvYWNoLiBGb3Igbm93IGFsbG9j YXRlZCBzdHJ1Y3RzIGFyZSByZS11c2VkIGFuZApoZWxkIGluIGEgbGlua2VkIGxpc3QuIFNob3Vs ZCBpdCBlbWVyZ2UgdGhhdCB0cmF2ZXJzaW5nIGEgbGlua2VkIGxpc3QKaXMgYSBwZXJmb3JtYW5j ZSBpc3N1ZSwgdGhpcyBjYW4gYmUgY2hhbmdlZCB0byB1c2UgYSBoYXNoIHRhYmxlLgoKKiBPbiB0 aGUgZ3Vlc3Qgc2lkZSB3ZSAobGF0ZXIgd2lsbCkgaGF2ZSB0byBkZWFsIHdpdGggbWFsaWNpb3Vz IGd1ZXN0cwp0cnlpbmcgdG8gaG9nIFhlbiB3aXRoIG1hcHBpbmcgcmVxdWVzdHMgZm9yIGEgbG90 IG9mIExQSXMsIGZvciBpbnN0YW5jZS4KQXMgdGhlIElUUyBhY3R1YWxseSB1c2VzIHN5c3RlbSBt ZW1vcnkgZm9yIHN0b3Jpbmcgc3RhdHVzIGluZm9ybWF0aW9uLAp3ZSB1c2UgdGhpcyBtZW1vcnkg KHdoaWNoIHRoZSBndWVzdCBoYXMgdG8gcHJvdmlkZSkgdG8gbmF0dXJhbGx5IGxpbWl0CmEgZ3Vl c3QuIEZvciB0aG9zZSB0YWJsZXMgd2hpY2ggYXJlIHBhZ2Ugc2l6ZWQgKGRldmljZXMsIGNvbGxl Y3Rpb25zIChDUFVzKSwKTFBJIHByb3BlcnRpZXMpIHdlIG1hcCB0aG9zZSBwYWdlcyBpbnRvIFhl biwgc28gd2UgY2FuIGVhc2lseSBhY2Nlc3MKdGhlbSBmcm9tIHRoZSB2aXJ0dWFsIEdJQyBjb2Rl LgpVbmZvcnR1bmF0ZWx5IHRoZSBhY3R1YWwgaW50ZXJydXB0IG1hcHBpbmcgdGFibGVzIGFyZSBu b3QgbmVjZXNzYXJpbHkKcGFnZSBhbGlnbmVkLCBhbHNvIGNhbiBiZSBtdWNoIHNtYWxsZXIgdGhh biBhIHBhZ2UsIHNvIG1hcHBpbmcgYWxsIG9mCnRoZW0gcGVybWFuZW50bHkgaXMgZmlkZGx5LiBB cyBJVFMgY29tbWFuZHMgaW4gbmVlZCB0byBpdGVyYXRlIHRob3NlCnRhYmxlcyBhcmUgcHJldHR5 IHJhcmUgYWZ0ZXIgYWxsLCB3ZSBmb3Igbm93IG1hcCB0aGVtIG9uIGRlbWFuZCB1cG9uCmVtdWxh dGluZyBhIHZpcnR1YWwgSVRTIGNvbW1hbmQuIFRoaXMgaXMgYWNjZXB0YWJsZSBiZWNhdXNlICJt YXBwaW5nIgp0aGVtIGlzIGFjdHVhbGx5IHZlcnkgY2hlYXAgb24gYXJtNjQuIEFsc28gYXMgd2Ug Y2FuJ3QgcHJvcGVybHkgcHJvdGVjdAp0aG9zZSBhcmVhcyBkdWUgdG8gdGhlaXIgc3ViLXBhZ2Ut c2l6ZSBwcm9wZXJ0eSwgd2UgdmFsaWRhdGUgdGhlIGRhdGEKaW4gdGhlcmUgYmVmb3JlIGFjdHVh bGx5IHVzaW5nIGl0LiBUaGUgdklUUyBjb2RlIGJhc2ljYWxseSBqdXN0IHN0b3Jlcwp0aGUgZGF0 YSBpbiB0aGVyZSB3aGljaCB0aGUgZ3Vlc3QgaGFzIGFjdHVhbGx5IHRyYW5zZmVycmVkIHZpYSB0 aGUKdmlydHVhbCBJVFMgY29tbWFuZCBxdWV1ZSBiZWZvcmUsIHNvIHRoZXJlIGlzIG5vIHNlY3Jl dCByZXZlYWxlZCBub3IKZG9lcyBpdCBjcmVhdGUgYW4gYXR0YWNrIHZlY3RvciBmb3IgYSBtYWxp Y2lvdXMgZ3Vlc3QuCgoqIEFuIG9idmlvdXMgYXBwcm9hY2ggdG8gaGFuZGxpbmcgc29tZSBndWVz dCBJVFMgY29tbWFuZHMgd291bGQgYmUgdG8KcHJvcGFnYXRlIHRoZW0gdG8gdGhlIGhvc3QsIGZv ciBpbnN0YW5jZSB0byBtYXAgZGV2aWNlcyBhbmQgTFBJcyBhbmQKdG8gZW5hYmxlIG9yIGRpc2Fi bGUgTFBJcy4KSG93ZXZlciB0aGlzIChsYXRlciB3aXRoIERvbVUgc3VwcG9ydCkgd2lsbCBjcmVh dGUgYW4gYXR0YWNrIHZlY3RvciwgYXMKYSBtYWxpY2lvdXMgZ3Vlc3QgY291bGQgdHJ5IHRvIGZp bGwgdGhlIGhvc3QgY29tbWFuZCBxdWV1ZSB3aXRoCnByb3BhZ2F0ZWQgY29tbWFuZHMuClNvIHdl IHRyeSB0byBhdm9pZCB0aGlzIHNpdHVhdGlvbjogRG9tMCBzZW5kaW5nIGEgZGV2aWNlIG1hcHBp bmcgKE1BUEQpCmNvbW1hbmQgaXMgdGhlIG9ubHkgdGltZSB3ZSBhbGxvdyBxdWV1aW5nIGNvbW1h bmRzIHRvIHRoZSBob3N0IElUUyBjb21tYW5kCnF1ZXVlLCBhcyB0aGlzIHNlZW1zIHRvIGJlIHRo ZSBvbmx5IHJlbGlhYmxlIHdheSBvZiBnZXR0aW5nIHRoZQpyZXF1aXJlZCBpbmZvcm1hdGlvbiBh dCB0aGUgbW9tZW50LiBIb3dldmVyIGF0IHRoZSBzYW1lIHRpbWUgd2UgbWFwIGFsbApldmVudHMg dG8gTFBJcyBhbHJlYWR5LCBhbHNvIGVuYWJsZSB0aGVtLiBUaGlzIGF2b2lkcyBzZW5kaW5nIGNv bW1hbmRzCmxhdGVyIGF0IHJ1bnRpbWUsIGFzIHdlIGNhbiBkZWFsIHdpdGggbWFwcGluZ3MgYW5k IExQSSBlbmFibGluZy9kaXNhYmxpbmcKaW50ZXJuYWxseS4KCkFzIGl0IGlzIGV4cGVjdGVkIHRo YXQgdGhlIElUUyBzdXBwb3J0IHdpbGwgYmVjb21lIGEgdGVjaCBwcmV2aWV3IGluIHRoZQpmaXJz dCByZWxlYXNlLCB0aGVyZSBpcyBhIEtjb25maWcgb3B0aW9uIHRvIGVuYWJsZSBpdC4gQWxzbyBp dCBpcwpzdXBwb3J0ZWQgb24gYXJtNjQgb25seSwgd2hpY2ggd2lsbCBtb3N0IGxpa2VseSBub3Qg Y2hhbmdlIGluIHRoZSBmdXR1cmUuClRoaXMgbGVhZHMgdG8gc29tZSBoaWRlb3VzIGNvbnN0cnVj dHMgbGlrZSBhbiAjaWZkZWYnZWQgaGVhZGVyIGZpbGUgd2l0aAplbXB0eSBmdW5jdGlvbiBzdHVi cywgSSBoYXZlIHNvbWUgaG9wZSB3ZSBjYW4gc3RpbGwgY2xlYW4gdGhpcyB1cC4KQWxzbyBzb21l IHBhcmFtZXRlcnMgYXJlIGNvbmZpZyBvcHRpb25zIHdoaWNoIGNhbiBiZSBvdmVycmlkZGVuIG9u IHRoZQpYZW4gY29tbWFuZGxpbmUuIFRoaXMgaXMgdG8gc3VwcG9ydCBleHBlcmltZW50YXRpb24g YW5kIGFkYXB0aW9uIHRvCnZhcmlvdXMgcGxhdGZvcm1zLCBpZGVhbGx5IHdlIGZpbmQgZWl0aGVy IG9uZS1zaXplLWZpdHMtYWxsIHZhbHVlcyBvcgpmaW5kIGFub3RoZXIgd2F5IG9mIGdldHRpbmcg cmlkIG9mIHRoaXMuCgpUaGlzIGNvZGUgYm9vdHMgRG9tMCBvbiBhbiBBUk0gRmFzdCBNb2RlbCB3 aXRoIElUUyBzdXBwb3J0LiBJIHRyaWVkIHRvCmFkZHJlc3MgdGhlIGlzc3VlcyBzZWVuIGJ5IHBl b3BsZSBydW5uaW5nIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9uIHJlYWwKaGFyZHdhcmUsIHRob3Vn aCBjb3VsZG4ndCB2ZXJpZnkgdGhpcyBoZXJlIGZvciBteXNlbGYuClNvIGFueSB0ZXN0aW5nLCBi dWcgcmVwb3J0cyAoYW5kIHBvc3NpYmx5IGV2ZW4gZml4ZXMpIGFyZSB2ZXJ5IHdlbGNvbWUuCgpU aGUgY29kZSBjYW4gYWxzbyBiZSBmb3VuZCBvbiB0aGUgaXRzL3YyIGJyYW5jaCBoZXJlOgpnaXQ6 Ly9saW51eC1hcm0ub3JnL3hlbi1hcC5naXQKaHR0cDovL3d3dy5saW51eC1hcm0ub3JnL2dpdD9w PXhlbi1hcC5naXQ7YT1zaG9ydGxvZztoPXJlZnMvaGVhZHMvaXRzL3YyCgpDaGVlcnMsCkFuZHJl CgpDaGFuZ2Vsb2cgdjIgLi4gdjM6Ci0gcHJlYWxsb2NhdGUgc3RydWN0IHBlbmRpbmdfaXJxJ3MK LSBtYXAgSVRTIGFuZCByZWRpc3RyaWJ1dG9yIHRhYmxlcyBvbmx5IG9uIGRlbWFuZAotIHN0b3Jl IHByb3BlcnR5LCBlbmFibGUgYW5kIHBlbmRpbmcgYml0IGluIHN0cnVjdCBwZW5kaW5nX2lycQot IGltcHJvdmUgZXJyb3IgY2hlY2tpbmcgYW5kIGhhbmRsaW5nCi0gYWRkIGNvbW1lbnRzCgpDaGFu Z2Vsb2cgdjEgLi4gdjI6Ci0gY2xlYW4gdXAgaGVhZGVyIGZpbGUgaW5jbHVzaW9uCi0gcmV3b3Jr IGhvc3QgSVRTIHRhYmxlIGFsbG9jYXRpb246IG9ic2VydmUgYXR0cmlidXRlcywgbWFueSBmaXhl cwotIHJlbW92ZSBwYXRjaCAxIHRvIGV4cG9ydCBfX2ZsdXNoX2RjYWNoZV9hcmVhLCB1c2UgZXhp c3RpbmcgZnVuY3Rpb24gaW5zdGVhZAotIHVzZSBudW1iZXIgb2YgTFBJcyBpbnRlcm5hbGx5IGlu c3RlYWQgb2YgbnVtYmVyIG9mIGJpdHMKLSBrZWVwIGhvc3RfaXRzX2xpc3QgYXMgcHJpdmF0ZSBh cyBwb3NzaWJsZQotIGtlZXAgc3RydWN0IGl0c19kZXZpY2VzIHByaXZhdGUKLSByZXdvcmsgZ2lj djNfaXRzX21hcF9ndWVzdF9kZXZpY2VzCi0gZml4IHJidHJlZSBpc3N1ZXMKLSBtb3JlIGVycm9y IGhhbmRsaW5nIGFuZCBwcm9wYWdhdGlvbgotIGNvcGUgd2l0aCBHSUN2NCBpbXBsZW1lbnRhdGlv bnMgKGJ1dCBubyB2aXJ0dWFsIExQSSBmZWF0dXJlcyEpCi0gYWJzdHJhY3QgaG9zdCBhbmQgZ3Vl c3QgSVRTZXMgYnkgdXNpbmcgZG9vcmJlbGwgYWRkcmVzc2VzCi0gam9pbiBwZXItcmVkaXN0cmli dXRvciB2YXJpYWJsZXMgaW50byBvbmUgcGVyLUNQVSBzdHJ1Y3R1cmUKLSBmaXggZGF0YSB0eXBl cyAodW5zaWduZWQgaW50KQotIG1hbnkgbWlub3IgYnVnIGZpeGVzCgooUm91Z2gpIGNoYW5nZWxv ZyBSRkMtdjIgLi4gdjE6Ci0gc3BsaXQgaG9zdCBJVFMgZHJpdmVyIGludG8gZ2ljLXYzLWxwaS5j IGFuZCBnaWMtdjMtaXRzLmMgcGFydAotIHJlbmFtZSB2aXJ0dWFsIElUUyBkcml2ZXIgZmlsZSB0 byB2Z2ljLXYzLWl0cy5jCi0gdXNlIG1hY3JvcyBhbmQgbmFtZWQgY29uc3RhbnRzIGZvciBhbGwg bWFnaWMgbnVtYmVycwotIHVzZSBhdG9taWMgYWNjZXNzb3JzIGZvciBhY2Nlc3NpbmcgdGhlIGhv c3QgTFBJIGRhdGEKLSByZW1vdmUgbGVmdG92ZXJzIGZyb20gY29ubmVjdGluZyB2aXJ0dWFsIGFu ZCBob3N0IElUU2VzCi0gYmFpbCBvdXQgaWYgaG9zdCBJVFMgaXMgZGlzYWJsZWQgaW4gdGhlIERU Ci0gcmV3b3JrIG1hcC91bm1hcF9ndWVzdF9wYWdlcygpOgogICAgLSBzcGxpdCBvZmYgcDJtIHBh cnQgYXMgZ2V0L3B1dF9ndWVzdF9wYWdlcyAodG8gYmUgZG9uZSBvbiBhbGxvY2F0aW9uKQogICAg LSBnZXQgcmlkIG9mIHZtYXAsIHVzaW5nIG1hcF9kb21haW5fcGFnZSgpIGluc3RlYWQKLSBkZWxh eSBhbGxvY2F0aW9uIG9mIHZpcnR1YWwgdGFibGVzIHVudGlsIGFjdHVhbCBMUEkvSVRTIGVuYWJs ZW1lbnQKLSBwcm9wZXJseSBzaXplIGJvdGggdmlydHVhbCBhbmQgcGh5c2ljYWwgdGFibGVzIHVw b24gYWxsb2NhdGlvbgotIGZpeCBwdXRfZG9tYWluKCkgbG9ja2luZyBpc3N1ZXMgaW4gcGh5c2Rl dl9vcCBhbmQgTFBJIGhhbmRsaW5nIGNvZGUKLSBhZGQgYW5kIGV4dGVuZCBjb21tZW50cyBpbiB2 YXJpb3VzIGFyZWFzCi0gZml4IGxvdHNhIGNvZGluZyBzdHlsZSBhbmQgd2hpdGUgc3BhY2UgaXNz dWVzLCBpbmNsdWRpbmcgY29tbWVudCBzdHlsZQotIGFkZCBsb2NraW5nIHRvIGRhdGEgc3RydWN0 dXJlcyBub3QgeWV0IGNvdmVyZWQKLSBmaXggdmFyaW91cyBsb2NraW5nIGlzc3VlcwotIHVzZSBh biByYnRyZWUgdG8gZGVhbCB3aXRoIElUUyBkZXZpY2VzIChpbnN0ZWFkIG9mIGEgbGlzdCkKLSBw cm9wZXJseSBoYW5kbGUgbWVtb3J5IGF0dHJpYnV0ZXMgZm9yIElUUyB0YWJsZXMKLSBoYW5kbGUg Y2FjaGVhYmxlL25vbi1jYWNoZWFibGUgSVRTIHRhYmxlIG1hcHBpbmdzCi0gc2FuaXRpemUgZ3Vl c3QgcHJvdmlkZWQgSVRTL0xQSSB0YWJsZSBhdHRyaWJ1dGVzCi0gZml4IGJyZWFrYWdlIG9uIG5v bi1HSUN2MiBjb21wYXRpYmxlIGhvc3QgR0lDdjMgY29udHJvbGxlcnMKLSBhZGQgY29tbWFuZCBs aW5lIHBhcmFtZXRlcnMgb24gdG9wIG9mIEtjb25maWcgb3B0aW9ucwotIHByb3Blcmx5IHdhaXQg Zm9yIGFuIElUUyB0byBiZWNvbWUgcXVpZXNjaWVudCBiZWZvcmUgZW5hYmxpbmcgaXQKLSBoYW5k bGUgaG9zdCBJVFMgY29tbWFuZCBxdWV1ZSBlcnJvcnMKLSBhY3R1YWxseSB3YWl0IGZvciBob3N0 IElUUyBjb21tYW5kIGNvbXBsZXRpb24gKFJFQURSPT1XUklURVIpCi0gZml4IEFSTTMyIGNvbXBp bGF0aW9uCi0gdmFyaW91cyBwYXRjaCBzcGxpdHMgYW5kIHJlb3JkZXJpbmdzCgpBbmRyZSBQcnp5 d2FyYSAoMjYpOgogIEFSTTogR0lDdjMgSVRTOiBwYXJzZSBhbmQgc3RvcmUgSVRTIHN1Ym5vZGVz IGZyb20gaGFyZHdhcmUgRFQKICBBUk06IEdJQ3YzOiBhbGxvY2F0ZSBMUEkgcGVuZGluZyBhbmQg cHJvcGVydHkgdGFibGUKICBBUk06IEdJQ3YzIElUUzogYWxsb2NhdGUgZGV2aWNlIGFuZCBjb2xs ZWN0aW9uIHRhYmxlCiAgQVJNOiBHSUN2MyBJVFM6IG1hcCBJVFMgY29tbWFuZCBidWZmZXIKICBB Uk06IEdJQ3YzIElUUzogaW50cm9kdWNlIElUUyBjb21tYW5kIGhhbmRsaW5nCiAgQVJNOiBHSUN2 MyBJVFM6IGludHJvZHVjZSBkZXZpY2UgbWFwcGluZwogIEFSTTogR0lDdjMgSVRTOiBpbnRyb2R1 Y2UgaG9zdCBMUEkgYXJyYXkKICBBUk06IEdJQ3YzOiBpbnRyb2R1Y2Ugc2VwYXJhdGUgcGVuZGlu Z19pcnEgc3RydWN0cyBmb3IgTFBJcwogIEFSTTogR0lDdjM6IGZvcndhcmQgcGVuZGluZyBMUElz IHRvIGd1ZXN0cwogIEFSTTogR0lDdjM6IGVuYWJsZSBJVFMgYW5kIExQSXMgb24gdGhlIGhvc3QK ICBBUk06IHZHSUN2MzogaGFuZGxlIHZpcnR1YWwgTFBJIHBlbmRpbmcgYW5kIHByb3BlcnR5IHRh YmxlcwogIEFSTTogdkdJQ3YzOiBIYW5kbGUgZGlzYWJsZWQgTFBJcwogIEFSTTogdkdJQ3YzOiBp bnRyb2R1Y2UgYmFzaWMgSVRTIGVtdWxhdGlvbiBiaXRzCiAgQVJNOiB2SVRTOiBpbnRyb2R1Y2Ug dHJhbnNsYXRpb24gdGFibGUgd2Fsa3MKICBBUk06IHZJVFM6IGhhbmRsZSBDTEVBUiBjb21tYW5k CiAgQVJNOiB2SVRTOiBoYW5kbGUgSU5UIGNvbW1hbmQKICBBUk06IHZJVFM6IGhhbmRsZSBNQVBD IGNvbW1hbmQKICBBUk06IHZJVFM6IGhhbmRsZSBNQVBEIGNvbW1hbmQKICBBUk06IHZJVFM6IGhh bmRsZSBNQVBUSSBjb21tYW5kCiAgQVJNOiB2SVRTOiBoYW5kbGUgTU9WSSBjb21tYW5kCiAgQVJN OiB2SVRTOiBoYW5kbGUgRElTQ0FSRCBjb21tYW5kCiAgQVJNOiB2SVRTOiBoYW5kbGUgSU5WIGNv bW1hbmQKICBBUk06IHZJVFM6IGhhbmRsZSBJTlZBTEwgY29tbWFuZAogIEFSTTogdklUUzogY3Jl YXRlIGFuZCBpbml0aWFsaXplIHZpcnR1YWwgSVRTZXMgZm9yIERvbTAKICBBUk06IHZJVFM6IGNy ZWF0ZSBJVFMgc3Vibm9kZXMgZm9yIERvbTAgRFQKICBBUk06IHZHSUM6IGFkdmVydGlzZSBMUEkg c3VwcG9ydAoKIGRvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duIHwgICAxOCArCiB4 ZW4vYXJjaC9hcm0vS2NvbmZpZyAgICAgICAgICAgICAgICB8ICAgIDQgKwogeGVuL2FyY2gvYXJt L01ha2VmaWxlICAgICAgICAgICAgICAgfCAgICAzICsKIHhlbi9hcmNoL2FybS9naWMtdjMtaXRz LmMgICAgICAgICAgIHwgIDk2OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9h cmNoL2FybS9naWMtdjMtbHBpLmMgICAgICAgICAgIHwgIDUxOSArKysrKysrKysrKysrKysrCiB4 ZW4vYXJjaC9hcm0vZ2ljLXYzLmMgICAgICAgICAgICAgICB8ICAgNzUgKystCiB4ZW4vYXJjaC9h cm0vZ2ljLmMgICAgICAgICAgICAgICAgICB8ICAgMjAgKy0KIHhlbi9hcmNoL2FybS92Z2ljLXYz LWl0cy5jICAgICAgICAgIHwgMTExNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogeGVuL2FyY2gvYXJtL3ZnaWMtdjMuYyAgICAgICAgICAgICAgfCAgMjcyICsrKysrKysrLQog eGVuL2FyY2gvYXJtL3ZnaWMuYyAgICAgICAgICAgICAgICAgfCAgIDE2ICstCiB4ZW4vY29tbW9u L21lbW9yeS5jICAgICAgICAgICAgICAgICB8ICAgNjEgKysKIHhlbi9pbmNsdWRlL2FzbS1hcm0v Yml0b3BzLmggICAgICAgIHwgICAgMSArCiB4ZW4vaW5jbHVkZS9hc20tYXJtL2NvbmZpZy5oICAg ICAgICB8ICAgIDIgKwogeGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaCAgICAgICAgfCAgIDEy ICstCiB4ZW4vaW5jbHVkZS9hc20tYXJtL2dpYy5oICAgICAgICAgICB8ICAgIDIgKwogeGVuL2lu Y2x1ZGUvYXNtLWFybS9naWNfdjNfZGVmcy5oICAgfCAgIDc1ICsrLQogeGVuL2luY2x1ZGUvYXNt LWFybS9naWNfdjNfaXRzLmggICAgfCAgMjU2ICsrKysrKysrCiB4ZW4vaW5jbHVkZS9hc20tYXJt L2lycS5oICAgICAgICAgICB8ICAgMTUgKwogeGVuL2luY2x1ZGUvYXNtLWFybS92Z2ljLmggICAg ICAgICAgfCAgICA2ICsKIHhlbi9pbmNsdWRlL3hlbi9iaXRvcHMuaCAgICAgICAgICAgIHwgICAg NSArLQogeGVuL2luY2x1ZGUveGVuL21tLmggICAgICAgICAgICAgICAgfCAgICA4ICsKIDIxIGZp bGVzIGNoYW5nZWQsIDM0MTEgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pCiBjcmVhdGUg bW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IHhlbi9hcmNoL2FybS9naWMtdjMtbHBpLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9h cm0vdmdpYy12My1pdHMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRlL2FzbS1hcm0v Z2ljX3YzX2l0cy5oCgotLSAKMi45LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK