From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v3 1/1] public/io/netif.h: add gref mapping control messages Date: Mon, 18 Sep 2017 12:11:04 +0000 Message-ID: References: <20170913181034.28527-1-joao.m.martins@oracle.com> <20170913181034.28527-2-joao.m.martins@oracle.com> <4455cf6ca0c54881aae511871b75e795@AMSPEX02CL03.citrite.net> <20170918115613.hjzpvdghfug777f7@paddy> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170918115613.hjzpvdghfug777f7@paddy> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: 'Joao Martins' Cc: Wei Liu , Xen-devel List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IEpvYW8gTWFydGlucyBbbWFpbHRv OmpvYW8ubS5tYXJ0aW5zQG9yYWNsZS5jb21dCj4gU2VudDogMTggU2VwdGVtYmVyIDIwMTcgMTI6 NTYKPiBUbzogUGF1bCBEdXJyYW50IDxQYXVsLkR1cnJhbnRAY2l0cml4LmNvbT4KPiBDYzogWGVu LWRldmVsIDx4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZz47IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJp eC5jb20+Owo+IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4K PiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDEvMV0gcHVibGljL2lvL25ldGlmLmg6IGFkZCBncmVm IG1hcHBpbmcgY29udHJvbAo+IG1lc3NhZ2VzCj4gCj4gT24gTW9uLCBTZXAgMTgsIDIwMTcgYXQg MDk6NTM6MThBTSArMDAwMCwgUGF1bCBEdXJyYW50IHdyb3RlOgo+ID4gPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQo+ID4gPiBGcm9tOiBKb2FvIE1hcnRpbnMgW21haWx0bzpqb2FvLm0ubWFy dGluc0BvcmFjbGUuY29tXQo+ID4gPiBTZW50OiAxMyBTZXB0ZW1iZXIgMjAxNyAxOToxMQo+ID4g PiBUbzogWGVuLWRldmVsIDx4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZz4KPiA+ID4gQ2M6IFdlaSBM aXUgPHdlaS5saXUyQGNpdHJpeC5jb20+OyBQYXVsIER1cnJhbnQKPiA8UGF1bC5EdXJyYW50QGNp dHJpeC5jb20+Owo+ID4gPiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNs ZS5jb20+OyBKb2FvIE1hcnRpbnMKPiA+ID4gPGpvYW8ubS5tYXJ0aW5zQG9yYWNsZS5jb20+Cj4g PiA+IFN1YmplY3Q6IFtQQVRDSCB2MyAxLzFdIHB1YmxpYy9pby9uZXRpZi5oOiBhZGQgZ3JlZiBt YXBwaW5nIGNvbnRyb2wKPiBtZXNzYWdlcwo+ID4gPgo+ID4gPiBBZGRzIDMgbWVzc2FnZXMgdG8g YWxsb3cgZ3Vlc3QgdG8gbGV0IGJhY2tlbmQga2VlcCBncmFudHMgbWFwcGVkLAo+ID4gPiBzdWNo IHRoYXQgMSkgZ3Vlc3RzIGFsbG93aW5nIGZhc3QgcmVjeWNsaW5nIG9mIHBhZ2VzIGNhbiBhdm9p ZCBkb2luZwo+ID4gPiBncmFudCBvcHMgZm9yIHRob3NlIGNhc2VzLCBvciBvdGhlcndpc2UgMikg cHJlZmVycmluZyBjb3BpZXMgb3Zlcgo+ID4gPiBncmFudHMgYW5kIDMpIGFsd2F5cyB1c2luZyBh IGZpeGVkIHNldCBvZiBwYWdlcyBmb3IgbmV0d29yayBJL08uCj4gPiA+Cj4gPiA+IFRoZSB0aHJl ZSBjb250cm9sIHJpbmcgbWVzc2FnZXMgYWRkZWQgYXJlOgo+ID4gPiAgLSBBZGQgZ3JlZnMgdG8g YmUgbWFwcGVkIGJ5IGJhY2tlbmQKPiA+ID4gIC0gUmVtb3ZlIGdyZWZzIG1hcHBpbmdzIChJZiB0 aGV5IGFyZSBub3QgaW4gdXNlKQo+ID4gPiAgLSBHZXQgbWF4aW11bSBhbW91bnQgb2YgZ3JlZnMg a2VwdCBtYXBwZWQuCj4gPiA+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IEpvYW8gTWFydGlucyA8am9h by5tLm1hcnRpbnNAb3JhY2xlLmNvbT4KPiA+ID4gLS0tCj4gPiA+IHYzOgo+ID4gPiAqIFVzZSBE RUwgZm9yIHVubWFwcGluZyBncmVmcyBpbnN0ZWFkIG9mIFBVVAo+ID4gPiAqIFJuYW1lIGZyb20g eGVuX25ldGlmX2dyZWZfYWxsb2MgdG8geGVuX25ldGlmX2dyZWYKPiA+ID4gKiBBZGQgJ3N0YXR1 cycgZmllbGQgb24geGVuX25ldGlmX2dyZWYKPiA+ID4gKiBDbGFyaWZ5IHdoYXQgJ2luZmxpZ2h0 JyBtZWFucwo+ID4gPiAqIFVzZSAiYmVnaW5uaW5nIG9mIHRoZSBwYWdlIiBpbnN0ZWFkIG9mICJi ZWdpbm5pbmcgb2YgdGhlIGdyYW50Igo+ID4gPiAqIE1lbnRpb24gdGhhdCBwYWdlIG5lZWRzIHRv IGJlIHIvdyAoYXMgaXQgd2lsbCBoYXZlIHRvIG1vZGlmeSBcLnN0YXR1cykKPiA+ID4gKiBgZGF0 YWAgb24gQUREfFBVVCByZXR1cm5zIG51bWJlciBvZiBlbnRyaWVzIG1hcHBlZC91bm1hcHBlZC4K PiA+ID4gLS0tCj4gPiA+ICB4ZW4vaW5jbHVkZS9wdWJsaWMvaW8vbmV0aWYuaCB8IDExNQo+ID4g PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ID4gIDEgZmls ZSBjaGFuZ2VkLCAxMTUgaW5zZXJ0aW9ucygrKQo+ID4gPgo+ID4gPiBkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvcHVibGljL2lvL25ldGlmLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaW8vbmV0aWYu aAo+ID4gPiBpbmRleCBjYTAwNjE0MTBkLi4wMDgwYTI2MGZkIDEwMDY0NAo+ID4gPiAtLS0gYS94 ZW4vaW5jbHVkZS9wdWJsaWMvaW8vbmV0aWYuaAo+ID4gPiArKysgYi94ZW4vaW5jbHVkZS9wdWJs aWMvaW8vbmV0aWYuaAo+ID4gPiBAQCAtMzUzLDYgKzM1Myw5IEBAIHN0cnVjdCB4ZW5fbmV0aWZf Y3RybF9yZXF1ZXN0IHsKPiA+ID4gICNkZWZpbmUgWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFT SF9NQVBQSU5HX1NJWkUgNQo+ID4gPiAgI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9I QVNIX01BUFBJTkcgICAgICA2Cj4gPiA+ICAjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VU X0hBU0hfQUxHT1JJVEhNICAgIDcKPiA+ID4gKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfVFlQRV9H RVRfR1JFRl9NQVBQSU5HX1NJWkUgOAo+ID4gPiArI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBF X0FERF9HUkVGX01BUFBJTkcgICAgICA5Cj4gPiA+ICsjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1RZ UEVfREVMX0dSRUZfTUFQUElORyAgICAgMTAKPiA+ID4KPiA+ID4gICAgICB1aW50MzJfdCBkYXRh WzNdOwo+ID4gPiAgfTsKPiA+ID4gQEAgLTM5MSw2ICszOTQsNDEgQEAgc3RydWN0IHhlbl9uZXRp Zl9jdHJsX3Jlc3BvbnNlIHsKPiA+ID4gIH07Cj4gPiA+Cj4gPiA+ICAvKgo+ID4gPiArICogU3Rh dGljIEdyYW50cyAoc3RydWN0IHhlbl9uZXRpZl9ncmVmKQo+ID4gPiArICogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQo+ID4gPiArICoKPiA+ID4gKyAqIEEgZnJvbnRlbmQg bWF5IHByb3ZpZGUgYSBmaXhlZCBzZXQgb2YgZ3JhbnQgcmVmZXJlbmNlcyB0byBiZSBtYXBwZWQK PiBvbgo+ID4gPiArICogdGhlIGJhY2tlbmQuIFRoZSBtZXNzYWdlIG9mIHR5cGUKPiA+ID4gWEVO X05FVElGX0NUUkxfVFlQRV9BRERfR1JFRl9NQVBQSU5HCj4gPiA+ICsgKiBwcmlvciBpdHMgdXNh Z2UgaW4gdGhlIGNvbW1hbmQgcmluZyBhbGxvd3MgZm9yIGNyZWF0aW9uIG9mIHRoZXNlCj4gbWFw cGluZ3MuCj4gPiA+ICsgKiBUaGUgYmFja2VuZCB3aWxsIG1haW50YWluIGEgZml4ZWQgYW1vdW50 IG9mIHRoZXNlIG1hcHBpbmdzLgo+ID4gPiArICoKPiA+ID4gKyAqIFhFTl9ORVRJRl9DVFJMX1RZ UEVfR0VUX0dSRUZfTUFQUElOR19TSVpFIGxldHMgYSBmcm9udGVuZAo+ID4gPiBxdWVyeSBob3cg bWFueQo+ID4gPiArICogb2YgdGhlc2UgbWFwcGluZ3MgY2FuIGJlIGtlcHQuCj4gPiA+ICsgKgo+ ID4gPiArICogRWFjaCBlbnRyeSBpbiB0aGUKPiBYRU5fTkVUSUZfQ1RSTF9UWVBFX3tBREQsREVM fV9HUkVGX01BUFBJTkcKPiA+ID4gaW5wdXQgdGFibGUgaGFzCj4gPiA+ICsgKiB0aGUgZm9sbG93 aW5nIGZvcm1hdDoKPiA+ID4gKyAqCj4gPiA+ICsgKiAgICAwICAgICAxICAgICAyICAgICAzICAg ICA0ICAgICA1ICAgICA2ICAgICA3ICBvY3RldAo+ID4gPiArICogKy0tLS0tKy0tLS0tKy0tLS0t Ky0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwo+ID4gPiArICogfCBncmFudCByZWYgICAg ICAgICAgICAgfCAgZmxhZ3MgICAgfCAgc3RhdHVzICAgfAo+ID4gPiArICogKy0tLS0tKy0tLS0t Ky0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwo+ID4gPiArICoKPiA+ID4gKyAq IGdyYW50IHJlZjogZ3JhbnQgcmVmZXJlbmNlCj4gPiA+ICsgKiBmbGFnczogZmxhZ3MgZGVzY3Jp YmluZyB0aGUgY29udHJvbCBvcGVyYXRpb24KPiA+ID4gKyAqIHN0YXR1czogWEVOX05FVElGX0NU UkxfU1RBVFVTXyoKPiA+ID4gKyAqLwo+ID4KPiA+IFlvdSBtYXkgd2FudCB0byBhZGQgc29tZSB3 b3JkcyBoZXJlIHBvaW50aW5nIG91dCB0aGF0IHRoZSBzdGF0dXMgaXMgYW4KPiA+ICdvdXQnIGZp ZWxkLCBhbmQgYWxzbyB3aGV0aGVyIGl0IHNob3VsZCBiZSBpbml0aWFsaXplZCB0byB6ZXJvIG9y IG5vdC4KPiA+Cj4gT0suCj4gCj4gPiA+ICsKPiA+ID4gK3N0cnVjdCB4ZW5fbmV0aWZfZ3JlZiB7 Cj4gPiA+ICsgICAgICAgZ3JhbnRfcmVmX3QgcmVmOwo+ID4gPiArICAgICAgIHVpbnQxNl90IGZs YWdzOwo+ID4gPiArCj4gPiA+ICsjZGVmaW5lIF9YRU5fTkVUSUZfQ1RSTEZfR1JFRl9yZWFkb25s eSAgICAwCj4gPiA+ICsjZGVmaW5lIFhFTl9ORVRJRl9DVFJMRl9HUkVGX3JlYWRvbmx5Cj4gPiA+ ICgxVTw8X1hFTl9ORVRJRl9DVFJMRl9HUkVGX3JlYWRvbmx5KQo+ID4gPiArCj4gPiA+ICsgICAg ICAgdWludDE2X3Qgc3RhdHVzOwo+ID4gPiArfTsKPiA+ID4gKwo+ID4gPiArLyoKPiA+ID4gICAq IENvbnRyb2wgbWVzc2FnZXMKPiA+ID4gICAqID09PT09PT09PT09PT09PT0KPiA+ID4gICAqCj4g PiA+IEBAIC02MDksNiArNjQ3LDgzIEBAIHN0cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXNwb25zZSB7 Cj4gPiA+ICAgKiAgICAgICBpbnZhbGlkYXRlIGFueSB0YWJsZSBkYXRhIG91dHNpZGUgdGhhdCBy YW5nZS4KPiA+ID4gICAqICAgICAgIFRoZSBncmFudCByZWZlcmVuY2UgbWF5IGJlIHJlYWQtb25s eSBhbmQgbXVzdCByZW1haW4gdmFsaWQgdW50aWwKPiA+ID4gICAqICAgICAgIHRoZSByZXNwb25z ZSBoYXMgYmVlbiBwcm9jZXNzZWQuCj4gPiA+ICsgKgo+ID4gPiArICogWEVOX05FVElGX0NUUkxf VFlQRV9HRVRfR1JFRl9NQVBQSU5HX1NJWkUKPiA+ID4gKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ICsgKgo+ID4gPiArICogVGhpcyBpcyBzZW50IGJ5 IHRoZSBmcm9udGVuZCB0byBmZXRjaCB0aGUgbnVtYmVyIG9mIGdyZWZzIHRoYXQgY2FuIGJlCj4g a2VwdAo+ID4gPiArICogbWFwcGVkIGluIHRoZSBiYWNrZW5kLgo+ID4gPiArICoKPiA+ID4gKyAq IFJlcXVlc3Q6Cj4gPiA+ICsgKgo+ID4gPiArICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RSTF9U WVBFX0dFVF9HUkVGX01BUFBJTkdfU0laRQo+ID4gPiArICogIGRhdGFbMF0gPSBxdWV1ZSBpbmRl eCAoYXNzdW1lZCAwIGZvciBzaW5nbGUgcXVldWUpCj4gPiA+ICsgKiAgZGF0YVsxXSA9IDAKPiA+ ID4gKyAqICBkYXRhWzJdID0gMAo+ID4gPiArICoKPiA+ID4gKyAqIFJlc3BvbnNlOgo+ID4gPiAr ICoKPiA+ID4gKyAqICBzdGF0dXMgPSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBPUlRF RCAgICAgLSBPcGVyYXRpb24KPiBub3QKPiA+ID4gKyAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQKPiA+ID4gKyAqICAgICAgICAg ICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVIgLSBUaGUgcXVldWUKPiBp bmRleAo+ID4gPiBpcwo+ID4gPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG91dCBvZiByYW5nZQo+ID4gPiArICogICAgICAgICAgIFhFTl9O RVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgICAgICAtIE9wZXJhdGlvbiBzdWNjZXNzZnVs Cj4gPiA+ICsgKiAgZGF0YSAgID0gbWF4aW11bSBudW1iZXIgb2YgZW50cmllcyBhbGxvd2VkIGlu IHRoZSBncmVmIG1hcHBpbmcKPiB0YWJsZQo+ID4gPiArICogICAgICAgICAgIChpZiBvcGVyYXRp b24gd2FzIHN1Y2Nlc3NmdWwpIG9yIHplcm8gaWYgaXQgaXMgbm90IHN1cHBvcnRlZC4KPiA+ID4g KyAqCj4gPiA+ICsgKiBYRU5fTkVUSUZfQ1RSTF9UWVBFX0FERF9HUkVGX01BUFBJTkcKPiA+ID4g KyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiArICoKPiA+ID4g KyAqIFRoaXMgaXMgc2VudCBieSB0aGUgZnJvbnRlbmQgZm9yIGJhY2tlbmQgdG8gbWFwIGEgbGlz dCBvZiBncmFudAo+ID4gPiArICogcmVmZXJlbmNlcy4KPiA+ID4gKyAqCj4gPiA+ICsgKiBSZXF1 ZXN0Ogo+ID4gPiArICoKPiA+ID4gKyAqICB0eXBlICAgID0gWEVOX05FVElGX0NUUkxfVFlQRV9B RERfR1JFRl9NQVBQSU5HCj4gPiA+ICsgKiAgZGF0YVswXSA9IHF1ZXVlIGluZGV4Cj4gPiA+ICsg KiAgZGF0YVsxXSA9IGdyYW50IHJlZmVyZW5jZSBvZiBwYWdlIGNvbnRhaW5pbmcgdGhlIG1hcHBp bmcgbGlzdAo+ID4gPiArICogICAgICAgICAgICAoci93IGFuZCBhc3N1bWVkIHRvIHN0YXJ0IGF0 IGJlZ2lubmluZyBvZiBwYWdlKQo+ID4gPiArICogIGRhdGFbMl0gPSBzaXplIG9mIGxpc3QgaW4g ZW50cmllcwo+ID4gPiArICoKPiA+ID4gKyAqIFJlc3BvbnNlOgo+ID4gPiArICoKPiA+ID4gKyAq ICBzdGF0dXMgPSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBPUlRFRCAgICAgLSBPcGVy YXRpb24KPiBub3QKPiA+ID4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQKPiA+ID4gKyAqICAgICAgICAgICBYRU5fTkVUSUZf Q1RSTF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVIgLSBPcGVyYXRpb24KPiBmYWlsZWQKPiA+ID4g KyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfU1VDQ0VTUyAgICAgICAgICAgLSBP cGVyYXRpb24gc3VjY2Vzc2Z1bAo+ID4gPiArICogIGRhdGEgICA9IG51bWJlciBvZiBlbnRyaWVz IHRoYXQgd2VyZSBtYXBwZWQKPiA+ID4gKyAqCj4gPiA+ICsgKiBOT1RFOiBFYWNoIGVudHJ5IGlu IHRoZSBpbnB1dCB0YWJsZSBoYXMgdGhlIGZvcm1hdCBvdXRsaW5lZAo+ID4gPiArICogICAgICAg aW4gc3RydWN0IHhlbl9uZXRpZl9ncmVmLgo+ID4KPiA+IFlvdSBtYXkgd2FudCB0byBwdXQgd29y ZHMgaGVyZSBhYm91dCB0aGUgJ2FsbCBvciBub3RoaW5nJyBzZW1hbnRpY3Mgb2YKPiA+IHRoaXMg b3BlcmF0aW9uIHZzLiB0aGUgc2VtYW50aWNzIG9mIHRoZSAnZGVsJyBvcGVyYXRpb24gYmVsb3cu Cj4gPgo+IEdvb2QgcG9pbnQgSSdsbCBhZGQgYSBwYXJhZ3JhcGggYWJvdXQgdGhhdC4KPiAKPiBG b3IgdGhlIHVubWFwIGl0IGlzIGNsZWFyIHRoYXQgc3RhdHVzIHNob3VsZCBiZSBwZXItZW50cnkg Zm9yIHJlYXNvbnMKPiBkaXNjdXNzZWQgb24gdjIuIERvIHlvdSB0aGluayBBREQgJ2FsbCBvciBu b3RoaW5nJyBsaWtlIEkgaGFkIG9uIHYyID8KPiBJZiBzbyBJIHNob3VsZCByZW1vdmUgdGhlICdk YXRhJyByZXR1cm4gcGFydCBzaW5jZSBpdCBpcyBub3QgcmVhbGx5Cj4gdXNlZnVsIGhlcmUuCgpU aGUgJ2FsbCBvciBub3RoaW5nJyBzZW1hbnRpYyBpcyBlYXNpZXIgZm9yIHRoZSBmcm9udGVuZCB0 byBkZWFsIHdpdGgsIHNvIEkgdGhpbmsgdGhhdCdzIHRoZSB3YXkgdG8gZ28uIE90aGVyd2lzZSB5 b3UnZCBuZWVkIHRoZSBwZXItZW50cnkgc3RhdHVzLCBhcyB5b3Ugc2F5LiBFaXRoZXIgd2F5LCBJ IGRvbid0IHRoaW5rIHRoZSBkYXRhIHJldHVybiBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsLgoKPiAK PiA+ID4gKyAqCj4gPiA+ICsgKiBYRU5fTkVUSUZfQ1RSTF9UWVBFX0RFTF9HUkVGX01BUFBJTkcK PiA+ID4gKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiArICoK PiA+ID4gKyAqIFRoaXMgaXMgc2VudCBieSB0aGUgZnJvbnRlbmQgZm9yIGJhY2tlbmQgdG8gdW5t YXAgYSBsaXN0IG9mIGdyYW50Cj4gPiA+ICsgKiByZWZlcmVuY2VzLgo+ID4gPiArICoKPiA+ID4g KyAqIFJlcXVlc3Q6Cj4gPiA+ICsgKgo+ID4gPiArICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RS TF9UWVBFX0RFTF9HUkVGX01BUFBJTkcKPiA+ID4gKyAqICBkYXRhWzBdID0gcXVldWUgaW5kZXgK PiA+ID4gKyAqICBkYXRhWzFdID0gZ3JhbnQgcmVmZXJlbmNlIG9mIHBhZ2UgY29udGFpbmluZyB0 aGUgbWFwcGluZyBsaXN0Cj4gPiA+ICsgKiAgICAgICAgICAgIChyL3cgYW5kIGFzc3VtZWQgdG8g c3RhcnQgYXQgYmVnaW5uaW5nIG9mIHBhZ2UpCj4gPiA+ICsgKiAgZGF0YVsyXSA9IHNpemUgb2Yg bGlzdCBpbiBlbnRyaWVzCj4gPiA+ICsgKgo+ID4gPiArICogUmVzcG9uc2U6Cj4gPiA+ICsgKgo+ ID4gPiArICogIHN0YXR1cyA9IFhFTl9ORVRJRl9DVFJMX1NUQVRVU19OT1RfU1VQUE9SVEVEICAg ICAtIE9wZXJhdGlvbgo+IG5vdAo+ID4gPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZAo+ID4gPiArICogICAgICAgICAgIFhF Tl9ORVRJRl9DVFJMX1NUQVRVU19JTlZBTElEX1BBUkFNRVRFUiAtIE9wZXJhdGlvbgo+IGZhaWxl ZAo+ID4gPiArICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAg ICAgICAtIE9wZXJhdGlvbiBzdWNjZXNzZnVsCj4gPiA+ICsgKiAgZGF0YSAgID0gbnVtYmVyIG9m IGVudHJpZXMgdGhhdCB3ZXJlIHVubWFwcGVkCj4gPiA+ICsgKgo+ID4gPiArICogTk9URTogRWFj aCBlbnRyeSBpbiB0aGUgaW5wdXQgdGFibGUgaGFzIHRoZSBmb3JtYXQgb3V0bGluZWQgaW4gc3Ry dWN0Cj4gPiA+ICsgKiAgICAgICB4ZW5fbmV0aWZfZ3JlZi4gVGhlIG9ubHkgdmFsaWQgZW50cmll cyBhcmUgdGhvc2UgcHJldmlvdXNseSBhZGRlZAo+IHdpdGgKPiA+ID4gKyAqICAgICAgIG1lc3Nh Z2UgWEVOX05FVElGX0NUUkxfVFlQRV9BRERfR1JFRl9NQVBQSU5HIGFyZSB2YWxpZCwKPiA+ID4g b3RoZXJ3aXNlCj4gPiA+ICsgKiAgICAgICBlbnRyaWVzIHN0YXR1cyBhcmUgc2V0IHRvCj4gPiA+ IFhFTl9ORVRJRl9DVFJMX1NUQVRVU19JTlZBTElEX1BBUkFNRVRFUi4KPiA+ID4gKyAqICAgICAg IEl0IHdpbGwgYWxzbyBoYXZlIHRoZSBzYW1lIGVycm9yIGZvciBlbnRyaWVzIGluZmxpZ2h0IGku ZS4gdXNlZCBpbgo+ID4gPiArICogICAgICAgcmVxdWVzdHMgZm9yIHdoaWNoIGhhdmVuJ3QgYmVl biBzZW50IHJlc3BvbnNlcyB0byB0aGUgdGhlCj4gZnJvbnRlbmQuCj4gPgo+ID4gVGhpcyBsYXN0 IHBhcmFncmFwaCBpcyBhIGJpdCBnYXJibGVkLgo+IAo+IEhtbSwgc29ycnkgZm9yIHRoZSB0d2lz dGVkIGVuZ2xpc2guIEkgcmVtb3ZlZCB0aGUgaW5mbGlnaHQgcGFydCB3aGljaAo+IHdhcyBtYWtp bmcgaXQgbW9yZSBjb25mdXNpbmcgYW5kIG1hZGUgaXQgY2xlYXIgaW4gdGhlIHBhcmFncmFwaCB0 aGF0IHRoZQo+IG9ubHkgdmFsaWQgZW50cmllcyBpbiB0aGlzIG1lc3NhZ2UgYXJlIHRob3NlIGFk ZGVkIHdpdGgKPiBBRERfR1JFRl9NQVBQSU5HLiBIb3BlZnVsbHkgdGhlIHRleHQgYmVsb3cgaXQn cyBiZXR0ZXI/Cj4gCj4gTk9URTogRWFjaCBlbnRyeSBpbiB0aGUgaW5wdXQgdGFibGUgaGFzIHRo ZSBmb3JtYXQgb3V0bGluZWQgaW4gc3RydWN0Cj4geGVuX25ldGlmX2dyZWYuIFRoZSBtYXBwaW5n cyBoZXJlYnkgdXNlZCBhcmUgb25seSB0aGUgb25lcyBwcmV2aW91c2x5Cj4gYWRkZWQgd2l0aCBt ZXNzYWdlIFhFTl9ORVRJRl9DVFJMX1RZUEVfQUREX0dSRUZfTUFQUElORy4gQW55Cj4gb3RoZXIK PiBtYXBwaW5ncyB1c2VkIGhlcmUgd2lsbCBkZWxpdmVyIGFuCj4gWEVOX05FVElGX0NUUkxfU1RB VFVTX0lOVkFMSURfUEFSQU1FVEVSLgoKSSB0aGluayB0aGF0IGxhc3Qgc2VudGVuY2UgbWlnaHQg YmUgYmV0dGVyIGFzIHNvbWV0aGluZyBsaWtlOgoKJ1RoZSBlbnRyaWVzIHVzZWQgYXJlIG9ubHkg dGhlIG9uZXMgcmVwcmVzZW50aW5nIGdyYW50IHJlZmVyZW5jZXMgdGhhdCB3ZXJlIHByZXZpb3Vz bHkgdGhlIHN1YmplY3Qgb2YgYSBYRU5fTkVUSUZfQ1RSTF9UWVBFX0FERF9HUkVGX01BUFBJTkcg b3BlcmF0aW9uLiBBbnkgb3RoZXIgZW50cmllcyB3aWxsIGhhdmUgdGhlaXIgc3RhdHVzIHNldCB0 byBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVIgdXBvbiBjb21wbGV0aW9u LicKCkRvZXMgdGhhdCBzb3VuZCBvaz8KCkNoZWVycywKCiAgIFBhdWwKCj4gCj4gVGhhbmsgeW91 IQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhl bi5vcmcveGVuLWRldmVsCg==