From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH 4/7] xen/arm32: Add skeleton to harden branch predictor aliasing attacks Date: Thu, 25 Jan 2018 11:36:23 +0000 Message-ID: References: <20180119134103.3390-1-julien.grall@linaro.org> <20180119134103.3390-5-julien.grall@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Stefano Stabellini Cc: andre.przywara@linaro.org, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org SGkgU3RlZmFubywKCk9uIDI0LzAxLzE4IDIzOjU0LCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6 Cj4gT24gRnJpLCAxOSBKYW4gMjAxOCwgSnVsaWVuIEdyYWxsIHdyb3RlOgo+PiBBbGlhc2luZyBh dHRhY2tlZCBhZ2FpbnN0IENQVSBicmFuY2ggcHJlZGljdG9ycyBjYW4gYWxsb3cgYW4gYXR0YWNr ZXIgdG8KPj4gcmVkaXJlY3Qgc3BlY3VsYXRpdmUgY29udHJvbCBmbG93IG9uIHNvbWUgQ1BVcyBh bmQgcG90ZW50aWFsbHkgZGl2dWxnZQo+PiBpbmZvcm1hdGlvbiBmcm9tIG9uZSBjb250ZXh0IHRv IGFub3RoZXIuCj4+Cj4+IFRoaXMgcGF0Y2ggYWRkcyBpbml0aWF0aWFsIHNrZWxldG9uIGNvZGUg YmVoaW5kIGEgbmV3IEtjb25maWcgb3B0aW9uCj4+IHRvIGVuYWJsZSBpbXBsZW1lbnRhdGlvbi1z cGVjaWZpYyBtaXRpZ2F0aW9ucyBhZ2FpbnN0IHRoZXNlIGF0dGFja3MKPj4gZm9yIENQVXMgdGhh dCBhcmUgYWZmZWN0ZWQuCj4+Cj4+IE1vc3Qgb2YgbWl0aWdhdGlvbnMgd2lsbCBoYXZlIHRvIGJl IGFwcGxpZWQgd2hlbiBlbnRlcmluZyB0byB0aGUKPj4gaHlwZXJ2aXNvciBmcm9tIHRoZSBndWVz dCBjb250ZXh0Lgo+Pgo+PiBCZWNhdXNlIHRoZSBhdHRhY2sgaXMgYWdhaW5zdCBicmFuY2ggcHJl ZGljdG9yLCBpdCBpcyBub3QgcG9zc2libGUgdG8KPj4gc2FmZWx5IHVzZSBicmFuY2ggaW5zdHJ1 Y3Rpb24gYmVmb3JlIHRoZSBtaXRpZ2F0aW9uIGlzIGFwcGxpZWQuCj4+IFRoZXJlZm9yZSB0aGlz IGhhcyB0byBiZSBkb25lIGluIHRoZSB2ZWN0b3IgZW50cnkgYmVmb3JlIGp1bXAgdG8gdGhlCj4+ IGhlbHBlciBoYW5kbGluZyBhIGdpdmVuIGV4Y2VwdGlvbi4KPj4KPj4gSG93ZXZlciwgb24gYXJt MzIsIGVhY2ggdmVjdG9yIGNvbnRhaW4gYSBzaW5nbGUgaW5zdHJ1Y3Rpb24uIFRoaXMgbWVhbnMK Pj4gdGhhdCB0aGUgaGFyZGVuZWQgdmVjdG9yIHRhYmxlcyBtYXkgcmVseSBvbiB0aGUgc3RhdGUg b2YgcmVnaXN0ZXJzIHRoYXQKPj4gZG9lcyBub3QgaG9sZCB3aGVuIGluIHRoZSBoeXBlcnZpc29y IChlLmcgU1AgaXMgOCBieXRlcyBhbGlnbmVkKS4KPj4gVGhlcmVmb3JlIGh5cGVydmlzb3IgY29k ZSBydW5uaW5nIHdpdGggZ3Vlc3QgdmVjdG9ycyB0YWJsZSBzaG91bGQgYmUKPj4gbWluaW1pemVk IGFuZCBhbHdheXMgaGF2ZSBpbnRlcnJ1cHRzIG1hc2tlZCB0byByZWR1Y2UgdGhlIHJpc2sgdG8g dXNlCj4+IHRoZW0uCj4+Cj4+IFRoaXMgcGF0Y2ggcHJvdmlkZXMgYW4gaW5mcmFzdHJ1Y3R1cmUg dG8gc3dpdGNoIHZlY3RvciB0YWJsZXMgYmVmb3JlCj4+IGVudGVyaW5nIHRvIHRoZSBndWVzdCBh bmQgd2hlbiBsZWF2aW5nIGl0Lgo+Pgo+PiBOb3RlIHRoYXQgYWx0ZXJuYXRpdmUgY291bGQgaGF2 ZSBiZWVuIHVzZWQsIGJ1dCBvbGRlciBYZW4gKDQuOCBvcgo+PiBlYXJsaWVyKSBkb2Vzbid0IGhh dmUgc3VwcG9ydC4gU28gYXZvaWQgdXNpbmcgYWx0ZXJuYXRpdmUgdG8gZWFzZQo+PiBiYWNrcG9y dGluZy4KPj4KPj4gVGhpcyBpcyBwYXJ0IG9mIFhTQS0yNTQuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6 IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGxpbmFyby5vcmc+Cj4gCj4gSSBvbmx5IGhhdmUg YSBjb3VwbGUgb2YgcXVlc3Rpb25zLiBJdCBsb29rcyBnb29kLgo+IAo+IAo+PiAtLS0KPj4gICB4 ZW4vYXJjaC9hcm0vS2NvbmZpZyAgICAgICB8ICAzICsrKwo+PiAgIHhlbi9hcmNoL2FybS9hcm0z Mi9lbnRyeS5TIHwgNDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0K Pj4gICB4ZW4vYXJjaC9hcm0vY3B1ZXJyYXRhLmMgICB8IDMwICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+PiAgIDMgZmlsZXMgY2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL0tjb25maWcgYi94ZW4vYXJj aC9hcm0vS2NvbmZpZwo+PiBpbmRleCAwNmZkODVjYzc3Li4yNzgyZWU2NTg5IDEwMDY0NAo+PiAt LS0gYS94ZW4vYXJjaC9hcm0vS2NvbmZpZwo+PiArKysgYi94ZW4vYXJjaC9hcm0vS2NvbmZpZwo+ PiBAQCAtMTkxLDYgKzE5MSw5IEBAIGNvbmZpZyBIQVJERU5fQlJBTkNIX1BSRURJQ1RPUgo+PiAg IGNvbmZpZyBBUk02NF9IQVJERU5fQlJBTkNIX1BSRURJQ1RPUgo+PiAgICAgICBkZWZfYm9vbCB5 IGlmIEFSTV82NCAmJiBIQVJERU5fQlJBTkNIX1BSRURJQ1RPUgo+PiAgIAo+PiArY29uZmlnIEFS TTMyX0hBUkRFTl9CUkFOQ0hfUFJFRElDVE9SCj4+ICsgICAgZGVmX2Jvb2wgeSBpZiBBUk1fMzIg JiYgSEFSREVOX0JSQU5DSF9QUkVESUNUT1IKPj4gKwo+PiAgIHNvdXJjZSAiY29tbW9uL0tjb25m aWciCj4+ICAgCj4+ICAgc291cmNlICJkcml2ZXJzL0tjb25maWciCj4+IGRpZmYgLS1naXQgYS94 ZW4vYXJjaC9hcm0vYXJtMzIvZW50cnkuUyBiL3hlbi9hcmNoL2FybS9hcm0zMi9lbnRyeS5TCj4+ IGluZGV4IGMyZmFkNWZlOWIuLjU0YTE3MzNmODcgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9hcmNoL2Fy bS9hcm0zMi9lbnRyeS5TCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9hcm0zMi9lbnRyeS5TCj4+IEBA IC0zNCw2ICszNCwyMCBAQAo+PiAgICAgICAgICAgYmxuZSBzYXZlX2d1ZXN0X3JlZ3MKPj4gICAK Pj4gICBzYXZlX2d1ZXN0X3JlZ3M6Cj4+ICsjaWZkZWYgQ09ORklHX0FSTTMyX0hBUkRFTl9CUkFO Q0hfUFJFRElDVE9SCj4+ICsgICAgICAgIC8qCj4+ICsgICAgICAgICAqIFJlc3RvcmUgdmVjdG9y cyB0YWJsZSB0byB0aGUgZGVmYXVsdCBhcyBpdCBtYXkgaGF2ZSBiZWVuCj4+ICsgICAgICAgICAq IGNoYW5nZWQgd2hlbiByZXR1cm5pbmcgdG8gdGhlIGd1ZXN0IChzZWUKPj4gKyAgICAgICAgICog cmV0dXJuX3RvX2h5cGVydmlzb3IpLiBXZSBuZWVkIHRvIGRvIHRoYXQgZWFybHkgKGUuZyBiZWZv cmUKPj4gKyAgICAgICAgICogYW55IGludGVycnVwdHMgYXJlIHVubWFza2VkKSBiZWNhdXNlIGhh cmRlbmVkIHZlY3RvcnMgcmVxdWlyZXMKPj4gKyAgICAgICAgICogU1AgdG8gYmUgOCBieXRlcyBh bGlnbmVkLiBUaGlzIGRvZXMgbm90IGhvbGQgd2hlbiBydW5uaW5nIGluCj4+ICsgICAgICAgICAq IHRoZSBoeXBlcnZpc29yLgo+PiArICAgICAgICAgKi8KPj4gKyAgICAgICAgbGRyIHIxLCA9aHlw X3RyYXBzX3ZlY3Rvcgo+PiArICAgICAgICBtY3IgcDE1LCA0LCByMSwgYzEyLCBjMCwgMAo+PiAr ICAgICAgICBpc2IKPj4gKyNlbmRpZgo+PiArCj4+ICAgICAgICAgICBsZHIgcjExLCA9MHhmZmZm ZmZmZiAgLyogQ2xvYmJlciBTUCB3aGljaCBpcyBvbmx5IHZhbGlkIGZvciBoeXBlcnZpc29yIGZy YW1lcy4gKi8KPj4gICAgICAgICAgIHN0ciByMTEsIFtzcCwgI1VSRUdTX3NwXQo+PiAgICAgICAg ICAgU0FWRV9PTkVfQkFOS0VEKFNQX3VzcikKPj4gQEAgLTE3OSwxMiArMTkzLDM3IEBAIHJldHVy bl90b19ndWVzdDoKPj4gICAgICAgICAgIFJFU1RPUkVfT05FX0JBTktFRChSMTFfZmlxKTsgUkVT VE9SRV9PTkVfQkFOS0VEKFIxMl9maXEpOwo+PiAgICAgICAgICAgLyogRmFsbCB0aHJ1ICovCj4+ ICAgcmV0dXJuX3RvX2h5cGVydmlzb3I6Cj4+IC0gICAgICAgIGNwc2lkIGkKPj4gKyAgICAgICAg Y3BzaWQgYWkKPiAKPiBXaHk/CgpBc3luY2hyb25vdXMgYWJvcnQgaXMgYSBraW5kIG9mIGludGVy cnVwdCwgYXMgd2UgYXJlIGdvaW5nIHRvIHN3aXRjaCB0byAKdGhlIGhhcmRlbmVkIHZlY3RvciB0 YWJsZXMgeW91IGRvbid0IHdhbnQgYW4gaW50ZXJydXB0IHRvIGNvbWUgdXAuCgpUaGlzIGlzIGJl Y2F1c2UgdGhlIGhhcmRlbmVkIHZlY3RvciB0YWJsZXMgcmVxdWlyZXMgU1AgdG8gYmUgOCBieXRl cyAKYWxpZ25lZC4gV2hlbiBpbiB0aGUgaHlwZXJ2aXNvciwgYW5kIHBhcnRpY3VsYXJseSB3aGVu IHJlc3RvcmluZyB0aGUgCnJlZ2lzdGVyIChhcyBiZWxvdyksIHRoaXMgYXNzdW1wdGlvbiBkb2Vz IG5vdCBob2xkLgoKU28gbWFza2luZyBhbGwgaW50ZXJydXB0cyAoYXMgbWVudGlvbmVkIGEgZmV3 IHRpbWUgd2l0aGluIHRoZSBwYXRjaCBhbmQgCnRoZSBjb21taXQgbWVzc2FnZSkgd2lsbCByZWR1 Y2UgdGhlIHJpc2sgdG8gdXNlIHRoZSBoYXJkZW5lZCB2ZWN0b3JzLiBJIApzYXkgcmVkdWNlIGJl Y2F1c2UgeW91IG1heSBoYXZlIHJlY2VpdmUgZGF0YSBhYm9ydCAoaW1hZ2luZSBhbiB1bmxpa2Vs eSAKZXJyb3IgaW4gdGhlIGZldyBpbnN0cnVjdGlvbnMgdG8gcmVzdG9yZSBzdGF0ZSkuCgpJdCBp cyBhbHNvIHdoeSBzd2l0Y2hpbmcgdmVjdG9yIHRhYmxlcyBhcmUgZG9uZSB2ZXJ5IGVhcmx5IGlu IGVudHJ5IHBhdGggCmFuZCB2ZXJ5IGxhdGUgaW4gdGhlIGV4aXQgcGF0aC4KCj4gCj4gCj4+ICAg ICAgICAgICBsZHIgbHIsIFtzcCwgI1VSRUdTX2xyXQo+PiAgICAgICAgICAgbGRyIHIxMSwgW3Nw LCAjVVJFR1NfcGNdCj4+ICAgICAgICAgICBtc3IgRUxSX2h5cCwgcjExCj4+ICAgICAgICAgICBs ZHIgcjExLCBbc3AsICNVUkVHU19jcHNyXQo+PiAgICAgICAgICAgbXNyIFNQU1JfaHlwLCByMTEK Pj4gKyNpZmRlZiBDT05GSUdfQVJNMzJfSEFSREVOX0JSQU5DSF9QUkVESUNUT1IKPj4gKyAgICAg ICAgLyoKPj4gKyAgICAgICAgICogSGFyZGVuaW5nIGJyYW5jaCBwcmVkaWN0b3IgbWF5IHJlcXVp cmUgdG8gc2V0dXAgYSBkaWZmZXJlbnQKPj4gKyAgICAgICAgICogdmVjdG9yIHRhYmxlcyBiZWZv cmUgcmV0dXJuaW5nIHRvIHRoZSBndWVzdHMuIFRob3NlIHZlY3RvcnMKPj4gKyAgICAgICAgICog bWF5IHJlbHkgb24gdGhlIHN0YXRlIG9mIHJlZ2lzdGVycyB0aGF0IGRvZXMgbm90IGhvbGQgd2hl bgo+PiArICAgICAgICAgKiBydW5uaW5nIGluIHRoZSBoeXBlcnZpc29yIChlLmcgU1AgaXMgOCBi eXRlcyBhbGlnbmVkKS4gU28gc2V0dXAKPj4gKyAgICAgICAgICogSFZCQVIgdmVyeSBsYXRlLgo+ PiArICAgICAgICAgKgo+PiArICAgICAgICAgKiBEZWZhdWx0IHZlY3RvcnMgdGFibGUgd2lsbCBi ZSByZXN0b3JlZCBvbiBleGl0IChzZWUKPj4gKyAgICAgICAgICogc2F2ZV9ndWVzdF9yZWdzKS4K Pj4gKyAgICAgICAgICovCj4+ICsgICAgICAgIG1vdiByOSwgIzAgICAgICAgICAgICAgICAgICAg ICAgLyogdmVjdG9yIHRhYmxlcyA9IE5VTEwgKi8KPj4gKyAgICAgICAgLyoKPj4gKyAgICAgICAg ICogTG9hZCB2ZWN0b3IgdGFibGVzIHBvaW50ZXIgZnJvbSB0aGUgcGVyLWNwdSBicF9oYXJkZW5f dmVjcwo+PiArICAgICAgICAgKiB3aGVuIHJldHVybmluZyB0byB0aGUgZ3Vlc3Qgb25seS4KPj4g KyAgICAgICAgICovCj4+ICsgICAgICAgIGFuZCByMTEsICNQU1JfTU9ERV9NQVNLCj4+ICsgICAg ICAgIGNtcCByMTEsICNQU1JfTU9ERV9IWVAKPj4gKyAgICAgICAgbGRybmUgcjExLCA9cGVyX2Nw dV9fYnBfaGFyZGVuX3ZlY3MKPj4gKyAgICAgICAgbXJjbmUgcDE1LCA0LCByMTAsIGMxMywgYzAs IDIgICAvKiByMTAgPSBwZXItY3B1IG9mZnNldCAoSFRQSURSKSAqLwo+PiArICAgICAgICBhZGRu ZSByMTEsIHIxMSwgcjEwICAgICAgICAgICAgIC8qIHIxMSA9IG9mZnNldCBvZiB0aGUgdmVjdG9y IHRhYmxlcyAqLwo+PiArICAgICAgICBsZHJuZSByOSwgW3IxMV0gICAgICAgICAgICAgICAgIC8q IHI5ICA9IHZlY3RvciB0YWJsZXMgKi8KPj4gKyAgICAgICAgY21wIHI5LCAjMCAgICAgICAgICAg ICAgICAgICAgICAvKiBPbmx5IHVwZGF0ZSBIVkJBUiB3aGVuIHRoZSB2ZWN0b3IgKi8KPj4gKyAg ICAgICAgbWNybmUgcDE1LCA0LCByOSwgYzEyLCBjMCwgMCAgICAvKiB0YWJsZXMgaXMgbm90IE5V TEwuICovCj4gCj4gRG8gd2UgbmVlZC93YW50IGFuIGlzYiBoZXJlPyBPciBtYXliZSBpdCBpcyBu b3QgbmVjZXNzYXJ5IGJlY2F1c2Ugd2UgYXJlCj4gYWJvdXQgdG8gZXJldD8KVGhlIGVyZXQgaXMg YSBjb250ZXh0IHN5bmNocm9uaXphdGlvbiBiYXJyaWVyLiBIVkJBUiBtYXkgbm90IGJlIHVwZGF0 ZWQgCnVudGlsIHRoZSBlcmV0LCBidXQgd2UgZG9uJ3QgbXVjaCBjYXJlIGFzIGl0IHRoZSBoYXJk ZW5lZCB2ZWN0b3IgdGFibGVzIApvbmx5IG1hdHRlciB3aGVuIHJ1bm5pbmcgaW4gZ3Vlc3QgY29u dGV4dC4KCj4gCj4gCj4+ICsjZW5kaWYKPj4gICAgICAgICAgIHBvcCB7cjAtcjEyfQo+PiAgICAg ICAgICAgYWRkIHNwLCAjKFVSRUdTX1NQX3VzciAtIFVSRUdTX3NwKTsgLyogU1AsIExSLCBTUFNS LCBQQyAqLwo+PiAgICAgICAgICAgY2xyZXgKPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9j cHVlcnJhdGEuYyBiL3hlbi9hcmNoL2FybS9jcHVlcnJhdGEuYwo+PiBpbmRleCBmMWVhN2YzYzVi Li4wYTEzOGZhNzM1IDEwMDY0NAo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vY3B1ZXJyYXRhLmMKPj4g KysrIGIveGVuL2FyY2gvYXJtL2NwdWVycmF0YS5jCj4+IEBAIC0xNzAsNiArMTcwLDM2IEBAIHN0 YXRpYyBpbnQgZW5hYmxlX3BzY2lfYnBfaGFyZGVuaW5nKHZvaWQgKmRhdGEpCj4+ICAgCj4+ICAg I2VuZGlmIC8qIENPTkZJR19BUk02NF9IQVJERU5fQlJBTkNIX1BSRURJQ1RPUiAqLwo+PiAgIAo+ PiArLyogSGFyZGVuaW5nIEJyYW5jaCBwcmVkaWN0b3IgY29kZSBmb3IgQXJtMzIgKi8KPj4gKyNp ZmRlZiBDT05GSUdfQVJNMzJfSEFSREVOX0JSQU5DSF9QUkVESUNUT1IKPj4gKwo+PiArLyoKPj4g KyAqIFBlci1DUFUgdmVjdG9yIHRhYmxlcyB0byB1c2Ugd2hlbiByZXR1cm5pbmcgdG8gdGhlIGd1 ZXN0cy4gVGhleSB3aWxsCj4+ICsgKiBvbmx5IGJlIHVzZWQgb24gcGxhdGZvcm0gcmVxdWlyaW5n IHRvIGhhcmRlbiB0aGUgYnJhbmNoIHByZWRpY3Rvci4KPj4gKyAqLwo+PiArREVGSU5FX1BFUl9D UFVfUkVBRF9NT1NUTFkoY29uc3QgY2hhciAqLCBicF9oYXJkZW5fdmVjcyk7Cj4+ICsKPj4gK2V4 dGVybiBjaGFyIGh5cF90cmFwc192ZWN0b3JfYnBfaW52W107Cj4+ICsKPj4gK3N0YXRpYyB2b2lk IF9fbWF5YmVfdW51c2VkCj4+ICtpbnN0YWxsX2JwX2hhcmRlbmluZ192ZWNzKGNvbnN0IHN0cnVj dCBhcm1fY3B1X2NhcGFiaWxpdGllcyAqZW50cnksCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKmh5cF92ZWNzLCBjb25zdCBjaGFyICpkZXNjKQo+PiArewo+PiArICAg IC8qCj4+ICsgICAgICogRW5hYmxlIGNhbGxiYWNrcyBhcmUgY2FsbGVkIG9uIGV2ZXJ5IENQVSBi YXNlZCBvbiB0aGUKPj4gKyAgICAgKiBjYXBhYmlsaXRpZXMuIFNvIGRvdWJsZS1jaGVjayB3aGV0 aGVyIHRoZSBDUFUgbWF0Y2hlcyB0aGUKPj4gKyAgICAgKiBlbnRyeS4KPj4gKyAgICAgKi8KPj4g KyAgICBpZiAoICFlbnRyeS0+bWF0Y2hlcyhlbnRyeSkgKQo+PiArICAgICAgICByZXR1cm47Cj4+ ICsKPj4gKyAgICBwcmludGsoWEVOTE9HX0lORk8gIkNQVSV1IHdpbGwgJXMgb24gZ3Vlc3QgZXhp dFxuIiwKPj4gKyAgICAgICAgICAgc21wX3Byb2Nlc3Nvcl9pZCgpLCBkZXNjKTsKPj4gKyAgICB0 aGlzX2NwdShicF9oYXJkZW5fdmVjcykgPSBoeXBfdmVjczsKPj4gK30KPj4gKwo+PiArI2VuZGlm Cj4+ICsKPj4gICAjZGVmaW5lIE1JRFJfUkFOR0UobW9kZWwsIG1pbiwgbWF4KSAgICAgXAo+PiAg ICAgICAubWF0Y2hlcyA9IGlzX2FmZmVjdGVkX21pZHJfcmFuZ2UsICBcCj4+ICAgICAgIC5taWRy X21vZGVsID0gbW9kZWwsICAgICAgICAgICAgICAgIFwKPj4gLS0gCj4+IDIuMTEuMAo+PgoKQ2hl ZXJzLAoKLS0gCkp1bGllbiBHcmFsbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu cHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv L3hlbi1kZXZlbA==