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 X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2AC4EC4321A for ; Tue, 11 Jun 2019 07:09:10 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0A6432086D for ; Tue, 11 Jun 2019 07:09:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0A6432086D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1haate-0005LQ-OB; Tue, 11 Jun 2019 07:08:42 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1haatd-0005LL-LS for xen-devel@lists.xenproject.org; Tue, 11 Jun 2019 07:08:41 +0000 X-Inumbo-ID: bd3c900c-8c17-11e9-8980-bc764e045a96 Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id bd3c900c-8c17-11e9-8980-bc764e045a96; Tue, 11 Jun 2019 07:08:40 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Tue, 11 Jun 2019 01:08:39 -0600 Message-Id: <5CFF53740200007800236D68@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.1 Date: Tue, 11 Jun 2019 01:08:36 -0600 From: "Jan Beulich" To: "Chao Gao" References: <1558945891-3015-1-git-send-email-chao.gao@intel.com> <1558945891-3015-7-git-send-email-chao.gao@intel.com> <5CF7B7870200007800235841@prv1-mh.provo.novell.com> <20190611033240.GA26361@gao-cwp> In-Reply-To: <20190611033240.GA26361@gao-cwp> Mime-Version: 1.0 Content-Disposition: inline Subject: Re: [Xen-devel] [PATCH v7 06/10] microcode: split out apply_microcode() from cpu_request_microcode() X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Sergey Dyasli , Ashok Raj , WeiLiu , Andrew Cooper , xen-devel , Roger Pau Monne Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Pj4+IE9uIDExLjA2LjE5IGF0IDA1OjMyLCA8Y2hhby5nYW9AaW50ZWwuY29tPiB3cm90ZToKPiBP biBXZWQsIEp1biAwNSwgMjAxOSBhdCAwNjozNzoyN0FNIC0wNjAwLCBKYW4gQmV1bGljaCB3cm90 ZToKPj4+Pj4gT24gMjcuMDUuMTkgYXQgMTA6MzEsIDxjaGFvLmdhb0BpbnRlbC5jb20+IHdyb3Rl Ogo+Pj4gRHVyaW5nIGxhdGUgbWljcm9jb2RlIHVwZGF0ZSwgYXBwbHlfbWljcm9jb2RlKCkgaXMg aW52b2tlZCBpbgo+Pj4gY3B1X3JlcXVlc3RfbWljcm9jb2RlKCkuIFRvIG1ha2UgbGF0ZSBtaWNy b2NvZGUgdXBkYXRlIG1vcmUgcmVsaWFibGUsCj4+PiB3ZSB3YW50IHRvIHB1dCB0aGUgYXBwbHlf bWljcm9jb2RlKCkgaW50byBzdG9wX21hY2hpbmUgY29udGV4dC4gU28KPj4+IHdlIHNwbGl0IG91 dCBpdCBmcm9tIGNwdV9yZXF1ZXN0X21pY3JvY29kZSgpLiBBcyBhIGNvbnNlcXVlbmNlLAo+Pj4g YXBwbHlfbWljcm9jb2RlKCkgc2hvdWxkIGJlIGludm9rZWQgZXhwbGljaXRseSBpbiB0aGUgY29t bW9uIGNvZGUuCj4+PiAKPj4+IFByZXZpb3VzbHksIGFwcGx5X21pY3JvY29kZSgpIGdldHMgdGhl IG1pY3JvY29kZSBwYXRjaCB0byBiZSBhcHBsaWVkIGZyb20KPj4+IHRoZSBtaWNyb2NvZGUgY2Fj aGUuIE5vdywgdGhlIHBhdGNoIGlzIHBhc3NlZCBhcyBhIGZ1bmN0aW9uIGFyZ3VtZW50IGFuZAo+ Pj4gYSBwYXRjaCBpcyBjYWNoZWQgZm9yIGNwdS1ob3RwbHVnIGFuZCBjcHUgcmVzdW1pbmcsIG9u bHkgYWZ0ZXIgaXQgaGFzCj4+PiBiZWVuIGxvYWRlZCB0byBhIGNwdSB3aXRob3V0IGFueSBlcnJv ci4gQXMgYSBjb25zZXF1ZW5jZSwgdGhlCj4+PiAnbWF0Y2hfY3B1JyBjaGVjayBpbiBtaWNyb2Nv ZGVfdXBkYXRlX2NhY2hlIGlzIHJlbW92ZWQsIHdoaWNoIG90aGVyd2lzZQo+Pj4gd291bGQgZmFp bC4KPj4KPj5UaGUgIm9ubHkgYWZ0ZXIgaXQgaGFzIGJlZW4gbG9hZGVkIHRvIGEgY3B1IHdpdGhv dXQgYW55IGVycm9yIiBpcyBhCj4+cHJvYmxlbSwgcHJlY2lzZWx5IGZvciB0aGUgY2FzZSB3aGVy ZSB1Y29kZSBvbiB0aGUgZGlmZmVyZW50IGNvcmVzCj4+aXMgbm90IGluIHN5bmMgaW5pdGlhbGx5 LiBJIHdvdWxkIGFjdHVhbGx5IGxpa2UgdG8gcHV0IHVwIHRoaXMgcXVlc3Rpb246Cj4+V2hlbiBh IGNvcmUgaGFzIG5vIHVjb2RlIGxvYWRlZCBhdCBhbGwgeWV0IGFuZCBvbmx5IHN0cmljdGx5IG9s ZGVyCj4+KHRoYW4gbG9hZGVkIG9uIHNvbWUgb3RoZXIgY29yZXMpIHVjb2RlIGlzIGZvdW5kIHRv IGJlIGF2YWlsYWJsZSwKPj53aGV0aGVyIHRoZW4gaXQgd291bGRuJ3Qgc3RpbGwgYmUgYmV0dGVy IHRvIGFwcGx5IHRoYXQgdWNvZGUgdG8KPj5fYXQgbGVhc3RfIHRoZSBjb3JlcyB0aGF0IGhhdmUg bm9uZSBsb2FkZWQgeWV0Lgo+IAo+IFllcywgaXQgaXMgYmV0dGVyIGZvciB0aGlzIHNwZWNpYWwg Y2FzZS4gQW5kIEkgYWdyZWUgdG8gc3VwcG9ydCB0aGlzIGNhc2UuCj4gCj4gVGhpcyBpbiB2Nywg YSBwYXRjaCBpcyBsb2FkZWQgb25seSBpZiBpdHMgcmV2aXNpb24gaXMgbmV3ZXIgdGhhbiB0aGF0 Cj4gbG9hZGVkIHRvIGN1cnJlbnQgQ1BVLiBBbmQgaXQgaXMgc3RvcmVkIG9ubHkgaWYgaXQgaGFz IGJlZW4gbG9hZGVkCj4gc3VjY2Vzc2Z1bGx5LiBCdXQsIGFzIHlvdSBkZXNjcmliZWQsIGEgYnJv a2VuIGJpb3MgbWlnaHQgcHV0cyB0aGUgc3lzdGVtCj4gaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRl IChtdWx0aXBsZSBtaWNyb2NvZGUgcmV2aXNpb24gaW4gdGhlIHN5c3RlbSkgYW5kCj4gZnVydGhl cm1vcmUgaW4gdGhpcyBjYXNlLCBpZiBubyBvciBhbiBvbGRlciBtaWNyb2NvZGUgdXBkYXRlIGlz Cj4gcHJvdmlkZWQsIGVhcmx5IGxvYWRpbmcgY2Fubm90IGdldCB0aGUgc3lzdGVtIGludG8gc2Fu ZSBzdGF0ZS4gU28gZm9yCj4gYm90aCBlYXJseSBhbmQgbGF0ZSBtaWNyb2NvZGUgbG9hZGluZywg d2UgY291bGQgZmFjZSBhIHNpdHVhdGlvbiB0aGF0Cj4gdGhlIHBhdGNoIHRvIGJlIGxvYWRlZCBo YXMgZXF1YWwgb3Igb2xkIHJldmlzaW9uIHRoYW4gbWljcm9jb2RlIG9mIHNvbWUKPiBDUFVzLgo+ IAo+IENoYW5nZXMgSSBwbGFuIHRvIG1ha2UgaW4gbmV4dCB2ZXJzaW9uIGFyZToKPiAxLiBGb3Ig ZWFybHkgbWljcm9jb2RlLCBhIHBhdGNoIHdvdWxkIGJlIHN0b3JlZCBpZiBpdCBjb3ZlcnMgY3Vy cmVudCBDUFUncwo+IHNpZ25hdHVyZS4gQWxsIENQVXMgd291bGQgdHJ5IHRvIGxvYWQgZnJvbSB0 aGUgY2FjaGUuCj4gMi4gRm9yIGxhdGUgbWljcm9jb2RlLCBhIHBhdGNoIGlzIGxvYWRlZCBvbmx5 IGlmIGl0cyByZXZpc2lvbiBpcyBuZXdlciB0aGFuCj4gKnRoZSBwYXRjaCBjYWNoZWQqLiBBbmQg aXQgaXMgc3RvcmVkIG9ubHkgaWYgaGFzIGJlZW4gbG9hZGVkIHdpdGhvdXQgYW4KPiAiRUlPIiBl cnJvci4KPiAzLiBDYWNoZSByZXBsYWNlbWVudCByZW1haW5zIHRoZSBzYW1lLgoKV2h5IHRoZSBk aWZmZXJlbmNlIGJldHdlZW4gZWFybHkgYW5kIGxhdGUgbG9hZGluZz8KCj4gQnV0IGl0IGlzIGEg dGVtcGVyYXJ5IHNvbHV0aW9uLCBlc3BlY2lhbGx5IGZvciBDU1BzLiBBIGJldHRlciB3YXkKPiBt aWdodCBiZSBnZXR0aW5nIHRoZSBuZXdlc3QgdWNvZGUgb3IgdXBncmFkaW5nIHRvIHRoZSBuZXdl c3QgYmlvcywKPiBldmVuIGRvd25ncmFkaW5nIHRoZSBiaW9zIHRvIGFuIG9sZGVyIHZlcnNpb24g d2hpY2ggd291bGRuJ3QgcHV0Cj4gdGhlIHN5c3RlbSBpbnRvICJpbnNhbmUiIHN0YXRlLgoKT24g dGhlIHF1b3RlZCBzeXN0ZW0sIGFsbCBCSU9TIHZlcnNpb25zIEkndmUgZXZlciBiZWVuIHByb3Zp ZGVkCmhhZCB0aGUgc2FtZSBvZGQgYmVoYXZpb3IuCgo+Pj4gK3N0YXRpYyBpbnQgbWljcm9jb2Rl X3VwZGF0ZV9jcHUoc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqcGF0Y2gpCj4+PiAgewo+Pj4gLSAg ICBpbnQgZXJyOwo+Pj4gLSAgICBzdHJ1Y3QgY3B1X3NpZ25hdHVyZSAqc2lnID0gJnRoaXNfY3B1 KGNwdV9zaWcpOwo+Pj4gKyAgICBpbnQgcmV0ID0gbWljcm9jb2RlX29wcy0+Y29sbGVjdF9jcHVf aW5mbygmdGhpc19jcHUoY3B1X3NpZykpOwo+Pj4gIAo+Pj4gLSAgICBpZiAoICFtaWNyb2NvZGVf b3BzICkKPj4+IC0gICAgICAgIHJldHVybiAwOwo+Pj4gKyAgICBpZiAoIHVubGlrZWx5KHJldCkg KQo+Pj4gKyAgICAgICAgcmV0dXJuIHJldDsKPj4+ICAKPj4+ICAgICAgc3Bpbl9sb2NrKCZtaWNy b2NvZGVfbXV0ZXgpOwo+Pj4gIAo+Pj4gLSAgICBlcnIgPSBtaWNyb2NvZGVfb3BzLT5jb2xsZWN0 X2NwdV9pbmZvKHNpZyk7Cj4+PiAtICAgIGlmICggbGlrZWx5KCFlcnIpICkKPj4+IC0gICAgICAg IGVyciA9IG1pY3JvY29kZV9vcHMtPmFwcGx5X21pY3JvY29kZSgpOwo+Pj4gLSAgICBzcGluX3Vu bG9jaygmbWljcm9jb2RlX211dGV4KTsKPj4+ICsgICAgaWYgKCBwYXRjaCApCj4+PiArICAgIHsK Pj4+ICsgICAgICAgIC8qCj4+PiArICAgICAgICAgKiBJZiBhIHBhdGNoIGlzIHNwZWNpZmllZCwg aXQgc2hvdWxkIGhhcyBuZXdlciByZXZpc2lvbiB0aGFuCj4+PiArICAgICAgICAgKiB0aGF0IG9m IHRoZSBwYXRjaCBjYWNoZWQuCj4+PiArICAgICAgICAgKi8KPj4+ICsgICAgICAgIGlmICggbWlj cm9jb2RlX2NhY2hlICYmCj4+PiArICAgICAgICAgICAgIG1pY3JvY29kZV9vcHMtPmNvbXBhcmVf cGF0Y2gocGF0Y2gsIG1pY3JvY29kZV9jYWNoZSkgIT0gTkVXX1VDT0RFICkKPj4+ICsgICAgICAg IHsKPj4+ICsgICAgICAgICAgICBzcGluX3VubG9jaygmbWljcm9jb2RlX211dGV4KTsKPj4+ICsg ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4+ICsgICAgICAgIH0KPj4+ICAKPj4+IC0gICAg cmV0dXJuIGVycjsKPj4+IC19Cj4+PiArICAgICAgICByZXQgPSBtaWNyb2NvZGVfb3BzLT5hcHBs eV9taWNyb2NvZGUocGF0Y2gpOwo+Pgo+PlRoZXJlJ3Mgbm8gcHJpbnRrKCkgaGVyZSBidXQgLi4u Cj4+Cj4+PiArICAgIH0KPj4+ICsgICAgZWxzZSBpZiAoIG1pY3JvY29kZV9jYWNoZSApCj4+PiAr ICAgIHsKPj4+ICsgICAgICAgIHJldCA9IG1pY3JvY29kZV9vcHMtPmFwcGx5X21pY3JvY29kZSht aWNyb2NvZGVfY2FjaGUpOwo+Pj4gKyAgICAgICAgaWYgKCByZXQgPT0gLUVJTyApCj4+PiArICAg ICAgICAgICAgcHJpbnRrKCJVcGRhdGUgZmFpbGVkLiBSZWJvb3QgbmVlZGVkXG4iKTsKPj4KPj4u Li4geW91IGVtaXQgYSBsb2cgbWVzc2FnZSBoZXJlLiBXaHkgdGhlIGRpZmZlcmVuY2U/IEFuZCB3 b3VsZG4ndAo+Pml0IGJlIGJldHRlciB0byBoYXZlIGp1c3QgYSBzaW5nbGUgY2FsbCB0byAtPmFw cGx5IGFueXdheSwgYnkgc2ltcGx5Cj4+YXNzaWduaW5nICJtaWNyb2NvZGVfY2FjaGUiIHRvICJw YXRjaCIgYW5kIG1vdmluZyB0aGUgY2FsbCBhIGxpdHRsZQo+PmZ1cnRoZXIgZG93bj8KPiAKPiAt RUlPIG1lYW5zIHdlIGxvYWRlZCB0aGUgcGF0Y2ggYnV0IHRoZSByZXZpc2lvbiBkaWRuJ3QgY2hh bmdlLiBUaGlzCj4gZXJyb3IgY29kZSBpbmRpY2F0ZXMgYW4gZXJyb3IgaW4gdGhlIHBhdGNoLiBJ dCBpcyB1bmxpa2VseSB0byBoYXBwZW4uCj4gQW5kIGluIHRoaXMgdjcsIGEgcGF0Y2ggaXMgc3Rv cmVkIGFmdGVyIGJlaW5nIGxvYWRpbmcgc3VjY2Vzc2Z1bGx5Cj4gb24gYSBDUFUuIFRvIHNpbXBs aWZ5IGhhbmRsaW5nIG9mIGxvYWQgZmFpbHVyZSBhbmQgYXZvaWQgY2xlYW51cCB0byB0aGUKPiBn bG9iYWwgY2FjaGUgKGlmIGEgcGF0Y2ggaGFzIGEgc3VjY2VzcyByYXRlLCB3ZSBuZWVkIHRvIGNv bnNpZGVyIHdoaWNoCj4gb25lIHRvIHNhdmUgd2hlbiB3ZSBoYXZlIGEgbmV3IHBhdGNoIHdpdGgg OTUlIHJhdGUgYW5kIGFuIG9sZCBvbmUgd2l0aAo+IDEwMCUgcmF0ZSwgaXQgd291bGQgYmUgcmVh bGx5IGNvbXBsZXgpLCB3ZSBhc3N1bWUgdGhhdCBsb2FkaW5nIHRoZSBjYWNoZQo+IChiZWluZyBs b2FkZWQgc3VjY2Vzc2Z1bGx5IG9uIGEgQ1BVKSBzaG91bGRuJ3QgcmV0dXJuIEVJTy4gT3RoZXJ3 aXNlLAo+IGFuIGVycm9yIG1lc3NhZ2UgaXMgcHJvbXB0ZWQuCgpCdXQgdGhlbiB0aGUgbG9nIG1l c3NhZ2UgaXRzZWxmIG5lZWRzIHRvIGJlIG1vcmUgc3BlY2lmaWMuIFRoYXQnbGwKdGhlbiBlaXRo ZXIgYWxsb3cgdG8gdW5kZXJzdGFuZCB3aHkgb25lIGlzIHdhbnRlZCBoZXJlIGJ1dCBub3QKZWxz ZXdoZXJlLCBvciBhZGRpdGlvbmFsbHkgYSBjb21tZW50IHNob3VsZCBiZSBhdHRhY2hlZC4KCj4+ PiAtLS0gYS94ZW4vYXJjaC94ODYvc21wYm9vdC5jCj4+PiArKysgYi94ZW4vYXJjaC94ODYvc21w Ym9vdC5jCj4+PiBAQCAtMzYzLDEwICszNjMsNyBAQCB2b2lkIHN0YXJ0X3NlY29uZGFyeSh2b2lk ICp1bnVzZWQpCj4+PiAgCj4+PiAgICAgIGluaXRpYWxpemVfY3B1X2RhdGEoY3B1KTsKPj4+ICAK Pj4+IC0gICAgaWYgKCBzeXN0ZW1fc3RhdGUgPD0gU1lTX1NUQVRFX3NtcF9ib290ICkKPj4+IC0g ICAgICAgIGVhcmx5X21pY3JvY29kZV91cGRhdGVfY3B1KGZhbHNlKTsKPj4+IC0gICAgZWxzZQo+ Pj4gLSAgICAgICAgbWljcm9jb2RlX3Jlc3VtZV9jcHUoKTsKPj4+ICsgICAgZWFybHlfbWljcm9j b2RlX3VwZGF0ZV9jcHUoKTsKPj4KPj5JJ20gc3RydWdnbGluZyB0byB1bmRlcnN0YW5kIGhvdyB5 b3UgZ2V0IGF3YXkgd2l0aG91dCB0aGUgImZhbHNlIgo+PmFyZ3VtZW50IHRoYXQgd2FzIHBhc3Nl ZCBoZXJlIGJlZm9yZS4gWW91IGxvb2sgdG8gbm93IGJlIGNhbGxpbmcKPj4tPnN0YXJ0X3VwZGF0 ZSgpIHVuY29uZGl0aW9uYWxseSAoc28gbG9uZyBhcyB0aGUgaG9vayBpcyBub3QgTlVMTCksCj4+ d2hpY2ggSSBkb24ndCB0aGluayBpcyBjb3JyZWN0LiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgb25s eSBvbmNlIGJ5Cj4+dGhlIENQVSBfbGVhZGluZ18gYW4gdXBkYXRlICh0aGUgQlNQIGR1cmluZyBi b290LCBhbmQgdGhlIENQVQo+PnRoZSBoeXBlcmNhbGwgZ2V0cyBpbnZva2VkIG9uIChvciB0aGUg Zmlyc3QgQ1BVIGFuIHVwZGF0ZSBnZXRzCj4+aXNzdWVkIG9uZSkgZm9yIGEgbGF0ZSB1cGRhdGUu IEFtIEkgbWlzc2luZyBzb21ldGhpbmc/Cj4gCj4gQlNQIGFuZCBBUHMgY2FsbCBkaWZmZXJlbnQg ZnVuY3Rpb25zLCBlYXJseV9taWNyb2NvZGVfcGFyc2VfYW5kX3VwZGF0ZV9jcHUoKQo+IGFuZCBl YXJseV9taWNyb2NvZGVfdXBkYXRlX2NwdSgpIHJlc3BlY3RpdmVseS4gVGhlIGxhdHRlciB3b24n dCBjYWxsCj4gLT5zdGFydF91cGRhdGUoKS4KCk9oLCBJIHNlZSAtIEknbSBzb3JyeS4gSSd2ZSBi ZWVuIG1pc2xlYWQgYnkgdGhlIHBhdGNoIGNvbnRleHQKaW5kaWNhdG9ycy4gQnV0IHN0aWxsLCBi eSB0aGVpciBuYW1lcyB0aGVyZSdzIG5vdCBzdXBwb3NlZCB0byBiZQpzdWNoIGEgZGlmZmVyZW5j ZS4gSSB3b25kZXIgd2hldGhlciB3ZSB3b3VsZG4ndCBiZXR0ZXIgc3RpY2sKdG8ganVzdCBvbmUg ZnVuY3Rpb24gKGVhcmx5X21pY3JvY29kZV91cGRhdGVfY3B1KCkpLCBoYXZpbmcKaXQgdGFrZSBh IGJvb2xlYW4gYXMgaXMgdGhlIGNhc2Ugbm93LiBUaGF0IHdvdWxkIGNvbnRyb2wgYm90aApwYXJz aW5nIGFuZCAtPnN0YXJ0X3VwZGF0ZSgpIGludm9jYXRpb24uCgpKYW4KCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu b3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs