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 21:15:55 +0800 Message-ID: <20160919131553.GB7407@linux-u7w5.ap.freescale.net> 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> <20160919093812.GC16854@linux-7smt.suse> 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.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 T24gTW9uLCBTZXAgMTksIDIwMTYgYXQgMTE6NTk6MDVBTSArMDIwMCwgSnVsaWVuIEdyYWxsIHdy b3RlOgo+Cj4KPk9uIDE5LzA5LzIwMTYgMTE6MzgsIFBlbmcgRmFuIHdyb3RlOgo+Pk9uIE1vbiwg U2VwIDE5LCAyMDE2IGF0IDEwOjUzOjU2QU0gKzAyMDAsIEp1bGllbiBHcmFsbCB3cm90ZToKPj4+ SGVsbG8sCj4+Pgo+Pj5PbiAxOS8wOS8yMDE2IDEwOjM2LCBQZW5nIEZhbiB3cm90ZToKPj4+Pk9u IE1vbiwgU2VwIDE5LCAyMDE2IGF0IDEwOjA5OjA2QU0gKzAyMDAsIEp1bGllbiBHcmFsbCB3cm90 ZToKPj4+Pj5IZWxsbyBQZW5nLAo+Pj4+Pgo+Pj4+Pk9uIDE5LzA5LzIwMTYgMDQ6MDgsIHZhbi5m cmVlbml4QGdtYWlsLmNvbSB3cm90ZToKPj4+Pj4+RnJvbTogUGVuZyBGYW4gPHBlbmcuZmFuQG54 cC5jb20+Cj4+Pj4+Pgo+Pj4+Pj5UaGlzIHBhdGNoc2V0IGlzIHRvIHN1cHBvcnQgWEVOIHJ1biBv biBiaWcubGl0dGxlIFNvQy4KPj4+Pj4+VGhlIGlkZWEgb2YgdGhlIHBhdGNoIGlzIGZyb20KPj4+ Pj4+Imh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwv MjAxNi0wNS9tc2cwMDQ2NS5odG1sIgo+Pj4+Pj4KPj4+Pj4+VGhlcmUgYXJlIHNvbWUgY2hhbmdl cyB0byBjcHVwb29sIGFuZCBhZGQgeDg2IHN0dWIgZnVuY3Rpb25zIHRvIGF2b2lkIGJ1aWxkCj4+ Pj4+PmJyZWFrLiBTZW5kaW5nIFRoZSBSRkMgcGF0Y2hzZXQgb3V0IGlzIHRvIHJlcXVlc3QgZm9y IGNvbW1lbnRzIHRvIHNlZSB3aGV0aGVyCj4+Pj4+PnRoaXMgaW1wbGVtZW50YXRpb24gaXMgYWNj ZXB0YWJsZSBvciBub3QuIFBhdGNoc2V0IGhhdmUgYmVlbiB0ZXN0ZWQgYmFzZWQgb24KPj4+Pj4+ eGVuLTQuOCB1bnN0YWJsZSBvbiBOWFAgaS5NWDguCj4+Pj4+Pgo+Pj4+Pj5JIHVzZSBCaWcvTGl0 dGxlIENQVSBhbmQgY3B1cG9vbCB0byBleHBsYWluIHRoZSBpZGVhLgo+Pj4+Pj5BIHBvb2wgY29u dGFpbnMgQmlnIENQVXMgaXMgY2FsbGVkIEJpZyBQb29sLgo+Pj4+Pj5BIHBvb2wgY29udGFpbnMg TGl0dGxlIENQVXMgaXMgY2FsbGVkIExpdHRsZSBQb29sLgo+Pj4+Pj5JZiBhIHBvb2wgZG9lcyBu b3QgY29udGFpbnMgYW55IHBoeXNpY2FsIGNwdXMsIExpdHRsZSBDUFVzIG9yIEJpZyBDUFVzCj4+ Pj4+PmNhbiBiZSBhZGRlZCB0byB0aGUgY3B1cG9vbC4gQnV0IHRoZSBjcHVwb29sIGNhbiBub3Qg Y29udGFpbiBib3RoIExpdHRsZQo+Pj4+Pj5hbmQgQmlnIENQVXMuIFRoZSBDUFVzIGluIGEgY3B1 cG9vbCBtdXN0IGhhdmUgdGhlIHNhbWUgY3B1IHR5cGUobWlkciB2YWx1ZSBmb3IgQVJNKS4KPj4+ Pj4+Q1BVcyBjYW4gbm90IGJlIGFkZGVkIHRvIHRoZSBjcHVwb29sIHdoaWNoIGNvbnRhaW5zIGNw dXMgdGhhdCBoYXZlIGRpZmZlcmVudCBjcHUgdHlwZS4KPj4+Pj4+TGl0dGxlIENQVXMgY2FuIG5v dCBiZSBtb3ZlZCB0byBCaWcgUG9vbCBpZiB0aGVyZSBhcmUgQmlnIENQVXMgaW4gQmlnIFBvb2ws Cj4+Pj4+PmFuZCB2ZXJzYS4gRG9tYWluIGluIEJpZyBQb29sIGNhbiBub3QgYmUgbWlncmF0ZWQg dG8gTGl0dGxlIFBvb2wsIGFuZCB2ZXJzYS4KPj4+Pj4+V2hlbiBYRU4gdHJpZXMgdG8gYnJpbmd1 cCBhbGwgdGhlIENQVXMsIG9ubHkgYWRkIENQVXMgd2l0aCB0aGUgc2FtZSBjcHUgdHlwZShzYW1l IG1pZHIgdmFsdWUpCj4+Pj4+PmludG8gY3B1cG9vbDAuCj4+Pj4+Cj4+Pj4+QXMgbWVudGlvbmVk IGluIHRoZSBtYWlsIHlvdSBwb2ludGVkIGFib3ZlLCB0aGlzIHNlcmllcyBpcyBub3QgZW5vdWdo IHRvIG1ha2UKPj4+Pj5iaWcuTElUVExFIHdvcmtpbmcgb24gdGhlbi4gWGVuIGlzIGFsd2F5cyB1 c2luZyB0aGUgYm9vdCBDUFUgdG8gZGV0ZWN0IHRoZQo+Pj4+Pmxpc3Qgb2YgZmVhdHVyZXMuIFdp dGggYmlnLkxJVFRMRSBmZWF0dXJlcyBtYXkgbm90IGJlIHRoZSBzYW1lLgo+Pj4+Pgo+Pj4+PkFu ZCBJIHdvdWxkIHByZWZlciB0byBzZWUgWGVuIHN1cHBvcnRpbmcgYmlnLkxJVFRMRSBjb3JyZWN0 bHkgYmVmb3JlCj4+Pj4+YmVnaW5uaW5nIHRvIHRoaW5rIHRvIGV4cG9zZSBiaWcuTElUVExFIHRv IHRoZSB1c2Vyc3BhY2UgKHZpYSBjcHVwb29sKQo+Pj4+PmF1dG9tYXRpY2FsbHkuCj4+Pj4KPj4+ PkRvIHlvdSBtZWFuIHZjcHVzIGJlIHNjaGVkdWxlZCBiZXR3ZWVuIGJpZyBhbmQgbGl0dGxlIGNw dXMgZnJlZWx5Pwo+Pj4KPj4+Qnkgc3VwcG9ydGluZyBiaWcuTElUVExFIGNvcnJlY3RseSBJIG1l YW50IFhlbiB0aGlua3MgdGhhdCBhbGwgdGhlIGNvcmVzIGhhcwo+Pj50aGUgc2FtZSBzZXQgb2Yg ZmVhdHVyZXMuIFNvIHRoZSBmZWF0dXJlIGRldGVjdGlvbiBpcyBvbmx5IGRvbmUgdGhlIGJvb3Qg Q1BVLgo+Pj5TZWUgcHJvY2Vzc29yX3NldHVwIGZvciBpbnN0YW5jZS4uLgo+Pj4KPj4+TW92aW5n IHZDUFVzIGJldHdlZW4gYmlnIGFuZCBsaXR0bGUgY29yZXMgd291bGQgYmUgYSBoYXJkIHRhc2sg KGNhY2hlIGxpbmUKPj4+aXNzdWUsIGFuZCBwb3NzaWJseSBmZWF0dXJlKSBhbmQgSSBkb24ndCBl eHBlY3QgdG8gZXZlciBjcm9zcyB0aGlzIGluIFhlbi4KPj4+SG93ZXZlciwgSSBhbSBleHBlY3Rp bmcgdG8gc2VlIGJpZy5MSVRUTEUgZXhwb3NlZCB0byB0aGUgZ3Vlc3QgKGkuZSBoYXZpbmcKPj4+ YmlnIGFuZCBsaXR0bGUgdkNQVXMpLgo+Pgo+PmJpZyB2Q1BVcyBzY2hlZHVsZWQgb24gYmlnIFBo eXNpY2FsIENQVXMgYW5kIGxpdHRsZSB2Q1BVcyBzY2hlZHVsZWQgb24gbGl0dGxlCj4+cGh5c2lj YWwgY3B1cywgcmlnaHQ/Cj4+SWYgaXQgaXMsIGlzIHRoZXJlIGlzIGEgbmVlZCB0byBsZXQgWGVu IHRoaW5rIGFsbCB0aGUgY29yZXMgaGFzIHRoZSBzYW1lIHNldAo+Pm9mIGZlYXR1cmVzPwo+Cj5J IHRoaW5rIHlvdSBtaXNzZWQgbXkgcG9pbnQuIFRoZSBmZWF0dXJlIHJlZ2lzdGVycyBvbiBiaWcg YW5kIGxpdHRsZSBjb3Jlcwo+bWF5IGJlIGRpZmZlcmVudC4gQ3VycmVudGx5LCBYZW4gaXMgcmVh ZGluZyB0aGUgZmVhdHVyZSByZWdpc3RlcnMgb2YgdGhlIENQVQo+Ym9vdCBhbmQgd3JvbmdseSBh c3N1bWVzIHRoYXQgdGhvc2UgZmVhdHVyZXMgd2lsbCBleGlzdHMgb24gYWxsIENQVXMuIFRoaXMg aXMKPm5vdCB0aGUgY2FzZSBhbmQgc2hvdWxkIGJlIGZpeGVkIGJlZm9yZSB3ZSBhcmUgZ2V0dGlu ZyBpbiB0cm91YmxlLgo+Cj4+Cj4+RGV2ZWxvcGluZyBiaWcubGl0dGxlIGd1ZXN0IHN1cHBvcnQs IEkgYW0gbm90IHN1cmUgaG93IG11Y2ggZWZmb3J0cyBuZWVkZWQuCj4+SXMgdGhpcyByZWFsbHkg bmVlZGVkPwo+Cj5UaGlzIGlzIG5vdCBuZWNlc3NhcnkgYXQgdGhlIG1vbWVudCwgYWx0aG91Z2gg SSBoYXZlIHNlZW4gc29tZSBpbnRlcmVzdCBhYm91dAo+aXQuIFJ1bm5pbmcgYSBndWVzdCBvbmx5 IG9uIGEgbGl0dGxlIGNvcmUgaXMgYSBuaWNlIGJlZ2lubmluZywgYnV0IGEgZ3Vlc3QKPm1heSB3 YW50IHRvIHRha2UgYWR2YW50YWdlIG9mIGJpZy5MSVRUTEUgKHJ1bm5pbmcgaHVuZ3J5IGFwcCBv biBiaWcgb25lIGFuZAo+bGl0dGxlIG9uIHNtYWxsIG9uZSkuCj4KPj4KPj4+Cj4+Pj4KPj4+PlRo aXMgcGF0Y2hzZXQgaXMgdG8gdXNlIGNwdXBvb2wgdG8gYmxvY2sgdGhlIHZjcHUgYmUgc2NoZWR1 bGVkIGJldHdlZW4gYmlnIGFuZAo+Pj4+bGl0dGxlIGNwdXMuCj4+Pj4KPj4+Pj4KPj4+Pj5TZWUg Zm9yIGluc3RhbmNlIHYtPmFyY2guYWN0bHIgPSBSRUFEX1NZU1JFRzMyKEFDVExSX0VMMSkuCj4+ Pj4KPj4+PlRoYW5rcyBmb3IgdGhpcy4gSSBvbmx5IGV4cG9zZSBjcHVpZCB0byBndWVzdCwgbWlz c2VkIGFjdGxyLiBJJ2xsIGNoZWNrCj4+Pj50aGUgQTUzIGFuZCBBNzIgVFJNIGFib3V0IEFBcmNo NjQgaW1wbGVtZW50YXRpb25kIGRlZmluZWQgcmVnaXN0ZXJzLgo+Pj4+VGhpcyBhY3RsciBjYW4g YmUgYWRkZWQgdG8gdGhlIGNwdXBvb2xfYXJjaF9pbmZvIGFzIG1pZHIuCj4+Pj4KPj4+PlJlYWRp bmcgInZjcHVfaW5pdGlhbGlzZSIsIHNlZW1zIG9ubHkgTUlEUiBhbmQgQUNUTFIgbmVlZHMgdG8g YmUgaGFuZGxlZC4KPj4+PlBsZWFzZSBhZHZpc2UgaWYgSSBtaXNzZWQgYW55dGhpbmcgZWxzZS4K Pj4+Cj4+PkhhdmUgeW91IGNoZWNrIHRoZSByZWdpc3RlciBlbXVsYXRpb24/Cj4+Cj4+Q2hlY2tl ZCBtaWRyLiBIYXZlIG5vdCBjaGVja2VkIG90aGVycy4KPj5JIHRoaW5rIEkgbWlzc2VkIHNvbWUg cmVnaXN0ZXJzIGluIGN0eHRfc3dpdGNoX3RvLgo+Pgo+Pj4KPj4+Pgo+Pj4+Pgo+Pj4+Pj4KPj4+ Pj4+VGhpbmtpbmcgYW4gU29DIHdpdGggNCBBNTMoY3B1WzAtM10pICsgMiBBNzIoY3B1WzQtNV0p LCBjcHUwIGlzIHRoZSBmaXJzdCBvbmUKPj4+Pj4+dGhhdCBib290cyB1cC4gV2hlbiBYRU4gdHJp ZXMgdG8gYnJpbmd1cCBzZWNvbmRhcnkgQ1BVcywgYWRkIGNwdVswLTNdIHRvCj4+Pj4+PmNwdXBv b2wwIGFuZCBsZWF2ZSBjcHVbNC01XSBub3QgaW4gYW55IGNwdXBvb2wuIFRoZW4gd2hlbiBEb20w IGJvb3RzIHVwLAo+Pj4+Pj5geGwgY3B1cG9vbC1saXN0IC1jYCB3aWxsIHNob3cgY3B1WzAtM10g aW4gUG9vbC0wLgo+Pj4+Pj4KPj4+Pj4+VGhlbiB1c2UgdGhlIGZvbGxvd2luZyBzY3JpcHQgdG8g Y3JlYXRlIGEgbmV3IGNwdXBvb2wgYW5kIGFkZCBjcHVbNC01XSB0bwo+Pj4+Pj50aGUgY3B1cG9v bC4KPj4+Pj4+I3hsIGNwdXBvb2wtY3JlYXRlIG5hbWU9XCJQb29sLUE3MlwiIHNjaGVkPVwiY3Jl ZGl0MlwiCj4+Pj4+PiN4bCBjcHVwb29sLWNwdS1hZGQgUG9vbC1BNzIgNAo+Pj4+Pj4jeGwgY3B1 cG9vbC1jcHUtYWRkIFBvb2wtQTcyIDUKPj4+Pj4+I3hsIGNyZWF0ZSAtZCAvcm9vdC94ZW4vZG9t dS10ZXN0IHBvb2w9XCJQb29sLUE3MlwiCj4+Pj4+Cj4+Pj4+SSBhbSBhIGJpdCBjb25mdXNlZCB3 aXRoIHRoZXNlIHJ1bmVzLiBJdCBtZWFucyB0aGF0IG9ubHkgdGhlIGZpcnN0IGtpbmQgb2YKPj4+ Pj5DUFVzIGhhdmUgcG9vbCBhc3NpZ25lZC4gV2h5IGRvbid0IHlvdSBkaXJlY3RseSBjcmVhdGUg YWxsIHRoZSBwb29scyBhdCBib290Cj4+Pj4+dGltZT8KPj4+Pgo+Pj4+SWYgbmVlZCB0byBjcmVh dGUgYWxsIHRoZSBwb29scywgbmVlZCB0byBkZWNpZGVkIGhvdyBtYW55IHBvb2xzIG5lZWQgdG8g YmUgY3JlYXRlZC4KPj4+PkkgdGhvdWdodCBhYm91dCB0aGlzLCBidXQgSSBkbyBub3QgY29tZSBv dXQgYSBnb29kIGlkZWEuCj4+Pj4KPj4+PlRoZSBjcHVwb29sMCBpcyBkZWZpbmVkIGluIHhlbi9j b21tb24vY3B1cG9vbC5jLCBpZiBuZWVkIHRvIGNyZWF0ZSBtYW55IHBvb2xzLAo+Pj4+bmVlZCB0 byBhbGxvYyBjcHVwb29scyBkeW5hbWljYWxseSB3aGVuIGJvb3RpbmcuIEkgd291bGQgbm90IGxp a2UgdG8gY2hhbmdlIGEKPj4+PmxvdCB0byBjb21tb24gY29kZS4KPj4+Cj4+PldoeT8gV2Ugc2hv dWxkIGF2b2lkIHRvIGNob29zZSBhIHNwZWNpZmljIGRlc2lnbiBqdXN0IGJlY2F1c2UgdGhlIGNv bW1vbiBjb2RlCj4+PmRvZXMgbm90IGFsbG93IHlvdSB0byBkbyBpdCB3aXRob3V0IGhlYXZ5IGNo YW5nZS4KPj4+Cj4+PldlIG5ldmVyIGNhbWUgYWNyb3NzIHRoZSBiaWcuTElUVExFIHByb2JsZW0g b24geDg2LCBzbyBpdCBpcyBub3JtYWwgdG8gbW9kaWZ5Cj4+PnRoZSBjb2RlLgo+Pj4KPj4+PlRo ZSBpbXBsZW1lbnRhdGlvbiBpbiB0aGlzIHBhdGNoc2V0IEkgdGhpbmsgaXMgYW4gZWFzeSB3YXkg dG8gbGV0IEJpZyBhbmQgTGl0dGxlCj4+Pj5DUFVzIGFsbCBydW4uCj4+Pgo+Pj5JIGNhcmUgYWJv dXQgaGF2aW5nIGEgZGVzaWduIGFsbG93aW5nIGFuIGVhc3kgdXNlIG9mIGJpZy5MSVRUTEUgb24g WGVuLiBZb3VyCj4+PnNvbHV0aW9uIHJlcXVpcmVzIHRoZSBhZG1pbmlzdHJhdG9yIHRvIGtub3cg dGhlIHVuZGVybHlpbmcgcGxhdGZvcm0gYW5kCj4+PmNyZWF0ZSB0aGUgcG9vbC4KPj4KPj5JIHN1 cHBvc2UgYmlnLmxpdHRsZSBpcyBtYWlubHkgdXNlZCBpbiBlbWJlZGRlZCBTb0MgOikuIFNvIHRo ZSB1c2VyKGRldmVsb3Blcj8pCj4+bmVlZHMgdG8ga25vdyB0aGUgaGFyZHdhcmUgcGxhdGZvcm0u Cj4KPlRoZSB1c2VyIHdpbGwgYWx3YXlzIGJlIGhhcHB5IGlmIFhlbiBjYW4gc2F2ZSBoaW0gYSBi aXQgb2YgdGltZSB0byBjcmVhdGUKPmNwdXBvb2wuIDspCj4KPj4KPj4+Cj4+PkluIHRoZSBzb2x1 dGlvbiBJIHN1Z2dlc3RlZCwgdGhlIHBvb2xzIHdvdWxkIGJlIGNyZWF0ZWQgYnkgWGVuIChhbmQg dGhlIGluZm8KPj4+ZXhwb3NlZCB0byB0aGUgdXNlcnNwYWNlIGZvciB0aGUgYWRtaW4pLgo+Pgo+ PkkgdGhpbmsgdGhlIHJlYXNvbiB0byBjcmVhdGUgY3B1cG9vbHMgdG8gc3VwcG9ydCBiaWcubGl0 dGxlIFNvQyBpcyB0bwo+PmF2b2lkIHZjcHVzIHNjaGVkdWxlZCBiZXR3ZWVuIGJpZyBhbmQgbGl0 dGxlIHBoeXNpY2FsIGNwdXMuCj4+Cj4+SWYgbmVlZCB0byBzdXBwb3J0IGJpZy5saXR0bGUgZ3Vl c3QsIEkgdGhpbmsgbm8gbmVlZCB0byBjcmVhdGUgbW9yZQo+PmNwdXBvb2xzIGV4cGVjdCBjcHVw b28wLiBOZWVkIHRvIG1ha2Ugc3VyZSB2Y3B1cyBub3QgYmUgc2NoZWR1bGVkIGJldHdlZW4KPj5i aWcgYW5kIGxpdHRsZSBwaHlzaWNhbCBjcHVzLiBBbGwgdGhlIGNwdXMgbmVlZHMgdG8gYmUgaW4g b25lIGNwdXBvb2wuCj4+Cj4+Pgo+Pj4+Cj4+Pj4+Cj4+Pj4+QWxzbywgaW4gd2hpY2ggcG9vbCBh IGRvbWFpbiB3aWxsIGJlIGNyZWF0ZWQgaWYgbm9uZSBpcyBzcGVjaWZpZWQ/Cj4+Pj4+Cj4+Pj4+ Pk5vdyBgeGwgY3B1cG9vbC1saXN0IC1jYCBzaG93czoKPj4+Pj4+TmFtZSAgICAgICAgICAgIENQ VSBsaXN0Cj4+Pj4+PlBvb2wtMCAgICAgICAgICAwLDEsMiwzCj4+Pj4+PlBvb2wtQTcyICAgICAg ICA0LDUKPj4+Pj4+Cj4+Pj4+PmB4bCBjcHVwb29sLWxpc3RgIHNob3dzOgo+Pj4+Pj5OYW1lICAg ICAgICAgICAgICAgQ1BVcyAgIFNjaGVkICAgICBBY3RpdmUgICBEb21haW4gY291bnQKPj4+Pj4+ UG9vbC0wICAgICAgICAgICAgICAgNCAgICBjcmVkaXQgICAgICAgeSAgICAgICAgICAxCj4+Pj4+ PlBvb2wtQTcyICAgICAgICAgICAgIDIgICBjcmVkaXQyICAgICAgIHkgICAgICAgICAgMQo+Pj4+ Pj4KPj4+Pj4+YHhsIGNwdXBvb2wtY3B1LXJlbW92ZSBQb29sLUE3MiA0YCwgdGhlbiBgeGwgY3B1 cG9vbC1jcHUtYWRkIFBvb2wtMCA0YAo+Pj4+Pj5ub3Qgc3VjY2VzcywgYmVjYXVzZSBQb29sLTAg Y29udGFpbnMgQTUzIENQVXMsIGJ1dCBDUFU0IGlzIGFuIEE3MiBDUFUuCj4+Pj4+Pgo+Pj4+Pj5g eGwgY3B1cG9vbC1taWdyYXRlIERvbVUgUG9vbC0wYCB3aWxsIGFsc28gZmFpbCwgYmVjYXVzZSBE b21VIGlzIGNyZWF0ZWQKPj4+Pj4+aW4gUG9vbC1BNzIgd2l0aCBBNzIgdmNwdSwgd2hpbGUgUG9v bC0wIGhhdmUgQTUzIHBoeXNpY2FsIGNwdXMuCj4+Pj4+Pgo+Pj4+Pj5QYXRjaCAxLzU6Cj4+Pj4+ PnVzZSAiY3B1bWFza193ZWlnaHQoY3B1cG9vbDAtPmNwdV92YWxpZCk7IiB0byByZXBsYWNlICJu dW1fb25saW5lX2NwdXMoKSIsCj4+Pj4+PmJlY2F1c2UgbnVtX29ubGluZV9jcHVzKCkgY291bnRz IGFsbCB0aGUgb25saW5lIENQVXMsIGJ1dCBub3cgd2Ugb25seQo+Pj4+Pj5uZWVkIEJpZyBvciBM aXR0bGUgQ1BVcy4KPj4+Pj4KPj4+Pj5TbyBpZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5LCBpZiB0 aGUgYm9vdCBDUFUgaXMgYSBsaXR0bGUgQ1BVLCBET00wIHdpbGwKPj4+Pj5hbHdheXMgYmUgYWJs ZSB0byBvbmx5IHVzZSBsaXR0bGUgb25lcy4gSXMgdGhhdCByaWdodD8KPj4+Pgo+Pj4+WWVhaC4g RG9tMCBvbmx5IHVzZSB0aGUgbGl0dGxlIG9uZXMuCj4+Pgo+Pj5UaGlzIGlzIHJlYWxseSBiYWQs IGRvbTAgb24gbm9ybWFsIGNhc2Ugd2lsbCBoYXZlIGFsbCB0aGUgYmFja2VuZHMuIEl0IG1heQo+ Pj5ub3QgYmUgcG9zc2libGUgdG8gc2VsZWN0IHRoZSBib290IENQVSwgYW5kIHRoZXJlZm9yZSBh bHdheXMgZ2V0IGEgbGl0dGxlCj4+PkNQVS4KPj4KPj5Eb20wIHJ1bnMgaW4gY3B1cG9vbDAuIGNw dXBvb2wwIG9ubHkgY29udGFpbnMgdGhlIGNwdVswLTNdIGluIG15IGNhc2UuCj4KPlNvIHRoZSBw ZXJmb3JtYW5jZSBvZiBkb20wIHdpbGwgYmUgaW1wYWN0ZWQgYmVjYXVzZSBpdCB3aWxsIG9ubHkg dXNlIGxpdHRsZQo+Y29yZXMuCj4KPj4KPj4+Cj4+PkNyZWF0aW5nIHRoZSBwb29sIGF0IGJvb3Qg dGltZSB3b3VsZCBoYXZlIGF2b2lkIGEgc3VjaCBpc3N1ZSBiZWNhdXNlLCB1bmxlc3MKPj4+d2Ug ZXhwb3NlIGJpZy5MSVRUTEUgdG8gZG9tMCAoSSB3b3VsZCBuZWVkIHRoZSBpbnB1dCBvZiBHZW9y Z2UgYW5kIERhcmlvIGZvcgo+Pj50aGlzIGJpdHMpLCB3ZSBjb3VsZCBoYXZlIGEgcGFyYW1ldGVy IHRvIHNwZWNpZnkgd2hpY2ggc2V0IG9mIENQVXMgKGUuZyBwb29sKQo+Pj50byBhbGxvY2F0ZSBk b20wIHZDUFVzLgo+Pgo+PmRvbTAgaXMgY29udHJvbCBkb21haW4sIEkgdGhpbmsgbm8gbmVlZCB0 byBleHBvc2UgYmlnLmxpdHRsZSBmb3IgZG9tMC4KPj5QaW4gVkNQVSB0byBzcGVjaWZpYyBwaHlz aWNhbCBjcHVzLCB0aGlzIG1heSBoZWxwIHN1cHBvcnQgYmlnLmxpdHRsZSBndWVzdC4KPj4KPj4+ Cj4+Pk5vdGUsIHRoYXQgSSBhbSBub3QgYXNraW5nIHlvdSB0byBpbXBsZW1lbnQgZXZlcnl0aGlu Zy4gQnV0IEkgdGhpbmsgd2UgbmVlZCBhCj4+PmNvaGVyZW50IHZpZXcgb2YgYmlnLkxJVFRMRSBz dXBwb3J0IGluIFhlbiB0b2RheSB0byBnbyBmb3J3YXJkLgo+Pgo+PlllYWguIFRoZW4geW91IHBy ZWZlciBzdXBwb3J0aW5nIGJpZy5saXR0bGUgZ3Vlc3Q/Cj4KPkkgaGF2ZSBzZWVuIHNvbWUgaW50 ZXJlc3Qgb24gaXQuCgpJIGhhdmUgbm8gaWRlYSBhYm91dCB0aGUgdXNlIGNhc2VzLiBBbnl3YXkg YmlnLmxpdHRsZSBndWVzdCBkbyBoYXZlIGJlbmVmaXRzLgoKPgo+PlBsZWFzZSBhZHZpc2UgaWYg eW91IGhhdmUgYW55IHBsYW4vaWRlYXMgb3Igd2hhdCBJIGNhbiBkbyBvbiB0aGlzLgo+Cj5JIGFs cmVhZHkgZ2F2ZSBzb21lIGlkZWFzIG9uIHdoYXQgY291bGQgYmUgZG9uZSBmb3IgYmlnLkxJVFRM RSBzdXBwb3J0LiBCdXQsCj5JIGFkbWl0IEkgaGF2ZW4ndCB5ZXQgbXVjaCB0aGluayBhYm91dCBp dCwgc28gSSBtYXkgbWlzcyBzb21lIHBhcnQuCgpUaGlzIGNvbWVzIHRvIG1lIGEgcXVlc3Rpb24g YWJvdXQgRG9tMC4gRG8gd2UgbmVlZCB0byBsZXQgRG9tMCBiZSBiaWcubGl0dGxlPyBvcgphZGQg YSBib290YXJncyB0byBpbmRpY2F0ZSBiaWcubGl0dGxlLCBiaWcgb3IgbGl0dGxlIGZvciBEb20w PwoKUmVnYXJkcywKUGVuZy4KPgo+UmVnYXJkcywKPgo+LS0gCj5KdWxpZW4gR3JhbGwKCi0tIAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==