From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [DRAFT RFC] PVHv2 interaction with physical devices Date: Wed, 9 Nov 2016 13:45:17 -0500 Message-ID: <20161109184517.GA7892@char.us.oracle.com> References: <20161109155912.47dfdb57dqg6p3qz@mac> 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 1c4XsM-00012y-Un for xen-devel@lists.xenproject.org; Wed, 09 Nov 2016 18:45:35 +0000 Content-Disposition: inline In-Reply-To: <20161109155912.47dfdb57dqg6p3qz@mac> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Roger Pau =?iso-8859-1?Q?Monn=E9?= Cc: Andrew Cooper , Kelly , Julien Grall , Paul Durrant , Jan Beulich , xen-devel@lists.xenproject.org, Boris Ostrovsky , Zytaruk@mac List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBOb3YgMDksIDIwMTYgYXQgMDQ6NTk6MTJQTSArMDEwMCwgUm9nZXIgUGF1IE1vbm7D qSB3cm90ZToKPiBIZWxsbywKPiAKPiBJJ20gYXR0YWNoaW5nIGEgZHJhZnQgb2YgaG93IGEgUFZI djIgRG9tMCBpcyBzdXBwb3NlZCB0byBpbnRlcmFjdCB3aXRoIAo+IHBoeXNpY2FsIGRldmljZXMs IGFuZCB3aGF0IG5lZWRzIHRvIGJlIGRvbmUgaW5zaWRlIG9mIFhlbiBpbiBvcmRlciB0byAKPiBh Y2hpZXZlIGl0LiBDdXJyZW50IGRyYWZ0IGlzIFJGQyBiZWNhdXNlIEknbSBxdWl0ZSBzdXJlIEkn bSBtaXNzaW5nIGJpdHMgCj4gdGhhdCBzaG91bGQgYmUgd3JpdHRlbiBkb3duIGhlcmUuIFNvIGZh ciBJJ3ZlIHRyaWVkIHRvIGRlc2NyaWJlIHdoYXQgbXkgCj4gcHJldmlvdXMgc2VyaWVzIGF0dGVt cHRlZCB0byBkbyBieSBhZGRpbmcgYSBidW5jaCBvZiBJTyBhbmQgbWVtb3J5IHNwYWNlIAo+IGhh bmRsZXJzLgo+IAo+IFBsZWFzZSBub3RlIHRoYXQgdGhpcyBkb2N1bWVudCBvbmx5IGFwcGxpZXMg dG8gUFZIdjIgRG9tMCwgaXQgaXMgbm90IAo+IGFwcGxpY2FibGUgdG8gdW50cnVzdGVkIGRvbWFp bnMgdGhhdCB3aWxsIG5lZWQgbW9yZSBoYW5kbGVycyBpbiBvcmRlciB0byAKPiBzZWN1cmUgWGVu IGFuZCBvdGhlciBkb21haW5zIHJ1bm5pbmcgb24gdGhlIHNhbWUgc3lzdGVtLiBUaGUgaWRlYSBp cyB0aGF0IAo+IHRoaXMgY2FuIGJlIGV4cGFuZGVkIHRvIHVudHJ1c3RlZCBkb21haW5zIGFsc28g aW4gdGhlIGxvbmcgdGVybSwgdGh1cyBoYXZpbmcgCj4gYSBzaW5nbGUgc2V0IG9mIElPIGFuZCBt ZW1vcnkgaGFuZGxlcnMgZm9yIHBhc3NlZC10aHJvdWdoIGRldmljZXMuCj4gCj4gUm9nZXIuCj4g Cj4gLS0tODwtLS0KPiAKPiBUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyBob3cgYSBQVkh2MiBEb20w IGlzIHN1cHBvc2VkIHRvIGludGVyYWN0IHdpdGggcGh5c2ljYWwKPiBkZXZpY2VzLgo+IAo+IEFy Y2hpdGVjdHVyZQo+ID09PT09PT09PT09PQo+IAo+IFB1cnBvc2UKPiAtLS0tLS0tCj4gCj4gUHJl dmlvdXMgRG9tMCBpbXBsZW1lbnRhdGlvbnMgaGF2ZSBhbHdheXMgdXNlZCBQSVJRcyAocGh5c2lj YWwgaW50ZXJydXB0cwo+IHJvdXRlZCBvdmVyIGV2ZW50IGNoYW5uZWxzKSBpbiBvcmRlciB0byBy ZWNlaXZlIGV2ZW50cyBmcm9tIHBoeXNpY2FsIGRldmljZXMuCj4gVGhpcyBwcmV2ZW50cyBEb20w IGZvcm0gdGFraW5nIGFkdmFudGFnZSBvZiBuZXcgaGFyZHdhcmUgdmlydHVhbGl6YXRpb24KPiBm ZWF0dXJlcywgbGlrZSBwb3N0ZWQgaW50ZXJydXB0cyBvciBoYXJkd2FyZSB2aXJ0dWFsaXplZCBs b2NhbCBBUElDLiBBbHNvIHRoZQo+IGN1cnJlbnQgZGV2aWNlIG1lbW9yeSBtYW5hZ2VtZW50IGlu IHRoZSBQVkggRG9tMCBpbXBsZW1lbnRhdGlvbiBpcyBsYWNraW5nLAo+IGFuZCBtaWdodCBub3Qg c3VwcG9ydCBkZXZpY2VzIHRoYXQgaGF2ZSBtZW1vcnkgcmVnaW9ucyBwYXN0IHRoZSA0R0IgCj4g Ym91bmRhcnkuCgptZW1vcnkgcmVnaW9ucyBtZWFuaW5nIEJBUiByZWdpb25zPwoKPiAKPiBUaGUg bmV3IFBWSCBpbXBsZW1lbnRhdGlvbiAoUFZIdjIpIHNob3VsZCBvdmVyY29tZSB0aGUgaW50ZXJy dXB0IGxpbWl0YXRpb25zIGJ5Cj4gcHJvdmlkaW5nIHRoZSBzYW1lIGludGVyZmFjZSB0aGF0J3Mg dXNlZCBvbiBiYXJlIG1ldGFsIChhIGxvY2FsIGFuZCBJTyBBUElDcykKPiB0aHVzIGFsbG93aW5n IHRoZSB1c2FnZSBvZiBhZHZhbmNlZCBoYXJkd2FyZSBhc3Npc3RlZCB2aXJ0dWFsaXphdGlvbgo+ IHRlY2huaXF1ZXMuIFRoaXMgYWxzbyBhbGlnbnMgd2l0aCB0aGUgdHJlbmQgb24gdGhlIGhhcmR3 YXJlIGluZHVzdHJ5IHRvCj4gbW92ZSBwYXJ0IG9mIHRoZSBlbXVsYXRpb24gaW50byB0aGUgc2ls aWNvbiBpdHNlbGYuCgpXaGF0IGlmIHRoZSBoYXJkd2FyZSBQVkgyIHJ1bnMgb24gZG9lcyBub3Qg aGF2ZSB2QVBJQz8KPiAKPiBJbiBvcmRlciB0byBpbXByb3ZlIHRoZSBtYXBwaW5nIG9mIGRldmlj ZSBtZW1vcnkgYXJlYXMsIFhlbiB3aWxsIGhhdmUgdG8KPiBrbm93IG9mIHRob3NlIGRldmljZXMg aW4gYWR2YW5jZSAoYmVmb3JlIERvbTAgdHJpZXMgdG8gaW50ZXJhY3Qgd2l0aCB0aGVtKQo+IHNv IHRoYXQgdGhlIG1lbW9yeSBCQVJzIHdpbGwgYmUgcHJvcGVybHkgbWFwcGVkIGludG8gRG9tMCBt ZW1vcnkgbWFwLgoKT2gsIHRoYXQgaXMgZ29pbmcgdG8gYmUgYSBwcm9ibGVtIHdpdGggU1ItSU9W LiBUaG9zZSBhcmUgY3JlYXRlZCBfYWZ0ZXJfCmRvbTAgaGFzIGJvb3RlZC4gSW4gZmFjdCB0aGV5 IGFyZSBkb25lIGJ5IHRoZSBkcml2ZXJzIHRoZW1zZWx2ZXMuCgpTZWUgeGVuX2FkZF9kZXZpY2Ug aW4gZHJpdmVycy94ZW4vcGNpLmMgaG93IHRoaXMgaXMgaGFuZGxlZC4KCj4gCj4gVGhlIGZvbGxv d2luZyBkb2N1bWVudCBkZXNjcmliZXMgdGhlIHByb3Bvc2VkIGludGVyZmFjZSBhbmQgaW1wbGVt ZW50YXRpb24KPiBvZiBhbGwgdGhlIGxvZ2ljIG5lZWRlZCBpbiBvcmRlciB0byBhY2hpZXZlIHRo ZSBmdW5jdGlvbmFsaXR5IGRlc2NyaWJlZCAKPiBhYm92ZS4KPiAKPiBNTUlPIGFyZWFzCj4gPT09 PT09PT09PQo+IAo+IE92ZXJ2aWV3Cj4gLS0tLS0tLS0KPiAKPiBPbiB4ODYgc3lzdGVtcyBjZXJ0 YWluIHJlZ2lvbnMgb2YgbWVtb3J5IG1pZ2h0IGJlIHVzZWQgaW4gb3JkZXIgdG8gbWFuYWdlCj4g cGh5c2ljYWwgZGV2aWNlcyBvbiB0aGUgc3lzdGVtLiBBY2Nlc3MgdG8gdGhpcyBhcmVhcyBpcyBj cml0aWNhbCBmb3IgYQo+IFBWSCBEb20wIGluIG9yZGVyIHRvIG9wZXJhdGUgcHJvcGVybHkuIFVu bGlrZSBwcmV2aW91cyBQVkggRG9tMCBpbXBsZW1lbnRhdGlvbgo+IChQVkh2MSkgdGhhdCB3YXMg c2V0dXAgd2l0aCBpZGVudGl0eSBtYXBwaW5ncyBvZiBhbGwgdGhlIGhvbGVzIGFuZCByZXNlcnZl ZAo+IHJlZ2lvbnMgZm91bmQgaW4gdGhlIG1lbW9yeSBtYXAsIHRoaXMgbmV3IGltcGxlbWVudGF0 aW9uIGludGVudHMgdG8gbWFwIG9ubHkKPiB3aGF0J3MgYWN0dWFsbHkgbmVlZGVkIGJ5IHRoZSBE b20wLgoKQW5kIHdoeSB3YXMgdGhlIHByZXZpb3VzIGFwcHJvYWNoIG5vdCB3b3JraW5nPwo+IAo+ IExvdyAxTUIKPiAtLS0tLS0tCj4gCj4gV2hlbiBib290ZWQgd2l0aCBhIGxlZ2FjeSBCSU9TLCB0 aGUgbG93IDFNQiBjb250YWlucyBmaXJtd2FyZSByZWxhdGVkIGRhdGEKPiB0aGF0IHNob3VsZCBi ZSBpZGVudGl0eSBtYXBwZWQgdG8gdGhlIERvbTAuIFRoaXMgaW5jbHVkZSB0aGUgRUJEQSwgdmlk ZW8KPiBtZW1vcnkgYW5kIHBvc3NpYmx5IFJPTXMuIEFsbCBub24gUkFNIHJlZ2lvbnMgYmVsb3cg MU1CIHdpbGwgYmUgaWRlbnRpdHkKPiBtYXBwZWQgdG8gdGhlIERvbTAgc28gdGhhdCBpdCBjYW4g YWNjZXNzIHRoaXMgZGF0YSBmcmVlbHkuCj4gCj4gQUNQSSByZWdpb25zCj4gLS0tLS0tLS0tLS0t Cj4gCj4gQUNQSSByZWdpb25zIHdpbGwgYmUgaWRlbnRpdHkgbWFwcGVkIHRvIHRoZSBEb20wLCB0 aGlzIGltcGxpZXMgcmVnaW9ucyB3aXRoCj4gdHlwZSAzIGFuZCA0IGluIHRoZSBlODIwIG1lbW9y eSBtYXAuIEFsc28sIHNpbmNlIHNvbWUgQklPUyByZXBvcnQgaW5jb3JyZWN0Cj4gbWVtb3J5IG1h cHMsIHRoZSB0b3AtbGV2ZWwgdGFibGVzIGRpc2NvdmVyZWQgYnkgWGVuIChhcyBsaXN0ZWQgaW4g dGhlCj4ge1gvUn1TRFQpIHRoYXQgYXJlIG5vdCBvbiBSQU0gcmVnaW9ucyB3aWxsIGJlIG1hcHBl ZCB0byBEb20wLgo+IAo+IFBDSSBtZW1vcnkgQkFScwo+IC0tLS0tLS0tLS0tLS0tLQo+IAo+IFBD SSBkZXZpY2VzIGRpc2NvdmVyZWQgYnkgWGVuIHdpbGwgaGF2ZSBpdCdzIEJBUnMgc2Nhbm5lZCBp biBvcmRlciB0byBkZXRlY3QKPiBtZW1vcnkgQkFScywgYW5kIHRob3NlIHdpbGwgYmUgaWRlbnRp dHkgbWFwcGVkIHRvIERvbTAuIFNpbmNlIEJBUnMgY2FuIGJlCj4gZnJlZWx5IG1vdmVkIGJ5IHRo ZSBEb20wIE9TIGJ5IHdyaXRpbmcgdG8gdGhlIGFwcHJvcHJpYXRlIFBDSSBjb25maWcgc3BhY2UK PiByZWdpc3RlciwgWGVuIG11c3QgdHJhcCB0aG9zZSBhY2Nlc3NlcyBhbmQgdW5tYXAgdGhlIHBy ZXZpb3VzIHJlZ2lvbiBhbmQKPiBtYXAgdGhlIG5ldyBvbmUgYXMgc2V0IGJ5IERvbTAuCgpZb3Ug Y2FuIG1ha2UgdGhhdCBzaW1wbGVyIC0gd2UgaGF2ZSBoeXBlcmNhbGxzIHRvICJub3RpZnkiIGlu IExpbnV4CndoZW4gYSBkZXZpY2UgaXMgY2hhbmdpbmcuIFRob3NlIGNhbiBwcm92aWRlIHRoYXQg aW5mb3JtYXRpb24gYXMgd2VsbC4KKFRoaXMgaXMgd2hhdCBQViBkb20wIGRvZXMpLgoKQWxzbyB5 b3UgYXJlIG1pc3Npbmcgb25lIGltcG9ydGFudCBwYXJ0IC0gdGhlIE1NQ0ZHLiBUaGF0IGlzIHJl cXVpcmVkCmZvciBYZW4gdG8gYmUgYWJsZSB0byBwb2tlIGF0IHRoZSBQQ0kgY29uZmlndXJhdGlv biBzcGFjZXMgKGFib3ZlIHRoZSAyNTYpLgpBbmQgeW91IGNhbiBvbmx5IGdldCB0aGUgTU1DRkcg aWYgdGhlIEFDUEkgRFNEVCBoYXMgYmVlbiBwYXJzZWQuCgpTbyBpZiB5b3UgZG8gdGhlIFBDSSBi dXMgc2Nhbm5pbmcgX2JlZm9yZV8gYm9vdGluZyBQVkggZG9tMCwgeW91IG1heQpuZWVkIHRvIHVw ZGF0ZSB5b3VyIHZpZXcgb2YgUENJIGRldmljZXMgYWZ0ZXIgdGhlIE1NQ0ZHIGxvY2F0aW9ucwpo YXZlIGJlZW4gcHJvdmlkZWQgdG8geW91LgoKPiAKPiBMaW1pdGF0aW9ucwo+IC0tLS0tLS0tLS0t Cj4gCj4gIC0gWGVuIG5lZWRzIHRvIGJlIGF3YXJlIG9mIGFueSBQQ0kgZGV2aWNlIGJlZm9yZSBE b20wIHRyaWVzIHRvIGludGVyYWN0IHdpdGgKPiAgICBpdCwgc28gdGhhdCB0aGUgTU1JTyByZWdp b25zIGFyZSBwcm9wZXJseSBtYXBwZWQuCj4gCj4gSW50ZXJydXB0IG1hbmFnZW1lbnQKPiA9PT09 PT09PT09PT09PT09PT09PQo+IAo+IE92ZXJ2aWV3Cj4gLS0tLS0tLS0KPiAKPiBPbiB4ODYgc3lz dGVtcyB0aGVyZSBhcmUgdHJlZSBkaWZmZXJlbnQgbWVjaGFuaXNtcyB0aGF0IGNhbiBiZSB1c2Vk IGluIG9yZGVyCj4gdG8gZGVsaXZlciBpbnRlcnJ1cHRzOiBJTyBBUElDLCBNU0kgYW5kIE1TSS1Y LiBOb3RlIHRoYXQgZWFjaCBkZXZpY2UgbWlnaHQKPiBzdXBwb3J0IGRpZmZlcmVudCBtZXRob2Rz LCBidXQgdGhvc2UgYXJlIG5ldmVyIGFjdGl2ZSBhdCB0aGUgc2FtZSB0aW1lLgo+IAo+IExlZ2Fj eSBQQ0kgaW50ZXJydXB0cwo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IAo+IFRoZSBvbmx5IHdh eSB0byBkZWxpdmVyIGxlZ2FjeSBQQ0kgaW50ZXJydXB0cyB0byBQVkh2MiBndWVzdHMgaXMgdXNp bmcgdGhlCj4gSU8gQVBJQywgUFZIdjIgZG9tYWlucyBkb24ndCBoYXZlIGFuIGVtdWxhdGVkIFBJ Qy4gQXMgYSBjb25zZXF1ZW5jZSB0aGUgQUNQSQo+IF9QSUMgbWV0aG9kIG11c3QgYmUgc2V0IHRv IEFQSUMgbW9kZSBieSB0aGUgRG9tMCBPUy4KPiAKPiBYZW4gd2lsbCBhbHdheXMgcHJvdmlkZSBh IHNpbmdsZSBJTyBBUElDLCB0aGF0IHdpbGwgbWF0Y2ggdGhlIG51bWJlciBvZgo+IHBvc3NpYmxl IEdTSXMgb2YgdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUuIFRoaXMgaXMgcG9zc2libGUgYmVjYXVz ZSBBQ1BJCj4gdXNlcyBhIHN5c3RlbSBjb29raWUgaW4gb3JkZXIgdG8gbmFtZSBpbnRlcnJ1cHRz LCBzbyB0aGUgSU8gQVBJQyBkZXZpY2UgSUQKPiBvciBwaW4gbnVtYmVyIGlzIG5vdCB1c2VkIGlu IF9QVFIgbWV0aG9kcy4KClNvIHRoZSBNQURUIHRoYXQgaXMgcHJlc2VudGVkIHRvIGRvbTAgd2ls bCBiZSBtYW5nbGVkPyBUaGF0IGlzCndoZXJlIHRoZSBJT0FQSUMgaW5mb3JtYXRpb24gYWxvbmcg d2l0aCB0aGUgbnVtYmVyIG9mIEdTSXMgaXMgcHJlc2VudGVkLgo+IAo+IFhYWDogaXMgaXQgcG9z c2libGUgdG8gaGF2ZSBtb3JlIHRoYW4gMjU2IEdTSXM/CgpZZWFoLiBJZiB5b3UgaGF2ZSBlbm91 Z2ggb2YgdGhlIElPQVBJQ3MgeW91IGNhbiBoYXZlIG1vcmUgdGhhbiAyNTYuIEJ1dApJIGRvbid0 IHRoaW5rIGFueSBPUyBoYXMgdGFrZW4gdGhhdCBpbnRvIGFjY291bnQgYXMgdGhlIEdTSSB2YWx1 ZSBhcmUKYWx3YXlzIHVpbnQ4X3QuCgo+IAo+IFRoZSBiaW5kaW5nIGJldHdlZW4gdGhlIHVuZGVy bHlpbmcgcGh5c2ljYWwgaW50ZXJydXB0IGFuZCB0aGUgZW11bGF0ZWQKPiBpbnRlcnJ1cHQgaXMg cGVyZm9ybWVkIHdoZW4gdW5tYXNraW5nIGFuIElPIEFQSUMgUElOLCBzbyB3cml0ZXMgdG8gdGhl Cj4gSU9SRURUQkwgcmVnaXN0ZXJzIHRoYXQgdW5zZXQgdGhlIG1hc2sgYml0IHdpbGwgdHJpZ2dl ciB0aGlzIGJpbmRpbmcKPiBhbmQgZW5hYmxlIHRoZSBpbnRlcnJ1cHQuCj4gCj4gTVNJIEludGVy cnVwdHMKPiAtLS0tLS0tLS0tLS0tLQo+IAo+IE1TSSBpbnRlcnJ1cHRzIGFyZSBzZXR1cCB1c2lu ZyB0aGUgUENJIGNvbmZpZyBzcGFjZSwgZWl0aGVyIHRoZSBJTyBwb3J0cwo+IG9yIHRoZSBtZW1v cnkgbWFwcGVkIGNvbmZpZ3VyYXRpb24gYXJlYS4gVGhpcyBtZWFucyB0aGF0IGJvdGggc3BhY2Vz IHNob3VsZAo+IGJlIHRyYXBwZWQgYnkgWGVuLCBpbiBvcmRlciB0byBkZXRlY3QgYWNjZXNzZXMg dG8gdGhlc2UgcmVnaXN0ZXJzIGFuZAo+IHByb3Blcmx5IGVtdWxhdGUgdGhlbS4KPiAKPiBTaW5j ZSB0aGUgb2Zmc2V0IG9mIHRoZSBNU0kgcmVnaXN0ZXJzIGlzIG5vdCBmaXhlZCwgWGVuIGhhcyB0 byBxdWVyeSB0aGUKPiBQQ0kgY29uZmlndXJhdGlvbiBzcGFjZSBpbiBvcmRlciB0byBmaW5kIHRo ZSBvZmZzZXQgb2YgdGhlIFBDSV9DQVBfSURfTVNJLAo+IGFuZCB0aGVuIHNldHVwIHRoZSBjb3Jy ZWN0IHRyYXBzLCB3aGljaCBhbHNvIHZhcnkgZGVwZW5kaW5nIG9uIHRoZQo+IGNhcGFiaWxpdGll cyBvZiB0aGUgZGV2aWNlLiBUaGUgZm9sbG93aW5nIGxpc3QgY29udGFpbnMgdGhlIHNldCBvZiBN U0kKPiByZWdpc3RlcnMgdGhhdCBYZW4gd2lsbCB0cmFwLCBwbGVhc2UgdGFrZSBpbnRvIGFjY291 bnQgdGhhdCBzb21lIGRldmljZXMKPiBtaWdodCBvbmx5IGltcGxlbWVudCBhIHN1YnNldCBvZiB0 aG9zZSByZWdpc3RlcnMsIHNvIG5vdCBhbGwgdHJhcHMgd2lsbAo+IGJlIHVzZWQ6Cj4gCj4gIC0g TWVzc2FnZSBjb250cm9sIHJlZ2lzdGVyIChvZmZzZXQgMik6IFhlbiB0cmFwcyBhY2Nlc3NlcyB0 byB0aGlzIHJlZ2lzdGVyLAo+ICAgIGFuZCBzdG9yZXMgdGhlIGRhdGEgd3JpdHRlbiB0byBpdCBp bnRvIGFuIGludGVybmFsIHN0cnVjdHVyZS4gV2hlbiB0aGUgT1MKPiAgICBzZXRzIHRoZSBNU0kg ZW5hYmxlIGJpdCAob2Zmc2V0IDApIFhlbiB3aWxsIHNldHVwIHRoZSBjb25maWd1cmVkIE1TSQo+ ICAgIGludGVycnVwdHMgYW5kIHJvdXRlIHRoZW0gdG8gdGhlIGd1ZXN0Lgo+IAo+ICAtIE1lc3Nh Z2UgYWRkcmVzcyByZWdpc3RlciAob2Zmc2V0IDQpOiB3cml0ZXMgYW5kIHJlYWRzIHRvIHRoaXMg cmVnaXN0ZXIgYXJlCj4gICAgdHJhcHBlZCBieSBYZW4sIGFuZCB0aGUgdmFsdWUgaXMgc3RvcmVk IGludG8gYW4gaW50ZXJuYWwgc3RydWN0dXJlLiBUaGlzIGlzCj4gICAgbGF0ZXIgdXNlZCB3aGVu IE1TSSBhcmUgZW5hYmxlZCBpbiBvcmRlciB0byBjb25maWd1cmUgdGhlIHZlY3RvcnMgaW5qZWN0 ZWQKPiAgICB0byB0aGUgZ3Vlc3QuIFdyaXRlcyB0byB0aGlzIHJlZ2lzdGVyIHdpdGggTVNJIGFs cmVhZHkgZW5hYmxlZCB3aWxsIGNhdXNlCj4gICAgYSByZWNvbmZpZ3VyYXRpb24gb2YgdGhlIGJp bmRpbmcgb2YgaW50ZXJydXB0cyB0byB0aGUgZ3Vlc3QuCj4gCj4gIC0gTWVzc2FnZSBkYXRhIHJl Z2lzdGVyIChvZmZzZXQgOCBvciAxMiBpZiBtZXNzYWdlIGFkZHJlc3MgaXMgNjRiaXRzKTogd3Jp dGVzCj4gICAgYW5kIHJlYWRzIHRvIHRoaXMgcmVnaXN0ZXIgYXJlIHRyYXBwZWQgYnkgWGVuLCBh bmQgdGhlIHZhbHVlIGlzIHN0b3JlZCBpbnRvCj4gICAgYW4gaW50ZXJuYWwgc3RydWN0dXJlLiBU aGlzIGlzIHVzZWQgd2hlbiBNU0kgYXJlIGVuYWJsZWQgaW4gb3JkZXIgdG8KPiAgICBjb25maWd1 cmUgdGhlIHZlY3RvciB3aGVyZSB0aGUgZ3Vlc3RzIGV4cGVjdHMgdG8gcmVjZWl2ZSB0aG9zZSBp bnRlcnJ1cHRzLgo+ICAgIFdyaXRlcyB0byB0aGlzIHJlZ2lzdGVyIHdpdGggTVNJIGFscmVhZHkg ZW5hYmxlZCB3aWxsIGNhdXNlIGEKPiAgICByZWNvbmZpZ3VyYXRpb24gb2YgdGhlIGJpbmRpbmcg b2YgaW50ZXJydXB0cyB0byB0aGUgZ3Vlc3QuCj4gCj4gIC0gTWFzayBhbmQgcGVuZGluZyBiaXRz OiByZWFkcyBvciB3cml0ZXMgdG8gdGhvc2UgcmVnaXN0ZXJzIGFyZSBub3QgdHJhcHBlZAo+ICAg IGJ5IFhlbi4KPiAKPiBNU0ktWCBJbnRlcnJ1cHRzCj4gLS0tLS0tLS0tLS0tLS0tLQo+IAo+IE1T SS1YIGluIGNvbnRyYXN0IHdpdGggTVNJIGhhcyBwYXJ0IG9mIHRoZSBjb25maWd1cmF0aW9uIHJl Z2lzdGVycyBpbiB0aGUKPiBQQ0kgY29uZmlndXJhdGlvbiBzcGFjZSwgd2hpbGUgb3RoZXJzIHJl c2lkZSBpbnNpZGUgb2YgdGhlIG1lbW9yeSBCQVJzIG9mIHRoZQo+IGRldmljZS4gU28gaW4gdGhp cyBjYXNlIFhlbiBuZWVkcyB0byBzZXR1cCB0cmFwcyBmb3IgYm90aCB0aGUgUENJCj4gY29uZmln dXJhdGlvbiBzcGFjZSBhbmQgdHdvIGRpZmZlcmVudCBtZW1vcnkgcmVnaW9ucy4gWGVuIGhhcyB0 byBxdWVyeSB0aGUKPiBwb3NpdGlvbiBvZiB0aGUgTVNJLVggY2FwYWJpbGl0eSB1c2luZyB0aGUg UENJX0NBUF9JRF9NU0lYLCBhbmQgc2V0dXAgYQo+IGhhbmRsZXIgaW4gb3JkZXIgdG8gdHJhcCBh Y2Nlc3NlcyB0byB0aGUgZGlmZmVyZW50IHJlZ2lzdGVycy4gWGVuIGFsc28gaGFzCj4gdG8gZmln dXJlIG91dCB0aGUgcG9zaXRpb24gb2YgdGhlIE1TSS1YIHRhYmxlIGFuZCBQQkEsIHVzaW5nIHRo ZSB0YWJsZSBCSVIKPiBhbmQgdGFibGUgb2Zmc2V0LCBhbmQgdGhlIFBCQSBCSVIgYW5kIFBCQSBv ZmZzZXQuIE9uY2UgdGhvc2UgYXJlIGtub3duIGEKPiBoYW5kbGVyIHNob3VsZCBhbHNvIGJlIHNl dHVwIGluIG9yZGVyIHRvIHRyYXAgYWNjZXNzZXMgdG8gdGhvc2UgbWVtb3J5IAo+IHJlZ2lvbnMu Cj4gCj4gVGhpcyBpcyB0aGUgbGlzdCBvZiBNU0ktWCByZWdpc3RlcnMgdGhhdCBhcmUgdXNlZCBp biBvcmRlciB0byBtYW5hZ2UgTVNJLVgKPiBpbiB0aGUgUENJIGNvbmZpZ3VyYXRpb24gc3BhY2U6 Cj4gCj4gIC0gTWVzc2FnZSBjb250cm9sOiBYZW4gc2hvdWxkIHRyYXAgYWNjZXNzZXMgdG8gdGhp cyByZWdpc3RlciBpbiBvcmRlciB0bwo+ICAgIGRldGVjdCBjaGFuZ2VzIHRvIHRoZSBNU0ktWCBl bmFibGUgZmllbGQgKGJpdCAxNSkuIENoYW5nZXMgdG8gdGhpcyBiaXQKPiAgICB3aWxsIHRyaWdn ZXIgdGhlIHNldHVwIG9mIHRoZSBNU0ktWCB0YWJsZSBlbnRyaWVzIGNvbmZpZ3VyZWQuIFdyaXRl cwo+ICAgIHRvIHRoZSBmdW5jdGlvbiBtYXNrIGJpdCB3aWxsIGJlIHBhc3NlZC10aHJvdWdoIHRv IHRoZSB1bmRlcmx5aW5nCj4gICAgcmVnaXN0ZXIuCj4gCj4gIC0gVGFibGUgb2Zmc2V0LCB0YWJs ZSBCSVIsIFBCQSBvZmZzZXQsIFBCQSBCSVI6IGFjY2Vzc2VzIHRvIHRob3NlIHJlZ2lzdGVycwo+ ICAgIGFyZSBub3QgdHJhcHBlZCBieSBYZW4uCj4gCj4gVGhlIGZvbGxvd2luZyByZWdpc3RlcnMg cmVzaWRlIGluIG1lbW9yeSwgYW5kIGFyZSBwb2ludGVkIG91dCBieSB0aGUgVGFibGUgYW5kCj4g UEJBIGZpZWxkcyBmb3VuZCBpbiB0aGUgUENJIGNvbmZpZ3VyYXRpb24gc3BhY2U6Cj4gCj4gIC0g TWVzc2FnZSBhZGRyZXNzIGFuZCBkYXRhOiB3cml0ZXMgYW5kIHJlYWRzIHRvIHRob3NlIHJlZ2lz dGVycyBhcmUgdHJhcHBlZAo+ICAgIGJ5IFhlbiwgYW5kIHRoZSB2YWx1ZSBpcyBzdG9yZWQgaW50 byBhbiBpbnRlcm5hbCBzdHJ1Y3R1cmUuIFRoaXMgaXMgbGF0ZXIKPiAgICB1c2VkIGJ5IFhlbiBp biBvcmRlciB0byBjb25maWd1cmUgdGhlIGludGVycnVwdCBpbmplY3RlZCB0byB0aGUgZ3Vlc3Qu Cj4gICAgV3JpdGVzIHRvIHRob3NlIHJlZ2lzdGVycyB3aXRoIE1TSS1YIGFscmVhZHkgZW5hYmxl ZCB3aWxsIG5vdCBjYXVzZSBhCj4gICAgcmVjb25maWd1cmF0aW9uIG9mIHRoZSBpbnRlcnJ1cHQu Cj4gCj4gIC0gVmVjdG9yIGNvbnRyb2w6IHdyaXRlcyBhbmQgcmVhZHMgYXJlIHRyYXBwZWQsIGNs ZWFyaW5nIHRoZSBtYXNrIGJpdCAoYml0IDApCj4gICAgd2lsbCBjYXVzZSBYZW4gdG8gc2V0dXAg dGhlIGNvbmZpZ3VyZWQgaW50ZXJydXB0IGlmIE1TSS1YIGlzIGdsb2JhbGx5Cj4gICAgZW5hYmxl ZCBpbiB0aGUgbWVzc2FnZSBjb250cm9sIGZpZWxkLgo+IAo+ICAtIFBlbmRpbmcgYml0cyBhcnJh eTogd3JpdGVzIGFuZCByZWFkcyB0byB0aGlzIHJlZ2lzdGVyIGFyZSBub3QgdHJhcHBlZCBieQo+ ICAgIFhlbi4KPiAKPiBMaW1pdGF0aW9ucwo+IC0tLS0tLS0tLS0tCj4gCj4gIC0gRHVlIHRvIHRo ZSBmYWN0IHRoYXQgRG9tMCBpcyBub3QgYWJsZSB0byBwYXJzZSBkeW5hbWljIEFDUEkgdGFibGVz LAo+ICAgIHNvbWUgVUFSVCBkZXZpY2VzIG1pZ2h0IG9ubHkgZnVuY3Rpb24gaW4gcG9sbGluZyBt b2RlLCBiZWNhdXNlIFhlbgo+ICAgIHdpbGwgYmUgdW5hYmxlIHRvIHByb3Blcmx5IGNvbmZpZ3Vy ZSB0aGUgaW50ZXJydXB0IHBpbnMgd2l0aG91dCBEb20wCj4gICAgY29sbGFib3JhdGlvbiwgYW5k IHRoZSBVQVJUIGluIHVzZSBieSBYZW4gc2hvdWxkIGJlIGV4cGxpY2l0bHkgYmxhY2tsaXN0ZWQK PiAgICBmcm9tIERvbTAgYWNjZXNzLgoKQnkgYmxhY2tsaXN0aW5nIHRoZSBJTyBwb3J0cyB0b28/ Cj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK