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=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,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 051EFC07E9C for ; Mon, 5 Jul 2021 23:44:11 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (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 A018C61978 for ; Mon, 5 Jul 2021 23:44:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A018C61978 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=quicinc.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:54898 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m0YG1-0006Wq-RG for qemu-devel@archiver.kernel.org; Mon, 05 Jul 2021 19:44:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35592) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m0Y7N-0004Wh-6S for qemu-devel@nongnu.org; Mon, 05 Jul 2021 19:35:14 -0400 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:37360) by eggs.gnu.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1m0Y7J-0004dv-R3 for qemu-devel@nongnu.org; Mon, 05 Jul 2021 19:35:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1625528109; x=1657064109; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=csFPtEGM/KYR/OFk2F679mwrXokc40MMllgvxK6ay0A=; b=cXMgJ0/xehjOuHXjGZh4saXYKvKAzeWXgQ+CM2BJjEfz0mDkFfd5WQYw FHWF3IQ3XNN2w9egTJvts02d6NGl+X9QHgEA3dHmbwd6G80bARB491xKD po280xJRCdnodWofXMQmlPGJXsn8tfAlogUIjyy8wlSyezl7o9R3TATaB g=; Received: from unknown (HELO ironmsg05-sd.qualcomm.com) ([10.53.140.145]) by alexa-out-sd-01.qualcomm.com with ESMTP; 05 Jul 2021 16:34:39 -0700 X-QCInternal: smtphost Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg05-sd.qualcomm.com with ESMTP; 05 Jul 2021 16:34:38 -0700 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id 0F32621DD; Mon, 5 Jul 2021 18:34:38 -0500 (CDT) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [PATCH 18/20] Hexagon HVX (tests/tcg/hexagon) hvx_misc test Date: Mon, 5 Jul 2021 18:34:32 -0500 Message-Id: <1625528074-19440-19-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1625528074-19440-1-git-send-email-tsimpson@quicinc.com> References: <1625528074-19440-1-git-send-email-tsimpson@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Received-SPF: pass client-ip=199.106.114.38; envelope-from=tsimpson@qualcomm.com; helo=alexa-out-sd-01.qualcomm.com X-Spam_score_int: -40 X-Spam_score: -4.1 X-Spam_bar: ---- X-Spam_report: (-4.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ale@rev.ng, peter.maydell@linaro.org, bcain@quicinc.com, richard.henderson@linaro.org, tsimpson@quicinc.com, philmd@redhat.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" VGVzdHMgZm9yCiAgICBwYWNrZXQgc2VtYW50aWNzCiAgICB2ZWN0b3IgbG9hZHMgKGFsaWduZWQg YW5kIHVuYWxpZ25lZCkKICAgIHZlY3RvciBzdG9yZXMgKGFsaWduZWQgYW5kIHVuYWxpZ25lZCkK ICAgIHZlY3RvciBtYXNrZWQgc3RvcmVzCiAgICB2ZWN0b3Igb3BlcmF0aW9ucwoKU2lnbmVkLW9m Zi1ieTogVGF5bG9yIFNpbXBzb24gPHRzaW1wc29uQHF1aWNpbmMuY29tPgotLS0KIHRlc3RzL3Rj Zy9oZXhhZ29uL2h2eF9taXNjLmMgICAgICB8IDMzMSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogdGVzdHMvdGNnL2hleGFnb24vTWFrZWZpbGUudGFyZ2V0IHwgICAyICsK IDIgZmlsZXMgY2hhbmdlZCwgMzMzIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0 ZXN0cy90Y2cvaGV4YWdvbi9odnhfbWlzYy5jCgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGNnL2hleGFn b24vaHZ4X21pc2MuYyBiL3Rlc3RzL3RjZy9oZXhhZ29uL2h2eF9taXNjLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjIyNjEzNAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3Rz L3RjZy9oZXhhZ29uL2h2eF9taXNjLmMKQEAgLTAsMCArMSwzMzEgQEAKKy8qCisgKiAgQ29weXJp Z2h0KGMpIDIwMjEgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBS ZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us IG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICov CisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0 cmluZy5oPgorCitpbnQgZXJyOworCitzdGF0aWMgdm9pZCBfX2NoZWNrKGludCBsaW5lLCB1aW50 NjRfdCByZXN1bHQsIHVpbnQ2NF90IGV4cGVjdCkKK3sKKyAgICBpZiAocmVzdWx0ICE9IGV4cGVj dCkgeworICAgICAgICBwcmludGYoIkVSUk9SIGF0IGxpbmUgJWQ6IDB4JTAxNmxseCAhPSAweCUw MTZsbHhcbiIsCisgICAgICAgICAgICAgICBsaW5lLCByZXN1bHQsIGV4cGVjdCk7CisgICAgICAg IGVycisrOworICAgIH0KK30KKworI2RlZmluZSBjaGVjayhSRVMsIEVYUCkgX19jaGVjayhfX0xJ TkVfXywgUkVTLCBFWFApCisKKyNkZWZpbmUgTUFYX1ZFQ19TSVpFX0JZVEVTICAgICAgICAgMTI4 CisKK3R5cGVkZWYgdW5pb24geworICAgIHVpbnQ2NF90IHVkW01BWF9WRUNfU0laRV9CWVRFUyAv IDhdOworICAgIGludDY0X3QgICBkW01BWF9WRUNfU0laRV9CWVRFUyAvIDhdOworICAgIHVpbnQz Ml90IHV3W01BWF9WRUNfU0laRV9CWVRFUyAvIDRdOworICAgIGludDMyX3QgICB3W01BWF9WRUNf U0laRV9CWVRFUyAvIDRdOworICAgIHVpbnQxNl90IHVoW01BWF9WRUNfU0laRV9CWVRFUyAvIDJd OworICAgIGludDE2X3QgICBoW01BWF9WRUNfU0laRV9CWVRFUyAvIDJdOworICAgIHVpbnQ4X3Qg IHViW01BWF9WRUNfU0laRV9CWVRFUyAvIDFdOworICAgIGludDhfdCAgICBiW01BWF9WRUNfU0la RV9CWVRFUyAvIDFdOworfSBNTVZlY3RvcjsKKworI2RlZmluZSBCVUZTSVpFICAgICAgMTYKKyNk ZWZpbmUgT1VUU0laRSAgICAgIDE2CisjZGVmaW5lIE1BU0tNT0QgICAgICAzCisKK01NVmVjdG9y IGJ1ZmZlcjBbQlVGU0laRV0gX19hdHRyaWJ1dGVfXygoYWxpZ25lZChNQVhfVkVDX1NJWkVfQllU RVMpKSk7CitNTVZlY3RvciBidWZmZXIxW0JVRlNJWkVdIF9fYXR0cmlidXRlX18oKGFsaWduZWQo TUFYX1ZFQ19TSVpFX0JZVEVTKSkpOworTU1WZWN0b3IgbWFza1tCVUZTSVpFXSBfX2F0dHJpYnV0 ZV9fKChhbGlnbmVkKE1BWF9WRUNfU0laRV9CWVRFUykpKTsKK01NVmVjdG9yIG91dHB1dFtPVVRT SVpFXSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKE1BWF9WRUNfU0laRV9CWVRFUykpKTsKK01NVmVj dG9yIGV4cGVjdFtPVVRTSVpFXSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKE1BWF9WRUNfU0laRV9C WVRFUykpKTsKKworI2RlZmluZSBDSEVDS19PVVRQVVRfRlVOQyhGSUVMRCwgRklFTERTWikgXAor c3RhdGljIHZvaWQgY2hlY2tfb3V0cHV0XyMjRklFTEQoaW50IGxpbmUsIHNpemVfdCBudW1fdmVj dG9ycykgXAoreyBcCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fdmVjdG9yczsgaSsrKSB7 IFwKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBNQVhfVkVDX1NJWkVfQllURVMgLyBGSUVM RFNaOyBqKyspIHsgXAorICAgICAgICAgICAgX19jaGVjayhsaW5lLCBvdXRwdXRbaV0uRklFTERb al0sIGV4cGVjdFtpXS5GSUVMRFtqXSk7IFwKKyAgICAgICAgfSBcCisgICAgfSBcCit9CisKK0NI RUNLX09VVFBVVF9GVU5DKGQsICA4KQorQ0hFQ0tfT1VUUFVUX0ZVTkModywgIDQpCitDSEVDS19P VVRQVVRfRlVOQyhoLCAgMikKK0NIRUNLX09VVFBVVF9GVU5DKGIsICAxKQorCitzdGF0aWMgdm9p ZCBpbml0X2J1ZmZlcnModm9pZCkKK3sKKyAgICBpbnQgY291bnRlcjAgPSAwOworICAgIGludCBj b3VudGVyMSA9IDE3OworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQlVGU0laRTsgaSsrKSB7Cisg ICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgTUFYX1ZFQ19TSVpFX0JZVEVTOyBqKyspIHsKKyAg ICAgICAgICAgIGJ1ZmZlcjBbaV0uYltqXSA9IGNvdW50ZXIwKys7CisgICAgICAgICAgICBidWZm ZXIxW2ldLmJbal0gPSBjb3VudGVyMSsrOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGog PSAwOyBqIDwgTUFYX1ZFQ19TSVpFX0JZVEVTIC8gNDsgaisrKSB7CisgICAgICAgICAgICBtYXNr W2ldLndbal0gPSAoaSArIGogJSBNQVNLTU9EID09IDApID8gMCA6IDE7CisgICAgICAgIH0KKyAg ICB9Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RfbG9hZF90bXAodm9pZCkKK3sKKyAgICB2b2lkICpw MCA9IGJ1ZmZlcjA7CisgICAgdm9pZCAqcDEgPSBidWZmZXIxOworICAgIHZvaWQgKnBvdXQgPSBv dXRwdXQ7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IEJVRlNJWkU7IGkrKykgeworICAgICAg ICAvKgorICAgICAgICAgKiBMb2FkIGludG8gdjIgYXMgLnRtcCwgdGhlbiB1ZXMgaXQgaW4gdGhl IG5leHQgcGFja2V0CisgICAgICAgICAqIFNob3VsZCBnZXQgdGhlIG5ldyB2YWx1ZSB3aXRoaW4g dGhlIHNhbWUgcGFja2V0IGFuZAorICAgICAgICAgKiB0aGUgb2xkIHZhbHVlIGluIHRoZSBuZXh0 IHBhY2tldAorICAgICAgICAgKi8KKyAgICAgICAgYXNtKCJ2MyA9IHZtZW0oJTAgKyAjMClcblx0 IgorICAgICAgICAgICAgInIxID0gIzFcblx0IgorICAgICAgICAgICAgInYyID0gdnNwbGF0KHIx KVxuXHQiCisgICAgICAgICAgICAie1xuXHQiCisgICAgICAgICAgICAiICAgIHYyLnRtcCA9IHZt ZW0oJTEgKyAjMClcblx0IgorICAgICAgICAgICAgIiAgICB2NC53ID0gdmFkZCh2Mi53LCB2My53 KVxuXHQiCisgICAgICAgICAgICAifVxuXHQiCisgICAgICAgICAgICAidjQudyA9IHZhZGQodjQu dywgdjIudylcblx0IgorICAgICAgICAgICAgInZtZW0oJTIgKyAjMCkgPSB2NFxuXHQiCisgICAg ICAgICAgICA6IDogInIiKHAwKSwgInIiKHAxKSwgInIiKHBvdXQpCisgICAgICAgICAgICA6ICJy MSIsICJ2MiIsICJ2MyIsICJ2NCIsICJ2NiIsICJtZW1vcnkiKTsKKyAgICAgICAgcDAgKz0gc2l6 ZW9mKE1NVmVjdG9yKTsKKyAgICAgICAgcDEgKz0gc2l6ZW9mKE1NVmVjdG9yKTsKKyAgICAgICAg cG91dCArPSBzaXplb2YoTU1WZWN0b3IpOworCisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwg TUFYX1ZFQ19TSVpFX0JZVEVTIC8gNDsgaisrKSB7CisgICAgICAgICAgICBleHBlY3RbaV0ud1tq XSA9IGJ1ZmZlcjBbaV0ud1tqXSArIGJ1ZmZlcjFbaV0ud1tqXSArIDE7CisgICAgICAgIH0KKyAg ICB9CisKKyAgICBjaGVja19vdXRwdXRfdyhfX0xJTkVfXywgQlVGU0laRSk7Cit9CisKK3N0YXRp YyB2b2lkIHRlc3RfbG9hZF9jdXIodm9pZCkKK3sKKyAgICB2b2lkICpwMCA9IGJ1ZmZlcjA7Cisg ICAgdm9pZCAqcG91dCA9IG91dHB1dDsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQlVGU0la RTsgaSsrKSB7CisgICAgICAgIGFzbSgie1xuXHQiCisgICAgICAgICAgICAiICAgIHYyLmN1ciA9 IHZtZW0oJTAgKyAjMClcblx0IgorICAgICAgICAgICAgIiAgICB2bWVtKCUxICsgIzApID0gdjJc blx0IgorICAgICAgICAgICAgIn1cblx0IgorICAgICAgICAgICAgOiA6ICJyIihwMCksICJyIihw b3V0KSA6ICJ2MiIsICJtZW1vcnkiKTsKKyAgICAgICAgcDAgKz0gc2l6ZW9mKE1NVmVjdG9yKTsK KyAgICAgICAgcG91dCArPSBzaXplb2YoTU1WZWN0b3IpOworCisgICAgICAgIGZvciAoaW50IGog PSAwOyBqIDwgTUFYX1ZFQ19TSVpFX0JZVEVTIC8gNDsgaisrKSB7CisgICAgICAgICAgICBleHBl Y3RbaV0udXdbal0gPSBidWZmZXIwW2ldLnV3W2pdOworICAgICAgICB9CisgICAgfQorCisgICAg Y2hlY2tfb3V0cHV0X3coX19MSU5FX18sIEJVRlNJWkUpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0 X2xvYWRfYWxpZ25lZCh2b2lkKQoreworICAgIC8qIEFsaWduZWQgbG9hZHMgaWdub3JlIHRoZSBs b3cgYml0cyBvZiB0aGUgYWRkcmVzcyAqLworICAgIHZvaWQgKnAwID0gYnVmZmVyMDsKKyAgICB2 b2lkICpwb3V0ID0gb3V0cHV0OworICAgIGNvbnN0IHNpemVfdCBvZmZzZXQgPSAxMzsKKworICAg IHAwICs9IG9mZnNldDsgICAgLyogQ3JlYXRlIGFuIHVuYWxpZ25lZCBhZGRyZXNzICovCisgICAg YXNtKCJ2MiA9IHZtZW0oJTAgKyAjMClcblx0IgorICAgICAgICAidm1lbSglMSArICMwKSA9IHYy XG5cdCIKKyAgICAgICAgOiA6ICJyIihwMCksICJyIihwb3V0KSA6ICJ2MiIsICJtZW1vcnkiKTsK KworICAgIGV4cGVjdFswXSA9IGJ1ZmZlcjBbMF07CisKKyAgICBjaGVja19vdXRwdXRfdyhfX0xJ TkVfXywgMSk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RfbG9hZF91bmFsaWduZWQodm9pZCkKK3sK KyAgICB2b2lkICpwMCA9IGJ1ZmZlcjA7CisgICAgdm9pZCAqcG91dCA9IG91dHB1dDsKKyAgICBj b25zdCBzaXplX3Qgb2Zmc2V0ID0gMTI7CisKKyAgICBwMCArPSBvZmZzZXQ7ICAgIC8qIENyZWF0 ZSBhbiB1bmFsaWduZWQgYWRkcmVzcyAqLworICAgIGFzbSgidjIgPSB2bWVtdSglMCArICMwKVxu XHQiCisgICAgICAgICJ2bWVtKCUxICsgIzApID0gdjJcblx0IgorICAgICAgICA6IDogInIiKHAw KSwgInIiKHBvdXQpIDogInYyIiwgIm1lbW9yeSIpOworCisgICAgbWVtY3B5KGV4cGVjdCwgJmJ1 ZmZlcjBbMF0udWJbb2Zmc2V0XSwgc2l6ZW9mKE1NVmVjdG9yKSk7CisKKyAgICBjaGVja19vdXRw dXRfdyhfX0xJTkVfXywgMSk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfc3RvcmVfYWxpZ25lZCh2 b2lkKQoreworICAgIC8qIEFsaWduZWQgc3RvcmVzIGlnbm9yZSB0aGUgbG93IGJpdHMgb2YgdGhl IGFkZHJlc3MgKi8KKyAgICB2b2lkICpwMCA9IGJ1ZmZlcjA7CisgICAgdm9pZCAqcG91dCA9IG91 dHB1dDsKKyAgICBjb25zdCBzaXplX3Qgb2Zmc2V0ID0gMTM7CisKKyAgICBwb3V0ICs9IG9mZnNl dDsgICAgLyogQ3JlYXRlIGFuIHVuYWxpZ25lZCBhZGRyZXNzICovCisgICAgYXNtKCJ2MiA9IHZt ZW0oJTAgKyAjMClcblx0IgorICAgICAgICAidm1lbSglMSArICMwKSA9IHYyXG5cdCIKKyAgICAg ICAgOiA6ICJyIihwMCksICJyIihwb3V0KSA6ICJ2MiIsICJtZW1vcnkiKTsKKworICAgIGV4cGVj dFswXSA9IGJ1ZmZlcjBbMF07CisKKyAgICBjaGVja19vdXRwdXRfdyhfX0xJTkVfXywgMSk7Cit9 CisKK3N0YXRpYyB2b2lkIHRlc3Rfc3RvcmVfdW5hbGlnbmVkKHZvaWQpCit7CisgICAgdm9pZCAq cDAgPSBidWZmZXIwOworICAgIHZvaWQgKnBvdXQgPSBvdXRwdXQ7CisgICAgY29uc3Qgc2l6ZV90 IG9mZnNldCA9IDEyOworCisgICAgcG91dCArPSBvZmZzZXQ7ICAgIC8qIENyZWF0ZSBhbiB1bmFs aWduZWQgYWRkcmVzcyAqLworICAgIGFzbSgidjIgPSB2bWVtKCUwICsgIzApXG5cdCIKKyAgICAg ICAgInZtZW11KCUxICsgIzApID0gdjJcblx0IgorICAgICAgICA6IDogInIiKHAwKSwgInIiKHBv dXQpIDogInYyIiwgIm1lbW9yeSIpOworCisgICAgbWVtY3B5KGV4cGVjdCwgYnVmZmVyMCwgMiAq IHNpemVvZihNTVZlY3RvcikpOworICAgIG1lbWNweSgmZXhwZWN0WzBdLnViW29mZnNldF0sIGJ1 ZmZlcjAsIHNpemVvZihNTVZlY3RvcikpOworCisgICAgY2hlY2tfb3V0cHV0X3coX19MSU5FX18s IDIpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X21hc2tlZF9zdG9yZSh2b2lkKQoreworICAgIHZv aWQgKnAwID0gYnVmZmVyMDsKKyAgICB2b2lkICpwbWFzayA9IG1hc2s7CisgICAgdm9pZCAqcG91 dCA9IG91dHB1dDsKKworICAgIG1lbXNldChleHBlY3QsIDB4ZmYsIHNpemVvZihleHBlY3QpKTsK KyAgICBtZW1zZXQob3V0cHV0LCAweGZmLCBzaXplb2YoZXhwZWN0KSk7CisKKyAgICBmb3IgKGlu dCBpID0gMDsgaSA8IEJVRlNJWkU7IGkrKykgeworICAgICAgICBhc20oInI0ID0gIzBcblx0Igor ICAgICAgICAgICAgInY0ID0gdnNwbGF0KHI0KVxuXHQiCisgICAgICAgICAgICAidjUgPSB2bWVt KCUwICsgIzApXG5cdCIKKyAgICAgICAgICAgICJxMCA9IHZjbXAuZXEodjQudywgdjUudylcblx0 IgorICAgICAgICAgICAgInY1ID0gdm1lbSglMSlcblx0IgorICAgICAgICAgICAgImlmIChxMCkg dm1lbSglMikgPSB2NVxuXHQiCisgICAgICAgICAgICA6IDogInIiKHBtYXNrKSwgInIiKHAwKSwg InIiKHBvdXQpCisgICAgICAgICAgICA6ICJyNCIsICJ2NCIsICJ2NSIsICJxMCIsICJtZW1vcnki KTsKKyAgICAgICAgcDAgKz0gc2l6ZW9mKE1NVmVjdG9yKTsKKyAgICAgICAgcG1hc2sgKz0gc2l6 ZW9mKE1NVmVjdG9yKTsKKyAgICAgICAgcG91dCArPSBzaXplb2YoTU1WZWN0b3IpOworCisgICAg ICAgIGZvciAoaW50IGogPSAwOyBqIDwgTUFYX1ZFQ19TSVpFX0JZVEVTIC8gNDsgaisrKSB7Cisg ICAgICAgICAgICBpZiAoaSArIGogJSBNQVNLTU9EID09IDApIHsKKyAgICAgICAgICAgICAgICBl eHBlY3RbaV0ud1tqXSA9IGJ1ZmZlcjBbaV0ud1tqXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg fQorICAgIH0KKworICAgIGNoZWNrX291dHB1dF93KF9fTElORV9fLCBCVUZTSVpFKTsKK30KKwor I2RlZmluZSBPUDEoQVNNLCBFTCwgSU4sIE9VVCkgXAorICAgIGFzbSgidjIgPSB2bWVtKCUwICsg IzApXG5cdCIgXAorICAgICAgICAidjIiICNFTCAiID0gIiAjQVNNICIodjIiICNFTCAiKVxuXHQi IFwKKyAgICAgICAgInZtZW0oJTEgKyAjMCkgPSB2MlxuXHQiIFwKKyAgICAgICAgOiA6ICJyIihJ TiksICJyIihPVVQpIDogInYyIiwgIm1lbW9yeSIpCisKKyNkZWZpbmUgT1AyKEFTTSwgRUwsIElO MCwgSU4xLCBPVVQpIFwKKyAgICBhc20oInYyID0gdm1lbSglMCArICMwKVxuXHQiIFwKKyAgICAg ICAgInYzID0gdm1lbSglMSArICMwKVxuXHQiIFwKKyAgICAgICAgInYyIiAjRUwgIiA9ICIgI0FT TSAiKHYyIiAjRUwgIiwgdjMiICNFTCAiKVxuXHQiIFwKKyAgICAgICAgInZtZW0oJTIgKyAjMCkg PSB2MlxuXHQiIFwKKyAgICAgICAgOiA6ICJyIihJTjApLCAiciIoSU4xKSwgInIiKE9VVCkgOiAi djIiLCAidjMiLCAibWVtb3J5IikKKworI2RlZmluZSBURVNUX09QMShOQU1FLCBBU00sIEVMLCBG SUVMRCwgRklFTERTWiwgT1ApIFwKK3N0YXRpYyB2b2lkIHRlc3RfIyNOQU1FKHZvaWQpIFwKK3sg XAorICAgIHZvaWQgKnBpbiA9IGJ1ZmZlcjA7IFwKKyAgICB2b2lkICpwb3V0ID0gb3V0cHV0OyBc CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBCVUZTSVpFOyBpKyspIHsgXAorICAgICAgICBPUDEo QVNNLCBFTCwgcGluLCBwb3V0KTsgXAorICAgICAgICBwaW4gKz0gc2l6ZW9mKE1NVmVjdG9yKTsg XAorICAgICAgICBwb3V0ICs9IHNpemVvZihNTVZlY3Rvcik7IFwKKyAgICB9IFwKKyAgICBmb3Ig KGludCBpID0gMDsgaSA8IEJVRlNJWkU7IGkrKykgeyBcCisgICAgICAgIGZvciAoaW50IGogPSAw OyBqIDwgTUFYX1ZFQ19TSVpFX0JZVEVTIC8gRklFTERTWjsgaisrKSB7IFwKKyAgICAgICAgICAg IGV4cGVjdFtpXS5GSUVMRFtqXSA9IE9QIGJ1ZmZlcjBbaV0uRklFTERbal07IFwKKyAgICAgICAg fSBcCisgICAgfSBcCisgICAgY2hlY2tfb3V0cHV0XyMjRklFTEQoX19MSU5FX18sIEJVRlNJWkUp OyBcCit9CisKKyNkZWZpbmUgVEVTVF9PUDIoTkFNRSwgQVNNLCBFTCwgRklFTEQsIEZJRUxEU1os IE9QKSBcCitzdGF0aWMgdm9pZCB0ZXN0XyMjTkFNRSh2b2lkKSBcCit7IFwKKyAgICB2b2lkICpw MCA9IGJ1ZmZlcjA7IFwKKyAgICB2b2lkICpwMSA9IGJ1ZmZlcjE7IFwKKyAgICB2b2lkICpwb3V0 ID0gb3V0cHV0OyBcCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBCVUZTSVpFOyBpKyspIHsgXAor ICAgICAgICBPUDIoQVNNLCBFTCwgcDAsIHAxLCBwb3V0KTsgXAorICAgICAgICBwMCArPSBzaXpl b2YoTU1WZWN0b3IpOyBcCisgICAgICAgIHAxICs9IHNpemVvZihNTVZlY3Rvcik7IFwKKyAgICAg ICAgcG91dCArPSBzaXplb2YoTU1WZWN0b3IpOyBcCisgICAgfSBcCisgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBCVUZTSVpFOyBpKyspIHsgXAorICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE1B WF9WRUNfU0laRV9CWVRFUyAvIEZJRUxEU1o7IGorKykgeyBcCisgICAgICAgICAgICBleHBlY3Rb aV0uRklFTERbal0gPSBidWZmZXIwW2ldLkZJRUxEW2pdIE9QIGJ1ZmZlcjFbaV0uRklFTERbal07 IFwKKyAgICAgICAgfSBcCisgICAgfSBcCisgICAgY2hlY2tfb3V0cHV0XyMjRklFTEQoX19MSU5F X18sIEJVRlNJWkUpOyBcCit9CisKK1RFU1RfT1AyKHZhZGRfdywgdmFkZCwgLncsIHcsIDQsICsp CitURVNUX09QMih2YWRkX2gsIHZhZGQsIC5oLCBoLCAyLCArKQorVEVTVF9PUDIodmFkZF9iLCB2 YWRkLCAuYiwgYiwgMSwgKykKK1RFU1RfT1AyKHZzdWJfdywgdnN1YiwgLncsIHcsIDQsIC0pCitU RVNUX09QMih2c3ViX2gsIHZzdWIsIC5oLCBoLCAyLCAtKQorVEVTVF9PUDIodnN1Yl9iLCB2c3Vi LCAuYiwgYiwgMSwgLSkKK1RFU1RfT1AyKHZ4b3IsIHZ4b3IsICwgZCwgOCwgXikKK1RFU1RfT1Ay KHZhbmQsIHZhbmQsICwgZCwgOCwgJikKK1RFU1RfT1AyKHZvciwgdm9yLCAsIGQsIDgsIHwpCitU RVNUX09QMSh2bm90LCB2bm90LCAsIGQsIDgsIH4pCisKK2ludCBtYWluKCkKK3sKKyAgICBpbml0 X2J1ZmZlcnMoKTsKKworICAgIHRlc3RfbG9hZF90bXAoKTsKKyAgICB0ZXN0X2xvYWRfY3VyKCk7 CisgICAgdGVzdF9sb2FkX2FsaWduZWQoKTsKKyAgICB0ZXN0X2xvYWRfdW5hbGlnbmVkKCk7Cisg ICAgdGVzdF9zdG9yZV9hbGlnbmVkKCk7CisgICAgdGVzdF9zdG9yZV91bmFsaWduZWQoKTsKKyAg ICB0ZXN0X21hc2tlZF9zdG9yZSgpOworCisgICAgdGVzdF92YWRkX3coKTsKKyAgICB0ZXN0X3Zh ZGRfaCgpOworICAgIHRlc3RfdmFkZF9iKCk7CisgICAgdGVzdF92c3ViX3coKTsKKyAgICB0ZXN0 X3ZzdWJfaCgpOworICAgIHRlc3RfdnN1Yl9iKCk7CisgICAgdGVzdF92eG9yKCk7CisgICAgdGVz dF92YW5kKCk7CisgICAgdGVzdF92b3IoKTsKKyAgICB0ZXN0X3Zub3QoKTsKKworICAgIHB1dHMo ZXJyID8gIkZBSUwiIDogIlBBU1MiKTsKKyAgICByZXR1cm4gZXJyID8gMSA6IDA7Cit9CmRpZmYg LS1naXQgYS90ZXN0cy90Y2cvaGV4YWdvbi9NYWtlZmlsZS50YXJnZXQgYi90ZXN0cy90Y2cvaGV4 YWdvbi9NYWtlZmlsZS50YXJnZXQKaW5kZXggODhkYjdkZC4uNmFjOWFjNiAxMDA2NDQKLS0tIGEv dGVzdHMvdGNnL2hleGFnb24vTWFrZWZpbGUudGFyZ2V0CisrKyBiL3Rlc3RzL3RjZy9oZXhhZ29u L01ha2VmaWxlLnRhcmdldApAQCAtNDksNyArNDksOSBAQCBIRVhfVEVTVFMgKz0gbG9hZF9hbGln bgogSEVYX1RFU1RTICs9IHZlY3Rvcl9hZGRfaW50CiBIRVhfVEVTVFMgKz0gYXRvbWljcwogSEVY X1RFU1RTICs9IGZwc3R1ZmYKK0hFWF9URVNUUyArPSBodnhfbWlzYwogCiBURVNUUyArPSAkKEhF WF9URVNUUykKIAogdmVjdG9yX2FkZF9pbnQ6IENGTEFHUyArPSAtbWh2eCAtZnZlY3Rvcml6ZQor aHZ4X21pc2M6IENGTEFHUyArPSAtbWh2eAotLSAKMi43LjQKCg==