From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Edgar E. Iglesias" Subject: Re: [RFC v2] xen/arm: Suspend to RAM Support in Xen for ARM Date: Mon, 26 Mar 2018 13:42:49 +0200 Message-ID: <20180326114249.GH26265@toto> References: <20171222174137.30076-1-mirela.simonovic@aggios.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Peng Fan Cc: "sstabellini@kernel.org" , Mirela Simonovic , "julien.grall@linaro.org" , "xen-devel@lists.xen.org" List-Id: xen-devel@lists.xenproject.org T24gTW9uLCBNYXIgMjYsIDIwMTggYXQgMDk6NTE6NDBBTSArMDAwMCwgUGVuZyBGYW4gd3JvdGU6 Cj4gSGkgTWlyZWxhLAo+IAo+IEdvb2QgdG8ga25vdyB0aGF0IHlvdSBhcmUgd29ya2luZyBzdXNw ZW5kL3Jlc3VtZSBzdXBwb3J0LiBDdXJyZW50bHkgd2UgYXJlIGFsc28gdHJ5aW5nCj4gdG8gc3Vw cG9ydCB0aGlzIG9uIGkuTVg4LCBqdXN0IHdvbmRlciBkbyB5b3UgaGF2ZSBhbnkgb3BlbiBzb3Vy Y2UgYXZhaWxhYmxlIHRvCj4gc3VwcG9ydCBzdXNwZW5kIHRvIHJhbT8KPiAKPiA+ICsKPiA+ICtT dXNwZW5kIHRvIFJBTSAoaW4gdGhlIGZvbGxvd2luZyB0ZXh0ICdzdXNwZW5kJykgZm9yIEFSTSBp biBYZW4gc2hvdWxkCj4gPiArYmUgY29vcmRpbmF0ZWQgdXNpbmcgQVJNIFBTQ0kgc3RhbmRhcmQg WzFdLgo+ID4gKwo+ID4gK0lkZWFsbHksIEVMMS8yIHNob3VsZCBzdXNwZW5kIGluIHRoZSBmb2xs b3dpbmcgb3JkZXI6Cj4gPiArMSkgVW5wcml2aWxlZ2VkIGd1ZXN0cyAoRG9tVXMpIHN1c3BlbmQK PiA+ICsyKSBQcml2aWxlZ2VkIGd1ZXN0IChEb20wKSBzdXNwZW5kcwo+ID4gKzMpIFhlbiBzdXNw ZW5kcwo+ID4gKwo+ID4gK0hvd2V2ZXIsIHN1c3BlbmRpbmcgdW5wcml2aWxlZ2VkIGd1ZXN0cyBp cyBub3QgbWFuZGF0b3J5IGZvciBzdXNwZW5kaW5nCj4gPiArRG9tMCBhbmQgWGVuLiBTeXN0ZW0g c3VzcGVuZCBpbml0aWF0ZWQgYnkgRG9tMCAoc3RlcCAyKSBpcyBjb25zaWRlcmVkCj4gPiArdG8g YmUgYW4gdWx0aW1hdGUgZGVjaXNpb24gdG8gc3VzcGVuZCB0aGUgcGh5c2ljYWwgbWFjaGluZS4g U3VzcGVuZGluZwo+ID4gK29mIFhlbiAoc3RlcCAzKSBpcyB0cmlnZ2VyZWQgd2hlbmV2ZXIgRG9t MCBjb21wbGV0ZXMgc3VzcGVuZC4gWGVuCj4gPiArc3VzcGVuZCBsZWFkcyB0byB0aGUgZnVsbCBz dXNwZW5kIG9mIEVMMi4KPiA+ICsKPiA+ICtJZiBhbiB1bnByaXZpbGVnZWQgZ3Vlc3QgaXMgbm90 IHN1c3BlbmRlZCBhdCB0aGUgbW9tZW50IHdoZW4gRG9tMAo+ID4gK2luaXRpYXRlcyBpdHMgb3du IHN1c3BlbmQsIHRoZSBndWVzdCB3aWxsIGJlIHBhdXNlZCBvbiBYZW4ncyBzdXNwZW5kCj4gPiAr YW5kIHVucGF1c2VkIG9uIFhlbidzIHJlc3VtZS4gVGhhdCB3YXksIGEgZ3Vlc3Qgd2hpY2ggZG9l c24ndCBoYXZlCj4gPiArcG93ZXIgbWFuYWdlbWVudCBzdXBwb3J0IGNhbm5vdCBwcmV2ZW50IHRo ZSBwaHlzaWNhbCBzeXN0ZW0gZnJvbQo+ID4gK3N1c3BlbmRpbmcgd2hlbiB0aGUgZGVjaXNpb24g dG8gc3VzcGVuZCBpcyBtYWRlIGJ5IHByaXZpbGVnZWQgc29mdHdhcmUKPiA+IChEb20wKS4KPiA+ ICsKPiA+ICtFYWNoIGd1ZXN0IGluIHRoZSBzeXN0ZW0gaXMgcmVzcG9uc2libGUgZm9yIHN1c3Bl bmRpbmcgdGhlIGRldmljZXMgaXQgb3ducy4KPiA+ICtJZiBhIGd1ZXN0IGRvZXMgbm90IHN1c3Bl bmQgYSBkZXZpY2UsIHRoZSBkZXZpY2Ugd2lsbCBjb250aW51ZSB0bwo+ID4gK29wZXJhdGUgYXMg aXQgaXMgY29uZmlndXJlZCBhdCB0aGUgbW9tZW50IHdoZW4gdGhlIHN5c3RlbSBzdXNwZW5kcy4g SWYKPiA+ICthIGRldmljZSB0cmlnZ2VycyBhbiBpbnRlcnJ1cHQgd2hpbGUgdGhlIHBoeXNpY2Fs IHN5c3RlbSBpcyBzdXNwZW5kZWQsIHRoZQo+ID4gc3lzdGVtIHdpbGwgcmVzdW1lLgo+ID4gKwo+ ID4gK0l0IGlzIHJlY29tbWVuZGVkIGZvciBhbiB1bnByaXZpbGVnZWQgZ3Vlc3QgdG8gcGFydGlj aXBhdGUgaW4gcG93ZXIKPiA+ICttYW5hZ2VtZW50IGluIHRoZSBmb2xsb3dpbmcgc2NlbmFyaW86 Cj4gPiArQXNzdW1lIHVucHJpdmlsZWdlZCBndWVzdCBvd25zIGEgZGV2aWNlIHdoaWNoIHdpbGwg dHJpZ2dlciBpbnRlcnJ1cHQgYXQKPiA+ICtzb21lIHBvaW50LiBUaGlzIGludGVycnVwdCB3aWxs IHdha2UtdXAgdGhlIHN5c3RlbS4gSWYgc3VjaCBhIGJlaGF2aW9yCj4gPiAraXMgbm90IHdhbnRl ZCwgY29vcmRpbmF0aW9uIGJldHdlZW4gRG9tMCBhbmQgdGhlIGd1ZXN0IGlzIHJlcXVpcmVkIGlu Cj4gPiArb3JkZXIgdG8gaW5mb3JtIHRoZSBndWVzdCBhYm91dCB0aGUgaW50ZW5kZWQgcGh5c2lj YWwgc3lzdGVtIHN1c3BlbmQuCj4gPiArVGhlbiwgdGhlIGd1ZXN0IHdpbGwgaGF2ZSBhIGNoYW5j ZSB0byBzdXNwZW5kIHRoZSBkZXZpY2Ugb3IgcmVzcG9uZCB0byB0aGUKPiA+IHJlcXVlc3QgaW4g YW4gYWJvcnQgZmFzaGlvbi4KPiA+ICsKPiA+ICtTaW5jZSB0aGlzIHByb3Bvc2FsIGlzIGZvY3Vz ZWQgb24gaW1wbGVtZW50aW5nIFBTQ0ktYmFzZWQgc3VzcGVuZAo+ID4gK21lY2hhbmlzbXMgaW4g WGVuLCBjb21tdW5pY2F0aW9uIHdpdGggb3IgYW1vbmcgdGhlIGd1ZXN0cyBpcyBub3QgY292ZXJl ZCBieQo+ID4gdGhpcyBkb2N1bWVudC4KPiA+ICtUaGUgb3JkZXIgb2Ygc3VzcGVuZGluZyB0aGUg Z3Vlc3RzIGlzIGFzc3VtZWQgdG8gYmUgZ3VhcmFudGVlZCBieSB0aGUKPiA+ICtzb2Z0d2FyZSBy dW5uaW5nIGluIEVMMS4KPiA+ICsKPiA+ICtUaGlzIGRvY3VtZW50IGNvdmVycyB0aGUgZm9sbG93 aW5nOgo+ID4gKzEpIE1lY2hhbmlzbSBmb3Igc3VzcGVuZGluZy9yZXN1bWluZyBhIGd1ZXN0Ogo+ ID4gKwkxLjEpIFN1c3BlbmQgaXMgaW5pdGlhdGVkIGJ5IHRoZSBndWVzdAo+ID4gKwkxLjIpIFJl c3VtZSBpcyBpbml0aWF0ZWQgYnkgYSBkZXZpY2UgaW50ZXJydXB0Cj4gPiArMikgTWVjaGFuaXNt IGZvciBwYXVzaW5nL3VucGF1c2luZyBydW5uaW5nIGd1ZXN0cyB3aGVuIERvbTAgc3VzcGVuZHMK PiAKPiBXaWxsIHRoaXMgdGFrZSBjYXJlIG9mIHBhc3N0aHJvdWdoZWQgZGV2aWNlcyBmb3IgRG9t VT8KCkhpIFBlbmcsCgpUaGUgWnlucU1QIHVzZXMgdGhlIEVFTUkgRmlybXdhcmUgaW50ZXJmYWNl IHRvIGRvIHBvd2VyLW1hbmFnZW1lbnQuCmh0dHBzOi8vd3d3LnhpbGlueC5jb20vc3VwcG9ydC9k b2N1bWVudGF0aW9uL3VzZXJfZ3VpZGVzL3VnMTIwMC1lZW1pLWFwaS5wZGYKCkluIG91ciBjYXNl LCB3ZSd2ZSBpbXBsZW1lbnRlZCBhbiBFRU1JIG1lZGlhdG9yIGluIFhlbiB0aGF0IHRyYXBzIEVF TUkKcmVxdWVzdHMgZnJvbSBkb21VJ3MgYW5kIG1ha2VzIHN1cmUgdGhhdCB0aGUgZ3Vlc3Qgb3du cyB0aGUgZGV2aWNlIGl0CmlzIHRyeWluZyB0byBvcGVyYXRlIG9uLgpodHRwczovL2dpdGh1Yi5j b20vWGlsaW54L3hlbi9ibG9iL3hpbGlueC9zdGFibGUtNC45L3hlbi9hcmNoL2FybS9wbGF0Zm9y bXMveGlsaW54LXp5bnFtcC1lZW1pLmMKClNvIGRvbVUgd2lsbCBmaXJzdCBpc3N1ZSB0aGUgdXN1 YWwgRUVNSSBjYWxscyBhcyBpdCB3b3VsZCBpbiBhIG5vbi12aXJ0dWFsaXplZApjYXNlIHRvIHN1 c3BlbmQgYWxsIGl0J3MgZGV2aWNlcy4gT25jZSB0aGF0IGhhcyBoYXBwZW5lZCwgdGhlIGd1ZXN0 IHdpbGwgaXNzdWUKUFNDSSBjYWxscyB0byBzdXNwZW5kIHRoZSBWTS4gU28sIE1pcmVsYSBwbGVh c2Ugc2hpbSBpbiBpZiBJIG1pc3NlZCBzb21ldGhpbmcuCgpUaGUgRUVNSSBtZWRpYXRvciBoYXMg YmVlbiBwb3N0ZWQgdG8gdGhlIE1MIGJ1dCBpcyBjdXJyZW50bHkgc2l0dGluZyBpbiBvdXIKdHJl ZSB3YWl0aW5nIGZvciB1cyB0byBnbyB0aHJvdWdoIHRoZSB1cHN0cmVhbWluZyBlZmZvcnQuCgpD aGVlcnMsCkVkZ2FyCgoKCgo+IAo+IFRoYW5rcywKPiBQZW5nLgo+IAo+ID4gKzMpIE1lY2hhbmlz bSBmb3Igc3VzcGVuZGluZy9yZXN1bWluZyBYZW4gd2hlbiBEb20wIGNvbXBsZXRlcyBzdXNwZW5k Cj4gPiArNCkgUmVzdW1pbmcgZnJvbSBhbnkgc3RhdGUgb24gYSB3YWtlLXVwIGV2ZW50IChkZXZp Y2UgaW50ZXJydXB0KToKPiA+ICsJNC4xKSBSZXN1bWUgRG9tVSBvbiB3YWtlLXVwIGV2ZW50IHdo ZW4gRG9tMCBpcyBzdGlsbCBydW5uaW5nCj4gPiArCTQuMikgUmVzdW1lIERvbVUgb24gd2FrZS11 cCBldmVudCB3aGVuIFhlbiBpcyBzdXNwZW5kZWQKPiA+ICsJNC4zKSBSZXN1bWUgRG9tMCBvbiB3 YWtlLXVwIGV2ZW50Cj4gPiArCj4gPiArTWVjaGFuaXNtcyBlbnVtZXJhdGVkIGFib3ZlIHdpbGwg YWxsb3cgZGlmZmVyZW50IGtpbmQgb2YgcG9saWNpZXMgYW5kCj4gPiArY29vcmRpbmF0aW9uIGFt b25nIGd1ZXN0cyB0byBiZSBpbXBsZW1lbnRlZCBpbiBFTDEuIFRoYXQgaXMgb3V0IG9mIHRoZQo+ ID4gK3Njb3BlIG9mIHRoaXMgZG9jdW1lbnQuCj4gPiArCj4gPiArLS0tLS0tLS0tLS0tLS0tLS0K PiA+ICtTdXNwZW5kaW5nIEd1ZXN0cwo+ID4gKy0tLS0tLS0tLS0tLS0tLS0tCj4gPiArCj4gPiAr U3VzcGVuZCBwcm9jZWR1cmUgZm9yIGEgZ3Vlc3QgY29uc2lzdHMgb2YgdGhlIGZvbGxvd2luZzoK PiA+ICsxKSBTdXNwZW5kaW5nIGRldmljZXMKPiA+ICsyKSBTdXNwZW5kaW5nIG5vbi1ib290IENQ VXMgKGJhc2VkIG9uIGhvdHBsdWcvUFNDSSkKPiA+ICszKSBTeXN0ZW0gc3VzcGVuZCwgcGVyZm9y bWVkIGJ5IHRoZSBib290IENQVQo+ID4gKwo+ID4gK0VhY2ggZ3Vlc3Qgc2hvdWxkIHN1c3BlbmQg dGhlIGRldmljZXMgaXQgb3ducyBqdXN0IGxpa2UgaXQgd291bGQgd2hlbgo+ID4gK3J1bm5pbmcg d2l0aG91dCBYZW4uCj4gPiArCj4gPiArR3Vlc3RzIHNob3VsZCBzdXNwZW5kIHRoZWlyIG5vbi1i b290IHZDUFVzIHVzaW5nIHRoZSBob3RwbHVnIG1lY2hhbmlzbS4KPiA+ICtWaXJ0dWFsIENQVXMg c2hvdWxkIGJlIHB1dCBvZmZsaW5lIHVzaW5nIHRoZSBhbHJlYWR5IGltcGxlbWVudGVkIFBTQ0kK PiA+ICt2Q1BVX09GRiBjYWxsIChwcmVmaXggJ3YnIGlzIGFkZGVkIHRvIGRpc3Rpbmd1aXNoIFBT Q0kgY2FsbHMgbWFkZSBieQo+ID4gK2d1ZXN0cyB0byBYZW4sIHdoaWNoIGFmZmVjdCB2aXJ0dWFs IG1hY2hpbmVzOyBhcyBvcHBvc2VkIHRvIFBTQ0kgY2FsbHMKPiA+ICttYWRlIGJ5IFhlbiB0byB0 aGUgRUwzLCB3aGljaCBjYW4gYWZmZWN0IHBvd2VyIHN0YXRlIG9mIHRoZSBwaHlzaWNhbAo+ID4g bWFjaGluZSkuCj4gPiArCj4gPiArQWZ0ZXIgc3VzcGVuZGluZyBpdHMgbm9uLWJvb3QgdkNQVXMg YSBndWVzdCBzaG91bGQgZmluYWxpemUgdGhlIHN1c3BlbmQKPiA+ICtieSBtYWtpbmcgdGhlIHZT WVNURU1fU1VTUEVORCBQU0NJIGNhbGwuIFRoZSByZXN1bWUgYWRkcmVzcyBpcwo+ID4gK3NwZWNp ZmllZCBieSB0aGUgZ3Vlc3QgdmlhIHRoZSB2U1lTVEVNX1NVU1BFTkQgZW50cnlfcG9pbnRfYWRk cmVzcwo+ID4gK2FyZ3VtZW50LiBUaGUgdlNZU1RFTV9TVVNQRU5EIGNhbGwgaXMgY3VycmVudGx5 IG5vdCBpbXBsZW1lbnRlZCBpbiBYZW4uCj4gPiArCj4gPiArSXQgaXMgZXhwZWN0ZWQgdGhhdCBh IGd1ZXN0IGxlYXZlcyBlbmFibGVkIGFsbCBpbnRlcnJ1cHRzIHRoYXQgc2hvdWxkCj4gPiArd2Fr ZSBpdCB1cC4gT3RoZXIgaW50ZXJydXB0cyBzaG91bGQgYmUgZGlzYWJsZWQgYnkgdGhlIGd1ZXN0 IHByaW9yIHRvCj4gPiArY2FsbGluZyB2U1lTVEVNX1NVU1BFTkQuCj4gPiArCj4gPiArQWZ0ZXIg YW4gdW5wcml2aWxlZ2VkIGd1ZXN0IHN1c3BlbmRzLCBYZW4gd2lsbCBub3Qgc3VzcGVuZC4gWGVu IHdvdWxkCj4gPiArc3VzcGVuZCBvbmx5IGFmdGVyIHRoZSBEb20wIGNvbXBsZXRlcyB0aGUgc3lz dGVtIHN1c3BlbmQuCj4gPiArCj4gPiArLS0tLS0tLS0tLS0tLS0KPiA+ICtTdXNwZW5kaW5nIFhl bgo+ID4gKy0tLS0tLS0tLS0tLS0tCj4gPiArCj4gPiArWGVuIHNob3VsZCBzdGFydCBzdXNwZW5k aW5nIGl0c2VsZiB1cG9uIHJlY2VpdmluZyB0aGUgdlNZU1RFTV9TVVNQRU5ECj4gPiArY2FsbCBm cm9tIHRoZSBsYXN0IHJ1bm5pbmcgZ3Vlc3QgKERvbTApLiBBdCB0aGF0IG1vbWVudCBhbGwgcGh5 c2ljYWwKPiA+ICtDUFVzIGFyZSBzdGlsbCBvbmxpbmUgKHRha2luZyBvZmZsaW5lIGEgdkNQVSBv ciBzdXNwZW5kaW5nIGEgVk0gZG9lcyBub3QgYWZmZWN0Cj4gPiBwaHlzaWNhbCBDUFVzKS4KPiA+ ICtYZW4gc2hhbGwgbm93IHB1dCBvZmZsaW5lIHRoZSBub24tYm9vdCBwQ1BVcyBieSBtYWtpbmcg dGhlIENQVV9PRkYgUFNDSQo+ID4gK2NhbGwgdG8gRUwzLiBUaGUgQ1BVX09GRiBQU0NJIGZ1bmN0 aW9uIGlzIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQgaW4gWGVuLgo+ID4gKwo+ID4gK0FmdGVy IHB1dHRpbmcgb2ZmbGluZSB0aGUgbm9uLWJvb3QgY29yZXMgWGVuIG11c3Qgc2F2ZSB0aGUgY29u dGV4dCBhbmQKPiA+ICtmaW5hbGl6ZSBzdXNwZW5kIGJ5IGludm9raW5nIFNZU1RFTV9TVVNQRU5E IFBTQ0kgY2FsbCwgd2hpY2ggaXMgcGFzc2VkIHRvIEVMMy4KPiA+ICtUaGUgcmVzdW1lIHBvaW50 IG9mIFhlbiBpcyBzcGVjaWZpZWQgYnkgdGhlIGVudHJ5X3BvaW50X2FkZHJlc3MKPiA+ICthcmd1 bWVudCBvZiB0aGUgU1lTVEVNX1NVU1BFTkQgY2FsbC4gVGhlIFNZU1RFTV9TVVNQRU5EIGZ1bmN0 aW9uIGFuZAo+ID4gK2NvbnRleHQgc2F2aW5nIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBYZW4gZm9y IEFSTSB0b2RheS4KPiA+ICsKPiA+ICstLS0tLS0tLS0tLS0KPiA+ICtSZXN1bWluZyBYZW4KPiA+ ICstLS0tLS0tLS0tLS0KPiA+ICsKPiA+ICtYZW4gbXVzdCBiZSByZXN1bWVkIHByaW9yIHRvIGFu eSBzb2Z0d2FyZSBydW5uaW5nIGluIEVMMS4gU3RhcnRpbmcgZnJvbQo+ID4gK3RoZSByZXN1bWUg cG9pbnQsIFhlbiBzaG91bGQgcmVzdG9yZSB0aGUgY29udGV4dCBhbmQgcmVzdW1lIERvbTAuIERv bTAKPiA+ICtzaGFsbCBhbHdheXMgYmUgcmVzdW1lZCB3aGVuZXZlciBYZW4gcmVzdW1lcy4KPiA+ ICsKPiA+ICstLS0tLS0tLS0tLS0tLS0KPiA+ICtSZXN1bWluZyBHdWVzdHMKPiA+ICstLS0tLS0t LS0tLS0tLS0KPiA+ICsKPiA+ICtSZXN1bWUgb2YgdGhlIHByaXZpbGVnZWQgZ3Vlc3QgKERvbTAp IGlzIGFsd2F5cyBmb2xsb3dpbmcgdGhlIFhlbiByZXN1bWUuCj4gPiArCj4gPiArQW4gdW5wcml2 aWxlZ2VkIGd1ZXN0IHNoYWxsIHJlc3VtZSBvbmNlIGEgZGV2aWNlIGl0IG93bnMgdHJpZ2dlcnMg YQo+ID4gK3dha2UtdXAgaW50ZXJydXB0LCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgWGVuIHdhcyBz dXNwZW5kZWQgd2hlbiB0aGUKPiA+ICt3YWtlLXVwIGludGVycnVwdCB3YXMgdHJpZ2dlcmVkLiBJ ZiBYZW4gd2FzIHN1c3BlbmRlZCwgaXQgaXMgYXNzdW1lZAo+ID4gK3RoYXQgRG9tMCB3aWxsIGJl IHJ1bm5pbmcgYmVmb3JlIHRoZSBEb21VIGd1ZXN0IHN0YXJ0cyB0byByZXN1bWUuIFRoZQo+ID4g K3N5bmNocm9uaXphdGlvbiBtZWNoYW5pc20gdG8gZW5mb3JjZSB0aGUgYXNzdW1lZCBjb25kaXRp b24gaXMgVEJELgo+ID4gKwo+ID4gK0lmIHRoZSBBUk0ncyBHSUMgd2FzIHBvd2VyZWQgZG93biBh ZnRlciB0aGUgQVJNIHN1YnN5c3RlbSBzdXNwZW5kZWQsIGl0Cj4gPiAraXMgYXNzdW1lZCB0aGF0 IFhlbiBuZWVkcyB0byByZXN0b3JlIHRoZSBHSUMgaW50ZXJmYWNlIGZvciBhIFZNIHByaW9yCj4g PiArdG8gaGFuZGluZyBvdmVyIGNvbnRyb2wgdG8gdGhlIGd1ZXN0LiBIb3dldmVyLCB0aGUgZ3Vl c3Qgc2hvdWxkIHJlc3RvcmUKPiA+ICtpdHMgb3duIGNvbnRleHQgdXBvbiBlbnRlcmluZyB0aGUg cmVzdW1lIHBvaW50LCBqdXN0IGxpa2UgaXQgd291bGQgd2hlbgo+ID4gcnVubmluZyB3aXRob3V0 IFhlbi4KPiA+ICsKPiA+ICs9PT09PT09PT09PT09PT0KPiA+ICtJbXBsZW1lbnRhdGlvbgo+ID4g Kz09PT09PT09PT09PT09PQo+ID4gKwo+ID4gKy0tLS0tLS0tCj4gPiArT3ZlcnZpZXcKPiA+ICst LS0tLS0tLQo+ID4gKwo+ID4gK0luIG9yZGVyIHRvIGVuYWJsZSB0aGUgc3VzcGVuZC9yZXN1bWUg b2YgVk1zIGFuZCBYZW4gaXRzZWxmLCB0aGUKPiA+ICtmb2xsb3dpbmcgUFNDSSBjYWxscyBoYXZl IHRvIGJlIGltcGxlbWVudGVkIGFuZCBpbnRlZ3JhdGVkIGluIFhlbjoKPiA+ICsxKSB2U1lTVEVN X1NVU1BFTkQKPiA+ICsyKSBDUFVfT0ZGCj4gPiArMykgU1lTVEVNX1NVU1BFTkQKPiA+ICsKPiA+ ICtJbiBhZGRpdGlvbiwgdGhlIGZvbGxvd2luZyBoYXZlIHRvIGJlIGltcGxlbWVudGVkOgo+ID4g KyogU3VzcGVuZC9yZXN1bWUgdkNQVSAodHJpZ2dlcmVkIGJ5IHZTWVNURU1fU1VTUEVORCBjYWxs KQo+ID4gKyogU3VzcGVuZC9yZXN1bWUgWGVuICh0cmlnZ2VyZWQgYnkgdlNZU1RFTV9TVVNQRU5E IGNhbGxlZCBieSBEb20wKSwKPiA+IGluY2x1ZGluZzoKPiA+ICsJKiBEaXNhYmxlIHdhdGhkb2cg b24gc3VzcGVuZCwgZW5hYmxlIGl0IG9uIHJlc3VtZQo+ID4gKwkqIFBhdXNlIGRvbWFpbnMgb24g c3VzcGVuZCwgdW5wYXVzZSB0aGVtIG9uIHJlc3VtZQo+ID4gKwkqIERpc2FibGUgbm9uLWJvb3Qg cENQVXMgb24gc3VzcGVuZCwgZW5hYmxlIHRoZW0gb24gcmVzdW1lCj4gPiArCSogU2F2ZS9yZXN0 b3JlIG9mIEdJQyBjb25maWd1cmF0aW9uCj4gPiArCSogU3VzcGVuZC9yZXN1bWUgdGltZXIKPiA+ ICsJKiBTYXZlL3Jlc3RvcmUgb2YgRUwyIGNvbnRleHQKPiA+ICsJKiBJbXBsZW1lbnQgcmVzdW1l IGVudHJ5IHBvaW50IGluIFhlbiwgaW5jbHVkaW5nIE1NVSBjb25maWd1cmF0aW9uCj4gPiArCj4g PiArSW1wbGVtZW50YXRpb24gZGV0YWlscyBhcmUgcHJvdmlkZWQgaW4gdGhlIHNlY3Rpb25zIGJl bG93LiBGdW5jdGlvbgo+ID4gK25hbWVzIGFuZCBwYXRocyB1c2VkIGJlbG93IGFyZSBjb25zaXN0 ZW50IHdpdGhpbiB0aGUgZG9jdW1lbnQgYnV0IG1heQo+ID4gK25vdCBhbHdheXMgbWF0Y2ggdGhl IG5hbWVzIHVzZWQgaW4gZnV0dXJlIGltcGxlbWVudGF0aW9uLiBFeGlzdGluZwo+ID4gK2Z1bmN0 aW9ucyBhbmQgcGF0aHMgYXJlIG5hbWVkIGFzIGluIFhlbiBzb3VyY2UgdHJlZS4KPiA+ICsKPiA+ ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiArU3VzcGVuZC9SZXN1 bWUgSW1wbGVtZW50YXRpb24gRGV0YWlscwo+ID4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPiA+ICsKPiA+ICtQU0NJIEltcGxlbWVudGF0aW9uIGFuZCBJbnRlZ3JhdGlv bgo+ID4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiArdlNZU1RFTV9T VVNQRU5ECj4gPiArLS0tLS0tLS0tLS0tLS0tCj4gPiArdlNZU1RFTV9TVVNQRU5EIHNoYWxsIGJl IGltcGxlbWVudGVkIGluCj4gPiArKiBkb19wc2NpX3N5c3RlbV9zdXNwZW5kKCkgaW4gYXJjaC9h cm0vdnBzY2kuYwo+ID4gKyogQ29kZSBpbmRlcGVuZGVudCBmcm9tIFBTQ0kgaW50ZXJmYWNlIHdp bGwgYmUgYWRkZWQgaW4KPiA+ICthcmNoL2FybS9zdXNwZW5kLmMKPiA+ICsKPiA+ICtUaGUgaW1w bGVtZW50YXRpb24gc2hhbGwgaW5jbHVkZSB0aGUgZm9sbG93aW5nIHN0ZXBzOgo+ID4gKyogU3Vz cGVuZCB0aGUgY3VycmVudCAoY2FsbGluZykgdkNQVS4gQ29uc2lzdHMgb2YgMiBtYWpvciBzdGVw czoKPiA+ICsxKSBSZXNldCBjb250ZXh0IG9mIHZDUFUgYW5kIHNhdmUgZW50cnkgcG9pbnQgaW50 byBQQyBhbmQgY29udGV4dCBJRAo+ID4gK2ludG8gWDAgKGVudHJ5IHBvaW50IGFuZCBjb250ZXh0 IElEIGFyZSBwcm92aWRlZCB2aWEgdlNZU1RFTV9TVVNQRU5ECj4gPiArYXJndW1lbnRzKQo+ID4g KzIpIEJsb2NrIHZDUFUgdG8gZW5zdXJlIHRoYXQgaXQgaXMgbm90IHNjaGVkdWxlZCB1bnRpbCBp dCBpcyB1bmJsb2NrZWQKPiA+ICtieSBhbiBpbnRlcnJ1cHQuCj4gPiArSW4gc3RlcCAxKSBhYm92 ZSwgdGhlIGNvbnRleHQgaXMgcmVzZXQgaW4gb3JkZXIgdG8gcHJlcGFyZSB0aGUgdkNQVSBmb3IK PiA+ICtyZXN1bWUsIGkuZS4gdG8gc2F2ZSB2Q1BVIGNvbnRleHQgdGhhdCBtYXRjaGVzIHJlc2V0 IHZhbHVlcyBhcyBleHBlY3RlZAo+ID4gK2J5IHNvZnR3YXJlIG9uIHJlc3VtZS4gVGhpcyBkb2Vz bid0IGhvbGQgZm9yIFBDIGFuZCBYMCwgc2luY2UgdGhlIFBDCj4gPiArY29udGFpbnMgcmVzdW1l IGVudHJ5IHBvaW50IGFuZCBYMCBjb250YWlucyBjb250ZXh0IElELCBhcyBkZWZpbmVkIGJ5IFBT Q0kuCj4gPiArKiBJZiB0aGUgaGFyZHdhcmUgZG9tYWluIG1hZGUgdGhlIGNhbGwgdHJpZ2dlciBY ZW4gc3VzcGVuZCwgaS5lLgo+ID4gKyAgY2FsbCBtYWNoaW5lX3N1c3BlbmQoKSB3aGljaCB3aWxs IGJlIGltcGxlbWVudGVkIGluCj4gPiArYXJjaC9hcm0vc3VzcGVuZC5jICAoc2ltaWxhciBhcyB0 aGUgbWFjaGluZV9yZXN0YXJ0KCkgaXMgaW1wbGVtZW50ZWQgaW4KPiA+ICthcmNoL2FybS9zaHV0 ZG93bi5jKQo+ID4gKwo+ID4gK1RoZSBmdW5jdGlvbiBkb19wc2NpX3N5c3RlbV9zdXNwZW5kKCkg c2hhbGwgYmUgY2FsbGVkIGZyb20KPiA+ICsqIGRvX3RyYXBfcHNjaSgpIGluIGFyY2gvYXJtL3Ry YXBzLmMKPiA+ICsKPiA+ICtDUFVfT0ZGIChwaHlzaWNhbCBDUFVzKQo+ID4gKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gPiArVGhlIENQVV9PRkYgZnVuY3Rpb24gc2hhbGwgYmUgaW1wbGVtZW50 ZWQgaW4KPiA+ICsqIGNhbGxfcHNjaV9jcHVfb2ZmKCkgaW4gYXJjaC9hcm0vcHNjaS5jCj4gPiAr Cj4gPiArVGhlIGltcGxlbWVudGF0aW9uIHNoYWxsIGNvbnNpc3QganVzdCBvZiBtYWtpbmcgdGhl IFNNQyBjYWxsIHRvIEVMMy4KPiA+ICsKPiA+ICtUaGlzIGZ1bmN0aW9uIG5lZWRzIHRvIGJlIGNh bGxlZCB3aGVuIFhlbiBnZW5lcmljIGNvZGUgZGlzYWJsZXMgYSBub24tYm9vdAo+ID4gQ1BVLgo+ ID4gK1doZW4gYSBDUFUgaXMgZGlzYWJsZWQgaXQgd2lsbCBsb29wIGZvcmV2ZXIgaW4gd2hpbGUg bG9vcCAoc3RvcF9jcHUoKQo+ID4gK2Z1bmN0aW9uIHdoaWNoIGlzIGFscmVhZHkgaW1wbGVtZW50 ZWQgaW4geGVuL2FyY2gvYXJtL3NtcGJvb3QuYykuIENhbGwKPiA+ICt0bwo+ID4gK2NhbGxfcHNj aV9jcHVfb2ZmKCkgc2hhbGwgYmUgbWFkZSBiZWZvcmUgdGhlIENQVSBlbnRlcnMgaW5maW5pdGUg bG9vcC4KPiA+ICsKPiA+ICtTWVNURU1fU1VTUEVORCAocGh5c2ljYWwpCj4gPiArLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQo+ID4gK1RoZSBTWVNURU1fU1VTUEVORCBmdW5jdGlvbiBzaGFsbCBi ZSBpbXBsZW1lbnRlZCBpbgo+ID4gKyogY2FsbF9wc2NpX3N5c3RlbV9zdXNwZW5kKCkgaW4gYXJj aC9hcm0vcHNjaS5jCj4gPiArCj4gPiArVGhlIGltcGxlbWVudGF0aW9uIHNoYWxsIGNvbnNpc3Qg anVzdCBvZiBtYWtpbmcgdGhlIFNNQyBjYWxsIHRvIEVMMy4KPiA+ICtUaGUgZW50cnlfcG9pbnRf YWRkcmVzcyBhcmd1bWVudCBvZiB0aGUgU01DIGNhbGwgbmVlZHMgdG8gYmUgYW4gQVJNCj4gPiAr YXJjaGl0ZWN0dXJlIHJlc3VtZSBhZGRyZXNzLCB3aGljaCBzaGFsbCBiZSBpbXBsZW1lbnRlZCwg ZS5nLiBhcwo+ID4gK2h5cF9yZXN1bWUoKSBpbiBhcmNoL2FybS9hcm02NC9lbnRyeS5TLiBUaGUg Y2FsbF9wc2NpX3N5c3RlbV9zdXNwZW5kKCkKPiA+IGZ1bmN0aW9uIGRvZXMgbm90IHJldHVybi4K PiA+ICtPbiB0aGUgcmVzdW1lLCB0aGUgZXhlY3V0aW9uIGZsb3cgY29udGludWVzIGZyb20gaHlw X3Jlc3VtZS4KPiA+ICsKPiA+ICtUaGUgZnVuY3Rpb24gbmVlZHMgdG8gYmUgY2FsbGVkIGZyb20g bWFjaGluZV9zdXNwZW5kKCkgdG8gZmluYWxpemUgdGhlCj4gPiArc3VzcGVuZCBwcm9jZWR1cmUu Cj4gPiArCj4gPiArLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiArQWRkaXRpb25hbCBDaGFuZ2VzCj4g PiArLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiArCj4gPiArU3VzcGVuZCBGbG93Cj4gPiArLS0tLS0t LS0tLS0tCj4gPiArVGhlIHN1c3BlbmQgcHJvY2VkdXJlIHNoYWxsIGJlIGltcGxlbWVudGVkIGlu Cj4gPiArKiBtYWNoaW5lX3N1c3BlbmQoKSBpbiBhcmNoL2FybS9zdXNwZW5kLmMKPiA+ICsKPiA+ ICtUaGUgaW1wbGVtZW50YXRpb24gc2hhbGwgaW5jbHVkZSB0aGUgZm9sbG93aW5nIHN0ZXBzOgo+ ID4gKyogTW92ZSB0aGUgZXhlY3V0aW9uIHRvIGJvb3QgcENQVQo+ID4gKyogU2V0IHRoZSBzeXN0 ZW1fc3RhdGUgdmFyaWFibGUgdG8gU1lTX1NUQVRFX3N1c3BlbmQKPiA+ICsqIERpc2FibGUgd2F0 Y2hkb2cKPiA+ICsqIEZyZWV6ZSBkb21haW5zIGJ5IGNhbGxpbmcgZG9tYWluX3BhdXNlKCkgZm9y IGVhY2ggZG9tYWluCj4gPiArKiBEaXNhYmxlIG5vbi1ib290IENQVXMgYnkgY2FsbGluZyBkaXNh YmxlX25vbmJvb3RfY3B1cygpCj4gPiArKiBEaXNhYmxlIGludGVycnVwdHMKPiA+ICsqIFN1c3Bl bmQgdGltZXIKPiA+ICsqIFNhdmUgR0lDIGNvbnRleHQuIFNoYWxsIGJlIGltcGxlbWVudGVkIGlu IGFyY2gvYXJtL2dpYy5jLAo+ID4gKyAgaW5jbHVkZS9hc20tYXJtL2dpYy5oIGFuZCBhcmNoL2Fy bS9naWMtdjIuYyAob25seSBHSUN2MiB3aWxsIGJlIHN1cHBvcnRlZCkuCj4gPiArKiBTYXZlIENQ VSBjb250ZXh0LiBUaGlzIHNoYWxsIGJlIGltcGxlbWVudGVkIGluIGFzc2VtYmx5LCBpbgo+ID4g K2h5cF9zdXNwZW5kKCkKPiA+ICsgIGluIGFyY2gvYXJtL2FybTY0L2VudHJ5LlMuIFRoZSBjb250 ZXh0IGNvbnNpc3RzIG9mIGNhbGxlZS1zYXZlZAo+ID4gK2dlbmVyYWwKPiA+ICsgIHB1cnBvc2Ug cmVnaXN0ZXJzLCBhcyB3ZWxsIGFzIGZldyBzeXN0ZW0gcmVnaXN0ZXJzLiBDb250ZXh0IG9mCj4g PiArcmVnaXN0ZXJzIHNoYWxsCj4gPiArICBiZSBzYXZlZCBpbiBhIHN0YXRpY2FsbHkgYWxsb2Nh dGVkIHN0cnVjdHVyZS4KPiA+ICsqIEZpbmFsaXplIHRoZSBzdXNwZW5kIGJ5IGNhbGxpbmcgY2Fs bF9wc2NpX3N5c3RlbV9zdXNwZW5kKCkKPiA+ICsKPiA+ICtSZXN1bWUgRmxvdwo+ID4gKy0tLS0t LS0tLS0tLQo+ID4gK1RoZSByZXN1bWUgZW50cnkgcG9pbnQgc2hhbGwgYmUgaW1wbGVtZW50ZWQg aW4KPiA+ICsqIGh5cF9yZXN1bWUoKSBpbiBhcmNoL2FybS9hcm02NC9lbnRyeS5TIFRoZSB2ZXJ5 IGJlZ2lubmluZyBvZiB0aGUKPiA+ICtyZXN1bWUgcHJvY2VkdXJlIGhhcyB0byBiZSBpbXBsZW1l bnRlZCBpbiBhc3NlbWJseS4KPiA+ICtJdCBzaGFsbCBjb250YWluIHRoZSBmb2xsb3dpbmc6Cj4g PiArKiBFbmFibGUgdGhlIE1NVSBzbyB0aGF0IHRoZSBzdHJ1Y3R1cmUgY29udGFpbmluZyBDUFUg Y29udGV4dCB3aGljaCB3YXMKPiA+ICtzYXZlZCBvbiBzdXNwZW5kIGNhbiBiZSBhY2Nlc3NlZAo+ ID4gKyogUmVzdG9yZSBDUFUgY29udGV4dCAodG8gbWF0Y2ggdGhlIHZhbHVlcyBzYXZlZCBvbiBz dXNwZW5kKSBhbmQgcmV0dXJuCj4gPiAraW50byBDCj4gPiArKiBTZXQgdGhlIHN5c3RlbV9zdGF0 ZSB2YXJpYWJsZSB0byBTWVNfU1RBVEVfcmVzdW1lCj4gPiArKiBSZXN0b3JlIEdJQyBjb250ZXh0 Cj4gPiArKiBSZXN1bWUgdGltZXIKPiA+ICsqIEVuYWJsZSBpbnRlcnJ1cHRzCj4gPiArKiBFbmFi bGUgbm9uLWJvb3QgQ1BVcyBieSBjYWxsaW5nIGVuYWJsZV9ub25ib290X2NwdXMoKQo+ID4gKyog VGhhdyBkb21haW5zIGJ5IGNhbGxpbmcgZG9tYWluX3VucGF1c2UoKSBmb3IgZWFjaCBkb21haW4K PiA+ICsqIEVuYWJsZSB3YXRjaGRvZwo+ID4gKyogU2V0IHRoZSBzeXN0ZW1fc3RhdGUgdmFyaWFi bGUgdG8gU1lTX1NUQVRFX2FjdGl2ZQo+ID4gKyogUmVzdW1lIERvbTAKPiA+ICsKPiA+ICs9PT09 PT09PT09Cj4gPiArUmVmZXJlbmNlcwo+ID4gKz09PT09PT09PT0KPiA+ICsKPiA+ICtbMV0gUG93 ZXIgU3RhdGUgQ29vcmRpbmF0aW9uIEludGVyZmFjZSAoQVJNKToKPiA+ICtodHRwczovL2VtZWEw MS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHAlM0ElMkYlMkZpbmZv Ywo+ID4gK2VudGVyLmFybS5jb20lMkZoZWxwJTJGdG9waWMlMkZjb20uYXJtLmRvYy5kZW4wMDIy ZCUyRlBvd2VyX1N0YXRlCj4gPiBfQ29vcmQKPiA+ICtpbmF0aW9uX0ludGVyZmFjZV9QRERfdjFf MV9ERU4wMDIyRC5wZGYmZGF0YT0wMiU3QzAxJTdDcGVuZy5mYW4lNAo+ID4gMG54cC5jCj4gPiAr b20lN0NiMzQzZDEyODkzMGQ0NGM5MGY1ZDA4ZDU0OTYzODA3YiU3QzY4NmVhMWQzYmMyYjRjNmZh OTJjZDk5Cj4gPiBjNWMzMDE2Mwo+ID4gKzUlN0MwJTdDMSU3QzYzNjQ5NTYxNDA3NDg4NTk0MCZz ZGF0YT0zeWNxRVpSOVhnY3FkdnJtSktZODZhdWt0Cj4gPiAlMkJRdiUyQlMKPiA+ICtCU1pNeGJD cnByYUVZJTNEJnJlc2VydmVkPTAKPiA+IC0tCj4gPiAyLjEzLjAKPiA+IAo+ID4gCj4gPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gWGVuLWRldmVs IG1haWxpbmcgbGlzdAo+ID4gWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gPiBodHRw czovL2VtZWEwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNB JTJGJTJGbGlzdHMueGUKPiA+IG5wcm9qZWN0Lm9yZyUyRm1haWxtYW4lMkZsaXN0aW5mbyUyRnhl bi1kZXZlbCZkYXRhPTAyJTdDMDElN0NwZW5nLmZhbgo+ID4gJTQwbnhwLmNvbSU3Q2IzNDNkMTI4 OTMwZDQ0YzkwZjVkMDhkNTQ5NjM4MDdiJTdDNjg2ZWExZDNiYzJiNGM2Zgo+ID4gYTkyY2Q5OWM1 YzMwMTYzNSU3QzAlN0MwJTdDNjM2NDk1NjE0MDc0ODg1OTQwJnNkYXRhPVlMdUpoYnglMkIxCj4g PiB0RHZibFliZ3RPWlpCaHNHMzYlMkJVaHBSYzRWcFNwSEhNJTJGVSUzRCZyZXNlcnZlZD0wCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs