From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [PATCH v2 1/1] XEN/ARM: Add Odroid-XU3/XU4 support Date: Tue, 9 Feb 2016 14:19:17 +0000 Message-ID: <1455027557.19857.82.camel@citrix.com> References: <1454996927-21393-1-git-send-email-suriyan.r@gmail.com> <1455011595.19857.11.camel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Suriyan Ramasami Cc: stefano.stabellini@citrix.com, "xen-devel@lists.xen.org" List-Id: xen-devel@lists.xenproject.org T24gVHVlLCAyMDE2LTAyLTA5IGF0IDA0OjUwIC0wODAwLCBTdXJpeWFuIFJhbWFzYW1pIHdyb3Rl Ogo+IAo+IAo+IE9uIFR1ZSwgRmViIDksIDIwMTYgYXQgMTo1MyBBTSwgSWFuIENhbXBiZWxsIDxp YW4uY2FtcGJlbGxAY2l0cml4LmNvbT4KPiB3cm90ZToKPiA+IE9uIE1vbiwgMjAxNi0wMi0wOCBh dCAyMTo0OCAtMDgwMCwgU3VyaXlhbiBSYW1hc2FtaSB3cm90ZToKPiA+ID4gVGhlIE9kcm9pZC1Y VTMvWFU0IGZyb20gaGFyZGtlcm5lbCBpcyBhbiBFeHlub3MgNTQyMiBiYXNlZCBib2FyZC4KPiA+ ID4gQ29kZSBmcm9tIG1jcG0tZXh5bm9zLmMgYW5kIG1jcG0tcGxhdHNtcC5jIGZyb20gdGhlIExp bnV4IGtlcm5lbAo+ID4gPiBoYXMgYmVlbiB1c2VkIHRvIGdldCBhbGwgdGhlIDggY29yZXMgZnJv bSB0aGUgMiBjbHVzdGVycyBwb3dlcmVkCj4gPiA+IG9uLgo+ID4gPiBUaGUgTGludXggRFRTIGZv ciB0aGVzZSBvZHJvaWQgdXNlcyAic2Ftc3VuZyxleHlub3M1ODAwIiBhcwo+ID4gPiB0aGUgbWFj aGluZSBjb21wYXRpYmxlIHN0cmluZy4gSGVuY2UsIHRoZSBzYW1lIGlzIHVzZWQgaGVyZWluLgo+ ID4gPgo+ID4gPiBUaGlzIGNoYW5nZSBoYXMgYmVlbiB0ZXN0ZWQgb24gdGhlIE9kcm9pZC1YVS9Y VTMvWFU0Lgo+ID4gPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBTdXJpeWFuIFJhbWFzYW1pIDxzdXJp eWFuLnJAZ21haWwuY29tPgo+ID4gCj4gPiBUaGFua3MsIHRoaXMgbm93IGxvb2tzIGdvb2QgdG8g bWUsIHdpdGggb25lIHF1ZXN0aW9uIGFib3V0IGEgY29tbWVudAo+ID4gd2hpY2gKPiA+IEkgY291 bGQgcmVzb2x2ZSB1cG9uIGNvbW1pdCBpZiB3ZSBhZ3JlZSBhIHdvcmRpbmcuCj4gPiAKPiA+ID4g LS0tCj4gPiA+IENoYW5nZXMgYmV0d2VlbiB2ZXJzaW9ucyBhcyBmb2xsb3dzOgo+ID4gPgo+ID4g PiB2MjoKPiA+ID4gVHJ5IHRvIHVzZSBjb21tb24gY29kZSBhcyBtdWNoIGFzIHBvc3NpYmxlCj4g PiA+Cj4gPiA+IHYxOgo+ID4gPiBJbml0aWFsIGNvZGUgc3VibWlzc2lvbgo+ID4gPiAtLS0KPiA+ ID4gwqB4ZW4vYXJjaC9hcm0vcGxhdGZvcm1zL2V4eW5vczUuYyB8IDYxCj4gPiA+ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KPiA+ID4gwqAxIGZpbGUgY2hhbmdlZCwg NTggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiA+ID4KPiA+ID4gZGlmZiAtLWdpdCBh L3hlbi9hcmNoL2FybS9wbGF0Zm9ybXMvZXh5bm9zNS5jCj4gPiA+IGIveGVuL2FyY2gvYXJtL3Bs YXRmb3Jtcy9leHlub3M1LmMKPiA+ID4gaW5kZXggYmY0OTY0ZC4uMTJhZWEzMSAxMDA2NDQKPiA+ ID4gLS0tIGEveGVuL2FyY2gvYXJtL3BsYXRmb3Jtcy9leHlub3M1LmMKPiA+ID4gKysrIGIveGVu L2FyY2gvYXJtL3BsYXRmb3Jtcy9leHlub3M1LmMKPiA+ID4gQEAgLTM0LDkgKzM0LDE4IEBAIHN0 YXRpYyBib29sX3Qgc2VjdXJlX2Zpcm13YXJlOwo+ID4gPiDCoCNkZWZpbmUgRVhZTk9TX0FSTV9D T1JFX0NPTkZJRyhfbnIpIChFWFlOT1NfQVJNX0NPUkUwX0NPTkZJRyArICgweDgwCj4gPiAqCj4g PiA+IChfbnIpKSkKPiA+ID4gwqAjZGVmaW5lIEVYWU5PU19BUk1fQ09SRV9TVEFUVVMoX25yKSAo RVhZTk9TX0FSTV9DT1JFX0NPTkZJRyhfbnIpICsKPiA+IDB4NCkKPiA+ID4gwqAjZGVmaW5lIFM1 UF9DT1JFX0xPQ0FMX1BXUl9FTsKgwqDCoMKgwqDCoMKgMHgzCj4gPiA+ICsjZGVmaW5lIFM1UF9Q TVVfU1BBUkUywqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDB4OTA4Cj4gPiA+IMKgCj4gPiA+ IMKgI2RlZmluZSBTTUNfQ01EX0NQVTFCT09UwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKC00KQo+ ID4gPiDCoAo+ID4gPiArI2RlZmluZSBFWFlOT1M1ODAwX0NQVVNfUEVSX0NMVVNURVIgNAo+ID4g PiArCj4gPiA+ICsjZGVmaW5lIEVYWU5PUzU0MjBfS0ZDX0NPUkVfUkVTRVQwwqDCoEJJVCg4KQo+ ID4gPiArI2RlZmluZSBFWFlOT1M1NDIwX0tGQ19FVE1fUkVTRVQwwqDCoMKgQklUKDIwKQo+ID4g PiArCj4gPiA+ICsjZGVmaW5lIEVYWU5PUzU0MjBfS0ZDX0NPUkVfUkVTRVQoX25yKSBcCj4gPiA+ ICvCoMKgwqDCoMKgwqDCoMKgKChFWFlOT1M1NDIwX0tGQ19DT1JFX1JFU0VUMCB8IEVYWU5PUzU0 MjBfS0ZDX0VUTV9SRVNFVDApIDw8Cj4gPiA+IChfbnIpKQo+ID4gPiArCj4gPiA+IMKgc3RhdGlj IGludCBleHlub3M1X2luaXRfdGltZSh2b2lkKQo+ID4gPiDCoHsKPiA+ID4gwqDCoMKgwqDCoHVp bnQzMl90IHJlZzsKPiA+ID4gQEAgLTE2NiwxNCArMTc1LDIzIEBAIHN0YXRpYyB2b2lkIGV4eW5v c19jcHVfcG93ZXJfdXAodm9pZCBfX2lvbWVtCj4gPiA+ICpwb3dlciwgaW50IGNwdSkKPiA+ID4g wqBzdGF0aWMgaW50IGV4eW5vczVfY3B1X3Bvd2VyX3VwKHZvaWQgX19pb21lbSAqcG93ZXIsIGlu dCBjcHUpCj4gPiA+IMKgewo+ID4gPiDCoMKgwqDCoMKgdW5zaWduZWQgaW50IHRpbWVvdXQ7Cj4g PiA+ICvCoMKgwqDCoHVuc2lnbmVkIGludCBtcGlkciwgcGNwdSwgcGNsdXN0ZXIsIGNwdW5yOwo+ ID4gPiArCj4gPiA+ICvCoMKgwqDCoG1waWRyID0gY3B1X2xvZ2ljYWxfbWFwKGNwdSk7Cj4gPiA+ ICvCoMKgwqDCoHBjcHUgPSBNUElEUl9BRkZJTklUWV9MRVZFTChtcGlkciwgMCk7Cj4gPiA+ICvC oMKgwqDCoHBjbHVzdGVyID0gTVBJRFJfQUZGSU5JVFlfTEVWRUwobXBpZHIsIDEpOwo+ID4gPiDC oAo+ID4gPiAtwqDCoMKgwqBpZiAoICFleHlub3NfY3B1X3Bvd2VyX3N0YXRlKHBvd2VyLCBjcHUp ICkKPiA+ID4gK8KgwqDCoMKgY3B1bnIgPSBwY3B1ICsgKHBjbHVzdGVyICogRVhZTk9TNTgwMF9D UFVTX1BFUl9DTFVTVEVSKTsKPiA+ID4gK8KgwqDCoMKgZHByaW50ayhYRU5MT0dfREVCVUcsICJj cHU6ICVkIHBjcHU6ICVkLCBjbHVzdGVyOiAlZCBjcHVucjoKPiA+ICVkXG4iLAo+ID4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgY3B1LCBwY3B1LCBwY2x1c3RlciwgY3B1bnIpOwo+ID4gPiAr Cj4gPiA+ICvCoMKgwqDCoGlmICggIWV4eW5vc19jcHVfcG93ZXJfc3RhdGUocG93ZXIsIGNwdW5y KSApCj4gPiA+IMKgwqDCoMKgwqB7Cj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgZXh5bm9zX2NwdV9w b3dlcl91cChwb3dlciwgY3B1KTsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqBleHlub3NfY3B1X3Bv d2VyX3VwKHBvd2VyLCBjcHVucik7Cj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoHRpbWVvdXQgPSAx MDsKPiA+ID4gwqAKPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgLyogd2FpdCBtYXggMTAgbXMgdW50 aWwgY3B1IGlzIG9uICovCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgd2hpbGUgKCBleHlub3NfY3B1 X3Bvd2VyX3N0YXRlKHBvd2VyLCBjcHUpICE9Cj4gPiA+IFM1UF9DT1JFX0xPQ0FMX1BXUl9FTiAp Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgd2hpbGUgKCBleHlub3NfY3B1X3Bvd2VyX3N0YXRlKHBv d2VyLCBjcHVucikgIT0KPiA+ID4gUzVQX0NPUkVfTE9DQUxfUFdSX0VOICkKPiA+ID4gwqDCoMKg wqDCoMKgwqDCoMKgewo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICggdGltZW91 dC0tID09IDAgKQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnJlYWs7 Cj4gPiA+IEBAIC0xODYsNiArMjA0LDQyIEBAIHN0YXRpYyBpbnQgZXh5bm9zNV9jcHVfcG93ZXJf dXAodm9pZCBfX2lvbWVtCj4gPiAqcG93ZXIsCj4gPiA+IGludCBjcHUpCj4gPiA+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgZHByaW50ayhYRU5MT0dfRVJSLCAiQ1BVJWQgcG93ZXIgZW5hYmxl IGZhaWxlZFxuIiwgY3B1KTsKPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4g LUVUSU1FRE9VVDsKPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgfQo+ID4gPiArCj4gPiA+ICvCoMKg wqDCoMKgwqDCoMKgLyoKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoCogVGhpcyBhc3N1bWVzIHRo ZSBjbHVzdGVyIG51bWJlciBvZiB0aGUgYmlnIGNvcmVzKENvcnRleAo+ID4gQTE1KQo+ID4gPiAr wqDCoMKgwqDCoMKgwqDCoMKgKiBpcyAwIGFuZCB0aGUgTGl0dGxlIGNvcmVzKENvcnRleCBBNykg aXMgMS4KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoCogV2hlbiB0aGUgc3lzdGVtIHdhcyBib290 ZWQgZnJvbSB0aGUgTGl0dGxlIGNvcmUsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAqIHRoZXkg c2hvdWxkIGJlIHJlc2V0IGR1cmluZyBwb3dlciB1cCBjcHUuCj4gPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqAqIE5vdGUgdGhhdCB0aGUgYmVsb3cgY29uZGl0aW9uIGlzIHRydWUgZm9yIE9kcm9pZCBY VTMvWFU0LAo+ID4gYW5kCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAqIGZhbHNlIGZvciB0aGUg WFUgYW5kIHRoZSBFeHlub3M1ODAwIGJhc2VkIGJvYXJkcy4KPiA+IAo+ID4gSSB0aGluayB0aGUg U29DIGlzIG1vcmUgcmVsZXZhbnQvdXNlZnVsIGluIHRoaXMgY29udGV4dCB0aGFuIHNwZWNpZmlj Cj4gPiBib2FyZHMuIFNvIEkgdGhpbmsgd2hhdCBpdCBpcyB0cnlpbmcgdG8gc2F5IGhlcmUgaXMg dGhhdCBmb3Igc3lzdGVtcwo+ID4gbWF0Y2hpbmfCoHNhbXN1bmcsZXh5bm9zNTQxMCBwY2x1c3Rl ciB3aWxsIGFsd2F5cyBiZSB6ZXJvLCB3aGVyZSBhcyBmb3IKPiA+IG9uZXMKPiA+IG1hdGNoaW5n wqBzYW1zdW5nLGV4eW5vczU4MDAgaXQgY2FuIGJlIG5vbi16ZXJvLCBhbmQgZm9yIG5vbi16ZXJv Cj4gPiBjbHVzdGVycwo+ID4gd2UgbmVlZCB0byBkbyBzb21lIGV4dHJhIGJyaW5ndXAuCj4gPiAK PiBJIGJlbGlldmUgZm9yIHNvbWUgU29DcyBpdHMgYm9hcmQgYmFzZWQgKDU0MjIgPSBwaW4gY29u dHJvbGxlZCkgYW5kIGZvcgo+IG90aGVycyBpdHMgcHVyZWx5IFNvQyBiYXNlZCAoNTQyMCA9IEE3 IGJvb3QsIDU4MDAgPSBBMTUgYm9vdCkuIEZvcgo+IGV4YW1wbGUsIHBsZWFzZSBsb29rIGF0IHRo aXMgcG9zdDogaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMTUvMTIvMTEvMTA3Cj4gd2hpY2ggbWVu dGlvbnMgc29tZXRoaW5nIGFsb25nIHRob3NlIGxpbmVzLgo+IFsuLi5dCj4gwqBJIGFncmVlIG9u IHRoZSBmaXJzdCB0d28gcGFyYWdyYXBocy4KPiBGb3IgdGhlIHRoaXJkIHBhcmFncmFwaCwgdGhl IHJlYnV0dGFsIGlzIHRoYXQgdGhlIGV4eW5vczU4MDAgYW5kCj4gZXh5bm9zNTQyMiBiYXNlZCBT b0NzIGNhbiBoYXZlIGJvdGggY2x1c3RlcnMgb24gYXQgdGhlIHNhbWUgdGltZS4gSGVuY2UsCj4g dGhlIHRoaXJkIHBhcmFncmFwYWggY29tbWVudCB3aWxsIGhhdmUgdG8gYmUgdHdlYWtlZCBmdXJ0 aGVyLiBQb3NzaWJseQo+IHJlYWRpbmc6Cj4gVGhlIGV4eW5vczU4MDAgYW5kIGV4eW5vczU0MjIg Y2FuIGhhdmUgYm90aCBjbHVzdGVycyBvbiBhdCB0aGUgc2FtZSB0aW1lLgo+IFRoZSBleHlub3M1 ODAwIGJvb3RzIHVwIHdpdGggY3B1MCBvbiBjbHVzdGVyMCAoQTE1KS4gVGhlIGV4eW5vczU0MjIg Y2FuCj4gYm9vdCB1cCBvbiBlaXRoZXIgY2x1c3RlcnMgYXMgaXRzIHBpbiBjb250cm9sbGVkLiBJ biB0aGlzIGNhc2UgdGhlIERUUwo+IHNob3VsZCBwcm9wZXJseSByZWZsZWN0IHRoZSBjcHUgb3Jk ZXIuCgpEb2VzIHRoZSBPUyBuZWVkIHRvIGJlIGF3YXJlIG9mIGFsbCB0aGVzZSBjb21iaW5hdGlv bnMgdGhvdWdoPyBJcyBpdCBub3QKc3VmZmljaWVudCB0byBrbm93IGhvdyB0byBicmluZyB1cCBh biBBMTUgY29yZSBhbmQgaG93IHRvIGJyaW5nIHVwIGFuIEE3CmNvcmUgYW5kIHRoZW4ganVzdCBk byBzbyBiYXNlZCBvbiB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIERUUywgd2l0aG91dApuZWVkaW5n IHRvIHdvcnJ5IGFib3V0IHdoaWNoIHNvcnQgb2YgY29yZSB3ZSBoYXBwZW5lZCB0byBoYXZlIGJv b3RlZCBvbj8KCj4gIFRoZSBleHlub3M1NDEwIGNhbiBoYXZlIG9ubHkgb25lIGNsdXN0ZXIgb24g YXQgYSB0aW1lLCBhbmQgaXQgYm9vdHMgdXAKPiB3aXRoIHBjbHVzdGVyID09IDAuCj4gQW55IHR3 ZWFrcyBhbmQgY29tbWVudHMgb24gdGhlIGFib3ZlIGlzIGFwcHJlY2lhdGVkLgoKSG93IG11Y2gg b2YgdGhpcyBpcyBkb3duIHRvIHBoeXNpY2FsIGgvdyBsaW1pdGF0aW9ucyBhbmQgaG93IG11Y2gg b2YgaXQgaXMKZG93biB0byBmaXJtd2FyZSBvciBzb2Z0d2FyZSBsaW1pdGF0aW9ucz8gQ2FuIHlv dSBmbGlwIHRoZSB0byB0aGUgb3RoZXIKY2x1c3RlciBzb21laG93PwoKPiA+IMKgSSBoYXZlIG9u ZSBvdGhlciBxdWVzdGlvbiAtLSBkb2VzIHRoaXMgcGF0Y2ggcmVzdWx0IGluIGEgWGVuIHN5c3Rl bQo+ID4gd2hpY2gKPiA+IGNvbnNpc3RzIG9mIGJvdGggQTcgYW5kIEExNSBwY3B1cyBiZWluZyBs aXZlIGF0IHRoZSBzYW1lIHRpbWU/IERvZXMKPiA+IHRoYXQKPiA+IGFjdHVhbGx5IHdvcmsgZ2l2 ZW4gdGhlIHN1YnRsZSBkaWZmZXJlbmNlcyBpbiB0aGluZ3MgbGlrZSB0aGUgY2FjaGUKPiA+IGxp bmUKPiA+IGxlbmd0aD8gSSB3b3VsZCBleHBlY3QgdGhlcmUgdG8gbmVlZCB0byBiZSBvdGhlciBw YXRjaGVzIHRvIHN1cHBvcnQgYQo+ID4gaGV0ZXJvZ2VuZW91cyBjb3JlIGNvbmZpZ3VyYXRpb24u Cj4gPiAKPiBZZXMsIGl0IGRvZXMgZ2V0IGJvdGggQTcgYW5kIEExNSBjbHVzdGVycyB1cCBhdCB0 aGUgc2FtZSB0aW1lLiBJIGFtIHN1cmUKPiB0aGF0IHRoZXJlIG5lZWRzIHRvIGJlIHBhdGNoZXMg dG8gc3VwcG9ydCB0aGlzIGhldGVyb2dlbm91cyBjb3JlCj4gY29uZmlndXJhdGlvbiwgYnV0IGlm IHdlIGtlZXAgdGhlIGRvbXMgcGlubmVkIHRvIHRoZSBzYW1lIENQVSB0eXBlIHRoZW4gSQo+IGhh dmVuJ3QgZmFjZWQgYW55IGlzc3Vlcy4KPiBGb3IgZXhhbXBsZSBpZiBJIGhhZCBhIGRvbVUgcGlu bmVkIHRvIENQVSAzIChBNykgYW5kIENQVSA0IChBMTUpIHRoZW4gSQo+IGZhY2VkIGhhbmdzLgoK SWYgdGhhdCdzIHRoZSBjYXNlIHRoZW4gSSdtIHNvcnJ5IGJ1dCBJJ20gcmF0aGVyIHdhcnkgb2Yg dGFraW5nIHRoaXMgcGF0Y2gKYXMgaXQgaXMsIHNpbmNlIHRoZSBkZWZhdWx0cyBhcmUgYWxsIHRv IGFsbG93IHZDUFVzIHRvIG1pZ3JhdGUgYXJvdW5kLCBzbwpwZW9wbGUgYXJlIGp1c3QgZ29pbmcg dG8gZ2V0IGEgYnJva2VuIHN5c3RlbSBvdXQgb2YgdGhlIGJveC4KClVudGlsIGFjdHVhbCBzdXBw b3J0IGZvciBoZXRlcm9nZW5lb3VzIGNvcmVzIGlzIGluIHBsYWNlIEknZCBtdWNoIHByZWZlciB0 bwpvbmx5IGJyaW5nIHVwIG9uZSBjbHVzdGVyLCBJIGRvbid0IG1pbmQgaWYgaXQgaXMKCiAgICBB bHdheXMgdGhlIEE3cwogICAgQWx3YXlzIHRoZSBBMTVzCiAgICBBbHdheXMgd2hhdGV2ZXIgdGhl IHN5c3RlbSBoYXMgYm9vdGVkIG9uCiAgICBTb21laG93IGNvbmZpZ3VyYWJsZSBhdCBib290IHRp bWUgYnkgdGhlIHVzZXIuCgpBbm90aGVyIG9wdGlvbiwgd2hpY2ggaXMgYSBiaXQgbW9yZSB3b3Jr IGJ1dCBub3QgaHVnZSwgd291bGQgYmUgdG8KYXV0b21hdGljYWxseSBwYXJ0aXRpb24gdGhlIHN5 c3RlbSBpbnRvIDIgY3B1cG9vbHMgYXQgYm9vdCwgY29ycmVzcG9uZGluZwp0byB0aGUgdHdvIGNs dXN0ZXJzIG9mIENQVXMgYW5kIGVuc3VyZSB0aGF0IGRvbTAgaXMgcmVzaWRlbnQgaW4gb25seSBv bmUKY3B1IHBvb2wsIEkgdGhpbmsgdGhhdCB3b3VsZCBiZSB0aGUgbWluaW1hbGx5IHdvcmthYmxl IGFycmFuZ2VtZW50IGZvciBhCmhldGVyb2dlbmVvdXMgc3lzdGVtLgoKSWFuLgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2 ZWwK