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=-12.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_GIT 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 3C215C433B4 for ; Fri, 14 May 2021 20:11:46 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 99A1C61076 for ; Fri, 14 May 2021 20:11:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 99A1C61076 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=oracle.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=1hMbPhBaYRgNVf7PdSfvb8jJVuIWfulijTbpDvzhjJs=; b=IiC/Yx7FZoXoTuSBN2SCAj7Zno bDdWQkDY8GkptpWst4UvSeCmBLohlftz4yHrpoj+/sWc0rXIMX66HkDTC3JSt14DCSDemNdzmZPNF W0pMxjSs6+/thoMqCRUWvg6LWlPy6JIw6z4e7l+sAfI2RfhmB3/Q2X14uQArvdm3aaczWaCWcEfPk I2NHr2de3Jrn0X18rM2FcWNG1pGxeMBqGN+n14xsk1PYHsbsBCoKi47hfgwZFjF3zgyVopDPupPP1 3zq2cLGfGVDvEIBQdcsSBJ/iE2eoszdgty7KWh67+mi9OM0bUnS46TvowfJKx8i1kyLCILHpGgpTF k16CZYsw==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lhe8C-008uF1-00; Fri, 14 May 2021 20:09:56 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lhe7Q-008uAe-7a for linux-arm-kernel@desiato.infradead.org; Fri, 14 May 2021 20:09:08 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:MIME-Version:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-ID:Content-Description:In-Reply-To:References; bh=XIXP6H7V7DdcZmhwJrMCwGnBWYwS335MqQkEGFbFM+o=; b=jUo2a6Z5sD8ZdxIesWsy8fHU59 /LEwy175tDxhL/tzQUUozAwYVGhNGVLvUFhahuk4Yh52wl/NBtJ7duMj+ccHBljKwC2BiG/l8ElzV 02n3bVO9rpZ5WO0hvurUax1Vhlm15s11dWCX56bkk80mWQN5TkRV7p8FzRsvXPSiCNZu5sqVxmsLx v2ZFTQQ7cG6JZ/XKzpVICH7z3iL/Zhpv3ueQpdbojhD95Q2f1BA8Cje2f9lWXUrA7RDfs171oAb4a mwqbRMI/dcLYeqDqyxS3zJhRxFFaybtH9QFan88EvWKOl1e3L/PhFdQ/4ZMlBItQU5b4AFnVciXTH XNvjdb3A==; Received: from userp2130.oracle.com ([156.151.31.86]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lhe7M-00CE6t-4m for linux-arm-kernel@lists.infradead.org; Fri, 14 May 2021 20:09:07 +0000 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 14EK4wKJ003075; Fri, 14 May 2021 20:08:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : mime-version : content-type : content-transfer-encoding; s=corp-2020-01-29; bh=XIXP6H7V7DdcZmhwJrMCwGnBWYwS335MqQkEGFbFM+o=; b=ZaaUUFkEXoX5xiOAhX91jSwR0ESspMnA9jlBwHgKsvpSoovlD5KQYPNdk/4xOpCCPPj0 I7iDhxUMJJzDkR7yCsZBarTPykjgXxO8y+HVAoTcnhEEjapnLrlNaZvog8XZdTaoYJRe ASEGSdSNhW2a0n6xfboZH6lQKBGHFZBRrEyRlh+fFrsICfKNdKtUtbCN8GK9Dd6Qrm0G BOBq6V77E1cRrctVkA2pmMl/6dAINmzMy1/P2EiAPH4N0QPoW4ujlIZavudgfBmDIP/z rMfjAEuqL0aYG/0UgaY72aeRmtR7N035UJNAIR49GOGqg3F23WCJOki54/VAOIZyW75/ KA== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by userp2130.oracle.com with ESMTP id 38gpndd92a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 14 May 2021 20:08:09 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 14EK4sd6079510; Fri, 14 May 2021 20:08:08 GMT Received: from pps.reinject (localhost [127.0.0.1]) by aserp3020.oracle.com with ESMTP id 38gppf8bn7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 14 May 2021 20:08:08 +0000 Received: from aserp3020.oracle.com (aserp3020.oracle.com [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 14EK87eE102525; Fri, 14 May 2021 20:08:07 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserp3020.oracle.com with ESMTP id 38gppf8bm2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 14 May 2021 20:08:07 +0000 Received: from abhmp0014.oracle.com (abhmp0014.oracle.com [141.146.116.20]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 14EK7rjJ011932; Fri, 14 May 2021 20:07:53 GMT Received: from neelam.us.oracle.com (/10.152.128.16) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 14 May 2021 13:07:53 -0700 From: Alex Kogan To: linux@armlinux.org.uk, peterz@infradead.org, mingo@redhat.com, will.deacon@arm.com, arnd@arndb.de, longman@redhat.com, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, tglx@linutronix.de, bp@alien8.de, hpa@zytor.com, x86@kernel.org, guohanjun@huawei.com, jglauber@marvell.com Cc: steven.sistare@oracle.com, daniel.m.jordan@oracle.com, alex.kogan@oracle.com, dave.dice@oracle.com Subject: [PATCH v15 0/6] Add NUMA-awareness to qspinlock Date: Fri, 14 May 2021 16:07:37 -0400 Message-Id: <20210514200743.3026725-1-alex.kogan@oracle.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: CQ2IeJfea9oFx90D7WAPE0fWvSMLLgiC X-Proofpoint-GUID: CQ2IeJfea9oFx90D7WAPE0fWvSMLLgiC X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9984 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0 phishscore=0 priorityscore=1501 suspectscore=0 spamscore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 mlxscore=0 bulkscore=0 mlxlogscore=999 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2105140159 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210514_130904_337938_059208E3 X-CRM114-Status: GOOD ( 27.48 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Q2hhbmdlcyBmcm9tIHYxNDoKLS0tLS0tLS0tLS0tLS0tLQoKLSBDaGFuZ2UgdGhlIHdheSB0aGUg bWFpbiBxdWV1ZSBpcyBzY2FubmVkIGFuZCByZW9yZGVyZWQgaW4KY25hX3dhaXRfaGVhZF9vcl9s b2NrKCksIGJhc2VkIG9uIFBldGVyJ3Mgc3VnZ2VzdGlvbi4KCkluIGRldGFpbDogaW5zdGVhZCBv ZiBpbnNwZWN0aW5nIG9ubHkgb25lIHF1ZXVlIG5vZGUsIHdlIG5vdyBzY2FuCihhbmQgbW92ZSBu b2RlcyBpbnRvIHRoZSBzZWNvbmRhcnkgcXVldWUpIGFzIGxvbmcgYXMgdGhlIGxvY2sKcmVtYWlu cyBidXN5LiBUaGlzIHNpbXBsaWZpZWQgdGhlIGNvZGUgcXVpdGUgYSBiaXQsIGFzIHdlIGRvbid0 IG5lZWQKdG8gY2FsbCBjbmFfb3JkZXJfcXVldWUoKSBhZ2FpbiBmcm9tIGNuYV9sb2NrX2hhbmRv ZmYoKS4gCgotIFVzZSBsb2NhbF9jbG9jaygpIGluc3RlYWQgb2YgcmVseWluZyBvbiBqaWZmaWVz IHRvIGRlY2lkZSB3aGVuIHRvCmZsdXNoIHRoZSBzZWNvbmRhcnkgcXVldWUsIHBlciBBbmR5J3Mg c3VnZ2VzdGlvbi4KCi0gVXNlIG1vZHVsZV9wYXJhbSgpIGZvciBudW1hX3NwaW5sb2NrX3RocmVz aG9sZF9ucywgc28gaXQgY2FuIGJlIHR3ZWFrZWQKYXQgcnVudGltZSwgcGVyIEFuZHkncyBzdWdn ZXN0aW9uLgoKLSBSZWR1Y2UgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIG51bWFfc3BpbmxvY2tfdGhy ZXNob2xkX25zIHRvIDFtcyBiYXNlZCBvbgp0aGUgY29tbWVudHMgZnJvbSBBbmR5IGFuZCBQZXRl ci4gVGhlIHBlcmZvcm1hbmNlIG51bWJlcnMgYmVsb3cgaW5jbHVkZQpyZXN1bHRzIHdpdGggdGhl IG5ldyBkZWZhdWx0IGFzIHdlbGwgYXMgd2l0aCB0aGUgdmFsdWUgb2YgMTBtcywgd2hpY2ggd2Fz IAp0aGUgZGVmYXVsdCB0aHJlc2hvbGQgaW4gcHJldmlvdXMgcmV2aXNpb25zIG9mIHRoZSBzZXJp ZXMuCgpTdW1tYXJ5Ci0tLS0tLS0KCkxvY2sgdGhyb3VnaHB1dCBjYW4gYmUgaW5jcmVhc2VkIGJ5 IGhhbmRpbmcgYSBsb2NrIHRvIGEgd2FpdGVyIG9uIHRoZQpzYW1lIE5VTUEgbm9kZSBhcyB0aGUg bG9jayBob2xkZXIsIHByb3ZpZGVkIGNhcmUgaXMgdGFrZW4gdG8gYXZvaWQKc3RhcnZhdGlvbiBv ZiB3YWl0ZXJzIG9uIG90aGVyIE5VTUEgbm9kZXMuIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBDTkEK KGNvbXBhY3QgTlVNQS1hd2FyZSBsb2NrKSBhcyB0aGUgc2xvdyBwYXRoIGZvciBxc3BpbmxvY2su IEl0IGlzCmVuYWJsZWQgdGhyb3VnaCBhIGNvbmZpZ3VyYXRpb24gb3B0aW9uIChOVU1BX0FXQVJF X1NQSU5MT0NLUykuCgpDTkEgaXMgYSBOVU1BLWF3YXJlIHZlcnNpb24gb2YgdGhlIE1DUyBsb2Nr LiBTcGlubmluZyB0aHJlYWRzIGFyZQpvcmdhbml6ZWQgaW4gdHdvIHF1ZXVlcywgYSBwcmltYXJ5 IHF1ZXVlIGZvciB0aHJlYWRzIHJ1bm5pbmcgb24gdGhlIHNhbWUKbm9kZSBhcyB0aGUgY3VycmVu dCBsb2NrIGhvbGRlciwgYW5kIGEgc2Vjb25kYXJ5IHF1ZXVlIGZvciB0aHJlYWRzCnJ1bm5pbmcg b24gb3RoZXIgbm9kZXMuIFRocmVhZHMgc3RvcmUgdGhlIElEIG9mIHRoZSBub2RlIG9uIHdoaWNo CnRoZXkgYXJlIHJ1bm5pbmcgaW4gdGhlaXIgcXVldWUgbm9kZXMuIEFmdGVyIGFjcXVpcmluZyB0 aGUgTUNTIGxvY2sgYW5kCmJlZm9yZSBhY3F1aXJpbmcgdGhlIHNwaW5sb2NrLCB0aGUgTUNTIGxv Y2sgaG9sZGVyIGNoZWNrcyB3aGV0aGVyIHRoZSBuZXh0CndhaXRlciBpbiB0aGUgcHJpbWFyeSBx dWV1ZSAoaWYgZXhpc3RzKSBpcyBydW5uaW5nIG9uIHRoZSBzYW1lIE5VTUEgbm9kZS4KSWYgaXQg aXMgbm90LCB0aGF0IHdhaXRlciBpcyBkZXRhY2hlZCBmcm9tIHRoZSBtYWluIHF1ZXVlIGFuZCBt b3ZlZCBpbnRvCnRoZSB0YWlsIG9mIHRoZSBzZWNvbmRhcnkgcXVldWUuIFRoaXMgd2F5LCB3ZSBn cmFkdWFsbHkgZmlsdGVyIHRoZSBwcmltYXJ5CnF1ZXVlLCBsZWF2aW5nIG9ubHkgd2FpdGVycyBy dW5uaW5nIG9uIHRoZSBzYW1lIHByZWZlcnJlZCBOVU1BIG5vZGUuIE5vdGUKdGhhdCBjZXJ0YWlu IHByaW9ydGl6ZWQgd2FpdGVycyAoZS5nLiwgaW4gaXJxIGFuZCBubWkgY29udGV4dHMpIGFyZQpl eGNsdWRlZCBmcm9tIGJlaW5nIG1vdmVkIHRvIHRoZSBzZWNvbmRhcnkgcXVldWUuIFdlIGNoYW5n ZSB0aGUgTlVNQSBub2RlCnByZWZlcmVuY2UgYWZ0ZXIgYSB3YWl0ZXIgYXQgdGhlIGhlYWQgb2Yg dGhlIHNlY29uZGFyeSBxdWV1ZSBzcGlucyBmb3IgYQpjZXJ0YWluIGFtb3VudCBvZiB0aW1lLiBX ZSBkbyB0aGF0IGJ5IGZsdXNoaW5nIHRoZSBzZWNvbmRhcnkgcXVldWUgaW50bwp0aGUgaGVhZCBv ZiB0aGUgcHJpbWFyeSBxdWV1ZSwgZWZmZWN0aXZlbHkgY2hhbmdpbmcgdGhlIHByZWZlcmVuY2Ug dG8gdGhlCk5VTUEgbm9kZSBvZiB0aGUgd2FpdGVyIGF0IHRoZSBoZWFkIG9mIHRoZSBzZWNvbmRh cnkgcXVldWUgYXQgdGhlIHRpbWUgb2YKdGhlIGZsdXNoLgoKTW9yZSBkZXRhaWxzIGFyZSBhdmFp bGFibGUgYXQgaHR0cHM6Ly9hcnhpdi5vcmcvYWJzLzE4MTAuMDU2MDAuCgpXZSBoYXZlIGRvbmUg c29tZSBwZXJmb3JtYW5jZSBldmFsdWF0aW9uIHdpdGggdGhlIGxvY2t0b3J0dXJlIG1vZHVsZQph cyB3ZWxsIGFzIHdpdGggc2V2ZXJhbCBiZW5jaG1hcmtzIGZyb20gdGhlIHdpbGwtaXQtc2NhbGUg cmVwby4KVGhlIGZvbGxvd2luZyBsb2NrdG9ydHVyZSByZXN1bHRzIGFyZSBmcm9tIGFuIE9yYWNs ZSBYNS00IHNlcnZlcgooZm91ciBJbnRlbCBYZW9uIEU3LTg4OTUgdjMgQCAyLjYwR0h6IHNvY2tl dHMgd2l0aCAxOCBoeXBlcnRocmVhZGVkCmNvcmVzIGVhY2gpLiBFYWNoIG51bWJlciByZXByZXNl bnRzIGFuIGF2ZXJhZ2UgKG92ZXIgMjUgcnVucykgb2YgdGhlCnRvdGFsIG51bWJlciBvZiBvcHMg KHgxMF43KSByZXBvcnRlZCBhdCB0aGUgZW5kIG9mIGVhY2ggcnVuLiBUaGUgCnN0YW5kYXJkIGRl dmlhdGlvbiBpcyBhbHNvIHJlcG9ydGVkIGluICgpLCBhbmQgaW4gZ2VuZXJhbCBpcyBhYm91dCAz JQpmcm9tIHRoZSBhdmVyYWdlLiBUaGUgJ3N0b2NrJyBrZXJuZWwgaXMgdjUuMTIuMCwKY29tbWl0 IDNjZjVjOGVhM2E2NiwgY29tcGlsZWQgaW4gdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbi4gCidD TkEnIGlzIHRoZSBtb2RpZmllZCBrZXJuZWwgd2l0aCBOVU1BX0FXQVJFX1NQSU5MT0NLUyBzZXQg YW5kCnRoZSBuZXcgZGVmYXVsdCB0aHJlc2hvbGQgb2YgMW1zIGZvciBmbHVzaGluZyB0aGUgc2Vj b25kYXJ5IHF1ZXVlCihudW1hX3NwaW5sb2NrX3RocmVzaG9sZF9ucyk7ICdDTkEtMTBtcycgaXMg dGhlIHNhbWUgYXMgQ05BLCAKYnV0IHVzZXMgdGhlIHRocmVzaG9sZCBvZiAxMG1zLiBUaGUgc3Bl ZWR1cCBpcyBjYWxjdWxhdGVkIGJ5IGRpdmlkaW5nIAp0aGUgcmVzdWx0IG9mICdDTkEnIGFuZCAn Q05BLTEwbXMnLCByZXNwZWN0aXZlbHksIGJ5IHRoZSByZXN1bHQKYWNoaWV2ZWQgd2l0aCAnc3Rv Y2snLgoKI3RociAgCSBzdG9jayAgICAgIENOQSAgICAgICAgICAvIHNwZWVkdXAgIENOQS0xMG1z ICAgIC8gc3BlZWR1cAogIDEgIDIuNjk1ICgwLjEwOCkgMi43MDQgKDAuMDk5KSAvIDEuMDAzICAy LjcxMiAoMC4wNzcpIC8gMS4wMDYKICAyICAyLjc1MyAoMC4xODcpIDIuNzg1ICgwLjE3MSkgLyAx LjAxMiAgMi44MjIgKDAuMTc0KSAvIDEuMDI1CiAgNCAgNC4zNTUgKDAuMTM5KSA0LjQxNyAoMC4x NzkpIC8gMS4wMTQgIDQuMzYxICgwLjE4MSkgLyAxLjAwMQogIDggIDUuMTYzICgwLjExOSkgNy4w MTcgKDAuMTk1KSAvIDEuMzU5ICA3LjM2OSAoMC4xODYpIC8gMS40MjcKIDE2ICA1Ljk0NCAoMC4x MzQpIDkuMTEwICgwLjI0MikgLyAxLjUzMiAgOS4xODcgKDAuMjMzKSAvIDEuNTQ2CiAzMiAgNi4z MTAgKDAuMDgyKSA5LjcxMCAoMC4xNTYpIC8gMS41MzkgIDkuODI3ICgwLjE2MSkgLyAxLjU1Nwog MzYgIDYuMzc0ICgwLjExMikgOS43NzcgKDAuMTQxKSAvIDEuNTM0ICA5LjgzMCAoMC4xMjQpIC8g MS41NDIKIDcyICA2LjE3MCAoMC4xMzkpIDkuOTIyICgwLjE5MCkgLyAxLjYwOCAgOS45NDUgKDAu MTM2KSAvIDEuNjEyCjEwOCAgNi4wMDIgKDAuMDg5KSA5LjY1MSAoMC4xNzYpIC8gMS42MDggIDku ODQ3ICgwLjEyNSkgLyAxLjY0MQoxNDIgIDUuNzg0ICgwLjA3OSkgOS40NzcgKDAuMDg5KSAvIDEu NjM4ICA5LjY0MSAoMC4xMTMpIC8gMS42NjcKClRoZSBmb2xsb3dpbmcgdGFibGVzIGNvbnRhaW4g dGhyb3VnaHB1dCByZXN1bHRzIChvcHMvdXMpIGZyb20gdGhlIHNhbWUKc2V0dXAgZm9yIHdpbGwt aXQtc2NhbGUvb3BlbjFfdGhyZWFkczogCgojdGhyICAJIHN0b2NrICAgICAgQ05BICAgICAgICAg IC8gc3BlZWR1cCAgQ05BLTEwbXMgICAgLyBzcGVlZHVwCiAgMSAgMC41MDMgKDAuMDA0KSAwLjUw MSAoMC4wMDEpIC8gMC45OTYgIDAuNTAzICgwLjAwMikgLyAxLjAwMAogIDIgIDAuNzgzICgwLjAx NCkgMC43NzMgKDAuMDExKSAvIDAuOTg4ICAwLjc3NCAoMC4wMTYpIC8gMC45ODkKICA0ICAxLjQy MiAoMC4wMjUpIDEuMzk4ICgwLjAzMCkgLyAwLjk4MyAgMS40MDMgKDAuMDI1KSAvIDAuOTg3CiAg OCAgMS43NTMgKDAuMTA0KSAxLjY0MSAoMC4xMzIpIC8gMC45MzYgIDEuNjc1ICgwLjEzNCkgLyAw Ljk1NgogMTYgIDEuODUxICgwLjA5NykgMS43NjAgKDAuMTAzKSAvIDAuOTUxICAxLjc3NCAoMC4x MTkpIC8gMC45NTkKIDMyICAwLjkwNSAoMC4wODEpIDEuNzA4ICgwLjA4MSkgLyAxLjg4OCAgMS43 MzggKDAuMDY5KSAvIDEuOTIyCiAzNiAgMC44OTUgKDAuMDU4KSAxLjcyNiAoMC4wNjUpIC8gMS45 MjggIDEuNzM1ICgwLjA4MSkgLyAxLjkzOAogNzIgIDAuODIzICgwLjAzMykgMS42MTAgKDAuMDY3 KSAvIDEuOTU3ICAxLjY0NyAoMC4wNjcpIC8gMi4wMDIKMTA4ICAwLjg0NSAoMC4wMzUpIDEuNTg4 ICgwLjA1NCkgLyAxLjg3OCAgMS43NDAgKDAuMDY3KSAvIDIuMDU4CjE0MiAgMC44NDAgKDAuMDMw KSAxLjU0NiAoMC4wNDIpIC8gMS44MzkgIDEuNzQwICgwLjA0OCkgLyAyLjA3MAoKYW5kIHdpbGwt aXQtc2NhbGUvbG9jazJfdGhyZWFkczoKCiN0aHIgIAkgc3RvY2sgICAgICBDTkEgICAgICAgICAg LyBzcGVlZHVwICBDTkEtMTBtcyAgICAvIHNwZWVkdXAKICAxICAxLjU1MSAoMC4wMDMpIDEuNTU4 ICgwLjAwNikgLyAxLjAwNSAgMS41NTggKDAuMDAzKSAvIDEuMDA1CiAgMiAgMi43MjIgKDAuMDY0 KSAyLjcwNCAoMC4wNjMpIC8gMC45OTMgIDIuNzI3ICgwLjA1OCkgLyAxLjAwMgogIDQgIDUuMjg2 ICgwLjE3OCkgNS4zNjAgKDAuMTUxKSAvIDEuMDE0ICA1LjM2MCAoMC4xMzUpIC8gMS4wMTQKICA4 ICA0LjExNSAoMC4yOTcpIDMuOTA2ICgwLjM4MykgLyAwLjk0OSAgNC4wNjIgKDAuMzY2KSAvIDAu OTg3CiAxNiAgNC4xMTkgKDAuMTIxKSAzLjk1MCAoMC4xMzEpIC8gMC45NTkgIDQuMDA5ICgwLjEz MikgLyAwLjk3MwogMzIgIDIuNTA4ICgwLjA5NykgMy44MDUgKDAuMTA2KSAvIDEuNTE3ICAzLjk2 MCAoMC4wOTEpIC8gMS41NzkKIDM2ICAyLjQ1NyAoMC4xMDEpIDMuODEwICgwLjA3MikgLyAxLjU1 MSAgMy45MzEgKDAuMTA2KSAvIDEuNjAwCiA3MiAgMS45MTMgKDAuMTAzKSAzLjUzMCAoMC4wNzAp IC8gMS44NDUgIDMuODYwICgwLjA3OCkgLyAyLjAxOAoxMDggIDEuODkxICgwLjEwOSkgMy40MTAg KDAuMDc5KSAvIDEuODAzICAzLjg4MSAoMC4wOTcpIC8gMi4wNTIKMTQyICAxLjc1MiAoMC4wOTYp IDMuMjM2ICgwLjA4MCkgLyAxLjg0NyAgMy43NzQgKDAuMDc4KSAvIDIuMTU1CgpPdXIgZXZhbHVh dGlvbiBzaG93cyB0aGF0IENOQSBhbHNvIGltcHJvdmVzIHBlcmZvcm1hbmNlIG9mIHVzZXIgCmFw cGxpY2F0aW9ucyB0aGF0IGhhdmUgaG90IHB0aHJlYWQgbXV0ZXhlcy4gVGhvc2UgbXV0ZXhlcyBh cmUgCmJsb2NraW5nLCBhbmQgd2FpdGluZyB0aHJlYWRzIHBhcmsgYW5kIHVucGFyayB2aWEgdGhl IGZ1dGV4IAptZWNoYW5pc20gaW4gdGhlIGtlcm5lbC4gR2l2ZW4gdGhhdCBrZXJuZWwgZnV0ZXgg Y2hhaW5zLCB3aGljaAphcmUgaGFzaGVkIGJ5IHRoZSBtdXRleCBhZGRyZXNzLCBhcmUgZWFjaCBw cm90ZWN0ZWQgYnkgYSAKY2hhaW4tc3BlY2lmaWMgc3BpbiBsb2NrLCB0aGUgY29udGVudGlvbiBv biBhIHVzZXItbW9kZSBtdXRleCAKdHJhbnNsYXRlcyBpbnRvIGNvbnRlbnRpb24gb24gYSBrZXJu ZWwgbGV2ZWwgc3BpbmxvY2suIAoKSGVyZSBhcmUgdGhlIHRocm91Z2hwdXQgcmVzdWx0cyAob3Bz L3VzKSBmb3IgdGhlIGxldmVsZGIg4oCYcmVhZHJhbmRvbeKAmQpiZW5jaG1hcms6CgojdGhyICAJ IHN0b2NrICAgICAgQ05BICAgICAgICAgIC8gc3BlZWR1cCAgQ05BLTEwbXMgICAgLyBzcGVlZHVw CiAgMSAgMC41MzMgKDAuMDExKSAwLjUzOSAoMC4wMTQpIC8gMS4wMTIgIDAuNTM2ICgwLjAxMykg LyAxLjAwNgogIDIgIDAuODU0ICgwLjAyMikgMC44NTYgKDAuMDE3KSAvIDEuMDAzICAwLjg1NyAo MC4wMjApIC8gMS4wMDQKICA0ICAxLjIzNiAoMC4wMjgpIDEuMjM4ICgwLjA1NCkgLyAxLjAwMiAg MS4yMTcgKDAuMDU0KSAvIDAuOTg1CiAgOCAgMS4yMDcgKDAuMTE3KSAxLjE5OCAoMC4xMjIpIC8g MC45OTMgIDEuMTU1ICgwLjEzOCkgLyAwLjk1NwogMTYgIDAuNzU4ICgwLjA1NSkgMS4xMjggKDAu MTE4KSAvIDEuNDg5ICAxLjA2OCAoMC4xMzEpIC8gMS40MDkKIDMyICAwLjc0MyAoMC4wMjcpIDEu MTUzICgwLjAyOCkgLyAxLjU1MSAgMS4xNDcgKDAuMDIxKSAvIDEuNTQzCiAzNiAgMC43MDggKDAu MDI3KSAxLjE1MCAoMC4wMjQpIC8gMS42MjMgIDEuMTM3ICgwLjAyNikgLyAxLjYwNQogNzIgIDAu NjI5ICgwLjAxNikgMS4xMTIgKDAuMDE5KSAvIDEuNzY3ICAxLjEzNCAoMC4wMTkpIC8gMS44MDIK MTA4ICAwLjYxMCAoMC4wMTIpIDEuMDUzICgwLjAxOCkgLyAxLjcyNSAgMS4xMzAgKDAuMDE3KSAv IDEuODUzCjE0MiAgMC42MDYgKDAuMDEzKSAxLjAwOCAoMC4wMjApIC8gMS42NjQgIDEuMTEwICgw LjAyMykgLyAxLjgzMwoKRnVydGhlciBjb21tZW50cyBhcmUgd2VsY29tZSBhbmQgYXBwcmVjaWF0 ZWQuCgpBbGV4IEtvZ2FuICg2KToKICBsb2NraW5nL3FzcGlubG9jazogUmVuYW1lIG1jcyBsb2Nr L3VubG9jayBtYWNyb3MgYW5kIG1ha2UgdGhlbSBtb3JlCiAgICBnZW5lcmljCiAgbG9ja2luZy9x c3BpbmxvY2s6IFJlZmFjdG9yIHRoZSBxc3BpbmxvY2sgc2xvdyBwYXRoCiAgbG9ja2luZy9xc3Bp bmxvY2s6IEludHJvZHVjZSBDTkEgaW50byB0aGUgc2xvdyBwYXRoIG9mIHFzcGlubG9jawogIGxv Y2tpbmcvcXNwaW5sb2NrOiBJbnRyb2R1Y2Ugc3RhcnZhdGlvbiBhdm9pZGFuY2UgaW50byBDTkEK ICBsb2NraW5nL3FzcGlubG9jazogQXZvaWQgbW92aW5nIGNlcnRhaW4gdGhyZWFkcyBiZXR3ZWVu IHdhaXRpbmcgcXVldWVzCiAgICBpbiBDTkEKICBsb2NraW5nL3FzcGlubG9jazogSW50cm9kdWNl IHRoZSBzaHVmZmxlIHJlZHVjdGlvbiBvcHRpbWl6YXRpb24gaW50bwogICAgQ05BCgogLi4uL2Fk bWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dCAgICAgICAgIHwgIDE4ICsKIGFyY2gvYXJt L2luY2x1ZGUvYXNtL21jc19zcGlubG9jay5oICAgICAgICAgICB8ICAgNiArLQogYXJjaC94ODYv S2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIwICsKIGFyY2gveDg2L2lu Y2x1ZGUvYXNtL3FzcGlubG9jay5oICAgICAgICAgICAgICB8ICAgNCArCiBhcmNoL3g4Ni9rZXJu ZWwvYWx0ZXJuYXRpdmUuYyAgICAgICAgICAgICAgICAgfCAgIDQgKwogaW5jbHVkZS9hc20tZ2Vu ZXJpYy9tY3Nfc3BpbmxvY2suaCAgICAgICAgICAgIHwgICA0ICstCiBrZXJuZWwvbG9ja2luZy9t Y3Nfc3BpbmxvY2suaCAgICAgICAgICAgICAgICAgfCAgMjAgKy0KIGtlcm5lbC9sb2NraW5nL3Fz cGlubG9jay5jICAgICAgICAgICAgICAgICAgICB8ICA4MiArKystCiBrZXJuZWwvbG9ja2luZy9x c3BpbmxvY2tfY25hLmggICAgICAgICAgICAgICAgfCA0MjUgKysrKysrKysrKysrKysrKysrCiBr ZXJuZWwvbG9ja2luZy9xc3BpbmxvY2tfcGFyYXZpcnQuaCAgICAgICAgICAgfCAgIDIgKy0KIDEw IGZpbGVzIGNoYW5nZWQsIDU2MiBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBrZXJuZWwvbG9ja2luZy9xc3BpbmxvY2tfY25hLmgKCi0tIAoyLjI0LjMg KEFwcGxlIEdpdC0xMjgpCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo=