From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peng Fan Subject: Re: [RFC 0/5] xen/arm: support big.little SoC Date: Mon, 19 Sep 2016 17:38:14 +0800 Message-ID: <20160919093812.GC16854@linux-7smt.suse> References: <1474250936-27962-1-git-send-email-peng.fan@nxp.com> <10152e13-bccb-0794-44e4-556845875e33@arm.com> <20160919083619.GA16854@linux-7smt.suse> <5ddefbc1-3bd4-c990-b615-0039761535d8@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <5ddefbc1-3bd4-c990-b615-0039761535d8@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall Cc: jgross@suse.com, Peng Fan , sstabellini@kernel.org, George Dunlap , andrew.cooper3@citrix.com, dario.faggioli@citrix.com, xen-devel@lists.xen.org, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org T24gTW9uLCBTZXAgMTksIDIwMTYgYXQgMTA6NTM6NTZBTSArMDIwMCwgSnVsaWVuIEdyYWxsIHdy b3RlOgo+SGVsbG8sCj4KPk9uIDE5LzA5LzIwMTYgMTA6MzYsIFBlbmcgRmFuIHdyb3RlOgo+Pk9u IE1vbiwgU2VwIDE5LCAyMDE2IGF0IDEwOjA5OjA2QU0gKzAyMDAsIEp1bGllbiBHcmFsbCB3cm90 ZToKPj4+SGVsbG8gUGVuZywKPj4+Cj4+Pk9uIDE5LzA5LzIwMTYgMDQ6MDgsIHZhbi5mcmVlbml4 QGdtYWlsLmNvbSB3cm90ZToKPj4+PkZyb206IFBlbmcgRmFuIDxwZW5nLmZhbkBueHAuY29tPgo+ Pj4+Cj4+Pj5UaGlzIHBhdGNoc2V0IGlzIHRvIHN1cHBvcnQgWEVOIHJ1biBvbiBiaWcubGl0dGxl IFNvQy4KPj4+PlRoZSBpZGVhIG9mIHRoZSBwYXRjaCBpcyBmcm9tCj4+Pj4iaHR0cHM6Ly9saXN0 cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE2LTA1L21zZzAwNDY1 Lmh0bWwiCj4+Pj4KPj4+PlRoZXJlIGFyZSBzb21lIGNoYW5nZXMgdG8gY3B1cG9vbCBhbmQgYWRk IHg4NiBzdHViIGZ1bmN0aW9ucyB0byBhdm9pZCBidWlsZAo+Pj4+YnJlYWsuIFNlbmRpbmcgVGhl IFJGQyBwYXRjaHNldCBvdXQgaXMgdG8gcmVxdWVzdCBmb3IgY29tbWVudHMgdG8gc2VlIHdoZXRo ZXIKPj4+PnRoaXMgaW1wbGVtZW50YXRpb24gaXMgYWNjZXB0YWJsZSBvciBub3QuIFBhdGNoc2V0 IGhhdmUgYmVlbiB0ZXN0ZWQgYmFzZWQgb24KPj4+Pnhlbi00LjggdW5zdGFibGUgb24gTlhQIGku TVg4Lgo+Pj4+Cj4+Pj5JIHVzZSBCaWcvTGl0dGxlIENQVSBhbmQgY3B1cG9vbCB0byBleHBsYWlu IHRoZSBpZGVhLgo+Pj4+QSBwb29sIGNvbnRhaW5zIEJpZyBDUFVzIGlzIGNhbGxlZCBCaWcgUG9v bC4KPj4+PkEgcG9vbCBjb250YWlucyBMaXR0bGUgQ1BVcyBpcyBjYWxsZWQgTGl0dGxlIFBvb2wu Cj4+Pj5JZiBhIHBvb2wgZG9lcyBub3QgY29udGFpbnMgYW55IHBoeXNpY2FsIGNwdXMsIExpdHRs ZSBDUFVzIG9yIEJpZyBDUFVzCj4+Pj5jYW4gYmUgYWRkZWQgdG8gdGhlIGNwdXBvb2wuIEJ1dCB0 aGUgY3B1cG9vbCBjYW4gbm90IGNvbnRhaW4gYm90aCBMaXR0bGUKPj4+PmFuZCBCaWcgQ1BVcy4g VGhlIENQVXMgaW4gYSBjcHVwb29sIG11c3QgaGF2ZSB0aGUgc2FtZSBjcHUgdHlwZShtaWRyIHZh bHVlIGZvciBBUk0pLgo+Pj4+Q1BVcyBjYW4gbm90IGJlIGFkZGVkIHRvIHRoZSBjcHVwb29sIHdo aWNoIGNvbnRhaW5zIGNwdXMgdGhhdCBoYXZlIGRpZmZlcmVudCBjcHUgdHlwZS4KPj4+PkxpdHRs ZSBDUFVzIGNhbiBub3QgYmUgbW92ZWQgdG8gQmlnIFBvb2wgaWYgdGhlcmUgYXJlIEJpZyBDUFVz IGluIEJpZyBQb29sLAo+Pj4+YW5kIHZlcnNhLiBEb21haW4gaW4gQmlnIFBvb2wgY2FuIG5vdCBi ZSBtaWdyYXRlZCB0byBMaXR0bGUgUG9vbCwgYW5kIHZlcnNhLgo+Pj4+V2hlbiBYRU4gdHJpZXMg dG8gYnJpbmd1cCBhbGwgdGhlIENQVXMsIG9ubHkgYWRkIENQVXMgd2l0aCB0aGUgc2FtZSBjcHUg dHlwZShzYW1lIG1pZHIgdmFsdWUpCj4+Pj5pbnRvIGNwdXBvb2wwLgo+Pj4KPj4+QXMgbWVudGlv bmVkIGluIHRoZSBtYWlsIHlvdSBwb2ludGVkIGFib3ZlLCB0aGlzIHNlcmllcyBpcyBub3QgZW5v dWdoIHRvIG1ha2UKPj4+YmlnLkxJVFRMRSB3b3JraW5nIG9uIHRoZW4uIFhlbiBpcyBhbHdheXMg dXNpbmcgdGhlIGJvb3QgQ1BVIHRvIGRldGVjdCB0aGUKPj4+bGlzdCBvZiBmZWF0dXJlcy4gV2l0 aCBiaWcuTElUVExFIGZlYXR1cmVzIG1heSBub3QgYmUgdGhlIHNhbWUuCj4+Pgo+Pj5BbmQgSSB3 b3VsZCBwcmVmZXIgdG8gc2VlIFhlbiBzdXBwb3J0aW5nIGJpZy5MSVRUTEUgY29ycmVjdGx5IGJl Zm9yZQo+Pj5iZWdpbm5pbmcgdG8gdGhpbmsgdG8gZXhwb3NlIGJpZy5MSVRUTEUgdG8gdGhlIHVz ZXJzcGFjZSAodmlhIGNwdXBvb2wpCj4+PmF1dG9tYXRpY2FsbHkuCj4+Cj4+RG8geW91IG1lYW4g dmNwdXMgYmUgc2NoZWR1bGVkIGJldHdlZW4gYmlnIGFuZCBsaXR0bGUgY3B1cyBmcmVlbHk/Cj4K PkJ5IHN1cHBvcnRpbmcgYmlnLkxJVFRMRSBjb3JyZWN0bHkgSSBtZWFudCBYZW4gdGhpbmtzIHRo YXQgYWxsIHRoZSBjb3JlcyBoYXMKPnRoZSBzYW1lIHNldCBvZiBmZWF0dXJlcy4gU28gdGhlIGZl YXR1cmUgZGV0ZWN0aW9uIGlzIG9ubHkgZG9uZSB0aGUgYm9vdCBDUFUuCj5TZWUgcHJvY2Vzc29y X3NldHVwIGZvciBpbnN0YW5jZS4uLgo+Cj5Nb3ZpbmcgdkNQVXMgYmV0d2VlbiBiaWcgYW5kIGxp dHRsZSBjb3JlcyB3b3VsZCBiZSBhIGhhcmQgdGFzayAoY2FjaGUgbGluZQo+aXNzdWUsIGFuZCBw b3NzaWJseSBmZWF0dXJlKSBhbmQgSSBkb24ndCBleHBlY3QgdG8gZXZlciBjcm9zcyB0aGlzIGlu IFhlbi4KPkhvd2V2ZXIsIEkgYW0gZXhwZWN0aW5nIHRvIHNlZSBiaWcuTElUVExFIGV4cG9zZWQg dG8gdGhlIGd1ZXN0IChpLmUgaGF2aW5nCj5iaWcgYW5kIGxpdHRsZSB2Q1BVcykuCgpiaWcgdkNQ VXMgc2NoZWR1bGVkIG9uIGJpZyBQaHlzaWNhbCBDUFVzIGFuZCBsaXR0bGUgdkNQVXMgc2NoZWR1 bGVkIG9uIGxpdHRsZQpwaHlzaWNhbCBjcHVzLCByaWdodD8KSWYgaXQgaXMsIGlzIHRoZXJlIGlz IGEgbmVlZCB0byBsZXQgWGVuIHRoaW5rIGFsbCB0aGUgY29yZXMgaGFzIHRoZSBzYW1lIHNldApv ZiBmZWF0dXJlcz8KCkRldmVsb3BpbmcgYmlnLmxpdHRsZSBndWVzdCBzdXBwb3J0LCBJIGFtIG5v dCBzdXJlIGhvdyBtdWNoIGVmZm9ydHMgbmVlZGVkLgpJcyB0aGlzIHJlYWxseSBuZWVkZWQ/IAoK Pgo+Pgo+PlRoaXMgcGF0Y2hzZXQgaXMgdG8gdXNlIGNwdXBvb2wgdG8gYmxvY2sgdGhlIHZjcHUg YmUgc2NoZWR1bGVkIGJldHdlZW4gYmlnIGFuZAo+PmxpdHRsZSBjcHVzLgo+Pgo+Pj4KPj4+U2Vl IGZvciBpbnN0YW5jZSB2LT5hcmNoLmFjdGxyID0gUkVBRF9TWVNSRUczMihBQ1RMUl9FTDEpLgo+ Pgo+PlRoYW5rcyBmb3IgdGhpcy4gSSBvbmx5IGV4cG9zZSBjcHVpZCB0byBndWVzdCwgbWlzc2Vk IGFjdGxyLiBJJ2xsIGNoZWNrCj4+dGhlIEE1MyBhbmQgQTcyIFRSTSBhYm91dCBBQXJjaDY0IGlt cGxlbWVudGF0aW9uZCBkZWZpbmVkIHJlZ2lzdGVycy4KPj5UaGlzIGFjdGxyIGNhbiBiZSBhZGRl ZCB0byB0aGUgY3B1cG9vbF9hcmNoX2luZm8gYXMgbWlkci4KPj4KPj5SZWFkaW5nICJ2Y3B1X2lu aXRpYWxpc2UiLCBzZWVtcyBvbmx5IE1JRFIgYW5kIEFDVExSIG5lZWRzIHRvIGJlIGhhbmRsZWQu Cj4+UGxlYXNlIGFkdmlzZSBpZiBJIG1pc3NlZCBhbnl0aGluZyBlbHNlLgo+Cj5IYXZlIHlvdSBj aGVjayB0aGUgcmVnaXN0ZXIgZW11bGF0aW9uPwoKQ2hlY2tlZCBtaWRyLiBIYXZlIG5vdCBjaGVj a2VkIG90aGVycy4KSSB0aGluayBJIG1pc3NlZCBzb21lIHJlZ2lzdGVycyBpbiBjdHh0X3N3aXRj aF90by4KCj4KPj4KPj4+Cj4+Pj4KPj4+PlRoaW5raW5nIGFuIFNvQyB3aXRoIDQgQTUzKGNwdVsw LTNdKSArIDIgQTcyKGNwdVs0LTVdKSwgY3B1MCBpcyB0aGUgZmlyc3Qgb25lCj4+Pj50aGF0IGJv b3RzIHVwLiBXaGVuIFhFTiB0cmllcyB0byBicmluZ3VwIHNlY29uZGFyeSBDUFVzLCBhZGQgY3B1 WzAtM10gdG8KPj4+PmNwdXBvb2wwIGFuZCBsZWF2ZSBjcHVbNC01XSBub3QgaW4gYW55IGNwdXBv b2wuIFRoZW4gd2hlbiBEb20wIGJvb3RzIHVwLAo+Pj4+YHhsIGNwdXBvb2wtbGlzdCAtY2Agd2ls bCBzaG93IGNwdVswLTNdIGluIFBvb2wtMC4KPj4+Pgo+Pj4+VGhlbiB1c2UgdGhlIGZvbGxvd2lu ZyBzY3JpcHQgdG8gY3JlYXRlIGEgbmV3IGNwdXBvb2wgYW5kIGFkZCBjcHVbNC01XSB0bwo+Pj4+ dGhlIGNwdXBvb2wuCj4+Pj4jeGwgY3B1cG9vbC1jcmVhdGUgbmFtZT1cIlBvb2wtQTcyXCIgc2No ZWQ9XCJjcmVkaXQyXCIKPj4+PiN4bCBjcHVwb29sLWNwdS1hZGQgUG9vbC1BNzIgNAo+Pj4+I3hs IGNwdXBvb2wtY3B1LWFkZCBQb29sLUE3MiA1Cj4+Pj4jeGwgY3JlYXRlIC1kIC9yb290L3hlbi9k b211LXRlc3QgcG9vbD1cIlBvb2wtQTcyXCIKPj4+Cj4+PkkgYW0gYSBiaXQgY29uZnVzZWQgd2l0 aCB0aGVzZSBydW5lcy4gSXQgbWVhbnMgdGhhdCBvbmx5IHRoZSBmaXJzdCBraW5kIG9mCj4+PkNQ VXMgaGF2ZSBwb29sIGFzc2lnbmVkLiBXaHkgZG9uJ3QgeW91IGRpcmVjdGx5IGNyZWF0ZSBhbGwg dGhlIHBvb2xzIGF0IGJvb3QKPj4+dGltZT8KPj4KPj5JZiBuZWVkIHRvIGNyZWF0ZSBhbGwgdGhl IHBvb2xzLCBuZWVkIHRvIGRlY2lkZWQgaG93IG1hbnkgcG9vbHMgbmVlZCB0byBiZSBjcmVhdGVk Lgo+PkkgdGhvdWdodCBhYm91dCB0aGlzLCBidXQgSSBkbyBub3QgY29tZSBvdXQgYSBnb29kIGlk ZWEuCj4+Cj4+VGhlIGNwdXBvb2wwIGlzIGRlZmluZWQgaW4geGVuL2NvbW1vbi9jcHVwb29sLmMs IGlmIG5lZWQgdG8gY3JlYXRlIG1hbnkgcG9vbHMsCj4+bmVlZCB0byBhbGxvYyBjcHVwb29scyBk eW5hbWljYWxseSB3aGVuIGJvb3RpbmcuIEkgd291bGQgbm90IGxpa2UgdG8gY2hhbmdlIGEKPj5s b3QgdG8gY29tbW9uIGNvZGUuCj4KPldoeT8gV2Ugc2hvdWxkIGF2b2lkIHRvIGNob29zZSBhIHNw ZWNpZmljIGRlc2lnbiBqdXN0IGJlY2F1c2UgdGhlIGNvbW1vbiBjb2RlCj5kb2VzIG5vdCBhbGxv dyB5b3UgdG8gZG8gaXQgd2l0aG91dCBoZWF2eSBjaGFuZ2UuCj4KPldlIG5ldmVyIGNhbWUgYWNy b3NzIHRoZSBiaWcuTElUVExFIHByb2JsZW0gb24geDg2LCBzbyBpdCBpcyBub3JtYWwgdG8gbW9k aWZ5Cj50aGUgY29kZS4KPgo+PlRoZSBpbXBsZW1lbnRhdGlvbiBpbiB0aGlzIHBhdGNoc2V0IEkg dGhpbmsgaXMgYW4gZWFzeSB3YXkgdG8gbGV0IEJpZyBhbmQgTGl0dGxlCj4+Q1BVcyBhbGwgcnVu Lgo+Cj5JIGNhcmUgYWJvdXQgaGF2aW5nIGEgZGVzaWduIGFsbG93aW5nIGFuIGVhc3kgdXNlIG9m IGJpZy5MSVRUTEUgb24gWGVuLiBZb3VyCj5zb2x1dGlvbiByZXF1aXJlcyB0aGUgYWRtaW5pc3Ry YXRvciB0byBrbm93IHRoZSB1bmRlcmx5aW5nIHBsYXRmb3JtIGFuZAo+Y3JlYXRlIHRoZSBwb29s LgoKSSBzdXBwb3NlIGJpZy5saXR0bGUgaXMgbWFpbmx5IHVzZWQgaW4gZW1iZWRkZWQgU29DIDop LiBTbyB0aGUgdXNlcihkZXZlbG9wZXI/KQpuZWVkcyB0byBrbm93IHRoZSBoYXJkd2FyZSBwbGF0 Zm9ybS4KCj4KPkluIHRoZSBzb2x1dGlvbiBJIHN1Z2dlc3RlZCwgdGhlIHBvb2xzIHdvdWxkIGJl IGNyZWF0ZWQgYnkgWGVuIChhbmQgdGhlIGluZm8KPmV4cG9zZWQgdG8gdGhlIHVzZXJzcGFjZSBm b3IgdGhlIGFkbWluKS4KCkkgdGhpbmsgdGhlIHJlYXNvbiB0byBjcmVhdGUgY3B1cG9vbHMgdG8g c3VwcG9ydCBiaWcubGl0dGxlIFNvQyBpcyB0bwphdm9pZCB2Y3B1cyBzY2hlZHVsZWQgYmV0d2Vl biBiaWcgYW5kIGxpdHRsZSBwaHlzaWNhbCBjcHVzLgoKSWYgbmVlZCB0byBzdXBwb3J0IGJpZy5s aXR0bGUgZ3Vlc3QsIEkgdGhpbmsgbm8gbmVlZCB0byBjcmVhdGUgbW9yZQpjcHVwb29scyBleHBl Y3QgY3B1cG9vMC4gTmVlZCB0byBtYWtlIHN1cmUgdmNwdXMgbm90IGJlIHNjaGVkdWxlZCBiZXR3 ZWVuCmJpZyBhbmQgbGl0dGxlIHBoeXNpY2FsIGNwdXMuIEFsbCB0aGUgY3B1cyBuZWVkcyB0byBi ZSBpbiBvbmUgY3B1cG9vbC4KCj4KPj4KPj4+Cj4+PkFsc28sIGluIHdoaWNoIHBvb2wgYSBkb21h aW4gd2lsbCBiZSBjcmVhdGVkIGlmIG5vbmUgaXMgc3BlY2lmaWVkPwo+Pj4KPj4+Pk5vdyBgeGwg Y3B1cG9vbC1saXN0IC1jYCBzaG93czoKPj4+Pk5hbWUgICAgICAgICAgICBDUFUgbGlzdAo+Pj4+ UG9vbC0wICAgICAgICAgIDAsMSwyLDMKPj4+PlBvb2wtQTcyICAgICAgICA0LDUKPj4+Pgo+Pj4+ YHhsIGNwdXBvb2wtbGlzdGAgc2hvd3M6Cj4+Pj5OYW1lICAgICAgICAgICAgICAgQ1BVcyAgIFNj aGVkICAgICBBY3RpdmUgICBEb21haW4gY291bnQKPj4+PlBvb2wtMCAgICAgICAgICAgICAgIDQg ICAgY3JlZGl0ICAgICAgIHkgICAgICAgICAgMQo+Pj4+UG9vbC1BNzIgICAgICAgICAgICAgMiAg IGNyZWRpdDIgICAgICAgeSAgICAgICAgICAxCj4+Pj4KPj4+PmB4bCBjcHVwb29sLWNwdS1yZW1v dmUgUG9vbC1BNzIgNGAsIHRoZW4gYHhsIGNwdXBvb2wtY3B1LWFkZCBQb29sLTAgNGAKPj4+Pm5v dCBzdWNjZXNzLCBiZWNhdXNlIFBvb2wtMCBjb250YWlucyBBNTMgQ1BVcywgYnV0IENQVTQgaXMg YW4gQTcyIENQVS4KPj4+Pgo+Pj4+YHhsIGNwdXBvb2wtbWlncmF0ZSBEb21VIFBvb2wtMGAgd2ls bCBhbHNvIGZhaWwsIGJlY2F1c2UgRG9tVSBpcyBjcmVhdGVkCj4+Pj5pbiBQb29sLUE3MiB3aXRo IEE3MiB2Y3B1LCB3aGlsZSBQb29sLTAgaGF2ZSBBNTMgcGh5c2ljYWwgY3B1cy4KPj4+Pgo+Pj4+ UGF0Y2ggMS81Ogo+Pj4+dXNlICJjcHVtYXNrX3dlaWdodChjcHVwb29sMC0+Y3B1X3ZhbGlkKTsi IHRvIHJlcGxhY2UgIm51bV9vbmxpbmVfY3B1cygpIiwKPj4+PmJlY2F1c2UgbnVtX29ubGluZV9j cHVzKCkgY291bnRzIGFsbCB0aGUgb25saW5lIENQVXMsIGJ1dCBub3cgd2Ugb25seQo+Pj4+bmVl ZCBCaWcgb3IgTGl0dGxlIENQVXMuCj4+Pgo+Pj5TbyBpZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5 LCBpZiB0aGUgYm9vdCBDUFUgaXMgYSBsaXR0bGUgQ1BVLCBET00wIHdpbGwKPj4+YWx3YXlzIGJl IGFibGUgdG8gb25seSB1c2UgbGl0dGxlIG9uZXMuIElzIHRoYXQgcmlnaHQ/Cj4+Cj4+WWVhaC4g RG9tMCBvbmx5IHVzZSB0aGUgbGl0dGxlIG9uZXMuCj4KPlRoaXMgaXMgcmVhbGx5IGJhZCwgZG9t MCBvbiBub3JtYWwgY2FzZSB3aWxsIGhhdmUgYWxsIHRoZSBiYWNrZW5kcy4gSXQgbWF5Cj5ub3Qg YmUgcG9zc2libGUgdG8gc2VsZWN0IHRoZSBib290IENQVSwgYW5kIHRoZXJlZm9yZSBhbHdheXMg Z2V0IGEgbGl0dGxlCj5DUFUuCgpEb20wIHJ1bnMgaW4gY3B1cG9vbDAuIGNwdXBvb2wwIG9ubHkg Y29udGFpbnMgdGhlIGNwdVswLTNdIGluIG15IGNhc2UuCgo+Cj5DcmVhdGluZyB0aGUgcG9vbCBh dCBib290IHRpbWUgd291bGQgaGF2ZSBhdm9pZCBhIHN1Y2ggaXNzdWUgYmVjYXVzZSwgdW5sZXNz Cj53ZSBleHBvc2UgYmlnLkxJVFRMRSB0byBkb20wIChJIHdvdWxkIG5lZWQgdGhlIGlucHV0IG9m IEdlb3JnZSBhbmQgRGFyaW8gZm9yCj50aGlzIGJpdHMpLCB3ZSBjb3VsZCBoYXZlIGEgcGFyYW1l dGVyIHRvIHNwZWNpZnkgd2hpY2ggc2V0IG9mIENQVXMgKGUuZyBwb29sKQo+dG8gYWxsb2NhdGUg ZG9tMCB2Q1BVcy4KCmRvbTAgaXMgY29udHJvbCBkb21haW4sIEkgdGhpbmsgbm8gbmVlZCB0byBl eHBvc2UgYmlnLmxpdHRsZSBmb3IgZG9tMC4KUGluIFZDUFUgdG8gc3BlY2lmaWMgcGh5c2ljYWwg Y3B1cywgdGhpcyBtYXkgaGVscCBzdXBwb3J0IGJpZy5saXR0bGUgZ3Vlc3QuCgo+Cj5Ob3RlLCB0 aGF0IEkgYW0gbm90IGFza2luZyB5b3UgdG8gaW1wbGVtZW50IGV2ZXJ5dGhpbmcuIEJ1dCBJIHRo aW5rIHdlIG5lZWQgYQo+Y29oZXJlbnQgdmlldyBvZiBiaWcuTElUVExFIHN1cHBvcnQgaW4gWGVu IHRvZGF5IHRvIGdvIGZvcndhcmQuCgpZZWFoLiBUaGVuIHlvdSBwcmVmZXIgc3VwcG9ydGluZyBi aWcubGl0dGxlIGd1ZXN0PwpQbGVhc2UgYWR2aXNlIGlmIHlvdSBoYXZlIGFueSBwbGFuL2lkZWFz IG9yIHdoYXQgSSBjYW4gZG8gb24gdGhpcy4KClRoYW5rcywKUGVuZy4KCj4KPlJlZ2FyZHMsCj4K Pi0tIAo+SnVsaWVuIEdyYWxsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK