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=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 4F6ABC2BB1D for ; Fri, 13 Mar 2020 11:18:44 +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 2F6D82072C for ; Fri, 13 Mar 2020 11:18:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2F6D82072C 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 1jCiKj-0006jv-71; Fri, 13 Mar 2020 11:18:29 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jCiKh-0006je-Vq for xen-devel@lists.xenproject.org; Fri, 13 Mar 2020 11:18:28 +0000 X-Inumbo-ID: 5c07d8ce-651c-11ea-b2c4-12813bfff9fa Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 5c07d8ce-651c-11ea-b2c4-12813bfff9fa; Fri, 13 Mar 2020 11:18:27 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 46609AAC7; Fri, 13 Mar 2020 11:18:26 +0000 (UTC) To: Julien Grall , xen-devel@lists.xenproject.org References: <20200312082831.22280-1-jgross@suse.com> <20200312082831.22280-2-jgross@suse.com> <1be676b5-267a-0b7e-7b78-2f15162475c7@xen.org> From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= Message-ID: <7f39e716-641b-b2d3-7e2b-2f30ccda10c5@suse.com> Date: Fri, 13 Mar 2020 12:18:25 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <1be676b5-267a-0b7e-7b78-2f15162475c7@xen.org> Content-Language: en-US Subject: Re: [Xen-devel] [PATCH v5 1/4] xen/rcu: don't use stop_machine_run() for rcu_barrier() 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: Stefano Stabellini , Wei Liu , Andrew Cooper , Ian Jackson , George Dunlap , Jan Beulich Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gMTMuMDMuMjAgMTI6MDIsIEp1bGllbiBHcmFsbCB3cm90ZToKPiAKPiAKPiBPbiAxMi8wMy8y MDIwIDA4OjI4LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOgo+PiBUb2RheSByY3VfYmFycmllcigpIGlz IGNhbGxpbmcgc3RvcF9tYWNoaW5lX3J1bigpIHRvIHN5bmNocm9uaXplIGFsbAo+PiBwaHlzaWNh bCBjcHVzIGluIG9yZGVyIHRvIGVuc3VyZSBhbGwgcGVuZGluZyByY3UgY2FsbHMgaGF2ZSBmaW5p c2hlZAo+PiB3aGVuIHJldHVybmluZy4KPj4KPj4gQXMgc3RvcF9tYWNoaW5lX3J1bigpIGlzIHVz aW5nIHRhc2tsZXRzIHRoaXMgcmVxdWlyZXMgc2NoZWR1bGluZyBvZgo+PiBpZGxlIHZjcHVzIG9u IGFsbCBjcHVzIGltcG9zaW5nIHRoZSBuZWVkIHRvIGNhbGwgcmN1X2JhcnJpZXIoKSBvbiBpZGxl Cj4+IGNwdXMgb25seSBpbiBjYXNlIG9mIGNvcmUgc2NoZWR1bGluZyBiZWluZyBhY3RpdmUsIGFz IG90aGVyd2lzZSBhCj4+IHNjaGVkdWxpbmcgZGVhZGxvY2sgd291bGQgb2NjdXIuCj4+Cj4+IFRo ZXJlIGlzIG5vIG5lZWQgYXQgYWxsIHRvIGRvIHRoZSBzeW5jaW5nIG9mIHRoZSBjcHVzIGluIHRh c2tsZXRzLCBhcwo+PiByY3UgYWN0aXZpdHkgaXMgc3RhcnRlZCBpbiBfX2RvX3NvZnRpcnEoKSBj YWxsZWQgd2hlbmV2ZXIgc29mdGlycQo+PiBhY3Rpdml0eSBpcyBhbGxvd2VkLiBTbyByY3VfYmFy cmllcigpIGNhbiBlYXNpbHkgYmUgbW9kaWZpZWQgdG8gdXNlCj4+IHNvZnRpcnEgZm9yIHN5bmNo cm9uaXphdGlvbiBvZiB0aGUgY3B1cyBubyBsb25nZXIgcmVxdWlyaW5nIGFueQo+PiBzY2hlZHVs aW5nIGFjdGl2aXR5Lgo+Pgo+PiBBcyB0aGVyZSBhbHJlYWR5IGlzIGEgcmN1IHNvZnRpcnEgcmV1 c2UgdGhhdCBmb3IgdGhlIHN5bmNocm9uaXphdGlvbi4KPj4KPj4gUmVtb3ZlIHRoZSBiYXJyaWVy IGVsZW1lbnQgZnJvbSBzdHJ1Y3QgcmN1X2RhdGEgYXMgaXQgaXNuJ3QgdXNlZC4KPj4KPj4gRmlu YWxseSBzd2l0Y2ggcmN1X2JhcnJpZXIoKSB0byByZXR1cm4gdm9pZCBhcyBpdCBub3cgY2FuIG5l dmVyIGZhaWwuCj4+Cj4+IFBhcnRpYWxseS1iYXNlZC1vbi1wYXRjaC1ieTogSWdvciBEcnV6aGlu aW4gPGlnb3IuZHJ1emhpbmluQGNpdHJpeC5jb20+Cj4+IFNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4g R3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KPj4gLS0tCj4+IFYyOgo+PiAtIGFkZCByZWN1cnNpb24g ZGV0ZWN0aW9uCj4+Cj4+IFYzOgo+PiAtIGZpeCByYWNlcyAoSWdvciBEcnV6aGluaW4pCj4+Cj4+ IFY1Ogo+PiAtIHJlbmFtZSBkb25lX2NvdW50IHRvIHBlbmRpbmdfY291bnQgKEphbiBCZXVsaWNo KQo+PiAtIGZpeCByYWNlIChKYW4gQmV1bGljaCkKPj4gLS0tCj4+IMKgIHhlbi9jb21tb24vcmN1 cGRhdGUuY8KgwqDCoMKgwqAgfCA5MiAKPj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLQo+PiDCoCB4ZW4vaW5jbHVkZS94ZW4vcmN1cGRhdGUuaCB8wqAgMiAr LQo+PiDCoCAyIGZpbGVzIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygt KQo+Pgo+PiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9yY3VwZGF0ZS5jIGIveGVuL2NvbW1vbi9y Y3VwZGF0ZS5jCj4+IGluZGV4IDAzZDg0NzY0ZDIuLmM1ZWY2YWNiMWUgMTAwNjQ0Cj4+IC0tLSBh L3hlbi9jb21tb24vcmN1cGRhdGUuYwo+PiArKysgYi94ZW4vY29tbW9uL3JjdXBkYXRlLmMKPj4g QEAgLTgzLDcgKzgzLDYgQEAgc3RydWN0IHJjdV9kYXRhIHsKPj4gwqDCoMKgwqDCoCBzdHJ1Y3Qg cmN1X2hlYWQgKipkb25ldGFpbDsKPj4gwqDCoMKgwqDCoCBsb25nwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBibGltaXQ7wqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogVXBwZXIgbGltaXQgb24gYSBwcm9j ZXNzZWQgCj4+IGJhdGNoICovCj4+IMKgwqDCoMKgwqAgaW50IGNwdTsKPj4gLcKgwqDCoCBzdHJ1 Y3QgcmN1X2hlYWQgYmFycmllcjsKPj4gwqDCoMKgwqDCoCBsb25nwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBsYXN0X3JzX3FsZW47wqDCoMKgwqAgLyogcWxlbiBkdXJpbmcgdGhlIGxhc3QgCj4+IHJl c2NoZWQgKi8KPj4gwqDCoMKgwqDCoCAvKiAzKSBpZGxlIENQVXMgaGFuZGxpbmcgKi8KPj4gQEAg LTkxLDYgKzkwLDcgQEAgc3RydWN0IHJjdV9kYXRhIHsKPj4gwqDCoMKgwqDCoCBib29sIGlkbGVf dGltZXJfYWN0aXZlOwo+PiDCoMKgwqDCoMKgIGJvb2zCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBy b2Nlc3NfY2FsbGJhY2tzOwo+PiArwqDCoMKgIGJvb2zCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJh cnJpZXJfYWN0aXZlOwo+PiDCoCB9Owo+PiDCoCAvKgo+PiBAQCAtMTQzLDUxICsxNDMsODIgQEAg c3RhdGljIGludCBxaGltYXJrID0gMTAwMDA7Cj4+IMKgIHN0YXRpYyBpbnQgcWxvd21hcmsgPSAx MDA7Cj4+IMKgIHN0YXRpYyBpbnQgcnNpbnRlcnZhbCA9IDEwMDA7Cj4+IC1zdHJ1Y3QgcmN1X2Jh cnJpZXJfZGF0YSB7Cj4+IC3CoMKgwqAgc3RydWN0IHJjdV9oZWFkIGhlYWQ7Cj4+IC3CoMKgwqAg YXRvbWljX3QgKmNwdV9jb3VudDsKPj4gLX07Cj4+ICsvKgo+PiArICogcmN1X2JhcnJpZXIoKSBo YW5kbGluZzoKPj4gKyAqIGNwdV9jb3VudCBob2xkcyB0aGUgbnVtYmVyIG9mIGNwdSByZXF1aXJl ZCB0byBmaW5pc2ggYmFycmllciAKPj4gaGFuZGxpbmcuCj4gCj4gTklUOiB0aGUgbnVtYmVyIG9m IGNwdXMgKEkgdGhpbmspCj4gCj4+ICsgKiBwZW5kaW5nX2NvdW50IGlzIGluaXRpYWxpemVkIHRv IG5yX2NwdXMgKyAxLgo+PiArICogQ3B1cyBhcmUgc3luY2hyb25pemVkIHZpYSBzb2Z0aXJxIG1l Y2hhbmlzbS4gcmN1X2JhcnJpZXIoKSBpcyAKPj4gcmVnYXJkZWQgdG8KPj4gKyAqIGJlIGFjdGl2 ZSBpZiBwZW5kaW5nX2NvdW50IGlzIG5vdCB6ZXJvLiBJbiBjYXNlIHJjdV9iYXJyaWVyKCkgaXMg Cj4+IGNhbGxlZCBvbgo+PiArICogbXVsdGlwbGUgY3B1cyBpdCBpcyBlbm91Z2ggdG8gY2hlY2sg Zm9yIHBlbmRpbmdfY291bnQgYmVpbmcgbm90IAo+PiB6ZXJvIG9uIGVudHJ5Cj4+ICsgKiBhbmQg dG8gY2FsbCBwcm9jZXNzX3BlbmRpbmdfc29mdGlycXMoKSBpbiBhIGxvb3AgdW50aWwgCj4+IHBl bmRpbmdfY291bnQgZHJvcHMgdG8KPj4gKyAqIHplcm8sIGJlZm9yZSBzdGFydGluZyB0aGUgbmV3 IHJjdV9iYXJyaWVyKCkgcHJvY2Vzc2luZy4KPj4gKyAqIEluIG9yZGVyIHRvIGF2b2lkIGhhbmdz IHdoZW4gcmN1X2JhcnJpZXIoKSBpcyBjYWxsZWQgbXVsdGlwbGUgCj4+IHRpbWVzIG9uIHRoZQo+ PiArICogc2FtZSBjcHUgaW4gZmFzdCBzZXF1ZW5jZSBhbmQgYSBzbGF2ZSBjcHUgY291bGRuJ3Qg ZHJvcCBvdXQgb2YgdGhlCj4+ICsgKiBiYXJyaWVyIGhhbmRsaW5nIGZhc3QgZW5vdWdoIGEgc2Vj b25kIGNvdW50ZXIgcGVuZGluZ19jb3VudCBpcyAKPj4gbmVlZGVkLgo+IAo+IEFzIGFuIGFzaWRl IHF1ZXN0aW9uLCBkb24ndCB3ZSBtaXNzIGEgbWVtb3J5IGJhcnJpZXIgaW4gCj4gcmN1X2JhcnJp ZXJfY2FsbGJhY2sgb3IgcmN1X2JhcnJpZXJfYWN0aW9uKCk/IFRoaXMgYmFycmllciB3b3VsZCBl bnN1cmUgCj4gdGhhdCB0aGUgUkNVIGNoYW5nZXMgaGF2ZSBiZWVuIHNlZW4gYmVmb3JlIHdlIHRl bGwgdGhlICJtYXN0ZXIiIENQVSB3ZSAKPiBhcmUgZG9uZS4KClNvdW5kcyBsaWtlIGEgc2Vuc2li bGUgaWRlYS4KCj4gCj4+ICsgKiBUaGUgcmN1X2JhcnJpZXIoKSBpbnZva2luZyBjcHUgd2lsbCB3 YWl0IHVudGlsIHBlbmRpbmdfY291bnQgCj4+IHJlYWNoZXMgMQo+PiArICogKG1lYW5pbmcgdGhh dCBhbGwgY3B1cyBoYXZlIGZpbmlzaGVkIHByb2Nlc3NpbmcgdGhlIGJhcnJpZXIpIGFuZCAKPj4g dGhlbiB3aWxsCj4+ICsgKiByZXNldCBwZW5kaW5nX2NvdW50IHRvIDAgdG8gZW5hYmxlIGVudGVy aW5nIHJjdV9iYXJyaWVyKCkgYWdhaW4uCj4+ICsgKi8KPj4gK3N0YXRpYyBhdG9taWNfdCBjcHVf Y291bnQgPSBBVE9NSUNfSU5JVCgwKTsKPj4gK3N0YXRpYyBhdG9taWNfdCBwZW5kaW5nX2NvdW50 ID0gQVRPTUlDX0lOSVQoMCk7Cj4+IMKgIHN0YXRpYyB2b2lkIHJjdV9iYXJyaWVyX2NhbGxiYWNr KHN0cnVjdCByY3VfaGVhZCAqaGVhZCkKPj4gwqAgewo+PiAtwqDCoMKgIHN0cnVjdCByY3VfYmFy cmllcl9kYXRhICpkYXRhID0gY29udGFpbmVyX29mKAo+PiAtwqDCoMKgwqDCoMKgwqAgaGVhZCwg c3RydWN0IHJjdV9iYXJyaWVyX2RhdGEsIGhlYWQpOwo+PiAtwqDCoMKgIGF0b21pY19pbmMoZGF0 YS0+Y3B1X2NvdW50KTsKPj4gK8KgwqDCoCBhdG9taWNfZGVjKCZjcHVfY291bnQpOwo+PiDCoCB9 Cj4+IC1zdGF0aWMgaW50IHJjdV9iYXJyaWVyX2FjdGlvbih2b2lkICpfY3B1X2NvdW50KQo+PiAr c3RhdGljIHZvaWQgcmN1X2JhcnJpZXJfYWN0aW9uKHZvaWQpCj4+IMKgIHsKPj4gLcKgwqDCoCBz dHJ1Y3QgcmN1X2JhcnJpZXJfZGF0YSBkYXRhID0geyAuY3B1X2NvdW50ID0gX2NwdV9jb3VudCB9 Owo+PiAtCj4+IC3CoMKgwqAgQVNTRVJUKCFsb2NhbF9pcnFfaXNfZW5hYmxlZCgpKTsKPj4gLcKg wqDCoCBsb2NhbF9pcnFfZW5hYmxlKCk7Cj4+ICvCoMKgwqAgc3RydWN0IHJjdV9oZWFkIGhlYWQ7 Cj4+IMKgwqDCoMKgwqAgLyoKPj4gwqDCoMKgwqDCoMKgICogV2hlbiBjYWxsYmFjayBpcyBleGVj dXRlZCwgYWxsIHByZXZpb3VzbHktcXVldWVkIFJDVSB3b3JrIG9uIAo+PiB0aGlzIENQVQo+PiAt wqDCoMKgwqAgKiBpcyBjb21wbGV0ZWQuIFdoZW4gYWxsIENQVXMgaGF2ZSBleGVjdXRlZCB0aGVp ciBjYWxsYmFjaywgCj4+IGRhdGEuY3B1X2NvdW50Cj4+IC3CoMKgwqDCoCAqIHdpbGwgaGF2ZSBi ZWVuIGluY3JlbWVudGVkIHRvIGluY2x1ZGUgZXZlcnkgb25saW5lIENQVS4KPj4gK8KgwqDCoMKg ICogaXMgY29tcGxldGVkLiBXaGVuIGFsbCBDUFVzIGhhdmUgZXhlY3V0ZWQgdGhlaXIgY2FsbGJh Y2ssIAo+PiBjcHVfY291bnQKPj4gK8KgwqDCoMKgICogd2lsbCBoYXZlIGJlZW4gZGVjcmVtZW50 ZWQgdG8gMC4KPj4gwqDCoMKgwqDCoMKgICovCj4+IC3CoMKgwqAgY2FsbF9yY3UoJmRhdGEuaGVh ZCwgcmN1X2JhcnJpZXJfY2FsbGJhY2spOwo+PiArwqDCoMKgIGNhbGxfcmN1KCZoZWFkLCByY3Vf YmFycmllcl9jYWxsYmFjayk7Cj4+IC3CoMKgwqAgd2hpbGUgKCBhdG9taWNfcmVhZChkYXRhLmNw dV9jb3VudCkgIT0gbnVtX29ubGluZV9jcHVzKCkgKQo+PiArwqDCoMKgIHdoaWxlICggYXRvbWlj X3JlYWQoJmNwdV9jb3VudCkgKQo+PiDCoMKgwqDCoMKgIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKg IHByb2Nlc3NfcGVuZGluZ19zb2Z0aXJxcygpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgY3B1X3Jl bGF4KCk7Cj4+IMKgwqDCoMKgwqAgfQo+PiAtwqDCoMKgIGxvY2FsX2lycV9kaXNhYmxlKCk7Cj4+ IC0KPj4gLcKgwqDCoCByZXR1cm4gMDsKPj4gK8KgwqDCoCBhdG9taWNfZGVjKCZwZW5kaW5nX2Nv dW50KTsKPj4gwqAgfQo+PiAtLyoKPj4gLSAqIEFzIHJjdV9iYXJyaWVyKCkgaXMgdXNpbmcgc3Rv cF9tYWNoaW5lX3J1bigpIGl0IGlzIGFsbG93ZWQgdG8gYmUgCj4+IHVzZWQgaW4KPj4gLSAqIGlk bGUgY29udGV4dCBvbmx5IChzZWUgY29tbWVudCBmb3Igc3RvcF9tYWNoaW5lX3J1bigpKS4KPj4g LSAqLwo+PiAtaW50IHJjdV9iYXJyaWVyKHZvaWQpCj4+ICt2b2lkIHJjdV9iYXJyaWVyKHZvaWQp Cj4+IMKgIHsKPj4gLcKgwqDCoCBhdG9taWNfdCBjcHVfY291bnQgPSBBVE9NSUNfSU5JVCgwKTsK Pj4gLcKgwqDCoCByZXR1cm4gc3RvcF9tYWNoaW5lX3J1bihyY3VfYmFycmllcl9hY3Rpb24sICZj cHVfY291bnQsIE5SX0NQVVMpOwo+PiArwqDCoMKgIHVuc2lnbmVkIGludCBuX2NwdXM7Cj4+ICsK PiAKPiBJdCB3b3VsZCBiZSBnb29kIHRvIHNwZWxsIG91dCB0aGlzIGNvZGUgaGFzIHRvIGJlIGNh bGxlZCB3aXRoIGludGVycnVwdCAKPiBlbmFibGVkIGFuZCBub3QgaW4gYW4gaW50ZXJydXB0IGNv bnRleHQuCgpJJ2xsIGFkZCBhbiBBU1NFUlQoKS4KCj4gCj4+ICvCoMKgwqAgZm9yICggOzsgKQo+ PiArwqDCoMKgIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggIWF0b21pY19yZWFkKCZwZW5kaW5n X2NvdW50KSAmJiBnZXRfY3B1X21hcHMoKSApCj4+ICvCoMKgwqDCoMKgwqDCoCB7Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIG5fY3B1cyA9IG51bV9vbmxpbmVfY3B1cygpOwo+PiArCj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICggYXRvbWljX2NtcHhjaGcoJnBlbmRpbmdfY291bnQs IDAsIG5fY3B1cyArIDEpID09IDAgKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGJyZWFrOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHB1dF9jcHVfbWFwcygpOwo+ PiArwqDCoMKgwqDCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBwcm9jZXNzX3BlbmRp bmdfc29mdGlycXMoKTsKPj4gK8KgwqDCoMKgwqDCoMKgIGNwdV9yZWxheCgpOwo+PiArwqDCoMKg IH0KPj4gKwo+PiArwqDCoMKgIGF0b21pY19zZXQoJmNwdV9jb3VudCwgbl9jcHVzKTsKPj4gK8Kg wqDCoCBjcHVtYXNrX3JhaXNlX3NvZnRpcnEoJmNwdV9vbmxpbmVfbWFwLCBSQ1VfU09GVElSUSk7 Cj4+ICsKPj4gK8KgwqDCoCBwdXRfY3B1X21hcHMoKTsKPiAKPiBJZiB5b3UgcHV0IHRoZSBDUFUg bWFwcywgd291bGRuJ3QgaXQgYmUgcG9zc2libGUgdG8gaGF2ZSBhIENQVSB0dXJuZWQgCj4gb2Zm PyBJZiBub3QsIGNhbiB5b3UgYWRkIGEgY29tbWVudCBpbiB0aGUgY29kZSB3aHkgdGhpcyBpcyBz YWZlPwoKWWVzLCB5b3UgYXJlIHJpZ2h0LiBUaGlzIG1pZ2h0IGJlIHBvc3NpYmxlLCBldmVuIGlm IHJhdGhlcgp1bmxpa2VseSBhcyBhIGNwdSBiZWluZyByZW1vdmVkIGhhcyB0byBiZSBpbiBpZGxl IGFscmVhZHksIHNvCnRoZSBwZW5kaW5nIHNvZnRpcnEgc2hvdWxkIGJlIHBpY2tlZCB1cCByYXRo ZXIgZmFzdC4KCgpKdWVyZ2VuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9q ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVu LWRldmVs