From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tamas K Lengyel Subject: Re: [PATCH v4] altp2m: Allow the hostp2m entries to be of type p2m_ram_shared Date: Tue, 19 Jul 2016 13:12:50 -0600 Message-ID: References: <1464234910-7321-1-git-send-email-tamas@tklengyel.com> <5746D27F.5050705@citrix.com> <2009d6f1-c5dc-3fda-b943-e911ea5afc1a@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 1bPaRt-00085e-75 for xen-devel@lists.xenproject.org; Tue, 19 Jul 2016 19:12:57 +0000 Received: by mail-wm0-f49.google.com with SMTP id o80so38349180wme.1 for ; Tue, 19 Jul 2016 12:12:55 -0700 (PDT) Received: from mail-wm0-f48.google.com (mail-wm0-f48.google.com. [74.125.82.48]) by smtp.gmail.com with ESMTPSA id x62sm25316987wmf.13.2016.07.19.12.12.53 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Jul 2016 12:12:53 -0700 (PDT) Received: by mail-wm0-f48.google.com with SMTP id i5so38261863wmg.0 for ; Tue, 19 Jul 2016 12:12:53 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: George Dunlap Cc: Andrew Cooper , Ian Jackson , Jan Beulich , Xen-devel List-Id: xen-devel@lists.xenproject.org T24gVHVlLCBKdWwgMTksIDIwMTYgYXQgMTE6MTEgQU0sIEdlb3JnZSBEdW5sYXAKPGdlb3JnZS5k dW5sYXBAY2l0cml4LmNvbT4gd3JvdGU6Cj4gT24gMTgvMDcvMTYgMTg6MDYsIFRhbWFzIEsgTGVu Z3llbCB3cm90ZToKPj4+IEluY3JlbWVudGFsIGltcHJvdmVtZW50cyBhcmUgd2VsY29tZTsgYnV0 IHRoZXkgbXVzdCBub3QgY2F1c2UKPj4+IHJlZ3Jlc3Npb25zIGluIGV4aXN0aW5nIGZ1bmN0aW9u YWxpdHkuCj4+Cj4+IEV4aXN0aW5nIGZ1bmN0aW9uYWxpdHkgZG9lcyBub3QgZ2V0IGltcGFpcmVk IGJ5IHRoaXMgYXMgd2hhdCBoYXBwZW5zCj4+IHJpZ2h0IG5vdyBpcyBhIGh5cGVydmlzb3IgY3Jh c2guIEkgZG9uJ3Qgc2VlIGhvdyB0aGluZ3MgY2FuIGdldCBhbnkKPj4gd29yc3QgdGhhbiB0aGF0 Lgo+Cj4gQWxzbyBmcm9tIGFub3RoZXIgdGhyZWFkOgo+PiBJZiBhbnlvbmUgZWxzZSB3b3VsZCBo YXZlIGJlZW4gaW50ZXJlc3RlZCBpbiBnZXR0aW5nIHRoZSB0d28gc3lzdGVtcwo+PiB3b3JraW5n IHRvZ2V0aGVyIG90aGVuIHRoZW4gbWUgdGhleSBwcm9iYWJseSB3b3VsZCBoYXZlIGNvbXBsYWlu ZWQKPj4gYWxyZWFkeSB0aGF0IGhleSB0aGlzIGNyYXNoZXMgdGhlIGh5cGVydmlzb3IuIE15IHBv aW50IGJlaW5nIHRoYXQgYXQKPj4gdGhpcyBwb2ludCB0aGUgaW1wYWN0IG9mIHRoaXMgcGF0Y2gg aXMgbGlrZWx5IHJlYWxseSBsb3cuCj4KPiBGcm9tIGEgdXNlciBwZXJzcGVjdGl2ZSwgImZhaWxp bmcgaW50ZXJtaXR0ZW50bHkgaW4gc29tZSBzdHJhbmdlIGFuZAo+IHVucHJlZGljdGFibGUgd2F5 IiBpcyBkZWZpbml0ZWx5IHdvcnNlIHRoYW4gYSBoeXBlcnZpc29yIGNyYXNoLiA6LSkKPgo+IE15 IGNvbmNlcm4gaXMgdGhhdCBzb21lb25lIHdpbGwgc3RhcnQgdXNpbmcgZ3Vlc3RzIHdoaWNoIHVz ZSB0aGUgYWx0cDJtCj4gaW50ZXJmYWNlIGludGVybmFsbHksIGFuZCB0aGF0IHdpbGwgYWxsIHdv cms7IGFuZCB0aGVuIG1heWJlIHNlcGFyYXRlbHkKPiB0aGV5IHdpbGwgc3RhcnQgZG9pbmcgc29t ZSBzb3J0IG9mIG1lbW9yeSBzaGFyaW5nIGJldHdlZW4gZ3Vlc3RzLCBhbmQKPiB0aGF0IHdpbGwg YWxsIHdvcms7IGFuZCB0aGVuIGF0IHNvbWUgcG9pbnQgdGhleSdsbCBkbyBtZW1vcnkgc2hhcmlu ZyBvbgo+IGEgZ3Vlc3QgdXNpbmcgdGhlIGFsdHAybSBmdW5jdGlvbmFsaXR5IGludGVybmFsbHks IGFuZCBzdWRkZW5seSB0aGV5J2xsCj4gZ2V0IHN0cmFuZ2UgaW50ZXJtaXR0ZW50IGVycm9ycyB3 aGVyZSB0aGluZ3MgZG9uJ3QgYmVoYXZlIHRoZSB3YXkgdGhleQo+IGV4cGVjdCBhbmQgdGhleSBk b24ndCBrbm93IHdoeS4gIEEgaHlwZXJ2aXNvciBjcmFzaCB0aGF0IHRlbGxzIHRoZW0KPiBleGFj dGx5IHdoYXQgY29kZSBoYXMgdGhlIHByb2JsZW0gaXMgZGVmaW5pdGVseSBwcmVmZXJhYmxlLgoK V2VsbCwgSU1ITyB0aGF0J3Mgd2hlcmUgZG9jdW1lbnRpbmcgdGhlIGV4cGVjdGVkIHVzZS1jYXNl IGFuZCB0aGUKa25vd24gY29ybmVyLWNhc2VzIGNvbWVzIGludG8gcGxheS4KCj4KPj4+IFRoZSBj b2RlIGFzIGl0IGlzIGluIHRoZSB0cmVlIHJpZ2h0IG5vdyB3YXMgaW50ZW5kZWQgdG8gYWxsb3cg Ym90aAo+Pj4gc2hhcmluZyBhbmQgYWx0cDJtIHRvIGJlIGVuYWJsZWQgb24gdGhlIHNhbWUgZG9t YWluLCBqdXN0IG5vdCBvdmVyIHRoZQo+Pj4gc2FtZSBnZm4gcmFuZ2UuICBBbmQgaXQgd2FzIGlu dGVuZGVkIHRvIGJlIHJvYnVzdCAtLSB0aGF0IGlzLCB0aGUKPj4+IHNoYXJpbmcgY29kZSBhbmQg dGhlIGFsdHAybSBjb2RlIGRvbid0IG5lZWQgdG8gYmUgYXdhcmUgb2YgZWFjaCBvdGhlcgo+Pj4g YW5kIHRyeSBub3QgdG8gc3RlcCBvbiBlYWNoIG90aGVyJ3MgdG9lczsgZWFjaCBjYW4ganVzdCBk byBpdHMgb3duIHRoaW5nCj4+PiBhbmQgWGVuIHdpbGwgbWFrZSBzdXJlIHRoYXQgbm90aGluZyBi YWQgaGFwcGVucyAoYnkgcHJldmVudGluZyBwYWdlcwo+Pj4gd2l0aCBhbiBhbHRwMm0gZW50cnkg ZnJvbSBiZWluZyBzaGFyZWQsIGFuZCB1bnNoYXJpbmcgcGFnZXMgZm9yIHdoaWNoIGFuCj4+PiBh bHRwMm0gZW50cnkgaXMgY3JlYXRlZCkuCj4+Pgo+Pj4gSXQgc291bmRzIGxpa2UgdGhhdCdzIGJy b2tlbiByaWdodCBub3c7IGl0IHNob3VsZCB0aGVyZWZvcmUgYmUgZml4ZWQuCj4+PiBXaGVuIGl0 IGlzIGZpeGVkLCB5b3UnbGwgYmUgYWJsZSB0byB1c2UgYm90aCBhbHRwMm0gYW5kIHNoYXJpbmcg b24gdGhlCj4+PiBzYW1lIGRvbWFpbjsgWGVuIHdpbGwgc2ltcGx5IHByZXZlbnQgc2hhcmluZyBm cm9tIGhhcHBlbmluZyBvbiBnZm4KPj4+IHJhbmdlcyB3aXRoIGFsdHAybSBlbnRyaWVzLgo+Pgo+ PiBObywgdGhhdCdzIGluY29ycmVjdCwgaXQncyB0aGUgb3RoZXIgd2F5IGFyb3VuZC4gSWYgeW91 IHdlcmUgdG8gdHJ5IHRvCj4+IHNoYXJlIHBhZ2VzIGZvciB3aGljaCB5b3UgaGF2ZSBhbHRwMm0g ZW50cmllcyBpdCB3aWxsIGhhcHBpbHkgb2JsaWdlLgo+PiBJdCB3aWxsIGp1c3QgZmFpbCB0byBk byB0aGUgYWx0cDJtIGFjdGlvbnMgZm9yIGVudHJpZXMgb2Ygc2hhcmVkCj4+IGVudHJpZXMgKGNv cHlpbmcgdGhlIG1hcHBpbmcgdG8gdGhlIGFsdHAybSB2aWV3LCBtZW1fYWNjZXNzLCBldGMpLgo+ Cj4gSXQncyBxdWl0ZSBwb3NzaWJsZSBJIG1pc3NlZCBzb21ldGhpbmcsIGJ1dCB0aGF0J3Mgbm90 IGhvdyBJIHJlYWQgdGhlCj4gY29kZS4gIEJlZm9yZSBzaGFyaW5nIGEgcGFnZSB5b3UgaGF2ZSB0 byBoYXZlIHRvIGNhbGwKPiBtZW1fc2hhcmluZ19ub21pbmF0ZV9wYWdlKCksIHdoaWNoIGNhbGxz IHBhZ2VfbWFrZV9zaGFyYWJsZSgpLgo+IHBhZ2VfbWFrZV9zaGFyYWJsZSgpIHdpbGwgbWFrZSBz dXJlIHRoYXQgaXQgaGFzIGV4YWN0bHkgdGhlIGV4cGVjdGVkCj4gbnVtYmVyIG9mIHJlZmVyZW5j ZXM7IHdoaWNoIGZvciBnZm5zIGlzIDIgYW5kIGZvciBncmFudCByZWZlcmVuY2VzIGlzIDQuCj4K PiBXaGVuIHlvdSBtYXAgYW4gbWZuIGludG8gYW4gYWx0cDJtIG9mIGEgZGlmZmVyZW50IGdmbiwg eW91J2xsIGluY3JlYXNlCj4gdGhlIHJlZmVyZW5jZSBjb3VudC4gIFNvIGl0IGFwcGVhcnMgdG8g bWUgdGhhdCBpZiB5b3UgYXR0ZW1wdCB0byBzaGFyZSBhCj4gcGFnZSB3aGljaCBpcyBtYXBwZWQg aW4gYW4gYWx0cDJtLCB0aGVuIHRoZSBub21pbmF0ZSBvcGVyYXRpb24gd2lsbCBmYWlsCj4gKHdp dGggLUUyQklHLCBvZiBhbGwgdGhpbmdzKS4KPgo+IEFtIEkgbWlzdGFrZW4gYWJvdXQgdGhhdD8K CkhtLCBubyB5b3UgbWF5IGJlIHJpZ2h0LiBJIHdhcyB0aGlua2luZyBvZiB0aGUgdHlwZSBjaGVj a2luZyBvbmx5LiBJZgp0aGUgcmVmZXJlbmNlIGNvdW50IHByZXZlbnRzIHBhZ2VzIHdpdGggYWx0 MnBtIGVudHJpZXMgZnJvbSBiZWluZwpzaGFyZWQgIC0gZ29pbmcgZnJvbSBwMm1fcmFtX3J3IC0+ IHAybV9yYW1fc2hhcmVkIC0gdGhlbiBmcm9tIG15CnBlcnNwZWN0aXZlIHRoYXQgaXMgZmluZSBh bmQgSSdtIG5vdCBwbGFubmluZyBvbiBjaGFuZ2luZyB0aGF0LiBXaGF0CkknbSB0cnlpbmcgdG8g Z2V0IHdvcmtpbmcgaXMgaWYgdGhlIHR5cGUgaXMgYWxyZWFkeSBwMm1fcmFtX3NoYXJlZCBhbmQK aXMgZ29pbmcgZnJvbSBwMm1fcmFtX3NoYXJlZCAtPiBwMm1fcmFtX3J3LiBJIHdvdWxkIGFsc28g bGlrZSB0byBiZQphYmxlIHRvIGRvIG1lbV9hY2Nlc3Mgc2V0dGluZ3MgZm9yIHRoZSBwMm1fcmFt X3NoYXJlZCB0eXBlIHB0ZSBpbiBhbgphbHRwMm0gdmlldy4KCj4KPiAoQlRCIHRoaXMgd291bGQg cHJvYmFibHkgc3RpbGwgYmUgdGhlIGNhc2UgZXZlbiBhZnRlciB5b3VyIHBhdGNoLikKPgo+IEFs c28sIGFzIGZhciBhcyBJIGNhbiB0ZWxsLCAiSXQgd2lsbCBqdXN0IGZhaWwgdG8gZG8gdGhlIGFs dHAybSBhY3Rpb25zCj4gZm9yIGVudHJpZXMgb2Ygc2hhcmVkIGVudHJpZXMiIGlzIG5vdCB0cnVl OyBpbnN0ZWFkLCB0aGUgcGFnZSB3aWxsIGJlCj4gdW4tc2hhcmVkIGFuZCB0aGUgYWx0cDJtIGFj dGlvbiB3aWxsIHRoZW4gdGFrZSBwbGFjZS4gIElzIHRoaXMgbm90IHRoZSBjYXNlPwoKU28gcmln aHQgbm93IHdoZW4gdGhlIGVudHJ5IGlzIHAybV9yYW1fc2hhcmVkIGl0IHdpbGwgY3Jhc2ggdGhl Cmh5cGVydmlzb3IgYmVjYXVzZSBvZiB0aGUgbG9jayBvcmRlcmluZyBpc3N1ZSBkdXJpbmcgdW5z aGFyaW5nLiBJZiB0aGUKbG9jayBvcmRlcmluZyBpc3N1ZSBpcyBmaXhlZCwgdGhlIHVuc2hhcmlu ZyBldmVudCB3aWxsIHJlc3VsdCBpbiB0aGUKYWx0cDJtIHByb3BhZ2F0ZSBjaGFuZ2UgdGFraW5n IHRoZSBwMm0gc2V0dGluZyBmcm9tIHRoZSBob3N0cDJtIGFuZApjb3B5aW5nIGl0IHRvIGFsbCBh ZmZlY3RlZCBhbHRwMm0gdmlld3MsIG92ZXJ3cml0aW5nIGFueSBzZXR0aW5nIHRoYXQKbWF5IGhh dmUgYmVlbiBzdG9yZWQgdGhlcmUuIFRoaXMgaXMgdGhlIHNpdHVhdGlvbiB0aGF0IGNhbiBiZQpt b25pdG9yZWQgd2l0aCBtZW1fYWNjZXNzIHNvIHRoYXQgdGhlIHVzZXIgY2FuIHBlcmZvcm0gdGhl IHVuc2hhcmluZwphbmQgcmVjcmVhdGluZyB0aGUgbmVjZXNzYXJ5IGFsdHAybSBzZXR0aW5ncyBt YW51YWxseS4gV2hhdCBJIG1lYW4gaW4KdGhlIHF1b3RlZCBzZW50ZW5jZSBpcyB0aGF0IHRoZSBh bHRwMm0gb3BzIGRvIGEgdHlwZS1jaGVjayByaWdodCBub3csCnNvIGlmIHlvdSBzaGFyZWQgYSBw YWdlIGJlZm9yZSwgdGhlIHR5cGUgY2hlY2sgd2lsbCBtYWtlIGFsbCBhbHRwMm0Kb3BzIGZhaWwg b24gdGhhdCBlbnRyeS4gU28gZm9yIGV4YW1wbGUgaWYgeW91IGhhdmUgYSBzaGFyZWQgcHRlLCBh bmQKdGhlbiB0cnkgdG8gZG8gYWx0cDJtIG1lbV9hY2Nlc3Mgc2V0dGluZyBvbiBpdCwgaXQgd2ls bCBmYWlsLgoKPgo+Pj4gQW4gZXZlbiBiaWdnZXIgaW1wcm92ZW1lbnQgd291bGQgYmUgdG8gYWxs b3cgdGhlIHNhbWUgZ2ZucyB0byBiZSBzdWJqZWN0Cj4+PiBib3RoIHRvIGFsdHAybSBhbmQgc2hh cmluZyBhdCB0aGUgc2FtZSB0aW1lLiAgQnV0IHRoaXMgcmVxdWlyZXMgdGhpbmtpbmcKPj4+IGNh cmVmdWxseSBhYm91dCBhbGwgdGhlIGNvcm5lciBjYXNlcyBhbmQgbWFraW5nIHN1cmUgdGhhdCB0 aGV5IGFsbCB3b3JrCj4+PiBjb3JyZWN0bHkuCj4+Cj4+IEFuZCB0aGlzIGlzIGV4YWN0bHkgd2hh dCB0aGlzIHBhdGNoIGFsbG93cyB5b3UgdG8gZG8uIEFuIGVudHJ5IGNhbiBub3cKPj4gYmUgYm90 aCBzaGFyZWQsIGdldCBwcm9wZXJseSBjb3BpZWQgdG8gYWx0cDJtIHZpZXdzLCBhbGxvdyBzZXR0 aW5nCj4+IG1lbV9hY2Nlc3MgaW4gYWx0cDJtIHZpZXdzLCBldGMuIFRoZSBvbmx5IHNpdHVhdGlv biB5b3UgaGF2ZSB0byB0YWtlCj4+IGNvcmUgb2YgaXMgd2hlbiB0aGUgdHlwZSBvZiB0aGUgZW50 cnkgY2hhbmdlcyBmcm9tIHNoYXJlZCB0byB1bnNoYXJlZAo+PiBhcyB0aGF0IHJlc2V0cyB0aGUg YWx0cDJtIHZpZXdzLgo+Cj4gSSBkZXNjcmliZWQgYW5vdGhlciBzaXR1YXRpb24geW91IGhhdmUg dG8gYmUgY2FyZWZ1bCBvZiBpbiBhbiBlYXJsaWVyCj4gZS1tYWlsOgo+IC0gaG9zdCBnZm4gQSBp cyBtYXJrZWQgInNoYXJlZCIKPiAtIGFsdHAybSBnZm4gTyBpcyBtYXBwZWQgdG8gZ2ZuIEEgKHRo dXMgYWxzbyBtYXJrZWQgYXMgJ3NoYXJlZCcpCj4gLSBHdWVzdCB3cml0ZXMgdG8gZ2ZuIE8sIFhl biBhdHRlbXB0cyB0byB1bnNoYXJlIHRoZSBwYWdlLgo+Cj4gSW4gdGhpcyBjaXJjdW1zdGFuY2Us IHRoZSBmYXVsdCB3aWxsIGVuZHMgdXAgaW4KPiBfX21lbV9zaGFyaW5nX3Vuc2hhcmVfcGFnZSgp LCB3aGljaCB3aWxsIGNhbGxzIHJtYXBfcmV0cmlldmUoZCwgTywgbUEpLgo+IFRoaXMgcmV0dXJu cyBOVUxMIGJlY2F1c2UgZ2ZuIE8gd2FzIG5ldmVyIHB1dCBpbiB0aGUgcmV2ZXJzZSBtYXAsIGFu ZAo+IHlvdSBCVUcoKS4KPgo+IEFnYWluLCBhbSBJIG1pc3JlYWRpbmcgd2hhdCB3b3VsZCBoYXBw ZW4/CgpZZXMsIHJlbWFwcGluZyBnZm5zIHRvIHBvaW50IHRvIG90aGVyIHNoYXJlZCBlbnRyaWVz IGNhbiBnZXQgeW91IGluCnRyb3VibGUgYmVjYXVzZSB0aGUgZGVmYXVsdCB1bnNoYXJpbmcgb3Ag aW4gWGVuIGRvZXNuJ3QgaGF2ZSBhIHdheSB0bwpoYW5kbGUgdGhhdC4gSG93ZXZlciwgaXQgY2Fu IGFsc28gYmUgd29ya2VkIHdpdGggYXMgSSBzdWdnZXN0ZWQgYnkKbWFraW5nIGdmbiBPIGluIHRo ZSBhbHRwMm0gdmlldyByZWFkL2V4ZWN1dGUtb25seSB3aXRoIG1lbV9hY2Nlc3MuIEF0CnRoYXQg cG9pbnQgdGhlIGV4dGVybmFsIHVzZXIgaGFzIHRvIG9wdGlvbiB0byBzd2l0Y2ggdG8gYW5vdGhl ciB2aWV3CndoZXJlIGdmbiBPIGlzIG5vdCBwb2ludGluZyB0byBhIHNoYXJlZCBlbnRyeSwgb3Ig Y2hhbmdlIHRoZSBtYXBwaW5nCmFnYWluLCBvciBkbyBhIG51bWJlciBvZiBvdGhlciB0aGluZ3Mg dG8gcHJldmVudCB0cmlnZ2VyaW5nIHRoZSBCVUcoKS4KU28gdGhlIHF1ZXN0aW9uIGlzLCBob3cg bXVjaCBoYW5kLWhvbGRpbmcgYW5kIHJlc3RyaWN0aW9ucyB3ZSB3YW50IHRvCmFwcGx5IHRvIHBy ZXZlbnQgdXNlcnMgZnJvbSBleHBlcmltZW50aW5nIHdpdGggZXhvdGljIHNldHVwcyBoZXJlPwoK Pgo+IEknbSBwcmV0dHkgc3VyZSBpZiBJIHdlbnQgbG9va2luZyBJIGNvdWxkIGZpbmQgc29tZSBt b3JlIHNpdHVhdGlvbnMgeW91Cj4gbmVlZCB0byBhdm9pZCB0byBwcmV2ZW50IHByb2JsZW1zLgo+ Cj4gU28gdGhlIG5leHQgYmlnIG1pc3NpbmcgcGllY2Ugb2YgaW5mb3JtYXRpb24gaW4gdGhpcyBk aXNjdXNzaW9uIGlzCj4gZXhhY3RseSB3aGF0IHlvdSBkbyBuZWVkIGZyb20gdGhpcyBzeXN0ZW0u ICBZb3UncmUgdXNpbmcgYWx0cDJtIGFuZAo+IG1lbV9zaGFyaW5nIChhbmQgbWVtX2FjY2Vzcykg b24gdGhlIHNhbWUgZG9tYWluLCB0aGF0J3Mgb2J2aW91cy4gIFdoaWNoCj4gZmVhdHVyZXMgb2Yg YWx0cDJtIGFyZSB5b3UgdXNpbmcgLS0gYXJlIHlvdSBtYWlubHkgdXNpbmcgdGhlIG1lbV9hY2Nl c3MKPiBjaGFuZ2VzLCBvciBhcmUgeW91IGFsc28gdXNpbmcgdGhlIGdmbiBtYXBwaW5nIGZ1bmN0 aW9uYWxpdHk/CgpJJ20gdXNpbmcgYm90aCBtZW1fYWNjZXNzIGFuZCByZW1hcHBpbmcgaW4gYWx0 cDJtIHZpZXdzLiBIb3dldmVyLCBpbgpteSBzZXR1cCB0aGUgcmVtYXBwZWQgZW50cmllcyBhcmUg YWx3YXlzIGV4ZWN1dGUtb25seSAoaGF2ZSBoaWRkZW4KYnJlYWtwb2ludHMgaW5qZWN0ZWQpLiBJ IGFscmVhZHkgaGF2ZSB0byB0cmFwIHdoZW4gdGhlIGhvc3RwMm0gZW50cmllcwpnZXQgd3JpdGUg ZXZlbnRzIGFzIEkgbmVlZCB0byB1cGRhdGUgdGhlIHNoYWRvdyBjb3B5IGFuZCByZWFwcGx5IGFs bAp0aGUgaW5qZWN0ZWQgYnJlYWtwb2ludHMuIFNvIGZyb20gbXkgcGVyc3BlY3RpdmUgdGhlIHNo YXJpbmcgd2lsbCBqdXN0CnJlZHVjZSB0aGUgbWVtb3J5IGZvb3RwcmludCBvZiB0aGUgZG9tYWlu IGFzIHRoZSBob3N0cDJtIGVudHJ5IGNhbgpyZW1haW4gc2hhcmVkIGFzIGxvbmcgYXMgcG9zc2li bGUsIHRoZSB1bnNoYXJpbmcgaXRzZWxmIGhhdmUgbm8KbmVnYXRpdmUgaW1wYWN0IGF0IGFsbCBh cyBJIGFscmVhZHkgZG8gdGhlIGNvcHkvdXBkYXRlIG9mIHRoZSBzaGFkb3cKcGFnZSBtYW51YWxs eS4KCj4KPiBBbHNvLCBob3cgaW1wb3J0YW50IGlzIGl0IHRoYXQgcGFnZXMgdXNpbmcgYWx0cDJt IGZ1bmN0aW9uYWxpdHkgbm90IGJlCj4gdW4tc2hhcmVkIC0tIGkuZS4sIHdoYXQgcHJvcG9ydGlv biBvZiBhIGd1ZXN0J3MgcGFnZXMgZG8geW91IGV4cGVjdCB0bwo+IGJlIHNoYXJlZCwgYW5kIHdo YXQgcHJvcG9ydGlvbiBkbyB5b3UgbmVlZCB0byBwZXJmb3JtIGFsdHAybSBvcGVyYXRpb25zIG9u PwoKSSdtIGRvaW5nIGZ1bGwgVk0gZGVkdXBsaWNhdGlvbiBzbyBjbG9zZSB0byBhbGwgcGFnZXMg c3RhcnQgd2l0aApwMm1fcmFtX3NoYXJlZC4gVGh1cyBwcmV0dHkgbXVjaCBhbGwgcGFnZXMgbmVl ZCB0byBwYXNzIHRoZSBhbHRwMm0KbGF6eSBjb3B5IG9wZXJhdGlvbiB3aXRoIGEgc2hhcmVkIHBh Z2UuIEZvciB0aGUgcGFnZXMgdGhhdCBkbyBoYXZlCm1lbV9hY2Nlc3MvcmVtYXBwZWQgZW50cmll cywgSSBhbHJlYWR5IHRyYXAgd3JpdGUgZXZlbnRzIG9uIHRoZQpob3N0cDJtIHNvIEkgY2FuIGRv IHRoZSB1bnNoYXJpbmcgbWFudWFsbHkgKG1tYXBpbmcgdGhlIGhvc3RwMm0gcGFnZQp0aGF0IHdp bGwgdW5zaGFyZSArIG92ZXJ3cml0ZSBhbGwgYWZmZWN0ZWQgYWx0cDJtIHZpZXdzKS4gRnJvbSB0 aGVyZSBJCmNhbiByZWFwcGx5IGFueSBuZWNlc3NhcnkgbWVtX2FjY2Vzcy9yZW1hcHBpbmcgd2l0 aG91dCBhbnkgcHJvYmxlbXMuCgo+Cj4gU28gdGhlcmUgYXJlIHNldmVyYWwgdGhpbmdzIHdlIGNv dWxkIGRvIGhlcmU6Cj4KPiAxLiBBbGxvdyBtZW1fc2hhcmluZyBhbmQgYWx0cDJtIGZ1bmN0aW9u YWxpdHkgY28tZXhpc3RpbmcgYnkgYXZvaWRpbmcKPiBlYWNoIG90aGVyOiB0aGUgc2FtZSBkb21h aW4gY2FuIHVzZSBib3RoLCBidXQgdGhlIHNhbWUgZ2ZuIGNhbm5vdCBiZQo+IGJvdGggc2hhcmVk IGFuZCBoYXZlIGFsdHAybSBlbnRyaWVzLiAgVGhpcyBpcyBlc3NlbnRpYWxseSBmaXhpbmcgdGhl IGJ1Zwo+IGluIHRoZSBjdXJyZW50IGNvZGU6IEFkZGluZyBhbiBhbHRwMm0gdG8gYSBnZm4gdW5z aGFyZXMgaXQ7IGFuZCBnZm5zCj4gd2hpY2ggaGF2ZSBhbHRwMm0gZW50cmllcyBjYW5ub3QgYmUg c2hhcmVkLgo+Cj4gVGhpcyBzaG91bGQsIEkgKnRoaW5rKiwgYmUgZmFpcmx5IHN0cmFpZ2h0Zm9y d2FyZDsgaXQgbWlnaHQgZXZlbiBvbmx5Cj4gcmVxdWlyZSB0aGUgbG9jay1yZW9yZGVyaW5nIHBh cnQgb2YgeW91ciBwYXRjaC4KPgo+IElmIHlvdXIgdXNlLWNhc2Ugb25seSB1c2VzIGFsdHAybSBm dW5jdGlvbmFsaXR5IG9uIGEgc21hbGwgbnVtYmVyIG9mCj4gcGFnZXMsIHRoZW4gdGhpcyBtaWdo dCBiZSBhIG5vdC10b28tZGlmZmljdWx0IG9wdGlvbiB0aGF0IHdvdWxkIHNvbHZlCj4geW91ciBw cm9ibGVtIHdoaWxlIG5vdCBpbnRyb2R1Y2luZyBhbnkgcGl0ZmFsbHMgZm9yIGZ1dHVyZSB1c2Vy cyB0byBhbGwKPiBpbnRvLiAgSWYgeW91ciB1c2UgY2FzZSByZXF1aXJlcyBsYXJnZSBhbW91bnRz IG9mIHNoYXJpbmcgKmFuZCogbGFyZ2UKPiBhbW91bnRzIG9mIGFsdHAybSBlbnRyaWVzLCB0aGlz IGlzIHByb2JhYmx5IG5vdCBnb2luZyB0byB3b3JrIGZvciB5b3UuCgpXZWxsLCB0aGlzIGlzIG5v dCBhcyBzaW1wbGUgYXMgdGhhdC4gVGhlIGFsdHAybSBsYXp5LWNvcHkgb3BlcmF0aW9uCmF1dG9t YXRpY2FsbHkgcG9wdWxhdGVzIHRoZSBjdXJyZW50bHkgYWN0aXZlIGFsdHAybSB2aWV3IGJ5IGNv cHlpbmcKdGhlIHB0ZSBmcm9tIHRoZSBob3N0cDJtLiBUaGlzIG9wZXJhdGlvbiBtdXN0IHN1Y2Nl ZWQgZm9yIG15IHVzZWNhc2UKd2l0aCBzaGFyZWQgcGFnZXMuIEFzIGZvciBhcHBseWluZyBtZW1f YWNjZXNzIHBlcm1pc3Npb25zIGluIGFsdHAybQp2aWV3cyByZXN1bHRpbmcgaW4gYXV0b21hdGlj IHVuc2hhcmluZywgdGhpcyBpcyBnb2luZyB0byByZXN1bHQgaW4gYQpnb29kIGNodW5rIG9mIHBh Z2VzIGJlaW5nIHVuc2hhcmVkIGZvciBubyByZWFzb24gb3RoZXIgdGhlbiB0aGUgZmFjdAp0aGF0 IHRoZSBleHRlcm5hbCB1c2VyIGhhcyB0byBiZSBwcmVwYXJlZCB0byBoYW5kbGUgdGhlIHVuc2hh cmluZwptYW51YWxseSBhcyBJIGRlc2NyaWJlZCwgYnV0IEkgY2FuIGxpdmUgd2l0aCB0aGF0LCBp dCdzIHN0aWxsIGJldHRlcgp0aGVuIG5vdGhpbmcuIFByZXZlbnRpbmcgcmVtYXBwaW5nIHBvaW50 aW5nIHRvIGEgc2hhcmVkIHBhZ2UgSSBjYW4KbGl2ZSB3aXRoLCB0aGlzIGlzIG5vdCBwYXJ0IG9m IG15IHVzZWNhc2UuCgo+IDIuIEFsbG93IG1lbV9zaGFyaW5nIG9uIGFsdHAybSBlbnRyaWVzIHdp dGggbGltaXRlZCBmdW5jdGlvbmFsaXR5Lgo+IFNwZWNpZmljYWxseTogRG8gbm90IHVuc2hhcmUg aWYgYW4gYWx0cDJtIGVudHJ5IG9ubHkgaGFzIG1lbV9hY2Nlc3MKPiByZXN0cmljdGlvbnMgc2V0 OyBvbmx5IHVuc2hhcmUgaXQgaWYgdGhlIGdmbiBpcyByZW1hcHBlZC4KPgo+IFRoaXMgd291bGQg cmVxdWlyZSBzb21lIHZlcnkgY2FyZWZ1bCB0aGlua2luZyBhYm91dCB0aGUgZGlmZmVyZW50IGNv cm5lcgo+IGNhc2VzIHRoYXQgbWlnaHQgaGFwcGVuLCBidXQgSSBkb24ndCB0aGluayBpdCB3b3Vs ZCBiZSBxdWl0ZSB0aGUgbW9yYXNzCj4gdGhhdCBmdWxsIGFsdHAybSBzdXBwb3J0ICh3aXRoIGdm biByZW1hcHBpbmcpIHdvdWxkIGludm9sdmUuCj4KPiBJZiB5b3VyIHVzZS1jYXNlIG9ubHkgdXNl cyB0aGUgbWVtX2FjY2VzcyBhbHRwMm0gZnVuY3Rpb25hbGl0eSwgdGhpcwo+IG1pZ2h0IGJlIGEg c29sdXRpb24gdGhhdCdzIGEgcmVhc29uYWJsZSBhbW91bnQgb2Ygd29yay4KClRoaXMgaXMgbm90 IGxpa2VseSB0byBiZSBhIHdvcmthYmxlIHNldHVwIGZvciBteSB1c2VjYXNlLgoKPgo+IDMuIEFs bG93IG1lbV9zaGFyaW5nIG9uIGFsdHAybSBlbnRyaWVzIHdpdGggZnVsbCBmdW5jdGlvbmFsaXR5 IGluIGEKPiByb2J1c3QgbWFubmVyLCBtYWtpbmcgc3VyZSBhbGwgdGhlIGNvcm5lciBjYXNlcyBh cmUgaGFuZGxlZCBjb3JyZWN0bHkuCj4KPiBUaGlzIHdvdWxkIG9idmlvdXNseSBiZSBxdWl0ZSBh IGJpdCBtb3JlIHdvcmsuICBJIGRvbid0IHRoaW5rIGl0IHdvdWxkCj4gYWN0dWFsbHkgYmUgd2Fz dGVkLCBzaW5jZSBpdCBzaG91bGQgYWxsb3cgeW91IHRvIGhhdmUgZnVsbCBzaGFyaW5nIGFuZAo+ IGZ1bGwgYWx0cDJtIGFjY2VzcyB3aXRob3V0IHlvdXIgZG9tMCBjb2RlIGhhdmluZyB0byB3b3Jy eSBhYm91dCBhbGwgdGhlCj4gY29ybmVyIGNhc2VzIGFuZCBpbnRlcmFjdGlvbnMuICBCdXQgSSBj YW4gY2VydGFpbmx5IHNlZSB3aHkgeW91J3JlIG5vdAo+IGtlZW4gb24gdGhlIHByb3NwZWN0IG9m IGRvaW5nIHNvLgoKUmlnaHQsIHRoaXMgd291bGQgYmUgdGhlIHVsdGltYXRlIGdvYWwuIEhvd2V2 ZXIsIHJlYWxpc3RpY2FsbHkgdGhpcyBpcwpub3QgZ29pbmcgdG8gaGFwcGVuIGR1ZSB0byBob3cg bXVjaCB0aW1lIGFuZCBlZmZvcnQgaXQgaW52b2x2ZXMuCgo+Cj4gNC4gQWxsb3cgbWVtX3NoYXJp bmcgb24gYWx0cDJtIGVudHJpZXMgd2l0aCBmdWxsIGZ1bmN0aW9uYWxpdHksIGJ1dCB3aXRoCj4g Y29ybmVyIGNhc2VzIHRoZSB1c2VyIG9mIHRob3NlIGludGVyZmFjZXMgbXVzdCBhdm9pZCBvciBt aXRpZ2F0ZTsgYW5kIG5vCj4gcmVzdHJpY3Rpb25zLgo+Cj4gVGhpcyBpcyB3aGF0IHlvdXIgY3Vy cmVudCBwYXRjaCBkb2VzOyBhbmQgYXMgSSd2ZSBzYWlkLCBJIGRvbid0IHRoaW5rCj4gdGhpcyBp cyBzdWl0YWJsZSBiZWNhdXNlIGl0IGxheXMgYSB0cmFwIGZvciBmdXR1cmUgcGVvcGxlIHRvIGZh bGwgaW50bwo+IGlmIHRoZXkgZW5kIHVwIGVuYWJsaW5nIGJvdGguCj4KPiBCdXQgYWZ0ZXIgYSBk aXNjdXNzaW9uIHdpdGggSWFuSiwgSSd2ZSBnb3QgYSBjb3VwbGUgb2YgdmFyaWF0aW9ucyBvZgo+ IHRoaXMgb25lLiAgVGhlIHZhcmlhdGlvbnMgYWxsIGludm9sdmUgZGlmZmVyZW50IHdheXMgb2Yg bWFraW5nIHN1cmUgdGhhdAo+IHRoZSAiZnVsbCBmdW5jdGlvbmFsaXR5IiBpcyBvbmx5IGF2YWls YWJsZSB3aGVuIHRoZXJlIGlzIGEgY2FsbGVyIHRoYXQKPiBrbm93cyBhYm91dCB0aGUgcmlza3Mg YW5kIHdpbGwgYWN0aXZlbHkgdHJ5IHRvIGF2b2lkIHRoZW0uCj4KPiA0YS4gQWRkIGEgcGVyLWRv bWFpbiBmbGFnIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGFsbG93ICJ1bnNhZmUiIGFsdHAybSAvCj4g bWVtX3NoYXJpbmcgaW50ZXJhY3Rpb25zLiAgSWYgaXQncyBjbGVhciwgdGhlbiBvbmx5ICJzYWZl IiBvcGVyYXRpb25zCj4gYXJlIGFsbG93ZWQgKGkuZS4sIGl0IHdvdWxkIHN0YXJ0IHdpdGggIzEs IGJ1dCBpZiBzb21lb25lIHdhbnRlZCB0aGV5Cj4gY291bGQgaW1wbGVtZW50ICMyIG9yICMzKS4g IElmIGl0J3Mgc2V0LCB0aGVuIHRoaW5ncyBiZWhhdmUgYXMgaW4gIzQuCj4gKFdlIHByb2JhYmx5 IHNob3VsZCB0cnkgdG8gcHJldmVudCBoeXBlcnZpc29yIGNyYXNoZXMgZHVlIHRvIHVuc2hhcmlu Zwo+IGV2ZW50cywgaG93ZXZlci4pCj4KPiA0Yi4gSW4gdGhlIGFsdHAybSBjb2RlLCBhcyAjNDsg YnV0IGFkZCBjb2RlIHNvbWV3aGVyZSBlbHNlIHRvIHByZXZlbnQKPiB0aGUgZW50aXJlIGZlYXR1 cmVzIGZyb20gYmVpbmcgdHVybmVkIG9uIGluIGEgZG9tYWluIHVubGVzcyB0aGUgInVuc2FmZSIK PiBvcHRpb24gaXMgcmVxdWVzdGVkLiAgVGhhdCBpcywgYnkgZGVmYXVsdCBhIGd1ZXN0IHdpdGgg bWVtX3NoYXJpbmcKPiBlbmFibGVkIHdvdWxkIG5vdCBiZSBhYmxlIHRvIHVzZSBhbHRwMm0gYXQg YWxsOyBhbmQgYSBndWVzdCB3aXRoIGFsdHAybQo+IGVuYWJsZWQgd291bGQgbm90IGJlIGFibGUg dG8gdXNlIG1lbV9zaGFyaW5nIGF0IGFsbC4gIE9ubHkgd2l0aCB0aGUKPiAidW5zYWZlIiBmbGFn IHNldCB3b3VsZCBiZSBhbGxvd2VkIHRvIGhhdmUgYm90aCBhbHRwMm0gYW5kIG1lbV9zaGFyaW5n Cj4gZW5hYmxlZCBhdCB0aGUgc2FtZSB0aW1lLgo+Cj4gQm90aCA0YSBhbmQgNGIgc2VlbSBsaWtl IHRoZXkgd291bGQgYmUgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgdG8KPiBpbXBsZW1lbnQ7 IGxpa2UgdGhleSB3b3VsZCBmaXQgeW91ciB1c2UgY2FzZSwgYnV0IGF2b2lkIGxheWluZyBhIHRy YXAKPiBmb3IgcGVvcGxlIGluIHRoZSBmdXR1cmUuCj4KPiBXaGF0IGRvIHlvdSB0aGluayBhYm91 dCB0aG9zZSBvcHRpb25zPwo+Cj4gSWYgIzEgaXMgYWNjZXB0YWJsZSB0byB5b3UsIEkgY29udGlu dWUgdG8gdGhpbmsgdGhhdCdzIHByb2JhYmx5IHRoZQo+IGNvbWJpbmF0aW9uIG9mIG1vc3Qgcm9i dXN0IGFuZCBzaW1wbGVzdCB0byBhY2hpZXZlLiAgSSB3b3VsZCByZWNvbW1lbmQgMgo+IGFib3Zl IDRhIGFuZCA0YiBpZiBmZWFzaWJsZTsgYW5kIGlmIG5vdCwgSSB3b3VsZCBwcm9iYWJseSBjaG9v c2UgNGEgb3Zlcgo+IDRiIGJlY2F1c2UgaXQgYWxsb3dzIGZvciBpbmNyZW1lbnRhbCBpbXByb3Zl bWVudC4gIEJ1dCBhbnkgb2YgezEsIDIsIDRhLAo+IDRifSB3b3VsZCB3b3JrIGZvciBtZS4KPgoK TGV0J3MgdHJ5IHRvIGZpZ3VyZSBvdXQgaWYgd2UgY2FuIGdldCAjMSBpbiBhbiBhY2NlcHRhYmxl IHNoYXBlLiBUaGUKb25seSBwb2ludCB3aGVyZSBjb21wbGV0ZWx5IGF2b2lkaW5nIGVhY2ggb3Ro ZXIgaXMgbm90IHBvc3NpYmxlIGlzCmR1cmluZyB0aGUgbGF6eSBjb3B5IG9wZXJhdGlvbiB3aGVy ZSBhbHRwMm0gY29waWVzIHRoZSBzZXR0aW5ncyB0byB0aGUKY3VycmVudGx5IGFjdGl2ZSB2aWV3 LiBBcyBsb25nIGFzIHRoZXJlIGFyZSBubyBtZW1fYWNjZXNzL3JlbWFwcGluZwpnb2luZyBvbiBm b3IgdGhlIHB0ZSwgdGhlIGRlZmF1bHQgdW5zaGFyaW5nIG9wZXJhdGlvbiBhbmQgY29weWluZyB0 bwp0aGUgYWx0cDJtIHZpZXcgImp1c3Qgd29ya3MiLiBBcyBmb3IgdGhlIG90aGVyIGFsdHAybSBj YXNlcywgSSBjYW4KbGl2ZSB3aXRoIHVuc2hhcmluZyB0aGUgZ2ZuJ3MgYW5kIGFsc28gcHJldmVu dGluZyBzaGFyaW5nIHRvIGJlCnBlcmZvcm1lZCBvbiB0aGVtIHN1YnNlcXVlbnRseS4KClRoYW5r cywKVGFtYXMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=