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 lists.lttng.org (lists.lttng.org [167.114.26.123]) (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 8F4BEC6FD1D for ; Tue, 21 Mar 2023 20:19:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=lists.lttng.org; s=default; t=1679429942; bh=K6YI5l4nWdQcy/G7hsTOeyOK8kD9FRQ2f34Gja6x2a0=; h=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=lBeCR8iM7hBp+SjhiHvQVsP/6HjROXB8YDYJ8TBzqAZyn/enhikRvdGFGQglpgoea dKEFS8QAMFlmGxNnjqm5Q4LLvNilUkGKBXF4JuLC5U71ejfGsZp1kz9PExY1fyFrj1 WlBbEdGF3lQ2uYpiyj878XBYqF5XrqBo2EQ2f++TUXcziYgvYaW9sl4QfDF2HIPee+ 3HmkKw3YI14DlxIic1JKjHm1vCPSt3e1jw9rBPj9MtCyeDPlSYfA7ccEiwrLbsxmo3 rJoiXmKq4R1Gxq7jwwOdHRhKddBgznYLqn61jtMA9Y5sqXZ5HpcqUKGb94Q5ZJOMlE i0ZIn1G4lMtqw== Received: from lists-lttng01.efficios.com (localhost [IPv6:::1]) by lists.lttng.org (Postfix) with ESMTP id 4Ph2xd5frSz2H5t; Tue, 21 Mar 2023 16:19:01 -0400 (EDT) Received: from smtpout.efficios.com (smtpout.efficios.com [167.114.26.122]) by lists.lttng.org (Postfix) with ESMTPS id 4Ph2xc1dlSz2H5r for ; Tue, 21 Mar 2023 16:19:00 -0400 (EDT) Received: from [172.16.0.188] (192-222-143-198.qc.cable.ebox.net [192.222.143.198]) by smtpout.efficios.com (Postfix) with ESMTPSA id 4Ph2xb5GGSzr98; Tue, 21 Mar 2023 16:18:59 -0400 (EDT) Message-ID: <77db8347-a2cb-61c0-b92f-a117b2f91aff@efficios.com> Date: Tue, 21 Mar 2023 16:19:11 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Content-Language: en-US To: =?UTF-8?B?T25kxZllaiBTdXLDvQ==?= , lttng-dev@lists.lttng.org References: <20230321133102.1054238-1-ondrej@sury.org> <20230321133102.1054238-6-ondrej@sury.org> In-Reply-To: <20230321133102.1054238-6-ondrej@sury.org> Subject: Re: [lttng-dev] [PATCH 5/7] Replace the arch-specific memory barriers with __atomic builtins X-BeenThere: lttng-dev@lists.lttng.org X-Mailman-Version: 2.1.39 Precedence: list List-Id: LTTng development list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Mathieu Desnoyers via lttng-dev Reply-To: Mathieu Desnoyers Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: lttng-dev-bounces@lists.lttng.org Sender: "lttng-dev" T24gMjAyMy0wMy0yMSAwOTozMSwgT25kxZllaiBTdXLDvSB2aWEgbHR0bmctZGV2IHdyb3RlOgo+ IEluc3RlYWQgb2YgYSBjdXN0b20gY29kZSwgdXNlIHRoZSBfX2F0b21pY190aHJlYWRfZmVuY2Uo KSBidWlsdGluIHRvCj4gaW1wbGVtZW50IHRoZSBjbW1fbWIoKSwgY21tX3JtYigpLCBjbW1fd21i KCksIGNtbV9zbXBfbWIoKSwKPiBjbW1fc21wX3JtYigpLCBhbmQgY21tX3NtcF93bWIoKSBvbiBh bGwgYXJjaGl0ZWN0dXJlcywgYW5kCj4gY21tX3JlYWRfYmFycmllcl9kZXBlbmRzKCkgb24gYWxw aGEgKG90aGVyd2lzZSBpdCdzIHN0aWxsIG5vLW9wKS4KPiAKPiBmYW1pbHkgb2YgZnVuY3Rpb25z Cj4gCj4gU2lnbmVkLW9mZi1ieTogT25kxZllaiBTdXLDvSA8b25kcmVqQHN1cnkub3JnPgo+IC0t LQo+ICAgaW5jbHVkZS91cmN1L2FyY2gvYWxwaGEuaCAgIHwgIDYgKysrLS0tCj4gICBpbmNsdWRl L3VyY3UvYXJjaC9hcm0uaCAgICAgfCAxNCAtLS0tLS0tLS0tLS0tCj4gICBpbmNsdWRlL3VyY3Uv YXJjaC9nZW5lcmljLmggfCAgNiArKystLS0KPiAgIGluY2x1ZGUvdXJjdS9hcmNoL21pcHMuaCAg ICB8ICA2IC0tLS0tLQo+ICAgaW5jbHVkZS91cmN1L2FyY2gvbmlvczIuaCAgIHwgIDIgLS0KPiAg IGluY2x1ZGUvdXJjdS9hcmNoL3BwYy5oICAgICB8IDI1IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K PiAgIGluY2x1ZGUvdXJjdS9hcmNoL3MzOTAuaCAgICB8ICAyIC0tCj4gICBpbmNsdWRlL3VyY3Uv YXJjaC9zcGFyYzY0LmggfCAxMyAtLS0tLS0tLS0tLS0KPiAgIGluY2x1ZGUvdXJjdS9hcmNoL3g4 Ni5oICAgICB8IDQyICsrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIDkg ZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxMDcgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2luY2x1ZGUvdXJjdS9hcmNoL2FscGhhLmggYi9pbmNsdWRlL3VyY3UvYXJjaC9h bHBoYS5oCj4gaW5kZXggZGMzM2UyOC4uNjE2ODdjNyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3Vy Y3UvYXJjaC9hbHBoYS5oCj4gKysrIGIvaW5jbHVkZS91cmN1L2FyY2gvYWxwaGEuaAo+IEBAIC0y OSw5ICsyOSw5IEBACj4gICBleHRlcm4gIkMiIHsKPiAgICNlbmRpZgo+ICAgCj4gLSNkZWZpbmUg Y21tX21iKCkJCQlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1iIjo6OiJtZW1vcnkiKQo+IC0jZGVm aW5lIGNtbV93bWIoKQkJCV9fYXNtX18gX192b2xhdGlsZV9fICgid21iIjo6OiJtZW1vcnkiKQo+ IC0jZGVmaW5lIGNtbV9yZWFkX2JhcnJpZXJfZGVwZW5kcygpCV9fYXNtX18gX192b2xhdGlsZV9f ICgibWIiOjo6Im1lbW9yeSIpCj4gKyNpZm5kZWYgY21tX3JlYWRfYmFycmllcl9kZXBlbmRzCj4g KyNkZWZpbmUgY21tX3JlYWRfYmFycmllcl9kZXBlbmRzKCkJX19hdG9taWNfdGhyZWFkX2ZlbmNl KF9fQVRPTUlDX0NPTlNVTUUpCj4gKyNlbmRpZgoKCkkgZG9uJ3QgZXhwZWN0IGEgI2lmbmRlZiBp biBhcmNoLXNwZWNpZmljIGNvZGUuIEkgd291bGQgZXhwZWN0IHRoZSAKaWZuZGVmIGluIHRoZSBn ZW5lcmljIGNvZGUuCgpbLi4uXQoKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91cmN1L2FyY2gvZ2Vu ZXJpYy5oIGIvaW5jbHVkZS91cmN1L2FyY2gvZ2VuZXJpYy5oCj4gaW5kZXggYmU2ZTQxZS4uMjcx NTE2MiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3VyY3UvYXJjaC9nZW5lcmljLmgKPiArKysgYi9p bmNsdWRlL3VyY3UvYXJjaC9nZW5lcmljLmgKPiBAQCAtNDQsMTUgKzQ0LDE1IEBAIGV4dGVybiAi QyIgewo+ICAgICovCj4gICAKPiAgICNpZm5kZWYgY21tX21iCj4gLSNkZWZpbmUgY21tX21iKCkg ICAgX19zeW5jX3N5bmNocm9uaXplKCkKPiArI2RlZmluZSBjbW1fbWIoKQlfX2F0b21pY190aHJl YWRfZmVuY2UoX19BVE9NSUNfU0VRX0NTVCkKPiAgICNlbmRpZgo+ICAgCj4gICAjaWZuZGVmIGNt bV9ybWIKPiAtI2RlZmluZSBjbW1fcm1iKCkJY21tX21iKCkKPiArI2RlZmluZSBjbW1fcm1iKCkJ X19hdG9taWNfdGhyZWFkX2ZlbmNlKF9fQVRPTUlDX0FDUVVJUkUpCj4gICAjZW5kaWYKPiAgIAo+ ICAgI2lmbmRlZiBjbW1fd21iCj4gLSNkZWZpbmUgY21tX3dtYigpCWNtbV9tYigpCj4gKyNkZWZp bmUgY21tX3dtYigpCV9fYXRvbWljX3RocmVhZF9mZW5jZShfX0FUT01JQ19SRUxFQVNFKQoKSSBk b24ndCB0aGluayBybWIvd21iIG1hcCB0byBBQ1FVSVJFL1JFTEVBU0Ugc2VtYW50aWMuIFRoaXMg aXMgaW5jb3JyZWN0IApBRkFJVS4gQUNRVUlSRS9SRUxFQVNFIGFyZSBzZW1pLXBlcm1lYWJsZSBi YXJyaWVycyBwcmV2ZW50aW5nIGNvZGUgCm1vdGlvbiBpbiBvbmUgZGlyZWN0aW9uIG9yIHRoZSBv dGhlciwgd2hlcmVhcyBybWIvd21iIGFyZSBiYXJyaWVycyB0aGF0IApvbmx5IGFmZmVjdCBjb2Rl IG1vdGlvbiBvZiBlaXRoZXIgbG9hZHMgb3Igc3RvcmVzIChidXQgaW4gYm90aCBkaXJlY3Rpb25z KS4KCkluIHRoZSBnZW5lcmljIGNhc2UsIHJtYi93bWIgY291bGQgbWFwIHRvIApfX2F0b21pY190 aHJlYWRfZmVuY2UoX19BVE9NSUNfU0VRX0NTVCkuCgoKPiAgICNlbmRpZgo+ICAgCj4gICAjZGVm aW5lIGNtbV9tYygpCWNtbV9iYXJyaWVyKCkKWy4uLl0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91 cmN1L2FyY2gvcHBjLmggYi9pbmNsdWRlL3VyY3UvYXJjaC9wcGMuaAo+IGluZGV4IDc5MTUyOWUu LjYxOGY3OWMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS91cmN1L2FyY2gvcHBjLmgKPiArKysgYi9p bmNsdWRlL3VyY3UvYXJjaC9wcGMuaAo+IEBAIC0zNCwzMSArMzQsNiBAQCBleHRlcm4gIkMiIHsK PiAgIC8qIEluY2x1ZGUgc2l6ZSBvZiBQT1dFUjUrIEwzIGNhY2hlIGxpbmVzOiAyNTYgYnl0ZXMg Ki8KPiAgICNkZWZpbmUgQ0FBX0NBQ0hFX0xJTkVfU0laRQkyNTYKPiAgIAo+IC0jaWZkZWYgX19O T19MV1NZTkNfXwo+IC0jZGVmaW5lIExXU1lOQ19PUENPREUJInN5bmNcbiIKPiAtI2Vsc2UKPiAt I2RlZmluZSBMV1NZTkNfT1BDT0RFCSJsd3N5bmNcbiIKPiAtI2VuZGlmCj4gLQo+IC0vKgo+IC0g KiBVc2Ugc3luYyBmb3IgYWxsIGNtbV9tYi9ybWIvd21iIGJhcnJpZXJzIGJlY2F1c2UgbHdzeW5j IGRvZXMgbm90Cj4gLSAqIHByZXNlcnZlIG9yZGVyaW5nIG9mIGNhY2hlYWJsZSB2cy4gbm9uLWNh Y2hlYWJsZSBhY2Nlc3Nlcywgc28gaXQKPiAtICogc2hvdWxkIG5vdCBiZSB1c2VkIHRvIG9yZGVy IHdpdGggcmVzcGVjdCB0byBNTUlPIG9wZXJhdGlvbnMuICBBbgo+IC0gKiBlaWVpbytsd3N5bmMg cGFpciBpcyBhbHNvIG5vdCBlbm91Z2ggZm9yIGNtbV9ybWIsIGJlY2F1c2UgaXQgd2lsbAo+IC0g KiBvcmRlciBjYWNoZWFibGUgYW5kIG5vbi1jYWNoZWFibGUgbWVtb3J5IG9wZXJhdGlvbnMgc2Vw YXJhdGVseS0tLWkuZS4KPiAtICogbm90IHRoZSBsYXR0ZXIgYWdhaW5zdCB0aGUgZm9ybWVyLgo+ IC0gKi8KPiAtI2RlZmluZSBjbW1fbWIoKSAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgi c3luYyI6OjoibWVtb3J5IikKCkkgYWdyZWUgdGhhdCB3ZSB3aWxsIHdhbnQgdG8gdXNlIHRoZSBn ZW5lcmljIGltcGxlbWVudGF0aW9uIGZvciBzbXBfbWIuCgo+IC0KPiAtLyoKPiAtICogbHdzeW5j IG9yZGVycyBsb2FkcyBpbiBjYWNoZWFibGUgbWVtb3J5IHdpdGggcmVzcGVjdCB0byBvdGhlciBs b2FkcywKPiAtICogYW5kIHN0b3JlcyBpbiBjYWNoZWFibGUgbWVtb3J5IHdpdGggcmVzcGVjdCB0 byBvdGhlciBzdG9yZXMuCj4gLSAqIFRoZXJlZm9yZSwgdXNlIGl0IGZvciBiYXJyaWVycyBvcmRl cmluZyBhY2Nlc3NlcyB0byBjYWNoZWFibGUgbWVtb3J5Cj4gLSAqIG9ubHkuCj4gLSAqLwo+IC0j ZGVmaW5lIGNtbV9zbXBfcm1iKCkgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKExXU1lOQ19PUENP REU6OjoibWVtb3J5IikKPiAtI2RlZmluZSBjbW1fc21wX3dtYigpICAgIF9fYXNtX18gX192b2xh dGlsZV9fIChMV1NZTkNfT1BDT0RFOjo6Im1lbW9yeSIpCgpJIHN1c3BlY3QgdGhhdCB1c2luZyB0 aGUgZ2VuZXJpYyBpbXBsZW1lbnRhdGlvbiB3aWxsIGJlIHNsb3dlciB0aGFuIApsd3N5bmMuIEkg YW0gdGVtcHRlZCB0byBrZWVwIGEgY3VzdG9tIGltcGxlbWVudGF0aW9uIGZvciBybWIvd21iIG9u IHBwYy4gCldlIGNvdWxkIGhhdmUgYSBidWlsZCBtb2RlIHNwZWNpZmljIGZvciBUU0FOIHdoaWNo IG92ZXJyaWRlcyB0aG9zZSB0byAKdXNlIHNtcF9tYiBpbnN0ZWFkLgoKPiAtCj4gICAjZGVmaW5l IG1mdGJsKCkJCQkJCQlcCj4gICAJX19leHRlbnNpb25fXwkJCQkJXAo+ICAgCSh7IAkJCQkJCVwK Wy4uLl0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91cmN1L2FyY2gvc3BhcmM2NC5oIGIvaW5jbHVk ZS91cmN1L2FyY2gvc3BhcmM2NC5oCj4gaW5kZXggMWZmNDBmNS4uYjRlMjVjYSAxMDA2NDQKPiAt LS0gYS9pbmNsdWRlL3VyY3UvYXJjaC9zcGFyYzY0LmgKPiArKysgYi9pbmNsdWRlL3VyY3UvYXJj aC9zcGFyYzY0LmgKPiBAQCAtNDAsMTkgKzQwLDYgQEAgZXh0ZXJuICJDIiB7Cj4gICAKPiAgICNk ZWZpbmUgQ0FBX0NBQ0hFX0xJTkVfU0laRQkyNTYKPiAgIAo+IC0vKgo+IC0gKiBJbnNwaXJlZCBm cm9tIHRoZSBMaW51eCBrZXJuZWwuIFdvcmthcm91bmQgU3BpdGZpcmUgYnVnICM1MS4KPiAtICov Cj4gLSNkZWZpbmUgbWVtYmFyX3NhZmUodHlwZSkJCQlcCj4gLV9fYXNtX18gX192b2xhdGlsZV9f KCJiYSxwdCAlJXhjYywgMWZcblx0IglcCj4gLQkJICAgICAibWVtYmFyICIgdHlwZSAiXG4iCVwK PiAtCQkgICAgICIxOlxuIgkJCVwKPiAtCQkgICAgIDogOiA6ICJtZW1vcnkiKQo+IC0KPiAtI2Rl ZmluZSBjbW1fbWIoKQltZW1iYXJfc2FmZSgiI0xvYWRMb2FkIHwgI0xvYWRTdG9yZSB8ICNTdG9y ZVN0b3JlIHwgI1N0b3JlTG9hZCIpCj4gLSNkZWZpbmUgY21tX3JtYigpCW1lbWJhcl9zYWZlKCIj TG9hZExvYWQiKQo+IC0jZGVmaW5lIGNtbV93bWIoKQltZW1iYXJfc2FmZSgiI1N0b3JlU3RvcmUi KQoKU2FtZSBjb21tZW50IGFzIGZvciBwcGMuCgo+IC0KPiAgICNpZmRlZiBfX2NwbHVzcGx1cwo+ ICAgfQo+ICAgI2VuZGlmCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdXJjdS9hcmNoL3g4Ni5oIGIv aW5jbHVkZS91cmN1L2FyY2gveDg2LmgKPiBpbmRleCA3NDRmOWY5Li5hZjQ0ODdkIDEwMDY0NAo+ IC0tLSBhL2luY2x1ZGUvdXJjdS9hcmNoL3g4Ni5oCj4gKysrIGIvaW5jbHVkZS91cmN1L2FyY2gv eDg2LmgKPiBAQCAtNDYsNDQgKzQ2LDggQEAgZXh0ZXJuICJDIiB7Cj4gICAvKiBGb3IgYmFja3dh cmRzIGNvbXBhdCAqLwo+ICAgI2RlZmluZSBDT05GSUdfUkNVX0hBVkVfRkVOQ0UgMQo+ICAgCj4g LSNkZWZpbmUgY21tX21iKCkgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtZmVuY2UiOjo6Im1l bW9yeSIpCj4gLQo+IC0vKgo+IC0gKiBEZWZpbmUgY21tX3JtYi9jbW1fd21iIHRvICJzdHJpY3Qi IGJhcnJpZXJzIHRoYXQgbWF5IGJlIG5lZWRlZCB3aGVuCj4gLSAqIHVzaW5nIFNTRSBvciB3b3Jr aW5nIHdpdGggSS9PIGFyZWFzLiAgY21tX3NtcF9ybWIvY21tX3NtcF93bWIgYXJlCj4gLSAqIG9u bHkgY29tcGlsZXIgYmFycmllcnMsIHdoaWNoIGlzIGVub3VnaCBmb3IgZ2VuZXJhbCB1c2UuCj4g LSAqLwo+IC0jZGVmaW5lIGNtbV9ybWIoKSAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJsZmVu Y2UiOjo6Im1lbW9yeSIpCj4gLSNkZWZpbmUgY21tX3dtYigpICAgICBfX2FzbV9fIF9fdm9sYXRp bGVfXyAoInNmZW5jZSI6OjogIm1lbW9yeSIpCj4gLSNkZWZpbmUgY21tX3NtcF9ybWIoKSBjbW1f YmFycmllcigpCj4gLSNkZWZpbmUgY21tX3NtcF93bWIoKSBjbW1fYmFycmllcigpCgpSZWx5aW5n IG9uIHRoZSBnZW5lcmljIGJhcnJpZXIgZm9yIHJtYiBhbmQgd21iIHdvdWxkIHNsb3cgdGhpbmdz IGRvd24gb24gCng4Niwgd2UgbWF5IHdhbnQgdG8gZG8gbGlrZSBJIHN1Z2dlc3QgZm9yIHBwYy4K Cj4gLQo+IC0jZWxzZQo+IC0KPiAtLyoKPiAtICogV2UgbGVhdmUgc21wX3JtYi9zbXBfd21iIGFz IGZ1bGwgYmFycmllcnMgZm9yIHByb2Nlc3NvcnMgdGhhdCBkbyBub3QgaGF2ZQo+IC0gKiBmZW5j ZSBpbnN0cnVjdGlvbnMuCj4gLSAqCj4gLSAqIEFuIGVtcHR5IGNtbV9zbXBfcm1iKCkgbWF5IG5v dCBiZSBlbm91Z2ggb24gb2xkIFBlbnRpdW1Qcm8gbXVsdGlwcm9jZXNzb3IKPiAtICogc3lzdGVt cywgZHVlIHRvIGFuIGVycmF0dW0uICBUaGUgTGludXgga2VybmVsIHNheXMgdGhhdCAiRXZlbiBk aXN0cm8KPiAtICoga2VybmVscyBzaG91bGQgdGhpbmsgdHdpY2UgYmVmb3JlIGVuYWJsaW5nIHRo aXMiLCBidXQgZm9yIG5vdyBsZXQncwo+IC0gKiBiZSBjb25zZXJ2YXRpdmUgYW5kIGxlYXZlIHRo ZSBmdWxsIGJhcnJpZXIgb24gMzItYml0IHByb2Nlc3NvcnMuICBBbHNvLAo+IC0gKiBJRFQgV2lu Q2hpcCBzdXBwb3J0cyB3ZWFrIHN0b3JlIG9yZGVyaW5nLCBhbmQgdGhlIGtlcm5lbCBtYXkgZW5h YmxlIGl0Cj4gLSAqIHVuZGVyIG91ciBmZWV0OyBjbW1fc21wX3dtYigpIGNlYXNlcyB0byBiZSBh IG5vcCBmb3IgdGhlc2UgcHJvY2Vzc29ycy4KPiAtICovCj4gLSNpZiAoQ0FBX0JJVFNfUEVSX0xP TkcgPT0gMzIpCj4gLSNkZWZpbmUgY21tX21iKCkgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJs b2NrOyBhZGRsICQwLDAoJSVlc3ApIjo6OiJtZW1vcnkiKQo+IC0jZGVmaW5lIGNtbV9ybWIoKSAg ICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImxvY2s7IGFkZGwgJDAsMCglJWVzcCkiOjo6Im1lbW9y eSIpCj4gLSNkZWZpbmUgY21tX3dtYigpICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibG9jazsg YWRkbCAkMCwwKCUlZXNwKSI6OjoibWVtb3J5IikKPiAtI2Vsc2UKPiAtI2RlZmluZSBjbW1fbWIo KSAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImxvY2s7IGFkZGwgJDAsMCglJXJzcCkiOjo6Im1l bW9yeSIpCj4gLSNkZWZpbmUgY21tX3JtYigpICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibG9j azsgYWRkbCAkMCwwKCUlcnNwKSI6OjoibWVtb3J5IikKPiAtI2RlZmluZSBjbW1fd21iKCkgICAg X19hc21fXyBfX3ZvbGF0aWxlX18gKCJsb2NrOyBhZGRsICQwLDAoJSVyc3ApIjo6OiJtZW1vcnki KQo+IC0jZW5kaWYKClJlbW92aW5nIHRoaXMgcmVtb3ZlcyBzdXBwb3J0IGZvciBvbGRlciBpNjg2 IGFuZCBmb3IgVVJDVV9BUkNIX0sxT00gCihYZW9uIFBoaSkuIERvIHdlIGludGVuZCB0byByZW1v dmUgdGhhdCBzdXBwb3J0ID8KClRoYW5rcywKCk1hdGhpZXUKCj4gICAjZW5kaWYKPiAgIAo+IC0j ZGVmaW5lIGNhYV9jcHVfcmVsYXgoKQlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInJlcDsgbm9wIiA6 IDogOiAibWVtb3J5IikKPiAtCj4gICAjZGVmaW5lIEhBU19DQUFfR0VUX0NZQ0xFUwo+ICAgCj4g ICAjZGVmaW5lIHJkdHNjbGwodmFsKQkJCQkJCQkgIFwKPiBAQCAtOTgsMTAgKzYyLDEwIEBAIHR5 cGVkZWYgdWludDY0X3QgY2FhX2N5Y2xlc190Owo+ICAgCj4gICBzdGF0aWMgaW5saW5lIGNhYV9j eWNsZXNfdCBjYWFfZ2V0X2N5Y2xlcyh2b2lkKQo+ICAgewo+IC0gICAgICAgIGNhYV9jeWNsZXNf dCByZXQgPSAwOwo+ICsJY2FhX2N5Y2xlc190IHJldCA9IDA7Cj4gICAKPiAtICAgICAgICByZHRz Y2xsKHJldCk7Cj4gLSAgICAgICAgcmV0dXJuIHJldDsKPiArCXJkdHNjbGwocmV0KTsKPiArCXJl dHVybiByZXQ7Cj4gICB9CgpUaGlzIHdoaXRlc3BhY2UgdG8gdGFiIGNsZWFudXAgc2hvdWxkIGJl IG1vdmVkIHRvIGl0cyBvd24gcGF0Y2guCgpUaGFua3MsCgpNYXRoaWV1Cgo+ICAgCj4gICAvKgoK LS0gCk1hdGhpZXUgRGVzbm95ZXJzCkVmZmljaU9TIEluYy4KaHR0cHM6Ly93d3cuZWZmaWNpb3Mu Y29tCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsdHRu Zy1kZXYgbWFpbGluZyBsaXN0Cmx0dG5nLWRldkBsaXN0cy5sdHRuZy5vcmcKaHR0cHM6Ly9saXN0 cy5sdHRuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL2x0dG5nLWRldgo=