From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 41566C47258 for ; Tue, 23 Jan 2024 20:39:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=vEY5+v6VSRtp3tiWL/hDLNHB7zDUQY284YxBAE4mJi8=; b=BqNz2uMWxH/2np X+3ppnudo0b4acreItfLOcQcutsfRuCvqaYWfXP/VVzcwh0RLoLqIqesUY94IK25RUtLjJ7mVcMWb cKUTTIooq0ffxgd8FxjA7eOTP5rh9OywZ64OBraclw0Jjb8EGP+MefS+hLspwvu3EIC1C7PSl66sK ZULuNbX2yKp6acl3Or70UFJM4er083e80FYnH66Mv3bRwxnerM31UNv3x02OEt9iK2wN3K6dYwyuV sjR3eTtwum8HmtziYDJc+dKk1XjVVFFvuhIMveqVgbUjAYSijTYASbAkyzDdxBGaaNd6dwmeAur/y kH/hcbU66C0AR+wuSxkg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rSNYl-000Q38-0U; Tue, 23 Jan 2024 20:39:52 +0000 Received: from linux.microsoft.com ([13.77.154.182]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rSNYh-000Q0t-1n for kexec@lists.infradead.org; Tue, 23 Jan 2024 20:39:49 +0000 Received: from [192.168.86.69] (unknown [50.46.228.62]) by linux.microsoft.com (Postfix) with ESMTPSA id 1D37920E34C3; Tue, 23 Jan 2024 12:39:42 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 1D37920E34C3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1706042382; bh=EzzVmcDkr4eK/twYOi2TVMk6XSbdoFxGZpRHPlXrgDk=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=MSwjGWx24G/dCiewsrAyb9DoW7Qz4VpJaetsRK60L/WjxLBZQrUhm3xVf7ttb/oGX xHSDrIlBRB9N4/pQO7hPTUEM2TdDWlaONfjQOYTuXPcRlsoIywv4LZ+vPk/b4DC9lF MWxJpTE9q0bJOoTJgqFp//IXZMeBX8cJ4T0i/4XI= Message-ID: <9c71454b-ba41-4725-9fb7-0602b1a656c1@linux.microsoft.com> Date: Tue, 23 Jan 2024 12:39:41 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 2/7] kexec: define functions to map and unmap segments Content-Language: en-US To: Stefan Berger , zohar@linux.ibm.com, roberto.sassu@huaweicloud.com, roberto.sassu@huawei.com, eric.snowberg@oracle.com, ebiederm@xmission.com, noodles@fb.com, bauermann@kolabnow.com, linux-integrity@vger.kernel.org, kexec@lists.infradead.org Cc: code@tyhicks.com, nramas@linux.microsoft.com, paul@paul-moore.com References: <20240122183804.3293904-1-tusharsu@linux.microsoft.com> <20240122183804.3293904-3-tusharsu@linux.microsoft.com> From: Tushar Sugandhi In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240123_123947_788075_D0FF67A1 X-CRM114-Status: GOOD ( 21.37 ) X-BeenThere: kexec@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "kexec" Errors-To: kexec-bounces+kexec=archiver.kernel.org@lists.infradead.org VGhhbmtzIFN0ZWZhbiBmb3IgdGFraW5nIGEgbG9vay4KCk9uIDEvMjMvMjQgMDk6MDMsIFN0ZWZh biBCZXJnZXIgd3JvdGU6Cj4gCj4gCj4gT24gMS8yMi8yNCAxMzozNywgVHVzaGFyIFN1Z2FuZGhp IHdyb3RlOgo+PiBJbXBsZW1lbnQga2ltYWdlX21hcF9zZWdtZW50KCkgdG8gZW5hYmxlIG1hcHBp bmcgb2YgSU1BIGJ1ZmZlciBzb3VyY2UKPj4gcGFnZXMgdG8gdGhlIGtpbWFnZSBzdHJ1Y3R1cmUg cG9zdCBrZXhlYyAnbG9hZCcuwqAgVGhpcyBmdW5jdGlvbiwKPj4gYWNjZXB0aW5nIGEga2ltYWdl IHBvaW50ZXIsIGFuIGFkZHJlc3MsIGFuZCBhIHNpemUsIHdpbGwgZ2F0aGVyIHRoZQo+PiBzb3Vy Y2UgcGFnZXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgYWRkcmVzcyByYW5nZSwgY3JlYXRlIGFuIGFy cmF5IG9mIHBhZ2UKPj4gcG9pbnRlcnMsIGFuZCBtYXAgdGhlc2UgdG8gYSBjb250aWd1b3VzIHZp cnR1YWwgYWRkcmVzcyByYW5nZS7CoCBUaGUKPj4gZnVuY3Rpb24gcmV0dXJucyB0aGUgc3RhcnQg b2YgdGhpcyByYW5nZSBpZiBzdWNjZXNzZnVsLCBvciBOVUxMIGlmCj4+IHVuc3VjY2Vzc2Z1bC4K Pj4KPj4gSW1wbGVtZW50IGtpbWFnZV91bm1hcF9zZWdtZW50KCkgZm9yIHVubWFwcGluZyBzZWdt ZW50cwo+PiB1c2luZyB2dW5tYXAoKS7CoCBSZWxvY2F0ZSAnZm9yX2VhY2hfa2ltYWdlX2VudHJ5 KCknIG1hY3JvIGZyb20KPj4ga2V4ZWNfY29yZS5jIHRvIGtleGVjLmggZm9yIGJyb2FkZXIgYWNj ZXNzaWJpbGl0eS4KPj4KPj4gU2lnbmVkLW9mZi1ieTogVHVzaGFyIFN1Z2FuZGhpIDx0dXNoYXJz dUBsaW51eC5taWNyb3NvZnQuY29tPgo+PiAtLS0KPj4gwqAgaW5jbHVkZS9saW51eC9rZXhlYy5o wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAxMyArKysrKysrCj4+IMKgIGtlcm5lbC9rZXhl Y19jb3JlLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCA1OSArKysrKysrKysrKysr KysrKysrKysrKysrKystLS0KPj4gwqAgc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfa2V4ZWMu YyB8wqAgMSArCj4+IMKgIDMgZmlsZXMgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgva2V4ZWMuaCBiL2luY2x1 ZGUvbGludXgva2V4ZWMuaAo+PiBpbmRleCAyMmI1Y2QyNGY1ODEuLmUwMGI4MTAxYjUzYiAxMDA2 NDQKPj4gLS0tIGEvaW5jbHVkZS9saW51eC9rZXhlYy5oCj4+ICsrKyBiL2luY2x1ZGUvbGludXgv a2V4ZWMuaAo+PiBAQCAtNDkwLDYgKzQ5MCwxNSBAQCBzdGF0aWMgaW5saW5lIGludCAKPj4gYXJj aF9rZXhlY19wb3N0X2FsbG9jX3BhZ2VzKHZvaWQgKnZhZGRyLCB1bnNpZ25lZCBpbnQgcGFnZXMs IGcKPj4gwqAgc3RhdGljIGlubGluZSB2b2lkIGFyY2hfa2V4ZWNfcHJlX2ZyZWVfcGFnZXModm9p ZCAqdmFkZHIsIHVuc2lnbmVkIAo+PiBpbnQgcGFnZXMpIHsgfQo+PiDCoCAjZW5kaWYKPj4gKyNk ZWZpbmUgZm9yX2VhY2hfa2ltYWdlX2VudHJ5KGltYWdlLCBwdHIsIGVudHJ5KSBcCj4+ICvCoMKg wqAgZm9yIChwdHIgPSAmaW1hZ2UtPmhlYWQ7IChlbnRyeSA9ICpwdHIpICYmICEoZW50cnkgJiBJ TkRfRE9ORSk7IFwKPj4gK8KgwqDCoMKgwqDCoMKgIHB0ciA9IChlbnRyeSAmIElORF9JTkRJUkVD VElPTikgPyBcCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJvb3RfcGh5c190b192aXJ0KChl bnRyeSAmIFBBR0VfTUFTSykpIDogcHRyICsgMSkKPj4gKwo+PiArZXh0ZXJuIHZvaWQgKmtpbWFn ZV9tYXBfc2VnbWVudChzdHJ1Y3Qga2ltYWdlICppbWFnZSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7Cj4+ ICtleHRlcm4gdm9pZCBraW1hZ2VfdW5tYXBfc2VnbWVudCh2b2lkICpidWZmZXIpOwo+PiArCj4g Cj4gVGhpcyBzZXJpZXMgYXBwbGllcyB0byB2Ni41LiBZb3UgbWF5IHdhbnQgdG8gcmViYXNlIHRv IDYuNy4KPiAKV2lsbCByZWJhc2UuIFRoYW5rcyBmb3IgY2F0Y2hpbmcgdGhpcy4KPj4gwqAgI2Vs c2UgLyogIUNPTkZJR19LRVhFQ19DT1JFICovCj4+IMKgIHN0cnVjdCBwdF9yZWdzOwo+PiDCoCBz dHJ1Y3QgdGFza19zdHJ1Y3Q7Cj4+IEBAIC00OTcsNiArNTA2LDEwIEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBfX2NyYXNoX2tleGVjKHN0cnVjdCBwdF9yZWdzIAo+PiAqcmVncykgeyB9Cj4+IMKgIHN0 YXRpYyBpbmxpbmUgdm9pZCBjcmFzaF9rZXhlYyhzdHJ1Y3QgcHRfcmVncyAqcmVncykgeyB9Cj4+ IMKgIHN0YXRpYyBpbmxpbmUgaW50IGtleGVjX3Nob3VsZF9jcmFzaChzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnApIHsgcmV0dXJuIAo+PiAwOyB9Cj4+IMKgIHN0YXRpYyBpbmxpbmUgaW50IGtleGVjX2Ny YXNoX2xvYWRlZCh2b2lkKSB7IHJldHVybiAwOyB9Cj4+ICtzdGF0aWMgaW5saW5lIHZvaWQgKmtp bWFnZV9tYXBfc2VnbWVudChzdHJ1Y3Qga2ltYWdlICppbWFnZSwKPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWdu ZWQgbG9uZyBzaXplKQo+PiAreyByZXR1cm4gTlVMTDsgfQo+PiArc3RhdGljIGlubGluZSB2b2lk IGtpbWFnZV91bm1hcF9zZWdtZW50KHZvaWQgKmJ1ZmZlcikgeyB9Cj4+IMKgICNkZWZpbmUga2V4 ZWNfaW5fcHJvZ3Jlc3MgZmFsc2UKPj4gwqAgI2VuZGlmIC8qIENPTkZJR19LRVhFQ19DT1JFICov Cj4+IGRpZmYgLS1naXQgYS9rZXJuZWwva2V4ZWNfY29yZS5jIGIva2VybmVsL2tleGVjX2NvcmUu Ywo+PiBpbmRleCAzZDU3OGM2ZmVmZWUuLjI2OTc4YWQwMjY3NiAxMDA2NDQKPj4gLS0tIGEva2Vy bmVsL2tleGVjX2NvcmUuYwo+PiArKysgYi9rZXJuZWwva2V4ZWNfY29yZS5jCj4+IEBAIC01OTQs MTEgKzU5NCw2IEBAIHZvaWQga2ltYWdlX3Rlcm1pbmF0ZShzdHJ1Y3Qga2ltYWdlICppbWFnZSkK Pj4gwqDCoMKgwqDCoCAqaW1hZ2UtPmVudHJ5ID0gSU5EX0RPTkU7Cj4+IMKgIH0KPj4gLSNkZWZp bmUgZm9yX2VhY2hfa2ltYWdlX2VudHJ5KGltYWdlLCBwdHIsIGVudHJ5KSBcCj4+IC3CoMKgwqAg Zm9yIChwdHIgPSAmaW1hZ2UtPmhlYWQ7IChlbnRyeSA9ICpwdHIpICYmICEoZW50cnkgJiBJTkRf RE9ORSk7IFwKPj4gLcKgwqDCoMKgwqDCoMKgIHB0ciA9IChlbnRyeSAmIElORF9JTkRJUkVDVElP TikgPyBcCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJvb3RfcGh5c190b192aXJ0KChlbnRy eSAmIFBBR0VfTUFTSykpIDogcHRyICsgMSkKPj4gLQo+PiDCoCBzdGF0aWMgdm9pZCBraW1hZ2Vf ZnJlZV9lbnRyeShraW1hZ2VfZW50cnlfdCBlbnRyeSkKPj4gwqAgewo+PiDCoMKgwqDCoMKgIHN0 cnVjdCBwYWdlICpwYWdlOwo+PiBAQCAtOTIxLDYgKzkxNiw2MCBAQCBpbnQga2ltYWdlX2xvYWRf c2VnbWVudChzdHJ1Y3Qga2ltYWdlICppbWFnZSwKPj4gwqDCoMKgwqDCoCByZXR1cm4gcmVzdWx0 Owo+PiDCoCB9Cj4+ICt2b2lkICpraW1hZ2VfbWFwX3NlZ21lbnQoc3RydWN0IGtpbWFnZSAqaW1h Z2UsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNp Z25lZCBsb25nIHNpemUpCj4+ICt7Cj4+ICvCoMKgwqAgdW5zaWduZWQgbG9uZyBlYWRkciA9IGFk ZHIgKyBzaXplOwo+PiArwqDCoMKgIHVuc2lnbmVkIGxvbmcgc3JjX3BhZ2VfYWRkciwgZGVzdF9w YWdlX2FkZHI7Cj4+ICvCoMKgwqAgdW5zaWduZWQgaW50IG5wYWdlczsKPj4gK8KgwqDCoCBzdHJ1 Y3QgcGFnZSAqKnNyY19wYWdlczsKPj4gK8KgwqDCoCBpbnQgaTsKPj4gK8KgwqDCoCBraW1hZ2Vf ZW50cnlfdCAqcHRyLCBlbnRyeTsKPj4gK8KgwqDCoCB2b2lkICp2YWRkciA9IE5VTEw7Cj4+ICsK Pj4gK8KgwqDCoCAvKgo+PiArwqDCoMKgwqAgKiBDb2xsZWN0IHRoZSBzb3VyY2UgcGFnZXMgYW5k IG1hcCB0aGVtIGluIGEgY29udGlndW91cyBWQSByYW5nZS4KPj4gK8KgwqDCoMKgICovCj4+ICvC oMKgwqAgbnBhZ2VzID0gUEZOX1VQKGVhZGRyKSAtIFBGTl9ET1dOKGFkZHIpOwo+PiArwqDCoMKg IHNyY19wYWdlcyA9IGttYWxsb2NfYXJyYXkobnBhZ2VzLCBzaXplb2YoKnNyY19wYWdlcyksIEdG UF9LRVJORUwpOwo+PiArwqDCoMKgIGlmICghc3JjX3BhZ2VzKSB7Cj4+ICvCoMKgwqDCoMKgwqDC oCBwcl9lcnIoIiVzOiBDb3VsZCBub3QgYWxsb2NhdGUgaW1hIHBhZ2VzIGFycmF5LlxuIiwgX19m dW5jX18pOwo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIE5VTEw7Cj4+ICvCoMKgwqAgfQo+PiAr Cj4+ICvCoMKgwqAgaSA9IDA7Cj4+ICvCoMKgwqAgZm9yX2VhY2hfa2ltYWdlX2VudHJ5KGltYWdl LCBwdHIsIGVudHJ5KSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoZW50cnkgJiBJTkRfREVTVElO QVRJT04pCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlc3RfcGFnZV9hZGRyID0gZW50cnkg JiBQQUdFX01BU0s7Cj4+ICvCoMKgwqDCoMKgwqDCoCBlbHNlIGlmIChlbnRyeSAmIElORF9TT1VS Q0UpIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGRlc3RfcGFnZV9hZGRyID49IGFk ZHIgJiYgZGVzdF9wYWdlX2FkZHIgPCBlYWRkcikgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHNyY19wYWdlX2FkZHIgPSBlbnRyeSAmIFBBR0VfTUFTSzsKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzcmNfcGFnZXNbaSsrXSA9Cj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2aXJ0X3RvX3BhZ2UoX192YShzcmNfcGFnZV9hZGRy KSk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGkgPT0gbnBhZ2VzKQo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGVzdF9wYWdlX2FkZHIgKz0gUEFHRV9TSVpFOwo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKg wqAgfQo+PiArCj4+ICvCoMKgwqAgLyogU2FuaXR5IGNoZWNrLiAqLwo+PiArwqDCoMKgIFdBUk5f T04oaSA8IG5wYWdlcyk7Cj4+ICsKPj4gK8KgwqDCoCB2YWRkciA9IHZtYXAoc3JjX3BhZ2VzLCBu cGFnZXMsIFZNX01BUCwgUEFHRV9LRVJORUwpOwo+PiArwqDCoMKgIGtmcmVlKHNyY19wYWdlcyk7 Cj4+ICsKPj4gK8KgwqDCoCBpZiAoIXZhZGRyKQo+PiArwqDCoMKgwqDCoMKgwqAgcHJfZXJyKCIl czogQ291bGQgbm90IG1hcCBpbWFwIGJ1ZmZlci5cbiIsIF9fZnVuY19fKTsKPiAKPiBpbWFwIC0+ IGltYQo+IApHb29kIGV5ZSBjYXRjaGluZyB0aGlzLgpXaWxsIGZpeC4KPj4gKwo+PiArwqDCoMKg IHJldHVybiB2YWRkcjsKPj4gK30KPj4gKwo+PiArdm9pZCBraW1hZ2VfdW5tYXBfc2VnbWVudCh2 b2lkICpzZWdtZW50X2J1ZmZlcikKPj4gK3sKPj4gK8KgwqDCoCB2dW5tYXAoc2VnbWVudF9idWZm ZXIpOwo+PiArfQo+PiArCj4+IMKgIHN0cnVjdCBrZXhlY19sb2FkX2xpbWl0IHsKPj4gwqDCoMKg wqDCoCAvKiBNdXRleCBwcm90ZWN0cyB0aGUgbGltaXQgY291bnQuICovCj4+IMKgwqDCoMKgwqAg c3RydWN0IG11dGV4IG11dGV4Owo+PiBkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvaW50ZWdyaXR5L2lt YS9pbWFfa2V4ZWMuYyAKPj4gYi9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYV9rZXhlYy5jCj4+ IGluZGV4IDk5ZGFhYzM1NWM3MC4uNGY5NDRjOWI0MTY4IDEwMDY0NAo+PiAtLS0gYS9zZWN1cml0 eS9pbnRlZ3JpdHkvaW1hL2ltYV9rZXhlYy5jCj4+ICsrKyBiL3NlY3VyaXR5L2ludGVncml0eS9p bWEvaW1hX2tleGVjLmMKPj4gQEAgLTE3MCw2ICsxNzAsNyBAQCB2b2lkIGltYV9hZGRfa2V4ZWNf YnVmZmVyKHN0cnVjdCBraW1hZ2UgKmltYWdlKQo+PiDCoMKgwqDCoMKgIHByX2RlYnVnKCJrZXhl YyBtZWFzdXJlbWVudCBidWZmZXIgZm9yIHRoZSBsb2FkZWQga2VybmVsIGF0IAo+PiAweCVseC5c biIsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGtidWYubWVtKTsKPj4gwqAgfQo+PiArCj4gCj4g cmVtb3ZlCj4KV2lsbCBkby4KCn5UdXNoYXIKCj4+IMKgICNlbmRpZiAvKiBJTUFfS0VYRUMgKi8K Pj4gwqAgLyoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmtleGVjIG1haWxpbmcgbGlzdAprZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8va2V4ZWMK